Binary files pencil_backup/bezierarea.o and pencil_dev/bezierarea.o differ
Binary files pencil_backup/beziercurve.o and pencil_dev/beziercurve.o differ
Binary files pencil_backup/bitmapimage.o and pencil_dev/bitmapimage.o differ
Binary files pencil_backup/blur.o and pencil_dev/blur.o differ
Binary files pencil_backup/colourref.o and pencil_dev/colourref.o differ
Binary files pencil_backup/editor.o and pencil_dev/editor.o differ
Binary files pencil_backup/flash.o and pencil_dev/flash.o differ
Binary files pencil_backup/gradient.o and pencil_dev/gradient.o differ
Binary files pencil_backup/icons/onionInbetween.png and pencil_dev/icons/onionInbetween.png differ
Binary files pencil_backup/icons/onionNext.png and pencil_dev/icons/onionNext.png differ
Binary files pencil_backup/icons/onionPrev.png and pencil_dev/icons/onionPrev.png differ
Binary files pencil_backup/icons/onionPrev_test.xcf and pencil_dev/icons/onionPrev_test.xcf differ
Binary files pencil_backup/icons/onionStraightAhead.png and pencil_dev/icons/onionStraightAhead.png differ
Binary files pencil_backup/layerbitmap.o and pencil_dev/layerbitmap.o differ
Binary files pencil_backup/layercamera.o and pencil_dev/layercamera.o differ
Binary files pencil_backup/layerimage.o and pencil_dev/layerimage.o differ
Binary files pencil_backup/layer.o and pencil_dev/layer.o differ
Binary files pencil_backup/layersound.o and pencil_dev/layersound.o differ
Binary files pencil_backup/layervector.o and pencil_dev/layervector.o differ
Binary files pencil_backup/linux.o and pencil_dev/linux.o differ
Binary files pencil_backup/main.o and pencil_dev/main.o differ
Binary files pencil_backup/mainwindow.o and pencil_dev/mainwindow.o differ
diff -rupN pencil_backup/Makefile pencil_dev/Makefile
--- pencil_backup/Makefile 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/Makefile 2009-09-28 18:57:52.000000000 -0500
@@ -0,0 +1,584 @@
+#############################################################################
+# Makefile for building: Pencil
+# Generated by qmake (2.01a) (Qt 4.5.0) on: Mon Sep 28 18:57:52 2009
+# Project: pencil.pro
+# Template: app
+# Command: /usr/bin/qmake -unix -o Makefile pencil.pro
+#############################################################################
+
+####### Compiler, tools and options
+
+CC = gcc
+CXX = g++
+DEFINES = -DQT_NO_DEBUG -DQT_XML_LIB -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
+CFLAGS = -pipe -O2 -D_REENTRANT -Wall -W $(DEFINES)
+CXXFLAGS = -pipe -O2 -D_REENTRANT -Wall -W $(DEFINES)
+INCPATH = -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4/QtXml -I/usr/include/qt4 -I. -Isrc -Isrc/external/flash -Isrc/external/linux -Isrc/external/macosx -Isrc/external/win32 -Isrc/graphics -Isrc/graphics/bitmap -Isrc/graphics/vector -Isrc/interface -Isrc/structure -I. -Iliblinux -I/usr/X11R6/include -I. -I.
+LINK = g++
+LFLAGS = -Wl,-O1
+LIBS = $(SUBLIBS) -L/usr/lib -L/usr/X11R6/lib -Lliblinux -lming -lpng -lQtXml -lQtOpenGL -lQtGui -lQtCore -lGLU -lGL -lpthread
+AR = ar cqs
+RANLIB =
+QMAKE = /usr/bin/qmake
+TAR = tar -cf
+COMPRESS = gzip -9f
+COPY = cp -f
+SED = sed
+COPY_FILE = $(COPY)
+COPY_DIR = $(COPY) -r
+INSTALL_FILE = install -m 644 -p
+INSTALL_DIR = $(COPY_DIR)
+INSTALL_PROGRAM = install -m 755 -p
+DEL_FILE = rm -f
+SYMLINK = ln -sf
+DEL_DIR = rmdir
+MOVE = mv -f
+CHK_DIR_EXISTS= test -d
+MKDIR = mkdir -p
+
+####### Output directory
+
+OBJECTS_DIR = ./
+
+####### Files
+
+SOURCES = src/external/flash/flash.cpp \
+ src/graphics/bitmap/blur.cpp \
+ src/graphics/bitmap/bitmapimage.cpp \
+ src/graphics/vector/bezierarea.cpp \
+ src/graphics/vector/beziercurve.cpp \
+ src/graphics/vector/colourref.cpp \
+ src/graphics/vector/gradient.cpp \
+ src/graphics/vector/vectorimage.cpp \
+ src/graphics/vector/vertexref.cpp \
+ src/structure/layer.cpp \
+ src/structure/layerbitmap.cpp \
+ src/structure/layercamera.cpp \
+ src/structure/layerimage.cpp \
+ src/structure/layersound.cpp \
+ src/structure/layervector.cpp \
+ src/structure/object.cpp \
+ src/interface/editor.cpp \
+ src/interface/mainwindow.cpp \
+ src/interface/palette.cpp \
+ src/interface/preferences.cpp \
+ src/interface/scribblearea.cpp \
+ src/interface/timeline.cpp \
+ src/interface/timecontrols.cpp \
+ src/interface/toolset.cpp \
+ src/main.cpp \
+ src/external/linux/linux.cpp moc_layer.cpp \
+ moc_layerbitmap.cpp \
+ moc_layercamera.cpp \
+ moc_layerimage.cpp \
+ moc_layersound.cpp \
+ moc_layervector.cpp \
+ moc_object.cpp \
+ moc_editor.cpp \
+ moc_mainwindow.cpp \
+ moc_palette.cpp \
+ moc_preferences.cpp \
+ moc_scribblearea.cpp \
+ moc_timeline.cpp \
+ moc_timecontrols.cpp \
+ moc_toolset.cpp \
+ qrc_pencil.cpp
+OBJECTS = flash.o \
+ blur.o \
+ bitmapimage.o \
+ bezierarea.o \
+ beziercurve.o \
+ colourref.o \
+ gradient.o \
+ vectorimage.o \
+ vertexref.o \
+ layer.o \
+ layerbitmap.o \
+ layercamera.o \
+ layerimage.o \
+ layersound.o \
+ layervector.o \
+ object.o \
+ editor.o \
+ mainwindow.o \
+ palette.o \
+ preferences.o \
+ scribblearea.o \
+ timeline.o \
+ timecontrols.o \
+ toolset.o \
+ main.o \
+ linux.o \
+ moc_layer.o \
+ moc_layerbitmap.o \
+ moc_layercamera.o \
+ moc_layerimage.o \
+ moc_layersound.o \
+ moc_layervector.o \
+ moc_object.o \
+ moc_editor.o \
+ moc_mainwindow.o \
+ moc_palette.o \
+ moc_preferences.o \
+ moc_scribblearea.o \
+ moc_timeline.o \
+ moc_timecontrols.o \
+ moc_toolset.o \
+ qrc_pencil.o
+DIST = /usr/share/qt4/mkspecs/common/g++.conf \
+ /usr/share/qt4/mkspecs/common/unix.conf \
+ /usr/share/qt4/mkspecs/common/linux.conf \
+ /usr/share/qt4/mkspecs/qconfig.pri \
+ /usr/share/qt4/mkspecs/features/qt_functions.prf \
+ /usr/share/qt4/mkspecs/features/qt_config.prf \
+ /usr/share/qt4/mkspecs/features/exclusive_builds.prf \
+ /usr/share/qt4/mkspecs/features/default_pre.prf \
+ /usr/share/qt4/mkspecs/features/release.prf \
+ /usr/share/qt4/mkspecs/features/default_post.prf \
+ /usr/share/qt4/mkspecs/features/qt.prf \
+ /usr/share/qt4/mkspecs/features/unix/opengl.prf \
+ /usr/share/qt4/mkspecs/features/unix/thread.prf \
+ /usr/share/qt4/mkspecs/features/moc.prf \
+ /usr/share/qt4/mkspecs/features/warn_on.prf \
+ /usr/share/qt4/mkspecs/features/resources.prf \
+ /usr/share/qt4/mkspecs/features/uic.prf \
+ /usr/share/qt4/mkspecs/features/yacc.prf \
+ /usr/share/qt4/mkspecs/features/lex.prf \
+ pencil.pro
+QMAKE_TARGET = Pencil
+DESTDIR =
+TARGET = Pencil
+
+first: all
+####### Implicit rules
+
+.SUFFIXES: .o .c .cpp .cc .cxx .C
+
+.cpp.o:
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
+
+.cc.o:
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
+
+.cxx.o:
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
+
+.C.o:
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
+
+.c.o:
+ $(CC) -c $(CFLAGS) $(INCPATH) -o "$@" "$<"
+
+####### Build rules
+
+all: Makefile $(TARGET)
+
+$(TARGET): $(OBJECTS)
+ $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
+
+Makefile: pencil.pro /usr/share/qt4/mkspecs/linux-g++/qmake.conf /usr/share/qt4/mkspecs/common/g++.conf \
+ /usr/share/qt4/mkspecs/common/unix.conf \
+ /usr/share/qt4/mkspecs/common/linux.conf \
+ /usr/share/qt4/mkspecs/qconfig.pri \
+ /usr/share/qt4/mkspecs/features/qt_functions.prf \
+ /usr/share/qt4/mkspecs/features/qt_config.prf \
+ /usr/share/qt4/mkspecs/features/exclusive_builds.prf \
+ /usr/share/qt4/mkspecs/features/default_pre.prf \
+ /usr/share/qt4/mkspecs/features/release.prf \
+ /usr/share/qt4/mkspecs/features/default_post.prf \
+ /usr/share/qt4/mkspecs/features/qt.prf \
+ /usr/share/qt4/mkspecs/features/unix/opengl.prf \
+ /usr/share/qt4/mkspecs/features/unix/thread.prf \
+ /usr/share/qt4/mkspecs/features/moc.prf \
+ /usr/share/qt4/mkspecs/features/warn_on.prf \
+ /usr/share/qt4/mkspecs/features/resources.prf \
+ /usr/share/qt4/mkspecs/features/uic.prf \
+ /usr/share/qt4/mkspecs/features/yacc.prf \
+ /usr/share/qt4/mkspecs/features/lex.prf \
+ /usr/lib/libQtXml.prl \
+ /usr/lib/libQtOpenGL.prl \
+ /usr/lib/libQtGui.prl \
+ /usr/lib/libQtCore.prl
+ $(QMAKE) -unix -o Makefile pencil.pro
+/usr/share/qt4/mkspecs/common/g++.conf:
+/usr/share/qt4/mkspecs/common/unix.conf:
+/usr/share/qt4/mkspecs/common/linux.conf:
+/usr/share/qt4/mkspecs/qconfig.pri:
+/usr/share/qt4/mkspecs/features/qt_functions.prf:
+/usr/share/qt4/mkspecs/features/qt_config.prf:
+/usr/share/qt4/mkspecs/features/exclusive_builds.prf:
+/usr/share/qt4/mkspecs/features/default_pre.prf:
+/usr/share/qt4/mkspecs/features/release.prf:
+/usr/share/qt4/mkspecs/features/default_post.prf:
+/usr/share/qt4/mkspecs/features/qt.prf:
+/usr/share/qt4/mkspecs/features/unix/opengl.prf:
+/usr/share/qt4/mkspecs/features/unix/thread.prf:
+/usr/share/qt4/mkspecs/features/moc.prf:
+/usr/share/qt4/mkspecs/features/warn_on.prf:
+/usr/share/qt4/mkspecs/features/resources.prf:
+/usr/share/qt4/mkspecs/features/uic.prf:
+/usr/share/qt4/mkspecs/features/yacc.prf:
+/usr/share/qt4/mkspecs/features/lex.prf:
+/usr/lib/libQtXml.prl:
+/usr/lib/libQtOpenGL.prl:
+/usr/lib/libQtGui.prl:
+/usr/lib/libQtCore.prl:
+qmake: FORCE
+ @$(QMAKE) -unix -o Makefile pencil.pro
+
+dist:
+ @$(CHK_DIR_EXISTS) .tmp/Pencil1.0.0 || $(MKDIR) .tmp/Pencil1.0.0
+ $(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/Pencil1.0.0/ && $(COPY_FILE) --parents src/interfaces.h src/external/flash/flash.h src/graphics/bitmap/bitmapimage.h src/graphics/vector/bezierarea.h src/graphics/vector/beziercurve.h src/graphics/vector/colourref.h src/graphics/vector/gradient.h src/graphics/vector/vectorimage.h src/graphics/vector/vertexref.h src/structure/layer.h src/structure/layerbitmap.h src/structure/layercamera.h src/structure/layerimage.h src/structure/layersound.h src/structure/layervector.h src/structure/object.h src/interface/editor.h src/interface/mainwindow.h src/interface/palette.h src/interface/preferences.h src/interface/scribblearea.h src/interface/timeline.h src/interface/timecontrols.h src/interface/toolset.h .tmp/Pencil1.0.0/ && $(COPY_FILE) --parents pencil.qrc .tmp/Pencil1.0.0/ && $(COPY_FILE) --parents src/external/flash/flash.cpp src/graphics/bitmap/blur.cpp src/graphics/bitmap/bitmapimage.cpp src/graphics/vector/bezierarea.cpp src/graphics/vector/beziercurve.cpp src/graphics/vector/colourref.cpp src/graphics/vector/gradient.cpp src/graphics/vector/vectorimage.cpp src/graphics/vector/vertexref.cpp src/structure/layer.cpp src/structure/layerbitmap.cpp src/structure/layercamera.cpp src/structure/layerimage.cpp src/structure/layersound.cpp src/structure/layervector.cpp src/structure/object.cpp src/interface/editor.cpp src/interface/mainwindow.cpp src/interface/palette.cpp src/interface/preferences.cpp src/interface/scribblearea.cpp src/interface/timeline.cpp src/interface/timecontrols.cpp src/interface/toolset.cpp src/main.cpp src/external/linux/linux.cpp .tmp/Pencil1.0.0/ && (cd `dirname .tmp/Pencil1.0.0` && $(TAR) Pencil1.0.0.tar Pencil1.0.0 && $(COMPRESS) Pencil1.0.0.tar) && $(MOVE) `dirname .tmp/Pencil1.0.0`/Pencil1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/Pencil1.0.0
+
+
+clean:compiler_clean
+ -$(DEL_FILE) $(OBJECTS)
+ -$(DEL_FILE) *~ core *.core
+
+
+####### Sub-libraries
+
+distclean: clean
+ -$(DEL_FILE) $(TARGET)
+ -$(DEL_FILE) Makefile
+
+
+mocclean: compiler_moc_header_clean compiler_moc_source_clean
+
+mocables: compiler_moc_header_make_all compiler_moc_source_make_all
+
+compiler_moc_header_make_all: moc_layer.cpp moc_layerbitmap.cpp moc_layercamera.cpp moc_layerimage.cpp moc_layersound.cpp moc_layervector.cpp moc_object.cpp moc_editor.cpp moc_mainwindow.cpp moc_palette.cpp moc_preferences.cpp moc_scribblearea.cpp moc_timeline.cpp moc_timecontrols.cpp moc_toolset.cpp
+compiler_moc_header_clean:
+ -$(DEL_FILE) moc_layer.cpp moc_layerbitmap.cpp moc_layercamera.cpp moc_layerimage.cpp moc_layersound.cpp moc_layervector.cpp moc_object.cpp moc_editor.cpp moc_mainwindow.cpp moc_palette.cpp moc_preferences.cpp moc_scribblearea.cpp moc_timeline.cpp moc_timecontrols.cpp moc_toolset.cpp
+moc_layer.cpp: src/structure/layer.h
+ /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/structure/layer.h -o moc_layer.cpp
+
+moc_layerbitmap.cpp: src/structure/layerimage.h \
+ src/structure/layer.h \
+ src/structure/layerbitmap.h
+ /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/structure/layerbitmap.h -o moc_layerbitmap.cpp
+
+moc_layercamera.cpp: src/structure/layerimage.h \
+ src/structure/layer.h \
+ src/structure/layercamera.h
+ /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/structure/layercamera.h -o moc_layercamera.cpp
+
+moc_layerimage.cpp: src/structure/layer.h \
+ src/structure/layerimage.h
+ /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/structure/layerimage.h -o moc_layerimage.cpp
+
+moc_layersound.cpp: src/structure/layerimage.h \
+ src/structure/layer.h \
+ src/structure/layersound.h
+ /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/structure/layersound.h -o moc_layersound.cpp
+
+moc_layervector.cpp: src/structure/layerimage.h \
+ src/structure/layer.h \
+ src/structure/layervector.h
+ /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/structure/layervector.h -o moc_layervector.cpp
+
+moc_object.cpp: src/structure/layer.h \
+ src/structure/layerbitmap.h \
+ src/structure/layerimage.h \
+ src/structure/layervector.h \
+ src/structure/object.h
+ /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/structure/object.h -o moc_object.cpp
+
+moc_editor.cpp: src/interface/timeline.h \
+ src/interface/toolset.h \
+ src/interface/scribblearea.h \
+ src/interface/preferences.h \
+ src/interface/palette.h \
+ src/interface/editor.h
+ /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/interface/editor.h -o moc_editor.cpp
+
+moc_mainwindow.cpp: src/interface/editor.h \
+ src/interface/timeline.h \
+ src/interface/toolset.h \
+ src/interface/scribblearea.h \
+ src/interface/preferences.h \
+ src/interface/palette.h \
+ src/interface/mainwindow.h
+ /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/interface/mainwindow.h -o moc_mainwindow.cpp
+
+moc_palette.cpp: src/interface/toolset.h \
+ src/interface/palette.h
+ /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/interface/palette.h -o moc_palette.cpp
+
+moc_preferences.cpp: src/interface/preferences.h
+ /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/interface/preferences.h -o moc_preferences.cpp
+
+moc_scribblearea.cpp: src/interface/scribblearea.h
+ /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/interface/scribblearea.h -o moc_scribblearea.cpp
+
+moc_timeline.cpp: src/interface/toolset.h \
+ src/interface/timeline.h
+ /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/interface/timeline.h -o moc_timeline.cpp
+
+moc_timecontrols.cpp: src/interface/timecontrols.h
+ /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/interface/timecontrols.h -o moc_timecontrols.cpp
+
+moc_toolset.cpp: src/interface/toolset.h
+ /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/interface/toolset.h -o moc_toolset.cpp
+
+compiler_rcc_make_all: qrc_pencil.cpp
+compiler_rcc_clean:
+ -$(DEL_FILE) qrc_pencil.cpp
+qrc_pencil.cpp: pencil.qrc \
+ background/weave.jpg \
+ background/dots.png \
+ icons/select.png \
+ icons/pen.png \
+ icons/brush.png \
+ icons/bucketTool.png \
+ icons/add.png \
+ icons/polyline.png \
+ icons/arrow.png \
+ icons/logo.png \
+ icons/layer-sound.png \
+ icons/eraser2.png \
+ icons/move.png \
+ icons/onionStraightAhead.png \
+ icons/prefs-files.png \
+ icons/icon.png \
+ icons/prefstimeline.png \
+ icons/aqua.png \
+ icons/eyedropper.png \
+ icons/smudge.png \
+ icons/layer-vector.png \
+ icons/magnify.png \
+ icons/pencil2.png \
+ icons/thinlines5.png \
+ icons/layer-bitmap.png \
+ icons/onionInbetween.png \
+ icons/house.png \
+ icons/hand.png \
+ icons/bucket.png \
+ icons/prefspencil.png \
+ icons/clear.png \
+ icons/mirror.png \
+ icons/layer-camera.png \
+ icons/eraser.png \
+ icons/outlines5.png \
+ icons/remove.png \
+ icons/controls/separator.png \
+ icons/controls/play.png \
+ icons/controls/sound.png \
+ icons/controls/loop.png
+ /usr/bin/rcc -name pencil pencil.qrc -o qrc_pencil.cpp
+
+compiler_image_collection_make_all: qmake_image_collection.cpp
+compiler_image_collection_clean:
+ -$(DEL_FILE) qmake_image_collection.cpp
+compiler_moc_source_make_all:
+compiler_moc_source_clean:
+compiler_uic_make_all:
+compiler_uic_clean:
+compiler_yacc_decl_make_all:
+compiler_yacc_decl_clean:
+compiler_yacc_impl_make_all:
+compiler_yacc_impl_clean:
+compiler_lex_make_all:
+compiler_lex_clean:
+compiler_clean: compiler_moc_header_clean compiler_rcc_clean
+
+####### Compile
+
+flash.o: src/external/flash/flash.cpp src/external/flash/flash.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o flash.o src/external/flash/flash.cpp
+
+blur.o: src/graphics/bitmap/blur.cpp src/graphics/bitmap/blur.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o blur.o src/graphics/bitmap/blur.cpp
+
+bitmapimage.o: src/graphics/bitmap/bitmapimage.cpp src/graphics/bitmap/bitmapimage.h \
+ src/graphics/bitmap/blur.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o bitmapimage.o src/graphics/bitmap/bitmapimage.cpp
+
+bezierarea.o: src/graphics/vector/bezierarea.cpp src/graphics/vector/bezierarea.h \
+ src/graphics/vector/vertexref.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o bezierarea.o src/graphics/vector/bezierarea.cpp
+
+beziercurve.o: src/graphics/vector/beziercurve.cpp src/graphics/vector/beziercurve.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o beziercurve.o src/graphics/vector/beziercurve.cpp
+
+colourref.o: src/graphics/vector/colourref.cpp src/graphics/vector/colourref.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o colourref.o src/graphics/vector/colourref.cpp
+
+gradient.o: src/graphics/vector/gradient.cpp src/graphics/vector/gradient.h \
+ src/graphics/vector/vectorimage.h \
+ src/graphics/vector/bezierarea.h \
+ src/graphics/vector/vertexref.h \
+ src/graphics/vector/beziercurve.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o gradient.o src/graphics/vector/gradient.cpp
+
+vectorimage.o: src/graphics/vector/vectorimage.cpp src/graphics/vector/vectorimage.h \
+ src/graphics/vector/bezierarea.h \
+ src/graphics/vector/vertexref.h \
+ src/graphics/vector/beziercurve.h \
+ src/graphics/vector/gradient.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o vectorimage.o src/graphics/vector/vectorimage.cpp
+
+vertexref.o: src/graphics/vector/vertexref.cpp src/graphics/vector/vertexref.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o vertexref.o src/graphics/vector/vertexref.cpp
+
+layer.o: src/structure/layer.cpp src/structure/layer.h \
+ src/structure/object.h \
+ src/structure/layerbitmap.h \
+ src/structure/layerimage.h \
+ src/structure/layervector.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o layer.o src/structure/layer.cpp
+
+layerbitmap.o: src/structure/layerbitmap.cpp src/structure/layerbitmap.h \
+ src/structure/layerimage.h \
+ src/structure/layer.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o layerbitmap.o src/structure/layerbitmap.cpp
+
+layercamera.o: src/structure/layercamera.cpp src/structure/layercamera.h \
+ src/structure/layerimage.h \
+ src/structure/layer.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o layercamera.o src/structure/layercamera.cpp
+
+layerimage.o: src/structure/layerimage.cpp src/structure/layerimage.h \
+ src/structure/layer.h \
+ src/structure/object.h \
+ src/structure/layerbitmap.h \
+ src/structure/layervector.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o layerimage.o src/structure/layerimage.cpp
+
+layersound.o: src/structure/layersound.cpp src/structure/layersound.h \
+ src/structure/layerimage.h \
+ src/structure/layer.h \
+ src/structure/object.h \
+ src/structure/layerbitmap.h \
+ src/structure/layervector.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o layersound.o src/structure/layersound.cpp
+
+layervector.o: src/structure/layervector.cpp src/structure/layervector.h \
+ src/structure/layerimage.h \
+ src/structure/layer.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o layervector.o src/structure/layervector.cpp
+
+object.o: src/structure/object.cpp src/structure/object.h \
+ src/structure/layer.h \
+ src/structure/layerbitmap.h \
+ src/structure/layerimage.h \
+ src/structure/layervector.h \
+ src/structure/layersound.h \
+ src/structure/layercamera.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o object.o src/structure/object.cpp
+
+editor.o: src/interface/editor.cpp src/interface/editor.h \
+ src/interface/timeline.h \
+ src/interface/toolset.h \
+ src/interface/scribblearea.h \
+ src/interface/preferences.h \
+ src/interface/palette.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o editor.o src/interface/editor.cpp
+
+mainwindow.o: src/interface/mainwindow.cpp src/interface/editor.h \
+ src/interface/timeline.h \
+ src/interface/toolset.h \
+ src/interface/scribblearea.h \
+ src/interface/preferences.h \
+ src/interface/palette.h \
+ src/interface/mainwindow.h \
+ src/interfaces.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o mainwindow.o src/interface/mainwindow.cpp
+
+palette.o: src/interface/palette.cpp src/interface/palette.h \
+ src/interface/toolset.h \
+ src/interface/editor.h \
+ src/interface/timeline.h \
+ src/interface/scribblearea.h \
+ src/interface/preferences.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o palette.o src/interface/palette.cpp
+
+preferences.o: src/interface/preferences.cpp src/interface/preferences.h \
+ src/interface/scribblearea.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o preferences.o src/interface/preferences.cpp
+
+scribblearea.o: src/interface/scribblearea.cpp src/interface/scribblearea.h \
+ src/interface/editor.h \
+ src/interface/timeline.h \
+ src/interface/toolset.h \
+ src/interface/preferences.h \
+ src/interface/palette.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o scribblearea.o src/interface/scribblearea.cpp
+
+timeline.o: src/interface/timeline.cpp src/interface/timeline.h \
+ src/interface/toolset.h \
+ src/interface/editor.h \
+ src/interface/scribblearea.h \
+ src/interface/preferences.h \
+ src/interface/palette.h \
+ src/interface/timecontrols.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o timeline.o src/interface/timeline.cpp
+
+timecontrols.o: src/interface/timecontrols.cpp src/interface/timecontrols.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o timecontrols.o src/interface/timecontrols.cpp
+
+toolset.o: src/interface/toolset.cpp src/interface/toolset.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o toolset.o src/interface/toolset.cpp
+
+main.o: src/main.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o src/main.cpp
+
+linux.o: src/external/linux/linux.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o linux.o src/external/linux/linux.cpp
+
+moc_layer.o: moc_layer.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_layer.o moc_layer.cpp
+
+moc_layerbitmap.o: moc_layerbitmap.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_layerbitmap.o moc_layerbitmap.cpp
+
+moc_layercamera.o: moc_layercamera.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_layercamera.o moc_layercamera.cpp
+
+moc_layerimage.o: moc_layerimage.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_layerimage.o moc_layerimage.cpp
+
+moc_layersound.o: moc_layersound.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_layersound.o moc_layersound.cpp
+
+moc_layervector.o: moc_layervector.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_layervector.o moc_layervector.cpp
+
+moc_object.o: moc_object.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_object.o moc_object.cpp
+
+moc_editor.o: moc_editor.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_editor.o moc_editor.cpp
+
+moc_mainwindow.o: moc_mainwindow.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_mainwindow.o moc_mainwindow.cpp
+
+moc_palette.o: moc_palette.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_palette.o moc_palette.cpp
+
+moc_preferences.o: moc_preferences.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_preferences.o moc_preferences.cpp
+
+moc_scribblearea.o: moc_scribblearea.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_scribblearea.o moc_scribblearea.cpp
+
+moc_timeline.o: moc_timeline.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_timeline.o moc_timeline.cpp
+
+moc_timecontrols.o: moc_timecontrols.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_timecontrols.o moc_timecontrols.cpp
+
+moc_toolset.o: moc_toolset.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_toolset.o moc_toolset.cpp
+
+qrc_pencil.o: qrc_pencil.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o qrc_pencil.o qrc_pencil.cpp
+
+####### Install
+
+install: FORCE
+
+uninstall: FORCE
+
+FORCE:
+
diff -rupN pencil_backup/moc_editor.cpp pencil_dev/moc_editor.cpp
--- pencil_backup/moc_editor.cpp 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_editor.cpp 2009-10-01 20:03:19.000000000 -0500
@@ -0,0 +1,469 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'editor.h'
+**
+** Created: Thu Oct 1 20:03:19 2009
+** by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/interface/editor.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'editor.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. 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_BackupElement[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_BackupElement[] = {
+ "BackupElement\0"
+};
+
+const QMetaObject BackupElement::staticMetaObject = {
+ { &QObject::staticMetaObject, qt_meta_stringdata_BackupElement,
+ qt_meta_data_BackupElement, 0 }
+};
+
+const QMetaObject *BackupElement::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *BackupElement::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_BackupElement))
+ return static_cast<void*>(const_cast< BackupElement*>(this));
+ return QObject::qt_metacast(_clname);
+}
+
+int BackupElement::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QObject::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ return _id;
+}
+static const uint qt_meta_data_BackupBitmapElement[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_BackupBitmapElement[] = {
+ "BackupBitmapElement\0"
+};
+
+const QMetaObject BackupBitmapElement::staticMetaObject = {
+ { &BackupElement::staticMetaObject, qt_meta_stringdata_BackupBitmapElement,
+ qt_meta_data_BackupBitmapElement, 0 }
+};
+
+const QMetaObject *BackupBitmapElement::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *BackupBitmapElement::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_BackupBitmapElement))
+ return static_cast<void*>(const_cast< BackupBitmapElement*>(this));
+ return BackupElement::qt_metacast(_clname);
+}
+
+int BackupBitmapElement::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = BackupElement::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ return _id;
+}
+static const uint qt_meta_data_BackupVectorElement[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_BackupVectorElement[] = {
+ "BackupVectorElement\0"
+};
+
+const QMetaObject BackupVectorElement::staticMetaObject = {
+ { &BackupElement::staticMetaObject, qt_meta_stringdata_BackupVectorElement,
+ qt_meta_data_BackupVectorElement, 0 }
+};
+
+const QMetaObject *BackupVectorElement::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *BackupVectorElement::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_BackupVectorElement))
+ return static_cast<void*>(const_cast< BackupVectorElement*>(this));
+ return BackupElement::qt_metacast(_clname);
+}
+
+int BackupVectorElement::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = BackupElement::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ return _id;
+}
+static const uint qt_meta_data_Editor[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 101, 12, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ // signals: signature, parameters, type, tag, flags
+ 8, 7, 7, 7, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+ 20, 7, 7, 7, 0x0a,
+ 42, 7, 37, 7, 0x0a,
+ 54, 7, 7, 7, 0x0a,
+ 77, 68, 7, 7, 0x0a,
+ 98, 7, 7, 7, 0x0a,
+ 112, 68, 7, 7, 0x0a,
+ 133, 7, 7, 7, 0x0a,
+ 149, 7, 7, 7, 0x0a,
+ 177, 165, 7, 7, 0x0a,
+ 194, 165, 7, 7, 0x0a,
+ 220, 165, 7, 7, 0x0a,
+ 233, 7, 7, 7, 0x0a,
+ 248, 7, 7, 7, 0x0a,
+ 264, 7, 7, 7, 0x0a,
+ 271, 7, 7, 7, 0x0a,
+ 285, 7, 7, 7, 0x0a,
+ 301, 7, 7, 7, 0x0a,
+ 320, 7, 316, 7, 0x0a,
+ 329, 7, 7, 7, 0x0a,
+ 339, 7, 7, 7, 0x0a,
+ 350, 7, 7, 7, 0x0a,
+ 366, 7, 7, 7, 0x0a,
+ 378, 7, 7, 7, 0x0a,
+ 411, 387, 7, 7, 0x0a,
+ 428, 7, 7, 7, 0x0a,
+ 440, 165, 7, 7, 0x0a,
+ 480, 454, 7, 7, 0x0a,
+ 498, 165, 7, 7, 0x0a,
+ 515, 165, 316, 7, 0x0a,
+ 540, 165, 316, 7, 0x0a,
+ 565, 7, 7, 7, 0x0a,
+ 583, 7, 7, 7, 0x0a,
+ 602, 595, 7, 7, 0x0a,
+ 621, 7, 7, 7, 0x0a,
+ 648, 636, 7, 7, 0x0a,
+ 669, 636, 7, 7, 0x0a,
+ 702, 698, 7, 7, 0x0a,
+ 721, 7, 7, 7, 0x0a,
+ 738, 7, 7, 7, 0x0a,
+ 754, 7, 7, 7, 0x0a,
+ 772, 7, 7, 7, 0x0a,
+ 790, 7, 7, 7, 0x0a,
+ 810, 7, 7, 7, 0x0a,
+ 828, 7, 7, 7, 0x0a,
+ 848, 7, 7, 7, 0x0a,
+ 869, 7, 7, 7, 0x0a,
+ 892, 7, 7, 7, 0x0a,
+ 909, 7, 7, 7, 0x0a,
+ 928, 7, 7, 7, 0x0a,
+ 950, 7, 7, 7, 0x0a,
+ 974, 7, 7, 7, 0x0a,
+ 996, 7, 7, 7, 0x0a,
+ 1020, 7, 7, 7, 0x0a,
+ 1038, 7, 7, 7, 0x0a,
+ 1064, 7, 7, 7, 0x0a,
+ 1082, 7, 7, 7, 0x0a,
+ 1100, 7, 7, 7, 0x0a,
+ 1124, 1122, 7, 7, 0x0a,
+ 1149, 1122, 7, 7, 0x0a,
+ 1174, 7, 7, 7, 0x0a,
+ 1186, 7, 7, 7, 0x0a,
+ 1204, 7, 7, 7, 0x0a,
+ 1224, 7, 7, 7, 0x0a,
+ 1250, 7, 7, 7, 0x0a,
+ 1265, 7, 7, 7, 0x0a,
+ 1283, 7, 7, 7, 0x0a,
+ 1292, 387, 7, 7, 0x0a,
+ 1308, 7, 7, 7, 0x0a,
+ 1315, 7, 7, 7, 0x0a,
+ 1322, 7, 7, 7, 0x0a,
+ 1329, 7, 7, 7, 0x0a,
+ 1337, 7, 7, 7, 0x0a,
+ 1356, 7, 7, 7, 0x0a,
+ 1373, 7, 7, 7, 0x0a,
+ 1390, 7, 7, 7, 0x0a,
+ 1406, 7, 7, 7, 0x0a,
+ 1423, 7, 7, 7, 0x0a,
+ 1444, 7, 7, 7, 0x0a,
+ 1459, 7, 7, 7, 0x0a,
+ 1481, 7, 7, 7, 0x0a,
+ 1495, 7, 7, 7, 0x0a,
+ 1508, 7, 7, 7, 0x0a,
+ 1526, 7, 7, 7, 0x0a,
+ 1549, 1546, 7, 7, 0x0a,
+ 1589, 7, 7, 7, 0x0a,
+ 1606, 7, 7, 7, 0x0a,
+ 1623, 7, 316, 7, 0x0a,
+ 1639, 7, 316, 7, 0x0a,
+ 1655, 7, 7, 7, 0x08,
+ 1669, 7, 7, 7, 0x08,
+ 1684, 7, 37, 7, 0x08,
+ 1699, 7, 7, 7, 0x08,
+ 1711, 7, 37, 7, 0x08,
+ 1721, 7, 37, 7, 0x08,
+ 1733, 7, 37, 7, 0x08,
+ 1745, 7, 37, 7, 0x08,
+ 1759, 7, 7, 7, 0x08,
+ 1773, 7, 7, 7, 0x08,
+ 1781, 7, 7, 7, 0x08,
+ 1791, 7, 7, 7, 0x08,
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_Editor[] = {
+ "Editor\0\0selectAll()\0showCounter(int)\0"
+ "bool\0maybeSave()\0importImage()\0filePath\0"
+ "importImage(QString)\0importSound()\0"
+ "importSound(QString)\0importPalette()\0"
+ "exportPalette()\0frameNumber\0"
+ "updateFrame(int)\0updateFrameAndVector(int)\0"
+ "scrubTo(int)\0scrubForward()\0scrubBackward()\0"
+ "play()\0startOrStop()\0playNextFrame()\0"
+ "changeFps(int)\0int\0getFps()\0setLoop()\0"
+ "setSound()\0previousLayer()\0nextLayer()\0"
+ "addKey()\0layerNumber,frameNumber\0"
+ "addKey(int,int&)\0removeKey()\0addFrame(int)\0"
+ "frameNumber1,frameNumber2\0addFrame(int,int)\0"
+ "removeFrame(int)\0getLastIndexAtFrame(int)\0"
+ "getLastFrameAtFrame(int)\0showPreferences()\0"
+ "newObject()\0object\0setObject(Object*)\0"
+ "updateObject()\0layerNumber\0"
+ "setCurrentLayer(int)\0switchVisibilityOfLayer(int)\0"
+ "i,j\0moveLayer(int,int)\0updateMaxFrame()\0"
+ "setWidth(qreal)\0applyWidth(qreal)\0"
+ "setFeather(qreal)\0applyFeather(qreal)\0"
+ "setOpacity(qreal)\0applyOpacity(qreal)\0"
+ "setInvisibility(int)\0applyInvisibility(int)\0"
+ "setPressure(int)\0applyPressure(int)\0"
+ "setPreserveAlpha(int)\0applyPreserveAlpha(int)\0"
+ "setFollowContour(int)\0applyFollowContour(int)\0"
+ "selectColour(int)\0selectAndApplyColour(int)\0"
+ "setColour(QColor)\0changeColour(int)\0"
+ "changeColourName(int)\0,\0"
+ "changeColour(int,QColor)\0"
+ "updateColour(int,QColor)\0addColour()\0"
+ "removeColour(int)\0changeAutosave(int)\0"
+ "changeAutosaveNumber(int)\0modification()\0"
+ "modification(int)\0backup()\0backup(int,int)\0"
+ "undo()\0redo()\0copy()\0paste()\0"
+ "clipboardChanged()\0newBitmapLayer()\0"
+ "newVectorLayer()\0newSoundLayer()\0"
+ "newCameraLayer()\0deleteCurrentLayer()\0"
+ "toggleMirror()\0toggleShowAllLayers()\0"
+ "resetMirror()\0openRecent()\0dockAllPalettes()\0"
+ "detachAllPalettes()\0,,\0"
+ "restorePalettesSettings(bool,bool,bool)\0"
+ "getPrevKeyFlip()\0getNextKeyFlip()\0"
+ "getPrevKey(int)\0getNextKey(int)\0"
+ "newDocument()\0openDocument()\0"
+ "saveDocument()\0saveForce()\0exportX()\0"
+ "exportSeq()\0exportMov()\0exportFlash()\0"
+ "showPalette()\0about()\0helpBox()\0"
+ "saveLength(QString)\0"
+};
+
+const QMetaObject Editor::staticMetaObject = {
+ { &QWidget::staticMetaObject, qt_meta_stringdata_Editor,
+ qt_meta_data_Editor, 0 }
+};
+
+const QMetaObject *Editor::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *Editor::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_Editor))
+ return static_cast<void*>(const_cast< Editor*>(this));
+ return QWidget::qt_metacast(_clname);
+}
+
+int Editor::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QWidget::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ switch (_id) {
+ case 0: selectAll(); break;
+ case 1: showCounter((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 2: { bool _r = maybeSave();
+ if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; } break;
+ case 3: importImage(); break;
+ case 4: importImage((*reinterpret_cast< QString(*)>(_a[1]))); break;
+ case 5: importSound(); break;
+ case 6: importSound((*reinterpret_cast< QString(*)>(_a[1]))); break;
+ case 7: importPalette(); break;
+ case 8: exportPalette(); break;
+ case 9: updateFrame((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 10: updateFrameAndVector((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 11: scrubTo((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 12: scrubForward(); break;
+ case 13: scrubBackward(); break;
+ case 14: play(); break;
+ case 15: startOrStop(); break;
+ case 16: playNextFrame(); break;
+ case 17: changeFps((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 18: { int _r = getFps();
+ if (_a[0]) *reinterpret_cast< int*>(_a[0]) = _r; } break;
+ case 19: setLoop(); break;
+ case 20: setSound(); break;
+ case 21: previousLayer(); break;
+ case 22: nextLayer(); break;
+ case 23: addKey(); break;
+ case 24: addKey((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
+ case 25: removeKey(); break;
+ case 26: addFrame((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 27: addFrame((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
+ case 28: removeFrame((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 29: { int _r = getLastIndexAtFrame((*reinterpret_cast< int(*)>(_a[1])));
+ if (_a[0]) *reinterpret_cast< int*>(_a[0]) = _r; } break;
+ case 30: { int _r = getLastFrameAtFrame((*reinterpret_cast< int(*)>(_a[1])));
+ if (_a[0]) *reinterpret_cast< int*>(_a[0]) = _r; } break;
+ case 31: showPreferences(); break;
+ case 32: newObject(); break;
+ case 33: setObject((*reinterpret_cast< Object*(*)>(_a[1]))); break;
+ case 34: updateObject(); break;
+ case 35: setCurrentLayer((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 36: switchVisibilityOfLayer((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 37: moveLayer((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
+ case 38: updateMaxFrame(); break;
+ case 39: setWidth((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+ case 40: applyWidth((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+ case 41: setFeather((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+ case 42: applyFeather((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+ case 43: setOpacity((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+ case 44: applyOpacity((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+ case 45: setInvisibility((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 46: applyInvisibility((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 47: setPressure((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 48: applyPressure((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 49: setPreserveAlpha((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 50: applyPreserveAlpha((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 51: setFollowContour((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 52: applyFollowContour((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 53: selectColour((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 54: selectAndApplyColour((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 55: setColour((*reinterpret_cast< QColor(*)>(_a[1]))); break;
+ case 56: changeColour((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 57: changeColourName((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 58: changeColour((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< QColor(*)>(_a[2]))); break;
+ case 59: updateColour((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< QColor(*)>(_a[2]))); break;
+ case 60: addColour(); break;
+ case 61: removeColour((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 62: changeAutosave((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 63: changeAutosaveNumber((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 64: modification(); break;
+ case 65: modification((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 66: backup(); break;
+ case 67: backup((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
+ case 68: undo(); break;
+ case 69: redo(); break;
+ case 70: copy(); break;
+ case 71: paste(); break;
+ case 72: clipboardChanged(); break;
+ case 73: newBitmapLayer(); break;
+ case 74: newVectorLayer(); break;
+ case 75: newSoundLayer(); break;
+ case 76: newCameraLayer(); break;
+ case 77: deleteCurrentLayer(); break;
+ case 78: toggleMirror(); break;
+ case 79: toggleShowAllLayers(); break;
+ case 80: resetMirror(); break;
+ case 81: openRecent(); break;
+ case 82: dockAllPalettes(); break;
+ case 83: detachAllPalettes(); break;
+ case 84: restorePalettesSettings((*reinterpret_cast< bool(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2])),(*reinterpret_cast< bool(*)>(_a[3]))); break;
+ case 85: getPrevKeyFlip(); break;
+ case 86: getNextKeyFlip(); break;
+ case 87: { int _r = getPrevKey((*reinterpret_cast< int(*)>(_a[1])));
+ if (_a[0]) *reinterpret_cast< int*>(_a[0]) = _r; } break;
+ case 88: { int _r = getNextKey((*reinterpret_cast< int(*)>(_a[1])));
+ if (_a[0]) *reinterpret_cast< int*>(_a[0]) = _r; } break;
+ case 89: newDocument(); break;
+ case 90: openDocument(); break;
+ case 91: { bool _r = saveDocument();
+ if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; } break;
+ case 92: saveForce(); break;
+ case 93: { bool _r = exportX();
+ if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; } break;
+ case 94: { bool _r = exportSeq();
+ if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; } break;
+ case 95: { bool _r = exportMov();
+ if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; } break;
+ case 96: { bool _r = exportFlash();
+ if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; } break;
+ case 97: showPalette(); break;
+ case 98: about(); break;
+ case 99: helpBox(); break;
+ case 100: saveLength((*reinterpret_cast< QString(*)>(_a[1]))); break;
+ default: ;
+ }
+ _id -= 101;
+ }
+ return _id;
+}
+
+// SIGNAL 0
+void Editor::selectAll()
+{
+ QMetaObject::activate(this, &staticMetaObject, 0, 0);
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_editor.o and pencil_dev/moc_editor.o differ
diff -rupN pencil_backup/moc_layerbitmap.cpp pencil_dev/moc_layerbitmap.cpp
--- pencil_backup/moc_layerbitmap.cpp 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_layerbitmap.cpp 2009-09-28 17:10:22.000000000 -0500
@@ -0,0 +1,63 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'layerbitmap.h'
+**
+** Created: Mon Sep 28 17:10:22 2009
+** by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/structure/layerbitmap.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'layerbitmap.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. 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_LayerBitmap[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_LayerBitmap[] = {
+ "LayerBitmap\0"
+};
+
+const QMetaObject LayerBitmap::staticMetaObject = {
+ { &LayerImage::staticMetaObject, qt_meta_stringdata_LayerBitmap,
+ qt_meta_data_LayerBitmap, 0 }
+};
+
+const QMetaObject *LayerBitmap::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *LayerBitmap::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_LayerBitmap))
+ return static_cast<void*>(const_cast< LayerBitmap*>(this));
+ return LayerImage::qt_metacast(_clname);
+}
+
+int LayerBitmap::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = LayerImage::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ return _id;
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_layerbitmap.o and pencil_dev/moc_layerbitmap.o differ
diff -rupN pencil_backup/moc_layercamera.cpp pencil_dev/moc_layercamera.cpp
--- pencil_backup/moc_layercamera.cpp 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_layercamera.cpp 2009-09-28 17:10:24.000000000 -0500
@@ -0,0 +1,106 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'layercamera.h'
+**
+** Created: Mon Sep 28 17:10:24 2009
+** by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/structure/layercamera.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'layercamera.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. 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_CameraPropertiesDialog[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_CameraPropertiesDialog[] = {
+ "CameraPropertiesDialog\0"
+};
+
+const QMetaObject CameraPropertiesDialog::staticMetaObject = {
+ { &QDialog::staticMetaObject, qt_meta_stringdata_CameraPropertiesDialog,
+ qt_meta_data_CameraPropertiesDialog, 0 }
+};
+
+const QMetaObject *CameraPropertiesDialog::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *CameraPropertiesDialog::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_CameraPropertiesDialog))
+ return static_cast<void*>(const_cast< CameraPropertiesDialog*>(this));
+ return QDialog::qt_metacast(_clname);
+}
+
+int CameraPropertiesDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QDialog::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ return _id;
+}
+static const uint qt_meta_data_LayerCamera[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_LayerCamera[] = {
+ "LayerCamera\0"
+};
+
+const QMetaObject LayerCamera::staticMetaObject = {
+ { &LayerImage::staticMetaObject, qt_meta_stringdata_LayerCamera,
+ qt_meta_data_LayerCamera, 0 }
+};
+
+const QMetaObject *LayerCamera::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *LayerCamera::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_LayerCamera))
+ return static_cast<void*>(const_cast< LayerCamera*>(this));
+ return LayerImage::qt_metacast(_clname);
+}
+
+int LayerCamera::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = LayerImage::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ return _id;
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_layercamera.o and pencil_dev/moc_layercamera.o differ
diff -rupN pencil_backup/moc_layer.cpp pencil_dev/moc_layer.cpp
--- pencil_backup/moc_layer.cpp 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_layer.cpp 2009-09-28 17:10:20.000000000 -0500
@@ -0,0 +1,63 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'layer.h'
+**
+** Created: Mon Sep 28 17:10:20 2009
+** by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/structure/layer.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'layer.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. 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_Layer[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_Layer[] = {
+ "Layer\0"
+};
+
+const QMetaObject Layer::staticMetaObject = {
+ { &QObject::staticMetaObject, qt_meta_stringdata_Layer,
+ qt_meta_data_Layer, 0 }
+};
+
+const QMetaObject *Layer::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *Layer::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_Layer))
+ return static_cast<void*>(const_cast< Layer*>(this));
+ return QObject::qt_metacast(_clname);
+}
+
+int Layer::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QObject::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ return _id;
+}
+QT_END_MOC_NAMESPACE
diff -rupN pencil_backup/moc_layerimage.cpp pencil_dev/moc_layerimage.cpp
--- pencil_backup/moc_layerimage.cpp 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_layerimage.cpp 2009-09-28 17:10:27.000000000 -0500
@@ -0,0 +1,99 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'layerimage.h'
+**
+** Created: Mon Sep 28 17:10:27 2009
+** by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/structure/layerimage.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'layerimage.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. 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_LayerImage[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 3, 12, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ // signals: signature, parameters, type, tag, flags
+ 12, 11, 11, 11, 0x05,
+ 30, 28, 11, 11, 0x05,
+ 50, 11, 11, 11, 0x05,
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_LayerImage[] = {
+ "LayerImage\0\0imageAdded(int)\0,\0"
+ "imageAdded(int,int)\0imageRemoved(int)\0"
+};
+
+const QMetaObject LayerImage::staticMetaObject = {
+ { &Layer::staticMetaObject, qt_meta_stringdata_LayerImage,
+ qt_meta_data_LayerImage, 0 }
+};
+
+const QMetaObject *LayerImage::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *LayerImage::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_LayerImage))
+ return static_cast<void*>(const_cast< LayerImage*>(this));
+ return Layer::qt_metacast(_clname);
+}
+
+int LayerImage::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = Layer::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ switch (_id) {
+ case 0: imageAdded((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 1: imageAdded((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
+ case 2: imageRemoved((*reinterpret_cast< int(*)>(_a[1]))); break;
+ default: ;
+ }
+ _id -= 3;
+ }
+ return _id;
+}
+
+// SIGNAL 0
+void LayerImage::imageAdded(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+
+// SIGNAL 1
+void LayerImage::imageAdded(int _t1, int _t2)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
+ QMetaObject::activate(this, &staticMetaObject, 1, _a);
+}
+
+// SIGNAL 2
+void LayerImage::imageRemoved(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 2, _a);
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_layerimage.o and pencil_dev/moc_layerimage.o differ
Binary files pencil_backup/moc_layer.o and pencil_dev/moc_layer.o differ
diff -rupN pencil_backup/moc_layersound.cpp pencil_dev/moc_layersound.cpp
--- pencil_backup/moc_layersound.cpp 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_layersound.cpp 2009-09-28 17:10:29.000000000 -0500
@@ -0,0 +1,63 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'layersound.h'
+**
+** Created: Mon Sep 28 17:10:29 2009
+** by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/structure/layersound.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'layersound.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. 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_LayerSound[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_LayerSound[] = {
+ "LayerSound\0"
+};
+
+const QMetaObject LayerSound::staticMetaObject = {
+ { &LayerImage::staticMetaObject, qt_meta_stringdata_LayerSound,
+ qt_meta_data_LayerSound, 0 }
+};
+
+const QMetaObject *LayerSound::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *LayerSound::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_LayerSound))
+ return static_cast<void*>(const_cast< LayerSound*>(this));
+ return LayerImage::qt_metacast(_clname);
+}
+
+int LayerSound::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = LayerImage::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ return _id;
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_layersound.o and pencil_dev/moc_layersound.o differ
diff -rupN pencil_backup/moc_layervector.cpp pencil_dev/moc_layervector.cpp
--- pencil_backup/moc_layervector.cpp 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_layervector.cpp 2009-09-28 17:10:31.000000000 -0500
@@ -0,0 +1,63 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'layervector.h'
+**
+** Created: Mon Sep 28 17:10:31 2009
+** by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/structure/layervector.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'layervector.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. 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_LayerVector[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_LayerVector[] = {
+ "LayerVector\0"
+};
+
+const QMetaObject LayerVector::staticMetaObject = {
+ { &LayerImage::staticMetaObject, qt_meta_stringdata_LayerVector,
+ qt_meta_data_LayerVector, 0 }
+};
+
+const QMetaObject *LayerVector::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *LayerVector::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_LayerVector))
+ return static_cast<void*>(const_cast< LayerVector*>(this));
+ return LayerImage::qt_metacast(_clname);
+}
+
+int LayerVector::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = LayerImage::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ return _id;
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_layervector.o and pencil_dev/moc_layervector.o differ
diff -rupN pencil_backup/moc_mainwindow.cpp pencil_dev/moc_mainwindow.cpp
--- pencil_backup/moc_mainwindow.cpp 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_mainwindow.cpp 2009-10-01 20:03:22.000000000 -0500
@@ -0,0 +1,76 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'mainwindow.h'
+**
+** Created: Thu Oct 1 20:03:22 2009
+** by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/interface/mainwindow.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'mainwindow.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. 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_MainWindow[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 2, 12, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ // slots: signature, parameters, type, tag, flags
+ 20, 12, 11, 11, 0x0a,
+ 36, 11, 11, 11, 0x08,
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_MainWindow[] = {
+ "MainWindow\0\0opacity\0setOpacity(int)\0"
+ "exportFile()\0"
+};
+
+const QMetaObject MainWindow::staticMetaObject = {
+ { &QMainWindow::staticMetaObject, qt_meta_stringdata_MainWindow,
+ qt_meta_data_MainWindow, 0 }
+};
+
+const QMetaObject *MainWindow::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *MainWindow::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_MainWindow))
+ return static_cast<void*>(const_cast< MainWindow*>(this));
+ return QMainWindow::qt_metacast(_clname);
+}
+
+int MainWindow::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: setOpacity((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 1: exportFile(); break;
+ default: ;
+ }
+ _id -= 2;
+ }
+ return _id;
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_mainwindow.o and pencil_dev/moc_mainwindow.o differ
diff -rupN pencil_backup/moc_object.cpp pencil_dev/moc_object.cpp
--- pencil_backup/moc_object.cpp 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_object.cpp 2009-09-28 17:10:34.000000000 -0500
@@ -0,0 +1,111 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'object.h'
+**
+** Created: Mon Sep 28 17:10:34 2009
+** by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/structure/object.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'object.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. 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_Object[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 7, 12, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ // signals: signature, parameters, type, tag, flags
+ 8, 7, 7, 7, 0x05,
+ 26, 24, 7, 7, 0x05,
+ 46, 7, 7, 7, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+ 64, 7, 7, 7, 0x0a,
+ 79, 7, 7, 7, 0x0a,
+ 94, 7, 7, 7, 0x0a,
+ 108, 7, 7, 7, 0x0a,
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_Object[] = {
+ "Object\0\0imageAdded(int)\0,\0imageAdded(int,int)\0"
+ "imageRemoved(int)\0modification()\0"
+ "toggleMirror()\0resetMirror()\0"
+ "imageCheck(int)\0"
+};
+
+const QMetaObject Object::staticMetaObject = {
+ { &QObject::staticMetaObject, qt_meta_stringdata_Object,
+ qt_meta_data_Object, 0 }
+};
+
+const QMetaObject *Object::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *Object::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_Object))
+ return static_cast<void*>(const_cast< Object*>(this));
+ return QObject::qt_metacast(_clname);
+}
+
+int Object::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QObject::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ switch (_id) {
+ case 0: imageAdded((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 1: imageAdded((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
+ case 2: imageRemoved((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 3: modification(); break;
+ case 4: toggleMirror(); break;
+ case 5: resetMirror(); break;
+ case 6: imageCheck((*reinterpret_cast< int(*)>(_a[1]))); break;
+ default: ;
+ }
+ _id -= 7;
+ }
+ return _id;
+}
+
+// SIGNAL 0
+void Object::imageAdded(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+
+// SIGNAL 1
+void Object::imageAdded(int _t1, int _t2)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
+ QMetaObject::activate(this, &staticMetaObject, 1, _a);
+}
+
+// SIGNAL 2
+void Object::imageRemoved(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 2, _a);
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_object.o and pencil_dev/moc_object.o differ
diff -rupN pencil_backup/moc_palette.cpp pencil_dev/moc_palette.cpp
--- pencil_backup/moc_palette.cpp 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_palette.cpp 2009-09-28 17:10:42.000000000 -0500
@@ -0,0 +1,110 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'palette.h'
+**
+** Created: Mon Sep 28 17:10:42 2009
+** by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/interface/palette.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'palette.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. 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_Palette[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 15, 12, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ // slots: signature, parameters, type, tag, flags
+ 9, 8, 8, 8, 0x0a,
+ 22, 8, 8, 8, 0x0a,
+ 45, 43, 8, 8, 0x0a,
+ 63, 8, 8, 8, 0x0a,
+ 85, 81, 8, 8, 0x0a,
+ 112, 8, 8, 8, 0x08,
+ 136, 134, 8, 8, 0x08,
+ 184, 8, 8, 8, 0x08,
+ 223, 8, 8, 8, 0x08,
+ 238, 8, 8, 8, 0x08,
+ 253, 8, 8, 8, 0x08,
+ 284, 8, 8, 8, 0x08,
+ 319, 8, 8, 8, 0x08,
+ 330, 8, 8, 8, 0x08,
+ 340, 8, 8, 8, 0x08,
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_Palette[] = {
+ "Palette\0\0updateList()\0updateSwatch(QColor)\0"
+ "i\0selectColour(int)\0setColour(QColor)\0"
+ ",,,\0setColour(int,int,int,int)\0"
+ "colourSwatchClicked()\0,\0"
+ "selectColour(QListWidgetItem*,QListWidgetItem*)\0"
+ "selectAndApplyColour(QListWidgetItem*)\0"
+ "updateColour()\0changeColour()\0"
+ "changeColour(QListWidgetItem*)\0"
+ "changeColourName(QListWidgetItem*)\0"
+ "addClick()\0rmClick()\0closeIfDocked(bool)\0"
+};
+
+const QMetaObject Palette::staticMetaObject = {
+ { &QDockWidget::staticMetaObject, qt_meta_stringdata_Palette,
+ qt_meta_data_Palette, 0 }
+};
+
+const QMetaObject *Palette::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *Palette::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_Palette))
+ return static_cast<void*>(const_cast< Palette*>(this));
+ return QDockWidget::qt_metacast(_clname);
+}
+
+int Palette::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QDockWidget::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ switch (_id) {
+ case 0: updateList(); break;
+ case 1: updateSwatch((*reinterpret_cast< QColor(*)>(_a[1]))); break;
+ case 2: selectColour((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 3: setColour((*reinterpret_cast< QColor(*)>(_a[1]))); break;
+ case 4: setColour((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< int(*)>(_a[3])),(*reinterpret_cast< int(*)>(_a[4]))); break;
+ case 5: colourSwatchClicked(); break;
+ case 6: selectColour((*reinterpret_cast< QListWidgetItem*(*)>(_a[1])),(*reinterpret_cast< QListWidgetItem*(*)>(_a[2]))); break;
+ case 7: selectAndApplyColour((*reinterpret_cast< QListWidgetItem*(*)>(_a[1]))); break;
+ case 8: updateColour(); break;
+ case 9: changeColour(); break;
+ case 10: changeColour((*reinterpret_cast< QListWidgetItem*(*)>(_a[1]))); break;
+ case 11: changeColourName((*reinterpret_cast< QListWidgetItem*(*)>(_a[1]))); break;
+ case 12: addClick(); break;
+ case 13: rmClick(); break;
+ case 14: closeIfDocked((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ default: ;
+ }
+ _id -= 15;
+ }
+ return _id;
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_palette.o and pencil_dev/moc_palette.o differ
diff -rupN pencil_backup/moc_preferences.cpp pencil_dev/moc_preferences.cpp
--- pencil_backup/moc_preferences.cpp 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_preferences.cpp 2009-10-01 20:03:24.000000000 -0500
@@ -0,0 +1,427 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'preferences.h'
+**
+** Created: Thu Oct 1 20:03:24 2009
+** by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/interface/preferences.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'preferences.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. 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_Preferences[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 24, 12, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ // signals: signature, parameters, type, tag, flags
+ 13, 12, 12, 12, 0x05,
+ 38, 12, 12, 12, 0x05,
+ 62, 12, 12, 12, 0x05,
+ 88, 12, 12, 12, 0x05,
+ 115, 12, 12, 12, 0x05,
+ 139, 12, 12, 12, 0x05,
+ 160, 12, 12, 12, 0x05,
+ 182, 12, 12, 12, 0x05,
+ 201, 12, 12, 12, 0x05,
+ 224, 12, 12, 12, 0x05,
+ 241, 12, 12, 12, 0x05,
+ 265, 12, 12, 12, 0x05,
+ 295, 12, 12, 12, 0x05,
+ 328, 12, 12, 12, 0x05,
+ 353, 12, 12, 12, 0x05,
+ 374, 12, 12, 12, 0x05,
+ 399, 12, 12, 12, 0x05,
+ 419, 12, 12, 12, 0x05,
+ 445, 12, 12, 12, 0x05,
+ 471, 12, 12, 12, 0x05,
+ 491, 12, 12, 12, 0x05,
+ 512, 12, 12, 12, 0x05,
+ 529, 12, 12, 12, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+ 563, 546, 12, 12, 0x0a,
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_Preferences[] = {
+ "Preferences\0\0windowOpacityChange(int)\0"
+ "curveOpacityChange(int)\0"
+ "curveSmoothingChange(int)\0"
+ "highResPositionChange(int)\0"
+ "antialiasingChange(int)\0gradientsChange(int)\0"
+ "backgroundChange(int)\0shadowsChange(int)\0"
+ "toolCursorsChange(int)\0styleChange(int)\0"
+ "onionOpacityChange(int)\0"
+ "onionStraightAheadChange(int)\0"
+ "onionPreviousPreviousChange(int)\0"
+ "onionPreviousChange(int)\0onionNextChange(int)\0"
+ "onionNextNextChange(int)\0autosaveChange(int)\0"
+ "autosaveNumberChange(int)\0"
+ "lengthSizeChange(QString)\0fontSizeChange(int)\0"
+ "frameSizeChange(int)\0labelChange(int)\0"
+ "scrubChange(int)\0current,previous\0"
+ "changePage(QListWidgetItem*,QListWidgetItem*)\0"
+};
+
+const QMetaObject Preferences::staticMetaObject = {
+ { &QDialog::staticMetaObject, qt_meta_stringdata_Preferences,
+ qt_meta_data_Preferences, 0 }
+};
+
+const QMetaObject *Preferences::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *Preferences::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_Preferences))
+ return static_cast<void*>(const_cast< Preferences*>(this));
+ return QDialog::qt_metacast(_clname);
+}
+
+int Preferences::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QDialog::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ switch (_id) {
+ case 0: windowOpacityChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 1: curveOpacityChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 2: curveSmoothingChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 3: highResPositionChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 4: antialiasingChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 5: gradientsChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 6: backgroundChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 7: shadowsChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 8: toolCursorsChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 9: styleChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 10: onionOpacityChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 11: onionStraightAheadChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 12: onionPreviousPreviousChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 13: onionPreviousChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 14: onionNextChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 15: onionNextNextChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 16: autosaveChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 17: autosaveNumberChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 18: lengthSizeChange((*reinterpret_cast< QString(*)>(_a[1]))); break;
+ case 19: fontSizeChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 20: frameSizeChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 21: labelChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 22: scrubChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 23: changePage((*reinterpret_cast< QListWidgetItem*(*)>(_a[1])),(*reinterpret_cast< QListWidgetItem*(*)>(_a[2]))); break;
+ default: ;
+ }
+ _id -= 24;
+ }
+ return _id;
+}
+
+// SIGNAL 0
+void Preferences::windowOpacityChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+
+// SIGNAL 1
+void Preferences::curveOpacityChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 1, _a);
+}
+
+// SIGNAL 2
+void Preferences::curveSmoothingChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 2, _a);
+}
+
+// SIGNAL 3
+void Preferences::highResPositionChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 3, _a);
+}
+
+// SIGNAL 4
+void Preferences::antialiasingChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 4, _a);
+}
+
+// SIGNAL 5
+void Preferences::gradientsChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 5, _a);
+}
+
+// SIGNAL 6
+void Preferences::backgroundChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 6, _a);
+}
+
+// SIGNAL 7
+void Preferences::shadowsChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 7, _a);
+}
+
+// SIGNAL 8
+void Preferences::toolCursorsChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 8, _a);
+}
+
+// SIGNAL 9
+void Preferences::styleChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 9, _a);
+}
+
+// SIGNAL 10
+void Preferences::onionOpacityChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 10, _a);
+}
+
+// SIGNAL 11
+void Preferences::onionStraightAheadChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 11, _a);
+}
+
+// SIGNAL 12
+void Preferences::onionPreviousPreviousChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 12, _a);
+}
+
+// SIGNAL 13
+void Preferences::onionPreviousChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 13, _a);
+}
+
+// SIGNAL 14
+void Preferences::onionNextChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 14, _a);
+}
+
+// SIGNAL 15
+void Preferences::onionNextNextChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 15, _a);
+}
+
+// SIGNAL 16
+void Preferences::autosaveChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 16, _a);
+}
+
+// SIGNAL 17
+void Preferences::autosaveNumberChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 17, _a);
+}
+
+// SIGNAL 18
+void Preferences::lengthSizeChange(QString _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 18, _a);
+}
+
+// SIGNAL 19
+void Preferences::fontSizeChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 19, _a);
+}
+
+// SIGNAL 20
+void Preferences::frameSizeChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 20, _a);
+}
+
+// SIGNAL 21
+void Preferences::labelChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 21, _a);
+}
+
+// SIGNAL 22
+void Preferences::scrubChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 22, _a);
+}
+static const uint qt_meta_data_GeneralPage[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_GeneralPage[] = {
+ "GeneralPage\0"
+};
+
+const QMetaObject GeneralPage::staticMetaObject = {
+ { &QWidget::staticMetaObject, qt_meta_stringdata_GeneralPage,
+ qt_meta_data_GeneralPage, 0 }
+};
+
+const QMetaObject *GeneralPage::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *GeneralPage::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_GeneralPage))
+ return static_cast<void*>(const_cast< GeneralPage*>(this));
+ return QWidget::qt_metacast(_clname);
+}
+
+int GeneralPage::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QWidget::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ return _id;
+}
+static const uint qt_meta_data_TimelinePage[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_TimelinePage[] = {
+ "TimelinePage\0"
+};
+
+const QMetaObject TimelinePage::staticMetaObject = {
+ { &QWidget::staticMetaObject, qt_meta_stringdata_TimelinePage,
+ qt_meta_data_TimelinePage, 0 }
+};
+
+const QMetaObject *TimelinePage::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *TimelinePage::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_TimelinePage))
+ return static_cast<void*>(const_cast< TimelinePage*>(this));
+ return QWidget::qt_metacast(_clname);
+}
+
+int TimelinePage::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QWidget::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ return _id;
+}
+static const uint qt_meta_data_FilesPage[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_FilesPage[] = {
+ "FilesPage\0"
+};
+
+const QMetaObject FilesPage::staticMetaObject = {
+ { &QWidget::staticMetaObject, qt_meta_stringdata_FilesPage,
+ qt_meta_data_FilesPage, 0 }
+};
+
+const QMetaObject *FilesPage::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *FilesPage::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_FilesPage))
+ return static_cast<void*>(const_cast< FilesPage*>(this));
+ return QWidget::qt_metacast(_clname);
+}
+
+int FilesPage::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
Binary files pencil_backup/moc_preferences.o and pencil_dev/moc_preferences.o differ
diff -rupN pencil_backup/moc_scribblearea.cpp pencil_dev/moc_scribblearea.cpp
--- pencil_backup/moc_scribblearea.cpp 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_scribblearea.cpp 2009-10-01 20:03:27.000000000 -0500
@@ -0,0 +1,285 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'scribblearea.h'
+**
+** Created: Thu Oct 1 20:03:27 2009
+** by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/interface/scribblearea.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'scribblearea.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. 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_ScribbleArea[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 62, 12, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ // signals: signature, parameters, type, tag, flags
+ 14, 13, 13, 13, 0x05,
+ 29, 13, 13, 13, 0x05,
+ 47, 13, 13, 13, 0x05,
+ 70, 13, 13, 13, 0x05,
+ 92, 13, 13, 13, 0x05,
+ 107, 13, 13, 13, 0x05,
+ 118, 13, 13, 13, 0x05,
+ 134, 13, 13, 13, 0x05,
+ 158, 13, 13, 13, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+ 178, 13, 13, 13, 0x0a,
+ 191, 13, 13, 13, 0x0a,
+ 216, 13, 13, 13, 0x0a,
+ 251, 13, 13, 13, 0x0a,
+ 303, 279, 13, 13, 0x0a,
+ 324, 13, 13, 13, 0x0a,
+ 336, 13, 13, 13, 0x0a,
+ 350, 13, 13, 13, 0x0a,
+ 362, 13, 13, 13, 0x0a,
+ 381, 13, 13, 13, 0x0a,
+ 400, 13, 13, 13, 0x0a,
+ 421, 13, 13, 13, 0x0a,
+ 444, 13, 13, 13, 0x0a,
+ 473, 13, 13, 13, 0x0a,
+ 505, 13, 13, 13, 0x0a,
+ 529, 13, 13, 13, 0x0a,
+ 549, 13, 13, 13, 0x0a,
+ 573, 13, 13, 13, 0x0a,
+ 584, 13, 13, 13, 0x0a,
+ 595, 13, 13, 13, 0x0a,
+ 606, 13, 13, 13, 0x0a,
+ 615, 13, 13, 13, 0x0a,
+ 624, 13, 13, 13, 0x0a,
+ 641, 636, 13, 13, 0x0a,
+ 668, 13, 660, 13, 0x0a,
+ 680, 13, 13, 13, 0x0a,
+ 688, 13, 13, 13, 0x0a,
+ 701, 13, 13, 13, 0x0a,
+ 712, 13, 13, 13, 0x0a,
+ 727, 13, 13, 13, 0x0a,
+ 741, 13, 13, 13, 0x0a,
+ 752, 13, 13, 13, 0x0a,
+ 768, 13, 13, 13, 0x0a,
+ 786, 13, 13, 13, 0x0a,
+ 804, 13, 13, 13, 0x0a,
+ 822, 13, 13, 13, 0x0a,
+ 844, 13, 13, 13, 0x0a,
+ 867, 13, 13, 13, 0x0a,
+ 890, 13, 13, 13, 0x0a,
+ 911, 13, 13, 13, 0x0a,
+ 934, 13, 13, 13, 0x0a,
+ 958, 13, 13, 13, 0x0a,
+ 979, 13, 13, 13, 0x0a,
+ 997, 13, 13, 13, 0x0a,
+ 1016, 13, 13, 13, 0x0a,
+ 1044, 13, 13, 13, 0x0a,
+ 1060, 13, 13, 13, 0x0a,
+ 1080, 13, 13, 13, 0x0a,
+ 1094, 13, 13, 13, 0x0a,
+ 1112, 13, 13, 13, 0x0a,
+ 1129, 13, 13, 13, 0x0a,
+ 1144, 13, 13, 13, 0x0a,
+ 1166, 13, 13, 13, 0x0a,
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_ScribbleArea[] = {
+ "ScribbleArea\0\0modification()\0"
+ "modification(int)\0thinLinesChanged(bool)\0"
+ "outlinesChanged(bool)\0flipPrevious()\0"
+ "flipNext()\0onionShortCut()\0"
+ "straightAheadShortCut()\0inbetweenShortCut()\0"
+ "clearImage()\0calculateSelectionRect()\0"
+ "calculateSelectionTransformation()\0"
+ "paintTransformedSelection()\0"
+ "layerNumber,frameNumber\0setModified(int,int)\0"
+ "selectAll()\0deselectAll()\0onionIsOn()\0"
+ "onionChangeSlot1()\0onionChangeSlot2()\0"
+ "onionChangeSlot(int)\0onionOpacityLevel(int)\0"
+ "onionStraightAheadLevel(int)\0"
+ "onionPreviousPreviousLevel(int)\0"
+ "onionPreviousLevel(int)\0onionNextLevel(int)\0"
+ "onionNextNextLevel(int)\0pencilOn()\0"
+ "eraserOn()\0selectOn()\0moveOn()\0handOn()\0"
+ "resetView()\0view\0setMyView(QMatrix)\0"
+ "QMatrix\0getMyView()\0penOn()\0polylineOn()\0"
+ "bucketOn()\0eyedropperOn()\0colouringOn()\0"
+ "smudgeOn()\0setWidth(qreal)\0setFeather(qreal)\0"
+ "setOpacity(qreal)\0setPressure(bool)\0"
+ "setInvisibility(bool)\0setPreserveAlpha(bool)\0"
+ "setFollowContour(bool)\0setCurveOpacity(int)\0"
+ "setCurveSmoothing(int)\0setHighResPosition(int)\0"
+ "setAntialiasing(int)\0setGradients(int)\0"
+ "setBackground(int)\0setBackgroundBrush(QString)\0"
+ "setShadows(int)\0setToolCursors(int)\0"
+ "setStyle(int)\0toggleThinLines()\0"
+ "toggleOutlines()\0toggleMirror()\0"
+ "toggleShowAllLayers()\0escape()\0"
+};
+
+const QMetaObject ScribbleArea::staticMetaObject = {
+ { &QWidget::staticMetaObject, qt_meta_stringdata_ScribbleArea,
+ qt_meta_data_ScribbleArea, 0 }
+};
+
+const QMetaObject *ScribbleArea::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *ScribbleArea::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_ScribbleArea))
+ return static_cast<void*>(const_cast< ScribbleArea*>(this));
+ return QWidget::qt_metacast(_clname);
+}
+
+int ScribbleArea::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QWidget::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ switch (_id) {
+ case 0: modification(); break;
+ case 1: modification((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 2: thinLinesChanged((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ case 3: outlinesChanged((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ case 4: flipPrevious(); break;
+ case 5: flipNext(); break;
+ case 6: onionShortCut(); break;
+ case 7: straightAheadShortCut(); break;
+ case 8: inbetweenShortCut(); break;
+ case 9: clearImage(); break;
+ case 10: calculateSelectionRect(); break;
+ case 11: calculateSelectionTransformation(); break;
+ case 12: paintTransformedSelection(); break;
+ case 13: setModified((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
+ case 14: selectAll(); break;
+ case 15: deselectAll(); break;
+ case 16: onionIsOn(); break;
+ case 17: onionChangeSlot1(); break;
+ case 18: onionChangeSlot2(); break;
+ case 19: onionChangeSlot((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 20: onionOpacityLevel((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 21: onionStraightAheadLevel((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 22: onionPreviousPreviousLevel((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 23: onionPreviousLevel((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 24: onionNextLevel((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 25: onionNextNextLevel((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 26: pencilOn(); break;
+ case 27: eraserOn(); break;
+ case 28: selectOn(); break;
+ case 29: moveOn(); break;
+ case 30: handOn(); break;
+ case 31: resetView(); break;
+ case 32: setMyView((*reinterpret_cast< QMatrix(*)>(_a[1]))); break;
+ case 33: { QMatrix _r = getMyView();
+ if (_a[0]) *reinterpret_cast< QMatrix*>(_a[0]) = _r; } break;
+ case 34: penOn(); break;
+ case 35: polylineOn(); break;
+ case 36: bucketOn(); break;
+ case 37: eyedropperOn(); break;
+ case 38: colouringOn(); break;
+ case 39: smudgeOn(); break;
+ case 40: setWidth((*reinterpret_cast< const qreal(*)>(_a[1]))); break;
+ case 41: setFeather((*reinterpret_cast< const qreal(*)>(_a[1]))); break;
+ case 42: setOpacity((*reinterpret_cast< const qreal(*)>(_a[1]))); break;
+ case 43: setPressure((*reinterpret_cast< const bool(*)>(_a[1]))); break;
+ case 44: setInvisibility((*reinterpret_cast< const bool(*)>(_a[1]))); break;
+ case 45: setPreserveAlpha((*reinterpret_cast< const bool(*)>(_a[1]))); break;
+ case 46: setFollowContour((*reinterpret_cast< const bool(*)>(_a[1]))); break;
+ case 47: setCurveOpacity((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 48: setCurveSmoothing((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 49: setHighResPosition((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 50: setAntialiasing((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 51: setGradients((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 52: setBackground((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 53: setBackgroundBrush((*reinterpret_cast< QString(*)>(_a[1]))); break;
+ case 54: setShadows((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 55: setToolCursors((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 56: setStyle((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 57: toggleThinLines(); break;
+ case 58: toggleOutlines(); break;
+ case 59: toggleMirror(); break;
+ case 60: toggleShowAllLayers(); break;
+ case 61: escape(); break;
+ default: ;
+ }
+ _id -= 62;
+ }
+ return _id;
+}
+
+// SIGNAL 0
+void ScribbleArea::modification()
+{
+ QMetaObject::activate(this, &staticMetaObject, 0, 0);
+}
+
+// SIGNAL 1
+void ScribbleArea::modification(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 1, _a);
+}
+
+// SIGNAL 2
+void ScribbleArea::thinLinesChanged(bool _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 2, _a);
+}
+
+// SIGNAL 3
+void ScribbleArea::outlinesChanged(bool _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 3, _a);
+}
+
+// SIGNAL 4
+void ScribbleArea::flipPrevious()
+{
+ QMetaObject::activate(this, &staticMetaObject, 4, 0);
+}
+
+// SIGNAL 5
+void ScribbleArea::flipNext()
+{
+ QMetaObject::activate(this, &staticMetaObject, 5, 0);
+}
+
+// SIGNAL 6
+void ScribbleArea::onionShortCut()
+{
+ QMetaObject::activate(this, &staticMetaObject, 6, 0);
+}
+
+// SIGNAL 7
+void ScribbleArea::straightAheadShortCut()
+{
+ QMetaObject::activate(this, &staticMetaObject, 7, 0);
+}
+
+// SIGNAL 8
+void ScribbleArea::inbetweenShortCut()
+{
+ QMetaObject::activate(this, &staticMetaObject, 8, 0);
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_scribblearea.o and pencil_dev/moc_scribblearea.o differ
diff -rupN pencil_backup/moc_timecontrols.cpp pencil_dev/moc_timecontrols.cpp
--- pencil_backup/moc_timecontrols.cpp 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_timecontrols.cpp 2009-09-28 17:10:51.000000000 -0500
@@ -0,0 +1,110 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'timecontrols.h'
+**
+** Created: Mon Sep 28 17:10:51 2009
+** by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/interface/timecontrols.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'timecontrols.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. 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_TimeControls[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 5, 12, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ // signals: signature, parameters, type, tag, flags
+ 14, 13, 13, 13, 0x05,
+ 26, 13, 13, 13, 0x05,
+ 38, 13, 13, 13, 0x05,
+ 51, 13, 13, 13, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+ 65, 13, 13, 13, 0x0a,
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_TimeControls[] = {
+ "TimeControls\0\0playClick()\0loopClick()\0"
+ "soundClick()\0fpsClick(int)\0"
+ "updateButtons(bool)\0"
+};
+
+const QMetaObject TimeControls::staticMetaObject = {
+ { &QToolBar::staticMetaObject, qt_meta_stringdata_TimeControls,
+ qt_meta_data_TimeControls, 0 }
+};
+
+const QMetaObject *TimeControls::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *TimeControls::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_TimeControls))
+ return static_cast<void*>(const_cast< TimeControls*>(this));
+ return QToolBar::qt_metacast(_clname);
+}
+
+int TimeControls::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QToolBar::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ switch (_id) {
+ case 0: playClick(); break;
+ case 1: loopClick(); break;
+ case 2: soundClick(); break;
+ case 3: fpsClick((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 4: updateButtons((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ default: ;
+ }
+ _id -= 5;
+ }
+ return _id;
+}
+
+// SIGNAL 0
+void TimeControls::playClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 0, 0);
+}
+
+// SIGNAL 1
+void TimeControls::loopClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 1, 0);
+}
+
+// SIGNAL 2
+void TimeControls::soundClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 2, 0);
+}
+
+// SIGNAL 3
+void TimeControls::fpsClick(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 3, _a);
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_timecontrols.o and pencil_dev/moc_timecontrols.o differ
diff -rupN pencil_backup/moc_timeline.cpp pencil_dev/moc_timeline.cpp
--- pencil_backup/moc_timeline.cpp 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_timeline.cpp 2009-10-01 18:20:13.000000000 -0500
@@ -0,0 +1,367 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'timeline.h'
+**
+** Created: Thu Oct 1 18:20:13 2009
+** by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/interface/timeline.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'timeline.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. 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_TimeLineCells[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 11, 12, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ // signals: signature, parameters, type, tag, flags
+ 15, 14, 14, 14, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+ 32, 14, 14, 14, 0x0a,
+ 60, 48, 14, 14, 0x0a,
+ 77, 14, 14, 14, 0x0a,
+ 99, 14, 14, 14, 0x0a,
+ 120, 14, 14, 14, 0x0a,
+ 140, 14, 14, 14, 0x0a,
+ 157, 14, 14, 14, 0x0a,
+ 174, 14, 14, 14, 0x0a,
+ 193, 14, 14, 14, 0x0a,
+ 214, 212, 14, 14, 0x0a,
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_TimeLineCells[] = {
+ "TimeLineCells\0\0mouseMovedY(int)\0"
+ "updateContent()\0frameNumber\0"
+ "updateFrame(int)\0lengthChange(QString)\0"
+ "frameSizeChange(int)\0fontSizeChange(int)\0"
+ "scrubChange(int)\0labelChange(int)\0"
+ "hScrollChange(int)\0vScrollChange(int)\0"
+ "x\0setMouseMoveY(int)\0"
+};
+
+const QMetaObject TimeLineCells::staticMetaObject = {
+ { &QWidget::staticMetaObject, qt_meta_stringdata_TimeLineCells,
+ qt_meta_data_TimeLineCells, 0 }
+};
+
+const QMetaObject *TimeLineCells::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *TimeLineCells::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_TimeLineCells))
+ return static_cast<void*>(const_cast< TimeLineCells*>(this));
+ return QWidget::qt_metacast(_clname);
+}
+
+int TimeLineCells::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QWidget::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ switch (_id) {
+ case 0: mouseMovedY((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 1: updateContent(); break;
+ case 2: updateFrame((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 3: lengthChange((*reinterpret_cast< QString(*)>(_a[1]))); break;
+ case 4: frameSizeChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 5: fontSizeChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 6: scrubChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 7: labelChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 8: hScrollChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 9: vScrollChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 10: setMouseMoveY((*reinterpret_cast< int(*)>(_a[1]))); break;
+ default: ;
+ }
+ _id -= 11;
+ }
+ return _id;
+}
+
+// SIGNAL 0
+void TimeLineCells::mouseMovedY(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+static const uint qt_meta_data_TimeLine[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 27, 12, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ // signals: signature, parameters, type, tag, flags
+ 10, 9, 9, 9, 0x05,
+ 25, 9, 9, 9, 0x05,
+ 47, 9, 9, 9, 0x05,
+ 68, 9, 9, 9, 0x05,
+ 88, 9, 9, 9, 0x05,
+ 105, 9, 9, 9, 0x05,
+ 122, 9, 9, 9, 0x05,
+ 136, 9, 9, 9, 0x05,
+ 153, 9, 9, 9, 0x05,
+ 170, 9, 9, 9, 0x05,
+ 187, 9, 9, 9, 0x05,
+ 203, 9, 9, 9, 0x05,
+ 220, 9, 9, 9, 0x05,
+ 241, 9, 9, 9, 0x05,
+ 253, 9, 9, 9, 0x05,
+ 265, 9, 9, 9, 0x05,
+ 278, 9, 9, 9, 0x05,
+ 292, 9, 9, 9, 0x05,
+ 307, 9, 9, 9, 0x05,
+ 322, 9, 9, 9, 0x05,
+ 333, 9, 9, 9, 0x05,
+ 352, 9, 9, 9, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+ 379, 367, 9, 9, 0x0a,
+ 403, 396, 9, 9, 0x0a,
+ 426, 9, 9, 9, 0x0a,
+ 456, 444, 9, 9, 0x0a,
+ 474, 9, 9, 9, 0x0a,
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_TimeLine[] = {
+ "TimeLine\0\0modification()\0lengthChange(QString)\0"
+ "frameSizeChange(int)\0fontSizeChange(int)\0"
+ "labelChange(int)\0scrubChange(int)\0"
+ "addKeyClick()\0removeKeyClick()\0"
+ "newBitmapLayer()\0newVectorLayer()\0"
+ "newSoundLayer()\0newCameraLayer()\0"
+ "deleteCurrentLayer()\0playClick()\0"
+ "loopClick()\0soundClick()\0fpsClick(int)\0"
+ "onionChecked()\0onionType(int)\0onionKey()\0"
+ "straightAheadKey()\0inbetweenKey()\0"
+ "frameNumber\0updateFrame(int)\0number\0"
+ "updateLayerNumber(int)\0updateLayerView()\0"
+ "frameLength\0updateLength(int)\0"
+ "updateContent()\0"
+};
+
+const QMetaObject TimeLine::staticMetaObject = {
+ { &QDockWidget::staticMetaObject, qt_meta_stringdata_TimeLine,
+ qt_meta_data_TimeLine, 0 }
+};
+
+const QMetaObject *TimeLine::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *TimeLine::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_TimeLine))
+ return static_cast<void*>(const_cast< TimeLine*>(this));
+ return QDockWidget::qt_metacast(_clname);
+}
+
+int TimeLine::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QDockWidget::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ switch (_id) {
+ case 0: modification(); break;
+ case 1: lengthChange((*reinterpret_cast< QString(*)>(_a[1]))); break;
+ case 2: frameSizeChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 3: fontSizeChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 4: labelChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 5: scrubChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 6: addKeyClick(); break;
+ case 7: removeKeyClick(); break;
+ case 8: newBitmapLayer(); break;
+ case 9: newVectorLayer(); break;
+ case 10: newSoundLayer(); break;
+ case 11: newCameraLayer(); break;
+ case 12: deleteCurrentLayer(); break;
+ case 13: playClick(); break;
+ case 14: loopClick(); break;
+ case 15: soundClick(); break;
+ case 16: fpsClick((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 17: onionChecked(); break;
+ case 18: onionType((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 19: onionKey(); break;
+ case 20: straightAheadKey(); break;
+ case 21: inbetweenKey(); break;
+ case 22: updateFrame((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 23: updateLayerNumber((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 24: updateLayerView(); break;
+ case 25: updateLength((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 26: updateContent(); break;
+ default: ;
+ }
+ _id -= 27;
+ }
+ return _id;
+}
+
+// SIGNAL 0
+void TimeLine::modification()
+{
+ QMetaObject::activate(this, &staticMetaObject, 0, 0);
+}
+
+// SIGNAL 1
+void TimeLine::lengthChange(QString _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 1, _a);
+}
+
+// SIGNAL 2
+void TimeLine::frameSizeChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 2, _a);
+}
+
+// SIGNAL 3
+void TimeLine::fontSizeChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 3, _a);
+}
+
+// SIGNAL 4
+void TimeLine::labelChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 4, _a);
+}
+
+// SIGNAL 5
+void TimeLine::scrubChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 5, _a);
+}
+
+// SIGNAL 6
+void TimeLine::addKeyClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 6, 0);
+}
+
+// SIGNAL 7
+void TimeLine::removeKeyClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 7, 0);
+}
+
+// SIGNAL 8
+void TimeLine::newBitmapLayer()
+{
+ QMetaObject::activate(this, &staticMetaObject, 8, 0);
+}
+
+// SIGNAL 9
+void TimeLine::newVectorLayer()
+{
+ QMetaObject::activate(this, &staticMetaObject, 9, 0);
+}
+
+// SIGNAL 10
+void TimeLine::newSoundLayer()
+{
+ QMetaObject::activate(this, &staticMetaObject, 10, 0);
+}
+
+// SIGNAL 11
+void TimeLine::newCameraLayer()
+{
+ QMetaObject::activate(this, &staticMetaObject, 11, 0);
+}
+
+// SIGNAL 12
+void TimeLine::deleteCurrentLayer()
+{
+ QMetaObject::activate(this, &staticMetaObject, 12, 0);
+}
+
+// SIGNAL 13
+void TimeLine::playClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 13, 0);
+}
+
+// SIGNAL 14
+void TimeLine::loopClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 14, 0);
+}
+
+// SIGNAL 15
+void TimeLine::soundClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 15, 0);
+}
+
+// SIGNAL 16
+void TimeLine::fpsClick(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 16, _a);
+}
+
+// SIGNAL 17
+void TimeLine::onionChecked()
+{
+ QMetaObject::activate(this, &staticMetaObject, 17, 0);
+}
+
+// SIGNAL 18
+void TimeLine::onionType(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 18, _a);
+}
+
+// SIGNAL 19
+void TimeLine::onionKey()
+{
+ QMetaObject::activate(this, &staticMetaObject, 19, 0);
+}
+
+// SIGNAL 20
+void TimeLine::straightAheadKey()
+{
+ QMetaObject::activate(this, &staticMetaObject, 20, 0);
+}
+
+// SIGNAL 21
+void TimeLine::inbetweenKey()
+{
+ QMetaObject::activate(this, &staticMetaObject, 21, 0);
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_timeline.o and pencil_dev/moc_timeline.o differ
diff -rupN pencil_backup/moc_toolset.cpp pencil_dev/moc_toolset.cpp
--- pencil_backup/moc_toolset.cpp 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_toolset.cpp 2009-09-28 17:10:52.000000000 -0500
@@ -0,0 +1,506 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'toolset.h'
+**
+** Created: Mon Sep 28 17:10:52 2009
+** by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/interface/toolset.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'toolset.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. 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_SpinSlider[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 6, 12, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ // signals: signature, parameters, type, tag, flags
+ 12, 11, 11, 11, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+ 32, 11, 11, 11, 0x0a,
+ 51, 11, 11, 11, 0x0a,
+ 68, 11, 11, 11, 0x0a,
+ 84, 11, 11, 11, 0x0a,
+ 101, 11, 11, 11, 0x0a,
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_SpinSlider[] = {
+ "SpinSlider\0\0valueChanged(qreal)\0"
+ "changeValue(qreal)\0changeValue(int)\0"
+ "setValue(qreal)\0sliderReleased()\0"
+ "sliderMoved(int)\0"
+};
+
+const QMetaObject SpinSlider::staticMetaObject = {
+ { &QWidget::staticMetaObject, qt_meta_stringdata_SpinSlider,
+ qt_meta_data_SpinSlider, 0 }
+};
+
+const QMetaObject *SpinSlider::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *SpinSlider::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_SpinSlider))
+ return static_cast<void*>(const_cast< SpinSlider*>(this));
+ return QWidget::qt_metacast(_clname);
+}
+
+int SpinSlider::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QWidget::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ switch (_id) {
+ case 0: valueChanged((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+ case 1: changeValue((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+ case 2: changeValue((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 3: setValue((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+ case 4: sliderReleased(); break;
+ case 5: sliderMoved((*reinterpret_cast< int(*)>(_a[1]))); break;
+ default: ;
+ }
+ _id -= 6;
+ }
+ return _id;
+}
+
+// SIGNAL 0
+void SpinSlider::valueChanged(qreal _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+static const uint qt_meta_data_ToolSet[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 60, 12, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ // signals: signature, parameters, type, tag, flags
+ 9, 8, 8, 8, 0x05,
+ 19, 8, 8, 8, 0x05,
+ 31, 8, 8, 8, 0x05,
+ 42, 8, 8, 8, 0x05,
+ 56, 8, 8, 8, 0x05,
+ 70, 8, 8, 8, 0x05,
+ 84, 8, 8, 8, 0x05,
+ 96, 8, 8, 8, 0x05,
+ 108, 8, 8, 8, 0x05,
+ 119, 8, 8, 8, 0x05,
+ 138, 8, 8, 8, 0x05,
+ 158, 8, 8, 8, 0x05,
+ 182, 8, 8, 8, 0x05,
+ 206, 8, 8, 8, 0x05,
+ 222, 8, 8, 8, 0x05,
+ 236, 8, 8, 8, 0x05,
+ 254, 8, 8, 8, 0x05,
+ 271, 8, 8, 8, 0x05,
+ 285, 8, 8, 8, 0x05,
+ 311, 8, 8, 8, 0x05,
+ 333, 8, 8, 8, 0x05,
+ 354, 8, 8, 8, 0x05,
+ 368, 8, 8, 8, 0x05,
+ 381, 8, 8, 8, 0x05,
+ 398, 8, 8, 8, 0x05,
+ 414, 8, 8, 8, 0x05,
+ 428, 8, 8, 8, 0x05,
+ 444, 8, 8, 8, 0x05,
+ 462, 8, 8, 8, 0x05,
+ 482, 8, 8, 8, 0x05,
+ 502, 8, 8, 8, 0x05,
+ 516, 8, 8, 8, 0x05,
+ 528, 8, 8, 8, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+ 541, 8, 8, 8, 0x0a,
+ 557, 8, 8, 8, 0x0a,
+ 573, 8, 8, 8, 0x0a,
+ 591, 8, 8, 8, 0x0a,
+ 609, 8, 8, 8, 0x0a,
+ 630, 8, 8, 8, 0x0a,
+ 647, 8, 8, 8, 0x0a,
+ 669, 8, 8, 8, 0x0a,
+ 691, 8, 8, 8, 0x0a,
+ 709, 8, 8, 8, 0x0a,
+ 730, 8, 8, 8, 0x0a,
+ 751, 8, 8, 8, 0x0a,
+ 772, 8, 8, 8, 0x0a,
+ 791, 8, 8, 8, 0x0a,
+ 810, 8, 8, 8, 0x0a,
+ 828, 8, 8, 8, 0x0a,
+ 851, 8, 8, 8, 0x0a,
+ 872, 8, 8, 8, 0x0a,
+ 897, 8, 8, 8, 0x0a,
+ 921, 8, 8, 8, 0x0a,
+ 949, 8, 8, 8, 0x0a,
+ 976, 8, 8, 8, 0x0a,
+ 997, 8, 8, 8, 0x0a,
+ 1011, 8, 8, 8, 0x0a,
+ 1031, 8, 8, 8, 0x0a,
+ 1052, 8, 8, 8, 0x0a,
+ 1077, 8, 8, 8, 0x0a,
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_ToolSet[] = {
+ "ToolSet\0\0rmClick()\0playClick()\0"
+ "addClick()\0pencilClick()\0eraserClick()\0"
+ "selectClick()\0moveClick()\0handClick()\0"
+ "penClick()\0pressureClick(int)\0"
+ "invisibleClick(int)\0preserveAlphaClick(int)\0"
+ "followContourClick(int)\0polylineClick()\0"
+ "bucketClick()\0eyedropperClick()\0"
+ "colouringClick()\0smudgeClick()\0"
+ "onionStraightAheadClick()\0"
+ "onionInbetweenClick()\0lengthClick(QString)\0"
+ "fpsClick(int)\0clearClick()\0thinLinesClick()\0"
+ "outlinesClick()\0mirrorClick()\0"
+ "onionRadio(int)\0widthClick(qreal)\0"
+ "featherClick(qreal)\0opacityClick(qreal)\0"
+ "colourClick()\0loopClick()\0soundClick()\0"
+ "setCounter(int)\0setWidth(qreal)\0"
+ "setFeather(qreal)\0setOpacity(qreal)\0"
+ "setInvisibility(int)\0setPressure(int)\0"
+ "setPreserveAlpha(int)\0setFollowContour(int)\0"
+ "setColour(QColor)\0changePencilButton()\0"
+ "changeEraserButton()\0changeSelectButton()\0"
+ "changeMoveButton()\0changeHandButton()\0"
+ "changePenButton()\0changePolylineButton()\0"
+ "changeBucketButton()\0changeEyedropperButton()\0"
+ "changeColouringButton()\0"
+ "changeThinLinesButton(bool)\0"
+ "changeOutlinesButton(bool)\0"
+ "changeSmudgeButton()\0resetMirror()\0"
+ "pressureClick(bool)\0invisibleClick(bool)\0"
+ "preserveAlphaClick(bool)\0"
+ "followContourClick(bool)\0"
+};
+
+const QMetaObject ToolSet::staticMetaObject = {
+ { &QWidget::staticMetaObject, qt_meta_stringdata_ToolSet,
+ qt_meta_data_ToolSet, 0 }
+};
+
+const QMetaObject *ToolSet::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *ToolSet::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_ToolSet))
+ return static_cast<void*>(const_cast< ToolSet*>(this));
+ return QWidget::qt_metacast(_clname);
+}
+
+int ToolSet::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QWidget::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ switch (_id) {
+ case 0: rmClick(); break;
+ case 1: playClick(); break;
+ case 2: addClick(); break;
+ case 3: pencilClick(); break;
+ case 4: eraserClick(); break;
+ case 5: selectClick(); break;
+ case 6: moveClick(); break;
+ case 7: handClick(); break;
+ case 8: penClick(); break;
+ case 9: pressureClick((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 10: invisibleClick((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 11: preserveAlphaClick((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 12: followContourClick((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 13: polylineClick(); break;
+ case 14: bucketClick(); break;
+ case 15: eyedropperClick(); break;
+ case 16: colouringClick(); break;
+ case 17: smudgeClick(); break;
+ case 18: onionStraightAheadClick(); break;
+ case 19: onionInbetweenClick(); break;
+ case 20: lengthClick((*reinterpret_cast< QString(*)>(_a[1]))); break;
+ case 21: fpsClick((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 22: clearClick(); break;
+ case 23: thinLinesClick(); break;
+ case 24: outlinesClick(); break;
+ case 25: mirrorClick(); break;
+ case 26: onionRadio((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 27: widthClick((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+ case 28: featherClick((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+ case 29: opacityClick((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+ case 30: colourClick(); break;
+ case 31: loopClick(); break;
+ case 32: soundClick(); break;
+ case 33: setCounter((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 34: setWidth((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+ case 35: setFeather((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+ case 36: setOpacity((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+ case 37: setInvisibility((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 38: setPressure((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 39: setPreserveAlpha((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 40: setFollowContour((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 41: setColour((*reinterpret_cast< QColor(*)>(_a[1]))); break;
+ case 42: changePencilButton(); break;
+ case 43: changeEraserButton(); break;
+ case 44: changeSelectButton(); break;
+ case 45: changeMoveButton(); break;
+ case 46: changeHandButton(); break;
+ case 47: changePenButton(); break;
+ case 48: changePolylineButton(); break;
+ case 49: changeBucketButton(); break;
+ case 50: changeEyedropperButton(); break;
+ case 51: changeColouringButton(); break;
+ case 52: changeThinLinesButton((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ case 53: changeOutlinesButton((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ case 54: changeSmudgeButton(); break;
+ case 55: resetMirror(); break;
+ case 56: pressureClick((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ case 57: invisibleClick((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ case 58: preserveAlphaClick((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ case 59: followContourClick((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ default: ;
+ }
+ _id -= 60;
+ }
+ return _id;
+}
+
+// SIGNAL 0
+void ToolSet::rmClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 0, 0);
+}
+
+// SIGNAL 1
+void ToolSet::playClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 1, 0);
+}
+
+// SIGNAL 2
+void ToolSet::addClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 2, 0);
+}
+
+// SIGNAL 3
+void ToolSet::pencilClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 3, 0);
+}
+
+// SIGNAL 4
+void ToolSet::eraserClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 4, 0);
+}
+
+// SIGNAL 5
+void ToolSet::selectClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 5, 0);
+}
+
+// SIGNAL 6
+void ToolSet::moveClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 6, 0);
+}
+
+// SIGNAL 7
+void ToolSet::handClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 7, 0);
+}
+
+// SIGNAL 8
+void ToolSet::penClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 8, 0);
+}
+
+// SIGNAL 9
+void ToolSet::pressureClick(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 9, _a);
+}
+
+// SIGNAL 10
+void ToolSet::invisibleClick(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 10, _a);
+}
+
+// SIGNAL 11
+void ToolSet::preserveAlphaClick(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 11, _a);
+}
+
+// SIGNAL 12
+void ToolSet::followContourClick(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 12, _a);
+}
+
+// SIGNAL 13
+void ToolSet::polylineClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 13, 0);
+}
+
+// SIGNAL 14
+void ToolSet::bucketClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 14, 0);
+}
+
+// SIGNAL 15
+void ToolSet::eyedropperClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 15, 0);
+}
+
+// SIGNAL 16
+void ToolSet::colouringClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 16, 0);
+}
+
+// SIGNAL 17
+void ToolSet::smudgeClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 17, 0);
+}
+
+// SIGNAL 18
+void ToolSet::onionStraightAheadClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 18, 0);
+}
+
+// SIGNAL 19
+void ToolSet::onionInbetweenClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 19, 0);
+}
+
+// SIGNAL 20
+void ToolSet::lengthClick(QString _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 20, _a);
+}
+
+// SIGNAL 21
+void ToolSet::fpsClick(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 21, _a);
+}
+
+// SIGNAL 22
+void ToolSet::clearClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 22, 0);
+}
+
+// SIGNAL 23
+void ToolSet::thinLinesClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 23, 0);
+}
+
+// SIGNAL 24
+void ToolSet::outlinesClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 24, 0);
+}
+
+// SIGNAL 25
+void ToolSet::mirrorClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 25, 0);
+}
+
+// SIGNAL 26
+void ToolSet::onionRadio(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 26, _a);
+}
+
+// SIGNAL 27
+void ToolSet::widthClick(qreal _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 27, _a);
+}
+
+// SIGNAL 28
+void ToolSet::featherClick(qreal _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 28, _a);
+}
+
+// SIGNAL 29
+void ToolSet::opacityClick(qreal _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 29, _a);
+}
+
+// SIGNAL 30
+void ToolSet::colourClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 30, 0);
+}
+
+// SIGNAL 31
+void ToolSet::loopClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 31, 0);
+}
+
+// SIGNAL 32
+void ToolSet::soundClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 32, 0);
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_toolset.o and pencil_dev/moc_toolset.o differ
Binary files pencil_backup/object.o and pencil_dev/object.o differ
Binary files pencil_backup/palette.o and pencil_dev/palette.o differ
Binary files pencil_backup/Pencil and pencil_dev/Pencil differ
diff -rupN pencil_backup/pencil.qrc pencil_dev/pencil.qrc
--- pencil_backup/pencil.qrc 2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/pencil.qrc 2009-09-28 17:01:13.000000000 -0500
@@ -24,8 +24,8 @@
<file>icons/magnify.png</file>
<file>icons/smudge.png</file>
- <file>icons/onionPrev.png</file>
- <file>icons/onionNext.png</file>
+ <file>icons/onionStraightAhead.png</file>
+ <file>icons/onionInbetween.png</file>
<file>icons/layer-vector.png</file>
<file>icons/layer-bitmap.png</file>
diff -rupN pencil_backup/pencil.qrc~ pencil_dev/pencil.qrc~
--- pencil_backup/pencil.qrc~ 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/pencil.qrc~ 2008-01-21 11:43:53.000000000 -0600
@@ -0,0 +1,52 @@
+<!DOCTYPE RCC><RCC version="1.0">
+ <qresource>
+ <file>icons/arrow.png</file>
+
+ <file>icons/clear.png</file>
+ <file>icons/remove.png</file>
+ <file>icons/add.png</file>
+ <file>icons/eraser.png</file>
+ <file>icons/pencil2.png</file>
+ <file>icons/house.png</file>
+ <file>icons/select.png</file>
+ <file>icons/move.png</file>
+ <file>icons/pen.png</file>
+ <file>icons/brush.png</file>
+ <file>icons/polyline.png</file>
+ <file>icons/eraser2.png</file>
+ <file>icons/hand.png</file>
+ <file>icons/bucket.png</file>
+ <file>icons/bucketTool.png</file>
+ <file>icons/eyedropper.png</file>
+ <file>icons/thinlines5.png</file>
+ <file>icons/outlines5.png</file>
+ <file>icons/mirror.png</file>
+ <file>icons/magnify.png</file>
+ <file>icons/smudge.png</file>
+
+ <file>icons/onionPrev.png</file>
+ <file>icons/onionNext.png</file>
+
+ <file>icons/layer-vector.png</file>
+ <file>icons/layer-bitmap.png</file>
+ <file>icons/layer-sound.png</file>
+ <file>icons/layer-camera.png</file>
+
+ <file>icons/controls/play.png</file>
+ <file>icons/controls/loop.png</file>
+ <file>icons/controls/sound.png</file>
+ <file>icons/controls/separator.png</file>
+
+ <file>icons/prefspencil.png</file>
+ <file>icons/prefstimeline.png</file>
+ <file>icons/prefs-files.png</file>
+
+ <file>background/weave.jpg</file>
+ <file>background/dots.png</file>
+
+ <file>icons/logo.png</file>
+ <file>icons/icon.png</file>
+
+ <file>icons/aqua.png</file>
+ </qresource>
+</RCC>
Binary files pencil_backup/preferences.o and pencil_dev/preferences.o differ
diff -rupN pencil_backup/qrc_pencil.cpp pencil_dev/qrc_pencil.cpp
--- pencil_backup/qrc_pencil.cpp 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/qrc_pencil.cpp 2009-09-28 17:10:55.000000000 -0500
@@ -0,0 +1,5928 @@
+/****************************************************************************
+** Resource object code
+**
+** Created: Mon Sep 28 17:10:55 2009
+** by: The Resource Compiler for Qt version 4.5.0
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include <QtCore/qglobal.h>
+
+static const unsigned char qt_resource_data[] = {
+ // /home/matthew/pencil_dev/background/weave.jpg
+ 0x0,0x0,0x11,0x0,
+ 0xff,
+ 0xd8,0xff,0xe0,0x0,0x10,0x4a,0x46,0x49,0x46,0x0,0x1,0x1,0x1,0x0,0x48,0x0,
+ 0x48,0x0,0x0,0xff,0xdb,0x0,0x43,0x0,0x5,0x3,0x4,0x4,0x4,0x3,0x5,0x4,
+ 0x4,0x4,0x5,0x5,0x5,0x6,0x7,0xc,0x8,0x7,0x7,0x7,0x7,0xf,0xb,0xb,
+ 0x9,0xc,0x11,0xf,0x12,0x12,0x11,0xf,0x11,0x11,0x13,0x16,0x1c,0x17,0x13,0x14,
+ 0x1a,0x15,0x11,0x11,0x18,0x21,0x18,0x1a,0x1d,0x1d,0x1f,0x1f,0x1f,0x13,0x17,0x22,
+ 0x24,0x22,0x1e,0x24,0x1c,0x1e,0x1f,0x1e,0xff,0xdb,0x0,0x43,0x1,0x5,0x5,0x5,
+ 0x7,0x6,0x7,0xe,0x8,0x8,0xe,0x1e,0x14,0x11,0x14,0x1e,0x1e,0x1e,0x1e,0x1e,
+ 0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,
+ 0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,
+ 0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0xff,0xc0,0x0,
+ 0x11,0x8,0x0,0x81,0x0,0x81,0x3,0x1,0x22,0x0,0x2,0x11,0x1,0x3,0x11,0x1,
+ 0xff,0xc4,0x0,0x19,0x0,0x0,0x3,0x1,0x1,0x1,0x0,0x0,0x0,0x0,0x0,0x0,
+ 0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x3,0x4,0x1,0x8,0xff,0xc4,0x0,0x43,0x10,
+ 0x0,0x2,0x1,0x3,0x2,0x3,0x4,0x6,0x6,0x7,0x6,0x7,0x1,0x0,0x0,0x0,
+ 0x1,0x2,0x3,0x0,0x11,0x12,0x13,0x21,0x4,0x31,0x51,0x22,0x41,0x71,0xf0,0x23,
+ 0x61,0x91,0xa1,0xb1,0xd1,0x14,0x32,0x33,0x73,0xc1,0xf1,0x34,0x42,0x53,0x81,0x92,
+ 0x93,0xe1,0x24,0x52,0x54,0x72,0xb2,0xd2,0x15,0x43,0x44,0x63,0x74,0xa3,0xc2,0xe2,
+ 0xff,0xc4,0x0,0x14,0x1,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+ 0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xc4,0x0,0x14,0x11,0x1,0x0,0x0,0x0,0x0,
+ 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xda,0x0,0xc,
+ 0x3,0x1,0x0,0x2,0x11,0x3,0x11,0x0,0x3f,0x0,0xf5,0x5a,0xa4,0x52,0x33,0x40,
+ 0xdc,0x41,0xe,0xa5,0x6c,0xd6,0x60,0x8,0xe7,0x5c,0x81,0xd1,0x74,0x62,0x95,0xed,
+ 0x8b,0xb9,0xc8,0x16,0x1,0x4f,0xe2,0x29,0x65,0x70,0x4b,0x48,0xad,0x11,0x1e,0x8c,
+ 0xdf,0x32,0x5,0xe9,0xb5,0x5b,0x34,0x66,0x78,0x9c,0xab,0x3e,0xda,0xc7,0x71,0x6e,
+ 0x5b,0xf9,0xde,0x83,0x47,0xc,0x63,0xbc,0x4c,0xb2,0x46,0x6d,0x10,0x52,0xb,0x1e,
+ 0xe6,0xd8,0xf2,0xf3,0xb5,0x2c,0xf0,0xc4,0x86,0x3c,0x98,0x2a,0x2c,0xae,0x6f,0x97,
+ 0x2d,0xb9,0x54,0xf8,0x67,0xf,0x14,0x25,0x24,0x42,0x42,0x95,0x60,0x26,0xb1,0x16,
+ 0x37,0xad,0x91,0xbb,0x2b,0xb0,0xc,0x1c,0x9,0x9,0xb1,0x90,0x76,0x86,0x34,0x18,
+ 0x67,0xe1,0x62,0x73,0x65,0x94,0xaf,0xa0,0x18,0x96,0x90,0x8b,0x12,0x7f,0x2a,0x53,
+ 0x13,0x23,0xf6,0x9a,0xc5,0x65,0x65,0x61,0x9f,0x2e,0xcf,0x31,0xf1,0xab,0xb0,0x63,
+ 0x9,0x8a,0x54,0x62,0x86,0x5,0x46,0xb3,0xc,0x85,0x8f,0x3a,0xed,0xdf,0x3c,0x64,
+ 0x47,0x62,0x26,0xb6,0x44,0x82,0xc4,0x63,0x8f,0xcb,0xcf,0x30,0x8c,0x83,0x28,0x75,
+ 0x6d,0x67,0xd3,0x52,0x4a,0xcb,0xb5,0xc3,0x5a,0xe2,0xaa,0xd7,0x79,0x8b,0x2b,0x20,
+ 0xcf,0x88,0x4,0x8c,0x81,0xb1,0x3,0xcf,0x9b,0xd7,0x26,0x8e,0x55,0xba,0x94,0x76,
+ 0xc6,0xe,0x66,0xdb,0x6f,0xea,0xf9,0x51,0x34,0x72,0x17,0xb8,0xbe,0xf3,0xc7,0x72,
+ 0x0,0x36,0xfd,0x5b,0xd0,0x65,0x23,0xfb,0x3c,0xb0,0x39,0x8d,0x8,0xe,0x14,0x99,
+ 0x86,0xdd,0xae,0xb6,0xbd,0x55,0x57,0x3c,0x8e,0x31,0xab,0xac,0x8b,0x6b,0x4a,0x8,
+ 0x6b,0xe,0x54,0x4e,0xcc,0xea,0xcc,0xeb,0x21,0x23,0x20,0x4e,0xb,0xd4,0x54,0xca,
+ 0xb0,0x7e,0x20,0xa7,0xe,0xca,0xc1,0xd5,0x8a,0x82,0x7,0xbf,0xcf,0x3f,0x5d,0xe8,
+ 0x34,0x70,0xed,0x23,0x68,0xae,0x10,0xb2,0xba,0x48,0xe,0x4f,0xb9,0x37,0xe5,0xef,
+ 0xf7,0xd6,0x88,0xf1,0x95,0x55,0xc3,0x2d,0x81,0x5b,0xda,0x50,0xa,0x9a,0xc9,0xc3,
+ 0xcc,0x32,0x53,0xa7,0x22,0xdf,0x32,0x31,0x64,0xec,0x9b,0xde,0xb5,0x24,0x82,0x36,
+ 0x47,0x65,0x99,0x63,0x7c,0x3b,0x56,0x18,0xfe,0xfe,0x9b,0xd0,0x75,0xe1,0x4,0xe4,
+ 0xae,0x9f,0x59,0xef,0xe9,0x79,0x5f,0xbe,0x91,0xd4,0x1e,0x1a,0xe2,0x4e,0xd2,0x4,
+ 0x61,0x8b,0xdb,0x6e,0xfd,0xaa,0x8d,0x1d,0x86,0xd1,0xb2,0x87,0x77,0x24,0x5c,0x1,
+ 0xc8,0xf7,0xf7,0x5e,0xd4,0x81,0x19,0xb8,0x75,0x43,0x13,0x6,0x28,0x8a,0x2e,0xc2,
+ 0xf6,0xbd,0x4,0xe2,0x48,0xb5,0xcc,0x5a,0xb2,0xf,0x4d,0x20,0x18,0xc9,0x7b,0x77,
+ 0xef,0x7f,0x6d,0x67,0x11,0x88,0x5d,0xe1,0x98,0x3a,0xae,0x5,0x85,0xa4,0x17,0x37,
+ 0x3b,0x1a,0xdb,0x2c,0x6c,0x67,0xc,0xc8,0xec,0x16,0x43,0xfd,0xc0,0x40,0xb6,0xf6,
+ 0xeb,0x59,0x26,0x8d,0x97,0x87,0xc1,0x95,0xf0,0x31,0x90,0x15,0xdd,0x6e,0x2c,0x68,
+ 0x34,0xff,0x0,0xc3,0x17,0xf6,0xef,0xec,0xa2,0xb2,0xe5,0xc1,0xf5,0x3f,0xc4,0x68,
+ 0xa0,0xd1,0xc4,0xeb,0x2b,0xb9,0xd6,0xba,0x38,0x40,0x5,0xc5,0xd4,0xde,0xc7,0xc4,
+ 0x7c,0xeb,0x8c,0xf3,0x99,0xa3,0x64,0x3a,0xa1,0x64,0x2a,0xca,0x2,0x92,0x5,0xb6,
+ 0x22,0xa9,0x28,0xf,0x12,0xb8,0x88,0x9c,0x96,0xc7,0x3c,0x2e,0x3b,0x5d,0xfd,0x45,
+ 0x4b,0x4f,0x58,0x24,0x72,0x2c,0x71,0x4a,0xb3,0x76,0x3b,0x3,0x16,0x16,0xf5,0x7b,
+ 0x28,0x39,0x19,0x66,0x8d,0x5f,0x1d,0x9a,0x37,0xd8,0xc6,0x36,0x20,0xee,0x2b,0x5c,
+ 0x6,0x46,0x90,0xa3,0x3,0x62,0xe4,0x5f,0x4c,0x6d,0x61,0xb5,0xeb,0x7,0xa,0xb2,
+ 0x21,0x50,0xa8,0xa0,0xd9,0xd4,0xab,0x44,0x48,0xd9,0xbe,0x75,0x50,0xc6,0x29,0xcc,
+ 0xa3,0x16,0x8d,0xa5,0x52,0x7d,0x1b,0x29,0x5b,0xec,0x39,0x50,0x56,0x46,0xca,0x14,
+ 0xc,0xaa,0x92,0x88,0xdc,0x90,0x63,0xbd,0xc0,0x3b,0xdb,0xdd,0x44,0x89,0x99,0x3b,
+ 0xa5,0x8c,0x88,0x1,0x31,0x65,0x72,0x40,0xe5,0xee,0xae,0x49,0x26,0x20,0xac,0xb1,
+ 0xa1,0xb0,0x95,0x15,0x95,0x49,0x23,0xd5,0x49,0x17,0x11,0x3,0xb4,0xa2,0xeb,0x75,
+ 0x31,0x13,0xb9,0x6,0xfc,0xbc,0xf8,0xd0,0x33,0x21,0x31,0xaf,0x34,0xf4,0x4e,0x97,
+ 0x11,0x9b,0x6c,0x6f,0xf8,0x79,0xee,0x55,0xbb,0x4d,0x30,0x4,0x5f,0x52,0x26,0xb0,
+ 0x8f,0x95,0xea,0x8a,0x62,0x2c,0x11,0x5b,0x22,0x51,0xf1,0xb4,0x8c,0x2e,0x41,0xf3,
+ 0xed,0xf0,0xa9,0x5b,0x87,0x9a,0x53,0x34,0x4f,0x13,0x37,0xa3,0x6b,0x6a,0x11,0x62,
+ 0x3a,0xdb,0xdb,0x41,0xd7,0x8f,0x5b,0x87,0x2c,0x90,0xc6,0x5a,0xf2,0x62,0x56,0x33,
+ 0xcc,0x1e,0x95,0x6,0x45,0x28,0xec,0x2,0xab,0x2a,0x21,0x37,0x88,0xdc,0x72,0x3,
+ 0x9f,0x3d,0xef,0x56,0x84,0x2a,0x4b,0x24,0x2e,0xd1,0x63,0x77,0x61,0xdb,0x37,0xdf,
+ 0xbe,0xa5,0x2c,0x42,0x32,0xc1,0x8c,0x6d,0x1e,0x8a,0xb8,0x2d,0x29,0xbd,0x81,0xf3,
+ 0xbf,0xae,0x81,0xf8,0x65,0xbc,0x88,0xda,0x48,0xe4,0x87,0xc,0xcb,0x1,0xad,0x11,
+ 0x10,0x0,0x42,0xaa,0x4,0x8a,0xbb,0x34,0x6,0xdd,0x2c,0x7d,0xb5,0x80,0xa1,0x8b,
+ 0x8c,0x81,0xa1,0x94,0xe2,0xce,0xf7,0xb3,0x9c,0x79,0x77,0x9a,0xd8,0x24,0x32,0x70,
+ 0xf6,0x7b,0x80,0xd0,0x29,0x23,0x33,0x71,0x63,0xcc,0x50,0x3e,0x6b,0x1d,0x92,0x65,
+ 0x5c,0x35,0x2d,0x63,0x15,0xc8,0xdb,0x62,0x28,0x68,0x35,0x63,0x50,0xaf,0x13,0x30,
+ 0x8c,0x3a,0x93,0x9,0xb9,0x3,0xf7,0xf5,0xb5,0x74,0xe9,0xcf,0x11,0x39,0xa9,0xca,
+ 0x63,0xc8,0xb0,0xbe,0xdd,0xde,0xba,0x4e,0x1d,0x62,0x93,0x83,0x8f,0x17,0x74,0x68,
+ 0xd1,0xac,0xc5,0xcd,0xc5,0x8d,0xbc,0x6d,0x40,0xd8,0xb4,0x82,0x32,0xca,0x85,0x96,
+ 0x60,0x5d,0x74,0x6c,0x48,0xee,0xe7,0x49,0xa,0x38,0x8c,0xa0,0x48,0x8e,0x5,0xf1,
+ 0xbc,0x47,0x98,0x20,0x55,0x59,0x33,0x8d,0x75,0x2f,0xbc,0x8a,0xa4,0xa3,0xb0,0x20,
+ 0xd8,0x6f,0x59,0x24,0xd6,0x89,0xa4,0x94,0xa8,0x26,0x36,0x6b,0xe4,0xcc,0x3,0xaf,
+ 0x5a,0xd,0x5a,0x2f,0xd1,0x3f,0x90,0x3e,0x54,0x56,0x7f,0xa6,0xc3,0xfe,0x11,0xff,
+ 0x0,0x8e,0x8a,0xb,0x46,0xa8,0xbc,0x31,0xec,0x26,0xca,0x54,0x63,0x13,0x75,0xe8,
+ 0x68,0xd2,0xe1,0xd2,0x5c,0x34,0xe1,0xd2,0xd5,0x12,0x0,0x14,0x8c,0x4d,0xbf,0x1b,
+ 0x52,0x99,0x4,0x70,0x1b,0xc8,0x8,0xb3,0xdf,0x19,0x88,0xb9,0xbe,0xd5,0x4c,0xc0,
+ 0xcf,0xfb,0x49,0x78,0x8b,0x46,0xc8,0x44,0xb6,0x23,0x90,0x20,0xd0,0x65,0xd3,0x55,
+ 0xc5,0xe3,0x68,0x8,0x50,0xfc,0x98,0xf5,0xe7,0xf1,0xf6,0x55,0x5e,0xe1,0x9d,0x94,
+ 0x46,0x8f,0x9a,0x7,0xd,0x29,0xb1,0x19,0x5c,0x35,0x38,0xd4,0x51,0x1a,0x86,0x37,
+ 0xd,0x22,0xdf,0x30,0x2e,0x3c,0x3b,0xff,0x0,0xa5,0x70,0xfd,0x20,0x9,0x34,0xdc,
+ 0x23,0xc,0x6d,0x76,0x52,0x7,0xab,0xd5,0xf9,0x50,0x52,0x37,0xcc,0xc,0x94,0x29,
+ 0x66,0x7b,0x81,0x36,0xc4,0xdb,0xad,0x4e,0x41,0x1b,0xb4,0x8e,0xc0,0x82,0x63,0x44,
+ 0x37,0x90,0x5b,0x9d,0xef,0xf0,0xa6,0xb9,0xd6,0x2c,0x22,0xa,0xad,0x29,0xb8,0x38,
+ 0xd8,0x1b,0x73,0xf3,0xf9,0xcb,0x57,0x4e,0x24,0x25,0x5d,0x6e,0x88,0x36,0x55,0xdc,
+ 0x13,0xbe,0xd4,0x14,0x77,0x78,0xf8,0x88,0xdc,0x72,0xbb,0x97,0x51,0x20,0x27,0x97,
+ 0x3a,0x38,0x94,0x8a,0x64,0x92,0xf9,0x76,0x91,0x1c,0x35,0xc5,0xf9,0xed,0x6a,0xab,
+ 0x4a,0x44,0x98,0xbb,0x96,0x56,0x76,0x0,0x60,0x37,0xb0,0xf7,0xd4,0xd8,0xde,0x32,
+ 0x55,0xdc,0x90,0x91,0xfd,0x68,0xb7,0x3f,0xd6,0x81,0x1c,0x42,0xdc,0x41,0xcd,0xa4,
+ 0x47,0xb3,0xef,0xa8,0x2,0xb1,0x1c,0xcf,0x9e,0x94,0xac,0xa5,0x55,0xb1,0x32,0x11,
+ 0xa0,0x19,0x46,0xa0,0x36,0xc4,0xf7,0x1a,0xd2,0xe1,0x9a,0x58,0xed,0x1b,0xd8,0xbb,
+ 0x6,0xb4,0x63,0xa5,0x49,0x2e,0xd,0x83,0x2e,0x5a,0x18,0xd8,0xa6,0xe2,0xc7,0x71,
+ 0x41,0x9,0x56,0x39,0x24,0x81,0x82,0x15,0xbb,0xb2,0x9f,0x48,0x2c,0x6e,0x2c,0x7e,
+ 0x34,0xdc,0x25,0x93,0x87,0x52,0xe8,0xd6,0x58,0x2d,0x98,0x7d,0xf6,0x6e,0xf1,0x55,
+ 0x31,0x48,0xcd,0xd,0xd4,0xc,0x66,0x2c,0xae,0xaa,0x2d,0xb8,0xe9,0xe3,0xf0,0xa5,
+ 0x8d,0x1c,0x46,0xa1,0xd4,0x82,0x23,0x63,0x90,0x8c,0x37,0xeb,0x6f,0xe7,0xd7,0x41,
+ 0x48,0xd4,0xa4,0xd2,0x46,0xa5,0xec,0x26,0xc,0x8,0x6e,0x44,0x8d,0xc1,0xa9,0xc5,
+ 0xa9,0xa7,0xaa,0xba,0x8d,0xe8,0x9e,0xe0,0xc8,0x37,0xb1,0xeb,0xcc,0xd6,0x85,0x59,
+ 0x75,0x64,0x42,0x24,0x27,0x25,0x6b,0x95,0x5b,0x11,0xb7,0xf5,0xa5,0x58,0xe4,0x42,
+ 0x8c,0x22,0x7,0x79,0xd,0x91,0x57,0xaf,0x33,0xe3,0x41,0x33,0x2d,0x84,0xad,0x84,
+ 0x8c,0xad,0xa7,0xb6,0xa8,0xd8,0xf9,0xb5,0x54,0x15,0xcf,0x7,0x46,0x20,0xb3,0xda,
+ 0xf2,0x5f,0x6a,0x56,0xe,0xf1,0xc9,0x82,0xc8,0xd9,0x46,0x84,0x76,0x54,0x6c,0x2f,
+ 0xb5,0x70,0x6,0x1c,0x58,0x50,0x97,0xc,0xe4,0x80,0x63,0x2,0xdd,0x91,0xbd,0x6,
+ 0x7d,0x2e,0x13,0xfc,0x34,0x5f,0xcc,0x1f,0x3a,0x2b,0x4e,0x97,0xfd,0xd4,0xf6,0x7f,
+ 0xfa,0xa2,0x81,0xae,0x4c,0x2c,0x8c,0x1,0x5c,0x58,0x86,0x56,0x5d,0xbc,0xf5,0xa5,
+ 0x95,0x54,0x9,0x57,0x25,0xed,0x2a,0x15,0xc8,0x2e,0xfd,0x4f,0xc6,0x9a,0x18,0xd8,
+ 0x1c,0x96,0xd8,0x8c,0xee,0xad,0x18,0x16,0x3b,0xdf,0x7e,0x9b,0xd2,0x45,0x88,0xe1,
+ 0xd1,0x1d,0x23,0x5c,0x63,0x4b,0xa3,0xc7,0x7b,0x6f,0xfd,0x68,0x17,0x89,0x80,0xab,
+ 0x6a,0x24,0x4d,0x65,0x32,0x7d,0x55,0x1c,0x88,0xb7,0x5a,0x52,0xa3,0x49,0x98,0xab,
+ 0x32,0x31,0x8b,0x76,0x51,0xcb,0xaf,0xc2,0xa8,0x15,0xa2,0x6e,0xc6,0x9c,0x6a,0x25,
+ 0x6b,0xd,0x36,0x3d,0x4f,0x31,0x53,0x99,0x44,0x71,0x4a,0xe8,0x90,0x14,0x28,0xae,
+ 0xc2,0xec,0x2d,0xb7,0xc2,0x81,0xe5,0x8d,0xd4,0xdc,0xab,0x36,0x79,0xa9,0x61,0x18,
+ 0xe9,0xe3,0x5c,0x95,0x43,0xc0,0xcb,0xe9,0x5,0xd5,0x2d,0xd8,0x23,0x6a,0x79,0x11,
+ 0x73,0xa,0xc,0x18,0xbb,0x92,0x3,0x3,0xce,0xd6,0xf3,0x7e,0x94,0x8b,0xf6,0x6e,
+ 0x92,0x24,0xa,0x34,0xc7,0x7b,0x62,0x40,0x6e,0x9d,0xd4,0x8,0xd1,0xb8,0x2b,0xa6,
+ 0x59,0x1a,0x29,0x5f,0xb2,0x52,0xe0,0xdd,0x4d,0x8f,0x85,0x67,0xd4,0xa,0xe,0xca,
+ 0xa7,0x41,0x6e,0x18,0x30,0xef,0xb7,0x2a,0xdc,0xf1,0x29,0x95,0x11,0xa2,0x1,0xcb,
+ 0x91,0x71,0x23,0x1d,0xf1,0xbf,0xca,0xb3,0x4c,0xb9,0x44,0x25,0xd0,0x4,0xe9,0xa8,
+ 0x27,0x5a,0xdd,0xe3,0x63,0x7f,0x3b,0xd0,0x77,0x56,0x1d,0x78,0xa4,0xc,0x8a,0xba,
+ 0x8d,0x7b,0x86,0xda,0xe3,0x95,0xaa,0xb7,0x8a,0x48,0x1,0x73,0x11,0x73,0xc3,0xb6,
+ 0xf7,0x3b,0xd8,0x8d,0xfe,0x15,0x9,0x96,0xce,0x3,0x2b,0xfd,0xbb,0x63,0x94,0xb7,
+ 0xc4,0xd8,0xed,0xb7,0x9d,0xe9,0x78,0x56,0x51,0xa2,0x62,0x93,0x4d,0x5a,0x6,0x16,
+ 0x2f,0xdd,0x7b,0x8f,0x65,0x5,0x96,0x34,0xf,0xb,0xa1,0x8c,0x5d,0xc1,0x51,0x76,
+ 0x26,0xe4,0x6f,0xbf,0x4e,0xd5,0x70,0xa2,0x22,0xc,0x1d,0x4a,0x34,0x6e,0xa,0x84,
+ 0x22,0xc4,0xb0,0xde,0x99,0x72,0x26,0x1b,0x8c,0x1d,0x67,0x53,0x88,0x92,0xe1,0x81,
+ 0x5e,0x7e,0x7a,0x50,0xce,0xfa,0x23,0x22,0x54,0x18,0xdc,0x30,0x32,0x5a,0xfb,0xdb,
+ 0x9d,0x3,0x25,0xb5,0x9a,0x26,0x92,0x3c,0xae,0x87,0xb4,0xad,0xf5,0xad,0xb7,0xc0,
+ 0xd7,0x62,0x28,0xad,0x1d,0x8c,0xb,0x91,0x72,0x2c,0xa7,0x1f,0xdd,0xe7,0xad,0x12,
+ 0x96,0x13,0x48,0x7b,0x20,0x6b,0x46,0x1,0xf,0x6e,0xe1,0xb1,0xae,0x3a,0x33,0x88,
+ 0x48,0x61,0x91,0x56,0xb8,0xe,0x6f,0xcb,0xce,0xf4,0x4,0xba,0x62,0x39,0xc1,0x64,
+ 0xb,0x84,0x60,0x1c,0x49,0xa,0x77,0xf6,0x53,0xf1,0xc,0xa5,0x98,0x92,0x85,0x56,
+ 0x45,0xb8,0x66,0x2a,0x50,0x91,0xe7,0xdb,0x51,0x8a,0x73,0x37,0xf,0x28,0x72,0x8a,
+ 0xdf,0x47,0xc,0x6c,0xfb,0x78,0x8d,0xab,0x4a,0xb3,0x7d,0x20,0x2,0x50,0x8c,0x94,
+ 0x39,0xd4,0xef,0xc7,0x97,0xac,0x6f,0x40,0x9a,0xf0,0x7e,0xda,0x3f,0xe6,0xa,0x2b,
+ 0xba,0x13,0x7f,0x72,0xf,0xe1,0x1f,0xed,0xa2,0x82,0x5c,0x3c,0xd1,0x33,0x69,0x86,
+ 0x8f,0x32,0xae,0x2f,0x8b,0x29,0xdf,0xd5,0xe7,0x9d,0x51,0x8d,0xa3,0x2f,0x6e,0x1d,
+ 0x86,0x92,0x82,0xa1,0x8e,0xeb,0x7d,0xfe,0x35,0x6,0x9b,0x4e,0x40,0xe6,0x13,0x80,
+ 0x65,0x21,0x96,0x51,0x63,0x7d,0xbf,0x13,0x57,0x8a,0x5b,0xc7,0x75,0x59,0xf1,0x6d,
+ 0x40,0x46,0xd7,0x5f,0x1,0x40,0x36,0x94,0x60,0x33,0x2a,0x15,0x32,0x15,0xc,0x26,
+ 0x6d,0xb6,0xef,0xa9,0x90,0xaa,0xb8,0x0,0x4a,0xe8,0x8b,0x63,0x35,0xc9,0x5e,0x5e,
+ 0xcf,0xa,0xd1,0xaa,0xc3,0x3f,0xb4,0xb0,0x8,0xc4,0x80,0xd,0xfa,0xf8,0x54,0x58,
+ 0x2d,0xd6,0x37,0x12,0x92,0x1d,0xd4,0x6c,0x2f,0x6b,0x5f,0x6f,0x6d,0x7,0x43,0x2a,
+ 0x9c,0x9,0x40,0x75,0x32,0x0,0xcf,0x7b,0x8b,0x6c,0x41,0x3b,0xf3,0xae,0x31,0x5f,
+ 0xa2,0xb6,0x4b,0x61,0xa6,0x46,0x2d,0x36,0xfb,0x9e,0xb5,0xd8,0xae,0xd1,0x69,0xb6,
+ 0x65,0x4a,0xa6,0xd,0xa6,0xa0,0xfb,0xf6,0xfc,0xe9,0x78,0x77,0x95,0x42,0xc1,0x22,
+ 0xb5,0xce,0x77,0x53,0x10,0xb3,0xfb,0x39,0x7e,0x54,0x1a,0x8,0x90,0x38,0x4,0xb1,
+ 0x41,0x20,0x0,0xe6,0x39,0x63,0xf3,0xac,0xae,0x1,0x64,0x59,0x35,0x98,0x4b,0x9,
+ 0x1b,0x62,0x41,0xb1,0xe5,0xe3,0x56,0x5b,0x28,0x90,0xe9,0xc9,0xda,0x54,0x20,0x18,
+ 0xc1,0x1e,0xc1,0x44,0xa0,0x2b,0xba,0x98,0xcb,0x20,0x97,0x25,0xc6,0x2c,0x8a,0xdc,
+ 0x7c,0xe8,0x25,0xa4,0xfa,0x80,0xa1,0x7b,0x6a,0x0,0xc0,0x4,0x3d,0xd5,0x4,0x33,
+ 0x16,0x89,0x8b,0x33,0xb6,0x9b,0xdc,0x92,0xa1,0xaf,0x7f,0x3f,0xa,0xb6,0xa2,0xe3,
+ 0x83,0xa4,0x80,0x94,0xbb,0x7a,0x2b,0x6,0x1,0xb9,0xf8,0x8a,0x1d,0xd0,0x4a,0xea,
+ 0xcb,0xa9,0x79,0x41,0x3e,0x86,0xfb,0x1e,0xa2,0x82,0x40,0xca,0x78,0x58,0xe4,0x52,
+ 0xcc,0xa8,0xf1,0x92,0x19,0xc6,0xc3,0xc6,0xae,0x4c,0xcd,0x18,0x25,0xd9,0x58,0xc6,
+ 0xfc,0xd9,0x7a,0xf4,0xa9,0xa6,0x2a,0x8e,0xe8,0x84,0x29,0x4,0x3a,0xfd,0x1f,0xd6,
+ 0x7b,0xbc,0xfb,0xea,0x91,0xa2,0x4,0x65,0x45,0xa,0xa6,0x5d,0x86,0x95,0xf1,0xc8,
+ 0x77,0x50,0x5,0x9c,0x4a,0xfd,0x82,0x9,0x78,0xec,0x55,0xc1,0xb9,0xb0,0xdc,0x8f,
+ 0x1b,0xd7,0x30,0x55,0x64,0x45,0x56,0x57,0x8d,0xa4,0x0,0x87,0x5d,0xaf,0xeb,0xee,
+ 0xa4,0x6d,0x26,0x8e,0x25,0x9b,0x15,0x62,0x1a,0x33,0x8c,0x26,0xc4,0xe,0x9e,0xcf,
+ 0x3d,0xfd,0x6,0x37,0xe1,0xe2,0x77,0x48,0xd9,0x81,0x46,0xcb,0x44,0x8b,0xef,0x63,
+ 0xee,0xa0,0x57,0x63,0xa1,0x24,0x8c,0xac,0x2d,0x19,0x5c,0x75,0x31,0xde,0xf6,0xd8,
+ 0xfa,0xc5,0x8f,0x9d,0x9c,0xdc,0x34,0x8b,0xe9,0x2c,0x70,0xa,0xc1,0x95,0xaf,0xb7,
+ 0xbf,0xbb,0xfa,0x54,0x84,0x2a,0xf0,0x4b,0x12,0x62,0x43,0x66,0x0,0x30,0x9b,0xef,
+ 0xcb,0x9f,0x9f,0x75,0x4d,0xa5,0x45,0x19,0x18,0xe3,0x24,0x84,0x72,0xaf,0x11,0xf5,
+ 0xf,0xc2,0x83,0x66,0x5c,0xf,0xed,0x93,0xf8,0x68,0xa4,0xfa,0x44,0x3d,0x1b,0xf8,
+ 0x47,0xce,0x8a,0x9,0x99,0x58,0x66,0xda,0x6c,0x2c,0x50,0x9b,0x45,0xb8,0xb1,0xb1,
+ 0xaa,0xb0,0x31,0x71,0x59,0x61,0xd9,0x12,0xb6,0xeb,0x16,0x5b,0x15,0xfc,0xfc,0x7d,
+ 0xd5,0xc9,0x1a,0x9,0x40,0x99,0xd2,0x44,0x56,0x8c,0xa3,0xdd,0x5b,0x6e,0x84,0xd4,
+ 0xe1,0x9a,0x38,0xdd,0xd5,0xd9,0xf6,0x75,0x4,0xf6,0xac,0x54,0x8b,0x50,0x6a,0x2c,
+ 0x1e,0x32,0x41,0x21,0x9b,0x87,0x7,0xec,0x8d,0xad,0x4e,0x24,0x2d,0x2b,0xf,0xd6,
+ 0x59,0x41,0xde,0x23,0x71,0x71,0xf2,0xef,0xac,0xf0,0xcd,0x19,0x8b,0x51,0x65,0x1d,
+ 0x98,0x5d,0x48,0x37,0xd8,0x83,0xd7,0xba,0xab,0x2c,0xc9,0x1b,0x23,0x19,0x4d,0x9a,
+ 0x41,0xbe,0xa1,0x0,0xf6,0x7b,0xe8,0x21,0xe8,0xca,0x58,0x29,0xba,0x0,0x4a,0x98,
+ 0x8e,0xd6,0x7b,0xd3,0xc4,0xec,0xb3,0x69,0x32,0x96,0x4d,0x56,0x2,0xe8,0xdb,0x5c,
+ 0x75,0xb5,0x3b,0xce,0xb7,0xa,0x26,0x0,0x10,0xeb,0xbb,0x1d,0x88,0x3d,0x6d,0x48,
+ 0xe1,0x75,0xac,0xec,0xe9,0x69,0x40,0xe,0x92,0xdc,0x5c,0xaf,0x7d,0x0,0xb2,0xe3,
+ 0x1e,0x13,0x28,0x5b,0x22,0x60,0xf6,0x22,0xe0,0x11,0xb1,0xf6,0xd5,0x5d,0x90,0x4d,
+ 0x21,0x56,0x7,0x17,0x53,0xf5,0x88,0xd8,0xfc,0x6a,0x20,0xb0,0xe1,0xcb,0x2c,0xac,
+ 0x6d,0x1b,0x2,0x35,0x2f,0xb8,0x3e,0x45,0x34,0xd3,0x23,0x9,0xe4,0x4e,0x24,0x85,
+ 0xa,0xac,0x4c,0x6e,0x36,0xb7,0x3f,0x9d,0x2,0xcc,0x53,0x12,0x17,0x5,0x65,0x46,
+ 0xe7,0x2b,0x83,0xcf,0xa5,0x75,0x9a,0x29,0x11,0xdf,0x38,0xd8,0x2e,0x99,0x24,0x12,
+ 0x7b,0xea,0x9a,0xb2,0x80,0x3,0xcd,0x1f,0x26,0xa,0xfa,0x83,0x91,0x1b,0x13,0x4b,
+ 0x69,0x15,0xdc,0xa4,0x8b,0x76,0x89,0x49,0x50,0x56,0xfb,0x7a,0xfc,0xf3,0xa0,0x98,
+ 0xd,0xc,0xec,0xea,0x50,0x11,0x96,0x57,0x66,0x20,0x8a,0x60,0x32,0x92,0x41,0x75,
+ 0x52,0x4a,0xb5,0x89,0x6b,0x11,0xb7,0x9f,0xdf,0x4e,0xcf,0x2a,0xca,0xa7,0x39,0x31,
+ 0x76,0xc7,0xeb,0xaf,0x2b,0x7e,0x75,0x54,0xd4,0x16,0xb9,0x94,0x59,0x45,0xc8,0x75,
+ 0x23,0xdf,0x41,0x9e,0x4d,0x58,0xe3,0x5,0x5e,0x12,0xab,0x9f,0xd6,0x66,0x3c,0xfc,
+ 0xfc,0x6a,0x43,0x88,0x74,0x8e,0x26,0x59,0x62,0x8,0xc8,0xaa,0x9,0x91,0xb6,0x37,
+ 0xdc,0x56,0x90,0x78,0x88,0xdc,0xa9,0x69,0x1d,0x73,0x38,0x9c,0xd4,0x83,0x7e,0xe3,
+ 0x7e,0x55,0xc1,0x24,0x86,0x16,0x2c,0xb2,0x5d,0x45,0xc8,0x12,0x2e,0xe4,0x1b,0xd0,
+ 0x49,0x67,0x7,0x88,0xda,0x58,0xc0,0x2c,0xca,0x57,0x57,0xbc,0xf7,0x5f,0xba,0xa5,
+ 0xc5,0x49,0x2e,0x9b,0x59,0x8a,0x38,0x85,0x6c,0xb,0x16,0x17,0xca,0xdc,0xfc,0xf3,
+ 0xad,0x13,0x2c,0x85,0xe5,0x52,0x9c,0x41,0x5,0xc1,0xc,0xa5,0x6e,0x2e,0x3a,0x79,
+ 0xf7,0x52,0x89,0x24,0x9b,0x86,0x47,0x56,0xe2,0x1f,0x2c,0x91,0x86,0x4a,0x2e,0x1,
+ 0x23,0x95,0x4,0x35,0xdf,0xf6,0x1c,0x47,0xf1,0x1a,0x29,0xfe,0x9e,0xbd,0x27,0xf7,
+ 0x51,0x40,0xc0,0xa2,0xa3,0x3c,0x72,0x90,0x3b,0x5d,0xad,0x53,0xb6,0xfb,0xb,0x77,
+ 0xd3,0x39,0xc,0xe6,0x74,0x99,0x6f,0x64,0x62,0x33,0xec,0xee,0x29,0x63,0x32,0x6a,
+ 0xe0,0xf2,0xca,0xac,0xd9,0x10,0xc1,0x94,0x8e,0x7d,0xc0,0xf5,0xae,0xc6,0x24,0xc7,
+ 0x3e,0x1f,0x8a,0x72,0x44,0x6a,0x40,0xb2,0xf6,0x85,0xf9,0x79,0xeb,0x41,0xde,0x1a,
+ 0x45,0x79,0x23,0x43,0x2a,0xb3,0x33,0x48,0x1,0xd4,0xb9,0xf7,0x8f,0x36,0xa2,0x3e,
+ 0x20,0xe9,0xe8,0x15,0xed,0x85,0x43,0x88,0x71,0xda,0x1c,0xaa,0x9e,0x98,0x4c,0x8c,
+ 0x3,0x9b,0x48,0xcd,0x62,0xaa,0x3b,0x36,0xf3,0xef,0xa4,0x93,0x39,0x20,0xa,0xd1,
+ 0xb6,0xd0,0xdd,0x4b,0x46,0xe,0xe0,0xfe,0x54,0xd,0x24,0xdb,0xb0,0x63,0x25,0x83,
+ 0x3a,0x82,0x5c,0xb,0x5b,0xcf,0xba,0x95,0xd8,0x37,0x69,0x5e,0x55,0x75,0x68,0xcf,
+ 0x69,0x97,0x7e,0xef,0x75,0x3b,0x65,0xaa,0xdb,0xc8,0x2e,0xf9,0x6f,0x18,0xe9,0x52,
+ 0x6c,0x84,0x57,0x64,0x20,0x84,0x53,0xf6,0x63,0x6b,0x1f,0x87,0xce,0x83,0xb0,0xb6,
+ 0xeb,0x6d,0x60,0x7b,0x6a,0xc3,0xb3,0x72,0x79,0xde,0xd4,0xe5,0x9a,0xc2,0x70,0xf3,
+ 0x35,0xe1,0xb6,0x41,0x54,0xf2,0x6e,0x95,0x24,0xc0,0x71,0x28,0x12,0xc2,0xef,0x22,
+ 0x58,0x45,0xba,0x9c,0x6f,0x4a,0x54,0x24,0x42,0x58,0x22,0x50,0x34,0x18,0x98,0xcc,
+ 0x76,0xdc,0x73,0x0,0x7e,0x1e,0xaa,0xb,0x2a,0x82,0x23,0x0,0x4a,0x1,0x92,0xc6,
+ 0xe8,0xbd,0x93,0x51,0x8d,0x80,0x11,0x2e,0x53,0x24,0xda,0x2c,0x1,0x8,0x5,0xc0,
+ 0x3e,0xea,0xa9,0x16,0x94,0x62,0x10,0x12,0x51,0x9a,0xd0,0x93,0x96,0xfb,0x9e,0x74,
+ 0xb8,0xdc,0xe2,0x5a,0x3b,0x10,0xe4,0x7a,0x3,0xcb,0xa7,0xc3,0xc9,0xa0,0x72,0x63,
+ 0x33,0x69,0xbe,0xa7,0x69,0x97,0xf5,0x54,0xa9,0x36,0xda,0xb8,0x8b,0x16,0x21,0x4a,
+ 0x48,0x48,0x85,0x94,0xb,0xf,0xaa,0xf,0x77,0xb2,0xb8,0x1,0xd9,0x65,0x68,0xcd,
+ 0xb4,0xc3,0xd,0x22,0x6f,0xb7,0x3b,0xd7,0x71,0xd9,0x63,0x69,0xa2,0xcb,0x17,0x3,
+ 0xd0,0x9e,0x40,0xf7,0x8a,0xa,0x49,0x60,0x5d,0x99,0x24,0xc4,0x95,0xe,0xad,0x1a,
+ 0x9f,0x81,0xa8,0x48,0xba,0x6f,0x32,0x18,0x65,0xc1,0xcb,0x1d,0x90,0x10,0xbe,0x7f,
+ 0xa,0x7c,0x19,0xa2,0x90,0x47,0xc4,0x46,0x5b,0x4d,0x7e,0xbf,0xe,0x40,0x23,0xfa,
+ 0xd2,0x48,0x88,0xd2,0x4d,0x13,0x68,0x10,0xec,0x6c,0x30,0x26,0xc7,0x1f,0x65,0x3,
+ 0xea,0x26,0xab,0x4a,0xb,0x8b,0xb2,0x35,0x8a,0xf,0xf,0xc6,0xbb,0xc3,0xf6,0x65,
+ 0xb1,0x85,0xec,0xa5,0x8a,0xb1,0x88,0x58,0x82,0x77,0xf8,0xd6,0x66,0x46,0x68,0x75,
+ 0x23,0x5e,0x1e,0x42,0x42,0x11,0x8a,0xb5,0xc8,0xbf,0x31,0xeb,0xf9,0xfb,0x48,0x33,
+ 0x59,0xd4,0xa6,0x8d,0x99,0xdf,0x70,0x8d,0xb6,0xd7,0x23,0xe3,0x41,0xb3,0x7f,0xda,
+ 0x25,0x14,0xb8,0x1e,0x8b,0xfc,0xa6,0xff,0x0,0x6d,0x14,0x19,0x40,0x28,0x15,0xb3,
+ 0x70,0x44,0xa4,0x2b,0x2a,0x3,0x6e,0xcf,0xc3,0x9f,0xbe,0xb8,0x86,0x36,0x2a,0x4a,
+ 0xa8,0xf,0x7,0x6b,0x18,0xf6,0xd9,0xaf,0x70,0x2b,0xb1,0x17,0x8a,0x6b,0x2f,0xa,
+ 0x16,0xf2,0x7e,0xc8,0xad,0xfb,0x34,0x47,0x89,0x11,0x13,0xa,0x82,0x23,0x90,0xb,
+ 0xdf,0x95,0xf7,0x1e,0xbe,0x62,0x82,0x9c,0x3b,0xe3,0x38,0x1,0x95,0xed,0x35,0xf7,
+ 0x8e,0xc7,0x12,0x29,0x63,0xb2,0x24,0x64,0x62,0xb1,0xbc,0x4e,0x2e,0x11,0x88,0x53,
+ 0x7e,0x9e,0xdf,0x7d,0x2c,0xb8,0x2,0x92,0xfd,0x1c,0x64,0xa,0x16,0x24,0x11,0xb7,
+ 0x2b,0xdf,0xc8,0xa9,0x87,0x8e,0x29,0x95,0xcc,0x2c,0x3b,0x72,0x2b,0x20,0x76,0x4,
+ 0x8a,0xd,0xbe,0x8d,0xd8,0x32,0x15,0x4,0xba,0xb0,0xbc,0x67,0xa6,0xd5,0x35,0xc7,
+ 0x6,0x17,0x5,0x34,0x6c,0x41,0x89,0x87,0x23,0xf1,0xa8,0xc7,0x82,0xce,0x86,0x12,
+ 0xe6,0x36,0x58,0xee,0xc,0x86,0xe3,0x9d,0x52,0x2,0xaf,0x19,0xc,0x92,0x5f,0x7,
+ 0x56,0xc8,0xb6,0xc2,0xfd,0x68,0x1a,0x41,0x13,0x4d,0x18,0x94,0x64,0xaf,0x38,0x2a,
+ 0xc0,0x10,0x6e,0x54,0xfb,0xf,0x2a,0x92,0x8c,0x64,0x84,0x44,0xe1,0x98,0x97,0x1,
+ 0xb,0x10,0x58,0x6f,0xb5,0xb9,0x6d,0xe7,0xd7,0x57,0x8d,0x80,0xed,0xac,0xa5,0x75,
+ 0x10,0x9c,0x64,0x3b,0x5c,0x91,0x71,0xdf,0xd3,0x6a,0x8b,0xab,0x28,0x4d,0xa6,0x3a,
+ 0x7c,0x43,0x0,0xda,0x97,0xb6,0xd7,0xf6,0x50,0x31,0x31,0xb2,0x86,0x8e,0x50,0x41,
+ 0x29,0x22,0xab,0x48,0xc0,0xa8,0xfc,0x69,0x91,0xa3,0x21,0x6c,0x0,0xbb,0x48,0x19,
+ 0x75,0x8d,0xaf,0xbf,0xb3,0xc7,0xc6,0xa2,0x25,0x91,0x14,0xb2,0x19,0x19,0x31,0x53,
+ 0x6d,0x4d,0xf7,0x3c,0xab,0x40,0x76,0xc8,0x86,0xd5,0x52,0x24,0x65,0xde,0x41,0xbe,
+ 0xd7,0xe7,0xdd,0x41,0x58,0x89,0x62,0x14,0x3c,0x6e,0x31,0x4b,0x1d,0x52,0x3f,0xbc,
+ 0x3b,0xab,0x8a,0xa6,0xc0,0x29,0x56,0x68,0xd9,0xd5,0x3,0xc9,0x73,0xfe,0x5a,0xe2,
+ 0x30,0xcf,0x19,0x11,0x97,0x38,0xd4,0xee,0xc0,0x5b,0x7e,0xe2,0x7d,0x75,0x68,0xcb,
+ 0x3b,0xab,0xa2,0x12,0xc2,0x56,0x1b,0x4a,0x39,0x5b,0x9f,0x9f,0x55,0x6,0x75,0xd9,
+ 0x6,0x5a,0x6e,0xa6,0x30,0x1,0xd7,0x3b,0xfe,0x75,0xd2,0x6d,0xc4,0x2,0x5e,0x26,
+ 0x8c,0xc9,0x95,0xcc,0xc2,0xea,0x6d,0x6b,0x7a,0xeb,0xac,0xa0,0x43,0x8e,0x3f,0xf2,
+ 0xc9,0x1d,0xb1,0x63,0x63,0xe7,0xdf,0x4d,0x24,0x13,0x47,0xc4,0x31,0x45,0x66,0x56,
+ 0x91,0x4e,0xf2,0x6e,0x76,0xa0,0xc3,0x16,0xb4,0x9,0x1a,0xdd,0xa,0xac,0x64,0x10,
+ 0x67,0x3,0x93,0x5f,0xba,0x9e,0x46,0x2,0x40,0xec,0xe1,0x2f,0x2d,0xc8,0x13,0xfa,
+ 0xb9,0xf8,0xed,0x5d,0x6e,0x1f,0xb2,0x62,0x78,0xdd,0x49,0x8d,0x90,0x1c,0xd5,0x49,
+ 0xb9,0xe7,0xea,0xf1,0xa5,0x65,0x9c,0x96,0x43,0x13,0x7,0x57,0x57,0x0,0xb8,0xed,
+ 0x0,0x37,0x23,0xae,0xc2,0x82,0xfa,0x63,0xf6,0xfe,0xe6,0xa2,0x92,0xfc,0x47,0xf8,
+ 0x1f,0xfd,0x69,0x45,0x0,0x79,0xc3,0xe2,0x3f,0xd3,0x54,0xe1,0x7f,0x42,0x83,0xee,
+ 0xe4,0xfc,0x68,0xa2,0x82,0x8b,0xf5,0xd7,0xee,0x93,0xff,0x0,0x9a,0xcb,0xc5,0xfd,
+ 0x8f,0xf,0xe2,0xdf,0x1a,0x28,0xa0,0x90,0xfb,0x6e,0x1f,0xee,0x7f,0x1a,0xef,0xf,
+ 0xfa,0x62,0xf8,0xb5,0x14,0x50,0x57,0xfe,0x90,0x7d,0xf0,0xf8,0xad,0x53,0x8b,0xe6,
+ 0xff,0x0,0xf9,0x1f,0x3a,0x28,0xa0,0xc7,0xc5,0xfd,0x84,0x7f,0xe4,0x5f,0x8d,0x56,
+ 0x5f,0xd2,0xf,0xde,0xa7,0xc2,0x8a,0x28,0x35,0xaf,0xd6,0x3f,0x76,0xdf,0xeb,0x34,
+ 0xf1,0xfd,0x91,0xfb,0xcf,0xc2,0x8a,0x28,0x16,0x5f,0xb7,0x87,0xef,0x24,0xff,0x0,
+ 0x4d,0x34,0xbf,0xa4,0x7e,0xf8,0xe8,0xa2,0x82,0x7f,0xae,0xbf,0xe4,0x7a,0xc6,0xff,
+ 0x0,0x63,0x27,0xde,0x2f,0xe3,0x45,0x14,0x13,0xa2,0x8a,0x28,0x3f,0xff,0xd9,
+ // /home/matthew/pencil_dev/background/dots.png
+ 0x0,0x0,0x0,0xac,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x6,0x0,0x0,0x0,0x6,0x8,0x3,0x0,0x0,0x0,0xd7,0x12,0x1f,0x7a,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x0,0x9,0x50,0x4c,0x54,0x45,0xfb,0xfb,0xfb,
+ 0xff,0xff,0xff,0xd2,0xd2,0xd2,0xf6,0xc3,0x4d,0x32,0x0,0x0,0x0,0x29,0x49,0x44,
+ 0x41,0x54,0x78,0xda,0x62,0x60,0x0,0x2,0x26,0x6,0x80,0x0,0x2,0x91,0x8c,0xc,
+ 0xc,0x0,0x1,0x4,0x65,0x3,0x4,0x10,0x94,0xd,0x10,0x40,0x50,0x36,0x40,0x0,
+ 0x41,0x10,0x23,0x40,0x80,0x1,0x0,0x0,0xf3,0x0,0xa,0x5b,0x7d,0x59,0xcb,0x0,
+ 0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/select.png
+ 0x0,0x0,0x1,0xfc,
+ 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,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x1,0x8e,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0xfc,0xff,0xff,0x3f,0x3,0x25,0x0,0x20,0x80,0x18,0xd3,0xd2,0xd2,0xfe,0xff,0xfb,
+ 0xf7,0x8f,0x1,0x84,0xe7,0xce,0x9d,0xcb,0x8,0x12,0x8c,0x8a,0x8a,0xfa,0xff,0xe7,
+ 0xcf,0x1f,0x6,0x64,0xbc,0x6d,0xdb,0x36,0xb0,0x9c,0xad,0xad,0x2d,0x58,0xee,0xf7,
+ 0xef,0xdf,0xc,0x67,0xce,0x9c,0x61,0x4,0x8,0x20,0x16,0x90,0xc6,0xaa,0xaa,0x2a,
+ 0x46,0x10,0xd,0x3,0x1d,0x1d,0x1d,0x8c,0x30,0x43,0xd1,0x5d,0xb8,0x74,0xe9,0x52,
+ 0xc6,0xbf,0x7f,0xff,0x32,0x4,0x6,0x6,0x82,0x25,0x0,0x2,0x8,0x6c,0x0,0xc8,
+ 0x34,0x14,0x67,0x31,0x32,0x82,0x35,0x82,0x14,0x82,0xe4,0x99,0x99,0x99,0x51,0xe4,
+ 0x40,0x62,0x20,0x57,0x80,0x0,0x40,0x0,0xb1,0xc0,0x9c,0x8d,0xc,0x58,0x58,0x58,
+ 0xc0,0x9a,0x40,0x34,0x36,0x39,0x10,0x80,0x19,0x0,0x10,0x40,0x8c,0xd8,0x2,0xf1,
+ 0xed,0xdb,0xb7,0x70,0xe7,0x83,0x68,0x26,0x26,0x26,0x6,0x31,0x31,0x31,0xac,0x81,
+ 0x8,0x10,0x40,0x4c,0xd1,0xd1,0xd1,0xff,0x5f,0xbc,0x78,0xc1,0xf0,0xfa,0xf5,0x6b,
+ 0xb8,0x20,0xcc,0x76,0x36,0x36,0x36,0x6,0xe,0xe,0xe,0x30,0x8d,0xb,0x0,0x4,
+ 0x10,0x13,0xc8,0x9f,0x20,0x7f,0x61,0x44,0xf,0x54,0xc,0x44,0x23,0xcb,0x7f,0xfc,
+ 0xf8,0x91,0xe1,0xfd,0xfb,0xf7,0xc,0x32,0x32,0x32,0x60,0xa7,0x3,0x4,0x10,0x13,
+ 0xcc,0x2f,0xc8,0x5e,0x81,0x69,0x0,0x39,0x1d,0x84,0xd1,0xd,0x6,0x61,0x98,0x3e,
+ 0x80,0x0,0x62,0x5a,0xb3,0x66,0xd,0x4a,0x14,0xc2,0x14,0x81,0x34,0x22,0xbb,0x2,
+ 0x3d,0x86,0x60,0x6,0x0,0x4,0x10,0xb,0xb2,0x9f,0xe1,0xfe,0x82,0xda,0x8a,0xcb,
+ 0x6b,0x82,0x82,0x82,0xc,0x6f,0xde,0xbc,0x1,0x4b,0x2,0x4,0x10,0x93,0xa7,0xa7,
+ 0xe7,0x7f,0x58,0xb4,0xa1,0x3b,0x13,0x9b,0x21,0xe8,0x7c,0x80,0x0,0x2,0x87,0x1,
+ 0xb2,0x66,0x98,0xb,0x60,0xde,0x40,0x76,0x11,0x8c,0xfd,0xe5,0xcb,0x17,0x6,0x2e,
+ 0x2e,0x2e,0x70,0xa0,0x1,0x4,0x10,0xb,0xc8,0x0,0x50,0x4c,0x60,0xf3,0x2,0xd6,
+ 0x68,0x83,0xca,0xc1,0xc2,0xd,0x20,0x80,0x18,0x6d,0x6c,0x6c,0xfe,0x83,0x92,0x32,
+ 0xc8,0x20,0x50,0xe6,0x0,0x9,0xaa,0xa9,0xa9,0xc1,0x33,0xc,0x2c,0x33,0x1,0xd3,
+ 0x9,0x58,0x8e,0x9b,0x9b,0xfb,0x3f,0xc8,0x42,0x10,0x6,0xca,0x33,0x2,0x4,0x10,
+ 0x23,0xa5,0xd9,0x19,0x20,0xc0,0x0,0x70,0xd3,0xca,0x9a,0xbe,0xa3,0x32,0x95,0x0,
+ 0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/pen.png
+ 0x0,0x0,0x2,0xc7,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x11,0x0,0x0,0x0,0x11,0x8,0x6,0x0,0x0,0x0,0x3b,0x6d,0x47,0xfa,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x2,0x59,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0xfa,0xff,0xff,0x3f,0x3,0x8,0x63,0x1,0x4c,0x40,0xcc,0x6c,0x18,0x9c,0xa,0x92,
+ 0x64,0x3,0x62,0x16,0x10,0x1f,0x88,0x19,0xd1,0x15,0x2,0x4,0x10,0x13,0x3,0x76,
+ 0x0,0x52,0xc8,0xb4,0xf9,0xc4,0x85,0xd9,0x2c,0x10,0x15,0x1c,0x40,0xcc,0xe,0x35,
+ 0x8,0x43,0xf,0x40,0x0,0xe1,0x33,0x84,0xe5,0xc2,0xab,0xaf,0x89,0xb7,0x8e,0xef,
+ 0x63,0x70,0xf3,0xb,0xfd,0x8,0xe4,0x73,0x23,0x19,0x84,0xe2,0x1a,0x80,0x0,0xc2,
+ 0x65,0x8,0xd3,0xc6,0x63,0x67,0x67,0xbc,0xfd,0xfa,0x8b,0xc1,0x20,0xb2,0x80,0xe1,
+ 0x35,0xbb,0x2c,0x48,0x8c,0xf,0x6a,0x10,0x2b,0xba,0x3e,0x80,0x0,0x62,0xc2,0xe1,
+ 0xa,0xe6,0x2b,0x1f,0x7f,0xc5,0x7b,0xea,0x29,0x31,0x30,0x31,0xb1,0x30,0x84,0x45,
+ 0x44,0x31,0xb8,0xfa,0x86,0xdc,0xc6,0xe5,0x1a,0x80,0x0,0x62,0xc2,0xe1,0x8a,0x99,
+ 0x5f,0xff,0xfc,0x67,0x30,0x90,0x15,0x1,0xb,0xf8,0x9a,0x28,0x30,0x3c,0xfd,0x1,
+ 0x72,0x8,0x3,0x2f,0x10,0x73,0xa2,0xbb,0x6,0x20,0x80,0x98,0xb0,0x84,0x11,0xeb,
+ 0xa9,0x77,0xdf,0xe3,0xbd,0xb5,0x15,0x50,0x24,0x32,0xb2,0xf3,0x18,0xcc,0xec,0xdc,
+ 0xcf,0x1,0x99,0x3c,0xe8,0x6,0x1,0x4,0x10,0x13,0xba,0x37,0x36,0x9e,0xbf,0xfe,
+ 0x5d,0x80,0x9b,0x93,0x41,0x47,0x52,0x18,0x2c,0xe8,0x6a,0x65,0x2,0xa6,0x4d,0xd5,
+ 0xc5,0x19,0x38,0x94,0x3d,0x18,0xda,0xbb,0xfa,0xaf,0x3,0xb9,0x5c,0xd0,0x68,0x7,
+ 0x47,0x39,0x40,0x0,0x31,0x20,0xa5,0x13,0x90,0x81,0x9c,0x79,0xeb,0xf6,0xff,0xff,
+ 0xf2,0xf3,0xd7,0xff,0x8f,0xdf,0x7f,0xfe,0x7f,0xf9,0xe9,0xeb,0x7f,0x7e,0x19,0xe5,
+ 0xff,0x57,0x1e,0xbe,0xf9,0x7f,0xfc,0xfa,0xf3,0xff,0x3b,0x4e,0x3e,0xf8,0x2f,0xa7,
+ 0xe7,0x6,0x52,0xac,0xd,0xc4,0xe2,0x50,0x17,0x31,0x1,0x4,0x10,0x13,0x9a,0x57,
+ 0x58,0xd8,0xd9,0x58,0x19,0xaa,0xb6,0x1d,0x87,0xb,0x1e,0x39,0x7e,0x12,0xee,0xce,
+ 0x49,0x6b,0x4f,0x33,0xf8,0x39,0x19,0x30,0xa0,0x5,0x30,0x13,0x40,0x0,0x21,0xbb,
+ 0x4,0x24,0xc0,0xf,0xc4,0x8a,0x5a,0xa1,0x89,0xff,0x2f,0x3f,0x7b,0x3,0x76,0xc9,
+ 0xfd,0x57,0x1f,0xff,0x5f,0x79,0xf4,0xe6,0xff,0xea,0x23,0xb7,0xff,0xcb,0xe8,0x3a,
+ 0x80,0x14,0x6,0x2,0xb1,0x15,0x48,0x1d,0x54,0x3d,0xb,0x40,0x0,0xa1,0x7,0x2c,
+ 0x48,0xd1,0xff,0x8,0x6b,0x63,0x86,0xde,0x3,0xe7,0x51,0x24,0x66,0x6d,0x3d,0xc6,
+ 0x10,0xe6,0x65,0xd,0x53,0xf3,0xf,0xa6,0x16,0x24,0x0,0x10,0x40,0xe8,0x61,0x2,
+ 0x72,0xa6,0x34,0x10,0x1b,0xc9,0x5a,0x3a,0x23,0x5c,0xf2,0xf8,0xcd,0x7f,0x7e,0x69,
+ 0x65,0x90,0xa2,0x38,0x20,0xf6,0x2,0xc9,0x43,0xd5,0x81,0xd4,0x33,0x1,0x4,0x10,
+ 0x23,0x2c,0xf3,0x31,0x2,0x1,0x34,0xc4,0xf9,0x4c,0x14,0xc4,0x5f,0xfd,0x63,0x84,
+ 0x88,0x33,0x1,0x85,0xff,0xfd,0xfb,0xf,0xb3,0x93,0xe1,0xdc,0xc3,0x57,0x2e,0x40,
+ 0xea,0x39,0x10,0xbf,0x6,0xe2,0x4f,0x40,0xfc,0xb,0x20,0x80,0x98,0xd0,0xbc,0xf2,
+ 0x17,0x88,0x7f,0x9f,0x79,0xf0,0x52,0xd9,0xc5,0x42,0x96,0x61,0x6a,0x47,0x3a,0x43,
+ 0x57,0x41,0x0,0xdc,0x30,0xa0,0x1,0x21,0x40,0xe6,0xf,0x28,0xfe,0xd,0x55,0xff,
+ 0x1f,0x20,0x80,0xb0,0x85,0x9,0x48,0xe2,0x8f,0x90,0x18,0x7,0x3,0x33,0xb,0x1b,
+ 0x38,0xe,0xfc,0x8c,0x15,0x61,0x2e,0xf9,0x3,0xd5,0xfc,0x7,0x66,0x0,0x48,0x10,
+ 0x20,0x80,0x58,0xd0,0xc,0xf9,0x7,0x73,0xcd,0x7f,0xa6,0xff,0xf0,0xa8,0x35,0x55,
+ 0x1,0x7a,0xff,0x1b,0x3,0xc3,0x99,0x87,0x2f,0xd1,0x5d,0x1,0x52,0xcf,0x0,0x10,
+ 0x60,0x0,0x1c,0xc5,0xd8,0xf7,0xd3,0x3d,0xb9,0x1e,0x0,0x0,0x0,0x0,0x49,0x45,
+ 0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/brush.png
+ 0x0,0x0,0x2,0xe6,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x12,0x0,0x0,0x0,0xe,0x8,0x6,0x0,0x0,0x0,0x22,0xda,0x4c,0xb7,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x2,0x78,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0xf9,0xff,0xff,0x3f,0x3,0xa9,0x60,0xd1,0xa2,0x45,0xf7,0xee,0xec,0x58,0xa7,0x18,
+ 0x6a,0x67,0xca,0x30,0x61,0xfd,0xe,0x6,0x4e,0x56,0x16,0x6,0x80,0x0,0x62,0x22,
+ 0xd5,0x90,0xc5,0x8b,0x17,0x1f,0x41,0x36,0xe4,0xe6,0xad,0x7b,0xc,0x51,0x55,0xad,
+ 0xf,0x0,0x2,0x88,0x1,0xe4,0x22,0x62,0xf1,0x96,0x2d,0x5b,0xae,0xe6,0xfa,0xb9,
+ 0xfe,0xbf,0x34,0xbd,0xe5,0x7f,0x41,0x80,0xeb,0x7f,0x6b,0x5,0xa9,0xff,0x7b,0xf6,
+ 0xec,0x79,0xa,0x92,0x3,0x8,0x20,0xa2,0xd,0xd9,0xbe,0x7d,0xfb,0x8d,0xc,0x2f,
+ 0x27,0xb0,0x21,0xad,0xf1,0xc1,0xff,0x6d,0x14,0xa5,0xff,0x6f,0x58,0xbf,0xfe,0x3c,
+ 0x4c,0x1e,0x20,0x80,0x88,0x32,0x64,0xcf,0xbe,0x43,0x57,0xb,0x2,0xdd,0x20,0x86,
+ 0xc4,0x41,0xc,0x99,0x35,0x6b,0xd6,0x4e,0x64,0x35,0x0,0x1,0xc4,0x42,0x28,0x4c,
+ 0x26,0xcf,0xdb,0x7c,0x75,0xd3,0xeb,0xe7,0x5a,0x7f,0x4d,0x3,0x19,0xb6,0x9d,0xde,
+ 0xcf,0xb0,0xed,0xd0,0x71,0x86,0xe0,0xbc,0x92,0x33,0xc6,0xc6,0xc6,0xab,0x91,0xd5,
+ 0x1,0x4,0x10,0x23,0xae,0x58,0x3b,0x73,0xec,0xd0,0xa6,0x3,0x7b,0xf6,0xf9,0x6e,
+ 0x63,0x95,0x60,0x58,0x18,0xeb,0xcb,0x50,0xb9,0x69,0x3f,0xc3,0xb3,0x8f,0x5f,0x18,
+ 0x82,0xf9,0xff,0xbd,0x31,0x37,0x35,0xdd,0x62,0x62,0x6a,0x9a,0x88,0xac,0x1e,0x20,
+ 0x80,0xb0,0xba,0x68,0xe3,0xc2,0x99,0xff,0xcf,0x1e,0x3f,0xcc,0xc0,0xc5,0xc9,0xc1,
+ 0xa0,0xf9,0xe3,0x25,0x43,0xc7,0x4e,0x21,0xb0,0x21,0xe1,0x22,0xec,0x37,0x8c,0xd,
+ 0x75,0xb7,0x9b,0x98,0x98,0x14,0xa1,0xeb,0x1,0x8,0x20,0x8c,0xf0,0xd8,0xb4,0x7c,
+ 0xfe,0xff,0x9e,0x92,0xb4,0xff,0xef,0x5f,0xbf,0xfc,0xff,0xfe,0xcd,0xab,0xff,0x1c,
+ 0xec,0x6c,0xff,0x75,0x35,0xd4,0xff,0xfb,0x6,0x46,0xfc,0xc7,0x17,0x8e,0x0,0x1,
+ 0x84,0xc2,0x39,0xb9,0x77,0xdb,0xff,0x40,0x67,0x6b,0xb0,0x1,0xf,0x6e,0x5e,0xfb,
+ 0xbf,0x7d,0xc3,0xea,0xff,0x9d,0xa5,0x99,0xff,0x85,0x5,0xf8,0xfe,0xaf,0x5d,0xb3,
+ 0xfa,0x1b,0xbe,0xb0,0x4,0x8,0x20,0x14,0xaf,0xad,0x5e,0x3c,0x9f,0xa1,0xa6,0xb1,
+ 0x85,0xe1,0xec,0xb1,0xc3,0xc,0x13,0x66,0x71,0x3,0x45,0x78,0x19,0x2e,0x1d,0x5f,
+ 0xc5,0x20,0x29,0x2d,0xcb,0x20,0x2f,0xaf,0x70,0x18,0x68,0x19,0x63,0x43,0x43,0x3,
+ 0x23,0x48,0xad,0xb6,0xb6,0x36,0x63,0x68,0x68,0xe8,0xff,0xd5,0xab,0x57,0x33,0x5e,
+ 0xbd,0x7a,0x95,0x11,0x20,0x0,0x0,0x49,0x0,0xb6,0xff,0x1,0xff,0xff,0xff,0x0,
+ 0xb8,0xab,0xa3,0xff,0xfe,0xfa,0xf8,0x0,0xea,0xe9,0xea,0x0,0xac,0xbe,0x20,0x0,
+ 0xc3,0xc3,0xfd,0x0,0x15,0x15,0xa1,0x0,0xfc,0xe3,0xca,0x0,0xf2,0x0,0xfc,0x0,
+ 0x9e,0xa8,0xa6,0xe3,0xc9,0xca,0xca,0x57,0x7,0x7,0x7,0xf7,0x3,0x3,0x3,0x1,
+ 0xfd,0xfd,0xfd,0xfb,0x4,0x4,0x4,0xf5,0xf7,0xf7,0xf7,0xfa,0xa,0xa,0xa,0x0,
+ 0x6,0x6,0x6,0xfd,0x2,0x88,0xc5,0xd7,0x77,0xe7,0xff,0x43,0x87,0x40,0x31,0xc7,
+ 0xe,0xc4,0xb2,0x40,0xfc,0x97,0x81,0xf9,0x6b,0x1a,0xc3,0xfb,0xdf,0x2c,0xc,0xc2,
+ 0x12,0x22,0xc,0xd5,0x59,0x59,0x5f,0x98,0x59,0x58,0xde,0x70,0x70,0x70,0xb8,0x1,
+ 0xd,0x78,0xb,0x54,0xf0,0x7,0x68,0xd8,0xa7,0x1f,0x3f,0x7e,0xbc,0x0,0x3a,0xe2,
+ 0x15,0x13,0x13,0xd3,0x8f,0x7f,0xff,0xfe,0xfd,0x0,0x8,0x20,0xb0,0x8b,0x7c,0x7c,
+ 0x96,0x82,0xd3,0xc0,0xab,0x57,0xc7,0x19,0xde,0xbd,0xbb,0xce,0xc0,0xf0,0xef,0x3e,
+ 0x43,0x80,0xaf,0xdf,0x67,0x7b,0x27,0xa7,0xcb,0x17,0x2e,0x5d,0x9c,0xb,0x34,0xe0,
+ 0x13,0x50,0x1a,0x84,0xbf,0x0,0x35,0xfd,0x5,0x6a,0xfe,0xcc,0xca,0xca,0xfa,0xf1,
+ 0xf7,0xef,0xdf,0x9f,0xf9,0xf8,0xf8,0x7e,0x3f,0x78,0xf0,0xe0,0x1f,0x40,0x80,0x1,
+ 0x0,0xb5,0xaf,0xb4,0x36,0xdc,0x9d,0x9e,0x8e,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,
+ 0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/bucketTool.png
+ 0x0,0x0,0x5,0x75,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x13,0x0,0x0,0x0,0x15,0x8,0x6,0x0,0x0,0x0,0xa4,0x9,0xd5,0xd1,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x7,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0xdc,0xb5,0x6b,0x17,0x3,0x8,0x30,0x32,0x32,0x32,0xfc,0xfe,0xfd,0x5b,0x67,0xef,
+ 0xde,0xbd,0xa7,0xcc,0xcc,0xcc,0xca,0x95,0x95,0x95,0x27,0xbf,0x7a,0xf5,0x8a,0xe1,
+ 0xe9,0xd3,0xa7,0xc,0xbc,0xbc,0xbc,0x60,0x79,0x66,0x66,0x66,0xde,0xbb,0x77,0xef,
+ 0x2e,0xbb,0x77,0xff,0xbe,0xab,0xae,0x8e,0x4e,0x9e,0x8e,0x8e,0xce,0x2c,0x3e,0x3e,
+ 0x3e,0x6,0x18,0x0,0x8,0x20,0xa0,0x3c,0x33,0xc3,0xe5,0xcb,0x97,0x19,0xae,0x5e,
+ 0xbd,0xca,0x70,0xe4,0xc8,0x91,0x64,0x59,0x59,0xd9,0xbf,0xfb,0xf6,0xed,0xb3,0xfa,
+ 0xf2,0xe5,0xcb,0xb,0x26,0x26,0xa6,0x5b,0x9c,0x9c,0x9c,0x20,0x9b,0x9c,0x4e,0x1c,
+ 0x3f,0xde,0x76,0xf1,0xe2,0xc5,0xe9,0x72,0x72,0x72,0xba,0x6,0x46,0x46,0x2c,0x87,
+ 0x8f,0x1d,0xf3,0xf9,0xfa,0xf9,0xb3,0x94,0xbe,0x9e,0xde,0xae,0x7f,0xff,0xfe,0xfd,
+ 0x5,0xaa,0x65,0x0,0x8,0x20,0x16,0x4b,0x4b,0x4b,0xb0,0xad,0xec,0xec,0xec,0xcc,
+ 0xa7,0x4f,0x9f,0x36,0xd4,0xd4,0xd4,0x8c,0x7d,0xf7,0xee,0x5d,0xde,0x89,0x13,0x27,
+ 0x62,0x9d,0x9d,0x9d,0xaf,0xbf,0x79,0xf3,0x36,0xf1,0xf5,0xeb,0xd7,0xb9,0x82,0x82,
+ 0x2,0xbc,0x45,0x45,0x45,0xc,0xfa,0xfa,0xfa,0x60,0x57,0xe8,0xe8,0xea,0x32,0x96,
+ 0x94,0x96,0xa5,0x49,0x48,0x48,0x1c,0x2,0xfa,0x62,0xe9,0xb7,0x6f,0xdf,0x18,0x0,
+ 0x2,0x88,0xe5,0xc3,0x87,0xf,0xc,0x5f,0xbf,0x7e,0x65,0x0,0xba,0x44,0x10,0x68,
+ 0xba,0xe9,0xdf,0xbf,0x7f,0xd9,0xd4,0x35,0x34,0x8e,0x9f,0x3f,0x7f,0xbe,0xe4,0xd2,
+ 0xa5,0xcb,0x1,0xa6,0xa6,0x26,0xac,0xe9,0xe9,0x69,0xc,0xf2,0xf2,0xf2,0x60,0x43,
+ 0x80,0xea,0x18,0xfe,0xfc,0xf9,0xc3,0xa0,0xae,0xa2,0xc2,0xd0,0xd3,0xd9,0xc9,0xd0,
+ 0xd0,0xd8,0x30,0xdd,0x8d,0xe1,0xff,0x35,0x79,0x79,0x85,0xf3,0x0,0x1,0xc4,0x2,
+ 0xf4,0x37,0x3,0xc8,0x2b,0x97,0x2e,0x5d,0xfa,0x77,0xfc,0xf8,0x71,0xc6,0x3d,0x7b,
+ 0xf6,0xac,0xfd,0xfc,0xf9,0xb3,0xb5,0xb8,0xb8,0x38,0x43,0x42,0x42,0x3c,0x83,0x83,
+ 0x83,0x3,0xc3,0xff,0xff,0xff,0x19,0x80,0x62,0xc,0xdf,0xbf,0x7f,0x7,0xb3,0x81,
+ 0x61,0xb,0x31,0x50,0x4d,0x95,0x41,0x4b,0x43,0x83,0x77,0xd7,0xae,0x3d,0xed,0x5,
+ 0xf9,0x79,0x1e,0x0,0x1,0xc4,0xc4,0xc1,0xc1,0xc1,0x0,0xc4,0xae,0x77,0xef,0xdd,
+ 0x5b,0xc,0xf4,0x8e,0xac,0x89,0xa9,0xa9,0xf5,0x8c,0x19,0x33,0x18,0x92,0x92,0x92,
+ 0x18,0x80,0x61,0x4,0xd6,0xfc,0xe6,0xcd,0x1b,0xb0,0xeb,0x41,0x6,0xfc,0xfc,0xf9,
+ 0x93,0xe1,0xc7,0x8f,0x1f,0xc,0x6f,0xdf,0xbe,0x65,0xb8,0x7d,0xfb,0x36,0x83,0x8f,
+ 0x8f,0xf,0x3,0x27,0x17,0xa7,0xd9,0x91,0xa3,0x47,0x45,0x1,0x2,0x88,0xe5,0xf1,
+ 0xe3,0xc7,0x1e,0xf3,0xe6,0xcd,0xdb,0xa8,0xad,0xa3,0xc3,0x36,0x7f,0xfe,0x7c,0x6,
+ 0x60,0x0,0x83,0xbd,0x23,0x2a,0x2a,0xca,0xb0,0x69,0xd3,0x26,0xb0,0x26,0x98,0x4b,
+ 0x7e,0xfd,0xfa,0x5,0xa6,0x41,0x7c,0x18,0x6,0x86,0x35,0x83,0xac,0x8c,0x8c,0xe0,
+ 0xfb,0xf7,0xef,0x4b,0x0,0x2,0x88,0x65,0xf1,0xe2,0xc5,0x53,0x1e,0x3d,0x7a,0xc4,
+ 0x26,0x29,0x29,0x9,0xe,0xf,0x90,0xcd,0x20,0x1a,0x94,0x1c,0x40,0x0,0x64,0x18,
+ 0x28,0xc6,0x41,0xe2,0x20,0x83,0x60,0x86,0xc1,0x68,0x50,0xc0,0x4b,0xcb,0xc8,0x30,
+ 0x2c,0x5c,0xb0,0xd0,0x8,0x20,0x80,0x98,0x80,0xea,0xd9,0x81,0xe9,0x8a,0xe1,0xe5,
+ 0xcb,0x97,0xc,0x25,0x25,0x25,0xc,0xa0,0x8,0x1,0x79,0x83,0x8d,0x8d,0x8d,0x81,
+ 0x9f,0x9f,0x1f,0x6c,0x18,0x88,0xf,0xd2,0x4,0xc2,0x20,0xef,0xc2,0x30,0x88,0xff,
+ 0xf9,0xf3,0x27,0xb0,0x3a,0x31,0x71,0x71,0x43,0x80,0x0,0x62,0x52,0x55,0x55,0x3d,
+ 0xd,0x4c,0xa,0xe0,0x28,0xff,0xf8,0xf1,0x23,0xc3,0xd4,0xa9,0x53,0x19,0x80,0x31,
+ 0xca,0xf0,0xfc,0xf9,0x73,0x70,0xa0,0x6f,0xdb,0xb6,0xd,0x6c,0x11,0xcc,0x40,0x50,
+ 0x24,0x80,0x30,0xcc,0xe0,0x2f,0x5f,0xbe,0x32,0x30,0x1,0x93,0x16,0x2b,0xb,0x33,
+ 0xb,0x40,0x0,0x31,0xb1,0xb0,0xb0,0xac,0x5,0x27,0x38,0x16,0x16,0x6,0x35,0x35,
+ 0x35,0x86,0xe5,0xcb,0x97,0x33,0xdc,0xb8,0x71,0x83,0xe1,0xce,0x9d,0x3b,0xc,0xa0,
+ 0x98,0x6,0xc9,0x81,0x2,0x1a,0xe4,0x4d,0x98,0xeb,0x60,0x18,0x66,0xf0,0xef,0xdf,
+ 0xbf,0x18,0x18,0xfe,0x33,0x30,0x0,0x4,0x10,0x50,0x2d,0xd3,0x7a,0xa0,0xc4,0x43,
+ 0x50,0xf8,0x28,0x29,0x29,0x31,0xe8,0xea,0xea,0x32,0x6c,0xdd,0xba,0x95,0x41,0x4c,
+ 0x4c,0x8c,0xe1,0xd9,0xb3,0x67,0xe0,0x40,0x7,0x65,0x99,0x4f,0x9f,0x3e,0xc1,0xbd,
+ 0x7,0xa,0x53,0x90,0x61,0x20,0xb,0xbe,0x2,0xe9,0x73,0xe7,0x2f,0x32,0xbc,0xfb,
+ 0xf0,0xe1,0x27,0x40,0x0,0xb1,0x78,0x7b,0x7b,0x7f,0x3,0xc6,0xc4,0x15,0x20,0x96,
+ 0x7,0xc5,0x24,0x28,0xfc,0xb6,0x6d,0xdd,0xc6,0x60,0x6a,0x6a,0xa,0x66,0x83,0x34,
+ 0x0,0xb3,0xb,0x3c,0xb1,0x82,0x30,0xc8,0x19,0x3f,0x80,0xe2,0xcf,0x9f,0xbf,0x60,
+ 0x38,0x78,0xf8,0x28,0xc3,0xdb,0xd7,0x2f,0x6f,0x7b,0x7a,0x78,0xe4,0x0,0x4,0x10,
+ 0x13,0x28,0x65,0x7,0x5,0x5,0x4d,0x7b,0xfd,0xe6,0xf5,0x3f,0xe,0x60,0x34,0x3,
+ 0xb3,0x7,0x3,0xaf,0x0,0x1f,0x38,0xac,0x40,0x86,0x80,0xc2,0xa,0x64,0x10,0xc8,
+ 0x3b,0x20,0x57,0x82,0xf0,0xa9,0xd3,0xe7,0x18,0xd6,0x6f,0xd8,0xc4,0x70,0xf0,0xe0,
+ 0xa1,0x5d,0x82,0x7c,0x3c,0x7e,0x72,0xb2,0xb2,0x46,0x1c,0xec,0x1c,0xbb,0x0,0x2,
+ 0x88,0xe9,0xec,0xd9,0xb3,0x20,0xdb,0xb7,0x7d,0xfb,0xfa,0x6d,0xdd,0xe5,0x2b,0x57,
+ 0x18,0x44,0x44,0x44,0x18,0xec,0xec,0x6d,0x19,0xde,0xbc,0x7f,0x3,0x8f,0x49,0x90,
+ 0x6b,0x40,0xde,0xbb,0x7a,0xed,0x6,0xc3,0xf6,0x9d,0x3b,0x7f,0x5d,0xbe,0x72,0xe9,
+ 0x24,0x1b,0xb,0x4b,0x8a,0xa2,0xbc,0x9c,0x2f,0x30,0x8,0x36,0x3,0x13,0xf6,0x97,
+ 0x7f,0xff,0xff,0x31,0x0,0x4,0x10,0xb,0x28,0x80,0x41,0x19,0x3d,0x2c,0x3c,0x7c,
+ 0xf2,0xb2,0x65,0xcb,0x80,0x3e,0x33,0x93,0x93,0x91,0x90,0x66,0xe0,0xe6,0xe4,0x66,
+ 0x0,0x7a,0x9d,0xe1,0x1f,0x30,0x7,0x80,0x22,0xe0,0xf1,0xe3,0x27,0xdf,0x7e,0xfd,
+ 0xfc,0x79,0x8a,0x8d,0x8d,0xb5,0xdb,0xc4,0xc8,0x68,0x1b,0x28,0x57,0xfc,0x4,0xba,
+ 0x12,0x94,0x43,0x40,0xb1,0xf,0x2,0x0,0x1,0xc4,0xac,0xa0,0xa0,0x0,0x76,0xd,
+ 0xb0,0x7c,0x7a,0x28,0x26,0x2a,0x7a,0x74,0xf6,0xac,0xd9,0xe6,0xaf,0x5e,0xbf,0x17,
+ 0x57,0x54,0xd3,0x66,0xb8,0x76,0xf9,0x2,0xc3,0xe1,0xc3,0x47,0x18,0xde,0xbe,0x79,
+ 0x7b,0x48,0x57,0x47,0x3b,0x59,0x4a,0x4a,0xb2,0x9,0xa8,0xf1,0x36,0x28,0xb,0x82,
+ 0x22,0x0,0x14,0x44,0xa0,0x3c,0xc,0x72,0xb9,0x80,0x80,0x0,0x3,0x40,0x0,0x31,
+ 0x82,0x4c,0x46,0x6,0x9e,0x9e,0x9e,0xa9,0x11,0x71,0xa9,0x19,0x1b,0xd7,0xad,0x32,
+ 0xf8,0xfd,0xe3,0xdb,0x26,0x71,0x71,0xb1,0x5e,0x6e,0x6e,0xee,0x33,0xc0,0x84,0xf9,
+ 0x3,0x64,0xe9,0xce,0x9d,0x3b,0x19,0x80,0x69,0x13,0x1c,0xdb,0xa0,0xb0,0x14,0x12,
+ 0x12,0x2,0xbb,0xe,0x64,0x1,0x40,0x0,0xb1,0x30,0xa0,0x81,0x9b,0x37,0x6f,0x89,
+ 0xda,0x58,0x9a,0xee,0xbb,0x73,0xe3,0xd2,0xed,0xe6,0xc6,0x86,0x8,0x98,0x78,0x67,
+ 0x47,0x3b,0xb7,0xa4,0x84,0xc4,0xef,0xbf,0x7f,0xfe,0xfc,0xfa,0x7,0xf4,0x16,0xf,
+ 0x37,0x24,0x18,0x40,0xb1,0xd,0xca,0x2d,0x20,0x3,0x1,0x2,0x8,0xc3,0x30,0x41,
+ 0x41,0x41,0xf5,0xa6,0xfa,0x1a,0xce,0x85,0xb,0x17,0x86,0x21,0x8b,0xdf,0x7d,0xf8,
+ 0xe2,0xeb,0xe3,0x97,0xef,0x18,0xde,0x7c,0xf8,0xc2,0xc0,0x5,0xcc,0x1d,0x5f,0xbe,
+ 0x7c,0x62,0x60,0x63,0x65,0x65,0x10,0x17,0x13,0x65,0x60,0x2,0xe6,0x5d,0x10,0x0,
+ 0x8,0x20,0xb0,0x89,0xc8,0x18,0x8,0xe2,0xd0,0xc5,0x88,0xc5,0x0,0x1,0x6,0x0,
+ 0xc9,0xba,0xe3,0x6,0xeb,0x52,0x42,0x4d,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,
+ 0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/add.png
+ 0x0,0x0,0x3,0x3,
+ 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,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x2,0x95,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0xfc,0xff,0xff,0x3f,0x3,0x32,0x90,0x97,0x97,0x77,0x63,0x65,0x65,0x75,0x67,0x61,
+ 0x61,0xb1,0x2,0x62,0x4d,0x26,0x26,0x26,0x90,0xf0,0xf5,0x7f,0xff,0xfe,0x1d,0xfb,
+ 0xf3,0xe7,0xcf,0xce,0x1b,0x37,0x6e,0xec,0x42,0x56,0xf,0x10,0x40,0x8c,0x30,0x3,
+ 0x64,0x64,0x64,0x14,0xd8,0xd8,0xd8,0x72,0x38,0x38,0x38,0xd2,0xb9,0xb8,0xb8,0x78,
+ 0x80,0x34,0x3,0xd0,0x20,0x6,0x66,0x66,0x66,0xb0,0xfc,0xdf,0xbf,0x7f,0x19,0x7e,
+ 0xff,0xfe,0xfd,0xe5,0xc7,0x8f,0x1f,0x33,0xbf,0x7d,0xfb,0x36,0xe5,0xda,0xb5,0x6b,
+ 0xf,0x40,0xe2,0x0,0x1,0x4,0x36,0x0,0xa4,0x99,0x9d,0x9d,0xbd,0x99,0x87,0x87,
+ 0x27,0x6,0x88,0x19,0x40,0x58,0x59,0x59,0x99,0x41,0x42,0x42,0x82,0xe1,0xdd,0xbb,
+ 0x77,0xc,0x6f,0xdf,0xbe,0x65,0x0,0x6a,0x2,0x19,0xc0,0xf0,0xf3,0xe7,0x4f,0x86,
+ 0x2f,0x5f,0xbe,0x2c,0x1,0xe2,0xda,0x8b,0x17,0x2f,0x3e,0x0,0x8,0x20,0x16,0x90,
+ 0x29,0x20,0x9b,0x41,0x9a,0xf9,0xf9,0xf9,0x19,0xf8,0xf8,0xf8,0x18,0x38,0x39,0x39,
+ 0x19,0x78,0x79,0x79,0x19,0x92,0x92,0x92,0x18,0xb8,0xb9,0xb9,0x19,0xba,0xbb,0xbb,
+ 0x19,0x1e,0x3f,0x7e,0xcc,0x0,0xf4,0x6,0x3,0xd0,0x22,0x90,0xcb,0x62,0x80,0x2e,
+ 0x7b,0x9,0xd4,0x5a,0x2,0x10,0x40,0x2c,0x20,0x3f,0x3,0x15,0xa5,0x83,0x6c,0x5,
+ 0x69,0x6,0xd1,0x20,0xa7,0x83,0xbc,0x20,0x2e,0x2e,0xce,0x0,0xa,0x3,0x90,0x37,
+ 0x40,0x34,0xc,0x43,0xbd,0x95,0x6e,0x6d,0x6d,0xbd,0xb,0x20,0x80,0x58,0x40,0x1,
+ 0x6,0xf2,0x33,0x48,0x23,0xc8,0x66,0x90,0x66,0x98,0x42,0xa0,0x7f,0x41,0xae,0x63,
+ 0x0,0x6,0x1e,0x3c,0xd0,0x40,0xe2,0x20,0x35,0x40,0xb5,0x3c,0x40,0x2f,0xb9,0x3,
+ 0x4,0x10,0xb,0x28,0xb4,0x41,0xb6,0x81,0x9c,0xaf,0xa3,0xa3,0x3,0x96,0x4,0x5,
+ 0x18,0xc8,0x35,0x1f,0x3f,0x7e,0x64,0x0,0xca,0x33,0x88,0x88,0x88,0x30,0x0,0x2d,
+ 0x1,0x6b,0xfe,0xfa,0xf5,0x2b,0xc3,0xcb,0x97,0x2f,0x61,0xde,0xb1,0x2,0x8,0x20,
+ 0x90,0x1,0x9a,0x20,0x4d,0x20,0x9c,0x97,0x97,0x7,0xf6,0x3b,0x28,0x60,0x9f,0x3f,
+ 0x7f,0xe,0x66,0x83,0x40,0x78,0x78,0x38,0x38,0x40,0x19,0x19,0x19,0xc1,0x1,0x5a,
+ 0x54,0x54,0x4,0x73,0x89,0x26,0x40,0x0,0x31,0xc1,0xfc,0x4,0xc2,0xa0,0x10,0x6,
+ 0x1,0x10,0xd,0x32,0x4,0x64,0x3b,0xcc,0x4b,0x20,0xcd,0x20,0xc,0x12,0x7,0xd9,
+ 0xe,0x62,0x83,0xc4,0x1,0x2,0x8,0x14,0xb,0xd7,0x81,0xd8,0x2,0x24,0xd8,0xd5,
+ 0xd5,0x5,0xd6,0x4,0xf2,0x2,0x28,0x0,0xe3,0xe3,0xe3,0xc1,0xe1,0x32,0x77,0xee,
+ 0x5c,0x86,0x17,0x2f,0x5e,0xc0,0xc3,0x3,0x96,0x36,0x40,0x7a,0x1,0x2,0x88,0x5,
+ 0x94,0xc2,0x80,0x1a,0x2c,0xbe,0x7f,0xff,0xce,0xf0,0xea,0xd5,0x2b,0x6,0x68,0xca,
+ 0x63,0x80,0xa5,0x7,0x50,0xf8,0x80,0xfc,0xc,0x8c,0x77,0x94,0x80,0x4,0x59,0x8,
+ 0xd2,0xb,0x10,0x40,0x4c,0xa0,0xe4,0x9,0x4a,0x61,0xa0,0x44,0x2,0x12,0x84,0x1,
+ 0x10,0x1b,0xa4,0x19,0xe4,0x54,0x90,0xab,0xd0,0x1,0x50,0x1e,0xa4,0x67,0x27,0x40,
+ 0x0,0x31,0x81,0xd2,0x36,0x28,0x79,0x82,0xfc,0xfd,0xeb,0xd7,0x2f,0xb8,0x21,0xa0,
+ 0xd0,0x6,0xb9,0xe8,0xfd,0xfb,0xf7,0x60,0x2f,0xa1,0x69,0x6,0xa9,0x9d,0xb9,0x69,
+ 0xd3,0xa6,0x5d,0x0,0x1,0x4,0x36,0x1a,0x94,0xb6,0x81,0x51,0x22,0xe,0x4d,0x61,
+ 0xe0,0x80,0x3,0x69,0xce,0xcd,0xcd,0x5,0x7,0x1a,0xc8,0x25,0x30,0x7f,0x83,0x34,
+ 0x3,0x6d,0x5e,0x2,0xf4,0xf2,0x14,0x10,0x1f,0x20,0x80,0xe0,0x99,0x49,0x5f,0x5f,
+ 0x5f,0x1,0x98,0x16,0x72,0x80,0xf1,0x9f,0xe,0x4a,0x24,0xa0,0x0,0x83,0x85,0x3e,
+ 0x8,0x40,0x43,0xff,0xb,0xc8,0x66,0x90,0xe6,0x2d,0x5b,0xb6,0x80,0x33,0x13,0x40,
+ 0x0,0x31,0xa2,0x67,0x67,0x60,0xf2,0x74,0x3,0x6,0x9e,0x3b,0x28,0x91,0x40,0xe3,
+ 0x19,0x9e,0x9d,0x41,0x7e,0x6,0x39,0x1b,0x59,0x3d,0x40,0x80,0x1,0x0,0x18,0x4c,
+ 0x2e,0xe9,0x19,0xc4,0xa1,0x62,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,
+ 0x60,0x82,
+ // /home/matthew/pencil_dev/icons/polyline.png
+ 0x0,0x0,0x1,0xae,
+ 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,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,0xd8,
+ 0xeb,0xf5,0x1c,0x14,0xaa,0x0,0x0,0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x6d,
+ 0x98,0x0,0x0,0x73,0x8e,0x0,0x0,0xea,0x48,0x0,0x0,0x86,0x0,0x0,0x0,0x77,
+ 0xef,0x0,0x0,0xd0,0xf0,0x0,0x0,0x32,0xf7,0x0,0x0,0x1c,0x74,0xb6,0xd2,0x6c,
+ 0xb,0x0,0x0,0x1,0x24,0x49,0x44,0x41,0x54,0x78,0xda,0x62,0x60,0x60,0x60,0x48,
+ 0x6,0x62,0x2b,0x6,0x34,0xf0,0xff,0xff,0x7f,0xbc,0x18,0x8,0x42,0x80,0xf8,0x2d,
+ 0x40,0x0,0x81,0x18,0x1b,0x81,0xf8,0x3,0x10,0xaf,0x3,0x62,0x2d,0x62,0xc,0x0,
+ 0x82,0x28,0x20,0x7e,0x8,0xc4,0x9f,0x0,0x2,0x8,0xc4,0xd1,0x5,0xe2,0x47,0x40,
+ 0x5c,0xa,0x35,0x71,0xe,0x10,0xcb,0xe1,0xd1,0x9c,0x0,0xd5,0xac,0x8,0xb2,0x18,
+ 0x20,0x80,0x60,0x16,0x6e,0x81,0x7a,0x85,0x1f,0x88,0xdb,0xa1,0x6,0xf5,0x2,0xb1,
+ 0x10,0x9a,0xe6,0x64,0x98,0x66,0x28,0xff,0x3,0x40,0x0,0xc1,0xc,0xb0,0x4,0xe2,
+ 0x1b,0x40,0xcc,0xc,0xe5,0x4b,0x0,0xf1,0x34,0xa8,0x41,0x15,0x40,0xcc,0x3,0xc4,
+ 0x69,0x40,0x7c,0xf,0xd9,0x75,0x20,0x3,0x0,0x2,0x8,0x39,0xdc,0xe,0x40,0x3,
+ 0x6,0x1e,0x6,0x40,0xa0,0x2,0xc4,0x2b,0x80,0xf8,0xd,0x10,0xdf,0x4,0x62,0x69,
+ 0x34,0x17,0x7d,0x0,0x8,0x20,0x64,0x3,0x3c,0x80,0xf8,0xc,0xb6,0x40,0x4,0x2,
+ 0x3d,0x90,0xab,0xb0,0x84,0xc7,0x7,0x80,0x0,0x42,0x8f,0xbd,0x33,0x50,0x83,0x8,
+ 0x46,0x23,0xd4,0x80,0x8f,0x0,0x1,0x84,0x6e,0x0,0xc8,0xb,0x4b,0xf1,0x19,0x0,
+ 0xa,0x58,0x20,0xce,0x1,0xe2,0x4b,0x40,0x7c,0xe,0x20,0x80,0xd0,0xd,0x60,0x86,
+ 0x5,0x24,0x16,0x8d,0xf6,0x50,0xc3,0x3f,0x40,0xc3,0xc5,0x15,0x24,0xe,0x10,0x40,
+ 0xc,0xb8,0x0,0x54,0x52,0x2,0x1a,0xb,0xb7,0x81,0xf8,0x2a,0x10,0x17,0xa1,0x47,
+ 0x2d,0x40,0x0,0x11,0xf2,0xe3,0x79,0x20,0x9e,0xf,0x8a,0x66,0x5c,0x6a,0x0,0x2,
+ 0x88,0x11,0xaf,0x33,0x88,0x0,0x0,0x1,0x44,0xb1,0x1,0x0,0x1,0x44,0xb1,0x1,
+ 0x0,0x1,0x44,0xb1,0x1,0x0,0x1,0x6,0x0,0x58,0x49,0x16,0x83,0xc9,0xda,0xd7,
+ 0xdf,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/arrow.png
+ 0x0,0x0,0x1,0xe3,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0xe,0x0,0x0,0x0,0xe,0x8,0x6,0x0,0x0,0x0,0x1f,0x48,0x2d,0xd1,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x1,0x75,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0xf8,0xff,0xff,0x3f,0x3,0x8,0x8b,0x8b,0x8b,0xff,0x3f,0x74,0xe8,0xd0,0x62,0x18,
+ 0x9f,0x10,0x6,0x8,0x20,0x38,0x43,0x5b,0x5b,0xfb,0x3f,0x54,0xf3,0xc,0x62,0x34,
+ 0x2,0x4,0x10,0x9c,0xe1,0xe4,0xe4,0xf4,0xdf,0xc7,0xc7,0xe7,0xbf,0x82,0x82,0xc2,
+ 0xff,0x3,0x7,0xe,0x10,0xd4,0xc,0x10,0x40,0x4c,0xc,0x50,0xc0,0xc7,0xc7,0xc7,
+ 0x0,0xd4,0x4,0x72,0x32,0x43,0x7c,0x7c,0x7c,0xfa,0x91,0x23,0x47,0x36,0x30,0xe0,
+ 0x1,0x0,0x1,0x4,0xd7,0xc8,0xc1,0xc1,0xc1,0xc0,0xc3,0xc3,0xc3,0xf0,0xe5,0xcb,
+ 0x17,0x86,0x6f,0xdf,0xbe,0x81,0x5c,0xe0,0x7f,0xec,0xe8,0xd1,0xe5,0xb8,0x34,0x2,
+ 0x4,0x10,0x5c,0x23,0x33,0x33,0x33,0x3,0x2b,0x2b,0x2b,0xc3,0xfb,0xf7,0xef,0x19,
+ 0x3e,0x7c,0xf8,0xc0,0xf0,0xfb,0xf7,0x6f,0x6,0x6b,0x1b,0x9b,0x88,0xe3,0xc7,0x8f,
+ 0x63,0xb5,0x19,0x20,0x80,0x50,0x6c,0x64,0x67,0x67,0x67,0xf8,0xf5,0xeb,0x17,0xc3,
+ 0xdf,0xbf,0x7f,0xe1,0xa,0xac,0xac,0xac,0xfc,0x4f,0x9e,0x3c,0xb9,0x10,0x5d,0x23,
+ 0x40,0x0,0xc1,0x35,0x82,0x3c,0x7c,0xed,0xda,0x35,0x86,0x7f,0xff,0xfe,0x81,0x31,
+ 0x32,0xb0,0xb0,0xb0,0x88,0x43,0xd7,0x8,0x10,0x40,0x2c,0x30,0x6,0x23,0x23,0x23,
+ 0xc3,0xeb,0xd7,0xaf,0x19,0x58,0x58,0x20,0x42,0x6c,0x6c,0x6c,0xc,0x5b,0x36,0x6f,
+ 0x7e,0xc5,0xcb,0xc7,0xf7,0x9e,0x89,0x89,0xe9,0x15,0xba,0x46,0x80,0x0,0x62,0x42,
+ 0xe6,0x7c,0xfa,0xf4,0x89,0x61,0xce,0x9c,0x39,0xaf,0xcd,0xcd,0xcd,0xc1,0x4e,0xde,
+ 0xb2,0x75,0xeb,0x2f,0x6e,0x6e,0xee,0x6b,0x66,0x66,0x66,0x76,0xe8,0x1a,0x1,0x2,
+ 0x8,0x1e,0x2f,0x21,0x21,0x21,0xff,0x8f,0x1d,0x3b,0x76,0x17,0xc4,0x9e,0x3a,0x75,
+ 0xea,0x2a,0x90,0xeb,0x41,0x9,0xe2,0xec,0x99,0x33,0xf7,0xb0,0xc5,0x23,0x40,0x0,
+ 0xe1,0x8c,0x60,0x75,0x75,0xf5,0xff,0x20,0xcd,0xb5,0xb5,0xb5,0xff,0x9f,0x3f,0x7f,
+ 0xbe,0x7,0x5d,0x1e,0x20,0x80,0x70,0x6a,0x9c,0x32,0x65,0xca,0x46,0xa0,0x7f,0xff,
+ 0xcb,0xc8,0xc8,0xfc,0x7f,0xf1,0xfc,0x79,0x13,0xba,0x3c,0x40,0x0,0xe1,0x4f,0x8f,
+ 0x40,0x1b,0x41,0x1a,0x9f,0x3c,0x79,0x72,0x8,0x5d,0xe,0x20,0xc0,0x0,0xe8,0x78,
+ 0x54,0xc0,0xc6,0x93,0x38,0x12,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,
+ 0x60,0x82,
+ // /home/matthew/pencil_dev/icons/logo.png
+ 0x0,0x0,0x63,0x26,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x1,0x3e,0x0,0x0,0x0,0x7b,0x8,0x2,0x0,0x0,0x0,0x62,0xb8,0x7b,0xc,
+ 0x0,0x0,0xb,0x33,0x69,0x43,0x43,0x50,0x49,0x43,0x43,0x20,0x50,0x72,0x6f,0x66,
+ 0x69,0x6c,0x65,0x0,0x0,0x78,0x9c,0x95,0x97,0x67,0x58,0x14,0xd7,0x1e,0x87,0x7f,
+ 0x43,0x15,0x41,0x40,0x44,0x10,0x41,0x58,0x10,0x10,0xa4,0x77,0x11,0xa5,0x57,0xe9,
+ 0x4b,0x91,0xaa,0x2e,0x5b,0x60,0x91,0x2d,0xec,0x2e,0x4b,0x15,0xc4,0x86,0x51,0x63,
+ 0x4b,0xec,0x1a,0x54,0x22,0x82,0x90,0x60,0x41,0x29,0x6a,0x6c,0x10,0x2b,0x62,0xec,
+ 0x3d,0x62,0x45,0xa2,0x20,0xa2,0xe2,0xb5,0xed,0xfd,0x30,0x4b,0x11,0xaf,0xc6,0x7b,
+ 0xf6,0xcb,0x99,0x79,0x4e,0x99,0xd9,0xf7,0xfd,0xfd,0xe7,0x39,0x80,0x7a,0x3b,0x8d,
+ 0xcf,0xcf,0x90,0x1,0xc0,0xe1,0x8a,0x4,0xd4,0x0,0x6f,0x4a,0x5c,0x7c,0x2,0x45,
+ 0xf1,0x1a,0x14,0xa0,0x8e,0x51,0x70,0x81,0x2b,0x8d,0x2e,0xe4,0x7b,0x45,0x44,0x84,
+ 0xe0,0xab,0xed,0xcd,0x55,0x10,0x0,0x70,0xc9,0x8a,0xc6,0xe7,0x67,0x7c,0x7d,0xdc,
+ 0xff,0x6c,0xaa,0x82,0xb8,0xf8,0x4,0x80,0xb0,0x4,0xa0,0x99,0x4a,0xf6,0x3d,0x1,
+ 0x68,0xa6,0x90,0xfd,0x68,0x0,0x9a,0xd9,0x22,0xbe,0x8,0x20,0xd2,0x0,0x68,0xd2,
+ 0xd3,0x68,0xc,0x80,0x28,0x0,0x60,0x29,0x88,0xa6,0xfa,0x0,0x44,0x5,0x0,0xd5,
+ 0x54,0xb2,0x5f,0xf,0x40,0x35,0x85,0xec,0x9f,0x2,0xa0,0x2a,0xa6,0xa7,0x8a,0x0,
+ 0xe2,0x3a,0xa0,0xa0,0xc1,0x65,0xb0,0xb9,0x80,0xe2,0x33,0x40,0xc1,0x9d,0xc1,0x14,
+ 0xd2,0x1,0x55,0x4b,0x0,0xc,0x86,0x90,0xce,0x1,0x54,0x57,0x2,0xc4,0x27,0xe,
+ 0x87,0xc7,0x0,0xd4,0x57,0x2,0x30,0xa3,0xf3,0x5,0x22,0x40,0xbd,0x1e,0x80,0x55,
+ 0x5c,0x7c,0x2,0x85,0x7c,0x64,0xfa,0x44,0xc0,0x45,0x19,0x90,0x7b,0x3f,0x70,0x8f,
+ 0xa3,0xb,0xec,0x7e,0x1,0xe8,0x7f,0x1c,0xb8,0x67,0xba,0xa,0x18,0x43,0x1,0x6a,
+ 0x2c,0x7,0xee,0xf5,0x50,0x41,0x0,0x20,0xb4,0x5a,0x85,0x2c,0x7,0x7b,0x0,0x0,
+ 0xa1,0xe2,0xd,0xc8,0xdf,0x95,0x48,0x7a,0x4c,0x1,0xc5,0xd5,0xc0,0xc7,0x55,0x12,
+ 0xc9,0xfb,0xed,0x12,0xc9,0xc7,0x32,0x40,0xf6,0x36,0x70,0x34,0x83,0x9e,0x25,0x10,
+ 0x4b,0xff,0x2f,0x82,0x68,0x1,0xfe,0xed,0x9a,0x7c,0x67,0x69,0x93,0x25,0x0,0x19,
+ 0x40,0x55,0x4f,0xe3,0xa1,0xf6,0xd8,0xb1,0xba,0x7a,0x66,0x6,0x3a,0x86,0xc6,0x46,
+ 0x86,0xc6,0xe6,0xa6,0x94,0x9,0x26,0xe6,0x96,0x13,0xcd,0x2d,0x2d,0xad,0x2c,0xac,
+ 0xad,0x6c,0xac,0x6c,0x6d,0xec,0x6c,0x1c,0xec,0x1c,0x9d,0x9c,0x9c,0x9d,0x1d,0x9d,
+ 0x6b,0x5d,0x5c,0x5d,0x9d,0x27,0xbb,0xb9,0x4d,0x99,0xea,0xee,0x3e,0xd5,0xc3,0xd3,
+ 0xd3,0xd3,0xcb,0xcb,0xc7,0xd7,0xd7,0xc7,0xcf,0xcf,0xdf,0x3f,0xc0,0x3f,0x30,0x20,
+ 0x28,0x70,0xda,0xb4,0xe0,0xe0,0x90,0xd0,0xd0,0xd0,0xb0,0xf0,0xf0,0xb0,0x88,0xc8,
+ 0xc8,0x48,0x6a,0x64,0x54,0x54,0x74,0x74,0x4c,0x6c,0x6c,0xec,0xf4,0xe9,0x71,0xf1,
+ 0xf1,0xf1,0x9,0xf1,0x89,0x89,0x89,0xb7,0x92,0x92,0x92,0x93,0x67,0x24,0xcf,0x9c,
+ 0x39,0x6b,0x16,0x8d,0x96,0x92,0x92,0x72,0x9f,0xce,0x60,0x30,0x98,0xc,0x16,0x2b,
+ 0x35,0x35,0xf5,0x49,0x1a,0x9b,0xcd,0x4e,0x4f,0x9f,0x3d,0x7b,0xf6,0x3f,0x19,0x19,
+ 0x1c,0xe,0x97,0xcb,0xe3,0xf1,0xba,0xf8,0xfc,0xcc,0x4c,0x81,0x40,0x28,0x14,0xf6,
+ 0x88,0x44,0x59,0x59,0x62,0xb1,0xf8,0x4d,0x76,0x76,0x4e,0x76,0x6e,0x6e,0x5e,0x5e,
+ 0xde,0xbb,0xfc,0x82,0x82,0x82,0x39,0x85,0x85,0x85,0x85,0x9f,0x8a,0x8a,0xe6,0x16,
+ 0x15,0x17,0xcf,0x9b,0x37,0x5f,0x66,0xfe,0xfc,0x5,0xb,0x16,0x2e,0x5c,0xb4,0xa8,
+ 0xa4,0x64,0xb1,0xe2,0xe2,0xc5,0x3f,0xfc,0xb0,0x64,0xc9,0xd2,0xa5,0xcb,0x96,0xfe,
+ 0xa8,0xf2,0xe3,0x8f,0xcb,0x97,0xaf,0x58,0xb1,0x72,0xe5,0xaa,0x55,0xab,0x47,0xae,
+ 0x5e,0xfd,0xd3,0x4f,0x3f,0xff,0xbc,0x66,0xcd,0xda,0xb5,0xeb,0xb4,0xd6,0xad,0x5b,
+ 0xbf,0x7e,0xc3,0x86,0x8d,0x1b,0x37,0x8d,0xdd,0xb4,0x69,0xf3,0xe6,0x2d,0x5b,0x7e,
+ 0xf9,0xa5,0x54,0xbf,0xb4,0x74,0xeb,0xd6,0x6d,0xdb,0xb6,0x6f,0x2f,0x33,0x2a,0x2b,
+ 0xfb,0xf5,0xd7,0x1d,0x3b,0xca,0x4d,0xca,0xcb,0x77,0xee,0xac,0xa8,0xa8,0xac,0xdc,
+ 0x65,0xbe,0x6b,0x57,0x55,0x55,0x75,0xf5,0x6f,0x96,0xbf,0xfd,0xf6,0xfb,0xef,0x35,
+ 0x35,0xbb,0x6d,0x76,0xef,0xde,0xb3,0x67,0xef,0xde,0x7d,0xf6,0xfb,0xf6,0xd5,0xd6,
+ 0xee,0xdf,0x7f,0xc0,0xe9,0xc0,0x81,0xba,0xba,0xfa,0xfa,0x86,0x49,0xd,0xd,0x8d,
+ 0x8d,0x7,0xf,0x1e,0x72,0x3b,0x74,0xe8,0xf0,0xe1,0x3f,0xfe,0x38,0xe2,0x7e,0xe4,
+ 0xc8,0xd1,0xa3,0xc7,0x8e,0x1d,0xf7,0x3a,0x7e,0xfc,0xc4,0x89,0xa6,0xa6,0x66,0xdf,
+ 0xe6,0xe6,0x3f,0xff,0x3c,0xe9,0x7f,0xf2,0xe4,0xa9,0x53,0xa7,0x4f,0x9f,0x9,0x3a,
+ 0x73,0xe6,0xec,0xd9,0x73,0xe7,0x5a,0x42,0x5a,0x5a,0xce,0x9f,0x6f,0x6d,0xbd,0x10,
+ 0x7e,0xe1,0xc2,0x5f,0x7f,0x5d,0xbc,0x78,0x89,0x7a,0xe9,0xd2,0xe5,0xcb,0x57,0xae,
+ 0x5c,0x8d,0xb9,0x7a,0xf5,0xda,0xb5,0xeb,0xd7,0x6f,0xc4,0xdd,0xb8,0x71,0xf3,0xe6,
+ 0xad,0x5b,0xb7,0x6f,0xdf,0x49,0xba,0x73,0xe7,0xee,0xdd,0xbf,0xff,0xbe,0x77,0xaf,
+ 0x6d,0x56,0x5b,0xdb,0xfd,0xfb,0xf,0x1e,0x3c,0x7c,0xf8,0xe8,0xd1,0xe3,0xc7,0x4f,
+ 0x9e,0xb4,0xb7,0x3f,0x7d,0xda,0xd1,0xf1,0xcf,0x3f,0xcf,0x9e,0x3d,0x7f,0xde,0xd9,
+ 0xd9,0xd5,0xf5,0xe2,0x45,0x77,0xf7,0xcb,0x97,0x3d,0x3d,0xaf,0x5f,0xbf,0x79,0xd3,
+ 0xdb,0xfb,0xf6,0xed,0xbb,0x77,0xef,0xdf,0x7f,0xfc,0x28,0x91,0x0,0x4a,0xea,0x2a,
+ 0xcf,0xd5,0x35,0x34,0x46,0x8d,0xd6,0xd3,0xd6,0xd0,0xa1,0xe8,0xea,0x8c,0xa3,0xe8,
+ 0xeb,0x52,0xf4,0xc,0x4d,0xc7,0x1b,0x19,0x1b,0x9b,0x1a,0x4d,0x30,0x35,0x33,0x9d,
+ 0x68,0x6e,0x61,0x6e,0x69,0x61,0x65,0x6d,0x6d,0x63,0x63,0x65,0xbb,0xc0,0xce,0xde,
+ 0xde,0xce,0xd1,0xc9,0xc9,0xc9,0xd9,0xc5,0xc5,0xd9,0x75,0xf2,0xe4,0xc9,0x6e,0x6e,
+ 0x53,0xa6,0x4e,0x9d,0xe2,0xee,0xe1,0xe9,0xe1,0xe5,0xe9,0xed,0xe5,0xe3,0xed,0xeb,
+ 0xeb,0xe7,0xe7,0x1f,0x10,0x10,0x10,0x18,0x14,0x14,0x38,0x2d,0x38,0x38,0x38,0x24,
+ 0x38,0x34,0x34,0x2c,0x2c,0xac,0x25,0x3c,0x3c,0x22,0x22,0x92,0x4a,0xa5,0x46,0x51,
+ 0xa3,0xa3,0x63,0x62,0x62,0xae,0xc4,0xc6,0x4e,0x8f,0x8d,0x8b,0x8b,0x8f,0x4f,0x48,
+ 0x48,0xb8,0x99,0x98,0x98,0x94,0x4c,0xfa,0x30,0xf3,0x6f,0x52,0x8,0x3a,0x9d,0xfe,
+ 0x80,0xc1,0x60,0x32,0x59,0x2c,0xd6,0xe3,0xd4,0x54,0xd2,0x88,0xf4,0x8e,0xd9,0xb3,
+ 0x33,0x38,0x1c,0xe,0xe7,0x39,0x97,0xcb,0xe3,0xf1,0xf9,0x99,0xfc,0xcc,0x6e,0x81,
+ 0x50,0x28,0x14,0x89,0x44,0xaf,0xb2,0xc4,0x62,0x71,0xb6,0x38,0xbb,0x37,0x27,0x47,
+ 0xea,0x44,0x7e,0x41,0xc1,0x9c,0x39,0x52,0x27,0xe6,0xe,0x71,0x42,0xa1,0xa4,0x44,
+ 0xea,0xc4,0xf0,0xa5,0x4b,0x97,0x2d,0x93,0x3a,0xa1,0xb6,0x72,0xe5,0xaa,0x55,0x52,
+ 0x27,0x34,0xd7,0xac,0x59,0xbb,0x56,0xea,0x84,0xce,0xc6,0x8d,0xdf,0x70,0xa2,0x7c,
+ 0xe7,0xce,0x8a,0x9,0x15,0x15,0x95,0x95,0xbb,0x76,0x55,0x55,0x55,0x5b,0x54,0x57,
+ 0x7f,0xc5,0x88,0x3,0x75,0xce,0x75,0x75,0xf5,0xf5,0xd,0xd,0x8d,0x8d,0x7,0x27,
+ 0x1f,0x3c,0x38,0xc4,0x87,0xe3,0x27,0xbc,0x4f,0x9c,0x68,0x6a,0xfa,0xcc,0x86,0x33,
+ 0x67,0xa7,0x9d,0x3d,0x7b,0xee,0x5c,0x4b,0xcb,0xf9,0xf3,0xad,0x61,0xad,0xad,0x43,
+ 0x5c,0x18,0x6a,0x42,0x9f,0x7,0xdf,0xb0,0xe0,0x45,0xd7,0x80,0x3,0x6f,0xdf,0xbe,
+ 0x7b,0xf7,0xe1,0x83,0x44,0x2,0xc,0x1f,0x49,0xf2,0xd7,0xd4,0xd5,0x1a,0xa9,0xad,
+ 0xaf,0xa3,0x3d,0xd6,0x40,0x4f,0x6b,0x9c,0xae,0xbe,0xa1,0x81,0x3e,0x85,0x62,0x68,
+ 0x60,0x64,0x38,0xde,0xd0,0x78,0xbc,0xf1,0x36,0x13,0x63,0xd3,0x9,0x13,0xcc,0xcc,
+ 0x4c,0xcd,0xca,0xcd,0x2d,0x2c,0xcc,0x2c,0xad,0xac,0xad,0x6d,0x6c,0x6d,0x6d,0xec,
+ 0xec,0x1d,0x1c,0x1c,0x1d,0x9d,0x9c,0x9d,0x9d,0x5c,0x5c,0x26,0x4d,0x72,0x9d,0xe4,
+ 0xe6,0x3a,0xc5,0x6d,0xea,0x54,0x77,0x77,0xf,0x4f,0x4f,0x4f,0x2f,0x6f,0x6f,0x2f,
+ 0x1f,0x5f,0x5f,0x5f,0x3f,0x5f,0x7f,0xff,0x80,0x80,0xc0,0xc0,0xc0,0x53,0x41,0x41,
+ 0xfd,0x3e,0x84,0x87,0x87,0x47,0x44,0x44,0x5c,0x88,0x8c,0xa4,0x52,0xa3,0xa2,0xa2,
+ 0xa3,0x63,0xa2,0x7,0x7c,0x88,0xbf,0x91,0x90,0x98,0x98,0x98,0x94,0x94,0x9c,0x9c,
+ 0x7c,0x67,0xc6,0xc,0xb2,0x42,0xd0,0xda,0x52,0x52,0xe8,0x74,0x6,0x83,0xc9,0x64,
+ 0x3e,0x62,0xb1,0x52,0x53,0xd3,0xd2,0xd2,0xda,0xd9,0xec,0x74,0xb6,0xb4,0x46,0x70,
+ 0x7,0xd5,0x88,0x4c,0xc1,0x4b,0xa1,0x50,0x24,0xcc,0xca,0xca,0x7a,0x2d,0x16,0x67,
+ 0x67,0xe7,0xe4,0xe4,0xe6,0xe6,0xfe,0x27,0x2f,0x2f,0x3f,0xbf,0xa0,0x60,0x4e,0xc1,
+ 0x9c,0x8f,0x85,0x85,0x52,0x1f,0x88,0x79,0xf3,0xa4,0x3e,0xc8,0x2f,0x5a,0xd4,0xef,
+ 0xc3,0xd2,0x65,0xca,0xfd,0x3e,0xc,0xad,0x11,0xeb,0xd6,0x6b,0x4b,0x6b,0xc4,0x97,
+ 0x36,0x94,0xfd,0x3a,0xbe,0xdf,0x86,0xc1,0xf5,0xe1,0x73,0x17,0xf6,0xd5,0xd6,0xee,
+ 0x77,0xdc,0xbf,0x5f,0x5a,0x1b,0x1a,0x1a,0x5d,0x1b,0x1b,0xfb,0x4d,0x38,0x72,0xd4,
+ 0x43,0x6a,0xc2,0x40,0x5d,0xf8,0xd2,0x3,0xd2,0x82,0xc8,0x8b,0x17,0x3f,0xb3,0xe0,
+ 0x5f,0x1d,0x20,0xd,0xe8,0xea,0x7c,0xf1,0xe2,0x4b,0xfe,0xe4,0xb7,0xf,0x0,0x14,
+ 0x9c,0x81,0xcd,0xd5,0x40,0x9c,0x3a,0x40,0xe5,0x2,0xcb,0x35,0x81,0x9,0x1c,0x40,
+ 0xab,0x2,0x88,0x18,0x1,0x44,0xbb,0x42,0xc6,0xc1,0x1,0xc4,0xbb,0x36,0x10,0xd7,
+ 0x86,0xf7,0x7d,0x3f,0x6,0x35,0x42,0xfa,0x93,0x81,0xc,0x64,0x20,0xb,0x59,0xc8,
+ 0x41,0x1,0x8a,0x50,0x82,0x32,0x46,0x40,0x1d,0xa3,0xa0,0x5,0x5d,0x50,0x60,0x2,
+ 0x6b,0xb8,0xc0,0x1d,0x7e,0x8,0x45,0x3c,0x98,0x28,0xc6,0x4a,0x94,0x62,0x37,0x8e,
+ 0xe1,0x11,0xde,0x12,0xca,0x84,0x13,0x11,0x4c,0xd0,0x88,0x95,0xc4,0x31,0xe2,0xb5,
+ 0x8c,0x85,0xc,0x43,0xa6,0x58,0xa6,0x54,0xe6,0xb6,0xac,0x9e,0xec,0x4c,0xd9,0xe,
+ 0x39,0x35,0x39,0x47,0xb9,0x22,0xb9,0x16,0xb9,0xd7,0xf2,0xe3,0xe4,0xf9,0xf2,0x4d,
+ 0xa,0xba,0xa,0x22,0x85,0x6d,0xa,0xad,0x8a,0x56,0x8a,0xcb,0x14,0x3b,0x87,0x51,
+ 0x87,0xd5,0x2b,0x51,0x94,0x96,0x28,0xbd,0x19,0xce,0x18,0x7e,0x45,0x39,0x40,0xf9,
+ 0x90,0x8a,0xbd,0x4a,0xd5,0x8,0xd3,0x11,0xdb,0x55,0xd,0x55,0xb7,0xa9,0x19,0xab,
+ 0x55,0xaa,0xdb,0xa8,0xd7,0x8f,0xf4,0x19,0xd9,0xaa,0xd1,0x39,0x6a,0xae,0xe6,0x68,
+ 0xcd,0xaa,0xd1,0x3e,0xa3,0xef,0x68,0xe5,0x6a,0x1f,0x18,0x13,0x37,0xe6,0x83,0xce,
+ 0xb6,0xb1,0x81,0xba,0x9b,0xf5,0x82,0xf4,0xde,0x8e,0xab,0x30,0x50,0x33,0x68,0xa6,
+ 0xcc,0x31,0x74,0x31,0xda,0x3d,0x9e,0x67,0x6c,0x6b,0xdc,0x63,0x5a,0x38,0xc1,0xdf,
+ 0x4c,0xdd,0xbc,0x72,0x62,0xae,0xc5,0x34,0x4b,0x3d,0xab,0x93,0xd6,0x5b,0x6d,0x72,
+ 0x6d,0x63,0xec,0x35,0xec,0x7b,0x1c,0xae,0x38,0x36,0x38,0x97,0xb8,0x64,0x4e,0x4a,
+ 0x72,0xd,0x9a,0x3c,0x69,0xca,0xd8,0xa9,0xaa,0xee,0xb2,0xee,0xef,0x3d,0x5e,0x79,
+ 0x75,0x78,0xb7,0xfb,0xb4,0xfb,0x3e,0xf5,0x7b,0x16,0xd0,0x1b,0x28,0x99,0xa6,0x14,
+ 0xac,0x19,0x62,0x18,0xe6,0x19,0x4e,0x8d,0x60,0x45,0xe6,0x47,0x55,0x45,0x37,0xc7,
+ 0xb4,0xc5,0x4a,0xe2,0x3d,0x12,0x68,0x89,0xb,0x93,0xaa,0x66,0xbc,0x9f,0x65,0x42,
+ 0xa3,0xd2,0x6b,0x18,0xf7,0x58,0x1a,0xa9,0x1,0xec,0xda,0xf4,0xe7,0x19,0x66,0xdc,
+ 0xed,0xbc,0xb6,0x4c,0x23,0x61,0xa5,0xa8,0x4b,0xec,0x9c,0x73,0x3a,0x6f,0x74,0x3e,
+ 0xbd,0x50,0xb6,0x28,0x66,0x6e,0xe5,0xfc,0xd8,0x5,0x35,0x8b,0x94,0x16,0x1f,0x5f,
+ 0x62,0xb8,0xb4,0x78,0x79,0xc0,0x8a,0xea,0x55,0x1a,0x3f,0x3d,0x5c,0x13,0xb1,0xf6,
+ 0xd0,0x86,0x4d,0x9b,0x54,0xb6,0xbc,0x2a,0x4d,0xdf,0xda,0x56,0x76,0x65,0x47,0x64,
+ 0x79,0x6b,0xe5,0xf9,0xaa,0xc8,0xea,0xcb,0x35,0xf7,0xf6,0xb0,0xf7,0xbe,0x3c,0xa0,
+ 0x5c,0xb7,0xa1,0xc1,0xfc,0x50,0xe8,0xe1,0xb6,0x23,0xd9,0xc7,0x77,0x36,0x79,0x35,
+ 0xdf,0x39,0x99,0x7f,0xa6,0xf1,0x5c,0x62,0x8b,0xa4,0xb5,0xec,0x62,0xf7,0xe5,0x4d,
+ 0x57,0xfd,0xae,0x75,0xdf,0x28,0xbd,0x15,0x76,0x5b,0x72,0x77,0xcf,0x3d,0xc6,0x7d,
+ 0x9d,0x7,0x17,0x1e,0x2d,0x7e,0xe2,0xd5,0xfe,0xa1,0xa3,0xe1,0x99,0xb8,0xd3,0xb9,
+ 0xab,0xb7,0xbb,0xe1,0xe5,0xc6,0x9e,0x82,0xd7,0xde,0xbd,0xc3,0xde,0x5e,0xf8,0xcf,
+ 0xfe,0x77,0x1b,0x3f,0x30,0x3f,0x6,0x7f,0xb2,0x93,0x8c,0x91,0x48,0x86,0xb0,0x27,
+ 0xb9,0xcb,0x43,0x1,0xc3,0xa0,0xc,0x55,0x68,0x40,0xb,0xe3,0x60,0x2,0xb,0xd8,
+ 0xc1,0x5,0xde,0x52,0xde,0x42,0x29,0xf1,0x63,0xb8,0x88,0x47,0x84,0x32,0x41,0x21,
+ 0x9c,0x8,0x1a,0x91,0x23,0x25,0xae,0x26,0x63,0x21,0xc3,0xe8,0x27,0x5e,0x2c,0xdb,
+ 0x21,0xe7,0x28,0x17,0x2f,0x57,0x24,0xd7,0x22,0x3f,0x4e,0x9e,0x2f,0xbf,0x51,0xca,
+ 0x9c,0x24,0x7e,0xf8,0xdb,0xcc,0x3f,0x23,0x9e,0x3c,0x40,0x5c,0x5b,0xbb,0x9f,0x78,
+ 0x37,0x49,0x5c,0x3f,0xd1,0x40,0xcd,0xa0,0xd9,0xd0,0xc5,0xf0,0xa5,0xd1,0xee,0xf1,
+ 0x3c,0xe3,0x1e,0x93,0x3a,0xd3,0x42,0x33,0x75,0xb3,0xdb,0xe6,0x95,0x13,0x73,0x2d,
+ 0xf5,0x2c,0xbb,0xad,0x4e,0xda,0xe4,0xda,0xc6,0xd8,0x39,0x7c,0xce,0xdb,0xcd,0x8c,
+ 0xe4,0xed,0xf1,0xca,0xb3,0xd3,0xab,0xc3,0xbb,0xdd,0xf7,0xa9,0xdf,0x33,0xff,0xee,
+ 0x80,0x5e,0x92,0x76,0xa8,0x6d,0x98,0x67,0x4,0x2b,0x32,0x9f,0xba,0x3a,0xaa,0x2a,
+ 0xba,0x39,0x56,0x12,0xa7,0x4f,0xf2,0x4e,0xbe,0x48,0xf2,0x4e,0x29,0x22,0x79,0xa7,
+ 0x15,0xa4,0x3f,0xcf,0x30,0xe3,0x30,0xb8,0xdb,0x79,0x6d,0x2,0xe6,0x60,0xe2,0x5,
+ 0x7b,0x8b,0x62,0xe6,0x56,0x16,0x4b,0x16,0xd4,0x2c,0x52,0x2a,0x61,0x2e,0x3e,0xbe,
+ 0xb4,0x78,0xd9,0x83,0xe5,0x1,0x2b,0xaa,0x57,0xe7,0xf,0x30,0xdf,0x5c,0xb4,0xe5,
+ 0xd5,0xd6,0xb6,0xed,0x9,0x65,0x57,0x76,0x44,0x56,0x84,0xd,0xa6,0x5e,0x5b,0x58,
+ 0xb7,0xa1,0xc1,0xbc,0xb1,0xf1,0x50,0xe8,0x91,0xec,0x63,0xaa,0x43,0xb9,0xff,0x35,
+ 0xed,0x3b,0xc8,0x6b,0x75,0xf5,0x76,0x37,0xf4,0x14,0xbc,0xf6,0x7e,0x63,0xd2,0xc7,
+ 0xfe,0x7d,0x11,0x49,0xff,0xd3,0x59,0x9,0xf3,0x2b,0xfc,0x65,0x21,0x3f,0x84,0xbf,
+ 0xb5,0x94,0x3e,0xc9,0x5e,0x9a,0x75,0x42,0x99,0x70,0x1a,0x94,0xf3,0xa1,0x19,0x2f,
+ 0x97,0x12,0x6f,0x92,0xef,0x1a,0x44,0xbc,0x73,0x18,0x75,0xd8,0x82,0x6f,0xa6,0x7c,
+ 0x10,0x71,0x8d,0xce,0x51,0x73,0xfb,0x33,0xae,0xfd,0x7f,0x65,0xbc,0x9b,0xcc,0xb8,
+ 0x9d,0x83,0xbd,0x86,0x7d,0x8f,0x63,0x83,0xd3,0x56,0xe7,0x12,0x32,0xe1,0x6e,0x66,
+ 0x43,0x13,0xee,0xdf,0x4d,0x26,0x9c,0x24,0xfe,0x79,0xc2,0xe3,0xf4,0xe3,0x3d,0x12,
+ 0x17,0x26,0x55,0xf5,0x31,0xef,0xcb,0x78,0x5a,0x1,0xbb,0x36,0xfd,0x39,0xc9,0x3c,
+ 0xd3,0x48,0xc0,0x14,0x75,0x89,0x9d,0xb3,0x8b,0x6,0xe7,0xbc,0x58,0x32,0x3f,0x76,
+ 0x41,0x4d,0x9,0x93,0x4c,0xfa,0xb2,0x7,0x2b,0xaa,0x57,0x69,0x90,0xdc,0xd7,0x5b,
+ 0xf4,0x71,0x2f,0x4d,0x27,0xb9,0x97,0xb7,0x56,0x84,0x55,0x45,0x56,0x5f,0xfe,0x3d,
+ 0x61,0x70,0xde,0x1b,0x1b,0x3f,0x4f,0xfc,0x69,0x9d,0xef,0x63,0xff,0xf4,0xe6,0x60,
+ 0xfa,0x64,0xf2,0xbf,0xce,0x9f,0x3c,0x2f,0x1,0x0,0x86,0xfb,0xf0,0x32,0x78,0x2,
+ 0x4a,0x88,0x8f,0xef,0x77,0x1d,0xf1,0xbe,0xbf,0x71,0x32,0xb2,0xfa,0xf6,0x50,0x3,
+ 0xa0,0xc2,0x16,0x5,0x45,0x3,0xd0,0x4,0xd0,0xc4,0x12,0xf8,0x53,0x1,0x78,0x3,
+ 0xb8,0xce,0x4d,0x9,0xb,0x7,0xa0,0x1,0x10,0x63,0x99,0x42,0xbf,0x28,0x69,0xdf,
+ 0x92,0xc5,0xf6,0xf,0x2,0xa0,0xe,0x10,0xee,0x7c,0x51,0x44,0x34,0x80,0x31,0x0,
+ 0x11,0x96,0x97,0x16,0x3d,0x1d,0x80,0x2a,0x40,0xb0,0xd2,0x69,0xd3,0x22,0xa4,0x7d,
+ 0x11,0x37,0x23,0x2c,0x4,0x80,0x16,0x40,0xcc,0x63,0x30,0x7d,0xfd,0xa4,0x73,0xd7,
+ 0xcf,0xe6,0x5,0x53,0x1,0xa8,0x0,0x44,0x5,0x93,0x1b,0xd3,0xb7,0x7e,0xad,0x50,
+ 0x1c,0xd5,0x37,0xe6,0x4f,0x6,0xcd,0x37,0x18,0x80,0x1e,0x40,0x5c,0xcd,0x4b,0xf3,
+ 0x9,0x93,0x8e,0x7f,0x89,0x10,0xf8,0xc0,0x17,0x14,0xd0,0xc1,0x43,0x6,0x78,0x10,
+ 0x80,0x8d,0xd3,0xa0,0x43,0x0,0x1a,0xb8,0xa0,0xe0,0x1e,0x28,0xa0,0x43,0x0,0x36,
+ 0x84,0x10,0x81,0x86,0x2c,0xe4,0x80,0x82,0xc,0xb0,0x91,0x89,0x2c,0xb0,0xc1,0x0,
+ 0x13,0x42,0xe9,0xfc,0x2c,0x64,0x80,0x89,0x2c,0x8,0xe0,0xf,0x1a,0x4,0x48,0x5,
+ 0x13,0x56,0xd2,0x1d,0xbe,0xdc,0x27,0x16,0xf,0x21,0x0,0xfb,0x1b,0x23,0xd8,0x60,
+ 0x80,0x37,0x93,0x3d,0x4f,0xc0,0xd9,0xcb,0x12,0xaf,0xe7,0xe5,0x4e,0x8e,0x4d,0xb3,
+ 0xad,0xb2,0x7d,0x6a,0xfb,0x1,0x14,0xe9,0xe8,0xe0,0xfe,0x1d,0x99,0xe0,0xf6,0xaf,
+ 0x44,0xee,0x9e,0xd2,0x77,0x7d,0xfe,0x59,0xdd,0xb3,0xfe,0x19,0x3e,0xfd,0xab,0x53,
+ 0xfa,0x47,0x3f,0x84,0x0,0xa9,0x43,0x9e,0xc3,0xa,0x2c,0xd0,0x20,0x80,0x18,0x4c,
+ 0x8,0x31,0x1b,0x8f,0x21,0x0,0x67,0x26,0x7b,0xde,0xc0,0x3c,0x90,0x67,0x6f,0x0,
+ 0x50,0x50,0x7,0x36,0x53,0x0,0xa0,0x3e,0x7f,0xed,0xdc,0xa1,0x9e,0x88,0x98,0x39,
+ 0x22,0x0,0xf0,0xe1,0xf1,0x73,0x5,0xec,0xd4,0x34,0x11,0xc5,0x8b,0xcf,0xcf,0x60,
+ 0x52,0x7c,0x78,0x1c,0x7e,0x96,0x88,0x29,0xb0,0xa4,0x4,0x71,0xe9,0xd6,0x96,0x14,
+ 0x7b,0x5b,0x5b,0x27,0x0,0xf8,0x2f,0xe5,0xbe,0x80,0x90,0x4c,0x36,0x19,0x1,0x0,
+ 0x0,0x20,0x0,0x49,0x44,0x41,0x54,0x78,0x9c,0xec,0xbd,0x79,0x7c,0x5c,0x57,0x7d,
+ 0x37,0xfc,0x3d,0x77,0xbf,0xb3,0x49,0x1a,0x49,0xb6,0x2c,0xc9,0x96,0xbc,0xc5,0x76,
+ 0x6c,0x67,0xb1,0x93,0x18,0x27,0x4e,0x42,0x48,0x48,0x42,0x2,0x2d,0x4b,0x79,0xa,
+ 0xf,0xcf,0x4b,0x3,0x7d,0x1e,0x5e,0xa,0xb4,0x6f,0x4b,0x4b,0x59,0x1a,0x28,0x2d,
+ 0x4b,0x69,0x81,0x42,0x69,0x81,0x42,0x5b,0xa,0xa5,0x90,0x40,0xfb,0x10,0x42,0x16,
+ 0x48,0x8,0x21,0x2b,0xd9,0xed,0x38,0xde,0x13,0x2f,0x92,0x6d,0xc9,0x5a,0x67,0x46,
+ 0x33,0x9a,0xb9,0xfb,0x39,0xef,0x1f,0x67,0xe6,0xe8,0xcc,0x9d,0x91,0x2c,0x67,0x75,
+ 0x12,0x7d,0x3f,0xfa,0xdc,0xcf,0x99,0x3b,0x77,0xee,0x72,0x74,0xbe,0xf7,0xf7,0x3b,
+ 0xbf,0xed,0x90,0xc9,0xc9,0x49,0x2c,0xe0,0x74,0x45,0x14,0x45,0x0,0x1c,0xc7,0x89,
+ 0xa2,0x28,0x9f,0xcf,0xbb,0xae,0x9b,0xcf,0x4f,0x96,0x4a,0xd3,0xbf,0xdb,0xfa,0xb1,
+ 0xd8,0x91,0x9f,0x7b,0xfc,0x7f,0x67,0xb3,0x59,0xdb,0xb2,0x17,0x2d,0xee,0x6c,0x6b,
+ 0x6b,0xb7,0x2c,0xcb,0xb2,0xac,0x54,0x2a,0xa5,0xeb,0xba,0xa6,0x69,0xaa,0xaa,0xbe,
+ 0x14,0xb7,0xbf,0x80,0x17,0x10,0xca,0x4b,0x7d,0x3,0xb,0x98,0xb,0xaa,0xaa,0x86,
+ 0x61,0x8,0xc0,0x71,0x1c,0xb1,0xb3,0x55,0x1d,0x9e,0xed,0x78,0x3b,0x61,0xc7,0xf6,
+ 0x68,0x9a,0xf6,0x2,0xdd,0xdb,0x2,0x5e,0x5a,0x2c,0x50,0xf7,0xb4,0x6,0x97,0xba,
+ 0x0,0x6c,0x7b,0x86,0x93,0xb9,0x6,0x45,0xe9,0x86,0x81,0x77,0x1,0xb0,0x2d,0x1b,
+ 0x80,0x55,0xdd,0x5a,0xe2,0x27,0xb,0x22,0xf7,0x15,0x89,0x5,0xea,0xbe,0x3c,0xc0,
+ 0xa5,0xae,0xe3,0x54,0x0,0x64,0xdb,0xdb,0x1b,0xf,0x58,0xd1,0xe1,0x0,0x30,0x4d,
+ 0x3,0x80,0x65,0x59,0x7c,0xa7,0xae,0xeb,0x2f,0xde,0x2d,0x2e,0xe0,0xc5,0xc5,0x2,
+ 0x75,0x5f,0x66,0xf0,0x7d,0xbf,0x4f,0xdf,0x1e,0xdb,0x79,0x78,0xc2,0x2e,0xd0,0x9e,
+ 0x97,0xe4,0x7e,0x16,0xf0,0x52,0x61,0x81,0xba,0x2f,0x3,0x8,0xb5,0x79,0x6e,0xd8,
+ 0x9,0xdb,0x30,0xc,0xf1,0x71,0x41,0x4f,0x7e,0x65,0x63,0x81,0xba,0x2f,0x33,0x78,
+ 0x9e,0xdf,0xb8,0x33,0x9b,0xcd,0x8a,0xb6,0x6d,0x27,0x20,0xcd,0x8d,0x17,0x8,0xfc,
+ 0x4a,0xc5,0x2,0x75,0x5f,0x66,0xe0,0xb3,0x59,0x19,0xfb,0xdd,0x6d,0xb9,0x5c,0x8e,
+ 0xb7,0x85,0x8d,0x8a,0xcf,0x8d,0x17,0xcc,0xcb,0xaf,0x60,0x3c,0xd7,0x7f,0xad,0xac,
+ 0xcb,0x2d,0xbc,0xe0,0x5f,0x8,0x4,0x41,0xc0,0x1b,0xae,0xeb,0x2,0xf0,0x3c,0x7f,
+ 0x6d,0xeb,0x3,0xb1,0x63,0xb8,0x47,0x57,0x66,0xb5,0x6c,0x91,0x5e,0xc0,0x2b,0x12,
+ 0xcf,0x46,0xea,0x46,0x12,0x0,0x84,0x35,0x44,0xf5,0x78,0xbe,0x6f,0xf5,0x55,0xd,
+ 0xce,0x5b,0x8e,0xfd,0xee,0x36,0xf9,0xab,0x1d,0x23,0x7d,0x42,0xea,0xca,0xe0,0xe6,
+ 0xe5,0x85,0x7f,0xc4,0x2b,0x15,0xa7,0x26,0x75,0xc5,0x38,0xe0,0x71,0x2,0x1c,0x5c,
+ 0x2c,0xe8,0xba,0xee,0x38,0x4e,0x53,0x6f,0xc4,0x82,0x34,0x7e,0xd6,0x10,0xf1,0x18,
+ 0x96,0x65,0xb9,0xae,0xeb,0xba,0xe,0x80,0xb5,0x56,0x13,0xa9,0xb,0x80,0xdb,0xa8,
+ 0x84,0x67,0x88,0x63,0xa1,0xf3,0x5f,0xa9,0x38,0x5,0xea,0xa,0x19,0xcb,0x3f,0x72,
+ 0xc6,0xa,0x32,0xf3,0x6,0xdf,0xaa,0xaa,0xaa,0xeb,0x3a,0x3f,0x52,0xd3,0x34,0xb1,
+ 0xf3,0xf9,0xbc,0xf1,0x57,0x1,0x64,0x81,0x29,0x4b,0xdd,0x18,0xe,0x4f,0xd8,0xd9,
+ 0x6c,0x3c,0x8e,0x6a,0xa1,0xb7,0x5f,0xf1,0x98,0x2f,0x75,0x65,0xde,0x6,0x41,0x20,
+ 0x62,0x6b,0xf9,0xb7,0xae,0xeb,0xc6,0x5e,0xf6,0xb6,0x6d,0xcb,0xa3,0x67,0x81,0xc0,
+ 0xcf,0x5,0xb6,0x6d,0xb,0xea,0x36,0x46,0x41,0x36,0x9a,0x97,0x17,0xf0,0x6a,0xc0,
+ 0xbc,0xa8,0xdb,0xc8,0x5b,0x4e,0x5a,0x31,0x9e,0x5c,0xd7,0xe5,0x6d,0x4e,0x60,0x61,
+ 0xe1,0xb4,0x6d,0x3b,0x8a,0xa2,0xd9,0xe8,0xba,0x40,0xe3,0xf9,0x40,0xf4,0xf6,0x6c,
+ 0xc8,0xe5,0x72,0x3d,0xdd,0x75,0xf1,0x18,0xb,0x36,0xaa,0x57,0x3,0x4e,0x4e,0x5d,
+ 0x59,0x6d,0x8b,0xf1,0x96,0xd3,0x95,0x47,0xe7,0x71,0x38,0x4e,0xc5,0xb6,0x13,0x32,
+ 0x8d,0x21,0x11,0x98,0x6b,0xd1,0xc2,0x63,0x31,0x7,0xab,0x17,0x20,0x20,0xba,0x48,
+ 0xee,0x67,0x81,0xfd,0xee,0x36,0x59,0xea,0xd6,0x8e,0x74,0x52,0xa9,0xd4,0xb,0x7e,
+ 0x67,0xb,0x78,0x49,0x31,0x5f,0x85,0x39,0xc,0x43,0x99,0xb7,0x85,0x42,0x1,0x80,
+ 0x56,0xda,0x9e,0x76,0x1e,0x6a,0x3,0x0,0xec,0x67,0x6f,0xe5,0x47,0x72,0x53,0xa,
+ 0x77,0x30,0xca,0x8a,0x74,0x4c,0x2,0x73,0x2,0x2f,0x68,0xd1,0x27,0xc5,0x49,0x4d,
+ 0xc4,0x5c,0xea,0x9a,0xa6,0x21,0x9c,0xba,0x58,0x88,0x5e,0x7e,0x15,0xe0,0xe4,0xd4,
+ 0x55,0x55,0x35,0x36,0x7a,0x5c,0xd7,0x35,0xa3,0x91,0x4d,0xf4,0xef,0xc1,0x8e,0xc1,
+ 0x2,0xec,0xa5,0x70,0x8e,0xad,0xc5,0x3,0xfb,0xdd,0x6d,0x83,0xc1,0xa6,0x82,0xd7,
+ 0x6d,0x9a,0x86,0xef,0xfb,0xae,0xeb,0x34,0x25,0x30,0x80,0x98,0xf8,0x5d,0xc0,0x3c,
+ 0xe1,0xfb,0xfe,0xda,0xfa,0x0,0xe6,0x1d,0x23,0x7d,0x8d,0x52,0x97,0x77,0xf2,0x42,
+ 0x9a,0xee,0xfc,0x11,0x4,0xc1,0xe1,0xc3,0x87,0x7,0x6,0x6,0x86,0x87,0x87,0x8b,
+ 0x85,0x29,0xd7,0xf7,0x54,0x45,0x49,0xa5,0x52,0x1d,0x1d,0x1d,0x1d,0x9d,0x9d,0x5d,
+ 0x5d,0x5d,0x4b,0x96,0x2c,0x69,0x69,0x69,0x79,0xa9,0x6f,0xb3,0xe,0xa7,0x46,0x1e,
+ 0xa1,0x2a,0x6b,0x95,0x61,0xb0,0x63,0x40,0x95,0xb7,0xfc,0xdb,0xb5,0xd6,0x3,0x6b,
+ 0xad,0x7,0x60,0x2f,0xbd,0x61,0xdf,0x25,0x9e,0xb1,0xca,0x4e,0xd8,0x32,0x81,0x5,
+ 0x1a,0xc5,0xef,0x82,0xe6,0xfc,0x1c,0x21,0xcc,0xcb,0x31,0x63,0xe1,0x2,0x4e,0x8a,
+ 0xd1,0xd1,0xd1,0xff,0xf8,0x8f,0xff,0xb8,0xfd,0xf6,0xdb,0x27,0x27,0x26,0xba,0x93,
+ 0xe9,0xb5,0x6d,0x8b,0xba,0x12,0x29,0x5b,0x33,0xc2,0x28,0x1a,0x74,0xa7,0x1f,0x9c,
+ 0x2e,0xe,0x4e,0x4f,0xe5,0x3d,0xc7,0xb2,0xac,0xe5,0xfd,0xfd,0x6f,0xb8,0xe6,0x9a,
+ 0x6b,0xae,0xb9,0x66,0xf1,0xe2,0xc5,0x2f,0xf5,0x5d,0x3,0xf3,0x9f,0xeb,0xa,0xab,
+ 0xb2,0xeb,0xba,0x8e,0x53,0x49,0xa3,0x46,0x5a,0x47,0x22,0x70,0x6d,0xcf,0x3b,0xfb,
+ 0x7f,0xc0,0x9,0x5c,0xa8,0x27,0xb0,0x6c,0xff,0x94,0x4d,0x29,0xc2,0xfe,0x8c,0x5,
+ 0xe5,0xb9,0x6,0xd1,0xed,0xfc,0x63,0xdc,0x39,0x24,0x3a,0xbc,0x6,0x39,0xf1,0x40,
+ 0x3e,0xc9,0x42,0x7f,0x36,0x5,0xa5,0xf4,0xd8,0xb1,0x63,0xdf,0xfb,0xde,0xf7,0x6e,
+ 0xfe,0xc1,0xd,0xeb,0xda,0x17,0xff,0xf1,0x59,0xe7,0x5f,0xf9,0xa6,0xd,0xdd,0x99,
+ 0x56,0x42,0x48,0xe3,0xc1,0x53,0x4e,0x65,0xe7,0x89,0x63,0xf7,0x1f,0x79,0xfa,0xa7,
+ 0xdf,0xfc,0xf6,0xb7,0xbf,0xf2,0xf,0xaf,0xff,0xed,0x37,0xfd,0xde,0x75,0xd7,0x2d,
+ 0x5b,0xb6,0xec,0xa5,0x9d,0x95,0xcc,0x4b,0xea,0xca,0x1,0x18,0x33,0x63,0x48,0x70,
+ 0x55,0x12,0xbc,0xc0,0x8c,0x1c,0x7e,0x67,0xff,0xf,0xf6,0xbb,0xdb,0x76,0x8c,0xf4,
+ 0x71,0x2,0x3,0x70,0x5d,0xa7,0xad,0xad,0x5d,0xd6,0x9f,0x53,0xa9,0x94,0x18,0x9d,
+ 0x62,0xf6,0xbb,0x30,0xda,0x38,0xe4,0x6e,0x9f,0xd,0x72,0xae,0x9f,0x78,0x33,0x8a,
+ 0xe,0x5c,0xe8,0xc9,0xa6,0x8,0xc3,0xf0,0xab,0x5f,0xfd,0xea,0x6f,0xee,0xba,0x7b,
+ 0xa3,0x99,0xf9,0xcf,0xff,0xf1,0xbf,0xcf,0xeb,0xed,0x37,0xb5,0xb9,0x48,0xd8,0x62,
+ 0x27,0x2e,0x59,0xb1,0xe6,0x92,0x15,0x6b,0xfe,0xec,0xd2,0x37,0x3c,0x7e,0xfc,0xc8,
+ 0x4f,0x77,0x6f,0xff,0xd0,0x7b,0x7e,0xff,0x9a,0xb7,0xbf,0xed,0xdd,0xef,0x7e,0xf7,
+ 0x4b,0xa8,0x45,0x9f,0x82,0xc2,0xec,0x38,0x8e,0xe0,0x6d,0xae,0xe8,0x61,0xd1,0xd2,
+ 0x59,0xd9,0x5b,0xc3,0xda,0xb6,0xc1,0xb5,0xd6,0x3,0xfb,0xdd,0x6d,0xf,0xe7,0x2e,
+ 0x7,0x60,0x9a,0x46,0x3e,0x3f,0x29,0xf4,0x67,0xcb,0xb2,0xa6,0xa7,0xa7,0x17,0x66,
+ 0xbf,0x27,0x85,0xe8,0x76,0xcf,0xf3,0xd7,0x2e,0x19,0x44,0xbd,0xab,0xc8,0xb6,0x16,
+ 0x5c,0x41,0xa7,0x80,0x20,0x8,0xfe,0xfa,0xaf,0xff,0xfa,0xd6,0x1b,0xff,0xeb,0x6b,
+ 0x6f,0x7c,0xc7,0x95,0x6b,0x36,0xda,0xa7,0x22,0x39,0x4d,0x4d,0xbb,0xa8,0x7f,0xf5,
+ 0x79,0xbd,0xcb,0xf7,0x8e,0xe,0x5f,0xff,0xdf,0x3f,0xfd,0xe5,0x9d,0x77,0x7e,0xf3,
+ 0x9f,0xff,0xb9,0xa7,0xe7,0xa5,0xc9,0x94,0x7e,0x36,0x31,0xcc,0xae,0xeb,0x14,0xa2,
+ 0xee,0xf8,0x5e,0xbb,0x81,0xc9,0xb5,0xed,0x5a,0xeb,0x81,0xeb,0x56,0x7e,0xe7,0x6c,
+ 0xeb,0xd6,0x42,0x7e,0xaa,0x54,0x9a,0x2e,0x16,0xa7,0x1c,0xa7,0x92,0xcf,0xe7,0x6a,
+ 0xbe,0x25,0x27,0x8a,0x22,0x21,0x7b,0xb1,0x10,0x76,0x5b,0xf,0x29,0xee,0xc5,0xa9,
+ 0x26,0x18,0xd4,0x3a,0x76,0x7f,0xbe,0x4f,0x1c,0x26,0x5e,0x88,0xb,0x4e,0xdd,0x39,
+ 0x50,0xa9,0x54,0xbe,0xf2,0xe5,0x2f,0x3f,0x74,0xdb,0x2f,0x7e,0xf9,0xde,0xf,0xff,
+ 0xf6,0x86,0x4d,0xa7,0xc4,0x5b,0x1,0x53,0xd3,0xce,0xed,0x59,0xf6,0xfd,0xdf,0xf9,
+ 0xfd,0x33,0xa9,0xf1,0x8e,0xb7,0xbe,0xed,0xa1,0x87,0x1e,0xa2,0x94,0x3e,0xef,0xb7,
+ 0x7a,0x52,0x68,0xcf,0x8e,0x27,0x4e,0x45,0x7a,0xf3,0xc7,0xe6,0x5d,0xd,0xd3,0xb0,
+ 0xaa,0x9,0xba,0xd,0x6b,0xad,0xbf,0xba,0xa3,0xf4,0x47,0x5,0xaf,0xbb,0x58,0x9c,
+ 0xca,0x64,0x5a,0xf2,0xf9,0x9c,0x6d,0x27,0x5a,0x5b,0x5b,0x1d,0xc7,0x11,0x3,0x4e,
+ 0x76,0x1a,0x2d,0x20,0x6,0xcf,0xf3,0xab,0x7d,0x5b,0x55,0x73,0xaa,0xd4,0x35,0x4d,
+ 0xc3,0x75,0x1d,0xdb,0x4e,0xf0,0x60,0x18,0xe1,0xd4,0x5d,0xe8,0x46,0x19,0xc5,0x62,
+ 0xf1,0xef,0xbf,0xfc,0xe5,0xbd,0xbf,0x7e,0xe0,0xcb,0x57,0xbf,0xbd,0xbd,0xa5,0xa5,
+ 0x10,0x78,0x2a,0x21,0x86,0xaa,0xe9,0x44,0x61,0x0,0x53,0x88,0x46,0xd9,0xfc,0xcf,
+ 0x96,0x4d,0x24,0xbf,0xfe,0xdb,0xff,0xeb,0xdb,0xf,0xdf,0xf3,0x77,0x9f,0xfa,0xf4,
+ 0x1f,0x7e,0xfc,0xa3,0x97,0x5e,0x7a,0xe9,0xb,0x77,0xe7,0x4d,0x71,0x6a,0x81,0x90,
+ 0xa8,0x5,0x6,0x2c,0x49,0xe7,0x1,0x54,0xf9,0x29,0x88,0x1a,0xfb,0xd8,0xec,0x80,
+ 0xab,0xec,0x9b,0xf6,0xe7,0xfb,0xb8,0xfe,0x2c,0x87,0xcb,0x73,0xb3,0x73,0xf5,0x9e,
+ 0x16,0xd4,0xe6,0x39,0x20,0xf5,0xed,0x8e,0x81,0x5,0xa9,0x3b,0x5f,0x4c,0x4f,0x4f,
+ 0x7f,0xea,0x53,0x9f,0x1a,0x18,0x18,0xe8,0x5d,0xb3,0xea,0x36,0x5a,0xb8,0x67,0x32,
+ 0xd0,0x75,0x9d,0x46,0xd4,0xf7,0x3c,0x6f,0x32,0xdf,0xad,0x98,0xe7,0x9f,0xb1,0xee,
+ 0xcc,0x4c,0xb6,0x35,0x3c,0x5,0x45,0x54,0x57,0xd5,0xff,0xb3,0xe5,0x52,0xdb,0xd0,
+ 0x3f,0xf6,0x27,0x7f,0xfa,0xaf,0xdf,0xff,0xde,0xfa,0xf5,0xeb,0x5f,0xc0,0x7,0x68,
+ 0xc0,0xc9,0x49,0xd2,0x68,0x2c,0xf1,0x7d,0xbf,0xde,0xdb,0xb3,0x14,0x4d,0x3f,0xc6,
+ 0x28,0x5d,0xdb,0xb3,0xb6,0x6d,0x10,0xf8,0xd5,0xc3,0xb9,0xcb,0x5b,0xdb,0x5a,0x50,
+ 0x9b,0xc8,0x71,0xc1,0x1b,0x45,0xd1,0x42,0x2c,0xc1,0x1c,0x68,0xc,0x60,0xb6,0x2d,
+ 0x5b,0xd4,0xb5,0x91,0x3d,0x43,0xb,0xaf,0x3f,0x19,0xc5,0x62,0xf1,0xae,0xbb,0xee,
+ 0xda,0xb6,0x6d,0xdb,0xef,0xfd,0xde,0x75,0x9a,0xa6,0x29,0x8a,0x2,0x80,0x31,0x6,
+ 0x30,0x80,0x4,0x81,0x3f,0x34,0x34,0xf4,0xa3,0xed,0xdb,0xdd,0xc1,0x3d,0x5d,0x54,
+ 0xb9,0xc0,0x6a,0xdb,0x90,0x5d,0xd4,0x9d,0x69,0x35,0x54,0xad,0x89,0xb9,0xb9,0x1e,
+ 0x86,0xa6,0x5d,0x77,0xde,0xc5,0x47,0x72,0x13,0x7f,0xf4,0x81,0xf,0xfe,0xfb,0xf7,
+ 0xff,0x63,0xe9,0xd2,0xa5,0x4d,0xf,0x6b,0x6a,0xb8,0x7e,0x8e,0x50,0x3f,0xf2,0x91,
+ 0x8f,0xcc,0x7d,0x84,0xa2,0x28,0x9e,0xe7,0x31,0xc6,0x78,0x52,0xae,0xeb,0x3a,0x8c,
+ 0x31,0x25,0x98,0x5c,0x95,0xdc,0xdf,0x78,0xf0,0xfe,0x7c,0xdf,0xa7,0x6e,0x5e,0x56,
+ 0x54,0xd7,0xea,0x1a,0x26,0xc2,0x65,0x1d,0xf6,0x54,0xdd,0xd7,0x7a,0xd5,0x1c,0xd7,
+ 0x61,0x4f,0x59,0x24,0x37,0xe4,0xad,0x24,0xa4,0x9a,0x66,0x54,0xfd,0x5e,0xd7,0x19,
+ 0x63,0x84,0x10,0xde,0xb9,0xaf,0x72,0x78,0x9e,0x17,0x45,0x11,0xef,0xf6,0x52,0xa9,
+ 0x18,0x86,0x61,0xac,0xdb,0x1f,0x18,0xbb,0x50,0xd7,0x74,0x5d,0xd7,0x4d,0xd3,0xd0,
+ 0x34,0xdd,0xb6,0x6d,0x4d,0xd3,0x74,0x5d,0x37,0x4d,0x93,0x52,0xba,0xd0,0x87,0x1c,
+ 0xf9,0x7c,0xfe,0x6f,0xfe,0xe6,0xb,0xd3,0xd3,0x95,0xd7,0xbd,0xee,0xca,0x74,0xba,
+ 0xc5,0x34,0x6d,0xcb,0xb2,0x55,0x55,0xd7,0x75,0x4d,0xd7,0x8d,0x54,0x2a,0xd5,0xd1,
+ 0xd1,0xd9,0xdb,0xbb,0xf4,0x9c,0x73,0xce,0x39,0x63,0xcd,0x5a,0xa3,0xb3,0x7d,0xb7,
+ 0x57,0xbc,0x65,0xcf,0x8e,0x3d,0x43,0x47,0x3b,0xda,0xdb,0xb3,0x86,0x7d,0xd2,0x4e,
+ 0x24,0x84,0x5c,0xd8,0xb7,0x6a,0xc7,0x91,0x43,0x4f,0x1c,0x3d,0xbc,0x75,0xeb,0xd6,
+ 0xd8,0x4b,0x53,0x26,0xed,0xf3,0x4b,0xe0,0x79,0x49,0x5d,0x5d,0xd7,0xe5,0x59,0x53,
+ 0x5c,0xea,0x72,0x38,0xc7,0xf6,0xbb,0xdb,0xbe,0x76,0x47,0x6,0xc0,0xfd,0x3b,0xf3,
+ 0xf7,0xef,0xcc,0xf4,0xf4,0x74,0x3,0x6b,0x57,0x74,0x38,0xe7,0x76,0xd,0xae,0x6d,
+ 0x1b,0x8c,0x1d,0xbe,0xb6,0x6d,0x70,0x70,0x6c,0xb8,0xe0,0x75,0xf3,0xc0,0x49,0x2c,
+ 0x84,0x13,0xd4,0xa3,0xb1,0xdb,0x63,0x90,0x6d,0x54,0x68,0xc8,0x19,0x5a,0x90,0xba,
+ 0x1c,0xb9,0x5c,0xee,0x83,0x1f,0xfc,0xa0,0xef,0x47,0x5f,0xf8,0xc2,0x97,0x3a,0x3b,
+ 0xab,0xa1,0x14,0x5c,0x60,0xa8,0x2a,0xb1,0x6d,0xc3,0x30,0x74,0x5d,0xd7,0xa2,0x88,
+ 0xfa,0xbe,0xd7,0xd6,0x96,0x5d,0xb2,0xa4,0x67,0xc5,0x8a,0x55,0x53,0x5b,0x2f,0x7a,
+ 0xe2,0x89,0xc7,0xfe,0xf4,0x17,0x37,0xbd,0xef,0xc2,0xcb,0xae,0xed,0xe8,0xb3,0x70,
+ 0x12,0xca,0x59,0xba,0xfe,0xe7,0x17,0x5f,0xf5,0xf6,0x1b,0xbe,0xfd,0xf8,0xd5,0x57,
+ 0x6f,0xdb,0x36,0x53,0x8,0x81,0x10,0xc2,0x18,0x6b,0xda,0x7e,0xee,0x8f,0x76,0xf2,
+ 0x7f,0xb0,0xa6,0x69,0x73,0x67,0xae,0x70,0x8,0xde,0xf6,0xf4,0xd4,0x19,0x9f,0xf,
+ 0x4f,0xd8,0x87,0x27,0xd6,0xae,0xe8,0xe8,0x7b,0xe7,0xba,0xfb,0x62,0x3f,0xb9,0x6a,
+ 0xd1,0x4d,0xdf,0x3d,0xf4,0x5e,0x11,0x7c,0xcb,0x35,0x67,0xdb,0xb6,0x17,0x1c,0x45,
+ 0xa8,0xef,0x76,0xe1,0x1c,0x6a,0x2c,0xe3,0x8a,0xfa,0x6a,0x55,0xb,0x13,0x5d,0x19,
+ 0xa3,0xa3,0xa3,0x9f,0xf9,0xcc,0x67,0x0,0xe5,0x9f,0xfe,0xe9,0x9b,0xc9,0x64,0x52,
+ 0xec,0xb7,0x2c,0xae,0xa7,0xa8,0xba,0xae,0xea,0xba,0xae,0xaa,0x84,0x31,0x58,0x96,
+ 0x99,0x48,0x24,0x72,0xb9,0xbc,0xaa,0x2e,0xb6,0x2c,0xfb,0xb2,0xcb,0x2e,0x5f,0xbf,
+ 0x7e,0xe3,0x7d,0xf7,0xfd,0x3a,0x37,0xf2,0xcc,0x9b,0xdb,0x97,0x75,0xe8,0xd6,0xdc,
+ 0x6c,0x5b,0xda,0x92,0x7d,0xfd,0xd2,0x35,0x9f,0xfa,0xf8,0x27,0x7e,0x72,0xcb,0xcf,
+ 0x32,0x99,0xc,0xdf,0xd9,0x28,0x72,0x9f,0x47,0x21,0x7c,0x72,0x85,0x39,0xc,0x43,
+ 0xbe,0x7c,0x86,0x50,0x98,0x3d,0xcf,0xd3,0x69,0x21,0xa6,0x30,0xff,0x72,0xe0,0xec,
+ 0x48,0xcb,0x66,0x32,0x69,0xf0,0x52,0x49,0xf5,0x18,0x9e,0xc,0x87,0x2a,0x3d,0xba,
+ 0x86,0x98,0xa,0x3d,0x1a,0xf6,0x97,0x83,0x84,0xaa,0x2a,0x0,0x84,0xbe,0xc7,0x18,
+ 0x53,0x55,0x75,0x41,0xdf,0xb,0xc3,0x90,0xcf,0x53,0x0,0xb8,0xae,0x13,0x86,0xa1,
+ 0x66,0xa6,0x7b,0xb4,0xdd,0xfc,0xdb,0x9,0xb7,0x75,0x34,0x38,0x3,0x80,0x65,0x5b,
+ 0xc9,0x64,0x4a,0xd7,0xf5,0x54,0x2a,0x15,0x86,0xa1,0x65,0x59,0xb,0xbd,0x7,0xe0,
+ 0xf8,0xf1,0xe3,0x7f,0xf9,0x97,0x7f,0xa9,0xaa,0xe6,0xf5,0xd7,0xff,0x55,0x6b,0x6b,
+ 0xab,0xd8,0xaf,0xeb,0xaa,0xa6,0xa9,0x84,0x40,0x51,0x14,0xbe,0x1e,0x93,0xa2,0x10,
+ 0xce,0x22,0x45,0x51,0x4c,0xd3,0x62,0x8c,0x0,0xaa,0xa2,0xa8,0xa6,0xa9,0xf7,0xf6,
+ 0x2e,0x1d,0x9,0xbd,0xc7,0x6,0xe,0xb6,0x43,0x6d,0x37,0x13,0x73,0x93,0xad,0x54,
+ 0x74,0xef,0xde,0xbd,0xf3,0x44,0x71,0x72,0xdb,0xc5,0x17,0x13,0x42,0xe6,0x3e,0xb8,
+ 0x91,0xc9,0xa7,0x8a,0x93,0xff,0x83,0x35,0x4d,0x9b,0x35,0x1c,0x4f,0xc2,0xe1,0x89,
+ 0xea,0xfb,0x9e,0x47,0xc3,0xdb,0x96,0x9d,0xad,0x81,0xb7,0xb,0xb4,0x67,0xc7,0x48,
+ 0x5f,0xe3,0xf,0x9d,0x8a,0xe3,0xfb,0x4d,0xa,0x94,0xbe,0xca,0x21,0xac,0x83,0x22,
+ 0xb9,0xd2,0xf7,0xfd,0xb4,0xf3,0x90,0x38,0x80,0x77,0x66,0xe3,0x22,0x43,0x58,0xd0,
+ 0x96,0x81,0x63,0xc7,0x8e,0xbd,0xef,0x7d,0xef,0x63,0x4c,0xf9,0xe8,0x47,0xaf,0x6f,
+ 0x6f,0xef,0x10,0xfb,0x15,0x85,0x18,0x86,0x91,0x48,0x98,0xa6,0x69,0xe8,0xba,0x48,
+ 0x3e,0x65,0x41,0x10,0x79,0x9e,0xef,0x79,0x7e,0x14,0x51,0x45,0x51,0x54,0x55,0xb5,
+ 0xed,0x54,0x4b,0x4b,0x7b,0x67,0x67,0xd7,0x39,0xe7,0x9c,0xdb,0x7d,0xc1,0xa6,0x7f,
+ 0x3e,0xb2,0x6b,0xb0,0x98,0x9f,0xe3,0x8a,0xa,0x21,0x49,0xdd,0x7c,0x7d,0xcf,0x86,
+ 0xdb,0x6e,0xbb,0x6d,0xf7,0xee,0xdd,0xac,0x1e,0xa8,0x5a,0xc5,0xc0,0x1a,0xf0,0xac,
+ 0x9f,0xf1,0xd4,0xde,0xcd,0xb3,0x4d,0x47,0xc5,0xbc,0x4b,0x10,0xb5,0xb5,0xad,0xc5,
+ 0x34,0x8d,0x74,0x3a,0x65,0x9a,0x46,0x6b,0x5b,0xb,0xe7,0x73,0x81,0xf6,0x7c,0x73,
+ 0xcf,0x3b,0x1,0x20,0x53,0x35,0xa3,0xcb,0xcb,0xe7,0xf0,0x31,0x3a,0x1f,0xe5,0xfc,
+ 0xd5,0x3,0x5e,0x95,0x4a,0x7c,0xcc,0x2c,0xde,0x20,0xda,0x9e,0xb1,0x8a,0x37,0xe4,
+ 0xe8,0xe5,0x5,0x85,0x19,0xc0,0xc0,0xc0,0xc0,0xf5,0xd7,0x5f,0xbf,0x62,0xc5,0xaa,
+ 0xbf,0xfd,0xdb,0xaf,0xb4,0xb6,0x56,0xc3,0x92,0x75,0x5d,0x4d,0xa5,0xec,0x4c,0x26,
+ 0x99,0x4a,0x59,0x96,0x65,0x58,0x96,0xa1,0x69,0x2a,0x80,0x30,0x8c,0x28,0xa5,0x51,
+ 0x14,0x15,0x8b,0x95,0x5c,0x6e,0xba,0x58,0xac,0x38,0x8e,0x4f,0x29,0x23,0x84,0xe8,
+ 0xba,0x69,0xdb,0xc9,0xd6,0xd6,0xf6,0x55,0xab,0xd7,0x9c,0x79,0xe9,0xb6,0xbf,0x78,
+ 0xe2,0xd7,0x3,0xf9,0x89,0xd9,0xc8,0x46,0x29,0xb,0xa2,0xa8,0xd3,0x4e,0xf7,0xd0,
+ 0xc4,0xdd,0x77,0xfd,0x4a,0xae,0xb2,0x48,0xeb,0xc1,0x19,0x2b,0x1a,0xcf,0x9a,0xc0,
+ 0x27,0xa7,0x6e,0xd3,0x0,0xe6,0x3e,0x7d,0x7b,0x95,0x7e,0x99,0x19,0x5f,0x16,0xe7,
+ 0xad,0x9d,0xb0,0x4d,0xd3,0x30,0xc,0x23,0x93,0x69,0xb1,0x2c,0x3b,0x93,0x69,0x31,
+ 0xc,0xc3,0x34,0xd,0xfe,0x2d,0x38,0xcf,0x8b,0x7b,0xf8,0x6f,0xc5,0xf2,0x39,0xc2,
+ 0x58,0x25,0x3b,0x78,0x17,0x80,0x7a,0x4d,0xa7,0x38,0xba,0x1b,0xa8,0xf6,0xb9,0xe3,
+ 0xce,0xbc,0xe3,0x78,0x30,0x6,0x6f,0x8b,0xaa,0x60,0xaf,0x4e,0xec,0xdb,0xb7,0xef,
+ 0x63,0x1f,0xfb,0xd8,0x92,0x25,0x4b,0x3f,0xfe,0xf1,0xbf,0x34,0xc,0x83,0x10,0x10,
+ 0x2,0xcb,0xd2,0x33,0x99,0x64,0x4b,0x4b,0x32,0x93,0x49,0x98,0xa6,0xa1,0xaa,0xaa,
+ 0xaa,0x2a,0x9a,0xa6,0xaa,0xaa,0x42,0x29,0xd,0x82,0x20,0x8,0xa2,0x30,0xa4,0x41,
+ 0x10,0x3a,0x8e,0x17,0x4,0xd5,0xde,0x23,0x84,0x68,0x9a,0xa1,0x69,0x46,0x32,0x99,
+ 0xd9,0xb8,0xf1,0xec,0x2d,0x57,0x5f,0xf9,0x57,0x8f,0xfe,0x6a,0xa0,0x30,0xd1,0xf4,
+ 0xba,0x41,0x18,0x4d,0x95,0x1d,0x0,0xeb,0x33,0xdd,0xbb,0x9e,0x7a,0x6a,0x6a,0x6a,
+ 0x4a,0xe6,0x2d,0x6f,0x34,0xca,0xe1,0xe7,0x22,0x78,0xe7,0x2b,0x75,0x63,0xc2,0xb0,
+ 0x64,0x6f,0xad,0xd2,0xaf,0xb8,0x7,0xf5,0x59,0xa3,0xa6,0x69,0x64,0x32,0x2d,0x6d,
+ 0x6d,0xed,0xb6,0x9d,0x68,0x6b,0xcb,0xda,0x76,0x82,0x13,0xd8,0x34,0x8d,0x19,0xed,
+ 0x8e,0x13,0xbe,0xb8,0xe7,0xf0,0xb8,0x5,0xc0,0xf3,0x7c,0x11,0x51,0xe0,0x38,0xce,
+ 0x42,0xd0,0xbc,0x40,0x4c,0x8a,0xae,0xed,0x4b,0x1,0x40,0x71,0xcf,0xfe,0x7c,0x1f,
+ 0x7f,0xf,0x36,0x56,0x54,0xc7,0xab,0x58,0x61,0xde,0xb3,0x67,0xcf,0xfb,0xdf,0xff,
+ 0xfe,0x35,0x6b,0xd6,0x7f,0xe4,0x23,0x1f,0xeb,0xea,0x5a,0x94,0x4e,0xdb,0xa9,0x94,
+ 0x6d,0x59,0xa6,0xaa,0xaa,0x51,0x44,0x1,0x28,0x8a,0xa2,0x28,0x84,0x10,0x88,0xc9,
+ 0x2d,0x21,0xc4,0x71,0xfc,0x4a,0xc5,0x6b,0x2a,0x30,0x8,0x21,0xba,0x6e,0x58,0x56,
+ 0x22,0x9d,0x6e,0xbb,0xe0,0x82,0x2d,0x6b,0x2e,0x7f,0xed,0xf7,0x76,0x3f,0x5e,0xf1,
+ 0xbd,0xc6,0x23,0x4b,0xae,0x3b,0x9c,0x2b,0x0,0x68,0x33,0x12,0xa3,0x87,0x8f,0xe6,
+ 0xf3,0x79,0xce,0xd5,0xa6,0x22,0xb7,0x91,0xc0,0xcf,0xe2,0x61,0xe7,0xa2,0x2e,0xb7,
+ 0x4b,0xc9,0xe9,0x7e,0x0,0x5c,0xd7,0xf1,0x3c,0x3f,0xed,0x3c,0x24,0x4b,0x5d,0x9e,
+ 0xbf,0xc2,0x45,0x6e,0x26,0xd3,0x2,0x80,0x2f,0xcd,0xcc,0x1b,0x6d,0x6d,0xd5,0x52,
+ 0xa3,0xa6,0x69,0xd8,0x96,0x3d,0x18,0x6c,0x42,0x71,0x8f,0x2c,0xae,0x9b,0x8e,0xbf,
+ 0x5,0xa0,0x3e,0x80,0x19,0x80,0xe8,0xb7,0xcc,0xe2,0xd,0x8e,0xeb,0xd8,0x9,0x5b,
+ 0x7e,0xeb,0xe1,0xd5,0x9d,0x2a,0xb4,0x77,0xef,0xde,0x4f,0x7e,0xf2,0x53,0x97,0x5f,
+ 0x7e,0xf5,0x47,0x3f,0xfa,0x17,0x8b,0x16,0x75,0xb4,0xb4,0x24,0x5b,0x5a,0x92,0xad,
+ 0xad,0xa9,0x6c,0x36,0x95,0x4c,0xda,0xaa,0xaa,0x7a,0x5e,0xe0,0xfb,0x41,0x14,0x55,
+ 0x5,0xac,0xef,0x87,0x9e,0x17,0xf8,0x7e,0xe8,0xba,0xbe,0xe3,0xb8,0x9c,0xdb,0x31,
+ 0x10,0x42,0x14,0x45,0x55,0x55,0x2d,0x91,0x48,0xb5,0xb4,0x74,0x6c,0x79,0xcd,0x85,
+ 0xc3,0x9d,0xe9,0xc7,0x4e,0xc4,0x33,0x6d,0xfc,0x30,0xbc,0x67,0xf7,0xfe,0x20,0x8a,
+ 0x0,0xe8,0xaa,0xe6,0xe5,0xa6,0xb,0x85,0x2,0xf7,0xc9,0xc7,0x64,0x2f,0x87,0x50,
+ 0x98,0x65,0x32,0x9f,0xea,0xf3,0xce,0x4a,0x5d,0x59,0xe9,0x12,0x3,0x88,0x47,0x41,
+ 0x56,0x99,0xc6,0x87,0x51,0x71,0xf,0x32,0xeb,0x79,0x9,0x6f,0xae,0x2a,0xa3,0xe6,
+ 0x63,0xb4,0x24,0x70,0xd9,0xb,0x61,0x56,0xa9,0xfd,0x90,0xb3,0x1d,0xf5,0xa,0xf3,
+ 0xa9,0x3e,0xc3,0xab,0x8,0xb5,0x7e,0x2b,0x8e,0xee,0x6e,0x94,0xba,0xaf,0xe6,0xae,
+ 0x7b,0xf8,0xe1,0x87,0xff,0xfc,0xcf,0xff,0x7c,0xcb,0x96,0x6d,0xef,0x7b,0xdf,0x7,
+ 0x0,0xe6,0xba,0x7e,0xa9,0x54,0x9e,0x9a,0x9a,0xae,0x54,0x1c,0xc6,0xa0,0x69,0x8a,
+ 0xae,0xab,0xba,0xae,0x12,0x42,0x28,0x65,0x5c,0xd4,0x45,0x11,0x75,0x1c,0xaf,0x54,
+ 0x2a,0x7,0x41,0x38,0x1f,0xe2,0x98,0xa6,0xd5,0xd9,0xd9,0xf5,0xda,0xcb,0xaf,0xf8,
+ 0xde,0xd1,0xbd,0x39,0xa7,0x2c,0xf6,0xfb,0x41,0x78,0xdf,0xee,0xa7,0xf,0xc,0x8d,
+ 0xf2,0x8f,0x3a,0x51,0x13,0x9a,0x71,0xe4,0xc8,0x91,0x20,0x8,0x62,0x4b,0xb,0xc8,
+ 0x72,0xf8,0xb9,0xab,0xcd,0xcd,0x35,0x2b,0x51,0xfc,0x11,0xb5,0xe8,0x65,0xd9,0xce,
+ 0xe9,0x79,0x3e,0xac,0x99,0x61,0xb4,0x7f,0x70,0x5a,0xcc,0x63,0x45,0x44,0x9e,0x58,
+ 0x9a,0x99,0xd3,0xde,0xb2,0x2c,0xc7,0xa9,0xf0,0x6f,0xfb,0xc8,0x76,0x20,0x5,0x60,
+ 0xff,0xe0,0xb4,0xb8,0xa2,0xac,0x30,0x2f,0x94,0x44,0xe3,0x68,0xa2,0xc2,0xd5,0x5e,
+ 0x97,0x83,0xc1,0x5b,0x62,0xdf,0xc4,0x12,0xf,0x5e,0x55,0xf8,0xd9,0xcf,0x7e,0xf6,
+ 0xc9,0x4f,0x7e,0xd2,0x75,0xcb,0x53,0x53,0xb9,0xdb,0x6f,0xff,0x89,0xe7,0xf9,0xbe,
+ 0x1f,0x2,0x4c,0xd7,0xf5,0xf6,0xf6,0xf6,0xe5,0xcb,0x97,0x9f,0x77,0xde,0x79,0x5b,
+ 0xb7,0x5e,0xbc,0x66,0xcd,0x5a,0xcb,0x32,0x54,0x55,0xd5,0x75,0xee,0x10,0x62,0x94,
+ 0x32,0xdf,0x8f,0xe6,0xcf,0x1a,0xd3,0xb4,0xd7,0xae,0xdd,0xb0,0xff,0x9c,0xbd,0xdf,
+ 0xd8,0xfe,0xc0,0xf5,0x17,0x5d,0x5,0x20,0xa2,0xf4,0xf1,0x83,0x83,0x8f,0x3c,0x73,
+ 0x58,0x1c,0xa3,0x12,0x92,0xd4,0x8c,0xc1,0xc1,0xc1,0x30,0xc,0x79,0x5c,0x20,0x8f,
+ 0x6c,0x13,0xd1,0x97,0xaa,0xaa,0xf2,0x3d,0x3c,0x48,0x83,0xab,0xee,0xcf,0xf,0x75,
+ 0x1b,0x8b,0x2d,0xd7,0x6c,0xbf,0x15,0xae,0x2d,0xcf,0x1c,0xda,0x6c,0x18,0xc5,0xc2,
+ 0x7a,0x6c,0xdb,0xae,0x15,0x76,0x4d,0x70,0xd1,0x5a,0xb2,0xb7,0xa2,0x78,0x23,0x32,
+ 0xeb,0x4b,0xee,0x46,0x7e,0x8c,0xb0,0x91,0xca,0x6b,0xb1,0x2f,0x20,0x86,0x9e,0xc4,
+ 0x9,0xf1,0xba,0xc4,0x58,0x75,0x67,0xa3,0x79,0xf9,0xd5,0x36,0xd1,0x7d,0xe4,0x91,
+ 0x47,0xbe,0xf5,0xad,0x2f,0xbc,0xe1,0xd,0x27,0xb6,0x6c,0x81,0xaa,0x16,0x75,0x1d,
+ 0x86,0x1,0xd3,0x84,0x6d,0xc3,0xb2,0x0,0x1c,0x39,0x7e,0xfc,0xf1,0x7,0x1e,0xb8,
+ 0xf9,0xd6,0x5b,0x6d,0xdb,0x5e,0xba,0xf5,0x82,0x37,0x5e,0x74,0xd1,0x25,0xbd,0x7d,
+ 0xab,0x17,0x2f,0x5e,0x44,0x88,0xa2,0x69,0xaa,0x61,0x68,0x9e,0x17,0x9c,0xf4,0x2a,
+ 0x1c,0x8a,0xa2,0xa4,0x52,0x2d,0x97,0x5c,0x72,0xd9,0x3f,0xdc,0xff,0xe0,0xe3,0x47,
+ 0x7,0x16,0xdb,0x99,0x1d,0x47,0x8e,0xee,0x1a,0x1c,0xa,0x25,0x65,0x5b,0x51,0x14,
+ 0x5b,0x33,0x46,0x47,0x46,0x39,0x8f,0x14,0x9,0xaa,0xaa,0x72,0xa2,0xf2,0x7a,0x6f,
+ 0x9c,0xc6,0xcf,0xee,0xa9,0xc3,0x30,0x6c,0xfe,0x6f,0x9e,0x8d,0xb7,0xdc,0x1,0x9b,
+ 0xcb,0xe5,0x32,0xe7,0x6e,0x40,0xf1,0x36,0x64,0xd6,0x23,0xb3,0x3e,0xb7,0x6f,0x12,
+ 0xe8,0x41,0x33,0xe5,0x2d,0x56,0x92,0xce,0xb2,0xec,0xaa,0xb,0x37,0xb3,0x1e,0xc5,
+ 0x3d,0xb9,0xe2,0x19,0x40,0x42,0xd6,0xb1,0x5,0x5e,0x6d,0xe3,0xaf,0x11,0x72,0x2,
+ 0x73,0x5d,0x19,0xd7,0xcc,0x7a,0x0,0x87,0xc7,0x2d,0xdb,0x9a,0xe9,0xf0,0x98,0x79,
+ 0xf9,0x55,0xd2,0x7b,0x8c,0xb1,0xdb,0x6e,0xbb,0xed,0x1f,0xff,0xf1,0xaf,0xdf,0xff,
+ 0xfe,0x81,0x77,0xbf,0x1b,0x73,0xc4,0xd1,0xbe,0xeb,0x5d,0xfe,0xe4,0xa4,0xbf,0xfb,
+ 0xc1,0xe2,0xa1,0x1d,0xfe,0xaf,0xfe,0xef,0xf6,0x27,0x8f,0xe2,0x9c,0x73,0xcf,0xfb,
+ 0xed,0xdf,0x7e,0xeb,0xf2,0xe5,0xcb,0x93,0x49,0x6e,0x28,0x9d,0x2f,0x7b,0x55,0x55,
+ 0xed,0xed,0x5d,0xde,0xb7,0x6e,0xfd,0xe7,0xee,0xb8,0x75,0x53,0x4b,0x1f,0x6d,0x96,
+ 0x27,0x68,0xa8,0xda,0x54,0xa1,0xc0,0xa9,0x4b,0x8,0xe1,0x11,0x32,0x8a,0xa2,0x30,
+ 0xc6,0x44,0xa8,0xc,0xff,0xf8,0x5c,0x42,0x23,0xe3,0x73,0x5d,0x7e,0x3d,0xc1,0x5b,
+ 0x93,0x8e,0xb,0xeb,0x14,0x57,0x95,0x9d,0x8a,0x93,0xcb,0xe5,0xba,0xad,0x81,0xaa,
+ 0x4,0xa8,0x47,0x6c,0x91,0xc8,0x46,0x78,0x9e,0x7f,0xfe,0xa2,0x5d,0x0,0x90,0x59,
+ 0x7f,0xa2,0xd4,0x26,0x47,0x14,0x2c,0xc4,0x30,0xb,0xf0,0x0,0x66,0xf1,0x91,0xbf,
+ 0xd7,0x72,0x45,0xf,0xa8,0x9a,0xf4,0xf9,0xf4,0x24,0x66,0xa3,0x2,0x10,0x4,0xc1,
+ 0xab,0x84,0xb7,0x0,0x6e,0xb9,0xe5,0x96,0x4f,0x7e,0xf2,0xe3,0xd7,0x5f,0x3f,0xf0,
+ 0x9e,0xf7,0xcc,0xc5,0x5b,0x0,0x4,0xe8,0x0,0xb9,0x74,0xcd,0xba,0xeb,0x3e,0xf0,
+ 0xc7,0xd7,0x7f,0xec,0x83,0x9f,0xbb,0xae,0xeb,0xc0,0x23,0x3f,0xbe,0xee,0xba,0xff,
+ 0xf9,0xcb,0x5f,0xde,0x59,0xa9,0x78,0xb6,0x6d,0x9a,0xe6,0x29,0xe4,0xab,0xe9,0xba,
+ 0x71,0xe9,0x65,0x97,0xef,0x29,0x8e,0x15,0xdc,0x72,0xd3,0x3,0x54,0xa2,0x38,0x8e,
+ 0xe3,0xfb,0xbe,0x98,0xee,0x72,0x59,0xd8,0xe8,0x22,0x8a,0x5,0x6c,0xcc,0x13,0x55,
+ 0x79,0xde,0xf8,0x5,0x7f,0xdf,0x73,0xee,0x4d,0xf9,0xe9,0xad,0xf6,0xf7,0xb6,0xda,
+ 0xdf,0xeb,0xd4,0x6,0x39,0x6f,0x65,0x77,0xa2,0x6c,0x25,0x6e,0xf2,0x0,0xf5,0x22,
+ 0x97,0xcb,0xed,0x74,0xba,0xea,0xde,0x18,0x76,0xfb,0xf9,0x7e,0xc3,0x30,0x62,0x36,
+ 0xd2,0x85,0xbc,0x3f,0x39,0x82,0xd,0x35,0xa9,0x9b,0xcd,0x98,0x0,0xb8,0x71,0x1,
+ 0x35,0xa3,0x20,0xcf,0xb0,0xe7,0x87,0xbd,0x7a,0xba,0x2e,0x8a,0xa2,0x3b,0xef,0xbc,
+ 0xe3,0xeb,0x5f,0xbf,0xfe,0x1b,0xdf,0x18,0x7d,0xeb,0x5b,0x71,0x92,0x87,0xe,0xc1,
+ 0x86,0x54,0x36,0xb9,0x19,0x3d,0x9f,0x53,0x53,0xbf,0x95,0xa,0x4f,0x6c,0x5e,0x6e,
+ 0xdd,0xf8,0xb9,0xd7,0xfd,0xf9,0xef,0xf6,0x7e,0xee,0x93,0x1f,0xfc,0xf2,0x97,0xbf,
+ 0x38,0x3e,0x3e,0x91,0x4a,0x59,0xc9,0xa4,0x35,0x7f,0xd1,0x17,0x45,0x5e,0xcb,0xd2,
+ 0xc5,0x83,0xd3,0x4d,0x16,0x58,0xe4,0xa0,0x51,0x14,0x4,0x81,0xa0,0x2e,0xa5,0x34,
+ 0xb6,0x14,0x66,0xcc,0xc2,0x7c,0x2a,0x4f,0xf,0x0,0x41,0x10,0xd4,0x51,0x37,0xe6,
+ 0xca,0x17,0xa6,0x29,0x0,0xe7,0x2f,0xda,0xd5,0xaa,0xe,0x3b,0xae,0xd3,0x74,0x3d,
+ 0xc8,0xa6,0x10,0xbc,0x95,0x83,0xa,0x3a,0xb5,0x41,0x0,0xc8,0xac,0xdf,0x75,0xdc,
+ 0x10,0x16,0x69,0xe,0x21,0x75,0xe5,0x51,0xfb,0xea,0x44,0xd3,0x30,0x18,0x11,0x5,
+ 0xc9,0x63,0xaa,0xea,0xa,0x95,0xd4,0xf0,0x6a,0xe8,0xba,0x30,0xc,0x7f,0xf0,0x83,
+ 0xff,0xfc,0xd2,0x97,0x3e,0xfc,0x89,0x4f,0x8c,0xbc,0xe1,0xd,0x27,0x3b,0x3a,0x0,
+ 0x8e,0xa9,0x98,0x3a,0xf,0x8b,0x3e,0x6,0xf3,0x22,0x4c,0x3c,0x81,0xc9,0x1d,0x8,
+ 0x7d,0x93,0xfa,0xef,0xb9,0xba,0xff,0xfb,0x7f,0x79,0xc9,0xd1,0xa7,0x7e,0xfa,0xb9,
+ 0xcf,0x7e,0x7a,0x74,0x64,0x3c,0x99,0xb4,0xd2,0x69,0x7b,0x3e,0xe4,0x8d,0x22,0x3a,
+ 0x32,0x32,0xbc,0x7c,0xf9,0xf2,0xdd,0xc5,0x78,0xfa,0x34,0x7,0x65,0x8c,0x87,0xfd,
+ 0x73,0xff,0x10,0x27,0xb0,0xcc,0xde,0x46,0x1f,0xef,0x29,0x3d,0x3e,0x6f,0x34,0x91,
+ 0xba,0x31,0xc3,0xa6,0x10,0x8f,0x57,0xad,0x7a,0x7a,0x45,0xe7,0xac,0x31,0xcc,0x4d,
+ 0xe1,0x38,0x4e,0x6c,0x75,0xa2,0xaa,0xb6,0xc,0xc8,0xd5,0xad,0x84,0xdc,0x10,0x25,
+ 0xe6,0x4e,0xe9,0x2a,0xaf,0x54,0x34,0x9,0x83,0x1,0x50,0x8b,0xa9,0xe2,0x73,0x8d,
+ 0x98,0xc2,0xfc,0x8a,0xf,0xa5,0xa2,0x94,0x7e,0xff,0xfb,0xdf,0xff,0xc7,0x7f,0xfc,
+ 0xfc,0xd7,0xbf,0x3e,0xfe,0xe6,0x37,0x9f,0x4c,0xde,0x52,0xe0,0x84,0xc2,0xbc,0xf3,
+ 0xb0,0xec,0xb,0x48,0x5e,0x46,0x46,0x7e,0x83,0x3,0x37,0xa0,0x3c,0x81,0xc0,0x43,
+ 0xe0,0x2b,0x51,0x74,0xfe,0x19,0x6d,0x5f,0xff,0xf3,0x8b,0xcc,0xf2,0x8e,0x3f,0xfb,
+ 0xb3,0x3f,0x2a,0x16,0x4b,0x89,0x84,0x69,0xdb,0x27,0x9f,0xb5,0x1d,0x3f,0x7e,0xb8,
+ 0x50,0x28,0xf4,0xf6,0xf6,0x4e,0xc0,0x2d,0xf9,0x4d,0x18,0x11,0xd0,0xd0,0x4e,0x26,
+ 0x84,0xc2,0x2c,0x1c,0xbc,0x72,0x84,0xc6,0xb3,0x53,0x95,0x5,0xa2,0x28,0x6a,0xee,
+ 0xd7,0x15,0x7c,0x33,0xa3,0x91,0xa1,0x62,0x5a,0xec,0xbf,0x6a,0xd5,0xd3,0x2b,0x3a,
+ 0x9c,0x15,0x1d,0xf3,0xa,0x33,0xe6,0x85,0x2f,0xc4,0xba,0x44,0xae,0xeb,0x54,0x45,
+ 0x2e,0x30,0xec,0xf6,0xb,0xa1,0x21,0x2f,0xb7,0x21,0xf0,0xca,0x1e,0x7f,0x1c,0xfc,
+ 0x19,0x67,0xdb,0xa2,0x7e,0x81,0x3f,0xdf,0xf7,0x7b,0x32,0x25,0xde,0x96,0x23,0x99,
+ 0x5d,0x69,0xfe,0xc2,0xab,0xf3,0xbd,0x82,0xe7,0xba,0x41,0x10,0xfc,0xf8,0xc7,0x3f,
+ 0xfa,0xf1,0x8f,0x3f,0xff,0xc3,0x1f,0xe6,0x2f,0xbc,0x10,0x27,0x7d,0x50,0x56,0xd1,
+ 0x19,0xbb,0xc,0xa9,0x8f,0x10,0x6b,0x33,0x39,0xf1,0x0,0x6,0x6e,0x81,0x6,0x58,
+ 0x9,0x44,0x21,0x0,0x84,0x1,0x18,0x5b,0xdc,0x62,0xfc,0xdd,0x7,0x36,0x77,0xe0,
+ 0xd0,0xff,0xf7,0x47,0xef,0x3f,0x7a,0xf4,0x58,0x32,0x69,0xd9,0xb6,0xa1,0x28,0xb3,
+ 0xa,0x5f,0xc7,0x71,0x76,0xed,0xda,0x49,0x8,0x69,0x6b,0x6b,0xeb,0xe8,0xec,0x18,
+ 0x98,0x1e,0x8f,0x1d,0x40,0x19,0x75,0x42,0xbf,0xa5,0xb5,0x55,0xe,0xc9,0x88,0xb5,
+ 0x1b,0xe3,0xab,0x9e,0x45,0x6f,0x9c,0x24,0x10,0xd2,0x53,0xbb,0xc6,0xc3,0xba,0x74,
+ 0x9f,0x77,0x6e,0x99,0x9c,0xed,0x60,0x1,0x31,0xe0,0x62,0x22,0x57,0xc,0x3e,0xa1,
+ 0x2d,0x37,0x16,0xfe,0xe6,0x22,0xf7,0x95,0x3a,0xfe,0x4,0x39,0x1b,0xb9,0xca,0xfb,
+ 0xaa,0x71,0x39,0xc5,0xa6,0x70,0xdc,0xba,0x17,0x1f,0x87,0xbc,0xac,0xf1,0x2b,0xf,
+ 0x8e,0xe3,0x7c,0xe3,0x1b,0x5f,0xff,0xee,0x77,0xff,0xe2,0x6f,0xff,0xb6,0xb8,0x65,
+ 0xcb,0x9c,0x87,0x32,0x80,0x2,0x81,0x89,0xa1,0xcd,0xb0,0x3e,0x80,0x45,0x97,0x23,
+ 0xb7,0x3,0x23,0x77,0x23,0x72,0xa1,0x68,0xa0,0x80,0x95,0x80,0xaa,0x42,0xd3,0x40,
+ 0x43,0x4,0x6e,0xd6,0xc4,0xd7,0xfe,0xf8,0x82,0x33,0x5a,0x4e,0x7c,0xfa,0x2f,0x3f,
+ 0x31,0x32,0x72,0x22,0x9d,0xb6,0x2d,0xcb,0x6c,0xaa,0x39,0x87,0x61,0x78,0xe0,0xc0,
+ 0xee,0x7c,0xbe,0x4a,0x81,0xb5,0x6b,0xd7,0x8e,0xba,0xc5,0xd8,0x31,0x11,0xa5,0xd3,
+ 0x81,0xb7,0x68,0xd1,0x22,0x31,0xd1,0x15,0xa4,0xe5,0x59,0x9c,0x72,0x54,0x46,0xf5,
+ 0x7e,0x9f,0xaf,0x68,0x2a,0x55,0x55,0xb9,0xe2,0xca,0xe3,0x28,0x0,0xfc,0xe8,0xc0,
+ 0x6b,0xe5,0x3,0xe6,0xc3,0x5e,0xe,0x31,0x5b,0xe6,0x22,0xb7,0xdb,0x1a,0xe0,0xfb,
+ 0x4f,0x94,0xda,0xc4,0x31,0x22,0xf4,0xea,0x15,0xef,0xd1,0xe5,0x6e,0x1b,0x39,0xdc,
+ 0x25,0x90,0x20,0x7f,0x3c,0x69,0x2,0xc6,0x6c,0xb5,0x97,0x5f,0xa9,0x52,0xd7,0xf7,
+ 0xfd,0x6f,0x7e,0xf3,0x9b,0xff,0xfd,0xdf,0xff,0xf0,0x83,0x1f,0x4c,0x5f,0x76,0x19,
+ 0x9b,0xd5,0x1b,0xca,0x0,0xde,0x73,0xd4,0x64,0x7,0xce,0x44,0xf2,0xe3,0x68,0xbb,
+ 0x94,0x8c,0xfe,0x6,0x7,0x6f,0x80,0x5f,0x80,0xae,0xc2,0xb0,0x60,0x5a,0x50,0x54,
+ 0xe8,0x26,0x34,0x1d,0x8c,0xc2,0x9d,0x46,0x39,0x9f,0x46,0xe5,0xa3,0xbf,0xd3,0xd7,
+ 0x16,0xee,0xfd,0xfc,0xe7,0x3f,0xcb,0x18,0x12,0x9,0x93,0xe7,0x15,0xc5,0x70,0xfc,
+ 0xf8,0xc0,0xfe,0xfd,0xbb,0x79,0xe9,0x56,0x55,0x55,0xbb,0xba,0xba,0xa6,0x58,0x5c,
+ 0x61,0xe,0x19,0x2d,0x85,0xee,0xe2,0xc5,0x8b,0x67,0x9b,0xd6,0x3e,0xf7,0xe8,0x65,
+ 0x7e,0xf5,0x3a,0xea,0x36,0xfe,0xd7,0x45,0x0,0xe3,0x1d,0x7,0xcf,0x38,0xa5,0x53,
+ 0xcb,0x26,0x2e,0xce,0x7f,0x21,0x72,0x1f,0x1b,0xdb,0xc8,0xe7,0x69,0xc2,0xb6,0x2c,
+ 0xb4,0x65,0xee,0xa1,0x7e,0xe5,0xd,0x3e,0x21,0x9,0x65,0xde,0xba,0xae,0x1b,0xcd,
+ 0x2,0x34,0x4c,0x74,0x63,0xa8,0xb3,0xf3,0x4b,0x78,0x45,0x4a,0x5d,0xc7,0x71,0xbe,
+ 0xf3,0x9d,0x7f,0xbd,0xf7,0xde,0xaf,0xfe,0xe4,0x27,0xe5,0xb5,0x6b,0x31,0x57,0x11,
+ 0x81,0x8,0x8,0xc0,0x7c,0x83,0xd,0x6d,0x42,0xc7,0xe7,0xc8,0xe2,0x8b,0xc8,0xc4,
+ 0xc3,0x18,0xbf,0x7,0x1a,0x85,0xaa,0x81,0xa8,0x8,0x7c,0x54,0x8a,0x70,0xcb,0x70,
+ 0x4a,0xf0,0x3d,0x80,0xc0,0x4e,0xa3,0xb5,0x13,0x89,0x96,0x96,0x4c,0xf2,0x13,0xef,
+ 0xda,0xb0,0xef,0xd1,0x5b,0x7e,0xf8,0xc3,0x1f,0x10,0x82,0x98,0xbb,0x28,0x8,0x82,
+ 0xc3,0x87,0x9f,0x79,0xf0,0xc1,0x7b,0x82,0x20,0x50,0x14,0x65,0x68,0x68,0x68,0x74,
+ 0x74,0x74,0x7a,0x7a,0xba,0x58,0x89,0xaf,0x9c,0xea,0x47,0xa1,0x92,0x34,0x2d,0xcb,
+ 0x12,0x92,0x96,0x1b,0xa8,0x62,0x21,0x90,0xcf,0x3e,0xfe,0xb1,0xc6,0xe,0xa5,0xe9,
+ 0x2c,0x2b,0x6,0xd3,0x34,0x4e,0x94,0xda,0x1e,0x1b,0xab,0x6,0x3f,0x21,0xbd,0x2e,
+ 0xd6,0xe0,0x66,0x67,0xcf,0xf3,0xf9,0xd4,0xcb,0x95,0x20,0x66,0xb9,0xdd,0xd6,0x0,
+ 0x3f,0x7e,0xcf,0x50,0x2,0xf5,0xf1,0x1b,0x8d,0x13,0xdd,0xb9,0xe7,0x81,0x2f,0xd3,
+ 0x2d,0x97,0xa8,0x82,0xb1,0x8e,0x84,0x7c,0x3e,0x2f,0x4c,0x7a,0x32,0x69,0x85,0xce,
+ 0x12,0xfb,0x8f,0x34,0x95,0xba,0x91,0x54,0x89,0xfe,0x25,0x7f,0xd8,0xe7,0x6b,0x5b,
+ 0x2c,0x16,0xbf,0xf8,0xc5,0xbf,0xfb,0xf9,0xcf,0x3f,0xff,0xd5,0xaf,0xba,0x6b,0xd7,
+ 0x36,0x3e,0x74,0x3d,0x34,0x40,0x51,0x71,0xe2,0x1c,0xd8,0x1f,0x45,0x7a,0x1d,0x4e,
+ 0xdc,0x8f,0xa3,0xbf,0x40,0x79,0xc,0xbe,0x8b,0xd0,0x3,0xa3,0x20,0x4,0x1a,0x1f,
+ 0x78,0x4,0x34,0x82,0xe7,0x22,0xf0,0xe1,0xb9,0x70,0x2b,0x70,0xa7,0x97,0xb5,0xab,
+ 0x7f,0xff,0x7,0x9b,0xbe,0xf3,0xad,0xaf,0xed,0xdc,0xf9,0xa4,0xec,0x28,0xaa,0x54,
+ 0x2a,0x3b,0x77,0x3e,0xf6,0xe8,0xa3,0xf,0x50,0x4a,0xcb,0xe5,0xb2,0xe7,0x79,0x8e,
+ 0xe3,0xec,0xd8,0xb1,0x23,0x97,0xcb,0xb9,0x61,0xbc,0x4a,0x44,0x39,0xf2,0xcc,0xf6,
+ 0x16,0x4d,0xd3,0x18,0x63,0x9c,0xb7,0x41,0x10,0xf0,0x36,0xab,0xd5,0x3c,0xe1,0x26,
+ 0xab,0x39,0x9e,0x7a,0xee,0x8f,0xd5,0x67,0xe5,0x2a,0x9c,0x50,0xe4,0x38,0xb8,0xf4,
+ 0xe3,0x8c,0xe2,0xb1,0xc7,0x76,0xc2,0xde,0x33,0x84,0x9e,0x4c,0x7f,0xb7,0x35,0x80,
+ 0xd2,0x3e,0x0,0x48,0xaf,0xe3,0x8d,0x2,0xed,0x91,0x97,0x89,0xe4,0x32,0x96,0xab,
+ 0xc1,0x9c,0xb7,0x10,0x22,0xb7,0xb4,0x4f,0x88,0x5c,0x0,0x7c,0x1,0x31,0x59,0xe4,
+ 0x8a,0x89,0xee,0x2b,0x46,0x74,0x88,0x7,0x91,0x3,0xc2,0x63,0x26,0x0,0xe,0xf9,
+ 0x63,0xd3,0x3,0x4,0x64,0xc3,0xe1,0x1c,0x17,0x9d,0xfb,0x75,0xfc,0xb2,0x80,0xeb,
+ 0xba,0x5f,0xfd,0xea,0x57,0x1f,0x7e,0xf8,0x3b,0x37,0xdd,0xe4,0xf7,0xf4,0xe0,0x24,
+ 0x9e,0x9b,0x8,0x28,0x81,0xd,0x74,0x63,0xe9,0xa7,0x61,0xf5,0x91,0x89,0x27,0x30,
+ 0xfe,0x20,0x88,0xf,0x42,0x10,0x86,0x88,0x2,0xf8,0x15,0x50,0x6,0xc3,0x86,0x4a,
+ 0x60,0x24,0xa0,0x19,0x48,0x28,0x20,0xa,0x8,0xc0,0x18,0xbc,0xa,0xca,0xc5,0xb,
+ 0xd7,0x64,0xde,0x72,0x61,0xf1,0x47,0x3f,0xfa,0xf1,0x27,0x3e,0x71,0x3d,0x80,0x28,
+ 0x8a,0xe,0x1f,0x3e,0xb0,0x73,0xe7,0xf6,0x13,0x27,0x86,0xa7,0xa7,0xa7,0xdb,0xdb,
+ 0xdb,0xa7,0xa6,0xa6,0xa6,0xa7,0xa7,0x35,0x4d,0xab,0x54,0x2a,0xc9,0x64,0xb2,0x51,
+ 0x68,0xe,0x94,0x26,0x3a,0xd6,0x2e,0x36,0xc,0x83,0x52,0x2a,0x97,0x92,0x43,0x2d,
+ 0x64,0x4a,0xc4,0x2d,0xcf,0x81,0x18,0x2b,0x9b,0x92,0x54,0x43,0x4d,0x4,0xf3,0x6d,
+ 0x18,0x86,0xba,0xae,0x7,0x41,0x90,0x4a,0xa5,0xa6,0xa7,0xa7,0x79,0xd2,0xf,0x0,
+ 0xdf,0xf7,0x9d,0x8a,0x73,0xe7,0xbe,0xc5,0x57,0xae,0x43,0x55,0x7e,0x96,0xf6,0xf1,
+ 0x6d,0xab,0x32,0x74,0x78,0xc2,0xce,0x66,0xb3,0x7c,0x51,0x3f,0x0,0x96,0x65,0x73,
+ 0x2,0x73,0xde,0xce,0x88,0xdc,0xd2,0xbe,0x3d,0x43,0x9,0x3b,0x1,0xd9,0x40,0xc5,
+ 0xa9,0x1b,0x8b,0x9b,0x17,0xb7,0x14,0xd6,0xc2,0xfa,0x5e,0x8e,0x5b,0xf1,0x8,0xd5,
+ 0xa1,0x55,0xcf,0xdb,0x46,0x66,0x5a,0x96,0xc5,0x77,0xca,0x6a,0x48,0x5d,0x14,0x64,
+ 0xed,0x75,0x29,0x20,0x87,0x64,0xcc,0x7,0xa7,0x43,0xb7,0xcc,0x73,0x3b,0x3d,0x3d,
+ 0xfd,0xad,0x6f,0x7d,0x73,0xcf,0x9e,0x6f,0xfd,0xf8,0xc7,0x41,0x6f,0xef,0xc9,0x1f,
+ 0x8d,0x45,0xc0,0x74,0x3f,0x7a,0x3f,0x46,0x40,0x70,0xec,0x3e,0x8c,0x3c,0x8c,0xca,
+ 0x4,0xcc,0x4,0x54,0x1d,0x8a,0x2,0xd5,0x84,0x69,0x83,0x32,0xe8,0x6,0x34,0x3,
+ 0x8c,0x81,0x86,0xa0,0x11,0xfc,0x32,0x2,0x17,0x51,0x8,0xdd,0x42,0x6b,0x27,0x51,
+ 0xf5,0x77,0xbd,0x21,0xf9,0x3f,0x3f,0x7d,0xfb,0xbf,0xfc,0x4b,0x36,0x91,0x48,0x28,
+ 0x8a,0x52,0x2a,0x95,0xb8,0x84,0x3c,0x74,0xe8,0x50,0xb1,0x58,0x4c,0xa7,0xd3,0xe3,
+ 0xe3,0xe3,0xd9,0x6c,0x96,0x52,0xea,0xba,0xae,0xa9,0xd6,0xd9,0x59,0xbd,0x28,0xd8,
+ 0xef,0x8c,0x5d,0xbd,0x62,0x2b,0x5f,0xbc,0xd2,0x30,0xc,0x51,0x99,0x98,0x6f,0x35,
+ 0x4d,0x23,0x84,0x88,0xad,0xd8,0x23,0x4f,0x15,0x67,0x1b,0x48,0x62,0xcb,0x49,0x1a,
+ 0x9f,0x55,0xf2,0xa1,0xc6,0xd9,0xcb,0x33,0x7,0xf8,0x30,0x72,0x5d,0xa7,0xb5,0xad,
+ 0xa5,0x90,0x9f,0xba,0x77,0x67,0xe9,0x9d,0x57,0xcc,0xf0,0x16,0xe9,0x75,0xa8,0xc5,
+ 0xc2,0x37,0x6,0x9,0xf8,0xbe,0x6f,0x18,0xc6,0xf9,0x8b,0x76,0xf1,0x83,0x7f,0x3a,
+ 0x70,0xa5,0x9d,0xf0,0x51,0x9b,0xe5,0xca,0x22,0x17,0x92,0x3b,0x37,0x26,0x28,0xea,
+ 0xde,0x34,0xd2,0xeb,0xe7,0xf4,0x9f,0x12,0xcb,0x46,0x29,0x61,0x31,0x16,0xa4,0x15,
+ 0x9c,0x6c,0x35,0x8a,0x5d,0xda,0x1,0x0,0x83,0xee,0xa5,0x90,0x8,0xdc,0x4,0xbc,
+ 0xc3,0xc7,0x66,0x76,0x58,0xcd,0x34,0xe7,0x20,0x8,0x62,0xbe,0xf1,0x97,0x51,0xa7,
+ 0x71,0xe4,0xf3,0xf9,0x2f,0x7d,0xe9,0x8b,0x7,0xf,0x7e,0xf7,0x2b,0x5f,0x9,0xfb,
+ 0xfb,0xe7,0xf1,0x3,0x6,0xc,0x2e,0x43,0xdb,0x87,0xc1,0xda,0x30,0xb6,0x1f,0xc5,
+ 0x43,0xb0,0xc,0xd8,0xbd,0x20,0x4,0x81,0x57,0x3d,0x40,0xd3,0xc1,0x18,0x7c,0x7,
+ 0x9e,0x3,0xc6,0x40,0x0,0x45,0x5,0x21,0x48,0xb5,0x41,0xd5,0x41,0x80,0x30,0x40,
+ 0xa5,0xb8,0xb8,0xc5,0x78,0xed,0xd9,0xad,0x3f,0xbf,0xfd,0xd6,0xf3,0x2f,0x78,0x4d,
+ 0xb1,0x58,0x6c,0x6d,0x6d,0xf5,0x3c,0x8f,0x52,0xaa,0x69,0xda,0xf0,0xf0,0xf0,0x92,
+ 0x25,0x4b,0xf8,0x7f,0x30,0x8a,0xa2,0xb1,0xb1,0xb1,0xb4,0x6e,0x8a,0x5b,0x8,0x69,
+ 0x74,0xff,0xc8,0x81,0xe4,0xa2,0xec,0xda,0x75,0xeb,0xe4,0x5b,0x23,0x12,0xe6,0xd8,
+ 0x33,0xff,0xce,0xa9,0xfe,0x2b,0x63,0x7b,0xc5,0xff,0x58,0xfc,0xef,0x6b,0x19,0xf3,
+ 0xd5,0x6c,0xdb,0x9c,0xdb,0x73,0xc7,0xe,0xf7,0xaa,0x73,0x25,0xf6,0xa2,0x5a,0xa4,
+ 0xa6,0xd1,0x76,0xe2,0x79,0xfe,0x9b,0x37,0x1e,0x43,0x9,0x0,0x86,0xdd,0x7e,0x9e,
+ 0x75,0x14,0xcb,0xe9,0x85,0x94,0x68,0x2a,0xc6,0x1c,0x6f,0x70,0x25,0x93,0x37,0xc4,
+ 0x47,0xd4,0x5b,0x7d,0x4e,0xe7,0xb1,0x28,0xf3,0x96,0xef,0x11,0xf3,0x7f,0x0,0xae,
+ 0xeb,0x9c,0x93,0xdd,0x5d,0xd3,0x47,0x6,0x90,0x5e,0xb7,0x7f,0xb0,0x62,0xdb,0x9,
+ 0x79,0x11,0x53,0x19,0x33,0xca,0xe,0x36,0x36,0x7e,0x2b,0x20,0x8c,0xd5,0xa2,0xdf,
+ 0xe4,0x9b,0x79,0x59,0xc0,0x71,0x9c,0x2f,0x7e,0xf1,0x8b,0x7b,0xf7,0xfe,0xc7,0x4f,
+ 0x7e,0x12,0x2e,0x5a,0x74,0x32,0x3d,0x19,0x40,0x4,0xb6,0xa7,0x17,0x4b,0xbe,0x0,
+ 0x63,0x39,0x99,0xd8,0x7,0xf7,0x28,0x34,0x8a,0x80,0xa1,0x9c,0x83,0x99,0x0,0x5,
+ 0xdc,0x22,0x40,0x40,0x14,0x28,0x2a,0x74,0xb,0x96,0x5,0x5e,0xf9,0x6,0x4,0x61,
+ 0x0,0x1a,0x41,0x51,0x11,0xf8,0x88,0x22,0x18,0x96,0xa1,0xe9,0xd7,0x6e,0xed,0xf9,
+ 0xcf,0xdb,0xee,0x3a,0xd0,0xd2,0xe6,0xba,0x6e,0x26,0x93,0x31,0xc,0x63,0x78,0x78,
+ 0xb8,0xb5,0xb5,0x75,0x6a,0x6a,0x4a,0xd8,0x9f,0xc,0xc3,0x28,0x14,0xa,0x4b,0x8d,
+ 0xaa,0xca,0x43,0x19,0xdb,0x99,0x3b,0xb6,0xbf,0x32,0xfe,0x87,0x1f,0xf8,0x13,0x31,
+ 0x9e,0xb9,0xb6,0x2c,0x58,0xaa,0x88,0x22,0x1d,0xf5,0x38,0xd5,0xdc,0x3,0x3e,0xec,
+ 0x15,0x34,0x4c,0x8a,0xe4,0xff,0xb1,0xb8,0x9,0x6e,0x6a,0xe6,0x65,0x2e,0xe,0x8f,
+ 0x5b,0x8f,0x1d,0xaa,0x11,0xa6,0xde,0x52,0xe5,0xb8,0x8e,0x53,0x71,0xa,0xf9,0x29,
+ 0x5e,0x5f,0xef,0xe2,0xbe,0x1,0xfe,0xed,0xf0,0xb8,0x73,0xff,0x60,0x3f,0x50,0x55,
+ 0x95,0x9b,0x86,0x61,0x88,0x31,0xc7,0x5f,0x69,0xc2,0x9c,0x23,0x7f,0x94,0x5d,0x29,
+ 0x73,0x4c,0xe2,0x4f,0x9f,0xad,0x78,0xdd,0xc8,0x39,0x58,0xad,0x46,0x71,0x6d,0xe2,
+ 0xb1,0x6b,0xd6,0x1c,0xea,0xee,0xb4,0x85,0xf2,0x72,0xfb,0x81,0x95,0xae,0xeb,0xc8,
+ 0xea,0x71,0x5c,0xf6,0xa6,0xeb,0xde,0xe5,0x8d,0xe0,0x6b,0x26,0xa,0xf0,0x9f,0x8b,
+ 0xee,0x92,0xff,0xb9,0xa7,0xf3,0x36,0x9f,0xcf,0x7f,0xe5,0x2b,0x5f,0x1a,0x18,0xf8,
+ 0xf7,0x1b,0x6e,0xf0,0x17,0x2f,0x3e,0x39,0x6f,0x99,0x43,0xd8,0xd3,0x67,0x62,0xc9,
+ 0xb7,0x48,0x72,0x3d,0x19,0xd9,0x8e,0x13,0xf,0xc2,0x9d,0x42,0x71,0x2,0xf9,0x13,
+ 0x88,0x2,0xf8,0xe,0x10,0xc2,0x4a,0x22,0xd3,0x81,0x4c,0x7,0x52,0xad,0x30,0xc,
+ 0x4,0x2e,0xdc,0x12,0xa6,0x26,0x90,0x1f,0x1,0xa3,0x20,0xa,0x18,0x83,0x6e,0xc2,
+ 0x4c,0x42,0x51,0xa3,0x88,0x75,0xb7,0x1a,0xfd,0x4b,0x5a,0x86,0x8e,0xd,0x14,0x8b,
+ 0xc5,0xc3,0x87,0xf,0x13,0x42,0xf8,0xbf,0x2f,0x8,0x82,0xe9,0xe9,0xe9,0x30,0xc,
+ 0x15,0x45,0x49,0xa7,0xd3,0x85,0x42,0xa1,0xcb,0x6e,0x5,0x40,0x19,0x3b,0x50,0x38,
+ 0xb1,0xd3,0x1d,0x79,0xd7,0x7b,0x7f,0x8f,0x17,0x8e,0x8d,0xa2,0x88,0xe7,0x6,0x11,
+ 0x42,0x78,0x76,0x2e,0x6f,0x47,0x51,0xc4,0xf3,0x75,0x79,0x9b,0x67,0xf3,0x12,0x42,
+ 0xe6,0x6f,0xb2,0x12,0xff,0xc7,0x26,0x86,0x76,0x59,0x8e,0x71,0x1f,0xaf,0xa8,0x56,
+ 0xc3,0xed,0x55,0xb6,0x65,0x1f,0x3c,0x32,0x2c,0xe6,0x5d,0x97,0x9e,0x5d,0xb5,0x9a,
+ 0x8,0xf6,0xf2,0x8f,0x17,0xf7,0xd,0x70,0x47,0xee,0x63,0x63,0x1b,0xef,0xdc,0x57,
+ 0x2d,0x3c,0xdf,0xa8,0x2a,0xf3,0xb7,0x83,0x3c,0xe6,0x9a,0x9a,0x5e,0x39,0xa6,0xa7,
+ 0xa7,0xf9,0x31,0x4d,0x47,0xe4,0xe9,0x9,0xfe,0x44,0x82,0xb7,0x6b,0x13,0x8f,0x6d,
+ 0x5a,0x72,0xb4,0xea,0xe2,0xae,0x19,0xfc,0x1e,0x3b,0xa4,0x95,0x4a,0x33,0x85,0x7,
+ 0x9a,0x2b,0xcc,0xc2,0x3a,0x78,0x2a,0x97,0x16,0xed,0x97,0x45,0x78,0xf3,0xc4,0xc4,
+ 0xc4,0x67,0x3e,0xf3,0x99,0xdd,0xbb,0xbf,0xfe,0x95,0xaf,0x44,0xb3,0x2c,0xdf,0x53,
+ 0x8f,0xa,0xb0,0xef,0xc,0xa8,0x1f,0x86,0xd2,0x8a,0x67,0x6e,0xc5,0x89,0x47,0x11,
+ 0xba,0x88,0x42,0x98,0x49,0xb4,0x2d,0x41,0xcb,0x62,0xa4,0x3b,0x60,0x24,0xa1,0x68,
+ 0x70,0xa6,0x31,0x9d,0x83,0x53,0x44,0x79,0xa,0x9e,0x3,0x45,0x43,0xaa,0x15,0x6d,
+ 0x5d,0x30,0x2c,0xe8,0x26,0x18,0x45,0x29,0x87,0x89,0x63,0xc8,0x8f,0x1c,0xda,0x37,
+ 0xe0,0x4f,0x7,0xd7,0x5d,0x75,0x46,0xd2,0x39,0x1e,0x5,0x7e,0xb9,0x5c,0x1e,0x1f,
+ 0x1f,0x4f,0x26,0x93,0x61,0x18,0x6,0x41,0x50,0x2e,0x97,0x93,0xc9,0x64,0x3a,0x9d,
+ 0xe6,0x13,0xe0,0xa5,0xc9,0x36,0xca,0xe8,0x53,0xb9,0x63,0xf7,0x4f,0x1d,0xbe,0xfc,
+ 0xda,0xab,0xfb,0xfb,0xfb,0x21,0x49,0x51,0x2e,0x69,0x45,0xde,0x9f,0xca,0xd7,0x5c,
+ 0xa8,0xed,0x7c,0x2e,0xb5,0xb2,0xab,0x52,0x77,0x36,0xc4,0xe6,0x4b,0x42,0xf0,0x2,
+ 0xa8,0x56,0x72,0x4c,0xaf,0x3,0xd0,0x6d,0xd,0xfc,0xc5,0x3b,0xd2,0xe7,0xad,0x49,
+ 0xa0,0xc6,0xde,0x25,0xe9,0xfc,0xc5,0x7d,0x3,0x5c,0xa4,0xdc,0xb1,0x23,0x3a,0x9c,
+ 0x6f,0xe7,0xb1,0x53,0xe9,0x74,0x4a,0x96,0xb7,0x82,0xbd,0xc2,0x29,0x22,0xc7,0x3c,
+ 0x37,0x85,0x38,0xac,0x29,0x81,0x4f,0x1f,0xc8,0x22,0x57,0x2e,0xf,0xe4,0xba,0x4e,
+ 0x77,0xa7,0xd,0xd4,0x18,0x98,0x5e,0x7,0xe0,0xb1,0x43,0x1a,0x77,0x98,0x9,0x34,
+ 0x2a,0xcc,0x9e,0xe7,0x57,0x7f,0x52,0x6f,0xa6,0x42,0x6d,0xce,0x1c,0x63,0xbb,0xb8,
+ 0x28,0x67,0x6f,0xec,0x35,0x17,0x33,0x19,0x9c,0x26,0x5b,0xdf,0xf7,0xff,0xe6,0x6f,
+ 0xfe,0xe6,0xd8,0xb1,0x1b,0x6f,0xbc,0x91,0xae,0x5f,0x3f,0xf,0x3d,0xd9,0x1,0x7b,
+ 0xac,0x17,0xe4,0xbd,0xe8,0xb9,0x80,0xe4,0x9e,0x80,0x77,0x1c,0x76,0x2,0x89,0x16,
+ 0x58,0x29,0x98,0x9,0xe8,0x26,0x8,0x41,0x69,0x2,0xd3,0x39,0x84,0x21,0x54,0xd,
+ 0x9a,0x1,0xcd,0x42,0xaa,0xd,0x99,0xe,0x98,0x49,0x68,0x6,0xc0,0xe0,0x94,0x31,
+ 0x71,0x1c,0xb9,0x13,0x70,0xcb,0xa0,0x74,0xfb,0xf6,0x43,0xc5,0xbc,0x97,0x32,0x94,
+ 0xcb,0xd6,0xb7,0x2d,0x4a,0x44,0x86,0x42,0x1,0xe4,0x72,0x39,0xc6,0x98,0x61,0x18,
+ 0xe9,0x74,0x3a,0x99,0x4c,0xae,0x58,0xb1,0x42,0xd3,0xb4,0x62,0xb1,0x98,0xd5,0xed,
+ 0x8c,0x6e,0xef,0x2b,0xc,0xff,0x6a,0x64,0xef,0xb5,0x6f,0x7b,0xf3,0xfa,0xf5,0xeb,
+ 0x29,0xa5,0x3c,0x61,0x8e,0x3b,0x87,0xf8,0x96,0x5b,0x9b,0x75,0x5d,0x17,0x5b,0x4d,
+ 0xd3,0x78,0x3b,0x8a,0x22,0x91,0x62,0x3d,0x9b,0x3d,0x62,0xb6,0x29,0xe1,0x5c,0x5d,
+ 0x89,0x1a,0x7b,0x85,0xda,0x2c,0x8a,0xd4,0xd4,0x21,0xbd,0xe,0xc0,0x55,0xe7,0xaa,
+ 0x1b,0x7b,0xf9,0x35,0x8a,0xdd,0x9d,0x36,0x60,0x73,0x25,0xd9,0xa9,0x38,0xb2,0x49,
+ 0x59,0x98,0x43,0xc5,0x2c,0x97,0x87,0x3a,0xcb,0xee,0x90,0x58,0x2c,0x87,0xec,0x6d,
+ 0xe2,0xf3,0x40,0x9e,0xf,0xcc,0xcb,0xbe,0xaa,0xaa,0x2a,0x66,0x74,0x2f,0xbe,0xec,
+ 0x9d,0x4d,0xcf,0x11,0x88,0xea,0xcb,0x3,0x89,0x28,0x6e,0xa0,0x6a,0x73,0x1a,0x1e,
+ 0x77,0x1e,0x3f,0x94,0x69,0x1a,0xf4,0xde,0xdc,0x5e,0x55,0x6f,0xa6,0x72,0x5d,0xa7,
+ 0xad,0xad,0xdd,0x75,0x5d,0xae,0xa7,0xf1,0x6e,0x5c,0x67,0xdc,0xb9,0xf,0x57,0x42,
+ 0x5a,0x3f,0x31,0x56,0x8d,0xe1,0x25,0x67,0x69,0xe3,0xb6,0x52,0xa9,0x7c,0xf9,0xcb,
+ 0x7f,0x37,0x3e,0xfe,0x83,0x1f,0xfc,0x80,0xd6,0x2a,0xfc,0xce,0x5,0xe6,0x1,0x7,
+ 0x56,0x20,0xfd,0x5e,0xb2,0xfe,0x6d,0x98,0x78,0x4,0x53,0x7,0xc1,0x22,0x50,0xa,
+ 0x42,0x50,0x29,0x81,0x46,0x50,0x55,0x68,0x16,0x12,0x6d,0x0,0x45,0xb9,0x0,0xab,
+ 0x5,0x8a,0xe,0x30,0x30,0x86,0xd0,0x47,0xe0,0xc1,0x77,0xe1,0x55,0xa0,0x1b,0xd0,
+ 0xd,0x10,0x42,0x5d,0xf7,0xc0,0x33,0xc3,0x95,0xc0,0x58,0xd9,0x63,0x53,0xa2,0x5a,
+ 0x6a,0xb0,0xa9,0x3f,0xf1,0xab,0x21,0x9f,0x10,0x32,0x3d,0x3d,0xad,0xaa,0x6a,0x2a,
+ 0x95,0xea,0xec,0xec,0x54,0x55,0xd5,0x30,0x8c,0x7c,0x3e,0x9f,0xcb,0xe5,0xfa,0xad,
+ 0xf6,0x23,0xd3,0xe3,0xf,0x4d,0xd,0xbc,0xe5,0x77,0xdf,0x7e,0xc6,0x19,0x67,0x30,
+ 0xc6,0xf8,0xda,0x1d,0xa6,0x69,0x2,0xd0,0x75,0x9d,0x10,0xc2,0x87,0x3d,0xdf,0xcf,
+ 0xb7,0x96,0x65,0xf1,0x63,0x28,0xa5,0x86,0x61,0xf0,0x69,0x73,0x14,0x45,0x96,0x65,
+ 0xc9,0xd4,0x8b,0x31,0xb1,0x69,0xbf,0x9d,0x84,0xbd,0x8d,0xb0,0x13,0x36,0xd0,0xa4,
+ 0x12,0x7c,0x55,0x9e,0x0,0x0,0x86,0xc7,0x9d,0x9b,0x77,0x64,0x6c,0xcb,0x11,0xb1,
+ 0xca,0xc2,0x16,0x2a,0xd4,0x6f,0x1,0xae,0x4f,0x62,0x66,0xc1,0xce,0x4a,0x63,0x10,
+ 0x82,0xeb,0x3a,0xe2,0xc,0xb2,0x21,0xc7,0xb6,0x6d,0x99,0xbd,0x2f,0xce,0x38,0x43,
+ 0x3d,0x45,0x65,0x73,0x9a,0xdc,0x68,0x8c,0x67,0x3c,0x7f,0xa5,0xd4,0xa5,0xe9,0x75,
+ 0x0,0x6e,0xde,0x91,0xa9,0x75,0x29,0x7f,0x9c,0x53,0xf0,0xf4,0xa0,0xe6,0x87,0x6b,
+ 0x6b,0xcb,0x8a,0x3e,0xb1,0x6d,0x1b,0x11,0x4c,0x3a,0xee,0x38,0x9d,0xe2,0x9d,0x1b,
+ 0x7b,0xc7,0x9d,0xe,0x5c,0x95,0xb7,0xf9,0x7c,0xfe,0xb3,0x9f,0xfd,0x6c,0x2e,0x77,
+ 0xe3,0x57,0xbe,0xc2,0xba,0xbb,0xe7,0x7a,0xde,0x2a,0x18,0xb0,0x77,0x19,0xd4,0xff,
+ 0x17,0xab,0xae,0xc2,0xe8,0x3d,0x18,0xf8,0xd,0x2a,0x39,0x58,0x49,0x10,0x2,0x45,
+ 0xab,0x8a,0x5c,0xa1,0x8e,0x52,0x8a,0x44,0xb,0xa2,0x8,0x9e,0x3,0x4a,0xa1,0x6a,
+ 0x10,0xe9,0x3e,0x89,0xc,0x54,0x5,0x14,0x30,0xcc,0x91,0x3c,0xcd,0xfb,0x89,0x9e,
+ 0x4c,0x39,0xd4,0x4c,0x52,0x99,0xd2,0x69,0xf1,0x8c,0xe,0xed,0x89,0x91,0xca,0x9,
+ 0x25,0x11,0x86,0x61,0x3a,0x9d,0xe6,0xff,0x53,0x4e,0xcb,0x42,0xa1,0xe0,0x39,0xe,
+ 0x65,0xfa,0x5d,0xe3,0x7,0xb6,0x5d,0xf9,0xba,0xb5,0x6b,0xd7,0x72,0x66,0x42,0x62,
+ 0x69,0xac,0xcd,0x7f,0xc8,0x25,0x30,0xdf,0x72,0xf6,0x72,0xd9,0x6b,0x18,0x46,0x4c,
+ 0xea,0xce,0xf1,0x71,0x86,0xb7,0x98,0x87,0xf4,0x10,0x3,0xab,0x91,0x54,0x8d,0xb8,
+ 0xe1,0xae,0xb1,0x2,0xed,0x11,0x11,0x3f,0x62,0x7e,0xb,0x89,0xb7,0x5c,0xd2,0x36,
+ 0xfa,0x4b,0x5c,0xd7,0xe9,0xca,0x4,0x51,0x38,0xac,0x26,0xba,0xa3,0xca,0x4c,0x3e,
+ 0xe4,0x78,0xd8,0x57,0x2c,0x4e,0xc5,0x2e,0x24,0xc4,0xaf,0x18,0x97,0x73,0x3f,0xce,
+ 0xf3,0xb5,0x45,0xbd,0xa,0xca,0x29,0x2a,0x88,0x1a,0xd5,0x15,0x18,0x70,0xc4,0xa3,
+ 0xb5,0x1a,0xf1,0x50,0xf5,0xe1,0x71,0x2c,0x93,0x48,0xfd,0x0,0x0,0x20,0x0,0x49,
+ 0x44,0x41,0x54,0x7,0xd0,0x45,0x6d,0xc7,0xa6,0xd6,0xbb,0xa6,0xe0,0x95,0x5c,0x21,
+ 0x49,0xdd,0xba,0xd9,0x87,0x1,0x4f,0xe9,0x44,0x4d,0x8,0x37,0x6,0x87,0xbf,0x38,
+ 0xbd,0x34,0xcf,0x6d,0xa5,0x52,0xf9,0xfc,0xe7,0x3f,0x3f,0x36,0xf6,0x5f,0xff,0xf5,
+ 0x5f,0xac,0xb5,0x55,0xf8,0x4b,0xf8,0xe2,0xb7,0xcd,0xc0,0x40,0x77,0x76,0x93,0xfc,
+ 0x5b,0xb0,0xf9,0x2a,0x32,0xf9,0x20,0x8e,0x3d,0x1,0x95,0xa0,0x65,0x11,0x54,0x15,
+ 0x7c,0x49,0x3e,0x59,0xd5,0x66,0xc,0x95,0x2,0x8,0xa0,0x59,0x50,0x75,0x44,0x2e,
+ 0x88,0x2,0xd3,0x86,0xef,0x80,0x46,0xd0,0x93,0x30,0x4c,0x10,0xd5,0x75,0xfc,0x23,
+ 0xc7,0x8b,0xfd,0x6d,0x24,0x98,0xf2,0x34,0xbf,0xa8,0x54,0x26,0x61,0xdb,0x29,0x4b,
+ 0xb5,0x98,0xc7,0x98,0xcd,0xcb,0xd3,0x15,0xa,0x5,0x5e,0x4d,0x6a,0x7a,0x7a,0x7a,
+ 0x6a,0x6a,0xaa,0x3c,0x35,0xfd,0x84,0x9f,0x7b,0xf3,0xdb,0xdf,0xba,0x7e,0xfd,0x7a,
+ 0x7e,0xcf,0x5c,0x13,0x46,0xcd,0x85,0xcb,0xb7,0xaa,0xaa,0xf2,0xba,0x36,0x9c,0xa5,
+ 0xa2,0xcd,0xf5,0x6a,0x45,0x51,0xf8,0x5b,0x35,0xac,0xad,0xec,0x5,0x69,0x8c,0xcd,
+ 0xf1,0x31,0x9c,0xad,0x36,0x55,0xc,0xb2,0xba,0x65,0x59,0x76,0xa9,0x34,0xed,0x68,
+ 0xfd,0x40,0xbc,0x1a,0x2d,0x80,0x3b,0x76,0x44,0x8f,0x1f,0xa8,0x0,0x36,0x8f,0xaf,
+ 0xb2,0x13,0x76,0xb5,0x2c,0x46,0xf5,0xb7,0x75,0xbc,0xe5,0x3b,0x5,0x6f,0xf3,0xf9,
+ 0xc9,0xae,0x4c,0xb0,0xa9,0xef,0x68,0xed,0xf0,0xa3,0x75,0xa7,0xc6,0xa1,0xc7,0xe,
+ 0x69,0x87,0xf3,0xed,0xe3,0xe3,0xe3,0xb1,0x73,0xa2,0x26,0x55,0xe6,0xf3,0x2c,0xcf,
+ 0x1d,0x82,0xb4,0x73,0x4,0x1b,0xcb,0xf,0x88,0xd9,0xe3,0xa2,0xee,0xdc,0xb7,0x18,
+ 0xa8,0x1e,0x26,0x2f,0x6f,0x5d,0xf3,0xa5,0xcf,0x9a,0x1d,0x6d,0x5b,0xb6,0x53,0x71,
+ 0xb8,0xdd,0xc1,0x71,0x2a,0x31,0x59,0xbd,0xcf,0xbf,0x52,0xbe,0x93,0xf9,0x3c,0xd4,
+ 0x4b,0x88,0xef,0x7c,0xe7,0xdf,0x26,0x87,0xef,0xfc,0xde,0x3f,0x2d,0x4d,0x4d,0x18,
+ 0xd1,0x89,0x96,0xc8,0x6f,0x67,0x51,0x96,0x91,0x4,0x3a,0xc,0xad,0x65,0x37,0x51,
+ 0x47,0x88,0x1e,0x90,0x68,0x44,0x31,0x2b,0x50,0xc0,0x22,0xc2,0x8e,0x77,0x93,0xa9,
+ 0xab,0xc8,0x59,0xd7,0xa2,0xb0,0x3,0xb9,0xc3,0x10,0x9e,0xed,0x28,0x4,0xa3,0x55,
+ 0xf6,0x72,0x66,0x6a,0x1a,0x54,0x3,0xba,0xd,0xdf,0x81,0x57,0x81,0x6e,0x42,0x37,
+ 0xe0,0x3b,0x50,0x34,0x24,0x32,0x50,0x54,0x50,0xc6,0x4a,0xb9,0xe9,0x92,0x77,0xf8,
+ 0x78,0xa9,0xd7,0x86,0xee,0x4d,0x4d,0x6b,0x96,0x45,0x69,0x10,0x80,0xa4,0xd3,0x29,
+ 0x93,0xda,0x26,0x1,0xa3,0xba,0x6e,0x72,0xd6,0x69,0x9a,0x96,0x4c,0x26,0xa7,0xa6,
+ 0xa6,0x26,0x27,0x27,0x3,0x42,0xaf,0x7d,0xf3,0x9b,0x36,0x6c,0xd8,0x20,0xaa,0xc6,
+ 0x69,0x9a,0x26,0x6c,0x51,0xaa,0xaa,0x6a,0x9a,0xa6,0xd6,0x43,0xde,0xc3,0x2d,0x55,
+ 0x8d,0xe,0xde,0xf9,0xe3,0xe4,0xd4,0xd5,0x75,0xdd,0x75,0x5d,0x39,0x77,0xd4,0x34,
+ 0xd,0x3b,0x1c,0x0,0xe2,0x54,0xb9,0x63,0x47,0x74,0xf3,0xdd,0x7,0x7b,0x7a,0xba,
+ 0xe5,0x95,0x10,0x0,0x58,0x96,0xcd,0xab,0xa8,0x37,0xca,0x93,0x98,0xb0,0xdd,0xb4,
+ 0x24,0x46,0xd7,0x3a,0x9c,0xbf,0x32,0xec,0x19,0x1f,0xb8,0x7f,0xb0,0x5f,0x36,0xc6,
+ 0x72,0xf0,0x19,0xdd,0x8b,0x90,0xa3,0x2f,0x3b,0x69,0x1b,0x17,0xd1,0x44,0x6d,0x82,
+ 0xca,0xc5,0x60,0x8c,0x7b,0x5,0x3f,0x23,0x7f,0xfc,0xd1,0xe3,0x8b,0x1,0x87,0xf7,
+ 0x15,0x37,0xe0,0xc9,0xbe,0xee,0xb9,0xe1,0xb8,0x8e,0xe8,0x64,0x99,0xb7,0x31,0xdb,
+ 0x81,0xc0,0x69,0x5b,0x5a,0x7d,0x74,0x74,0xf4,0x27,0x3f,0xfa,0xfe,0xd7,0xff,0xea,
+ 0xba,0xa4,0x72,0x66,0x45,0x49,0x91,0x94,0xa5,0x28,0xba,0xa2,0x0,0x44,0x3,0x14,
+ 0xbf,0x70,0x5,0x8b,0x7c,0xa6,0x96,0x8,0x3d,0xa4,0x19,0xfb,0x75,0xfd,0x3e,0x32,
+ 0xad,0x63,0x74,0x1b,0x96,0x5d,0x88,0xc9,0x9d,0x28,0x1e,0x85,0x57,0xaa,0xd2,0x55,
+ 0x55,0x11,0x6,0x50,0x54,0x28,0x2a,0x14,0x5,0x66,0x12,0x8a,0x2,0x42,0xc0,0x28,
+ 0xc2,0x0,0xba,0x89,0xc8,0x87,0xef,0x42,0xb7,0x90,0x68,0x5,0x18,0x9c,0x12,0x14,
+ 0x5,0x44,0x1d,0x1e,0x99,0x2a,0x38,0x56,0xbb,0x1a,0x25,0x99,0x3b,0x15,0xa9,0x49,
+ 0xc3,0xf4,0x2b,0x15,0x45,0x51,0xad,0xca,0x48,0x21,0x34,0xa8,0xaa,0x75,0x75,0x2d,
+ 0x49,0x24,0x93,0xdc,0xa9,0xdb,0xd5,0xd5,0x65,0x9a,0xe6,0xd3,0x4f,0x3f,0x3d,0x36,
+ 0x36,0x76,0xd1,0x45,0x17,0x6d,0xdc,0xb8,0x11,0xb5,0x25,0x14,0x84,0xd,0x99,0x87,
+ 0x49,0x35,0x42,0x36,0x2f,0x8b,0xda,0xae,0x82,0xb4,0x2f,0x8,0x75,0x39,0x78,0x58,
+ 0xd5,0x1c,0x72,0x0,0x40,0x36,0x63,0xf2,0xc5,0x75,0x73,0xb9,0x5c,0x4f,0x77,0x8f,
+ 0x9d,0xb0,0x63,0xaa,0x32,0x9a,0x9,0x1,0xee,0x34,0x69,0xe4,0x2d,0x49,0xf6,0xb3,
+ 0xf2,0x40,0xac,0xdd,0xd3,0xbf,0xee,0x62,0xec,0x13,0xec,0x15,0x1,0xc,0xbc,0x4,
+ 0x71,0x63,0x14,0xd1,0xf3,0x88,0xd9,0x82,0x90,0xe7,0x8,0x45,0x8e,0x11,0xd8,0x75,
+ 0x9d,0xdb,0xf,0xac,0xec,0xca,0x4,0x51,0x65,0x78,0xa8,0xb2,0xc4,0xa9,0x4c,0x71,
+ 0xa5,0x57,0xf0,0x36,0xa6,0x95,0xcc,0xd1,0xe1,0x31,0xa9,0xcb,0xdf,0x8c,0xa8,0xd9,
+ 0xa5,0xe4,0xad,0xfc,0xab,0xd3,0xb0,0xfc,0xc8,0x2d,0xb7,0xdc,0x92,0x6d,0x6f,0x3d,
+ 0xeb,0xc2,0xad,0xc4,0xb4,0x14,0xd5,0x54,0x55,0x4b,0x51,0x2d,0x45,0x25,0x84,0x11,
+ 0x0,0x34,0xd1,0xc2,0xa2,0x20,0xc,0x2a,0x11,0xed,0xa5,0xd1,0x36,0xbf,0xf2,0x96,
+ 0xc4,0x23,0xdf,0x50,0xf3,0xf,0x92,0xf6,0x61,0x64,0xb2,0x30,0x93,0xd0,0x54,0xe8,
+ 0x6,0x54,0x3,0x4,0xd0,0x2d,0xa0,0xa6,0x2d,0x33,0x8a,0x28,0x40,0x18,0xc2,0xaf,
+ 0x80,0x52,0xe8,0x26,0x34,0x13,0x56,0x1a,0xbe,0x83,0xd2,0x4,0x74,0x13,0x86,0xd,
+ 0xc3,0x1a,0x1e,0x1a,0x3f,0x3a,0xa9,0xb7,0x25,0x94,0xd6,0x70,0xac,0xa8,0x77,0x12,
+ 0x94,0x4d,0xd,0x6e,0xb1,0xa4,0xeb,0x2a,0x53,0xf5,0x14,0xf1,0x92,0xa9,0x6c,0x7f,
+ 0xb6,0xbf,0x52,0x71,0x28,0xa5,0x1b,0x37,0x6e,0x34,0xc,0x63,0xc7,0x8e,0x1d,0x7b,
+ 0xf7,0xee,0xdd,0xba,0x75,0xeb,0xd6,0xad,0x5b,0x63,0x54,0xe4,0x82,0x97,0xb3,0x54,
+ 0x6e,0x70,0x4a,0xb,0x87,0x90,0xa0,0xab,0x88,0xd0,0x78,0x76,0x52,0x77,0x5e,0x9e,
+ 0x25,0xfe,0xce,0xae,0x8b,0x8f,0xd7,0xfa,0x1,0x90,0x64,0xff,0xf0,0xb8,0xc3,0x1b,
+ 0x0,0x7a,0x32,0xa5,0xa1,0xa1,0x61,0xd4,0xd6,0xe9,0xe4,0x93,0x37,0x31,0x22,0xf9,
+ 0x42,0xbb,0xf2,0x69,0xe5,0xd0,0x22,0xce,0x5b,0x7e,0x1e,0xbe,0xe5,0x5c,0x15,0xed,
+ 0xe1,0x71,0xe7,0xb1,0x43,0x1a,0x2b,0xf,0xf4,0xf4,0xaf,0xbb,0xb8,0x6f,0x80,0x2f,
+ 0xed,0x29,0xfb,0x45,0x4e,0x9a,0xe3,0xfa,0x5c,0x10,0xe3,0x6d,0x2c,0x35,0xca,0x71,
+ 0x2a,0xf9,0xfc,0x24,0xff,0xe3,0x1f,0x1d,0xa7,0x92,0xcf,0xe7,0x20,0xa9,0x15,0xa8,
+ 0x45,0xa4,0x1d,0x9d,0x60,0x43,0x95,0x25,0x9e,0xe7,0x8b,0xc5,0x10,0x67,0x7b,0xbb,
+ 0xc9,0x33,0x58,0xce,0x52,0xde,0x1b,0xdd,0x4b,0xba,0xe4,0x7b,0x6b,0xc,0xc0,0xe2,
+ 0x67,0x10,0xe7,0x39,0x6d,0x45,0xae,0xe7,0x79,0x3f,0xff,0xf9,0x6d,0xef,0x7c,0xfb,
+ 0xe5,0xba,0x99,0x54,0xb5,0x94,0xa6,0xda,0xaa,0x6e,0xa9,0x9a,0xa6,0xaa,0x86,0xaa,
+ 0x1a,0xaa,0x66,0x68,0xaa,0xa5,0x69,0xb6,0x66,0xa6,0x74,0x3d,0xa1,0x9a,0x69,0xd5,
+ 0xec,0xf5,0x37,0xbd,0x3f,0xcc,0x9e,0xc9,0x2a,0x5,0x38,0x53,0xd0,0x54,0x58,0x29,
+ 0xe8,0x16,0x8,0x1,0x63,0xa0,0x11,0xa2,0x0,0x61,0x0,0x67,0x1a,0xd3,0x79,0x38,
+ 0x25,0xb0,0x8,0x46,0x2,0xc9,0x16,0xa8,0x2a,0xdc,0x12,0xa,0x27,0x10,0x38,0x2c,
+ 0xd5,0xc6,0x52,0xad,0x4c,0x37,0x4f,0x1c,0x1b,0x3d,0x78,0x60,0x52,0x27,0x58,0x84,
+ 0xb1,0xc0,0xc8,0x30,0x28,0x44,0x51,0x54,0xe6,0xc1,0x30,0x19,0x8b,0x14,0xdf,0x2d,
+ 0x7a,0xaa,0xa6,0x69,0x94,0x32,0x5d,0xd7,0x93,0xc9,0x64,0x32,0x99,0x1c,0x1d,0x1d,
+ 0xdd,0xbf,0x7f,0xff,0x96,0x2d,0x5b,0x2e,0xbc,0xf0,0x42,0xce,0x5b,0x51,0xa8,0x95,
+ 0xf3,0x56,0x90,0x56,0x40,0xde,0x1f,0xe3,0xb0,0x4c,0xe6,0x67,0xd1,0x7b,0x27,0xa7,
+ 0xae,0x98,0xda,0x89,0xc1,0xe1,0x79,0xbe,0x1d,0xe,0x70,0x49,0xb8,0xeb,0xb8,0x1,
+ 0x80,0x95,0x7,0xaa,0xec,0xad,0x2d,0x69,0xdf,0xb4,0x4a,0x2b,0xd7,0x19,0x10,0xcf,
+ 0x6b,0x73,0xce,0x5e,0xea,0x41,0x12,0xad,0xe2,0x6c,0x62,0xf,0x49,0xf6,0xef,0x3a,
+ 0x6e,0xfc,0xfb,0x4f,0xf7,0xf0,0x6f,0x59,0x72,0xb5,0xe3,0x3a,0x22,0xc7,0x50,0x40,
+ 0xce,0x7a,0x7b,0xbe,0x20,0x72,0xdf,0x45,0xac,0x88,0x4c,0xda,0x7c,0x7e,0xb2,0x58,
+ 0x9c,0x6a,0x35,0x8a,0x5d,0x99,0xa0,0x2b,0x13,0x74,0x6a,0x83,0xe3,0xe3,0xe3,0xc5,
+ 0xe2,0x54,0xb1,0x38,0xc5,0x43,0xa3,0x38,0x99,0xc5,0x93,0x8a,0xd3,0x72,0xab,0xbb,
+ 0xac,0x95,0x70,0xef,0x8e,0xfc,0x76,0x93,0xa5,0xae,0x5c,0xb9,0x9e,0x94,0x9f,0x11,
+ 0xb,0xe,0x1,0x70,0x9c,0x8a,0x38,0xf2,0xf4,0x9f,0xd9,0xca,0xd8,0xbf,0x7f,0x7f,
+ 0x79,0xba,0x74,0xcd,0xd5,0x17,0x6a,0xaa,0xa1,0xe9,0x86,0xaa,0xeb,0xba,0x61,0x6b,
+ 0x9a,0xa9,0xa8,0x3a,0x51,0x75,0x42,0x34,0xa2,0x69,0x44,0xd3,0x35,0xd5,0x50,0x54,
+ 0x8b,0xc2,0x88,0xd4,0x64,0x90,0x59,0xe9,0x6f,0xf9,0x23,0xef,0xcc,0xdf,0xa5,0x9e,
+ 0x87,0xa3,0x7b,0x91,0x1f,0x85,0x57,0x81,0x53,0xc2,0x74,0x1e,0x5e,0x19,0xbe,0x8b,
+ 0x28,0x4,0x21,0xd0,0x4d,0x68,0x6,0x7c,0x17,0xa5,0x49,0x14,0x27,0xe0,0x94,0x0,
+ 0x82,0x54,0x16,0x76,0xb,0x34,0x3,0x11,0xf5,0x8a,0x53,0xe3,0x47,0x47,0x32,0xe9,
+ 0x64,0x56,0xad,0xa8,0x95,0x9c,0x43,0x92,0xac,0x32,0xa9,0x80,0xf9,0x5e,0x48,0x99,
+ 0x62,0xa8,0x84,0x32,0x56,0xac,0x4,0x27,0xa6,0x55,0xd7,0x75,0x53,0xa9,0x54,0x36,
+ 0x9b,0x1d,0x1c,0x1c,0xbc,0xe3,0x8e,0x3b,0xd6,0xad,0x5b,0xb7,0x75,0xeb,0x56,0xce,
+ 0x43,0x1,0x9d,0xaf,0xb1,0xad,0xaa,0xba,0x4,0x4e,0x5d,0xf1,0x95,0xe0,0x6d,0x4c,
+ 0xd8,0x3e,0xeb,0xd5,0xb1,0xe7,0xa5,0x30,0x47,0x51,0x64,0xdb,0x76,0x3e,0x5f,0x75,
+ 0x8,0x99,0xa6,0xe1,0xa0,0x9f,0x13,0x2c,0x37,0xf9,0x28,0x49,0x5e,0x20,0x34,0x5b,
+ 0x19,0xb2,0xdd,0x85,0x1b,0x81,0x63,0x7,0xf0,0xd1,0xef,0xfb,0x7e,0x4f,0xe2,0x38,
+ 0x67,0xa9,0x2c,0x6f,0x5,0xf8,0x57,0x1b,0x7b,0xfd,0xec,0x9b,0xd7,0x93,0x64,0x2f,
+ 0x0,0x32,0xbe,0xf,0xc8,0x80,0xe7,0x33,0x55,0x5,0xda,0xb,0xb2,0x6c,0x47,0x53,
+ 0x25,0xd9,0x95,0xa,0xca,0x2f,0xeb,0x20,0x8b,0x5b,0x58,0x4f,0xe2,0x58,0xed,0x3e,
+ 0xc3,0xb,0x92,0xf6,0xd0,0xc0,0xbe,0x47,0x47,0xce,0x28,0x95,0xa6,0x9b,0x2e,0xf9,
+ 0x2d,0x3b,0xc6,0x65,0x87,0x99,0xd8,0x29,0x17,0xc1,0x15,0x85,0x4a,0x44,0x3f,0x90,
+ 0x64,0x3f,0xab,0x84,0xc0,0xa8,0x53,0x71,0x5a,0xdb,0x5a,0xa4,0x53,0xc5,0xcf,0x20,
+ 0x77,0xb8,0x1c,0x1,0x7e,0xfa,0x60,0xc7,0x8e,0xed,0xaf,0x39,0xef,0x8c,0xce,0xf6,
+ 0xac,0xa2,0x5a,0x84,0xe8,0x8a,0xaa,0x2b,0x8a,0x6,0xc6,0x0,0xd,0x2a,0x3,0x65,
+ 0x20,0x14,0xaa,0xa,0xaa,0x87,0x11,0x8b,0x68,0x14,0x84,0x21,0xa0,0x47,0x46,0xab,
+ 0x91,0x5e,0xce,0xba,0x2f,0xb1,0xe,0xdf,0x4e,0x8e,0x3c,0x89,0x15,0x67,0x21,0xd3,
+ 0x1,0x85,0xc0,0x29,0x43,0x51,0xe1,0x94,0xa0,0x69,0xf0,0x5c,0x0,0x30,0x6d,0x24,
+ 0x53,0x50,0xc,0x68,0x3a,0x40,0xa0,0xa8,0x60,0x8c,0xb8,0x25,0xc6,0xe8,0x8e,0x3d,
+ 0x63,0x2d,0x6d,0xfd,0x8a,0x9b,0x6f,0x73,0x8f,0x95,0x94,0x36,0xc3,0x2b,0x94,0x98,
+ 0x9a,0x22,0x34,0x82,0x5a,0xf6,0xa2,0xb4,0x19,0x85,0x94,0x1e,0x2d,0x84,0x13,0x9e,
+ 0xd6,0x46,0x69,0x47,0x47,0xc7,0x91,0x23,0x47,0x7e,0xfa,0xd3,0x9f,0x5e,0x72,0xc9,
+ 0x25,0x67,0x9f,0x7d,0x36,0x9f,0x77,0x70,0x91,0x2b,0xc4,0x29,0x67,0x29,0x67,0xaf,
+ 0x6c,0xaf,0xe2,0xbc,0x8d,0x5,0x30,0xcb,0x51,0xcd,0x2f,0x2c,0x75,0xb9,0x41,0x5c,
+ 0xde,0x63,0x87,0x3,0x24,0xb9,0x92,0x95,0x7,0xa,0xb4,0xa7,0x3a,0x9e,0xca,0x3,
+ 0x3d,0xfd,0xeb,0x80,0x5d,0x0,0x6c,0xcb,0x16,0xda,0xf2,0x6c,0xe7,0x94,0xe5,0xc9,
+ 0xcc,0xa0,0xac,0xb1,0x17,0xc0,0xf0,0xb8,0xb3,0x6b,0xc7,0xa1,0x9b,0xef,0x3e,0x8,
+ 0x1c,0xf8,0xc6,0x9f,0xae,0xe9,0xe9,0x5f,0xd7,0x5d,0x93,0xc9,0x2c,0xb9,0x9a,0x8f,
+ 0xdd,0x17,0x6d,0x89,0xc0,0x46,0xde,0x76,0x65,0x82,0x4d,0x4b,0x8e,0x91,0x64,0x3f,
+ 0x2b,0x1f,0x15,0x6f,0x1c,0xd1,0xf,0x6f,0xee,0x1c,0xf8,0xee,0x7d,0x19,0xa7,0xe2,
+ 0xc8,0xda,0x87,0x61,0x18,0x3c,0x95,0x8a,0x7f,0xac,0x66,0x74,0xd4,0x4f,0x71,0x5,
+ 0xdf,0xf8,0x64,0xb5,0xe9,0x5c,0x97,0x94,0x9f,0xb1,0xad,0xc5,0x0,0x3c,0xcf,0x37,
+ 0xc,0x43,0x56,0x98,0xc5,0xcf,0x1b,0x79,0x7b,0xba,0x4d,0x74,0xcb,0xe5,0xf2,0xfe,
+ 0xfd,0x7b,0xdf,0xf2,0x86,0x2d,0xaa,0x6e,0xaa,0x9a,0xa9,0x68,0x9a,0xa2,0xa8,0x20,
+ 0x84,0x1,0x60,0x14,0x14,0x20,0x8c,0x31,0x84,0x41,0xc8,0xc0,0x14,0x55,0xd5,0x54,
+ 0x85,0x31,0x25,0x8,0xfc,0x90,0xa8,0x51,0x66,0x99,0x96,0x6c,0x8f,0x92,0x1d,0x89,
+ 0x83,0x37,0x29,0x93,0x27,0x50,0x2e,0x20,0xd1,0xa,0x45,0x81,0x6e,0xc0,0xb2,0xc1,
+ 0x0,0xc3,0x86,0xa2,0x56,0xf3,0xd,0xa0,0x80,0x10,0xd0,0x10,0x9e,0xb,0xc6,0xc2,
+ 0x88,0x1c,0x3e,0xea,0x6a,0xd0,0x32,0x56,0x14,0x8d,0x1e,0xf2,0x93,0x99,0x72,0xa0,
+ 0x6,0x41,0x39,0x6d,0x30,0x1a,0x2a,0x45,0x96,0x6a,0x57,0x8b,0x1,0x49,0xa8,0x6a,
+ 0xf4,0xb3,0x3d,0x7e,0xcb,0xf2,0x74,0x4f,0x4f,0xcf,0xe8,0xe8,0xe8,0x3d,0xf7,0xdc,
+ 0x73,0xe9,0xa5,0x97,0x6e,0xda,0xb4,0x89,0x87,0x22,0xb,0x2b,0x31,0xdf,0xca,0x32,
+ 0x96,0xb3,0xd7,0x30,0xc,0xa1,0x30,0x8b,0x83,0x65,0x3c,0x47,0xde,0x62,0x9e,0x16,
+ 0x66,0xfe,0xc2,0x96,0xf5,0x37,0x47,0xab,0xd2,0xac,0x55,0x79,0x94,0x24,0x2f,0x80,
+ 0xa4,0xdc,0x66,0xe5,0xbc,0xfb,0x5a,0xd1,0x29,0x3e,0x92,0x1a,0xdf,0xfd,0x42,0x87,
+ 0x14,0x8c,0x3d,0x3e,0x1e,0xee,0x3e,0x10,0xdd,0x7c,0xf7,0x1d,0xf2,0x61,0xb2,0xfe,
+ 0x4c,0x92,0xfd,0x42,0xea,0x9e,0x2a,0x62,0x99,0x49,0xf3,0xf9,0x49,0x2c,0x59,0xcf,
+ 0x71,0x2a,0xc5,0xe2,0xd4,0xf9,0x2b,0x59,0x6f,0xa7,0xc6,0xca,0xa8,0xbb,0x2b,0xe9,
+ 0xd5,0x43,0x92,0xfd,0x67,0xad,0xa6,0x8f,0xec,0x3a,0x1,0x20,0x46,0x60,0xce,0x5e,
+ 0xc1,0x5b,0xb1,0xbf,0xa9,0x62,0x82,0x66,0xbe,0x74,0x96,0x5c,0xed,0xb8,0xa3,0x76,
+ 0x2d,0x28,0x55,0x98,0xa9,0xe4,0x52,0xb8,0xb1,0x7,0x3c,0xdd,0x78,0xb,0xa0,0x50,
+ 0x28,0x4c,0xe5,0x47,0xd6,0xad,0x79,0x93,0xa2,0xe8,0x44,0xd5,0x8,0x8,0x21,0x1a,
+ 0xaa,0xeb,0x80,0xf0,0x2d,0x21,0x8c,0x29,0x8a,0xa,0x50,0xa2,0x21,0x8c,0x42,0xc6,
+ 0x28,0x21,0xa0,0x8c,0x1,0x6a,0xa4,0x18,0xb4,0xf3,0x4c,0x4a,0x58,0x6a,0xef,0x7f,
+ 0x29,0xbe,0x87,0xa4,0x2,0xc3,0x6,0xa5,0x20,0x7c,0xe,0xa8,0x80,0x52,0xf0,0xfa,
+ 0x4d,0x34,0xaa,0x26,0x9,0xa9,0x1a,0xd,0xfc,0xdc,0x89,0x49,0x36,0x31,0x91,0xb1,
+ 0x92,0x98,0x38,0x62,0x9b,0xfa,0x84,0x67,0x24,0x55,0x9f,0x32,0xaa,0xb3,0x20,0xaf,
+ 0x64,0xfd,0x72,0xc5,0x34,0x23,0x27,0xa,0xc7,0xa,0xce,0xb1,0x2,0x96,0x67,0xb3,
+ 0x23,0x23,0x23,0x8f,0x3c,0xf2,0xc8,0xf9,0xe7,0x9f,0xbf,0x61,0xc3,0x6,0x48,0x6b,
+ 0x8,0x89,0x69,0x2d,0xe7,0xad,0x50,0x92,0x85,0x86,0x2c,0xeb,0xc9,0x31,0xf6,0x3e,
+ 0x47,0x55,0x19,0xd5,0x27,0x9c,0x7,0x9a,0x5a,0x80,0xf8,0x18,0x3d,0x3c,0x61,0xa3,
+ 0xde,0xa4,0xd4,0x58,0x63,0x9d,0xf,0xfd,0xb9,0x47,0xf,0x3f,0xc3,0xd,0x77,0x8d,
+ 0x7d,0xee,0x9b,0xbf,0xba,0xf9,0xee,0x83,0x4d,0xbf,0x85,0xc4,0xf0,0x93,0xa2,0xb1,
+ 0x6e,0x9b,0xbc,0x47,0xfe,0x6a,0x8e,0x33,0x34,0x26,0xeb,0x9,0xde,0xca,0x37,0x23,
+ 0x4b,0x5d,0x71,0xb7,0x9b,0x57,0x29,0xa8,0x25,0x63,0x70,0xd3,0x15,0xcf,0xa6,0x2,
+ 0xe0,0xfb,0xf1,0x59,0x3a,0x7,0xbf,0x1c,0x7f,0x73,0xf3,0x3d,0xb2,0xc2,0x3c,0xdb,
+ 0xe3,0x37,0x55,0x6d,0x4e,0x43,0xae,0xc6,0xb0,0x77,0xef,0xee,0x25,0x8b,0x52,0xed,
+ 0xed,0x59,0x45,0x35,0x89,0xa2,0x10,0xa2,0x10,0x10,0x30,0x0,0xa4,0x66,0x25,0x6,
+ 0x21,0xaa,0xaa,0xa8,0xaa,0xa2,0xa9,0x9a,0xa6,0x69,0x6,0x23,0x8c,0x29,0x4,0xe0,
+ 0xc2,0x4a,0x5,0x51,0xa2,0xf6,0xd5,0xa5,0x33,0xff,0x7,0xf5,0x42,0x4c,0x1c,0x7,
+ 0xd,0xa1,0x19,0xd5,0x4,0x20,0x2b,0x51,0xb5,0x60,0xa9,0x3a,0x74,0x1d,0x51,0x80,
+ 0xd2,0x4,0xca,0x53,0x13,0xb9,0xe8,0x78,0x5e,0xa3,0xaa,0x99,0x61,0x45,0xc5,0x2f,
+ 0x79,0x44,0xa7,0x51,0x60,0xba,0x93,0x59,0xcd,0x2d,0x19,0x8b,0xe8,0xf4,0x54,0x6b,
+ 0x42,0xf,0x89,0xe6,0x97,0xa,0xf7,0x1c,0x9,0x93,0xe9,0x96,0x72,0xb9,0xfc,0xcb,
+ 0x5f,0xfe,0xf2,0x92,0x4b,0x2e,0x39,0xeb,0xac,0xb3,0x84,0xde,0xdb,0x68,0x8b,0x6a,
+ 0x9c,0xd9,0xca,0xe,0x21,0x79,0x96,0x1b,0xb3,0x2d,0x3f,0x97,0xe,0x3c,0xb9,0xd4,
+ 0xd,0x82,0xa0,0xd1,0xc2,0x6c,0x87,0x3,0xc0,0x4a,0x0,0xbc,0x26,0xb3,0x3c,0xa4,
+ 0x62,0x52,0x57,0x3e,0x8f,0x3c,0x9e,0x84,0x6d,0x59,0xb6,0x9d,0x1e,0x9e,0xb0,0x7b,
+ 0x7a,0x6c,0x7e,0xce,0xc3,0x13,0xf6,0x8a,0xe,0x67,0xd5,0xf2,0xee,0xb,0xce,0xea,
+ 0xe5,0x3f,0x11,0xdc,0x18,0x9,0xd7,0x0,0x27,0xe4,0x93,0x73,0x8d,0x51,0x84,0xfb,
+ 0x89,0x9d,0xb1,0x7b,0x98,0xcd,0x6b,0x82,0x6,0xad,0x32,0x98,0x65,0xc1,0xb4,0x9e,
+ 0xc4,0x89,0xde,0xce,0x5e,0xd4,0x13,0x55,0x36,0x8c,0x43,0x92,0xc3,0xe7,0xad,0x64,
+ 0x77,0x3e,0x96,0xe7,0x1d,0xb2,0x65,0xe3,0x92,0xc5,0x2d,0x14,0xc0,0xe8,0x14,0x39,
+ 0x3a,0xc1,0x7c,0xdf,0xe7,0x31,0x8c,0x32,0xf1,0x78,0x3f,0xcf,0xf6,0x36,0x39,0x3e,
+ 0x1e,0xf2,0x57,0x46,0xc3,0x43,0x55,0x5e,0x8e,0xcb,0x35,0xfd,0xfc,0xf6,0xdb,0x5e,
+ 0x7b,0xe1,0x9a,0x44,0xc2,0x56,0x14,0x55,0xe1,0x9a,0x2d,0x23,0xd5,0x20,0x2a,0xc6,
+ 0xc0,0x8,0x40,0xa1,0x28,0x20,0x2c,0xc,0x2,0x45,0x51,0x54,0x42,0x74,0x55,0x1,
+ 0x8d,0x22,0x42,0xc1,0x7c,0xe6,0x97,0x15,0x35,0x64,0x20,0x51,0x76,0xb9,0xb3,0xe4,
+ 0x2,0x2b,0xbf,0x5b,0x8d,0x22,0x68,0x14,0x61,0x0,0x12,0x82,0x1,0x34,0x2,0x28,
+ 0xc2,0x0,0x61,0xc0,0xcc,0x44,0x98,0xc8,0x1e,0x1b,0xf1,0xc7,0x8f,0x8d,0x74,0xb5,
+ 0x27,0xe8,0x78,0x41,0x33,0x4d,0x97,0x58,0x95,0xc8,0xe8,0x50,0xa7,0x48,0x48,0x7d,
+ 0x35,0xcd,0x2a,0x53,0x61,0x44,0x3b,0x58,0xb9,0x58,0xcc,0xeb,0x66,0xe2,0xae,0x3d,
+ 0x25,0xa8,0xc9,0x3d,0x7b,0xf6,0xbc,0xe9,0x4d,0x6f,0x3a,0xe3,0x8c,0x33,0xc4,0xd4,
+ 0x54,0x88,0x50,0x61,0x8e,0x32,0xc,0x83,0x6f,0x79,0x43,0x36,0x53,0x35,0x6,0x60,
+ 0x3c,0x5f,0x22,0x17,0xf3,0xf7,0xeb,0x42,0x52,0x98,0x3d,0xcf,0x87,0xd9,0xcf,0x77,
+ 0x72,0xa9,0x2b,0xb0,0xa2,0xc3,0x29,0x34,0x59,0x1c,0x7c,0x6,0x73,0xbb,0x70,0xae,
+ 0xff,0xfd,0x6a,0x12,0xb9,0x34,0xf5,0xed,0x15,0xdf,0xa,0x6e,0xfc,0xfc,0xde,0x3d,
+ 0xbc,0x9e,0x8e,0x6c,0x9,0x6b,0x3c,0x7f,0x2c,0x2c,0x81,0xd3,0x3b,0x9f,0xcf,0xcb,
+ 0xab,0x99,0xf1,0x58,0xe,0xf9,0x30,0x99,0x39,0x31,0xde,0x76,0x65,0x82,0xcd,0xab,
+ 0x7a,0x63,0x37,0x23,0x8,0xbc,0xfd,0xc4,0x32,0x2e,0x69,0xc5,0x4e,0xbe,0xc0,0x57,
+ 0x2e,0x97,0xbb,0xf2,0xfc,0xb6,0xcd,0xab,0x14,0xae,0xe3,0xf4,0x76,0x62,0xf3,0x2a,
+ 0xdc,0xb6,0x5d,0x2d,0x16,0xa7,0x32,0x99,0x16,0xf9,0x5a,0x8d,0x3a,0xf3,0xdc,0x8e,
+ 0xf4,0xda,0x23,0x9c,0x5a,0xd8,0xf3,0xe9,0x80,0xf1,0xf1,0xf1,0xdd,0xbb,0x9e,0xfc,
+ 0xa3,0xf7,0xbd,0x5e,0x21,0x2a,0x2f,0x58,0x41,0x0,0x10,0x6,0xc2,0xaa,0x82,0x17,
+ 0xc,0x20,0x88,0x22,0xca,0xa8,0xef,0x79,0x8a,0xa6,0x29,0x44,0x23,0x44,0x65,0x4a,
+ 0x8,0xa,0x2,0x45,0x51,0x82,0xea,0x51,0x8a,0xe6,0x2f,0x7d,0xd,0x99,0x1e,0xb3,
+ 0x47,0x7,0x48,0x47,0x37,0x54,0x15,0x7e,0x0,0xd3,0x4,0x21,0xd0,0x2c,0xd8,0x69,
+ 0xa8,0xfa,0xe4,0x64,0xe9,0xd8,0xf1,0x51,0x77,0xaa,0xbc,0xc8,0x8e,0xd4,0x42,0x8e,
+ 0xaa,0x66,0x5,0xc9,0x80,0xb9,0x36,0x2a,0x6e,0xb9,0x92,0x4c,0x25,0x82,0x72,0xd1,
+ 0xa3,0x96,0xa2,0x6a,0x85,0xa9,0x62,0xc8,0xb4,0x52,0x64,0xef,0x1f,0x1e,0xa9,0x4,
+ 0xe4,0x8a,0x2b,0xae,0x58,0xb1,0x62,0x85,0x6c,0x55,0x6a,0x54,0x92,0x1b,0xed,0xc9,
+ 0xb2,0x37,0xa8,0xd1,0x4c,0xf5,0xdc,0x49,0xcb,0x31,0x5f,0x85,0xb9,0x59,0x34,0x15,
+ 0x50,0x93,0xba,0x2,0x5,0xda,0x13,0x53,0x98,0x79,0x24,0x16,0xf,0x75,0x8a,0x25,
+ 0xc1,0x81,0x17,0xf5,0x4f,0xd4,0xc9,0x4f,0x8e,0x98,0x1c,0x93,0xf1,0x8d,0x9b,0x86,
+ 0xf8,0x4a,0xdc,0x8d,0xd5,0x36,0xa4,0xf4,0x3a,0x27,0x16,0x68,0xc9,0x51,0x28,0x14,
+ 0x0,0x14,0xa,0x85,0x58,0xa,0x21,0x1a,0x92,0xe3,0xa2,0xfa,0xa,0xe6,0x5c,0xbf,
+ 0x15,0xcc,0x6c,0xc4,0xe7,0x6e,0x2c,0xfd,0xeb,0xf,0x7f,0xf9,0x8b,0x7,0xe,0xcd,
+ 0x76,0x40,0x23,0xb8,0x73,0xcb,0x71,0x2a,0xe2,0x66,0x4,0xc4,0xd5,0xe7,0x16,0xa7,
+ 0xc2,0x39,0x34,0xff,0x8b,0x9e,0x26,0xf8,0xc5,0x2f,0x7e,0x91,0x4e,0xd9,0x67,0xac,
+ 0xea,0x5,0x28,0x27,0x29,0x40,0x80,0x8,0xe0,0x2f,0x7e,0x2,0x42,0x40,0xc0,0x14,
+ 0x15,0xa,0x88,0xaa,0x79,0xae,0xe3,0xb8,0x65,0x4a,0x43,0x30,0x0,0xc,0x4,0xd5,
+ 0xe9,0x31,0x0,0x1a,0x46,0x5a,0xa2,0xb2,0xea,0x6a,0x9f,0xb4,0xb2,0x89,0x21,0x38,
+ 0x15,0x66,0x27,0x99,0x95,0x61,0xa9,0xe,0x58,0x69,0x68,0x46,0xae,0x30,0xbd,0x77,
+ 0xcf,0xf0,0xb1,0x23,0xe3,0x49,0x5a,0x2c,0xba,0x74,0xca,0x83,0x91,0x6a,0x8d,0x7c,
+ 0x57,0x53,0x99,0xe2,0x14,0x52,0x16,0xf5,0x82,0x30,0x52,0xad,0x29,0x66,0xb5,0xaa,
+ 0x15,0xd7,0x6a,0xcb,0x66,0xac,0xff,0x7c,0xb4,0x7c,0x64,0x22,0x78,0xeb,0x5b,0xdf,
+ 0xba,0x6a,0xd5,0x2a,0x4d,0xd3,0x38,0xdf,0x4,0x27,0x63,0x8c,0x95,0x3f,0xca,0x26,
+ 0xab,0xa6,0x16,0xa9,0xe7,0x4b,0xe4,0xe2,0x59,0x5b,0x98,0x79,0x48,0x6,0x44,0xe2,
+ 0xae,0x84,0x6c,0x36,0xeb,0xb8,0x4e,0x2b,0xe2,0xf2,0x84,0xab,0xa3,0x8d,0x52,0x77,
+ 0x3c,0xec,0xab,0xd5,0xbd,0x3e,0x39,0x7e,0xf1,0xc0,0x21,0xc0,0xc2,0x2c,0x2b,0xee,
+ 0xa0,0xa1,0x96,0xa2,0x1c,0x11,0x51,0x3b,0xa0,0xae,0xc,0x45,0x63,0xa,0x21,0xea,
+ 0x17,0x3a,0x13,0x8a,0xfd,0xb5,0x9b,0x66,0xbd,0xc9,0x5f,0x3c,0x70,0x88,0xc7,0xa2,
+ 0xdc,0x7c,0xf7,0xc1,0x6c,0xc6,0x14,0x1a,0xfe,0x89,0x52,0x1b,0xd0,0x9c,0x57,0x6a,
+ 0xe5,0x69,0xa0,0x9b,0xab,0xcd,0xf2,0xcd,0x37,0x46,0xad,0xcc,0xde,0x19,0x78,0xd1,
+ 0xc,0xec,0xcf,0x2f,0x82,0x20,0xf8,0xd9,0xcf,0x7e,0xf6,0xc6,0x2b,0x2f,0xd0,0x55,
+ 0x85,0x31,0x80,0x30,0x44,0x84,0x28,0x0,0x51,0xc0,0x8,0x8,0x5,0x18,0x61,0xc,
+ 0x50,0x18,0x8b,0x8,0x83,0xa9,0x6b,0x4,0xaa,0xef,0x87,0x61,0x44,0x69,0x8,0x5d,
+ 0xa5,0xa0,0xe,0x8,0x65,0x81,0x47,0xa0,0x46,0x44,0x9,0x7d,0x3f,0x52,0x92,0xd1,
+ 0xaa,0x37,0x66,0xe,0xde,0x6c,0xb9,0x65,0xc2,0x28,0x4b,0x84,0x8,0x2d,0x66,0x5a,
+ 0xc5,0x92,0xff,0xd8,0x23,0x87,0x87,0xf3,0x74,0x75,0xbb,0xa2,0x69,0x5a,0xae,0x50,
+ 0xe9,0xe8,0xea,0xc,0x2,0x9f,0x6a,0x76,0x34,0x75,0x82,0x41,0x4b,0x99,0xfa,0xd4,
+ 0xa4,0x57,0xd6,0x5b,0xad,0x60,0x6a,0x4a,0xd1,0x53,0x2c,0xf7,0xed,0x1d,0xe6,0x8f,
+ 0x76,0xd2,0xeb,0xde,0xf3,0xfb,0x5d,0x5d,0x5d,0x0,0x84,0xcc,0x94,0x27,0xb1,0x7a,
+ 0x33,0x8,0xb,0xb3,0x1c,0x7d,0xd1,0x68,0x58,0x7e,0xb1,0xa5,0x6e,0xf3,0x2f,0xac,
+ 0x9e,0xd8,0x8e,0x15,0x9d,0x6e,0x2e,0x97,0xe3,0xa9,0x30,0x8d,0x96,0x98,0xa6,0xd3,
+ 0x66,0x81,0x27,0xe,0xd2,0x1f,0xde,0xfc,0xe8,0xf1,0xf1,0x59,0x73,0x6e,0x7f,0xf1,
+ 0xc0,0xa1,0xc7,0xf,0x54,0x50,0x73,0x3e,0x71,0xbf,0x48,0xe3,0x61,0x42,0xc6,0xe6,
+ 0xf3,0x39,0x1e,0xd8,0xe4,0xba,0x8e,0xeb,0x3a,0x3c,0x52,0x82,0x7,0x4b,0x88,0xb0,
+ 0x27,0x21,0x8a,0xe5,0xc,0x7e,0x48,0xaf,0x0,0xfe,0x73,0x1e,0x34,0x32,0x1b,0x64,
+ 0xbb,0xda,0x9d,0x8f,0xe5,0xc5,0x23,0xc,0xd,0xf,0xf1,0xc6,0xe3,0x87,0xe2,0xff,
+ 0x2d,0x47,0xeb,0xe7,0x86,0xab,0x98,0xe0,0x95,0x4b,0x31,0xcb,0xbd,0xd4,0x94,0xa5,
+ 0x22,0x4e,0x43,0xfe,0xed,0x69,0xe8,0xbf,0x8d,0xe1,0xd0,0xa1,0x43,0xc7,0x8f,0x1f,
+ 0xfb,0xad,0x6b,0xb6,0x82,0x28,0x84,0x28,0x50,0xf8,0x5a,0xef,0x3c,0x55,0x88,0x10,
+ 0x28,0x84,0x13,0x9a,0x46,0x60,0x0,0x23,0x8c,0x52,0x85,0x31,0x95,0xb9,0xa0,0xa1,
+ 0x42,0x28,0xa8,0x47,0x58,0xc8,0x28,0x28,0xb4,0x20,0x64,0x5e,0xd9,0xd,0x7d,0x3f,
+ 0xf4,0x2,0x47,0x6d,0xc9,0xf7,0xbe,0x3e,0x9a,0x2e,0x21,0xf4,0x49,0xba,0x3,0x76,
+ 0xba,0xe2,0xb2,0x3,0xfb,0x47,0x86,0x8a,0x6a,0x4f,0x77,0xb6,0xc5,0x8,0x83,0x20,
+ 0xc8,0xb4,0x66,0x40,0x69,0x64,0xb7,0x30,0xa7,0x68,0x4,0x65,0x9d,0xb0,0xe2,0x74,
+ 0x18,0x52,0xa2,0x79,0x53,0x89,0x74,0xca,0xf,0xa3,0x7f,0xf8,0x4d,0xf8,0x2f,0xf,
+ 0x7,0x97,0x5d,0x71,0xd5,0xe2,0xc5,0x8b,0xb9,0x13,0xa8,0x51,0xde,0xca,0x73,0x5a,
+ 0x59,0x79,0x6e,0xb4,0x4e,0x29,0xd,0x39,0x6,0xcf,0x17,0x6f,0xf1,0xac,0xe7,0xba,
+ 0xd5,0x91,0xe4,0xe,0x1,0x80,0xd5,0x3,0x77,0x88,0x6f,0xb3,0x19,0x13,0xa8,0x38,
+ 0xae,0x63,0x7b,0x76,0x93,0xa4,0xfc,0xda,0x5b,0xa0,0x69,0x74,0x6e,0x54,0x19,0x3e,
+ 0x3c,0x61,0xdf,0xff,0xcd,0x5f,0xf5,0xf4,0x74,0xf3,0x9a,0x1b,0x8e,0xd6,0xdf,0x93,
+ 0x38,0x31,0x1e,0xf6,0x75,0x6a,0x83,0x7b,0x86,0x12,0x8e,0x6b,0xf5,0x74,0xb7,0xc5,
+ 0x12,0x80,0xb9,0xd8,0x94,0xa3,0x85,0x85,0x9c,0x14,0xcb,0x79,0x3,0xd8,0x76,0xa6,
+ 0x5e,0xb5,0xf1,0x58,0x3d,0xc7,0x8f,0xd,0xee,0x3c,0x66,0x16,0x8b,0x53,0x22,0xfb,
+ 0xbf,0x50,0x28,0x8,0xe7,0xaa,0xac,0x69,0xf3,0xf3,0x94,0x4a,0xd3,0xbd,0x3c,0x15,
+ 0x59,0x7a,0x52,0xf1,0xf1,0xd1,0xa7,0x8e,0xf3,0xe3,0x45,0x24,0xd9,0x77,0x7f,0xb6,
+ 0xef,0x7d,0xff,0xeb,0xea,0x45,0xe6,0x90,0x78,0xb4,0x5c,0x2e,0xf7,0xe8,0x53,0xec,
+ 0x82,0xb,0xb6,0x88,0x1f,0x7a,0xde,0x41,0x1e,0x11,0x15,0x13,0xbc,0x68,0x98,0xa2,
+ 0x73,0x78,0x9e,0xf,0xe8,0xfc,0x8a,0x4d,0x8d,0x55,0x2f,0x23,0x3c,0xfe,0xf8,0xe3,
+ 0x1b,0xd7,0xf5,0xf4,0xf6,0x2e,0x26,0x8a,0x4a,0x54,0x83,0x70,0x65,0xb2,0xaa,0x33,
+ 0x33,0x30,0x5,0x2c,0x62,0x0,0x3,0x5,0x3,0xa3,0x21,0x63,0x11,0xd,0x1d,0x46,
+ 0x5d,0x44,0x84,0x30,0x80,0x4,0x0,0xa5,0x61,0x18,0xd1,0xd0,0xf7,0x83,0xc0,0xa7,
+ 0x84,0x82,0x22,0x8c,0x7c,0xe6,0x92,0x4e,0x7f,0xd9,0xdb,0xfb,0x9f,0xf9,0x37,0x74,
+ 0x2c,0xb,0x34,0xeb,0x89,0x47,0x8e,0x24,0x5a,0xb3,0x4b,0x96,0xa4,0xdb,0xd8,0x84,
+ 0x4a,0x48,0xae,0x18,0x76,0xf6,0xa5,0x35,0xbf,0x82,0x72,0xce,0x8,0xa6,0x3,0x20,
+ 0x69,0x5b,0xbb,0x8f,0x14,0x5a,0x5b,0x12,0xba,0x95,0x50,0x40,0xbe,0xf3,0x70,0xf9,
+ 0x27,0xbb,0x95,0xb7,0xbd,0xe3,0x1d,0xc9,0x64,0x12,0x52,0x5e,0x81,0x6c,0x97,0x92,
+ 0xad,0xca,0x1c,0x22,0xc,0xa3,0xd1,0x7f,0x2b,0x9b,0xa6,0x9e,0xbb,0x49,0x39,0x86,
+ 0x53,0x48,0xfa,0xab,0x11,0x43,0xa,0x84,0xb0,0x7a,0x80,0x43,0xf2,0x68,0x1e,0xf,
+ 0xfb,0x9a,0x66,0xe1,0xcb,0x90,0x3,0xb3,0x66,0xce,0xe3,0xe,0x1d,0xce,0xb7,0x3,
+ 0x79,0x4e,0x0,0x2e,0x5d,0x81,0xbd,0x7b,0x0,0x80,0x1b,0x69,0x1d,0xdb,0xb2,0x65,
+ 0xde,0xca,0x5,0xae,0x64,0xde,0x2,0xd8,0xb8,0xb2,0x65,0x91,0x39,0x74,0xe3,0xbd,
+ 0x55,0xc7,0xcc,0x59,0xab,0x5b,0x7b,0x97,0x2e,0x15,0xf7,0xd9,0xdb,0xa9,0xf5,0x2e,
+ 0xed,0x7a,0x62,0xf7,0xb1,0x67,0x86,0xaa,0x1,0x4f,0xa2,0x4,0x87,0xb8,0x23,0x21,
+ 0x6,0x8b,0xc5,0x29,0xd3,0x34,0x66,0xe8,0xa,0xd4,0xb1,0xb7,0x26,0x51,0x5,0x6f,
+ 0x1,0x64,0xb3,0xd9,0x81,0x3,0x8f,0xf8,0x4b,0xba,0xb2,0xd9,0xac,0x98,0xf9,0x8f,
+ 0x87,0x7d,0x33,0x3f,0x74,0x87,0x5a,0xd5,0xe1,0x1c,0x2c,0x1e,0x55,0xc2,0x6b,0x29,
+ 0xbb,0xf5,0x15,0x98,0x9b,0xab,0xca,0xf5,0x97,0x6,0x10,0x63,0xfe,0x8b,0x99,0xfc,
+ 0xf8,0xec,0xe0,0xba,0xee,0xce,0x9d,0x3b,0xaf,0x79,0xfd,0x16,0x42,0x54,0x55,0xb5,
+ 0x14,0x45,0x55,0x14,0x15,0x0,0x18,0x9f,0xba,0x32,0x0,0x94,0x31,0xc6,0x42,0x30,
+ 0x4a,0x19,0x18,0xd,0xa3,0xd0,0x8b,0x68,0x40,0xa3,0x50,0x61,0x11,0x0,0x30,0xf0,
+ 0x15,0x41,0x2,0x3f,0xa,0xbd,0x30,0xa,0x29,0x0,0x16,0xb1,0x30,0x62,0x34,0xa2,
+ 0x45,0x92,0x9d,0x4c,0xad,0xb1,0x26,0x73,0x4f,0x8f,0x30,0x96,0x48,0x57,0xbc,0x70,
+ 0xb1,0x19,0x84,0xe5,0xb0,0xe4,0x78,0xd9,0xa4,0x46,0x9d,0x92,0x9e,0xce,0xb0,0xe3,
+ 0x7b,0x74,0x25,0x52,0xac,0xc4,0x44,0x99,0x66,0x52,0x9a,0xa6,0x40,0xd5,0xf5,0xaf,
+ 0xdd,0x33,0x71,0xd7,0x60,0xe6,0xb7,0x7f,0xe7,0x8d,0xc9,0x64,0x52,0xa9,0xa5,0xda,
+ 0x36,0xd5,0x93,0x63,0x96,0x64,0xd9,0x34,0x25,0xbb,0x82,0xe4,0xcc,0x84,0xe7,0x57,
+ 0xde,0x72,0xcc,0x37,0x10,0x52,0xb4,0x2d,0xcb,0x96,0xe3,0xfb,0x3a,0xbb,0x96,0xcf,
+ 0xc8,0x22,0xa0,0x53,0x7b,0x4,0xb3,0x2f,0x66,0xc5,0x21,0xe7,0xc4,0x54,0x25,0xb3,
+ 0x3b,0x4,0xab,0xa7,0x55,0xbd,0xaf,0xf1,0x60,0x6e,0x91,0x42,0x6d,0x11,0x77,0x7e,
+ 0x7c,0x5b,0x5b,0x3b,0xea,0xab,0x6d,0xc8,0xf2,0xf6,0xf2,0x33,0xa7,0x1,0xc0,0xea,
+ 0xc9,0xe5,0x1e,0xe5,0x67,0x88,0x9b,0x97,0xac,0x1e,0xb8,0x43,0x9b,0x57,0x29,0x4f,
+ 0x3d,0xe3,0x0,0x10,0x19,0xfc,0xf5,0x59,0x3e,0xd5,0xf7,0x94,0xe7,0xf9,0xab,0x7b,
+ 0xcc,0x19,0xce,0xf0,0x39,0x82,0x44,0xa1,0x5d,0xbb,0x76,0xb,0xde,0xf2,0xbb,0x75,
+ 0x5c,0x67,0xcf,0x50,0x62,0x3c,0x34,0xf9,0x1e,0xce,0xde,0x4e,0x6d,0x10,0xe8,0x15,
+ 0x37,0x70,0xa2,0x94,0x13,0x99,0xba,0x90,0x72,0x6e,0xe5,0x44,0x2,0x71,0x33,0xbc,
+ 0xc3,0x3d,0xa5,0x13,0x56,0x82,0x5f,0x3a,0x9b,0xad,0xa6,0x39,0x88,0xd7,0xa8,0xeb,
+ 0xba,0x6d,0x6d,0x33,0x8b,0xb0,0x9d,0xb6,0xc8,0xe7,0xf3,0xc3,0xc7,0xf,0x9f,0xff,
+ 0x7f,0x2e,0x21,0xaa,0xa6,0xa8,0x3a,0x81,0x6,0xa6,0x82,0x80,0xbb,0x71,0xc1,0x18,
+ 0x65,0x11,0xa3,0x21,0x8,0xa5,0x51,0x44,0x59,0x44,0x69,0x40,0x43,0x37,0xa,0x3,
+ 0xbe,0x8a,0x0,0x65,0x14,0x94,0x45,0x61,0x14,0xf8,0x61,0xe8,0x87,0x61,0x48,0xc1,
+ 0x18,0x3,0x8b,0xf8,0x2,0x7a,0x51,0x14,0x84,0xd1,0x89,0xc4,0x26,0x65,0xe8,0x31,
+ 0x4,0x51,0x7b,0x3a,0x9d,0x1f,0x19,0x9,0x53,0x2d,0x1d,0x9,0x56,0xf2,0x3,0x8b,
+ 0x3a,0x4a,0xeb,0x2a,0xad,0x74,0xdc,0xd,0xbc,0xbc,0xd9,0x92,0x30,0xed,0xd2,0x74,
+ 0x29,0x93,0x4c,0x39,0x4c,0xfb,0xec,0xcd,0xc3,0x4f,0x4d,0xb6,0xbc,0xee,0x8a,0xd7,
+ 0xb7,0xb4,0xb4,0x28,0xf5,0x49,0x7c,0x42,0xa8,0xc6,0x78,0xcb,0xbd,0x41,0x72,0x9a,
+ 0x41,0x2c,0xf4,0x42,0x7d,0x9e,0x2a,0xc8,0xcd,0x86,0xf9,0x9e,0x51,0x36,0x9f,0x54,
+ 0xa7,0x58,0x56,0xf,0xdc,0xa1,0xc5,0x2d,0x54,0x1e,0xc7,0x3c,0xa9,0x65,0xb6,0xc5,
+ 0xac,0xd0,0x2c,0x8b,0x45,0x24,0xdf,0x76,0x76,0x2d,0x97,0xf7,0x67,0xb3,0xd9,0x9e,
+ 0xee,0x1e,0x2e,0x69,0x5b,0xdb,0x5a,0xd2,0xe9,0x54,0x26,0xd3,0x62,0x59,0xb6,0xe0,
+ 0x6d,0xe3,0xc9,0xb9,0x7e,0x3b,0xe6,0xf5,0x88,0xfb,0xb1,0x2d,0xfb,0x1d,0x97,0xda,
+ 0x8d,0x73,0x72,0x58,0x3d,0xb0,0x7a,0xce,0x5a,0xdd,0x1a,0x9b,0x70,0x42,0xb2,0x6c,
+ 0x55,0x2b,0x63,0x55,0x9c,0xd6,0xb6,0x7a,0x53,0x9c,0x44,0xe3,0x27,0xe,0xce,0xb8,
+ 0xc2,0xc4,0x5b,0x86,0x3b,0x72,0xc7,0x46,0xc7,0xc5,0x7e,0x0,0x6a,0xa2,0xbb,0x8e,
+ 0xfc,0xb1,0xce,0xac,0xa1,0xc5,0x28,0xc5,0xc,0xce,0xc2,0x64,0x60,0xd2,0x71,0x71,
+ 0x69,0xd3,0x34,0x44,0xa1,0xc,0xe9,0xf1,0xe7,0xb5,0xee,0xf1,0x4b,0x8b,0x81,0x81,
+ 0x81,0x84,0xc5,0x3a,0x3b,0x5a,0x8,0x51,0x88,0xa2,0x12,0x55,0xe5,0x1e,0x1e,0x54,
+ 0x17,0xf5,0xa0,0x2c,0xf2,0x19,0x8b,0x68,0x14,0x31,0x16,0xd1,0xd0,0xa3,0x81,0x13,
+ 0x85,0x3e,0xa3,0x21,0x58,0xc4,0x18,0x65,0x11,0x8d,0xc2,0xd0,0xf,0x83,0x20,0x8,
+ 0x23,0x1a,0xd1,0x88,0xd2,0x90,0x82,0x52,0x2,0x16,0x45,0x2c,0x8,0x29,0xd,0x82,
+ 0xb2,0x92,0x3e,0x56,0xb1,0xc,0x16,0xe0,0xd8,0x8e,0x8c,0xc5,0x8a,0x4e,0x40,0x43,
+ 0xdf,0x24,0x74,0x4a,0xeb,0x4c,0x87,0x93,0x5a,0x79,0x3c,0x47,0xda,0xcc,0xb6,0xce,
+ 0x52,0xb1,0x6c,0x6b,0x81,0x92,0x6a,0xfd,0xf4,0xad,0xb9,0xa7,0xf2,0x6d,0x6f,0x7e,
+ 0xeb,0xdb,0xda,0xdb,0xdb,0x85,0x8a,0x2b,0x42,0x2f,0x74,0x29,0xb6,0x51,0x70,0x55,
+ 0x10,0x58,0x1c,0xa0,0x4a,0x99,0xf4,0xb2,0x61,0x99,0xe3,0x85,0xe8,0xc9,0xf9,0x9e,
+ 0x54,0x1e,0x16,0x33,0x13,0x5d,0x3e,0xa,0xe5,0x6d,0xfc,0x57,0x4d,0xec,0xab,0x72,
+ 0x6d,0xe7,0xea,0x2e,0xab,0x7,0x35,0xd7,0x4b,0xb6,0x86,0xea,0x31,0xf5,0x1a,0xb2,
+ 0x88,0xf8,0x6d,0x2c,0x70,0x25,0xf4,0xdb,0xd2,0x74,0x45,0xdc,0xdb,0x7b,0xde,0x90,
+ 0xad,0x93,0x93,0xe2,0x3e,0xdd,0x21,0x0,0x8b,0x5b,0x28,0x2f,0x1c,0xcd,0xc3,0x9b,
+ 0x62,0xec,0x75,0x5d,0x87,0xbf,0x56,0x56,0xf6,0x24,0x9a,0x3c,0xa9,0xd5,0x3,0x60,
+ 0x7c,0xe4,0x8,0x17,0xb9,0xf2,0xd,0xf3,0x2d,0xaf,0x7a,0x2b,0x14,0x10,0x1e,0x8f,
+ 0x21,0xae,0xde,0xf4,0xed,0xd6,0x62,0x94,0x56,0xf6,0x24,0x7a,0xb3,0xb2,0x6b,0xba,
+ 0x22,0xf4,0xe1,0xd1,0x29,0x45,0x5c,0x7a,0x59,0x7,0x41,0x6d,0xb9,0x89,0xf9,0x94,
+ 0x1c,0x3a,0x7d,0x70,0xcb,0x2d,0x3f,0x3b,0xf7,0xac,0x55,0xe9,0x54,0x82,0x10,0xd,
+ 0x50,0x18,0x2f,0x83,0xcc,0x73,0xf6,0x68,0x10,0x6,0x2e,0xa5,0x1,0x45,0x44,0x19,
+ 0x8d,0x22,0x3f,0xa2,0x41,0x14,0xf9,0x34,0xf2,0x29,0x8d,0xa2,0x88,0x46,0x21,0xd,
+ 0xc3,0x30,0x8,0x22,0x1a,0x50,0x1a,0x86,0x51,0x40,0x9,0x17,0xb5,0x21,0x8d,0x82,
+ 0x80,0x85,0x61,0x14,0x84,0x1,0x65,0x94,0x68,0x15,0xa5,0xa5,0x60,0x76,0x8d,0x17,
+ 0x2a,0x25,0x5f,0xeb,0x4e,0x86,0xd3,0x4e,0x60,0x1a,0x7a,0xfb,0xe2,0x45,0xd3,0xd3,
+ 0xe5,0x49,0xd6,0x62,0xa4,0xd2,0x49,0xf8,0x34,0x70,0xa9,0x6a,0x7d,0xea,0xff,0x1e,
+ 0x1f,0xf4,0x16,0xbd,0xf1,0x8d,0x6f,0x32,0xc,0x43,0x30,0x2d,0xa6,0x1e,0x5b,0x96,
+ 0x65,0x9a,0xa6,0x50,0x8f,0x45,0xc,0x86,0xaa,0xaa,0x82,0xcc,0x82,0xc0,0x8d,0xd3,
+ 0xdd,0x17,0xa8,0x27,0x15,0x61,0x90,0x9c,0xa3,0x11,0xc3,0x8c,0xd4,0x15,0x90,0x66,
+ 0x5f,0x73,0x43,0xf6,0x58,0xc6,0x89,0x6d,0xf5,0xf4,0x74,0xcf,0xb8,0x85,0x1b,0x67,
+ 0xb6,0xa8,0x29,0xc9,0x8d,0xa4,0x15,0xa6,0x60,0xcf,0xf3,0xb,0xf9,0x49,0x7e,0x6f,
+ 0xbf,0x73,0xcd,0x5,0x75,0x26,0xa5,0xfa,0x6b,0x1,0xe8,0x5d,0xda,0x7,0x80,0xe7,
+ 0xf,0x72,0xa5,0x54,0x64,0xdb,0x72,0x13,0x17,0x44,0xf6,0xa2,0xfc,0x80,0xb3,0x3c,
+ 0xac,0xb8,0x61,0xfe,0x37,0xf3,0xdb,0x86,0x8,0xb3,0x31,0x2f,0xee,0xfd,0x9e,0x3,
+ 0x4d,0x99,0x59,0x7d,0x11,0x48,0xae,0x5d,0x59,0x50,0x8b,0x48,0x4f,0xf9,0xe3,0xe9,
+ 0xd0,0xa8,0x54,0x2a,0xf,0x3e,0x70,0xcf,0xe6,0x73,0xce,0x20,0x84,0x30,0x16,0x30,
+ 0x16,0x32,0x16,0x51,0xea,0x47,0x91,0x17,0x6,0xd3,0xa1,0x57,0x8e,0xc2,0x80,0xd2,
+ 0x10,0x94,0x81,0x51,0x86,0x88,0x46,0x3e,0x8d,0x2,0x4a,0x23,0x16,0x85,0x51,0x18,
+ 0x55,0xd7,0x9a,0xf6,0x3,0x1a,0x52,0x42,0x1,0x4a,0x23,0x4a,0x59,0x44,0x83,0x30,
+ 0x72,0x9d,0xa0,0x52,0x9,0xfc,0x20,0xa2,0x21,0xf5,0x82,0x88,0xa9,0xf6,0x48,0xae,
+ 0x44,0xf4,0x84,0x4e,0xc2,0x4a,0xa8,0x2e,0x46,0xe,0x56,0x52,0x77,0x27,0x27,0xd1,
+ 0x56,0xf2,0xc8,0x62,0xd3,0xa3,0x53,0x63,0x53,0xa1,0xf9,0xf1,0xff,0x1e,0x3e,0xec,
+ 0x75,0xbf,0xf6,0xb5,0xaf,0xb5,0x6d,0x9b,0x10,0xc2,0x4b,0x4f,0x69,0xb5,0xd5,0x7d,
+ 0x84,0x9f,0x96,0x37,0x38,0x7b,0x35,0x4d,0x33,0x4d,0x93,0x2f,0x26,0x64,0x9a,0xa6,
+ 0x56,0x2b,0xda,0xaa,0xaa,0x2a,0xff,0xb9,0xa2,0x28,0xbc,0x66,0xba,0xa2,0x28,0x8d,
+ 0x95,0xcc,0xe6,0xd9,0x88,0xb5,0x9b,0x1e,0xa3,0xe8,0xd,0x75,0xc,0x1b,0x1b,0x32,
+ 0xea,0xcc,0x54,0xb5,0xd1,0xdf,0x54,0xe4,0xc6,0xc0,0x27,0xcc,0x6a,0x6d,0xdd,0x6d,
+ 0xe,0x5e,0xd8,0xf9,0xd0,0x50,0x95,0xc3,0xaf,0x3f,0x2f,0x13,0x1b,0xe5,0x8d,0x75,
+ 0x36,0x1a,0xee,0x67,0xc6,0x73,0xcb,0xd7,0x34,0x7b,0x66,0xa8,0xea,0xc8,0x59,0xc4,
+ 0x5d,0xcb,0xe2,0xde,0x9a,0x51,0x6e,0x45,0xa7,0xb,0x40,0xa8,0xcd,0x7c,0xa7,0x6d,
+ 0x27,0xd6,0xf6,0x65,0xf8,0xfe,0x6a,0x1d,0x2c,0xf9,0x1,0xe7,0xf1,0xb0,0xa8,0x77,
+ 0xe7,0xe4,0x72,0x39,0x5e,0xe7,0x8d,0x63,0xe0,0xc0,0x23,0x4d,0xc3,0x45,0x47,0x8b,
+ 0xfa,0xa1,0xa1,0xca,0xf1,0xdc,0x8c,0x51,0x50,0xac,0x6f,0xc,0x60,0xa4,0x38,0x13,
+ 0x46,0x6a,0x64,0xfa,0x44,0xbb,0xb6,0x44,0x5b,0xd5,0x3c,0x2e,0x62,0x4b,0xf4,0xfa,
+ 0x3c,0x84,0xd3,0xa1,0x71,0xff,0xfd,0xf7,0xd3,0x28,0xd8,0x74,0xf6,0x6a,0x80,0x32,
+ 0x4a,0x69,0xe0,0xd2,0xd0,0xa3,0x41,0x25,0xa,0x2a,0x51,0xe0,0xd1,0xc8,0xe7,0x11,
+ 0x1a,0x8c,0x81,0x45,0x11,0x8b,0x7c,0xc6,0x57,0xa3,0xd,0xc3,0x30,0xa4,0x41,0x10,
+ 0x44,0x61,0x18,0x7a,0x11,0x61,0x8c,0x21,0xa,0x81,0x8,0x8c,0x5,0x34,0x8,0x98,
+ 0x5b,0xf6,0x3c,0xc7,0xb,0xc3,0x88,0x46,0x34,0x8,0x23,0x16,0x31,0xd3,0x4e,0x97,
+ 0xb,0x65,0xd3,0x4a,0xc0,0xcc,0x28,0x95,0x3c,0xb1,0x5b,0xa0,0x59,0x7b,0xc7,0x95,
+ 0x96,0x70,0xa2,0x55,0x29,0x19,0xb4,0x52,0x8,0x95,0xeb,0x7f,0x3a,0x5a,0x6e,0x39,
+ 0xeb,0xf2,0xcb,0x2f,0xcf,0x64,0x32,0x9c,0xb7,0x7a,0x2d,0x7a,0x9c,0xb3,0x54,0x51,
+ 0x14,0xcb,0xb2,0x74,0x5d,0x27,0x84,0xd8,0xb6,0xcd,0xf9,0x69,0x59,0x96,0x88,0xe1,
+ 0xe3,0x24,0xb7,0x2c,0x4b,0x55,0x55,0x5e,0xe7,0x91,0x10,0x22,0x56,0x9,0xb,0xc3,
+ 0x90,0xff,0xf6,0x59,0x74,0x94,0xcc,0xc1,0xd8,0x47,0xd1,0x50,0xe6,0x73,0x3a,0x19,
+ 0x96,0x65,0xc7,0xa6,0x67,0x32,0xe4,0x1,0xca,0x21,0x5c,0x8e,0xb1,0x68,0x7,0x48,
+ 0xa,0x73,0x21,0x3f,0xc9,0x1b,0xbd,0x4b,0xfb,0xf8,0x98,0x96,0xd,0x5d,0x73,0x28,
+ 0x84,0xb2,0x7e,0x5b,0x2c,0x4e,0x79,0x9e,0xef,0xb8,0xb3,0x66,0x2,0xde,0x78,0xaf,
+ 0xf3,0xe8,0xa3,0x8f,0xc4,0x76,0xae,0x5e,0x77,0x5e,0x2e,0x97,0xe3,0xea,0x2b,0x57,
+ 0x9b,0x5d,0xd7,0x59,0x9c,0x9,0x56,0xf6,0x24,0xf8,0x63,0x76,0x65,0xe6,0x72,0x93,
+ 0x8a,0xd0,0x14,0xe,0x71,0x69,0x3e,0x2f,0xaa,0x3e,0xa6,0x65,0x83,0x6b,0xdd,0x35,
+ 0x88,0x82,0xe9,0x5c,0x4a,0x8b,0xfd,0x96,0x65,0x4d,0xf9,0x69,0xd1,0x46,0xed,0x95,
+ 0xd4,0xe8,0x66,0x5b,0xd4,0x2,0x6e,0xf,0x13,0x4b,0xb4,0xc5,0x66,0xc8,0xf3,0x79,
+ 0x23,0xbf,0xc8,0xd,0xdf,0xf7,0x6f,0xba,0xe9,0xa6,0x2b,0x5f,0x77,0x7e,0x3a,0x65,
+ 0x73,0xaf,0x4f,0x44,0xfd,0x28,0xc,0xa2,0x28,0x88,0x42,0x3f,0xa,0x3,0x2e,0x60,
+ 0x29,0xd,0x69,0xe8,0xd3,0xc8,0x8f,0xc2,0x90,0xd2,0x90,0x86,0x11,0xa5,0x2c,0xc,
+ 0xc3,0xc8,0x8b,0x2,0x2f,0x8,0xa3,0xd0,0xf3,0x83,0x30,0x8,0xa9,0x1f,0x86,0x4e,
+ 0xe8,0xfa,0x7e,0xc5,0x73,0xfc,0x30,0xc,0x29,0x89,0x68,0x44,0x59,0xc4,0xc0,0x8,
+ 0x21,0xba,0x61,0x66,0x52,0x6,0x5,0x19,0x9d,0x98,0xea,0x30,0xdc,0x3,0xde,0x22,
+ 0x5f,0xb5,0x17,0xa7,0x95,0xf2,0xd8,0x70,0x8b,0x89,0x83,0x93,0xe4,0xfd,0x3f,0x9a,
+ 0x42,0xc7,0xfa,0x8b,0xb6,0x6d,0xe3,0x35,0x56,0xb9,0xea,0xb,0x40,0xd3,0x34,0xcb,
+ 0xb2,0xb8,0xb0,0x35,0x4d,0x53,0x55,0x55,0xd3,0x34,0x13,0x89,0x4,0x21,0x84,0x6b,
+ 0xce,0xdc,0x82,0xc5,0xc5,0xf,0x97,0xc0,0x5c,0xea,0x5a,0x96,0xc5,0x85,0xad,0x69,
+ 0x9a,0x51,0x14,0xf1,0xe3,0xc3,0x5a,0x31,0xf3,0x53,0xed,0x31,0x99,0x83,0xb1,0x8f,
+ 0xa2,0xf1,0x5c,0xa5,0x6e,0xc,0x26,0xad,0xda,0x66,0xc4,0x90,0x8a,0x15,0x6d,0x69,
+ 0xea,0xba,0x10,0x72,0x12,0xc0,0x3b,0xae,0x5a,0x5,0xc9,0xd0,0x25,0xf4,0x58,0x48,
+ 0x44,0x8d,0x81,0x27,0xf4,0x78,0x9e,0xef,0x54,0x9c,0xbe,0xbe,0x65,0x6f,0x79,0xed,
+ 0xb2,0xa6,0xf7,0x76,0xf0,0xe0,0x41,0x5e,0x67,0x43,0x46,0x3a,0x95,0x10,0x37,0x2c,
+ 0xd4,0xe6,0x81,0xd1,0x40,0x28,0x2,0x73,0x43,0x4,0x84,0x72,0x7e,0x8a,0x97,0xda,
+ 0xda,0xbe,0x8c,0xe0,0xbc,0x5c,0x2,0xae,0x7a,0x70,0xbd,0x79,0xa9,0xe9,0x6a,0x7d,
+ 0xa8,0xe6,0x4b,0x56,0x6f,0xcf,0x34,0xd,0x61,0xf7,0xe2,0x38,0x6b,0x75,0xab,0x68,
+ 0x37,0xad,0x16,0xf2,0x92,0xcb,0xd8,0x58,0x63,0x7c,0x7c,0xfc,0xc9,0x27,0x9f,0x7c,
+ 0xfb,0x5b,0x2e,0xe1,0x37,0xc9,0x58,0x44,0xc3,0x20,0xa,0x9d,0x30,0x70,0xc3,0xd0,
+ 0xa5,0xd4,0x67,0x94,0xb2,0x28,0xa0,0x34,0x88,0xa8,0x1b,0x85,0x2e,0x8b,0x2,0x16,
+ 0x6,0x34,0x8,0x43,0x3f,0xa4,0x7e,0x18,0x6,0x21,0xd,0xa3,0x28,0x62,0x94,0x22,
+ 0xc,0x68,0x10,0x84,0x7e,0x14,0xf8,0x5e,0x10,0x7a,0x51,0x14,0x32,0xc6,0xb3,0x5,
+ 0x19,0x14,0x28,0xa0,0x54,0xd3,0x95,0x24,0x73,0x1c,0x3f,0x4a,0x6b,0x61,0x5e,0x6d,
+ 0x5b,0x92,0x62,0x88,0xc2,0xf2,0xf0,0xe1,0x8e,0xb4,0xf1,0xe4,0x9,0xfc,0xe1,0xd,
+ 0xc3,0xe6,0xe2,0xd,0x17,0x5d,0x74,0x91,0x5e,0xab,0x93,0xcc,0xad,0xc1,0x42,0xd8,
+ 0xda,0xb6,0xcd,0x77,0xda,0xb6,0xcd,0xe7,0xc0,0x89,0x44,0x82,0x37,0xf8,0x57,0xfc,
+ 0xbf,0x43,0x8,0xe1,0xe5,0x94,0x15,0x45,0xe1,0xc2,0x96,0x37,0x9e,0xb5,0xb0,0xc5,
+ 0xb,0x2d,0x75,0x9b,0x8e,0x33,0xe,0x21,0x75,0xc5,0xe8,0x9c,0x23,0x94,0xcf,0xaa,
+ 0xad,0x63,0x4,0x40,0xa6,0xca,0x96,0x8d,0x4b,0x50,0x5b,0x79,0x8c,0x93,0x41,0xac,
+ 0xa3,0xd5,0x48,0xda,0x7c,0x7e,0x92,0x4f,0x71,0x9d,0x8a,0xb3,0x68,0x71,0xe7,0xb5,
+ 0x17,0x76,0x35,0xbf,0x18,0xc0,0x63,0x15,0xc7,0xea,0x6b,0x39,0x2f,0x6a,0x89,0x1f,
+ 0xe6,0xfb,0x7e,0xb1,0x38,0xf5,0xd4,0x33,0x13,0x98,0xd3,0x54,0xce,0x21,0xa4,0xae,
+ 0x38,0x92,0x67,0xf6,0xad,0xec,0x49,0x78,0x6a,0x97,0x53,0x71,0xf8,0xfe,0xd8,0xcc,
+ 0x96,0x7f,0x94,0x35,0x8b,0x98,0x8f,0x5a,0xcc,0xe7,0x6b,0xdb,0xaa,0xe9,0x4b,0xbe,
+ 0xf9,0xa5,0xb5,0x35,0x79,0x1a,0x23,0x99,0xe5,0xc,0xa4,0x97,0x5c,0xd8,0x8a,0xc6,
+ 0xe3,0x8f,0x3f,0x9e,0xb0,0x75,0x4a,0x8d,0xe1,0x91,0x42,0x18,0x46,0x60,0x8c,0xb1,
+ 0x80,0x46,0x6e,0x14,0xb8,0x34,0xf2,0x69,0x14,0x52,0xea,0xd3,0xc8,0xa5,0x81,0xc3,
+ 0x95,0xe7,0x30,0x8,0x59,0x18,0xd1,0x30,0xc,0xa2,0xc8,0x73,0x7d,0xdf,0xf7,0x83,
+ 0x30,0xa,0x83,0x88,0x6,0x2c,0x8c,0x98,0xe3,0x45,0x81,0x1b,0x45,0x51,0xc4,0x68,
+ 0x35,0xd1,0x88,0x0,0x4,0x20,0x8c,0x29,0x50,0x14,0xea,0x6b,0x51,0xc9,0xb6,0xac,
+ 0x6c,0x47,0x76,0x22,0x48,0xa4,0x4c,0x42,0x8b,0x63,0x8b,0x4d,0x7f,0x18,0x8b,0x3f,
+ 0xf2,0xdf,0xc3,0x3d,0xeb,0x2f,0xbd,0xe8,0xa2,0x8b,0x38,0xe5,0xc4,0x64,0x95,0x13,
+ 0x4f,0xd7,0x75,0xdb,0xb6,0x79,0x83,0x93,0x93,0xef,0x41,0x4d,0x20,0x73,0xa9,0xcb,
+ 0x45,0x2b,0xd7,0x9f,0xf9,0x7a,0x5f,0x7c,0x5,0x3,0x21,0x6c,0xf9,0xf,0x9f,0x75,
+ 0x8f,0xbd,0x20,0x52,0xb7,0xe,0x66,0x67,0x7c,0x2b,0xc6,0x74,0xbd,0xd4,0x8d,0xf9,
+ 0x2d,0xf8,0x12,0x64,0x33,0xa7,0x31,0x8d,0x81,0xd1,0x40,0x9c,0x64,0xf3,0x86,0xa5,
+ 0x5c,0x4c,0x71,0xf6,0xf2,0x4a,0x31,0x72,0xf4,0xa2,0xa8,0xe4,0xc6,0x8d,0x49,0xa5,
+ 0xd2,0x34,0x8f,0xbb,0xa8,0xf2,0x56,0xdc,0x49,0x7d,0x83,0x9b,0x82,0xb7,0x3f,0x76,
+ 0x5f,0xec,0x2b,0xe1,0x7a,0x95,0xd7,0x7,0xe6,0x7c,0xb0,0x2d,0xbb,0x3a,0xc3,0x6c,
+ 0x7c,0x52,0x33,0x3e,0x35,0x10,0xea,0x2b,0x9f,0x1e,0x9b,0xd1,0x88,0xf8,0xaa,0x2a,
+ 0x75,0x6b,0x3f,0x91,0x99,0x5c,0x5f,0xef,0x26,0x6e,0x81,0x43,0x7d,0x62,0xd0,0x6d,
+ 0x77,0xef,0x7a,0x62,0xf7,0x31,0x7e,0xaa,0x45,0x2d,0xd5,0x70,0x71,0xf1,0xad,0x98,
+ 0x9b,0x88,0xbc,0xdf,0xd3,0x84,0xb4,0xbe,0xef,0x7,0x41,0xf0,0xd4,0x53,0x4f,0x1d,
+ 0x78,0xfa,0xf0,0x55,0x6f,0xf9,0xe3,0xd7,0x5c,0xf1,0x87,0xe7,0x5f,0xfe,0x27,0xef,
+ 0xfa,0x83,0x7f,0xfc,0xe6,0xbf,0xdd,0xfe,0xd0,0xa3,0xfb,0x26,0x26,0xb,0x51,0x18,
+ 0xd0,0x28,0x8c,0xc2,0xaa,0xe6,0x1c,0xf9,0x6e,0xe8,0xf9,0xa1,0x17,0x38,0xae,0x5f,
+ 0x76,0x7c,0xa7,0xec,0x7a,0x5e,0x58,0x55,0xa8,0xfd,0xd0,0xb,0x3c,0xaf,0xe2,0x78,
+ 0x8e,0x17,0x84,0x51,0x40,0x59,0x44,0x18,0xab,0x6,0x4c,0x32,0x1e,0x4b,0x49,0x9,
+ 0x58,0x50,0x9e,0x9e,0x2a,0x28,0xa9,0x56,0x4d,0xd7,0x56,0xb6,0x52,0xc7,0x71,0x54,
+ 0xaf,0xb8,0xdb,0x5b,0x74,0xdd,0xb7,0x9e,0xe9,0x5b,0x7f,0xd1,0x99,0x67,0x9e,0xc9,
+ 0x49,0xb,0x49,0x43,0x16,0xfa,0x30,0xe7,0x2a,0x57,0xa1,0x85,0xaa,0xcc,0x97,0xc9,
+ 0xe6,0xc7,0x0,0xe0,0xa4,0xe5,0xf5,0xd0,0x39,0x69,0xb9,0xaa,0x2c,0x68,0xfc,0x1c,
+ 0x7b,0x6c,0x5e,0x52,0x97,0xff,0xd7,0x5,0x45,0x1b,0x1b,0x8d,0xe0,0x75,0x55,0x0,
+ 0xc0,0x1b,0x87,0xd9,0x39,0xb3,0x95,0x7,0x5c,0x6d,0x85,0x7b,0x21,0x75,0xc5,0x2c,
+ 0x57,0x55,0x55,0x29,0xe7,0xae,0x6a,0x86,0x19,0x1f,0x1f,0x9f,0x39,0x21,0xf0,0x8e,
+ 0xab,0x56,0xf5,0xf5,0x2d,0x83,0xb4,0xea,0x27,0x27,0xb0,0x88,0x43,0x2e,0x16,0xa7,
+ 0x4a,0xa5,0xe9,0x52,0x69,0xba,0x90,0x9f,0x2,0x70,0xc9,0x5,0x2b,0x37,0x6f,0xde,
+ 0xc4,0xc7,0x34,0xbc,0xf1,0x43,0x43,0x95,0x19,0x1,0x55,0xbb,0x37,0x2e,0x75,0xab,
+ 0x71,0x5a,0xb5,0xb,0xc1,0x1b,0xe7,0xd2,0x8f,0x73,0xa0,0x71,0x1a,0x5f,0x55,0x53,
+ 0x67,0x79,0xd2,0x65,0x1d,0x84,0x9f,0x56,0x5e,0xa3,0x94,0x9b,0xb8,0xa,0x7e,0x46,
+ 0x88,0xdc,0xba,0x18,0x95,0x6,0xce,0xcf,0x6,0x99,0xc6,0x82,0xe1,0x9e,0xda,0x25,
+ 0xee,0x67,0x75,0x8f,0x9,0x80,0x3b,0xb7,0xf8,0xb7,0xa7,0x9b,0x9d,0xd9,0xf7,0x7d,
+ 0xbe,0xc6,0xec,0xc4,0xc4,0xc4,0xae,0x5d,0xbb,0x2c,0xcb,0x5a,0xbd,0x7a,0xcd,0xbb,
+ 0xdf,0xfd,0x9e,0xf,0x7d,0xe8,0xc3,0xab,0x57,0x9f,0xf3,0xed,0xef,0xdd,0xf1,0x7b,
+ 0x7f,0xf0,0xb7,0x1f,0xfc,0xb3,0xaf,0xdd,0x75,0xcf,0xce,0x30,0xc,0x41,0x23,0x5a,
+ 0x5b,0x3,0xce,0xf7,0x7c,0xd7,0xf5,0xdd,0x8a,0xef,0x7b,0x41,0xe0,0x51,0x1a,0x52,
+ 0xca,0xe7,0xb2,0x21,0x75,0x2b,0x81,0x53,0xe,0x42,0x1a,0x51,0xca,0x8,0x23,0xd5,
+ 0x25,0x12,0x28,0x63,0x14,0x4,0xc,0xa,0x61,0x84,0x44,0xbe,0xa7,0x28,0xc8,0x64,
+ 0x12,0x34,0xc,0x11,0x38,0x6a,0x79,0xec,0xe1,0x63,0xf4,0xa3,0x37,0xc,0xac,0x39,
+ 0xe7,0xa2,0x4d,0x9b,0x36,0xe9,0xb5,0x55,0x8,0xb4,0xda,0xea,0xf2,0xbc,0x61,0x18,
+ 0x6,0x17,0xc5,0x9c,0x2d,0xdc,0x9d,0x2b,0x16,0x1c,0x89,0x19,0x93,0x79,0x83,0xaf,
+ 0x63,0xc0,0xf5,0x64,0xee,0xa,0x7a,0xbe,0xba,0xe,0xd,0x1c,0x8c,0x1d,0x73,0xca,
+ 0xa,0x33,0x64,0xdb,0x69,0x6d,0x1c,0xdf,0xf6,0xeb,0x5d,0xd5,0x8f,0x35,0xc4,0xa4,
+ 0x2e,0xea,0x67,0xb9,0x4d,0xb,0x17,0x1e,0x1a,0xaa,0xcc,0xd0,0xc3,0xec,0xbc,0xf6,
+ 0xc2,0xae,0xdf,0xb9,0xe6,0x82,0xaa,0x31,0xc6,0x75,0x72,0xb9,0x5c,0x21,0x3f,0x25,
+ 0xff,0x71,0xf3,0xef,0x25,0x17,0xac,0x7c,0xc7,0x55,0xab,0x56,0xae,0xe8,0x13,0x6c,
+ 0x1c,0x9b,0xc2,0x97,0xbe,0x7e,0xe3,0xb1,0x63,0xc7,0x64,0xbe,0x55,0x85,0x15,0x30,
+ 0x34,0x34,0x3c,0x36,0x5,0xf9,0x42,0xb1,0x99,0x67,0x8c,0xbd,0x8e,0xeb,0xd4,0x1d,
+ 0x5f,0xfb,0x15,0x6f,0x6c,0xde,0x30,0xb3,0x92,0xa4,0x60,0xef,0xca,0x9e,0x4,0xcc,
+ 0x4e,0xfe,0x32,0x9a,0xdb,0x9,0x24,0xf2,0x16,0x45,0x2f,0xd9,0x12,0x50,0x2f,0x87,
+ 0xf9,0xc1,0x66,0x34,0x22,0x6e,0x60,0xa9,0xb4,0x8e,0x65,0xe3,0x74,0x97,0x37,0x5e,
+ 0x72,0x91,0x1b,0x4,0x1,0x63,0xac,0x58,0x2c,0x1e,0x38,0x70,0x60,0xf5,0xea,0x35,
+ 0xbf,0xf5,0x5b,0x6f,0xbd,0xf0,0xc2,0x8b,0x37,0x6f,0x3e,0xef,0xd,0x6f,0x78,0xe3,
+ 0x87,0x3e,0xf4,0x27,0x1b,0x37,0x9e,0x7b,0xef,0x3,0x3b,0xdf,0xfb,0x81,0x2f,0xfc,
+ 0xdb,0xf7,0x7f,0x4d,0x19,0x8b,0xa2,0x28,0xf0,0x3,0xcf,0xf3,0x1d,0x27,0xf0,0x3d,
+ 0xdf,0xf7,0xa3,0xc0,0xd,0x23,0x1e,0x58,0x5,0x12,0x7a,0x81,0x53,0xf1,0x3d,0x2f,
+ 0x88,0x18,0x14,0x6,0xc6,0x0,0x46,0x9,0xe3,0x31,0x86,0x4,0x84,0x55,0xb3,0x5,
+ 0x29,0x2d,0xe5,0x26,0x35,0x45,0x49,0x18,0x1a,0xb,0xdd,0xa8,0x52,0xd8,0x37,0x12,
+ 0x7d,0xfa,0xd6,0xfc,0xe6,0x8b,0xaf,0x39,0xe7,0xdc,0x73,0x39,0xc1,0xf8,0xc0,0xe6,
+ 0xc2,0x53,0x48,0x5a,0x1e,0x86,0xc1,0x1b,0xa6,0x69,0x72,0x69,0xac,0x69,0x5a,0x22,
+ 0x91,0xe0,0x8e,0x1f,0xae,0x1e,0x8b,0x6,0x17,0xb9,0x61,0x18,0xf2,0xe3,0x9f,0xb5,
+ 0x51,0xaa,0xb1,0xf1,0x3c,0x2b,0xcc,0x71,0x5d,0xae,0xa6,0x37,0xde,0x74,0xcf,0xd1,
+ 0x5b,0x6f,0xbd,0xbd,0x51,0x98,0x70,0x41,0x51,0x73,0x72,0xc4,0x33,0xda,0xe5,0x71,
+ 0xc9,0x8f,0xdc,0x3f,0x58,0x9c,0x39,0xad,0x37,0xe,0xb3,0x73,0xd1,0xa2,0xce,0xf7,
+ 0xbc,0x65,0xe3,0x55,0x97,0x6c,0x58,0xb3,0x66,0xcd,0x96,0x8d,0x4b,0x96,0xf5,0x2d,
+ 0x3b,0x6b,0x75,0x2b,0xdf,0x9e,0xb5,0xba,0xf5,0xda,0xd7,0x6d,0xbc,0xf6,0xc2,0xae,
+ 0x95,0x2b,0xfa,0x66,0x34,0x58,0x6f,0x1c,0xc0,0xb7,0xff,0xf3,0x17,0x0,0x9e,0x7a,
+ 0xa6,0x20,0xef,0x7f,0xea,0x99,0x82,0xb8,0xee,0xb1,0x63,0xc7,0xe4,0xb,0x89,0x65,
+ 0x50,0x84,0xc6,0x2b,0xf2,0x2b,0x38,0xab,0xeb,0x8e,0x17,0x52,0xb7,0xf6,0x71,0xe3,
+ 0xc6,0xd,0x5c,0xf0,0x2,0xc8,0xe5,0x72,0x7d,0x7d,0xcb,0xf8,0x57,0x4e,0xc5,0xa9,
+ 0xe3,0xad,0xa4,0x66,0x37,0xf5,0xc,0xcd,0x91,0x9a,0x2b,0x74,0x93,0x99,0xb7,0x4c,
+ 0xad,0x7f,0xaa,0x9f,0x66,0x99,0xee,0xe2,0xa5,0x33,0x4a,0x71,0x19,0xe5,0xfb,0x3e,
+ 0xd7,0x4b,0xef,0xab,0x4b,0xca,0xdf,0x0,0x0,0x17,0x96,0x49,0x44,0x41,0x54,0xb9,
+ 0xe7,0x9e,0x6c,0xb6,0xfd,0xe2,0x8b,0x5f,0x7b,0xc5,0x15,0x57,0x6e,0xdc,0x78,0x76,
+ 0x26,0xd3,0x9a,0x48,0x24,0x7b,0x7a,0x96,0x9e,0x73,0xce,0xe6,0x2b,0xae,0x78,0xbd,
+ 0x69,0x59,0x7f,0xf1,0x57,0xff,0xf4,0xf1,0xbf,0xfe,0xfe,0xd8,0x78,0x31,0x8,0xa2,
+ 0xc0,0xb,0x7d,0xcf,0x73,0x3d,0xdf,0x77,0xbd,0x30,0xa,0x43,0xdf,0xf7,0xbd,0xb0,
+ 0x5c,0xaa,0x54,0x2a,0x9e,0x1f,0x44,0x2c,0xe2,0xab,0xc5,0x13,0x0,0x50,0x14,0x86,
+ 0x88,0x80,0x11,0x85,0x40,0x55,0xa1,0x28,0xd5,0x14,0x24,0x46,0x95,0x64,0x8b,0x1b,
+ 0x4,0x7a,0x58,0x79,0xfc,0xe9,0xdc,0x1f,0xfc,0xb8,0xb4,0x79,0xdb,0x95,0xcb,0x97,
+ 0x2f,0x6f,0x34,0x4a,0x71,0xc7,0xf,0x77,0xe7,0xd8,0xb6,0xcd,0xa5,0x6e,0x22,0x91,
+ 0xe0,0xb1,0x8d,0x89,0x44,0x42,0xaf,0x19,0xa5,0x62,0xae,0x20,0xd3,0x34,0xb9,0x99,
+ 0x8a,0x33,0x9c,0xbb,0x82,0x9e,0xaf,0x3e,0x9c,0x8f,0xc2,0xac,0xf1,0x43,0x5,0xb3,
+ 0x9b,0x36,0x1a,0x7,0xd3,0x8c,0xb5,0xd3,0x1b,0xbf,0xe8,0xdc,0x65,0x86,0x71,0xcd,
+ 0x6c,0xc3,0x6e,0xb6,0x12,0xc1,0x62,0x71,0xd,0x3e,0x97,0xf3,0x7d,0x7f,0x6c,0x74,
+ 0x7c,0x46,0x8f,0x95,0xe6,0xa2,0x2b,0x57,0x60,0xe5,0xa,0x49,0xc5,0x9d,0x3,0x66,
+ 0xe7,0xbf,0xdf,0x78,0x37,0x27,0xd2,0xd0,0xf0,0x90,0x7c,0x36,0x91,0x7f,0x7,0xe0,
+ 0x91,0x5d,0x27,0x36,0x6f,0xae,0xde,0x3c,0xcc,0xce,0xb5,0x7d,0x95,0x1d,0x3b,0x90,
+ 0xcb,0xe5,0x64,0x46,0x9,0xd9,0x6b,0x5b,0xf6,0x53,0xcf,0x14,0x36,0x6f,0x46,0xfc,
+ 0xde,0x6a,0x1f,0xb7,0x6c,0x5c,0xb2,0x6b,0xd7,0x6e,0xf1,0x43,0xae,0x2d,0xc3,0x1b,
+ 0x97,0xaf,0xd8,0xda,0xd6,0x22,0xab,0xe8,0xf2,0xb5,0xac,0x3a,0x63,0x95,0x8d,0x1a,
+ 0xeb,0x78,0x79,0x83,0xc6,0xd8,0xc6,0xaa,0xc2,0x3c,0x67,0x57,0xc8,0x5,0x37,0x5e,
+ 0x12,0x61,0xab,0x69,0x1a,0xd7,0xe1,0xf9,0x9e,0x28,0x8a,0xee,0xbc,0xf3,0xce,0xee,
+ 0xee,0xde,0xf3,0xcf,0xdf,0xd2,0xdd,0xdd,0x1d,0x86,0xe1,0xd0,0xd0,0xb1,0xa3,0x47,
+ 0x8f,0xe,0xd,0x1d,0xdf,0xbe,0xfd,0xf1,0xae,0xae,0xae,0xd,0x1b,0xce,0x7e,0xe8,
+ 0xa1,0x7,0xbe,0xf7,0xc3,0x5b,0x74,0x4d,0xf9,0xe0,0x75,0x57,0x2b,0x94,0x79,0x5e,
+ 0x48,0x69,0xe4,0x7b,0x21,0xa3,0x2c,0xa,0x82,0x88,0x11,0x6,0x6,0x6,0x4a,0x19,
+ 0x0,0x42,0xc0,0x40,0x9,0xc0,0x22,0x10,0x45,0xa9,0x2e,0x4b,0x5f,0x3,0xa3,0x91,
+ 0xa6,0x92,0x54,0xd2,0xb2,0xc7,0xf7,0xde,0x71,0x90,0x7d,0xed,0x9e,0x68,0xdb,0xeb,
+ 0xae,0xee,0xeb,0xeb,0xe3,0xa,0x30,0x97,0x9f,0x9c,0x78,0x9a,0xa6,0x89,0x5a,0x7c,
+ 0x3c,0x2a,0x43,0xaf,0x59,0xa7,0xe4,0xaf,0xb8,0x51,0x8a,0xcf,0x8a,0x79,0x43,0x98,
+ 0xa9,0x9e,0x17,0xa3,0xd4,0x1c,0xd,0xc1,0xbe,0x46,0x6e,0x2a,0x98,0xb7,0xe6,0x2d,
+ 0x47,0xc6,0xdb,0x9,0xfb,0xd0,0xe1,0x41,0x3e,0x86,0x16,0x2d,0xea,0xbc,0xf6,0xb2,
+ 0x8d,0xb1,0xd1,0x23,0x5b,0x98,0xe7,0x59,0x39,0xc9,0x4e,0xd8,0xbf,0xda,0x1e,0x5f,
+ 0xcb,0x6f,0x6,0xf3,0x98,0x22,0x3e,0xf1,0xc4,0x76,0x4e,0x98,0x9e,0x9e,0xee,0xaa,
+ 0x62,0x5c,0x83,0x4c,0xcb,0x19,0x61,0x68,0x76,0x42,0xf2,0xf,0x41,0x12,0xbc,0x90,
+ 0xe6,0x5,0x8e,0xeb,0x1c,0x3a,0x3c,0x18,0xbf,0x81,0xda,0x47,0x3e,0xc7,0x16,0x82,
+ 0x77,0xe5,0x8a,0x3e,0x34,0xd8,0xb1,0xd,0xc3,0x68,0x62,0x3c,0x9b,0x13,0xaa,0x54,
+ 0x59,0xae,0xee,0xb2,0x92,0xf5,0xab,0x11,0x8d,0xf6,0xfc,0xf9,0xfc,0x73,0x9f,0xf7,
+ 0x86,0x98,0x7b,0xf3,0xb9,0xee,0x33,0xcf,0x3c,0x73,0xf0,0xe0,0xc1,0x6c,0xb6,0x7d,
+ 0xd9,0xb2,0x3e,0x5d,0x37,0x5c,0xd7,0x3d,0x72,0xe4,0xd0,0x43,0xf,0xdd,0x7f,0xe0,
+ 0xc0,0x9e,0x7d,0xfb,0x76,0xff,0xfc,0xe7,0xb7,0x85,0x61,0x68,0x18,0xa6,0xef,0x7,
+ 0xdf,0xfe,0xee,0x4f,0x1f,0x7d,0xe2,0x69,0xd7,0xf,0x82,0x88,0x3a,0xe,0xf5,0x7d,
+ 0x1a,0xfa,0x51,0x44,0xc1,0x58,0x35,0x58,0x83,0xa7,0x6,0x12,0xc6,0x73,0x4,0x9,
+ 0x8,0x94,0x86,0xd5,0xfd,0x82,0x4a,0x69,0xea,0xf8,0x91,0x74,0x38,0xfe,0xc4,0x10,
+ 0x3e,0x73,0x47,0x79,0xdb,0x55,0x6f,0xe3,0x8b,0x59,0x2b,0x8a,0xc2,0xe7,0xa8,0x62,
+ 0x8a,0xcb,0xa5,0xae,0xae,0xeb,0x5c,0xea,0x8a,0x3d,0xfc,0x18,0x0,0xbc,0x21,0x64,
+ 0xb5,0x98,0xd0,0x72,0xba,0xa2,0xd9,0xca,0x8f,0xcf,0x7b,0x63,0xb6,0xfd,0xa7,0x10,
+ 0x18,0x2d,0xc6,0x10,0xd7,0x6f,0xab,0x36,0xe1,0x79,0xff,0xaa,0xa9,0x47,0x57,0xe8,
+ 0xcc,0xbc,0x4a,0xd3,0xd1,0xc1,0xa3,0x63,0x63,0xe3,0x8d,0x87,0xcd,0x7,0x63,0x63,
+ 0xe3,0x3f,0xbf,0x77,0xcf,0xd0,0xd0,0x30,0xb7,0x24,0xf7,0xf4,0x74,0xef,0x3a,0x34,
+ 0x43,0xa0,0x5c,0x2e,0xd7,0xd3,0xd3,0xcd,0xff,0x86,0x86,0x86,0xab,0xef,0x1d,0x0,
+ 0xc0,0xa2,0x45,0x9d,0xd7,0x7f,0xf8,0xff,0x79,0xe7,0x9b,0x2f,0x59,0xb2,0xa4,0x89,
+ 0x63,0x89,0x87,0x22,0xdf,0xf7,0xe8,0x5c,0x95,0x6b,0xae,0xbc,0xf2,0xa,0x0,0x43,
+ 0x43,0xc3,0xef,0x7c,0x73,0xd5,0x69,0x59,0xd5,0xb1,0x6b,0x38,0x7f,0xfd,0xac,0x2e,
+ 0xab,0x18,0xe6,0x48,0xd9,0xe3,0xdd,0x5e,0x95,0xba,0x12,0x64,0x23,0x33,0xd7,0x71,
+ 0x4e,0x93,0x35,0x10,0x18,0xe3,0xe9,0x3c,0xf4,0x96,0x5b,0x6e,0x61,0x8c,0xb5,0xb7,
+ 0x77,0xa4,0x52,0x69,0xcf,0xf3,0xc7,0xc6,0xc6,0xc2,0x30,0x8a,0xa2,0x70,0xfb,0xf6,
+ 0x27,0xf2,0xf9,0xbc,0xef,0xfb,0xf,0x3d,0xf4,0x60,0xb9,0x3c,0xd,0x20,0xc,0xc3,
+ 0x8f,0xfc,0xf5,0xbf,0x8d,0x4c,0x94,0x7c,0xc7,0xa3,0x61,0x40,0xc3,0x30,0xa0,0x51,
+ 0xc4,0x68,0x35,0xd6,0x82,0x11,0x28,0x84,0x80,0x50,0x46,0x0,0xa5,0x5a,0x15,0xbd,
+ 0x3e,0x48,0x98,0x51,0x1a,0x56,0xa6,0xc,0x5b,0xfb,0xcf,0xa7,0xf4,0xf,0xfd,0xc4,
+ 0x7d,0xdd,0xeb,0xaf,0x5d,0xb4,0x68,0x51,0x2c,0x7,0x28,0x56,0xe6,0x22,0x56,0x17,
+ 0x2e,0x96,0x8b,0x2b,0x92,0xf8,0x62,0xf1,0xc9,0xa4,0x7e,0x1,0xa1,0x17,0x1f,0xf3,
+ 0x5d,0x73,0x48,0xce,0x19,0xe0,0xd1,0x8b,0x47,0x7,0x9b,0xaf,0xca,0xd7,0x74,0x22,
+ 0x17,0x9b,0xeb,0xf2,0x1,0x1a,0xcb,0x43,0x48,0xa7,0x53,0x76,0xc2,0xbe,0xfb,0xe1,
+ 0x78,0x25,0xd7,0x79,0x82,0x4f,0x71,0xe5,0xbc,0xd9,0xd9,0xee,0xb0,0xa7,0xa7,0xbb,
+ 0x91,0x8a,0x2b,0x57,0xf4,0xbd,0xe5,0xaa,0xcd,0x57,0x5d,0xb2,0x81,0x7f,0xac,0xda,
+ 0x84,0x6a,0x33,0x5e,0xc7,0x75,0xe6,0x78,0xa7,0xbc,0xe5,0xaa,0xcd,0x7f,0xf5,0xd1,
+ 0xf7,0x7e,0xf3,0xcb,0x1f,0xe5,0x22,0x77,0xbc,0x9c,0xe4,0x15,0x98,0xab,0x97,0xeb,
+ 0xee,0x11,0x93,0x52,0x19,0x31,0xf3,0x58,0x23,0x64,0xc1,0x2b,0x5c,0x44,0x4d,0xbc,
+ 0x47,0x75,0x91,0x67,0xae,0x5c,0x34,0xef,0x25,0x4,0xab,0xa1,0x5c,0x2e,0xdf,0x77,
+ 0xdf,0x7d,0x8a,0xa2,0xac,0x5c,0xb9,0xda,0x30,0xac,0xc3,0x87,0x9f,0xb9,0xff,0xfe,
+ 0xbb,0x77,0xee,0xdc,0x7e,0xef,0xbd,0xf7,0x4c,0x4e,0x4e,0x26,0x12,0x9,0xc6,0x28,
+ 0x63,0x33,0x9,0x58,0x13,0x93,0x93,0xdf,0xf8,0xee,0x2d,0x11,0x45,0x18,0x45,0x94,
+ 0xd7,0x98,0xab,0x16,0x9a,0x3,0x1,0x23,0x8c,0x12,0xc2,0x78,0xa1,0xf5,0xa6,0xcb,
+ 0xe3,0xf9,0x6e,0xe5,0xf8,0xf0,0xd0,0x4f,0x9f,0x18,0xff,0xf1,0xe3,0xe5,0x37,0x5c,
+ 0x7b,0xed,0xf2,0xe5,0xcb,0x5,0xf1,0x4,0x69,0x5,0x57,0x4d,0xb1,0x7e,0x8c,0x44,
+ 0x5a,0x6e,0x4c,0xd6,0x6b,0x55,0x2f,0xe4,0xa4,0x82,0x17,0xae,0xe4,0xc5,0xb3,0xc0,
+ 0xb3,0x2f,0x70,0x33,0xa3,0x33,0x4b,0xe0,0x21,0x19,0x76,0xb5,0x7e,0xc5,0x5c,0xab,
+ 0x1f,0x8,0x70,0xc1,0xcb,0x8f,0x34,0x4d,0xc3,0xa9,0x38,0xbf,0x79,0x72,0xf8,0xa4,
+ 0xbf,0x8a,0xe1,0x1b,0xdf,0xbd,0x4d,0xb4,0xf9,0xbb,0x43,0xf6,0x79,0x8e,0x97,0x93,
+ 0x22,0x1b,0x89,0x6f,0x87,0x86,0x87,0x9a,0x52,0x71,0xe5,0x8a,0xbe,0xd6,0xb6,0x16,
+ 0x11,0xa,0x2,0xc1,0x5e,0xcb,0x7e,0x70,0xc7,0x5c,0xb,0x88,0xca,0xe4,0xbc,0xf5,
+ 0x96,0x5b,0x64,0x3,0x95,0x1c,0xf6,0x24,0xee,0x30,0x96,0xd2,0xdc,0x74,0x4e,0xc1,
+ 0xa7,0xbb,0xf2,0x9e,0xd9,0xe2,0xd8,0x1a,0x2d,0xd5,0x2f,0x6d,0xc2,0x3d,0x27,0x2d,
+ 0x6f,0x1c,0x38,0x70,0x60,0x6c,0x6c,0xac,0xa7,0xa7,0x77,0xf5,0xea,0xd5,0xa5,0x52,
+ 0xe9,0x9e,0x7b,0xee,0xda,0xb5,0x6b,0xd7,0x23,0x8f,0x3c,0x4,0x10,0xcb,0xb2,0xf2,
+ 0xf9,0x7c,0xe3,0x8b,0xe6,0xe1,0xc7,0x76,0x3f,0x73,0x64,0x98,0x7,0x48,0xf1,0x2,
+ 0x73,0xac,0x5a,0xe8,0x95,0xd7,0x8c,0xe4,0xfb,0x1a,0x6a,0x6,0x79,0xfe,0xaf,0x1e,
+ 0xd8,0xf1,0xd1,0xbf,0xfb,0xfe,0x87,0xff,0xfe,0xd6,0x3b,0x9e,0x2a,0x5e,0x7d,0xcd,
+ 0x9b,0x7a,0x7b,0x7b,0xe5,0x32,0x17,0x5a,0x7d,0xc1,0x64,0xde,0x96,0xf3,0xe6,0x5,
+ 0x69,0x9b,0xe6,0xdf,0x42,0xaa,0x9f,0xfe,0x92,0xf3,0x16,0xf3,0xaf,0x92,0x21,0xa,
+ 0xd3,0xf0,0x3d,0x3c,0x80,0xe9,0xb1,0xdd,0xc3,0x5c,0xce,0x8,0x1c,0x38,0xb0,0x8f,
+ 0x37,0x4e,0x5a,0xf1,0x8c,0x9f,0x53,0xb6,0xc4,0x8,0x23,0xea,0x81,0xfd,0xfb,0x2d,
+ 0xcb,0xda,0xb4,0xb6,0x79,0x3d,0xe7,0x18,0x72,0x6e,0xe6,0xc6,0x1b,0x6f,0xe0,0x54,
+ 0x11,0x2,0xbf,0xa7,0xbb,0x87,0x37,0xf6,0xe,0x54,0xce,0xec,0x4f,0x1c,0xdd,0x7f,
+ 0x3f,0x0,0xdb,0xb2,0xf9,0x7e,0x7e,0xd8,0x7f,0xdf,0xfe,0xe8,0x7,0xae,0xbb,0xb6,
+ 0xf1,0x84,0x86,0x61,0xc8,0x69,0xfd,0x2,0x85,0xfc,0xd4,0xaf,0x1e,0x3a,0x78,0xf9,
+ 0xd6,0x55,0x73,0xdf,0xcf,0x4d,0x77,0x3c,0x21,0xc,0x54,0x3c,0xd8,0x23,0xdb,0x7b,
+ 0x6e,0xec,0x98,0x6c,0x36,0xcb,0x67,0xd4,0x4d,0x6b,0x0,0xcd,0x6,0x5e,0xe4,0xa0,
+ 0xc5,0x28,0x1,0x33,0x3d,0xc3,0xd3,0x95,0x62,0x47,0xca,0x25,0xf2,0x5e,0x12,0x8,
+ 0x91,0x4b,0x29,0x7d,0xf2,0xc9,0x27,0x83,0x20,0x58,0xb7,0x6e,0x83,0x69,0xda,0x7b,
+ 0xf7,0x3e,0xf5,0xe8,0xa3,0x8f,0x4c,0x4f,0x97,0x6,0x7,0x7,0x3d,0x6f,0xd6,0x30,
+ 0xbb,0xfc,0xd4,0xf4,0x8e,0x3d,0x7,0xfb,0x7b,0x3a,0x14,0x10,0x10,0xca,0xa0,0x2a,
+ 0xa4,0x56,0x36,0x52,0x22,0x4c,0x18,0x45,0xf9,0xa9,0xe9,0x13,0x63,0xb9,0x43,0x3,
+ 0xc3,0x4f,0xee,0x3d,0x72,0x70,0x70,0xcc,0xb4,0xed,0xde,0xde,0xde,0xdf,0xbd,0xe0,
+ 0x92,0xae,0xae,0x2e,0x5d,0xd7,0x85,0xb0,0x55,0x1b,0x8a,0x9e,0xc7,0x48,0xab,0x4b,
+ 0xeb,0x7d,0x89,0xe2,0x18,0x72,0xc6,0x3c,0xa9,0x5f,0x9b,0xef,0xc5,0xe8,0xc4,0x93,
+ 0xe1,0x14,0xaa,0x1c,0xc5,0x68,0xc6,0xcb,0x3e,0x6d,0xdf,0x9f,0x13,0x1c,0xcb,0xb9,
+ 0x99,0x13,0x27,0x46,0xf8,0x60,0x6a,0xac,0x90,0x3c,0x7,0x1a,0xf,0xdb,0xf9,0xe4,
+ 0x93,0x4f,0x3f,0x6d,0x6f,0xd9,0xf2,0x9a,0xe5,0x8b,0x4f,0xf2,0x6e,0xbb,0xf7,0xde,
+ 0x5f,0xb,0x83,0xad,0x1d,0xf3,0xa0,0x0,0x7,0xe,0xec,0xeb,0x48,0x2c,0x3b,0x3a,
+ 0xc1,0x1a,0xd5,0x78,0xc7,0x75,0x6e,0xfc,0xd9,0x43,0x57,0x5e,0x79,0x55,0xd6,0x2a,
+ 0xce,0x79,0x6f,0x33,0x67,0x3b,0x3a,0x78,0xf4,0xdf,0x7,0x8f,0x6e,0x79,0xcd,0x6b,
+ 0xce,0xec,0x6f,0xae,0x4d,0xdc,0xf6,0xeb,0x5d,0x7b,0xf6,0xec,0x95,0xaf,0x95,0xcd,
+ 0x66,0x93,0x64,0x2,0xa8,0x53,0x98,0xb9,0x72,0xd1,0x28,0x2a,0x4f,0xa,0xc3,0x30,
+ 0xe4,0x4,0xf,0xae,0x9e,0xc8,0x95,0xba,0x4e,0x13,0xb0,0x9a,0xbd,0xd7,0x71,0x9c,
+ 0xdd,0xbb,0x77,0x13,0x42,0xfa,0xfa,0xfa,0xa7,0xa7,0x8b,0xf7,0xde,0xfb,0xab,0xc9,
+ 0xc9,0xc9,0xb1,0xb1,0xd1,0x39,0x78,0xb,0x20,0x8a,0xc2,0x23,0x47,0x47,0x3d,0x3f,
+ 0xb4,0x4d,0xa3,0xe6,0xb0,0xad,0x3a,0x83,0xf8,0xc9,0x27,0xb,0xc5,0x9d,0x7b,0xf,
+ 0xef,0xdc,0x7b,0xf8,0xf0,0xd1,0x91,0x90,0x2a,0xa9,0x96,0x6c,0x6f,0x4f,0xff,0x95,
+ 0xeb,0x36,0x65,0xb3,0x59,0x91,0x76,0x2b,0x64,0xa6,0x2e,0x15,0x7c,0xd3,0xea,0x4b,
+ 0x28,0xf3,0x9c,0x5b,0x31,0xad,0x8d,0xa9,0xc7,0x31,0x3d,0xf9,0x85,0xce,0xbf,0x3d,
+ 0x55,0x3c,0x8b,0x2,0x37,0xdc,0x10,0x52,0x5d,0x8,0xe7,0xe9,0xa7,0xf,0x58,0xd6,
+ 0xd9,0x67,0xf6,0x27,0x8e,0x4e,0x28,0xbf,0xf9,0xcd,0x1d,0x9c,0xb7,0xdc,0x53,0x3a,
+ 0xcf,0x35,0xda,0xe5,0x65,0xa0,0x85,0xa3,0x8,0x80,0x53,0x71,0x7e,0xfe,0xf3,0xdb,
+ 0xd7,0xac,0x59,0x73,0xee,0xb9,0x9b,0x9a,0xb2,0xeb,0xe8,0x84,0xf2,0x9b,0xdf,0x3c,
+ 0x78,0xf0,0xe0,0x41,0xc1,0x5b,0x91,0x88,0x23,0x4b,0xb3,0xc7,0xf6,0x8c,0x0,0x48,
+ 0xa7,0x53,0xc2,0xec,0x69,0x9a,0x46,0xd5,0x11,0x5a,0x71,0xee,0xbd,0xf7,0xd7,0x97,
+ 0x5e,0x7a,0x99,0x38,0xff,0xde,0x81,0xca,0xd8,0xe8,0xb8,0xf4,0xea,0x99,0x29,0x19,
+ 0xcb,0xf7,0x38,0x15,0xe7,0x9e,0x7b,0x7e,0xfd,0x54,0x36,0x1b,0xe3,0xfc,0x91,0x51,
+ 0x76,0xcf,0xaf,0x7f,0x1d,0xcb,0x34,0xe0,0xf1,0x24,0x5a,0x66,0x25,0x50,0x77,0x64,
+ 0x21,0x3f,0x35,0x5b,0x31,0xda,0xa6,0x90,0x3b,0xe7,0xc4,0x89,0xe1,0x33,0xfb,0x57,
+ 0x1,0xf8,0xcd,0x93,0xc3,0x47,0x8f,0xe,0x9e,0xd2,0x79,0x5e,0x64,0x30,0xc6,0xa,
+ 0x85,0xc2,0x53,0x4f,0x3d,0x55,0x2a,0x95,0x1c,0xa7,0xb2,0x7d,0xfb,0xa3,0xcf,0x3c,
+ 0xf3,0xf4,0xf0,0xf0,0xf1,0x58,0x61,0xe0,0x66,0x3f,0xc4,0xce,0x7d,0x47,0x4a,0x65,
+ 0xd7,0xb6,0x4c,0x48,0xc6,0x63,0x3f,0x8,0x1e,0x7c,0x7c,0xdf,0x6d,0x77,0x3f,0xb2,
+ 0x6b,0xef,0x11,0xc3,0x32,0xd7,0xaf,0xdf,0xf0,0x9a,0x8b,0xaf,0x68,0x6d,0x6d,0x8d,
+ 0x55,0x6f,0x53,0x6b,0x2b,0xdf,0xca,0x82,0x54,0x4c,0x5f,0xb9,0xb0,0x15,0x59,0xf2,
+ 0x32,0x6f,0x85,0x94,0x16,0x6a,0xb6,0x7c,0xe6,0xd3,0x41,0x49,0x96,0x41,0x6,0x7,
+ 0xe3,0xf3,0xd5,0xa6,0x68,0xba,0x50,0x25,0x6a,0xa9,0x76,0xe9,0x74,0x4a,0xd4,0xa9,
+ 0x89,0x95,0x7d,0xb3,0x2c,0x6b,0x8e,0xb4,0xa1,0xc6,0x45,0xe2,0xf9,0x8a,0xd2,0x22,
+ 0x13,0x48,0xcc,0x57,0x1b,0xc3,0x92,0xaa,0xea,0x68,0x36,0x2b,0x27,0xe5,0xe3,0x64,
+ 0xe3,0xd8,0x95,0x72,0x92,0x4,0x81,0xc5,0xb7,0x62,0x99,0x79,0xd4,0xcf,0xd5,0x45,
+ 0x89,0x49,0xfe,0x98,0xf2,0xcd,0xc4,0x1c,0xc2,0x90,0x94,0x58,0x7e,0xe6,0xb3,0xcf,
+ 0x39,0x87,0xef,0xcf,0xe7,0x73,0xae,0xeb,0xf0,0x57,0x3,0x1a,0x16,0xb3,0x97,0x9d,
+ 0xba,0x27,0xed,0x73,0xf9,0x72,0xdc,0x38,0x1f,0x5b,0x31,0xb0,0x69,0x6f,0xbf,0x68,
+ 0xe0,0x3e,0x21,0xc6,0xd8,0xfd,0xf7,0xdf,0xff,0xbe,0xf7,0xbd,0x6f,0xe9,0xd2,0x65,
+ 0xaf,0x79,0xcd,0xb6,0x3,0x7,0xf6,0xc,0xc,0xc,0x4c,0x4d,0x15,0x98,0xe4,0x83,
+ 0x9d,0xd,0x86,0x61,0x7c,0xe3,0xb3,0x1f,0x5a,0xbe,0x74,0xd1,0x64,0xbe,0x34,0x32,
+ 0x9e,0x3b,0x3c,0x78,0xe2,0xc9,0x7d,0x3,0xcf,0xc,0x8e,0x5a,0x76,0x62,0xc9,0x92,
+ 0x25,0x2b,0x56,0xac,0xe0,0xc5,0x56,0x65,0x3a,0xc9,0xa6,0x60,0x45,0x5a,0x60,0x5e,
+ 0xae,0x20,0x25,0x74,0x63,0xb9,0xc1,0xbf,0x6a,0xb4,0x21,0x9f,0x26,0x96,0xe4,0xd9,
+ 0x30,0x5f,0xea,0x62,0xf6,0x91,0xc4,0x73,0x0,0xe4,0x15,0x28,0x63,0x65,0xdf,0xe6,
+ 0x1e,0x49,0x8d,0xa7,0x45,0xb5,0xec,0x43,0xb5,0x14,0x2b,0x27,0x40,0xd3,0x24,0x1e,
+ 0x59,0xd2,0x8a,0x11,0x2c,0xbe,0xb5,0x9a,0x95,0x8c,0x85,0x14,0x75,0x24,0x38,0xc0,
+ 0x39,0xcc,0xa5,0x71,0x23,0x6f,0xe5,0x1f,0xc6,0xee,0xaa,0xba,0xdf,0x75,0x62,0xba,
+ 0xba,0x3c,0xd5,0x6f,0x8c,0x8b,0x6e,0x7c,0xbb,0x35,0xed,0x25,0xa1,0xec,0x88,0xd5,
+ 0x3a,0xe5,0x3e,0xb7,0x2c,0x9b,0x6f,0x21,0x69,0xdd,0x73,0xbf,0x28,0x5f,0x34,0x8,
+ 0xea,0x7e,0xfc,0xe3,0x1f,0xbf,0xe9,0xa6,0x9b,0x52,0xa9,0xb4,0x65,0x59,0xa5,0x52,
+ 0xd1,0xf3,0xbc,0xf9,0xf0,0x96,0xe3,0xff,0x6f,0xef,0xfa,0x9a,0xd2,0xc8,0x96,0x78,
+ 0xeb,0x60,0x64,0x5c,0x4d,0x98,0x89,0xa0,0x93,0x4b,0xe9,0x15,0x2a,0xab,0x71,0x53,
+ 0x9,0xa6,0x6a,0xaf,0xe6,0x2d,0x79,0xba,0x95,0xfb,0x5,0xf6,0x63,0xec,0x97,0xda,
+ 0xd7,0x7d,0x8d,0x2f,0x7b,0x4b,0x1f,0x72,0x2b,0x58,0xd9,0x35,0x98,0x72,0x89,0x24,
+ 0x15,0x14,0xc2,0x66,0xd4,0x51,0x6,0x4d,0xc2,0x41,0x51,0xb8,0xf,0x9d,0xe9,0x6d,
+ 0xce,0xc0,0x38,0xe2,0x9f,0xc5,0x2c,0xbf,0x7,0xb,0x86,0xf3,0xa7,0xe7,0x38,0xbf,
+ 0xe9,0x3e,0xdd,0xe7,0xf4,0xf9,0xf7,0xe3,0x7f,0x41,0xed,0xf8,0xc3,0x56,0xb1,0x5a,
+ 0x53,0xb4,0x9b,0xe1,0x5b,0xb7,0x6e,0x69,0x9a,0x76,0xe3,0xc6,0x8d,0xbe,0xbe,0x3e,
+ 0x0,0xc0,0x85,0xfe,0x4,0x24,0x1e,0x0,0xa0,0x9a,0xc5,0x75,0xc8,0xdc,0x18,0x26,
+ 0x8a,0x52,0x62,0x1a,0xfa,0x4b,0xd4,0xed,0x6d,0x3c,0xd7,0x8b,0xb4,0x6e,0x7,0xf2,
+ 0x16,0xda,0xa0,0x2e,0x34,0xa3,0x19,0x2f,0xc6,0xed,0x64,0xfe,0x24,0x41,0x8b,0x87,
+ 0xc9,0xdd,0x2c,0xb4,0xc8,0xa5,0xc,0x8e,0x1e,0x93,0x18,0x72,0x62,0x26,0xd,0x9,
+ 0x92,0xd8,0xd2,0xea,0x5f,0x7e,0x7c,0xa6,0x3b,0x93,0xe,0x97,0xa,0x1a,0x69,0xc9,
+ 0x6d,0x75,0xe2,0x55,0xc5,0xd9,0xc4,0x4f,0xc5,0xa8,0x0,0x4f,0xd9,0x3,0x2d,0x5e,
+ 0x70,0x6e,0xab,0x84,0xb,0x2f,0x45,0x8c,0xfc,0x6c,0x8d,0xbe,0x1c,0x1c,0x1e,0x1e,
+ 0xd6,0x6a,0xb5,0x6a,0xb5,0xfa,0xfd,0xf7,0xdf,0xb7,0x11,0xa9,0xea,0xe9,0xe9,0xa9,
+ 0xd7,0xeb,0xba,0xae,0xcf,0xcc,0xcc,0xdc,0xbd,0x7b,0xf7,0xfa,0xf5,0xeb,0x0,0x80,
+ 0x4e,0x2f,0xf2,0x5d,0x13,0xf8,0x8c,0x94,0x3c,0xc9,0xb8,0xba,0x98,0x34,0xad,0xd2,
+ 0x98,0xd5,0x91,0xae,0x28,0xae,0x5c,0x70,0xa,0xcb,0xc3,0x4a,0x1e,0xa9,0xe,0xf1,
+ 0x4b,0x49,0x68,0x3f,0x19,0x77,0x2b,0x92,0xf0,0xc7,0x88,0xe0,0xf1,0x18,0x91,0xfb,
+ 0x9a,0x26,0xbd,0xae,0x6,0x55,0x62,0x17,0x4d,0x59,0xb9,0x6d,0x2c,0xd1,0xcc,0xbf,
+ 0x6f,0x8c,0x74,0xb2,0xaa,0xe,0x10,0x93,0x5b,0xb5,0x56,0x71,0x4e,0x39,0x71,0x12,
+ 0x26,0xab,0x95,0x8a,0xb8,0x7e,0xfd,0x6,0xca,0x46,0x56,0x3a,0x36,0x85,0x19,0xf0,
+ 0xe8,0xab,0xdb,0x86,0xe7,0x7a,0x12,0x5a,0xec,0xc7,0x60,0x85,0xff,0x74,0x7,0xe0,
+ 0x5f,0x4d,0xd3,0xa5,0xbc,0xcd,0x9d,0xc3,0x5b,0x70,0xdc,0x54,0x8b,0x8b,0x8b,0x1e,
+ 0xbb,0xb5,0xdd,0xf8,0xe6,0x9b,0x6f,0x74,0x5d,0xf,0x85,0x42,0x13,0x13,0x13,0xb1,
+ 0x58,0xec,0xe6,0xcd,0x9b,0xc4,0x55,0x3c,0x90,0x1a,0xd7,0xc,0x3,0xf3,0x33,0x13,
+ 0xc1,0xf8,0x4c,0x55,0xa,0x5,0x49,0x86,0xb1,0x14,0xb3,0xd,0x38,0xa7,0xe0,0x4a,
+ 0x16,0x32,0x5,0x84,0x3a,0x50,0xdf,0x22,0x4e,0x41,0x5d,0x89,0x63,0x70,0x12,0x7b,
+ 0xe1,0xa4,0x27,0xd2,0x7f,0xcb,0x9c,0x5a,0x9c,0x24,0xbc,0x3b,0x5e,0x85,0x4e,0xe2,
+ 0x6c,0xfa,0xca,0xc7,0x92,0xb4,0x42,0x93,0x3b,0x81,0x78,0x23,0x92,0xc,0xbc,0x16,
+ 0xaf,0x2,0x8d,0x56,0x3a,0x0,0xe0,0x41,0xd5,0x44,0xb3,0xa6,0xc1,0x6d,0x9f,0x7a,
+ 0x92,0x46,0xc6,0x2d,0x92,0xfb,0xe5,0xd2,0x21,0x8b,0xa8,0x8,0x3f,0xff,0xfc,0xb3,
+ 0x77,0x1,0xd4,0xae,0x3,0x3,0x3,0xb7,0x6f,0xdf,0x8e,0xc7,0xe3,0x23,0x23,0x23,
+ 0xba,0xae,0xf,0xd,0xd,0x1,0xd3,0xb1,0x52,0x79,0x6e,0xbb,0x92,0x9d,0x4c,0xa4,
+ 0xed,0x6d,0xcc,0x78,0xce,0xe7,0xb4,0x92,0x79,0xcc,0xe7,0xc3,0xa4,0x6f,0xc1,0x79,
+ 0x17,0x50,0x2f,0x1d,0xcb,0x5b,0x68,0x5b,0xeb,0x36,0x6,0x8a,0x9a,0x13,0x98,0x3f,
+ 0x49,0xde,0x61,0xc6,0xc6,0x84,0x55,0x2a,0x38,0x69,0xd6,0x79,0x19,0xa6,0xee,0x82,
+ 0x4d,0x15,0x8e,0x24,0x1b,0xb6,0xe3,0x7e,0x9a,0x89,0xd2,0x92,0x3a,0x95,0xfa,0x72,
+ 0xcb,0xc3,0x6b,0xf1,0x2a,0xa4,0xc,0xdd,0x2d,0x78,0xeb,0x7f,0xf7,0xaf,0xee,0x51,
+ 0xa2,0x91,0x21,0x31,0x5a,0x35,0xdb,0xea,0xdc,0xe0,0xbf,0x4,0x48,0xb9,0x56,0x33,
+ 0x5b,0x64,0xec,0xb5,0x6b,0xd7,0x1e,0x3c,0x78,0xf0,0xf0,0xe1,0xc3,0xa9,0xa9,0xa9,
+ 0x7a,0xbd,0x7e,0x7c,0x7c,0x7c,0x74,0x74,0x54,0xab,0xd5,0x6a,0xb5,0xda,0xd1,0xd1,
+ 0x11,0x56,0xec,0xed,0xed,0xc5,0x39,0x2d,0x6a,0x5d,0xde,0x2,0x71,0xc,0x49,0xc8,
+ 0xe3,0xb1,0xdc,0xb1,0x4c,0x11,0x20,0xba,0x48,0x1a,0x95,0xd8,0x2e,0x29,0xd8,0xce,
+ 0xf4,0x27,0xbb,0xd1,0xbe,0xc1,0x2c,0x3d,0xd3,0xd2,0x75,0x9,0xde,0xf6,0x9b,0xd2,
+ 0x98,0x71,0x8e,0xb7,0xc9,0x9,0x16,0xa,0x85,0x88,0xb4,0x6e,0xc2,0xf0,0x7e,0x3d,
+ 0x9e,0x60,0xb6,0xfa,0xd2,0xcb,0x76,0x70,0xef,0x73,0xe2,0xb5,0x78,0x15,0x14,0xcc,
+ 0xdd,0x82,0x1f,0xf6,0x4a,0xbd,0x78,0x8f,0x12,0x3f,0xd7,0xdb,0xd9,0x74,0xd5,0x40,
+ 0xd7,0xe,0xb1,0x96,0x1,0x0,0x2d,0xdb,0x1f,0x7e,0xf8,0xe1,0xc5,0x8b,0x17,0xd5,
+ 0x6a,0x15,0xb9,0xa7,0xaa,0x6a,0x24,0x12,0x89,0x44,0x22,0x13,0x13,0x13,0xdf,0x7d,
+ 0xf7,0x5d,0x3c,0x1e,0x57,0x14,0x5,0x37,0xc1,0x1c,0x1f,0x1f,0xe3,0xf6,0x57,0x32,
+ 0x8c,0xd1,0x45,0x84,0x17,0xc1,0xa5,0xfd,0x88,0xba,0x3c,0x0,0xcb,0xf5,0xad,0xa4,
+ 0x78,0xa9,0x40,0xc0,0x39,0xed,0x96,0x7,0x6f,0x79,0xe4,0xb6,0xe7,0x2,0xe,0x7,
+ 0xba,0x20,0x9c,0xc2,0x4d,0x85,0xf0,0x3e,0xdb,0x1a,0x9a,0x9d,0x34,0xe9,0xff,0x49,
+ 0x42,0xb5,0xe3,0xee,0xa2,0x95,0xab,0xe3,0x1c,0x55,0x8d,0x74,0xe0,0xbd,0x9f,0x66,
+ 0xa5,0xd7,0x56,0x53,0x61,0x9a,0xda,0xed,0x9c,0x81,0xfe,0xdd,0x78,0x3e,0xf1,0x97,
+ 0xf3,0x16,0x0,0xe,0xe,0xe,0x6a,0xb5,0xda,0xe7,0xcf,0x9f,0x7f,0xfa,0xe9,0xa7,
+ 0x67,0xcf,0x9e,0xf5,0xf7,0xf7,0xdf,0xb9,0x73,0x27,0x16,0x8b,0x45,0x22,0x91,0xe1,
+ 0xe1,0xe1,0x40,0x20,0x70,0x74,0x74,0x54,0xfd,0x92,0x55,0xf9,0x8,0xa9,0x7b,0x74,
+ 0x74,0x84,0xc7,0x2c,0xd6,0x1c,0x48,0xb3,0x5c,0x70,0xc,0x66,0x70,0x16,0x24,0xe2,
+ 0x57,0x3e,0xb9,0xe5,0x14,0xe5,0xe1,0x5c,0x49,0xc7,0x72,0xa7,0x54,0x87,0x7,0x6f,
+ 0x3d,0x70,0x6a,0xea,0x22,0x3c,0x9e,0x27,0xae,0x42,0xdb,0x7b,0x8c,0x4e,0xfb,0xb0,
+ 0x36,0x15,0xe0,0xec,0xed,0x37,0x7d,0x89,0x9c,0x3b,0xb0,0x17,0x6f,0x99,0xfd,0x8b,
+ 0xd1,0x9,0xbc,0x5,0x87,0xba,0x44,0x48,0x62,0x29,0x9a,0xc4,0xf8,0x15,0xff,0xd2,
+ 0xaf,0xc8,0x5b,0xb4,0x9c,0xb9,0x33,0x19,0xa9,0x4b,0x3e,0x5e,0x8a,0x0,0x71,0x83,
+ 0x99,0x2c,0x61,0x72,0x56,0x91,0xa6,0x25,0xb3,0xd9,0x1d,0xf8,0x21,0xf5,0x2b,0x45,
+ 0x80,0xae,0xa,0x75,0x3,0xe7,0xfe,0x74,0xf2,0x6,0x2f,0xe1,0xd1,0xf7,0x16,0xa0,
+ 0x13,0xda,0xf1,0xd3,0xcb,0xd5,0x92,0xf9,0x44,0x70,0xe5,0x89,0x3e,0x61,0x60,0x7b,
+ 0x0,0xf1,0x2f,0x38,0x53,0x62,0x64,0x26,0x7e,0xc6,0xd,0xb1,0x34,0xb3,0xa5,0x2,
+ 0x3c,0x7e,0xcb,0x2d,0x6a,0x6e,0xf4,0xd2,0x56,0x5b,0xa5,0x71,0x49,0x63,0xc0,0x39,
+ 0x96,0x9e,0x9a,0x42,0x2,0x63,0x7a,0x2a,0xae,0xd8,0xaf,0xa,0x69,0x11,0x57,0xfb,
+ 0xa4,0xd6,0x2e,0x3a,0x16,0x1e,0x26,0x2e,0xb9,0x73,0xf1,0x60,0x3,0xa4,0x56,0xaf,
+ 0x93,0x99,0xad,0x69,0xf0,0xd6,0xbd,0x46,0x82,0x47,0x74,0x14,0xb6,0x61,0x80,0xb8,
+ 0x4a,0x1c,0xee,0x65,0x87,0xee,0x29,0x8d,0xa7,0xef,0xb9,0x4d,0xf1,0x2b,0x84,0x2e,
+ 0x75,0xbb,0xb8,0x10,0xf4,0x34,0x86,0x70,0xc8,0xee,0x45,0x4e,0x22,0x3f,0x69,0x6e,
+ 0x85,0xbc,0x45,0x6f,0x16,0x8f,0x9,0x91,0x3e,0xe4,0x13,0x51,0xa2,0x5f,0x2f,0x4b,
+ 0xe9,0x8,0x0,0x3c,0x42,0x4b,0x2a,0x97,0x88,0xd,0xce,0xe2,0xd,0xb7,0x82,0xbd,
+ 0x8a,0xbc,0x85,0x36,0xa8,0x6b,0xdb,0x36,0x2e,0x33,0xe6,0x50,0xd5,0x1,0xc3,0x30,
+ 0x4e,0xdb,0x4e,0xa5,0x52,0x31,0xc,0xc3,0x34,0xcd,0x60,0x30,0xc8,0xcf,0x86,0x15,
+ 0x42,0x98,0xe6,0x87,0x58,0x2c,0x7e,0x5a,0xd9,0x3c,0x7a,0x69,0xaf,0x7a,0xe7,0x48,
+ 0x72,0x2a,0x8,0x21,0x70,0xf7,0x65,0x22,0xf1,0xe0,0x12,0xba,0x73,0xa3,0xc7,0x9,
+ 0xe7,0x20,0x67,0x90,0x90,0x8a,0xa2,0x90,0x3a,0x45,0xb2,0x91,0xda,0x44,0x1a,0xa3,
+ 0x99,0xdd,0xd4,0x3b,0xd5,0xdb,0xb8,0x5d,0x56,0x9a,0xb2,0x12,0x5d,0x25,0xd5,0xca,
+ 0x63,0x3f,0x3d,0x8d,0xc0,0x32,0x70,0x75,0x66,0xb6,0x6e,0x9c,0x9a,0xba,0x95,0x4a,
+ 0x5,0xd3,0x94,0xf2,0x35,0x89,0x43,0x43,0x83,0xa7,0xa7,0x6e,0xd1,0xb2,0xac,0x68,
+ 0x34,0x9a,0xcf,0xe7,0xc2,0xe1,0xf0,0xf0,0xf0,0x70,0xa1,0x50,0xc8,0xe7,0x73,0xb3,
+ 0xb3,0x73,0x95,0x4a,0x25,0x93,0xc9,0x9c,0x13,0x61,0x8a,0x96,0x65,0xb5,0x4d,0x98,
+ 0xb3,0x4b,0x92,0x4e,0xaf,0x6,0x83,0x6a,0x2c,0x16,0x3f,0xa3,0x24,0xa7,0xc2,0x52,
+ 0x32,0xa9,0xe,0xa8,0xe1,0x70,0xd8,0x34,0x4d,0x1c,0xd2,0x4b,0xe8,0xd4,0xd,0xae,
+ 0x6c,0x89,0xc3,0xdc,0x12,0x46,0x4d,0x8b,0xc5,0x28,0x38,0xe4,0x56,0xb9,0x3d,0x2c,
+ 0x60,0xa3,0xb0,0x35,0x8f,0x9c,0xa8,0x4a,0xe3,0xae,0x5a,0x6e,0x4e,0x73,0xa2,0x92,
+ 0x24,0x57,0x9d,0xb7,0xd0,0x6,0x75,0xd,0xc3,0x30,0xc,0x43,0x51,0x94,0xb7,0x6f,
+ 0xdf,0x58,0x96,0x35,0x3b,0x3b,0x77,0x46,0x4f,0x2c,0x3e,0x58,0xc7,0xc7,0xc7,0xb8,
+ 0x5e,0x4a,0x51,0x14,0x4d,0xd3,0x9e,0x3c,0x69,0x99,0x62,0xb2,0xd,0xb4,0x2d,0xe1,
+ 0xd9,0x25,0xf9,0xf8,0xf1,0x13,0x2e,0xff,0x8a,0xc5,0xe2,0xe7,0xf2,0x32,0xf2,0x3,
+ 0x51,0x11,0xf7,0x13,0x89,0xe1,0xe1,0xe1,0xb7,0x6f,0xdf,0xc0,0x65,0xb9,0xca,0x25,
+ 0x70,0x83,0x99,0xeb,0x3a,0x24,0x64,0xb5,0x5a,0xa5,0xc8,0x2d,0xaa,0x68,0x54,0x92,
+ 0xe4,0xd3,0x2,0x87,0xba,0xc0,0xa2,0xb8,0x78,0x2f,0x12,0x63,0x7b,0x1b,0x83,0xb1,
+ 0xdc,0x2a,0x96,0xbc,0xc7,0x3d,0x57,0x30,0x2,0xe4,0x81,0x36,0xe7,0xba,0x6e,0x37,
+ 0x32,0x86,0x2e,0x4d,0xf3,0x3,0x19,0xcf,0xa6,0x69,0x22,0x1b,0xd,0xe3,0x16,0x45,
+ 0x2f,0xd1,0xde,0xc6,0xa5,0x82,0xc0,0x8e,0xdb,0x5,0x67,0x1b,0xc0,0xce,0xce,0x8e,
+ 0xa6,0x69,0xb6,0x6d,0x93,0x9,0x8d,0x55,0xb8,0x4d,0x6e,0xdb,0x76,0x30,0x18,0x2c,
+ 0x95,0x4a,0x42,0x94,0x79,0xe3,0x68,0xdf,0x82,0xcb,0x80,0x6f,0x1a,0x28,0x96,0x4a,
+ 0x92,0x18,0xfc,0x16,0xb0,0x2f,0x4d,0xd3,0x70,0xef,0x8e,0xa6,0x69,0xd9,0xec,0x3b,
+ 0x0,0x40,0x12,0xf2,0xcf,0xd8,0x2,0x8a,0x44,0x17,0x9d,0x6d,0x3,0x82,0xc7,0x7e,
+ 0x9d,0x5e,0x4c,0x5c,0xea,0x4c,0xbd,0xbb,0xdb,0x6f,0x25,0xb3,0x74,0xcb,0xd2,0x38,
+ 0xd8,0xb6,0xd,0xce,0xde,0x49,0x1a,0x52,0xbe,0xe2,0x12,0x47,0x8f,0x2f,0xcf,0xc2,
+ 0x8,0xb3,0x7b,0xe8,0xa8,0x29,0xba,0x1d,0xb7,0x0,0x4d,0x41,0x6,0x73,0x20,0xf0,
+ 0x25,0x84,0x81,0xb4,0x44,0xa7,0x14,0xd2,0x15,0xa3,0x47,0x64,0x1e,0x3,0x0,0xf2,
+ 0x96,0xc8,0x8c,0x7c,0x26,0x3d,0x89,0xcd,0x4a,0x61,0x21,0xae,0x45,0xe9,0x33,0xf7,
+ 0x45,0x1,0xf3,0x2a,0x7f,0x35,0xa4,0x45,0x28,0x3f,0xfe,0xf8,0x63,0x7b,0x35,0x6d,
+ 0xdb,0x2e,0x97,0xcb,0xd1,0x68,0x14,0xbf,0x2e,0x2f,0xff,0xb6,0xb1,0xbe,0x71,0x58,
+ 0x3d,0xdc,0xdb,0xdb,0x8b,0x46,0xa3,0xe9,0xf4,0x6a,0x26,0x93,0xa9,0xd7,0xeb,0xbb,
+ 0x3b,0xbb,0x7f,0x14,0xa,0x23,0xa3,0xa3,0x7d,0x7d,0x7d,0xa6,0x69,0xfe,0xfa,0xeb,
+ 0x8b,0x7a,0xbd,0x5e,0x78,0x5f,0x38,0xac,0x1e,0x2,0x40,0x34,0x1a,0x5d,0x5e,0xfe,
+ 0xad,0x56,0xab,0xf5,0xf5,0xf5,0xfd,0xfe,0xfb,0xef,0x42,0x88,0x42,0xa1,0x30,0x3c,
+ 0x3c,0x9c,0x4c,0x3e,0xbf,0x7d,0xfb,0x36,0x0,0x50,0x95,0x4d,0x73,0x73,0x63,0x63,
+ 0xe3,0x9f,0x13,0x13,0x0,0xb0,0xb8,0xb8,0x70,0x70,0x50,0x29,0x16,0x8b,0xbc,0x71,
+ 0x21,0xc4,0x52,0x32,0xb9,0xb7,0xb7,0x77,0x58,0x3d,0x5c,0x5f,0x5f,0xaf,0x56,0xf,
+ 0xc2,0xe1,0x88,0x24,0x24,0xa2,0x69,0xc9,0xf7,0xef,0xf3,0xeb,0xeb,0x59,0xbc,0x5,
+ 0x5e,0x1d,0x25,0xf9,0xf4,0xe9,0x53,0x32,0xf9,0xbc,0x58,0xdc,0x3d,0x3e,0x3e,0xda,
+ 0xd8,0xc8,0x55,0xab,0x7,0xd9,0x6c,0xb6,0x5c,0x2e,0x17,0xa,0x5,0x2c,0x29,0x84,
+ 0x78,0xf5,0x6a,0x65,0xd3,0xdc,0x3c,0xac,0x1e,0xee,0xee,0xec,0x6e,0x6d,0x6f,0x45,
+ 0xa3,0xd1,0xf7,0xef,0xf3,0x85,0x42,0x61,0x6f,0x6f,0x6f,0x7f,0x7f,0xbf,0x56,0xab,
+ 0xad,0xaf,0x67,0x51,0x12,0x1a,0x1c,0xea,0x88,0xb7,0xbf,0xb5,0xb9,0x8d,0xd5,0xdd,
+ 0x32,0x1f,0x56,0xf,0xcb,0xe5,0xf2,0xeb,0xd7,0xaf,0x7,0x7,0x7,0x71,0xad,0xef,
+ 0xf2,0xf2,0x6f,0xd8,0x29,0x5d,0x5c,0x5c,0x5c,0x0,0x80,0xf2,0xe7,0xf2,0xfe,0xfe,
+ 0xde,0xe6,0xe6,0x26,0xe,0x69,0xbd,0x5e,0xdb,0xde,0xde,0x1a,0x1d,0x35,0x70,0xf4,
+ 0xf6,0xf7,0xf7,0xb1,0xfd,0xff,0x3d,0x7b,0x36,0x38,0x38,0x18,0x8,0x4,0x9a,0xe,
+ 0x5d,0x32,0xf9,0xbc,0x5c,0x2e,0xef,0xee,0xec,0xf6,0x7,0x83,0xbc,0xcc,0xc6,0xfa,
+ 0xc6,0x8d,0x50,0xc8,0x83,0xbd,0x48,0x3f,0xfc,0xdc,0xe3,0x84,0x79,0x38,0x91,0x88,
+ 0x4e,0x4a,0xe3,0xd2,0x7f,0x85,0x21,0xd0,0x98,0x26,0x4a,0x4a,0x76,0x21,0x45,0x80,
+ 0xa8,0x3a,0x9f,0xdf,0xba,0xe7,0xc6,0x5f,0xd,0x6f,0xe1,0x7c,0x3d,0xcc,0xea,0x80,
+ 0x8a,0xd6,0xaf,0x10,0x22,0x97,0xcb,0xcf,0xcd,0x3d,0xd4,0x34,0x4d,0x51,0x94,0xff,
+ 0xfe,0xf2,0xb,0x3a,0x7b,0x32,0x6b,0x6b,0x93,0x93,0x93,0xb1,0x58,0x1c,0x1f,0x44,
+ 0x9e,0x89,0x46,0xd3,0xb4,0xc9,0xc9,0x49,0xb4,0xc0,0xf1,0x65,0x8f,0xed,0xa4,0x52,
+ 0x2f,0x13,0x89,0x19,0xd4,0x3,0x4b,0x4b,0xc9,0x74,0x7a,0x75,0x7a,0xfa,0x4b,0xd2,
+ 0x46,0xec,0x6b,0x71,0x61,0x1,0x1b,0x5f,0x5f,0x7f,0x47,0x2,0x98,0xa6,0x99,0x4a,
+ 0xbd,0xa4,0x92,0x12,0x5a,0x95,0x2c,0x16,0x8b,0x8f,0x1e,0x3d,0x56,0x55,0x35,0x9b,
+ 0x7d,0x97,0xcf,0xe5,0xa7,0xa7,0xe5,0x8a,0xe1,0x70,0x38,0x16,0x8b,0x8f,0x8c,0x98,
+ 0xa9,0xd4,0x4b,0xbc,0x11,0xaa,0x5e,0x2a,0x95,0x44,0x59,0x3c,0x7a,0xfc,0x18,0xc5,
+ 0x5e,0x5c,0x5c,0xb0,0x6d,0x3b,0x16,0x8b,0x5b,0x96,0x85,0xb5,0x50,0x9d,0x62,0x8f,
+ 0xdb,0x5b,0x16,0x76,0x64,0xdb,0xf6,0x4a,0x2a,0xa5,0x69,0x26,0x6a,0x45,0x2c,0x89,
+ 0x9c,0x91,0x16,0x5a,0x99,0xe6,0x7,0x92,0x39,0x9d,0x5e,0xb5,0xed,0x5d,0xc3,0x30,
+ 0x52,0xa9,0x65,0x0,0x98,0x9d,0x9b,0x53,0x55,0x15,0x25,0x9,0x85,0x42,0x4f,0x9e,
+ 0xfc,0x67,0x7e,0xfe,0xe9,0xfd,0x44,0x2,0x75,0x38,0xe,0xa9,0x69,0x9a,0x99,0xb5,
+ 0x35,0x0,0xb0,0x6d,0x5b,0xd,0xaa,0x98,0x2a,0xc0,0xb6,0x6d,0x51,0x11,0xa1,0x50,
+ 0xc8,0x63,0xe8,0xc6,0xc6,0xc6,0x71,0xf0,0x17,0x17,0x16,0x22,0x23,0x61,0xbc,0x9e,
+ 0xcd,0xbe,0x5b,0x49,0xa5,0xf0,0x66,0x9b,0xa2,0xa7,0x71,0xd5,0x31,0x2a,0x43,0xda,
+ 0xf4,0xd3,0xeb,0x44,0x80,0x30,0xea,0x4b,0xc5,0x68,0x96,0x2b,0x4d,0x44,0x39,0xdb,
+ 0xe9,0x2b,0x3a,0xba,0x9a,0x1a,0xc3,0x92,0xbe,0x85,0x4e,0xdd,0xb5,0x77,0x46,0x9c,
+ 0x27,0x75,0xc3,0x61,0xe7,0x84,0x4e,0x55,0xc5,0x47,0x13,0x0,0x76,0x76,0x76,0xf0,
+ 0xa2,0x10,0x42,0x54,0x84,0x61,0xdc,0xc2,0x2,0x91,0x91,0x30,0x25,0xd6,0x68,0x85,
+ 0x52,0xa9,0xa4,0x6,0x55,0xb2,0xdf,0xc6,0xc6,0xc6,0x33,0x6b,0x6b,0xc8,0xa8,0x91,
+ 0x91,0x2f,0x17,0x89,0xff,0xd3,0xd3,0x77,0xd1,0xfc,0x13,0x42,0x48,0x5b,0x88,0x25,
+ 0xb4,0x2a,0xa9,0xeb,0x3a,0xca,0xac,0x69,0x7a,0x26,0x93,0x71,0x57,0x44,0xbb,0x11,
+ 0x69,0xc6,0x3f,0x3,0x80,0x61,0x18,0x41,0xe7,0x4c,0xc3,0x52,0xa9,0xe4,0xae,0x4b,
+ 0xb0,0xed,0xdd,0xc8,0x48,0xd8,0xe9,0x48,0x8b,0x8c,0x84,0x6d,0x7b,0xd7,0x30,0xfe,
+ 0x41,0x6d,0xe2,0x4c,0xc1,0x9d,0x4e,0x59,0x94,0x85,0x69,0x9a,0xa1,0x50,0x88,0x78,
+ 0x55,0xb2,0xf7,0x26,0xa7,0xa6,0xb0,0x98,0x61,0x18,0x99,0xb5,0xb5,0x52,0xa9,0xd4,
+ 0x54,0x19,0x86,0x42,0x21,0xcc,0x55,0x60,0xdb,0x45,0xcc,0x4d,0x8b,0x1e,0x6f,0x35,
+ 0xa8,0xaa,0xaa,0xea,0x31,0x74,0x64,0xcf,0x8b,0x8a,0x98,0x98,0x88,0xd3,0x38,0x64,
+ 0x32,0x19,0x8f,0xb5,0xa2,0xa4,0x69,0xe9,0x73,0x2f,0x5b,0x18,0x8c,0x1e,0x29,0x3a,
+ 0x68,0xab,0xee,0xe4,0x8e,0x94,0xaa,0xf3,0xaf,0x44,0x45,0x8c,0x27,0x71,0x26,0x93,
+ 0xf3,0x59,0xd2,0xea,0x70,0x65,0xa3,0x3e,0x3e,0x71,0x51,0x71,0xdd,0x52,0xa9,0xb4,
+ 0x94,0x4c,0xe2,0xe3,0x82,0x19,0x24,0xa4,0xe3,0x4b,0x82,0x41,0xf5,0x44,0xea,0xa,
+ 0x51,0xe6,0x9a,0x39,0x18,0xc,0x52,0xae,0xc,0xf7,0xb2,0x7e,0x8c,0x88,0x98,0xe6,
+ 0x26,0xf5,0xd8,0xba,0x59,0xbf,0x25,0xfd,0x43,0x51,0x14,0xd3,0xfc,0x63,0x25,0x95,
+ 0xa2,0x8c,0x19,0xad,0xf0,0xf1,0xe3,0x27,0x7a,0xc7,0x1,0x40,0x30,0xa8,0x5a,0x96,
+ 0x75,0xa2,0xe3,0x19,0x15,0x78,0x2a,0xf5,0x12,0x0,0xc,0x63,0x74,0x72,0xf2,0x8e,
+ 0xaa,0xaa,0xa2,0xd2,0xb0,0x11,0x42,0x1d,0x50,0x5b,0xbd,0xb3,0x70,0xd8,0x4d,0xd3,
+ 0xac,0x54,0x4,0xa6,0x1,0xc1,0x6c,0x3b,0x21,0xed,0x6,0xf8,0x18,0x10,0xfc,0xdf,
+ 0xa1,0x29,0xce,0x2f,0x7a,0x53,0x17,0x21,0x99,0xca,0x14,0xbf,0x45,0xf6,0x82,0xcb,
+ 0xed,0x2c,0xb1,0x4e,0xd2,0xc0,0x9c,0xa8,0xee,0x9f,0xa4,0xd9,0x6c,0x97,0xba,0xa7,
+ 0x86,0x6d,0xdb,0x68,0x52,0x6a,0x9a,0xae,0x69,0xda,0xd2,0x52,0xf2,0x22,0x7a,0x91,
+ 0xf0,0xea,0xd5,0xa,0x0,0x24,0x12,0x33,0xb8,0xc1,0x28,0x99,0x7c,0x7e,0xf6,0x92,
+ 0xfe,0xf1,0xf6,0xed,0x9b,0xed,0x2d,0x6b,0x72,0x6a,0x2a,0x14,0xa,0xa9,0xaa,0x3a,
+ 0x3f,0xff,0xf4,0xec,0x6d,0x4a,0x98,0x9d,0x9d,0x13,0x42,0xac,0xaf,0xbf,0xdb,0xde,
+ 0xb2,0x96,0x92,0x49,0xf,0x7b,0xb5,0x29,0x74,0x5d,0x17,0xa2,0xfc,0xf1,0xe3,0xa7,
+ 0xb1,0xb1,0x71,0x70,0xf2,0x6c,0xe1,0x4b,0xc4,0xe7,0x80,0xcc,0xcd,0x3d,0xe4,0x5f,
+ 0x79,0x28,0x5e,0x2,0x91,0x8a,0x7b,0x8c,0x11,0x81,0x40,0x80,0x16,0x2a,0x93,0xca,
+ 0x85,0x46,0x15,0x2d,0xcd,0x93,0xa1,0xd1,0x30,0xe6,0x6c,0x94,0xd4,0xaf,0xbb,0xe2,
+ 0x57,0x8c,0xb,0xa2,0x6e,0x51,0xd7,0xf5,0x3f,0x5d,0xaf,0x65,0x1,0xce,0x7f,0x9a,
+ 0x5c,0xc7,0x52,0x6e,0xb4,0xa6,0x50,0xd5,0x1,0x9e,0x2,0xa,0x9b,0x6d,0x55,0xb8,
+ 0x58,0x2c,0xe2,0xec,0x1a,0x0,0xbc,0x4d,0x56,0xff,0x25,0xfd,0xc3,0xb2,0xac,0xb1,
+ 0xf1,0x31,0xc9,0x59,0xdd,0x14,0x43,0x43,0x83,0xfc,0xde,0xf7,0xf7,0xf7,0xe8,0xa8,
+ 0x41,0xf,0x90,0xe7,0x79,0x7a,0xfa,0xae,0xa6,0x99,0xa8,0x7e,0x75,0x5d,0xb7,0xed,
+ 0x22,0x51,0x48,0x94,0x85,0x47,0xce,0xfa,0xa1,0xa1,0x41,0xcb,0xb2,0x8a,0xc5,0xe2,
+ 0xb7,0xdf,0x4e,0xa2,0xaa,0xc7,0xcf,0xe0,0x63,0x40,0xc8,0x86,0xa7,0x1b,0xcc,0x64,
+ 0x5e,0x4b,0xd9,0x8b,0x38,0xb8,0x26,0x94,0x96,0x34,0x22,0x99,0x15,0x45,0xe1,0x6b,
+ 0x9b,0xdd,0x15,0xdd,0xd,0x92,0xae,0x96,0x4a,0x36,0x55,0xce,0x7f,0x7,0x5c,0xd4,
+ 0xf4,0x5d,0x94,0x5,0x22,0x9d,0x5e,0x25,0x2b,0x57,0xd7,0xf5,0x37,0x6f,0x32,0x42,
+ 0x8,0xdb,0xb6,0xd1,0x3c,0xf3,0x6,0xee,0x83,0x4d,0xa7,0x57,0xb1,0x4a,0x3e,0x97,
+ 0xe7,0xa6,0xa6,0x4,0x35,0xa8,0x9a,0xe6,0x1f,0x0,0x60,0xdb,0x36,0xba,0x64,0xce,
+ 0x5e,0xd2,0x3f,0xfa,0xfb,0xaf,0x7d,0x59,0xa9,0x22,0x4,0x2a,0x31,0x82,0x94,0xfb,
+ 0xca,0x30,0xfe,0x61,0x9a,0x9b,0x48,0xc5,0x6c,0xf6,0x9d,0x69,0x6e,0xe2,0x44,0xf7,
+ 0x44,0xe4,0x73,0x79,0x7c,0x29,0xd8,0xf6,0x2e,0x9a,0xb5,0xe1,0x70,0x38,0x9f,0xcb,
+ 0xe3,0x1,0x2,0xe9,0xf4,0x2a,0x38,0x23,0xd6,0x14,0x9a,0x76,0x93,0xde,0xa1,0x9a,
+ 0xa6,0xa3,0xa7,0xa,0x39,0xe9,0x67,0x40,0x74,0x5d,0xcf,0xe7,0x73,0xf8,0x3f,0xcd,
+ 0x64,0x5e,0x97,0xec,0xbd,0x13,0xe3,0x43,0x3d,0x8e,0xf,0x99,0x83,0xb2,0x43,0xf5,
+ 0x3b,0x8,0x32,0xf4,0xb7,0x0,0x1d,0x35,0xc2,0x3d,0xcc,0xdc,0xb7,0xfc,0x75,0xdb,
+ 0xc6,0x4d,0x71,0x21,0x5a,0xd7,0x30,0x6e,0x59,0x96,0x85,0x53,0xa3,0xf1,0xf1,0x31,
+ 0xc3,0x18,0xc5,0xc7,0xf7,0xde,0xbd,0xfb,0x4b,0xc9,0xe4,0xe2,0xe2,0x82,0x1a,0x54,
+ 0xd,0x63,0x54,0x4a,0x95,0x88,0xce,0xa1,0xf9,0xf9,0xa7,0x89,0xc4,0x97,0xe3,0x2,
+ 0x54,0x55,0xbd,0x9f,0x48,0xac,0xa4,0x52,0xb9,0x5c,0x1e,0x9b,0xf2,0x58,0xd5,0x30,
+ 0x39,0x35,0x95,0x4a,0xbd,0xcc,0xe5,0xf2,0x6a,0x50,0xc5,0xcf,0xad,0xb4,0x9f,0xff,
+ 0x92,0xfe,0x31,0x3e,0x3e,0xb1,0x92,0x4a,0xcd,0xcf,0x3f,0xc5,0x36,0x45,0xf9,0x4b,
+ 0xe,0xc7,0x70,0x38,0x9c,0xc9,0x64,0xb6,0xb7,0xac,0xb1,0xf1,0x31,0xe7,0x36,0xb5,
+ 0x44,0x62,0x26,0x95,0x7a,0x89,0x9e,0xb0,0x44,0x62,0x6,0xe3,0xd8,0xde,0xed,0xf3,
+ 0x21,0x55,0x83,0x2a,0x26,0x88,0x8d,0xc5,0xe2,0x95,0x8a,0x40,0xfb,0x16,0x2f,0x4a,
+ 0x74,0xa2,0x21,0x7d,0xf4,0xe8,0x31,0x7a,0xaa,0xd0,0x6c,0x41,0xc6,0x92,0x9,0xe3,
+ 0x67,0x40,0xee,0xdd,0xbb,0xff,0xea,0xd5,0x8a,0x24,0x40,0x17,0x7f,0x21,0x7a,0xb2,
+ 0xd9,0xec,0x5,0x35,0xcd,0x43,0xff,0x7e,0xae,0x83,0xb3,0x32,0xc1,0xfd,0x2b,0x3e,
+ 0xd9,0x1e,0x93,0x2b,0x5e,0xfd,0xc4,0x62,0xa7,0x2a,0xe9,0x1f,0xa7,0x12,0xbe,0x55,
+ 0x61,0x6f,0xb4,0xd1,0x94,0xcf,0x8e,0x7c,0xe,0x88,0xcf,0x7f,0x44,0x17,0x97,0x80,
+ 0xb,0xa4,0x6e,0x17,0x5d,0x74,0x71,0x71,0xf8,0xa,0x43,0xd5,0x5d,0x74,0xf1,0x77,
+ 0x40,0x97,0xba,0x5d,0x74,0x71,0x25,0xd1,0xa5,0x6e,0x17,0x5d,0x5c,0x49,0x4,0xb6,
+ 0xb7,0xb7,0x9b,0xfe,0x10,0x89,0x44,0x2e,0x59,0x94,0x2e,0xba,0xe8,0xc2,0x3f,0xfe,
+ 0xf,0xd,0x28,0xea,0xf0,0x6b,0xc6,0x29,0x94,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,
+ 0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/layer-sound.png
+ 0x0,0x0,0x3,0x72,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x13,0x0,0x0,0x0,0x10,0x8,0x6,0x0,0x0,0x0,0xf4,0xc4,0x44,0x62,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x3,0x4,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0x60,0xc0,0xf,0x84,0x58,0x59,0xd9,0x3f,0x2,0xe9,0xff,0x9a,0x9a,0x9a,0x33,0xd0,
+ 0xe4,0x18,0x81,0xd8,0x3,0x88,0xd7,0x3,0xb1,0x30,0x48,0x0,0x20,0x80,0x98,0xf0,
+ 0x18,0x24,0x29,0x22,0x2a,0x77,0x44,0x5d,0x5d,0x83,0x6d,0xd7,0xae,0x5d,0xc,0x22,
+ 0x22,0x22,0xb1,0x30,0x4d,0x40,0x60,0x6,0xc4,0x9b,0x80,0x58,0x1f,0x88,0x41,0xe2,
+ 0x6f,0x41,0x82,0x0,0x1,0xc4,0x8c,0xcd,0x14,0x76,0x76,0x76,0x45,0x61,0x11,0xb9,
+ 0x7d,0x6e,0x1e,0xd9,0xea,0xaa,0xca,0x3c,0x4c,0xfa,0xfa,0xfa,0x8c,0x9c,0x9c,0x9c,
+ 0xac,0x4f,0x9e,0x3c,0xf9,0xf4,0xf6,0xed,0xdb,0xc3,0x40,0x25,0x1c,0x40,0xbc,0x8,
+ 0x88,0xf7,0x1,0xf1,0x2f,0x98,0x3e,0x80,0x0,0xc2,0x70,0x19,0x1b,0x1b,0x9b,0xa6,
+ 0x80,0x90,0xec,0xfe,0xd4,0xcc,0x59,0x2a,0x9f,0x3e,0x5c,0xfd,0x64,0x65,0x65,0x5,
+ 0x56,0x63,0x60,0x60,0xc0,0xc0,0xc5,0xc5,0x15,0xe,0x55,0x76,0x17,0x88,0x3f,0x43,
+ 0xd9,0x2c,0x40,0xec,0x8,0xc4,0xe9,0x0,0x1,0xc4,0x2,0x15,0x0,0xb9,0x50,0x84,
+ 0x95,0x95,0xd5,0x5b,0x54,0x4c,0xb9,0x21,0x39,0x63,0xba,0x2c,0x37,0xb7,0x0,0xc3,
+ 0xbb,0xb7,0xf,0x98,0xa5,0xa5,0xa5,0x19,0x18,0x19,0x19,0x19,0x80,0x2e,0x63,0x0,
+ 0xca,0x8b,0xfd,0xff,0xff,0x1f,0xcc,0x7,0x2,0x63,0x20,0xce,0x6,0x62,0x1,0x20,
+ 0x6,0xb9,0x76,0x3,0x40,0x0,0x81,0xc,0x63,0x13,0x12,0x92,0x3e,0x23,0x29,0xa5,
+ 0x26,0x7e,0xed,0xea,0x41,0xd1,0x94,0xcc,0x59,0x8c,0x5c,0x5c,0xbc,0x10,0x67,0x33,
+ 0x83,0x6d,0x65,0x0,0x19,0x0,0xf5,0x3e,0x37,0x23,0xc4,0x24,0x90,0xc0,0x2b,0x20,
+ 0x2e,0x85,0x85,0x17,0x8,0x0,0x4,0x10,0x8b,0xbd,0xbd,0xfd,0x4f,0x31,0x49,0xa7,
+ 0x5f,0xff,0x80,0xf2,0xc6,0x66,0xbe,0xc,0x30,0x83,0x40,0xe0,0xf6,0xad,0x5b,0xac,
+ 0x35,0x35,0xb5,0xc,0x36,0x36,0xd6,0xc,0xde,0xde,0xde,0xc,0xfc,0xfc,0xfc,0x3c,
+ 0x40,0x61,0x7e,0x20,0xfe,0x0,0xc4,0x8f,0xd1,0x83,0x8,0x20,0x80,0xc0,0xe1,0x21,
+ 0x25,0xa3,0xce,0xf6,0xee,0xcd,0xa3,0xaf,0xc2,0x22,0xb2,0x8c,0xc8,0x92,0x4a,0xca,
+ 0x2a,0xc,0xe9,0xe9,0x59,0xc,0x17,0x2f,0x5e,0x66,0xf8,0xfa,0xf5,0x2b,0xc8,0xab,
+ 0xff,0x80,0xc2,0xdc,0x50,0x69,0x71,0x20,0x2e,0x80,0xba,0xae,0x1a,0x88,0xeb,0x1,
+ 0x2,0x8,0xec,0x8d,0x9f,0x3f,0xbe,0x32,0xfc,0xfa,0xf9,0xfd,0x3f,0x2b,0x2b,0x7,
+ 0x5a,0x42,0x62,0x4,0xfb,0x8f,0x9b,0x9b,0x9b,0x41,0x43,0x43,0x83,0xe1,0xfb,0xf7,
+ 0xef,0x7f,0x80,0xdc,0x2f,0x50,0x69,0x50,0x4,0x9c,0x4,0xe2,0xdf,0xd0,0x18,0xfd,
+ 0x5,0x10,0x40,0x60,0xc3,0xee,0xdc,0x3e,0xfd,0x49,0x4c,0x42,0x99,0xeb,0xc5,0xf3,
+ 0x3b,0xff,0x91,0x5d,0xf7,0xe1,0xc3,0x87,0xff,0x7b,0xf6,0xec,0x62,0x70,0x77,0x77,
+ 0x65,0x50,0x50,0x50,0x60,0xf8,0xfc,0xf9,0xf3,0x77,0xa0,0xf0,0x27,0xa8,0xf4,0x37,
+ 0x20,0x3e,0x8e,0x6c,0x39,0x40,0x0,0xb1,0x1c,0x3c,0x78,0x90,0x5d,0x48,0xe4,0xfe,
+ 0xea,0xdf,0xbf,0x7f,0x68,0x7f,0xfe,0xf8,0x4a,0xb9,0xae,0x79,0x3f,0x3,0x37,0x8f,
+ 0x20,0x24,0x8a,0x99,0xd9,0x3e,0x67,0x65,0x65,0x8,0x9a,0x9a,0x9a,0x82,0x23,0x81,
+ 0x99,0x99,0xf9,0xb,0x90,0xfe,0xf,0x8d,0x4d,0x55,0x20,0xf6,0x6,0xe2,0x65,0xd0,
+ 0xc8,0x60,0x0,0x8,0x20,0x50,0x98,0xfd,0x2,0x86,0x97,0x3f,0xd0,0x20,0x15,0x60,
+ 0x1a,0x53,0x3b,0xb8,0xa7,0x1,0xe8,0xa2,0x17,0x60,0xc3,0xf8,0xf8,0x25,0xff,0xaa,
+ 0xa9,0xa9,0x31,0xb0,0xb0,0x40,0x52,0xd0,0xeb,0xd7,0xaf,0xdf,0x23,0x39,0xe4,0x1e,
+ 0x10,0x5f,0x3,0xe2,0x2e,0x20,0x5e,0x1,0xc4,0xae,0x0,0x1,0xc4,0x82,0xec,0xcc,
+ 0x5f,0xbf,0x7e,0xdd,0x6,0xba,0x54,0x1a,0xc8,0x7c,0x6a,0x66,0x5d,0x4,0x8c,0x18,
+ 0x3,0x5e,0x60,0xaa,0xff,0x2f,0x2c,0x2c,0xcc,0xf8,0xec,0xd9,0x33,0x86,0x1f,0x3f,
+ 0x7e,0x9c,0x44,0x52,0xfe,0x17,0x88,0x77,0x41,0x31,0x28,0x86,0xd5,0x1,0x2,0x8,
+ 0x5b,0xde,0x7c,0x6,0x34,0x50,0xf8,0xd4,0xd1,0x3e,0x6,0x6e,0x5e,0x71,0xd6,0xfd,
+ 0xfb,0xf,0x82,0x3,0x7c,0xfd,0xfa,0xf5,0x1f,0x6f,0xdf,0xbe,0x3d,0x5,0xea,0xc5,
+ 0x20,0x20,0xf6,0x81,0x66,0x76,0x10,0x0,0x15,0x6,0xa7,0x0,0x2,0x8,0x5f,0x89,
+ 0xc1,0x3,0x4c,0x83,0xff,0xad,0xac,0xec,0x3f,0xff,0xfc,0xf9,0xf3,0xbf,0x9f,0x9f,
+ 0xdf,0x75,0x58,0xe2,0x85,0xe6,0xcd,0xa,0x20,0x5e,0xb,0xc4,0x7a,0x30,0x41,0x80,
+ 0x0,0x22,0x84,0xd8,0x41,0x6,0x2,0xc3,0xf2,0x7,0x1f,0x1f,0x9f,0x19,0x92,0x61,
+ 0xc,0x48,0x69,0x6d,0xa,0x10,0x2b,0x80,0x38,0x0,0x1,0x6,0x0,0xae,0x19,0xe5,
+ 0xdb,0xe5,0x56,0x21,0x6,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,
+ 0x82,
+ // /home/matthew/pencil_dev/icons/eraser2.png
+ 0x0,0x0,0x2,0x65,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x1f,0x0,0x0,0x0,0x18,0x8,0x6,0x0,0x0,0x0,0x2,0xab,0x26,0x81,
+ 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,0xd8,
+ 0xeb,0xf5,0x1c,0x14,0xaa,0x0,0x0,0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x6d,
+ 0x98,0x0,0x0,0x73,0x8e,0x0,0x0,0xea,0x48,0x0,0x0,0x86,0x0,0x0,0x0,0x77,
+ 0xef,0x0,0x0,0xd0,0xf0,0x0,0x0,0x32,0xf7,0x0,0x0,0x1c,0x74,0xb6,0xd2,0x6c,
+ 0xb,0x0,0x0,0x1,0xdb,0x49,0x44,0x41,0x54,0x78,0xda,0x62,0xfc,0xff,0xff,0x3f,
+ 0x3,0x2d,0x0,0x23,0x13,0x2b,0xd8,0xe0,0xff,0xff,0x7e,0x33,0xe2,0x52,0x3,0x10,
+ 0x40,0x2c,0xb4,0xb2,0xb4,0x71,0xe7,0xe5,0x74,0x18,0x1f,0x97,0x3,0x0,0x2,0x88,
+ 0x91,0x5a,0x3e,0x47,0xb3,0x74,0x26,0x92,0x54,0x7a,0xbd,0xbb,0xee,0x4c,0x6c,0xe,
+ 0x0,0x8,0x20,0x8a,0x2d,0xc7,0x63,0x29,0x3,0x21,0x7,0x0,0x4,0x10,0xd9,0x96,
+ 0x13,0x69,0x29,0x5e,0x7,0x0,0x4,0x10,0xc9,0x96,0x93,0x61,0x29,0x4e,0x7,0x0,
+ 0x4,0x10,0xd1,0x96,0xc3,0x2c,0x7d,0xf7,0xf6,0x95,0xf0,0xe4,0x33,0x2f,0xdf,0x52,
+ 0x10,0x53,0x70,0x7,0x0,0x4,0x10,0x41,0xcb,0x91,0x2d,0x5,0x52,0x6f,0xdf,0xbf,
+ 0x7f,0xf,0x16,0x5f,0x72,0xf7,0x17,0x3,0xa5,0xe,0x0,0x8,0x20,0x26,0x7c,0x96,
+ 0x82,0x30,0xc8,0x52,0x20,0x66,0x0,0x5a,0xa,0xb7,0x18,0x4,0x62,0x94,0xd9,0xc8,
+ 0xb2,0x55,0x8b,0xf,0x4c,0x81,0xa3,0xb,0x20,0x80,0x98,0x48,0xb5,0x14,0x19,0x90,
+ 0xe2,0x0,0xa8,0xa5,0xc,0xab,0x8f,0x5f,0x65,0xb8,0x7a,0xf5,0xea,0x2c,0x10,0x1b,
+ 0x20,0x80,0x50,0x82,0x1d,0x66,0x29,0x72,0xf0,0x12,0x3,0xf0,0x45,0x1,0xc8,0xd2,
+ 0x6b,0x9f,0x18,0x40,0x16,0xc2,0xc5,0x56,0x15,0x45,0x80,0x4b,0x3e,0x80,0x0,0x62,
+ 0xa2,0xd4,0x62,0x5c,0x21,0x80,0xe6,0x53,0x64,0xa9,0x59,0x30,0x6,0x40,0x0,0x81,
+ 0x7d,0x8e,0x54,0x4,0xfe,0x7,0x59,0x4c,0xaa,0xe5,0xc8,0x21,0x80,0xcd,0xa7,0xc8,
+ 0x16,0x3,0x7d,0x9d,0x6,0xcb,0x6a,0x0,0x1,0x84,0x5c,0xb6,0x83,0xc3,0x5f,0x50,
+ 0x50,0x10,0xcc,0x21,0xd5,0x1,0x4a,0x4a,0x4a,0xc,0xc,0x77,0x6f,0x80,0x7d,0x8a,
+ 0x3,0xa0,0x58,0xc,0x2,0x0,0x1,0xc4,0xc8,0xc0,0xc8,0x2,0xf,0x6e,0x98,0xc5,
+ 0x30,0xcb,0x89,0x71,0x0,0xc8,0xd2,0x3d,0x7b,0xf6,0x80,0xd5,0xae,0x79,0xca,0x84,
+ 0xd3,0x52,0x6c,0x35,0x1c,0x40,0x0,0xc1,0x2c,0x87,0xb,0xa0,0x3b,0x0,0x57,0x28,
+ 0x20,0x5b,0xa,0x3,0x68,0x96,0xe3,0xb4,0x14,0x6,0x0,0x2,0x8,0xc5,0xe7,0xc4,
+ 0x38,0x0,0x9b,0xa5,0x68,0x96,0x13,0xb4,0x14,0x6,0x0,0x2,0x8,0x9e,0xe0,0x8,
+ 0x39,0x0,0xc4,0xc7,0x65,0x29,0x14,0x84,0x87,0x85,0x47,0xad,0x24,0xc6,0x52,0x18,
+ 0x0,0x8,0x20,0x78,0x3e,0x27,0xe4,0x80,0xd5,0xab,0x57,0x53,0xcd,0x52,0x18,0x0,
+ 0x8,0x20,0x9c,0x85,0xc,0xb2,0x3,0x70,0x58,0x4c,0xb6,0xa5,0x30,0x0,0x10,0x40,
+ 0x18,0x15,0xb,0xba,0x3,0x40,0x41,0x4d,0x6d,0x4b,0x61,0x0,0x20,0x80,0x30,0xda,
+ 0x70,0xe0,0xaa,0xe,0xea,0x0,0x50,0xb9,0x8e,0xc5,0xd2,0x95,0x94,0x5a,0xa,0x3,
+ 0x0,0x1,0x84,0xb3,0x4a,0x5,0x39,0x60,0xd5,0xca,0x65,0xe1,0x20,0x36,0xb5,0x7c,
+ 0x8a,0xe,0x0,0x2,0x8,0x6f,0x7d,0x4e,0x4c,0xf3,0x97,0x12,0x0,0x10,0x60,0x0,
+ 0x83,0xe1,0x74,0x16,0x50,0xec,0xe9,0x34,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,
+ 0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/move.png
+ 0x0,0x0,0x1,0x26,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0xf,0x0,0x0,0x0,0xe,0x8,0x6,0x0,0x0,0x0,0xf0,0x8a,0x46,0xef,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x0,0xb8,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0x60,0xc0,0xf,0x2a,0xf0,0x49,0x2,0x4,0x10,0x3e,0xe4,0xa,0xc4,0xff,0x81,0xd8,
+ 0x18,0x97,0x2,0x80,0x0,0xc2,0x87,0xe,0x43,0x35,0x6f,0xc1,0xa5,0x0,0x20,0x80,
+ 0x8,0xd9,0xfa,0x1f,0x9f,0xed,0x0,0x1,0x84,0xf,0xb5,0x43,0x35,0xe2,0xf4,0x37,
+ 0x40,0x0,0x31,0x21,0xb1,0x15,0x81,0x78,0x26,0x10,0x5b,0xe2,0x31,0x70,0x5,0x10,
+ 0x7b,0xc0,0x38,0x0,0x1,0x84,0xac,0xe9,0xf,0x9a,0x53,0xf1,0xe1,0x63,0x20,0x43,
+ 0x0,0x2,0x8,0x64,0x33,0xf,0x10,0xb,0x1,0x31,0x33,0x9,0x5e,0xe2,0x7,0xe9,
+ 0x1,0x8,0x20,0x64,0x1,0x5d,0x20,0x5e,0xd,0xc4,0x36,0x78,0xfc,0xbc,0x1d,0x88,
+ 0xa3,0x60,0x1c,0x80,0x0,0x62,0x41,0x92,0xb8,0xc,0xc4,0xa1,0x4,0x6c,0xf4,0x44,
+ 0xe6,0x0,0x4,0x10,0xbe,0xa8,0x7a,0xe,0xb5,0xf9,0x9,0xae,0x40,0x4,0x8,0x20,
+ 0x5c,0x88,0xd,0x88,0xef,0x41,0x35,0x5f,0xc2,0xa5,0x8,0x20,0x80,0xf0,0xa1,0x64,
+ 0xa8,0xe6,0x10,0x5c,0xa,0x0,0x2,0x88,0x90,0xed,0x1b,0xf1,0x29,0x0,0x8,0x30,
+ 0x0,0xa1,0xda,0x26,0xbe,0x2a,0xea,0x46,0xb5,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,
+ 0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/onionStraightAhead.png
+ 0x0,0x0,0x4,0x5,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x14,0x0,0x0,0x0,0x15,0x8,0x6,0x0,0x0,0x0,0x46,0xd5,0xce,0xa8,
+ 0x0,0x0,0x0,0x1,0x73,0x52,0x47,0x42,0x0,0xae,0xce,0x1c,0xe9,0x0,0x0,0x0,
+ 0x6,0x62,0x4b,0x47,0x44,0x0,0xff,0x0,0xff,0x0,0xff,0xa0,0xbd,0xa7,0x93,0x0,
+ 0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13,0x1,
+ 0x0,0x9a,0x9c,0x18,0x0,0x0,0x0,0x7,0x74,0x49,0x4d,0x45,0x7,0xd9,0x9,0x19,
+ 0x1,0x4,0x9,0xc5,0x96,0x8a,0xb4,0x0,0x0,0x3,0x85,0x49,0x44,0x41,0x54,0x38,
+ 0xcb,0x9d,0x94,0x6d,0x48,0x5b,0x57,0x18,0xc7,0x9f,0x7b,0xcf,0xbd,0x49,0xd4,0xd4,
+ 0xe6,0xe6,0xc6,0x3a,0x6f,0xa8,0x33,0xed,0xd6,0xb1,0xd9,0xb4,0x9b,0x88,0xb0,0x71,
+ 0x9,0xea,0x60,0x29,0x58,0xf4,0x8b,0x60,0xf7,0xa1,0x35,0xa9,0xba,0x65,0x8c,0x75,
+ 0x5f,0xa,0x93,0xe,0x37,0xd8,0x1b,0x6c,0x20,0xa3,0x1d,0x8c,0x41,0x45,0x94,0xd0,
+ 0x42,0xfd,0x20,0x83,0x41,0xf6,0x52,0x18,0x6e,0x9f,0xb6,0x99,0xe2,0xc4,0x64,0xc3,
+ 0x9a,0xe8,0x5d,0xd0,0xe4,0xfa,0x92,0x18,0x8d,0x79,0xb9,0x2f,0x39,0x77,0x5f,0x34,
+ 0xa6,0xf5,0x6e,0xce,0x3d,0x9f,0x9e,0xc3,0x39,0xe7,0xc7,0xff,0xf9,0xff,0xf,0x7,
+ 0xc1,0xbf,0xd4,0xe0,0xe0,0xe0,0xa9,0x58,0x2c,0xd6,0xc6,0xf3,0xbc,0xa9,0xa1,0xa1,
+ 0xe1,0xb2,0xaa,0xaa,0xad,0x3c,0xcf,0x57,0x65,0xb3,0xd9,0x2b,0x76,0xbb,0xbd,0xcb,
+ 0xe3,0xe9,0x1b,0x48,0x24,0xe2,0xcf,0xe5,0xf3,0xf9,0x58,0xed,0xc9,0xa7,0x6f,0x9b,
+ 0xcc,0xc7,0xde,0x20,0xf5,0x40,0xc1,0x60,0xf0,0xc4,0xc8,0xc8,0x88,0x7d,0x6c,0x6c,
+ 0xec,0xc5,0xfe,0xfe,0x7e,0xa9,0xa9,0xa9,0xc9,0x3e,0x33,0x33,0xe3,0x6e,0x6c,0x6c,
+ 0x9c,0x89,0xc5,0x96,0x5b,0x1d,0x8e,0xd3,0xde,0xf1,0xf1,0x7b,0xc7,0x7a,0x7b,0x7,
+ 0x92,0x79,0x45,0x6b,0x7f,0xde,0x75,0x71,0xf4,0xda,0xa7,0x7e,0x83,0xc5,0x5a,0x9b,
+ 0x26,0x1e,0x87,0xf9,0x7c,0xbe,0x33,0x81,0x40,0xe0,0xac,0xd3,0xe9,0x5c,0x62,0x18,
+ 0xc6,0x49,0x51,0x54,0x57,0x2a,0x95,0xba,0x1f,0xe,0x87,0xdb,0x5d,0xae,0x36,0x67,
+ 0x73,0x73,0x4b,0xdc,0x60,0x30,0x3e,0xb9,0x99,0xde,0x9a,0xff,0xfe,0xc7,0xa9,0xf3,
+ 0xa7,0x9b,0x5f,0x2e,0x3c,0xd3,0xe4,0xa,0x1,0x0,0x7c,0xf5,0xfe,0x80,0x86,0xf6,
+ 0x40,0x93,0x93,0x93,0xdc,0xf4,0xf4,0x74,0xab,0x28,0x8a,0x15,0x13,0x13,0x13,0xf9,
+ 0x48,0x24,0xf2,0x36,0xc7,0x71,0xf6,0xa1,0xa1,0xa1,0xa5,0xb9,0xb9,0xd0,0xe5,0x96,
+ 0x96,0x97,0xce,0x5d,0xbf,0xfe,0xce,0xd6,0xf6,0x76,0x66,0x7b,0xd4,0x3f,0xfe,0x2c,
+ 0x79,0xdc,0xce,0x5c,0xb8,0xf4,0xba,0x52,0x90,0x8b,0x4a,0x65,0x35,0xb3,0x1,0x0,
+ 0x10,0x9c,0xfa,0x6,0x28,0x0,0x0,0xbf,0xdf,0xcf,0x79,0x3c,0x9e,0xee,0x68,0x34,
+ 0x6a,0xca,0xe5,0x72,0xa8,0xa7,0xa7,0xe7,0x62,0x20,0x10,0x30,0x21,0x84,0xd2,0x57,
+ 0xaf,0xf6,0x75,0xdd,0xb8,0xf1,0xde,0x26,0x49,0x22,0xf5,0x83,0x8f,0x3f,0x7c,0x22,
+ 0x91,0xcc,0x71,0xee,0x57,0xdf,0x42,0x35,0x75,0x27,0x65,0x3d,0xbb,0x48,0x0,0x80,
+ 0x70,0x38,0x6c,0x72,0x38,0x1c,0xf,0x6c,0x36,0xdb,0xba,0x28,0x8a,0xa6,0xce,0xce,
+ 0xce,0x39,0x86,0x61,0x92,0x3b,0x3b,0x3b,0x24,0xcf,0xbb,0x54,0xab,0x95,0xc5,0x0,
+ 0x0,0x99,0x9c,0x6a,0xec,0xec,0xbd,0xa6,0x18,0x4d,0x15,0xff,0x18,0x64,0x29,0x14,
+ 0x8c,0x71,0x69,0x7c,0x45,0x51,0xca,0xc2,0xda,0xb7,0x99,0x42,0x8,0xe,0x2b,0xdd,
+ 0x94,0x9,0x82,0xd0,0xf6,0x7b,0xad,0x44,0xc4,0xba,0x8,0x42,0x1f,0x58,0x2c,0x16,
+ 0x49,0x7d,0x85,0x47,0xab,0xd2,0x45,0x8a,0xa2,0x8a,0x7b,0xbd,0xd1,0x68,0xc4,0x0,
+ 0x0,0x9a,0xa6,0xfd,0x7f,0x20,0xc6,0xb8,0xd4,0xab,0xaa,0x4a,0xee,0xaa,0x26,0x48,
+ 0x92,0x3c,0x84,0xaa,0x11,0x87,0x7a,0xf8,0xa8,0x9f,0xfb,0x47,0x48,0xdd,0xd3,0x9a,
+ 0xbe,0xc2,0x47,0x83,0x20,0x74,0x55,0x61,0x7c,0x84,0x91,0x49,0x92,0x2c,0x79,0x48,
+ 0xd3,0xf4,0x1,0xf,0x49,0x92,0xc4,0x65,0xb2,0xb5,0x23,0x3d,0x9b,0xb2,0xe4,0x9,
+ 0x55,0x2d,0x66,0xf7,0xd6,0xd9,0x5c,0x7e,0xeb,0xc0,0xc0,0xda,0x7f,0xf0,0x50,0x51,
+ 0x14,0x19,0x0,0x40,0x96,0x65,0x41,0x55,0x65,0x94,0x4e,0xa7,0xab,0x45,0x71,0x55,
+ 0x28,0x16,0x15,0xd3,0xce,0x76,0xda,0x82,0x10,0xa5,0xca,0x92,0x84,0x22,0xb,0xb,
+ 0x6,0x43,0x85,0x39,0x9,0x0,0x10,0x99,0xfb,0xb5,0x32,0xb9,0xba,0x4c,0x50,0x7a,
+ 0x40,0x9a,0xa6,0xd,0x0,0x10,0x15,0x45,0x91,0x3,0x0,0xda,0x60,0x30,0xfe,0x82,
+ 0x10,0xaa,0xc2,0x18,0x23,0x73,0x35,0xb3,0xb9,0xb1,0xbe,0x6,0x99,0xec,0x7a,0xde,
+ 0x5a,0xd7,0x30,0xaf,0xaa,0x32,0xdc,0xbd,0xf5,0xae,0x45,0xf8,0xe3,0xc1,0x77,0xa9,
+ 0xd5,0x95,0xcf,0x74,0x81,0xb3,0xb3,0xb3,0x61,0x41,0x10,0x78,0x9a,0xa6,0xd5,0x42,
+ 0x41,0x8e,0xc6,0xe3,0x71,0x73,0x55,0x95,0x39,0xf,0x58,0x93,0x17,0xa3,0x51,0xad,
+ 0xd2,0x62,0x5b,0x60,0xb9,0xda,0xf4,0x9f,0xc1,0x9f,0xcd,0xdf,0xde,0xf9,0x22,0xb7,
+ 0x91,0x58,0xf2,0x4a,0x92,0xb4,0x4,0x0,0x40,0x3d,0x96,0xec,0x4f,0xc3,0xc3,0xc3,
+ 0x28,0x14,0xa,0x9d,0x59,0x5b,0x5b,0xbb,0xeb,0xf5,0x7a,0xeb,0xdb,0xdb,0x5f,0x79,
+ 0x8d,0x61,0x98,0x87,0xa3,0xa3,0xb7,0x61,0x51,0x58,0xdc,0x6a,0xb3,0x9f,0x7a,0xa8,
+ 0x48,0x79,0xe2,0xce,0xe7,0x83,0x16,0x61,0xe1,0xf7,0xaf,0x53,0x89,0x95,0x9b,0xe5,
+ 0x6f,0xa7,0x4,0xcc,0x64,0x32,0xd5,0xf5,0xf5,0xf5,0x75,0x6e,0xb7,0x3b,0x27,0x49,
+ 0x92,0xd0,0xdd,0xdd,0x7d,0xd6,0x66,0xb3,0xad,0x60,0x8c,0x97,0x7d,0xbe,0xfe,0x62,
+ 0x24,0x32,0xff,0x11,0xf7,0xd4,0xf9,0x4f,0x42,0xbf,0x4d,0x55,0xfe,0x70,0xef,0xcb,
+ 0x4c,0x5c,0xf8,0xeb,0xa,0x40,0x21,0xa6,0x9b,0x66,0x47,0x47,0xc7,0xb,0x2c,0xcb,
+ 0xf6,0xed,0xf6,0x17,0x58,0x96,0xbd,0xb5,0xbb,0x75,0xae,0xa6,0xe6,0xc4,0x4d,0x0,
+ 0x40,0x0,0x0,0x66,0x8b,0x35,0xc8,0xd6,0x72,0x6f,0x1e,0xf8,0x11,0xca,0xea,0x6f,
+ 0x77,0xa1,0x84,0x11,0xdf,0xff,0xf0,0xf8,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,
+ 0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/prefs-files.png
+ 0x0,0x0,0x10,0xe0,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x3a,0x0,0x0,0x0,0x36,0x8,0x6,0x0,0x0,0x0,0x96,0x79,0x8a,0x53,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,
+ 0x0,0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67,0x65,0x52,0x65,0x61,0x64,
+ 0x79,0x71,0xc9,0x65,0x3c,0x0,0x0,0x10,0x72,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0x60,0xa0,0xf,0x60,0x4,0x62,0x26,0x28,0x4d,0x31,0xe0,0x66,0x63,0x67,0x10,0xe0,
+ 0xe0,0x4,0xb3,0x39,0x59,0xd9,0x18,0x98,0x19,0x99,0x8,0xea,0x1,0x8,0x20,0x16,
+ 0x98,0x43,0xd8,0xd9,0xd9,0x79,0xd8,0x39,0x38,0xf8,0xfe,0xff,0xff,0xc7,0xc2,0xf0,
+ 0x1f,0xec,0x28,0x26,0x72,0x1c,0xf1,0xff,0xff,0x7f,0x14,0x9a,0x85,0x85,0xe5,0xff,
+ 0xf7,0xef,0xdf,0x3f,0xfc,0x2,0x2,0x20,0xf7,0xf,0x10,0xff,0x6,0xe2,0xbf,0xc,
+ 0x74,0x6,0x0,0x1,0x4,0xf3,0xe8,0xff,0xa4,0xa4,0xa4,0xa2,0x8a,0x8a,0x8a,0x86,
+ 0x8f,0x1f,0x3f,0x7e,0x46,0x8a,0x5,0x84,0xc3,0xff,0xfd,0x67,0xf8,0x7,0xc,0x81,
+ 0xff,0xff,0xfe,0x31,0xfc,0xfb,0x7,0x12,0x83,0xd0,0x20,0x79,0x10,0xfe,0x7,0x16,
+ 0xff,0xc7,0xf0,0xe7,0xf7,0x1f,0x86,0x1f,0x3f,0x7f,0x30,0xfc,0xfc,0xf9,0x93,0xe1,
+ 0xf7,0xef,0xdf,0x8c,0x3c,0x3c,0x3c,0xac,0x7,0xe,0x1c,0x98,0xd2,0xd9,0xd9,0xd9,
+ 0x7,0xf5,0xe8,0x37,0x28,0xfe,0x7,0x32,0x96,0x5e,0x1e,0x5,0x8,0x20,0x16,0xa8,
+ 0x87,0xfe,0x73,0x71,0x71,0xf1,0x8a,0x8a,0x88,0x80,0x62,0x80,0x17,0x6b,0xc,0x81,
+ 0x3c,0x2,0xa5,0x61,0x9e,0x83,0x79,0x10,0xd9,0xa3,0x20,0xc,0x8a,0x3c,0x90,0x47,
+ 0xbf,0x7d,0xff,0xc6,0xf0,0xed,0xeb,0x37,0x6,0x7,0x7,0x87,0xbc,0x6f,0xdf,0xbe,
+ 0xf1,0xce,0x9a,0x35,0x6b,0xe,0x50,0xfc,0x39,0xd4,0xe8,0x1f,0xd0,0xd8,0xa5,0xb,
+ 0x0,0x8,0x20,0x98,0x47,0x99,0x80,0xe,0x64,0xff,0xf3,0xf7,0x2f,0xc3,0xdf,0xbf,
+ 0x7f,0xb1,0x26,0x47,0x6c,0x18,0xe6,0x49,0x70,0x6c,0xff,0x3,0xc7,0x37,0x58,0x3d,
+ 0x13,0x13,0x13,0x28,0xc0,0x18,0x58,0x59,0x58,0xc1,0xf4,0xa7,0x4f,0x9f,0x58,0x3c,
+ 0x3c,0x3c,0x52,0x81,0x66,0xf3,0x4c,0x9b,0x36,0xad,0x1f,0x9a,0x2d,0x3e,0x2,0xf1,
+ 0x67,0x7a,0xc5,0x2c,0x40,0x0,0xc1,0x3c,0xca,0xcc,0xc8,0xc8,0x8,0xc2,0xc,0x20,
+ 0x8c,0xb3,0x44,0x1,0xca,0x81,0x3c,0x4,0xa3,0x41,0x1e,0x2,0xd1,0x20,0x67,0x33,
+ 0x42,0x21,0xc8,0xe3,0xcc,0xcc,0xcc,0x60,0xf5,0x7f,0xfe,0xfc,0x61,0x60,0x63,0x63,
+ 0x3,0x7b,0xf6,0xf5,0xeb,0xd7,0xc,0x61,0x61,0x61,0x91,0xc0,0xd8,0xfe,0x3e,0x67,
+ 0xce,0x9c,0x19,0x50,0xcf,0xfe,0xa5,0x57,0xcc,0x2,0x4,0x10,0x2c,0x8f,0xe2,0x2d,
+ 0x7c,0x60,0x1,0x0,0xf2,0x4,0xcc,0x73,0x20,0x1a,0xb9,0xe0,0x81,0x79,0x1e,0xa6,
+ 0x6,0xc4,0xe7,0xe0,0xe0,0x0,0x8b,0xb1,0xb2,0xb2,0x82,0x93,0x32,0x28,0x49,0x3,
+ 0xcb,0x81,0x24,0x60,0x0,0x30,0x2e,0x58,0xb0,0x60,0x16,0x34,0x36,0x3f,0x0,0xf1,
+ 0x17,0x5a,0xc7,0x2c,0x40,0x0,0xb1,0x10,0x55,0x37,0xa0,0xc5,0x32,0xb2,0x27,0x61,
+ 0x6c,0x98,0xe7,0x91,0x93,0x3a,0x28,0x66,0x41,0x9e,0x4,0x61,0x90,0x1c,0x30,0x9,
+ 0x33,0xf0,0xf2,0xf2,0x32,0x94,0x94,0x94,0x24,0x2,0xf9,0x4c,0xf3,0xe6,0xcd,0x9b,
+ 0xa,0xd,0xe0,0x7f,0xb4,0x8e,0x59,0x80,0x0,0x62,0xc1,0x16,0x73,0xc4,0xc4,0x2c,
+ 0xcc,0x73,0x30,0x3e,0x2c,0x46,0x91,0x3d,0xa,0xf2,0x1c,0xc8,0x93,0xc0,0xaa,0xb,
+ 0x8c,0x3f,0x7f,0xfe,0xcc,0xc0,0xcd,0xcd,0xd,0x56,0x5b,0x5a,0x5a,0x1a,0xf,0xa4,
+ 0x19,0xe7,0xce,0x9d,0x3b,0x83,0x1e,0x31,0xb,0x10,0x40,0x2c,0xe8,0x9e,0xc0,0xe7,
+ 0x51,0x6c,0xb1,0xc,0x8b,0x59,0x58,0xec,0x82,0x0,0xcc,0xc3,0x20,0x3e,0xac,0x60,
+ 0x2,0xe5,0x55,0x60,0xd5,0x5,0x66,0xf3,0xf3,0xf3,0x83,0xd5,0x14,0x16,0x16,0xc6,
+ 0x81,0xe4,0x67,0xcf,0x9e,0x3d,0x5,0x1a,0xb3,0x20,0xc3,0xbe,0xd3,0x22,0x66,0x1,
+ 0x2,0x8,0x35,0x46,0x19,0x88,0xf7,0x24,0x2c,0xc6,0x60,0x31,0x8b,0x1e,0x58,0x30,
+ 0x31,0x50,0x29,0xe,0x8b,0x59,0x50,0xe1,0x4,0x12,0xe7,0xe4,0xe4,0x64,0x10,0x16,
+ 0x16,0x6,0x8b,0x3,0x93,0x71,0x1c,0x50,0x3d,0x13,0xb0,0xea,0x99,0x6,0x8d,0x4d,
+ 0x26,0x5a,0x94,0xc6,0x0,0x1,0x84,0x1a,0xa3,0x4c,0xc8,0x31,0xca,0x88,0xd7,0x1e,
+ 0x98,0x67,0x91,0xf3,0x29,0x32,0x1f,0x6,0x40,0xf9,0x14,0x84,0x61,0xb1,0xfb,0xe3,
+ 0xc7,0xf,0x70,0xac,0x82,0xd4,0x82,0x3c,0xc,0x2,0xe5,0xe5,0xe5,0x31,0xa0,0x80,
+ 0x98,0x3a,0x75,0xea,0x24,0xa8,0xc5,0xff,0xa8,0x1d,0xb3,0x0,0x1,0x84,0x91,0x47,
+ 0x91,0x1d,0x89,0xdc,0x34,0x45,0x4e,0xa2,0xe8,0x9e,0xc5,0x86,0x91,0x93,0x33,0xc8,
+ 0xa3,0xa0,0xa4,0xb,0x12,0x9f,0x3c,0x79,0x32,0x3,0xb0,0x49,0x8,0x16,0x7,0x79,
+ 0x54,0x4,0xd8,0x48,0x91,0x91,0x91,0x61,0x88,0x8b,0x8b,0x8b,0x1,0x8a,0x31,0x3,
+ 0x3d,0x3b,0xed,0x1f,0xa4,0xe9,0xc5,0x4,0xcd,0xb3,0x7f,0xa9,0x11,0xb3,0x0,0x1,
+ 0x84,0x35,0x8f,0xe2,0xf2,0x14,0xa1,0xd8,0x45,0x2e,0xa4,0x60,0xb1,0xc,0xf2,0x24,
+ 0x28,0x6,0x41,0x85,0x11,0xb0,0xf5,0x5,0xf6,0x30,0xb0,0x95,0x4,0xf6,0x2c,0x88,
+ 0x7e,0xf7,0xee,0x1d,0xc3,0xc3,0x87,0xf,0xc1,0x49,0xd9,0xc6,0xc6,0x26,0x12,0xa8,
+ 0x46,0xac,0xb7,0xb7,0xb7,0x9,0x98,0xcc,0x9f,0x41,0x8d,0x7,0x35,0x17,0x7f,0x51,
+ 0xea,0x51,0x80,0x0,0x22,0xba,0xd4,0x85,0x79,0x1e,0x5d,0x1e,0x5b,0x2,0x47,0x4e,
+ 0xca,0x20,0xc,0x4a,0x96,0xa0,0x3a,0x95,0x8f,0x8f,0xf,0x9c,0x4f,0x41,0x1e,0x86,
+ 0x95,0xd8,0xc8,0x7a,0xde,0xbc,0x79,0xc3,0x60,0x6e,0x6e,0xee,0xc,0x2c,0xa4,0xde,
+ 0x74,0x77,0x77,0x4f,0x85,0x7a,0xf0,0x2f,0x12,0x86,0xb4,0x1d,0x7f,0x3,0x9b,0x98,
+ 0x48,0x85,0xe1,0x7f,0x22,0x22,0x1c,0x20,0x80,0x58,0xb0,0x79,0x12,0x9b,0x67,0xb1,
+ 0x95,0xb2,0x50,0x9,0xb0,0x67,0xb1,0x25,0x63,0x18,0x0,0xc5,0x22,0xa8,0x5a,0x11,
+ 0x6,0x26,0x53,0x90,0x87,0x7f,0x1,0x1d,0xa,0x72,0x1b,0xcc,0xcc,0xbf,0xd0,0xa6,
+ 0x27,0xac,0xad,0xec,0xe4,0xe4,0x14,0x30,0x73,0xe6,0xcc,0x83,0xc0,0x7a,0xf7,0x1b,
+ 0xb4,0x23,0x0,0xaa,0x63,0xff,0x2,0x55,0xeb,0x9a,0xca,0x29,0x45,0x1b,0x49,0x2b,
+ 0xc8,0xb3,0x2,0x53,0xca,0xbd,0xf7,0x6f,0xbe,0xdc,0x7a,0xf9,0xec,0xe2,0xed,0x37,
+ 0x2f,0x37,0x2,0xe5,0x1f,0xe3,0xf3,0x28,0x40,0x0,0xb1,0x20,0xc7,0x18,0xae,0x18,
+ 0x5,0xcb,0x81,0xbc,0xc3,0x88,0x3f,0x96,0xd1,0x3d,0x8b,0xec,0x51,0x50,0xa8,0x83,
+ 0x62,0x8d,0xb,0x98,0x2f,0x91,0xdb,0xd3,0x20,0x75,0x20,0x3e,0xb0,0xa7,0x3,0xc6,
+ 0x20,0x36,0xb0,0xbe,0x5,0xb5,0xbd,0xc5,0x80,0xd2,0xa2,0xd0,0x36,0xf1,0x6f,0x5e,
+ 0x36,0x76,0xcf,0x9,0xde,0x91,0xab,0x13,0xad,0x1c,0xb9,0x19,0x39,0xb9,0x80,0xc5,
+ 0xd5,0x5f,0x50,0x3d,0xc6,0xf0,0xfe,0xf3,0x27,0x86,0xa9,0x47,0xf7,0xd4,0xb6,0xee,
+ 0xd9,0x18,0xfc,0xe3,0xcf,0xef,0x23,0xb8,0x3c,0xa,0x10,0x40,0x2c,0xc8,0x49,0x7,
+ 0x97,0x47,0x91,0xf3,0x2d,0xb2,0x3c,0xb6,0xfc,0x8c,0x9c,0xcf,0xe1,0xe6,0x81,0x10,
+ 0xb0,0x44,0x7,0x35,0xf2,0x41,0x1e,0x41,0xee,0x10,0xc0,0xea,0x5d,0x90,0x27,0x41,
+ 0x4d,0x44,0x90,0x3c,0x30,0xff,0x32,0x2,0xe5,0xf8,0x81,0x52,0x3c,0xa0,0x70,0x32,
+ 0x34,0x36,0xaa,0xe,0x77,0x76,0x2f,0x36,0xd2,0xd4,0xe7,0x3e,0xf4,0xf2,0x35,0x3,
+ 0xf7,0xe3,0xa7,0xc,0xda,0xbc,0xc2,0xc,0x9c,0xc0,0xce,0xb7,0x20,0x37,0xf,0x43,
+ 0x8d,0x77,0x98,0x98,0x99,0xac,0xe2,0x96,0xc4,0x95,0xb3,0x6b,0x9e,0x7d,0xfa,0x30,
+ 0x5,0x9b,0x47,0x1,0x2,0x88,0x5,0x3d,0x6f,0xe1,0xca,0xa3,0x60,0xc7,0x43,0xa2,
+ 0x0,0x67,0x20,0x60,0x3,0x30,0x33,0x99,0x18,0x81,0xa5,0x2f,0x13,0x33,0x46,0xb7,
+ 0xe,0xd8,0xd1,0x7,0xf7,0x6b,0x61,0xd5,0x10,0xc8,0xa3,0xd0,0x6a,0x87,0x15,0x88,
+ 0x7f,0x8a,0x8a,0x8a,0xf9,0x4e,0xe8,0x9b,0xd6,0x22,0xa7,0xa8,0xc0,0xf0,0xf3,0xdf,
+ 0x4f,0x6,0x5e,0x16,0x26,0x86,0x1b,0x57,0xaf,0xff,0xbf,0x7a,0xe8,0x4,0xa3,0xe7,
+ 0x3f,0x61,0x6,0x31,0x4e,0x60,0x58,0xfc,0xf9,0xc6,0xe0,0x66,0x68,0xc1,0x3f,0xf1,
+ 0xe7,0x8f,0xae,0xd0,0x45,0x93,0xf,0x1,0xf5,0x5d,0x42,0x6a,0x80,0x80,0x1d,0x7,
+ 0x10,0x40,0x2c,0xe8,0x79,0x10,0x52,0xbd,0xfc,0x7,0x17,0x33,0x28,0x1e,0x0,0x27,
+ 0x5f,0x20,0xc5,0x88,0x5a,0xe5,0x10,0x2a,0xa9,0x61,0xc9,0x18,0xa6,0xe,0x52,0x50,
+ 0xfd,0x3,0x7a,0x8,0x54,0xaf,0xfe,0x83,0x96,0xd0,0x20,0x9a,0x9,0xde,0x61,0x0,
+ 0x16,0x56,0xff,0x81,0x31,0xcc,0x24,0x2f,0xaf,0x98,0xd8,0xd3,0x33,0xd1,0x45,0x5b,
+ 0x5b,0x7,0x58,0x72,0x33,0x2,0xf3,0xb9,0x28,0x58,0x5e,0xc8,0x54,0x90,0xf1,0xae,
+ 0xa4,0x2c,0xc3,0xc9,0x6b,0xd7,0x18,0x94,0xaf,0x3f,0x62,0xd0,0xe2,0x11,0x2,0xd6,
+ 0xba,0x5f,0x19,0xbc,0xd5,0xf5,0x39,0xd,0x44,0xe5,0x12,0x2f,0xbc,0x7e,0x54,0x8,
+ 0xf5,0x1b,0xcc,0xa3,0x7f,0x1,0x2,0x88,0x5,0xfb,0xf0,0xe,0x96,0x2,0x9,0xc6,
+ 0x47,0xf2,0x10,0x72,0x1,0x45,0x4c,0xd3,0x11,0xde,0xad,0x63,0x0,0xd5,0xad,0xa0,
+ 0x0,0x80,0xb5,0xa2,0x60,0x6d,0x4,0x68,0x7e,0xfe,0xcf,0xf6,0x5b,0x5a,0x5a,0x4d,
+ 0x7f,0xc1,0x82,0x95,0x56,0x46,0x46,0x5a,0x8c,0x40,0x21,0x6,0x10,0xfe,0xfd,0xfb,
+ 0xf,0xb0,0xbb,0xf7,0x81,0xe1,0xfb,0xb7,0x9f,0xc,0xa2,0xbc,0x42,0xc,0x2,0x96,
+ 0xd6,0xc,0x87,0x9f,0x3c,0x65,0x10,0x7c,0xff,0x96,0x41,0x52,0x4a,0x9a,0xe1,0xed,
+ 0xcb,0xb7,0xc,0xe2,0x6c,0x7c,0x3e,0x40,0x63,0x3a,0x80,0xf8,0x13,0x34,0x56,0x41,
+ 0x85,0x19,0x3,0x40,0x0,0x61,0x89,0x51,0x6,0xb0,0x3,0xd0,0x3d,0x8b,0xb5,0x7a,
+ 0xf9,0xcf,0x0,0x2e,0x64,0x50,0x3c,0xc,0x2b,0xb1,0x18,0xb1,0xc7,0x2c,0x72,0xa3,
+ 0x1f,0xb9,0xc7,0x3,0x32,0x2,0x54,0xd,0xbd,0x7f,0xff,0x83,0xe1,0xe0,0xc1,0x89,
+ 0x9c,0x59,0x59,0xff,0xcc,0x99,0x98,0xba,0x18,0x4f,0x9f,0xfe,0xcf,0xf0,0xe2,0xb9,
+ 0xec,0x7f,0x65,0xe5,0x0,0x6,0x2d,0x1d,0x23,0xc6,0x5f,0xbf,0xfe,0x82,0xcd,0xfe,
+ 0xf3,0xf7,0xf,0x30,0xca,0x98,0x19,0x8c,0xbc,0xbc,0x19,0xf6,0x2c,0x5b,0xce,0xa0,
+ 0x7c,0xfa,0x2,0xc3,0xd9,0xbb,0x8f,0x19,0xf8,0xd9,0xb8,0xe4,0x80,0xc6,0xe9,0x0,
+ 0xf1,0x39,0xa8,0x47,0x7f,0x82,0xac,0x4,0x8,0x20,0x16,0xcc,0xe4,0xc6,0x84,0x14,
+ 0x79,0xff,0xf1,0x57,0x2f,0x68,0x95,0x28,0x36,0xf,0x23,0x77,0xd6,0xb1,0x75,0xeb,
+ 0x60,0xe6,0x31,0x33,0xb3,0x2,0x9b,0x87,0xec,0xc,0xe7,0xce,0xcd,0x65,0x8,0xd,
+ 0x5d,0xc1,0xa8,0xa9,0xc9,0xc0,0xf2,0xf7,0xdf,0x35,0x86,0x7f,0xc0,0x46,0xe0,0xeb,
+ 0xbb,0xa6,0xff,0x8e,0xec,0xff,0xc0,0x78,0xee,0xcc,0x31,0x6,0x9f,0xa0,0x4,0x46,
+ 0xa6,0x5f,0x3f,0xa0,0x25,0xf4,0x1f,0x6,0x49,0x61,0x31,0x86,0x8b,0x1a,0x6a,0x3f,
+ 0xe7,0x2c,0x9f,0xc4,0xa6,0xc2,0x2f,0xc1,0xc8,0xc5,0xca,0xe,0x8c,0x7b,0x6,0x29,
+ 0x20,0xbe,0x89,0xe4,0xc2,0xbf,0x0,0x1,0xc4,0x84,0xee,0x48,0x48,0x5e,0x62,0x82,
+ 0xe7,0x27,0x18,0x86,0x89,0xa3,0x8b,0xa1,0xf0,0x99,0x18,0x51,0xc4,0x60,0xf9,0x12,
+ 0xdc,0xd6,0x65,0x66,0x82,0xd3,0x30,0x36,0xac,0xd,0xc,0xaa,0x5b,0xdf,0xbc,0xf9,
+ 0xc6,0xb0,0x6b,0x57,0x1a,0x83,0x95,0x55,0x1b,0x3,0xd0,0x93,0x10,0xcf,0x83,0x4a,
+ 0xa4,0xaf,0xc1,0xff,0xa4,0xd8,0x33,0x99,0xc2,0x4c,0xff,0x30,0xd9,0xb,0xec,0x60,
+ 0x3c,0xb8,0x69,0x22,0x30,0x2d,0x32,0x81,0x93,0x38,0xb0,0xc5,0xc8,0xf0,0xf5,0xeb,
+ 0x97,0xdf,0x9f,0x3f,0xbf,0xff,0xcd,0x26,0xca,0xc7,0xc8,0x2,0xf4,0xd7,0xaf,0x7f,
+ 0x7f,0xfe,0x42,0x53,0xaa,0x0,0x68,0x64,0x14,0x88,0xd9,0x41,0x46,0x1,0x4,0x10,
+ 0x13,0xb6,0xc2,0x8,0x5c,0x23,0x20,0x35,0x9,0x11,0x8e,0x67,0xc0,0x10,0x43,0xe1,
+ 0x33,0x32,0xe1,0x94,0x87,0xc9,0x81,0x68,0x26,0x46,0x44,0x40,0x80,0x9a,0x86,0x3f,
+ 0x7e,0x70,0x32,0x5c,0xbc,0x38,0x8b,0xc1,0xcb,0x6b,0x2d,0x83,0x9a,0xda,0x6f,0x44,
+ 0xb6,0xf8,0xe8,0xfb,0xff,0xff,0xe7,0x44,0x46,0x86,0x27,0x7,0x18,0x19,0x7e,0x7c,
+ 0x61,0xd0,0x54,0x97,0x64,0xd0,0x62,0x39,0xf0,0x7f,0xd7,0xda,0xa9,0xff,0x39,0xb9,
+ 0x79,0x81,0x49,0x9d,0xed,0xdf,0xe5,0xcb,0xe7,0x7e,0xdd,0xbd,0x7f,0x8b,0x8b,0x99,
+ 0x8b,0x83,0x1,0x58,0x27,0x31,0x7c,0xf9,0xfd,0xe3,0xb,0xb4,0xd9,0x8,0xae,0x9a,
+ 0xa0,0x9e,0x66,0x2,0x8,0x20,0x16,0x52,0xda,0xb4,0x84,0x7a,0x34,0xff,0xff,0x23,
+ 0xca,0x2c,0x9c,0xba,0xa1,0xf9,0x15,0x52,0xba,0x72,0x33,0x3c,0x79,0xf2,0x81,0xe1,
+ 0xd0,0xa1,0x24,0x6,0x7,0x87,0x8d,0xc,0xb2,0xb2,0x48,0x79,0xff,0xbd,0x3,0x3,
+ 0xe3,0x4b,0x1f,0x46,0x86,0xf,0xdb,0x80,0x1a,0x81,0x91,0xc4,0x4,0xac,0x6d,0xbe,
+ 0xff,0x61,0x30,0xd4,0x93,0x67,0x64,0xb8,0x73,0x95,0x61,0xd9,0xe2,0x19,0x3f,0x39,
+ 0xb9,0xf9,0x19,0xce,0x9f,0x3b,0xc5,0xf9,0xf8,0xc5,0x33,0x26,0xae,0x37,0x1f,0x18,
+ 0x54,0xd9,0xa5,0x19,0x9e,0x7e,0x7b,0x7f,0x5,0xda,0x19,0x60,0x87,0xf6,0x80,0xc0,
+ 0xd,0x37,0x80,0x0,0x62,0xc1,0x9e,0x74,0x19,0x71,0xf6,0x58,0xf0,0x37,0x26,0x30,
+ 0xaa,0x59,0xd4,0xaa,0x7,0xda,0x5c,0x4,0xf1,0xd9,0xd8,0xd8,0x81,0x8d,0xf9,0x77,
+ 0xc,0x97,0x2e,0xd5,0x32,0xf8,0xfa,0x6e,0x60,0x90,0x90,0x80,0x6a,0xf8,0x3,0x4c,
+ 0xb0,0x1f,0x81,0x5,0xe7,0x2b,0xdb,0xff,0xc,0x6f,0x4f,0x0,0x35,0x3,0x9b,0x8b,
+ 0x8c,0xcc,0xa0,0x16,0x7,0x24,0x5e,0x80,0x75,0xae,0xb6,0x24,0xeb,0xbf,0x9,0x2b,
+ 0x16,0xb3,0xdc,0x7c,0xc3,0xc3,0xcc,0xf4,0xff,0x37,0x3,0x1b,0x27,0x7,0x83,0x20,
+ 0x30,0x39,0x5f,0x7c,0xff,0xf8,0xdb,0xf5,0xf7,0xcf,0xf6,0x22,0x57,0x2b,0x30,0xc,
+ 0x10,0x40,0x4c,0x84,0x3c,0x81,0xd1,0x88,0xc7,0x21,0x46,0xac,0x3c,0xa4,0xa,0x61,
+ 0x67,0x78,0xf6,0xec,0x15,0xc3,0xae,0xdd,0x4e,0xc,0x6e,0x6e,0xf3,0x11,0x9e,0x4,
+ 0x39,0xed,0x95,0x27,0x3,0xc3,0x73,0xf,0x6,0xc6,0xb7,0xd7,0x18,0xc1,0x21,0xc7,
+ 0xc2,0x1,0xc4,0x6c,0x90,0x10,0xfc,0xfb,0x9d,0xe1,0xf3,0xab,0xb7,0xff,0x9e,0x5f,
+ 0x7f,0xf4,0xc7,0x4a,0xe2,0x17,0xd3,0x83,0xfb,0x77,0x19,0x98,0x81,0xad,0x2d,0x49,
+ 0x11,0x31,0x86,0xf3,0xcf,0xef,0x7d,0x58,0x74,0xe7,0x68,0xff,0xb7,0x3f,0xbf,0xae,
+ 0x40,0x4b,0xdb,0x1f,0x50,0xc,0xea,0x18,0xfc,0x3,0x8,0x20,0x16,0x62,0x1a,0xef,
+ 0x58,0xab,0x19,0x58,0xdb,0x17,0xad,0x8a,0xc1,0x56,0xaf,0xa2,0xf3,0x7f,0xfd,0xfa,
+ 0xcf,0x70,0xf1,0xcc,0x1a,0x86,0x48,0x3f,0x9,0x6,0x41,0x36,0x5d,0x86,0xdf,0x5f,
+ 0xbe,0x1,0x5d,0x76,0x9b,0x81,0xf9,0x31,0xb0,0xca,0xfb,0x69,0x9,0x4c,0x70,0xc0,
+ 0x9a,0x81,0x95,0x5,0x12,0x93,0xa0,0x36,0xed,0xaf,0x6f,0x60,0x7d,0xbf,0xff,0x33,
+ 0xfd,0x7f,0xf7,0xf6,0xdb,0x5f,0xe,0xc6,0xbf,0xac,0xb2,0x9c,0x5f,0x19,0xc5,0x85,
+ 0xf9,0x19,0xa4,0xa4,0xa4,0x18,0x6e,0xdf,0xbe,0xf5,0xfb,0xea,0xeb,0x47,0xcb,0x80,
+ 0x4a,0xae,0x43,0x83,0xeb,0x1b,0x34,0xd9,0xc2,0x3a,0xef,0x7f,0x1,0x2,0x88,0x5,
+ 0x57,0xc7,0x1a,0x9b,0xe7,0x50,0x2,0x2,0x96,0x57,0x19,0x11,0x43,0x30,0xc8,0x75,
+ 0x2d,0xba,0x1e,0x18,0x1f,0x54,0xf8,0x9c,0x39,0x7b,0x8e,0xe1,0x27,0xb0,0x25,0x23,
+ 0x26,0x3d,0x97,0xe1,0xef,0x4f,0x36,0x6,0x46,0x60,0xd3,0xee,0xe7,0xb7,0x17,0xc,
+ 0x2c,0x8f,0x56,0x30,0xb0,0xfd,0x2,0xb6,0xcb,0x25,0xe4,0x40,0xad,0x3,0x60,0x32,
+ 0xfe,0xe,0xf1,0x28,0xb0,0x34,0xff,0xc3,0xc2,0xf1,0xff,0xf6,0xe5,0x27,0xbf,0xf9,
+ 0x7e,0x7d,0x64,0x65,0x63,0xfd,0xc3,0xf8,0xfb,0xf7,0x3f,0x6,0x5d,0x7d,0x43,0x86,
+ 0xf7,0x1f,0x3e,0x7e,0x3b,0x7b,0xee,0xdc,0x2,0xa4,0x7a,0xf3,0xb,0xb4,0xb1,0xf0,
+ 0x5,0x29,0x46,0xff,0x2,0x4,0x10,0x13,0x66,0x81,0xc1,0x88,0x33,0x9,0x63,0x4b,
+ 0xa2,0xb8,0x92,0x2d,0xba,0x3c,0x62,0x2c,0xe9,0x3f,0xc3,0xed,0x1b,0x17,0x19,0xcc,
+ 0x4c,0xf5,0x81,0x85,0x3e,0x2b,0x3,0x33,0xdb,0x5f,0x6,0x66,0x76,0xa0,0x33,0x38,
+ 0x44,0x18,0x3e,0xeb,0x25,0x31,0x7c,0xe7,0xd7,0x63,0x60,0x78,0xf9,0x0,0xe8,0xb4,
+ 0x5f,0x90,0xc8,0x1,0x36,0x22,0x18,0x38,0xb8,0xff,0xbf,0x7d,0xf6,0xee,0x2f,0xe7,
+ 0xcf,0x4f,0xac,0xcc,0xff,0x80,0xd,0x7e,0x60,0x37,0xef,0xd6,0x47,0xe,0x86,0x87,
+ 0xcf,0xde,0xfc,0x3c,0x76,0xf4,0xc8,0x4a,0xa0,0xc2,0x8b,0xd0,0xa6,0xd5,0x67,0x24,
+ 0x4f,0x7e,0x87,0x36,0x16,0xc0,0x31,0xa,0x10,0x40,0x98,0x31,0xca,0x88,0xea,0x59,
+ 0x5c,0x31,0x8d,0x2b,0xc6,0xb0,0xa9,0x81,0xf0,0xff,0x83,0xeb,0xbd,0xe7,0xcf,0x5f,
+ 0x30,0xfc,0xfa,0xf1,0x82,0x41,0x45,0xd3,0xe,0x1c,0x6b,0xe0,0x52,0xe3,0x3f,0xa8,
+ 0x41,0x1,0xec,0x93,0x2,0x63,0xef,0x9b,0x92,0xb,0xb0,0xaa,0xff,0xcc,0xc0,0xf9,
+ 0x5,0xe8,0x59,0x7e,0x31,0x86,0x3f,0xc0,0xe4,0x7a,0xef,0xda,0xd3,0x5f,0xcc,0x9f,
+ 0x3f,0xb0,0xb2,0xff,0xf9,0xc2,0xf8,0xf7,0xcf,0x2f,0x60,0x99,0xf4,0x87,0xe1,0xf8,
+ 0xad,0x4f,0x1f,0x8e,0x9c,0xbe,0xb3,0x10,0xe8,0x87,0x9b,0x48,0xc3,0xa5,0xef,0x80,
+ 0xf8,0x3d,0xb4,0x6b,0xf7,0xd,0xea,0x51,0x50,0x13,0xf0,0x3f,0x40,0x0,0x31,0xe1,
+ 0x1b,0x13,0xc2,0x37,0xc,0x4a,0x4a,0xc,0x43,0xc4,0x40,0xd,0x7,0x16,0x60,0xc3,
+ 0xe0,0x5,0x83,0x8e,0x9a,0x4,0xc4,0x69,0xd0,0x6c,0xce,0xf8,0x1f,0x34,0xb,0xf7,
+ 0xd,0x58,0xe1,0x7d,0x5,0xd6,0x24,0xdf,0x19,0xde,0x8b,0xd9,0x31,0x7c,0xfc,0x23,
+ 0xfc,0xff,0x3f,0xb0,0xe5,0x73,0xfb,0xfe,0xc7,0x7f,0xaf,0x1e,0xbd,0x64,0xfd,0xb,
+ 0xc,0x27,0xc6,0xdf,0xdf,0x81,0x4d,0xbf,0x7f,0xc,0xab,0x2e,0x7c,0xfb,0xb2,0xe7,
+ 0xca,0xbb,0xa5,0x40,0x4f,0xde,0x80,0x96,0xaa,0x1f,0xa1,0x1e,0x45,0x4e,0xb2,0xbf,
+ 0x91,0x47,0x12,0x1,0x2,0x8,0x6f,0x3d,0x4a,0x6c,0x6c,0x12,0x2b,0x6,0x8a,0xd1,
+ 0x5f,0x3f,0x3e,0x30,0xa8,0xab,0x2a,0x42,0xcb,0x41,0x60,0x52,0x6,0x26,0xd1,0x3f,
+ 0xbf,0xbe,0x2,0x73,0x12,0x30,0x22,0x80,0x1e,0xf9,0xfa,0xf1,0x1b,0xc3,0xf7,0x1f,
+ 0x7f,0x19,0x3e,0x71,0x18,0x31,0x3c,0xb9,0xba,0xfd,0xcf,0xc7,0x4f,0x3f,0x98,0x85,
+ 0xb8,0x99,0x18,0x39,0x81,0x9d,0x0,0x56,0x60,0x6b,0xa8,0x6b,0xfb,0xdb,0x17,0x93,
+ 0x76,0xbf,0x9c,0x7,0xd4,0xfc,0x8,0xea,0x91,0xf7,0x50,0xfc,0xe,0xea,0xd1,0xaf,
+ 0xd0,0x98,0xfc,0x85,0x3c,0xfc,0x2,0x10,0x40,0x4c,0x84,0x46,0xf9,0xf0,0xc5,0x26,
+ 0xa9,0x79,0xf6,0xfb,0xf7,0x1f,0xc,0x1f,0xdf,0x3d,0x67,0x60,0x7,0x56,0x2f,0xff,
+ 0xa1,0xb1,0xf8,0xe7,0xf7,0x57,0x60,0xc1,0xf4,0x96,0xe1,0xe7,0x8f,0x6f,0xc,0xdf,
+ 0x3e,0x7f,0x63,0xf8,0xf1,0xed,0x7,0xc3,0xcf,0xaf,0x5f,0x18,0xde,0x7d,0x67,0x66,
+ 0x7c,0xf4,0x8e,0x83,0x99,0xf3,0xd7,0x7b,0x46,0x50,0x13,0xf1,0x2f,0x30,0x5f,0xce,
+ 0x3d,0xfe,0xe9,0xcd,0x9c,0x43,0x6f,0x17,0x3,0x8d,0x7b,0x8,0x8d,0x31,0x98,0x7,
+ 0xdf,0x41,0x63,0x15,0xa5,0x0,0x42,0x76,0x33,0x40,0x0,0x11,0x4c,0xba,0x84,0x6,
+ 0xce,0x70,0x6,0x4,0x1a,0x9f,0xd,0x58,0xa8,0xdc,0xb9,0x73,0x9b,0xe1,0xc1,0x9d,
+ 0x8b,0xc,0x1c,0xac,0xbf,0x81,0x49,0xf4,0x1d,0xc3,0x1f,0x60,0xec,0xfe,0xfe,0xf1,
+ 0x99,0xe1,0x17,0xd0,0x63,0x5f,0x3f,0x7c,0x61,0xf8,0xfe,0xe5,0x7,0xc3,0x97,0x4f,
+ 0xdf,0x19,0xde,0xbd,0xfd,0xa,0xac,0x82,0xfe,0x30,0xfc,0x67,0x65,0xff,0xff,0x9b,
+ 0x89,0x3,0xd8,0xd9,0xfe,0xcb,0xb0,0xf0,0xc0,0x93,0x97,0x55,0xab,0x9f,0x4c,0xfa,
+ 0xf6,0xf3,0xcf,0x1d,0x68,0xbe,0x3,0x79,0xee,0x35,0x10,0xbf,0x41,0x8a,0x4d,0xd8,
+ 0x88,0xe1,0x1f,0x74,0x77,0x2,0x4,0x10,0xc1,0x26,0x20,0xc9,0xd5,0xe,0x5a,0x2b,
+ 0x8,0x1e,0xa2,0xc0,0x6,0xfc,0xc1,0x83,0xfb,0x19,0x76,0xec,0xba,0xcc,0xf0,0x8f,
+ 0x59,0x98,0x41,0x54,0xe0,0x1f,0x83,0x97,0x8b,0x31,0x30,0x26,0x7f,0x31,0xbc,0x7f,
+ 0xfb,0x19,0x18,0x93,0x3f,0x81,0x31,0xfe,0xb,0x4c,0x43,0x4a,0xa8,0x7f,0xc,0x1c,
+ 0xff,0xbf,0x31,0xf0,0x73,0x31,0x33,0x4c,0xda,0x7a,0xf7,0x55,0xd7,0xf6,0x57,0xab,
+ 0x80,0xa2,0xcf,0xa1,0x31,0xf9,0x11,0xea,0xb9,0xf,0x50,0x36,0x72,0x72,0xfd,0x83,
+ 0x2d,0xa2,0x0,0x2,0x88,0x85,0x98,0x26,0x1e,0xbe,0xa4,0x4d,0x6c,0x77,0xee,0xe7,
+ 0x4f,0x60,0xb2,0xfd,0xf8,0x99,0x21,0x33,0xbb,0xc,0xd8,0x80,0xbf,0xc8,0xd0,0x3f,
+ 0x79,0xe,0xc3,0xc9,0x53,0x57,0x18,0xb2,0xe3,0xbd,0x81,0x1d,0xe6,0xf,0xc,0xa0,
+ 0x7e,0xe6,0x1f,0x60,0xc7,0x3,0x98,0x8d,0xc1,0xad,0x1d,0xd0,0xcc,0x3a,0xf,0xe3,
+ 0x67,0xa6,0x39,0x3b,0xee,0x3e,0xef,0xd9,0xf9,0x1a,0x34,0xc5,0xf8,0xc,0x9a,0x2c,
+ 0x61,0x1e,0x7c,0x8f,0x14,0x8b,0x58,0x93,0x2b,0x32,0x0,0x8,0x20,0xa2,0xa6,0xd,
+ 0x89,0x2d,0xa4,0x70,0x75,0xd0,0x41,0x62,0x1f,0x3f,0x7e,0x62,0x10,0x14,0x4,0xd6,
+ 0x95,0x9f,0x3e,0x31,0xcc,0x9b,0x3b,0x8d,0xe1,0xc1,0x83,0x7,0xc,0x7d,0xd3,0x6e,
+ 0x31,0x88,0xf1,0xf3,0x32,0x38,0x98,0xeb,0x82,0x9b,0x78,0xdc,0xc0,0x1e,0x8,0x68,
+ 0xdc,0xf7,0xcd,0x87,0x4f,0xc0,0xce,0xf6,0xf3,0xff,0x3b,0x37,0xdd,0x7c,0xb3,0xe1,
+ 0xd4,0xeb,0x5d,0x40,0x23,0xde,0x22,0x79,0x12,0x96,0x4c,0x91,0xab,0x90,0x5f,0x84,
+ 0x16,0x80,0x0,0x4,0x10,0xee,0xa4,0xfb,0x1f,0xd6,0x4f,0xf9,0x4f,0x46,0x2c,0xff,
+ 0x47,0x69,0xdc,0x83,0x46,0xea,0x1f,0x3d,0x7a,0xc8,0x70,0xf7,0xee,0x1d,0x86,0x5,
+ 0xb,0xe6,0x2,0x3d,0x79,0x1f,0x2e,0xb7,0xf3,0xe0,0x19,0x6,0xb,0x43,0x35,0x60,
+ 0x57,0xed,0x37,0xc3,0xe5,0x5b,0x8f,0x18,0xae,0xdf,0x7b,0xc1,0xf0,0xe2,0xfd,0xcf,
+ 0xff,0x5b,0x77,0xec,0xba,0x4,0x2c,0xbc,0xae,0x40,0x4b,0xd7,0xaf,0xd0,0xbc,0xf8,
+ 0xa,0x1a,0x9b,0x5f,0x91,0x92,0xeb,0x6f,0xf8,0x38,0xc,0x1e,0x0,0x10,0x40,0x2c,
+ 0x38,0xbb,0x67,0xf0,0x61,0x5c,0xc4,0x58,0xd1,0x7f,0x9c,0xb1,0xfc,0x1f,0xad,0xd7,
+ 0xc2,0x8,0xed,0xc9,0xfc,0x87,0x77,0xbc,0x57,0xac,0x58,0xc9,0x30,0x69,0x52,0x1f,
+ 0x46,0xef,0xe6,0xed,0xa7,0x5f,0xc,0x7,0x2e,0xbc,0x60,0xf8,0xf9,0x7,0x58,0x2a,
+ 0xff,0x62,0x66,0xe0,0x93,0x54,0x67,0x10,0x55,0x60,0x3,0x7a,0x74,0xf7,0x7,0x68,
+ 0x8c,0x7d,0x46,0xf2,0xe4,0x5b,0x28,0xff,0x27,0x52,0x63,0xe0,0x1f,0x31,0x29,0x12,
+ 0x20,0x80,0x58,0x88,0x99,0xe1,0x46,0xef,0x83,0xc1,0xbc,0x8c,0x28,0x6e,0x18,0x71,
+ 0xc6,0x3c,0xa8,0x83,0xd,0x9a,0x0,0xde,0xb3,0x67,0xf,0xd8,0xe3,0xa0,0xb6,0xae,
+ 0x9c,0x9c,0x1c,0x83,0xbe,0xbe,0x3e,0x83,0x8e,0x8e,0xe,0x3,0x1f,0x3f,0x3f,0x50,
+ 0x1d,0x33,0xb8,0xf0,0x1,0x99,0xcb,0xa,0x8c,0x7d,0xd0,0x32,0x0,0x68,0x72,0xfc,
+ 0x2,0x8d,0xc1,0xb7,0xd0,0x3c,0xf9,0x19,0x29,0x3f,0xfe,0x26,0x65,0xf2,0x9,0x20,
+ 0x80,0x48,0xea,0x78,0xc3,0xeb,0x44,0x6,0xfc,0x3d,0x1c,0xf4,0x85,0x55,0xa0,0xa4,
+ 0xdb,0xdc,0xdc,0xc,0x4c,0xbe,0x8f,0xc0,0xbd,0xd,0xd0,0x1c,0xc,0x68,0xfc,0x16,
+ 0x34,0xd5,0xff,0xf5,0xeb,0x57,0xf0,0xf8,0xf,0x6c,0xc2,0x18,0x34,0xa6,0xfb,0xe3,
+ 0xc7,0xf,0x60,0xff,0x9c,0xf1,0x3b,0x52,0xe9,0x8a,0xdc,0x18,0xf8,0x4d,0xce,0xc,
+ 0x1b,0x40,0x0,0x91,0x5c,0xbd,0x90,0x53,0x22,0x83,0xb0,0xb3,0xb3,0x33,0x78,0xf6,
+ 0xc,0x34,0x91,0xf4,0xfe,0xfd,0x7b,0xb0,0x7,0x41,0xe3,0x3e,0xa0,0x64,0xd,0x9b,
+ 0x88,0x2,0xf1,0x41,0x13,0x50,0x20,0x39,0xa8,0x47,0xbf,0x40,0xf1,0x57,0xa4,0x46,
+ 0xfa,0x7f,0x72,0xa6,0x11,0x1,0x2,0x88,0x85,0x50,0x4c,0x22,0xba,0x65,0x98,0xa3,
+ 0xf4,0xc4,0x96,0xc8,0xa0,0xd8,0x2,0x25,0x47,0xd8,0x72,0x1c,0xd0,0x82,0xd,0x50,
+ 0x12,0x6,0xd1,0xb0,0x11,0x42,0xf0,0xba,0x24,0xa0,0x67,0x79,0x78,0x78,0x40,0x1,
+ 0x1,0x8b,0xd1,0x6f,0x68,0x25,0xeb,0x3f,0x6,0x32,0x1,0x40,0x0,0x11,0x5f,0xbd,
+ 0x20,0xd,0x62,0x13,0x8a,0x65,0x74,0x79,0xd8,0xd4,0x3e,0x6c,0x1a,0x2,0x36,0xf5,
+ 0x0,0x9b,0x6c,0x82,0x8d,0x6,0x82,0x68,0x50,0x8c,0x82,0xe6,0x60,0x80,0xe6,0xfc,
+ 0x46,0xca,0x8b,0x14,0xaf,0x1f,0x4,0x8,0x20,0x16,0x72,0x34,0xe1,0x8b,0x41,0x6c,
+ 0xf2,0xb0,0xfc,0x7,0x8b,0x39,0xd8,0x5a,0x6,0xf4,0xa9,0xa,0x10,0x6,0xc5,0x38,
+ 0x74,0xee,0xe5,0x1f,0xd2,0x98,0xf,0xc5,0x33,0xde,0x0,0x1,0xc4,0x82,0xbe,0xa2,
+ 0x84,0xd8,0x55,0x29,0xc4,0x8d,0x1a,0x92,0x7,0x90,0x3c,0x4a,0xb5,0xc5,0x1a,0x0,
+ 0x1,0x4,0xf7,0x28,0xb0,0xa0,0x0,0x97,0xe9,0x1f,0x3f,0x7e,0xfc,0xf5,0x1f,0x32,
+ 0x27,0x41,0x96,0xf,0xf0,0x25,0x6b,0x6c,0x72,0xe8,0x62,0xc0,0x18,0x67,0x2,0xe6,
+ 0x51,0xe4,0x64,0x4b,0x95,0x25,0xaf,0x0,0x1,0x4,0x5b,0x30,0xcc,0xf,0xec,0xa,
+ 0xa9,0x0,0xb1,0x36,0x90,0xad,0x6,0x9d,0x80,0xe5,0x21,0x66,0xb8,0x93,0x6,0x0,
+ 0x68,0xed,0xff,0x2f,0xc0,0xba,0xf7,0x21,0x90,0xbe,0xa,0xe4,0xdf,0x81,0xce,0x66,
+ 0x7f,0xa1,0xc4,0xd3,0x0,0x1,0x4,0x9b,0x5a,0xfb,0x3,0xac,0xbb,0xde,0x0,0xf1,
+ 0x1d,0x68,0x28,0xa,0x2,0x31,0x17,0x3,0x95,0x56,0x4c,0x93,0xea,0x51,0x68,0x75,
+ 0xf2,0x1e,0xda,0x22,0xfa,0x42,0x6a,0xe3,0x0,0x1b,0x0,0x8,0x20,0x58,0xd2,0xfd,
+ 0xd,0x35,0xf0,0x15,0x34,0xd4,0xb8,0xa0,0x23,0xdd,0x3,0xe5,0xd1,0x9f,0x50,0xf7,
+ 0xbc,0x85,0xd2,0x7f,0x28,0xf5,0x28,0x40,0x0,0xc1,0x3c,0xc2,0xc,0x9d,0x61,0x6,
+ 0x95,0x2,0x1c,0x50,0x36,0x13,0xc3,0xc0,0x81,0xbf,0xd0,0xc0,0x47,0x19,0x84,0xa6,
+ 0xc4,0x40,0x80,0x0,0x42,0x6e,0xac,0xc2,0xf2,0x2b,0x13,0x12,0x7f,0xa0,0x0,0xf2,
+ 0x94,0xc2,0x7f,0x72,0x5b,0x43,0xc8,0x0,0x20,0xc0,0x0,0x52,0x5e,0x46,0x1a,0x84,
+ 0xdb,0x12,0x48,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/icon.png
+ 0x0,0x0,0x3f,0xe2,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x80,0x0,0x0,0x0,0x80,0x8,0x6,0x0,0x0,0x0,0xc3,0x3e,0x61,0xcb,
+ 0x0,0x0,0x20,0x0,0x49,0x44,0x41,0x54,0x78,0x9c,0xec,0xbd,0x77,0x98,0x64,0x57,
+ 0x79,0xee,0xfb,0x5b,0x6b,0x87,0xca,0x9d,0xa7,0xd3,0x48,0x33,0x23,0x8d,0x46,0xa3,
+ 0x8c,0x22,0x20,0x21,0x40,0x20,0x93,0xc4,0x91,0x0,0xdb,0xd8,0x17,0xdb,0xd7,0xf8,
+ 0x98,0x63,0xb0,0xf1,0x1,0x1e,0xc,0x18,0x9b,0x73,0x6c,0x9f,0x63,0xf9,0x1a,0xec,
+ 0x8b,0xed,0x6b,0xc,0x38,0x1d,0xdb,0x38,0xe0,0x84,0x49,0x26,0x9,0x81,0x84,0x50,
+ 0x40,0x81,0x91,0x18,0x8d,0x34,0x39,0x87,0xe,0xd3,0xb9,0xbb,0xe2,0xe,0x6b,0xad,
+ 0xfb,0xc7,0xda,0xd5,0xbd,0x67,0x4f,0xf5,0x68,0x94,0x50,0x40,0xdf,0xf3,0xec,0xa9,
+ 0xae,0x5d,0x53,0x55,0xbb,0xf6,0x97,0xde,0xef,0x5d,0xdf,0x5a,0xb,0x5e,0x90,0x17,
+ 0xe4,0x5,0x79,0x41,0x5e,0x90,0x17,0xe4,0x5,0x79,0x41,0x5e,0x90,0x1f,0x39,0x11,
+ 0xcf,0xf4,0x5,0x3c,0xc7,0xa4,0x1f,0xe8,0x3,0xba,0x81,0x2e,0xc0,0x3,0x24,0x60,
+ 0x80,0x10,0x68,0x0,0xb5,0xe4,0x58,0x4a,0x8e,0xf8,0x19,0xb9,0xd2,0xd3,0x94,0x17,
+ 0xc,0xe0,0xb1,0x65,0x3d,0xb0,0x9,0x38,0x7,0xb8,0x4,0x38,0x77,0x4d,0xa9,0xbc,
+ 0xb1,0xb7,0x50,0x5a,0xef,0x3b,0x9e,0x90,0x42,0xa0,0xd1,0x44,0x4a,0x51,0x6b,0xb5,
+ 0xa6,0xe6,0x5b,0xf5,0xa3,0x8d,0x28,0x3a,0x6,0x8c,0x3,0x87,0x80,0x83,0xc0,0x4,
+ 0x70,0x24,0x39,0x9e,0x55,0xf2,0x82,0x1,0xac,0x2e,0x9b,0x81,0x57,0x2,0xaf,0x1b,
+ 0x2e,0x57,0xae,0x3b,0xab,0x7f,0xa8,0xef,0x8c,0xee,0x5e,0xd6,0xf7,0xf4,0xb1,0x71,
+ 0x60,0x90,0x75,0x3d,0x3,0x54,0x72,0x5,0x3c,0x29,0x89,0xb4,0xa2,0x1a,0xb4,0x98,
+ 0xaa,0x55,0x19,0x5f,0x9c,0x67,0xbc,0xba,0xc0,0x4c,0xbd,0xc6,0x5c,0xa3,0xc6,0x54,
+ 0x6d,0x89,0xb1,0xc5,0xf9,0xa3,0x33,0x8d,0xda,0x7d,0xc0,0xfd,0xc0,0xb7,0x80,0x6d,
+ 0xcf,0xe8,0x2f,0x4b,0xc9,0xb,0x6,0x70,0xb2,0x9c,0xd,0xfc,0x1a,0xf0,0x63,0x6f,
+ 0xd8,0x7c,0xc9,0xe6,0x9f,0xbc,0xe4,0x4a,0x2e,0x19,0x39,0x93,0xd,0xbd,0x3,0xc,
+ 0x54,0xba,0xc0,0xf3,0x41,0x6b,0x30,0x1a,0x8c,0x59,0x79,0x97,0x10,0x80,0x0,0x29,
+ 0xec,0xdf,0x4a,0xd3,0x68,0xd6,0x99,0xa9,0x55,0x19,0xaf,0x2e,0xb0,0x77,0xe6,0x38,
+ 0xb7,0xef,0xdb,0xc9,0x3f,0x6c,0xb9,0xe7,0x98,0xc6,0xdc,0xb,0x7c,0x12,0xb8,0xf3,
+ 0x19,0xf9,0x85,0x29,0x79,0xc1,0x0,0x4e,0x94,0x5f,0x7,0xde,0xba,0x79,0x60,0xe8,
+ 0xf2,0xf,0xbc,0xf2,0x6,0x79,0xfd,0x39,0xe7,0x73,0xf6,0x9a,0x61,0x90,0x12,0xb4,
+ 0xb2,0xa,0x4f,0x2b,0xfd,0xb1,0x44,0x48,0x6b,0x10,0x52,0x82,0x36,0x4c,0x2f,0xce,
+ 0xf3,0xdd,0x3,0xbb,0xf8,0xe4,0xf7,0x6e,0xe3,0xbb,0x7,0x76,0x1f,0x4,0xfe,0xe,
+ 0xf8,0x38,0xd0,0x7c,0x7a,0x7e,0xce,0x69,0x5c,0xe2,0x33,0xf5,0xc5,0xcf,0x42,0x79,
+ 0x7,0xf0,0xb1,0x37,0x5f,0x78,0xf9,0xc0,0xff,0xbc,0xfe,0x46,0xae,0x58,0xbb,0x1e,
+ 0x5c,0x17,0x94,0x7a,0xea,0xbe,0x41,0x3a,0x60,0x34,0x47,0xe7,0x67,0xf9,0x97,0xad,
+ 0xf7,0xf3,0xbb,0xdf,0xfe,0x52,0xad,0x1e,0x86,0x77,0x1,0xef,0x3,0xf6,0x3e,0x75,
+ 0x5f,0x74,0xfa,0xe2,0x3c,0x13,0x5f,0xfa,0x2c,0x94,0x5f,0x5,0x7e,0xfb,0xc3,0xd7,
+ 0xdd,0x30,0xf4,0xbf,0x5e,0xfb,0x66,0xce,0x1b,0x5a,0x6b,0xc3,0xb8,0xd6,0x4f,0xed,
+ 0xb7,0x24,0xd1,0xa3,0xbb,0x54,0xe1,0xaa,0xb5,0xeb,0x79,0xd5,0x39,0xe7,0xfb,0x5b,
+ 0x8e,0x1e,0xdc,0x38,0x55,0xab,0xbe,0xe,0x78,0x98,0x67,0x0,0x24,0xbe,0x60,0x0,
+ 0xf0,0x21,0xe0,0x23,0xbf,0xfd,0x63,0x6f,0x1a,0xfe,0xf5,0xeb,0x6e,0x60,0xb0,0xab,
+ 0x3b,0x51,0xd4,0xe3,0x8,0xf5,0x8f,0x57,0x8c,0xc6,0x71,0x1c,0xd6,0xf5,0xf4,0x73,
+ 0xd3,0x85,0x97,0x89,0x43,0x73,0xd3,0x3,0x3b,0xa7,0x26,0xde,0x0,0xec,0x6,0xf6,
+ 0x3c,0x7d,0x5f,0x7c,0xb2,0xfc,0x28,0x1b,0x80,0x4,0x7e,0xe,0xf8,0xc3,0xf7,0x5d,
+ 0xfb,0xda,0xde,0xb7,0x5d,0x76,0x35,0x78,0xe,0xb5,0x38,0xa2,0x66,0x62,0x5a,0x5a,
+ 0x81,0x14,0x78,0x8e,0x83,0x30,0x10,0x3b,0x12,0xed,0x48,0xe4,0x53,0x1c,0x14,0xba,
+ 0xf2,0x45,0xde,0x78,0xde,0x8b,0x98,0x6b,0xd6,0xca,0xf,0x1d,0x3b,0xf4,0x1a,0x60,
+ 0x3b,0x3f,0xc4,0x74,0xf0,0xa3,0x8a,0x1,0x9c,0x75,0xeb,0xd6,0xfd,0xd7,0x4a,0xa5,
+ 0xf2,0x17,0xeb,0xd7,0xaf,0x77,0x6,0x7a,0x7b,0xa9,0x94,0x2b,0x14,0xa,0x79,0x7c,
+ 0x3f,0x7,0x80,0xd6,0x8a,0x30,0x8,0x59,0x9c,0x99,0xd1,0xf9,0x7a,0xc8,0xe6,0xde,
+ 0x35,0xf2,0xe2,0x8d,0x9b,0xd8,0x54,0xe9,0x65,0x20,0x32,0xb8,0xc6,0xe0,0x8,0xf9,
+ 0x14,0x5d,0x8e,0xa0,0x15,0x87,0xfc,0xea,0x17,0xfe,0x91,0xbf,0xdd,0x72,0xd7,0x18,
+ 0xf0,0x66,0x60,0xcb,0x53,0xf4,0xe1,0x8f,0xf1,0xcd,0x3f,0x62,0x32,0x34,0x34,0x54,
+ 0x7a,0xfd,0xeb,0x5f,0xff,0x9e,0xd,0x1b,0x36,0x7c,0x74,0xd3,0xa6,0x4d,0xc,0xf,
+ 0x8f,0x20,0x4,0x48,0x29,0x69,0xdf,0xe,0x63,0x74,0xf2,0x8,0x6,0xc3,0xdc,0xec,
+ 0x1c,0xfb,0xf7,0xef,0x33,0x8f,0x6e,0x7f,0x54,0x84,0xcd,0xc0,0x8c,0x16,0x2b,0x5c,
+ 0xe1,0x96,0xc4,0x35,0x43,0xeb,0x18,0x29,0x77,0x51,0xf0,0x7d,0xc4,0x32,0x21,0xf8,
+ 0xc4,0xa5,0x16,0xb4,0xf8,0xf1,0x7f,0xf8,0x33,0xf3,0xad,0xbd,0x3b,0x76,0x0,0x3f,
+ 0x6,0x4c,0x72,0xfa,0x3a,0x7a,0x42,0x5f,0xfe,0xa3,0x96,0x2,0xa,0xc5,0x62,0xf1,
+ 0x17,0x87,0x87,0x87,0xff,0xe8,0xea,0xab,0xaf,0xe5,0xfc,0xf3,0x2f,0xc0,0x71,0x1c,
+ 0x3c,0xcf,0xc7,0xf3,0x7c,0xa4,0x74,0x10,0x42,0xe0,0xba,0xe,0x8e,0xe3,0x92,0xcf,
+ 0xe7,0x29,0x97,0x4b,0xc,0xe,0xe,0xb1,0x79,0xf3,0x66,0xf1,0x92,0x97,0x5c,0xcd,
+ 0xe6,0xf3,0xce,0x13,0x3a,0xe7,0xf3,0xc0,0xec,0x4,0x7f,0x7e,0xdf,0xed,0xfa,0xbe,
+ 0x3d,0x3b,0x45,0x6f,0xb9,0x2c,0x7a,0xcb,0x15,0xf2,0xae,0xb,0xe6,0x89,0xfb,0x94,
+ 0xef,0xba,0xbc,0x62,0xe3,0x79,0xe2,0xf3,0xf,0x6f,0xe9,0x5b,0xa,0x9a,0x1b,0x81,
+ 0x7f,0x4f,0x5e,0x6a,0x5b,0x67,0xf6,0x48,0xcb,0x6a,0xe7,0x4f,0x29,0x3f,0x4a,0x6,
+ 0x50,0x4,0x7e,0xc5,0x75,0xbd,0xff,0xef,0x9a,0x6b,0x5e,0xa1,0xdf,0xfa,0xd6,0xb7,
+ 0x89,0x7c,0xbe,0x48,0x2e,0x57,0xa0,0x50,0x28,0x27,0x47,0x29,0x79,0x5e,0xa4,0x58,
+ 0x2c,0xd0,0xd5,0xd5,0xcd,0xc0,0xc0,0x1a,0x2a,0x95,0xa,0xbe,0xef,0xe2,0xfb,0x39,
+ 0x7a,0x7b,0x7b,0xd9,0xb8,0x71,0x93,0xb8,0xe8,0xc2,0x8b,0xc4,0xa5,0x97,0x5e,0x26,
+ 0x8f,0x34,0x6b,0xfc,0xf5,0xf7,0x6e,0xd7,0x7,0x83,0x9a,0x18,0xed,0x5f,0x23,0xfa,
+ 0xfc,0x3c,0xce,0x93,0x8,0xac,0xdd,0xf9,0x22,0x9b,0xd7,0x8c,0xc8,0x7f,0xde,0x7a,
+ 0xdf,0x5a,0xa0,0xa,0x7c,0x9f,0xce,0x6,0xc0,0x2a,0xe7,0xb2,0xe7,0x4f,0x29,0x3f,
+ 0x2a,0x6,0x50,0x2,0x7e,0xb5,0xbb,0xbb,0xf7,0xe3,0xef,0x78,0xc7,0x3b,0xcd,0x87,
+ 0x3f,0xfc,0x3f,0xa4,0xd6,0x6,0x21,0x4,0x8e,0xe3,0xe1,0x38,0xe,0xae,0xeb,0x51,
+ 0x28,0x14,0x28,0x95,0xca,0x74,0x77,0x77,0xd1,0xdf,0xdf,0x4f,0x4f,0x4f,0x37,0xc5,
+ 0x62,0x91,0x7c,0x3e,0x47,0xa1,0x50,0xa2,0x50,0xc8,0xe3,0x38,0xf6,0x96,0x69,0xd,
+ 0xe5,0x72,0x85,0x2b,0xaf,0xb8,0x42,0x5c,0x7a,0xc9,0x8b,0xe4,0x3d,0x8f,0x6e,0x13,
+ 0x77,0x8d,0x1d,0xd4,0xc5,0x4a,0x59,0xc,0xba,0x79,0xa,0xae,0xf7,0xf8,0x48,0xa3,
+ 0x44,0x84,0x10,0xc,0x16,0xcb,0xec,0x38,0x3a,0x9e,0xdf,0x33,0x3f,0x79,0x2e,0xf0,
+ 0x1d,0xe0,0x38,0x56,0x57,0xa7,0x63,0x0,0x9d,0x8c,0x61,0x55,0xf9,0x51,0x30,0x80,
+ 0x12,0xf0,0xde,0x9e,0x9e,0xbe,0x8f,0xbd,0xf3,0x9d,0xbf,0x6c,0xde,0xff,0xfe,0xdf,
+ 0x10,0x41,0xd0,0xc2,0xa4,0x94,0xe3,0x38,0x82,0x7c,0xde,0x23,0x9f,0xf7,0xf1,0x7d,
+ 0xf,0xcf,0x73,0x70,0x1c,0x89,0xe3,0x38,0x38,0x8e,0x40,0x4a,0x89,0x94,0x2,0xd7,
+ 0x75,0xc9,0xe5,0xf2,0x88,0x4,0xfc,0x9,0xe1,0x10,0x45,0x11,0xe5,0x72,0x99,0x6b,
+ 0x5f,0x76,0x2d,0xcd,0xa0,0xc5,0x96,0xa9,0x31,0xe6,0x5a,0x75,0x31,0xec,0xe5,0xe9,
+ 0xca,0x15,0x1e,0xbf,0x11,0x8,0x70,0x84,0x83,0x8f,0xcb,0x1d,0xfb,0x77,0xf5,0x35,
+ 0x54,0xd8,0xb,0x7c,0x15,0x9b,0xe3,0x1f,0xaf,0x1,0x64,0x1f,0x4f,0x92,0xe7,0xbb,
+ 0x1,0x14,0x81,0xf7,0xf7,0xf4,0xf4,0xfd,0x3f,0xef,0x7a,0xd7,0xbb,0xf5,0x7b,0xde,
+ 0xf3,0x1,0x19,0x86,0x27,0x2a,0x1f,0xc0,0xf7,0x6d,0x14,0x10,0x2,0x8c,0x31,0x48,
+ 0x29,0xf1,0x3c,0x7,0x29,0x25,0x42,0x48,0x84,0xb0,0x9e,0x9,0x24,0x18,0xc1,0x43,
+ 0x4a,0x7,0x63,0x24,0x52,0xba,0x18,0x3,0x51,0x14,0xb0,0x71,0xe3,0x39,0xa2,0xab,
+ 0x5c,0x12,0x7b,0x97,0xe6,0xd9,0x39,0x7e,0x94,0x11,0xe9,0xd1,0x57,0xee,0x7a,0xdc,
+ 0x84,0x92,0x10,0xd0,0x6c,0xc5,0x1c,0x9c,0x98,0x61,0xcf,0xd2,0xc4,0x10,0x76,0x34,
+ 0xf1,0x7,0x80,0xcb,0xea,0xca,0x3f,0x95,0x1,0x64,0xcf,0x2f,0xcb,0xf3,0xd9,0x0,
+ 0xa,0xc0,0x7,0xba,0xbb,0x7b,0x6e,0xfe,0x95,0x5f,0xf9,0xef,0xbc,0xfb,0xdd,0xef,
+ 0x95,0x61,0x18,0x9e,0xf4,0x9f,0x1c,0x47,0xe2,0xba,0x2e,0xae,0xeb,0x26,0x29,0x41,
+ 0xe2,0xba,0x4e,0xe2,0xf5,0xd6,0xd3,0x8d,0x1,0xad,0xd,0x5a,0x1b,0x94,0xd2,0x80,
+ 0xc1,0x18,0x43,0x14,0x29,0xb4,0x36,0xb8,0xae,0x8f,0xe3,0x38,0x28,0x15,0xd3,0xdb,
+ 0xdb,0x4b,0x7f,0x7f,0x2f,0x63,0xf5,0x2a,0x77,0x6c,0x7f,0xd8,0xac,0x75,0x72,0xc,
+ 0x75,0xf7,0x8a,0xc7,0x6b,0x4,0xb,0xf5,0x6,0x7,0xc6,0x66,0x68,0xea,0xa8,0x74,
+ 0xbc,0xb9,0x58,0x6,0xbe,0x88,0xed,0x2d,0x68,0xd7,0x9e,0xa7,0xa3,0xfc,0x4e,0xa9,
+ 0xe0,0x4,0x23,0x78,0xbe,0x1a,0xc0,0x30,0xf0,0x97,0xeb,0xd7,0x6f,0x78,0xcf,0x1f,
+ 0xfc,0xc1,0x1f,0x8b,0x9f,0xfc,0xc9,0xb7,0x89,0x38,0x8e,0x96,0x5f,0x6c,0x23,0x7d,
+ 0xcf,0x73,0xc9,0xe7,0x73,0x14,0x8b,0x79,0xa,0x85,0x1c,0xb9,0x9c,0x87,0xe7,0xb9,
+ 0xcb,0x5e,0x6f,0xef,0x95,0x55,0x7c,0x18,0xc6,0xd4,0x6a,0xd,0x9a,0xcd,0x90,0x38,
+ 0x56,0x44,0x91,0x22,0xc,0x43,0x94,0xd2,0xc9,0xe7,0xf9,0xb8,0xae,0xf,0x40,0xb1,
+ 0x58,0x64,0x64,0x64,0x84,0x30,0xef,0x89,0x7f,0xbc,0xfb,0x36,0xe3,0x36,0x5a,0x9c,
+ 0x3f,0xba,0x5e,0x18,0xad,0x4e,0xb,0x1e,0x1a,0x63,0x98,0x98,0x5f,0xe2,0xc0,0xf8,
+ 0x34,0x95,0x5c,0x81,0x3,0x4b,0x53,0xa3,0x81,0x8e,0x1f,0x0,0x76,0x1,0x3e,0x9d,
+ 0xbd,0xff,0x54,0x55,0xc2,0xaa,0x86,0xf0,0x7c,0x34,0x80,0x33,0x80,0x4f,0xac,0x5b,
+ 0xb7,0xe1,0xad,0x37,0xdf,0xfc,0x51,0x5e,0xf9,0xca,0x57,0xa3,0xd4,0x4a,0x53,0x8e,
+ 0x94,0x92,0x42,0xc1,0xa7,0x5c,0xce,0x53,0x28,0x58,0xc5,0x7b,0x9e,0x9b,0xe4,0x7c,
+ 0x89,0x10,0x2,0x21,0x4,0xc6,0x68,0xb4,0x36,0xcb,0x3,0x80,0x61,0x18,0x53,0xaf,
+ 0xb7,0x68,0xb5,0x62,0xa2,0x28,0x26,0x8e,0x63,0xb4,0x56,0x27,0xa4,0xf8,0x76,0x19,
+ 0xe9,0x38,0xe,0xbe,0xe7,0xd3,0xd7,0xdb,0x8b,0xf2,0x5c,0xf1,0x95,0x7b,0xef,0xa4,
+ 0x47,0xc3,0xa6,0xd1,0x75,0xe2,0x74,0x6,0x97,0x62,0x6d,0x38,0x30,0x39,0xcd,0xfe,
+ 0xc9,0x29,0xa,0xae,0x4f,0x35,0x6e,0xb9,0x63,0xf5,0xf9,0x3d,0xc0,0x43,0x80,0xe2,
+ 0xc4,0xaa,0x80,0x55,0x1e,0x3b,0x95,0x89,0x64,0xce,0x8b,0xe7,0x9b,0x1,0x9c,0x5,
+ 0xfc,0xd9,0xc6,0x8d,0xe7,0xbc,0xe5,0xe6,0x9b,0x3f,0xc6,0xb5,0xd7,0xbe,0x72,0xf9,
+ 0x5,0x21,0x2c,0xd8,0x2b,0x16,0xf3,0xcb,0x1e,0xef,0xfb,0x6e,0x12,0xee,0x5,0x52,
+ 0x8a,0x65,0xe5,0xb7,0xff,0xd6,0xda,0x10,0xc7,0xa,0x63,0x6c,0xe8,0xf,0x82,0x8,
+ 0xa5,0xec,0xf3,0xb6,0x71,0x64,0x45,0x8,0x89,0x52,0xa,0x10,0x48,0xe9,0xb0,0x66,
+ 0x70,0xd,0x75,0x94,0xb8,0xf5,0xbe,0xef,0x89,0xf3,0x2b,0xbd,0xc,0xf5,0xf4,0xdb,
+ 0x5e,0x82,0xd5,0x44,0x8,0xc2,0x30,0xe2,0xa1,0x3,0x47,0x98,0x5a,0xac,0x52,0xf4,
+ 0x7c,0x9a,0x71,0xc4,0x8e,0x85,0xf1,0x1a,0xb6,0x24,0x9c,0x63,0x5,0xb,0x3c,0x96,
+ 0xc7,0x3f,0x56,0x14,0x78,0x5e,0x45,0x80,0xf3,0x80,0x3f,0xbb,0xf0,0xc2,0x8b,0xde,
+ 0xf8,0x7b,0xbf,0xf7,0x7,0x5c,0x7b,0xed,0x2b,0xc8,0xe7,0xbd,0x4,0xd5,0xbb,0x78,
+ 0x9e,0xbb,0xc,0xea,0x40,0xe0,0x38,0x16,0xd5,0xaf,0x48,0x1b,0x64,0xaf,0x0,0x41,
+ 0x63,0x4,0x41,0x10,0x12,0x4,0x11,0x51,0x14,0xa3,0x54,0x8c,0xd6,0x8f,0x8d,0xea,
+ 0xa5,0x74,0xf0,0x3c,0xf,0x29,0x5d,0x1c,0xc7,0x61,0x68,0x70,0x90,0x23,0x8b,0x73,
+ 0xdc,0xbf,0xf5,0x41,0x5e,0x77,0xd6,0x79,0x38,0xae,0xbb,0x7a,0x75,0x20,0x4,0xd5,
+ 0x66,0x8b,0x5b,0x7f,0xb0,0x1d,0xd,0x38,0x8,0x2,0x15,0xb1,0x67,0x71,0xa2,0x1c,
+ 0x6a,0x75,0x7,0x70,0x18,0xdb,0x8b,0xd8,0x56,0x7a,0x1b,0x13,0x64,0xb9,0x2,0x58,
+ 0x3d,0xa,0x2c,0xff,0xfd,0x7c,0x31,0x80,0x21,0xe0,0x33,0x97,0x5e,0x7a,0xf9,0x8f,
+ 0xdd,0x7c,0xf3,0x47,0x79,0xd9,0xcb,0xae,0xa5,0x5c,0x6e,0x7b,0xba,0x4f,0x3e,0xef,
+ 0x93,0xcb,0x59,0x63,0xb0,0xc0,0xce,0xa0,0x94,0x41,0x6b,0x8d,0xe3,0xb4,0x81,0x9e,
+ 0x7d,0xde,0x6,0x7c,0xf6,0x51,0xd1,0x68,0x4,0x34,0x9b,0x21,0x4a,0xa9,0xd3,0x52,
+ 0xbe,0x8d,0x20,0xd6,0xd0,0xda,0x2c,0xa3,0xef,0xfb,0xf4,0xf4,0x74,0xb3,0x65,0xff,
+ 0x1e,0xdd,0xdd,0xc,0xd9,0x34,0x34,0xba,0x2a,0x28,0x8c,0xb5,0xe6,0xde,0x5d,0xfb,
+ 0xd9,0x37,0x39,0x8d,0x93,0x44,0xa4,0x48,0x2b,0xf6,0x2e,0x1d,0xaf,0xd4,0xe2,0xe0,
+ 0x56,0x60,0x7,0x90,0xe3,0x44,0x85,0x9f,0x8a,0x29,0x34,0xac,0x1e,0x9,0x9e,0x17,
+ 0x6,0xb0,0xe,0xf8,0xf8,0xd5,0x57,0x5f,0x7b,0xe3,0x6f,0xff,0xf6,0xcd,0x5c,0x7e,
+ 0xf9,0xe5,0x9,0xaa,0x77,0x70,0x5d,0xb9,0x5c,0xc3,0x5b,0xb2,0xc7,0x49,0x50,0xbe,
+ 0x5c,0xfe,0x5b,0x6b,0x9d,0x1c,0x56,0xb9,0x5a,0x2b,0xa2,0x28,0x26,0x8,0x22,0x5a,
+ 0xad,0x88,0x56,0x2b,0x40,0x29,0x7d,0x5a,0xca,0xcf,0x4a,0xdb,0x18,0x1c,0xc7,0xa5,
+ 0x5c,0x2a,0x22,0x7c,0x57,0xdc,0xb3,0xe5,0x1,0x71,0x7e,0xa5,0xd7,0x96,0x87,0x99,
+ 0x28,0x60,0x8c,0x61,0xff,0xe4,0x34,0xdf,0x78,0x68,0x3b,0x52,0xb4,0x3f,0xc3,0x3e,
+ 0xee,0x5c,0x98,0x60,0x31,0x6c,0xdc,0x87,0x35,0x80,0xd3,0x51,0x3c,0x9c,0x1c,0x1,
+ 0x4e,0x3a,0xff,0x5c,0x37,0x80,0x73,0x81,0x4f,0x9c,0x7d,0xf6,0x39,0x3f,0xfe,0xd1,
+ 0x8f,0xfe,0xbf,0x9c,0x7b,0xee,0x79,0x4,0x41,0x48,0xab,0x15,0xd0,0x68,0x34,0x59,
+ 0x5a,0xaa,0xb2,0xb0,0xb0,0x48,0xad,0xd6,0x20,0x8a,0x62,0x60,0x5,0xdc,0xb5,0xf3,
+ 0xbd,0x25,0x7b,0x64,0xe2,0xb5,0xed,0x92,0x8f,0xc4,0x0,0x2,0xe2,0x58,0x9f,0xc4,
+ 0x1b,0x3c,0x5e,0x69,0x33,0x8d,0x3d,0x5d,0x15,0xee,0xde,0xf9,0x88,0x71,0xab,0xd,
+ 0x71,0x61,0xdf,0xd0,0x32,0xab,0xd8,0x96,0x89,0xb9,0x5,0x3e,0xf7,0xbd,0x7,0x89,
+ 0xe2,0x74,0x27,0xb9,0xc0,0x95,0x92,0x5d,0xb,0x13,0xcc,0x6,0xb5,0x1d,0xd8,0x86,
+ 0xd2,0x90,0x15,0xdd,0x9d,0x8a,0xf,0x78,0x2c,0x11,0xee,0x63,0xff,0x9f,0x67,0xad,
+ 0x5c,0x5,0xfc,0x47,0xa1,0xe0,0xac,0xab,0xd5,0xc6,0xd4,0x2f,0xfd,0xd2,0x5b,0x8c,
+ 0x52,0x4a,0x28,0x15,0x8b,0x28,0xd2,0xc2,0x18,0x3b,0x2a,0xe3,0x79,0xe,0x5d,0x5d,
+ 0x5d,0xf4,0xf7,0xf,0x70,0xc6,0x19,0xeb,0xf4,0xe6,0xcd,0x97,0x8a,0x4b,0x2f,0x7d,
+ 0xb1,0xb8,0xf0,0xc2,0xb,0xe9,0xef,0xef,0xa3,0x54,0x2a,0xe2,0xfb,0x3e,0xae,0xeb,
+ 0x20,0x84,0xc4,0x96,0xfe,0x3a,0x1,0x7e,0xe6,0x49,0x2b,0x1f,0xac,0x67,0xbb,0xae,
+ 0x47,0x5f,0xdf,0x10,0x2f,0xbb,0xe6,0x1a,0xbe,0xf6,0x85,0x2f,0xeb,0x8b,0x7b,0x7,
+ 0xc5,0x15,0xeb,0x37,0xa,0xb4,0x46,0x29,0xc5,0xec,0x52,0x9d,0x7f,0xff,0xde,0x83,
+ 0x34,0x82,0xe0,0xc4,0xf7,0x62,0xf0,0xa4,0x43,0xce,0x71,0x1,0x6,0x81,0xa,0x76,
+ 0xfe,0x81,0x4,0x2c,0x29,0x71,0xf2,0xa3,0x60,0xa5,0x5a,0x20,0x39,0xf,0x2b,0x23,
+ 0x86,0xcb,0xe9,0xe1,0xb9,0x6a,0x0,0x97,0x1,0x9f,0xbe,0xe0,0x2,0xd6,0xdd,0x74,
+ 0x93,0x62,0xdd,0xba,0xa6,0x23,0x25,0x38,0xe,0x78,0x1e,0xf8,0x3e,0xe4,0xf3,0xed,
+ 0x43,0xe3,0x38,0xb3,0xd4,0xeb,0xb3,0xec,0xd8,0xb1,0x5b,0xde,0x79,0xe7,0x6d,0xfa,
+ 0xb,0x5f,0xf0,0xf1,0xbc,0x2e,0x36,0x6d,0xba,0xd4,0xbc,0xf5,0x2d,0x3f,0x23,0xcf,
+ 0xbf,0xf0,0x62,0x6,0x6,0x87,0xe8,0xee,0xee,0xc6,0x71,0x1c,0xb4,0xd6,0xf8,0xbe,
+ 0x47,0x1c,0x2b,0x82,0x20,0x7a,0xca,0x8c,0xc0,0xf3,0x7c,0xae,0xb8,0xec,0xc5,0xe2,
+ 0x8e,0xbb,0xef,0x16,0xdf,0x3a,0xb4,0x87,0xd,0x3d,0x3,0x38,0x38,0xec,0x38,0x36,
+ 0xce,0xf7,0x76,0xef,0xa7,0xde,0x6c,0x75,0x7c,0xaf,0x40,0x90,0x77,0x7c,0xb0,0x13,
+ 0x53,0x8a,0x58,0xef,0x77,0x58,0x51,0x7a,0xfb,0x10,0xac,0x18,0x81,0x49,0x9d,0x6b,
+ 0x1b,0x4b,0xda,0x68,0xe0,0x39,0x1a,0x1,0x5e,0xc,0xfc,0xed,0xab,0x5f,0xcd,0x85,
+ 0x7f,0xfd,0xd7,0x70,0xf6,0xd9,0xa7,0xff,0xc6,0x37,0xbc,0x1,0x3e,0xf0,0x1,0x2d,
+ 0x1b,0xcd,0x16,0x77,0xdc,0xd6,0xe2,0x96,0x2f,0xdd,0xaa,0x3f,0xff,0xa9,0xbb,0xe3,
+ 0x79,0xb3,0x56,0x8c,0x6e,0xbe,0x46,0xbe,0xfe,0x75,0x37,0x70,0xf1,0xc5,0x17,0x89,
+ 0xd1,0xd1,0x51,0x72,0x39,0x8f,0x62,0x31,0xf,0x18,0x5a,0xad,0xe8,0x31,0x3f,0xfb,
+ 0x74,0x44,0x8,0xc1,0xe0,0xe0,0x8,0x97,0x5f,0x72,0xb9,0xf9,0xc7,0xbf,0xf8,0xb4,
+ 0xd1,0xb,0xa1,0x94,0x2d,0x87,0x7a,0xd0,0xc2,0x91,0x72,0x99,0x6e,0xee,0x24,0x39,
+ 0xc7,0x45,0x40,0xc5,0x58,0x86,0xd3,0xc1,0x96,0x82,0x59,0x3,0xd0,0x58,0xcf,0x4f,
+ 0x2b,0x19,0x56,0xc,0x1,0x4e,0x4c,0xd,0xe6,0xb9,0x86,0x1,0xae,0x6,0x3e,0xf3,
+ 0xda,0xd7,0x72,0xc1,0xdf,0xfd,0x1d,0xac,0x5f,0xff,0xc4,0x3e,0xc4,0xf3,0x60,0xd3,
+ 0x28,0xbc,0xe1,0xa2,0x35,0xf2,0x35,0x3f,0xf6,0xb,0x8d,0x73,0xcf,0x7b,0x49,0xfe,
+ 0x8e,0xdb,0xbf,0xc1,0x5f,0xfd,0xd5,0x5f,0x98,0xed,0xbb,0xf6,0xd3,0xdd,0xdd,0x43,
+ 0x7f,0xff,0x80,0x28,0x97,0x4b,0xf8,0xbe,0x4b,0x1c,0xeb,0x84,0x2,0x7e,0xf2,0x22,
+ 0xa5,0xcb,0x40,0xff,0x80,0xf9,0xca,0xb7,0xbf,0x21,0xe,0xee,0x3b,0x24,0xd6,0x96,
+ 0xfb,0xf0,0x1c,0xf7,0x94,0xca,0x97,0x42,0x70,0xa4,0x36,0xc7,0x91,0xda,0xec,0xac,
+ 0xc6,0xdc,0x9,0xcc,0x73,0xe2,0xe8,0x60,0xba,0x14,0x6c,0x4b,0xa7,0xf,0x34,0x99,
+ 0xc7,0xe7,0x14,0x11,0xf4,0x32,0xe0,0x33,0x37,0xdc,0xc0,0xe6,0xbf,0xfd,0x5b,0x58,
+ 0xbb,0xf6,0x9,0x7e,0x4a,0x84,0x1d,0x5c,0x9d,0x38,0x23,0xa0,0xeb,0x17,0xe2,0xe2,
+ 0x39,0xef,0x2e,0x9e,0x3d,0x9a,0xe3,0x67,0x5f,0x9e,0x13,0x17,0x9e,0xd5,0x2d,0xee,
+ 0x7d,0xe0,0x41,0x3e,0xf3,0x4f,0xff,0xae,0x14,0xae,0x1c,0x19,0x1e,0x65,0x60,0xa0,
+ 0x1f,0xdf,0x77,0x96,0xc9,0xa0,0x93,0xab,0xaa,0xc7,0x27,0x42,0x8,0x7c,0xdf,0x9d,
+ 0xdb,0xf1,0xc8,0xc3,0xe6,0xc1,0x9d,0xdb,0xfc,0x8d,0xa5,0x41,0xca,0x7e,0xfe,0x94,
+ 0xef,0x71,0x84,0xe4,0x70,0x6d,0x96,0xc3,0xd5,0x99,0x39,0x8d,0xb9,0x83,0x15,0x32,
+ 0x28,0x3b,0x2e,0x90,0x95,0xf6,0xc5,0xae,0x9a,0xc3,0x9e,0x2b,0x6,0xf0,0xa,0xe0,
+ 0x6f,0xde,0xf8,0x46,0xce,0xfd,0x9b,0xbf,0x81,0x91,0x91,0x27,0xf8,0x29,0x2d,0xe0,
+ 0xa8,0x80,0xb9,0x33,0x43,0x86,0x7f,0x5,0x86,0x7f,0x39,0x4f,0xbd,0x5,0x87,0x6f,
+ 0x81,0xe6,0x4,0x9b,0x37,0xf,0xf1,0x7f,0xbd,0xe6,0x3c,0x11,0xab,0xd8,0x7c,0xe6,
+ 0xb3,0x5f,0x14,0xbb,0xf,0x8c,0x8b,0x73,0x36,0x9e,0xc3,0x99,0x67,0x9e,0x99,0x8c,
+ 0xe,0x8a,0x84,0x19,0x7c,0xe2,0x3f,0xc4,0x75,0x3d,0xe,0x1e,0xdc,0x77,0xa4,0x5e,
+ 0xaf,0x16,0xee,0xdb,0xfa,0x50,0xa1,0x2b,0x76,0x18,0x2e,0xf6,0x9c,0x32,0x2,0x38,
+ 0x42,0x72,0xa8,0x3e,0xc3,0xa1,0xda,0xcc,0x8c,0x36,0xe6,0xbb,0x9c,0xcc,0x6,0xb6,
+ 0xe5,0x84,0xf0,0x7e,0x3a,0x8f,0xcf,0x5,0x3,0x78,0x15,0xf0,0x97,0x37,0xde,0xc8,
+ 0xe6,0xbf,0xfc,0xcb,0x27,0xa1,0xfc,0x0,0x38,0x22,0x60,0x61,0x7d,0xc8,0xf0,0xbb,
+ 0x60,0xf0,0x1d,0x39,0x54,0x11,0x8e,0x7e,0x9,0xe6,0x1f,0xb5,0xf5,0x5f,0xac,0x70,
+ 0x1d,0xc1,0x2b,0xaf,0x3e,0x53,0x6e,0x5a,0xdb,0x23,0xbe,0x7a,0xeb,0x3d,0xdc,0x7a,
+ 0xe7,0x43,0xe6,0x82,0xf3,0xce,0xe3,0xac,0xb3,0xce,0x16,0x9e,0x67,0xcb,0xc5,0x28,
+ 0x52,0x49,0xdf,0xe0,0xe3,0x8f,0x4,0xae,0xeb,0xb1,0x7d,0xfb,0xf,0x9a,0xc6,0xa8,
+ 0xe2,0xc1,0x83,0x7,0x73,0xe3,0xc7,0x27,0xd9,0xdc,0x35,0x8c,0x2f,0x57,0x57,0x85,
+ 0x23,0x24,0x7,0xaa,0x53,0x1c,0xaa,0xce,0x1c,0xd7,0x98,0xbb,0xb0,0x29,0xa0,0x8d,
+ 0xdf,0x56,0x9a,0x19,0x3b,0x4b,0xb6,0x2,0x38,0xa1,0xe7,0xfd,0xa9,0x6a,0x6b,0x7d,
+ 0xba,0xe4,0x7d,0xc0,0xbf,0xfe,0xd6,0x6f,0xb1,0xf9,0x9f,0xff,0x19,0x46,0x47,0x9f,
+ 0xe0,0xa7,0xb4,0x80,0xbd,0x8e,0x21,0x7a,0x71,0x93,0x73,0xfe,0x8,0x46,0xdf,0xeb,
+ 0x13,0x49,0x38,0xf8,0x6f,0x30,0x71,0xf,0x84,0x4d,0x6b,0x0,0x51,0x0,0x61,0xb,
+ 0x6a,0x75,0x6e,0x7a,0xf9,0x19,0x7c,0xe5,0x4f,0x6e,0xe4,0xa5,0xeb,0x17,0xc4,0xdb,
+ 0x7e,0xf6,0x67,0xf4,0xdf,0xff,0xfd,0x67,0x8c,0xe7,0xf9,0x94,0xcb,0x5,0xba,0xbb,
+ 0x4b,0xa7,0xf4,0xd8,0xd5,0xc4,0x75,0x5d,0x26,0x27,0x8f,0x8d,0x1d,0x3f,0x3e,0x51,
+ 0x6e,0x34,0x1a,0x95,0xab,0x5f,0xf2,0x52,0xa6,0x69,0xb1,0x10,0x36,0x38,0x95,0xe,
+ 0x5,0x82,0x40,0xc5,0xc4,0x46,0x37,0x92,0x53,0x1e,0xd6,0x0,0xda,0x8f,0xed,0xc3,
+ 0xc1,0xea,0xf4,0x74,0x8e,0x67,0x3d,0x15,0xfc,0x6b,0xc0,0x47,0x7e,0xfb,0xb7,0x19,
+ 0xfc,0xd0,0x87,0xa0,0x52,0x79,0x12,0x9f,0x34,0xe5,0x41,0xf4,0xd2,0x26,0xc5,0xff,
+ 0xea,0x33,0xf2,0x56,0x8f,0x56,0x15,0x8e,0x7c,0x5,0x26,0xee,0x2,0x42,0x90,0x2e,
+ 0x84,0xc9,0xbd,0x55,0x31,0xb8,0x3e,0x20,0xa9,0xf4,0x55,0x78,0xe9,0x85,0xc3,0xd4,
+ 0x6a,0xb,0xfc,0xd9,0xdf,0xdf,0x62,0xfa,0x7a,0x7b,0xc5,0xe5,0x97,0x5f,0x29,0x1c,
+ 0x47,0x2c,0xf7,0x2,0x3c,0x9e,0x12,0x51,0x4a,0x87,0x47,0x1e,0x79,0xa8,0x7e,0xf8,
+ 0xf0,0xa1,0x2,0xe0,0xf7,0xf5,0xf5,0xf1,0xd0,0xb6,0x87,0xe9,0x8a,0x1d,0x86,0xa,
+ 0xdd,0xab,0x1a,0x95,0x23,0x25,0xdb,0xe6,0x8e,0x32,0xd1,0x58,0xd8,0xd,0x3c,0x80,
+ 0xe5,0x1,0xd2,0xba,0x4b,0xd3,0xbe,0xd9,0xb,0x32,0x99,0xf3,0xe9,0xe7,0xcf,0xda,
+ 0x2a,0xe0,0x37,0x81,0xdf,0xf8,0xdd,0xdf,0x65,0xe0,0x3,0x1f,0x78,0x92,0xca,0x9f,
+ 0xf5,0xa0,0x7a,0x79,0x93,0xfc,0x7f,0xf3,0x18,0xf9,0x69,0xf,0x1d,0xc3,0xe1,0x2f,
+ 0xc3,0xd1,0x6f,0x83,0x63,0xc0,0xf1,0x20,0x57,0x0,0x2f,0xf,0x5e,0xce,0x92,0x9,
+ 0x5a,0x81,0x8a,0x20,0x8a,0x28,0xb8,0x9a,0x97,0x9c,0xd3,0x2d,0xa2,0xb0,0xc5,0x9f,
+ 0x7c,0xe6,0x56,0xd3,0x55,0xa9,0x88,0xcb,0x2f,0xbf,0x42,0x48,0x69,0xec,0x24,0x60,
+ 0x75,0x7a,0x4c,0xa1,0xef,0xfb,0xcc,0xcd,0xcd,0x2c,0xde,0x7f,0xff,0x3d,0x5a,0x6b,
+ 0xd5,0x2b,0xa5,0x24,0x9f,0xcf,0x73,0xf4,0xc8,0x11,0xdd,0x9a,0x5b,0x14,0x67,0x95,
+ 0x7,0x90,0x1d,0xe6,0x19,0xb4,0xdb,0x12,0xb6,0xce,0x1e,0x61,0xba,0x55,0x7d,0x18,
+ 0x3b,0x24,0x1c,0x71,0x72,0xc8,0x68,0x73,0x0,0x70,0xa2,0x11,0x98,0xe,0xc7,0xb2,
+ 0x3c,0x1b,0xd,0xe0,0x7f,0x3,0x1f,0xfc,0xd8,0xc7,0xe8,0x79,0xdf,0xfb,0xa0,0x5c,
+ 0x7e,0x2,0x9f,0xd0,0xfe,0x99,0xaa,0x0,0x7,0xce,0x89,0xc8,0xbd,0xcb,0x61,0xed,
+ 0x4f,0x7b,0x38,0x12,0xc6,0xbf,0x3,0xd3,0x77,0x81,0x6a,0x1,0x32,0x9,0xfd,0x91,
+ 0x7d,0x43,0x1c,0xda,0x9,0x9c,0x60,0xd,0xc1,0x71,0x40,0xba,0xe4,0x8a,0x39,0xae,
+ 0xbc,0x60,0x48,0x34,0x9a,0x55,0xfe,0xe0,0xcf,0xbf,0x64,0x4a,0xc5,0x2,0x2f,0x7b,
+ 0xd9,0xcb,0x84,0x6d,0x16,0xd1,0xc4,0xf1,0xa9,0x4b,0x44,0xc7,0x71,0x68,0x36,0x1b,
+ 0xf5,0x87,0x1f,0x7e,0x70,0x66,0x6c,0xec,0xe8,0x88,0xeb,0xba,0xb2,0x3d,0x4e,0x10,
+ 0x4,0x1,0xe3,0x47,0x8e,0x8a,0x4d,0xa5,0x35,0xb8,0x1d,0x70,0x80,0x14,0x82,0x50,
+ 0xc5,0x6c,0x9d,0x3b,0xc2,0x7c,0x50,0xbf,0x7,0x3b,0x73,0x28,0x8d,0xee,0xd3,0xde,
+ 0x9f,0xbd,0x3,0x69,0x76,0xb0,0xe3,0xf1,0x6c,0x23,0x82,0x7e,0xd6,0x75,0xf9,0xc0,
+ 0xc7,0x3f,0x4e,0xe9,0x5d,0xef,0xb2,0x4c,0xde,0x69,0x4b,0xda,0xb6,0x5,0x20,0x8a,
+ 0xf0,0xe8,0x3a,0x45,0xf9,0x3d,0x92,0x33,0xde,0xea,0x60,0x2,0x38,0xf8,0x4d,0x98,
+ 0xbc,0x13,0x8,0x2d,0x5d,0x88,0x48,0xc2,0x3d,0x49,0xdf,0x9e,0x49,0xa6,0x72,0x6b,
+ 0x8b,0x5,0x54,0x13,0xc2,0x0,0x84,0xa0,0x9c,0x2f,0xf0,0x81,0xb7,0x9c,0x2d,0x6b,
+ 0x4b,0x4b,0xe6,0xf,0x3f,0xfe,0x47,0xe6,0xe5,0x2f,0x7f,0x39,0x17,0x5f,0x7c,0x9,
+ 0x4a,0xd9,0x9e,0x81,0x30,0xec,0xbc,0x12,0x8c,0x55,0x72,0x18,0xec,0xdc,0xf9,0xe8,
+ 0xfc,0xee,0xdd,0x3b,0x86,0x3d,0xcf,0x73,0xda,0xa1,0xde,0xf7,0x7d,0x6,0x7,0x7,
+ 0xc5,0x43,0x52,0x9f,0x62,0x56,0x87,0xa0,0xa9,0x22,0x9a,0x71,0x8,0x16,0xfd,0x87,
+ 0xd8,0x7c,0x9f,0x26,0x7b,0xd2,0xd,0xa3,0xa4,0xfe,0x4e,0xf,0x18,0x75,0x94,0x67,
+ 0x4b,0x4,0x70,0x80,0x5f,0xf4,0x3c,0x3e,0xf1,0xa9,0x4f,0x51,0x79,0xe7,0x3b,0x21,
+ 0x97,0x7b,0x9c,0x9f,0x10,0xb1,0x12,0x18,0x9d,0x3c,0x6c,0x3f,0x53,0x51,0xf9,0x75,
+ 0x38,0xf3,0xc7,0x1d,0x4c,0xb,0x26,0x6f,0x83,0xa5,0x87,0x41,0xc4,0xe0,0xe6,0x6c,
+ 0xde,0x47,0x40,0xd0,0x84,0xa0,0xb1,0x2,0x0,0xdb,0xd1,0xc0,0x68,0xf0,0xb,0x50,
+ 0xac,0x40,0xa1,0x2,0x7e,0x81,0x5c,0xb9,0xcc,0x8b,0x36,0xd,0x8a,0xfd,0xfb,0xe,
+ 0x8a,0x6d,0x87,0x9a,0xbc,0xf8,0xaa,0x2b,0xa8,0x54,0x4a,0x44,0x91,0x6d,0x11,0xcb,
+ 0x8a,0x10,0x82,0x28,0x8a,0xc2,0x1d,0x3b,0x1e,0x9d,0x7a,0xf0,0xc1,0x7b,0xfb,0x5d,
+ 0xd7,0x2d,0x4a,0x29,0x59,0x5c,0x5c,0xa4,0xd9,0x6c,0xe2,0xfb,0x3e,0xf3,0xf3,0xf3,
+ 0x3c,0xbc,0x6d,0x1b,0x97,0x56,0xd6,0xe2,0x75,0x88,0x0,0x8e,0x10,0xcc,0xb6,0x6a,
+ 0x6c,0x9d,0x3d,0x1c,0xb4,0x54,0x74,0x1b,0x30,0xc6,0x4a,0x5,0x0,0x27,0x33,0x7e,
+ 0xed,0x73,0x59,0x86,0xb0,0x63,0x44,0x78,0x36,0x44,0x80,0x1c,0xf0,0x8b,0xc5,0x22,
+ 0x7f,0xfa,0xee,0x77,0xe3,0xbd,0xf3,0x9d,0x4f,0xf0,0x53,0x7c,0x92,0x9f,0x94,0x83,
+ 0x47,0x37,0x28,0xba,0x7f,0x7,0x86,0x5f,0xe3,0x60,0x42,0x38,0x76,0xb,0x4c,0x3d,
+ 0x8,0x71,0xd,0x74,0x6c,0x15,0x1d,0x87,0x50,0xec,0x6,0x84,0xcd,0xfd,0xae,0x7,
+ 0xd2,0xb3,0xe3,0xaf,0x2,0x6b,0x10,0x2a,0x86,0xa8,0xe,0x71,0xf2,0x9e,0xb0,0xc9,
+ 0x70,0xa5,0xc4,0xfb,0xde,0x7c,0xe,0x6f,0xfb,0xc3,0xcf,0x9a,0x2b,0xaf,0xb8,0x9c,
+ 0x9f,0xfb,0xd9,0x9f,0x11,0xb9,0x9c,0xb7,0xdc,0x33,0x90,0x96,0x56,0xab,0xd9,0xdc,
+ 0xb2,0xe5,0xde,0x63,0x7b,0xf6,0xec,0x5a,0xef,0x38,0x8e,0x6f,0xfb,0xf,0x1c,0xe2,
+ 0x38,0x66,0xef,0xde,0xbd,0xec,0xdf,0xbf,0x1f,0xcf,0xf7,0xa9,0xb7,0x9a,0xab,0x46,
+ 0x0,0x21,0x4,0xd,0x15,0xb0,0x18,0x36,0x8f,0x0,0x8b,0xac,0x20,0x7d,0xc3,0xa,
+ 0xa2,0x6f,0xd7,0xa4,0xab,0x11,0x42,0xab,0x9d,0xe7,0x99,0x36,0x80,0x22,0xf0,0xae,
+ 0xae,0x2e,0xfe,0xf8,0xbd,0xef,0x45,0xdf,0x7c,0xf3,0x93,0xfc,0xb4,0xc0,0x81,0x3d,
+ 0x1b,0x34,0x6b,0x7e,0x4f,0xd0,0x7f,0x95,0xa4,0x39,0x5,0xe3,0x77,0xc2,0xd4,0x7d,
+ 0x20,0x94,0xf5,0x7a,0x37,0x7,0xf9,0x2e,0xab,0x68,0xad,0x20,0x8e,0xac,0x51,0x54,
+ 0x67,0xad,0xf7,0x4b,0x9,0x42,0xda,0xf3,0xe5,0x1e,0x9b,0x22,0xbc,0x2,0x14,0xbb,
+ 0xc0,0x71,0xc1,0x68,0x2e,0xbf,0xb4,0x9b,0xd7,0xbf,0xe8,0x80,0xf9,0x97,0x7f,0xfa,
+ 0x8c,0x39,0x63,0xed,0xa8,0xbc,0xf2,0xca,0x17,0x8b,0x54,0x6f,0x81,0x89,0xe3,0x38,
+ 0x9e,0x9b,0x9b,0xad,0xde,0x71,0xc7,0x37,0x8e,0x37,0x9b,0xc1,0xf9,0x52,0xda,0x12,
+ 0x70,0x7e,0x7e,0x9e,0x30,0xc,0x71,0x5d,0x17,0xad,0x35,0xe3,0xe3,0xe3,0x8c,0x8e,
+ 0x8e,0xa2,0x4d,0x96,0xba,0x5f,0x91,0xd8,0x68,0xe6,0x5a,0x35,0x34,0xe6,0x30,0x2b,
+ 0x6,0x70,0x2a,0x65,0xb7,0xe5,0xb1,0x5e,0x7,0x9e,0x59,0x3,0x28,0x3,0xbf,0xd2,
+ 0xdf,0xcf,0x1f,0xfe,0xda,0xaf,0xa1,0x3f,0xf2,0x91,0x27,0xc1,0x49,0x68,0x60,0x1a,
+ 0xc3,0xb1,0x61,0xcd,0xf0,0xaf,0x43,0xdf,0xc5,0xe,0x8d,0x19,0x98,0x7e,0x8,0x96,
+ 0xb6,0x41,0x3e,0x67,0xbd,0x58,0xc5,0x10,0x85,0x56,0xe1,0x51,0x8,0x71,0x13,0xdc,
+ 0x4,0xfd,0xe7,0xa,0x50,0xea,0x5,0x3f,0xbf,0x2,0x4,0x4d,0x92,0xa,0xb4,0xb6,
+ 0xc6,0xd2,0xaa,0x41,0xb3,0xa,0x39,0x9f,0xf7,0xbc,0xed,0x32,0xf9,0x73,0x37,0xdf,
+ 0xc9,0x6d,0xb7,0x7f,0xd7,0x6c,0xda,0x74,0xae,0x6a,0xb5,0x22,0xa3,0x35,0xaa,0xd5,
+ 0x6a,0xc5,0xf7,0xdd,0x77,0xd7,0xfe,0x89,0x89,0xa3,0xe7,0x68,0xad,0xcf,0x3f,0x7c,
+ 0xf8,0x30,0xf9,0x7c,0x9e,0xa1,0xa1,0x21,0xe2,0x38,0x66,0x6c,0x6c,0x8c,0xbe,0xbe,
+ 0x3e,0x84,0x10,0x84,0x61,0x68,0xdb,0xcf,0x56,0x29,0xff,0xa4,0x10,0x2c,0x85,0x4d,
+ 0x8e,0xd6,0xe7,0xc0,0xb6,0x82,0x2d,0xb2,0x92,0xff,0x57,0x6b,0x0,0x39,0x15,0x57,
+ 0x7d,0x92,0x51,0x3c,0x53,0x6,0x50,0x6,0xfe,0xfb,0xe0,0x20,0x1f,0xfd,0xe0,0x7,
+ 0x31,0x1f,0xfa,0xd0,0x93,0x24,0xa4,0x62,0xc,0x8b,0x7d,0x11,0x23,0xef,0x11,0x74,
+ 0x6d,0x70,0x99,0xdb,0xf,0xd3,0xdb,0x61,0xe6,0x7,0x50,0x9f,0x85,0x5c,0xd1,0x96,
+ 0x7b,0x9e,0x67,0x91,0xbd,0xeb,0x5a,0x45,0xd3,0x6d,0xdf,0xef,0xe7,0xec,0xeb,0x6,
+ 0x6b,0x1c,0x71,0xb8,0x42,0xc,0xc5,0x21,0xb4,0xea,0x36,0x62,0xe4,0x8a,0xd0,0x3b,
+ 0xc,0x6e,0x8e,0x73,0x86,0x5d,0x6e,0x7a,0xc5,0xd9,0xfa,0x4f,0xff,0xe6,0x13,0x71,
+ 0xd0,0x5a,0x5a,0xe8,0xee,0xee,0xd1,0xae,0xeb,0x4f,0xb7,0x5a,0xf5,0x75,0xb9,0x5c,
+ 0xee,0x92,0x5c,0x2e,0x47,0xb3,0xd9,0xa4,0xd5,0x6a,0x71,0xf4,0xe8,0x51,0x94,0x52,
+ 0x54,0x2a,0x15,0xea,0xf5,0x3a,0x9e,0xe7,0x21,0x84,0x20,0x8e,0x63,0x82,0x30,0xc0,
+ 0x93,0xe9,0xf9,0x1e,0x2b,0x22,0x80,0xe9,0x56,0x95,0x7d,0xd5,0xe3,0x75,0xe0,0x68,
+ 0x72,0xba,0x3d,0xc,0xc,0x27,0xc2,0xde,0x6c,0x15,0xd0,0x49,0x4e,0x3a,0xff,0x4c,
+ 0x80,0xc0,0x12,0xf0,0xde,0xc1,0x41,0x3e,0xfa,0xe1,0xf,0x63,0x3e,0xf8,0xc1,0x27,
+ 0x31,0xb2,0x2,0x16,0x13,0x8f,0x15,0x43,0xba,0x7f,0xf,0xa,0xeb,0x7c,0x66,0xc6,
+ 0x5,0x53,0x3b,0xa0,0xba,0xd7,0xae,0xe8,0xd5,0x35,0x0,0xa5,0x1e,0xab,0xbc,0x76,
+ 0x9d,0xad,0x23,0x7b,0x2b,0x72,0x25,0x1b,0xd6,0xb5,0xb6,0xd1,0x21,0xe,0xad,0x97,
+ 0x7,0xd,0x68,0x35,0xec,0xf3,0x42,0x19,0xca,0xbd,0x50,0xee,0xb3,0xff,0x5f,0x48,
+ 0x7b,0x3e,0x8e,0xd9,0xbc,0x61,0x40,0x7c,0xf5,0xce,0xdd,0xce,0xd1,0xe3,0xcd,0xd2,
+ 0x86,0xd,0xeb,0xca,0x13,0x13,0x63,0x43,0xbe,0xef,0xe7,0x95,0x52,0x4,0x41,0x80,
+ 0x31,0x86,0x20,0x8,0x98,0x9a,0x9a,0x22,0x8a,0x22,0x7c,0xdf,0x67,0x61,0x61,0x61,
+ 0x59,0xf9,0xb,0xb,0xb,0x4,0xad,0x90,0xd6,0x52,0x95,0xcb,0x7a,0xcf,0x3c,0x1,
+ 0x4,0x4a,0x4,0xd5,0xb8,0xc5,0x3d,0xc7,0xf7,0x70,0xb4,0x3e,0xbf,0x13,0xf8,0x26,
+ 0x27,0x36,0x7e,0xb4,0x87,0x7d,0xb3,0xc3,0xc0,0xd9,0xe7,0x8a,0x13,0xc1,0x5f,0x1a,
+ 0x14,0xfe,0xd0,0x23,0x40,0x1,0x78,0xcf,0x9a,0x35,0xfc,0xfe,0x6f,0xfc,0x6,0xe6,
+ 0xfd,0xef,0x7f,0x92,0xca,0x8f,0x31,0x8c,0x95,0x42,0xea,0x6f,0xd7,0xc,0xbd,0xb4,
+ 0x40,0x7d,0x11,0xe2,0x49,0x90,0x55,0x68,0x4f,0xc9,0x8a,0x93,0xd9,0x40,0x2a,0xb6,
+ 0x94,0xaf,0x74,0x2c,0xe9,0x3,0xf6,0xb5,0x20,0x51,0xb4,0x90,0x16,0x23,0x78,0x3e,
+ 0xe4,0x7a,0x2c,0x28,0xd4,0x1a,0x8c,0x6d,0xf1,0xc6,0xa8,0xc4,0x50,0x22,0x1b,0x11,
+ 0x1c,0x97,0xc1,0x33,0xfb,0xb9,0xe1,0x9a,0xb3,0xf4,0x5f,0xff,0xe7,0x6e,0xb1,0x6b,
+ 0xd7,0xa8,0xa8,0xd7,0xeb,0xcc,0xcf,0xcf,0x2f,0x7b,0xfa,0xfc,0xfc,0x3c,0x1b,0x36,
+ 0x6c,0xc0,0x71,0x1c,0xe6,0xe6,0xe6,0xc8,0xe7,0xf3,0xe8,0xa4,0x3,0x28,0x8a,0x22,
+ 0x5c,0xd7,0xa5,0x5a,0xaf,0x9a,0xa2,0xf0,0x85,0x4c,0xdd,0xa,0x81,0x20,0x34,0x31,
+ 0x3f,0x98,0x39,0xcc,0xc3,0x73,0x47,0x17,0x80,0xef,0x62,0x57,0x1f,0xed,0x34,0xdc,
+ 0x9b,0xad,0xed,0x4f,0x59,0xf7,0x67,0xdf,0xfb,0xc3,0x8c,0x0,0x39,0xe0,0x7d,0xbd,
+ 0xbd,0x7c,0xec,0xc3,0x1f,0xc6,0x7c,0xe0,0x3,0x4f,0x52,0xf9,0x1,0x86,0x23,0x6b,
+ 0x42,0xa2,0xf7,0x68,0xce,0x7e,0x7b,0x8e,0x56,0x4d,0x30,0xb3,0x1d,0xea,0x7,0x40,
+ 0x7,0x56,0xb1,0xcd,0x2a,0xd4,0xe7,0x92,0x25,0xde,0xb4,0xfd,0xf9,0xad,0xfa,0xa,
+ 0x16,0x40,0x5b,0x90,0x57,0xea,0x81,0x52,0x77,0x92,0xff,0x25,0xa8,0xd0,0x1a,0x8b,
+ 0x36,0x56,0xe1,0x18,0x9b,0x2,0x54,0x64,0xcf,0xe5,0x4b,0x36,0xa2,0x20,0x59,0x53,
+ 0x40,0x7c,0xe1,0xb6,0x9d,0xa2,0x1e,0xf9,0xa8,0x38,0xa2,0xd1,0x68,0xd0,0x68,0x34,
+ 0x28,0x97,0xcb,0x6c,0xdd,0xba,0x15,0xdf,0xf7,0x31,0xc6,0xb0,0xb4,0xb4,0x84,0xe7,
+ 0x79,0x44,0x51,0x44,0x2e,0x97,0x23,0x8,0x2,0xa,0x85,0x2,0xe3,0x13,0x13,0x66,
+ 0x80,0xbc,0xd8,0xdc,0x3d,0x82,0x93,0x98,0x81,0x32,0x9a,0x7,0x67,0xf,0x73,0xfb,
+ 0xd8,0x8e,0x50,0x63,0xbe,0x6,0xdc,0x86,0x8d,0xd6,0x59,0x2f,0xce,0x7a,0xba,0xca,
+ 0x3c,0x4f,0x47,0x80,0x4e,0x51,0xe0,0x87,0x16,0x1,0x7c,0xe0,0xbd,0x5d,0x5d,0xfc,
+ 0xde,0x87,0x3f,0xc,0x1f,0xfa,0xd0,0x93,0x54,0x7e,0xb,0xd8,0xd5,0x17,0x23,0xde,
+ 0xd,0xe7,0xbf,0x23,0x4f,0x38,0x23,0x38,0x72,0x7,0x2c,0xee,0x3,0xa1,0x6d,0x9b,
+ 0x43,0x7d,0xde,0x7a,0xac,0xe7,0x5b,0xe5,0x19,0x1,0x9e,0xb,0x5e,0x8f,0xad,0xef,
+ 0x65,0x42,0xf9,0xea,0x18,0xe2,0x0,0x9a,0x8b,0x2b,0x1d,0xa1,0x5a,0xd9,0xf7,0x14,
+ 0xbb,0x93,0xd2,0x10,0x40,0x82,0x5f,0xb4,0xdf,0xaf,0x63,0x10,0xd0,0x5c,0xa8,0xd1,
+ 0xed,0xeb,0xa5,0xcd,0xeb,0xfa,0x73,0xdb,0x27,0x26,0x7d,0xd3,0xbb,0x46,0x8,0x60,
+ 0x7e,0x7e,0x9e,0xbe,0xbe,0x3e,0xd6,0xad,0x5b,0xc7,0xe1,0xc3,0x87,0x19,0x19,0x19,
+ 0x21,0x8a,0x22,0xea,0xf5,0x3a,0x60,0xc9,0x21,0xdf,0xf7,0x29,0x14,0xa,0xd4,0x1b,
+ 0xd,0xd1,0x5f,0x1e,0xa0,0x1d,0x1,0x34,0xb0,0x75,0xee,0x28,0xb7,0x1f,0xdb,0x1e,
+ 0x47,0x46,0xdd,0xa,0xdc,0xc2,0x8a,0xf2,0xa1,0xb3,0x57,0x67,0xbd,0x3e,0xfd,0x9c,
+ 0x55,0xce,0x1,0x3f,0x1c,0x3,0xe8,0x5,0xfe,0xf8,0x8c,0x33,0xf8,0x85,0x4f,0x7d,
+ 0xa,0x6e,0xba,0xe9,0x49,0x7e,0xda,0x2,0xf0,0xc8,0x86,0x90,0xd2,0xfb,0x24,0x9b,
+ 0xdf,0x94,0x63,0xfa,0x7,0x70,0xf4,0xbb,0xd0,0x18,0x7,0x47,0x82,0xf0,0x6c,0x38,
+ 0xef,0x1a,0xb4,0x80,0x4f,0x24,0x94,0xae,0x31,0x9,0xf2,0xf,0xa1,0x36,0x6f,0x1,
+ 0x9e,0xe3,0x26,0xc6,0xa1,0xed,0xa3,0x97,0x87,0x9c,0x9f,0x70,0x2,0xed,0x8e,0xab,
+ 0xc4,0x56,0x83,0x3a,0xd4,0x17,0x2d,0x71,0x24,0xd,0x93,0x75,0x97,0xf1,0xc3,0x63,
+ 0xb5,0xfe,0x35,0xa3,0xc1,0x7f,0xbb,0xf1,0xa2,0xe2,0x5f,0xff,0xcb,0xdd,0x62,0x22,
+ 0x2e,0xd1,0x52,0xe,0x8d,0x66,0x93,0xc9,0xc9,0x49,0x86,0x86,0x86,0x38,0x7a,0xf4,
+ 0x28,0x71,0x1c,0x13,0x86,0x21,0xd5,0x6a,0x95,0xc1,0xc1,0x41,0x7a,0x7a,0x7a,0x58,
+ 0x5a,0x5a,0xa2,0xd9,0x6c,0x12,0xc5,0x91,0x58,0x5f,0xee,0xc7,0x91,0x96,0x96,0xbe,
+ 0x7d,0x62,0x7,0xf7,0x1e,0xdf,0x17,0xc4,0x46,0x7f,0x16,0xb8,0x9b,0x13,0x7b,0xfd,
+ 0xda,0xb2,0x5a,0x24,0xc8,0xe2,0x80,0xc7,0x24,0x83,0x9e,0x6e,0x3,0xe8,0x5,0xfe,
+ 0x68,0x68,0x88,0xb7,0x7f,0xf2,0x93,0x4f,0x81,0xf2,0x6b,0xc0,0x96,0xc1,0x80,0xfc,
+ 0x4f,0x3b,0x9c,0xff,0x16,0x97,0xf0,0x30,0xcc,0x6e,0x5,0x35,0xf,0xa5,0x2e,0xeb,
+ 0xd5,0xd2,0x59,0x1,0x7b,0xed,0xe5,0xde,0x1a,0x55,0xb,0xee,0xa4,0x9b,0x28,0x57,
+ 0x5a,0xe5,0x3b,0x9,0x1e,0x68,0x2b,0x5c,0xc8,0x95,0x46,0x7c,0x8c,0xa5,0x81,0x5b,
+ 0x55,0xcb,0x9,0xa8,0xc8,0x46,0x6,0x9,0x8d,0xf9,0x2a,0x3b,0x76,0xce,0xd4,0x87,
+ 0x7a,0xcb,0xda,0xcb,0xe5,0x7,0x5e,0x72,0x6e,0x49,0x7c,0xbd,0x1b,0x53,0x6d,0x68,
+ 0xd1,0xd2,0x36,0xab,0x2e,0x2e,0x2e,0x52,0x2e,0x97,0x29,0x95,0x4a,0x78,0x9e,0x5d,
+ 0x7c,0xc2,0xf7,0x7d,0xd6,0xae,0x5d,0x4b,0x77,0x77,0x37,0x4b,0x4b,0x4b,0xcc,0xce,
+ 0xcd,0x51,0x72,0x72,0xf4,0xe4,0x8a,0x38,0x42,0xf2,0x9d,0x89,0x9d,0xdc,0x37,0xb5,
+ 0x5f,0xc7,0x46,0xff,0x7,0x70,0x1f,0x2b,0x54,0x6e,0xbc,0x72,0x51,0x27,0x28,0xb1,
+ 0x93,0x62,0xb3,0x1d,0xc2,0xab,0xe1,0x2,0xe0,0xe9,0x8d,0x0,0xfd,0xc0,0xc7,0x87,
+ 0x87,0x79,0xfb,0xa7,0x3f,0x8d,0x78,0xd3,0x9b,0x9e,0xe4,0xa7,0xc5,0xc0,0x83,0xbd,
+ 0x1,0xfc,0xb8,0xc3,0xe5,0xff,0xcd,0x45,0x4c,0xc1,0xdc,0x2e,0x8,0xa7,0x21,0x5f,
+ 0x5e,0x19,0x36,0xb,0x1a,0x36,0xcf,0xc7,0x91,0x55,0xac,0xeb,0xdb,0xe5,0x5a,0xb,
+ 0x5d,0x36,0xb7,0x7,0x75,0xa8,0xf4,0x40,0xbe,0x68,0x7b,0x62,0x65,0x5b,0xe9,0x49,
+ 0x24,0x8,0x5b,0x2b,0xf8,0xc1,0x49,0x5e,0x77,0x3d,0x6b,0x0,0xc2,0xd0,0x58,0x6a,
+ 0xf0,0xc0,0xa3,0xe3,0x51,0x77,0xb9,0x5b,0xf7,0xc,0x8e,0x96,0xa5,0x57,0x10,0x45,
+ 0x47,0xb1,0x7e,0xb0,0x60,0x8e,0x1c,0x8b,0x85,0x8,0x3c,0x0,0x6a,0xb5,0x1a,0xb3,
+ 0xb3,0xb3,0xe4,0xf3,0x79,0x2a,0x95,0xa,0x71,0xd2,0xeb,0xdf,0xfe,0xdb,0x18,0xc3,
+ 0xd8,0xd8,0x98,0x19,0xf6,0x2a,0xa2,0xe8,0xe6,0xb8,0xeb,0xf8,0x6e,0xee,0x9d,0xda,
+ 0x4b,0xa4,0xd5,0xe7,0x80,0xef,0x25,0xbf,0xba,0xad,0xfc,0x4e,0x4a,0xcf,0xe6,0xfa,
+ 0x4e,0xff,0x27,0x6b,0x20,0x27,0xd,0xb,0x3f,0x5d,0x6,0x90,0x3,0xfe,0x64,0x64,
+ 0x84,0x9f,0xfb,0xd4,0xa7,0x10,0x6f,0x79,0xcb,0x53,0xf0,0x89,0x77,0x77,0x7,0x38,
+ 0x3f,0x2f,0x78,0xc9,0x3b,0x5d,0xfc,0x6,0x4c,0x6c,0x85,0xe9,0x6d,0x10,0xd6,0x57,
+ 0xe8,0xdd,0x76,0x5e,0xf7,0xf2,0x50,0x2a,0xae,0xb0,0x7a,0x52,0xda,0x54,0xa0,0x3c,
+ 0xcb,0x4,0xba,0x39,0x7b,0x5e,0x6b,0x88,0x5a,0x56,0xb9,0x61,0x62,0x1c,0x42,0x82,
+ 0x30,0xd6,0x60,0xa4,0x80,0xda,0x2,0xe4,0x4,0x14,0x2b,0x44,0x11,0x6c,0x3b,0x34,
+ 0x13,0x35,0x9b,0x34,0xce,0xdd,0x34,0x50,0xf1,0x3d,0x57,0x36,0xaa,0xb,0x78,0x39,
+ 0xc9,0xe5,0x6b,0x73,0xf2,0xe8,0x5c,0xdd,0x8c,0x37,0xa,0x22,0x19,0x3,0x20,0x8,
+ 0x2,0x72,0xb9,0x1c,0xb5,0x5a,0xd,0xcf,0xf3,0x70,0x5d,0x3b,0x57,0xb0,0x5a,0xad,
+ 0xd2,0x68,0x34,0x58,0xac,0x55,0xc5,0x35,0x3,0xe7,0xb1,0x65,0xe6,0x20,0xf7,0x4c,
+ 0xee,0xa1,0xa9,0xa2,0x2f,0x0,0xf7,0xb0,0xa2,0xf4,0x74,0x9,0x97,0x2d,0xe7,0xda,
+ 0xcf,0xe1,0x44,0x0,0x98,0x7d,0xdf,0x6a,0x11,0x2,0x78,0x7a,0x22,0x40,0x1,0xf8,
+ 0xb5,0x75,0xeb,0xf8,0xbf,0x3f,0xf1,0x9,0x78,0xd2,0x9e,0xf,0x70,0x4f,0xa5,0x45,
+ 0xfc,0xd3,0xe,0x97,0xbe,0xd3,0xc5,0xd,0xe0,0xe0,0xb7,0xe0,0xe0,0xfd,0x10,0x35,
+ 0xad,0x97,0x96,0x7a,0x2d,0x8a,0x97,0xc9,0xcf,0x69,0x2b,0xfe,0x4,0x7e,0xc4,0x24,
+ 0x58,0x40,0x27,0x11,0x22,0xc1,0x3,0x5e,0x61,0x5,0x7,0x14,0xba,0x2c,0x21,0x14,
+ 0xd6,0x93,0x70,0xef,0x42,0xa5,0x17,0x72,0x25,0x94,0x36,0xec,0xde,0x73,0x38,0x9e,
+ 0x5b,0x6c,0x35,0x2e,0x38,0x7b,0xa8,0x1c,0x23,0xa4,0x89,0x41,0xc6,0x2d,0x72,0xf1,
+ 0x3c,0xb9,0x9c,0xc3,0x70,0xae,0x49,0x18,0xb4,0x96,0xe7,0x16,0x14,0xa,0x5,0x46,
+ 0x47,0x47,0x99,0x9e,0x9e,0xc6,0x71,0x1c,0x72,0xb9,0x1c,0x4a,0x29,0x5a,0xad,0x16,
+ 0x73,0x73,0x73,0x14,0xa4,0xcb,0x58,0x7d,0x81,0xdd,0x4b,0x13,0xd4,0xe3,0xf0,0xab,
+ 0xac,0x28,0x3f,0xd,0x92,0xd3,0xa,0xcc,0x22,0xfb,0xd5,0x50,0x7f,0x36,0x32,0x74,
+ 0x2,0x80,0x4f,0x4b,0x4,0x28,0x3,0x1f,0xec,0xe9,0xe1,0x7f,0xfc,0xf9,0x9f,0xc3,
+ 0xd,0x37,0x74,0xa2,0xa3,0x4f,0x2,0xa2,0xa7,0x96,0xad,0xe5,0x3a,0x73,0xd7,0x79,
+ 0x5c,0xfd,0x4b,0x1e,0x6e,0x8,0x47,0xbf,0x1,0xc7,0xf7,0xda,0xd2,0xcd,0x5d,0x93,
+ 0x90,0x9b,0x4e,0x2a,0x77,0x67,0xbf,0x2b,0x91,0x38,0x86,0xc6,0x82,0xad,0x4,0x1c,
+ 0x3f,0x21,0x75,0x9c,0x24,0xcb,0x7a,0x90,0x73,0x20,0x6e,0x41,0x2b,0xe1,0xa,0xf2,
+ 0x85,0x64,0xd4,0xd0,0x7e,0xf6,0xec,0xd4,0x6c,0x74,0x7c,0x6a,0x61,0xf1,0xc2,0xb3,
+ 0x6,0x7b,0xca,0xf5,0x9,0xa7,0x11,0xf9,0x38,0x71,0x1d,0x27,0xa8,0x61,0xca,0x65,
+ 0xf2,0xbe,0x4f,0x8f,0x1b,0x81,0x8e,0xd0,0xc2,0xae,0x3a,0x52,0x2c,0x16,0xe9,0xea,
+ 0xea,0xe2,0xc8,0x91,0x23,0x74,0x77,0x77,0x93,0xcf,0xe7,0xa9,0xd5,0x6a,0xb4,0x5a,
+ 0x2d,0xc6,0xc7,0xc7,0x8d,0x13,0x1b,0xb1,0xbd,0x39,0x46,0x53,0x85,0xb7,0x60,0x6b,
+ 0xfd,0x30,0x75,0xe1,0x69,0xcf,0x4f,0x83,0x3b,0xd5,0xe1,0x58,0x8d,0x10,0x5a,0xad,
+ 0x22,0x58,0x7e,0xfe,0x54,0x1a,0x40,0xe,0x78,0xe7,0xc0,0x80,0xf8,0x9d,0xdf,0xfa,
+ 0x4d,0xc1,0xd,0x2f,0x91,0xb0,0xd7,0x45,0xb5,0x72,0x81,0x9,0xbb,0x1b,0x46,0x95,
+ 0x5b,0x26,0xca,0xc5,0x26,0x5f,0x88,0xc5,0x99,0xb1,0x70,0x7a,0xf,0xad,0x71,0xdc,
+ 0x5a,0x9,0x1d,0x1b,0xdb,0x96,0x85,0x38,0xc9,0x56,0x76,0xe7,0xaa,0x1c,0xbc,0xca,
+ 0xe3,0xca,0x5f,0xf2,0x91,0x4b,0x30,0x73,0x18,0xaa,0xc7,0x93,0xfc,0xdd,0xc9,0xb0,
+ 0x12,0x83,0x8b,0x2,0xb,0xfa,0x8c,0x59,0x51,0xb8,0x4c,0xe8,0xdf,0xa0,0x9,0xba,
+ 0x69,0x7,0x77,0x7c,0xdf,0x62,0x85,0xfa,0xbc,0x8d,0xe,0xf9,0x12,0xe4,0x2b,0xc9,
+ 0xa0,0x8f,0x80,0xa0,0x8a,0x9,0x9a,0x4c,0x4d,0x57,0xe3,0xfd,0x47,0x67,0x97,0x36,
+ 0xf4,0xe4,0x7b,0xbb,0xa3,0x19,0x67,0xc9,0x2d,0xd9,0x28,0x13,0x46,0x4,0xa1,0x41,
+ 0xe4,0xfa,0x29,0xe5,0xa7,0x28,0xf8,0x8a,0x82,0xef,0xd0,0x68,0x58,0xd6,0xaf,0x52,
+ 0xa9,0x50,0xab,0xd5,0x92,0xb9,0x81,0x2e,0xa5,0x52,0x89,0x7a,0xbd,0xce,0xe2,0xe2,
+ 0x22,0x8d,0x46,0x43,0xd4,0x5b,0x75,0x80,0x5b,0x81,0x3b,0xb0,0x6d,0xab,0x59,0xc5,
+ 0x67,0x15,0x1b,0xa7,0x8e,0x4e,0xde,0x9e,0x35,0x98,0x34,0x7,0x70,0x12,0x0,0xe4,
+ 0x29,0x8e,0x0,0x17,0x77,0x95,0xfc,0x8f,0xfc,0xd2,0x4d,0x97,0x2f,0xfc,0xf2,0xcb,
+ 0x5e,0x5e,0x5d,0x3c,0x38,0x50,0xa6,0x38,0x50,0x92,0xc5,0x42,0x4e,0x14,0x64,0x4e,
+ 0x48,0x89,0x31,0xda,0xe0,0xe6,0x31,0xd,0x10,0xc7,0x27,0x8c,0x69,0xcd,0xcc,0x99,
+ 0x4a,0x34,0xe9,0x15,0x76,0xc7,0xae,0xba,0x6b,0x9d,0x1c,0x9c,0xeb,0x76,0xfc,0xc0,
+ 0x52,0x61,0xb,0xde,0x2c,0x47,0x5f,0xe1,0x72,0xe5,0x3b,0x7d,0xa,0x2,0x26,0xef,
+ 0x85,0xe6,0x94,0xcd,0xf7,0x98,0xe4,0x67,0x8,0x4b,0xeb,0x36,0xdb,0xa0,0xcf,0xb1,
+ 0x21,0x5c,0xba,0x2b,0xa3,0x77,0x69,0x3,0x31,0x6,0xa,0x49,0x49,0x18,0x36,0x2d,
+ 0x6,0xc8,0x15,0xa0,0x67,0x30,0x19,0x0,0x4a,0x6,0x7f,0x82,0x6,0xb4,0x9a,0xe8,
+ 0xfa,0x22,0xb,0x2d,0x1d,0x1f,0x9d,0xa8,0xcf,0x8d,0x16,0xdc,0x81,0x1e,0x4f,0xcb,
+ 0x66,0x5d,0x63,0xa4,0xc1,0x15,0x2,0x15,0x47,0xe8,0x7c,0x85,0x5c,0x6d,0x82,0x30,
+ 0x56,0x2c,0x6,0x2,0x2f,0x5f,0xa4,0xe2,0x48,0xa,0x85,0x2,0xe7,0x9c,0x73,0xe,
+ 0xf,0x3f,0xfc,0x30,0x9e,0xe7,0x51,0x2a,0x95,0xe8,0xea,0xea,0xa2,0x56,0xab,0x71,
+ 0xf0,0xe0,0x41,0x1a,0x8d,0x6,0xc0,0xed,0xc9,0xd1,0xe0,0x44,0x6f,0xed,0xf4,0x98,
+ 0x55,0x6a,0xc4,0xc9,0x91,0xa0,0x6d,0x18,0xa7,0x62,0x3,0xe1,0x69,0x88,0x0,0x39,
+ 0xe0,0xe5,0x17,0x9f,0x7b,0x46,0xff,0xbb,0xde,0xf1,0x33,0x4,0xeb,0xce,0xed,0x91,
+ 0x46,0x80,0xe3,0xe0,0x8,0xf,0x21,0xbd,0x4,0x68,0x3b,0x2,0x69,0x10,0x4a,0xa0,
+ 0xbb,0x6,0x4,0x9a,0x3e,0x1d,0x35,0xfa,0x74,0x7c,0x29,0x35,0xe7,0xed,0x2d,0x39,
+ 0x7e,0xf0,0x50,0x41,0x7f,0xba,0x5b,0x6,0x47,0x5c,0x77,0xcf,0x19,0xe,0x83,0xe7,
+ 0x56,0xa8,0x1d,0x90,0x4c,0x4d,0x43,0x54,0x4d,0x50,0x7c,0x72,0xaf,0x84,0xb3,0x82,
+ 0xd2,0x73,0x79,0x3b,0x74,0xdb,0x49,0xda,0xa5,0xa0,0x8a,0xc1,0x24,0x8c,0xa0,0x4a,
+ 0x9c,0xad,0x4d,0x8,0xb5,0x7,0x7e,0x6a,0x73,0x89,0x91,0x94,0x89,0xf3,0x65,0x76,
+ 0x1d,0x9c,0x8f,0x66,0xe7,0x82,0xf9,0x91,0x81,0xc1,0xbe,0x35,0xd1,0x51,0x19,0xe1,
+ 0xd1,0xcc,0xf5,0x10,0x2f,0xcd,0xe1,0xba,0x3e,0x71,0x18,0x92,0x77,0x1c,0x5c,0x22,
+ 0x9a,0xca,0x21,0x88,0x5,0x95,0xae,0x1e,0xfa,0x4b,0x3d,0x78,0x9e,0x47,0x2e,0x97,
+ 0xa3,0x58,0x2c,0x32,0x38,0x38,0xc8,0xc0,0xc0,0x0,0x8d,0x46,0x83,0xc3,0x87,0xf,
+ 0x33,0x31,0x31,0x61,0x8c,0x31,0xdb,0x81,0xbb,0xb0,0xca,0x6f,0xd7,0xf9,0x69,0xa0,
+ 0xd6,0x56,0x68,0xa7,0x70,0x1f,0xa7,0x1e,0x3b,0x85,0xfc,0x4e,0x11,0xe4,0x24,0xe5,
+ 0xf3,0x14,0x46,0x80,0x7e,0x29,0xc5,0x4d,0x9b,0x2e,0x38,0x97,0x33,0x2e,0xb8,0x98,
+ 0x7a,0xa3,0x85,0x74,0x7c,0xa4,0xe3,0xe1,0x38,0x3e,0xc2,0xc9,0x21,0x1c,0x81,0x50,
+ 0xc2,0x32,0x75,0x8e,0xc4,0x11,0x5,0x4c,0x1c,0xa1,0xa4,0x44,0xb9,0x1e,0x9e,0x56,
+ 0x79,0xd1,0x73,0xc1,0x59,0xf5,0xd6,0x9f,0xd6,0xf3,0x87,0xfe,0xa3,0x21,0xa6,0xbe,
+ 0xdc,0xe5,0x1c,0xfd,0x27,0x49,0xdf,0x7a,0xe8,0x19,0x82,0xae,0x7e,0x3b,0x6c,0x9b,
+ 0x2f,0xd9,0xd2,0xce,0xc9,0x5c,0xba,0x59,0xfe,0xc7,0x2,0x38,0x95,0xb0,0x7c,0x6,
+ 0xab,0xf0,0x28,0x4a,0x46,0x4,0x7d,0x70,0xb,0xe0,0xbb,0xd6,0x20,0x1a,0x4b,0x36,
+ 0x12,0xf8,0x79,0xb,0xf8,0xfc,0x22,0x51,0xa4,0xd8,0xb7,0xf3,0x90,0x9a,0x99,0x6d,
+ 0x2c,0x74,0x77,0xf,0xf4,0xd,0xbb,0x8b,0xae,0xa9,0x55,0xa9,0x16,0xcf,0xc4,0xb,
+ 0x17,0xc8,0x17,0x72,0x78,0xba,0x89,0x32,0x1a,0x57,0x7,0x18,0x99,0xa3,0x4b,0x6,
+ 0xe4,0x3d,0x4d,0x77,0xa1,0x97,0x72,0xcf,0x1a,0xaa,0xd5,0x25,0xa6,0xa7,0xa7,0x19,
+ 0x1a,0x1a,0x62,0xdd,0xba,0x75,0x34,0x1a,0xd,0x76,0xef,0xde,0xcd,0x8e,0x1d,0x3b,
+ 0x8c,0x52,0xea,0xfb,0xd8,0xb5,0xff,0x16,0x58,0x41,0xaa,0xab,0x91,0x37,0xed,0x90,
+ 0x1f,0xa5,0xe,0x95,0x3c,0x66,0x53,0x43,0xa7,0xbc,0xdf,0x89,0x6,0x6e,0xdf,0xac,
+ 0xa7,0xcc,0x0,0xce,0x58,0xbf,0x6e,0xe4,0xba,0x1b,0x5e,0x77,0x35,0xb1,0x32,0x38,
+ 0x4e,0x21,0x31,0x0,0x89,0xe3,0xe6,0x92,0xb9,0xf8,0x8e,0x65,0xea,0x30,0x16,0xa1,
+ 0x1b,0x30,0x8e,0x0,0x21,0x10,0x42,0x62,0x54,0x84,0xc1,0x90,0xcb,0xcb,0x92,0xb8,
+ 0xfc,0xa7,0x4a,0x51,0x2e,0x5f,0x67,0xf7,0x2d,0xda,0x89,0x83,0x82,0x6d,0xd9,0xee,
+ 0xb3,0x23,0x73,0x90,0xa0,0x76,0xec,0x6f,0x69,0xaf,0xb4,0xb1,0xfc,0x18,0xdb,0xd2,
+ 0x2e,0x8e,0x6d,0x74,0xf0,0xfc,0xa4,0x9,0x24,0x69,0x2d,0x8e,0x2,0x68,0x2e,0x25,
+ 0x46,0x12,0x5b,0xe4,0x9f,0x2b,0x5b,0xac,0x60,0xac,0xf1,0xec,0x7d,0x78,0x97,0x3a,
+ 0x72,0x64,0x71,0xb1,0xd2,0x3f,0xd8,0x7b,0x46,0xaf,0xe3,0x7a,0x93,0x7,0xa9,0x77,
+ 0x9d,0x8d,0x68,0x45,0xc4,0x5a,0x51,0xec,0x2a,0x13,0x7,0x2d,0xb4,0xb1,0xb8,0xc3,
+ 0x89,0x5a,0x2c,0x34,0x41,0xa,0x17,0x4,0xc4,0x71,0x84,0xe3,0x38,0x14,0xa,0x5,
+ 0x3c,0xcf,0xc3,0x18,0xc3,0xb1,0x63,0xc7,0xd8,0xb6,0x6d,0x1b,0x41,0x10,0xdc,0xf,
+ 0x7c,0x1b,0xbb,0xc,0x6c,0x9b,0xe2,0x3d,0x15,0xaf,0xdf,0x29,0xcc,0xa7,0xcb,0xc4,
+ 0xd5,0xc6,0x0,0xb2,0x46,0x90,0xdc,0xb0,0xe5,0xc7,0xa7,0x2c,0x5,0xe4,0x80,0xeb,
+ 0xd6,0x8e,0xe,0x70,0xed,0xd5,0x97,0xa0,0x8c,0xb0,0x4a,0x97,0x12,0xc7,0xcf,0xe1,
+ 0x38,0x39,0x30,0x32,0xc1,0x67,0xae,0xbd,0xe9,0xed,0xe5,0x2f,0x1c,0x81,0x54,0x20,
+ 0xb4,0x41,0x9,0x81,0x8e,0x35,0x46,0x3a,0x28,0xc,0xf2,0xf2,0x5f,0x28,0x5,0x83,
+ 0x97,0xcc,0xbb,0x47,0xbe,0xad,0x9c,0x85,0x3,0x25,0xe7,0xc8,0xa3,0x82,0xe1,0x73,
+ 0x6d,0xa8,0xf7,0x7d,0x50,0xda,0xe6,0xff,0xf6,0x48,0x9e,0x8a,0x13,0xf0,0x66,0xc0,
+ 0xc9,0x59,0xa5,0x4a,0x61,0xcf,0x7,0x4d,0x4b,0xec,0xc4,0xc9,0xf8,0xbe,0x70,0xa0,
+ 0xd2,0x67,0x23,0x82,0xeb,0x63,0xa4,0x83,0xd0,0x6,0x24,0x8c,0xef,0x3b,0xa0,0xeb,
+ 0xe3,0x63,0x8d,0xae,0xee,0x33,0xba,0xfa,0xca,0xbe,0x5b,0x9c,0xdd,0x4e,0x24,0x8b,
+ 0xb4,0x44,0x1,0x5a,0x47,0xd0,0xc2,0x47,0x86,0x2d,0x82,0xd0,0xe0,0x17,0x4b,0xb8,
+ 0x32,0xc6,0x48,0x7,0xa9,0x62,0xf6,0x2d,0x78,0x26,0xee,0xd1,0x22,0xc,0x43,0xf2,
+ 0xf9,0x3c,0x3,0x3,0x3,0x0,0xec,0xd9,0xb3,0x87,0x5b,0x6e,0xb9,0x85,0xd9,0xd9,
+ 0xd9,0xed,0xc0,0xd7,0xb1,0xfb,0x9,0xa6,0x95,0x9f,0xf6,0xd2,0x74,0xd8,0x6f,0x7b,
+ 0x7e,0xa7,0x54,0x90,0x4d,0x11,0xe9,0xfa,0x3f,0xad,0xf0,0x8e,0x9e,0xdf,0x56,0xde,
+ 0x53,0x61,0x0,0x95,0xae,0xae,0xd2,0x9b,0x2f,0xbd,0x78,0x13,0x23,0xc3,0x83,0x34,
+ 0x9a,0xa,0xe1,0x48,0x1b,0xfe,0xdd,0x1c,0xa2,0x3d,0x3,0xdd,0x60,0x9,0x96,0xf6,
+ 0xf8,0xbb,0x2b,0x40,0xb,0x84,0x14,0x28,0xa5,0x6d,0x1b,0xbe,0xd6,0xf6,0x8a,0x55,
+ 0x84,0xd3,0x8a,0xf0,0x87,0x2f,0xee,0xd,0xf3,0x7d,0xb3,0xde,0xa3,0xff,0x82,0xb3,
+ 0xb4,0xa5,0xc4,0x91,0x47,0x4,0x7d,0x67,0xc0,0x9a,0x11,0xab,0x44,0xa3,0x6d,0xa8,
+ 0x77,0xb0,0xe4,0x8f,0x74,0xec,0x77,0x44,0x31,0x54,0x93,0xc1,0x1d,0x15,0xdb,0xba,
+ 0x3e,0x5f,0xb6,0xe9,0xc3,0x5f,0xb3,0x42,0xc,0x25,0x7b,0xf8,0x8,0x15,0x83,0xd4,
+ 0x2c,0x8e,0xcf,0xc5,0x87,0xf7,0x4c,0x34,0xf3,0x7d,0xeb,0x73,0xbd,0x7d,0x7d,0x6e,
+ 0x69,0x71,0x3f,0x26,0xc,0x58,0x2a,0x9d,0x85,0x5b,0x3f,0x4e,0x4b,0x1b,0xa,0x5,
+ 0x87,0x28,0x68,0x12,0x2a,0x9f,0x5c,0x4e,0x22,0x5a,0x55,0x54,0xec,0xb2,0xd4,0xc,
+ 0xd9,0x5f,0x2b,0xa,0x59,0xd6,0x88,0x28,0x62,0x78,0x78,0x18,0x29,0x25,0xbb,0x77,
+ 0xef,0xe6,0x9b,0xdf,0xfc,0x26,0xb3,0xb3,0xb3,0xdb,0x80,0xaf,0x61,0x3d,0xbf,0xdd,
+ 0xd5,0x93,0xf5,0xf8,0xec,0xb9,0xb8,0xc3,0xd1,0xe9,0x7c,0xa7,0xca,0x61,0x35,0x10,
+ 0xf8,0x94,0x57,0x1,0x6b,0x87,0x6,0x7b,0xaf,0x7e,0xfd,0x6b,0xae,0x26,0x8e,0xc1,
+ 0x71,0xf2,0x48,0xd7,0x43,0xb4,0x39,0x79,0x91,0xec,0xb8,0xd5,0x9e,0xce,0xde,0x66,
+ 0xb7,0xb5,0xc6,0x18,0x8d,0x41,0xa0,0x71,0xda,0x34,0x5a,0xd,0x0,0x0,0x1f,0x9d,
+ 0x49,0x44,0x41,0x54,0x51,0xc2,0x20,0xa4,0x83,0xd0,0xa,0x83,0x47,0x28,0x40,0x87,
+ 0x11,0x39,0x21,0xfa,0x83,0xb3,0xae,0xaf,0x92,0x2b,0x2e,0xe6,0xe,0x7e,0xa7,0xcc,
+ 0xfc,0x98,0x4b,0xa9,0x4,0xe5,0xfe,0x95,0xb1,0xfe,0x30,0x0,0xcf,0x24,0x7d,0xfd,
+ 0x22,0xb9,0x5,0x31,0x48,0xdf,0x32,0x82,0xbd,0x83,0x80,0x58,0x19,0x27,0x68,0xe3,
+ 0x85,0x76,0x8f,0x80,0x23,0x68,0xd4,0xa2,0x70,0xdb,0xa3,0x63,0x8d,0xc2,0x9a,0x8d,
+ 0xf9,0x35,0x43,0x3,0x7e,0xfd,0xd0,0x36,0x4a,0xde,0x12,0xb3,0xf4,0x60,0xb4,0xc4,
+ 0x8b,0x1a,0x48,0x2f,0x4f,0xde,0xb4,0xa8,0xb,0xf,0xd,0x48,0x15,0xd1,0x32,0x2e,
+ 0x25,0xcf,0x67,0xe7,0x64,0xcb,0xcc,0x45,0xbd,0x62,0xd0,0x71,0x28,0x95,0x4a,0xf4,
+ 0xf5,0xf5,0xb1,0x6b,0xd7,0x2e,0xbe,0xf9,0xcd,0x6f,0x32,0x33,0x33,0xf3,0x30,0xd6,
+ 0xf3,0xa7,0xe9,0xec,0xf9,0x59,0x14,0x9f,0xce,0xe9,0xd9,0x94,0xd0,0x89,0x1b,0x38,
+ 0xd5,0x78,0x40,0xd6,0xf3,0x9f,0xd2,0x8,0x90,0x13,0xe,0x3f,0x79,0xe6,0x19,0x43,
+ 0xbc,0xea,0xe5,0x97,0xa3,0x8c,0x44,0xba,0x39,0xa4,0x48,0xd6,0xd8,0x4d,0x6e,0xb4,
+ 0x11,0x58,0xc0,0xa5,0x59,0xe9,0x4a,0x53,0x86,0x28,0x56,0x8,0x34,0x46,0x82,0xe7,
+ 0x3b,0xc4,0x4a,0x11,0xb7,0xec,0x7f,0x95,0x52,0x13,0x2b,0x41,0xec,0xaf,0xc1,0xef,
+ 0xef,0xa9,0xd4,0x7a,0xcf,0x6e,0x44,0x5d,0xa3,0xb,0xe5,0xfd,0x5f,0xcd,0x33,0x37,
+ 0x59,0xa6,0xbe,0x94,0x74,0xea,0xf4,0xd8,0x10,0xef,0x7a,0xd6,0xc3,0xed,0x74,0x9d,
+ 0xe4,0x27,0x9b,0x14,0x19,0x98,0x94,0x81,0xed,0x21,0x60,0x1d,0x5b,0x2,0xa8,0x50,
+ 0xa0,0xb9,0xb0,0xd4,0x38,0xbc,0xfb,0x68,0x58,0x12,0x94,0xd6,0xac,0xe9,0xf2,0xbc,
+ 0xb9,0x3d,0x74,0xc5,0x53,0x34,0xfd,0x3e,0xe6,0x54,0x9e,0xe1,0x70,0x8e,0x7a,0x53,
+ 0x31,0x90,0x9f,0xa7,0x1e,0xe7,0x8,0xb,0xbd,0x14,0x1a,0xc7,0xf0,0xa5,0xa4,0x5a,
+ 0x1c,0xa6,0x2c,0xaa,0xdc,0xb2,0x33,0x10,0x4b,0xe4,0x38,0xb7,0xa7,0x97,0xb3,0xce,
+ 0x3a,0x8b,0xfb,0xef,0xbf,0x9f,0xbb,0xee,0xba,0x4b,0xb7,0x5a,0xad,0x6f,0x63,0x49,
+ 0x9e,0x66,0x46,0xf9,0xab,0xe5,0xf8,0x36,0xd0,0x8b,0xb1,0xc4,0x50,0xfb,0x79,0x98,
+ 0x3a,0xbf,0x9a,0x81,0xac,0x46,0x0,0x65,0x81,0xe0,0xb2,0x3c,0x59,0x3,0xf0,0x87,
+ 0x6,0xfa,0x7e,0xf2,0xda,0x6b,0x5e,0x44,0xb1,0x58,0x24,0x8c,0x9c,0x64,0xb5,0x4c,
+ 0x2c,0xe8,0x23,0xe1,0xdb,0x45,0xa2,0x85,0xf6,0xa3,0xb1,0x6,0xe2,0x39,0x1e,0xa0,
+ 0x31,0x18,0x74,0x72,0x8d,0xb1,0x54,0x18,0x7,0xb4,0x11,0x18,0xa3,0x90,0x42,0x12,
+ 0x69,0x70,0x4,0xc5,0x60,0xed,0x55,0x92,0x38,0xac,0x97,0x77,0x7d,0xde,0xc1,0x95,
+ 0x85,0xe5,0xd6,0x6d,0x2f,0x6f,0xc3,0xfe,0x9,0x1b,0x39,0x26,0xb3,0x7e,0x5c,0x2f,
+ 0xa9,0xf1,0x45,0xa2,0xf4,0xa4,0x33,0xd8,0x78,0xa0,0x23,0xe2,0xf9,0xe9,0xd6,0xf4,
+ 0xde,0x63,0x91,0x59,0x6a,0x94,0xf3,0xa5,0x5e,0x37,0x57,0x1b,0xa7,0x36,0x33,0x41,
+ 0x77,0xa9,0xc2,0x44,0xe0,0x33,0x50,0x92,0x44,0xf5,0x26,0x39,0x1f,0xb4,0x74,0x68,
+ 0x38,0x7d,0xc4,0x41,0x8b,0xbc,0x84,0xc8,0xb8,0xf8,0xc1,0x1c,0x33,0xcd,0x80,0x89,
+ 0x45,0x45,0x69,0xb4,0xc2,0xc0,0xc0,0x1a,0xb6,0x6c,0xd9,0xc2,0x9d,0x77,0xde,0x69,
+ 0x82,0x20,0xb8,0x15,0x3b,0xa4,0x9b,0x55,0x7e,0x9a,0xcf,0x6f,0x87,0xf5,0xac,0x72,
+ 0xd3,0x75,0x7e,0x3a,0xfc,0x9f,0xaa,0xf5,0xeb,0x54,0xe1,0xff,0x24,0xe5,0x3f,0x69,
+ 0x3,0xf0,0x3c,0xce,0xed,0xee,0x29,0x9f,0xf7,0xda,0x57,0xbe,0x98,0x58,0x9,0x84,
+ 0xe3,0x2d,0x3,0x3c,0x41,0xd2,0x84,0xb1,0x2c,0x49,0xfb,0xfa,0x32,0x61,0xe7,0x20,
+ 0xa5,0x2,0x1c,0xc,0x6,0x21,0xc,0x42,0xa,0x84,0x8c,0x97,0x37,0xe6,0x14,0xc2,
+ 0x49,0x6c,0xc6,0x1,0x62,0xa4,0x70,0xf2,0xc1,0xda,0xab,0x1c,0x13,0xb5,0x1a,0xc5,
+ 0xfd,0x5f,0x37,0x8e,0xd2,0x45,0x94,0x82,0xfe,0x11,0x8b,0xf6,0x9d,0x24,0xb7,0xa7,
+ 0x87,0x75,0xdb,0x83,0x41,0x8,0xd0,0x8e,0x1d,0x34,0x6a,0xd5,0x92,0xca,0xdb,0xc4,
+ 0x7b,0xf7,0xcf,0x37,0x1b,0x71,0x4f,0xa9,0x54,0xca,0xbb,0x79,0x19,0xe1,0x54,0x27,
+ 0xed,0x6c,0x1e,0x3c,0xc2,0xd8,0x50,0xe,0x26,0xa9,0xc5,0x31,0x95,0x92,0x4f,0xd5,
+ 0x5b,0x83,0x5b,0xab,0xd2,0x68,0x29,0xa,0x7d,0x25,0xaa,0x8d,0x98,0x62,0x63,0x8a,
+ 0x7,0x27,0x8b,0xd4,0x62,0xc7,0xbc,0xe8,0xfc,0xcd,0x62,0xeb,0xd6,0x1f,0xb0,0x65,
+ 0xcb,0x16,0x82,0x20,0xf8,0x6,0x76,0x54,0xaf,0x95,0xdc,0xe7,0x2c,0x7f,0x9f,0x5,
+ 0x7b,0x69,0xc5,0x77,0xca,0xfb,0xe9,0x3c,0xdf,0x9,0x2f,0xa4,0x3f,0x9f,0xd4,0xff,
+ 0x4f,0xa7,0x80,0x93,0xe4,0xc9,0x18,0x80,0x23,0x84,0xff,0x5f,0x6,0x7,0xfa,0xb9,
+ 0xf4,0xd2,0x73,0x51,0xc6,0xe0,0x3a,0x8e,0x55,0xbc,0x10,0x9,0x48,0x4b,0xea,0xfe,
+ 0x13,0xd6,0x28,0x52,0x36,0x2a,0x48,0x40,0x4a,0xc,0xa,0xad,0x34,0xc2,0x8,0xa4,
+ 0x90,0x76,0xa3,0x4d,0x40,0x9,0x8d,0x30,0x60,0x74,0x94,0x54,0xe,0x1,0x18,0x90,
+ 0x5e,0xde,0xb,0xd7,0xbf,0xac,0x28,0x9b,0xf3,0xad,0xd2,0xa1,0x3b,0x22,0x7a,0x46,
+ 0x3d,0xc,0xc9,0x54,0x22,0xb1,0xe2,0xf9,0x2a,0xf1,0x76,0x13,0x43,0x10,0xda,0x2a,
+ 0x40,0x1b,0xdb,0x22,0x9e,0xcf,0x11,0x45,0x44,0xfb,0xf,0xcf,0x2c,0x2e,0xc6,0xa5,
+ 0xae,0x91,0x35,0x5d,0x7e,0x3c,0xb5,0x97,0x92,0x6c,0xd1,0x52,0x39,0x8a,0x39,0xc3,
+ 0x9c,0xca,0x33,0x5a,0xa8,0xd3,0xa8,0xb6,0xe8,0x72,0x62,0x62,0xb7,0x87,0x38,0x68,
+ 0x11,0x87,0x4d,0xca,0x8e,0x44,0x84,0x11,0x2c,0xcd,0x91,0xeb,0xef,0xe1,0xf6,0x3d,
+ 0x75,0x9d,0xef,0x1e,0x92,0x3b,0x77,0xee,0x34,0x7b,0x76,0xef,0x16,0xad,0x56,0xeb,
+ 0x3f,0xb1,0xb3,0x78,0x5b,0x58,0xcf,0xef,0xe4,0xb5,0x69,0xaf,0x4f,0x2b,0x3d,0x8b,
+ 0xfe,0xd3,0x29,0x20,0x1b,0x9,0xb2,0xa3,0x80,0xed,0x24,0x9b,0x36,0x82,0x55,0x95,
+ 0xf,0x4f,0xce,0x0,0xdc,0xae,0xae,0xfc,0x4f,0xbf,0xf2,0x65,0x97,0x90,0xcb,0xe5,
+ 0xd1,0x26,0xf1,0xba,0xa4,0xae,0x47,0x26,0x91,0x47,0x1b,0x96,0x3b,0x6e,0x8c,0x6,
+ 0xe3,0x20,0x64,0x92,0x9b,0xb5,0xc6,0x88,0x8,0x15,0x6b,0x1c,0xd7,0xae,0xe2,0xe9,
+ 0xba,0x2e,0x4a,0x6b,0xb4,0xd1,0x48,0x21,0x10,0x46,0xa3,0x5b,0x8b,0xe0,0x4b,0x8c,
+ 0xb1,0x11,0x43,0xfa,0x45,0x2f,0x3c,0xfb,0xd5,0xc8,0xda,0x6c,0xcb,0x9f,0x1d,0xc7,
+ 0xc9,0xf9,0x1e,0xf5,0x5,0xdb,0xde,0x2d,0x9d,0x24,0xc4,0xc7,0xd0,0x4c,0xc6,0x3,
+ 0xfc,0x62,0x42,0x20,0xe5,0xc0,0x75,0x69,0x5,0x2a,0x3a,0x32,0x31,0xb3,0x38,0x33,
+ 0xb1,0x54,0xea,0x1b,0x1a,0xf2,0xb,0xad,0x49,0x22,0x5a,0x68,0xaf,0x9b,0x56,0xb3,
+ 0x1,0x7e,0x11,0x2f,0x6e,0x10,0xb5,0xea,0xb6,0x27,0xb4,0x67,0x90,0x7a,0xbd,0x41,
+ 0x1c,0x2a,0xa6,0xab,0x9a,0xf3,0x47,0xf3,0xcc,0xcd,0x4c,0x92,0xf3,0x40,0xe4,0x4a,
+ 0xec,0x9b,0x98,0x96,0xd3,0xf3,0xc2,0x34,0xc6,0xa7,0x44,0x14,0x86,0x5f,0x4,0x1e,
+ 0xc4,0x72,0xfb,0x6d,0x86,0x2f,0x1d,0xf2,0x3b,0x45,0x80,0xb4,0xd2,0xd3,0x18,0x20,
+ 0x4b,0xf7,0xae,0xc6,0xc,0x76,0x2,0x80,0x9d,0x98,0xbf,0xa7,0xd4,0x0,0x36,0x4b,
+ 0xe9,0x9c,0x7b,0xdd,0xcb,0x2f,0x43,0xa9,0xd8,0x96,0x7b,0x46,0x5b,0xcf,0x47,0x58,
+ 0xc5,0xb,0x48,0x90,0x60,0xe2,0x99,0x1a,0xa4,0x4e,0x2e,0x31,0xc6,0x8,0x41,0xd8,
+ 0x52,0x84,0x71,0x88,0xa7,0xc,0x52,0xba,0x68,0x65,0x30,0x49,0x9e,0x50,0x4a,0x21,
+ 0x85,0x87,0xeb,0xe7,0xd0,0x22,0xc2,0x15,0x12,0xa5,0x93,0xd7,0x4b,0x3,0x5e,0x6b,
+ 0xd3,0x6b,0x90,0x5b,0xff,0x29,0x70,0xc6,0xe,0x78,0xac,0xdd,0x68,0x7f,0x67,0xb3,
+ 0xe,0xa2,0x6e,0x39,0xfe,0x7c,0x19,0xfc,0xa4,0xf5,0x5b,0xa,0xb4,0x32,0x8c,0x1d,
+ 0x39,0xae,0xf6,0xef,0x9b,0x6c,0xce,0xcf,0xd4,0x2a,0x9b,0xd7,0xf5,0xe7,0x4a,0x8d,
+ 0x31,0x4c,0x54,0x25,0x14,0x25,0x5a,0xca,0xc3,0x29,0x94,0xa9,0x7,0x1,0x65,0x19,
+ 0x11,0x6,0x4d,0xba,0xfa,0x7a,0x51,0xcd,0x25,0x9c,0x46,0x93,0x86,0xe8,0xa6,0xab,
+ 0xbb,0x44,0xd8,0x9c,0xa7,0xa5,0x5c,0xca,0x3d,0xdd,0xec,0x99,0x85,0x43,0x73,0x11,
+ 0x8b,0x8b,0x2d,0x1,0xe6,0x3f,0xb0,0x1b,0x3b,0xa4,0x3b,0x78,0x56,0xf3,0xfa,0xb4,
+ 0x82,0xb3,0x8a,0xcf,0x46,0x80,0xec,0x0,0xd0,0x6a,0xde,0x7f,0x52,0x99,0xf7,0x58,
+ 0x4a,0x7c,0x32,0x13,0x32,0xde,0xd4,0x55,0x29,0x99,0x2b,0x2e,0xdb,0x94,0x4c,0x8f,
+ 0x36,0x2b,0x68,0x5b,0x62,0x15,0x2f,0xdb,0x91,0x48,0xda,0xcb,0x73,0x24,0x42,0xcb,
+ 0x64,0x95,0x3b,0xdb,0xa9,0xe3,0x78,0x12,0xe9,0xb8,0x4,0x41,0x8b,0x66,0xab,0x81,
+ 0xd2,0xb1,0x5,0xef,0x12,0x84,0x51,0x88,0x4,0x14,0xa,0x4,0xaa,0x1d,0xe0,0x74,
+ 0x6c,0x69,0xe4,0xee,0xf5,0x5e,0x63,0xf3,0x4d,0x6e,0xd0,0xc,0x97,0x98,0x1b,0x83,
+ 0x56,0xb,0xbc,0x3c,0xa6,0xd0,0x83,0x29,0xf5,0x42,0xa1,0xdb,0xd2,0xc6,0xc9,0xca,
+ 0xdf,0x47,0x8f,0x1d,0xd7,0x3b,0xb6,0x1d,0xa9,0x4f,0x4f,0x35,0xfc,0xde,0xa2,0x9b,
+ 0x13,0x3a,0xa0,0x1e,0x28,0xa6,0x54,0x11,0xb7,0xd2,0x8d,0xaf,0x2,0xb4,0x74,0x28,
+ 0x88,0x26,0xba,0xb9,0x40,0xb9,0x0,0x12,0xcd,0x54,0x2d,0x24,0xc8,0xf7,0x13,0x49,
+ 0x8f,0x61,0x67,0x81,0x86,0xf2,0x18,0xe8,0xaf,0xa0,0xa4,0xcf,0xef,0x7c,0x71,0xcc,
+ 0xec,0x9a,0x68,0x1,0xe6,0x5f,0xb1,0x9e,0x9f,0xa5,0x64,0x57,0xf3,0xf6,0xf6,0x11,
+ 0xb2,0x3a,0x6,0xc8,0x7a,0x7e,0x27,0x20,0x8,0x27,0x1a,0x40,0xfb,0x79,0xa7,0xba,
+ 0xff,0x24,0x79,0xa2,0x6,0x20,0x5c,0xd7,0xf9,0xa9,0xd7,0xbd,0xea,0x4a,0xd7,0x77,
+ 0xac,0x67,0x5b,0xbc,0x67,0x7,0x7a,0xac,0xd3,0xb,0x50,0x49,0x53,0x26,0xa,0xa4,
+ 0xb1,0x6c,0x1b,0xc6,0x62,0x3,0x1d,0x83,0x56,0xb8,0xd2,0x25,0xef,0x39,0x78,0xbe,
+ 0x40,0xa2,0x51,0x3a,0x46,0x45,0x11,0x52,0x1b,0x5c,0x5f,0x20,0x9,0x6c,0xa9,0xa8,
+ 0x35,0x32,0xac,0x5b,0x34,0x21,0x93,0xa5,0xdb,0xa2,0x98,0x66,0xff,0xf9,0xf9,0xea,
+ 0xc6,0x37,0x7a,0x6a,0x61,0xb6,0x49,0xd8,0x80,0xc6,0x22,0x22,0x58,0x80,0x85,0x69,
+ 0x4c,0x63,0xc9,0xb2,0x7f,0x18,0xa6,0x27,0x66,0xf4,0xf7,0xef,0xdd,0xdb,0x38,0x32,
+ 0xa3,0xfc,0xd1,0xe1,0xfe,0x7c,0xc1,0x33,0x84,0xad,0x88,0x16,0x39,0x44,0x65,0x10,
+ 0x15,0x2a,0x84,0x9f,0xa7,0xd6,0x8a,0x91,0x8d,0x5,0x14,0x1e,0xb9,0x52,0x17,0x8d,
+ 0x85,0x39,0xe6,0x55,0x17,0x33,0x2a,0x87,0xdf,0x5a,0x60,0x5e,0xe5,0x91,0x28,0xaa,
+ 0x2d,0xc3,0x2f,0xff,0xf3,0x24,0x5f,0xdb,0x3a,0xd7,0xc4,0x98,0xcf,0x0,0x5b,0x39,
+ 0x31,0xcf,0x67,0x3d,0x3f,0x4b,0xe2,0xac,0xe6,0xf1,0x9d,0x0,0x62,0xa7,0x32,0x6f,
+ 0xb5,0xb0,0xdf,0x11,0xed,0xaf,0x26,0x4f,0xd4,0x0,0x2e,0x10,0x70,0xce,0x1b,0x5e,
+ 0x73,0x15,0xda,0x8,0x4,0x89,0xd2,0xa5,0x44,0x38,0x9,0xfa,0xd7,0xc6,0x56,0x4,
+ 0xc6,0x7a,0xaf,0x68,0xa7,0x43,0x47,0x80,0x91,0x18,0x61,0x0,0x7,0xa3,0x5,0x2,
+ 0x89,0x27,0x4,0x92,0x10,0x54,0x84,0x90,0x2,0x88,0x91,0x3a,0x42,0x6a,0xdb,0x20,
+ 0x23,0x84,0x40,0x79,0x25,0x82,0x50,0x13,0x37,0x42,0xe2,0x30,0x20,0x8a,0x14,0x2a,
+ 0x8c,0x69,0xd,0x5f,0x59,0xa8,0xd,0x5c,0xa6,0xd5,0xf4,0xc1,0x8,0x1d,0x41,0x79,
+ 0xd,0xa2,0x6f,0x10,0x51,0xec,0x2,0x2f,0xc7,0xc2,0x62,0x55,0xdf,0x77,0xcf,0xae,
+ 0xc6,0x91,0x45,0xe1,0xd,0x9e,0x31,0x9a,0xef,0x96,0xd,0xf2,0x22,0x4,0xd7,0xa3,
+ 0x41,0x1,0xc7,0x28,0x4c,0x2e,0xc7,0x92,0xf2,0xe9,0x9,0x27,0x69,0x84,0x9a,0x58,
+ 0x78,0xa8,0x56,0x8b,0xfd,0xb,0x3e,0x3d,0x25,0x7,0x59,0x9f,0xc5,0x2d,0xf7,0x22,
+ 0xe2,0x26,0xca,0x18,0xde,0xfb,0xb9,0x59,0xbe,0xfc,0xfd,0xe9,0x79,0xa3,0xcd,0x67,
+ 0xb1,0x8b,0x36,0x64,0xf3,0xf1,0xa9,0x78,0xfc,0x53,0x1d,0xe9,0x1,0x9f,0xc7,0x93,
+ 0xef,0xb3,0x1e,0xff,0x98,0xde,0xf,0x4f,0x1c,0x3,0xfc,0xc4,0xc0,0x40,0xb7,0x78,
+ 0xe9,0x55,0xe7,0x63,0x10,0x8,0xd7,0xb5,0x43,0xbe,0xc8,0xa4,0xf4,0x4b,0x50,0xbe,
+ 0x6e,0xc7,0xf2,0xa4,0x57,0x4f,0xf8,0xa0,0x62,0x8c,0x89,0xed,0xb8,0x80,0xb6,0xa9,
+ 0x52,0xc7,0x21,0x46,0x47,0x48,0x5a,0x60,0x5c,0x5b,0x38,0x88,0x0,0x63,0x42,0x10,
+ 0xa,0x13,0x2b,0x8c,0xd6,0xc4,0x4a,0xa1,0x23,0x45,0x10,0xda,0xe,0x5d,0x69,0xc,
+ 0xa1,0x56,0x8,0x42,0xa6,0xcf,0x7c,0xa3,0xa1,0xb9,0x14,0x74,0x4f,0x3c,0xea,0xd0,
+ 0x33,0x22,0xc9,0x97,0x30,0xc6,0x30,0x37,0xb3,0x64,0x1e,0xb8,0x7b,0x7b,0xa3,0x6b,
+ 0x60,0x44,0xac,0x29,0xf9,0xb9,0x33,0xbb,0x5,0x5e,0x10,0xa3,0x9c,0x3c,0x5a,0x2b,
+ 0x7a,0x92,0x30,0xaf,0x73,0x7d,0xe4,0x6b,0x7,0x70,0xa2,0x0,0x17,0x43,0x8f,0x13,
+ 0x32,0x59,0x75,0xa8,0x14,0x1d,0xdc,0xe6,0x3c,0x6e,0xbe,0x9b,0xee,0xbc,0x61,0xb6,
+ 0xe5,0xf1,0x97,0x77,0x35,0xf9,0xda,0xd6,0xf9,0x9,0xec,0x3e,0x3e,0xfb,0x58,0x99,
+ 0x62,0x97,0xf5,0xfe,0x4e,0xf4,0x6d,0xc4,0xea,0x39,0x3f,0x8d,0x11,0xd2,0xde,0xdf,
+ 0x29,0xb2,0x74,0x1a,0xec,0x79,0x5c,0xca,0x87,0x27,0x1e,0x1,0xde,0xf4,0xe6,0x37,
+ 0x5e,0x93,0x73,0xbd,0x5c,0x52,0xab,0x3b,0x8,0xc7,0x45,0x38,0xa9,0x26,0x4c,0x92,
+ 0xe6,0x4a,0x1,0xe8,0xc4,0x30,0x4c,0xbc,0x4c,0xff,0x1a,0x63,0xd,0x41,0xab,0x10,
+ 0x6d,0x62,0xb4,0xa,0xec,0xd6,0x2e,0xba,0x1,0xba,0x86,0x34,0x4d,0x8b,0xe4,0x95,
+ 0x42,0x2b,0x45,0xac,0x63,0x62,0x15,0x13,0x84,0x11,0x2a,0x36,0x28,0x25,0x89,0x95,
+ 0x46,0x2b,0x43,0x1c,0x80,0xa,0x74,0xf9,0xd8,0xe8,0x7f,0x69,0xd6,0xdc,0xbe,0x16,
+ 0x73,0x63,0x10,0x47,0x2c,0x2d,0xd4,0xf4,0xf7,0xef,0xdd,0x55,0xf7,0x8a,0xbd,0x62,
+ 0xe4,0xac,0xf5,0xa5,0xa1,0x92,0x40,0x37,0xe6,0x88,0xb4,0x8b,0xa,0x43,0x1a,0xca,
+ 0xa3,0xec,0xc6,0x8,0xaf,0x88,0x99,0x9b,0xa0,0x10,0x54,0xa9,0xc6,0x6,0x2f,0xe7,
+ 0x12,0x79,0x45,0x26,0xe6,0xea,0x48,0xa3,0xa8,0xca,0x1e,0xba,0x4b,0x79,0xa6,0xeb,
+ 0x82,0x4f,0xdf,0xbd,0xc8,0x27,0xbf,0x35,0x3e,0x87,0xdd,0xd5,0x73,0xf,0x2b,0x73,
+ 0xf5,0xb3,0xf5,0xf9,0x6a,0x65,0xdd,0xa9,0x3c,0xbe,0x53,0x99,0xf7,0x58,0xca,0xcf,
+ 0xd2,0xbe,0xa7,0xad,0x7c,0x78,0x62,0x11,0x60,0x33,0x70,0xf6,0xd,0xaf,0xb9,0x6,
+ 0x84,0xc4,0x71,0x3d,0x1c,0xe9,0xdb,0xb0,0x2d,0x12,0xef,0x37,0x36,0xcc,0xdb,0xe5,
+ 0x56,0xc,0x8,0x8b,0xeb,0xd1,0xf1,0x9,0xfb,0xf2,0x6a,0xa3,0x31,0x3a,0x51,0xbe,
+ 0xb6,0x5e,0x8e,0x89,0x6c,0xe6,0xd0,0xd8,0x6d,0x5b,0x92,0x8d,0x1c,0x54,0xa8,0x6c,
+ 0x79,0x18,0xd9,0xf5,0xfd,0xd,0x6,0x69,0x4,0x26,0x32,0x28,0xc,0x2a,0x56,0x68,
+ 0x51,0x58,0x33,0x57,0xb9,0xa8,0xe5,0x85,0x87,0x75,0x30,0x3d,0x23,0x76,0xee,0x9e,
+ 0xa9,0xb9,0x95,0x5e,0x59,0xea,0x5e,0x53,0x9a,0x3c,0x7c,0x8c,0xd1,0xb2,0xa4,0xb1,
+ 0x64,0x68,0x35,0xeb,0xc4,0xc2,0xa3,0xcf,0x6b,0x11,0x16,0xd6,0x93,0x43,0xa3,0xab,
+ 0x13,0x48,0x11,0xe0,0x23,0x29,0x54,0xba,0x98,0x9c,0xf,0xe8,0x2e,0xdb,0x46,0x96,
+ 0x2e,0xdf,0xb0,0x18,0x39,0x7c,0xf4,0xeb,0x63,0xfc,0xdb,0xf7,0x66,0xa6,0x80,0x6f,
+ 0x0,0x87,0x58,0x59,0xaf,0x37,0xd,0xf8,0xd2,0xde,0xdf,0x7e,0xec,0x14,0xfe,0xb3,
+ 0x9e,0x7e,0xaa,0x1a,0x3f,0x9b,0x2,0xb2,0x86,0x90,0x5,0x80,0xa7,0x2d,0x4f,0x24,
+ 0x2,0xfc,0xc4,0x40,0x7f,0xb7,0x7f,0xd9,0x8b,0x36,0xd9,0x35,0xf6,0xa5,0x9b,0xc,
+ 0xe2,0x38,0x8,0x93,0x5a,0xbd,0xb4,0xed,0xfd,0x12,0xbb,0x46,0xbf,0x52,0x18,0xa1,
+ 0x31,0x46,0xa1,0x75,0x8c,0x56,0x31,0x5a,0x87,0x36,0x2,0xe8,0xd0,0xf6,0x3,0x24,
+ 0xe3,0xeb,0xb6,0xa0,0x30,0xcb,0x9b,0x39,0xa8,0xd8,0x92,0x45,0x71,0xb2,0x67,0x8f,
+ 0x1d,0xfb,0xd7,0x76,0xb,0x97,0x64,0x5c,0x1,0xa5,0x50,0x51,0xc8,0x6c,0xe5,0x62,
+ 0x8e,0x37,0x2a,0xfa,0xf0,0xfe,0xc9,0xa6,0x9,0x94,0xd8,0x70,0xe6,0x48,0x79,0x6e,
+ 0x72,0x9c,0x5e,0xe6,0x10,0xc6,0xd0,0x5f,0x72,0x70,0x45,0x8c,0x27,0x42,0x8a,0xbe,
+ 0x83,0x97,0xcb,0x23,0x6b,0xe3,0x98,0xa8,0xce,0x5c,0x20,0xf1,0xba,0xba,0xa9,0x51,
+ 0xa2,0x16,0xb9,0xf8,0x85,0x22,0x3,0x7d,0x5,0x16,0x42,0xc1,0xcd,0x5f,0x3e,0xc6,
+ 0xbf,0x7d,0xef,0xf8,0x38,0xf0,0x15,0xec,0x4a,0x5d,0xe9,0xc5,0x9a,0x3b,0xe5,0xfa,
+ 0x74,0x79,0x97,0xe6,0xf4,0xb3,0x47,0x96,0xe3,0x5f,0xcd,0xfb,0x4f,0x27,0xf7,0x3f,
+ 0x2e,0xe5,0xc3,0x13,0x33,0x80,0xd7,0xdf,0xf0,0xda,0x2b,0xb,0xb9,0xbc,0x97,0x84,
+ 0x7f,0x17,0x21,0x5d,0x90,0xe,0xa6,0x4d,0x44,0xb5,0xbb,0x6d,0xc1,0x7a,0xbd,0x8a,
+ 0xc0,0x28,0x8c,0x56,0xf6,0x2a,0xb5,0x46,0xeb,0x16,0x3a,0xa,0x88,0xa3,0x10,0x1d,
+ 0xb7,0xbd,0xdf,0x92,0x46,0x76,0x53,0x7,0x8d,0x8a,0x63,0xe2,0x28,0x22,0x8c,0x22,
+ 0x94,0xd2,0xc4,0x2a,0xb6,0xbc,0x12,0x22,0x9,0x34,0x6,0x6d,0x34,0xca,0x68,0x62,
+ 0xd,0x2a,0x8c,0x20,0xd7,0x9b,0x3f,0x56,0xcd,0xab,0xa9,0x5a,0x5e,0xf6,0x97,0x44,
+ 0x45,0x4d,0xee,0xa3,0xbb,0x35,0xe,0xf9,0x6e,0xa6,0xab,0x11,0x79,0x5a,0x20,0x5d,
+ 0x86,0xdd,0x45,0x1a,0x14,0x29,0x34,0xa7,0xf1,0x82,0x25,0x2,0x93,0xa3,0x91,0xef,
+ 0x45,0x96,0xfb,0x98,0x9f,0x6f,0xe0,0x9a,0x80,0xbe,0xee,0x22,0x7,0xea,0x5d,0xfc,
+ 0xfe,0x2d,0xf3,0x7c,0xfe,0xde,0x89,0xa3,0xc0,0x7f,0x2,0xf,0x63,0xe7,0x3a,0x76,
+ 0x42,0xfb,0x59,0x8f,0xef,0x54,0xcb,0x77,0xc2,0x1,0x59,0x3,0xe8,0x64,0x54,0x9d,
+ 0xbc,0xfe,0x9,0x85,0xfd,0xb4,0x3c,0xde,0x14,0x70,0x5,0x70,0xee,0xcf,0xfe,0xd4,
+ 0x6b,0x84,0xe7,0x5a,0xa5,0xb,0xe9,0x60,0x84,0x44,0xa,0x93,0x20,0xfd,0x84,0xf,
+ 0x90,0x22,0x9,0xef,0x2a,0x61,0xf0,0xc,0x46,0x1b,0x4b,0x6,0xaa,0x10,0x6d,0x14,
+ 0x5a,0x5,0xf6,0xf5,0x24,0x35,0xb4,0x15,0x6f,0x92,0x5,0x18,0xe3,0x24,0xec,0xab,
+ 0x28,0x46,0x69,0x83,0x30,0x22,0x31,0x1e,0xbb,0xb7,0x8f,0x94,0xa,0x69,0x4,0xb1,
+ 0x32,0xc4,0x51,0x44,0xac,0x14,0x46,0x40,0xd8,0x7f,0xae,0x3b,0x3d,0xb5,0x45,0xe,
+ 0xf5,0xaf,0xa1,0xb1,0xef,0x6e,0xba,0x2a,0xdd,0x2c,0x88,0x2e,0x7a,0xe5,0x18,0x73,
+ 0x75,0x45,0x45,0x34,0x9,0x8a,0x6b,0x71,0xba,0x6,0x70,0x66,0xb6,0x51,0xa3,0xc0,
+ 0x7c,0xae,0x87,0xb5,0x83,0x5d,0xcc,0x4d,0x4d,0xa2,0x9a,0x73,0x8c,0xc,0xf5,0xb1,
+ 0x65,0x5c,0xf0,0xe1,0xcf,0xee,0x62,0xd7,0xb1,0xa5,0x7,0xb1,0x93,0x34,0xa7,0xb1,
+ 0xca,0xcf,0x72,0xf3,0x9d,0xf2,0x7e,0x36,0xb7,0xa7,0x41,0x5e,0xb8,0xca,0xeb,0x9d,
+ 0xca,0xc6,0xd5,0xf2,0x7f,0x27,0x10,0xf8,0xb8,0xe5,0xf1,0x46,0x80,0x1b,0xcf,0x18,
+ 0x1d,0x28,0x6d,0xdc,0x30,0x6a,0xe9,0x5e,0x3,0x26,0x29,0xf9,0x8c,0xd1,0x98,0x36,
+ 0xb,0x88,0x46,0xeb,0x88,0x38,0x6e,0xa1,0xe3,0x96,0x55,0xb0,0x56,0x18,0x21,0x30,
+ 0x26,0x5a,0x51,0xbe,0x8e,0x13,0x30,0xa8,0xec,0x98,0x80,0xd1,0x68,0x65,0xe7,0xcf,
+ 0xc7,0x61,0x8c,0x8a,0x6d,0xf8,0x37,0xca,0x60,0x94,0xc0,0x44,0x76,0x30,0xc9,0x24,
+ 0x4b,0xba,0x29,0x65,0x8,0x22,0x1b,0x29,0xa2,0x38,0x1,0x84,0x51,0x84,0x5b,0x59,
+ 0xe3,0x34,0x63,0xc7,0xcc,0x44,0x3e,0xf3,0x81,0x24,0x72,0xbb,0x88,0x6b,0xb,0x94,
+ 0x8b,0x1e,0xc4,0x1,0x85,0x42,0x9e,0x46,0x7e,0x88,0xb2,0x5a,0x60,0x21,0x3f,0xca,
+ 0xd1,0x46,0x9e,0x72,0xe,0xba,0xd4,0x2,0xa6,0x59,0x65,0xa8,0xaf,0xcc,0xa3,0x93,
+ 0x8a,0xdf,0xfc,0xec,0x5e,0x76,0x1d,0x5b,0x7a,0x0,0xdb,0xc8,0x31,0xc3,0xc9,0x39,
+ 0x3f,0x8b,0xf6,0x3b,0xd5,0xf8,0x69,0x85,0x87,0x58,0x8a,0x78,0xb5,0xdc,0x7f,0x2a,
+ 0xc2,0xe7,0xb1,0xca,0xbe,0x27,0x24,0x8f,0x37,0x2,0x5c,0xff,0xba,0xeb,0xaf,0x2a,
+ 0x17,0xa,0x5,0x8c,0x31,0x89,0xf2,0x22,0xc,0xe,0xc6,0x38,0xa0,0x3,0x6b,0x8,
+ 0x3a,0x42,0xe9,0x8,0xad,0x24,0xc2,0x68,0x3b,0x49,0x47,0x3a,0x96,0xfb,0x37,0x76,
+ 0xf0,0x57,0xeb,0xd8,0x1a,0x40,0xdb,0xa3,0x93,0x23,0x8e,0xb5,0xdd,0x90,0x51,0x69,
+ 0xe2,0x28,0x6,0x21,0x91,0x8,0xb4,0x8a,0x2c,0xbf,0xda,0xfe,0x7f,0x6,0xb4,0x52,
+ 0x84,0xad,0x98,0x28,0x6,0x65,0xc,0x2,0x63,0xd,0x8,0x89,0x97,0x2b,0x30,0x3b,
+ 0xbf,0x48,0x8f,0x5f,0xa0,0x52,0x72,0x98,0x5b,0xa8,0xd3,0xca,0xfb,0xac,0x65,0x9a,
+ 0xaa,0x3c,0x83,0x2e,0x2f,0x20,0x88,0x34,0xb3,0xa1,0xb,0x51,0x44,0xbf,0xf,0xe1,
+ 0xc2,0x22,0xa3,0x3,0x45,0xbe,0x7b,0x50,0xf1,0x3b,0x9f,0x3f,0xcc,0x8e,0x63,0xf5,
+ 0xfb,0xb0,0x2b,0x73,0x2c,0x70,0xe2,0x88,0x5e,0xa7,0x90,0x1f,0x75,0x78,0xec,0x44,
+ 0xeb,0x66,0x43,0x7e,0x76,0xc4,0x2f,0x4b,0xf9,0xae,0x16,0xee,0x9f,0x94,0xe2,0xdb,
+ 0xf2,0x78,0xc,0xe0,0x12,0xe0,0x8c,0x37,0xbc,0xe6,0xc5,0xe4,0xf3,0x9e,0xf5,0x5a,
+ 0xa3,0x50,0x51,0x60,0x15,0x24,0xdd,0x95,0x1d,0x37,0x8d,0xdd,0x55,0x53,0x20,0x31,
+ 0xc2,0xa1,0x3d,0x40,0x6c,0x94,0xb6,0x91,0x40,0xdb,0xc5,0x91,0x8c,0x36,0x68,0x6d,
+ 0x1,0x9e,0xd6,0x6,0x15,0xc7,0x16,0xe9,0xc7,0x6,0x94,0x46,0x4a,0x89,0x36,0x9a,
+ 0x58,0x18,0x62,0x23,0x2c,0x79,0x14,0x6a,0x62,0x6d,0x8,0x83,0x98,0x48,0x87,0x98,
+ 0xc8,0xa0,0x71,0x31,0x5a,0xa1,0x8c,0xc5,0x11,0xc2,0x11,0x14,0xbb,0xfa,0x4d,0x6d,
+ 0x72,0x2f,0x83,0x9e,0x87,0xce,0x75,0xe1,0x78,0x31,0xb2,0x31,0x87,0x29,0xf6,0x13,
+ 0xf8,0x3d,0xb8,0xcd,0x2a,0x63,0x8d,0x2,0x85,0xc6,0x18,0xbd,0x65,0x97,0xa2,0x30,
+ 0xe4,0x4b,0xe,0xff,0xb1,0x23,0x34,0x37,0x7f,0x71,0x4c,0xec,0x9d,0xa8,0xdf,0x3,
+ 0x7c,0x8b,0x13,0xfb,0xf7,0x4e,0x5,0xfa,0xd2,0x61,0x3e,0x4b,0xf3,0xa6,0xd,0x62,
+ 0x35,0xf4,0x6f,0x52,0x8f,0x9d,0x40,0xdf,0xa9,0xea,0xfe,0x27,0x2c,0x8f,0xc7,0x0,
+ 0x6e,0x18,0x5a,0xd3,0xdb,0xbb,0x69,0xe3,0x5a,0x1c,0x29,0x2d,0x5e,0x53,0x1a,0x23,
+ 0x94,0x1d,0xc,0x42,0x22,0x64,0xe2,0xc9,0xca,0xd8,0xbc,0x2f,0x8d,0x1d,0xd2,0x95,
+ 0x2,0x62,0x85,0xc1,0x1a,0x80,0x8e,0x15,0x46,0xa9,0xc4,0xeb,0xc1,0x28,0x83,0x52,
+ 0xa,0x15,0x29,0x1b,0xf6,0x8d,0xc5,0x1,0xc2,0xd8,0x21,0x61,0x54,0xe2,0xd9,0x61,
+ 0x84,0x36,0x86,0x20,0x8a,0x51,0xb1,0x22,0xd6,0x1a,0x61,0x24,0x9a,0x38,0xb9,0x2b,
+ 0x76,0x1f,0x5f,0x29,0x40,0x78,0x39,0x93,0xcf,0xfb,0xc6,0x31,0x52,0x4c,0xcd,0x7,
+ 0x2c,0x34,0xc,0x9b,0x7b,0x2,0x76,0x7,0x43,0x9c,0x51,0x76,0x99,0xd7,0x3d,0x14,
+ 0xcc,0x71,0x3c,0xd5,0xa2,0xc7,0x71,0xa9,0xe4,0x8a,0xfc,0x9f,0x7,0x8c,0xf9,0xd8,
+ 0x7f,0x1e,0x15,0x87,0xa7,0x9a,0x77,0x60,0x27,0x6c,0xd4,0x38,0xb1,0x67,0x3f,0x9b,
+ 0xef,0x3b,0xd1,0xbc,0x59,0xef,0xee,0x64,0x20,0x9d,0xc6,0x7,0xb2,0xca,0x7e,0xac,
+ 0x70,0xff,0x43,0x8f,0x0,0xd7,0xbf,0xee,0xfa,0xab,0xba,0x7b,0xba,0xcb,0x49,0xe3,
+ 0x8d,0xbd,0x5e,0xad,0x63,0xcb,0xff,0x63,0x95,0x61,0xda,0xf5,0x3c,0x6,0xb4,0xb0,
+ 0xe5,0xa0,0x49,0x30,0x82,0x8e,0xd1,0x71,0x60,0xa3,0x87,0x56,0x18,0x15,0xa3,0xe3,
+ 0x44,0xf9,0x71,0xa2,0x7c,0x6d,0xa7,0x4e,0x6b,0xa5,0xd1,0xd8,0xf1,0x81,0x28,0x52,
+ 0xa8,0x18,0x94,0xb6,0xdb,0xb9,0xc5,0x5a,0x61,0x8c,0x40,0x47,0x0,0xc9,0x38,0x84,
+ 0x21,0xd9,0xf4,0xd9,0xe2,0x84,0x42,0xb1,0x18,0xfa,0xb4,0xf2,0x8e,0xef,0x8a,0xa3,
+ 0xb,0x1,0x1b,0x72,0xb,0x48,0xbf,0x88,0x14,0x15,0x8c,0xd0,0x4,0xb5,0x45,0x72,
+ 0xb5,0x49,0xfa,0x73,0x11,0x3d,0xdd,0x7d,0x7c,0xea,0xee,0x45,0xf3,0x87,0x5f,0x39,
+ 0x2a,0xc6,0xe7,0x5a,0xb7,0xb2,0x32,0x61,0x23,0x7b,0xf3,0x3b,0x81,0xb4,0xc7,0x42,
+ 0xfc,0xab,0xd5,0xfd,0xed,0xe7,0xab,0x11,0x3d,0xab,0xa1,0xfc,0xa7,0x2c,0xfc,0xc3,
+ 0xe9,0x1b,0xc0,0x65,0xc0,0x99,0xaf,0x7d,0xf5,0x15,0x94,0x4b,0x36,0xff,0x5b,0xc0,
+ 0xaf,0x41,0xc7,0x36,0xff,0xea,0x38,0x59,0xee,0xdc,0x2a,0xdb,0xb6,0x84,0x19,0x8c,
+ 0x6c,0xd7,0xed,0xa0,0x55,0x82,0xf6,0xe3,0x8,0xa3,0x94,0x55,0x7e,0x18,0xda,0x5d,
+ 0x3c,0x95,0x22,0x8e,0x92,0xdd,0x3b,0x25,0x18,0x63,0x49,0xa4,0x58,0x19,0xb,0xee,
+ 0x54,0x98,0x18,0x82,0x46,0xc5,0x7a,0x99,0x65,0xc6,0x8,0x84,0x1d,0x70,0xb0,0x97,
+ 0xa4,0x4,0xc6,0xd1,0x48,0x9a,0x81,0xa3,0x1b,0xf9,0x7a,0xb5,0x4e,0xec,0xf5,0xb2,
+ 0x6e,0xc0,0x67,0xbf,0x1a,0xe4,0xec,0x72,0x95,0xa6,0x29,0xe1,0x34,0xe6,0x88,0xeb,
+ 0x55,0x7a,0x47,0x46,0xf8,0xe8,0x2d,0xb3,0xe6,0x93,0xb7,0x8e,0x89,0xd9,0x6a,0xf8,
+ 0x15,0xe0,0x5e,0x2c,0x50,0x6b,0x4b,0x7b,0x48,0x33,0x5b,0xa2,0xa5,0x15,0x9a,0x55,
+ 0x7e,0x36,0xe7,0x77,0x62,0x6,0x3b,0x79,0x7d,0xfb,0xdc,0x93,0xe2,0xf7,0x1f,0x8f,
+ 0x3c,0xd6,0x22,0x51,0xed,0x6a,0xfe,0xe7,0x3d,0xcf,0x79,0xf5,0x45,0x17,0x6c,0x98,
+ 0x12,0x86,0xa5,0x28,0xd6,0x42,0xa,0x7c,0xad,0x6d,0xd2,0x75,0x1c,0x23,0xc1,0x24,
+ 0xbb,0x69,0xb7,0x97,0x4f,0x37,0x49,0xed,0xaf,0x2d,0xe5,0x9b,0x80,0x37,0x54,0x64,
+ 0x87,0x8f,0x95,0xb2,0x75,0xbe,0x36,0x44,0x4a,0x11,0x86,0x11,0xb1,0x8a,0x2c,0x16,
+ 0xd0,0x6,0xa1,0x41,0x2b,0xdb,0x2b,0xd8,0xc,0x62,0x74,0x64,0x88,0x82,0xe4,0xfe,
+ 0x6b,0xdb,0xf9,0x63,0x5b,0xc9,0x92,0x39,0xa5,0xed,0x49,0x1a,0x8,0x8c,0xe3,0x40,
+ 0x75,0x3c,0x10,0xb3,0xfb,0x73,0x85,0x62,0x51,0xf4,0xf,0xf4,0xe0,0x14,0x2a,0x2c,
+ 0x36,0xd,0x83,0x65,0x87,0xda,0xc2,0x22,0xb9,0xea,0x31,0xd6,0xac,0xe9,0xe7,0xe3,
+ 0x77,0xb5,0xf8,0xd3,0xaf,0x1f,0xd6,0xb,0xf5,0xf8,0xcb,0xd8,0x55,0x39,0x2,0x4e,
+ 0xe,0xbf,0xd9,0x7a,0xbc,0x53,0xed,0xde,0x7e,0xc,0x3b,0x9c,0xcb,0x62,0x5,0xbd,
+ 0xca,0xe7,0x66,0xa9,0xdd,0xa7,0x14,0xf1,0x77,0x92,0x4e,0x73,0xaa,0xb3,0xaf,0x19,
+ 0xe0,0x6b,0x42,0x88,0x1b,0xda,0xeb,0xe2,0x3b,0x8e,0x8b,0x10,0xcc,0x9c,0x73,0xd6,
+ 0xe8,0xa1,0xb7,0xfe,0xf8,0x2b,0xf3,0x37,0xbe,0xee,0xa5,0x1b,0x7,0x6,0x7a,0xdc,
+ 0x72,0xa9,0x28,0x73,0x39,0xcf,0xd1,0xda,0xd8,0xce,0xa0,0x84,0xd8,0xc3,0x88,0x24,
+ 0x5,0xd8,0x92,0x2e,0x8e,0x15,0x71,0x14,0x13,0x46,0x31,0x3a,0x8a,0x88,0x62,0x45,
+ 0x1c,0x2b,0xab,0xd8,0x84,0x1,0x14,0x52,0xd8,0xc1,0x9f,0x38,0xa6,0xd5,0x54,0xa0,
+ 0xd,0xca,0xa8,0x24,0xda,0x88,0x44,0xf9,0xd2,0x7a,0xbf,0x11,0x68,0xa3,0x93,0x76,
+ 0x34,0x10,0x8e,0x47,0x7c,0xec,0xde,0x60,0x69,0xc7,0x9d,0x7e,0xcf,0x99,0x1b,0xc5,
+ 0xb9,0x23,0x79,0xe,0xd4,0xcb,0x6c,0x2c,0x2e,0x5a,0x63,0x9a,0x3e,0x8,0xc5,0x1e,
+ 0x6e,0xd9,0xef,0xf2,0x81,0xbf,0xdd,0xd6,0xa,0x63,0xf3,0x65,0x56,0xc6,0xf2,0x3b,
+ 0xf1,0xeb,0x9d,0x14,0xba,0x1a,0xca,0xf,0x39,0x31,0xcc,0xa7,0x2b,0x83,0xf6,0xf9,
+ 0xb4,0xc7,0xa7,0xa3,0xa,0x1d,0xbe,0xfb,0x69,0x53,0x3e,0x74,0x8e,0x0,0xe9,0x49,
+ 0xfd,0x6,0xb8,0x12,0x78,0xbb,0x94,0x72,0xd0,0xf7,0x73,0x6c,0xd8,0x70,0x16,0x57,
+ 0x5f,0x7d,0xd,0xe7,0x9f,0x7f,0x41,0xb1,0xde,0x54,0xa3,0x5f,0xf9,0xfa,0x5d,0x83,
+ 0x9f,0xfe,0x3f,0x5f,0xa,0xbe,0xfa,0x8d,0x7b,0xf7,0xf6,0x74,0x97,0xa2,0xe1,0xc1,
+ 0x9e,0x62,0x3e,0xef,0x5b,0xc7,0x34,0xda,0x72,0x4,0x2a,0x41,0xfa,0xca,0xae,0xaa,
+ 0x1d,0x85,0x91,0xf5,0xf8,0x28,0x26,0x8c,0x22,0x4c,0x2c,0xc0,0xac,0x28,0x1e,0x3,
+ 0x2a,0x8a,0x9,0x82,0x98,0x38,0x88,0x8,0xe3,0xa4,0xb,0x48,0xd8,0xc6,0x4e,0x2d,
+ 0x4c,0xd2,0xf1,0x6d,0x68,0x9f,0xb6,0xca,0x37,0xd8,0x79,0x6,0xa8,0x70,0x72,0xbb,
+ 0x2b,0xea,0xc7,0x45,0xff,0xd0,0x10,0xf9,0x7c,0x9e,0xa8,0xd5,0xa2,0xdb,0x6b,0x12,
+ 0x2f,0xcd,0x80,0x90,0x7c,0x69,0x8f,0xcb,0x6f,0xfe,0xe3,0xf6,0x30,0x88,0xcc,0xe7,
+ 0xb0,0xca,0xd7,0xa9,0xdf,0x9c,0x2e,0xc7,0x3a,0x1,0xba,0x2c,0x8b,0x97,0xf6,0xfc,
+ 0xb4,0x11,0x9c,0x8a,0xe2,0xcd,0xd6,0xf9,0x59,0xc3,0x4b,0x5f,0xcb,0xd3,0xa2,0x7c,
+ 0x38,0xd9,0x0,0x44,0xe6,0x6f,0x3,0xfc,0x8c,0xeb,0xba,0x6f,0xec,0xee,0xee,0x29,
+ 0x9c,0x7f,0xfe,0x5,0xdc,0x78,0xe3,0x5b,0x78,0xe3,0x1b,0x6f,0xe2,0xf5,0xaf,0xbf,
+ 0x91,0x6b,0xae,0xb9,0x16,0x21,0xc,0x93,0x93,0x13,0xfe,0xe4,0xf1,0xd9,0xa1,0xaf,
+ 0x7c,0xe3,0x7b,0xde,0xdd,0xdf,0x7b,0xf4,0xe8,0x85,0xe7,0xaf,0x17,0x23,0x43,0x7d,
+ 0x79,0x29,0xa4,0xb0,0xbb,0x6e,0x2b,0x94,0x56,0xc4,0xa1,0x5d,0x57,0x5f,0xc5,0x9a,
+ 0x28,0xb0,0x84,0x8f,0x56,0x9a,0x38,0x6,0xa3,0x14,0x8,0x61,0x47,0xf8,0x22,0x4d,
+ 0x14,0x69,0x82,0x28,0x24,0x8a,0x6c,0xc7,0xb0,0x1d,0x60,0xb2,0xf7,0xc6,0x8,0x81,
+ 0xd3,0x6e,0xfe,0xd4,0xc9,0x85,0x4a,0x2c,0x67,0x20,0x25,0x61,0x10,0xb7,0xd4,0xdc,
+ 0x1,0x57,0x34,0xe6,0xc5,0xba,0xb3,0xd6,0x73,0x74,0x49,0x33,0xea,0xd7,0x9,0xeb,
+ 0x75,0x9c,0xb8,0xc1,0xbf,0x3d,0x1c,0xf2,0x9b,0xff,0x7a,0xa0,0x19,0xc5,0xdc,0x81,
+ 0x6d,0xdb,0x4e,0xdf,0xec,0x2c,0xd2,0x4f,0x47,0x80,0x2c,0xa2,0xcf,0x92,0x3e,0x59,
+ 0x10,0x98,0xc6,0x9,0x9d,0x3c,0x3e,0xfd,0x98,0x56,0x3c,0x9c,0xe8,0xfd,0x4f,0x9b,
+ 0x74,0xda,0x77,0xa6,0x1d,0x1,0xc,0x40,0x3e,0x9f,0xff,0x60,0x4f,0x4f,0xcf,0x65,
+ 0x1b,0x37,0x6e,0xe2,0xfa,0xeb,0x5f,0xc7,0x5,0x17,0x5c,0xc0,0x9a,0x35,0x83,0x78,
+ 0x9e,0x8b,0xeb,0xba,0x6c,0xd8,0x70,0x36,0x23,0x23,0xc3,0x80,0x60,0x69,0x69,0xc1,
+ 0x3b,0x78,0x78,0xac,0xff,0xb,0x5f,0xb9,0xbb,0x7e,0xd9,0x25,0x9b,0x96,0xd6,0x8e,
+ 0xf6,0x97,0x1c,0x21,0x44,0x14,0x2a,0xa2,0x38,0x26,0x8a,0x62,0xc2,0x20,0xb6,0xf5,
+ 0xbe,0xd2,0xa8,0x30,0x4e,0xf5,0x0,0xda,0x7c,0x11,0x5,0x31,0x51,0x18,0x11,0x4,
+ 0x16,0xf,0x8,0xec,0xa2,0xc9,0x3a,0x81,0xfa,0x32,0x69,0x30,0xb6,0x21,0x46,0x24,
+ 0x1d,0xe0,0x49,0x37,0x30,0x76,0xd,0xbe,0x46,0xad,0xda,0x5a,0x38,0xb8,0xc5,0xab,
+ 0x78,0x4a,0xae,0x19,0x5d,0xcb,0xd2,0xfc,0xc,0x43,0x65,0x41,0x63,0x6e,0x9a,0x7f,
+ 0xd8,0xd2,0xe2,0xb7,0xbe,0x38,0x51,0x33,0x86,0xdb,0xb1,0x93,0x34,0xdb,0x6c,0x68,
+ 0x96,0xd9,0xeb,0xc4,0xcc,0x75,0x52,0x7e,0x36,0xd4,0x77,0x6a,0xe6,0x48,0x2b,0x7a,
+ 0x35,0xe5,0x9f,0xa,0xfc,0x3d,0x6d,0x92,0xde,0x81,0x3a,0xfd,0x48,0xf2,0xe5,0x67,
+ 0xf6,0xf4,0xf4,0xbc,0x7b,0x70,0x70,0x68,0xf8,0xaa,0xab,0xae,0xe6,0xba,0xeb,0x5e,
+ 0xc5,0xf9,0xe7,0x5f,0x40,0x57,0x57,0x9f,0xd,0xc1,0x82,0x64,0xb7,0xc,0xbb,0x2e,
+ 0x4e,0xb9,0x5c,0x62,0x61,0x7e,0x9e,0x85,0xc5,0xa5,0xd2,0x2d,0xdf,0xba,0x6f,0x69,
+ 0xfd,0xba,0xa1,0xa5,0xd,0x67,0x8e,0x54,0x30,0x42,0x44,0x61,0x44,0x1c,0x29,0x54,
+ 0x18,0x12,0x29,0x8d,0x8a,0x14,0xda,0xa8,0x84,0x7,0x50,0x44,0x81,0x22,0x6c,0x85,
+ 0xc4,0x61,0x4c,0x9c,0x70,0xfd,0x42,0x1b,0x8b,0xf7,0x84,0x5c,0x9e,0x62,0x20,0xa4,
+ 0x44,0x63,0x27,0x8c,0x58,0xeb,0x38,0x91,0xcd,0x16,0x42,0xd0,0x68,0x34,0xea,0xea,
+ 0xf8,0x8e,0x5c,0xb9,0xab,0x24,0x73,0xa5,0x32,0x45,0x5d,0xc5,0xb4,0x1a,0xfc,0xf3,
+ 0xdd,0xe3,0xfc,0xaf,0xaf,0xcd,0x2d,0x62,0x15,0xff,0x1d,0x56,0xc6,0xf2,0xb3,0x48,
+ 0x3c,0xeb,0xed,0xab,0x29,0x3d,0xcd,0xe1,0xa7,0x23,0x41,0xd6,0x0,0x1e,0x4b,0xf9,
+ 0x9d,0x42,0xfe,0xd3,0xae,0x7c,0x38,0xf5,0xda,0xf3,0xa6,0x54,0x2a,0x5d,0x59,0xa9,
+ 0x54,0xde,0xb5,0x6e,0xdd,0x59,0xf9,0x57,0xbc,0xe2,0x95,0x5c,0x74,0xd1,0x25,0x54,
+ 0x2a,0x15,0x96,0x96,0x16,0x39,0x7e,0x7c,0x82,0xb1,0xb1,0x71,0x26,0x27,0x27,0xd8,
+ 0xb7,0x6f,0xf,0x7,0xe,0xec,0xe7,0xcc,0x33,0xcf,0x20,0xe7,0xe7,0x99,0x9e,0x3a,
+ 0x4e,0xb5,0xd6,0xe8,0xba,0xed,0x8e,0x87,0xea,0x17,0x9d,0xbf,0xa1,0xb1,0x76,0xa8,
+ 0xbf,0xa8,0xa2,0x58,0x44,0x61,0x44,0x14,0xda,0xdf,0x1c,0x5,0xc9,0x8,0x5f,0x14,
+ 0x11,0x5,0x11,0xb1,0xd2,0xc4,0x26,0x21,0x86,0x34,0xb6,0x92,0x30,0x22,0x59,0xbf,
+ 0xc1,0x24,0x17,0x68,0x43,0x3e,0x32,0x69,0x3d,0xef,0xb0,0x59,0x93,0x74,0x1c,0x96,
+ 0xe6,0xa6,0xab,0x7e,0x30,0x91,0xef,0xed,0x29,0x3b,0x7d,0x8d,0x43,0x38,0xd2,0xf0,
+ 0xd9,0xbb,0xa7,0xf9,0xdf,0x5f,0x9b,0x5b,0x34,0x76,0x49,0x96,0xbb,0xe8,0xbc,0xf7,
+ 0x6e,0x27,0xe5,0x77,0x2a,0xf3,0x56,0xb,0xfd,0x69,0xc0,0x97,0xf5,0xfa,0xd5,0x6,
+ 0x77,0x3a,0x95,0x79,0x3f,0x14,0xe5,0xc3,0xca,0xee,0x13,0x69,0x69,0x1b,0x83,0xe3,
+ 0x79,0xde,0x4f,0x74,0x75,0x75,0xdf,0x78,0xc1,0x5,0x17,0x71,0xdd,0x75,0xd7,0x33,
+ 0x32,0x32,0x8a,0xd6,0xb0,0xb8,0x38,0xc7,0x8e,0x1d,0xdb,0xd9,0xb2,0xe5,0x1,0x76,
+ 0xed,0xda,0xce,0xcc,0xcc,0x14,0x77,0xdd,0xf5,0x5d,0x16,0x17,0x17,0xe9,0x1f,0x58,
+ 0x3,0x8,0xa6,0xa6,0x8e,0x13,0xc5,0xaa,0xf2,0xcd,0xef,0x3c,0x18,0x5f,0x7d,0xc5,
+ 0xe6,0xb0,0xbb,0x52,0xca,0xa9,0x58,0x89,0x30,0x52,0xb6,0x15,0x3c,0x8a,0x21,0x82,
+ 0x58,0x29,0x3b,0xd3,0x3b,0x51,0x85,0x91,0x96,0xc8,0xc1,0x11,0x18,0x48,0x96,0x50,
+ 0x35,0x8,0x99,0x34,0x9f,0x62,0x12,0x8e,0x81,0x95,0xd9,0x3f,0x99,0xcb,0x9f,0xde,
+ 0xf7,0x50,0x60,0x6a,0x53,0xf9,0xd,0xc5,0x9a,0x74,0x54,0xc0,0xfb,0xff,0xed,0x38,
+ 0x7f,0xf1,0xdd,0xd9,0xa3,0x6,0xfe,0x15,0xdb,0xbc,0x99,0xde,0x73,0x27,0xcd,0xe9,
+ 0x77,0x2,0x78,0x9d,0xce,0x75,0xe2,0xf3,0x3b,0xf5,0xf3,0xa7,0xcb,0xbe,0x6c,0x4,
+ 0xe8,0xe4,0xf9,0xf0,0x43,0x54,0x3e,0xac,0xae,0x7c,0xd,0x9c,0x19,0x4,0xc1,0x65,
+ 0xc6,0x68,0x7a,0x7a,0xfa,0xa8,0x54,0xca,0x38,0x8e,0x24,0xc,0x5b,0x34,0x9b,0x41,
+ 0xb2,0xe8,0x3,0x1c,0x39,0x72,0x98,0x83,0x7,0xf7,0xb3,0xb0,0x30,0xcf,0xee,0xdd,
+ 0xbb,0xb8,0xff,0xfe,0x7b,0x39,0x7a,0xf4,0xc8,0xf2,0x7,0x36,0x1a,0xad,0x9e,0xff,
+ 0xf9,0xfb,0x9f,0x69,0xcc,0x2d,0xd4,0x95,0xd2,0xda,0xe,0xf1,0xc6,0x1a,0x13,0x1b,
+ 0x5b,0x6,0x1a,0x43,0x32,0x29,0xdc,0x4e,0xf,0x33,0x62,0x25,0xbf,0x63,0x73,0xff,
+ 0xf2,0xc8,0xa3,0x90,0xd6,0x10,0x56,0x13,0x21,0xd0,0x71,0x84,0x13,0xd7,0xf3,0xba,
+ 0x59,0x97,0x93,0x61,0x89,0x5f,0xfd,0xdc,0x2,0xff,0xb9,0x75,0xe9,0x28,0xf0,0x79,
+ 0xe0,0x0,0x27,0x4f,0xd0,0xec,0xa4,0xb0,0x4e,0x8a,0x5d,0x4d,0xe1,0xd9,0x68,0xb1,
+ 0x5a,0xce,0xef,0x94,0xef,0xe9,0xf0,0xf7,0xf,0x55,0xb2,0xcb,0x8f,0xa7,0x1,0xe0,
+ 0x59,0x4a,0xa9,0x97,0x7b,0x9e,0xc7,0xc8,0xc8,0x8,0xe5,0x72,0x17,0x61,0xa8,0x98,
+ 0x98,0x98,0xe0,0xf0,0xe1,0x83,0x4c,0x4e,0x8e,0x33,0x3e,0x3e,0xce,0x81,0x3,0xfb,
+ 0xd9,0xbb,0x77,0x2f,0x95,0x4a,0x85,0x4a,0xa5,0x8b,0xe9,0xe9,0x29,0x16,0x17,0x17,
+ 0x4e,0xf8,0x92,0x9d,0xfb,0x8e,0xf5,0x7f,0xe3,0x3b,0xdf,0x3f,0x5e,0xab,0x6,0x4a,
+ 0xa9,0x64,0x14,0xd0,0x28,0x8c,0x4,0xa5,0xad,0xc7,0x2f,0xbb,0x83,0x0,0x8c,0x41,
+ 0x6a,0x6d,0xa7,0xf1,0xa3,0x97,0xef,0x90,0xe8,0x98,0xa9,0x52,0x62,0x60,0xfe,0xf8,
+ 0x58,0xd8,0x57,0x11,0xbe,0xec,0x19,0x10,0x1f,0xf9,0xdc,0x11,0x6e,0x79,0x64,0xf1,
+ 0x28,0xb6,0x7f,0xef,0x20,0x2b,0x9b,0x2d,0x64,0x51,0x79,0x27,0xe5,0xa7,0x3b,0x76,
+ 0xd2,0xe5,0x5d,0x16,0xe8,0x65,0x4b,0xc4,0x4e,0x21,0xfe,0x54,0xb5,0xfd,0x33,0xa6,
+ 0x7c,0x38,0x71,0xff,0x59,0x58,0xb9,0xbb,0x2e,0x70,0x2e,0xb0,0x76,0xcd,0x9a,0x61,
+ 0xce,0x3a,0x6b,0x23,0xb9,0x5c,0x81,0xe9,0xe9,0x9,0x1e,0x79,0x64,0x2b,0xf,0x3d,
+ 0xf4,0x7d,0x8c,0x31,0xdc,0x7d,0xf7,0x9d,0x34,0x1a,0x75,0xba,0xba,0xba,0x51,0x2a,
+ 0x66,0x69,0x69,0x71,0xb5,0xef,0xf1,0x3f,0xf1,0x57,0x5f,0xa8,0xbc,0xf2,0xaa,0x4b,
+ 0x44,0xa9,0x98,0x43,0x25,0x3d,0x7d,0x16,0xe1,0x4b,0xdb,0x0,0x22,0x40,0x1a,0x83,
+ 0x14,0x12,0x9d,0x6c,0xa3,0xa6,0x21,0x69,0x11,0x3f,0x15,0x5f,0x65,0x81,0x9f,0xe7,
+ 0x3a,0xa0,0x23,0x82,0xda,0x4c,0xe3,0xd1,0x3d,0x53,0xa5,0xcf,0xdf,0x73,0x4c,0x3c,
+ 0x7c,0x60,0xfe,0x30,0xf0,0x5,0xec,0x6e,0x1b,0xc9,0xc4,0xc4,0x93,0xbc,0xb2,0xd3,
+ 0xa0,0x4d,0x7a,0x24,0x2f,0x5b,0xce,0xa9,0xd4,0xeb,0xd9,0x12,0x31,0x9b,0xe3,0xd3,
+ 0xcf,0xe1,0x19,0x42,0xfa,0xa7,0x92,0xec,0x16,0xe4,0x60,0x2f,0x68,0x4,0x78,0xa9,
+ 0xeb,0xba,0x6c,0xda,0xb4,0x89,0xb5,0x6b,0xd7,0x12,0x86,0x21,0xdb,0xb6,0xfd,0x80,
+ 0xfb,0xee,0xbb,0x87,0x66,0xb3,0xc5,0xfe,0xfd,0x7b,0x71,0x5d,0x8f,0xb5,0x6b,0xcf,
+ 0xe4,0xf0,0xe1,0x83,0x0,0x27,0xed,0x9a,0x95,0x96,0x46,0x2b,0xec,0xba,0xed,0xee,
+ 0x7,0xa7,0x5e,0xf7,0xf2,0x2b,0x6,0x96,0x37,0x4e,0x84,0xa4,0xb3,0x7,0x94,0x31,
+ 0x48,0xe1,0x2c,0x83,0x3f,0x8b,0xfe,0x57,0x57,0xbc,0x10,0x2,0x47,0x4a,0x5c,0xd7,
+ 0xa1,0x11,0x4,0xdc,0x7b,0xff,0xe,0xee,0xd9,0xf2,0x28,0xbb,0x76,0xee,0xed,0x99,
+ 0x5d,0xac,0x31,0x57,0x8b,0x16,0xb0,0x61,0xff,0x58,0xf2,0x96,0x6c,0x99,0xf7,0x58,
+ 0x24,0x4f,0x27,0xd0,0xd7,0x89,0xde,0x3d,0x55,0xb9,0x97,0xf5,0xf6,0xf4,0x39,0x78,
+ 0x86,0x95,0xf,0x2b,0x11,0xa0,0x7d,0xa7,0x25,0x96,0xb,0x5f,0x7,0xbc,0xaa,0xb7,
+ 0xb7,0x8f,0xf5,0xeb,0x37,0x52,0x28,0x94,0x19,0x1b,0x3b,0xc6,0xfd,0xf7,0xdf,0xc7,
+ 0x81,0x3,0xfb,0xf1,0x7d,0x9f,0x83,0x7,0xf,0x12,0x45,0x11,0xb,0xb,0xf3,0xa7,
+ 0x54,0x7c,0x5a,0xfe,0xf1,0xf3,0xb7,0x45,0xd7,0x5d,0x7d,0x9,0x8e,0xe7,0xda,0xe6,
+ 0x8d,0xf6,0x28,0x1e,0x2e,0x8e,0x54,0x16,0x8,0x26,0xdb,0xb6,0x75,0x84,0x77,0x49,
+ 0x49,0x28,0x85,0x60,0xa9,0xd6,0x60,0xcb,0xb6,0x3d,0xdc,0xb3,0x65,0x7,0x8f,0xee,
+ 0x39,0x44,0xb5,0xd6,0xa0,0xd1,0x6c,0x4d,0xc4,0xb1,0xde,0x5,0xec,0xc2,0x76,0xf0,
+ 0xb4,0x73,0x51,0xd6,0x23,0xd3,0x6,0x90,0xf5,0xee,0x4e,0xad,0x5a,0x9d,0xc6,0xf0,
+ 0xdb,0x7f,0xa7,0x39,0xfd,0x4e,0x83,0x3a,0xab,0x11,0x3a,0xcf,0xb8,0xf2,0x61,0x65,
+ 0xf,0x7a,0x52,0x8f,0x3e,0xb0,0xc9,0x71,0x9c,0x75,0x23,0x23,0x23,0x8c,0x8e,0xe,
+ 0x53,0xad,0x2e,0xb1,0x63,0xc7,0x23,0xec,0xde,0xbd,0x8b,0xae,0xae,0x5e,0xb6,0x6e,
+ 0x7d,0x90,0x56,0xab,0x9,0xc0,0x69,0xea,0x1e,0x80,0x85,0x6a,0x7d,0xb8,0x51,0x6f,
+ 0xc5,0xe5,0x42,0xd1,0x37,0xda,0x2e,0xce,0x69,0xef,0x94,0x5e,0xe6,0x15,0x56,0x13,
+ 0x63,0xc,0x53,0x33,0x8b,0xdc,0xf7,0x83,0x9d,0xdc,0xf5,0xc0,0x76,0xb3,0x73,0xef,
+ 0x11,0xe2,0x38,0x56,0x71,0xac,0x26,0x62,0xad,0x77,0x0,0x8f,0x60,0x9b,0x37,0xda,
+ 0xb4,0x6c,0xa7,0x9a,0x3b,0x8d,0xca,0x3b,0x1,0xb8,0x53,0x75,0xee,0xa4,0x73,0x7c,
+ 0xf6,0xef,0x4e,0xde,0x9f,0x36,0x0,0x52,0xe7,0xd2,0x6c,0xdf,0x33,0x2e,0xe9,0xe1,
+ 0xe0,0x36,0xfa,0x1f,0x2,0x5e,0x1,0x50,0x28,0x94,0x28,0x16,0x4b,0xcc,0xce,0x1e,
+ 0xe7,0xee,0xbb,0xef,0xa0,0x56,0xab,0xb3,0x77,0xef,0xee,0x53,0xe5,0xfa,0xc7,0x12,
+ 0xe7,0x1b,0xdf,0x7d,0x68,0xec,0xe7,0xde,0x72,0xfd,0x3a,0xe9,0x8,0x94,0x59,0x26,
+ 0xf0,0x96,0x27,0x8f,0xd9,0x89,0x9c,0xda,0x32,0x85,0x5a,0x33,0x36,0x39,0xc3,0x7d,
+ 0x3f,0xd8,0xc5,0x5d,0xf7,0x3d,0xa2,0xf6,0x1e,0x1a,0x37,0xda,0xe8,0x10,0xc3,0x41,
+ 0x6d,0xcc,0x4e,0x2c,0xaa,0x5f,0x64,0xc5,0xb,0xd3,0x37,0x5d,0xa5,0xce,0xa5,0x95,
+ 0xdf,0x49,0xe9,0x59,0x8f,0x4f,0x87,0xfc,0xd3,0x41,0xf9,0x59,0x3e,0x21,0x1d,0xe6,
+ 0x61,0xf5,0x28,0xf0,0x8c,0x4b,0x36,0x5,0x68,0x60,0x18,0x78,0xb5,0x52,0x8a,0x6a,
+ 0x75,0x91,0xd9,0xd9,0x59,0x76,0xec,0xd8,0xc6,0xd8,0xd8,0x31,0x8e,0x1f,0x9f,0x64,
+ 0x69,0x69,0x9,0xa5,0x9e,0x98,0x11,0x7,0x41,0xc4,0xad,0x77,0x6e,0xd1,0x3f,0xff,
+ 0x13,0xd7,0x5b,0x3c,0x2f,0xed,0x57,0xb,0x20,0x56,0x9a,0x20,0x8c,0x68,0xb4,0x2,
+ 0xf6,0x1f,0x9e,0x60,0xcb,0xc3,0xbb,0xb9,0xf3,0xfe,0x47,0xc2,0xc9,0xe9,0x79,0x85,
+ 0x4d,0x4b,0xfb,0xb0,0xa1,0x7d,0x3f,0x76,0xe1,0x85,0xf6,0x75,0x67,0x73,0x6c,0xf6,
+ 0xb1,0xad,0xa8,0x6c,0x18,0xef,0x14,0xe2,0xd3,0x0,0x30,0x4d,0xea,0x64,0x95,0xdf,
+ 0x29,0xd7,0x77,0xf2,0xfe,0x67,0x15,0xe0,0xeb,0x24,0xed,0x14,0xd0,0x3e,0x5c,0xe0,
+ 0x1c,0x60,0xbd,0x5d,0xe2,0x74,0x98,0x7b,0xef,0xbd,0x9b,0x9d,0x3b,0xb7,0x33,0x31,
+ 0x31,0xce,0xd2,0xd2,0xc2,0x69,0xe7,0xfb,0xd5,0x64,0x7a,0x76,0xa1,0x5f,0x6b,0xa3,
+ 0x7d,0xcf,0x91,0xad,0x20,0xa4,0xd1,0xa,0xa8,0xd6,0x9a,0x1c,0x38,0x32,0xc1,0xfd,
+ 0x5b,0x77,0x71,0xfb,0xdd,0x5b,0x5b,0xcd,0x20,0xc,0xb1,0xe1,0x7c,0x3f,0xb0,0x1b,
+ 0x3b,0xb,0x47,0xb1,0x3c,0xd5,0xa4,0xa3,0xe2,0x3b,0x29,0x27,0x8b,0xdc,0x57,0xcb,
+ 0xf7,0x9d,0x14,0x9f,0x8d,0x18,0x8f,0x35,0x88,0xd3,0x7e,0xe,0x27,0x1a,0x61,0xfb,
+ 0xf9,0xb3,0x4e,0xf9,0x70,0x62,0xa,0xd0,0xc0,0x0,0xf0,0x2a,0xb0,0x60,0x6b,0x7e,
+ 0x7e,0x8e,0x3,0x7,0xf6,0x51,0xad,0x56,0xa9,0xd5,0xaa,0x44,0x51,0xfc,0xa4,0xbf,
+ 0x50,0x6b,0x2a,0x5b,0x1e,0xd9,0x5b,0xaf,0x94,0xa,0xa5,0xed,0x7b,0xe,0xf1,0xc0,
+ 0xc3,0x7b,0xcc,0xf,0x1e,0xdd,0x57,0x8f,0x63,0xd5,0xc2,0x82,0xb6,0xed,0x58,0xa5,
+ 0x4f,0x91,0x70,0x82,0xc9,0x75,0xb6,0xc7,0x2d,0x3a,0x79,0xd5,0x6a,0x5c,0x7b,0x27,
+ 0x84,0xdf,0x29,0x2,0x74,0x1a,0xed,0xcb,0x1a,0x4e,0x56,0xd9,0xd9,0x94,0xd3,0xa9,
+ 0xdc,0xcb,0xfe,0xfd,0xac,0x13,0x81,0x5,0x7d,0xed,0x1a,0x79,0x33,0xf0,0x65,0xe0,
+ 0xec,0xa7,0xef,0x1b,0x5,0xe5,0x62,0xae,0x5e,0xab,0xb7,0x2,0x6c,0xd3,0xe5,0x34,
+ 0x36,0xbc,0xef,0x5,0x8e,0x63,0x95,0xdd,0x56,0xb8,0x61,0xc5,0xeb,0xd3,0x37,0x32,
+ 0xab,0x8c,0xb4,0x12,0xd2,0xde,0x9a,0xee,0xbb,0xcb,0x76,0xea,0x74,0x1a,0xe4,0x49,
+ 0x47,0x86,0x4e,0xde,0x9f,0xd,0xf9,0xa7,0x43,0xee,0x3c,0x6b,0x95,0xf,0x27,0x46,
+ 0x0,0x17,0xd8,0xc0,0xd3,0xa7,0xfc,0x26,0xb0,0x88,0x31,0xb,0xb5,0x7a,0x6b,0x1c,
+ 0xab,0xf0,0x3,0x58,0xaf,0xf7,0xb0,0xa,0x6f,0x1b,0xe3,0xf2,0x70,0x34,0x9d,0x1,
+ 0x54,0x27,0x2f,0xec,0x14,0xaa,0xd3,0x8a,0xd,0x39,0x51,0xc1,0x2a,0x73,0xbe,0x53,
+ 0xc8,0x5f,0x2d,0xcf,0x9f,0x2a,0xc7,0x3f,0x67,0x94,0xf,0x2b,0x18,0xc0,0x60,0x77,
+ 0xfb,0x78,0xc5,0x53,0xfc,0xf9,0xb,0xc0,0x5c,0x72,0x1c,0xc6,0x2a,0xfc,0x30,0xd6,
+ 0x18,0xfc,0xe4,0xfb,0xb,0x9c,0x48,0x42,0x69,0x4e,0x1c,0x93,0x80,0xce,0x6,0x91,
+ 0xd,0xf7,0x9d,0x8e,0x4e,0x25,0x5e,0xd6,0x0,0x56,0x53,0x7c,0xb6,0xd4,0xeb,0x84,
+ 0xf8,0x9f,0xd3,0xca,0x7,0x7b,0x63,0xf3,0xd8,0x8b,0xdd,0x80,0x6d,0x8a,0x5c,0x65,
+ 0xe1,0xfd,0xd3,0x92,0x18,0x3b,0x67,0xfe,0x20,0x56,0xd9,0x33,0xc0,0x2c,0x16,0xd0,
+ 0x9,0xac,0xa7,0x7b,0xb0,0xbc,0xef,0x7d,0x9a,0x80,0xca,0x5e,0x57,0x5b,0xb2,0x9e,
+ 0xdf,0xbe,0xf1,0x59,0x6,0xae,0x93,0xf2,0x3a,0xe5,0xfa,0x4e,0xf9,0xbd,0x13,0x9b,
+ 0x97,0x8e,0x26,0x9d,0xca,0xcc,0x4e,0x2c,0x5f,0xf6,0x7a,0x9f,0xf5,0x92,0x2e,0x3,
+ 0x5d,0x9e,0x98,0xf2,0x67,0x80,0x47,0xb1,0x88,0xfd,0x18,0xd6,0xdb,0x17,0x80,0x3a,
+ 0xc9,0x32,0xce,0xac,0x84,0xf8,0x74,0x2e,0xef,0xe4,0xe9,0x6d,0x69,0xdf,0xc4,0xf4,
+ 0xa4,0xc,0x38,0xf1,0xe6,0x77,0xf2,0xd2,0xf4,0xf3,0x34,0x78,0xeb,0x94,0xe7,0xb3,
+ 0x58,0x20,0xd,0x26,0xb3,0xe1,0x3f,0xcb,0xe8,0x65,0x8f,0x6c,0xdd,0xff,0x9c,0x91,
+ 0x76,0x53,0x84,0xc4,0x2,0xb2,0x3b,0x80,0xeb,0x4e,0xe3,0x7d,0x3b,0x80,0x6d,0xc0,
+ 0x4e,0x2c,0x5a,0x5f,0x4c,0xde,0x1f,0x62,0x43,0xbb,0xcf,0xc9,0x4a,0x87,0xce,0xca,
+ 0x87,0x13,0x79,0x88,0x74,0x3a,0x48,0x1b,0x40,0x3a,0xd7,0x77,0xca,0xf9,0x59,0xb6,
+ 0x2e,0xcd,0xfa,0x65,0xeb,0xfa,0xf4,0x7b,0x56,0x43,0xf8,0x59,0x52,0x27,0x8b,0xf0,
+ 0x4f,0x45,0xf3,0x3e,0x67,0x24,0x1d,0x1,0x16,0xb1,0xc3,0xa6,0xd7,0x75,0xf8,0x7f,
+ 0xb3,0xd8,0xce,0xd9,0x2d,0x58,0xc4,0x3e,0x8f,0x55,0x78,0x1d,0xab,0x60,0x1f,0xbb,
+ 0x6f,0x40,0x3b,0xaf,0x67,0xeb,0xf4,0xec,0xd1,0xe,0xff,0xe9,0xdc,0xde,0x56,0x38,
+ 0x9c,0x78,0x53,0xb3,0xb4,0x6a,0x3a,0xfc,0x67,0xa9,0xd9,0xd5,0xbc,0x3b,0xb,0xfe,
+ 0x56,0xb,0xf3,0xab,0x51,0xbb,0x9d,0x42,0x7d,0xba,0xec,0x7b,0xce,0x4a,0xba,0xa,
+ 0x88,0xb1,0xdb,0x98,0xe4,0x81,0x9b,0xb0,0x1e,0xbc,0x13,0xb8,0x13,0x5b,0x9e,0xd5,
+ 0x93,0x23,0x62,0x25,0xac,0xb7,0x3d,0x3d,0xdb,0x5b,0x7,0x9d,0xf3,0x78,0x5b,0xf1,
+ 0xd9,0x8,0xd0,0x9,0x3c,0xe9,0xd4,0xff,0x4d,0xe7,0x5f,0x43,0x67,0x5a,0xf6,0xb1,
+ 0x30,0x40,0x36,0x5a,0x64,0x15,0x7c,0x2a,0xd4,0x9f,0xbe,0xb6,0xac,0x21,0x3c,0xa7,
+ 0x45,0x60,0x3d,0xb7,0x1d,0xaa,0x25,0x50,0x4,0xba,0x58,0x69,0x9b,0x6a,0x2f,0x79,
+ 0xda,0xae,0xcd,0x3d,0x56,0x6a,0xf5,0x74,0xcd,0x9e,0x7e,0xad,0xfd,0x5c,0xa4,0x3e,
+ 0xbb,0x5d,0xcf,0xb7,0xbf,0x37,0x5b,0xdf,0x67,0x51,0x74,0xda,0xd3,0xb2,0x6,0x90,
+ 0x56,0x72,0x56,0xa9,0xd9,0xfa,0xbf,0x93,0x31,0x74,0x42,0xf6,0xe9,0xd4,0x92,0x36,
+ 0x80,0xf6,0xf5,0x64,0x8d,0xf4,0x39,0x1b,0xf6,0xd3,0xd2,0x69,0x6e,0x60,0x88,0x5,
+ 0x72,0x12,0xab,0xbc,0xb4,0x81,0x64,0x43,0x74,0x27,0xaf,0x48,0x87,0xd3,0x36,0x99,
+ 0xd3,0x36,0x2e,0xc5,0xc9,0x9d,0x47,0x69,0x10,0x98,0xbe,0xe1,0xd9,0x50,0x9b,0xfe,
+ 0x3f,0x9d,0x50,0x7b,0xfa,0x79,0x36,0xd4,0x9f,0x6e,0x6d,0xdf,0x89,0xdc,0x81,0x93,
+ 0x95,0xff,0xbc,0x91,0x4e,0x6,0x90,0x46,0xe0,0xe9,0xe7,0xed,0x90,0x9c,0xbe,0x9,
+ 0x59,0x85,0xb6,0xd1,0x74,0x7a,0xbe,0x41,0xda,0x6b,0xb3,0x2d,0x68,0xab,0x95,0x78,
+ 0x9d,0x8c,0x29,0xeb,0xfd,0x59,0x4f,0xcd,0x86,0xf6,0x2c,0xd8,0x4b,0x47,0x88,0xec,
+ 0x61,0x56,0xf9,0x2e,0xe8,0xac,0xfc,0xe7,0x8d,0x11,0xb4,0xd,0x40,0xb3,0x7a,0x38,
+ 0x6e,0xdf,0xa4,0xb6,0xc2,0xda,0x8a,0x8c,0x59,0x59,0xa,0xbd,0x53,0x64,0x68,0xbf,
+ 0xa7,0x1d,0x49,0xb2,0x39,0x3f,0xfb,0x9e,0xd5,0x6a,0xeb,0xf4,0x6b,0xe9,0x23,0x4e,
+ 0xbd,0xde,0x9,0xb8,0x65,0xd,0x61,0x35,0x32,0xa7,0xd3,0xb9,0xd5,0xc,0x20,0xfd,
+ 0xf8,0xbc,0x90,0xec,0x60,0x50,0x76,0xc0,0x25,0x7d,0x63,0xb2,0x9e,0x9e,0x6d,0x26,
+ 0x49,0xa3,0xfb,0xb6,0x41,0xb5,0x8f,0x34,0x60,0x4a,0x87,0xfe,0xec,0x77,0xa5,0xc3,
+ 0xee,0x6a,0xca,0x6a,0x8f,0x48,0xad,0x66,0x0,0x59,0xe5,0x77,0x2,0x74,0xab,0x29,
+ 0xbf,0x2d,0xcf,0xfb,0xd0,0xdf,0x96,0xcc,0xde,0xaa,0x27,0x28,0x3b,0x1d,0x72,0xf9,
+ 0xff,0xdb,0x39,0xa3,0xed,0x6,0x61,0x18,0x86,0xaa,0xdb,0xff,0xff,0xf1,0x46,0xf7,
+ 0xa4,0xb3,0x8b,0x90,0x43,0x9f,0x1,0xbd,0x24,0xd,0x9,0xd9,0xa9,0x6c,0xcb,0x31,
+ 0x65,0x3a,0xbe,0x40,0x62,0x22,0xfc,0x5,0x32,0x4f,0xd8,0xb4,0x4f,0x2c,0x73,0xbd,
+ 0xd7,0xb4,0x73,0x7e,0x1a,0x4,0x75,0xd9,0xfb,0x26,0xd1,0x53,0x94,0x68,0xc7,0x39,
+ 0x66,0xf5,0x8a,0xfe,0x99,0xf7,0x5f,0xe,0x2e,0x4,0x49,0xdd,0x23,0x3d,0x6e,0xaf,
+ 0x4f,0xfc,0x68,0xff,0x6e,0x5d,0x7a,0x3d,0xd,0x20,0x31,0x91,0x9f,0x7a,0xcf,0xb6,
+ 0x25,0x6a,0xa9,0xdd,0xf6,0x7c,0x69,0x1f,0x5,0x1a,0xc9,0xbc,0x8f,0x74,0x34,0x8e,
+ 0xcb,0x12,0x6f,0x64,0x4,0x60,0xe6,0xde,0xf4,0x3c,0x93,0x3e,0x66,0xed,0xdf,0x31,
+ 0xd7,0xfa,0xef,0xdc,0x22,0x43,0xbf,0xd7,0x49,0xeb,0xf3,0xb6,0x49,0x4c,0x92,0xf9,
+ 0x59,0x9a,0x13,0xbc,0x33,0x23,0xcb,0xeb,0xf9,0xb7,0x5d,0x1a,0x36,0x0,0x5a,0xfc,
+ 0x16,0x73,0xf2,0xa7,0x9a,0x94,0x87,0xcc,0x1,0x5e,0x3a,0x4a,0x45,0x4b,0xfe,0x58,
+ 0xc,0x5a,0x49,0x80,0xdb,0xf4,0xe8,0xc,0xe5,0x2d,0x61,0x9c,0x12,0x4b,0x2d,0xf6,
+ 0xbc,0x5,0xe9,0x84,0x25,0xc0,0x4,0x26,0xf9,0xc2,0xb5,0x1c,0xdb,0xa2,0x65,0x9d,
+ 0xa0,0x19,0x0,0x93,0xc4,0x46,0x9a,0xd1,0x12,0xbf,0xc,0xff,0x2b,0x63,0xc9,0x71,
+ 0xe9,0x33,0x3,0xb8,0x25,0x18,0x1,0xa6,0xfa,0x3d,0x43,0xba,0xe7,0xb2,0xc0,0x63,
+ 0xad,0x4f,0xef,0xcf,0x7,0x3d,0x44,0xca,0x47,0x23,0x27,0x8d,0x63,0x25,0x13,0x2b,
+ 0x23,0x78,0xc7,0x1a,0xee,0x21,0xdd,0x98,0x7c,0x69,0x2e,0x4,0xa5,0x57,0x7e,0x95,
+ 0x31,0x93,0xc8,0x9f,0x6e,0xbd,0x62,0x8d,0xef,0xe7,0xf9,0x9e,0xb7,0x95,0xf1,0x24,
+ 0x65,0x4a,0xd4,0xa6,0xd0,0x7d,0xa6,0xeb,0xd9,0x67,0x7b,0x5b,0xa4,0x4,0x90,0xc,
+ 0x97,0x6e,0x8d,0x4c,0xfe,0x48,0xf0,0xa4,0xfb,0xf9,0xb4,0x2f,0x49,0x17,0xae,0x71,
+ 0x4e,0x1a,0xdb,0xef,0x30,0x47,0x3a,0x92,0xfe,0x49,0x21,0xe7,0xf6,0xc4,0x1b,0x7e,
+ 0x58,0xd3,0x42,0x36,0x49,0x64,0x35,0x8f,0xff,0x55,0xa4,0xbd,0x5d,0xcc,0x7b,0xe4,
+ 0x5e,0xf4,0x62,0xe6,0xf,0x93,0xe7,0x4b,0x7b,0xa9,0xc8,0x39,0xfc,0xfc,0x69,0x5,
+ 0xef,0x21,0x1f,0x60,0x1d,0x40,0x3a,0x46,0x2,0xc3,0x5f,0x2e,0x8f,0x74,0xac,0xf8,
+ 0x79,0x2d,0x5b,0x62,0x45,0xc6,0x99,0x1,0x64,0xe8,0x9f,0xee,0x33,0xe9,0xfa,0x43,
+ 0xfc,0x2,0xed,0x11,0xed,0x14,0x9,0xd8,0xcf,0xa,0x1f,0xfb,0x34,0x90,0x49,0x83,
+ 0x85,0x31,0x62,0xca,0xda,0x57,0x72,0xe1,0x7e,0x2b,0xe5,0xb6,0x3d,0x1e,0x0,0x2b,
+ 0xed,0xe6,0x1c,0x95,0xf1,0x76,0xec,0xcb,0xba,0x80,0xf4,0x6f,0x10,0x52,0x27,0x23,
+ 0xbd,0x7e,0x3a,0x92,0x9e,0x69,0xfa,0x99,0x71,0x3d,0x28,0xf8,0x3,0xe9,0x4a,0x1,
+ 0xef,0xb4,0x3e,0x14,0xed,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,
+ 0x82,
+ // /home/matthew/pencil_dev/icons/prefstimeline.png
+ 0x0,0x0,0xd,0x38,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x4b,0x0,0x0,0x0,0x33,0x8,0x6,0x0,0x0,0x0,0xdf,0x3f,0xf5,0x46,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0xc,0xca,0x49,0x44,0x41,0x54,0x78,0xda,0xa4,
+ 0xcc,0x4b,0xa,0x80,0x30,0xc,0x4,0xd0,0x54,0xdd,0x28,0x2e,0x4,0x5,0xf5,0x44,
+ 0xde,0xff,0x1e,0x85,0x22,0x56,0xa9,0xdf,0x3a,0xc5,0x59,0x94,0x6e,0xd,0x3c,0x86,
+ 0x7c,0x88,0xd2,0x5a,0x4f,0x22,0x52,0x40,0x4d,0x1d,0x8c,0xd0,0xc3,0x0,0x2d,0x34,
+ 0x50,0x41,0x9,0x39,0x65,0xf2,0x95,0x4a,0xf2,0x6f,0x79,0xfe,0xf2,0xec,0x1f,0xba,
+ 0x23,0x61,0x77,0x71,0x2e,0xd1,0xad,0x4f,0x84,0x9b,0x3,0x76,0x70,0xb0,0xd0,0xa,
+ 0x6,0x36,0xb0,0x51,0x6,0x33,0xf7,0x96,0xe9,0xe8,0x7c,0x5,0x10,0xb,0x23,0x23,
+ 0xe3,0x67,0x68,0x60,0xfd,0x83,0x3a,0x92,0x17,0x6a,0x38,0xcc,0x1,0xb0,0x80,0x61,
+ 0x42,0x12,0xa3,0x76,0x0,0x21,0x3,0xf4,0x80,0x42,0xf,0x0,0x46,0x68,0x20,0xfc,
+ 0x47,0x52,0x87,0xc,0x98,0xa0,0x6a,0x90,0x3,0xf2,0x2f,0x54,0x1c,0xe4,0x4f,0x56,
+ 0xa8,0x9f,0xd8,0x41,0x1,0x0,0xe5,0xc3,0xe4,0x18,0xa1,0x34,0xc,0x33,0x23,0xf9,
+ 0xfb,0x3f,0x40,0x0,0xb1,0x30,0x33,0x33,0x7f,0x85,0x6a,0x4,0x49,0x70,0x43,0xd,
+ 0x80,0x39,0x84,0x9,0x29,0x40,0x90,0x3,0xd,0x5f,0x8a,0xa0,0x46,0xca,0x62,0x40,
+ 0xb,0x8,0x98,0x7b,0x90,0x53,0xd9,0x3f,0x2c,0x11,0xc7,0x8,0x75,0x27,0xb2,0xf8,
+ 0x5f,0x24,0x8f,0xb3,0x20,0xb9,0x1f,0xd9,0x1e,0x26,0x24,0x9a,0x9,0x29,0xc2,0x98,
+ 0x91,0xcc,0x65,0x4,0x8,0x20,0x96,0xff,0xff,0xff,0x7f,0x87,0x2a,0xf8,0x83,0x64,
+ 0x0,0x13,0x52,0x76,0x83,0xc5,0x6,0x23,0x5a,0xe0,0x61,0x4b,0x11,0xb4,0x0,0xc8,
+ 0x81,0x4,0x4b,0x55,0xc,0x68,0x1,0xc4,0x88,0xe6,0xd1,0x7f,0x50,0xf6,0x3f,0x34,
+ 0xcf,0xff,0x43,0x4b,0xb5,0xb0,0x6c,0xfd,0x1b,0x2d,0x25,0x32,0x22,0xa5,0x34,0x78,
+ 0x6a,0x5,0x8,0x20,0x96,0xbf,0x40,0x0,0x75,0xc0,0x5f,0xb4,0xd0,0x65,0x41,0xa,
+ 0x30,0x66,0xf4,0x50,0x46,0x8b,0xd1,0xff,0x54,0xc,0x18,0x5c,0x7c,0xe4,0x94,0xf4,
+ 0xf,0x2d,0xc0,0xd0,0xdd,0xc6,0xc,0xf5,0x13,0x23,0x9a,0xfb,0x60,0xfe,0xfc,0x5,
+ 0xd,0x20,0x58,0x79,0x6,0xa3,0x7f,0x23,0x5,0x20,0x72,0xc0,0x81,0x3,0x1e,0x20,
+ 0x80,0x58,0xbe,0x7f,0xff,0xfe,0x17,0x29,0xc9,0x21,0x63,0x56,0x2,0x81,0x4,0x6,
+ 0xac,0x5f,0xbf,0x91,0x1c,0x50,0xbf,0xb9,0xb9,0x8,0x65,0x63,0xf4,0x2,0x1b,0x39,
+ 0x52,0xd0,0x23,0x8a,0x9,0x2d,0x75,0xa1,0xa7,0xac,0xff,0x48,0x1,0xf0,0x7,0x2d,
+ 0x70,0xbe,0x23,0xf1,0x61,0x95,0xc1,0x5f,0xa4,0x54,0xc8,0x8c,0x64,0x26,0x33,0x40,
+ 0x0,0xb1,0x1c,0x39,0x72,0xe2,0x1f,0x5a,0x4c,0x21,0x2b,0x60,0x42,0x73,0xc,0x23,
+ 0x52,0xea,0x3,0x3,0xe5,0xc5,0xb,0x18,0x38,0x39,0x39,0x89,0xce,0x82,0xc0,0xc8,
+ 0x61,0xb8,0x1b,0x9b,0x40,0xa8,0x60,0x87,0x17,0xd6,0x6f,0xdf,0xbe,0xfd,0x23,0x2c,
+ 0x2c,0x8c,0x5e,0xc8,0xa3,0x97,0x31,0x70,0x37,0x2,0xd5,0x33,0x0,0xd5,0x23,0x97,
+ 0x57,0xff,0x91,0x2,0xea,0x1f,0x52,0x40,0x81,0x3,0x9,0xa8,0xfe,0x27,0x50,0xfd,
+ 0xf,0x28,0xff,0xf,0x52,0x96,0xff,0x8f,0x96,0x35,0xff,0x3,0x4,0x10,0x8b,0xa9,
+ 0xa9,0x21,0x7a,0x6a,0xf9,0x8f,0x56,0x13,0x30,0xa2,0xc5,0x38,0x4a,0xc0,0x1c,0xab,
+ 0x2e,0x67,0xf0,0xf6,0xf6,0x26,0xba,0x70,0xdf,0xba,0x75,0x2b,0x83,0x95,0xa9,0x21,
+ 0x31,0x35,0x21,0x38,0xeb,0x65,0x65,0x65,0x31,0x4c,0x9b,0x36,0xd,0x3d,0xa2,0xfe,
+ 0xa1,0x95,0x27,0xf0,0xf2,0xb,0xaa,0x1e,0xb9,0x7c,0xfa,0x83,0x14,0x60,0xbf,0xd1,
+ 0xb2,0xe2,0x4f,0xa0,0xfa,0x5f,0x40,0xf5,0xbf,0xd1,0xe4,0xfe,0xa3,0x95,0x89,0xe0,
+ 0x32,0x1c,0x20,0x80,0x98,0x90,0x6a,0x16,0x98,0x87,0x59,0xb1,0x14,0xe4,0xff,0x71,
+ 0xd4,0x4e,0xf8,0xca,0x1b,0x4a,0xdb,0x58,0xff,0xb1,0x54,0x1c,0x4c,0x68,0xf6,0x30,
+ 0xa3,0xd5,0x80,0xc,0x38,0xb2,0x31,0x72,0x61,0xfe,0xf,0xad,0x6c,0xfa,0x8b,0x14,
+ 0xa0,0xff,0x70,0xa4,0x2c,0x70,0xd6,0x6,0x8,0x20,0x64,0xcb,0xff,0xa2,0xd5,0x8a,
+ 0xff,0xd0,0xa,0xd6,0xff,0x44,0x4,0xca,0x7f,0x42,0x81,0x6,0xcc,0xb2,0x84,0xda,
+ 0x58,0xc8,0xa9,0x86,0x11,0x9a,0x5,0xd1,0xdb,0x51,0xe8,0xed,0x3e,0x78,0xd1,0x0,
+ 0x55,0xcf,0x84,0x23,0xc0,0xfe,0x23,0x5,0x18,0x38,0x5,0x41,0xd5,0x23,0xdb,0x8b,
+ 0x5e,0xc3,0xc2,0xcd,0x1,0x8,0x20,0xc6,0x3b,0x77,0xee,0x80,0x5a,0xe9,0xfc,0xd0,
+ 0x96,0x3a,0xa8,0xe5,0xae,0x0,0xc4,0x8a,0x40,0x2c,0xb,0xc4,0xd2,0x50,0x71,0x3e,
+ 0x68,0x5b,0x8c,0x5,0xad,0xf5,0xce,0x70,0xcc,0xcd,0xd,0x94,0xd,0x19,0x49,0x69,
+ 0x42,0xbc,0xcf,0xcf,0xc7,0x27,0xfd,0xf,0x29,0x75,0xfd,0xc5,0xe6,0x41,0x24,0x75,
+ 0x2c,0x68,0x45,0x7,0x72,0xcb,0xfd,0x2f,0x52,0xeb,0xfb,0x1b,0xb4,0x65,0xe,0x6a,
+ 0xb5,0xbf,0x85,0xd2,0x20,0xfc,0x9,0xda,0x52,0xff,0x8e,0x54,0x1b,0xc2,0xa,0xfb,
+ 0x1f,0x68,0xf8,0x1b,0x40,0x0,0x31,0x61,0x69,0x8d,0xff,0x47,0x6a,0x77,0xfc,0x45,
+ 0x2b,0x1c,0xd1,0x63,0x9,0x96,0x52,0xfe,0x53,0x29,0x3b,0xa2,0x67,0x43,0x26,0xb4,
+ 0xec,0xc7,0x84,0x25,0xd6,0x61,0x7a,0xfe,0xa2,0x55,0x2,0xff,0xd0,0xfc,0x84,0xdc,
+ 0x7e,0x62,0x42,0x6b,0xa8,0xb2,0x60,0x11,0x47,0xae,0xe4,0xc0,0x0,0x20,0x80,0x58,
+ 0xb0,0x78,0xf0,0x17,0x52,0xec,0xfc,0x41,0x8b,0x55,0x66,0x34,0x3,0xfe,0x3b,0x39,
+ 0x39,0xa1,0xb7,0x88,0xe1,0x55,0xfc,0x3f,0x3c,0xcd,0x7d,0x2,0xd9,0x10,0x3d,0xf0,
+ 0xfe,0x62,0x89,0xc,0x46,0x2c,0xcd,0xd,0xf4,0x86,0x27,0x7a,0x83,0x16,0x96,0x7d,
+ 0x41,0xb9,0x84,0xd,0x4a,0xa3,0xf7,0x31,0xd1,0xd5,0xc2,0xcd,0x4,0x8,0x20,0xe4,
+ 0x98,0xfa,0x83,0xd4,0x3a,0xfe,0x8d,0x94,0x24,0x7f,0x63,0xa9,0x52,0xff,0xe3,0x28,
+ 0x8c,0xe1,0x9e,0xf9,0xf5,0xe7,0x27,0xc3,0xc3,0x6f,0xbf,0x29,0xed,0x44,0xff,0xc7,
+ 0x92,0x45,0xff,0x63,0xc9,0xf2,0xff,0xd1,0xa,0x65,0x6c,0xdd,0x21,0x66,0xb4,0x9e,
+ 0x9,0x2c,0xb0,0x38,0xa0,0x98,0x1d,0x5a,0xb9,0xb1,0x21,0x25,0xa,0xe4,0xb2,0x9b,
+ 0x1,0x20,0x80,0x98,0x90,0xc,0x67,0x40,0xab,0x31,0x7e,0x21,0x5,0x20,0xae,0xc0,
+ 0xfa,0x87,0x19,0xe3,0xff,0x18,0xde,0xff,0xfc,0xc9,0x70,0xf6,0xde,0x3d,0x86,0x86,
+ 0x87,0xaf,0xc8,0xe9,0x44,0xa3,0x17,0xb4,0xff,0xb0,0x14,0xba,0xc,0x38,0x6a,0xad,
+ 0xbf,0x68,0x62,0xbf,0x91,0xfc,0xc6,0x88,0xd4,0xd8,0x66,0x45,0xa,0x2c,0x18,0x9b,
+ 0xd,0x29,0xc5,0xb1,0x60,0x69,0x8c,0x33,0x0,0x4,0x10,0xb,0x16,0x8f,0xc3,0x5a,
+ 0xb9,0xc8,0xdd,0xa0,0xbf,0x68,0xd5,0x2a,0x23,0x96,0x90,0x87,0x24,0xd9,0xdf,0x1f,
+ 0x19,0xb7,0x3c,0x7e,0xcb,0xf0,0xe8,0x3f,0xd3,0x7f,0x2e,0x46,0x46,0x46,0x32,0x52,
+ 0x16,0x13,0x96,0x54,0x84,0x6d,0xf4,0x1,0xbd,0xf6,0xfd,0x8b,0x14,0xb8,0xc8,0xfd,
+ 0xbd,0x7f,0x48,0xe2,0xff,0x90,0x2,0x81,0x15,0x1a,0x38,0xff,0x90,0x9a,0x1e,0x30,
+ 0x3f,0x33,0x21,0x5,0x2e,0xbc,0x46,0x4,0x8,0x20,0xf4,0xa6,0xc3,0x7f,0xb4,0xce,
+ 0xe5,0x5f,0x2c,0x4d,0x9,0x7c,0xfd,0x38,0x46,0x6,0x56,0x41,0x86,0x58,0x15,0x15,
+ 0x86,0x52,0x81,0xff,0xc,0xbf,0xfe,0xff,0x27,0x27,0x65,0x31,0xe0,0x18,0x96,0x61,
+ 0xc4,0x33,0x6e,0x85,0xdc,0xf7,0xfb,0x87,0x36,0x84,0xf3,0x17,0x69,0xc8,0x9,0x56,
+ 0x46,0x73,0x22,0xa5,0x26,0x18,0x66,0x45,0xc3,0xcc,0xe8,0x29,0x1e,0x20,0x80,0x98,
+ 0xd0,0x5a,0xc4,0xff,0xd0,0x6a,0x96,0x7f,0x78,0xca,0xb,0xbc,0x9e,0x4,0xf6,0x38,
+ 0x19,0xc9,0xac,0xd,0xd1,0x7b,0x3,0xb8,0x7a,0xf,0x8c,0x38,0x22,0xec,0x3f,0x52,
+ 0xb9,0xfb,0x7,0xa9,0x62,0xfa,0x8f,0x14,0x60,0xb0,0x5a,0xf,0x16,0x48,0x2c,0x48,
+ 0xd9,0x8f,0x9,0xcd,0x6c,0x58,0xae,0x62,0x4,0x8,0x20,0x26,0x2c,0xe,0xfa,0x8b,
+ 0x23,0x16,0x99,0xb0,0x38,0x96,0x11,0x4b,0xb6,0x20,0xaa,0x71,0x4a,0x42,0x8d,0x88,
+ 0xab,0x93,0xfd,0xf,0x8b,0xfd,0xcc,0x58,0xfa,0x8f,0xcc,0x58,0xb2,0x31,0x33,0x92,
+ 0x1e,0xf4,0xd1,0x15,0x6,0x2c,0x95,0x8,0x38,0xc0,0x0,0x2,0x8,0xbd,0x93,0xfc,
+ 0x17,0x87,0xe3,0x19,0xb1,0xb0,0xff,0x63,0x9,0x34,0x6a,0x8d,0x6d,0x31,0x12,0x18,
+ 0xc,0x64,0xc0,0xd2,0x77,0x63,0x44,0x1b,0x29,0x45,0x1f,0xd6,0x41,0xae,0x15,0xff,
+ 0x22,0x8d,0xd1,0x31,0xa3,0xe5,0xaa,0xff,0x58,0xc6,0xb9,0xc0,0xb9,0xc,0x20,0x80,
+ 0x98,0xd0,0x6a,0xf,0x6c,0x16,0xa2,0xd7,0x42,0xc,0xd8,0x86,0x6a,0xd0,0xf9,0x4c,
+ 0xcc,0xac,0xff,0x25,0x59,0x99,0xa9,0x31,0xae,0x85,0x2b,0x32,0xd0,0xdb,0x7c,0xc8,
+ 0x6d,0x23,0xf4,0x41,0xcb,0xff,0x48,0xa9,0xe6,0xf,0x5a,0x85,0xf0,0x1b,0x29,0xab,
+ 0xfd,0x44,0x1a,0xaa,0x81,0xb5,0x6,0xe0,0x23,0xc7,0x0,0x1,0xc4,0x82,0x54,0xe8,
+ 0x21,0x87,0xfa,0x3f,0x2c,0x13,0x12,0xb8,0x2,0x9,0x6b,0x60,0xf1,0x8a,0x2b,0x33,
+ 0xb6,0x88,0x93,0x3d,0xfe,0x8e,0xad,0x3c,0x42,0x1f,0x75,0x60,0x40,0x2b,0x1e,0xfe,
+ 0xa1,0x8d,0x65,0x31,0x62,0x69,0x87,0x31,0xa1,0x35,0x91,0x90,0x9b,0x49,0xbf,0x90,
+ 0x2,0xc,0xbd,0xe7,0x2,0xa6,0x1,0x2,0x8,0x34,0xac,0xfc,0xf,0xad,0x69,0x8f,
+ 0x2d,0x36,0x18,0x71,0x65,0xc7,0xff,0x90,0x1a,0xef,0x3f,0x5a,0x47,0x97,0x1,0xc7,
+ 0xa8,0x1,0x3,0x92,0x1e,0x7c,0x5,0xfc,0x7f,0xb4,0xb2,0xea,0x1f,0x8e,0x40,0x64,
+ 0xc2,0xd2,0x92,0x47,0x1e,0x4e,0x66,0x46,0xf2,0xd3,0x5f,0x2c,0x65,0xea,0x6f,0xa4,
+ 0x1,0xbf,0x9f,0xd0,0x3e,0xe4,0x6f,0xa4,0x14,0xf5,0xf,0x79,0xd8,0x6,0x20,0x80,
+ 0x58,0x1e,0x3f,0x7e,0xfc,0x1f,0x6d,0x22,0xe2,0x3f,0x9e,0xe1,0x63,0x8c,0x94,0xc0,
+ 0xfc,0xe9,0xf3,0x7f,0x1c,0xfd,0x4b,0x9c,0xa9,0x10,0x68,0x27,0x31,0x29,0xb,0xdb,
+ 0x64,0xc4,0x3f,0xb4,0xbe,0x22,0xae,0xda,0x11,0x39,0x57,0xb0,0x42,0x3b,0xc2,0xff,
+ 0xd1,0x52,0x27,0x72,0xfb,0xf2,0xf,0x52,0x0,0xfd,0x86,0xaa,0xff,0x85,0x14,0x50,
+ 0x60,0xbb,0x1,0x2,0x88,0xe5,0xde,0xbd,0x47,0xe8,0x35,0xb,0x3,0x5a,0xe0,0x31,
+ 0x61,0x29,0xaf,0xe0,0x16,0xb,0x7c,0xf8,0xc0,0x88,0xa3,0xd6,0xc2,0xd9,0x2d,0x84,
+ 0xda,0x49,0xcc,0x18,0x3c,0xfa,0xec,0xb,0xa1,0x9,0x12,0x74,0xfb,0x99,0xa1,0x9e,
+ 0x46,0x57,0xff,0x17,0x6d,0x84,0xe2,0x37,0x5a,0x63,0x16,0xbd,0xcd,0x9,0xce,0xae,
+ 0x0,0x1,0xc4,0x72,0xee,0xdc,0x29,0xe4,0xec,0xf2,0x87,0x40,0xd5,0x8f,0x32,0xac,
+ 0xfc,0xeb,0xd7,0x2f,0x6,0xd1,0xc7,0x8f,0x18,0x98,0x98,0x98,0x19,0xb0,0xa4,0x4,
+ 0x9c,0xa3,0xa7,0x67,0xcf,0x9e,0x26,0x76,0xde,0x10,0xd7,0x38,0x3c,0x3,0x52,0x56,
+ 0xfb,0x8f,0xa3,0xd6,0x44,0x6e,0x27,0x22,0x57,0x6,0xcc,0x48,0x33,0x37,0xff,0xb1,
+ 0x34,0x45,0xd0,0x87,0x83,0xe0,0x6d,0x3f,0x80,0x0,0x62,0x9,0xb,0xb,0x43,0x2e,
+ 0x20,0x59,0xb0,0xc4,0xd4,0x5f,0x1c,0x65,0x9,0xc3,0x92,0x25,0x4b,0xc0,0x16,0xaa,
+ 0xa8,0x98,0x33,0xfc,0xf9,0xf3,0x9b,0xe8,0x1,0x6,0x77,0xf7,0x1c,0x62,0x47,0x49,
+ 0x99,0xf0,0xa4,0x36,0x46,0x1c,0x1d,0xed,0x7f,0x38,0x3c,0xcc,0x80,0x36,0x1,0x83,
+ 0xdc,0xb1,0x66,0x40,0x4a,0x65,0x8c,0xb8,0x26,0x4e,0x0,0x2,0x88,0x5,0x4b,0x40,
+ 0x30,0xe0,0x18,0x59,0x60,0xc0,0x31,0xdc,0xb,0x56,0x73,0xe0,0xc0,0xda,0x7f,0xcc,
+ 0xcc,0x2c,0x4c,0x84,0xda,0x5a,0x7f,0xff,0xfe,0x61,0x90,0x8d,0x2d,0x24,0x94,0xa2,
+ 0x98,0xd0,0xa,0x75,0x6c,0xe5,0xe1,0x3f,0x34,0x36,0x3a,0xfe,0x8b,0x36,0x1a,0xc1,
+ 0x8c,0x36,0xb5,0x85,0x3e,0xd9,0x81,0x6d,0x28,0xfd,0x1f,0xf2,0x50,0xd,0x40,0x0,
+ 0xb1,0xa0,0x95,0x2f,0x7f,0xd1,0x1a,0x73,0xf8,0xc6,0x89,0x30,0x6a,0x3b,0x13,0x13,
+ 0x5b,0x6c,0xd9,0x5,0x25,0xd0,0x4e,0x9e,0xdc,0x4f,0x6c,0xdf,0x10,0x5f,0x63,0xf7,
+ 0x2f,0x16,0x77,0x21,0xf7,0x3e,0x90,0x1b,0x95,0xff,0xb1,0xe8,0x61,0xc2,0x32,0x91,
+ 0xcc,0x8c,0x96,0x45,0xd1,0x67,0xa7,0x19,0x1,0x2,0x88,0x5,0xad,0x96,0x61,0xc6,
+ 0xd2,0x17,0xfc,0x87,0xa3,0xd7,0xff,0x9f,0x40,0x4d,0x46,0xad,0xe9,0x7b,0xf4,0xd6,
+ 0x35,0x23,0x5a,0xb6,0x61,0xc0,0x32,0x3f,0xf8,0x17,0x6d,0x76,0xe7,0xf,0x96,0x1e,
+ 0x7,0x33,0x5a,0x80,0xb0,0x20,0xf9,0x9f,0x19,0xad,0x57,0x3,0xb6,0x1b,0x20,0x80,
+ 0x58,0xd0,0x52,0xd1,0x5f,0xb4,0x72,0x3,0x7d,0x78,0x86,0x50,0x60,0x61,0xab,0xbe,
+ 0xc9,0x6d,0x98,0xa2,0x67,0xc5,0xbf,0x68,0x5d,0x32,0xe4,0x45,0x22,0xff,0xd0,0x86,
+ 0x93,0x18,0xd0,0x86,0x98,0xfe,0xa3,0xd,0x2d,0x31,0x21,0x75,0xb0,0x61,0x2d,0x7d,
+ 0xf4,0x32,0x8d,0x5,0x3d,0xa5,0x3,0x4,0x10,0xb,0x96,0xae,0xc2,0x5f,0x2,0x43,
+ 0xb4,0xd8,0xca,0x33,0x6c,0x81,0x44,0x69,0x2a,0xfb,0x8f,0x67,0x6a,0xb,0x39,0x12,
+ 0xff,0x60,0x19,0x4a,0xfa,0x83,0xa5,0xa0,0x67,0x40,0x1b,0xbb,0x62,0xc1,0xd2,0x45,
+ 0x62,0x44,0x1b,0x6a,0x47,0x49,0xc9,0x0,0x1,0xc4,0x82,0x34,0x0,0xc8,0x80,0xd6,
+ 0x3f,0xc4,0x35,0x4c,0xfb,0x1f,0xcf,0xb4,0x3a,0x7a,0x8d,0xc6,0x48,0x41,0x20,0x31,
+ 0xe2,0x18,0x8d,0xf8,0x87,0xd6,0x97,0xfb,0x8f,0xa5,0x7b,0x82,0xdc,0x65,0xfb,0x8b,
+ 0xa3,0xe9,0xc1,0x88,0xa3,0x29,0x82,0xdc,0xc6,0x42,0x1,0x0,0x1,0xc4,0x82,0x56,
+ 0x83,0x30,0xa3,0xd,0x9e,0xa1,0x67,0xc1,0xbf,0x68,0xa3,0x87,0xff,0xb1,0xa4,0xa4,
+ 0xbf,0x68,0xd5,0x31,0x23,0x5,0x29,0xb,0xbd,0x88,0x40,0x6,0xbf,0xd1,0x5a,0xdf,
+ 0xff,0xd1,0xda,0x89,0xc,0x68,0x65,0x15,0xb6,0x9,0xc,0xe4,0x61,0x1d,0xe4,0x21,
+ 0x76,0x46,0x2c,0xb3,0x46,0xc,0x0,0x1,0xc4,0x84,0x96,0xf4,0xfe,0xa1,0x15,0x9e,
+ 0xe8,0xc9,0x1d,0xdb,0xfa,0x28,0xac,0xb3,0xb7,0x14,0xe,0xd5,0xa0,0x67,0xf3,0x7f,
+ 0x68,0x23,0xa1,0xff,0xb1,0x14,0x15,0x7f,0xd0,0x3c,0x87,0x3e,0x43,0x83,0xbc,0x4a,
+ 0x88,0x19,0x4b,0x99,0xf6,0x17,0xcb,0x3c,0x25,0xca,0xc4,0x2c,0x40,0x0,0xa1,0xf,
+ 0x6f,0xe0,0x2a,0x1f,0xfe,0xe0,0xa8,0xd,0xff,0xe1,0x69,0x30,0x52,0x12,0x50,0xd8,
+ 0x66,0x8d,0x90,0x9b,0xd,0xbf,0xb1,0x94,0x6b,0xcc,0x58,0x6,0xf3,0x18,0xb1,0xf8,
+ 0xef,0x1f,0x96,0x14,0xfb,0x7,0x6d,0x26,0xeb,0x17,0xda,0xfc,0x29,0xd8,0x2d,0x0,
+ 0x1,0xc4,0x82,0x94,0x4f,0x19,0xb0,0x4,0xd2,0x7f,0x2c,0xeb,0x5,0xfe,0x63,0xa9,
+ 0xca,0x19,0x19,0xb0,0x2f,0x9,0xa2,0xb4,0xd9,0x80,0xde,0xd9,0x45,0x5f,0x2f,0x8a,
+ 0x6d,0x1,0xc7,0x7f,0xb4,0x19,0x1d,0xf4,0x44,0xf0,0x1b,0x6d,0x7a,0xef,0x27,0x52,
+ 0x56,0xfe,0x85,0x96,0xbd,0x51,0x52,0x31,0x40,0x0,0xb1,0xe0,0x48,0x11,0x4c,0x68,
+ 0x33,0x25,0xe8,0x34,0x13,0x8e,0xd6,0x3d,0xae,0xb5,0xa7,0xe4,0x4c,0x58,0x30,0xa2,
+ 0xa5,0x2,0x6c,0xb3,0xcb,0x8c,0x58,0x46,0x20,0xfe,0xe3,0x18,0x28,0xfc,0x8d,0xe6,
+ 0x66,0xe4,0x41,0xbe,0x9f,0x48,0x1,0xf5,0x1b,0x6d,0xc4,0x1,0xde,0x22,0x0,0x8,
+ 0x20,0x16,0xa4,0x61,0xc,0xf4,0xb9,0xba,0xff,0x78,0xa6,0xa2,0xfe,0xe1,0x48,0x51,
+ 0x94,0xd6,0x82,0x8c,0x78,0x2,0xf0,0x1f,0xda,0x38,0x16,0xae,0x31,0xb4,0x7f,0x68,
+ 0x65,0xdd,0x3f,0x34,0xb1,0x3f,0x68,0x59,0xef,0x2f,0x8e,0x49,0xe5,0x3f,0x68,0xd9,
+ 0xfd,0x3f,0x40,0x0,0xb1,0xe0,0x18,0xb8,0x47,0x5e,0xd5,0xcb,0x84,0xa5,0x63,0x89,
+ 0x6f,0x8,0xe5,0x3f,0x9e,0x19,0x19,0x62,0xc7,0xdd,0xd1,0x1b,0xa8,0xc8,0x66,0x33,
+ 0xe3,0x19,0xc9,0xfd,0x8f,0x96,0x15,0xb1,0xad,0x35,0x65,0xc4,0xd2,0x3e,0x43,0xf,
+ 0xb4,0x3f,0x48,0x76,0xc0,0x52,0xe4,0x3f,0x80,0x0,0x62,0xc1,0xd2,0x4f,0x62,0x45,
+ 0x9b,0x47,0x63,0x66,0xc0,0xbe,0x52,0xf9,0x3f,0x96,0x89,0x0,0x26,0x34,0x4f,0x30,
+ 0x92,0x59,0xb,0x62,0x6b,0x14,0xa2,0xa7,0x5c,0x26,0x1c,0x53,0xfd,0xc8,0x4d,0x8,
+ 0xe4,0xb5,0xa5,0xc8,0xa9,0x1f,0x79,0xfc,0xea,0x17,0x96,0x31,0xad,0x7f,0xe8,0xa3,
+ 0xa4,0x20,0xbd,0x0,0x1,0x84,0xdc,0x74,0x60,0x42,0x9b,0xff,0x67,0xc7,0x32,0x1,
+ 0xc9,0x8c,0x36,0xb4,0xc1,0x88,0x63,0x26,0x86,0x92,0x96,0x3b,0x23,0xe,0x9a,0x81,
+ 0x1,0xfb,0xe2,0x35,0xf4,0x51,0x3,0xe4,0x7e,0x1f,0x3,0x5a,0xb1,0xf2,0xf,0xcb,
+ 0xdc,0x28,0xb6,0xc5,0x6e,0xd8,0x1a,0xa5,0xff,0x1,0x2,0x8,0x39,0x65,0xb1,0x20,
+ 0x5,0x10,0x7,0x74,0xd6,0x16,0x86,0x39,0xf0,0xa4,0x34,0x46,0x6,0x2c,0xcb,0x73,
+ 0xa8,0xd4,0xcd,0x61,0xc0,0x32,0xc,0xcc,0x88,0x23,0xe5,0xe2,0x5b,0x99,0xf8,0xf,
+ 0x4b,0xa0,0x30,0x60,0x69,0x58,0xff,0x43,0xb3,0x7,0xb9,0x6f,0xca,0x8,0x10,0x40,
+ 0x2c,0x48,0x31,0x6,0x9b,0x91,0x85,0xad,0x2a,0xe1,0x42,0xa,0x28,0x36,0xb4,0x80,
+ 0x62,0xc6,0x32,0x57,0x47,0x68,0xf8,0x85,0x94,0x2,0x1e,0x3d,0x85,0x32,0x21,0x65,
+ 0x2f,0x26,0xb4,0xde,0xc6,0x7f,0x1c,0xcd,0x1e,0xe4,0xd6,0x3d,0xfa,0xf2,0x47,0x6c,
+ 0x1,0xc5,0x80,0x63,0xfa,0xf,0xde,0xc8,0x6,0x8,0x20,0x16,0xb4,0x6c,0x85,0x1c,
+ 0x58,0x9c,0x58,0xb2,0x22,0xb,0x52,0xd,0x8a,0x32,0xa1,0xe1,0xe2,0x12,0xc1,0x4c,
+ 0xe4,0x94,0x19,0xc3,0x4d,0xc2,0xc3,0xc9,0x8c,0x68,0x65,0xd3,0x5f,0x2c,0x43,0x48,
+ 0xe8,0x23,0x13,0xc,0x68,0xd3,0xed,0xff,0x90,0xa,0xf0,0xdf,0x68,0xf3,0x83,0xff,
+ 0x71,0x44,0xe,0xbe,0x32,0x97,0x11,0x20,0x80,0x58,0xda,0xda,0xda,0xfe,0x23,0xe5,
+ 0x73,0x36,0xa4,0x6c,0xc8,0x8e,0x94,0xaa,0x90,0x57,0xc8,0xa1,0xcc,0x62,0x7f,0xfc,
+ 0xf8,0x91,0xe1,0xf4,0xe9,0xed,0x4c,0x38,0xa6,0xcc,0xb0,0x82,0x25,0xef,0x6f,0x13,
+ 0x33,0xfe,0xce,0x88,0xc5,0x4c,0xf4,0xd9,0x26,0xf4,0x94,0x82,0x9c,0xa2,0x90,0x97,
+ 0x4c,0xfd,0x45,0x6b,0xe,0xa0,0x77,0x9e,0x99,0xd0,0xc6,0xe9,0x19,0xb1,0x8c,0xc4,
+ 0x30,0x0,0x4,0x10,0xcb,0xcc,0x99,0x33,0x99,0xd0,0x62,0xa,0x79,0xc1,0x4,0x7a,
+ 0xe1,0x8e,0x5c,0x4e,0x31,0xa4,0xa7,0xa7,0x83,0xd,0x35,0xb,0x70,0x62,0x22,0xb2,
+ 0xcd,0x4,0x6,0xfc,0x25,0x69,0xa4,0x16,0xf8,0xd8,0xe6,0x22,0xff,0xa2,0xb5,0xad,
+ 0xfe,0xa2,0xa5,0x26,0xd8,0x5c,0xe0,0x6f,0xa4,0x56,0xfa,0x6f,0xb4,0xc6,0x26,0x13,
+ 0x5a,0xa,0x66,0x41,0xab,0x20,0x50,0x96,0x57,0x1,0x4,0x10,0xcb,0x8f,0x1f,0x3f,
+ 0x90,0x27,0x54,0x99,0xd0,0x42,0x9a,0x9,0x4b,0x20,0x61,0xc4,0xf0,0xb7,0xbf,0xbf,
+ 0xfe,0xbf,0x3d,0x73,0x97,0x91,0xd8,0xe6,0xc2,0xdb,0x9f,0x9f,0x89,0x2d,0xdc,0x19,
+ 0x71,0xb4,0xd6,0x99,0xb0,0xcc,0x44,0xfd,0x47,0xcb,0x76,0x28,0x9b,0x3,0x90,0xda,
+ 0x52,0x7f,0x70,0x8c,0xcb,0x31,0x62,0xa9,0xe5,0x99,0x91,0xec,0x61,0x4,0x8,0x20,
+ 0x96,0x9f,0x3f,0x7f,0xfe,0x63,0xc0,0xbd,0x73,0x1,0xbd,0x20,0x47,0xf,0x10,0xb0,
+ 0xfa,0xef,0x7f,0x7f,0x32,0x7d,0xfe,0xfc,0xf9,0xbf,0x82,0x82,0x2,0xc1,0x64,0xf2,
+ 0xe0,0xc1,0x3,0x86,0xb7,0xbf,0x3e,0x13,0x93,0xd,0x99,0x18,0x30,0x37,0x9,0x30,
+ 0x21,0xf5,0xef,0x98,0x91,0xd4,0xfd,0x65,0xc0,0x5c,0x7,0xfb,0x13,0x6d,0x76,0x19,
+ 0x79,0xf6,0xf9,0x17,0x5a,0xad,0xc8,0x80,0x66,0x1e,0xd6,0xb5,0x1d,0x0,0x1,0xc4,
+ 0xf2,0xfa,0xf5,0x6b,0xe4,0xc6,0xda,0x5f,0x6,0x2c,0x5b,0x4e,0x18,0xf0,0x2f,0x4,
+ 0x61,0xfa,0xfc,0xed,0x2b,0x3,0xb0,0xec,0x62,0xfc,0xf2,0xe5,0xb,0xc1,0xc0,0x2,
+ 0x95,0x71,0xcf,0xde,0xbe,0x24,0x76,0x68,0x19,0x5b,0x8d,0x8,0x6b,0x17,0xfe,0xc2,
+ 0xe2,0xa6,0xff,0x68,0x13,0xa5,0xbf,0xd0,0xba,0x31,0xbf,0xb0,0x94,0x59,0xc,0x48,
+ 0x1,0x87,0x6d,0x3d,0x5,0xbc,0x31,0xc,0x10,0x40,0x2c,0x6f,0xde,0xbc,0xc1,0xd7,
+ 0xdb,0xc7,0x36,0xc,0x83,0x91,0x15,0x3f,0x7f,0x7,0x7,0x16,0x3,0xf1,0x81,0xf5,
+ 0x8a,0xd8,0x46,0x29,0x7a,0x5f,0x8f,0x9,0x6d,0xe,0xf0,0x1f,0x8e,0x4a,0xe5,0x1f,
+ 0x3,0xee,0x35,0xf4,0xff,0xb1,0xc,0x49,0xa3,0x8f,0x64,0x60,0x1b,0xd1,0xf8,0xf,
+ 0x10,0x60,0x0,0xc4,0x34,0x3b,0x42,0xd5,0x78,0x67,0x8a,0x0,0x0,0x0,0x0,0x49,
+ 0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/aqua.png
+ 0x0,0x0,0x1,0x1e,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x4,0x0,0x0,0x0,0x13,0x8,0x2,0x0,0x0,0x0,0x38,0x40,0x3b,0xa,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x0,0xb0,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0xbc,0xf7,0xf0,0xcb,0xbf,0xff,0xff,0x19,0x19,0x19,0xff,0xff,0xff,0xf,0x10,0x40,
+ 0x2c,0xf7,0x3f,0xfd,0x66,0x64,0x64,0x80,0x0,0x80,0x0,0x62,0x79,0xf9,0xf5,0xf,
+ 0x3,0xc,0x0,0x4,0x10,0xcb,0x97,0x9f,0xff,0xe1,0x1c,0x80,0x0,0x62,0xf9,0x85,
+ 0x90,0x60,0x0,0x8,0x20,0x96,0x1f,0x7f,0xff,0x33,0x31,0x32,0x41,0x38,0x0,0x1,
+ 0xc4,0xc2,0xc0,0xc4,0xcc,0x0,0x33,0x0,0x20,0x80,0x58,0xfe,0xff,0x67,0xfa,0xb,
+ 0xd3,0x5,0x10,0x40,0x2c,0x37,0xdf,0xb2,0xc0,0xf5,0x0,0x4,0x10,0xb,0x3b,0x7,
+ 0x82,0x3,0x10,0x40,0x2c,0x1c,0xec,0xec,0x70,0xe,0x40,0x0,0xb1,0x70,0xb2,0x33,
+ 0xc1,0x39,0x0,0x1,0xc4,0xc2,0xc5,0x8d,0xb0,0x7,0x20,0x80,0x58,0x78,0x39,0x11,
+ 0x1c,0x80,0x0,0x62,0x61,0xe1,0x40,0x70,0x0,0x2,0x88,0x85,0x93,0xd,0xc1,0x1,
+ 0x8,0x20,0x14,0xe,0x40,0x0,0x31,0x6e,0xfc,0x8c,0x70,0x35,0x40,0x0,0x31,0x6e,
+ 0xff,0xff,0x1f,0x6e,0x2b,0x40,0x80,0x1,0x0,0x28,0x2a,0x22,0x2e,0x4,0xbe,0xb8,
+ 0x37,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/eyedropper.png
+ 0x0,0x0,0x2,0x44,
+ 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,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,0xd8,
+ 0xeb,0xf5,0x1c,0x14,0xaa,0x0,0x0,0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x6d,
+ 0x98,0x0,0x0,0x73,0x8e,0x0,0x0,0xea,0x48,0x0,0x0,0x86,0x0,0x0,0x0,0x77,
+ 0xef,0x0,0x0,0xd0,0xf0,0x0,0x0,0x32,0xf7,0x0,0x0,0x1c,0x74,0xb6,0xd2,0x6c,
+ 0xb,0x0,0x0,0x1,0xba,0x49,0x44,0x41,0x54,0x78,0xda,0x62,0x62,0x20,0x3,0x48,
+ 0xcb,0xa8,0xff,0x7,0x61,0x20,0x93,0xb,0x20,0x80,0x98,0x48,0xd5,0x2c,0x29,0xad,
+ 0xf9,0xbf,0xb8,0x7c,0x3e,0xc3,0xbf,0x7f,0xec,0xc,0x6a,0xea,0x16,0x5f,0x1,0x2,
+ 0x88,0x89,0x58,0x1b,0xe7,0x2f,0x3a,0xf8,0x5f,0x42,0x4a,0xeb,0x7f,0x51,0xe9,0x42,
+ 0x86,0xed,0x3b,0xef,0x33,0x8,0x8b,0xea,0x30,0xfc,0xfc,0xf9,0x9d,0x1,0x20,0x80,
+ 0x8,0x6a,0x56,0x52,0xb1,0xf8,0xdf,0x37,0xe9,0x38,0x50,0xb3,0xc9,0xff,0x8e,0xde,
+ 0xb3,0xff,0x9d,0xbc,0x56,0xfc,0x57,0xd3,0xc,0x5,0x1b,0xb6,0x62,0xd5,0xbe,0xff,
+ 0x0,0x1,0x84,0x57,0xb3,0xac,0xac,0xda,0xff,0x89,0x53,0xf,0xff,0x77,0xf1,0x59,
+ 0xf6,0x5f,0x55,0x2b,0xf5,0xbf,0x88,0xb8,0x5,0x90,0x8e,0xfd,0x2f,0x23,0x67,0xf2,
+ 0xbf,0xb1,0x79,0x9,0x28,0xc,0x4c,0x0,0x2,0x88,0x91,0x80,0x3,0xd8,0xa5,0xa4,
+ 0x35,0x7f,0xf0,0xf2,0x6b,0x33,0xbc,0x7e,0x7d,0x87,0x81,0x8d,0x5d,0x88,0x81,0x85,
+ 0xf9,0x37,0x43,0x64,0x54,0x16,0x43,0x77,0x7b,0xa4,0x29,0x50,0xfe,0x13,0x40,0x0,
+ 0xe1,0x35,0x60,0xf6,0xec,0xc5,0xff,0x3f,0x7e,0x66,0x66,0xe8,0xed,0x69,0x61,0xf8,
+ 0xf3,0x97,0x85,0xe1,0xff,0x7f,0x46,0x6,0x2e,0x2e,0x1e,0x86,0x7f,0x7f,0xdf,0x30,
+ 0x3c,0x79,0x7c,0x53,0xf,0xa8,0xe4,0x5,0x40,0x0,0xe1,0xc,0xc4,0xf9,0xf3,0xe7,
+ 0xff,0x4f,0x49,0x89,0x61,0x60,0x64,0xf8,0xcc,0xe0,0xec,0xe2,0xc7,0xc0,0xca,0xf2,
+ 0x9b,0x81,0x85,0xe5,0xf,0x3,0x2b,0xeb,0x1f,0x90,0x66,0x90,0xed,0xdf,0x80,0xf8,
+ 0x2b,0x40,0x0,0x61,0xd5,0xbc,0x68,0xd1,0xa2,0xff,0x20,0xf0,0xe5,0xcb,0x97,0xff,
+ 0x19,0x99,0x39,0xff,0xb9,0x79,0x78,0xc1,0xfe,0x95,0x95,0x53,0x5,0xd1,0x86,0x40,
+ 0xac,0x6,0xc4,0x82,0x40,0xcc,0xc,0x10,0x40,0x18,0x9a,0x17,0x2c,0x58,0x0,0xd6,
+ 0xfc,0xf5,0xeb,0xd7,0xff,0x9b,0x36,0x6d,0xfa,0xcf,0xcb,0xb,0xd1,0xc,0xd5,0x24,
+ 0x3,0xc5,0x70,0xcd,0x0,0x1,0x84,0xd5,0x66,0x98,0x66,0x3e,0x3e,0x3e,0x64,0xcd,
+ 0x20,0x4d,0xec,0x50,0xc,0xd7,0xc,0x10,0x40,0x58,0x9d,0xbd,0x71,0xe3,0x46,0x74,
+ 0x9b,0xb1,0xdb,0x8,0x4,0x0,0x1,0x4,0x46,0x25,0x25,0x25,0x28,0x36,0xf3,0xf0,
+ 0xf0,0x10,0xad,0x19,0x20,0x80,0xc0,0x8,0x64,0x23,0xc8,0x66,0x72,0x34,0x3,0x4,
+ 0x10,0xc3,0xe6,0xcd,0x9b,0xff,0x7f,0xfb,0xf6,0xd,0xec,0x64,0x92,0x9c,0xd,0x5,
+ 0x0,0x1,0x4,0x4a,0x48,0xec,0xc0,0xc0,0xfa,0xf1,0xe9,0xd3,0x27,0x3d,0xa8,0x18,
+ 0x28,0x7e,0xdf,0x81,0x52,0x19,0x10,0xff,0x25,0x64,0x0,0x40,0x80,0x1,0x0,0xe3,
+ 0x8e,0xc8,0xed,0xab,0x89,0x9e,0x95,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,
+ 0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/smudge.png
+ 0x0,0x0,0x2,0xd9,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x13,0x0,0x0,0x0,0x12,0x8,0x6,0x0,0x0,0x0,0xb9,0xc,0xe5,0x69,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x2,0x6b,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0xfc,0xff,0xff,0x3f,0x3,0xb5,0x0,0x40,0x0,0x31,0x11,0xa3,0xe8,0xcf,0x9f,0x3f,
+ 0x20,0x1b,0x51,0x30,0x8,0x98,0x9b,0x9b,0xa3,0xb8,0x4,0x20,0x80,0xf0,0x1a,0x36,
+ 0x69,0xd2,0xa4,0xff,0xbf,0x7e,0xfd,0xfa,0xcf,0xcc,0xcc,0xcc,0x80,0xee,0x83,0x7f,
+ 0xff,0xfe,0x31,0xb0,0xb2,0xb2,0xa2,0x88,0x1,0x4,0x10,0x58,0x11,0x2e,0xfc,0xe3,
+ 0xc7,0x8f,0xff,0xbf,0x7f,0xff,0xfe,0xf,0x72,0xd9,0xdf,0xbf,0x7f,0xff,0x3,0xd,
+ 0x80,0xe3,0xaf,0x5f,0xbf,0xfe,0x8f,0x8a,0x8a,0xfa,0x9f,0x91,0x91,0xf1,0x1f,0xa6,
+ 0x1e,0x20,0x80,0x70,0xba,0xec,0xe3,0xc7,0x8f,0xff,0x2f,0x5e,0xbc,0x8,0x37,0x18,
+ 0xe4,0x12,0x10,0xd,0x34,0x94,0xe1,0xe7,0xcf,0x9f,0x60,0xbe,0x92,0x92,0x12,0x3,
+ 0xd0,0x32,0xb8,0x1e,0x80,0x0,0x62,0xc2,0x15,0x46,0x2b,0x56,0xac,0x0,0x2b,0x3e,
+ 0x72,0xe4,0x8,0x58,0x23,0x50,0x8c,0xe1,0xdb,0xb7,0x6f,0xc,0x5f,0xbe,0x7c,0x61,
+ 0xf8,0xf4,0xe9,0x13,0xc8,0xd5,0xc,0xe2,0xe2,0xe2,0xc,0x6f,0xdf,0xbe,0x85,0xeb,
+ 0x3,0x8,0x20,0xac,0x86,0x75,0x76,0x76,0x32,0xc4,0xc4,0xc4,0x30,0x6c,0xd8,0xb0,
+ 0x81,0xc1,0xc4,0xc4,0x84,0x61,0xe7,0xce,0x9d,0xc,0xef,0xde,0xbd,0x63,0x0,0x7a,
+ 0xd,0x6c,0x10,0xc8,0x50,0x10,0x5f,0x4e,0x4e,0x8e,0xe1,0xc3,0x87,0xf,0x70,0x7d,
+ 0x0,0x1,0x84,0xd5,0x30,0xb,0xb,0xb,0x86,0xee,0xee,0x6e,0x6,0x3f,0x3f,0x3f,
+ 0xb0,0xc1,0x8a,0x8a,0x8a,0x60,0x43,0xce,0x9c,0x39,0xc3,0x50,0x50,0x50,0x0,0x76,
+ 0x29,0x88,0xcf,0xc9,0xc9,0xc9,0xf0,0xf2,0xe5,0x4b,0xb8,0x3e,0x80,0x0,0xc2,0x6a,
+ 0xd8,0xe1,0xc3,0x87,0x19,0x6c,0x6c,0x6c,0x18,0x6a,0x6b,0x6b,0x19,0x5c,0x5c,0x5c,
+ 0x18,0x58,0x58,0x58,0x18,0x1e,0x3f,0x7e,0xc,0xf6,0xf2,0xcd,0x9b,0x37,0xc1,0x2e,
+ 0x64,0x62,0x62,0x2,0x85,0x2b,0x3,0x23,0x23,0x23,0x5c,0x1f,0x40,0x0,0x61,0x35,
+ 0xac,0xa1,0xa1,0x81,0xf1,0xc1,0x83,0x7,0xc,0xd2,0xd2,0xd2,0xc,0x92,0x92,0x92,
+ 0xc,0xec,0xec,0xec,0xc,0xbb,0x76,0xed,0x62,0x78,0xf2,0xe4,0x9,0x83,0xa0,0xa0,
+ 0x20,0xd8,0x0,0x90,0x57,0xdf,0xbc,0x79,0x3,0x76,0x1d,0xc,0x0,0x4,0x10,0xce,
+ 0xd8,0x4,0x79,0x29,0x35,0x35,0x95,0x81,0x83,0x83,0x83,0x61,0xd3,0xa6,0x4d,0xc,
+ 0x3b,0x76,0xec,0x60,0xb8,0x77,0xef,0x1e,0x43,0x68,0x68,0x28,0xc3,0xf3,0xe7,0xcf,
+ 0x19,0xee,0xde,0xbd,0xcb,0xd0,0xdf,0xdf,0xcf,0xa0,0xa2,0xa2,0x2,0xd7,0x3,0x10,
+ 0x40,0x2c,0xb8,0xc,0x53,0x56,0x56,0x86,0x7b,0x6f,0xfe,0xfc,0xf9,0xc,0xad,0xad,
+ 0xad,0x60,0x17,0x81,0xc2,0xeb,0xd6,0xad,0x5b,0xc,0xd3,0xa6,0x4d,0x63,0x30,0x32,
+ 0x32,0x62,0x58,0xbe,0x7c,0x39,0xdc,0x9f,0x0,0x1,0xc4,0x88,0x2d,0x6f,0xe6,0xe6,
+ 0xe6,0xfe,0x6f,0x6c,0x6c,0x4,0xc7,0x58,0x7e,0x7e,0x3e,0x98,0x66,0x63,0x63,0x3,
+ 0x7b,0x17,0x64,0x1,0x28,0x49,0x80,0x92,0x6,0xb2,0x41,0x20,0x0,0x10,0x40,0x18,
+ 0x2e,0x3,0xba,0x0,0x94,0xe7,0xc0,0x2e,0xb8,0x7f,0xff,0x3e,0xd8,0x65,0x3a,0x3a,
+ 0x3a,0xc,0xcb,0x96,0x2d,0x63,0x24,0x94,0x87,0x1,0x2,0x8,0x23,0xb,0xf5,0xf4,
+ 0xf4,0xfc,0x7,0x6,0xec,0xff,0xed,0xdb,0xb7,0xff,0x7,0x7a,0xe3,0x7f,0x5c,0x5c,
+ 0xdc,0x7f,0x7c,0x59,0xe,0x19,0x3,0x4,0x10,0xa,0x27,0x3d,0x3d,0xfd,0x3f,0x30,
+ 0x60,0xff,0x9f,0x38,0x71,0xe2,0xbf,0x9d,0x9d,0xdd,0xff,0x84,0x84,0x4,0xa2,0xd,
+ 0x2,0x61,0x80,0x0,0x42,0x9,0xb3,0xca,0xca,0xca,0xff,0xa0,0xf0,0x1,0x79,0xf,
+ 0x94,0xba,0xe7,0xcc,0x99,0xc3,0x48,0x4a,0x79,0x6,0x10,0x40,0x8c,0xd4,0x2c,0x1c,
+ 0x1,0x2,0xc,0x0,0x22,0x6,0xa9,0x7,0xeb,0xc8,0x20,0x9,0x0,0x0,0x0,0x0,
+ 0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/layer-vector.png
+ 0x0,0x0,0x3,0x57,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x13,0x0,0x0,0x0,0x10,0x8,0x6,0x0,0x0,0x0,0xf4,0xc4,0x44,0x62,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x2,0xe9,0x49,0x44,0x41,0x54,0x78,0xda,0x6c,
+ 0xca,0xa1,0xd,0x0,0x30,0x8,0x4,0xc0,0xaf,0x24,0x81,0x45,0xd9,0x8c,0xed,0x48,
+ 0x40,0x20,0x48,0xbe,0xb6,0xa2,0xa7,0xef,0x44,0x4,0xbb,0x1b,0x33,0x3,0x92,0xf8,
+ 0xd9,0x5d,0x64,0x26,0xaa,0xa,0xaa,0xa,0x11,0x81,0x99,0xc1,0xdd,0xcf,0xfb,0xae,
+ 0x0,0x62,0x79,0xf9,0xf2,0x25,0x83,0xbb,0xbb,0x3b,0x3,0x13,0x13,0x13,0x3,0x2e,
+ 0xf0,0xfb,0xf7,0x6f,0x86,0x6f,0xdf,0xbe,0x31,0x7c,0xfd,0xfa,0x95,0xe1,0xe9,0xd3,
+ 0xa7,0xc,0x20,0x3d,0x5e,0x5e,0x5e,0xc,0xf5,0xf5,0xf5,0xff,0x1b,0x1b,0x1b,0xe1,
+ 0x6,0x2,0x4,0x10,0x13,0x33,0x33,0x33,0xd8,0x20,0x10,0x66,0x64,0x64,0xc4,0x8a,
+ 0xd9,0xd8,0xd8,0xc0,0x2e,0x2,0xb9,0x46,0x52,0x52,0x12,0x6c,0xa0,0x8c,0x8c,0xc,
+ 0x43,0x62,0x62,0x22,0x43,0x75,0x75,0x35,0xdc,0x3b,0x0,0x1,0x4,0x76,0xe,0xb,
+ 0xb,0xb,0x3,0xc8,0x50,0x7c,0x18,0x64,0x20,0x37,0x37,0x37,0xd8,0xc0,0xc7,0x8f,
+ 0x1f,0x83,0x35,0x83,0xc,0x4c,0x4d,0x4d,0x65,0xa8,0xab,0xab,0x3,0x1b,0x8,0x10,
+ 0x40,0x2c,0x20,0x2,0xa4,0x18,0xe4,0x2,0x18,0xa8,0x6f,0x6c,0x66,0xa8,0xab,0xa9,
+ 0x2,0x8b,0x83,0xc0,0xaf,0x5f,0xbf,0x18,0x16,0xce,0x9b,0xc3,0x70,0x68,0xf7,0x16,
+ 0x6,0xa0,0x57,0x18,0x78,0x44,0x65,0x19,0x62,0x62,0x62,0xc0,0xde,0x16,0x17,0x17,
+ 0x67,0xe0,0xe3,0xe3,0x63,0x58,0xb1,0x62,0xc5,0x7f,0x80,0x0,0x2,0x1b,0xc6,0xca,
+ 0xca,0xa,0x37,0xe8,0xe8,0xd1,0x63,0xc,0x17,0x9f,0xb,0x32,0x2c,0x5a,0xb2,0x82,
+ 0x21,0x35,0x39,0x1e,0x1c,0x29,0x19,0x89,0x91,0xc,0xee,0xbc,0x97,0x18,0xd6,0x39,
+ 0xfe,0x60,0xf8,0xf6,0x9b,0x81,0x21,0x6f,0xdf,0x7d,0x6,0x25,0xf7,0x34,0x6,0x73,
+ 0x4b,0x6b,0xb0,0xfc,0xb3,0x67,0xcf,0xc0,0xe1,0x8,0x10,0x40,0x70,0x6f,0xc2,0xc,
+ 0x9c,0x34,0x77,0x1d,0x83,0xb2,0x5b,0x1b,0xc3,0xee,0xe3,0xf7,0x18,0xfe,0xfe,0xfd,
+ 0xcb,0x70,0xfc,0xf8,0x71,0x6,0xe5,0xbf,0x37,0x19,0x8a,0x4d,0x7f,0x30,0x8,0x72,
+ 0x32,0x30,0x48,0xf3,0x31,0x30,0xac,0xf0,0xfd,0xc8,0xb0,0x63,0xed,0x62,0x6,0x45,
+ 0x45,0x45,0xb0,0xcb,0xa4,0xa4,0xa4,0xc0,0xae,0x7,0x8,0x20,0x14,0x6f,0xf6,0x4d,
+ 0x9c,0xc6,0xc0,0xa9,0x57,0x4,0x64,0x33,0x31,0xf0,0x19,0x15,0x31,0x4c,0x98,0x32,
+ 0x93,0x81,0x8b,0xe5,0xf,0x83,0x87,0xec,0x47,0x94,0xd8,0x65,0x5,0xfa,0x5e,0x49,
+ 0xf0,0x1f,0x38,0x86,0xf9,0xf9,0xf9,0xc1,0x62,0xd7,0xae,0x5d,0x63,0x0,0x8,0x20,
+ 0xb0,0x61,0xa0,0x98,0x7c,0x1,0x74,0xe6,0xc1,0xb,0xef,0x19,0x64,0x5c,0x8d,0x18,
+ 0xe,0xaf,0xf1,0x61,0xf8,0x2c,0x7a,0x9b,0x61,0xff,0x97,0x37,0xc,0xfc,0xdf,0xd9,
+ 0x18,0xa2,0xfe,0x33,0x31,0xf8,0x6b,0xfc,0x83,0x1b,0x6,0x4a,0x8e,0x4f,0x3e,0xfe,
+ 0x7,0xc7,0x2c,0xc8,0x11,0xff,0xfe,0xfd,0x3,0x27,0x1f,0x80,0x0,0x62,0x81,0x29,
+ 0xa8,0xae,0x6d,0x4,0xaa,0x12,0x60,0x78,0xb1,0xaf,0x80,0xe1,0xfb,0xb7,0x2b,0xc,
+ 0x9f,0xd7,0x3c,0x4,0x8b,0x7f,0xfb,0xc3,0xc0,0xb0,0xd8,0x9a,0x81,0xc1,0xf5,0x2e,
+ 0x3,0x83,0x9b,0x12,0x3,0xc3,0x57,0x60,0x98,0xd5,0x1c,0xe6,0x66,0xb0,0x72,0xb,
+ 0x1,0xc7,0x2c,0xc8,0x20,0x58,0xe4,0x1,0x4,0x10,0xd8,0x30,0x10,0x67,0xe1,0xbc,
+ 0x59,0xf0,0x84,0xeb,0x93,0x74,0x99,0x61,0x1f,0xc3,0x43,0x6,0x98,0x8a,0x57,0x5b,
+ 0x19,0x18,0x92,0x5d,0x38,0x19,0xa4,0xce,0x88,0x30,0x70,0x72,0xf3,0x30,0x4,0x47,
+ 0xa7,0x30,0xc4,0x27,0x26,0x33,0xc0,0x7c,0x5,0xca,0x11,0x20,0x0,0x10,0x40,0x60,
+ 0xc3,0x40,0x69,0x8,0x14,0x2b,0x8c,0xb0,0x5c,0xc0,0x88,0x96,0x5,0x44,0x80,0xd8,
+ 0x56,0x88,0x61,0x5d,0xf9,0x31,0x6,0x21,0x21,0x21,0xb0,0x5a,0x64,0xc,0x8a,0x40,
+ 0x10,0x0,0x8,0x20,0xb8,0xcb,0x60,0x69,0xa,0x62,0x16,0x23,0xd6,0x6c,0x5,0xcb,
+ 0x29,0x90,0x70,0x43,0x18,0x6,0x3,0x0,0x1,0xc4,0x82,0xae,0x8,0x4,0xf8,0x98,
+ 0xf8,0x18,0x8c,0xa3,0x8c,0x51,0xc,0xfa,0xf6,0xe4,0x1b,0x3,0x17,0x17,0x17,0xd8,
+ 0x52,0x98,0x1,0x70,0xc3,0xa0,0x7c,0x80,0x0,0x62,0x1,0x5,0x20,0xc8,0x20,0x64,
+ 0x1b,0x56,0x2d,0x58,0x85,0xd5,0x65,0xb8,0x4a,0x15,0x50,0xae,0x0,0x99,0x3,0x10,
+ 0x40,0x60,0xc3,0x5c,0x5c,0x5c,0x18,0xee,0xdd,0xbb,0xc7,0xc0,0xce,0xce,0xce,0x40,
+ 0x2a,0xf8,0xf9,0xf3,0x27,0x83,0x92,0x92,0x12,0x83,0xb7,0xb7,0x37,0x3,0x40,0x80,
+ 0x1,0x0,0x51,0x26,0xb,0x0,0xd5,0xe8,0x78,0xaa,0x0,0x0,0x0,0x0,0x49,0x45,
+ 0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/magnify.png
+ 0x0,0x0,0x2,0xf8,
+ 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,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,0xd8,
+ 0xeb,0xf5,0x1c,0x14,0xaa,0x0,0x0,0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x6d,
+ 0x98,0x0,0x0,0x73,0x8e,0x0,0x0,0xea,0x48,0x0,0x0,0x86,0x0,0x0,0x0,0x77,
+ 0xef,0x0,0x0,0xd0,0xf0,0x0,0x0,0x32,0xf7,0x0,0x0,0x1c,0x74,0xb6,0xd2,0x6c,
+ 0xb,0x0,0x0,0x2,0x6e,0x49,0x44,0x41,0x54,0x78,0xda,0x62,0xfc,0xff,0xff,0x3f,
+ 0x3,0x8,0x2c,0x5c,0xb8,0xf0,0xff,0xa3,0x47,0x8f,0x18,0x9e,0x3c,0x79,0xc2,0xf0,
+ 0xfe,0xfd,0x7b,0x6,0x5e,0x5e,0x5e,0x6,0x23,0x23,0x23,0x86,0xec,0xec,0x6c,0x46,
+ 0x6,0x3c,0x0,0x20,0x80,0x18,0x41,0x6,0xcc,0x9c,0x39,0xf3,0xbf,0xa8,0xa8,0x28,
+ 0x83,0x82,0xbc,0x3c,0x83,0x98,0xb8,0x38,0xc3,0xb7,0x6f,0xdf,0x18,0xae,0x5f,0xbf,
+ 0xce,0xb0,0x61,0xc3,0x6,0x6,0x6e,0x6e,0x6e,0x86,0x29,0x53,0xa6,0xe0,0x34,0x4,
+ 0x20,0x80,0x98,0xd5,0xd4,0xd4,0xfe,0xf3,0xf3,0xf3,0x33,0x38,0x3b,0x3b,0x83,0x6d,
+ 0xfd,0xf9,0xf3,0x27,0xc3,0xef,0xdf,0xbf,0x19,0xb8,0x38,0x39,0x19,0x74,0x75,0x75,
+ 0x19,0x36,0x6f,0xde,0xcc,0xf0,0xee,0xdd,0xbb,0x6,0x73,0x73,0xf3,0x46,0x6c,0x6,
+ 0x0,0x4,0x10,0xd3,0x83,0x7,0xf,0x18,0x94,0x95,0x95,0xc1,0x9a,0xbe,0x7c,0xf9,
+ 0x2,0xb6,0xfd,0xfb,0xf7,0xef,0xc,0xdf,0x7f,0xfc,0x60,0xf8,0xfc,0xf9,0x33,0x83,
+ 0x95,0x95,0x15,0xc3,0xca,0x95,0x2b,0x71,0x7a,0x1,0x20,0x80,0x98,0x5e,0xbc,0x78,
+ 0xc1,0x20,0x22,0x22,0xc2,0xf0,0x1d,0xa8,0xf1,0x7,0x50,0xd3,0x4f,0x10,0x6,0xba,
+ 0x2,0xc4,0x6,0x19,0x24,0x20,0x20,0xc0,0x70,0xef,0xde,0x3d,0x9c,0x6,0x0,0x4,
+ 0x10,0xd3,0xdb,0xb7,0x6f,0x19,0xbe,0x1,0x6d,0x6,0x29,0x6,0x69,0xfc,0xf9,0xeb,
+ 0x17,0xc3,0x2f,0x20,0x66,0x65,0x65,0x65,0x50,0x51,0x52,0x2,0xbb,0xe8,0xef,0xdf,
+ 0xbf,0xc,0x77,0xee,0xdc,0xf9,0x8f,0xcd,0x0,0x80,0x0,0x62,0xe2,0xe2,0xe2,0x62,
+ 0xb8,0xa,0xc,0xb0,0xaf,0x5f,0xbf,0x82,0x31,0x48,0x3,0x3b,0x3b,0x3b,0x83,0x96,
+ 0x96,0x16,0x3,0x3,0x13,0x13,0x3,0x28,0x66,0xa4,0xa5,0xa5,0x19,0xfe,0xfd,0xfb,
+ 0x87,0xd5,0x5,0x0,0x1,0xc4,0x64,0x66,0x66,0x6,0xe,0xa8,0xcf,0x40,0x57,0x80,
+ 0xfc,0xfc,0xf1,0xe3,0x47,0x6,0x29,0x29,0x29,0x86,0xd3,0xa7,0x4f,0x33,0x6c,0xdf,
+ 0xbe,0x9d,0x61,0xd5,0xaa,0x55,0xc,0x51,0x51,0x51,0x40,0xb3,0x98,0xb0,0x1a,0x0,
+ 0x10,0x40,0x8c,0xcf,0x9e,0x3d,0xfb,0xdf,0xda,0xda,0xca,0xf0,0xf0,0xe1,0x43,0x6,
+ 0x73,0xa0,0x61,0x42,0xc2,0xc2,0x60,0x57,0x80,0x2,0x77,0xf5,0xea,0xd5,0x60,0xaf,
+ 0x81,0xbc,0xb4,0x72,0xc5,0xa,0x6,0xff,0x80,0x0,0x8c,0xe8,0x4,0x8,0x20,0x6,
+ 0x50,0x3a,0x0,0xe1,0x89,0x13,0x27,0xfe,0xb7,0xb3,0xb5,0xfd,0xf,0xb4,0xfd,0xbf,
+ 0x98,0x98,0xd8,0x7f,0x60,0x22,0xfa,0x5f,0x5b,0x5b,0xfb,0x1f,0x18,0x7d,0xff,0x81,
+ 0x5e,0x2,0xe3,0x1d,0x3b,0x76,0xfc,0x87,0xa9,0x87,0x61,0x80,0x0,0x62,0x84,0xa5,
+ 0x44,0x64,0x70,0xeb,0xd6,0x2d,0xb0,0xc2,0x3f,0x7f,0xfe,0x30,0xac,0x5b,0xbb,0x96,
+ 0x61,0xd7,0xee,0xdd,0x60,0x2f,0x81,0xc0,0xd6,0xad,0x5b,0x41,0x69,0x6,0xee,0x12,
+ 0x80,0x0,0x62,0xc1,0xe6,0x2f,0x60,0xe2,0x42,0x28,0x60,0x61,0x81,0xdb,0x70,0xe6,
+ 0xcc,0x19,0x6,0x6f,0x6f,0x6f,0x86,0x6d,0xdb,0xb6,0xfd,0x77,0x72,0x72,0x2,0xab,
+ 0x1,0x8,0x20,0x6,0x74,0x27,0xa1,0xe3,0xe7,0xcf,0x9f,0xff,0x7,0x45,0x61,0x73,
+ 0x73,0xf3,0x7f,0x1b,0x1b,0x1b,0xb8,0x77,0xe,0x1c,0x38,0x0,0x76,0x25,0x40,0x0,
+ 0x11,0x34,0x0,0x84,0x5f,0xbe,0x7c,0xf9,0x1f,0x98,0x98,0xfe,0x37,0x37,0x35,0x81,
+ 0xd,0xe1,0xe0,0xe0,0x0,0x87,0xd5,0xe3,0xc7,0x8f,0xff,0x3,0x4,0x10,0xb,0x3,
+ 0x11,0x0,0x18,0xa8,0x8c,0xc0,0x1c,0xfa,0x3f,0x3e,0x3e,0x9e,0x81,0x91,0x91,0x11,
+ 0x9c,0x26,0x40,0x49,0x1c,0x94,0x5e,0x0,0x2,0x8,0x6b,0x20,0xe2,0x2,0xc0,0x34,
+ 0xf2,0x1f,0x94,0x56,0x80,0x81,0xcc,0xa0,0xa2,0xa2,0xc2,0x0,0x74,0x9,0x3,0x40,
+ 0x80,0x1,0x0,0x84,0xd,0x67,0x87,0x48,0xae,0x8b,0x35,0x0,0x0,0x0,0x0,0x49,
+ 0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/pencil2.png
+ 0x0,0x0,0x2,0xb7,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x11,0x0,0x0,0x0,0x11,0x8,0x6,0x0,0x0,0x0,0x3b,0x6d,0x47,0xfa,
+ 0x0,0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13,
+ 0x1,0x0,0x9a,0x9c,0x18,0x0,0x0,0x2,0x69,0x49,0x44,0x41,0x54,0x38,0x8d,0xad,
+ 0xd0,0x4f,0x48,0x93,0x61,0x1c,0x7,0xf0,0xef,0xf3,0xbe,0xef,0xf6,0xce,0x25,0xd3,
+ 0x66,0xa1,0x23,0x45,0xc2,0x18,0x89,0x18,0xb,0x16,0x93,0x5,0x1e,0x92,0xba,0x78,
+ 0x48,0xc2,0x45,0xd,0xf4,0x20,0x76,0x91,0x6e,0x11,0xe4,0xc5,0x77,0xbb,0xf5,0x47,
+ 0xf2,0x10,0x48,0xb2,0x8,0xca,0xb4,0x7a,0x27,0x78,0xe8,0x10,0x1d,0xd5,0x83,0x7,
+ 0xc5,0xb2,0x43,0x3a,0x22,0xa7,0xaf,0x30,0x4d,0xa7,0xd9,0x74,0xbe,0x6f,0x7b,0xf7,
+ 0x3c,0x4f,0x87,0x98,0xe4,0x4c,0x51,0xe8,0x77,0x7d,0xbe,0xbf,0xf,0xbf,0xe7,0xb,
+ 0xfc,0x87,0x21,0x47,0x9,0x2f,0xd4,0xd7,0x73,0x0,0xe0,0xd5,0xd5,0x1b,0x5,0xa2,
+ 0x58,0x51,0xda,0xdb,0xbb,0x5,0x0,0xc2,0x51,0x80,0xd2,0xee,0x6e,0x14,0x5,0x83,
+ 0xb0,0xd9,0x6c,0xc5,0xa6,0xc5,0xf2,0x3c,0xf7,0x76,0x28,0x24,0x12,0x89,0xf0,0xbb,
+ 0x65,0x65,0x30,0xa6,0xa6,0x76,0xce,0x7f,0xb4,0xb0,0x10,0x98,0x9c,0x9c,0xb4,0x1f,
+ 0xa,0x19,0x7b,0x73,0x9d,0x6b,0x9a,0x86,0xc6,0xc6,0x46,0x3c,0x4e,0x24,0xf0,0x6b,
+ 0x66,0x6,0x0,0x30,0x35,0x3d,0xd,0x87,0xc3,0xe1,0x4,0x0,0xe9,0x20,0x60,0x7c,
+ 0xa8,0x95,0xd7,0x9d,0x71,0xe3,0x9b,0x51,0x8e,0x4c,0x26,0x3,0x0,0xa8,0xec,0xeb,
+ 0xc3,0x5,0x97,0xb,0x4f,0x86,0x87,0xb,0xdd,0x6e,0x77,0xfa,0xc0,0x4b,0xc6,0x87,
+ 0x5a,0x79,0xdd,0xd9,0x73,0x80,0xb9,0x89,0x2b,0x45,0xef,0xc1,0x18,0xc3,0xec,0xec,
+ 0x2c,0x0,0xa0,0x27,0x1a,0xb5,0x7a,0x3c,0x9e,0x74,0x2e,0xfb,0x4f,0x64,0x7,0xd0,
+ 0x57,0x91,0xd5,0x93,0x38,0x59,0x52,0x88,0xa6,0xa2,0x67,0x58,0x9a,0x98,0xd8,0x1e,
+ 0x19,0x19,0x71,0x79,0xbd,0x5e,0xf3,0xef,0xfc,0x1e,0x24,0x1f,0x0,0x80,0xf5,0xc4,
+ 0x67,0x34,0x77,0x26,0xf1,0x70,0x70,0xd0,0xe3,0xf3,0xf9,0x96,0xf3,0x77,0x76,0x75,
+ 0xa2,0xbd,0xa8,0xe5,0x15,0xfb,0x0,0x3d,0xd1,0xa8,0x35,0xff,0x82,0x5d,0x8,0x7,
+ 0xc8,0xe8,0xeb,0x1b,0xac,0xa2,0xd6,0xb,0xe8,0xc9,0x3d,0xc0,0x83,0x81,0x1,0xfb,
+ 0x7e,0xc0,0xce,0x77,0xee,0x37,0xe0,0xf4,0xe2,0xda,0x22,0x66,0xd6,0x4d,0x6c,0xaf,
+ 0x7f,0x45,0x46,0xdf,0xf8,0x3,0xdc,0x5b,0x5d,0x19,0x8b,0xc7,0x89,0xdf,0xef,0xd7,
+ 0xf7,0x3,0x0,0x40,0x8,0x4,0x20,0x66,0x8b,0x5,0x5f,0x53,0xf0,0x25,0xe6,0x3e,
+ 0xbe,0xc5,0x9c,0x54,0x83,0xad,0x1f,0x1a,0x9a,0x3b,0x93,0x18,0x8d,0xc7,0x5d,0x9c,
+ 0x73,0xa2,0x28,0x8a,0xa0,0x28,0x8a,0xa0,0xaa,0xaa,0xc8,0x39,0x17,0x54,0x55,0x15,
+ 0x15,0x45,0x91,0x38,0xe7,0x4,0x0,0x48,0xf7,0x4d,0xd7,0x89,0xfa,0xab,0x1,0xad,
+ 0xe6,0xf2,0xed,0x82,0xb9,0x4f,0xaf,0xd0,0xd1,0xde,0xf,0x0,0xbc,0xad,0xab,0xeb,
+ 0x56,0x2c,0x16,0xfb,0x22,0xcb,0xb2,0x2e,0x8a,0x22,0xa1,0x94,0x9a,0x92,0x24,0xa5,
+ 0x75,0x5d,0xcf,0xd8,0xed,0x76,0x58,0xad,0x56,0x9a,0x4e,0xa7,0x53,0xa1,0x50,0x48,
+ 0x97,0x2a,0xfd,0xde,0x3b,0x97,0xda,0x9e,0x16,0x8c,0xbf,0x2b,0x46,0x47,0x7b,0x3f,
+ 0x1a,0x5a,0x5a,0x54,0x6,0x18,0x9a,0xa6,0x9d,0xb7,0xd9,0x6c,0xe5,0x94,0xd2,0x35,
+ 0x0,0x59,0x51,0x14,0x53,0x86,0x61,0x2c,0x73,0xce,0x57,0x4,0x41,0x30,0x18,0x63,
+ 0x46,0xae,0xe,0x52,0x55,0x5,0x7e,0xed,0x62,0x25,0x8e,0x9d,0xa,0x7e,0x80,0x2c,
+ 0xc7,0x8,0x21,0xab,0x84,0x90,0x4,0xa5,0x34,0x5,0x20,0x5,0x60,0x8b,0x31,0x46,
+ 0x5,0x41,0xd8,0xb4,0x58,0x2c,0x3f,0x4d,0xd3,0xdc,0x74,0x38,0x1c,0xe6,0xfc,0xfc,
+ 0x3c,0x73,0x3a,0x9d,0x66,0x38,0x1c,0x66,0x84,0x73,0x2e,0x86,0x42,0xa1,0xe3,0x94,
+ 0xd2,0x12,0x59,0x96,0x8d,0x6c,0x36,0xfb,0x3d,0x1c,0xe,0x1b,0x7,0x15,0x99,0x3f,
+ 0xbf,0x1,0x62,0x93,0x23,0x58,0x29,0xc1,0x80,0xb5,0x0,0x0,0x0,0x0,0x49,0x45,
+ 0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/thinlines5.png
+ 0x0,0x0,0x1,0x55,
+ 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,0x2,0x0,0x0,0x0,0x90,0x91,0x68,0x36,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x0,0xe7,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0x3c,0xfa,0xe0,0x1d,0x3,0x71,0xe0,0xd5,0xa7,0xaf,0x77,0x9f,0xbf,0x5,0x8,0x20,
+ 0x26,0xe2,0x55,0xdf,0x7b,0xfe,0x16,0xc8,0x0,0x8,0x20,0x26,0xe2,0x55,0xff,0x7,
+ 0xb3,0x1,0x2,0x88,0x89,0x24,0xd5,0x40,0x0,0x10,0x40,0x4c,0x24,0xa9,0x6,0x2,
+ 0x80,0x0,0x62,0x22,0x49,0x35,0x10,0x0,0x4,0x10,0x13,0x49,0xaa,0x81,0x0,0x20,
+ 0x80,0xb0,0x6b,0xd8,0xb4,0x7e,0xed,0x9c,0x9,0xdd,0xff,0xb1,0x49,0x1,0x4,0x10,
+ 0x16,0xd,0x4f,0x5e,0xbd,0xf9,0xcf,0x23,0xac,0x65,0xe9,0x80,0xd5,0x2c,0x80,0x0,
+ 0x42,0xd7,0x70,0xee,0xfc,0xf9,0x4c,0x3f,0x47,0x41,0x9,0x69,0x71,0x39,0x25,0xac,
+ 0x1a,0x0,0x2,0x8,0x45,0xc3,0xd1,0xa3,0x47,0x3e,0x33,0x71,0x25,0x35,0x4e,0x64,
+ 0x65,0x63,0xc7,0xe5,0x37,0x80,0x0,0x42,0x68,0xb8,0xf7,0xf8,0x69,0x47,0x71,0xe6,
+ 0xfb,0x57,0xcf,0x25,0x14,0x54,0xf0,0x4,0x1d,0x40,0x0,0x31,0x42,0xd2,0xd2,0xee,
+ 0x9d,0xdb,0xff,0xf0,0x88,0x70,0xf3,0x9,0xe0,0x31,0x1b,0x2,0x0,0x2,0x88,0x9,
+ 0xe2,0xcb,0x99,0xed,0xf5,0x5f,0xde,0xbf,0x25,0xa8,0x1a,0x8,0x0,0x2,0x88,0x5,
+ 0x68,0xf6,0xe7,0xff,0xac,0x85,0xd3,0x56,0x32,0x31,0x33,0x13,0x93,0xae,0x0,0x2,
+ 0x88,0x69,0xc1,0xc4,0xae,0xbf,0x7f,0xfe,0x10,0xa9,0x1a,0x8,0x0,0x2,0xc,0x0,
+ 0xab,0xfd,0x5f,0x5c,0x31,0x31,0xef,0xaa,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,
+ 0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/layer-bitmap.png
+ 0x0,0x0,0x3,0x88,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x13,0x0,0x0,0x0,0x10,0x8,0x6,0x0,0x0,0x0,0xf4,0xc4,0x44,0x62,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x3,0x1a,0x49,0x44,0x41,0x54,0x78,0xda,0x6c,
+ 0xca,0xa1,0xd,0x0,0x30,0x8,0x4,0xc0,0xaf,0x24,0x81,0x45,0xd9,0x8c,0xed,0x48,
+ 0x40,0x20,0x48,0xbe,0xb6,0xa2,0xa7,0xef,0x44,0x4,0xbb,0x1b,0x33,0x3,0x92,0xf8,
+ 0xd9,0x5d,0x64,0x26,0xaa,0xa,0xaa,0xa,0x11,0x81,0x99,0xc1,0xdd,0xcf,0xfb,0xae,
+ 0x0,0x62,0x79,0xf9,0xf2,0x25,0x83,0xbb,0xbb,0x3b,0x3,0x13,0x13,0x13,0x3,0x2e,
+ 0xf0,0xfb,0xf7,0x6f,0x86,0x6f,0xdf,0xbe,0x31,0x7c,0xfd,0xfa,0x95,0xe1,0xe9,0xd3,
+ 0xa7,0xc,0x20,0x3d,0x5e,0x5e,0x5e,0xc,0xf5,0xf5,0xf5,0xff,0x1b,0x1b,0x1b,0xe1,
+ 0x6,0x2,0x4,0x10,0x13,0x33,0x33,0x33,0xd8,0x20,0x10,0x66,0x64,0x64,0x4,0xe3,
+ 0xd7,0xaf,0x5f,0x83,0x5d,0x2,0xe3,0xb3,0xb1,0xb1,0x81,0x5d,0x4,0x72,0x8d,0xa4,
+ 0xa4,0x24,0xd8,0x40,0x19,0x19,0x19,0x86,0xc4,0xc4,0x44,0x86,0xea,0xea,0x6a,0xb8,
+ 0x77,0x0,0x2,0x8,0xec,0x1c,0x16,0x16,0x16,0x6,0x90,0xa1,0x30,0x7c,0xf0,0xe0,
+ 0x41,0x86,0x85,0xb,0x17,0xa2,0x88,0x81,0xc,0xe4,0xe6,0xe6,0x6,0x1b,0xf8,0xf8,
+ 0xf1,0x63,0xb0,0x66,0x90,0x81,0xa9,0xa9,0xa9,0xc,0x75,0x75,0x75,0x60,0x3,0x1,
+ 0x2,0x88,0x5,0x44,0x80,0x14,0x83,0x5c,0x0,0x2,0x30,0x17,0x7d,0xfa,0xf4,0x89,
+ 0xe1,0xf8,0xf1,0xe3,0xc,0xb6,0xb6,0xb6,0xe0,0xb0,0x4,0x61,0x50,0xd8,0x3e,0x7b,
+ 0xf6,0x8c,0x81,0x9d,0x9d,0x9d,0x21,0x2c,0x2c,0xc,0xec,0x7d,0x71,0x71,0x71,0x6,
+ 0x3e,0x3e,0x3e,0x86,0x15,0x2b,0x56,0xfc,0x7,0x8,0x20,0xb0,0x61,0xac,0xac,0xac,
+ 0xf0,0xf0,0xb9,0x7c,0xf9,0x32,0x83,0x8e,0x8e,0xe,0x83,0xae,0xae,0x2e,0xc3,0xfc,
+ 0xf9,0xf3,0x19,0x1c,0x1d,0x1d,0xc1,0x6,0xdd,0xbf,0x7f,0x9f,0x61,0xca,0x94,0x29,
+ 0x60,0x17,0x82,0x34,0x4b,0x48,0x48,0x30,0x48,0x49,0x49,0x31,0xc8,0xcb,0xcb,0x83,
+ 0x2d,0x0,0x85,0x23,0x40,0x0,0xc1,0xbd,0x9,0x32,0x10,0x16,0xb8,0xfa,0xfa,0xfa,
+ 0xc,0x46,0x46,0x46,0xc,0x42,0x42,0x42,0xc,0xeb,0xd7,0xaf,0x7,0x1b,0x76,0xe6,
+ 0xcc,0x19,0x86,0xb2,0xb2,0x32,0x86,0xa6,0xa6,0x26,0x6,0x4f,0x4f,0x4f,0x86,0x9f,
+ 0x3f,0x7f,0x32,0x3c,0x7c,0xf8,0x90,0x41,0x58,0x58,0x18,0x6c,0xe8,0xaf,0x5f,0xbf,
+ 0x18,0x0,0x2,0x8,0xee,0xcd,0x77,0xef,0xde,0x31,0xec,0xdd,0xb7,0x97,0xc1,0xd7,
+ 0xd7,0x97,0x81,0x9b,0x87,0x9b,0xe1,0xe3,0xc7,0x8f,0x60,0x45,0xbd,0xbd,0xbd,0xc,
+ 0x57,0xaf,0x5e,0x5,0xab,0x51,0x56,0x56,0x6,0xc7,0xaa,0xaa,0xaa,0x2a,0x38,0xec,
+ 0x56,0xad,0x5a,0xc5,0xf0,0xfd,0xfb,0x77,0xb0,0x57,0xaf,0x5d,0xbb,0xc6,0x0,0x10,
+ 0x40,0x60,0xc3,0x40,0x69,0x6c,0xef,0xde,0xbd,0xc,0x46,0x86,0x46,0xc,0x5c,0x9c,
+ 0x5c,0xc,0xbf,0x7e,0xfe,0x62,0x58,0xb5,0x72,0x15,0xd8,0x65,0x6e,0x6e,0x6e,0xe0,
+ 0x70,0x54,0x50,0x50,0x60,0xd8,0xbe,0x7d,0x3b,0xd8,0x30,0x90,0x37,0x43,0x42,0x42,
+ 0xc0,0x86,0xa,0xa,0xa,0x82,0xd3,0x1d,0x28,0xfc,0x0,0x2,0x70,0x48,0x6,0x35,
+ 0x0,0x0,0x20,0x8,0x24,0x85,0x9,0x7c,0xd8,0xcc,0x44,0x46,0x31,0x84,0x4f,0x3,
+ 0xe9,0x1c,0xf2,0x87,0xc1,0x8d,0xf,0xe3,0x2d,0xcc,0xc,0x55,0x85,0x88,0xc0,0xcc,
+ 0xa0,0xbb,0xa1,0xaa,0x10,0x91,0xe7,0xe7,0xee,0xd8,0x5d,0x64,0xe6,0x1b,0x79,0x1f,
+ 0xb6,0x22,0x33,0x4e,0xa6,0x4e,0x0,0x1,0x4,0x36,0xc,0x64,0xb2,0xb1,0xb1,0x31,
+ 0x83,0xa9,0xa9,0x29,0x43,0x4e,0x4e,0xe,0xc3,0xb1,0x63,0xc7,0x18,0x96,0x2f,0x5f,
+ 0xce,0x50,0x5b,0x5b,0xb,0xe,0xcf,0x3f,0x7f,0x7e,0x83,0xd5,0x80,0xc2,0xee,0xec,
+ 0xd9,0xb3,0x60,0xef,0x82,0x2c,0xce,0xcf,0xcf,0x7,0x47,0x8,0x2c,0xc1,0x3,0x4,
+ 0x10,0xd8,0x30,0x90,0x0,0x48,0x21,0x23,0x54,0x10,0x14,0xd8,0x7a,0xc0,0x48,0x10,
+ 0x7,0xc6,0x18,0x18,0x20,0x25,0xd,0x51,0x51,0x51,0x70,0x58,0x2a,0x29,0x29,0x31,
+ 0xc8,0xca,0xca,0x82,0xd,0x2,0x59,0x8,0x2,0x0,0x1,0x4,0x26,0x41,0xe9,0xa,
+ 0x14,0xc0,0x30,0x0,0xf2,0x22,0xc8,0xe9,0x8f,0x1f,0x3d,0x2,0x87,0xf,0x28,0x5c,
+ 0xf8,0xf9,0xf9,0xc1,0x69,0xf,0xe4,0x2a,0x50,0x6c,0x82,0xc,0x80,0xa5,0x3f,0x18,
+ 0x0,0x8,0x20,0x78,0x98,0x21,0xe7,0xcd,0x19,0x33,0x66,0x30,0x3c,0x79,0xf2,0x4,
+ 0x9c,0x4c,0xde,0xbc,0x79,0x3,0x8e,0xe9,0x17,0x2f,0x5e,0x80,0x2d,0x5,0x25,0x21,
+ 0x10,0x1b,0x14,0x56,0x70,0xc3,0xa0,0x6,0x2,0x4,0x10,0xb,0x28,0x50,0x41,0x6,
+ 0x21,0xdb,0xc0,0xc5,0xc5,0xc5,0xa0,0xa6,0xa6,0x6,0xc6,0xc8,0x0,0xa6,0x6,0xbd,
+ 0x74,0x1,0x66,0x70,0x70,0xe4,0x0,0x4,0x10,0xd8,0x30,0x17,0x17,0x17,0x86,0x7b,
+ 0xf7,0xee,0x81,0xb3,0x9,0xa9,0x0,0x14,0x1c,0xa0,0xf0,0xf3,0xf6,0xf6,0x66,0x0,
+ 0x8,0x30,0x0,0xe7,0x1c,0x4b,0xb1,0xf9,0xa8,0x4c,0x2c,0x0,0x0,0x0,0x0,0x49,
+ 0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/onionInbetween.png
+ 0x0,0x0,0x4,0xe1,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x18,0x0,0x0,0x0,0x15,0x8,0x6,0x0,0x0,0x0,0x5c,0xe9,0x2e,0x26,
+ 0x0,0x0,0x0,0x1,0x73,0x52,0x47,0x42,0x0,0xae,0xce,0x1c,0xe9,0x0,0x0,0x0,
+ 0x6,0x62,0x4b,0x47,0x44,0x0,0xff,0x0,0xff,0x0,0xff,0xa0,0xbd,0xa7,0x93,0x0,
+ 0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13,0x1,
+ 0x0,0x9a,0x9c,0x18,0x0,0x0,0x0,0x7,0x74,0x49,0x4d,0x45,0x7,0xd9,0x9,0x19,
+ 0x1,0xc,0x1,0x3,0x94,0x88,0x8e,0x0,0x0,0x4,0x61,0x49,0x44,0x41,0x54,0x38,
+ 0xcb,0x9d,0x55,0x6d,0x4c,0x5b,0x55,0x18,0x7e,0xef,0xb9,0x97,0x7e,0x42,0x4b,0xb9,
+ 0x77,0xed,0x44,0xbe,0x9,0x84,0xaf,0x4e,0x67,0xc8,0x4,0x29,0x3,0xf7,0xc3,0xe1,
+ 0x20,0x93,0xa0,0x21,0x31,0xe2,0x28,0xc1,0x55,0x9c,0x86,0x8c,0x18,0x13,0xd0,0x40,
+ 0x32,0x7f,0xf8,0x43,0x8d,0xcb,0x6c,0x50,0x54,0x74,0x45,0x92,0x89,0xa9,0x21,0xa4,
+ 0xf2,0x47,0x32,0xc,0x2b,0xd9,0xe6,0xf8,0x30,0xc6,0x40,0x50,0x2c,0x30,0xb,0x3,
+ 0x4a,0xf9,0x68,0x29,0xed,0xe5,0x72,0xef,0x3d,0xf5,0xc7,0x18,0x94,0x8f,0xcd,0xea,
+ 0xfb,0xeb,0x3d,0x1f,0xef,0xf3,0xbc,0xe7,0x7d,0xde,0x73,0xe,0x9,0xf,0xb1,0xc6,
+ 0xc6,0xc6,0x4,0xa7,0xd3,0x99,0x67,0x30,0x18,0xa4,0x3e,0x9f,0xaf,0x30,0x2e,0x2e,
+ 0xee,0x75,0xa3,0xb1,0xf6,0xfc,0xc2,0xc2,0x7c,0x16,0xcb,0xb2,0x4e,0x5d,0x7c,0xda,
+ 0x57,0xb2,0xc8,0xa8,0x37,0xea,0x2f,0xd4,0x8d,0x39,0x9d,0xce,0x1a,0x83,0xc1,0xa0,
+ 0xd4,0x68,0x34,0x17,0x48,0x92,0xd4,0x1a,0xc,0x6,0x39,0xc7,0x71,0xa7,0xbc,0x5e,
+ 0xef,0xef,0x68,0x3f,0xf0,0xc8,0xc8,0x8,0xdd,0xde,0xde,0x7e,0xd4,0x62,0xb1,0x1c,
+ 0xcf,0xce,0xce,0x9e,0x73,0x38,0x66,0xce,0x66,0x64,0x64,0xbf,0xd7,0xd1,0xf1,0x7d,
+ 0x54,0x75,0xf5,0xf9,0x15,0x96,0xf,0x9e,0x7a,0xf2,0x64,0xd9,0x37,0x4d,0x9f,0x74,
+ 0x46,0x67,0x66,0xe6,0x88,0x16,0x8b,0xe5,0xa5,0xf2,0xf2,0xf2,0xbb,0xe9,0xe9,0xe9,
+ 0x2a,0x87,0xc3,0x51,0xa8,0xd7,0xeb,0x27,0xd5,0x6a,0x35,0xb7,0xba,0xba,0x9a,0xa,
+ 0x0,0x40,0x85,0x82,0xd7,0xd5,0xd5,0x25,0x57,0x54,0x54,0xa4,0xeb,0xf5,0xfa,0x59,
+ 0x9a,0xa6,0xb1,0x54,0xaa,0xf8,0xbc,0xa1,0xe1,0xed,0x75,0x9d,0x2e,0xd6,0x77,0xc3,
+ 0x7e,0xe3,0xe8,0x4f,0x3f,0xf,0x3c,0x71,0xb6,0xe6,0x9d,0xcd,0xb8,0xf8,0x84,0x7b,
+ 0x7d,0xdd,0x96,0xd8,0xd,0x9f,0xd7,0x53,0x54,0x54,0x74,0x37,0x31,0x31,0xf1,0x9c,
+ 0xdd,0x6e,0xff,0x31,0x32,0x32,0xd2,0xd3,0xdb,0xdb,0x7b,0xa2,0xb2,0xb2,0xf2,0xd6,
+ 0x3,0x4c,0x12,0x0,0xa0,0xbb,0xbb,0x5b,0x3b,0x3c,0x3c,0x9c,0xb7,0xb8,0xb8,0x28,
+ 0x6d,0x6d,0x6d,0xbd,0x37,0x31,0xf1,0xc7,0x7,0x6,0x43,0x71,0x59,0x53,0x53,0xb3,
+ 0x9f,0x65,0xb9,0x4d,0x73,0xdb,0x67,0x4f,0x11,0xaa,0x58,0xed,0x99,0x4a,0x23,0x8c,
+ 0xc,0xf6,0xc9,0xd9,0x80,0x9f,0x7b,0xf1,0xe5,0xea,0xd,0x15,0xf2,0xa7,0x18,0xa,
+ 0x9e,0x91,0x9b,0x4c,0x26,0x77,0x4e,0x4e,0x8e,0x4a,0xa3,0xd1,0x64,0x15,0x14,0x14,
+ 0xfc,0x6a,0xb5,0x5a,0x67,0x27,0x27,0x27,0xf5,0x3c,0xcf,0xf7,0x53,0x9d,0x9d,0x9d,
+ 0x3a,0xa3,0xd1,0x58,0x32,0x35,0x35,0x25,0x65,0x59,0xd6,0x5f,0x55,0xf5,0xea,0x97,
+ 0x97,0x2f,0x9b,0x97,0x19,0x46,0xeb,0x6d,0xb9,0xd4,0x92,0xb6,0xba,0x21,0x2a,0x9e,
+ 0xaf,0x6a,0xa0,0x34,0xd1,0x51,0xfc,0xd5,0x2b,0xef,0xab,0x3f,0xfe,0xe8,0x43,0x90,
+ 0xc8,0x14,0x31,0x5f,0x7f,0xd1,0x1a,0xf5,0x9a,0xf1,0x15,0xe2,0x58,0x4e,0xb6,0x1a,
+ 0x0,0xd4,0x0,0x30,0x86,0x31,0x26,0x43,0xa,0x42,0x1,0x0,0xa0,0xf1,0xf1,0x71,
+ 0x69,0x72,0x72,0xf2,0x18,0xc3,0x30,0xab,0x6e,0xb7,0x5b,0x52,0x5c,0xfc,0x6c,0x80,
+ 0x61,0xb4,0x3c,0x0,0x80,0x9f,0xc3,0xca,0x17,0x8c,0x17,0x79,0x99,0x42,0x11,0x64,
+ 0xfd,0x1b,0xc4,0x89,0x93,0xa7,0xd9,0x20,0x92,0xf0,0x81,0x40,0x80,0xc8,0x2b,0x28,
+ 0xdc,0xa4,0xa8,0x8,0x11,0xfe,0xc5,0x10,0x0,0xc0,0x5e,0xe6,0x5d,0xdd,0x29,0xb4,
+ 0x47,0x22,0x10,0x45,0x81,0xd8,0xf1,0x5,0x91,0x80,0x30,0xc,0x1d,0x9c,0xa,0xee,
+ 0x4,0xe2,0x7d,0x2b,0x4,0x10,0xc1,0x1d,0x3f,0x2c,0xf8,0x6d,0x2,0x51,0xc,0x2f,
+ 0x9b,0xd0,0x7d,0x22,0xc6,0xe1,0x13,0x50,0x14,0x85,0xb7,0x1,0x1e,0xb9,0x99,0xa4,
+ 0xa8,0x9d,0x13,0x50,0x24,0x19,0xc,0x9b,0x0,0x63,0x8c,0x0,0x0,0x4,0x41,0x40,
+ 0x8,0xa1,0x87,0x6,0x62,0xbc,0x7b,0x2,0x8c,0xf1,0xff,0xd3,0x0,0x21,0x14,0xe2,
+ 0x1f,0x16,0x12,0x84,0xff,0x62,0xe8,0xbe,0x60,0x44,0xf0,0xf0,0x8c,0xf7,0x89,0xbc,
+ 0x47,0x59,0x22,0x7c,0x2,0x84,0x90,0x18,0x96,0x6,0xe4,0xae,0x6,0x24,0x75,0x50,
+ 0x3,0x8a,0xa2,0xf8,0x90,0x4a,0x6c,0x1d,0x28,0x91,0x20,0x8,0x88,0x20,0x76,0xa7,
+ 0xb8,0xad,0x2d,0xf6,0x40,0x81,0x82,0x87,0xa6,0xde,0x1f,0xe2,0x7f,0xf7,0x48,0xd,
+ 0x8,0xe2,0x7e,0xfb,0xf3,0xbc,0x38,0x87,0x83,0x62,0x4,0xb7,0x19,0x90,0x93,0x88,
+ 0x14,0x79,0x7e,0x8b,0x5c,0x72,0xb9,0x28,0x89,0x44,0xc2,0x2,0x0,0xac,0x7b,0xd6,
+ 0x90,0x28,0xf0,0x0,0x0,0xfd,0x3,0x3,0x3,0xb1,0x3d,0x3d,0x3d,0xcf,0x75,0x75,
+ 0x75,0xfd,0x52,0x58,0x58,0x98,0x65,0xb3,0xd9,0xce,0xc9,0xe5,0x72,0xd7,0x1,0x2,
+ 0x8c,0x31,0x10,0x4,0x81,0x78,0x5e,0x9c,0x5b,0x5e,0x76,0xab,0x82,0x38,0x88,0xa4,
+ 0x32,0x65,0x60,0x6d,0x6d,0x4d,0x74,0xb9,0x5c,0x9c,0x44,0xa6,0x9c,0x91,0x4a,0xa5,
+ 0xec,0xec,0xd4,0x84,0x64,0x6b,0x63,0x65,0x25,0x2b,0x33,0xc3,0x6c,0xb7,0xdb,0x53,
+ 0x3c,0x1e,0x8f,0x96,0x61,0x98,0xb7,0x24,0x12,0x89,0x75,0x69,0x69,0x49,0x6b,0x32,
+ 0x99,0xda,0xdc,0x6e,0xb7,0xf9,0xc0,0x73,0x2d,0x8,0x2,0x62,0x59,0x6e,0x75,0x69,
+ 0xc9,0xa5,0x96,0xc9,0x64,0x3c,0x16,0x4,0x71,0xca,0xf1,0x17,0x52,0x44,0x33,0x93,
+ 0xaa,0x18,0x2d,0x8c,0x8d,0xde,0xa2,0xff,0xfc,0xed,0x36,0xa4,0x25,0xc7,0xdf,0x1c,
+ 0xbd,0x73,0xb3,0x6f,0x70,0x70,0x30,0x9f,0x61,0x98,0x8d,0x8c,0x8c,0x8c,0x8e,0xb2,
+ 0xb2,0x32,0x2a,0x29,0x29,0xc9,0x6b,0x36,0x9b,0x27,0x72,0x73,0x73,0x17,0xe,0xeb,
+ 0xa2,0x3b,0x26,0x93,0x69,0xde,0xe3,0xf1,0x44,0x29,0x95,0x8a,0xcd,0xf6,0xf6,0xb6,
+ 0x88,0x99,0xbf,0x67,0x7c,0xf4,0xe3,0x29,0xa3,0x14,0x15,0xe1,0xbb,0xfe,0x43,0x7b,
+ 0xd4,0xf8,0xd0,0xf5,0xd1,0xb2,0x33,0xa7,0x2b,0x9b,0x9b,0x9b,0x6f,0xdb,0x6c,0xb6,
+ 0xe3,0x1e,0x8f,0xa7,0xb7,0xa6,0xa6,0xc6,0x96,0x9f,0x9f,0xff,0x58,0x5e,0x5e,0xde,
+ 0xbc,0xd5,0x6a,0x1d,0xd,0x5,0xdf,0x21,0xf0,0xf9,0x7c,0x91,0x9,0x9,0x9,0xd9,
+ 0x32,0x99,0x8c,0xe3,0xb8,0x4d,0x5f,0x6d,0x6d,0x75,0xc4,0xb5,0x6b,0xdf,0x5e,0x22,
+ 0x48,0x89,0x63,0x6c,0x68,0x40,0x61,0x7e,0xb7,0x5a,0x50,0x45,0xe0,0x16,0x2,0x8b,
+ 0x43,0xa9,0xa9,0xa9,0x25,0x1a,0x8d,0xc6,0xcb,0xf3,0x7c,0x5f,0x7d,0x7d,0xbd,0x52,
+ 0xa7,0xd3,0xad,0x4f,0x4f,0x4f,0x77,0x99,0xcd,0xe6,0x89,0x43,0x5b,0xaf,0xb4,0xb4,
+ 0x34,0x8b,0xa6,0xe9,0xca,0xed,0xe1,0xb1,0x23,0x47,0xb4,0x57,0x1e,0x7c,0x44,0x91,
+ 0xd1,0x31,0x23,0xb4,0x2e,0xf6,0x4d,0x0,0x20,0x4a,0x4b,0x4b,0x4b,0x68,0x9a,0xfe,
+ 0x74,0x3b,0xe6,0x69,0x9a,0xa6,0x2f,0x86,0x73,0xf,0xfe,0x1,0xbd,0xce,0xdd,0xde,
+ 0x81,0x4d,0xf3,0x69,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+
+ // /home/matthew/pencil_dev/icons/house.png
+ 0x0,0x0,0x0,0xb9,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x14,0x0,0x0,0x0,0x14,0x8,0x3,0x0,0x0,0x0,0xba,0x57,0xed,0x3f,
+ 0x0,0x0,0x0,0x18,0x50,0x4c,0x54,0x45,0xff,0xff,0xff,0x0,0x33,0x66,0xcc,0xcc,
+ 0xff,0x66,0x66,0x99,0x99,0x99,0xcc,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+ 0x3e,0x91,0x33,0xdf,0x0,0x0,0x0,0x5c,0x49,0x44,0x41,0x54,0x18,0x95,0x6d,0xd0,
+ 0x41,0x12,0x0,0x11,0xc,0x44,0x51,0x5f,0xdc,0xff,0xcc,0x83,0x4,0xd1,0x26,0x2b,
+ 0xf5,0xaa,0x91,0xea,0x52,0xf2,0x40,0xd1,0x81,0x5a,0x79,0x49,0xd0,0xe9,0xd2,0x4d,
+ 0x9,0xb1,0x83,0x4b,0x31,0x33,0x8d,0xe,0xd3,0xe8,0x34,0x89,0xf2,0xe0,0x54,0xbb,
+ 0x95,0xb8,0x9e,0x5e,0x85,0xb6,0x90,0x58,0xa0,0x53,0x13,0x1c,0xc4,0x46,0x73,0x1c,
+ 0xa9,0xc0,0xf3,0x93,0x63,0xd4,0x17,0x5b,0x39,0xe6,0x42,0x1c,0xa5,0xe4,0xce,0xfc,
+ 0xf6,0xbe,0x8f,0x1f,0x96,0xff,0x2,0x1c,0xb4,0x2d,0xab,0xd7,0x0,0x0,0x0,0x0,
+ 0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/hand.png
+ 0x0,0x0,0x3,0x86,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x11,0x0,0x0,0x0,0x11,0x8,0x6,0x0,0x0,0x0,0x3b,0x6d,0x47,0xfa,
+ 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,0xd8,
+ 0xeb,0xf5,0x1c,0x14,0xaa,0x0,0x0,0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x6d,
+ 0x98,0x0,0x0,0x73,0x8e,0x0,0x0,0xea,0x48,0x0,0x0,0x86,0x0,0x0,0x0,0x77,
+ 0xef,0x0,0x0,0xd0,0xf0,0x0,0x0,0x32,0xf7,0x0,0x0,0x1c,0x74,0xb6,0xd2,0x6c,
+ 0xb,0x0,0x0,0x2,0xfc,0x49,0x44,0x41,0x54,0x78,0xda,0x62,0x64,0x40,0x0,0xe,
+ 0x20,0x16,0x84,0xb2,0x7f,0x0,0xb1,0x54,0x75,0x75,0xf5,0x15,0x16,0x16,0x16,0x86,
+ 0xc6,0xc6,0x46,0x13,0x20,0xff,0x3d,0x10,0x7f,0x87,0xd2,0x3f,0x90,0xf4,0x31,0x0,
+ 0x4,0x10,0xb2,0x1,0xda,0xb5,0xb5,0xb5,0xff,0xfb,0xfb,0xfb,0xff,0x3,0xd9,0xae,
+ 0xb3,0x67,0xcf,0xfe,0xf,0x2,0xcf,0x9f,0x3f,0xff,0xdf,0xd1,0xd1,0xf1,0x7f,0xc1,
+ 0x82,0x5,0xff,0x81,0x86,0x82,0xe4,0xb4,0xa1,0xea,0xe1,0x0,0x20,0x80,0x60,0x48,
+ 0xb2,0xa6,0xa6,0x6,0xac,0xe9,0xc7,0x8f,0x1f,0xff,0xe7,0xcf,0x9f,0xff,0x3f,0x2f,
+ 0x2f,0xf,0xcc,0xff,0xfb,0xf7,0xef,0xff,0xb0,0xb0,0x30,0x30,0xfb,0xe2,0xc5,0x8b,
+ 0xff,0x83,0x83,0x83,0x41,0x6,0x19,0x83,0xf4,0xc0,0xc,0x3,0x8,0x20,0x26,0x98,
+ 0x29,0xf2,0xf2,0xf2,0x60,0x9a,0x9d,0x9d,0x9d,0x41,0x54,0x54,0x94,0xe1,0xd3,0xa7,
+ 0x4f,0x70,0x3b,0x5e,0xbc,0x78,0x1,0x57,0xf3,0xf6,0xed,0x5b,0x86,0xf6,0xf6,0xf6,
+ 0x33,0x4d,0x4d,0x4d,0xcf,0x80,0x42,0xca,0x20,0x83,0x0,0x2,0x8,0xd9,0x3b,0xc6,
+ 0x27,0x4f,0x9e,0x4,0xdb,0xf8,0xef,0xdf,0xbf,0xff,0xe,0xe,0xe,0x60,0xf6,0xaf,
+ 0x5f,0xbf,0xfe,0x5b,0x58,0x58,0x80,0xd9,0x6f,0xde,0xbc,0xf9,0x6f,0x63,0x63,0xf3,
+ 0x7f,0xc7,0x8e,0x1d,0xff,0x4f,0x9f,0x3e,0xfd,0xdf,0xcb,0xcb,0xb,0xe4,0x2a,0x49,
+ 0x80,0x0,0x62,0x41,0xa,0x50,0xce,0xa7,0x4f,0x9f,0x82,0x4d,0x64,0x64,0x64,0x64,
+ 0xf0,0xf6,0xf6,0x6,0xb3,0xff,0xfc,0xf9,0xc3,0x0,0xd4,0xcf,0x0,0xf4,0x16,0x3,
+ 0xd0,0x40,0x30,0x1b,0x68,0x10,0xc3,0x87,0xf,0x1f,0xc0,0x18,0xa4,0xf,0x20,0x80,
+ 0x40,0x86,0x28,0x3,0xfd,0x7c,0x85,0x95,0x95,0x95,0xe1,0xfd,0xfb,0xf7,0xc,0x87,
+ 0xf,0x1f,0x66,0xb0,0xb5,0xb5,0x65,0x8,0xc,0xc,0x4,0x6b,0x0,0xba,0x8a,0x21,
+ 0x20,0x20,0x0,0x4c,0x83,0x34,0x59,0x5b,0x5b,0x83,0xd9,0xbf,0x7f,0xff,0x6,0xcb,
+ 0x83,0x0,0x40,0x0,0x1e,0xc8,0xd0,0x6,0x60,0x28,0x84,0x82,0x9d,0xa5,0x8a,0xd,
+ 0x58,0xa,0xcb,0x4e,0xec,0xc0,0x26,0x68,0x34,0x8a,0x90,0xa0,0xde,0x6f,0x2b,0xea,
+ 0x2f,0x97,0xcb,0x5d,0x22,0xf2,0xa5,0x76,0x37,0x88,0x8,0xaa,0xfa,0xf,0x7d,0x40,
+ 0xec,0x2e,0x22,0x2,0x33,0x83,0xcc,0x84,0xbb,0xa3,0xaa,0x60,0x66,0x60,0xe6,0xd7,
+ 0x72,0x1f,0x1,0xc4,0x4,0x4a,0x7,0x20,0x93,0xb9,0xb9,0xb9,0x19,0xb6,0x6d,0xdb,
+ 0xc6,0x0,0x8c,0x1d,0xb0,0x17,0x40,0x4e,0x7,0xd1,0x20,0x2c,0x2e,0x2e,0xe,0x16,
+ 0x67,0x66,0x66,0x66,0x50,0x56,0x56,0x66,0xb8,0x72,0xe5,0xa,0xc3,0x99,0x33,0x67,
+ 0x18,0x2c,0x2d,0x2d,0x41,0xee,0xf8,0xe,0x10,0x40,0x20,0x42,0x1b,0x14,0xff,0x20,
+ 0x97,0x80,0x6c,0xfe,0xfe,0xfd,0x3b,0x18,0x83,0xf8,0xc0,0x18,0x2,0x7,0xe6,0xb3,
+ 0x67,0xcf,0xfe,0xdf,0xbb,0x77,0xef,0xff,0xd5,0xab,0x57,0xff,0x9f,0x3a,0x75,0xea,
+ 0xff,0xba,0x75,0xeb,0xfe,0x9b,0x99,0x99,0xc1,0xa2,0x9a,0x3,0x20,0x80,0x40,0x61,
+ 0x72,0xb7,0xb5,0xb5,0x55,0x87,0x83,0x83,0xe3,0x4a,0x51,0x51,0x11,0xd8,0xaf,0xa0,
+ 0x40,0x4,0xb9,0x0,0xc4,0x6,0x1a,0xc8,0x0,0xf4,0x12,0x18,0x83,0xf8,0xa0,0x28,
+ 0xbe,0x76,0xed,0x1a,0x98,0xf,0x4,0xa0,0x68,0xfe,0x1,0x10,0x40,0xcc,0xa0,0x8,
+ 0x0,0xe2,0xcf,0xfb,0xf7,0xef,0xdf,0xc0,0xc7,0xc7,0x97,0x6,0xc,0x17,0x6,0xa0,
+ 0xff,0xc1,0x9a,0x41,0xf4,0xd7,0xaf,0x5f,0xc1,0x5e,0x1,0x61,0x10,0xfb,0xfe,0xfd,
+ 0xfb,0xc,0x6b,0xd7,0xae,0x5,0x79,0x7,0x94,0x15,0x1e,0x81,0xf4,0x3,0x4,0x10,
+ 0xb,0x52,0x5e,0x79,0x6,0x74,0x32,0x3,0x30,0x10,0x19,0x84,0x85,0x85,0xc1,0xae,
+ 0x1,0xd9,0xc,0xa,0x1b,0x58,0xf8,0x80,0xc,0x6,0x66,0x3,0xb0,0x81,0x30,0x57,
+ 0x80,0x18,0x0,0x1,0xc4,0x8c,0x94,0xf4,0xff,0x9c,0x3d,0x7b,0x76,0x5,0x50,0x63,
+ 0x96,0x82,0x82,0x2,0x38,0xfa,0x60,0x86,0xc0,0x68,0x90,0x4b,0x66,0xce,0x9c,0xc9,
+ 0x70,0xe9,0xd2,0x25,0xb8,0x2b,0x40,0x1a,0x1,0x2,0x88,0x5,0xc9,0x10,0x90,0xa9,
+ 0x77,0x97,0x2d,0x5b,0x6,0x52,0x70,0x26,0x36,0x36,0x16,0x1c,0x6b,0xb0,0xf0,0x1,
+ 0x6,0x34,0xc3,0x83,0x7,0xf,0x18,0x5e,0xbf,0x7e,0xcd,0x80,0x9e,0x93,0x1,0x2,
+ 0x88,0x9,0x2d,0x23,0x82,0xbd,0x5,0xd2,0x0,0xb2,0x15,0xe4,0x7c,0x90,0xd3,0x41,
+ 0xae,0x0,0xc6,0x12,0xc3,0xb9,0x73,0xe7,0xc0,0x89,0xd,0x16,0xad,0x30,0x0,0x10,
+ 0x40,0x8c,0x38,0x8a,0x5,0x70,0x36,0x60,0xc0,0xe,0x30,0xca,0x14,0x80,0x0,0x3,
+ 0x0,0x2f,0x4f,0xf3,0xc6,0xbf,0xe7,0x77,0xeb,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,
+ 0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/bucket.png
+ 0x0,0x0,0x7,0x74,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x16,0x0,0x0,0x0,0x18,0x8,0x6,0x0,0x0,0x0,0xfe,0xbe,0xd,0x4b,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x7,0x6,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0xdc,0xb5,0x6b,0x17,0x3,0x3a,0x60,0x64,0x64,0x64,0xf8,0xfd,0xfb,0xb7,0xce,0xde,
+ 0xbd,0x7b,0x4f,0x99,0x99,0x99,0x95,0x2b,0x2b,0x2b,0x4f,0x7e,0xf5,0xea,0x15,0xc3,
+ 0xd3,0xa7,0x4f,0x19,0x78,0x79,0x79,0xc1,0xf2,0xcc,0xcc,0xcc,0xbc,0x77,0xef,0xde,
+ 0x5d,0x76,0xef,0xfe,0x7d,0x57,0x5d,0x1d,0x9d,0x3c,0x1d,0x1d,0x9d,0x59,0x7c,0x7c,
+ 0x7c,0x70,0x33,0x0,0x2,0x88,0x31,0x21,0x21,0x1,0xc3,0x60,0x26,0x26,0x26,0x86,
+ 0x77,0xef,0xde,0x55,0xea,0xe9,0xe9,0x59,0x5f,0xbe,0x7c,0x59,0xcc,0xd0,0xd0,0xb0,
+ 0x59,0x46,0x46,0x66,0x33,0x3b,0x3b,0x3b,0x3,0x23,0x13,0x93,0xd3,0xc9,0x13,0x27,
+ 0x52,0xdf,0xbf,0x7f,0xef,0x65,0x6c,0x6c,0xcc,0x27,0x2d,0x2b,0xcb,0xb0,0x7d,0xe7,
+ 0xce,0xff,0xca,0xf2,0xf2,0xb3,0x83,0x83,0x82,0x72,0x7f,0xfc,0xfc,0xf9,0xb,0x64,
+ 0x6,0x40,0x0,0xb1,0x58,0x5a,0x5a,0x62,0xb8,0x16,0x68,0x0,0xf3,0xe9,0xd3,0xa7,
+ 0xd,0x35,0x35,0x35,0x63,0x81,0x16,0xe4,0x9d,0x38,0x71,0x22,0xd6,0xd9,0xd9,0xf9,
+ 0xfa,0x9b,0x37,0x6f,0x13,0x5f,0xbf,0x7e,0x9d,0x2b,0x28,0x28,0xc0,0x5b,0x54,0x54,
+ 0xc4,0xa0,0xaf,0xaf,0xf,0xd6,0xa3,0xa3,0xab,0xcb,0x58,0x52,0x5a,0x96,0x26,0x21,
+ 0x21,0x71,0x8,0xe8,0xbb,0xa5,0xdf,0xbe,0x7d,0x63,0x0,0x8,0x20,0x96,0xf,0x1f,
+ 0x3e,0xa0,0x18,0xfc,0xf5,0xeb,0x57,0x86,0x2f,0x5f,0xbe,0x8,0x2,0x5d,0x6d,0xfa,
+ 0xf7,0xef,0x5f,0x36,0x75,0xd,0x8d,0xe3,0xe7,0xcf,0x9f,0x2f,0xb9,0x74,0xe9,0x72,
+ 0x80,0xa9,0xa9,0x9,0x6b,0x7a,0x7a,0x1a,0x83,0xbc,0xbc,0x3c,0x58,0x2d,0x50,0x1d,
+ 0xc3,0x9f,0x3f,0x7f,0x18,0xd4,0x55,0x54,0x18,0x7a,0x3a,0x3b,0x19,0x1a,0x1a,0x1b,
+ 0xa6,0xbb,0x31,0xfc,0xbf,0x26,0x2f,0xaf,0x70,0x1e,0x20,0x80,0x58,0x80,0xde,0x85,
+ 0x1b,0xfa,0xef,0xdf,0x3f,0x6,0x4e,0x4e,0x4e,0x86,0x4b,0x97,0x2e,0xfd,0x3b,0x7e,
+ 0xfc,0x38,0xe3,0x9e,0x3d,0x7b,0xd6,0x7e,0xfe,0xfc,0xd9,0x5a,0x5c,0x5c,0x9c,0x21,
+ 0x21,0x21,0x9e,0xc1,0xc1,0xc1,0x81,0xe1,0xff,0xff,0xff,0xc,0x40,0x31,0x86,0xef,
+ 0xdf,0xbf,0x83,0xd9,0xc0,0xb8,0x80,0x18,0xae,0xa6,0xca,0xa0,0xa5,0xa1,0xc1,0xbb,
+ 0x6b,0xd7,0x9e,0xf6,0x82,0xfc,0x3c,0xf,0x80,0x0,0x62,0x2,0x46,0x2,0x3,0xc,
+ 0x73,0x70,0x70,0x80,0xb0,0xeb,0xdd,0x7b,0xf7,0x16,0x3,0xbd,0x2c,0x6b,0x62,0x6a,
+ 0x6a,0x3d,0x63,0xc6,0xc,0x86,0xa4,0xa4,0x24,0x86,0x8b,0x17,0x2f,0x82,0xd,0x7a,
+ 0xf3,0xe6,0xd,0xd8,0x57,0x20,0xc3,0x7e,0xfe,0xfc,0xc9,0xf0,0xe3,0xc7,0xf,0x86,
+ 0xb7,0x6f,0xdf,0x32,0xdc,0xbe,0x7d,0x9b,0xc1,0xc7,0xc7,0x87,0x81,0x93,0x8b,0xd3,
+ 0xec,0xc8,0xd1,0xa3,0xa2,0x0,0x1,0xc4,0x2,0x92,0x4,0x7,0x36,0xb,0xb,0xc3,
+ 0xb3,0x67,0xcf,0x7c,0xe6,0xcd,0x9b,0xb7,0x56,0x5b,0x47,0x87,0x6d,0xfe,0xfc,0xf9,
+ 0xc,0x72,0x72,0x72,0x60,0x39,0x51,0x51,0x51,0x86,0x4d,0x9b,0x36,0x81,0xd,0x80,
+ 0xb9,0xf0,0xd7,0xaf,0x5f,0x60,0x1a,0xc4,0x87,0x61,0x50,0xe4,0xca,0xca,0xc8,0x8,
+ 0x2,0x23,0xb6,0x4,0x20,0x80,0x58,0xce,0x9e,0x3d,0xb,0xd6,0xc,0x74,0x29,0xef,
+ 0xee,0xdd,0xbb,0xe7,0x3e,0x7a,0xf4,0x88,0x4d,0x52,0x52,0x12,0x1c,0x7e,0x20,0x4b,
+ 0x41,0x34,0x28,0x89,0x81,0x0,0xc8,0x60,0x90,0xcf,0x40,0xe2,0x20,0x43,0x61,0x6,
+ 0xc3,0x68,0x50,0xa4,0x49,0xcb,0xc8,0x30,0x2c,0x5c,0xb0,0xd0,0x8,0x20,0x80,0x98,
+ 0x60,0xb6,0x1,0x5d,0xc0,0x4,0xd4,0xcb,0xe,0x4c,0xb7,0xc,0x2f,0x5f,0xbe,0x64,
+ 0x28,0x29,0x29,0x61,0x0,0x45,0x2c,0xc8,0xab,0x6c,0x6c,0x6c,0xc,0xfc,0xfc,0xfc,
+ 0x60,0x83,0x41,0x7c,0x90,0x1,0x20,0xc,0xa,0x12,0x18,0x6,0xf1,0x3f,0x7f,0xfe,
+ 0x4,0x56,0x27,0x26,0x2e,0x6e,0x8,0x10,0x40,0x4c,0x8e,0x8e,0x8e,0xc,0x20,0xec,
+ 0xea,0xea,0xfa,0x51,0x55,0x55,0xf5,0x4,0x30,0x79,0x81,0x93,0xd1,0xc7,0x8f,0x1f,
+ 0x19,0xa6,0x4e,0x9d,0xca,0x0,0x4c,0x19,0xc,0xcf,0x9f,0x3f,0x7,0x47,0xd8,0xb6,
+ 0x6d,0xdb,0xc0,0x96,0xc2,0xc,0x7,0x45,0x20,0x8,0xc3,0x2c,0xf9,0xf2,0xe5,0x2b,
+ 0x3,0x13,0x30,0xb9,0xb2,0xb2,0x30,0xb3,0x0,0x4,0x10,0xb3,0x82,0x82,0x2,0xc3,
+ 0xc3,0x87,0xf,0x19,0xee,0xdf,0xbf,0xf,0xd2,0xc0,0x2,0x34,0x38,0x0,0x14,0x14,
+ 0x5c,0x5c,0x5c,0x60,0x83,0xcc,0xcd,0xcd,0xc1,0xf2,0x82,0x82,0x82,0x60,0x3,0x40,
+ 0xbe,0x3,0xb9,0xa,0x64,0x20,0x28,0x48,0x60,0x18,0x14,0xe6,0x20,0xcc,0xc4,0xc4,
+ 0xc8,0x70,0xe3,0xfa,0xcd,0x9f,0x0,0x1,0xc4,0x4,0x72,0x9,0x8,0x83,0x5c,0x8,
+ 0x4c,0xbb,0xab,0x81,0x9a,0x1f,0x82,0xc2,0x53,0x49,0x49,0x89,0x41,0x57,0x57,0x97,
+ 0x61,0xeb,0xd6,0xad,0xc,0x62,0x62,0x62,0xa0,0x88,0x5,0x6b,0x4,0x65,0xdb,0x4f,
+ 0x9f,0x3e,0xc1,0x83,0x0,0x14,0x7,0x20,0xb,0x41,0x86,0x7f,0x5,0xd2,0xe7,0xce,
+ 0x5f,0x64,0x78,0xf7,0xe1,0xc3,0x4f,0x80,0x0,0x62,0xb1,0xb7,0xb7,0x87,0xa7,0x63,
+ 0x60,0x1a,0xfe,0xa,0x8c,0xd1,0x2b,0x40,0x2c,0xf,0x4a,0x11,0xa0,0xf0,0xde,0xb6,
+ 0x75,0x1b,0x83,0xa9,0xa9,0x29,0x98,0xd,0xd2,0xc,0x4a,0xeb,0xb0,0x8c,0x1,0xc2,
+ 0xc,0xc,0xff,0x19,0x80,0xd9,0x18,0x18,0x5c,0x2f,0x18,0xe,0x1e,0x3e,0xca,0xf0,
+ 0xf6,0xf5,0xcb,0xdb,0x9e,0x1e,0x1e,0x39,0x0,0x1,0xc4,0x2,0x72,0x19,0xc,0x80,
+ 0x22,0x29,0x28,0x28,0x68,0xda,0xbc,0xf9,0xf3,0x3c,0x39,0xd8,0xd9,0x99,0x40,0xae,
+ 0xe3,0x15,0xe0,0x3,0x7,0x49,0x68,0x68,0x28,0x38,0x6c,0x41,0xae,0x6,0x85,0x3b,
+ 0x28,0x4d,0x83,0xc,0xbe,0x70,0xf1,0x32,0xc3,0xdd,0x7b,0x77,0x19,0x7e,0xfe,0xf8,
+ 0xb1,0x4b,0x50,0x80,0x7f,0xa,0x37,0x7,0xdb,0x7e,0xe,0x76,0x8e,0x2f,0x0,0x1,
+ 0xc4,0x72,0xe3,0xc6,0xd,0xb0,0x2b,0x40,0xa,0x41,0x34,0x30,0x39,0x6d,0xfb,0xf6,
+ 0xf5,0xdb,0xba,0xcb,0x57,0xae,0x84,0xb8,0xbb,0xbb,0x33,0xd8,0xd9,0xdb,0x32,0x0,
+ 0x4b,0x39,0x70,0x8a,0x0,0xc9,0x83,0x30,0xc8,0xeb,0xf7,0x1f,0x3c,0x62,0xb8,0x77,
+ 0xff,0xee,0x2f,0x60,0x86,0x39,0x2f,0xc0,0xc7,0x3f,0x5b,0x4a,0x5e,0x6e,0xf1,0xbf,
+ 0xff,0xff,0x7f,0x1,0x33,0x16,0xc3,0xbf,0xff,0xff,0x18,0x0,0x2,0x88,0x59,0x5,
+ 0x98,0xcf,0x61,0xb1,0xa,0x8a,0x14,0x50,0xc9,0xa6,0xac,0xa2,0xf2,0x12,0x68,0x98,
+ 0x33,0xb0,0x10,0xe2,0xe7,0xe7,0xe5,0x63,0xb8,0x73,0xe7,0xe,0x83,0xa8,0x88,0x28,
+ 0xc3,0x77,0xa0,0x8b,0xaf,0x5c,0xb9,0x2,0xc,0xc7,0xb,0xdf,0x9e,0x3f,0x7b,0x76,
+ 0x94,0x91,0x81,0x21,0x4f,0x47,0x5b,0xbb,0x1c,0x68,0xd9,0xf9,0xdf,0x7f,0xfe,0xfc,
+ 0x5,0xf9,0x4,0x9c,0x96,0xa5,0xa5,0x19,0x0,0x2,0x88,0x19,0x58,0x22,0x81,0xbd,
+ 0x4,0x2a,0x6b,0x41,0xe9,0x56,0x44,0x44,0x84,0x1,0x58,0xbe,0x3e,0x14,0x13,0x15,
+ 0xfd,0x30,0x7b,0xd6,0xec,0x0,0x39,0x39,0x35,0x6,0x76,0x1e,0x7e,0x86,0x6b,0x97,
+ 0x2f,0x30,0x1c,0x3e,0x7c,0x84,0xe1,0xed,0x9b,0xb7,0x87,0x74,0x75,0xb4,0x93,0xa5,
+ 0xa4,0x24,0x9b,0x80,0x6,0xdd,0x6,0x15,0x3,0x20,0xc3,0x40,0x5,0x13,0xa8,0x4c,
+ 0x1,0x99,0x25,0x20,0x20,0xc0,0x0,0x10,0x40,0x2c,0xac,0xac,0xac,0x60,0x57,0x82,
+ 0xb2,0xf4,0x85,0xb,0x17,0xc0,0xe5,0x5,0x8,0xf0,0xf1,0xf1,0xae,0xe7,0x17,0xe0,
+ 0x9f,0x20,0x22,0x2d,0xc9,0x7f,0xf4,0xe4,0x61,0x86,0xdf,0x3f,0x7e,0x6c,0x30,0x32,
+ 0x34,0xe8,0xe5,0xe6,0xe6,0x3e,0x3,0xf4,0xd9,0xf,0x90,0x3,0x40,0xe5,0x3,0xc8,
+ 0x61,0x6,0x6,0x6,0xe0,0x8,0x15,0x12,0x12,0x2,0x27,0x4b,0x90,0x19,0x0,0x1,
+ 0xc4,0x4,0x2b,0x83,0x41,0x59,0x95,0x1d,0x18,0x79,0x1c,0x1c,0xec,0xdc,0x8f,0x1e,
+ 0x3e,0xe0,0xdc,0xbc,0x71,0x93,0xda,0xe7,0x2f,0x5f,0x39,0x6c,0x2c,0x4d,0x19,0xb4,
+ 0xb5,0x34,0xfe,0x88,0x8,0xb,0xb5,0x3f,0x7d,0xf2,0xe4,0xc8,0xef,0x5f,0x3f,0x59,
+ 0xb9,0xb9,0x38,0x5,0x24,0x25,0x24,0xf8,0xff,0xfe,0xf9,0xc3,0xf2,0xf,0xe8,0x7d,
+ 0x1e,0x6e,0x6e,0x70,0xfa,0x86,0x95,0x3b,0xa0,0xf8,0x2,0x8,0x20,0x16,0xa0,0xa1,
+ 0x8c,0xbf,0x7f,0xfd,0x30,0x7a,0x70,0xff,0xbe,0xf1,0xb7,0x1f,0x7f,0x64,0x2f,0x5f,
+ 0xbf,0xed,0x27,0x2c,0x2c,0xac,0xfc,0xfe,0xcb,0xf,0x86,0xc4,0xb4,0x6c,0x76,0x21,
+ 0x60,0xd8,0x9a,0x99,0x5b,0xb2,0x9c,0x3d,0x77,0xe1,0x0,0xaf,0xa0,0xe8,0xcf,0x2f,
+ 0x3f,0xff,0x31,0xde,0x7d,0xf8,0x82,0xf1,0xf1,0xcb,0x77,0xc,0x6f,0x3e,0x7c,0x59,
+ 0xc7,0xf5,0xfc,0xf9,0xfd,0x2f,0x5f,0x3e,0x7d,0x66,0x63,0x65,0xbd,0x22,0x2e,0x26,
+ 0x7a,0x6,0x58,0x5c,0xbe,0x7,0x19,0xe,0x10,0x40,0x8c,0xc0,0x34,0x17,0x70,0xef,
+ 0xf9,0xbb,0x35,0xca,0xfa,0xb6,0xcc,0x46,0x96,0xf6,0xc,0xc2,0xc0,0xe4,0x25,0xc0,
+ 0xcd,0xc6,0x20,0x2a,0xc4,0xc7,0x20,0x22,0xc0,0xcb,0xc0,0xcc,0xf0,0x17,0x18,0x4c,
+ 0xcc,0xc,0xdf,0x7f,0xfe,0x66,0xf8,0xf4,0xf5,0x27,0xc3,0x7,0xa0,0x85,0xef,0xbf,
+ 0x7c,0x67,0x78,0xff,0x19,0x98,0x95,0x7f,0xfe,0x63,0x78,0xf2,0xe4,0x9,0xc3,0xa3,
+ 0x7b,0x37,0x19,0xee,0x5d,0x3e,0xce,0xa0,0x28,0xc6,0xfd,0xc5,0xda,0xdc,0x24,0x2,
+ 0xe8,0xb0,0xad,0x0,0x1,0xc4,0xc,0xc,0xe8,0x5d,0x92,0xe6,0xc1,0x2,0x56,0x5e,
+ 0x31,0xc,0x3c,0x3c,0xbc,0xe0,0x82,0x1e,0x84,0x99,0x98,0x59,0x18,0x7e,0xff,0xf9,
+ 0xcb,0xf0,0xfb,0x1f,0x3,0xc3,0xaf,0x3f,0xc0,0x2,0xfd,0x3f,0x13,0xc3,0xdf,0xff,
+ 0xcc,0xc,0xff,0x99,0x58,0x19,0x18,0x59,0x39,0x18,0x58,0xd8,0xb8,0x19,0x18,0xd9,
+ 0xb8,0x18,0xd8,0xf9,0xc5,0x19,0x4,0xe5,0x74,0x19,0x78,0xe4,0xd,0x19,0x4e,0x1c,
+ 0xd8,0xcb,0xc6,0xf0,0xe5,0x39,0x8f,0xa6,0xb6,0xf6,0xa,0x80,0x0,0x62,0x91,0x91,
+ 0x96,0xca,0x7a,0x70,0x69,0xf7,0xac,0x13,0xbf,0x3f,0x4b,0xa,0xa,0x3,0x15,0x9,
+ 0x89,0x30,0x48,0x88,0x8b,0x32,0xf0,0xf3,0x72,0x31,0x70,0xb0,0x32,0x3,0xb,0x14,
+ 0x26,0x20,0x66,0x64,0xf8,0xf3,0xfb,0xf,0xc3,0x8f,0x5f,0x7f,0x80,0x49,0xee,0x27,
+ 0x30,0xcb,0x7e,0x62,0x78,0xf1,0xe2,0x25,0xc3,0x4f,0xa0,0xd8,0x97,0xcf,0x5f,0x18,
+ 0xde,0xbd,0x79,0xf1,0xf3,0xd7,0x87,0x67,0x5f,0xf5,0x65,0x39,0x2e,0x3b,0x3a,0x3b,
+ 0x4f,0x3,0x65,0x2c,0x80,0x0,0x62,0xe1,0xe0,0xe4,0xda,0x62,0xa2,0x29,0xac,0x23,
+ 0x2e,0xfe,0x37,0x7d,0xf2,0xd4,0x5a,0x1e,0x35,0x75,0xd,0x3,0xa0,0x26,0x96,0x2f,
+ 0xc0,0x0,0x57,0xd7,0xd0,0x92,0xff,0xf6,0xf5,0xcb,0x8f,0x67,0x4f,0x9f,0xbc,0x62,
+ 0x61,0x61,0x62,0x62,0x5,0x45,0x30,0x3b,0x1b,0xa8,0x58,0x64,0x94,0x96,0x92,0xfa,
+ 0xb3,0x6f,0xef,0xde,0x73,0x9e,0x1e,0x6e,0x2c,0xd2,0x4c,0xc,0x7,0x65,0xf4,0xe4,
+ 0xf7,0x9,0x89,0x98,0xfe,0x6,0x1a,0xfa,0x1f,0x14,0x91,0x0,0x1,0x6,0x0,0x5d,
+ 0x9a,0x7c,0x5d,0x8a,0xb1,0xc5,0x37,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,
+ 0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/prefspencil.png
+ 0x0,0x0,0x19,0x11,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x40,0x0,0x0,0x0,0x36,0x8,0x6,0x0,0x0,0x0,0x77,0x12,0x9f,0x2,
+ 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,0xd8,
+ 0xeb,0xf5,0x1c,0x14,0xaa,0x0,0x0,0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x6d,
+ 0x98,0x0,0x0,0x73,0x8e,0x0,0x0,0xea,0x48,0x0,0x0,0x86,0x0,0x0,0x0,0x77,
+ 0xef,0x0,0x0,0xd0,0xf0,0x0,0x0,0x32,0xf7,0x0,0x0,0x1c,0x74,0xb6,0xd2,0x6c,
+ 0xb,0x0,0x0,0x18,0x87,0x49,0x44,0x41,0x54,0x78,0xda,0xdc,0xc7,0xc9,0xd,0x0,
+ 0x20,0xc,0xc4,0xc0,0xd,0x2,0xd2,0x7f,0xb9,0x9c,0xc1,0x8f,0x54,0x81,0xa5,0x79,
+ 0xd8,0x24,0x55,0x34,0x38,0x7a,0x7e,0x81,0xe9,0x8f,0x2,0x17,0x1b,0x13,0x3,0xb,
+ 0x27,0xe8,0x9,0x20,0x98,0xe7,0xb9,0x81,0x98,0x17,0x88,0x79,0x80,0x98,0x3,0x2a,
+ 0x36,0x9c,0x0,0xc8,0xc3,0x3f,0x80,0xf8,0xb,0x10,0x7f,0x6,0xe2,0xaf,0xd0,0x40,
+ 0xf9,0xf,0x10,0x40,0x2c,0xd0,0x98,0x7,0x79,0x5e,0x2,0x88,0x85,0xa1,0x6c,0xf6,
+ 0x61,0x96,0x2,0x7e,0x42,0x3d,0xfe,0x16,0x2a,0xf6,0x7,0x8a,0xff,0x1,0x4,0x10,
+ 0xb,0x34,0xd9,0x83,0x62,0x5e,0x78,0xcf,0x99,0xdd,0x9b,0x1d,0xf,0x0,0x55,0xaa,
+ 0xbd,0x66,0x58,0x2f,0x74,0x9b,0x21,0xc1,0xba,0x8e,0x3c,0x2b,0x81,0xe1,0xbb,0xff,
+ 0xc4,0x79,0x6,0x2d,0x69,0x25,0x86,0xb7,0x1f,0xdf,0x30,0xb0,0xb2,0xb1,0x33,0xfc,
+ 0xff,0xfb,0x9b,0xe1,0xc7,0xa7,0x1f,0xc,0x7c,0x92,0xe2,0xc,0xef,0xdf,0xbe,0x60,
+ 0x10,0xe5,0x17,0x62,0xf8,0xf8,0xed,0x7,0x3,0x1b,0xcb,0x7f,0x86,0x9f,0xdf,0xff,
+ 0x30,0xf0,0xf1,0xf0,0x31,0xbc,0xff,0xf4,0x9e,0x81,0x9d,0x8b,0x8b,0x81,0x8d,0x95,
+ 0x9d,0xe1,0xc7,0x8f,0xaf,0xc,0xbf,0xff,0xfc,0x64,0x60,0xfa,0xc7,0xc1,0xa0,0x6b,
+ 0xab,0x48,0x71,0x28,0x7c,0xfd,0xfe,0x8b,0x81,0x87,0x8b,0xdd,0x17,0x9a,0xa,0x40,
+ 0x29,0xe0,0x3b,0x48,0x1c,0x20,0x0,0x1f,0x65,0xb0,0x82,0x20,0x10,0x84,0xe1,0x7f,
+ 0x51,0x56,0x4d,0xac,0xe,0x3d,0x42,0x27,0x4f,0xbd,0x43,0x11,0x79,0xed,0x89,0x85,
+ 0x20,0xba,0x18,0x74,0x8,0x25,0x8,0xec,0x50,0x1d,0x45,0xd1,0x55,0x58,0xdc,0x6d,
+ 0x8c,0x8d,0x3a,0x75,0x18,0x86,0x81,0x61,0x66,0xf8,0xe7,0x9b,0xb1,0x8d,0xd,0xd8,
+ 0x7,0xb2,0xd1,0xb8,0x6d,0xe7,0x38,0x5d,0x1d,0xcc,0xa,0x1f,0x71,0xbc,0x43,0x92,
+ 0x24,0xd8,0x44,0x2b,0x94,0x65,0x45,0x5a,0x6a,0x3,0x86,0xfe,0xb,0x8,0xb3,0x18,
+ 0x82,0xb1,0x85,0xbc,0xca,0xe8,0xd0,0x28,0x6e,0x25,0xb8,0xe7,0x43,0x4f,0x15,0x1e,
+ 0x65,0x6,0xee,0x3a,0xb8,0x8b,0x9c,0x84,0xe1,0x10,0x4a,0x41,0x3b,0x3d,0x84,0x2c,
+ 0xc0,0x27,0x36,0x6a,0x59,0xbf,0x81,0x55,0x8c,0x16,0xc4,0xa9,0x7,0x6b,0x70,0xd8,
+ 0x3f,0xd1,0x9b,0x8e,0x6a,0xa8,0xf7,0x19,0x1,0xdf,0x31,0x6,0xd7,0x76,0x1d,0x34,
+ 0x25,0x78,0x23,0x17,0x69,0x7a,0x86,0xa8,0x3b,0x84,0x8b,0x10,0xe9,0xf1,0x82,0xf5,
+ 0x32,0x82,0xa1,0xdb,0xfd,0xf9,0x73,0x78,0x9,0x40,0x48,0xb5,0xe3,0x20,0xc,0xc3,
+ 0xd0,0xa7,0xd8,0xb4,0x31,0x37,0x48,0xe,0xc0,0x8e,0x10,0x3,0x52,0x25,0x50,0x7,
+ 0x4e,0xcd,0x2d,0x38,0x42,0xc6,0x48,0x28,0x53,0xa1,0x9,0xa2,0xb4,0x69,0xa,0x1b,
+ 0x78,0xf1,0x93,0x7f,0xcf,0xb6,0x64,0x2f,0x20,0x3f,0x41,0xcd,0xa,0x21,0x4,0xdc,
+ 0xae,0x17,0x98,0xcd,0x19,0xac,0x12,0xda,0xf6,0x88,0xd8,0x27,0x88,0x96,0x4c,0xe4,
+ 0x9c,0x83,0x31,0x6,0xcc,0xfc,0x77,0xeb,0xf4,0x41,0x55,0xe9,0x52,0x41,0xea,0xb9,
+ 0xe,0x51,0x9d,0x35,0xab,0x31,0x4a,0xcd,0x91,0xc3,0x6b,0xb2,0x53,0xf1,0x7f,0xb3,
+ 0x21,0xf2,0x93,0x27,0xc6,0x8,0xef,0x3d,0xac,0xb5,0x78,0xa4,0x1e,0x52,0x69,0xec,
+ 0xb6,0x7b,0xdc,0x53,0x37,0xe2,0x35,0x9a,0xd3,0x1,0x4f,0xea,0x50,0x4e,0x7b,0xb5,
+ 0xc,0x3f,0xc9,0x5b,0x0,0xb1,0x20,0x45,0x25,0xa3,0xb0,0xb0,0x8,0x83,0xae,0x8a,
+ 0x2e,0x30,0xc4,0xf6,0x33,0xf0,0x8,0x71,0x31,0x88,0x8,0xb1,0x33,0x28,0xc8,0xab,
+ 0x30,0x70,0x70,0x30,0x41,0x95,0x32,0x30,0xbc,0x7c,0xf9,0x92,0x41,0x5b,0x5b,0x9b,
+ 0x81,0xb,0x98,0x54,0x7,0xb,0xf8,0xf4,0xe9,0x13,0xc3,0x97,0x2f,0x5f,0x18,0x14,
+ 0x95,0xe4,0x19,0xb8,0xfe,0x70,0x33,0x1c,0x7e,0xbc,0x9f,0xe1,0xd1,0xbf,0xcb,0xc,
+ 0x49,0x2a,0x65,0xc,0x5,0x67,0xa3,0x18,0x26,0x38,0x2c,0x63,0xf8,0xc3,0xf2,0x9b,
+ 0x1,0xd9,0xaf,0x30,0xbd,0x0,0x1,0x84,0x12,0x8d,0x3f,0xff,0x2,0xcb,0x9,0x66,
+ 0x26,0x6,0x69,0x2b,0x7f,0x6,0x71,0x60,0xd2,0xfb,0xfe,0xe3,0x27,0x30,0xd5,0xff,
+ 0x67,0xf8,0xf3,0x87,0x99,0x81,0x88,0x8,0x27,0xbe,0x54,0x2,0x26,0xdf,0x7f,0xff,
+ 0x6e,0x31,0x7c,0xfd,0xaa,0xc6,0xc0,0x4,0xc,0x5b,0x10,0xa6,0x46,0x78,0xfe,0xfe,
+ 0xfd,0x8f,0x81,0x5d,0x94,0x83,0xc1,0x45,0xc4,0x93,0xe1,0xce,0x57,0x15,0x70,0xdd,
+ 0x16,0xa6,0x9d,0x8,0x4e,0x80,0x2c,0xbf,0xfe,0x61,0xd5,0x3,0x10,0x40,0x4c,0xc8,
+ 0x1c,0x16,0x26,0x48,0xed,0xc7,0x7e,0xfd,0x3c,0x3,0xbf,0xb0,0x24,0x83,0x8c,0xbc,
+ 0x3c,0xb0,0x30,0xfa,0x2,0xf4,0x3c,0xf5,0x2a,0x84,0xef,0xc0,0x2c,0xfe,0xf5,0x9b,
+ 0x31,0x30,0x89,0xab,0x3,0x3d,0xce,0xc8,0xf0,0xea,0x15,0x23,0x30,0x20,0x18,0x19,
+ 0x2e,0x5f,0x5a,0xc4,0x70,0xff,0x21,0x42,0xdd,0xbf,0x7f,0x7f,0x48,0x36,0x5b,0x4c,
+ 0x54,0x94,0x61,0xfd,0xb9,0x73,0xc,0x86,0x1d,0x73,0x19,0xa4,0x1f,0xb1,0x30,0x2c,
+ 0x59,0xb1,0x88,0x41,0xf6,0x9d,0x1,0xc3,0xa3,0x1b,0xf7,0x81,0x81,0xc0,0x8e,0x55,
+ 0xf,0x40,0x0,0x31,0x61,0xd4,0x96,0xa0,0xfc,0x27,0x2e,0xc9,0xf0,0xfc,0xc9,0x73,
+ 0x86,0x7,0x77,0x1f,0x31,0x70,0x73,0xf3,0x3,0x1d,0xf3,0x8f,0x2a,0x9e,0x7,0x96,
+ 0xa7,0xc,0x6c,0x3c,0x66,0xc,0x3c,0xdc,0xe7,0xc0,0x7c,0x1e,0x60,0xdd,0xa3,0xa4,
+ 0xc4,0xc0,0x0,0x74,0x37,0x83,0xb2,0x5a,0x3c,0x30,0x50,0x98,0x18,0x6e,0xdd,0x89,
+ 0x6,0x17,0x78,0x4c,0x4c,0x2c,0xc0,0x82,0xf7,0x3d,0x49,0xc9,0xa,0xa4,0x4f,0xeb,
+ 0xd6,0xd,0x86,0xa2,0xca,0x14,0x86,0xd3,0x9a,0x8a,0xc,0x2,0x1c,0x42,0xc,0x32,
+ 0xba,0xa2,0xc,0x92,0x8a,0x32,0xc,0xff,0x7e,0x63,0xd7,0x6,0x10,0x40,0xa8,0x1,
+ 0xc0,0x9,0x89,0xe9,0xf3,0x57,0x2e,0x3,0x4b,0xe5,0xbf,0xc0,0x2,0x8b,0x1d,0x58,
+ 0xe2,0xfe,0xa5,0x4a,0x93,0xe0,0x17,0xb0,0xd2,0x31,0x36,0x96,0x61,0xb8,0x7d,0xe1,
+ 0x34,0x43,0x5b,0x2d,0x23,0xc3,0xb5,0xdb,0xc0,0x94,0x80,0x14,0xc9,0xc0,0x82,0x9b,
+ 0xe1,0xef,0x1b,0x35,0x86,0x53,0xdb,0x96,0x31,0xcc,0xea,0x17,0x3,0x8b,0xf1,0xf3,
+ 0xb,0x2,0x93,0xf5,0x6f,0xa2,0xed,0x0,0x79,0x46,0xf1,0xbd,0x30,0x83,0x3f,0x90,
+ 0xb6,0x2,0x62,0x4b,0x63,0x1d,0x86,0xfd,0xbb,0xf7,0x32,0xb0,0xb2,0xb3,0x2,0x2b,
+ 0xfd,0x9f,0x58,0xf5,0x0,0x4,0x10,0x4a,0x0,0x30,0xfd,0xfa,0xb,0xa6,0xa3,0x63,
+ 0xe3,0x18,0xbe,0x7e,0x78,0xc5,0xc0,0xc1,0xc5,0xe,0x76,0x0,0x23,0x15,0x72,0x0,
+ 0x1b,0xe7,0x3c,0x86,0x83,0x87,0x9e,0x32,0x5c,0x3f,0x71,0x88,0x21,0x31,0xea,0x3b,
+ 0xc3,0xd9,0x1d,0x33,0x19,0x56,0x4d,0x59,0xcf,0xd0,0x59,0x3d,0x97,0xe1,0x1d,0xb0,
+ 0x81,0xfa,0xeb,0xb3,0x14,0xc3,0x9e,0xed,0x9e,0xc,0x9a,0x7a,0xa9,0xc,0xf2,0xbc,
+ 0xaf,0x19,0xa6,0x4d,0xcb,0x4,0xeb,0x63,0x65,0x25,0xae,0x51,0xfa,0x1f,0x54,0x63,
+ 0x2,0x3,0x79,0x6e,0x1a,0xb,0x3,0x3f,0xb0,0x8c,0x61,0xf9,0xc8,0xc0,0x70,0x15,
+ 0x98,0xa7,0x9c,0x5c,0x9d,0x51,0x52,0x37,0x3a,0x0,0x8,0x20,0x94,0xa2,0x8d,0x83,
+ 0x9b,0x8b,0xe1,0x2f,0xd0,0x90,0x69,0xd3,0xa6,0x32,0x68,0x6a,0x68,0x32,0x7c,0xff,
+ 0xfe,0x1d,0x23,0x91,0x90,0x55,0x38,0x1,0x3d,0x78,0xe7,0x59,0x32,0x3,0x1f,0x53,
+ 0x1c,0x83,0x7d,0x8a,0x2d,0x30,0xaa,0x4f,0x32,0xc4,0xe6,0x6,0x43,0x1b,0x68,0x52,
+ 0xc,0xb7,0xae,0x31,0x33,0x5c,0x7b,0x97,0xc0,0xa0,0xac,0xf5,0x1c,0xd8,0xf8,0xf9,
+ 0xcc,0xc0,0x29,0x28,0xc1,0xa0,0xc5,0x2f,0x9,0x6d,0x6d,0x0,0xdb,0x9,0x40,0xdf,
+ 0x31,0x12,0x13,0xb,0xc0,0x6c,0x2e,0x71,0xfb,0x15,0x83,0x24,0x30,0x75,0x31,0xd8,
+ 0x0,0x3,0x9d,0x8d,0x85,0xe1,0x1a,0xb0,0x3d,0xc0,0xcd,0xc8,0xc9,0x20,0xaf,0xa1,
+ 0x84,0x55,0xb,0x40,0x0,0xa1,0x4,0x0,0x23,0xb,0x2b,0x3,0x33,0x50,0xe4,0xc3,
+ 0xfb,0x77,0xc,0xec,0xc0,0x64,0x23,0x2c,0x20,0x8,0xae,0xee,0x40,0xf5,0x2c,0x1b,
+ 0x1b,0x1b,0xd9,0x1,0xc0,0xa,0xd4,0xaa,0xa1,0x0,0x34,0x5f,0xc6,0x83,0xe1,0xe3,
+ 0xb3,0x7b,0xc,0xdf,0xbe,0x3d,0x63,0xe0,0x60,0x7f,0xcb,0xf0,0xed,0xeb,0x37,0x6,
+ 0x69,0x4d,0x60,0x3e,0xfd,0x1f,0xc7,0xb0,0x66,0xee,0x2,0x6,0x8f,0x8c,0x7b,0xc,
+ 0xbf,0x3e,0xca,0x2,0xb3,0x6,0x3b,0xc3,0xc7,0x7b,0x67,0xa1,0x19,0x8f,0x9,0x18,
+ 0x0,0xff,0x8,0x6,0x0,0x48,0xf6,0x27,0x30,0x4b,0x5,0x2a,0xf1,0x31,0x4,0xaa,
+ 0x73,0x32,0xbc,0x6,0x16,0x1f,0x6f,0x9e,0xbf,0x66,0x30,0xb3,0xb0,0x2,0x9a,0xc0,
+ 0xc8,0xf0,0xf3,0xf7,0x5f,0xac,0xfa,0x0,0x2,0x8,0x25,0x7a,0x5f,0xbf,0x7a,0x5,
+ 0x6e,0x26,0xf8,0x5,0x4,0x30,0xe8,0xea,0xe8,0x0,0xcb,0x81,0xef,0xc,0x5b,0x36,
+ 0x6d,0xa7,0xc8,0xf3,0xa0,0xee,0xd7,0xd3,0x1b,0x33,0x18,0x7a,0x7b,0x25,0x18,0xdc,
+ 0x22,0x22,0x81,0xb5,0xcb,0x35,0x6,0x49,0xd,0x51,0x60,0xaa,0xf8,0xc6,0x20,0x20,
+ 0x26,0xd,0x2c,0x71,0x75,0x18,0x6e,0xef,0x99,0xc2,0x20,0xa3,0xf9,0x1b,0x58,0xdd,
+ 0x72,0x2,0xdb,0x44,0xc0,0x18,0xf8,0xf6,0x90,0x41,0x58,0xae,0x10,0xe1,0x48,0x26,
+ 0x26,0x22,0xca,0x40,0x46,0x6,0x76,0xb6,0x77,0xc,0xad,0x3d,0xde,0xc0,0xc0,0xfa,
+ 0xc6,0x20,0x2a,0x78,0x88,0x41,0x43,0x5b,0x1f,0xec,0x79,0xb0,0xfc,0x4f,0xec,0x65,
+ 0x0,0x40,0x0,0xa1,0x98,0xcc,0xce,0xc2,0x1,0xa6,0xcd,0x4d,0x8d,0x19,0x5e,0x7d,
+ 0xe6,0x63,0x90,0x55,0x50,0x66,0xd0,0xd3,0x55,0xa0,0x28,0xf9,0x7f,0x78,0xf3,0x83,
+ 0xe1,0xda,0xa5,0xab,0xc,0xe9,0x81,0x67,0x19,0xea,0x13,0x97,0x0,0xeb,0xe6,0x1f,
+ 0xc,0xa2,0x52,0x8a,0xc,0xf,0x59,0x43,0x18,0xb8,0xc5,0x3e,0x33,0x5c,0x98,0x39,
+ 0x8b,0xe1,0xea,0x9d,0xab,0xc,0x32,0x96,0x5f,0x18,0xfe,0x7f,0x12,0x2,0xe6,0xf9,
+ 0xbf,0xc,0x77,0x6e,0x30,0x30,0x48,0x4a,0x9,0x90,0x61,0x9b,0x10,0x83,0xb3,0xdb,
+ 0x19,0x6,0xb,0x9b,0x2c,0x20,0xdb,0xe,0x58,0xf0,0x7e,0x62,0x58,0xb5,0x74,0x21,
+ 0xc3,0xd7,0xcf,0x7f,0xc1,0xd9,0x1b,0x1b,0x0,0x8,0x20,0x94,0x0,0x30,0xd6,0xb5,
+ 0x0,0x16,0x50,0x49,0xc,0xfd,0xd3,0x37,0x31,0xe8,0xa9,0x9d,0x67,0x38,0xb9,0x21,
+ 0x93,0x41,0x50,0x56,0x13,0x58,0x29,0xff,0x24,0x3b,0x0,0x9e,0xbf,0xff,0xc6,0x70,
+ 0xff,0x2e,0xb,0x3,0xa7,0xf0,0x1d,0x6,0x6b,0x6f,0x43,0x60,0x92,0x50,0x60,0x28,
+ 0x49,0xd9,0xc3,0xa0,0x23,0x71,0x89,0xe1,0xe2,0xdc,0x2d,0xc,0xef,0xee,0x2,0x3b,
+ 0x48,0x5e,0x97,0x19,0x78,0x5,0xdf,0x1,0xfb,0xa,0x1f,0x19,0x9e,0xdd,0xdf,0xcd,
+ 0x60,0xe0,0x36,0x95,0x41,0x5f,0xcf,0x80,0x24,0x7b,0x40,0x39,0xe4,0x1d,0xb0,0x8b,
+ 0x63,0xa1,0x25,0xcd,0x70,0xfc,0x70,0x2a,0xc3,0xb5,0x67,0xbf,0x19,0x3e,0x3,0x9b,
+ 0xf5,0xa6,0xb6,0xe,0xc,0xdc,0xbc,0xcc,0xc,0xdf,0xbf,0x7e,0xc3,0xaa,0xf,0x20,
+ 0x80,0x50,0x2,0xe0,0x27,0xc3,0x37,0x6,0x7b,0x2b,0x47,0x60,0x67,0xe6,0x1f,0xc3,
+ 0xa7,0x97,0xbf,0x19,0x44,0x25,0xcd,0x80,0x1a,0x19,0xc8,0x2e,0x8,0x3f,0x1,0xc3,
+ 0x8d,0xe5,0xe5,0x46,0x86,0xb4,0xe2,0x70,0x6,0x66,0x76,0x61,0x86,0xad,0xd5,0xdd,
+ 0xc,0x1f,0xee,0xbd,0x65,0x28,0x6f,0x52,0x6,0x76,0x58,0x98,0x19,0x98,0x45,0x35,
+ 0x18,0x78,0xe4,0x80,0x5,0xd5,0x85,0x97,0xc,0x6f,0xf7,0xa6,0x32,0x3c,0x39,0xfc,
+ 0x89,0xe1,0xf9,0xcf,0x4f,0xc,0xe,0xce,0x59,0x64,0xf5,0x7a,0x85,0x80,0x2d,0xbf,
+ 0x2b,0x57,0x4f,0x33,0xac,0x6d,0x32,0x62,0x50,0x91,0x2,0x95,0x67,0x8c,0xc0,0xf2,
+ 0x87,0x85,0xe1,0xf7,0xf7,0xff,0xc,0x6c,0x5c,0xd8,0xb3,0x31,0x40,0x0,0xa1,0x14,
+ 0x82,0x57,0x2f,0x9e,0x67,0x48,0xc8,0x89,0x85,0xf3,0x8f,0x5c,0xb9,0xc4,0x60,0xf8,
+ 0x19,0xd8,0x8a,0xe2,0x27,0xaf,0x3b,0xfa,0xfe,0xd5,0xb,0x86,0xff,0xcc,0xc0,0xd2,
+ 0x88,0x4d,0x85,0xe1,0xeb,0xc7,0x47,0xc,0xe,0x69,0x51,0xc,0x2f,0x3e,0x7f,0x67,
+ 0x60,0x79,0xcc,0xc9,0xc0,0x23,0xcb,0xc3,0xc0,0xfc,0xf7,0x2b,0xc3,0x7f,0xa6,0xaf,
+ 0xc,0x46,0x9c,0xe9,0xc,0x2,0x4c,0x7f,0x81,0x55,0xa1,0xd,0x43,0x6c,0xd9,0x19,
+ 0x32,0xd3,0x1a,0x23,0xc3,0xa7,0x8f,0xbf,0x19,0xc4,0x95,0xcd,0x18,0x74,0xea,0x2e,
+ 0x30,0x5c,0xb9,0xf4,0x94,0xe1,0xe9,0xab,0x97,0xc,0xa2,0x12,0x92,0xc,0x5f,0xd8,
+ 0x7f,0x31,0x8,0x72,0x60,0xaf,0x4e,0x1,0x2,0x8,0x25,0x0,0xd8,0x79,0xd8,0xc1,
+ 0x35,0xd3,0xd3,0x97,0xf7,0x18,0xa4,0xe5,0x94,0x18,0x54,0x25,0x99,0x18,0x58,0x58,
+ 0x79,0xc8,0x4e,0xfe,0xf2,0xb2,0x12,0xc,0x87,0x8e,0x8,0x30,0xcc,0x5d,0x12,0xc1,
+ 0xf0,0xe3,0x3,0x30,0x45,0x19,0x9b,0x33,0xd8,0x7,0x79,0x1,0x3d,0xaf,0xcc,0x70,
+ 0xeb,0xd0,0x5e,0x86,0x27,0xe7,0x2f,0x32,0x48,0xe8,0x6a,0x32,0xfc,0xfb,0xf2,0x89,
+ 0x81,0x99,0xed,0x3f,0xc3,0xa3,0x73,0x47,0x18,0xd8,0x29,0xa9,0x6e,0xff,0xbc,0x67,
+ 0xe0,0xe6,0x14,0x6,0x8f,0xed,0xe8,0x68,0xff,0x66,0x90,0x57,0xf2,0x4,0xb6,0x36,
+ 0xb9,0x80,0x41,0xc3,0xc4,0xf0,0xed,0xd3,0x17,0xac,0x7a,0x0,0x2,0x8,0x25,0x0,
+ 0xb4,0x95,0x64,0x18,0xaa,0x57,0xbd,0x60,0x50,0xfd,0x7f,0x81,0x41,0xe6,0xc6,0x25,
+ 0x6,0x79,0x65,0x23,0x86,0xbf,0x8c,0xff,0x18,0x7e,0x1,0x1b,0x43,0x6c,0xac,0xa4,
+ 0x8f,0x92,0x81,0xc6,0x2,0xe4,0xd,0x5,0x18,0x4c,0x8c,0x32,0x19,0xb8,0x94,0x80,
+ 0x9d,0x93,0x37,0xef,0x19,0x6e,0xbd,0x78,0xcf,0xf0,0x87,0xff,0x25,0x3,0x3,0x28,
+ 0x76,0x80,0x62,0x8f,0x5e,0x7e,0x66,0x50,0x94,0x95,0x64,0x78,0xba,0x77,0x21,0x83,
+ 0x96,0x53,0x4,0x65,0x83,0x1e,0x5f,0x41,0x8d,0xb6,0xf,0xc0,0xaa,0x1b,0xd8,0xb6,
+ 0x66,0x66,0x65,0xe0,0xe5,0x41,0xb8,0xf9,0x3f,0xf3,0x7f,0xac,0x7a,0x0,0x2,0x8,
+ 0x25,0x0,0x4e,0x5e,0xbe,0xc5,0xd0,0x1a,0x6e,0x7,0x64,0xf9,0x83,0x7b,0xf3,0x3f,
+ 0xbe,0x7d,0x65,0x78,0xfb,0xfe,0x3,0x3,0xb,0x72,0xdf,0x9c,0x4,0xf0,0xec,0xc9,
+ 0x63,0x6,0x96,0xef,0x1f,0x19,0xee,0x31,0xa,0x33,0xfc,0x38,0x7f,0x87,0xe1,0xf3,
+ 0xdb,0x77,0xc,0x4a,0x3a,0xda,0xc,0x42,0xdf,0x3e,0x33,0xdc,0xbd,0x74,0x84,0x81,
+ 0x89,0x87,0x97,0xe1,0xfb,0xcb,0x77,0xc,0xb7,0xaf,0xee,0x62,0xe0,0xb0,0x4b,0x62,
+ 0x70,0x8d,0xcc,0xa1,0x28,0x0,0x58,0x59,0x19,0xd1,0xbd,0x84,0xc8,0x20,0xff,0xb1,
+ 0x8b,0x3,0x4,0x10,0xb,0x6a,0x5d,0xa,0x9,0xa5,0x4d,0x5b,0xb6,0x33,0xc8,0x48,
+ 0x4a,0x32,0xf0,0xb,0x8a,0x32,0x5c,0xbf,0x76,0x89,0x41,0x5a,0x5a,0x9a,0x2c,0x7,
+ 0x7d,0xfe,0xf1,0x89,0x41,0x94,0x87,0x9b,0x41,0x43,0x48,0x9c,0xe1,0xdd,0xdb,0x37,
+ 0xc,0x62,0xc6,0xc0,0x56,0xe0,0xf7,0xcf,0xc,0x1b,0x92,0x92,0x18,0x5e,0x9b,0x47,
+ 0x32,0x68,0x1b,0x98,0x32,0x88,0xbd,0x7f,0xc9,0xa0,0xea,0x11,0xc7,0x20,0xc9,0xc3,
+ 0xcc,0x40,0x29,0x60,0x67,0xe7,0x2,0x76,0xa8,0xb0,0x37,0x78,0x58,0x58,0xb1,0x9b,
+ 0xf,0x10,0x40,0x28,0x1,0xf0,0xe4,0xc5,0x33,0x6,0x6,0x7d,0x6,0x6,0x75,0x75,
+ 0x75,0x60,0xd7,0x98,0x5,0xd8,0xbd,0xe4,0x63,0xe0,0x32,0x36,0x26,0xdb,0x41,0x2f,
+ 0x1e,0x3e,0x62,0x50,0x55,0x67,0x62,0xf8,0xc7,0xc8,0x2,0xec,0x55,0x2,0xcb,0x12,
+ 0x66,0x51,0x86,0x87,0xcb,0x26,0x33,0x3c,0x16,0x50,0x64,0xc8,0x28,0xae,0xa7,0xfa,
+ 0xd0,0xf3,0xff,0xff,0x7f,0x19,0xfe,0xff,0xc7,0x35,0x26,0xf8,0x11,0xab,0x38,0x40,
+ 0x0,0xa1,0xd4,0x6f,0x56,0x6,0xb6,0x90,0xc2,0x4b,0x4e,0x9e,0x41,0x59,0x59,0x11,
+ 0xd8,0x2a,0xe3,0x0,0xf6,0xc8,0xf8,0xe0,0x29,0x83,0x54,0xa0,0xaa,0x61,0xce,0xb0,
+ 0x6e,0xc7,0x21,0x6,0xb6,0xff,0x4f,0x19,0xb8,0xa5,0x6d,0x18,0x6e,0xef,0x5c,0xc1,
+ 0x30,0x7d,0xf1,0x7a,0x60,0x4b,0x2b,0x88,0x86,0xe3,0xee,0xd8,0x93,0x3a,0x37,0x27,
+ 0x3f,0x56,0x71,0x80,0x0,0x42,0x51,0xfd,0xf,0xda,0x65,0xfa,0xfe,0xfa,0xb,0xc3,
+ 0x1f,0x76,0x6e,0x60,0xb2,0xf9,0xcf,0xf0,0xfc,0xe3,0x6b,0x6,0x5,0x60,0x80,0x90,
+ 0x3,0x64,0x65,0x84,0x18,0x6c,0x2,0x27,0x31,0xec,0xbd,0x7c,0x9c,0xe1,0xd4,0xa,
+ 0x2f,0x6,0x55,0x59,0x25,0x6,0x43,0x2d,0x39,0x6,0xb3,0x80,0x78,0x86,0x2f,0xc0,
+ 0x9e,0x27,0xf,0x1b,0x33,0x3,0xbd,0xc0,0xcf,0x1f,0xd8,0xbb,0x83,0x0,0x1,0x84,
+ 0x92,0x2,0xc4,0xb8,0xc5,0x19,0xae,0xbe,0x3d,0xcf,0xb0,0xfa,0xde,0x62,0x86,0x73,
+ 0xaf,0xf7,0x33,0x4c,0xbd,0xdc,0xc6,0xa0,0xc8,0xd,0xea,0xc5,0xfc,0x25,0xdb,0x62,
+ 0x26,0xd6,0xcf,0xc,0xce,0xe,0x96,0xc,0xc6,0x5f,0xae,0x31,0x8,0xbf,0x3c,0xc2,
+ 0x20,0x1f,0x5a,0xce,0xa0,0x28,0xcc,0xc6,0xb0,0x61,0xf9,0x62,0x86,0x57,0xaf,0x5f,
+ 0xd2,0xc0,0xab,0x7f,0x71,0x8c,0x54,0x63,0x57,0xd,0x10,0x40,0x28,0x29,0xe0,0xd5,
+ 0xb7,0xf7,0xc,0xda,0x62,0x86,0xc,0x3c,0x8a,0x22,0xc,0x82,0xdc,0xfc,0xc,0x2a,
+ 0x22,0xfa,0xc,0x4f,0xbf,0x3c,0x65,0x90,0x16,0x21,0xaf,0x10,0x3c,0x75,0xea,0x14,
+ 0x3,0x13,0xb0,0x93,0x72,0x1a,0xd8,0xbb,0xfc,0x6e,0x95,0xc1,0x60,0xed,0xea,0xc7,
+ 0x20,0xa3,0xaa,0xcb,0xb0,0x7c,0xe9,0x52,0x86,0x98,0xf8,0x4,0x86,0x59,0xb3,0x66,
+ 0x31,0x24,0x27,0x27,0xa3,0x8e,0x0,0x53,0x8,0x1e,0x3d,0x7a,0xc6,0xb0,0x7b,0xcb,
+ 0xe,0x86,0xd7,0xc0,0xf2,0x87,0x85,0x83,0x9d,0x41,0x5c,0x5e,0x8e,0xc1,0xc0,0xd4,
+ 0x4,0xd8,0x39,0x12,0xc1,0xaa,0x1e,0x20,0x80,0x50,0x2,0xe0,0xfd,0xdb,0x67,0xc,
+ 0x32,0xc0,0x1e,0x1a,0x1b,0x30,0x87,0xfe,0xfe,0xf7,0x9b,0x81,0xf3,0x3f,0x17,0xc3,
+ 0x27,0x96,0xf,0x64,0xd6,0xc9,0x5f,0x19,0x64,0x64,0x64,0x18,0x78,0x79,0x79,0x19,
+ 0x4c,0x80,0xf8,0xd6,0x33,0x2b,0x6,0x19,0x29,0x5e,0x86,0x59,0x33,0xa6,0x33,0xa4,
+ 0x65,0x64,0x32,0xbc,0x2,0xf6,0x3c,0x13,0x13,0x13,0x19,0x2e,0x5d,0x2,0xb6,0x36,
+ 0xd,0xd,0xc9,0xb2,0x3,0x34,0x54,0x87,0xdc,0x53,0xdc,0xb7,0x7d,0x7,0x3,0xc7,
+ 0x91,0x8b,0xc,0x6e,0xd2,0x4a,0xc,0xfc,0x5c,0xd2,0xc0,0x86,0xd1,0x6f,0x86,0x77,
+ 0xd7,0x5e,0x32,0x1c,0x3b,0x34,0x93,0xe1,0xbb,0x89,0x36,0x56,0x33,0x0,0x2,0x8,
+ 0x75,0x44,0x88,0x15,0x32,0xfe,0x2e,0x22,0x23,0xc8,0x20,0x28,0x22,0xc0,0x20,0x28,
+ 0xce,0xcf,0x20,0x2c,0x20,0x4a,0x56,0x21,0xf8,0x13,0xd8,0xfd,0x4,0x8d,0xd3,0x83,
+ 0x2,0x0,0x4,0x84,0xd9,0x7e,0x30,0x2c,0x5e,0xbc,0x8,0xec,0xf9,0x77,0xef,0xde,
+ 0x81,0x87,0xd7,0x41,0xa3,0x3d,0xe2,0xe2,0xe2,0xc,0xd7,0xae,0x5d,0x23,0x2f,0x7b,
+ 0x21,0x79,0xfe,0xc2,0x85,0xb,0xc,0x8f,0x2e,0x5c,0x66,0x50,0x32,0xd0,0x65,0x78,
+ 0x8,0x6c,0x55,0x3e,0xfd,0xf4,0x9e,0x81,0x95,0x91,0x89,0x41,0x9c,0x97,0x8f,0x21,
+ 0x50,0xcd,0x80,0x41,0xeb,0xe2,0x7d,0x6,0x11,0x6e,0x1e,0x27,0x74,0x33,0x0,0x2,
+ 0x8,0x25,0x0,0x84,0xf8,0x79,0x18,0x3e,0xbf,0xf9,0xc6,0xb0,0x7e,0xd5,0x76,0x86,
+ 0xcb,0xa7,0x2f,0x33,0xac,0x5a,0xbd,0x8e,0xe1,0xdc,0xb9,0xd3,0xc4,0x8d,0xc6,0xa0,
+ 0x81,0xa7,0x4f,0x9f,0x32,0xfc,0xfd,0x8b,0xc8,0x8f,0xc2,0x22,0xa2,0xc,0xb1,0xb1,
+ 0x71,0xf0,0xc9,0x15,0x25,0x25,0xc8,0x8,0xd,0x28,0x90,0x40,0xc3,0x6e,0x94,0xc,
+ 0xbc,0xee,0xdf,0x7f,0x80,0x41,0x42,0x52,0x9e,0x21,0xbc,0xa8,0x84,0x81,0x2f,0xd0,
+ 0x9d,0x81,0x37,0xc6,0x97,0xe1,0xbc,0x81,0x2,0xc3,0xae,0x6f,0xaf,0x81,0x85,0xdf,
+ 0xf,0x6,0x6,0x20,0x36,0x50,0x52,0x67,0x98,0x1f,0x9a,0x12,0xc1,0xc4,0xc8,0xa8,
+ 0x7,0x9b,0xb7,0x1,0xfa,0x8b,0x9,0x20,0x80,0x50,0x2,0xe0,0xfd,0xe7,0xaf,0xc,
+ 0xbc,0x22,0x5c,0xc,0x66,0x66,0x46,0xc,0xb2,0x2a,0x72,0xc,0xe,0xf6,0xd6,0xc,
+ 0x3a,0x3a,0x7a,0x64,0x36,0x4a,0xd8,0xb1,0xa6,0x1c,0x90,0x47,0x41,0xd,0x2b,0xe,
+ 0xe,0xe,0xc4,0x78,0x21,0x1b,0x1b,0x78,0x66,0x87,0x1c,0x10,0x97,0x90,0x0,0x8c,
+ 0x20,0x76,0x6,0x1f,0x6f,0x1f,0x6,0x1,0x3e,0x1e,0x6,0x29,0x60,0x40,0x4b,0x2,
+ 0x1b,0x5e,0x46,0x56,0x76,0xc,0x3c,0x3e,0xae,0xc,0xbb,0xb9,0xff,0x31,0x3c,0x3,
+ 0xa6,0x6,0xd0,0xb8,0x9c,0xa3,0xa2,0x6,0x8b,0xb9,0x98,0x12,0x68,0xb0,0x91,0x1b,
+ 0x1a,0xf9,0x2c,0x0,0x1,0x84,0x12,0x0,0xff,0xfe,0x42,0x86,0x69,0xe5,0x14,0x24,
+ 0x18,0x84,0x4,0x85,0x18,0x4,0x5,0x84,0xc9,0x1e,0x11,0xfe,0xf8,0xf1,0x23,0xce,
+ 0xe9,0xb3,0xb7,0x6f,0xdf,0x82,0x53,0x8,0x28,0x2b,0x80,0xed,0x93,0x93,0x3,0x76,
+ 0x5a,0x48,0xef,0x74,0x25,0x24,0x26,0x30,0xb8,0xbb,0x6,0x30,0x68,0x6b,0xeb,0x1,
+ 0x23,0xf9,0xf,0x3,0x37,0xf,0x7,0xc3,0xb7,0x6f,0x3f,0x18,0x9e,0x3e,0x7b,0xcd,
+ 0xf0,0xed,0xf3,0x37,0x6,0x69,0x51,0x69,0x6,0x69,0x77,0x57,0x86,0x6b,0x2,0xc0,
+ 0xae,0xf0,0x9f,0x3f,0xc,0xe7,0xee,0x3c,0x64,0x50,0xe5,0x95,0xd4,0x64,0x64,0x60,
+ 0x54,0x80,0xce,0xd7,0xb1,0x3,0x4,0x10,0x8a,0xb,0x85,0x44,0x44,0xc0,0xb3,0xe8,
+ 0x37,0xee,0xdd,0x65,0xf8,0xfc,0xf9,0x33,0x83,0xac,0xbc,0x3c,0xb0,0xd,0xfd,0xf,
+ 0x98,0x94,0x79,0x49,0x2a,0xa9,0x41,0xf9,0x5f,0x48,0x48,0x8,0x67,0xbe,0xe5,0xe7,
+ 0xe7,0x7,0x7,0x2,0xac,0x89,0xcd,0xcd,0xcd,0x4d,0xb2,0xe7,0x33,0xb3,0x12,0x19,
+ 0xfc,0xfd,0x56,0x31,0x28,0x2a,0x6e,0x61,0xf8,0xf0,0xf1,0x2f,0xc3,0xad,0xab,0x6a,
+ 0xc,0xbf,0x7e,0xa4,0x33,0x28,0x69,0x3b,0x3,0x23,0x8e,0x97,0xe1,0xc7,0xf7,0xef,
+ 0x40,0x3f,0x3,0x7b,0xa0,0xbc,0x2,0xc,0x6f,0x55,0x55,0x18,0xe6,0x4e,0x5f,0xce,
+ 0xf0,0xf2,0xd5,0x67,0x60,0xdb,0x83,0x9d,0x9,0x98,0xd,0x24,0xfe,0xfe,0xff,0xf,
+ 0x1a,0x22,0x62,0x4,0x8,0x20,0x16,0xd4,0x2a,0x81,0x91,0xe1,0x3,0x30,0x1b,0x3c,
+ 0x7e,0xfa,0x88,0x41,0x5a,0x4a,0x8e,0x81,0x8b,0x93,0x8b,0xe1,0xdb,0xd7,0x8f,0x24,
+ 0x57,0x53,0xa0,0x9,0x56,0x7c,0xfd,0x7,0x9,0x9,0x9,0x30,0x26,0x17,0x4,0xfa,
+ 0xa7,0x32,0x74,0x76,0x2f,0x60,0x50,0x53,0x3,0x37,0xdb,0x80,0xb1,0xcb,0xc9,0xf0,
+ 0x5f,0xd1,0x9d,0xe1,0xd5,0xd9,0x73,0xc,0xbb,0xb6,0x1e,0x60,0x50,0x71,0x28,0x6,
+ 0x76,0xc5,0x15,0x80,0x6e,0xff,0x2,0x8c,0x40,0xa0,0x12,0x3e,0x2e,0x86,0xdd,0xcf,
+ 0xee,0x33,0xe8,0x31,0x9,0x3,0x33,0x3e,0x13,0xa8,0x48,0x3,0x36,0x6f,0x81,0x18,
+ 0x18,0x0,0x0,0x1,0x84,0x92,0x5,0xfe,0x0,0x5b,0x67,0x2c,0xcc,0x8c,0xe0,0xd2,
+ 0x59,0x59,0x59,0x9e,0x81,0x1d,0xd8,0x81,0x0,0x25,0x29,0x52,0x1,0xa8,0x64,0x47,
+ 0xce,0xe3,0xd4,0x4,0xfe,0x4e,0x89,0xc,0xdd,0x7d,0x73,0xa0,0x9e,0x7,0x82,0x1f,
+ 0xca,0xc,0xff,0x5f,0x76,0x31,0x30,0xde,0xe3,0x60,0x10,0xe7,0x78,0xcf,0x10,0x65,
+ 0xf1,0x9b,0xe1,0xdb,0x99,0x16,0x86,0x7,0x77,0x2e,0x31,0xf0,0xf2,0x9,0x0,0x23,
+ 0xe3,0x1d,0xc3,0x9d,0xdb,0x37,0x18,0xd8,0x80,0xfd,0x9a,0x3f,0xc0,0x2c,0xfe,0x15,
+ 0xe8,0xc9,0xbf,0xff,0xc0,0x65,0x13,0x78,0xaa,0x1c,0x20,0x80,0x50,0x52,0xc0,0xdb,
+ 0xf,0xaf,0x19,0xa4,0xd4,0x65,0x19,0x4c,0x8d,0x4d,0x19,0xbe,0x0,0x53,0xc2,0x8f,
+ 0x1f,0xdf,0x81,0x79,0x93,0x8f,0x61,0x30,0x0,0x50,0x8d,0x12,0xe6,0x1d,0xcb,0x30,
+ 0x6b,0xf9,0x72,0x60,0x0,0xc3,0x46,0x40,0x80,0xa9,0xf8,0x55,0x2a,0x3,0xe3,0xf3,
+ 0x17,0xc0,0x80,0xb8,0xb,0xcc,0x5f,0x6c,0xc,0xcc,0x2c,0x4c,0xc,0xce,0x6,0x3f,
+ 0x19,0x36,0x5f,0x5a,0x1,0x6c,0x6b,0x7c,0x61,0x38,0x7f,0xf9,0x14,0xc3,0xed,0x7b,
+ 0xb7,0xc1,0xad,0x4e,0x4d,0x16,0x19,0x86,0x27,0x6f,0xdf,0xbe,0xff,0xcf,0xf0,0x1f,
+ 0x34,0xe1,0x1,0x8a,0x21,0x66,0x80,0x0,0x42,0x9,0x0,0x36,0x66,0x48,0x17,0xe5,
+ 0xfd,0xfb,0x8f,0xc,0xe2,0x12,0x62,0xc,0xa2,0xa2,0xa2,0xc0,0x7c,0xf4,0xf,0x98,
+ 0xa7,0xbf,0x1,0xf3,0x2e,0x3b,0xd0,0x11,0xbf,0xc1,0x63,0xf4,0x6f,0xde,0xbc,0x63,
+ 0xe0,0xe4,0xfc,0x2,0x2e,0x20,0x99,0x18,0x40,0x73,0x72,0xc0,0x62,0x5,0x54,0xe0,
+ 0x81,0xa6,0xb1,0x80,0xe9,0xb,0x54,0xfa,0x33,0x82,0xdb,0x9e,0x90,0xde,0x19,0x82,
+ 0xfd,0x1f,0x3c,0xce,0x0,0xca,0x51,0x7f,0xfe,0x40,0xd6,0x2e,0x31,0x33,0xb3,0x1,
+ 0xb,0xdf,0x9f,0xe0,0x55,0x24,0xc8,0x65,0x8,0x68,0x6e,0x10,0x34,0x41,0xca,0x2,
+ 0x14,0xfe,0xff,0x87,0x99,0x21,0x23,0x36,0x89,0x61,0xf6,0xb2,0x2d,0xc,0xf0,0xa2,
+ 0xe5,0x7,0x30,0x2,0xdf,0xe5,0x0,0xbb,0x9c,0x6f,0x80,0x1a,0x9e,0x2,0x8d,0x65,
+ 0x87,0x24,0x68,0xa0,0x3e,0x60,0xf2,0x63,0x10,0x65,0x7a,0xc8,0x50,0xd2,0xdb,0xc8,
+ 0xc0,0xc2,0xc6,0xc9,0xf0,0xfd,0xf7,0xf,0x6,0xd1,0xbf,0x4c,0xc,0xf7,0xbe,0xbf,
+ 0xfe,0x77,0xe4,0xe5,0xed,0xc3,0xc,0x90,0xf5,0x42,0x20,0x7,0xfc,0x1,0x8,0x20,
+ 0x94,0x0,0xf8,0xb,0xad,0x8b,0xa5,0xa4,0xc4,0x18,0x6e,0x5e,0xbd,0xce,0xf0,0xfe,
+ 0xcd,0x17,0x86,0x2f,0x7f,0xbe,0x30,0x58,0x5a,0x59,0x1,0x25,0xbf,0x32,0xac,0x5c,
+ 0xb5,0x2,0x58,0x2d,0xea,0x30,0xdc,0xb8,0x71,0x1d,0x98,0x3a,0x7e,0x0,0x7b,0x8b,
+ 0x4c,0x20,0x4d,0xc,0x8c,0xc0,0x26,0xe7,0x7f,0x60,0xb6,0x61,0xfa,0xf4,0x99,0xe1,
+ 0x3f,0x33,0xb,0xb8,0xdd,0xfd,0xff,0x1f,0x64,0x9c,0x8e,0x11,0x98,0x9,0x61,0xd5,
+ 0x21,0xb,0xd0,0x37,0x7f,0xfe,0xfe,0x2,0xb7,0x2b,0xfe,0xfe,0x81,0x4,0x8,0x68,
+ 0xd0,0x92,0x5,0x18,0xf0,0xf,0xee,0x3d,0x0,0x7b,0x9c,0x95,0x9d,0xd,0x98,0xbc,
+ 0x55,0x80,0xe6,0xff,0x2,0x7,0xc,0x17,0x37,0x2f,0x43,0x6f,0x77,0x2b,0xc3,0xd2,
+ 0x15,0x7b,0x19,0xf8,0x61,0x23,0xe5,0x3f,0x80,0xa9,0xf2,0x59,0x1,0x30,0xa6,0x80,
+ 0x16,0xfd,0x7e,0xce,0xc0,0xc0,0xca,0xd,0xaa,0xc2,0x20,0x15,0x16,0xd0,0xfc,0x2f,
+ 0x8f,0x3f,0x32,0x8,0xfd,0xfe,0xc4,0x20,0xfc,0xef,0x19,0xc3,0xed,0x77,0xc2,0xc,
+ 0x52,0x12,0x22,0xc,0x1f,0x9f,0x3f,0x67,0x38,0xf8,0xe8,0xf6,0xf1,0x6f,0x7f,0x7f,
+ 0x5d,0x80,0x8f,0x1,0x33,0x30,0xfc,0x2,0x8,0x20,0x94,0x0,0xe0,0xe1,0x85,0x8c,
+ 0x9d,0xbf,0x7b,0xfb,0x81,0x41,0x5c,0x56,0x9a,0x81,0x5f,0xe8,0x7,0x83,0x0,0xb0,
+ 0x2a,0xfc,0xf6,0xf3,0xb,0x3,0x1f,0xf,0x2f,0x43,0x5a,0x5a,0x1a,0xc3,0xb4,0xa9,
+ 0x53,0x19,0xac,0xed,0x6c,0x18,0xd4,0x55,0xd5,0x19,0x3e,0xbd,0x7b,0xcb,0xf0,0x53,
+ 0x4c,0x9c,0xe1,0xdf,0x99,0x53,0xc,0x7c,0x93,0xfb,0x19,0xde,0x2c,0x5d,0xce,0xc0,
+ 0x74,0xff,0x2a,0xd0,0x43,0x4c,0xc,0x7f,0xfe,0xff,0x1,0x17,0xab,0xa0,0x99,0xf5,
+ 0xdf,0x40,0xc8,0xcb,0xc1,0xcf,0x70,0xe3,0xf6,0x75,0x6,0x69,0x49,0x29,0x70,0x19,
+ 0xf3,0xe7,0xdf,0x3f,0x70,0xe1,0xfa,0xef,0x17,0x50,0x1d,0x50,0x91,0xbe,0x81,0x34,
+ 0x30,0x70,0x18,0x19,0xd8,0x80,0xb1,0x77,0xe3,0xda,0x45,0x6,0x3e,0x1,0x1,0x6,
+ 0x63,0x43,0x77,0x6,0x4b,0x97,0x4,0x86,0x25,0x5d,0xea,0xc,0xfc,0xcc,0xe6,0xc,
+ 0xbf,0xde,0xbf,0x65,0x60,0xfc,0x7d,0x89,0x81,0xf5,0x89,0x18,0xa4,0x7a,0xfe,0xf9,
+ 0x90,0x1,0x9c,0x44,0x40,0x9e,0x87,0x6,0xc0,0xfb,0xf,0xdf,0x19,0x3e,0x3f,0xff,
+ 0xc0,0x20,0xf0,0xef,0xb,0x83,0x96,0x24,0x30,0xc0,0xff,0xab,0x82,0xe7,0x39,0xaf,
+ 0xbc,0x7c,0xc0,0xf0,0xe5,0xef,0xaf,0xeb,0xc,0x90,0xd5,0x61,0x5f,0x61,0x18,0x20,
+ 0x80,0x50,0x2,0xe0,0xf,0x74,0xa9,0xca,0xbb,0x8f,0x1f,0x18,0xd8,0x80,0x5,0xe0,
+ 0xd2,0x25,0x8b,0x18,0xac,0xed,0x9d,0x19,0xb4,0x80,0x25,0xe,0x2c,0x16,0x39,0x81,
+ 0xf5,0xf5,0xb1,0xa3,0x47,0x19,0xe,0xed,0x3b,0xc8,0xf0,0xe5,0xfd,0x67,0x6,0x79,
+ 0x67,0x5b,0x6,0xee,0x7,0xd7,0x19,0xb8,0xf6,0xbe,0x62,0x60,0xd8,0xcb,0xc2,0xc0,
+ 0x74,0x19,0x58,0x22,0x83,0xd7,0x19,0xfc,0x87,0x62,0xe8,0x92,0x43,0xa6,0xbf,0x40,
+ 0x37,0x6a,0x32,0xdc,0x7,0xcd,0xd5,0x30,0x43,0x9d,0x1,0x6e,0x8f,0xc1,0x3a,0x70,
+ 0xff,0xc0,0x4a,0x81,0x65,0x30,0xc3,0xcb,0x8f,0x92,0xc,0x9c,0x42,0xbf,0x18,0x36,
+ 0x2e,0x5b,0xc1,0xe0,0x6c,0xc4,0xc8,0xa0,0x6c,0x54,0xc5,0xf0,0xff,0x27,0x13,0x3,
+ 0x13,0xe3,0x6f,0x86,0xef,0xdf,0x5f,0x32,0xfc,0x7d,0xb3,0x84,0x81,0xe3,0xdf,0x19,
+ 0x60,0xe9,0xe,0xc,0x8,0x60,0xf6,0x4,0x27,0x37,0x60,0xa0,0x7e,0xfd,0xfe,0x97,
+ 0xe1,0xf5,0xfd,0x57,0xc,0xfc,0x4c,0x5f,0x19,0xfe,0x1,0x93,0x3d,0x33,0xb7,0x18,
+ 0xb0,0xa4,0xe3,0x66,0xb8,0x78,0xe8,0x3a,0x3,0x9b,0x20,0xb0,0xe5,0xf9,0xed,0x32,
+ 0xcc,0xf3,0xa0,0x15,0x63,0xa0,0x3c,0xfc,0x13,0x20,0x80,0x50,0x2,0x80,0x19,0x3a,
+ 0x7f,0xc6,0xcf,0xc3,0x5,0x8c,0x1,0x11,0x86,0xda,0xda,0x46,0x86,0x5f,0x3f,0xbf,
+ 0x33,0xec,0xda,0xb9,0x9b,0xc1,0xd3,0xdb,0x1b,0x32,0x6e,0x78,0xfc,0x38,0x83,0x9e,
+ 0x9e,0x31,0x3,0x3f,0xb0,0xaf,0xc0,0xca,0x8,0x8c,0x49,0xa0,0xa5,0xca,0xbc,0xb2,
+ 0xc,0xfb,0xa4,0xee,0x33,0xec,0x75,0xbe,0xc2,0x20,0x25,0x76,0x8e,0xe1,0x1f,0xb,
+ 0xf2,0xca,0x9b,0xff,0x70,0x8a,0x99,0x83,0x99,0xe1,0x3f,0xd0,0xe,0xec,0xad,0x5e,
+ 0x26,0xf8,0xa8,0x4,0xd3,0xf7,0x5f,0xc,0x22,0xf7,0xbf,0x31,0x1c,0xba,0x70,0x89,
+ 0x61,0x56,0x66,0x0,0xa8,0x10,0x0,0x77,0xc9,0x99,0x59,0x81,0xd9,0x8d,0xb,0xd8,
+ 0x5c,0xd7,0x8,0x61,0x60,0xb8,0xb5,0x94,0x81,0xe3,0x13,0x30,0xef,0xf3,0x89,0x83,
+ 0x3,0xf1,0xcf,0x6f,0x60,0xd9,0xf4,0xf0,0x5,0x3,0xc7,0xef,0x8f,0xc0,0xa2,0xe0,
+ 0x37,0xc3,0x87,0xef,0xff,0x18,0x8e,0xde,0xfd,0xc2,0x70,0xf3,0xde,0x76,0x86,0xef,
+ 0xb2,0x5c,0xc,0x13,0x8a,0x8a,0x19,0x12,0x12,0x12,0xbe,0x23,0x5,0x0,0x88,0xfd,
+ 0xb,0x20,0x80,0x58,0x10,0x2e,0x4,0x5a,0xc3,0x8,0x61,0xfe,0xf8,0xf9,0x83,0x81,
+ 0xe5,0xc7,0x4f,0x86,0x97,0x2f,0x9e,0x81,0xdb,0xec,0xaa,0x5a,0x9a,0xe0,0xde,0x1d,
+ 0x1f,0x1f,0x1f,0x83,0x9d,0x95,0x5,0xb0,0xe1,0xc2,0xa,0x2e,0xa4,0xa4,0xf9,0x84,
+ 0x18,0x5e,0x3,0x3d,0x75,0xef,0xd1,0x4b,0x6,0x7d,0x26,0x6e,0x86,0x9b,0x57,0x1e,
+ 0x31,0xc8,0x9c,0x7f,0xc3,0xf0,0x8f,0x95,0x9,0x69,0xba,0x2,0x65,0xee,0x2,0x3e,
+ 0x8b,0x83,0xbc,0xc8,0xb,0x99,0xd,0xac,0xa3,0x80,0x65,0x18,0x33,0xc3,0x9f,0xe7,
+ 0x7f,0x19,0x58,0x6f,0x5d,0x66,0x50,0x55,0xc9,0x4,0x9,0x2,0xe5,0xfe,0x43,0xfa,
+ 0xb,0xc0,0x5e,0x2a,0x68,0xdc,0xef,0x9b,0x92,0x1b,0xc3,0xff,0x5b,0x9b,0x18,0x38,
+ 0x7f,0x7d,0x64,0xf8,0xf2,0x9f,0x87,0xe1,0xd6,0xe5,0xc7,0xc,0x3c,0xff,0x80,0xb5,
+ 0xd6,0xbf,0x1f,0xc,0xac,0x4c,0xff,0x19,0xce,0x3d,0xfc,0xc6,0x70,0xe1,0xda,0x73,
+ 0x6,0x46,0x36,0x56,0x86,0xd8,0xf0,0x58,0x6,0x41,0x41,0x41,0x6,0x6,0xc4,0x42,
+ 0xc9,0x6f,0xd0,0x69,0xcb,0xdf,0x0,0x1,0xc4,0x2,0x4d,0x8c,0xa0,0xe1,0x92,0x9f,
+ 0x42,0x3c,0xc2,0xd0,0xc5,0xa,0x2,0xc,0xf7,0xaf,0x5c,0x63,0x78,0xf5,0xe9,0x2b,
+ 0x83,0xb8,0xa8,0x14,0x83,0xba,0x8a,0x2a,0x30,0x74,0xfe,0x43,0xcb,0x9,0x41,0x86,
+ 0x4f,0xef,0xbf,0x1,0x53,0x1c,0x13,0xc3,0x2f,0x60,0xb6,0x78,0xf7,0xed,0xd,0xc3,
+ 0x4f,0x60,0xc3,0x47,0xfd,0xb7,0x10,0x83,0xc1,0x1d,0x41,0x6,0xbe,0x77,0x62,0x40,
+ 0xa7,0x32,0x62,0xf6,0xb6,0x18,0x21,0x4b,0xdc,0x60,0x6c,0xa6,0xff,0xb0,0xf8,0x46,
+ 0x55,0xf3,0x1f,0xe8,0x49,0x46,0xa0,0xb9,0x6f,0x81,0xb1,0x6a,0x63,0xa6,0xce,0xc0,
+ 0x4,0x1a,0x4b,0xfc,0x5,0x5e,0x54,0x4,0x74,0xc3,0xf,0x60,0x99,0xf1,0xe,0x98,
+ 0x8a,0x3e,0x33,0x7c,0xff,0xfa,0x87,0xe1,0x13,0xaf,0x5,0x3,0xef,0xdb,0x43,0xc,
+ 0xf7,0x1e,0xbf,0x64,0xf8,0x7,0x8c,0x20,0x16,0x6e,0x60,0x30,0x1,0xcb,0x82,0xed,
+ 0x37,0xff,0x32,0x54,0xae,0x7b,0xcf,0xc0,0xcb,0x2f,0xc4,0x90,0x92,0x90,0xce,0xf0,
+ 0xff,0xc5,0x4f,0x6,0x11,0x7,0xf0,0x78,0x0,0x68,0xc9,0xc9,0x27,0xa4,0x0,0xf8,
+ 0x7,0x10,0x40,0xa0,0x0,0xf8,0x3,0xad,0x16,0x3e,0x3f,0x7f,0xf3,0x8a,0x81,0x87,
+ 0x95,0x87,0x81,0x1d,0x58,0x88,0x29,0x2a,0xa9,0x32,0x68,0x0,0xab,0xa6,0x9f,0xc0,
+ 0x4e,0xc4,0x6f,0xa0,0x87,0xff,0x3,0xab,0x18,0x41,0x1,0x56,0x6,0x61,0xd,0xf,
+ 0x86,0x55,0x67,0x58,0x18,0x4c,0x35,0x98,0x19,0x76,0x5d,0xf8,0xce,0xb0,0x38,0x94,
+ 0x93,0x41,0x8,0xd4,0x8b,0x2e,0x29,0x64,0x50,0x7,0xfb,0xc2,0x92,0x2a,0xf5,0xbe,
+ 0xbd,0x5b,0x20,0xc3,0xbc,0xde,0x68,0x60,0xec,0x3,0x3d,0xf5,0xe7,0x27,0xb0,0xda,
+ 0xfc,0x1,0xcc,0xee,0x6f,0x81,0x59,0xee,0x33,0xc3,0xb7,0x4f,0xdf,0x18,0xbe,0x7f,
+ 0xfe,0xce,0xf0,0xfd,0x27,0xb,0xc3,0xfd,0x67,0xbc,0xc,0x5c,0x6f,0x6f,0x30,0x88,
+ 0x8,0x72,0x32,0xb0,0x3,0xcb,0x99,0x79,0xa7,0x7f,0x33,0xf4,0xee,0x78,0xcf,0x60,
+ 0xa8,0x6f,0xc2,0x90,0x98,0x96,0x8,0x6e,0x76,0x83,0xaa,0x73,0xe8,0x32,0xbf,0x57,
+ 0xd0,0x40,0x0,0x7,0x0,0x68,0xad,0x30,0x40,0x0,0xb1,0x40,0x43,0x2,0x94,0x34,
+ 0xde,0x6a,0xab,0x68,0xf9,0x32,0x60,0x5f,0x2a,0xcb,0x8,0x2d,0xae,0xc0,0xeb,0x9,
+ 0xa7,0x2c,0x4f,0xec,0xfb,0x71,0xe5,0xf,0x83,0xf,0xf,0x13,0x83,0x30,0xd7,0xc2,
+ 0x22,0x6,0xa4,0x5,0xc8,0xe8,0xa9,0x9e,0xa8,0x39,0x2d,0xc4,0x62,0x4d,0x60,0x9f,
+ 0x88,0x47,0xb4,0xa2,0xbe,0x2c,0xf7,0xe3,0xfb,0x1b,0x8c,0x7c,0xdc,0xc0,0x56,0xcd,
+ 0xdf,0xf,0xc0,0x8e,0xdc,0x2f,0x60,0x1e,0xff,0xc9,0xf0,0xeb,0x1b,0xb0,0x5a,0x6,
+ 0xa6,0xca,0xef,0x5f,0x7f,0x32,0x7c,0xfa,0x8,0x6c,0xa8,0x1,0x6d,0xfd,0xf1,0x8f,
+ 0x8d,0x81,0x13,0xd8,0xbf,0xe0,0x62,0x63,0x66,0x58,0x73,0xec,0x5,0xc3,0xcc,0x43,
+ 0xbf,0x81,0x1d,0x39,0xc1,0x9f,0x6f,0xfe,0xbd,0x3a,0x1b,0x1f,0x1f,0x7f,0x19,0xea,
+ 0x61,0xd0,0x12,0xd9,0x17,0xa0,0xb9,0x5a,0x28,0xfb,0x1b,0xac,0x18,0x6,0x8,0x20,
+ 0x90,0xe5,0x9c,0xc,0x84,0x17,0x4b,0x33,0x42,0xc5,0xd8,0xa0,0xf2,0x1c,0xd0,0x94,
+ 0xfb,0xf,0x9a,0x7a,0x7e,0xc0,0xf2,0x14,0x99,0x1,0xc0,0x6,0xb5,0x5f,0xc8,0x2f,
+ 0xd1,0xd3,0x91,0xe3,0x7,0x8f,0xd5,0xf1,0xc3,0x47,0xa5,0x33,0x52,0x63,0x39,0xb9,
+ 0xd8,0xbf,0x33,0x44,0x4,0xd9,0x31,0x70,0x0,0x4b,0xf9,0x77,0xaf,0x3f,0x80,0x57,
+ 0x7f,0x7e,0xfd,0x2,0x8c,0x7d,0x60,0x41,0xc9,0x8,0x6c,0x44,0xfd,0x7d,0x71,0x89,
+ 0x41,0x85,0xe9,0x36,0xc3,0xce,0xd3,0x4f,0x19,0x9a,0xb7,0x7e,0x67,0xe0,0xe6,0xe3,
+ 0xfd,0xf5,0xfc,0xe3,0x8b,0xcd,0x1f,0x5f,0x7f,0xba,0xf,0x9a,0x9b,0x1,0xe2,0x37,
+ 0x50,0x4f,0xbf,0x85,0x6,0xc6,0x7,0x68,0x39,0xf0,0x13,0x98,0x0,0xfe,0x1,0x4,
+ 0x10,0xb,0xd4,0xd1,0x5f,0xa1,0x59,0xe1,0x2b,0x3,0xf6,0xe5,0xf2,0xc8,0x29,0x80,
+ 0xd,0x8a,0x61,0xe5,0xd7,0x2f,0x24,0xcf,0x93,0x9b,0x2,0x40,0x29,0xe,0xd4,0xe6,
+ 0xfe,0x75,0x66,0xff,0xf9,0xb3,0xef,0x5f,0xbf,0xff,0x9e,0x94,0x98,0x95,0xa2,0xa0,
+ 0x62,0xc1,0xd0,0xd8,0x54,0xcb,0x70,0xf8,0xc8,0x59,0x86,0xa6,0x92,0x78,0xb0,0xe7,
+ 0x7f,0xfd,0xfc,0x5,0x6e,0x9d,0xb2,0xb0,0x30,0x33,0xb0,0x1,0x1b,0x4d,0xdf,0x80,
+ 0x8d,0xa5,0xe9,0x3b,0xef,0x33,0x2c,0x3a,0xf2,0x9b,0x81,0x47,0x5c,0xf0,0xcf,0x87,
+ 0x1f,0xef,0x36,0x1,0x3d,0x7f,0x3,0x34,0x3c,0x8,0xc5,0xa0,0x3e,0xf7,0x47,0x68,
+ 0x2a,0xff,0xe,0x8d,0x2c,0x78,0x44,0x1,0x4,0x10,0xb,0xd4,0xd1,0xb0,0xf5,0xf4,
+ 0xb8,0x16,0x5,0x31,0x42,0xc5,0x61,0x81,0xc0,0x8c,0x14,0x0,0x7f,0x91,0x3c,0xff,
+ 0x8f,0x82,0x0,0x0,0x37,0x4f,0xa5,0x95,0xa4,0xa4,0xbf,0x7d,0xfa,0x21,0xaf,0xa4,
+ 0xa8,0xc4,0x3c,0x71,0x62,0x17,0xc3,0xad,0x5b,0x57,0x19,0x6e,0xdd,0xfc,0xcf,0xa0,
+ 0xad,0xac,0xc0,0x10,0xe0,0x6a,0xc1,0xc0,0xca,0xc2,0xa,0x5e,0xb4,0xf9,0xee,0xc3,
+ 0x67,0x86,0x1b,0x17,0x6f,0x31,0x6c,0xde,0x75,0x8e,0xe1,0xee,0x3d,0x66,0x6,0x6e,
+ 0x71,0xce,0x2f,0xbf,0x59,0x7e,0xec,0x79,0xf1,0xe0,0xd5,0x79,0xa8,0xc7,0x1f,0x43,
+ 0x53,0xc0,0x47,0x58,0x95,0x7,0x75,0xdf,0x5f,0xa4,0x46,0xa,0x3,0x40,0x0,0xb1,
+ 0x20,0x71,0xfe,0x11,0xe1,0x50,0x58,0x4a,0x60,0x42,0x99,0x4e,0x40,0x33,0x94,0x9c,
+ 0x89,0x5d,0x68,0x4,0x30,0x9d,0xde,0x77,0xee,0x9a,0xb8,0xb8,0xa4,0xc4,0x8e,0x1d,
+ 0x5b,0x19,0x4e,0x9d,0x3a,0xe,0x57,0x70,0xf8,0xd4,0x65,0x6,0xb,0x43,0xd,0x86,
+ 0xb,0x57,0xef,0x31,0x1c,0x39,0x73,0x9d,0xe1,0xce,0xc3,0x97,0xc,0x5f,0xbe,0xfc,
+ 0x64,0xf8,0xf1,0xe1,0x17,0x3,0xaf,0xc,0xf7,0xc3,0x77,0x1f,0xde,0xec,0x7b,0xfb,
+ 0xe2,0xfd,0x4d,0xa0,0xd2,0xfb,0xd0,0x0,0x78,0x9,0x4d,0xf6,0xb0,0xec,0x89,0x15,
+ 0x0,0x4,0xd0,0x60,0xd9,0x13,0x0,0x5b,0xb0,0xd,0x2a,0x8b,0x2c,0x80,0x4d,0xe4,
+ 0x4d,0xc0,0xde,0x1f,0x7c,0x10,0x82,0x99,0x89,0xe9,0x97,0x10,0x9f,0x10,0x1b,0x1f,
+ 0x2f,0x37,0xc3,0xd7,0x1f,0x3f,0xff,0x72,0x9,0x70,0xff,0xfe,0xf9,0xf1,0x37,0x8b,
+ 0xba,0xa5,0x3c,0xcb,0xbe,0x8d,0x87,0x17,0x40,0x4b,0xf7,0x67,0xd0,0x58,0x7f,0xc,
+ 0x2d,0xf0,0x60,0xd5,0xdd,0x6f,0xdc,0x53,0x69,0xff,0x19,0x0,0x2,0x88,0x65,0x90,
+ 0x4,0xc0,0x7f,0xa8,0x43,0x41,0x49,0xf5,0x37,0xd0,0xf3,0xb7,0xa0,0x85,0x15,0xa8,
+ 0xd4,0xfe,0x2a,0x29,0x27,0x29,0x5,0x54,0xc0,0xfd,0xfa,0xdd,0xbb,0x77,0x9f,0x3e,
+ 0x7d,0xfe,0xc0,0xfd,0x93,0x8b,0xe5,0xeb,0xa7,0x6f,0x1f,0x9f,0x6e,0x7c,0xf4,0x9,
+ 0x5a,0xc8,0x3d,0x87,0xe2,0x17,0xd0,0xc0,0xf8,0xa,0xf5,0x3c,0xc1,0x19,0x1d,0x80,
+ 0x0,0x1a,0x6c,0xbb,0x42,0x98,0xa0,0xb5,0x1,0xa8,0xd9,0x26,0xa,0x1a,0xa1,0x7,
+ 0x8d,0xaf,0x40,0x31,0xb7,0x98,0xac,0xa8,0xd0,0xab,0xc7,0xaf,0xdf,0x40,0x3,0xea,
+ 0x2b,0x34,0x7f,0xbf,0x43,0xaa,0xdf,0x3f,0x40,0xb,0xbb,0xdf,0xc4,0x78,0x1e,0x94,
+ 0x2,0x0,0x2,0x88,0x65,0x90,0x5,0x0,0x2c,0x25,0x7c,0x61,0x40,0xac,0xeb,0xff,
+ 0xb,0xad,0xb6,0xd8,0x81,0x9e,0x67,0x44,0xaa,0xb5,0xbe,0x20,0xb5,0xeb,0x3f,0x41,
+ 0x3,0xe5,0x1b,0xb4,0x2c,0x21,0x7a,0x8c,0x1d,0x20,0xc0,0x0,0x1c,0x2e,0x8a,0xb8,
+ 0xe2,0x1,0xb7,0x9d,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+
+ // /home/matthew/pencil_dev/icons/clear.png
+ 0x0,0x0,0xd,0x7d,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x28,0x0,0x0,0x0,0x25,0x8,0x6,0x0,0x0,0x0,0x30,0x60,0xab,0xb3,
+ 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,0xd8,
+ 0xeb,0xf5,0x1c,0x14,0xaa,0x0,0x0,0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x6d,
+ 0x98,0x0,0x0,0x73,0x8e,0x0,0x0,0xea,0x48,0x0,0x0,0x86,0x0,0x0,0x0,0x77,
+ 0xef,0x0,0x0,0xd0,0xf0,0x0,0x0,0x32,0xf7,0x0,0x0,0x1c,0x74,0xb6,0xd2,0x6c,
+ 0xb,0x0,0x0,0xc,0xf3,0x49,0x44,0x41,0x54,0x78,0xda,0x84,0xcd,0x31,0xa,0x80,
+ 0x30,0xc,0x85,0xe1,0x26,0xd2,0xe,0xa5,0x3d,0x80,0x63,0x67,0xef,0xe0,0x5,0x3c,
+ 0xbf,0x20,0x88,0x9b,0x93,0x74,0x29,0xa5,0x94,0xa6,0x60,0x8c,0x17,0xd0,0x6f,0x7a,
+ 0x43,0xf8,0x3,0xcc,0xac,0xbe,0x10,0x11,0x18,0x63,0x38,0xa5,0x84,0xce,0xb9,0x41,
+ 0xdc,0x42,0xd5,0x5a,0xd9,0x5a,0xcb,0xef,0x96,0x1b,0x4,0x0,0x8b,0x88,0x63,0x29,
+ 0x65,0x8e,0x31,0x2e,0xad,0xb5,0x49,0x6b,0x4d,0x39,0xe7,0xd3,0x7b,0x7f,0x84,0x10,
+ 0xd6,0xde,0xfb,0x26,0xff,0x76,0xe9,0x5c,0x92,0x6e,0xea,0x87,0xb4,0xe1,0x11,0x40,
+ 0x8c,0xd8,0x1c,0x8,0x34,0x9c,0x91,0x9d,0x9d,0x1d,0x24,0xc1,0x4,0xc4,0x2c,0x40,
+ 0xcc,0x9,0xc4,0x2,0x7f,0xfe,0xfc,0xe1,0x6,0x3a,0x4,0xa4,0xe7,0x27,0x90,0xfa,
+ 0x1,0x74,0xec,0x6f,0x90,0x9a,0x2f,0x5f,0xbe,0x8,0xbc,0x7b,0xf7,0x4e,0x1e,0xe4,
+ 0x28,0x20,0xdf,0x12,0x28,0x6e,0xc8,0xcd,0xcd,0x2d,0x9,0xc4,0xcc,0x2c,0x2c,0x2c,
+ 0x7f,0x5e,0xbf,0x7e,0xfd,0xe5,0xef,0xdf,0xbf,0x2f,0x81,0x8e,0xbd,0x9,0xf4,0xd4,
+ 0x41,0x9,0x9,0x89,0xfd,0x40,0x75,0xf7,0x81,0xf2,0xdf,0x81,0x34,0xde,0x10,0x2,
+ 0x8,0x40,0x7,0x19,0xa4,0x0,0x8,0xc3,0x40,0x90,0xaa,0x94,0x4,0x11,0x72,0x51,
+ 0x51,0xda,0x7b,0xff,0x8f,0xff,0xf1,0x13,0x12,0xf1,0xe6,0xe4,0xae,0x87,0x52,0x48,
+ 0xe8,0x76,0x76,0x86,0x8f,0x59,0x22,0x34,0x1,0x93,0xb9,0x47,0x4c,0x15,0x4c,0x34,
+ 0xda,0x37,0x2c,0x2e,0x40,0x74,0xc0,0x3f,0x7c,0x74,0x85,0x21,0xf6,0xbd,0xbb,0x4f,
+ 0x0,0x14,0xcc,0x54,0x33,0xdb,0x55,0x75,0xa6,0xbd,0x84,0x7d,0x11,0xc9,0x18,0x14,
+ 0xf2,0xc,0xf0,0x8d,0xf9,0x4a,0x4e,0x14,0x3d,0x78,0x7f,0x72,0xee,0xe8,0xfc,0x7,
+ 0xf8,0xa,0xc0,0x26,0x19,0xab,0x0,0x8,0x3,0x31,0xb4,0x2d,0x9c,0x8e,0x42,0xbb,
+ 0x3a,0x3a,0xb8,0xa8,0xff,0xbf,0xf6,0x43,0x5c,0x3b,0x15,0xa,0x2e,0x37,0xd8,0xea,
+ 0x2b,0x38,0x3a,0x1c,0x84,0x92,0x5e,0x42,0x2e,0x7f,0x6,0x47,0x12,0xf2,0x9c,0x6a,
+ 0x46,0x74,0x65,0xf9,0xe,0xde,0x54,0x75,0x61,0x26,0xf0,0x50,0x4a,0x69,0xf0,0x2a,
+ 0xa6,0x1b,0x9c,0x7,0x53,0x2e,0x84,0x20,0x18,0x13,0xde,0x5,0x5e,0xaf,0x82,0x45,
+ 0xdc,0xc0,0x31,0x24,0xe5,0xc0,0x82,0x39,0x9f,0x52,0x3a,0x72,0xce,0xae,0xff,0xa1,
+ 0x3a,0x11,0xfe,0x89,0xde,0xc5,0xdc,0x54,0xa4,0x7d,0x89,0xd6,0x7e,0x61,0x76,0xdb,
+ 0x57,0x0,0x1e,0xc9,0x18,0x85,0x42,0x18,0x8,0xa2,0xd3,0xb,0x29,0x82,0x49,0x67,
+ 0x95,0x52,0xfb,0x7f,0xff,0x3b,0x4,0xec,0x16,0x2,0x36,0x41,0x25,0x8d,0xad,0xf0,
+ 0xdf,0x36,0xb6,0x9,0x3b,0xf3,0x76,0x66,0xbf,0x8a,0x19,0xf6,0x3a,0x3,0x69,0x6c,
+ 0x6c,0xf8,0x63,0xfb,0x15,0x93,0x32,0xc6,0x58,0x7a,0xef,0x33,0x26,0x53,0x29,0xc5,
+ 0x85,0xe5,0xc6,0xfc,0x89,0x54,0x54,0x6b,0x55,0x8,0x41,0xc0,0xf9,0x5d,0xa,0x78,
+ 0xb9,0x26,0xc0,0xca,0x39,0xab,0xb5,0x26,0x92,0x55,0x4a,0x49,0xa4,0xe9,0x33,0xaf,
+ 0x99,0x3d,0xe8,0x1b,0x92,0x7b,0x8c,0xd1,0x78,0x3b,0xf1,0xbf,0x0,0xbe,0x69,0xa6,
+ 0xa3,0x7f,0xc0,0x32,0x1c,0xf4,0x2f,0x0,0x93,0x64,0x88,0x3,0x20,0xc,0x43,0xd1,
+ 0x6,0x83,0xc1,0x4c,0x70,0x81,0x25,0xdb,0x5,0x50,0x1c,0x87,0x5b,0x72,0x6,0x3c,
+ 0x72,0x17,0xa8,0x6c,0x46,0xc0,0x90,0xf0,0x5a,0x85,0xa8,0xd9,0xba,0xbf,0xbe,0xdf,
+ 0xff,0xcf,0xe0,0x68,0x66,0x2b,0x79,0xd9,0x58,0xe3,0xc2,0xa7,0x33,0xc3,0x4c,0xbe,
+ 0xea,0xd6,0xda,0xe0,0x2e,0xd4,0x5a,0x5,0x4a,0x87,0x9,0x67,0x80,0x11,0x44,0x85,
+ 0x37,0x82,0xb3,0x31,0xa4,0x17,0xe,0xc6,0x19,0x7a,0x42,0xde,0xa2,0xcf,0x61,0x72,
+ 0xce,0x92,0x52,0x12,0x80,0x5f,0xee,0x1f,0x55,0xed,0xa5,0x94,0xb,0x3d,0xcf,0xf2,
+ 0x8d,0x96,0x32,0xe0,0x49,0xed,0xc0,0x1c,0x44,0xcc,0x3e,0x1,0x38,0x26,0x43,0x24,
+ 0x0,0x61,0x18,0x8,0x1e,0x3,0xae,0x22,0xa6,0xa,0xc3,0x47,0x2a,0xe0,0xff,0x16,
+ 0x51,0x5f,0x53,0x85,0xc7,0x30,0xec,0x45,0x75,0x26,0x4d,0x2e,0xcd,0x5e,0x9a,0x16,
+ 0x53,0xbc,0x30,0x7d,0x40,0xeb,0x22,0xf9,0x64,0xaa,0x1d,0xa1,0x8d,0x5d,0x4b,0x71,
+ 0x6c,0x4e,0x4a,0x7e,0x9c,0x1b,0x81,0x5e,0xbe,0xf3,0x89,0x98,0xe6,0x9c,0x19,0xa7,
+ 0x4e,0x26,0xc,0x1d,0x61,0xa3,0xd0,0x53,0x6b,0x4d,0x63,0xc,0xf5,0xde,0x33,0x5e,
+ 0x6b,0x15,0x3b,0xb7,0xa2,0x5f,0x20,0x55,0x4c,0xd5,0x6e,0x78,0xf,0x19,0xfa,0xe5,
+ 0xc3,0x1d,0xe4,0x7d,0x11,0xf1,0xd0,0xf7,0xfe,0x5,0xe0,0x98,0x8c,0x91,0x0,0x4,
+ 0x42,0x18,0x48,0x67,0xa7,0x35,0x63,0x69,0xc9,0x13,0xf8,0xff,0x43,0xac,0xfc,0x86,
+ 0xbb,0xa1,0x3b,0xe6,0x20,0x21,0x99,0x84,0xa0,0x40,0xd8,0x7a,0x42,0xf2,0x1,0xe0,
+ 0xe2,0xea,0xf4,0xe9,0x15,0x1f,0x63,0x95,0x4,0x2d,0x92,0x18,0x8b,0x25,0xa8,0x5a,
+ 0xbe,0x2d,0x81,0x50,0x3e,0xca,0x49,0x4c,0x5b,0x77,0xb7,0x50,0x29,0xb3,0x33,0x93,
+ 0x43,0xc5,0x22,0xf1,0x12,0x2a,0x14,0xaa,0xee,0xe,0x41,0xc3,0x89,0xe2,0x7,0xf3,
+ 0x37,0x6e,0x2c,0xfb,0x5f,0x76,0x7c,0xbf,0x0,0x34,0x92,0xcb,0xd,0x0,0x21,0x8,
+ 0x5,0x17,0x2f,0xc6,0xbb,0xa7,0xf5,0x20,0x35,0xd8,0x7f,0x23,0x34,0x40,0x1d,0xbe,
+ 0x21,0x91,0x84,0x44,0x5,0xe4,0x37,0xad,0x2c,0x66,0x4d,0x1f,0x4d,0x4d,0xe8,0x17,
+ 0x3b,0x9d,0x44,0x8,0xc5,0x21,0x24,0x60,0x6d,0xe8,0x7b,0x23,0x9,0x77,0x26,0x4c,
+ 0xc1,0x8,0xc5,0x64,0xe6,0xa7,0x29,0x94,0x3d,0x22,0xaa,0x1,0xce,0x30,0x88,0xd2,
+ 0x14,0x38,0x10,0x3,0xb3,0xa0,0xf2,0x30,0xd3,0x36,0xcc,0xdd,0xe5,0x32,0xb6,0xd8,
+ 0x3d,0xf2,0x5b,0x57,0x0,0x1a,0xe9,0x20,0x5,0x40,0x28,0x4,0x2,0x68,0x44,0x74,
+ 0x80,0xbf,0x91,0x16,0xae,0x83,0xee,0x7f,0xc0,0xe6,0x49,0x2d,0x44,0xf8,0x8e,0x5f,
+ 0x67,0xc6,0x51,0x2a,0xa0,0xd8,0x7f,0x5e,0x89,0x15,0xab,0xe,0x56,0xb8,0x33,0xcc,
+ 0xb0,0x64,0x2d,0x2b,0x3f,0xec,0x28,0xe4,0xbe,0xc,0x91,0xa9,0x61,0x88,0x81,0x6a,
+ 0x16,0x54,0xcb,0xdd,0xce,0xd2,0xd4,0xd5,0xef,0xd,0xd9,0xee,0xde,0xaa,0x6a,0xea,
+ 0x7a,0xc5,0xef,0x64,0x94,0xdb,0x83,0x59,0xf9,0xf7,0x89,0x0,0xf7,0x2b,0x0,0x53,
+ 0xf5,0x92,0x3,0x20,0x8,0xc4,0x0,0x54,0x82,0x5e,0x40,0x16,0x26,0xb3,0xf4,0xfe,
+ 0x87,0xb4,0x8f,0x40,0xe2,0x8e,0x4f,0x68,0x4b,0xa7,0x3,0x67,0xba,0xae,0x7,0xf0,
+ 0x8e,0x13,0x6f,0x36,0xbd,0x55,0x4d,0x29,0x88,0x5a,0xf9,0x3c,0x96,0xcb,0x73,0xac,
+ 0x4b,0x9,0x51,0x62,0x64,0xc8,0x77,0x59,0x11,0x98,0x5b,0x97,0x35,0xd1,0x90,0x4f,
+ 0x8d,0xe4,0x2c,0x27,0xab,0x6a,0xe6,0x14,0xde,0xce,0xeb,0xef,0x83,0x80,0xdb,0x72,
+ 0x99,0x2b,0x3a,0x46,0xdc,0x7f,0x3e,0x1,0x68,0xaa,0x83,0x1c,0x0,0x20,0x20,0x86,
+ 0xa2,0x91,0xd8,0x59,0x3b,0x82,0x85,0xfb,0x5f,0x50,0x9f,0xa4,0x2b,0x62,0xa4,0xfe,
+ 0x74,0xc,0x33,0x9b,0x76,0xe0,0x4e,0x68,0x6f,0x40,0x57,0xc6,0xd1,0xfb,0xa6,0x84,
+ 0xc4,0x89,0x10,0x4,0xd0,0xc6,0xd0,0x8d,0x1c,0xe0,0x34,0x8,0x90,0xd6,0xf2,0x14,
+ 0x7d,0x77,0x80,0x72,0x5f,0xe3,0x70,0x57,0xbc,0xa5,0xa6,0x55,0xcd,0x9a,0x20,0x69,
+ 0xa5,0x97,0x78,0xe6,0x7e,0xa7,0x95,0xb3,0xf6,0x13,0x80,0x66,0x7a,0xb7,0x1,0x0,
+ 0x4,0x81,0x0,0x1a,0x6b,0x47,0xa0,0x73,0x2,0xd7,0x71,0xff,0x35,0x8c,0xf1,0x5e,
+ 0x81,0x95,0x31,0x8,0xf7,0x83,0xc5,0x27,0xcb,0xb0,0x2,0x66,0xe7,0x61,0x66,0xd8,
+ 0x60,0x2d,0x10,0x86,0xb4,0x7a,0x3e,0xf6,0x5d,0x73,0xc0,0xd,0xa6,0xb4,0x5c,0xb2,
+ 0x8d,0x3a,0x0,0xb6,0x1a,0xac,0xa6,0x92,0xc3,0x5e,0x84,0x5b,0x65,0x51,0x41,0x40,
+ 0x2f,0x75,0x16,0x12,0x48,0x84,0x11,0x49,0x34,0x5e,0x55,0xdd,0x2f,0x80,0x58,0x9e,
+ 0x3e,0x7d,0x1a,0xf,0x8c,0x6f,0x1e,0x60,0xb4,0xa,0x3,0xd,0x65,0x3,0x26,0x4e,
+ 0x46,0x90,0x6,0x58,0x14,0x81,0x1c,0xb,0xcb,0xa9,0x20,0x47,0x82,0x1c,0x8,0xb2,
+ 0xc,0x84,0x41,0x3e,0x7,0x59,0x2,0x4c,0xd8,0x60,0xc,0xf3,0x4,0x2c,0x74,0x40,
+ 0x8e,0x3,0x39,0xa,0xa4,0x16,0xe4,0x21,0x58,0x3a,0x3,0x1,0x68,0xd1,0x2,0x17,
+ 0x3,0x79,0x8,0x94,0x7c,0x80,0xf8,0x3f,0x30,0xb4,0xff,0x1,0xdd,0xf4,0x4e,0x4e,
+ 0x4e,0xee,0x39,0x40,0x0,0x9a,0xea,0xc0,0x4,0x0,0x10,0x4,0xa2,0x28,0x44,0xcb,
+ 0xb4,0xff,0x2e,0x2d,0xd2,0x0,0x75,0x2f,0xb8,0x20,0xc,0xc4,0xd0,0x6f,0x67,0x33,
+ 0x81,0x2b,0xad,0x19,0x76,0x1c,0xc3,0xbc,0xca,0x20,0xfd,0x64,0xb4,0xc7,0x8f,0xa0,
+ 0x32,0x84,0x52,0xd1,0x4f,0xaa,0xaa,0x95,0x5c,0x67,0xa2,0x85,0x28,0x55,0xa3,0x53,
+ 0x51,0x55,0x40,0xa8,0xb1,0x48,0xf5,0xdc,0x4,0x3d,0x15,0x71,0x40,0xc4,0x7f,0x63,
+ 0x4f,0xa,0xd8,0xb9,0x77,0x3f,0x1,0x98,0xac,0xa3,0x23,0x0,0x20,0x18,0x6,0xa0,
+ 0x7f,0xf6,0x1f,0xcb,0xe,0x36,0x30,0x83,0xf,0x79,0x3d,0xbd,0xe3,0x53,0xb5,0x24,
+ 0x95,0x40,0x24,0x43,0x10,0x5b,0x5a,0x45,0x20,0x18,0x50,0x8,0x2a,0x56,0xa1,0xa0,
+ 0x58,0xbe,0x4c,0x75,0xa8,0x1e,0xa,0x5a,0xff,0x9e,0xca,0x2,0x65,0xb3,0xbe,0x57,
+ 0x3a,0xc1,0xf,0x7f,0x11,0x68,0x9f,0x39,0x76,0xd3,0xa,0x6,0x50,0x1e,0xb6,0x23,
+ 0xb6,0xa4,0x9e,0x1d,0x1d,0xcc,0x90,0xb7,0xae,0x0,0x62,0x81,0x15,0xbc,0xb0,0xb4,
+ 0xa4,0xa1,0xa1,0x1,0x36,0x18,0x54,0x3c,0x80,0xc,0x4,0x39,0xa,0x58,0xc1,0xc3,
+ 0xa3,0x6,0x14,0x3a,0x20,0xcb,0x41,0x6,0x82,0x30,0x88,0xf,0xb3,0x8,0xa6,0x6,
+ 0xc4,0x6,0x45,0x21,0xcc,0x71,0xa0,0xc4,0xf,0xa,0x51,0x63,0x63,0x63,0x6,0x60,
+ 0x3d,0xc,0xf6,0x3c,0x28,0x23,0xc2,0xd2,0x32,0xac,0xa4,0x0,0xc5,0x10,0x28,0x4,
+ 0x81,0xd1,0xfb,0x16,0x98,0xc4,0xae,0x2,0x3d,0xf1,0x6,0x20,0x0,0x93,0xf5,0xae,
+ 0x2,0x0,0x8,0xc3,0x50,0x74,0xf1,0xff,0x7f,0x55,0x70,0x75,0xb1,0x67,0xb8,0xe0,
+ 0x28,0xf4,0x91,0x84,0x36,0x75,0x35,0x57,0x94,0x51,0x84,0xf4,0x5d,0x9,0xc9,0x40,
+ 0xb6,0xc,0x94,0x6,0x2,0x53,0x0,0x28,0x9b,0x1d,0x89,0xf9,0xff,0x96,0xff,0x5b,
+ 0x9d,0x96,0x2b,0x6f,0x45,0x8c,0x38,0xf5,0x41,0xc6,0x18,0xc9,0x19,0xb3,0x3f,0x43,
+ 0x7e,0xf,0x8e,0xfb,0x4,0xe0,0xb1,0xde,0x8d,0x0,0x0,0x41,0x18,0x80,0x36,0xee,
+ 0xbf,0x22,0x43,0x78,0xf6,0xf2,0x38,0x63,0x61,0x23,0x47,0x30,0xfc,0xe2,0xe2,0x28,
+ 0xb0,0x3e,0xf3,0x40,0x59,0x1,0x90,0x3d,0xc7,0xa6,0x2c,0xb4,0xb5,0xaa,0x66,0x95,
+ 0x28,0xa7,0x3,0x4c,0x80,0xff,0x91,0x7c,0x3d,0x15,0x3b,0x32,0x29,0x21,0x7c,0x2a,
+ 0x83,0xb0,0x1,0xc,0x41,0xb1,0x32,0x30,0xee,0xe1,0x35,0xe9,0xd3,0x49,0xd8,0x34,
+ 0xf9,0xa,0x20,0x16,0x60,0xf0,0xee,0x7,0xc6,0xbb,0x4,0xd0,0x10,0x49,0x20,0xe6,
+ 0x3,0xfa,0x84,0x9,0x39,0x7d,0x80,0x82,0x1f,0x44,0x83,0xca,0x3a,0x50,0xb4,0x3,
+ 0x5b,0x1f,0x60,0x47,0x82,0x2c,0x2,0x39,0x2,0x24,0xf,0xa,0x45,0x58,0xce,0x6,
+ 0xa9,0x85,0xb5,0x78,0x40,0x1e,0x0,0x25,0x17,0x98,0x3,0x41,0x85,0x39,0x2c,0x69,
+ 0x20,0xa7,0x57,0x90,0x3a,0x50,0xe8,0x82,0xec,0x5,0xda,0xcf,0x8,0xa4,0x7f,0x1,
+ 0xcd,0xff,0x3,0xf2,0x20,0x40,0x0,0x1e,0xeb,0x28,0x5,0x60,0x10,0x86,0x1,0x28,
+ 0x82,0x78,0x27,0x77,0xe5,0x5d,0xd2,0xbc,0xb1,0x28,0xf8,0x67,0xda,0x26,0x6d,0xa4,
+ 0x33,0x8f,0xde,0xc8,0xbd,0xc3,0xee,0x61,0xa8,0xc8,0xfc,0xed,0x7c,0x75,0x1c,0xa0,
+ 0x82,0x80,0xed,0x76,0x8e,0x56,0x30,0x47,0x99,0x6b,0x91,0x84,0x6e,0x93,0x19,0x3,
+ 0xc5,0xeb,0x0,0x7c,0x89,0xfc,0xa,0x5d,0x95,0x6b,0xba,0xfe,0xb9,0x21,0x34,0x32,
+ 0xb3,0x33,0xb1,0x97,0x15,0xef,0x8,0x40,0x53,0x19,0xe2,0x0,0x0,0xc2,0x30,0x50,
+ 0x0,0x1a,0x83,0x20,0x98,0xfd,0xff,0xb,0x3c,0x65,0x8e,0x8f,0x10,0x7a,0x24,0xb5,
+ 0x30,0xd1,0x75,0xeb,0xad,0x8a,0xfa,0x5b,0x58,0xb9,0x72,0x67,0x65,0xe6,0xd4,0x5e,
+ 0x34,0x82,0x41,0xc7,0x8c,0x36,0x22,0x3e,0xfd,0x79,0x63,0xcc,0xb8,0xc8,0xfe,0x70,
+ 0x2d,0x2c,0xca,0xa3,0xe5,0x2e,0xd3,0x14,0x4e,0x11,0xc,0xea,0x1c,0x3a,0xfe,0x70,
+ 0x1d,0xc1,0xd4,0x38,0xc9,0x66,0xa6,0xd1,0x25,0xa3,0x8a,0x70,0xd7,0x85,0xb7,0x21,
+ 0x91,0xe7,0x9,0x40,0x73,0xb9,0xe3,0x0,0x8,0xc3,0x30,0x54,0x48,0x4c,0x8c,0xdc,
+ 0xff,0x64,0x9d,0xa2,0x88,0x8d,0xb,0x30,0x94,0xcf,0x7b,0x48,0x9e,0x13,0xc5,0xb1,
+ 0xeb,0xa6,0xe9,0x8a,0xef,0x4e,0x56,0x9e,0x1,0xf3,0xa3,0xbb,0x27,0x4d,0xbc,0x80,
+ 0x2f,0x19,0x13,0x16,0xb5,0x80,0x5,0xbd,0x65,0xfa,0x28,0xd,0x48,0x40,0xb5,0xe3,
+ 0x25,0xc1,0xf9,0xd1,0xfd,0xf1,0x0,0xab,0x9e,0xc4,0x54,0x54,0x75,0x3d,0xb6,0x6c,
+ 0x33,0x7a,0xde,0x5c,0x9f,0x41,0x6c,0xf0,0x10,0xbf,0xab,0xea,0x52,0x59,0x26,0xca,
+ 0x4e,0xee,0xf6,0x9,0x40,0x73,0x1d,0xab,0x0,0x8,0xc3,0x40,0x0,0x15,0x5c,0xfd,
+ 0xff,0x8f,0x12,0x9a,0x2f,0x70,0xd2,0x4d,0x9c,0xdd,0x4,0xef,0x15,0x32,0x95,0x96,
+ 0x92,0x4b,0xd2,0x4b,0x2f,0xc1,0xc1,0x37,0xde,0x5e,0x79,0xa6,0x33,0x11,0x1b,0x84,
+ 0xb6,0x48,0xd6,0xda,0x95,0x2d,0x72,0x0,0xdd,0x90,0x2,0x88,0x91,0x25,0xa,0x34,
+ 0x57,0xa0,0x9c,0x7,0xe6,0x4e,0x67,0xe,0xef,0x9c,0x55,0xd5,0xe4,0x9a,0xce,0x9a,
+ 0x14,0x2a,0x3c,0xb6,0x5,0x2e,0x93,0xbe,0xb0,0x31,0x86,0xfd,0x17,0xa7,0x9e,0xd8,
+ 0x3b,0xd2,0x79,0xef,0x49,0xc6,0x8d,0x42,0xbf,0x0,0x62,0x1,0x49,0x0,0x1d,0xf2,
+ 0x1,0xe8,0xea,0x27,0x40,0x47,0x7e,0x2,0x62,0x31,0x50,0xa7,0x7,0xe4,0x73,0x50,
+ 0x5a,0x3,0xf9,0xe,0x54,0x1c,0xc0,0x5a,0x29,0xa0,0x2,0x1d,0xc4,0x6,0x61,0x58,
+ 0x28,0x82,0xc,0x82,0x15,0x21,0xa0,0xa8,0x7,0xd1,0xa0,0x74,0x9,0x52,0xf,0xab,
+ 0x8d,0x64,0x64,0x64,0xc0,0x51,0xa,0xa,0x61,0x10,0x6,0x95,0xb9,0x20,0x39,0x68,
+ 0xc3,0xe3,0x37,0x50,0xff,0x6b,0xa0,0x9a,0x73,0x40,0x3d,0x7b,0x80,0xe9,0xfb,0x8,
+ 0x30,0x20,0x1e,0x2,0x3d,0xf2,0x19,0x20,0x80,0x58,0xa0,0x89,0xf6,0x3b,0x10,0xbf,
+ 0x4,0x86,0xc0,0x1b,0x20,0xad,0x0,0x94,0x0,0xa5,0x5c,0x46,0x50,0x50,0x83,0xd2,
+ 0x1f,0x28,0x84,0x40,0x69,0xd,0xe4,0x28,0x50,0x54,0xc1,0x2a,0x75,0x58,0x63,0x0,
+ 0x14,0x5a,0x20,0x3e,0x8,0xc0,0xca,0x35,0x98,0x67,0x40,0x72,0xa0,0x56,0x33,0x88,
+ 0x6,0xf6,0x6d,0xc0,0x35,0x13,0x28,0x16,0x60,0xad,0x24,0x10,0x6,0xaa,0xfd,0xc,
+ 0x94,0x3f,0x7,0xc,0xe5,0xcd,0x40,0x7,0xef,0x5,0x9a,0xf1,0x8,0x48,0xff,0x1,
+ 0x6,0xdc,0x7f,0x80,0x0,0x62,0x81,0x16,0xb,0xbf,0x81,0xa,0x9e,0x3,0x1d,0xf8,
+ 0x8,0x18,0xec,0x3a,0x40,0x1f,0xb0,0x3,0xd,0x0,0x75,0xde,0xe1,0xa1,0x1,0xab,
+ 0x3b,0x41,0xe,0x1,0x85,0x8,0xac,0xfc,0x4,0xd5,0xdb,0xb0,0x86,0x0,0x28,0x49,
+ 0xc0,0x12,0x3f,0x28,0x74,0x40,0xe,0x3,0x45,0x25,0xc8,0x63,0xa0,0xb4,0x76,0xed,
+ 0xda,0x35,0x70,0xd2,0x50,0x51,0x51,0x1,0x87,0x34,0xd0,0x11,0xff,0x80,0x55,0xed,
+ 0x57,0xa0,0x9e,0xab,0x40,0xc7,0xed,0x0,0x6,0xc6,0x1e,0xa0,0x7d,0x4f,0x80,0xea,
+ 0x7f,0xc3,0xca,0x56,0x80,0x0,0x2,0x65,0x67,0x50,0x71,0xff,0x7,0x68,0xc9,0x33,
+ 0xa0,0x5,0xa7,0x80,0x69,0x42,0x1,0x98,0xe6,0xb4,0x80,0x96,0xf3,0x3,0xd,0x2,
+ 0x35,0x22,0xe0,0x5,0x31,0x28,0x8d,0xc1,0xa,0x67,0x58,0xd1,0x3,0xab,0x25,0xa0,
+ 0x4d,0x76,0x70,0xd4,0xc1,0xf8,0x20,0xc7,0x81,0x3c,0x8,0x4a,0xc3,0xe7,0xcf,0x9f,
+ 0x67,0xb8,0x7d,0xfb,0x36,0xbc,0xb,0xa,0x2,0xc0,0x34,0xfc,0x7,0xe8,0xf0,0x17,
+ 0xc0,0xa8,0x3d,0x8,0x8c,0x89,0x3,0x40,0xf3,0x9e,0x0,0x3,0xeb,0x17,0x72,0x27,
+ 0x1d,0x20,0x80,0x60,0x35,0xff,0x3f,0xa0,0xa1,0xef,0x81,0x86,0x9f,0x0,0x2a,0x10,
+ 0xbb,0x73,0xe7,0xe,0xa8,0x73,0xae,0x1,0x4c,0x7f,0xdc,0xc0,0xce,0xe,0x13,0x28,
+ 0x64,0x40,0x8e,0x1,0x25,0x76,0x50,0x68,0x80,0x42,0x16,0xe4,0x30,0x50,0x54,0x83,
+ 0xa2,0x12,0x94,0x29,0xa0,0x1d,0x74,0x78,0x3a,0x7b,0xf2,0xe4,0x9,0xd8,0x81,0xa0,
+ 0xa4,0x1,0xca,0x8,0xa0,0x32,0x14,0x14,0xfa,0xa0,0x8c,0x2,0xf2,0x4,0xa8,0xce,
+ 0x5,0x3a,0x10,0xd4,0x8e,0xbb,0x8,0xf4,0xd8,0x1e,0xa0,0xb9,0xf7,0xd0,0x1d,0x7,
+ 0x2,0x0,0x1,0xc4,0x82,0x54,0x4d,0x7d,0x3,0x56,0x35,0x57,0x80,0xe5,0xde,0x7f,
+ 0xa0,0x8f,0xbf,0x3,0x8b,0x93,0x6f,0xc0,0xc,0xa0,0x9,0xa4,0xf9,0x80,0x96,0xb2,
+ 0x3,0xa3,0x8b,0x11,0xd4,0x18,0x5,0x25,0x76,0x50,0xa8,0x80,0x1c,0x2,0x2a,0x2a,
+ 0x40,0x21,0xa,0x73,0x20,0x88,0xf,0x4a,0x5f,0xa0,0x76,0x1d,0x28,0xea,0x41,0x1e,
+ 0x0,0xa5,0x53,0x50,0x52,0x0,0x79,0xc,0x14,0xe5,0x20,0xc,0x4a,0x77,0xa0,0xd1,
+ 0x9,0x60,0x7a,0x7e,0x3,0x4c,0x2e,0x47,0x81,0xb1,0x71,0x1d,0xe8,0xe1,0x1f,0xd8,
+ 0x86,0x3e,0x0,0x2,0x8,0xee,0x40,0x60,0xd0,0x83,0x46,0xaa,0xbe,0x3,0x1b,0x89,
+ 0x97,0x81,0x3e,0x7f,0xf,0xf4,0xdd,0x3,0xa0,0x2f,0x6d,0x80,0x16,0x69,0x0,0xc5,
+ 0xe5,0x80,0xc5,0x8d,0x28,0x68,0xac,0x6,0x68,0x10,0x13,0xa8,0x16,0x1,0x85,0x2a,
+ 0x8,0xc3,0xea,0x5a,0x58,0x4e,0x6,0x45,0x27,0xc8,0x71,0x20,0x7,0x83,0x42,0xa,
+ 0x56,0x43,0x80,0x42,0x1c,0xc4,0x6,0x15,0x2d,0xc0,0x6a,0xf3,0x1f,0x30,0xb9,0xbc,
+ 0x3,0xea,0x39,0x5,0x4c,0x8b,0x87,0x81,0xe6,0xbd,0x7,0x86,0x1e,0xd6,0xf1,0x19,
+ 0x80,0x0,0x42,0x19,0x9b,0x1,0x46,0xd7,0x7f,0x20,0xfe,0x1,0xc,0x85,0xfb,0x40,
+ 0xc3,0x5f,0x2,0x43,0xf0,0xc,0x90,0xad,0x5,0x8c,0x6a,0x4b,0xa0,0xb4,0x35,0xb0,
+ 0x58,0xd1,0x6,0x3a,0x0,0xd4,0x6f,0x61,0x6,0x5a,0xc6,0x8,0x8a,0x52,0x50,0xe2,
+ 0x87,0xe5,0x48,0x50,0xd4,0x2,0x93,0x7,0x38,0xad,0x81,0x1c,0xe,0xaa,0x85,0x40,
+ 0xe9,0x16,0xe4,0x78,0xd0,0xb8,0xb,0xd0,0xac,0xef,0x40,0x75,0x1f,0x41,0xed,0x3c,
+ 0x60,0x39,0x7,0x2a,0xeb,0xb6,0x2,0x3,0xe6,0x3a,0x30,0x36,0x7e,0xe3,0x1a,0x3c,
+ 0x2,0x8,0x20,0x46,0x7c,0xe3,0x83,0xa0,0x21,0xf,0x60,0x14,0xb1,0x1,0x2d,0x16,
+ 0x7,0xa6,0x29,0x7d,0x60,0xb4,0x38,0x1,0x2d,0x32,0x4,0x26,0x68,0x65,0x60,0xd4,
+ 0x8,0x1,0xd,0x67,0x7,0x8d,0xd,0x2,0x1d,0xfd,0x1b,0x58,0x5,0xbe,0x3,0x46,
+ 0xe5,0x6b,0x60,0x34,0x7f,0x1,0x86,0xc8,0x5f,0x50,0x86,0x1,0x86,0x30,0x3b,0x68,
+ 0x54,0xb,0x68,0x87,0x18,0x68,0xe4,0x0,0x18,0xd2,0xf,0x80,0x1,0x70,0x9,0xa8,
+ 0x77,0x3f,0x10,0x9f,0x4,0xea,0x7f,0x0,0xa4,0xf1,0x8e,0x6e,0x1,0x4,0x10,0x23,
+ 0xa1,0x1,0x4c,0x10,0x0,0x96,0x5d,0x8c,0xc0,0x84,0xce,0xc,0xc4,0xa2,0xc0,0x50,
+ 0xd5,0x6,0x3a,0xda,0x5,0x98,0xc,0x2c,0x80,0x21,0x22,0x7,0x2a,0x4c,0x81,0x66,
+ 0x3c,0x4,0x3a,0xe6,0x32,0xd0,0xf2,0x8b,0xc0,0x1c,0xfa,0x1c,0x58,0xc4,0xfc,0x1,
+ 0x86,0x2e,0x1b,0x30,0xe4,0x40,0xdd,0x43,0x11,0xa0,0x3c,0xa8,0x4d,0xf6,0x1,0xa8,
+ 0xe6,0x1e,0xd0,0xe1,0x4f,0x81,0x1e,0x78,0x7,0x54,0xfb,0x1d,0xa8,0xee,0x1f,0x21,
+ 0xbb,0x1,0x2,0x88,0x28,0x7,0xc2,0xc0,0xe9,0xd3,0xa7,0x19,0x81,0xe5,0x18,0x2b,
+ 0xd0,0xa1,0xd2,0x40,0x87,0x82,0x8a,0x22,0x35,0x60,0x88,0x7d,0x3,0x5a,0xfa,0x8,
+ 0x68,0xd9,0x7d,0x60,0x59,0xf6,0x1c,0x98,0xa6,0xbe,0x1,0x43,0xf8,0x1f,0x28,0x9,
+ 0x0,0x43,0x9b,0x19,0x18,0x9d,0xa0,0x64,0xf4,0x17,0x3a,0xbc,0xf6,0x17,0x98,0x11,
+ 0x89,0xb7,0x10,0x8,0x0,0x2,0x88,0x11,0x98,0x98,0x41,0x3,0x96,0x24,0x69,0x3a,
+ 0x76,0xec,0x18,0x33,0x30,0x1d,0x72,0x2,0x33,0xf,0x2f,0xb4,0x43,0xf4,0x15,0x18,
+ 0x2a,0xdf,0x81,0xf8,0xf,0x30,0xa7,0x93,0x64,0x16,0x21,0x0,0x10,0x40,0xa0,0xea,
+ 0x8c,0x15,0x18,0x4d,0xbf,0x49,0xd5,0x8,0xec,0x5b,0x30,0x81,0xca,0x38,0xa0,0x7,
+ 0x41,0x3,0x91,0xff,0x81,0x8e,0xfc,0x7,0xc,0x3d,0x8a,0x1d,0x7,0xf4,0x30,0x23,
+ 0xb4,0xd8,0x3,0x9b,0x5,0x10,0x60,0x0,0xc6,0x55,0x8a,0x45,0xf5,0x12,0xb6,0x3d,
+ 0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/mirror.png
+ 0x0,0x0,0x1,0x2f,
+ 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,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x0,0xc1,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0xfc,0xff,0xff,0x3f,0x3,0x25,0x0,0x20,0x80,0x98,0x18,0x28,0x4,0x0,0x1,0x44,
+ 0xb1,0x1,0x0,0x1,0x44,0xb1,0x1,0x0,0x1,0x84,0x8e,0x84,0x80,0x98,0x8d,0x8,
+ 0x35,0x70,0x0,0x10,0x40,0xe8,0x12,0x67,0x80,0x98,0x9f,0x80,0x1,0x27,0x81,0x58,
+ 0x2,0xc6,0x1,0x8,0x20,0x16,0x24,0xcd,0xbb,0x80,0xd8,0x18,0x88,0x13,0x80,0xf8,
+ 0x3b,0x1e,0x3,0x74,0x81,0xf8,0x0,0x10,0x3b,0x0,0xf1,0xb,0x80,0x0,0x42,0xb6,
+ 0xf9,0x3f,0x89,0xf8,0x6,0xc8,0x25,0x0,0x1,0x4,0x32,0x60,0x3b,0x19,0x9a,0x61,
+ 0xf8,0x18,0x40,0x0,0x81,0xc,0x50,0x7,0xe2,0xe7,0x64,0x68,0x7e,0xb,0xf2,0x32,
+ 0x40,0x0,0x31,0x42,0xfd,0xa5,0xe,0xf5,0x17,0x28,0x70,0x16,0x0,0xf1,0x2f,0x3c,
+ 0x61,0x0,0xa,0xa3,0x2f,0x40,0xec,0x6,0xc4,0x67,0x1,0x2,0x8,0x59,0x2,0xe6,
+ 0x12,0x42,0xb1,0x70,0xf,0x1a,0xd8,0x60,0x0,0x10,0x40,0xe8,0x8,0x64,0x8,0x27,
+ 0x1,0x3,0xd4,0x91,0x39,0x0,0x1,0xc4,0x48,0x69,0x66,0x2,0x8,0x20,0x8a,0x93,
+ 0x32,0x40,0x0,0x51,0x6c,0x0,0x40,0x80,0x1,0x0,0x35,0x1a,0x3f,0x47,0x29,0x18,
+ 0x39,0xd8,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/layer-camera.png
+ 0x0,0x0,0x4,0x71,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x16,0x0,0x0,0x0,0x10,0x8,0x6,0x0,0x0,0x0,0x12,0xed,0x8f,0x26,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x4,0x3,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0x64,0x40,0x3,0xea,0xea,0xea,0x81,0xec,0xec,0xec,0xb3,0x98,0x98,0x98,0xb8,0xff,
+ 0x3,0x1,0x37,0x37,0x37,0xdb,0xcf,0x9f,0x3f,0x99,0x81,0xcc,0x47,0x1f,0x3e,0x7c,
+ 0x88,0xbd,0x77,0xef,0xde,0x61,0x6,0x22,0x0,0x40,0x0,0x31,0x22,0x73,0xb4,0xb5,
+ 0xb5,0x3,0x58,0x59,0x59,0x57,0x96,0x57,0x56,0xb2,0x99,0x5b,0x58,0x30,0x3c,0x78,
+ 0xf0,0x80,0xe1,0xe6,0xd5,0xab,0xc,0x26,0x86,0x86,0xc,0xfb,0xf,0x1e,0x64,0x58,
+ 0xbe,0x72,0xe5,0xaf,0x37,0x6f,0xde,0x68,0x3e,0x7e,0xfc,0xf8,0x1e,0x21,0x83,0x1,
+ 0x2,0x88,0x19,0x99,0x23,0x2e,0x2e,0xbe,0x39,0x35,0x3d,0x5d,0xd4,0xc9,0xd9,0x99,
+ 0xe1,0xd7,0xef,0xdf,0xc,0xa2,0xa2,0xa2,0xc,0xdf,0x7e,0xfc,0x60,0xb8,0x75,0xeb,
+ 0x16,0x83,0x2b,0x50,0xc,0xa4,0xfe,0xde,0xfd,0xfb,0x71,0x2f,0x5f,0xbe,0xec,0x24,
+ 0x64,0x30,0x40,0x0,0x31,0xc1,0x18,0x7a,0x7a,0x7a,0x9c,0x40,0xef,0x2b,0x7b,0x7b,
+ 0x7b,0x33,0x7c,0xff,0xf6,0x8d,0xe1,0xff,0xdf,0xbf,0xc,0x3f,0x80,0x86,0xaa,0xa9,
+ 0xa9,0x31,0xfc,0x7,0xca,0xbf,0x7d,0xfb,0x96,0x21,0x2c,0x34,0x94,0x81,0x85,0x85,
+ 0x85,0x4f,0x45,0x45,0x45,0x9a,0x90,0xc1,0x0,0x1,0x4,0x37,0xf8,0xcb,0x97,0x2f,
+ 0x9e,0xc0,0x60,0xf8,0xcb,0xca,0xc2,0xc2,0x0,0xe,0x1f,0x46,0x46,0x6,0x60,0xb8,
+ 0x32,0x70,0x70,0x70,0x30,0xb0,0x1,0xf1,0x8f,0x9f,0x3f,0x19,0xfe,0x1,0x2d,0x13,
+ 0x11,0x11,0x61,0xfc,0xfb,0xf7,0xaf,0x1b,0x21,0x83,0x1,0x2,0x88,0x5,0x18,0xae,
+ 0x5a,0x40,0x3,0x77,0x32,0x33,0x33,0xcb,0xb8,0xbb,0xbb,0x33,0x3c,0x7a,0xf4,0x88,
+ 0x1,0xc8,0x67,0x60,0x7,0x19,0xc8,0xce,0xce,0xc0,0x2,0x62,0x3,0x69,0x60,0x4,
+ 0x32,0x7c,0xfc,0xf4,0x89,0x81,0x9b,0x8b,0x8b,0xe9,0xcf,0x9f,0x3f,0x5a,0x40,0xbd,
+ 0xac,0x50,0x87,0xfd,0xc4,0x66,0x30,0x40,0x0,0x31,0xea,0xea,0xea,0xbe,0xe,0xe,
+ 0xa,0x12,0x9,0x9,0xa,0x62,0xd8,0xbd,0x6f,0x1f,0x3,0xbf,0x80,0x0,0x3,0x23,
+ 0x13,0x13,0xd8,0xb5,0x20,0x0,0xb2,0xe4,0xee,0xdd,0xbb,0xc,0x77,0x6f,0xdf,0x66,
+ 0x60,0x63,0x63,0x83,0xb8,0xfc,0xff,0xff,0x9f,0x7f,0x7e,0xfd,0x62,0xb8,0x7e,0xfd,
+ 0xfa,0xed,0x2b,0x57,0xae,0xe8,0x62,0x33,0x18,0x20,0x80,0x58,0x80,0x5e,0xe7,0x89,
+ 0x8,0xb,0x63,0x78,0xf1,0xe2,0x5,0x83,0xa0,0x90,0x10,0x83,0xa3,0x8b,0xb,0xc3,
+ 0xa7,0x8f,0x1f,0x19,0x40,0x1a,0xc1,0x61,0x5,0xc,0x1a,0x3,0x60,0xaa,0x0,0x7a,
+ 0x9f,0x1,0x98,0xd4,0x18,0x7e,0x2,0xc3,0xdd,0xd0,0xc8,0x88,0xfd,0x1e,0x30,0x42,
+ 0xeb,0xea,0xeb,0xc5,0x71,0x5,0x5,0x40,0x0,0xb1,0x0,0x83,0x80,0x85,0x11,0x18,
+ 0x9e,0x40,0x9a,0xe1,0xdd,0xbb,0x77,0xc,0x9d,0x6d,0x6d,0xc,0x40,0xe7,0x32,0x8,
+ 0xa,0xa,0x32,0x8,0x0,0x31,0x2b,0xd0,0x95,0x20,0x43,0x9d,0x81,0x16,0xf2,0xf0,
+ 0xf0,0x80,0x5d,0xd,0xd4,0xc4,0xf0,0x12,0xe8,0x90,0x7f,0xff,0xfe,0x21,0xbc,0xce,
+ 0xc8,0xc8,0x2,0xf2,0x20,0xd4,0xa7,0xff,0x0,0x2,0x88,0x5,0xe8,0xed,0xbf,0x40,
+ 0x83,0x58,0x40,0x5e,0xbe,0x77,0xe7,0xe,0x83,0xa6,0xba,0x3a,0x83,0xb2,0xa2,0x22,
+ 0xc3,0x3b,0xa0,0xab,0xbf,0x3,0xbd,0x7d,0xe5,0xf2,0x65,0x70,0x38,0xdf,0x1,0xca,
+ 0x9,0xb,0xb,0x33,0xbc,0x7c,0xfe,0x9c,0x61,0xef,0x9e,0x3d,0xc,0x9f,0x3f,0x7f,
+ 0x6,0x59,0xce,0x2d,0x26,0x26,0x36,0x57,0x42,0x42,0x22,0x9,0x25,0x45,0x30,0x31,
+ 0xfd,0x0,0x8,0x20,0x96,0x5f,0xbf,0x7e,0xfd,0x7d,0xf4,0xf8,0x31,0xd8,0x85,0xa0,
+ 0x64,0xa6,0xac,0xa4,0xc4,0x20,0x2d,0x25,0xc5,0x20,0xf,0x34,0x9c,0x17,0x28,0xa6,
+ 0xa4,0xac,0xcc,0xf0,0xe8,0xe1,0x43,0x86,0xbf,0x7f,0xfe,0x80,0x35,0x9d,0x3b,0x77,
+ 0x8e,0xc1,0xd7,0xd7,0x97,0x41,0xd,0xe8,0x0,0x20,0xe6,0x3a,0x76,0xf4,0x68,0x12,
+ 0xc8,0xf5,0x3c,0xbc,0xbc,0xc,0x9e,0xc0,0xa4,0x6a,0x66,0x66,0xc6,0xe0,0xe1,0xea,
+ 0xca,0xe,0x10,0x40,0x4c,0x3f,0xbe,0x7f,0xdf,0xb5,0x61,0xd3,0x26,0x6,0x2e,0x2e,
+ 0x2e,0x6,0x26,0x66,0x48,0x7e,0x1,0xc6,0x3a,0x3,0x50,0x9c,0xe1,0x2b,0xd0,0x55,
+ 0x9c,0x9c,0x9c,0xc,0x1f,0x81,0xae,0x7,0xc9,0x7d,0x1,0xf2,0x99,0x81,0x11,0x2b,
+ 0xc4,0xcf,0xcf,0xf0,0xe1,0xcd,0x1b,0x86,0x2f,0x40,0x71,0x3b,0x7b,0x7b,0xb0,0xa1,
+ 0xff,0x81,0xc1,0xc2,0xe,0xc,0xa6,0xdf,0xc0,0x8c,0x5,0xa,0xe,0x80,0x0,0x62,
+ 0x1,0x26,0xa9,0x9c,0xc3,0x47,0x8e,0x80,0xd2,0x30,0xfb,0x43,0x60,0x52,0x83,0xe5,
+ 0x71,0x50,0x9a,0x5,0x59,0x0,0x32,0x8,0x98,0xa,0x18,0xfe,0x1,0xd9,0xff,0x80,
+ 0xec,0x5f,0xc0,0xc8,0xfb,0xd,0xc,0x22,0x56,0xa0,0x45,0xa0,0x4c,0x4,0x4a,0x86,
+ 0x8c,0x50,0xc7,0x7c,0x5,0xfa,0x98,0x5,0x94,0xf,0x80,0x71,0x6,0x10,0x40,0x4c,
+ 0x97,0x2e,0x5d,0x7a,0xa,0xb4,0xc5,0x7a,0xcf,0xde,0xbd,0xd7,0x81,0xe5,0xc0,0x4f,
+ 0x60,0xb6,0x6,0x47,0x10,0x48,0xf2,0x3f,0xc8,0x30,0xa0,0x66,0x26,0x20,0x1b,0x94,
+ 0x4a,0x40,0x6,0x0,0xc3,0x94,0xe1,0xf8,0xc9,0x93,0xc,0x4f,0x81,0x61,0xfd,0xd,
+ 0x68,0x10,0x48,0xed,0x1b,0x60,0xae,0xe4,0x0,0xfa,0xf8,0xf5,0xab,0x57,0xc,0x27,
+ 0x8e,0x1f,0x7,0x47,0x2a,0x40,0x0,0x31,0x22,0x65,0x69,0x15,0xa0,0x17,0xce,0xf2,
+ 0xf3,0xf3,0x33,0x2b,0x29,0x2a,0x72,0xc9,0xcb,0xc9,0x31,0xa,0x1,0x23,0x4b,0x52,
+ 0x5a,0x9a,0xe1,0xfe,0xfd,0xfb,0xe0,0x8,0xfd,0xf8,0xfe,0x3d,0xc3,0x4b,0xa0,0xe6,
+ 0xa7,0x4f,0x9f,0x32,0x1c,0x3b,0x71,0x2,0xe8,0x91,0xff,0x4c,0xb2,0x72,0x72,0xbf,
+ 0xc2,0x22,0x22,0xd8,0xec,0x81,0x41,0x72,0xf,0x98,0xde,0x37,0x6d,0xdc,0xf8,0x60,
+ 0xfb,0xf6,0xed,0x2f,0x0,0x2,0x8,0xa5,0x74,0x3,0x1a,0xae,0xe,0xb4,0x4d,0xb,
+ 0x58,0x46,0x98,0x2,0x5d,0x62,0x21,0x20,0x20,0x20,0xd,0xf4,0xa2,0x24,0x10,0x33,
+ 0x3,0x31,0x17,0xd0,0x9b,0x3f,0x80,0x18,0x18,0xd4,0x9f,0xf,0x3,0xf9,0x93,0x80,
+ 0xe1,0x7f,0xc,0x98,0x14,0x2f,0xc9,0xc8,0xca,0x8a,0x3,0xc5,0x57,0x1f,0x3a,0x78,
+ 0x70,0x3d,0x50,0xee,0x10,0xd0,0xa8,0xaf,0x0,0x1,0x6,0x0,0x60,0xbe,0xac,0x25,
+ 0x5b,0xa4,0x27,0x14,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+
+ // /home/matthew/pencil_dev/icons/eraser.png
+ 0x0,0x0,0x4,0x88,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x16,0x0,0x0,0x0,0x11,0x8,0x6,0x0,0x0,0x0,0xd9,0xb1,0x5c,0x83,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x4,0x1a,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0x60,0x60,0x64,0x61,0x20,0xb,0x33,0x30,0xd8,0xca,0xa,0x9,0x57,0xfb,0x1b,0x18,
+ 0x9d,0x60,0x65,0x66,0x71,0x67,0x60,0x40,0x95,0x7,0x8,0x20,0x66,0x6,0x46,0x26,
+ 0x6,0xa2,0xc1,0xff,0xbf,0x40,0xe2,0x9f,0x12,0x10,0x77,0x15,0xbb,0xba,0xf9,0xd7,
+ 0x5,0x4,0x78,0x97,0x86,0x87,0xde,0xfb,0xf6,0xe9,0x93,0xe5,0x91,0x3b,0x37,0x9f,
+ 0x33,0x30,0x32,0xde,0x7,0x9a,0xa,0x56,0xa,0x10,0x40,0xc4,0x1a,0xcc,0xca,0xf0,
+ 0xff,0x8f,0xaa,0x8,0xf,0x5f,0x85,0xaf,0x9e,0x41,0xf5,0x9e,0x82,0x2,0x59,0x1f,
+ 0xb,0x73,0x4d,0x5,0x11,0x11,0x61,0x86,0x2f,0x5f,0xd4,0x5c,0x8c,0x8d,0xbe,0xff,
+ 0xfd,0xf1,0x4b,0xf3,0xd0,0xed,0x9b,0x6f,0x81,0x6,0xdf,0x5,0x5a,0xc0,0x0,0x10,
+ 0x40,0xf8,0xd,0xfe,0xff,0x7,0xe4,0x42,0x6b,0x4e,0x36,0x96,0xc4,0x54,0x1b,0xbb,
+ 0xa6,0x49,0x31,0xd1,0xf2,0x39,0x5e,0x1e,0xca,0x3c,0x6c,0x6c,0x32,0xcc,0x7f,0xfe,
+ 0x70,0x30,0xfc,0xf9,0x3,0x71,0xde,0x9f,0x3f,0xe2,0x4e,0x46,0x86,0xbf,0xff,0xfe,
+ 0xfa,0xad,0x7a,0xe8,0xd6,0x8d,0xf7,0x40,0x33,0xef,0x0,0x4,0x10,0xe,0x83,0xff,
+ 0x73,0x3,0xbd,0x2d,0xc0,0xc4,0xcc,0x36,0x31,0x2a,0x21,0x5e,0x67,0x56,0x62,0x82,
+ 0x6b,0xaa,0xb9,0xa9,0x90,0x4,0x2f,0x9f,0x2a,0xc3,0x8f,0xef,0x6c,0xc,0xff,0xff,
+ 0x63,0x6a,0xf9,0xf3,0x47,0xcc,0xc9,0xd0,0xf0,0xe7,0x8f,0xaf,0xdf,0xd4,0x8f,0xde,
+ 0xb9,0xf5,0x4,0x20,0x80,0x18,0xa1,0x11,0x81,0xec,0x4a,0x17,0x9,0x9,0x49,0x15,
+ 0x4b,0x4b,0xab,0xfc,0xc6,0xc6,0xfa,0xd3,0x12,0x52,0x52,0x61,0x8c,0xdf,0xbf,0x33,
+ 0xf2,0x1e,0x3e,0xcc,0xc6,0xfe,0xfe,0x3d,0x30,0x8e,0x58,0xb0,0xfb,0xee,0x2f,0x30,
+ 0xfc,0x39,0x38,0x18,0x18,0x24,0x25,0xaf,0x79,0x97,0x96,0x33,0x2,0x4,0x10,0xb,
+ 0x52,0xc4,0x28,0x0,0x89,0xe6,0x9c,0xdc,0xbc,0x8f,0x81,0x1,0x1,0x76,0x76,0x76,
+ 0xb6,0xbf,0x9f,0x3e,0x7d,0x1a,0xfb,0xe9,0xc3,0x7,0x6,0x6,0x66,0x66,0x86,0xcf,
+ 0xa6,0xa6,0xc,0xd2,0xa7,0x4e,0x31,0xb0,0x81,0xc,0x67,0x65,0x85,0xea,0x81,0xba,
+ 0x9c,0x9,0xe8,0x6b,0x71,0x71,0x86,0x3f,0x5f,0xbe,0x30,0x7c,0xba,0x7a,0x55,0xe8,
+ 0xc7,0xf7,0xef,0xbf,0x1,0x2,0x8,0xe2,0xe2,0xff,0x7f,0xb4,0xdd,0xdc,0x3d,0x62,
+ 0xa7,0x4d,0x9d,0xa2,0xc1,0xcb,0xcb,0xeb,0xc0,0xc8,0xc8,0xc8,0xf3,0xf1,0xe3,0x47,
+ 0x66,0x26,0x26,0x44,0x30,0xfd,0x7,0x1a,0xce,0xf4,0xe7,0xf,0x83,0xd4,0xc9,0x93,
+ 0xc,0xec,0x20,0xcb,0x40,0x80,0x87,0x7,0xec,0x83,0x1f,0x40,0xb9,0x57,0xd7,0xae,
+ 0x31,0xfc,0xfd,0xfc,0xf9,0xd7,0xaa,0xf3,0x17,0x58,0x2a,0xe,0xec,0x4f,0x0,0x8,
+ 0x20,0x16,0xa0,0xa1,0xea,0x5e,0x5e,0xde,0xd1,0x6b,0xd7,0xae,0xe1,0xfb,0xf6,0xed,
+ 0x9b,0xff,0x7b,0xa0,0x8b,0x80,0x6,0x33,0x20,0x1b,0xa,0x2,0x8c,0x40,0xaf,0xfe,
+ 0x5,0x1a,0xf2,0xdc,0xcc,0x8c,0x41,0xf2,0xcc,0x19,0x6,0x76,0xa0,0xab,0xbf,0x7f,
+ 0xfe,0xcc,0xf0,0xf6,0xf1,0x63,0x86,0x97,0xb7,0x6f,0x33,0xb0,0x2,0xe5,0xfe,0xfc,
+ 0xff,0xff,0x78,0xd3,0xbd,0x7b,0xf7,0x80,0xca,0xf,0x3,0x4,0x10,0x28,0x28,0x8c,
+ 0x23,0x22,0x23,0x82,0x39,0x38,0x38,0x24,0xff,0xfd,0xfb,0x7,0x74,0x0,0xb,0xc3,
+ 0xef,0xdf,0xbf,0x31,0xc,0xfe,0xf,0xf4,0x36,0x7,0xd0,0x65,0x7f,0xb8,0xb8,0x18,
+ 0xfe,0xc9,0xc9,0x31,0x3c,0xdc,0xb6,0x8d,0xe1,0xfd,0xdb,0xb7,0xc,0xcc,0x7f,0xff,
+ 0xfe,0x67,0x63,0x63,0xfb,0xf5,0xe6,0xeb,0xb7,0x77,0x75,0x7,0xf,0xde,0x39,0xf6,
+ 0xe8,0x61,0x26,0x30,0x14,0x1e,0x0,0x4,0x10,0xa3,0xbb,0xbb,0xe7,0x91,0xed,0xdb,
+ 0xb7,0xfe,0xfd,0xf5,0xeb,0xb7,0x1d,0x3b,0x3b,0x1b,0xc3,0xf7,0xef,0xdf,0x19,0xde,
+ 0x2,0x35,0xfc,0x1,0x7a,0x1b,0x64,0x11,0xc8,0x40,0xa0,0x46,0xb0,0x45,0x5f,0xbf,
+ 0x7e,0x65,0xb8,0xd,0x74,0x21,0x3b,0x30,0x38,0x44,0x6e,0xde,0x64,0x10,0x10,0x14,
+ 0x7c,0x7b,0xec,0xf1,0x53,0x96,0xed,0x77,0xee,0xde,0x5e,0x72,0xe9,0xfc,0xd,0xa0,
+ 0xbf,0xaa,0x18,0x18,0x99,0x1f,0x83,0x1c,0x2,0x10,0x40,0x2c,0x7f,0xfe,0xfe,0x5,
+ 0xfa,0x9c,0xf1,0xd7,0x8f,0x1f,0xdf,0x41,0xee,0x62,0xe0,0xe4,0xe4,0x64,0x10,0x15,
+ 0x15,0x65,0xf8,0xc,0xf4,0x26,0xc8,0x20,0x10,0xff,0xd5,0xab,0x57,0x60,0xfc,0xe2,
+ 0xc5,0xb,0x6,0x2e,0x21,0xc1,0x3f,0xbc,0xec,0xec,0xff,0x5e,0xff,0xf8,0xf9,0xb8,
+ 0x74,0xf3,0x36,0xd1,0xb,0x2f,0x9e,0x75,0xbd,0xf9,0xf6,0x75,0x3f,0xd0,0x95,0xc7,
+ 0x90,0x7d,0x8,0x10,0x40,0xcc,0xf7,0xef,0xdd,0xbd,0xf3,0xf1,0xd3,0x67,0x3e,0x3f,
+ 0x3f,0xdf,0x77,0x5f,0xbe,0x7c,0x51,0x7,0x85,0x2f,0x3b,0x3b,0x3b,0xd8,0xc0,0x4f,
+ 0x9f,0x3e,0x31,0x9c,0x3f,0x7f,0x9e,0xe1,0xd9,0xb3,0x67,0x60,0x9f,0x8,0x8,0x8,
+ 0x3c,0xbc,0x75,0xfd,0xe6,0xa7,0x39,0x9b,0xb7,0x1e,0x69,0xdd,0xba,0xe5,0xde,0xdd,
+ 0xf7,0xef,0x3c,0xbe,0xfd,0xf9,0x77,0x8,0xe8,0xca,0xfb,0xe8,0xa9,0xf,0x20,0x80,
+ 0x80,0x19,0x84,0xf9,0xe1,0x89,0xe3,0xc7,0xd8,0xbe,0x7d,0xff,0xc1,0xed,0xeb,0xeb,
+ 0xf3,0x19,0x68,0xb8,0xa,0x2b,0x30,0x62,0x9e,0x3f,0x7f,0xce,0x70,0xec,0xd8,0x31,
+ 0x70,0x50,0x70,0x73,0x73,0x7f,0xbe,0x7f,0xff,0xfe,0xa5,0x45,0x8b,0x97,0xfc,0x9d,
+ 0x3b,0x67,0xf6,0xf2,0x3b,0x77,0xef,0x2c,0xfe,0xcf,0xc0,0x34,0x11,0xa8,0x17,0xe8,
+ 0x4d,0xc6,0x3f,0xd8,0x92,0x35,0x40,0x0,0xb1,0x40,0xa,0xd,0xa6,0xad,0xdd,0x5d,
+ 0x9d,0xc,0xff,0xfe,0xfe,0x63,0xe8,0xe9,0xe9,0xfa,0xf7,0xf0,0xe1,0x43,0xaf,0x8b,
+ 0x17,0x2f,0x82,0x22,0xe5,0xe3,0xeb,0xd7,0xaf,0xef,0x2d,0x58,0xb8,0x84,0xe1,0xca,
+ 0xe5,0x4b,0xfb,0x3f,0x7f,0xfe,0xb8,0x0,0xe8,0xe5,0x3b,0x40,0xfc,0x9b,0x50,0xe1,
+ 0x2,0x10,0x40,0x90,0x2c,0xd,0xf4,0x3e,0x10,0xdf,0x3e,0x7e,0xec,0x8,0xe3,0xc7,
+ 0x8f,0x9f,0x45,0x75,0x74,0xb4,0x1f,0x1e,0x3e,0x7c,0x44,0x60,0xcb,0x96,0x2d,0xa7,
+ 0x7b,0x7b,0x7b,0x6f,0x3f,0x79,0xfc,0x28,0xef,0xd7,0xaf,0x5f,0xab,0x81,0x6,0xbe,
+ 0x1,0x15,0x1e,0xc4,0x94,0x5a,0x0,0x1,0x84,0x56,0xc6,0x32,0x3,0x33,0x19,0x8b,
+ 0x8f,0x91,0xb1,0xe9,0x61,0x11,0x11,0xd1,0x4a,0xa0,0x80,0x1d,0xb9,0xe5,0x35,0x40,
+ 0x80,0x1,0x0,0x27,0xac,0xb4,0xd7,0x6c,0x4d,0xce,0x70,0x0,0x0,0x0,0x0,0x49,
+ 0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/outlines5.png
+ 0x0,0x0,0x1,0xd6,
+ 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,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x1,0x68,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0xb9,0xf2,0xfe,0xef,0x37,0x6,0x6,0x86,0x20,0x6d,0x1,0xa6,0x1d,0xc,0x44,0x2,
+ 0x2d,0x15,0x63,0x9,0x20,0x75,0x0,0x88,0xa7,0x3,0x4,0x10,0x13,0x90,0xe0,0x4,
+ 0xe2,0x75,0x57,0x3f,0xfc,0xf3,0x20,0x55,0xf3,0xb5,0x3b,0x67,0x27,0x2,0x4,0x10,
+ 0x13,0x54,0x9c,0x28,0x43,0xd0,0x35,0x83,0xc4,0x0,0x2,0x88,0x9,0x49,0x1e,0xaf,
+ 0x21,0xd8,0x34,0x83,0x0,0x40,0x0,0x31,0xa1,0xa9,0xc3,0x6a,0x8,0x2e,0xcd,0x20,
+ 0x0,0x10,0x40,0x4c,0x58,0x2c,0x43,0x31,0x4,0x9f,0x66,0x10,0x0,0x8,0x20,0x26,
+ 0x1c,0xde,0xe5,0xfc,0xf7,0xef,0xdf,0xba,0xec,0xa2,0xc6,0x6,0x7c,0x9a,0x41,0x0,
+ 0x20,0x80,0x18,0x81,0xd1,0xf8,0x1f,0x5d,0x10,0xa8,0x99,0xa1,0xb7,0xac,0x9c,0xe1,
+ 0xf4,0xc1,0x83,0xbf,0x99,0xd9,0xd9,0x4e,0x5d,0xba,0x72,0xcc,0x6,0x57,0xc0,0x2,
+ 0x4,0x10,0x13,0x2e,0xcd,0x67,0xe,0x1f,0xfe,0xc1,0xc4,0xc2,0xca,0xea,0x96,0x9e,
+ 0x63,0x3c,0xf3,0xd8,0x5d,0x9c,0xb1,0x3,0x10,0x40,0x28,0x6,0xfc,0xf9,0xfd,0x1b,
+ 0xae,0xf9,0xef,0xdf,0x3f,0x1c,0x21,0xd5,0xf5,0xc,0xaa,0xc6,0xe6,0x1c,0xa0,0x30,
+ 0xc1,0x65,0x8,0x40,0x0,0x31,0x21,0x6b,0xee,0xaf,0xac,0x62,0x38,0x73,0xe8,0xd0,
+ 0xf,0x46,0x26,0x26,0xe,0x87,0xf8,0x64,0x6,0x9,0x25,0x55,0x94,0x80,0xc5,0x66,
+ 0x8,0x40,0x0,0x31,0xa1,0x68,0x3e,0x72,0xe4,0xdb,0xdf,0x7f,0x7f,0x39,0x2c,0x43,
+ 0x23,0x18,0xc,0x9c,0x3d,0xb0,0xc6,0xe,0xba,0x21,0x0,0x1,0xc4,0x84,0x6c,0x33,
+ 0x13,0x33,0x33,0x97,0x63,0x6c,0x12,0x83,0xb1,0x87,0x2f,0x2e,0x2f,0x63,0x18,0x2,
+ 0x10,0x40,0xcc,0xdf,0xdf,0x7d,0x6b,0x38,0x7b,0xe4,0xc8,0x57,0xa0,0x9f,0xb9,0xb4,
+ 0xec,0x1c,0x18,0xac,0x82,0x23,0x8,0x65,0x7,0x56,0x20,0xe,0x3e,0xfb,0xf8,0xfd,
+ 0x59,0x13,0x59,0xa1,0x3b,0x0,0x1,0xc4,0xa8,0xa3,0x61,0xfe,0x91,0x95,0x9d,0x9d,
+ 0x4f,0xcd,0xdc,0x9a,0xc1,0x11,0xe8,0x6f,0x12,0xc0,0x77,0x50,0x2e,0x6,0x8,0x20,
+ 0xa6,0x5f,0xff,0x7e,0xf1,0x89,0xca,0x2b,0x90,0xaa,0x19,0xee,0x1d,0x80,0x0,0x3,
+ 0x0,0xd9,0xe1,0xa9,0xc9,0xc2,0xff,0x8,0x6,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,
+ 0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/remove.png
+ 0x0,0x0,0x2,0x9c,
+ 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,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x2,0x2e,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0xfc,0xff,0xff,0x3f,0x3,0x32,0x90,0x97,0x97,0x77,0x63,0x65,0x65,0x75,0x67,0x61,
+ 0x61,0xb1,0x2,0x62,0x4d,0x26,0x26,0x26,0x90,0xf0,0xf5,0x7f,0xff,0xfe,0x1d,0xfb,
+ 0xf3,0xe7,0xcf,0xce,0x1b,0x37,0x6e,0xec,0x42,0x56,0xf,0x10,0x40,0x8c,0x30,0x3,
+ 0x64,0x64,0x64,0x14,0xd8,0xd8,0xd8,0x72,0x38,0x38,0x38,0xd2,0xb9,0xb8,0xb8,0x78,
+ 0x80,0x34,0x3,0xd0,0x20,0x6,0x66,0x66,0x66,0xb0,0xfc,0xdf,0xbf,0x7f,0x19,0x7e,
+ 0xff,0xfe,0xfd,0xe5,0xc7,0x8f,0x1f,0x33,0xbf,0x7d,0xfb,0x36,0xe5,0xda,0xb5,0x6b,
+ 0xf,0x40,0xe2,0x0,0x1,0x4,0x36,0x0,0xa4,0x99,0x9d,0x9d,0xbd,0x99,0x87,0x87,
+ 0x27,0x6,0x88,0x19,0x40,0x18,0xc8,0x7,0x1b,0x0,0x75,0x1,0x3,0xd0,0x5,0x20,
+ 0x3,0x18,0x7e,0xfe,0xfc,0xc9,0xf0,0xe5,0xcb,0x97,0x25,0x40,0x5c,0x7b,0xf1,0xe2,
+ 0xc5,0x7,0x0,0x1,0xc4,0x2,0x92,0x4,0xd9,0xc,0xd2,0xcc,0xcf,0xcf,0xcf,0xc0,
+ 0xc7,0xc7,0xc7,0xc0,0xc9,0xc9,0x9,0x12,0x3,0x6b,0x66,0x64,0x64,0x4,0x1b,0x0,
+ 0xb2,0x8,0x64,0x8,0xd4,0xe0,0x18,0xa0,0xcb,0x5e,0x2,0x85,0x4b,0x0,0x2,0x88,
+ 0x51,0x4e,0x4e,0xce,0x8d,0x9b,0x9b,0x7b,0xad,0xa0,0xa0,0x20,0xf,0x10,0x83,0x6d,
+ 0x47,0xb6,0x19,0x1d,0xc0,0x5c,0x2,0x74,0xc1,0x97,0xf7,0xef,0xdf,0x7,0x3,0x4,
+ 0x10,0xb,0x28,0xc0,0x40,0x7e,0x6,0x69,0x4,0xd9,0x8c,0x4f,0x33,0x8,0x80,0xe4,
+ 0x40,0x6a,0x80,0x6a,0x79,0x80,0x6,0xb9,0x3,0x4,0x10,0xb,0x28,0xb4,0x41,0x1,
+ 0x6,0xc,0x7,0x50,0xc,0x30,0x0,0xf9,0x60,0x67,0x83,0x2,0xf,0xe4,0xd,0x10,
+ 0x1b,0xa4,0x1,0x64,0x33,0x48,0xec,0xeb,0xd7,0xaf,0xc,0xb7,0x6e,0xdd,0x82,0x79,
+ 0xc7,0xa,0x20,0x80,0x40,0x6,0x68,0xc2,0x6c,0xcd,0xcb,0xcb,0x63,0xe0,0xe5,0xe5,
+ 0x5,0x3b,0x11,0x14,0xea,0xb0,0x18,0x2,0xc9,0x81,0xc,0x6,0x19,0xf0,0xf6,0xed,
+ 0x5b,0x86,0xa2,0xa2,0x22,0x98,0x4b,0x34,0x1,0x2,0x88,0x9,0xc4,0x0,0x49,0x80,
+ 0x14,0x80,0x42,0x18,0x4,0x80,0xf1,0xd,0xd6,0xc,0x12,0x3,0x79,0xb,0x14,0x70,
+ 0xb0,0x0,0x5,0x89,0x83,0x30,0x88,0xd,0x12,0x3,0x8,0x20,0x50,0x2c,0x5c,0x7,
+ 0x62,0xb,0x90,0x21,0xf3,0xe6,0xcd,0x83,0x2b,0x86,0x45,0xd9,0xaf,0x5f,0xbf,0xe0,
+ 0x9a,0x41,0x34,0x30,0x1d,0xc0,0x63,0x6,0xa4,0x17,0x20,0x80,0x58,0x40,0x29,0xc,
+ 0xe8,0x5c,0x8b,0xe7,0xcf,0x9f,0x33,0x7c,0xfc,0xf8,0x11,0x6f,0x0,0xc2,0x0,0xc8,
+ 0x32,0x50,0x18,0x80,0xf4,0x2,0x4,0x10,0x13,0x28,0x79,0x82,0x52,0x18,0xc8,0x46,
+ 0x90,0x20,0xb1,0x0,0xa8,0x16,0xa4,0x67,0x27,0x40,0x0,0x31,0x81,0xd2,0x36,0x28,
+ 0x79,0xc2,0x9c,0x4b,0x8c,0x21,0x20,0x35,0x40,0xb5,0x33,0x37,0x6d,0xda,0xb4,0xb,
+ 0x20,0x80,0xc0,0xee,0x5,0xa5,0x6d,0x50,0xf2,0xfc,0xfe,0xfd,0x3b,0x3,0x21,0x97,
+ 0x40,0x13,0x12,0x48,0xed,0x14,0x10,0x1f,0x20,0x80,0xe0,0x99,0x49,0x5f,0x5f,0x5f,
+ 0x1,0x98,0x94,0x73,0x80,0x49,0x39,0x1d,0x94,0x48,0x70,0x24,0xe5,0x2f,0x20,0x9b,
+ 0x41,0x9a,0xb7,0x6c,0xd9,0x2,0xce,0x4c,0x0,0x1,0xc4,0x88,0x9e,0x9d,0xad,0xad,
+ 0xad,0xdd,0x80,0xa9,0xd2,0x1d,0x94,0x48,0xa0,0xf1,0xc,0xcf,0xce,0x20,0x3f,0x83,
+ 0x9c,0x8d,0xac,0x1e,0x20,0xc0,0x0,0xba,0x65,0x16,0xd6,0xb7,0xe7,0xf0,0xe6,0x0,
+ 0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/controls/separator.png
+ 0x0,0x0,0x5,0x21,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x25,0x0,0x0,0x0,0x1f,0x8,0x6,0x0,0x0,0x0,0x60,0x7f,0x4,0xc8,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x4,0xb3,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0x64,0x60,0x60,0xe0,0x68,0x6c,0x6c,0xb4,0xe3,0xe0,0xe0,0x30,0x62,0x65,0x65,0x8d,
+ 0x60,0x64,0x64,0xd4,0xfc,0xff,0xff,0xff,0x85,0x3f,0x7f,0xfe,0x6c,0x7f,0xfc,0xf8,
+ 0xf1,0xaa,0x3b,0x77,0xee,0x3c,0xfc,0xf0,0xe1,0xc3,0xef,0x47,0x8f,0x1e,0xfd,0x7d,
+ 0xfa,0xf4,0xe9,0x7f,0xa0,0x7a,0x18,0xa6,0x19,0x0,0x8,0x20,0x66,0x20,0x66,0x3a,
+ 0x70,0xe0,0xc0,0x93,0x3d,0x7b,0xf6,0x9c,0x15,0x17,0x17,0xdf,0x5,0x74,0xd8,0x3e,
+ 0x20,0x16,0x62,0x63,0x63,0x8b,0x14,0x14,0x14,0x4c,0x95,0x97,0x97,0x57,0xe2,0xe3,
+ 0xe3,0x7b,0xf2,0xec,0xd9,0xb3,0xb7,0x4c,0x4c,0x4c,0x7f,0xbf,0x7e,0xfd,0xa,0xd2,
+ 0xc7,0x48,0x4b,0x47,0x1,0x4,0x10,0xc8,0x70,0x16,0x90,0xc3,0xa0,0x34,0x33,0x8c,
+ 0xb6,0xb5,0xb5,0x15,0xf4,0xf4,0xf4,0xc,0xe3,0xe4,0xe4,0xf4,0x7,0xf2,0x75,0xff,
+ 0xfd,0xfb,0xb7,0x6b,0xe5,0xca,0x95,0x71,0x9f,0x3e,0x7d,0xfa,0x6,0xe4,0xff,0xbd,
+ 0x71,0xe3,0x6,0xcd,0x42,0xc,0x20,0x80,0x98,0x91,0xc,0xfe,0x7,0x65,0x83,0xe8,
+ 0x7f,0xc0,0xe8,0xfa,0x71,0xfa,0xf4,0xe9,0x8b,0xef,0xdf,0xbf,0xdf,0xaa,0xa0,0xa0,
+ 0x70,0xf,0x18,0x72,0x9,0x9a,0x9a,0x9a,0xdc,0x40,0x70,0xfe,0xfb,0xf7,0xef,0x3f,
+ 0x25,0x24,0x24,0xfe,0x1,0xa3,0x93,0x26,0x21,0x5,0x10,0x40,0xcc,0x50,0xfa,0x3f,
+ 0xb2,0x83,0x60,0xe,0xfc,0xf9,0xf3,0xe7,0x7f,0xa0,0xe3,0x7e,0x9e,0x3a,0x75,0xea,
+ 0xa6,0x95,0x95,0xd5,0x5b,0xa0,0xc3,0x4a,0x81,0x51,0xfa,0xa,0x28,0x76,0x5,0x98,
+ 0x6,0xff,0x2,0x43,0xf2,0x3f,0xd0,0xe1,0x54,0x77,0x14,0x40,0x0,0x31,0xe2,0x10,
+ 0x63,0x44,0x8a,0x52,0x56,0x10,0xcd,0xcf,0xcf,0xcf,0x52,0x59,0x59,0x19,0xc7,0xce,
+ 0xce,0x5e,0x7,0xc,0x3d,0xcf,0x43,0x87,0xe,0x9d,0x7f,0xf1,0xe2,0xc5,0xcf,0xeb,
+ 0xd7,0xaf,0xff,0x3,0x66,0xe,0xaa,0x3a,0xa,0x20,0x80,0x18,0x9,0xc8,0x31,0x21,
+ 0xa5,0x33,0x16,0x60,0x28,0xb1,0x2,0x1d,0x96,0x7,0xcc,0x8,0x29,0xef,0xde,0xbd,
+ 0xf3,0x3e,0x7c,0xf8,0xf0,0xd,0xa8,0xc3,0xfe,0x53,0xd3,0x61,0x0,0x1,0xc4,0x84,
+ 0x47,0xe,0x16,0x9d,0x7f,0x81,0xf8,0x37,0x8,0x3,0x43,0xe8,0xd7,0xde,0xbd,0x7b,
+ 0x67,0x0,0x8b,0x8b,0x8d,0x42,0x42,0x42,0x5b,0x8c,0x8d,0x8d,0xe5,0x40,0x8e,0x6,
+ 0xa6,0x35,0x46,0x60,0x31,0x42,0x35,0x47,0x1,0x4,0x10,0x33,0x91,0xea,0x60,0x69,
+ 0x8e,0xf1,0xee,0xdd,0xbb,0x7f,0xbf,0x7d,0xfb,0x76,0x52,0x43,0x43,0xc3,0xc,0x58,
+ 0x54,0x38,0x7e,0xfc,0xf8,0x71,0x17,0x30,0xad,0xfd,0x4c,0x4c,0x4c,0xa4,0x5a,0x51,
+ 0x1,0x10,0x40,0xcc,0x64,0x44,0x35,0xd3,0xeb,0xd7,0xaf,0x19,0x74,0x74,0x74,0x1e,
+ 0xf1,0xf2,0xf2,0x96,0x8b,0x8a,0x8a,0x5e,0x6,0xe6,0xc6,0x47,0x5f,0xbe,0x7c,0xf9,
+ 0xd,0x2c,0x64,0xa9,0x12,0x52,0x0,0x1,0xc4,0x44,0x42,0x48,0xc1,0x72,0xe5,0xdf,
+ 0x1f,0x3f,0x7e,0xfc,0xed,0xea,0xea,0xba,0xf0,0xfb,0xf7,0xef,0x4d,0x40,0x87,0x35,
+ 0xab,0xa9,0xa9,0x69,0x2,0xc5,0xd9,0x49,0x30,0xf,0x2f,0x0,0x8,0x20,0x66,0x32,
+ 0x33,0x7,0x38,0x3,0x0,0xb,0xd2,0xd3,0xc0,0x10,0xcb,0x1,0x16,0xb0,0x6c,0x40,
+ 0xf6,0x51,0x60,0x95,0xf4,0x93,0x1a,0x5,0x2a,0x40,0x0,0x91,0xea,0xb3,0xff,0xd0,
+ 0x84,0xf,0xc6,0x27,0x4f,0x9e,0xfc,0xc,0x8c,0xba,0x59,0x40,0x76,0x38,0xd0,0x71,
+ 0xca,0x2,0x2,0x2,0x4c,0x48,0x45,0xa,0xd9,0x0,0x20,0x80,0x98,0x29,0x28,0x4a,
+ 0x40,0xe,0x0,0x56,0x87,0x4c,0xf7,0x81,0xd1,0xe7,0xcf,0xc3,0xc3,0xa3,0x2,0xcc,
+ 0x91,0x87,0x2e,0x5c,0xb8,0xf0,0x99,0xd2,0x90,0x2,0x8,0x20,0x66,0xa,0xca,0x36,
+ 0xb0,0xc3,0x9e,0x3c,0x79,0xf2,0x1b,0x58,0x24,0xdc,0x2,0xe6,0xc4,0x62,0x20,0x3e,
+ 0xb,0x2c,0xbf,0xee,0x2,0xcb,0xae,0xbf,0x94,0x84,0x16,0x40,0x0,0x91,0x93,0x30,
+ 0x61,0x89,0xfe,0xf,0xa8,0xec,0xfa,0x5,0x4,0xf3,0xe6,0xcd,0x3b,0xe,0x4c,0xf4,
+ 0x3b,0x80,0xf5,0x62,0xd,0xb0,0x4e,0xe4,0x2,0x39,0xe8,0x3f,0x5,0x5,0x17,0x40,
+ 0x0,0x91,0x9b,0x5b,0xfe,0x23,0x17,0xaa,0xc0,0xd0,0x1,0xd5,0x8f,0x2d,0xc0,0x96,
+ 0x84,0x8c,0xd,0x10,0x0,0xd3,0x16,0xb,0xb0,0x84,0x67,0x22,0x37,0xb4,0x0,0x2,
+ 0x88,0x99,0xa,0x39,0x18,0x1c,0x8d,0xaf,0x5e,0xbd,0xfa,0x69,0x6d,0x6d,0xed,0x8,
+ 0xac,0x1b,0xf5,0x84,0x85,0x85,0xf7,0x9e,0x3f,0x7f,0xfe,0x3b,0xb9,0xd,0x42,0x80,
+ 0x0,0x62,0x66,0xa0,0xe,0x60,0x2,0xd6,0x87,0x4c,0xc0,0x52,0xfe,0x1,0xb0,0xdc,
+ 0x2a,0x1,0x56,0xde,0xd7,0x81,0x85,0xea,0xc3,0x2b,0x57,0xae,0xfc,0x24,0xc7,0x30,
+ 0x80,0x0,0xa2,0x56,0x48,0x31,0x2,0x9b,0x39,0xc,0x40,0x47,0xbc,0x2,0xc6,0x9e,
+ 0x8,0x30,0xb4,0x12,0x80,0x8e,0xdb,0x5,0x4c,0xf0,0xef,0xde,0xbc,0x79,0xf3,0x8f,
+ 0xd4,0xd0,0x2,0x8,0x20,0x4a,0x4b,0x60,0xe4,0x4a,0xfb,0x2f,0xb0,0x0,0xfd,0x75,
+ 0xe9,0xd2,0xa5,0xc9,0x20,0xcf,0x72,0x71,0x71,0x85,0x2,0x9b,0xd2,0x1c,0xe4,0x94,
+ 0x5b,0x0,0x1,0x44,0x8d,0x6a,0x1,0x96,0xe8,0x41,0xb9,0xf1,0xcf,0xe6,0xcd,0x9b,
+ 0x5f,0x0,0xeb,0xc1,0x36,0x60,0x74,0xe6,0x2,0x1b,0x86,0xba,0xd0,0x66,0xf,0x49,
+ 0xe,0x3,0x8,0x20,0x6a,0x39,0xa,0x56,0x44,0xfc,0x1,0xb6,0x1a,0x7e,0x4d,0x9e,
+ 0x3c,0x79,0xe3,0xdf,0xbf,0x7f,0x77,0x3,0xcb,0xad,0x6e,0x60,0x34,0xb2,0x21,0x25,
+ 0x13,0xa2,0x1c,0x6,0x10,0x40,0xd4,0x4a,0xe8,0x28,0xe9,0xb,0xd4,0xe3,0x1,0x46,
+ 0xe5,0x1,0x60,0xd5,0x53,0xb,0xc,0xad,0x4f,0xc0,0x9e,0xd2,0x79,0xa4,0x3e,0x0,
+ 0x41,0x0,0x10,0x40,0xd4,0x76,0x14,0x3c,0x6,0x80,0x25,0xfd,0x5f,0xa0,0x83,0xde,
+ 0x1,0xab,0x9f,0x4c,0x20,0x7d,0x7e,0xff,0xfe,0xfd,0xcf,0x89,0x75,0x14,0x40,0x0,
+ 0x31,0x51,0xd1,0x21,0x28,0x89,0x1e,0x84,0xeb,0xeb,0xeb,0x97,0x1,0x2b,0xec,0xf9,
+ 0xc0,0x22,0x62,0x22,0xb0,0x11,0x28,0x8d,0xd4,0x9d,0xc3,0xdb,0x52,0x5,0x8,0x20,
+ 0x26,0x2a,0x87,0x10,0x4a,0xfa,0x2,0x39,0x6c,0xdb,0xb6,0x6d,0x6b,0x81,0x25,0x3d,
+ 0x83,0x9e,0x9e,0xde,0xc1,0xec,0xec,0x6c,0x6d,0x68,0x47,0x84,0x19,0xa9,0xc4,0xc7,
+ 0x48,0x67,0x0,0x1,0x44,0xab,0xe8,0x83,0xa7,0x31,0x60,0x77,0xec,0x37,0xb0,0x98,
+ 0x58,0x69,0x69,0x69,0xa9,0xe,0x2c,0xe9,0xdb,0xcc,0xcd,0xcd,0x9f,0x1e,0x3c,0x78,
+ 0xf0,0x26,0x5a,0x1a,0x43,0xae,0x92,0x18,0x1,0x2,0x88,0x96,0x8e,0x82,0xc7,0xf,
+ 0xb0,0x88,0x60,0x0,0xd6,0x8f,0xc7,0xb4,0xb5,0xb5,0x19,0x81,0xe5,0x57,0xb5,0xab,
+ 0xab,0xab,0x11,0xb0,0xf4,0x7f,0x2,0x6c,0x8f,0xbd,0xc4,0x92,0x1,0x98,0x0,0x2,
+ 0x88,0x96,0x63,0x2,0xb0,0x36,0x17,0x2b,0x14,0xb3,0x69,0x69,0x69,0xf1,0x44,0x46,
+ 0x46,0x7a,0x1,0x13,0x7f,0x38,0x90,0x6f,0x0,0x4c,0x57,0xf7,0x81,0x69,0xae,0xfe,
+ 0xe2,0xc5,0x8b,0x7,0x56,0xad,0x5a,0xf5,0x19,0xd4,0xb2,0x0,0x46,0x2b,0x23,0x40,
+ 0x0,0x31,0xd2,0x3a,0xfa,0xd0,0x1d,0xa6,0xaf,0xaf,0xcf,0x3,0xac,0x8a,0x94,0x80,
+ 0x4d,0x1c,0x75,0x60,0x19,0xe6,0xc,0x14,0xd3,0x3,0xba,0x45,0x11,0x98,0xee,0x8e,
+ 0x2,0x8b,0x92,0x36,0x60,0x4b,0xe8,0x6,0x40,0x80,0x1,0x0,0x44,0xee,0xf0,0x97,
+ 0xfd,0x3e,0x4d,0x44,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+
+ // /home/matthew/pencil_dev/icons/controls/play.png
+ 0x0,0x0,0x1,0x30,
+ 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,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,0xd8,
+ 0xeb,0xf5,0x1c,0x14,0xaa,0x0,0x0,0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x6d,
+ 0x98,0x0,0x0,0x73,0x8e,0x0,0x0,0xea,0x48,0x0,0x0,0x86,0x0,0x0,0x0,0x77,
+ 0xef,0x0,0x0,0xd0,0xf0,0x0,0x0,0x32,0xf7,0x0,0x0,0x1c,0x74,0xb6,0xd2,0x6c,
+ 0xb,0x0,0x0,0x0,0xa6,0x49,0x44,0x41,0x54,0x78,0xda,0x62,0xfc,0xff,0xff,0x3f,
+ 0x3,0x25,0x0,0x20,0x80,0x18,0x29,0x35,0x0,0x20,0x80,0x28,0x36,0x0,0x20,0x80,
+ 0x30,0xc,0x48,0x4f,0x4f,0x7,0xb,0xcc,0x9c,0x39,0x93,0x91,0x18,0x3,0x0,0x2,
+ 0x8,0xc3,0x0,0x46,0x46,0xc6,0xff,0x8e,0x8e,0x8e,0xc,0xaa,0xaa,0xaa,0xc,0xc4,
+ 0x18,0x4,0x10,0x40,0x58,0xd,0x80,0xb1,0x89,0x31,0x8,0x20,0x80,0xf0,0x1a,0x40,
+ 0x8c,0x41,0x0,0x1,0x44,0x94,0x1,0xf8,0xc,0x2,0x8,0x20,0x92,0xc,0xc0,0x66,
+ 0x10,0x40,0x0,0x31,0x91,0x13,0x75,0xfb,0xf7,0xef,0x87,0xb3,0x1,0x2,0x88,0x1,
+ 0xe4,0x2,0x64,0xc,0x4,0xff,0xf1,0x61,0xa0,0xed,0xff,0xd3,0xd2,0xd2,0xfe,0xc3,
+ 0xd4,0x3,0x4,0x10,0xd1,0x5e,0x0,0x6a,0xc2,0x1a,0x88,0x0,0x1,0x44,0xd0,0x5,
+ 0xe8,0x36,0xa2,0x63,0x80,0x0,0xc2,0xe9,0x2,0x9c,0x36,0xa2,0x1,0x80,0x0,0xa2,
+ 0x38,0x29,0x3,0x4,0x10,0xc5,0x99,0x9,0x20,0xc0,0x0,0xd,0xfc,0x8f,0x4,0x89,
+ 0x14,0xb4,0x97,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/controls/sound.png
+ 0x0,0x0,0x1,0x7,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0xe,0x0,0x0,0x0,0xd,0x8,0x6,0x0,0x0,0x0,0x99,0xdc,0x5f,0x7f,
+ 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,0xd8,
+ 0xeb,0xf5,0x1c,0x14,0xaa,0x0,0x0,0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x6d,
+ 0x98,0x0,0x0,0x73,0x8e,0x0,0x0,0xea,0x48,0x0,0x0,0x86,0x0,0x0,0x0,0x77,
+ 0xef,0x0,0x0,0xd0,0xf0,0x0,0x0,0x32,0xf7,0x0,0x0,0x1c,0x74,0xb6,0xd2,0x6c,
+ 0xb,0x0,0x0,0x0,0x7d,0x49,0x44,0x41,0x54,0x78,0xda,0x62,0xfc,0xff,0xff,0x3f,
+ 0x3,0x36,0xc0,0xc8,0xc8,0x8,0x96,0x0,0xca,0x33,0xa2,0x8b,0x83,0xc4,0x0,0x2,
+ 0x88,0x9,0x9f,0x26,0x6c,0xe2,0x30,0x83,0x0,0x2,0x88,0x89,0x1c,0x4d,0x20,0x0,
+ 0x10,0x40,0x4c,0xc4,0x68,0xc2,0xe6,0x64,0x80,0x0,0x62,0xc1,0xa7,0x18,0x1f,0x0,
+ 0x8,0x20,0x26,0x6,0x32,0x1,0x40,0x0,0xb1,0x90,0xa2,0x18,0xd9,0x75,0x0,0x1,
+ 0x44,0x92,0x46,0x64,0x7f,0x2,0x4,0x10,0xd9,0x4e,0x5,0x8,0x20,0x16,0x64,0x53,
+ 0x48,0x9,0x28,0x80,0x0,0x62,0xc2,0x17,0xe4,0xf8,0xa2,0xa,0x20,0x80,0x98,0x8,
+ 0xc5,0x17,0xb2,0x38,0xb2,0x66,0x80,0x0,0x62,0x22,0x26,0xb2,0xb1,0x69,0x6,0x8,
+ 0x30,0x0,0x70,0x5d,0x34,0x21,0xfa,0xec,0x43,0xcb,0x0,0x0,0x0,0x0,0x49,0x45,
+ 0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/controls/loop.png
+ 0x0,0x0,0x0,0x96,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0xc,0x0,0x0,0x0,0xc,0x8,0x6,0x0,0x0,0x0,0x56,0x75,0x5c,0xe7,
+ 0x0,0x0,0x0,0x5d,0x49,0x44,0x41,0x54,0x28,0x91,0x9d,0x91,0x51,0xa,0xc0,0x20,
+ 0xc,0x43,0x5b,0xd9,0x21,0x73,0x35,0x6f,0x90,0x5b,0xf4,0x68,0xee,0xc7,0x4a,0x99,
+ 0x43,0xb2,0x3d,0x28,0x58,0x4c,0x9b,0x88,0x66,0x5,0x0,0xc3,0x54,0xa6,0x58,0x1b,
+ 0x28,0xe2,0x63,0x1,0x18,0xb2,0x38,0xcb,0xd3,0x81,0x64,0xba,0x6d,0x9,0xf2,0x4e,
+ 0x7e,0x43,0xef,0x7d,0x39,0xb4,0xb2,0xc5,0xdf,0xb6,0x3f,0x69,0xb5,0x21,0xe9,0x9f,
+ 0x6,0x14,0xae,0x99,0xef,0x48,0x44,0xac,0xb3,0x9b,0xfa,0x59,0x7f,0x22,0x1,0xb0,
+ 0x1b,0x39,0x41,0x39,0xf2,0xf,0x61,0x19,0x1f,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,
+ 0x44,0xae,0x42,0x60,0x82,
+
+};
+
+static const unsigned char qt_resource_name[] = {
+ // icons
+ 0x0,0x5,
+ 0x0,0x6f,0xa6,0x53,
+ 0x0,0x69,
+ 0x0,0x63,0x0,0x6f,0x0,0x6e,0x0,0x73,
+ // background
+ 0x0,0xa,
+ 0x1,0xe4,0x67,0x4,
+ 0x0,0x62,
+ 0x0,0x61,0x0,0x63,0x0,0x6b,0x0,0x67,0x0,0x72,0x0,0x6f,0x0,0x75,0x0,0x6e,0x0,0x64,
+ // weave.jpg
+ 0x0,0x9,
+ 0x8,0xc8,0xaa,0x7,
+ 0x0,0x77,
+ 0x0,0x65,0x0,0x61,0x0,0x76,0x0,0x65,0x0,0x2e,0x0,0x6a,0x0,0x70,0x0,0x67,
+ // dots.png
+ 0x0,0x8,
+ 0x6,0xb6,0x5a,0x27,
+ 0x0,0x64,
+ 0x0,0x6f,0x0,0x74,0x0,0x73,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // select.png
+ 0x0,0xa,
+ 0xb,0xa8,0x6f,0x7,
+ 0x0,0x73,
+ 0x0,0x65,0x0,0x6c,0x0,0x65,0x0,0x63,0x0,0x74,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // pen.png
+ 0x0,0x7,
+ 0x6,0xc1,0x57,0xa7,
+ 0x0,0x70,
+ 0x0,0x65,0x0,0x6e,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // brush.png
+ 0x0,0x9,
+ 0xc,0x9b,0x84,0x67,
+ 0x0,0x62,
+ 0x0,0x72,0x0,0x75,0x0,0x73,0x0,0x68,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // bucketTool.png
+ 0x0,0xe,
+ 0x5,0x1c,0xde,0x47,
+ 0x0,0x62,
+ 0x0,0x75,0x0,0x63,0x0,0x6b,0x0,0x65,0x0,0x74,0x0,0x54,0x0,0x6f,0x0,0x6f,0x0,0x6c,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // add.png
+ 0x0,0x7,
+ 0x7,0xa7,0x57,0x87,
+ 0x0,0x61,
+ 0x0,0x64,0x0,0x64,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // polyline.png
+ 0x0,0xc,
+ 0x2,0xac,0xd7,0x7,
+ 0x0,0x70,
+ 0x0,0x6f,0x0,0x6c,0x0,0x79,0x0,0x6c,0x0,0x69,0x0,0x6e,0x0,0x65,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // arrow.png
+ 0x0,0x9,
+ 0x9,0x6a,0x86,0x67,
+ 0x0,0x61,
+ 0x0,0x72,0x0,0x72,0x0,0x6f,0x0,0x77,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // logo.png
+ 0x0,0x8,
+ 0x5,0xe2,0x59,0x27,
+ 0x0,0x6c,
+ 0x0,0x6f,0x0,0x67,0x0,0x6f,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // layer-sound.png
+ 0x0,0xf,
+ 0x7,0xcc,0x9,0xa7,
+ 0x0,0x6c,
+ 0x0,0x61,0x0,0x79,0x0,0x65,0x0,0x72,0x0,0x2d,0x0,0x73,0x0,0x6f,0x0,0x75,0x0,0x6e,0x0,0x64,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // controls
+ 0x0,0x8,
+ 0x6,0x5b,0x9b,0x73,
+ 0x0,0x63,
+ 0x0,0x6f,0x0,0x6e,0x0,0x74,0x0,0x72,0x0,0x6f,0x0,0x6c,0x0,0x73,
+ // eraser2.png
+ 0x0,0xb,
+ 0xc,0x8c,0x46,0x67,
+ 0x0,0x65,
+ 0x0,0x72,0x0,0x61,0x0,0x73,0x0,0x65,0x0,0x72,0x0,0x32,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // move.png
+ 0x0,0x8,
+ 0x6,0xc8,0x59,0xc7,
+ 0x0,0x6d,
+ 0x0,0x6f,0x0,0x76,0x0,0x65,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // onionStraightAhead.png
+ 0x0,0x16,
+ 0xc,0x19,0x91,0x47,
+ 0x0,0x6f,
+ 0x0,0x6e,0x0,0x69,0x0,0x6f,0x0,0x6e,0x0,0x53,0x0,0x74,0x0,0x72,0x0,0x61,0x0,0x69,0x0,0x67,0x0,0x68,0x0,0x74,0x0,0x41,0x0,0x68,0x0,0x65,0x0,0x61,
+ 0x0,0x64,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // prefs-files.png
+ 0x0,0xf,
+ 0x5,0x6b,0xff,0x67,
+ 0x0,0x70,
+ 0x0,0x72,0x0,0x65,0x0,0x66,0x0,0x73,0x0,0x2d,0x0,0x66,0x0,0x69,0x0,0x6c,0x0,0x65,0x0,0x73,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // icon.png
+ 0x0,0x8,
+ 0xa,0x61,0x5a,0xa7,
+ 0x0,0x69,
+ 0x0,0x63,0x0,0x6f,0x0,0x6e,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // prefstimeline.png
+ 0x0,0x11,
+ 0xc,0xc2,0x8,0x67,
+ 0x0,0x70,
+ 0x0,0x72,0x0,0x65,0x0,0x66,0x0,0x73,0x0,0x74,0x0,0x69,0x0,0x6d,0x0,0x65,0x0,0x6c,0x0,0x69,0x0,0x6e,0x0,0x65,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+
+ // aqua.png
+ 0x0,0x8,
+ 0x8,0xb4,0x5a,0x47,
+ 0x0,0x61,
+ 0x0,0x71,0x0,0x75,0x0,0x61,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // eyedropper.png
+ 0x0,0xe,
+ 0x9,0xb2,0x60,0x87,
+ 0x0,0x65,
+ 0x0,0x79,0x0,0x65,0x0,0x64,0x0,0x72,0x0,0x6f,0x0,0x70,0x0,0x70,0x0,0x65,0x0,0x72,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // smudge.png
+ 0x0,0xa,
+ 0xa,0xdb,0x1e,0x27,
+ 0x0,0x73,
+ 0x0,0x6d,0x0,0x75,0x0,0x64,0x0,0x67,0x0,0x65,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // layer-vector.png
+ 0x0,0x10,
+ 0x3,0xd0,0x63,0xe7,
+ 0x0,0x6c,
+ 0x0,0x61,0x0,0x79,0x0,0x65,0x0,0x72,0x0,0x2d,0x0,0x76,0x0,0x65,0x0,0x63,0x0,0x74,0x0,0x6f,0x0,0x72,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // magnify.png
+ 0x0,0xb,
+ 0xf,0x3e,0xab,0xc7,
+ 0x0,0x6d,
+ 0x0,0x61,0x0,0x67,0x0,0x6e,0x0,0x69,0x0,0x66,0x0,0x79,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // pencil2.png
+ 0x0,0xb,
+ 0xf,0x18,0xde,0x67,
+ 0x0,0x70,
+ 0x0,0x65,0x0,0x6e,0x0,0x63,0x0,0x69,0x0,0x6c,0x0,0x32,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // thinlines5.png
+ 0x0,0xe,
+ 0x2,0x6e,0x11,0x67,
+ 0x0,0x74,
+ 0x0,0x68,0x0,0x69,0x0,0x6e,0x0,0x6c,0x0,0x69,0x0,0x6e,0x0,0x65,0x0,0x73,0x0,0x35,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // layer-bitmap.png
+ 0x0,0x10,
+ 0xb,0x38,0xd5,0xc7,
+ 0x0,0x6c,
+ 0x0,0x61,0x0,0x79,0x0,0x65,0x0,0x72,0x0,0x2d,0x0,0x62,0x0,0x69,0x0,0x74,0x0,0x6d,0x0,0x61,0x0,0x70,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // onionInbetween.png
+ 0x0,0x12,
+ 0xe,0xc4,0xd8,0x67,
+ 0x0,0x6f,
+ 0x0,0x6e,0x0,0x69,0x0,0x6f,0x0,0x6e,0x0,0x49,0x0,0x6e,0x0,0x62,0x0,0x65,0x0,0x74,0x0,0x77,0x0,0x65,0x0,0x65,0x0,0x6e,0x0,0x2e,0x0,0x70,0x0,0x6e,
+ 0x0,0x67,
+ // house.png
+ 0x0,0x9,
+ 0xc,0x98,0x89,0x87,
+ 0x0,0x68,
+ 0x0,0x6f,0x0,0x75,0x0,0x73,0x0,0x65,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // hand.png
+ 0x0,0x8,
+ 0x8,0x47,0x5a,0x87,
+ 0x0,0x68,
+ 0x0,0x61,0x0,0x6e,0x0,0x64,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // bucket.png
+ 0x0,0xa,
+ 0x1,0xca,0x60,0x7,
+ 0x0,0x62,
+ 0x0,0x75,0x0,0x63,0x0,0x6b,0x0,0x65,0x0,0x74,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // prefspencil.png
+ 0x0,0xf,
+ 0xe,0x4a,0x59,0xe7,
+ 0x0,0x70,
+ 0x0,0x72,0x0,0x65,0x0,0x66,0x0,0x73,0x0,0x70,0x0,0x65,0x0,0x6e,0x0,0x63,0x0,0x69,0x0,0x6c,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // clear.png
+ 0x0,0x9,
+ 0xb,0x85,0x83,0x7,
+ 0x0,0x63,
+ 0x0,0x6c,0x0,0x65,0x0,0x61,0x0,0x72,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // mirror.png
+ 0x0,0xa,
+ 0x9,0x6b,0xd6,0x67,
+ 0x0,0x6d,
+ 0x0,0x69,0x0,0x72,0x0,0x72,0x0,0x6f,0x0,0x72,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // layer-camera.png
+ 0x0,0x10,
+ 0x4,0x3b,0xc4,0xc7,
+ 0x0,0x6c,
+ 0x0,0x61,0x0,0x79,0x0,0x65,0x0,0x72,0x0,0x2d,0x0,0x63,0x0,0x61,0x0,0x6d,0x0,0x65,0x0,0x72,0x0,0x61,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // eraser.png
+ 0x0,0xa,
+ 0x9,0xc8,0xc6,0x47,
+ 0x0,0x65,
+ 0x0,0x72,0x0,0x61,0x0,0x73,0x0,0x65,0x0,0x72,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // outlines5.png
+ 0x0,0xd,
+ 0x1,0xf2,0x36,0x7,
+ 0x0,0x6f,
+ 0x0,0x75,0x0,0x74,0x0,0x6c,0x0,0x69,0x0,0x6e,0x0,0x65,0x0,0x73,0x0,0x35,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // remove.png
+ 0x0,0xa,
+ 0x6,0xcb,0x4f,0xc7,
+ 0x0,0x72,
+ 0x0,0x65,0x0,0x6d,0x0,0x6f,0x0,0x76,0x0,0x65,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // separator.png
+ 0x0,0xd,
+ 0x8,0xe8,0x47,0xa7,
+ 0x0,0x73,
+ 0x0,0x65,0x0,0x70,0x0,0x61,0x0,0x72,0x0,0x61,0x0,0x74,0x0,0x6f,0x0,0x72,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,
+ // sound.png
+ 0x0,0x9,
+ 0xc,0x47,0xa3,0x87,
+ 0x0,0x73,
+ 0x0,0x6f,0x0,0x75,0x0,0x6e,0x0,0x64,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // loop.png
+ 0x0,0x8,
+ 0x6,0x63,0x59,0x27,
+ 0x0,0x6c,
+ 0x0,0x6f,0x0,0x6f,0x0,0x70,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+
+};
+
+static const unsigned char qt_resource_struct[] = {
+ // :
+ 0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x1,
+ // :/icons
+ 0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x23,0x0,0x0,0x0,0x5,
+ // :/background
+ 0x0,0x0,0x0,0x10,0x0,0x2,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x3,
+ // :/background/dots.png
+ 0x0,0x0,0x0,0x42,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x11,0x4,
+ // :/background/weave.jpg
+ 0x0,0x0,0x0,0x2a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,
+ // :/icons/bucket.png
+ 0x0,0x0,0x3,0x70,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0xf,0x2e,
+ // :/icons/outlines5.png
+ 0x0,0x0,0x4,0x20,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x47,0x70,
+ // :/icons/thinlines5.png
+ 0x0,0x0,0x2,0xd0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x1,0x1d,
+ // :/icons/polyline.png
+ 0x0,0x0,0x0,0xd4,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x21,0xe9,
+ // :/icons/layer-vector.png
+ 0x0,0x0,0x2,0x72,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xf8,0xb,
+ // :/icons/layer-camera.png
+ 0x0,0x0,0x3,0xe0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x3e,0x6f,
+ // :/icons/bucketTool.png
+ 0x0,0x0,0x0,0x9e,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x19,0x69,
+ // :/icons/prefs-files.png
+ 0x0,0x0,0x1,0xbe,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x93,0xbe,
+ // :/icons/logo.png
+ 0x0,0x0,0x1,0xa,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x25,0x82,
+ // :/icons/controls
+ 0x0,0x0,0x1,0x44,0x0,0x2,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x28,
+ // :/icons/pen.png
+ 0x0,0x0,0x0,0x72,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x13,0xb4,
+ // :/icons/move.png
+ 0x0,0x0,0x1,0x76,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x8e,0x8b,
+ // :/icons/remove.png
+ 0x0,0x0,0x4,0x40,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x49,0x4a,
+ // :/icons/add.png
+ 0x0,0x0,0x0,0xc0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x1e,0xe2,
+ // :/icons/layer-sound.png
+ 0x0,0x0,0x1,0x20,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x88,0xac,
+ // :/icons/hand.png
+ 0x0,0x0,0x3,0x5a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0xb,0xa4,
+ // :/icons/aqua.png
+ 0x0,0x0,0x2,0x20,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xf1,0xc4,
+ // :/icons/arrow.png
+ 0x0,0x0,0x0,0xf2,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x23,0x9b,
+ // :/icons/mirror.png
+ 0x0,0x0,0x3,0xc6,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x3d,0x3c,
+ // :/icons/eyedropper.png
+ 0x0,0x0,0x2,0x36,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xf2,0xe6,
+ // :/icons/eraser.png
+ 0x0,0x0,0x4,0x6,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x42,0xe4,
+ // :/icons/icon.png
+ 0x0,0x0,0x1,0xe2,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xa4,0xa2,
+ // :/icons/smudge.png
+ 0x0,0x0,0x2,0x58,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xf5,0x2e,
+ // :/icons/layer-bitmap.png
+ 0x0,0x0,0x2,0xf2,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x2,0x76,
+ // :/icons/clear.png
+ 0x0,0x0,0x3,0xae,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x2f,0xbb,
+ // :/icons/select.png
+ 0x0,0x0,0x0,0x58,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x11,0xb4,
+ // :/icons/onionStraightAhead.png
+ 0x0,0x0,0x1,0x8c,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x8f,0xb5,
+ // :/icons/eraser2.png
+ 0x0,0x0,0x1,0x5a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x8c,0x22,
+ // :/icons/house.png
+ 0x0,0x0,0x3,0x42,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0xa,0xe7,
+ // :/icons/brush.png
+ 0x0,0x0,0x0,0x86,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x16,0x7f,
+ // :/icons/prefstimeline.png
+ 0x0,0x0,0x1,0xf8,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xe4,0x88,
+ // :/icons/prefspencil.png
+ 0x0,0x0,0x3,0x8a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x16,0xa6,
+ // :/icons/onionInbetween.png
+ 0x0,0x0,0x3,0x18,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x6,0x2,
+ // :/icons/pencil2.png
+ 0x0,0x0,0x2,0xb4,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xfe,0x62,
+ // :/icons/magnify.png
+ 0x0,0x0,0x2,0x98,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xfb,0x66,
+ // :/icons/controls/play.png
+ 0x0,0x0,0x4,0x7a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x51,0xf,
+ // :/icons/controls/loop.png
+ 0x0,0x0,0x4,0xa8,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x53,0x4e,
+ // :/icons/controls/separator.png
+ 0x0,0x0,0x4,0x5a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x4b,0xea,
+ // :/icons/controls/sound.png
+ 0x0,0x0,0x4,0x90,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x52,0x43,
+
+};
+
+QT_BEGIN_NAMESPACE
+
+extern bool qRegisterResourceData
+ (int, const unsigned char *, const unsigned char *, const unsigned char *);
+
+extern bool qUnregisterResourceData
+ (int, const unsigned char *, const unsigned char *, const unsigned char *);
+
+QT_END_NAMESPACE
+
+
+int QT_MANGLE_NAMESPACE(qInitResources_pencil)()
+{
+ QT_PREPEND_NAMESPACE(qRegisterResourceData)
+ (0x01, qt_resource_struct, qt_resource_name, qt_resource_data);
+ return 1;
+}
+
+Q_CONSTRUCTOR_FUNCTION(QT_MANGLE_NAMESPACE(qInitResources_pencil))
+
+int QT_MANGLE_NAMESPACE(qCleanupResources_pencil)()
+{
+ QT_PREPEND_NAMESPACE(qUnregisterResourceData)
+ (0x01, qt_resource_struct, qt_resource_name, qt_resource_data);
+ return 1;
+}
+
+Q_DESTRUCTOR_FUNCTION(QT_MANGLE_NAMESPACE(qCleanupResources_pencil))
+
Binary files pencil_backup/qrc_pencil.o and pencil_dev/qrc_pencil.o differ
Binary files pencil_backup/scribblearea.o and pencil_dev/scribblearea.o differ
diff -rupN pencil_backup/src/external/flash/flash.cpp~ pencil_dev/src/external/flash/flash.cpp~
--- pencil_backup/src/external/flash/flash.cpp~ 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/external/flash/flash.cpp~ 2009-09-22 20:27:34.000000000 -0500
@@ -0,0 +1,234 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+*/
+#include <QtCore>
+#include <QtGui>
+#include <QtDebug>
+
+#include "flash.h"
+
+#include "object.h"
+#include "beziercurve.h"
+#include "colourref.h"
+
+void Flash::exportFlash(Object* object, int startFrame, int endFrame, QMatrix view, QSize exportSize, QString filePath, int fps, int compression) {
+ qDebug() << "------Flash------" << compression;
+
+ // ************* Requires the MING Library ***************
+ Ming_init();
+
+ SWFMovie *movie = new SWFMovie();
+ movie->setDimension(exportSize.width(), exportSize.height());
+ movie->setRate(fps); // 12 frames per seconds
+
+ //SWFShape *shape = new SWFShape();
+ SWFSprite *objectSprite = new SWFSprite();
+
+ for(int i=0; i < object->getLayerCount(); i++) {
+ Layer* layer = object->getLayer(i);
+ if(layer->visible) {
+ // paints the bitmap images
+ if(layer->type == Layer::BITMAP) {
+ LayerBitmap* layerBitmap = (LayerBitmap*)layer;
+ SWFSprite *layerSprite = new SWFSprite();
+ SWFDisplayItem *previousItem = NULL;
+ for(int frameNumber = startFrame; frameNumber <= endFrame; frameNumber++) {
+ BitmapImage* bitmapImage = layerBitmap->getBitmapImageAtFrame(frameNumber);
+ if(bitmapImage != NULL) {
+ if(previousItem != NULL) layerSprite->remove( previousItem );
+ SWFSprite *imageSprite = new SWFSprite();
+ convertToSWFSprite( bitmapImage, object, view, imageSprite);
+ previousItem = layerSprite->add( imageSprite );
+ }
+ layerSprite->nextFrame();
+ }
+ //layerSprite->add( new SWFAction("stop();") );
+ //layerSprite->nextFrame();
+ objectSprite->add(layerSprite);
+ }
+ // paints the vector images
+ if(layer->type == Layer::VECTOR) {
+ LayerVector* layerVector = (LayerVector*)layer;
+ SWFSprite *layerSprite = new SWFSprite();
+ SWFDisplayItem *previousItem = NULL;
+ for(int frameNumber = startFrame; frameNumber <= endFrame; frameNumber++) {
+ VectorImage* vectorImage = layerVector->getVectorImageAtFrame(frameNumber);
+ if(vectorImage != NULL) {
+ if(previousItem != NULL) layerSprite->remove( previousItem );
+ SWFSprite *sprite = new SWFSprite();
+ convertToSWFSprite( vectorImage, object, view, sprite);
+ previousItem = layerSprite->add( sprite );
+ }
+ layerSprite->nextFrame();
+ }
+ //layerSprite->add( new SWFAction("stop();") );
+ //layerSprite->nextFrame();
+
+ objectSprite->add(layerSprite);
+ }
+ }
+ }
+
+ objectSprite->nextFrame();
+ //objectSprite->add( new SWFAction("stop();") );
+ //objectSprite->nextFrame();
+
+ movie->add(objectSprite);
+ movie->nextFrame();
+ movie->add( new SWFAction("gotoFrame(0);") );
+ movie->nextFrame();
+
+
+ QByteArray byteArray(filePath.toLatin1()); // is there any problem with accented characters?
+ movie->save(byteArray.data(), compression);
+
+ qDebug() << "done.";
+}
+
+
+void Flash::convertToSWFSprite( BitmapImage* bitmapImage, QMatrix view, SWFSprite* sprite ) {
+ QString tempPath = QDir::tempPath()+"penciltemp.png";
+ QByteArray tempPath2( tempPath.toLatin1());
+ bitmapImage->image->save( tempPath , "PNG");
+ SWFShape *shape = new SWFShape();
+ SWFFill* fill = shape->addBitmapFill( new SWFBitmap( tempPath2.data() ) );
+ fill->moveTo(static_cast<float>(bitmapImage->topLeft().x()), static_cast<float>(bitmapImage->topLeft().y()));
+ shape->setRightFill(fill);
+ shape->movePenTo(bitmapImage->left(), bitmapImage->top());
+ shape->drawLineTo(bitmapImage->right(), bitmapImage->top());
+ shape->drawLineTo(bitmapImage->right(), bitmapImage->bottom());
+ shape->drawLineTo(bitmapImage->left(), bitmapImage->bottom());
+ shape->drawLineTo(bitmapImage->left(), bitmapImage->top());
+ SWFDisplayItem *item = sprite->add( shape );
+ //item->setMatrix( view.m11(), view.m12(), view.m21(), view.m22(), view.dx(), view.dy() ); // this C++ method is not defined in mingpp.h version 0.3
+ SWFDisplayItem_setMatrix( item->item, view.m11(), view.m12(), view.m21(), view.m22(), view.dx(), view.dy() ); // we use the C function instead
+ sprite->nextFrame();
+}
+
+
+void Flash::convertToSWFSprite( VectorImage* vectorImage, Object* object, QMatrix view, SWFSprite* sprite ) {
+
+ // add filled areas
+ for(int i=0; i< vectorImage->area.size(); i++) {
+ QColor colour = object->getColour(vectorImage->area[i].getColourNumber()).colour;
+ QPainterPath path = view.map( vectorImage->area[i].path );
+ addShape(sprite, path, colour, colour, 0, true);
+ }
+ // add curves
+ for(int i=0; i< vectorImage->curve.size(); i++) {
+ if(!vectorImage->curve[i].isInvisible()) {
+ QColor colour = object->getColour(vectorImage->curve[i].getColourNumber()).colour;
+ if(vectorImage->curve[i].getVariableWidth()) {
+ QPainterPath path = view.map( vectorImage->curve[i].getStrokedPath() );
+ addShape(sprite, path, colour, colour, 0, true);
+ } else {
+ QPainterPath path = view.map( vectorImage->curve[i].getSimplePath() );
+ qreal width = vectorImage->curve[i].getWidth();
+ addShape(sprite, path, colour, colour, width, false);
+ }
+ }
+ }
+ sprite->nextFrame();
+}
+
+
+
+
+void Flash::addShape( SWFSprite* sprite, QPainterPath path, QColor fillColour, QColor borderColour, qreal width, bool fill ) {
+ SWFShape* shape = new SWFShape();
+ //float widthf = static_cast< float >(width);
+ if(width == 0.0) {
+ shape->setLine( static_cast<unsigned short>(width), borderColour.red(), borderColour.green(), borderColour.blue(), 0);
+ } else {
+ shape->setLine(static_cast<unsigned short>(width), borderColour.red(), borderColour.green(), borderColour.blue() );
+ }
+ if(fill) {
+ SWFFill* fill = shape->addSolidFill( fillColour.red(), fillColour.green(), fillColour.blue() );
+ shape->setRightFill(fill);
+ }
+
+ qreal memoP0x = 0.0;
+ qreal memoP0y = 0.0;
+ qreal memoP1x = 0.0;
+ qreal memoP1y = 0.0;
+ qreal memoP2x = 0.0;
+ qreal memoP2y = 0.0;
+ qreal memoP3x = 0.0;
+ qreal memoP3y = 0.0;
+ qreal memo = 0.0;
+ for(int i=0; i < path.elementCount() ; i++) {
+ QPainterPath::Element element = path.elementAt(i);
+ if( element.type == QPainterPath::CurveToDataElement ) {
+ memo++;
+ if(memo == 1) {
+ memoP2x = element.x;
+ memoP2y = element.y;
+ }
+ if(memo == 2) {
+ memoP3x = element.x;
+ memoP3y = element.y;
+ }
+ }
+ if( (element.type != QPainterPath::CurveToDataElement) || ((element.type == QPainterPath::CurveToDataElement) && (i==path.elementCount()-1)) ) {
+ if(memo == 1) {
+ shape->drawCurveTo( static_cast<float>(memoP1x), static_cast<float>(memoP1y), static_cast<float>(memoP2x), static_cast<float>(memoP2y) );
+ //---
+ memo = 0;
+ memoP0x = memoP2x;
+ memoP0y = memoP2y;
+ }
+ if(memo == 2) {
+ // now we need to approximate a cubic Bezier curve by 4 quadratic Bezier curves (Flash API uses only quadratic Bezier curves)
+ // we use the fixed midpoint method
+ // Excellent explanations here: http://timotheegroleau.com/Flash/articles/cubic_bezier_in_flash.htm
+ QPointF P0(memoP0x, memoP0y);
+ QPointF P1(memoP1x, memoP1y);
+ QPointF P2(memoP2x, memoP2y);
+ QPointF P3(memoP3x, memoP3y);
+
+ QPointF M2 = (P0+3*P1+3*P2+P3)/8;
+ QPointF C1 = (5*P0+3*P1)/8;
+ QPointF C4 = (5*P3+3*P2)/8;
+ QPointF C2 = (3*(P0+2*P1+P2)/4+M2)/4;
+ QPointF C3 = (3*(P1+2*P2+P3)/4+M2)/4;
+ QPointF M1 = 0.5*(C1+C2);
+ QPointF M3 = 0.5*(C3+C4);
+ shape->drawCurveTo( static_cast<float>(C1.x()), static_cast<float>(C1.y()), static_cast<float>(M1.x()), static_cast<float>(M1.y()) );
+ shape->drawCurveTo( static_cast<float>(C2.x()), static_cast<float>(C2.y()), static_cast<float>(M2.x()), static_cast<float>(M2.y()) );
+ shape->drawCurveTo( static_cast<float>(C3.x()), static_cast<float>(C3.y()), static_cast<float>(M3.x()), static_cast<float>(M3.y()) );
+ shape->drawCurveTo( static_cast<float>(C4.x()), static_cast<float>(C4.y()), static_cast<float>(P3.x()), static_cast<float>(P3.y()) );
+ //---
+ memo = 0;
+ memoP0x = memoP3x;
+ memoP0y = memoP3y;
+ }
+ }
+ if( element.type == QPainterPath::MoveToElement ) {
+ shape->movePenTo( static_cast<float>(element.x), static_cast<float>(element.y) );
+ memoP0x = element.x;
+ memoP0y = element.y;
+ }
+ if( element.type == QPainterPath::LineToElement ) {
+ shape->drawLineTo( static_cast<float>(element.x), static_cast<float>(element.y) );
+ memoP0x = element.x;
+ memoP0y = element.y;
+ }
+ if( element.type == QPainterPath::CurveToElement ) {
+ memoP1x = element.x;
+ memoP1y = element.y;
+ }
+ }
+ sprite->add( shape );
+}
diff -rupN pencil_backup/src/interface/editor.cpp pencil_dev/src/interface/editor.cpp
--- pencil_backup/src/interface/editor.cpp 2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/editor.cpp 2009-10-01 20:52:36.000000000 -0500
@@ -126,9 +126,11 @@ Editor::Editor(QMainWindow* parent)
connect(scribbleArea, SIGNAL(thinLinesChanged(bool)), toolSet, SLOT(changeThinLinesButton(bool)));
connect(scribbleArea, SIGNAL(outlinesChanged(bool)), toolSet, SLOT(changeOutlinesButton(bool)));
connect(toolSet, SIGNAL(mirrorClick()), this, SLOT(toggleMirror()));
- connect(toolSet, SIGNAL(prevClick()), scribbleArea, SLOT(onionPrevSlot()));
- connect(toolSet, SIGNAL(nextClick()), scribbleArea, SLOT(onionNextSlot()));
-
+
+ connect(toolSet, SIGNAL(onionStraightAheadClick()), scribbleArea, SLOT(onionChangeSlot1()));
+ connect(toolSet, SIGNAL(onionInbetweenClick()), scribbleArea, SLOT(onionChangeSlot2()));
+ connect(timeLine, SIGNAL(onionType(int)), scribbleArea, SLOT(onionChangeSlot(int)));
+
connect(this, SIGNAL(selectAll()), scribbleArea, SLOT(selectAll()));
connect(scribbleArea, SIGNAL(modification()), this, SLOT(modification()));
@@ -138,6 +140,13 @@ Editor::Editor(QMainWindow* parent)
connect(timeLine, SIGNAL(addKeyClick()), this, SLOT(addKey()));
connect(timeLine, SIGNAL(removeKeyClick()), this, SLOT(removeKey()));
+ connect(scribbleArea, SIGNAL(flipPrevious()), this, SLOT(getPrevKeyFlip()));
+ connect(scribbleArea, SIGNAL(flipNext()), this, SLOT(getNextKeyFlip()));
+
+ connect(scribbleArea, SIGNAL(onionShortCut()), timeLine, SIGNAL(onionKey()));
+ connect(scribbleArea, SIGNAL(straightAheadShortCut()), timeLine, SIGNAL(straightAheadKey()));
+ connect(scribbleArea, SIGNAL(inbetweenShortCut()), timeLine, SIGNAL(inbetweenKey()));
+
connect(timeLine, SIGNAL(newBitmapLayer()), this, SLOT(newBitmapLayer()));
connect(timeLine, SIGNAL(newVectorLayer()), this, SLOT(newVectorLayer()));
connect(timeLine, SIGNAL(newSoundLayer()), this, SLOT(newSoundLayer()));
@@ -148,9 +157,9 @@ Editor::Editor(QMainWindow* parent)
connect(timeLine, SIGNAL(loopClick()), this, SLOT(setLoop()));
connect(timeLine, SIGNAL(soundClick()), this, SLOT(setSound()));
connect(timeLine, SIGNAL(fpsClick(int)), this, SLOT(changeFps(int)));
-
- connect(timeLine, SIGNAL(onionPrevClick()), scribbleArea, SLOT(onionPrevSlot()));
- connect(timeLine, SIGNAL(onionNextClick()), scribbleArea, SLOT(onionNextSlot()));
+
+ connect(timeLine, SIGNAL(onionChecked()), scribbleArea, SLOT(onionIsOn()));
+ connect(timeLine, SIGNAL(onionType(int)), scribbleArea, SLOT(onionChangeSlot(int)));
connect(preferences, SIGNAL(windowOpacityChange(int)), mainWindow, SLOT(setOpacity(int)));
connect(preferences, SIGNAL(curveOpacityChange(int)), scribbleArea, SLOT(setCurveOpacity(int)));
@@ -171,7 +180,14 @@ Editor::Editor(QMainWindow* parent)
connect(preferences, SIGNAL(frameSizeChange(int)), timeLine, SIGNAL(frameSizeChange(int)));
connect(preferences, SIGNAL(labelChange(int)), timeLine, SIGNAL(labelChange(int)));
connect(preferences, SIGNAL(scrubChange(int)), timeLine, SIGNAL(scrubChange(int)));
-
+
+ connect(preferences, SIGNAL(onionOpacityChange(int)), scribbleArea, SLOT(onionOpacityLevel(int)));
+ connect(preferences, SIGNAL(onionStraightAheadChange(int)), scribbleArea, SLOT(StraightAheadLevel(int)));
+ connect(preferences, SIGNAL(onionPreviousPreviousChange(int)), scribbleArea, SLOT(onionPreviousPreviousLevel(int)));
+ connect(preferences, SIGNAL(onionPreviousChange(int)), scribbleArea, SLOT(onionPreviousLevel(int)));
+ connect(preferences, SIGNAL(onionNextChange(int)), scribbleArea, SLOT(onionNextLevel(int)));
+ connect(preferences, SIGNAL(onionNextNextChange(int)), scribbleArea, SLOT(onionNextNextLevel(int)));
+
connect(QApplication::clipboard(), SIGNAL(dataChanged()), this, SLOT(clipboardChanged()) );
framelay->addWidget(scribbleArea);
@@ -291,6 +307,7 @@ void Editor::applyWidth(qreal width)
setWidth(width);
Layer* layer = getCurrentLayer(); if(layer == NULL) return;
if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyWidthToSelection(width);
+ scribbleArea->setFocus();
}
void Editor::setFeather(qreal feather)
@@ -304,6 +321,7 @@ void Editor::applyFeather(qreal feather)
setFeather(feather);
Layer* layer = getCurrentLayer(); if(layer == NULL) return;
if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyFeatherToSelection(feather);
+ scribbleArea->setFocus();
}
void Editor::setOpacity(qreal opacity)
@@ -317,6 +335,7 @@ void Editor::applyOpacity(qreal opacity)
setOpacity(opacity);
Layer* layer = getCurrentLayer(); if(layer == NULL) return;
if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyOpacityToSelection(opacity);
+ scribbleArea->setFocus();
}
void Editor::setInvisibility(int invisibility)
@@ -330,6 +349,7 @@ void Editor::applyInvisibility(int invis
setInvisibility(invisibility);
Layer* layer = getCurrentLayer(); if(layer == NULL) return;
if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyInvisibilityToSelection(invisibility>0);
+ scribbleArea->setFocus();
}
void Editor::setPreserveAlpha(int preserveAlpha)
@@ -341,6 +361,7 @@ void Editor::setPreserveAlpha(int preser
void Editor::applyPreserveAlpha(int preserveAlpha)
{
setPreserveAlpha(preserveAlpha);
+ scribbleArea->setFocus();
}
void Editor::setFollowContour(int followContour)
@@ -352,6 +373,7 @@ void Editor::setFollowContour(int follow
void Editor::applyFollowContour(int followContour)
{
setFollowContour(followContour);
+ scribbleArea->setFocus();
}
void Editor::setPressure(int pressure)
@@ -365,6 +387,7 @@ void Editor::applyPressure(int pressure)
setPressure(pressure);
Layer* layer = getCurrentLayer(); if(layer == NULL) return;
if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyVariableWidthToSelection(pressure>0);
+ scribbleArea->setFocus();
}
void Editor::selectColour(int i)
@@ -685,6 +708,7 @@ void Editor::newBitmapLayer() {
timeLine->updateLayerNumber( object->getLayerCount() );
setCurrentLayer( object->getLayerCount()-1 );
}
+ scribbleArea->setFocus();
}
void Editor::newVectorLayer() {
@@ -693,6 +717,7 @@ void Editor::newVectorLayer() {
timeLine->updateLayerNumber( object->getLayerCount() );
setCurrentLayer( object->getLayerCount()-1 );
}
+ scribbleArea->setFocus();
}
void Editor::newSoundLayer() {
@@ -701,6 +726,7 @@ void Editor::newSoundLayer() {
timeLine->updateLayerNumber( object->getLayerCount() );
setCurrentLayer( object->getLayerCount()-1 );
}
+ scribbleArea->setFocus();
}
void Editor::newCameraLayer() {
@@ -709,11 +735,12 @@ void Editor::newCameraLayer() {
timeLine->updateLayerNumber( object->getLayerCount() );
setCurrentLayer( object->getLayerCount()-1 );
}
+ scribbleArea->setFocus();
}
void Editor::deleteCurrentLayer() {
int ret = QMessageBox::warning(this, tr("Warning"),
- tr("Are yo sure you want to delete the selected layer?"),
+ tr("Are you sure you want to delete the selected layer?"),
QMessageBox::Ok | QMessageBox::Cancel,
QMessageBox::Ok);
if(ret == QMessageBox::Ok) {
@@ -723,12 +750,14 @@ void Editor::deleteCurrentLayer() {
//timeLine->update();
scribbleArea->updateAllFrames();
}
+ scribbleArea->setFocus();
}
void Editor::toggleMirror() {
object->toggleMirror();
scribbleArea->toggleMirror();
+ scribbleArea->setFocus();
}
void Editor::toggleShowAllLayers() {
@@ -747,6 +776,7 @@ void Editor::showPalette() {
} else {
palette->show();
}
+ scribbleArea->setFocus();
}
void Editor::saveLength(QString x) {
@@ -1430,6 +1460,7 @@ void Editor::nextLayer() {
void Editor::addKey() {
addKey(currentLayer, currentFrame);
+ scribbleArea->setFocus();
}
void Editor::addKey(int layerNumber, int &frameNumber) {
@@ -1459,6 +1490,7 @@ void Editor::removeKey() {
if(layer->type == Layer::CAMERA) ((LayerCamera*)layer)->removeImageAtFrame(currentFrame);
timeLine->updateContent();
scribbleArea->updateFrame();
+ scribbleArea->setFocus();
}
}
@@ -1483,7 +1515,68 @@ void Editor::removeFrame(int frameNumber
scribbleArea->updateFrame();
timeLine->update();
}
+///*
+void Editor::getPrevKeyFlip() {
+ currentFrame = getPrevKey(currentFrame);
+ timeLine->update();
+ scribbleArea->updateFrame();
+}
+
+int Editor::getPrevKey(int frameNumber) {
+ int keyInQuestion = frameNumber;
+ bool nothingFound = true;
+ Layer* layer;
+ if(object->getLayer(currentLayer) != NULL) layer = object->getLayer(currentLayer);
+ else return NULL;
+ while(nothingFound) {
+ --keyInQuestion;
+ if(keyInQuestion == 0) keyInQuestion = object->getLayer(currentLayer)->getMaxFrame();
+ switch(layer->type) {
+ case Layer::BITMAP:
+ if(((LayerBitmap*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;
+ break;
+ case Layer::VECTOR:
+ if(((LayerVector*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;
+ break;
+ case Layer::CAMERA:
+ if(((LayerCamera*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;
+ break;
+ }
+ }
+ return keyInQuestion;
+}
+
+void Editor::getNextKeyFlip() {
+ currentFrame = getNextKey(currentFrame);
+ timeLine->update();
+ scribbleArea->updateFrame();
+}
+
+int Editor::getNextKey(int frameNumber) {
+ int keyInQuestion = frameNumber;
+ bool nothingFound = true;
+ Layer* layer;
+ if(object->getLayer(currentLayer) != NULL) layer = object->getLayer(currentLayer);
+ else return NULL;
+ while(nothingFound) {
+ ++keyInQuestion;
+ if(keyInQuestion > object->getLayer(currentLayer)->getMaxFrame()) keyInQuestion = 1;
+ switch(layer->type) {
+ case Layer::BITMAP:
+ if(((LayerBitmap*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;
+ break;
+ case Layer::VECTOR:
+ if(((LayerVector*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;
+ break;
+ case Layer::CAMERA:
+ if(((LayerCamera*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;
+ break;
+ }
+ }
+ return keyInQuestion;
+}
+//*/
int Editor::getLastIndexAtFrame(int frameNumber) {
int position = -1;
int index = -1;
@@ -1521,6 +1614,7 @@ void Editor::play() {
startOrStop();
}
}
+ scribbleArea->setFocus();
}
void Editor::startOrStop() {
@@ -1541,6 +1635,7 @@ void Editor::playNextFrame() {
} else {
play();
}
+ scribbleArea->setFocus();
}
void Editor::changeFps(int x) {
@@ -1548,6 +1643,7 @@ void Editor::changeFps(int x) {
QSettings settings("Pencil","Pencil");
settings.setValue("fps", x);
timer->setInterval(1000/fps);
+ scribbleArea->setFocus();
}
int Editor::getFps() {
@@ -1557,6 +1653,7 @@ int Editor::getFps() {
void Editor::setLoop() {
if (looping) looping=false;
else looping=true;
+ scribbleArea->setFocus();
}
void Editor::setSound() {
diff -rupN pencil_backup/src/interface/editor.cpp~ pencil_dev/src/interface/editor.cpp~
--- pencil_backup/src/interface/editor.cpp~ 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/editor.cpp~ 2009-10-01 19:40:58.000000000 -0500
@@ -0,0 +1,1819 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+*/
+#include <QtGui>
+#include <QBoxLayout>
+#include <QLabel>
+#include <QSlider>
+#include <QTableWidget>
+#include <QListWidget>
+#include <QMainWindow>
+#include <QTimer>
+
+#include "editor.h"
+#include "layerbitmap.h"
+#include "layervector.h"
+#include "layersound.h"
+#include "layercamera.h"
+
+
+Editor::Editor(QMainWindow* parent)
+{
+ mainWindow = parent;
+
+ QSettings settings("Pencil","Pencil");
+
+ object = NULL; // the editor is initialized with no object
+ savedName = "";
+ altpress=false;
+ modified=false;
+ numberOfModifications = 0;
+ autosave=settings.value("autosave").toBool();
+ autosaveNumber=settings.value("autosaveNumber").toInt();
+ if (autosaveNumber==0) { autosaveNumber=20; settings.setValue("autosaveNumber", 20); }
+ backupIndex = -1;
+ clipboardBitmapOk = false;
+ clipboardVectorOk = false;
+
+
+ fps = settings.value("fps").toInt();
+ if (fps==0) { fps=12; settings.setValue("fps", 12); }
+ maxFrame = 1;
+ timer = new QTimer(this);
+ timer->setInterval(1000/fps);
+ connect(timer, SIGNAL(timeout()), this, SLOT(playNextFrame()));
+ playing = false;
+ looping = false;
+ sound = true;
+
+ frameList << 1;
+ currentFrame = 1;
+ currentLayer = 0;
+
+ QHBoxLayout *lay = new QHBoxLayout();
+ QVBoxLayout *framelay = new QVBoxLayout();
+
+ scribbleArea = new ScribbleArea(this, this);
+ timeLine = new TimeLine(this, this);
+
+ toolSet = new ToolSet();
+ palette = new Palette(this);
+ preferences = new Preferences();
+ exportFramesDialog = NULL; // will be created when needed
+ exportMovieDialog = NULL;
+ exportFlashDialog = NULL;
+ newDocumentDialog = NULL;
+ exportFramesDialog_hBox = NULL;
+ exportFramesDialog_vBox = NULL;
+ exportFramesDialog_format = NULL;
+ exportMovieDialog_hBox = NULL;
+ exportMovieDialog_vBox = NULL;
+ exportMovieDialog_format = NULL;
+
+ exportFlashDialog_compression = NULL;
+
+ // FOCUS POLICY
+ scribbleArea->setFocusPolicy(Qt::StrongFocus);
+ timeLine->setFocusPolicy(Qt::NoFocus);
+ toolSet->setFocusPolicy(Qt::NoFocus);
+ palette->setFocusPolicy(Qt::NoFocus);
+
+ // CONNECTIONS
+ connect(toolSet, SIGNAL(addClick()), this, SLOT(addKey()));
+ connect(toolSet, SIGNAL(rmClick()), this, SLOT(removeKey()));
+ connect(toolSet, SIGNAL(playClick()), this, SLOT(play()));
+ connect(toolSet, SIGNAL(fpsClick(int)), this, SLOT(changeFps(int)));
+ connect(toolSet, SIGNAL(loopClick()), this, SLOT(setLoop()));
+
+ connect(toolSet, SIGNAL(pencilClick()), scribbleArea, SLOT(pencilOn()));
+ connect(toolSet, SIGNAL(eraserClick()), scribbleArea, SLOT(eraserOn()));
+ connect(toolSet, SIGNAL(selectClick()), scribbleArea, SLOT(selectOn()));
+ connect(toolSet, SIGNAL(moveClick()), scribbleArea, SLOT(moveOn()));
+ connect(toolSet, SIGNAL(handClick()), scribbleArea, SLOT(handOn()));
+ connect(toolSet, SIGNAL(penClick()), scribbleArea, SLOT(penOn()));
+ connect(toolSet, SIGNAL(polylineClick()), scribbleArea, SLOT(polylineOn()));
+ connect(toolSet, SIGNAL(bucketClick()), scribbleArea, SLOT(bucketOn()));
+ connect(toolSet, SIGNAL(eyedropperClick()), scribbleArea, SLOT(eyedropperOn()));
+ connect(toolSet, SIGNAL(colouringClick()), scribbleArea, SLOT(colouringOn()));
+ connect(toolSet, SIGNAL(smudgeClick()), scribbleArea, SLOT(smudgeOn()));
+
+ connect(toolSet, SIGNAL(pressureClick(int)), this, SLOT(applyPressure(int)));
+ connect(toolSet, SIGNAL(invisibleClick(int)), this, SLOT(applyInvisibility(int)));
+ connect(toolSet, SIGNAL(preserveAlphaClick(int)), this, SLOT(applyPreserveAlpha(int)));
+ connect(toolSet, SIGNAL(followContourClick(int)), this, SLOT(applyFollowContour(int)));
+
+ connect(toolSet, SIGNAL(widthClick(qreal)), this, SLOT(applyWidth(qreal)));
+ connect(toolSet, SIGNAL(featherClick(qreal)), this, SLOT(applyFeather(qreal)));
+ connect(toolSet, SIGNAL(opacityClick(qreal)), this, SLOT(applyOpacity(qreal)));
+
+ connect(toolSet, SIGNAL(colourClick()), this, SLOT(showPalette()));
+
+ connect(toolSet,SIGNAL(clearClick()), scribbleArea, SLOT(clearImage()));
+ connect(toolSet, SIGNAL(thinLinesClick()), scribbleArea, SLOT(toggleThinLines()));
+ connect(toolSet, SIGNAL(outlinesClick()), scribbleArea, SLOT(toggleOutlines()));
+ connect(scribbleArea, SIGNAL(thinLinesChanged(bool)), toolSet, SLOT(changeThinLinesButton(bool)));
+ connect(scribbleArea, SIGNAL(outlinesChanged(bool)), toolSet, SLOT(changeOutlinesButton(bool)));
+ connect(toolSet, SIGNAL(mirrorClick()), this, SLOT(toggleMirror()));
+
+ connect(toolSet, SIGNAL(onionStraightAheadClick()), scribbleArea, SLOT(onionChangeSlot1()));
+ connect(toolSet, SIGNAL(onionInbetweenClick()), scribbleArea, SLOT(onionChangeSlot2()));
+ connect(timeLine, SIGNAL(onionType(int)), scribbleArea, SLOT(onionChangeSlot(int)));
+
+ connect(this, SIGNAL(selectAll()), scribbleArea, SLOT(selectAll()));
+
+ connect(scribbleArea, SIGNAL(modification()), this, SLOT(modification()));
+ connect(scribbleArea, SIGNAL(modification(int)), this, SLOT(modification(int)));
+ connect(timeLine, SIGNAL(modification()), this, SLOT(modification()));
+
+ connect(timeLine, SIGNAL(addKeyClick()), this, SLOT(addKey()));
+ connect(timeLine, SIGNAL(removeKeyClick()), this, SLOT(removeKey()));
+
+ connect(scribbleArea, SIGNAL(flipPrevious()), this, SLOT(getPrevKeyFlip()));
+ connect(scribbleArea, SIGNAL(flipNext()), this, SLOT(getNextKeyFlip()));
+
+ connect(scribbleArea, SIGNAL(onionShortCut()), timeLine, SIGNAL(onionKey()));
+ connect(scribbleArea, SIGNAL(straightAheadShortCut()), timeLine, SIGNAL(straightAheadKey()));
+ connect(scribbleArea, SIGNAL(inbetweenShortCut()), timeLine, SIGNAL(inbetweenKey()));
+
+ connect(timeLine, SIGNAL(newBitmapLayer()), this, SLOT(newBitmapLayer()));
+ connect(timeLine, SIGNAL(newVectorLayer()), this, SLOT(newVectorLayer()));
+ connect(timeLine, SIGNAL(newSoundLayer()), this, SLOT(newSoundLayer()));
+ connect(timeLine, SIGNAL(newCameraLayer()), this, SLOT(newCameraLayer()));
+ connect(timeLine, SIGNAL(deleteCurrentLayer()), this, SLOT(deleteCurrentLayer()));
+
+ connect(timeLine, SIGNAL(playClick()), this, SLOT(play()));
+ connect(timeLine, SIGNAL(loopClick()), this, SLOT(setLoop()));
+ connect(timeLine, SIGNAL(soundClick()), this, SLOT(setSound()));
+ connect(timeLine, SIGNAL(fpsClick(int)), this, SLOT(changeFps(int)));
+
+ connect(timeLine, SIGNAL(onionChecked()), scribbleArea, SLOT(onionIsOn()));
+ connect(timeLine, SIGNAL(onionType(int)), scribbleArea, SLOT(onionChangeSlot(int)));
+
+ connect(preferences, SIGNAL(windowOpacityChange(int)), mainWindow, SLOT(setOpacity(int)));
+ connect(preferences, SIGNAL(curveOpacityChange(int)), scribbleArea, SLOT(setCurveOpacity(int)));
+ connect(preferences, SIGNAL(curveSmoothingChange(int)), scribbleArea, SLOT(setCurveSmoothing(int)));
+ connect(preferences, SIGNAL(highResPositionChange(int)), scribbleArea, SLOT(setHighResPosition(int)));
+ connect(preferences, SIGNAL(antialiasingChange(int)), scribbleArea, SLOT(setAntialiasing(int)));
+ connect(preferences, SIGNAL(gradientsChange(int)), scribbleArea, SLOT(setGradients(int)));
+ connect(preferences, SIGNAL(backgroundChange(int)), scribbleArea, SLOT(setBackground(int)));
+ connect(preferences, SIGNAL(shadowsChange(int)), scribbleArea, SLOT(setShadows(int)));
+ connect(preferences, SIGNAL(toolCursorsChange(int)), scribbleArea, SLOT(setToolCursors(int)));
+ connect(preferences, SIGNAL(styleChange(int)), scribbleArea, SLOT(setStyle(int)));
+
+ connect(preferences, SIGNAL(autosaveChange(int)), this, SLOT(changeAutosave(int)));
+ connect(preferences, SIGNAL(autosaveNumberChange(int)), this, SLOT(changeAutosaveNumber(int)));
+
+ connect(preferences, SIGNAL(lengthSizeChange(QString)), timeLine, SIGNAL(lengthChange(QString)));
+ connect(preferences, SIGNAL(fontSizeChange(int)), timeLine, SIGNAL(fontSizeChange(int)));
+ connect(preferences, SIGNAL(frameSizeChange(int)), timeLine, SIGNAL(frameSizeChange(int)));
+ connect(preferences, SIGNAL(labelChange(int)), timeLine, SIGNAL(labelChange(int)));
+ connect(preferences, SIGNAL(scrubChange(int)), timeLine, SIGNAL(scrubChange(int)));
+
+ connect(preferences, SIGNAL(onionOpacityChange(int)), scribbleArea, SLOT(onionOpacityLevel(int)));
+ connect(preferences, SIGNAL(onionStraightAheadChange(int)), scribbleArea, SLOT(StraightAheadLevel(int)));
+ connect(preferences, SIGNAL(onionPreviousPreviousChange(int)), scribbleArea, SLOT(onionPreviousPreviousLevel(int)));
+ connect(preferences, SIGNAL(onionPreviousChange(int)), scribbleArea, SLOT(onionPreviousLevel(int)));
+ connect(preferences, SIGNAL(onionNextChange(int)), scribbleArea, SLOT(onionNextLevel(int)));
+ connect(preferences, SIGNAL(onionNextNextChange(int)), scribbleArea, SLOT(onionNextNextLevel(int)));
+
+ connect(QApplication::clipboard(), SIGNAL(dataChanged()), this, SLOT(clipboardChanged()) );
+
+ framelay->addWidget(scribbleArea);
+ lay->addWidget(toolSet);
+ lay->addLayout(framelay);
+
+ framelay->setMargin(0);
+ framelay->setSpacing(0);
+ lay->setMargin(0);
+ lay->setSpacing(0);
+
+ setLayout(lay);
+
+ qDebug() << "Hello";
+ qDebug() << QLibraryInfo::location(QLibraryInfo::PluginsPath);
+ qDebug() << QLibraryInfo::location(QLibraryInfo::BinariesPath);
+ qDebug() << QLibraryInfo::location(QLibraryInfo::LibrariesPath);
+
+ setAcceptDrops(true);
+}
+
+Editor::~Editor() {
+ // a lot more probably needs to be cleaned here...
+ if (object) delete object;
+ clearBackup();
+}
+
+void Editor::dragEnterEvent(QDragEnterEvent *event)
+{
+ //if (event->mimeData()->hasFormat("text/plain"))
+ event->acceptProposedAction();
+}
+
+void Editor::dropEvent(QDropEvent *event)
+{
+ if( event->mimeData()->hasUrls() ) {
+ for(int i=0; i < event->mimeData()->urls().size(); i++) {
+ if(i>0) scrubForward();
+ QUrl url = event->mimeData()->urls()[i];
+ QString filePath = url.toLocalFile();
+ if(filePath.endsWith(".png") || filePath.endsWith(".jpg") || filePath.endsWith(".jpeg"))
+ importImage( filePath );
+ if(filePath.endsWith(".aif") || filePath.endsWith(".mp3") || filePath.endsWith(".wav"))
+ importSound( filePath );
+ }
+ }
+}
+
+
+void Editor::showCounter(int n) {
+ toolSet->setCounter(n);
+}
+
+void Editor::newDocument() {
+ if (maybeSave()) {
+ //if (!exportFramesDialog) createNewDocumentDialog();
+ //newDocumentDialog->exec();
+ //if(newDocumentDialog->result() == QDialog::Rejected) return;
+ //QSize documentSize = QSize(newDocumentDialog_hBox->value(), newDocumentDialog_vBox->value());
+ //newObject(documentSize);
+ newObject(); // default size
+ }
+}
+
+void Editor::openDocument()
+{
+ if (maybeSave()) {
+ QSettings settings("Pencil","Pencil");
+ QString myPath = settings.value("lastFilePath", QVariant(QDir::homePath())).toString();
+ QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), myPath);
+ if (!fileName.isEmpty()) {
+ bool ok = openObject(fileName);
+ if(!ok) {
+ QMessageBox::warning(this, "Warning", "Pencil cannot read this file. If you want to import images, use the command import.");
+ newObject();
+ }
+ }
+ }
+}
+
+void Editor::openRecent() {
+ QSettings settings("Pencil","Pencil");
+ QString myPath = settings.value("lastFilePath", QVariant(QDir::homePath())).toString();
+ bool ok = openObject(myPath);
+ if(!ok) {
+ QMessageBox::warning(this, "Warning", "Pencil cannot read this file. If you want to import images, use the command import.");
+ newObject();
+ }
+}
+
+bool Editor::saveDocument()
+{
+ //QAction *action = qobject_cast<QAction *>(sender()); // ? old code from Patrick?
+ //QByteArray fileFormat = action->data().toByteArray(); // ? old code from Patrick?
+ QSettings settings("Pencil","Pencil");
+ QString myPath = settings.value("lastFilePath", QVariant(QDir::homePath())).toString();
+
+ QString fileName = QFileDialog::getSaveFileName(this, tr("Save As"), myPath);
+
+ if (fileName.isEmpty()) {
+ return false;
+ } else {
+ QSettings settings("Pencil","Pencil");
+ settings.setValue("lastFilePath", QVariant(fileName));
+ return saveObject(fileName);
+ }
+}
+
+void Editor::setWidth(qreal width)
+{
+ scribbleArea->setWidth(width);
+ toolSet->setWidth(width);
+}
+
+void Editor::applyWidth(qreal width)
+{
+ setWidth(width);
+ Layer* layer = getCurrentLayer(); if(layer == NULL) return;
+ if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyWidthToSelection(width);
+ scribbleArea->setFocus();
+}
+
+void Editor::setFeather(qreal feather)
+{
+ scribbleArea->setFeather(feather);
+ toolSet->setFeather(feather);
+}
+
+void Editor::applyFeather(qreal feather)
+{
+ setFeather(feather);
+ Layer* layer = getCurrentLayer(); if(layer == NULL) return;
+ if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyFeatherToSelection(feather);
+ scribbleArea->setFocus();
+}
+
+void Editor::setOpacity(qreal opacity)
+{
+ scribbleArea->setOpacity(opacity);
+ toolSet->setOpacity(opacity);
+}
+
+void Editor::applyOpacity(qreal opacity)
+{
+ setOpacity(opacity);
+ Layer* layer = getCurrentLayer(); if(layer == NULL) return;
+ if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyOpacityToSelection(opacity);
+ scribbleArea->setFocus();
+}
+
+void Editor::setInvisibility(int invisibility)
+{
+ if(invisibility>=0) scribbleArea->setInvisibility(invisibility>0);
+ toolSet->setInvisibility(invisibility);
+}
+
+void Editor::applyInvisibility(int invisibility)
+{
+ setInvisibility(invisibility);
+ Layer* layer = getCurrentLayer(); if(layer == NULL) return;
+ if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyInvisibilityToSelection(invisibility>0);
+ scribbleArea->setFocus();
+}
+
+void Editor::setPreserveAlpha(int preserveAlpha)
+{
+ if(preserveAlpha>=0) scribbleArea->setPreserveAlpha(preserveAlpha>0);
+ toolSet->setPreserveAlpha(preserveAlpha);
+}
+
+void Editor::applyPreserveAlpha(int preserveAlpha)
+{
+ setPreserveAlpha(preserveAlpha);
+ scribbleArea->setFocus();
+}
+
+void Editor::setFollowContour(int followContour)
+{
+ if(followContour>=0) scribbleArea->setFollowContour(followContour>0);
+ toolSet->setFollowContour(followContour);
+}
+
+void Editor::applyFollowContour(int followContour)
+{
+ setFollowContour(followContour);
+ scribbleArea->setFocus();
+}
+
+void Editor::setPressure(int pressure)
+{
+ if(pressure>=0) scribbleArea->setPressure(pressure>0);
+ toolSet->setPressure(pressure);
+}
+
+void Editor::applyPressure(int pressure)
+{
+ setPressure(pressure);
+ Layer* layer = getCurrentLayer(); if(layer == NULL) return;
+ if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyVariableWidthToSelection(pressure>0);
+ scribbleArea->setFocus();
+}
+
+void Editor::selectColour(int i)
+{
+ if(i > -1) {
+ scribbleArea->setColour(i);
+ toolSet->setColour(object->getColour(i).colour);
+ palette->selectColour(i);
+ palette->setColour(object->getColour(i).colour);
+ }
+}
+
+void Editor::selectAndApplyColour(int i)
+{
+ selectColour(i);
+ Layer* layer = getCurrentLayer(); if(layer == NULL) return;
+ if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyColourToSelection(i);
+}
+
+void Editor::setColour(QColor colour)
+{
+ scribbleArea->setColour(colour);
+ toolSet->setColour(colour);
+ palette->setColour(colour);
+}
+
+void Editor::changeColour(int i)
+{
+ //QColor newColour = QColorDialog::getColor(object->getColour(i).colour);
+ if(i>-1) {
+ bool *ok;
+ ok = new bool;
+ QRgb qrgba = QColorDialog::getRgba( object->getColour(i).colour.rgba(), ok, this );
+ if(*ok) {
+ changeColour(i, QColor::fromRgba(qrgba) );
+ }
+ delete ok;
+ }
+}
+
+void Editor::changeColourName(int i)
+{
+ if (i>-1) {
+ bool ok;
+ QString text = QInputDialog::getText(this, tr("Colour name"),
+ tr("Colour name:"), QLineEdit::Normal,
+ object->getColour(i).name, &ok);
+ if (ok && !text.isEmpty()) {
+ object->renameColour(i, text);
+ palette->updateList();
+ }
+ }
+}
+
+void Editor::changeColour(int i, QColor newColour)
+{
+ if (newColour.isValid() && i>-1) {
+ /*object->setColour(i, newColour);
+ Layer* layer = object->getLayer(currentLayer);
+ if(layer != NULL) {
+ if(layer->type == Layer::VECTOR) scribbleArea->setModified(layer, currentFrame);
+ }*/
+ updateColour(i, newColour);
+ palette->updateList();
+ selectColour(i);
+ }
+}
+
+void Editor::updateColour(int i, QColor newColour)
+{
+ if( newColour.isValid() && i>-1) {
+ object->setColour(i, newColour);
+ Layer* layer = object->getLayer(currentLayer);
+ if(layer != NULL) {
+ if(layer->type == Layer::VECTOR) scribbleArea->setModified(currentLayer, currentFrame);
+ }
+ toolSet->setColour(object->getColour(i).colour);
+ palette->updateSwatch(object->getColour(i).colour);
+ scribbleArea->setColour(i);
+ }
+}
+
+void Editor::addColour() {
+ QColor initialColour = Qt::white;
+ int currentColourIndex = palette->currentColour();
+ if( currentColourIndex > -1 ) {
+ initialColour = object->getColour(currentColourIndex).colour;
+ }
+ bool *ok;
+ ok = new bool;
+ QRgb qrgba = QColorDialog::getRgba( initialColour.rgba(), ok, this );
+ if(*ok) {
+ object->addColour( QColor::fromRgba(qrgba) );
+ palette->updateList();
+ selectColour(object->getColourCount()-1);
+ }
+ delete ok;
+
+ /*QColor newColour = QColorDialog::getColor( initialColour );
+ if (newColour.isValid()) {
+ object->addColour(newColour);
+ palette->updateList();
+ //selectColour(object->getColourCount());
+ }*/
+}
+
+
+void Editor::removeColour(int i) {
+ if(object->removeColour(i)) {
+ palette->updateList();
+ } else {
+ QMessageBox::warning(this, tr("Warning"),
+ tr("You cannot remove this colour because it is used!"),
+ QMessageBox::Ok,
+ QMessageBox::Ok);
+ }
+}
+
+void Editor::changeAutosave(int x) {
+ QSettings settings("Pencil","Pencil");
+ if (x==0) { autosave=false; settings.setValue("autosave","false"); }
+ else { autosave=true; settings.setValue("autosave","true"); }
+}
+
+void Editor::changeAutosaveNumber(int number) {
+ autosaveNumber = number;
+ QSettings settings("Pencil","Pencil");
+ settings.setValue("autosaveNumber", number);
+}
+
+void Editor::modification() {
+ modification(currentLayer);
+}
+
+void Editor::modification(int layerNumber) {
+ modified = true;
+ if(object != NULL) object->modification();
+ lastModifiedFrame = currentFrame;
+ lastModifiedLayer = layerNumber;
+ scribbleArea->update();
+ timeLine->updateContent();
+ numberOfModifications++;
+ if(autosave && numberOfModifications > autosaveNumber) {
+ numberOfModifications = 0;
+ //saveForce();
+ if (savedName!="") saveObject(savedName);
+ }
+}
+
+void Editor::backup() {
+ if(lastModifiedLayer>-1 && lastModifiedFrame > 0) {
+ backup(lastModifiedLayer, lastModifiedFrame);
+ }
+ if( lastModifiedLayer != currentLayer || lastModifiedFrame != currentFrame ) {
+ backup(currentLayer, currentFrame);
+ }
+}
+
+void Editor::backup(int backupLayer, int backupFrame) {
+ while(backupList.size()-1 > backupIndex && backupList.size() > 0) {
+ delete backupList.takeLast();
+ }
+ while(backupList.size() > 19) { // we authorize only 20 levels of cancellation
+ delete backupList.takeFirst();
+ backupIndex--;
+ }
+ Layer* layer = object->getLayer(backupLayer);
+ if(layer != NULL) {
+ if(layer->type == Layer::BITMAP) {
+ BackupBitmapElement* element = new BackupBitmapElement();
+ element->layer = backupLayer;
+ element->frame = backupFrame;
+ BitmapImage* bitmapImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(backupFrame, 0);
+ if(bitmapImage != NULL) {
+ element->bitmapImage = bitmapImage->copy(); // copy the image
+ backupList.append(element);
+ backupIndex++;
+ }
+ }
+ if(layer->type == Layer::VECTOR) {
+ BackupVectorElement* element = new BackupVectorElement();
+ element->layer = backupLayer;
+ element->frame = backupFrame;
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(backupFrame, 0);
+ if(vectorImage != NULL) {
+ element->vectorImage = *vectorImage; // copy the image (that works but I should also provide a copy() method)
+ backupList.append(element);
+ backupIndex++;
+ }
+ }
+ }
+}
+
+void BackupBitmapElement::restore(Editor* editor) {
+ Layer* layer = editor->object->getLayer(this->layer);
+ if(layer != NULL) {
+ if(layer->type == Layer::BITMAP) {
+ *( ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(this->frame, 0) ) = this->bitmapImage; // restore the image
+ }
+ }
+ editor->updateFrame(this->frame);
+ editor->scrubTo(this->frame);
+}
+
+void BackupVectorElement::restore(Editor* editor) {
+ Layer* layer = editor->object->getLayer(this->layer);
+ if(layer != NULL) {
+ if(layer->type == Layer::VECTOR) {
+ *( ((LayerVector*)layer)->getLastVectorImageAtFrame(this->frame, 0) ) = this->vectorImage; // restore the image
+ //((LayerVector*)layer)->getLastVectorImageAtFrame(this->frame, 0)->setModified(true); // why?
+ //editor->scribbleArea->setModified(layer, this->frame);
+ }
+ }
+ editor->updateFrameAndVector(this->frame);
+ editor->scrubTo(this->frame);
+}
+
+void Editor::undo() {
+ if( backupList.size() > 0 && backupIndex > -1) {
+ if(backupIndex == backupList.size()-1) {
+ BackupElement* lastBackupElement = backupList[backupIndex];
+ if(lastBackupElement->type() == BackupElement::BITMAP_MODIF) {
+ BackupBitmapElement* lastBackupBitmapElement = (BackupBitmapElement*)lastBackupElement;
+ backup( lastBackupBitmapElement->layer, lastBackupBitmapElement->frame );
+ backupIndex--;
+ }
+ if(lastBackupElement->type() == BackupElement::VECTOR_MODIF) {
+ BackupVectorElement* lastBackupVectorElement = (BackupVectorElement*)lastBackupElement;
+ backup( lastBackupVectorElement->layer, lastBackupVectorElement->frame );
+ backupIndex--;
+ }
+ }
+ //
+ backupList[backupIndex]->restore(this);
+ backupIndex--;
+ scribbleArea->calculateSelectionRect(); // really ugly -- to improve
+ }
+}
+
+void Editor::redo() {
+ if( backupList.size() > 0 && backupIndex < backupList.size()-2) {
+ backupIndex++;
+ backupList[backupIndex+1]->restore(this);
+ }
+}
+
+void Editor::clearBackup() {
+ backupIndex = -1;
+ while( !backupList.isEmpty() ) {
+ delete backupList.takeLast();
+ }
+ lastModifiedLayer = -1;
+ lastModifiedFrame = -1;
+}
+
+void Editor::copy() {
+ Layer* layer = object->getLayer(currentLayer);
+ if(layer != NULL) {
+ if(layer->type == Layer::BITMAP) {
+ if(scribbleArea->somethingSelected) {
+ clipboardBitmapImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(currentFrame, 0)->copy( scribbleArea->getSelection().toRect() ); // copy part of the image
+ } else {
+ clipboardBitmapImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(currentFrame, 0)->copy(); // copy the whole image
+ }
+ clipboardBitmapOk = true;
+ if( clipboardBitmapImage.image != NULL ) QApplication::clipboard()->setImage( *(clipboardBitmapImage.image) );
+ }
+ if(layer->type == Layer::VECTOR) {
+ clipboardVectorOk = true;
+ clipboardVectorImage = *( ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0) ); // copy the image (that works but I should also provide a copy() method)
+ }
+ }
+}
+
+void Editor::paste() {
+ Layer* layer = object->getLayer(currentLayer);
+ if(layer != NULL) {
+ if(layer->type == Layer::BITMAP && clipboardBitmapImage.image != NULL) { // clipboardBitmapOk
+ backup();
+ BitmapImage tobePasted = clipboardBitmapImage.copy();
+ qDebug() << "to be pasted --->" << tobePasted.image->size();
+ if(scribbleArea->somethingSelected) {
+ QRectF selection = scribbleArea->getSelection();
+ if( clipboardBitmapImage.width() <= selection.width() && clipboardBitmapImage.height() <= selection.height() ) {
+ tobePasted.moveTopLeft( selection.topLeft() );
+ } else {
+ tobePasted.transform( selection, true );
+ }
+ }
+ ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(currentFrame, 0)->paste( &tobePasted ); // paste the clipboard
+ }
+ if(layer->type == Layer::VECTOR && clipboardVectorOk) {
+ backup();
+ scribbleArea->deselectAll();
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0);
+ vectorImage->paste( clipboardVectorImage ); // paste the clipboard
+ scribbleArea->setSelection( vectorImage->getSelectionRect(), true );
+ //((LayerVector*)layer)->getLastVectorImageAtFrame(backupFrame, 0)->modification(); ????
+ }
+ }
+ scribbleArea->updateFrame();
+}
+
+void Editor::clipboardChanged() {
+ if(clipboardBitmapOk == false) {
+ clipboardBitmapImage.image = new QImage( QApplication::clipboard()->image() );
+ clipboardBitmapImage.boundaries = QRect( clipboardBitmapImage.topLeft(), clipboardBitmapImage.image->size() );
+ qDebug() << "New clipboard image" << clipboardBitmapImage.image->size();
+ } else {
+ clipboardBitmapOk = false;
+ qDebug() << "The image has been saved in the clipboard";
+ }
+}
+
+void Editor::newBitmapLayer() {
+ if(object != NULL) {
+ object->addNewBitmapLayer();
+ timeLine->updateLayerNumber( object->getLayerCount() );
+ setCurrentLayer( object->getLayerCount()-1 );
+ }
+ scribbleArea->setFocus();
+}
+
+void Editor::newVectorLayer() {
+ if(object != NULL) {
+ object->addNewVectorLayer();
+ timeLine->updateLayerNumber( object->getLayerCount() );
+ setCurrentLayer( object->getLayerCount()-1 );
+ }
+ scribbleArea->setFocus();
+}
+
+void Editor::newSoundLayer() {
+ if(object != NULL) {
+ object->addNewSoundLayer();
+ timeLine->updateLayerNumber( object->getLayerCount() );
+ setCurrentLayer( object->getLayerCount()-1 );
+ }
+ scribbleArea->setFocus();
+}
+
+void Editor::newCameraLayer() {
+ if(object != NULL) {
+ object->addNewCameraLayer();
+ timeLine->updateLayerNumber( object->getLayerCount() );
+ setCurrentLayer( object->getLayerCount()-1 );
+ }
+ scribbleArea->setFocus();
+}
+
+void Editor::deleteCurrentLayer() {
+ int ret = QMessageBox::warning(this, tr("Warning"),
+ tr("Are you sure you want to delete the selected layer?"),
+ QMessageBox::Ok | QMessageBox::Cancel,
+ QMessageBox::Ok);
+ if(ret == QMessageBox::Ok) {
+ object->deleteLayer(currentLayer);
+ if(currentLayer == object->getLayerCount()) setCurrentLayer( currentLayer-1 );
+ timeLine->updateLayerNumber( object->getLayerCount() );
+ //timeLine->update();
+ scribbleArea->updateAllFrames();
+ }
+ scribbleArea->setFocus();
+}
+
+
+void Editor::toggleMirror() {
+ object->toggleMirror();
+ scribbleArea->toggleMirror();
+ scribbleArea->setFocus();
+}
+
+void Editor::toggleShowAllLayers() {
+ scribbleArea->toggleShowAllLayers();
+ timeLine->updateContent();
+}
+
+void Editor::resetMirror() {
+ object->resetMirror();
+ toolSet->resetMirror();
+}
+
+void Editor::showPalette() {
+ if(palette->isVisible()) {
+ palette->close();
+ } else {
+ palette->show();
+ }
+ scribbleArea->setFocus();
+}
+
+void Editor::saveLength(QString x) {
+ bool ok;
+ int dec = x.toInt(&ok, 10);
+ QSettings settings("Pencil","Pencil");
+ settings.setValue("length", dec);
+}
+
+void Editor::about()
+{
+ QMessageBox::about(this, tr("Pencil 0.4.4b"),
+ tr("<div style='background-color: #DDDDDD; text-align: center'>"
+ "<img src=':icons/logo.png' width='100%'><br>"
+ "<table style='background-color: #DDDDDD'><tr><td width='160px'>"
+ "Developed by: <i>Pascal Naidon</i> & <i>Patrick Corrieri</i><br>"
+ "Version: <b>0.4.4b</b> (21st January, 2008)<br><br>"
+ "<b>Thanks to:</b><br>"
+ "Trolltech for the Qt libraries<br>"
+ "Roland for the Movie export functions<br>"
+ "Axel for his help with Qt<br>"
+ "Mark for his help with Qt and SVN<br><br>"
+ "<a href='http://www.les-stooges.org/pascal/pencil'>http://www.les-stooges.org/pascal/pencil/</a><br><br>"
+ "Distributed under the GPL License."
+ "</td></tr></table>"
+ "</div>"));
+}
+
+void Editor::helpBox() {
+ QMessageBox::about(this, tr("Help"), tr("Some documentation is available online.<br><br>"
+ "Please visit:<br>"
+ "<a href='http://www.les-stooges.org/pascal/pencil'>http://www.les-stooges.org/pascal/pencil/</a>."));
+ }
+
+
+bool Editor::maybeSave()
+{
+ if (object->modified) {
+ int ret = QMessageBox::warning(this, tr("Warning"),
+ tr("This animation has been modified.\n"
+ "Do you want to save your changes?"),
+ QMessageBox::Yes | QMessageBox::Default,
+ QMessageBox::No,
+ QMessageBox::Cancel | QMessageBox::Escape);
+ if (ret == QMessageBox::Yes) {
+ saveForce();
+ return true;
+ } else if (ret == QMessageBox::Cancel) {
+ return false;
+ }
+ }
+ return true;
+}
+
+bool Editor::saveObject(QString filePath)
+{
+ QFileInfo fileInfo(filePath);
+ if(fileInfo.isDir()) return false;
+
+ QFileInfo dataInfo(filePath+".data");
+ if(!dataInfo.exists()) {
+ QDir dir(fileInfo.absolutePath()); // the directory where filePath is or will be saved
+ dir.mkpath(filePath+".data"); // creates a directory with the same name +".data"
+ }
+
+ savedName=filePath;
+ mainWindow->setWindowTitle(savedName);
+
+ QProgressDialog progress("Saving document...", "Abort", 0, 100, mainWindow);
+ progress.setWindowModality(Qt::WindowModal);
+ progress.show();
+ int progressValue = 0;
+
+ // save data
+ int nLayers = object->getLayerCount();
+ for(int i=0; i < nLayers; i++) {
+ qDebug() << "Saving Layer " << i;
+ progressValue = (i*100)/nLayers;
+ progress.setValue(progressValue);
+ Layer* layer = object->getLayer(i);
+ if(layer->type == Layer::BITMAP) ((LayerBitmap*)layer)->saveImages(filePath+".data", i);
+ if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->saveImages(filePath+".data", i);
+ if(layer->type == Layer::SOUND) ((LayerSound*)layer)->saveImages(filePath+".data", i);
+ }
+
+ // save palette
+ object->savePalette(filePath+".data");
+
+ // -------- save main XML file -----------
+ QFile* file = new QFile(filePath);
+ if (!file->open(QFile::WriteOnly | QFile::Text)) {
+ //QMessageBox::warning(this, "Warning", "Cannot write file");
+ return false;
+ }
+ QTextStream out(file);
+ QDomDocument doc("PencilDocument");
+ QDomElement root = doc.createElement("document");
+ doc.appendChild(root);
+
+ // save editor information
+ QDomElement editorElement = createDomElement(doc);
+ root.appendChild(editorElement);
+ // save object
+ QDomElement objectElement = object->createDomElement(doc);
+ root.appendChild(objectElement);
+
+ int IndentSize = 2;
+ doc.save(out, IndentSize);
+ // -----------------------------------
+
+ progress.setValue(100);
+
+ object->modified = false;
+ timeLine->updateContent();
+ return true;
+}
+
+void Editor::newObject() {
+ //if(object != NULL) delete object;
+ Object *newObject = new Object();
+ newObject->defaultInitialisation();
+
+ setObject(newObject);
+ updateObject();
+ savedName = "";
+ mainWindow->setWindowTitle(tr("Pencil v0.4.4b"));
+}
+
+void Editor::setObject(Object *object) {
+ if ((this->object)&&(object!=this->object)) {
+ disconnect( this->object, 0, 0, 0); // disconnect the current object from everything
+ delete this->object;
+ }
+ this->object = object;
+ if(object) {
+ connect( object, SIGNAL(imageAdded(int)), this, SLOT(addFrame(int)) );
+ connect( object, SIGNAL(imageAdded(int,int)), this, SLOT(addFrame(int,int)) );
+ connect( object, SIGNAL(imageRemoved(int)), this, SLOT(removeFrame(int)) );
+
+ //currentLayer = object->getLayerCount()-1; // the default selected layer is the last one
+ currentLayer = 0; // the default selected layer is the first one
+ currentFrame = 1;
+ frameList.clear(); frameList << 1;
+ }
+}
+
+void Editor::updateObject() {
+ scribbleArea->resetColours();
+ palette->selectColour(0);
+
+ //scribbleArea->resize(object->size);
+ //scribbleArea->updateAllFrames();
+ //scribbleArea->resetView();
+ timeLine->updateLayerNumber(object->getLayerCount());
+ palette->updateList();
+ clearBackup();
+ scribbleArea->resetColours();
+ palette->selectColour(0);
+ scribbleArea->updateAllFrames();
+}
+
+bool Editor::openObject(QString filePath) {
+ // ---- test before opening ----
+ QFileInfo fileInfo(filePath);
+ if( fileInfo.isDir() ) return false;
+ QFile* file = new QFile(filePath);
+ if (!file->open(QFile::ReadOnly)) return false;
+ QDomDocument doc;
+ if (!doc.setContent(file)) return false; // this is not a XML file
+ QDomDocumentType type = doc.doctype();
+ if(type.name() != "PencilDocument" && type.name() != "MyObject") return false; // this is not a Pencil document
+ // -----------------------------
+
+ QProgressDialog progress("Opening document...", "Abort", 0, 100, mainWindow);
+ progress.setWindowModality(Qt::WindowModal);
+ progress.show();
+
+ savedName = filePath;
+ QSettings settings("Pencil","Pencil");
+ settings.setValue("lastFilePath", QVariant(savedName) );
+ mainWindow->setWindowTitle(savedName);
+
+ Object* newObject = new Object();
+ if(!newObject->loadPalette(savedName+".data")) newObject->loadDefaultPalette();
+ setObject(newObject);
+
+ // ------- reads the XML file -------
+ bool ok = true;
+ QDomElement docElem = doc.documentElement();
+ if(docElem.isNull()) return false;
+ if(docElem.tagName() == "document") {
+ QDomNode tag = docElem.firstChild();
+ while(!tag.isNull()) {
+ QDomElement element = tag.toElement(); // try to convert the node to an element.
+ if(!element.isNull()) {
+ if(element.tagName() == "editor") {
+ loadDomElement(element, filePath);
+ }
+ if(element.tagName() == "object") {
+ ok = newObject->loadDomElement(element, filePath);
+ }
+ }
+ tag = tag.nextSibling();
+ }
+ } else {
+ if(docElem.tagName() == "object" || docElem.tagName() == "MyOject") { // old Pencil format (<=0.4.3)
+ ok = newObject->loadDomElement(docElem, filePath);
+ }
+ }
+ // ------------------------------
+ if(ok) updateObject();
+
+ progress.setValue(100);
+ return ok;
+}
+
+void Editor::saveForce() {
+ if (savedName!="")
+ saveObject(savedName);
+ else saveDocument();
+}
+
+void Editor::createNewDocumentDialog() {
+ /*newDocumentDialog = new QDialog(this, Qt::Dialog);
+ QGridLayout *mainLayout = new QGridLayout;
+
+ QGroupBox *resolutionBox = new QGroupBox(tr("Resolution"));
+ newDocumentDialog_hBox = new QSpinBox(this);
+ newDocumentDialog_hBox->setMinimum(1);
+ newDocumentDialog_hBox->setMaximum(10000);
+ int defaultWidth = 720; int defaultHeight = 540;
+ //if(object != NULL) {
+ // defaultWidth = object->size.width(); defaultHeight = object->size.height();
+ //}
+ newDocumentDialog_hBox->setValue(defaultWidth);
+ newDocumentDialog_hBox->setFixedWidth(80);
+ newDocumentDialog_vBox = new QSpinBox(this);
+ newDocumentDialog_vBox->setMinimum(1);
+ newDocumentDialog_vBox->setMaximum(10000);
+ newDocumentDialog_vBox->setValue(defaultHeight);
+ newDocumentDialog_vBox->setFixedWidth(80);
+ QGridLayout *resolutionLayout = new QGridLayout;
+ resolutionLayout->addWidget(newDocumentDialog_hBox,0,0);
+ resolutionLayout->addWidget(newDocumentDialog_vBox,0,1);
+ resolutionBox->setLayout(resolutionLayout);
+
+ QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
+ connect(buttonBox, SIGNAL(accepted()), newDocumentDialog, SLOT(accept()));
+ connect(buttonBox, SIGNAL(rejected()), newDocumentDialog, SLOT(reject()));
+
+ mainLayout->addWidget(resolutionBox, 0, 0);
+ mainLayout->addWidget(buttonBox, 1, 0);
+ newDocumentDialog->setLayout(mainLayout);
+ newDocumentDialog->setWindowTitle(tr("Options"));
+ newDocumentDialog->setModal(true);*/
+}
+
+void Editor::createExportFramesSizeBox() {
+ int defaultWidth = 720; int defaultHeight = 540;
+ exportFramesDialog_hBox = new QSpinBox(this);
+ exportFramesDialog_hBox->setMinimum(1);
+ exportFramesDialog_hBox->setMaximum(10000);
+ exportFramesDialog_hBox->setValue(defaultWidth);
+ exportFramesDialog_hBox->setFixedWidth(80);
+ exportFramesDialog_vBox = new QSpinBox(this);
+ exportFramesDialog_vBox->setMinimum(1);
+ exportFramesDialog_vBox->setMaximum(10000);
+ exportFramesDialog_vBox->setValue(defaultHeight);
+ exportFramesDialog_vBox->setFixedWidth(80);
+}
+
+void Editor::createExportMovieSizeBox() {
+ int defaultWidth = 720; int defaultHeight = 540;
+ exportMovieDialog_hBox = new QSpinBox(this);
+ exportMovieDialog_hBox->setMinimum(1);
+ exportMovieDialog_hBox->setMaximum(10000);
+ exportMovieDialog_hBox->setValue(defaultWidth);
+ exportMovieDialog_hBox->setFixedWidth(80);
+ exportMovieDialog_vBox = new QSpinBox(this);
+ exportMovieDialog_vBox->setMinimum(1);
+ exportMovieDialog_vBox->setMaximum(10000);
+ exportMovieDialog_vBox->setValue(defaultHeight);
+ exportMovieDialog_vBox->setFixedWidth(80);
+
+}
+
+void Editor::createExportFramesDialog() {
+ exportFramesDialog = new QDialog(this, Qt::Dialog);
+ QGridLayout *mainLayout = new QGridLayout;
+
+ QGroupBox *resolutionBox = new QGroupBox(tr("Resolution"));
+ if(exportFramesDialog_hBox == NULL || exportFramesDialog_vBox == NULL) {
+ createExportFramesSizeBox();
+ }
+ QGridLayout *resolutionLayout = new QGridLayout;
+ resolutionLayout->addWidget(exportFramesDialog_hBox,0,0);
+ resolutionLayout->addWidget(exportFramesDialog_vBox,0,1);
+ resolutionBox->setLayout(resolutionLayout);
+
+ QGroupBox *formatBox = new QGroupBox(tr("Format"));
+ exportFramesDialog_format = new QComboBox();
+ exportFramesDialog_format->addItem("PNG");
+ exportFramesDialog_format->addItem("JPEG");
+ QGridLayout *formatLayout = new QGridLayout;
+ formatLayout->addWidget(exportFramesDialog_format,0,0);
+ formatBox->setLayout(formatLayout);
+
+ QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
+ connect(buttonBox, SIGNAL(accepted()), exportFramesDialog, SLOT(accept()));
+ connect(buttonBox, SIGNAL(rejected()), exportFramesDialog, SLOT(reject()));
+
+ mainLayout->addWidget(resolutionBox, 0, 0);
+ mainLayout->addWidget(formatBox, 1, 0);
+ mainLayout->addWidget(buttonBox, 2, 0);
+ exportFramesDialog->setLayout(mainLayout);
+ exportFramesDialog->setWindowTitle(tr("Options"));
+ exportFramesDialog->setModal(true);
+}
+
+void Editor::createExportMovieDialog() {
+ exportMovieDialog = new QDialog(this, Qt::Dialog);
+ QGridLayout *mainLayout = new QGridLayout;
+
+ QGroupBox *resolutionBox = new QGroupBox(tr("Resolution"));
+ if(!exportMovieDialog_hBox || !exportMovieDialog_vBox) {
+ createExportMovieSizeBox();
+ }
+ QGridLayout *resolutionLayout = new QGridLayout;
+ resolutionLayout->addWidget(exportMovieDialog_hBox,0,0);
+ resolutionLayout->addWidget(exportMovieDialog_vBox,0,1);
+ resolutionBox->setLayout(resolutionLayout);
+
+ QGroupBox *formatBox = new QGroupBox(tr("Format"));
+ exportMovieDialog_format = new QComboBox();
+ exportMovieDialog_format->addItem("MOV");
+ //exportFramesDialog_format->addItem("JPEG");
+ QGridLayout *formatLayout = new QGridLayout;
+ formatLayout->addWidget(exportMovieDialog_format,0,0);
+ formatBox->setLayout(formatLayout);
+
+ QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
+ connect(buttonBox, SIGNAL(accepted()), exportMovieDialog, SLOT(accept()));
+ connect(buttonBox, SIGNAL(rejected()), exportMovieDialog, SLOT(reject()));
+
+ mainLayout->addWidget(resolutionBox, 0, 0);
+ mainLayout->addWidget(formatBox, 1, 0);
+ mainLayout->addWidget(buttonBox, 2, 0);
+ exportMovieDialog->setLayout(mainLayout);
+ exportMovieDialog->setWindowTitle(tr("Options"));
+ exportMovieDialog->setModal(true);
+}
+
+
+void Editor::createExportFlashDialog() {
+ exportFlashDialog = new QDialog(this, Qt::Dialog);
+ QGridLayout *mainLayout = new QGridLayout;
+
+ QSettings settings("Pencil","Pencil");
+
+
+ exportFlashDialog_compression = new QSlider(Qt::Horizontal);
+ exportFlashDialog_compression->setTickPosition(QSlider::TicksBelow);
+ exportFlashDialog_compression->setMinimum(0);
+ exportFlashDialog_compression->setMaximum(10);
+ exportFlashDialog_compression->setValue( 10 - settings.value("flashCompressionLevel").toInt() );
+ QLabel* label1 = new QLabel("Large file");
+ QLabel* label2 = new QLabel("Small file");
+
+ QGroupBox *compressionBox = new QGroupBox(tr("Compression"));
+ QGridLayout *compressionLayout = new QGridLayout;
+ compressionLayout->addWidget(label1,0,0);
+ compressionLayout->addWidget(exportFlashDialog_compression,0,1);
+ compressionLayout->addWidget(label2,0,2);
+ compressionBox->setLayout(compressionLayout);
+
+ QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Cancel | QDialogButtonBox::Ok);
+ connect(buttonBox, SIGNAL(accepted()), exportFlashDialog, SLOT(accept()));
+ connect(buttonBox, SIGNAL(rejected()), exportFlashDialog, SLOT(reject()));
+
+ mainLayout->addWidget(compressionBox, 0, 0);
+ mainLayout->addWidget(buttonBox, 1, 0);
+ exportFlashDialog->setLayout(mainLayout);
+ exportFlashDialog->setWindowTitle(tr("Options"));
+ exportFlashDialog->setModal(true);
+}
+
+QMatrix Editor::map(QRectF source, QRectF target) { // this method should be put somewhere else...
+ qreal x1 = source.left(); qreal y1 = source.top(); qreal x2 = source.right(); qreal y2 = source.bottom();
+ qreal x1P = target.left(); qreal y1P = target.top(); qreal x2P = target.right(); qreal y2P = target.bottom();
+ QMatrix matrix;
+ bool mirror = false;
+ if( (x1 != x2) && (y1 != y2) ) {
+ if( !mirror) {
+ matrix = QMatrix ( (x2P-x1P)/(x2-x1), 0, 0, (y2P-y1P)/(y2-y1), (x1P*x2-x2P*x1)/(x2-x1), (y1P*y2-y2P*y1)/(y2-y1) );
+ } else {
+ matrix = QMatrix ( (x2P-x1P)/(x1-x2), 0, 0, (y2P-y1P)/(y2-y1), (x1P*x1-x2P*x2)/(x1-x2), (y1P*y2-y2P*y1)/(y2-y1) );
+ }
+ } else {
+ matrix.reset();
+ }
+ return matrix;
+}
+
+bool Editor::exportSeq() {
+ QSettings settings("Pencil","Pencil");
+ QString initialPath = settings.value("lastExportPath", QVariant(QDir::homePath())).toString();
+ if(initialPath.isEmpty()) initialPath = QDir::homePath() + "/untitled";
+ QString filePath = QFileDialog::getSaveFileName(this, tr("Export As"),initialPath);
+ if (filePath.isEmpty()) {
+ return false;
+ } else {
+ settings.setValue("lastExportPath", QVariant(filePath));
+
+ if (!exportFramesDialog) createExportFramesDialog();
+ exportFramesDialog_hBox->setValue( scribbleArea->getViewRect().toRect().width() );
+ exportFramesDialog_vBox->setValue( scribbleArea->getViewRect().toRect().height() );
+ exportFramesDialog->exec();
+ if(exportFramesDialog->result() == QDialog::Rejected) return false;
+
+ QSize exportSize = QSize(exportFramesDialog_hBox->value(), exportFramesDialog_vBox->value());
+ //QMatrix view = map( QRectF(QPointF(0,0), scribbleArea->size() ), QRectF(QPointF(0,0), exportSize) );
+ QMatrix view = map( scribbleArea->getViewRect(), QRectF(QPointF(0,0), exportSize) );
+ view = scribbleArea->getView() * view;
+
+ QByteArray exportFormat(exportFramesDialog_format->currentText().toLatin1());
+ updateMaxFrame();
+ object->exportFrames(1, maxFrame, view, getCurrentLayer(), exportSize, filePath, exportFormat, -1, false, true, 2);
+ return true;
+ }
+}
+
+bool Editor::exportX() {
+ QSettings settings("Pencil","Pencil");
+ QString initialPath = settings.value("lastExportPath", QVariant(QDir::homePath())).toString();
+ if(initialPath.isEmpty()) initialPath = QDir::homePath() + "/untitled";
+ QString filePath = QFileDialog::getSaveFileName(this, tr("Save As"),initialPath);
+ if (filePath.isEmpty()) {
+ qDebug() << "empty file";
+ return false;
+ } else {
+ settings.setValue("lastExportPath", QVariant(filePath));
+
+ QSize exportSize = scribbleArea->getViewRect().toRect().size();
+ QMatrix view = map( scribbleArea->getViewRect(), QRectF(QPointF(0,0), exportSize) );
+ view = scribbleArea->getView() * view;
+
+ updateMaxFrame();
+ object->exportX(1, maxFrame, view, exportSize, filePath, true, 2);
+ return true;
+ }
+}
+
+
+bool Editor::exportMov() {
+ QSettings settings("Pencil","Pencil");
+ QString initialPath = settings.value("lastExportPath", QVariant(QDir::homePath())).toString();
+ if(initialPath.isEmpty()) initialPath = QDir::homePath() + "/untitled";
+ QString filePath = QFileDialog::getSaveFileName(this, tr("Export As"),initialPath);
+ if (filePath.isEmpty()) {
+ return false;
+ } else {
+ settings.setValue("lastExportPath", QVariant(filePath));
+ if (!exportMovieDialog) createExportMovieDialog();
+ exportMovieDialog_hBox->setValue( scribbleArea->getViewRect().toRect().width() );
+ exportMovieDialog_vBox->setValue( scribbleArea->getViewRect().toRect().height() );
+ exportMovieDialog->exec();
+ if(exportMovieDialog->result() == QDialog::Rejected) return false;
+
+ QSize exportSize = QSize(exportMovieDialog_hBox->value(), exportMovieDialog_vBox->value());
+ QMatrix view = map( scribbleArea->getViewRect(), QRectF(QPointF(0,0), exportSize) );
+ view = scribbleArea->getView() * view;
+
+ updateMaxFrame();
+ object->exportMovie(1, maxFrame, view, getCurrentLayer(), exportSize, filePath, fps);
+ return true;
+ }
+}
+
+bool Editor::exportFlash() {
+ QSettings settings("Pencil","Pencil");
+ QString initialPath = settings.value("lastExportPath", QVariant(QDir::homePath())).toString();
+ if(initialPath.isEmpty()) initialPath = QDir::homePath() + "/untitled";
+ QString filePath = QFileDialog::getSaveFileName(this, tr("Export As"),initialPath);
+ if (filePath.isEmpty()) {
+ return false;
+ } else {
+ settings.setValue("lastExportPath", QVariant(filePath));
+ if (!exportFlashDialog) createExportFlashDialog();
+ exportFlashDialog->exec();
+ if(exportFlashDialog->result() == QDialog::Rejected) return false;
+
+ settings.setValue("flashCompressionLevel", 10-exportFlashDialog_compression->value() );
+
+ QSize exportSize = scribbleArea->getViewRect().toRect().size();
+ QMatrix view = map( scribbleArea->getViewRect(), QRectF(QPointF(0,0), exportSize) );
+ view = scribbleArea->getView() * view;
+
+ updateMaxFrame();
+ object->exportFlash(1, maxFrame, view, exportSize, filePath, fps, exportFlashDialog_compression->value());
+ return true;
+ }
+}
+
+void Editor::exportPalette()
+{
+ QSettings settings("Pencil","Pencil");
+ QString initialPath = settings.value("lastFilePath", QVariant(QDir::homePath())).toString();
+ if(initialPath.isEmpty()) initialPath = QDir::homePath() + "/untitled.xml";
+ QString filePath = QFileDialog::getSaveFileName(this, tr("Export As"),initialPath);
+ if (!filePath.isEmpty()) object->exportPalette(filePath);
+}
+
+void Editor::importPalette()
+{
+ QSettings settings("Pencil","Pencil");
+ QString initialPath = settings.value("lastFilePath", QVariant(QDir::homePath())).toString();
+ if(initialPath.isEmpty()) initialPath = QDir::homePath() + "/untitled.xml";
+ QString filePath = QFileDialog::getOpenFileName(this, tr("Import"),initialPath);
+ if (!filePath.isEmpty()) {
+ object->importPalette(filePath);
+ palette->updateList();
+ }
+}
+
+void Editor::importImage()
+{
+ importImage("fromDialog");
+}
+
+void Editor::importImage(QString filePath)
+{
+ Layer* layer = object->getLayer(currentLayer);
+ if(layer != NULL) {
+ if( layer->type == Layer::BITMAP || layer->type == Layer::VECTOR ) {
+ if(filePath == "fromDialog") {
+ QSettings settings("Pencil","Pencil");
+ QString initialPath = settings.value("lastImportPath", QVariant(QDir::homePath())).toString();
+ if(initialPath.isEmpty()) initialPath = QDir::homePath() + "/untitled";
+ filePath = QFileDialog::getOpenFileName(this, tr("Import image..."),initialPath);
+ if (!filePath.isEmpty()) settings.setValue("lastImportPath", QVariant(filePath));
+ }
+ if (!filePath.isEmpty()) {
+ backup();
+ // --- option 1
+ //((LayerBitmap*)layer)->loadImageAtFrame(filePath, currentFrame);
+ // --- option 2
+ // TO BE IMPROVED
+ if(layer->type == Layer::BITMAP) {
+ BitmapImage* bitmapImage = ((LayerBitmap*)layer)->getBitmapImageAtFrame(currentFrame);
+ if(bitmapImage == NULL) { addKey(); bitmapImage = ((LayerBitmap*)layer)->getBitmapImageAtFrame(currentFrame); }
+ QImage* importedImage = new QImage(filePath);
+ if(!importedImage->isNull()) {
+ QRect boundaries = importedImage->rect();
+ //boundaries.moveTopLeft( scribbleArea->getView().inverted().map(QPoint(0,0)) );
+ boundaries.moveTopLeft( scribbleArea->getCentralPoint().toPoint() - QPoint(boundaries.width()/2, boundaries.height()/2) );
+ BitmapImage* importedBitmapImage = new BitmapImage(NULL, boundaries, *importedImage);
+ if(scribbleArea->somethingSelected) {
+ QRectF selection = scribbleArea->getSelection();
+ if( importedImage->width() <= selection.width() && importedImage->height() <= selection.height() ) {
+ importedBitmapImage->boundaries.moveTopLeft( selection.topLeft().toPoint() );
+ } else {
+ importedBitmapImage->transform( selection.toRect(), true );
+ }
+ }
+ bitmapImage->paste( importedBitmapImage );
+ } else {
+ QMessageBox::warning(this, tr("Warning"),
+ tr("This is not a bitmap image that Pencil can read."),
+ QMessageBox::Ok,
+ QMessageBox::Ok);
+ }
+ }
+ if(layer->type == Layer::VECTOR) {
+ VectorImage* vectorImage = ((LayerVector*)layer)->getVectorImageAtFrame(currentFrame);
+ if(vectorImage == NULL) { addKey(); vectorImage = ((LayerVector*)layer)->getVectorImageAtFrame(currentFrame); }
+ VectorImage* importedVectorImage = new VectorImage(NULL);
+ bool ok = importedVectorImage->read(filePath);
+ if(ok) {
+ importedVectorImage->selectAll();
+ vectorImage->paste( *importedVectorImage );
+ } else {
+ QMessageBox::warning(this, tr("Warning"),
+ tr("This is not a vector image that Pencil can read."),
+ QMessageBox::Ok,
+ QMessageBox::Ok);
+ }
+ }
+ scribbleArea->updateFrame();
+ timeLine->updateContent();
+ }
+ } else {
+ // create a new Bitmap layer ?
+ QMessageBox::warning(this, tr("Warning"),
+ tr("Please select a bitmap or vector layer in order to import images."),
+ QMessageBox::Ok,
+ QMessageBox::Ok);
+ }
+ }
+}
+
+void Editor::importSound()
+{
+ importSound("fromDialog");
+}
+
+void Editor::importSound(QString filePath)
+{
+ Layer* layer = object->getLayer(currentLayer);
+ if(layer != NULL) {
+ if( layer->type == Layer::SOUND) {
+ if(filePath == "fromDialog") {
+ QSettings settings("Pencil","Pencil");
+ QString initialPath = settings.value("lastImportPath", QVariant(QDir::homePath())).toString();
+ if(initialPath.isEmpty()) initialPath = QDir::homePath() + "/untitled";
+ filePath = QFileDialog::getOpenFileName(this, tr("Import sound..."),initialPath);
+ if (!filePath.isEmpty()) settings.setValue("lastImportPath", QVariant(filePath));
+ }
+ if (!filePath.isEmpty()) {
+ ((LayerSound*)layer)->loadSoundAtFrame(filePath, currentFrame);
+ timeLine->updateContent();
+ }
+ } else {
+ // create a new Sound layer ?
+ QMessageBox::warning(this, tr("Warning"),
+ tr("Please select a sound layer in order to import sounds."),
+ QMessageBox::Ok,
+ QMessageBox::Ok);
+ }
+ }
+}
+
+void Editor::updateFrame(int frameNumber) {
+ scribbleArea->updateFrame(frameNumber);
+}
+
+void Editor::updateFrameAndVector(int frameNumber) {
+ scribbleArea->updateAllVectorLayersAt(frameNumber);
+}
+
+void Editor::scrubTo(int frameNumber) {
+ int oldFrame = currentFrame;
+ if(frameNumber < 1) frameNumber = 1;
+ currentFrame = frameNumber;
+ //toolSet->setCounter(frameNumber);
+ //timeLine->setCurrentFrame(currentFrame);
+ timeLine->updateFrame(oldFrame);
+ timeLine->updateFrame(currentFrame);
+ scribbleArea->readCanvasFromCache = true;
+ scribbleArea->update();
+}
+
+void Editor::scrubForward() {
+ scrubTo(currentFrame+1);
+}
+
+void Editor::scrubBackward() {
+ if(currentFrame > 1) scrubTo(currentFrame-1);
+}
+
+/*void Editor::scrubKF() {
+ //timeLine->scrubKF();
+}
+
+void Editor::scrubKB() {
+ //timeLine->scrubKB();
+}*/
+
+void Editor::previousLayer() {
+ currentLayer--;
+ if(currentLayer<0) currentLayer = 0;
+ timeLine->updateContent();
+ scribbleArea->updateAllFrames();
+}
+
+void Editor::nextLayer() {
+ currentLayer++;
+ if(currentLayer == object->getLayerCount()) currentLayer = object->getLayerCount()-1;
+ timeLine->updateContent();
+ scribbleArea->updateAllFrames();
+}
+
+void Editor::addKey() {
+ addKey(currentLayer, currentFrame);
+ scribbleArea->setFocus();
+}
+
+void Editor::addKey(int layerNumber, int &frameNumber) {
+ Layer* layer = object->getLayer(layerNumber);
+ if(layer != NULL) {
+ if(layer->type == Layer::BITMAP || layer->type == Layer::VECTOR || layer->type == Layer::CAMERA) {
+ bool success = false;
+ if(layer->type == Layer::BITMAP) success = ((LayerBitmap*)layer)->addImageAtFrame(frameNumber);
+ if(layer->type == Layer::VECTOR) success = ((LayerVector*)layer)->addImageAtFrame(frameNumber);
+ if(layer->type == Layer::CAMERA) success = ((LayerCamera*)layer)->addImageAtFrame(frameNumber);
+ if(success) {
+ timeLine->updateContent();
+ //scribbleArea->addFrame(frameNumber);
+ } else {
+ frameNumber++;
+ addKey();
+ }
+ }
+ }
+}
+
+void Editor::removeKey() {
+ Layer* layer = object->getLayer(currentLayer);
+ if(layer != NULL) {
+ if(layer->type == Layer::BITMAP) ((LayerBitmap*)layer)->removeImageAtFrame(currentFrame);
+ if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->removeImageAtFrame(currentFrame);
+ if(layer->type == Layer::CAMERA) ((LayerCamera*)layer)->removeImageAtFrame(currentFrame);
+ timeLine->updateContent();
+ scribbleArea->updateFrame();
+ scribbleArea->setFocus();
+ }
+}
+
+void Editor::addFrame(int frameNumber) { // adding a frame to the cache
+ frameList << frameNumber;
+ qSort(frameList);
+ scribbleArea->updateFrame();
+ timeLine->update();
+}
+
+void Editor::addFrame(int frameNumber1, int frameNumber2) { // adding a range of frames to the cache
+ for(int i=frameNumber1; i<=frameNumber2; i++) {
+ frameList << i;
+ }
+ qSort(frameList);
+ scribbleArea->updateFrame();
+ timeLine->update();
+}
+
+void Editor::removeFrame(int frameNumber) {
+ frameList.removeAt( getLastIndexAtFrame(frameNumber) );
+ scribbleArea->updateFrame();
+ timeLine->update();
+}
+///*
+void Editor::getPrevKeyFlip() {
+ currentFrame = getPrevKey(currentFrame);
+ timeLine->update();
+ scribbleArea->updateFrame();
+ printf("Previous key flipped \n");
+}
+
+int Editor::getPrevKey(int frameNumber) {
+ int keyInQuestion = frameNumber;
+ bool nothingFound = true;
+ Layer* layer;
+ if(object->getLayer(currentLayer) != NULL) layer = object->getLayer(currentLayer);
+ else return NULL;
+ while(nothingFound) {
+ --keyInQuestion;
+ if(keyInQuestion == 0) keyInQuestion = object->getLayer(currentLayer)->getMaxFrame();
+ switch(layer->type) {
+ case Layer::BITMAP:
+ if(((LayerBitmap*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;
+ break;
+ case Layer::VECTOR:
+ if(((LayerVector*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;
+ break;
+ case Layer::CAMERA:
+ if(((LayerCamera*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;
+ break;
+ }
+ }
+ return keyInQuestion;
+}
+
+void Editor::getNextKeyFlip() {
+ currentFrame = getNextKey(currentFrame);
+ timeLine->update();
+ scribbleArea->updateFrame();
+ printf("Next key flipped \n");
+}
+
+int Editor::getNextKey(int frameNumber) {
+ int keyInQuestion = frameNumber;
+ bool nothingFound = true;
+ Layer* layer;
+ if(object->getLayer(currentLayer) != NULL) layer = object->getLayer(currentLayer);
+ else return NULL;
+ while(nothingFound) {
+ ++keyInQuestion;
+ if(keyInQuestion > object->getLayer(currentLayer)->getMaxFrame()) keyInQuestion = 1;
+ switch(layer->type) {
+ case Layer::BITMAP:
+ if(((LayerBitmap*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;
+ break;
+ case Layer::VECTOR:
+ if(((LayerVector*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;
+ break;
+ case Layer::CAMERA:
+ if(((LayerCamera*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;
+ break;
+ }
+ }
+ return keyInQuestion;
+}
+
+//*/
+int Editor::getLastIndexAtFrame(int frameNumber) {
+ int position = -1;
+ int index = -1;
+ for(int i=0; i < frameList.size(); i++) {
+ if(frameList.at(i) > position && frameList.at(i) <= frameNumber) {
+ position = frameList.at(i);
+ index = i;
+ }
+ }
+ return index;
+}
+
+int Editor::getLastFrameAtFrame(int frameNumber) {
+ return frameList.at( getLastIndexAtFrame(frameNumber) );
+}
+
+
+
+void Editor::showPreferences() {
+ preferences->show();
+}
+
+void Editor::play() {
+ updateMaxFrame();
+ if(currentFrame > maxFrame) {
+ scrubTo(maxFrame);
+ } else {
+ if(currentFrame == maxFrame) {
+ if( !playing ) {
+ scrubTo(0);
+ } else {
+ if( looping ) { scrubTo(0); } else { startOrStop(); }
+ }
+ } else {
+ startOrStop();
+ }
+ }
+ scribbleArea->setFocus();
+}
+
+void Editor::startOrStop() {
+ if(!playing) {
+ playing = true;
+ timer->start();
+ } else {
+ playing = false;
+ timer->stop();
+ object->stopSoundIfAny();
+ }
+}
+
+void Editor::playNextFrame() {
+ if(currentFrame < maxFrame) {
+ if(sound) object->playSoundIfAny(currentFrame);
+ scrubForward();
+ } else {
+ play();
+ }
+ scribbleArea->setFocus();
+}
+
+void Editor::changeFps(int x) {
+ fps=x;
+ QSettings settings("Pencil","Pencil");
+ settings.setValue("fps", x);
+ timer->setInterval(1000/fps);
+ scribbleArea->setFocus();
+}
+
+int Editor::getFps() {
+ return fps;
+}
+
+void Editor::setLoop() {
+ if (looping) looping=false;
+ else looping=true;
+ scribbleArea->setFocus();
+}
+
+void Editor::setSound() {
+ if(sound) sound = false;
+ else sound = true;
+}
+
+void Editor::setCurrentLayer(int layerNumber) {
+ currentLayer = layerNumber;
+ timeLine->updateContent();
+ scribbleArea->updateAllFrames();
+}
+
+void Editor::switchVisibilityOfLayer(int layerNumber) {
+ Layer* layer = object->getLayer(layerNumber);
+ if(layer != NULL) layer->switchVisibility();
+ scribbleArea->updateAllFrames();
+ timeLine->updateContent();
+}
+
+void Editor::moveLayer(int i, int j) {
+ object->moveLayer(i, j);
+ if(j<i) { currentLayer = j; } else { currentLayer = j-1; }
+ timeLine->updateContent();
+ scribbleArea->updateAllFrames();
+}
+
+void Editor::updateMaxFrame() {
+ maxFrame = -1;
+ for(int i=0; i < object->getLayerCount(); i++) {
+ int frameNumber = object->getLayer(i)->getMaxFrame();
+ if( frameNumber > maxFrame) maxFrame = frameNumber;
+ }
+}
+
+void Editor::dockAllPalettes() {
+ getToolSet()->drawPalette->setFloating(false);
+ getToolSet()->optionPalette->setFloating(false);
+ getToolSet()->displayPalette->setFloating(false);
+ getToolSet()->onionPalette->setFloating(false);
+ getTimeLine()->setFloating(false);
+ getPalette()->setFloating(false);
+}
+
+void Editor::detachAllPalettes() {
+ getToolSet()->drawPalette->setFloating(true);
+ getToolSet()->optionPalette->setFloating(true);
+ getToolSet()->displayPalette->setFloating(true);
+ getToolSet()->onionPalette->setFloating(true);
+ getTimeLine()->setFloating(true);
+ getPalette()->setFloating(true);
+ restorePalettesSettings(false, true, true);
+}
+
+void Editor::restorePalettesSettings(bool restoreFloating, bool restorePosition, bool restoreSize) {
+ QSettings settings("Pencil", "Pencil");
+
+ Palette* colourPalette = getPalette();
+ if(colourPalette != NULL) {
+ QPoint pos = settings.value("colourPalettePosition", QPoint(100, 100)).toPoint();
+ QSize size = settings.value("colourPaletteSize", QSize(400, 300)).toSize();
+ bool floating = settings.value("colourPaletteFloating", false).toBool();
+ if(restoreFloating) colourPalette->setFloating(floating);
+ if(restorePosition) colourPalette->move(pos);
+ if(restoreSize) colourPalette->resize(size);
+ colourPalette->show();
+ }
+
+ TimeLine* timelinePalette = getTimeLine();
+ if(timelinePalette != NULL) {
+ QPoint pos = settings.value("timelinePalettePosition", QPoint(100, 100)).toPoint();
+ QSize size = settings.value("timelinePaletteSize", QSize(400, 300)).toSize();
+ bool floating = settings.value("timelinePaletteFloating", false).toBool();
+ if(restoreFloating) timelinePalette->setFloating(floating);
+ if(restorePosition) timelinePalette->move(pos);
+ if(restoreSize) timelinePalette->resize(size);
+ timelinePalette->show();
+ }
+
+ QDockWidget* drawPalette = getToolSet()->drawPalette;
+ if(drawPalette != NULL) {
+ QPoint pos = settings.value("drawPalettePosition", QPoint(100, 100)).toPoint();
+ QSize size = settings.value("drawPaletteSize", QSize(400, 300)).toSize();
+ bool floating = settings.value("drawPaletteFloating", false).toBool();
+ if(restoreFloating) drawPalette->setFloating(floating);
+ if(restorePosition) drawPalette->move(pos);
+ if(restoreSize) drawPalette->resize(size);
+ drawPalette->show();
+ }
+
+ QDockWidget* optionPalette = getToolSet()->optionPalette;
+ if(optionPalette != NULL) {
+ QPoint pos = settings.value("optionPalettePosition", QPoint(100, 100)).toPoint();
+ QSize size = settings.value("optionPaletteSize", QSize(400, 300)).toSize();
+ bool floating = settings.value("optionPaletteFloating", false).toBool();
+ if(restoreFloating) optionPalette->setFloating(floating);
+ if(restorePosition) optionPalette->move(pos);
+ if(restoreSize) optionPalette->resize(size);
+ optionPalette->show();
+ }
+
+ QDockWidget* displayPalette = getToolSet()->displayPalette;
+ if(optionPalette != NULL) {
+ QPoint pos = settings.value("displayPalettePosition", QPoint(100, 100)).toPoint();
+ QSize size = settings.value("displayPaletteSize", QSize(400, 300)).toSize();
+ bool floating = settings.value("displayPaletteFloating", false).toBool();
+ if(restoreFloating) displayPalette->setFloating(floating);
+ if(restorePosition) displayPalette->move(pos);
+ if(restoreSize) displayPalette->resize(size);
+ displayPalette->show();
+ }
+}
+
+QDomElement Editor::createDomElement(QDomDocument &doc) {
+ QDomElement tag = doc.createElement("editor");
+
+ QDomElement tag1 = doc.createElement("currentLayer");
+ tag1.setAttribute("value", currentLayer);
+ tag.appendChild(tag1);
+ QDomElement tag2 = doc.createElement("currentFrame");
+ tag2.setAttribute("value", currentFrame);
+ tag.appendChild(tag2);
+ QDomElement tag3 = doc.createElement("currentView");
+ QMatrix myView = scribbleArea->getMyView();
+ tag3.setAttribute("m11", myView.m11());
+ tag3.setAttribute("m12", myView.m12());
+ tag3.setAttribute("m21", myView.m21());
+ tag3.setAttribute("m22", myView.m22());
+ tag3.setAttribute("dx", myView.dx());
+ tag3.setAttribute("dy", myView.dy());
+ tag.appendChild(tag3);
+
+ return tag;
+}
+
+bool Editor::loadDomElement(QDomElement docElem, QString filePath) {
+ if(docElem.isNull()) return false;
+ QDomNode tag = docElem.firstChild();
+ while(!tag.isNull()) {
+ QDomElement element = tag.toElement(); // try to convert the node to an element.
+ if(!element.isNull()) {
+ if(element.tagName() == "currentLayer") {
+ currentLayer = element.attribute("value").toInt();
+ }
+ if(element.tagName() == "currentFrame") {
+ currentFrame = element.attribute("value").toInt();
+ }
+ if(element.tagName() == "currentView") {
+ qreal m11 = element.attribute("m11").toDouble();
+ qreal m12 = element.attribute("m12").toDouble();
+ qreal m21 = element.attribute("m21").toDouble();
+ qreal m22 = element.attribute("m22").toDouble();
+ qreal dx = element.attribute("dx").toDouble();
+ qreal dy = element.attribute("dy").toDouble();
+ scribbleArea->setMyView( QMatrix(m11,m12,m21,m22,dx,dy) );
+ }
+ }
+ tag = tag.nextSibling();
+ }
+ return true;
+}
diff -rupN pencil_backup/src/interface/editor.h pencil_dev/src/interface/editor.h
--- pencil_backup/src/interface/editor.h 2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/editor.h 2009-10-01 19:35:38.000000000 -0500
@@ -97,6 +97,7 @@ public:
bool isModified() { return modified; }
int allLayers() { return scribbleArea->allLayers(); }
static QMatrix map(QRectF, QRectF);
+
protected:
void dragEnterEvent(QDragEnterEvent *event);
@@ -208,6 +209,12 @@ public slots:
void detachAllPalettes();
void restorePalettesSettings(bool, bool, bool);
+ void getPrevKeyFlip();
+ void getNextKeyFlip();
+
+ int getPrevKey(int);
+ int getNextKey(int);
+
private slots:
void newDocument();
void openDocument();
diff -rupN pencil_backup/src/interface/editor.h~ pencil_dev/src/interface/editor.h~
--- pencil_backup/src/interface/editor.h~ 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/editor.h~ 2009-09-30 16:31:52.000000000 -0500
@@ -0,0 +1,288 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+*/
+#ifndef EDITOR_H
+#define EDITOR_H
+
+
+#include <QList>
+#include <QMainWindow>
+#include <QLabel>
+#include <QToolButton>
+#include "timeline.h"
+#include "scribblearea.h"
+#include "toolset.h"
+#include "preferences.h"
+#include "palette.h"
+#include "object.h"
+#include "vectorimage.h"
+#include "bitmapimage.h"
+
+class Editor;
+
+class BackupElement : public QObject
+{
+ Q_OBJECT
+ public:
+ enum types { UNDEFINED, BITMAP_MODIF, VECTOR_MODIF };
+ //int type;
+ //BackupElement() { type = UNDEFINED; }
+ virtual int type() { return UNDEFINED; }
+ virtual void restore(Editor*) { qDebug() << "Wrong"; };
+};
+
+class BackupBitmapElement : public BackupElement
+{
+ Q_OBJECT
+ public:
+ int layer, frame;
+ BitmapImage bitmapImage;
+ //BackupBitmapElement() { type = BackupElement::BITMAP_MODIF; }
+ int type() { return BackupElement::BITMAP_MODIF; }
+ void restore(Editor*);
+};
+
+class BackupVectorElement : public BackupElement
+{
+ Q_OBJECT
+ public:
+ int layer, frame;
+ VectorImage vectorImage;
+ //BackupVectorElement() { type = BackupElement::VECTOR_MODIF; }
+ int type() { return BackupElement::VECTOR_MODIF; }
+ void restore(Editor*);
+};
+
+
+class Editor : public QWidget
+{
+ Q_OBJECT
+
+public:
+ Editor(QMainWindow* parent);
+ virtual ~Editor();
+
+ //Object* getObject() { return object; }
+ //bool somethingSelected();
+ Object* object; // the object to be edited by the editor
+ //int currentPenColour, currentFillColour;
+ int currentLayer; // the current layer to be edited/displayed by the editor
+ int currentFrame; // the current frame to be edited/displayed by the editor
+ int maxFrame; // the number of the last frame for the current object
+ QList<int> frameList; // the frames that are to be cached -- should we use a QMap, or a QHash?
+
+ int fps; // the number of frames per second used by the editor
+ QTimer* timer; // the timer used for animation in the editor
+ bool playing;
+ bool looping;
+ bool sound;
+
+ Palette* getPalette() { return palette; }
+ TimeLine* getTimeLine() { return timeLine; }
+ ToolSet* getToolSet() { return toolSet; }
+ Layer* getCurrentLayer(int incr) { if(object != NULL) { return object->getLayer(currentLayer+incr); } else { return NULL; } }
+ Layer* getCurrentLayer() { return getCurrentLayer(0); }
+ bool isModified() { return modified; }
+ int allLayers() { return scribbleArea->allLayers(); }
+ static QMatrix map(QRectF, QRectF);
+
+
+protected:
+ void dragEnterEvent(QDragEnterEvent *event);
+ void dropEvent(QDropEvent *event);
+
+signals:
+ void selectAll();
+
+public slots:
+ void showCounter(int);
+ bool maybeSave();
+ void importImage();
+ void importImage(QString filePath);
+ void importSound();
+ void importSound(QString filePath);
+ void importPalette();
+ void exportPalette();
+ void updateFrame(int frameNumber);
+ void updateFrameAndVector(int frameNumber);
+ void scrubTo(int frameNumber);
+ void scrubForward();
+ void scrubBackward();
+ void play();
+ void startOrStop();
+ void playNextFrame();
+ void changeFps(int);
+ int getFps();
+ void setLoop();
+ void setSound();
+
+ //void scrubKF();
+ //void scrubKB();
+ void previousLayer();
+ void nextLayer();
+
+ void addKey();
+ void addKey(int layerNumber, int &frameNumber);
+ void removeKey();
+
+ void addFrame(int frameNumber);
+ void addFrame(int frameNumber1, int frameNumber2);
+ void removeFrame(int frameNumber);
+ int getLastIndexAtFrame(int frameNumber);
+ int getLastFrameAtFrame(int frameNumber);
+
+ //void altPress();
+ //void altRelease();
+ void showPreferences();
+
+ void newObject();
+ void setObject(Object *object);
+ void updateObject();
+
+ void setCurrentLayer(int layerNumber);
+ void switchVisibilityOfLayer(int layerNumber);
+ void moveLayer(int i, int j);
+ void updateMaxFrame();
+
+ void setWidth(qreal);
+ void applyWidth(qreal);
+ void setFeather(qreal);
+ void applyFeather(qreal);
+ void setOpacity(qreal);
+ void applyOpacity(qreal);
+ void setInvisibility(int);
+ void applyInvisibility(int);
+ void setPressure(int);
+ void applyPressure(int);
+ void setPreserveAlpha(int);
+ void applyPreserveAlpha(int);
+ void setFollowContour(int);
+ void applyFollowContour(int);
+ void selectColour(int);
+ void selectAndApplyColour(int);
+ void setColour(QColor);
+ void changeColour(int);
+ void changeColourName(int);
+ void changeColour(int,QColor);
+ void updateColour(int, QColor);
+ void addColour();
+ void removeColour(int);
+
+ void changeAutosave(int);
+ void changeAutosaveNumber(int);
+
+ void modification();
+ void modification(int);
+ void backup();
+ void backup(int layerNumber, int frameNumber);
+ void undo();
+ void redo();
+ void copy();
+ void paste();
+ void clipboardChanged();
+
+ void newBitmapLayer();
+ void newVectorLayer();
+ void newSoundLayer();
+ void newCameraLayer();
+ void deleteCurrentLayer();
+
+ void toggleMirror();
+ void toggleShowAllLayers();
+ void resetMirror();
+
+ void openRecent();
+
+ void dockAllPalettes();
+ void detachAllPalettes();
+ void restorePalettesSettings(bool, bool, bool);
+///*
+ void getPrevKeyFlip();
+ void getNextKeyFlip();
+
+ int getPrevKey(int);
+ int getNextKey(int);
+//*/
+
+private slots:
+ void newDocument();
+ void openDocument();
+ bool saveDocument();
+ void saveForce();
+ bool exportX();
+ bool exportSeq();
+ bool exportMov();
+ bool exportFlash();
+
+ void showPalette();
+ void about();
+ void helpBox();
+ void saveLength(QString);
+
+private:
+ bool openObject(QString);
+ bool saveObject(QString);
+
+ ScribbleArea *scribbleArea;
+ TimeLine *timeLine;
+ ToolSet *toolSet;
+ Palette *palette;
+ Preferences *preferences;
+ QMainWindow *mainWindow;
+
+ QString savedName;
+ bool altpress;
+ bool modified;
+ int numberOfModifications;
+
+ bool autosave;
+ int autosaveNumber;
+
+ // backup
+ int backupIndex;
+ QList<BackupElement*> backupList;
+ void clearBackup();
+ int lastModifiedFrame, lastModifiedLayer;
+
+ // clipboard
+ bool clipboardBitmapOk, clipboardVectorOk;
+ BitmapImage clipboardBitmapImage;
+ VectorImage clipboardVectorImage;
+
+ // dialogs
+ void createExportFramesSizeBox();
+ void createExportMovieSizeBox();
+ void createExportFramesDialog();
+ void createExportMovieDialog();
+ void createExportFlashDialog();
+ void createNewDocumentDialog();
+ QDialog *newDocumentDialog;
+ QDialog *exportFramesDialog;
+ QDialog *exportMovieDialog;
+ QDialog *exportFlashDialog;
+ QSpinBox *exportFramesDialog_hBox;
+ QSpinBox *exportFramesDialog_vBox;
+ QSpinBox *exportMovieDialog_hBox;
+ QSpinBox *exportMovieDialog_vBox;
+ QComboBox *exportFramesDialog_format;
+ QComboBox *exportMovieDialog_format;
+ QSlider* exportFlashDialog_compression;
+
+ // saving (XML)
+ QDomElement createDomElement(QDomDocument &doc);
+ bool loadDomElement(QDomElement element, QString filePath);
+};
+
+#endif
diff -rupN pencil_backup/src/interface/mainwindow.cpp pencil_dev/src/interface/mainwindow.cpp
--- pencil_backup/src/interface/mainwindow.cpp 2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/mainwindow.cpp 2009-09-30 15:41:11.000000000 -0500
@@ -324,53 +324,6 @@ void MainWindow::closeEvent(QCloseEvent
}
}
-void MainWindow::keyPressEvent( QKeyEvent *e ) {
- switch (e->key()) {
- case Qt::Key_H:
- editor->switchVisibilityOfLayer(editor->currentLayer);
- break;
- case Qt::Key_D:
- editor->scrubForward();
- break;
- case Qt::Key_Right:
- //editor->scrubForward();
- break;
- case Qt::Key_S:
- editor->scrubBackward();
- break;
- case Qt::Key_Left:
- //editor->scrubBackward();
- break;
- case Qt::Key_Up:
- //editor->previousLayer();
- break;
- case Qt::Key_Down:
- //editor->nextLayer();
- break;
- case Qt::Key_Space:
- editor->play();
- break;
- case Qt::Key_Alt:
- //editor->altPress();
- break;
- case Qt::Key_Return:
- editor->addKey();
- break;
- default:
- QWidget::keyPressEvent(e);
- }
-}
-
-void MainWindow::keyReleaseEvent( QKeyEvent *e ) {
- switch (e->key()) {
- case Qt::Key_Alt:
- //editor->altRelease();
- break;
- default:
- QWidget::keyPressEvent(e);
- }
-}
-
void MainWindow::readSettings() {
QSettings settings("Pencil", "Pencil");
QRect desktopRect = QApplication::desktop()->screenGeometry();
diff -rupN pencil_backup/src/interface/mainwindow.cpp~ pencil_dev/src/interface/mainwindow.cpp~
--- pencil_backup/src/interface/mainwindow.cpp~ 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/mainwindow.cpp~ 2009-09-29 21:16:45.000000000 -0500
@@ -0,0 +1,395 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+*/
+#include <QtGui>
+#include "editor.h"
+#include "mainwindow.h"
+#include "object.h"
+#include <interfaces.h>
+
+MainWindow::MainWindow() {
+ editor = new Editor(this);
+ //Object* object = new Object();
+ //object->defaultInitialisation();
+ //editor->setObject( object );
+ editor->newObject();
+
+ arrangePalettes();
+
+ //editor->getTimeLine()->close();
+
+ createMenus();
+ loadPlugins();
+ readSettings();
+}
+
+void MainWindow::arrangePalettes() {
+ setCentralWidget(editor);
+ addDockWidget(Qt::RightDockWidgetArea, editor->getPalette());
+ //editor->getPalette()->close();
+ addDockWidget(Qt::LeftDockWidgetArea, editor->getToolSet()->drawPalette);
+ addDockWidget(Qt::LeftDockWidgetArea, editor->getToolSet()->optionPalette);
+ addDockWidget(Qt::LeftDockWidgetArea, editor->getToolSet()->displayPalette);
+ //addDockWidget(Qt::LeftDockWidgetArea, editor->getToolSet()->onionPalette);
+ //addDockWidget(Qt::LeftDockWidgetArea, editor->getToolSet()->keyPalette);
+
+ //addDockWidget(Qt::BottomDockWidgetArea, editor->getToolSet()->timePalette);
+ addDockWidget(Qt::BottomDockWidgetArea, editor->getTimeLine());
+
+ editor->getToolSet()->drawPalette->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
+ editor->getToolSet()->optionPalette->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
+ //editor->getToolSet()->keyPalette->setFeatures(QDockWidget::NoDockWidgetFeatures);
+ //editor->getToolSet()->onionPalette->setFeatures(QDockWidget::NoDockWidgetFeatures);
+ editor->getToolSet()->displayPalette->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
+ editor->getToolSet()->keyPalette->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
+ editor->getToolSet()->onionPalette->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
+ editor->getToolSet()->timePalette->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
+ editor->getTimeLine()->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
+}
+
+void MainWindow::createMenus() {
+ // ---------- Actions -------------
+ exitAct = new QAction(tr("E&xit"), this);
+ exitAct->setShortcut(tr("Ctrl+Q"));
+ connect(exitAct, SIGNAL(triggered()), editor, SLOT(close()));
+
+ newAct = new QAction(tr("&New"), this);
+ newAct->setShortcut(tr("Ctrl+N"));
+ connect(newAct, SIGNAL(triggered()), editor, SLOT(newDocument()));
+
+ openAct = new QAction(tr("&Open..."), this);
+ openAct->setShortcut(tr("Ctrl+O"));
+ connect(openAct, SIGNAL(triggered()), editor, SLOT(openDocument()));
+
+ saveAct = new QAction(tr("Save &As..."), this);
+ saveAct->setShortcut(tr("Ctrl+Shift+S"));
+ connect(saveAct, SIGNAL(triggered()), editor, SLOT(saveDocument()));
+
+ savAct = new QAction(tr("&Save"), this);
+ savAct->setShortcut(tr("Ctrl+S"));
+ connect(savAct, SIGNAL(triggered()), editor, SLOT(saveForce()));
+
+ exportXAct = new QAction(tr("&X-Sheet..."), this);
+ exportXAct->setShortcut(tr("Ctrl+Alt+X"));
+ connect(exportXAct, SIGNAL(triggered()), editor, SLOT(exportX()));
+
+ exportAct = new QAction(tr("&Image Sequence..."), this);
+ exportAct->setShortcut(tr("Ctrl+Alt+S"));
+ connect(exportAct, SIGNAL(triggered()), editor, SLOT(exportSeq()));
+
+ exportMovAct = new QAction(tr("&Movie..."), this);
+ exportMovAct->setShortcut(tr("Ctrl+Alt+M"));
+ connect(exportMovAct, SIGNAL(triggered()), editor, SLOT(exportMov()));
+
+ exportFlashAct = new QAction(tr("&Flash/SWF..."), this);
+ exportFlashAct->setShortcut(tr("Ctrl+Alt+F"));
+ connect(exportFlashAct, SIGNAL(triggered()), editor, SLOT(exportFlash()));
+
+ exportFlashAct = new QAction(tr("&Flash/SWF..."), this);
+ exportFlashAct->setShortcut(tr("Ctrl+Alt+F"));
+ connect(exportFlashAct, SIGNAL(triggered()), editor, SLOT(exportFlash()));
+
+ exportPaletteAct = new QAction(tr("Palette..."), this);
+ connect(exportPaletteAct, SIGNAL(triggered()), editor, SLOT(exportPalette()));
+
+ importPaletteAct = new QAction(tr("Palette..."), this);
+ connect(importPaletteAct, SIGNAL(triggered()), editor, SLOT(importPalette()));
+
+ importAct = new QAction(tr("&Import image..."), this);
+ importAct->setShortcut(tr("Ctrl+I"));
+ connect(importAct, SIGNAL(triggered()), editor, SLOT(importImage()));
+
+ importSndAct = new QAction(tr("&Import sound..."), this);
+// importAct->setShortcut(tr("Ctrl+I"));
+ connect(importSndAct, SIGNAL(triggered()), editor, SLOT(importSound()));
+
+ aboutAct = new QAction(tr("&About"), this);
+ connect(aboutAct, SIGNAL(triggered()), editor, SLOT(about()));
+
+ helpMe = new QAction(tr("&Help"), this);
+ helpMe->setShortcut(tr("Ctrl+?"));
+ connect(helpMe, SIGNAL(triggered()), editor, SLOT(helpBox()));
+
+ aboutQtAct = new QAction(tr("About &Qt"), this);
+ connect(aboutQtAct, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
+
+ undoAct = new QAction(tr("Undo"), this);
+ undoAct->setShortcut(tr("Ctrl+Z"));
+ connect(undoAct, SIGNAL(triggered()), editor, SLOT(undo()));
+
+ redoAct = new QAction(tr("Redo"), this);
+ redoAct->setShortcut(tr("Ctrl+Shift+Z"));
+ connect(redoAct, SIGNAL(triggered()), editor, SLOT(redo()));
+
+ copyAct = new QAction(tr("Copy"), this);
+ copyAct->setShortcut(tr("Ctrl+C"));
+ connect(copyAct, SIGNAL(triggered()), editor, SLOT(copy()));
+
+ pasteAct = new QAction(tr("Paste"), this);
+ pasteAct->setShortcut(tr("Ctrl+V"));
+ connect(pasteAct, SIGNAL(triggered()), editor, SLOT(paste()));
+
+ selectAllAct = new QAction(tr("Select All"), this);
+ selectAllAct->setShortcut(tr("Ctrl+A"));
+ connect(selectAllAct, SIGNAL(triggered()), editor, SIGNAL(selectAll()));
+
+ preferencesAct = new QAction(tr("Preferences"), this);
+ connect(preferencesAct, SIGNAL(triggered()), editor, SLOT(showPreferences()));
+
+
+ newBitmapLayerAct = new QAction(tr("New Bitmap Layer"), this);
+ connect(newBitmapLayerAct, SIGNAL(triggered()), editor, SLOT(newBitmapLayer()));
+
+ newVectorLayerAct = new QAction(tr("New Vector Layer"), this);
+ connect(newVectorLayerAct, SIGNAL(triggered()), editor, SLOT(newVectorLayer()));
+
+ newSoundLayerAct = new QAction(tr("New Sound Layer"), this);
+ connect(newSoundLayerAct, SIGNAL(triggered()), editor, SLOT(newSoundLayer()));
+
+ newCameraLayerAct = new QAction(tr("New Camera Layer"), this);
+ connect(newCameraLayerAct, SIGNAL(triggered()), editor, SLOT(newCameraLayer()));
+
+ deleteLayerAct = new QAction(tr("Delete Current Layer"), this);
+ connect(deleteLayerAct, SIGNAL(triggered()), editor, SLOT(deleteCurrentLayer()));
+
+
+ dockAllPalettesAct = new QAction(tr("Dock All Palettes"), this);
+ connect(dockAllPalettesAct, SIGNAL(triggered()), editor, SLOT(dockAllPalettes()));
+
+ detachAllPalettesAct = new QAction(tr("Detach All Palettes"), this);
+ connect(detachAllPalettesAct, SIGNAL(triggered()), editor, SLOT(detachAllPalettes()));
+
+ // --------------- Menus ------------------
+
+ importMenu = new QMenu(tr("Import"), this);
+ importMenu->addAction(importPaletteAct);
+
+ exportMenu = new QMenu(tr("Export"), this);
+ exportMenu->addAction(exportXAct);
+ exportMenu->addAction(exportAct);
+ exportMenu->addAction(exportMovAct);
+ exportMenu->addAction(exportFlashAct);
+ exportMenu->addSeparator();
+ exportMenu->addAction(exportPaletteAct);
+
+ openRecentMenu = new QMenu(tr("Open recent..."), this);
+
+ fileMenu = new QMenu(tr("&File"), this);
+ fileMenu->addAction(newAct);
+ fileMenu->addAction(openAct);
+ fileMenu->addMenu(openRecentMenu);
+ fileMenu->addAction(savAct);
+ fileMenu->addAction(saveAct);
+ fileMenu->addSeparator();
+ fileMenu->addMenu(importMenu);
+ fileMenu->addMenu(exportMenu);
+
+ editMenu = new QMenu(tr("&Edit"), this);
+ editMenu->addAction(undoAct);
+ editMenu->addAction(redoAct);
+ editMenu->addSeparator();
+ editMenu->addAction(copyAct);
+ editMenu->addAction(pasteAct);
+ editMenu->addSeparator();
+ editMenu->addAction(selectAllAct);
+ editMenu->addSeparator();
+ editMenu->addAction(importAct);
+ editMenu->addAction(importSndAct);
+ editMenu->addSeparator();
+ editMenu->addAction(preferencesAct);
+
+ layerMenu = new QMenu(tr("&Layer"), this);
+ layerMenu->addAction(newBitmapLayerAct);
+ layerMenu->addAction(newVectorLayerAct);
+ layerMenu->addAction(newSoundLayerAct);
+ layerMenu->addAction(newCameraLayerAct);
+ layerMenu->addSeparator();
+ layerMenu->addAction(deleteLayerAct);
+
+ helpMenu = new QMenu(tr("&Help"), this);
+ helpMenu->addAction(helpMe);
+ helpMenu->addAction(aboutAct);
+ helpMenu->addAction(aboutQtAct);
+
+ windowsMenu = new QMenu(tr("Windows"), this);
+ windowsMenu->addAction(dockAllPalettesAct);
+ windowsMenu->addAction(detachAllPalettesAct);
+
+ menuBar()->addMenu(fileMenu);
+ menuBar()->addMenu(editMenu);
+ menuBar()->addMenu(layerMenu);
+ menuBar()->addMenu(helpMenu);
+ menuBar()->addMenu(windowsMenu);
+}
+
+void MainWindow::loadPlugins() {
+ qDebug() << "MainWindow loadplugins" << this << this->thread();
+ // foreach (QObject *plugin, QPluginLoader::staticInstances()) populateMenus(plugin); // static plugins
+ QDir pluginsDir = QDir(qApp->applicationDirPath());
+ #if defined(Q_OS_WIN)
+ if (pluginsDir.dirName().toLower() == "debug" || pluginsDir.dirName().toLower() == "release")
+ pluginsDir.cdUp();
+ #elif defined(Q_OS_MAC)
+ if (pluginsDir.dirName() == "MacOS") {
+ pluginsDir.cdUp();
+ }
+ #endif
+ pluginsDir.cd("plugins");
+
+ qDebug() << "Plugin dir = " << pluginsDir.dirName();
+ /*foreach (QString fileName, pluginsDir.entryList(QDir::Files)) {
+ QPluginLoader loader(pluginsDir.absoluteFilePath(fileName));
+ QObject *plugin = loader.instance();
+ qDebug() << "loader " << loader.thread();
+ qDebug() << "plugin " << fileName << plugin << plugin->thread();
+ if (plugin) {
+ plugin->moveToThread(this->thread());
+ populateMenus(plugin);
+ //pluginFileNames += fileName;
+ }
+ }*/
+
+ //brushMenu->setEnabled(!brushActionGroup->actions().isEmpty());
+ //shapesMenu->setEnabled(!shapesMenu->actions().isEmpty());
+ //filterMenu->setEnabled(!filterMenu->actions().isEmpty());
+}
+
+void MainWindow::populateMenus(QObject *plugin) {
+ qDebug() << "MainWindow populateMenus" << this << this->thread();
+ qDebug() << "MainWindow populateMenus" << plugin << plugin->thread();
+ /*BrushInterface *iBrush = qobject_cast<BrushInterface *>(plugin);
+ if (iBrush) addToMenu(plugin, iBrush->brushes(), brushMenu, SLOT(changeBrush()), brushActionGroup);
+
+ ShapeInterface *iShape = qobject_cast<ShapeInterface *>(plugin);
+ if (iShape) addToMenu(plugin, iShape->shapes(), shapesMenu, SLOT(insertShape()));
+
+ FilterInterface *iFilter = qobject_cast<FilterInterface *>(plugin);
+ if (iFilter) addToMenu(plugin, iFilter->filters(), filterMenu, SLOT(applyFilter()));*/
+
+ ExportInterface *exportPlugin = qobject_cast<ExportInterface *>(plugin);
+ if (exportPlugin) addToMenu(plugin, exportPlugin->name(), exportMenu, SLOT(exportFile()));
+}
+
+void MainWindow::addToMenu(QObject *plugin, const QString text, QMenu *menu, const char *member, QActionGroup *actionGroup) {
+ qDebug() << "MainWindow populateMenus" << this << this->thread();
+ qDebug() << "MainWindow populateMenus" << plugin << plugin->thread();
+ qDebug() << "addToMenu 1";
+ QAction *action = new QAction(text, plugin);
+ qDebug() << "addToMenu 2";
+ connect(action, SIGNAL(triggered()), this, member);
+ menu->addAction(action);
+ if (actionGroup) {
+ action->setCheckable(true);
+ actionGroup->addAction(action);
+ }
+}
+
+void MainWindow::exportFile() {
+ QAction *action = qobject_cast<QAction *>(sender());
+ ExportInterface *exportPlugin = qobject_cast<ExportInterface *>(action->parent());
+ if(exportPlugin) {
+ //exportPlugin->exportFile();
+ } else {
+ qDebug() << "exportPlugin is null";
+ }
+ //const QImage image = iFilter->filterImage(action->text(), paintArea->image(), this);
+ //paintArea->setImage(image);
+}
+
+void MainWindow::setOpacity(int opacity) {
+ QSettings settings("Pencil","Pencil");
+ settings.setValue("windowOpacity", 100-opacity);
+ setWindowOpacity(opacity/100.0);
+}
+
+void Main
+
+void MainWindow::closeEvent(QCloseEvent *event)
+{
+ if (editor->maybeSave()) {
+ writeSettings();
+ event->accept();
+ } else {
+ event->ignore();
+ }
+}
+
+void MainWindow::readSettings() {
+ QSettings settings("Pencil", "Pencil");
+ QRect desktopRect = QApplication::desktop()->screenGeometry();
+ desktopRect.adjust(80,80,-80,-80);
+ //QPoint pos = settings.value("editorPosition", QPoint( qMax(0, (desktopRect.width()-800)/2), qMax(0, (desktopRect.height()-600)/2) )).toPoint();
+ QPoint pos = settings.value("editorPosition", desktopRect.topLeft() ).toPoint();
+ //QSize size = settings.value("editorSize", QSize(800, 600)).toSize();
+ QSize size = settings.value("editorSize", desktopRect.size() ).toSize();
+ move(pos);
+ resize(size);
+
+ editor->restorePalettesSettings(true, true, true);
+
+ QString myPath = settings.value("lastFilePath", QVariant(QDir::homePath())).toString();
+ addRecentFile(myPath);
+
+ setOpacity(100-settings.value("windowOpacity").toInt());
+ //initialiseStyle();
+}
+
+void MainWindow::writeSettings() {
+ QSettings settings("Pencil", "Pencil");
+ settings.setValue("editorPosition", pos());
+ settings.setValue("editorSize", size());
+
+ Palette* colourPalette = editor->getPalette();
+ if(colourPalette != NULL) {
+ settings.setValue("colourPalettePosition", colourPalette->pos());
+ settings.setValue("colourPaletteSize", colourPalette->size());
+ settings.setValue("colourPaletteFloating", colourPalette->isFloating());
+ }
+
+ TimeLine* timelinePalette = editor->getTimeLine();
+ if(timelinePalette != NULL) {
+ settings.setValue("timelinePalettePosition", timelinePalette->pos());
+ settings.setValue("timelinePaletteSize", timelinePalette->size());
+ settings.setValue("timelinePaletteFloating", timelinePalette->isFloating());
+ }
+
+ QDockWidget* drawPalette = editor->getToolSet()->drawPalette;
+ if(drawPalette != NULL) {
+ settings.setValue("drawPalettePosition", drawPalette->pos());
+ settings.setValue("drawPaletteSize", drawPalette->size());
+ settings.setValue("drawPaletteFloating", drawPalette->isFloating());
+ }
+
+ QDockWidget* optionPalette = editor->getToolSet()->optionPalette;
+ if(optionPalette != NULL) {
+ settings.setValue("optionPalettePosition", optionPalette->pos());
+ settings.setValue("optionPaletteSize", optionPalette->size());
+ settings.setValue("optionPaletteFloating", optionPalette->isFloating());
+ }
+
+ QDockWidget* displayPalette = editor->getToolSet()->displayPalette;
+ if(optionPalette != NULL) {
+ settings.setValue("displayPalettePosition", displayPalette->pos());
+ settings.setValue("displayPaletteSize", displayPalette->size());
+ settings.setValue("displayPaletteFloating", displayPalette->isFloating());
+ }
+
+}
+
+void MainWindow::addRecentFile(QString filePath) {
+ QAction* openThisFileAct = new QAction(filePath, this);
+ connect(openThisFileAct, SIGNAL(triggered()), editor, SLOT(openRecent()));
+ openRecentMenu->addAction(openThisFileAct);
+}
diff -rupN pencil_backup/src/interface/mainwindow.h pencil_dev/src/interface/mainwindow.h
--- pencil_backup/src/interface/mainwindow.h 2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/mainwindow.h 2009-09-29 20:59:42.000000000 -0500
@@ -39,8 +39,6 @@ private:
void addToMenu(QObject *plugin, const QString text, QMenu *menu, const char *member, QActionGroup *actionGroup = 0);
void closeEvent(QCloseEvent *);
- void keyPressEvent( QKeyEvent *e);
- void keyReleaseEvent( QKeyEvent *e);
void readSettings();
void writeSettings();
diff -rupN pencil_backup/src/interface/mainwindow.h~ pencil_dev/src/interface/mainwindow.h~
--- pencil_backup/src/interface/mainwindow.h~ 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/mainwindow.h~ 2009-09-29 20:57:57.000000000 -0500
@@ -0,0 +1,89 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+*/
+#include <QtGui>
+#include <QObject>
+#include "editor.h"
+class MainWindow : public QMainWindow
+{
+ Q_OBJECT
+
+public:
+ MainWindow();
+ //void initialiseStyle();
+ void addRecentFile(QString filePath);
+
+public slots:
+ void setOpacity(int opacity);
+
+private slots:
+ void exportFile();
+
+private:
+ void arrangePalettes();
+ void createMenus();
+ void loadPlugins();
+ void populateMenus(QObject *plugin);
+ void addToMenu(QObject *plugin, const QString text, QMenu *menu, const char *member, QActionGroup *actionGroup = 0);
+
+ void closeEvent(QCloseEvent *);
+ void readSettings();
+ void writeSettings();
+
+ Editor *editor;
+
+ QMenu *fileMenu;
+ QMenu *openRecentMenu;
+ QMenu *importMenu;
+ QMenu *exportMenu;
+ QMenu *editMenu;
+ QMenu *layerMenu;
+ QMenu *helpMenu;
+ QMenu *windowsMenu;
+
+ QAction *newAct;
+ QAction *openAct;
+ QAction *saveAct;
+ QAction *exitAct;
+ QAction *helpMe;
+ QAction *aboutAct;
+ QAction *aboutQtAct;
+ QAction *exportXAct;
+ QAction *exportAct;
+ QAction *exportMovAct;
+ QAction *exportFlashAct;
+ QAction *exportPaletteAct;
+ QAction *importPaletteAct;
+ QAction *savAct;
+ QAction *importAct;
+ QAction *undoAct;
+ QAction *redoAct;
+ QAction *copyAct;
+ QAction *pasteAct;
+ QAction *selectAllAct;
+ QAction *importSndAct;
+ QAction *preferencesAct;
+
+ QAction *newBitmapLayerAct;
+ QAction *newVectorLayerAct;
+ QAction *newSoundLayerAct;
+ QAction *newCameraLayerAct;
+ QAction *deleteLayerAct;
+
+ QAction *dockAllPalettesAct;
+ QAction *detachAllPalettesAct;
+};
+
+
diff -rupN pencil_backup/src/interface/preferences.cpp pencil_dev/src/interface/preferences.cpp
--- pencil_backup/src/interface/preferences.cpp 2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/preferences.cpp 2009-10-01 20:24:03.000000000 -0500
@@ -15,7 +15,7 @@ GNU General Public License for more deta
*/
#include <QtGui>
#include "preferences.h"
-#include "scribblearea.h";
+#include "scribblearea.h"
Preferences::Preferences()
{
@@ -310,10 +310,14 @@ GeneralPage::GeneralPage(QWidget *parent
TimelinePage::TimelinePage(QWidget *parent) : QWidget(parent) {
QSettings settings("Pencil","Pencil");
-
- QVBoxLayout *lay = new QVBoxLayout();
+ QVBoxLayout *generalLay = new QVBoxLayout();
+ QGridLayout *onionLay = new QGridLayout();
QGroupBox* timeLineBox = new QGroupBox(tr("Time Line"));
+ QGroupBox* onionSkinBox = new QGroupBox(tr("Onion Skin"));
+
+ // General timeline buttons
+
QCheckBox *drawLabel = new QCheckBox(tr("Draw timeline labels"));
QLabel *fontSizeLabel = new QLabel(tr("Labels font size"));
QSpinBox *fontSize = new QSpinBox();
@@ -354,17 +358,75 @@ TimelinePage::TimelinePage(QWidget *pare
//lay->addWidget(drawLabel);
//lay->addWidget(fontSizeLabel);
//lay->addWidget(fontSize);
- lay->addWidget(frameSizeLabel);
- lay->addWidget(frameSize);
- lay->addWidget(lengthSizeLabel);
- lay->addWidget(lengthSize);
- lay->addWidget(scrubBox);
- timeLineBox->setLayout(lay);
-
- QVBoxLayout *lay2 = new QVBoxLayout();
- lay2->addWidget(timeLineBox);
- lay2->addStretch(1);
- setLayout(lay2);
+ generalLay->addWidget(frameSizeLabel);
+ generalLay->addWidget(frameSize);
+ generalLay->addWidget(lengthSizeLabel);
+ generalLay->addWidget(lengthSize);
+ generalLay->addWidget(scrubBox);
+ timeLineBox->setLayout(generalLay);
+
+ // Onion skin buttons
+
+ QLabel *onionOpacityLabel = new QLabel(tr("Opacity"));
+ QLabel *onionFrameLabel = new QLabel(tr("Straight ahead"));
+ QLabel *onionInbetweenLabel = new QLabel(tr("Inbetween"));
+ QLabel *onionCurrentFrameLabel = new QLabel(tr("*current frame*"));
+
+ QSlider *onionOpacity = new QSlider(Qt::Horizontal);
+ onionOpacity->setToolTip(tr("Opacity of onion skin frames"));
+ QSpinBox *onionFrameNumber = new QSpinBox();
+ onionFrameNumber->setToolTip(tr("Number of frames to show in straight ahead mode"));
+ QCheckBox *previousprevious = new QCheckBox();
+ previousprevious->setToolTip(tr("Frame before previous"));
+ QCheckBox *previous = new QCheckBox();
+ previous->setToolTip(tr("Previous frame"));
+ QCheckBox *next = new QCheckBox();
+ next->setToolTip(tr("Next frame"));
+ QCheckBox *nextnext = new QCheckBox();
+ nextnext->setToolTip(tr("Frame after next"));
+
+ onionOpacity->setMinimum(0);
+ onionOpacity->setMaximum(100);
+ onionOpacity->setSliderPosition(30);
+ onionFrameNumber->setMinimum(1);
+ onionFrameNumber->setMaximum(20);
+ onionFrameNumber->setValue(5);
+ previousprevious->setChecked(false);
+ previous->setChecked(true);
+ next->setChecked(true);
+ nextnext->setChecked(false);
+
+ connect(onionOpacity, SIGNAL(valueChanged(int)), parent, SIGNAL(onionOpacityChange(int)));
+ connect(onionFrameNumber, SIGNAL(valueChanged(int)), parent, SIGNAL(onionStraightAheadChange(int)));
+ connect(previousprevious, SIGNAL(stateChanged(int)), parent, SIGNAL(onionPreviousPreviousChange(int)));
+ connect(previous, SIGNAL(stateChanged(int)), parent, SIGNAL(onionPreviousChange(int)));
+ connect(next, SIGNAL(stateChanged(int)), parent, SIGNAL(onionNextChange(int)));
+ connect(nextnext, SIGNAL(stateChanged(int)), parent, SIGNAL(onionNextNextChange(int)));
+
+ QGroupBox *onionInbetweenBox = new QGroupBox();
+ QGridLayout *onionInbetweenBoxLayout = new QGridLayout();
+ onionInbetweenBox->setLayout(onionInbetweenBoxLayout);
+ onionInbetweenBoxLayout->addWidget(previousprevious, 0, 0);
+ onionInbetweenBoxLayout->addWidget(previous, 0, 1);
+ onionInbetweenBoxLayout->addWidget(onionCurrentFrameLabel, 0, 2);
+ onionInbetweenBoxLayout->addWidget(next, 0, 3);
+ onionInbetweenBoxLayout->addWidget(nextnext, 0, 4);
+
+ onionSkinBox->setLayout(onionLay);
+ onionLay->addWidget(onionOpacityLabel, 0, 0);
+ onionLay->addWidget(onionOpacity, 0, 1);
+ onionLay->addWidget(onionFrameLabel, 1, 0);
+ onionLay->addWidget(onionInbetweenLabel, 1, 1);
+ onionLay->addWidget(onionFrameNumber, 2, 0);
+ onionLay->addWidget(onionInbetweenBox, 2, 1);
+
+ // Generic timeline settings
+
+ QVBoxLayout *fullLay = new QVBoxLayout();
+ fullLay->addWidget(timeLineBox);
+ fullLay->addWidget(onionSkinBox);
+ fullLay->addStretch(1);
+ setLayout(fullLay);
}
FilesPage::FilesPage(QWidget *parent) : QWidget(parent) {
diff -rupN pencil_backup/src/interface/preferences.cpp~ pencil_dev/src/interface/preferences.cpp~
--- pencil_backup/src/interface/preferences.cpp~ 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/preferences.cpp~ 2009-10-01 20:17:25.000000000 -0500
@@ -0,0 +1,465 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+*/
+#include <QtGui>
+#include "preferences.h"
+#include "scribblearea.h"
+
+Preferences::Preferences()
+ {
+ contentsWidget = new QListWidget;
+ contentsWidget->setViewMode(QListView::IconMode);
+ contentsWidget->setIconSize(QSize(96, 84));
+ contentsWidget->setMovement(QListView::Static);
+ contentsWidget->setMaximumWidth(128);
+ contentsWidget->setSpacing(12);
+
+ pagesWidget = new QStackedWidget;
+ pagesWidget->addWidget(new GeneralPage(this));
+ pagesWidget->addWidget(new FilesPage(this));
+ pagesWidget->addWidget(new TimelinePage(this));
+ //pagesWidget->addWidget(new QueryPage);
+
+ QPushButton *closeButton = new QPushButton(tr("Close"));
+
+ createIcons();
+ contentsWidget->setCurrentRow(0);
+
+ connect(closeButton, SIGNAL(clicked()), this, SLOT(close()));
+
+ QHBoxLayout *horizontalLayout = new QHBoxLayout;
+ horizontalLayout->addWidget(contentsWidget);
+ horizontalLayout->addWidget(pagesWidget, 1);
+
+ QHBoxLayout *buttonsLayout = new QHBoxLayout;
+ buttonsLayout->addStretch(1);
+ buttonsLayout->addWidget(closeButton);
+
+ QVBoxLayout *mainLayout = new QVBoxLayout;
+ mainLayout->addLayout(horizontalLayout);
+ mainLayout->addStretch(1);
+ mainLayout->addSpacing(12);
+ mainLayout->addLayout(buttonsLayout);
+ setLayout(mainLayout);
+
+ setWindowTitle(tr("Preferences"));
+ }
+
+ void Preferences::createIcons()
+ {
+ QListWidgetItem *generalButton = new QListWidgetItem(contentsWidget);
+ generalButton->setIcon(QIcon(":icons/prefspencil.png"));
+ generalButton->setText(tr("General"));
+ generalButton->setTextAlignment(Qt::AlignHCenter);
+ generalButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
+
+ QListWidgetItem *filesButton = new QListWidgetItem(contentsWidget);
+ filesButton->setIcon(QIcon(":icons/prefs-files.png"));
+ filesButton->setText(tr("Files"));
+ filesButton->setTextAlignment(Qt::AlignHCenter);
+ filesButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
+
+ QListWidgetItem *timelineButton = new QListWidgetItem(contentsWidget);
+ timelineButton->setIcon(QIcon(":icons/prefstimeline.png"));
+ timelineButton->setText(tr("Time Line"));
+ timelineButton->setTextAlignment(Qt::AlignHCenter);
+ timelineButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
+
+ /*QListWidgetItem *queryButton = new QListWidgetItem(contentsWidget);
+ queryButton->setIcon(QIcon(":/images/query.png"));
+ queryButton->setText(tr("Query"));
+ queryButton->setTextAlignment(Qt::AlignHCenter);
+ queryButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);*/
+
+ connect(contentsWidget,
+ SIGNAL(currentItemChanged(QListWidgetItem *, QListWidgetItem *)),
+ this, SLOT(changePage(QListWidgetItem *, QListWidgetItem*)));
+ }
+
+ void Preferences::changePage(QListWidgetItem *current, QListWidgetItem *previous)
+ {
+ if (!current)
+ current = previous;
+
+ pagesWidget->setCurrentIndex(contentsWidget->row(current));
+ }
+
+
+
+GeneralPage::GeneralPage(QWidget *parent) : QWidget(parent) {
+ QSettings settings("Pencil","Pencil");
+ QVBoxLayout *lay = new QVBoxLayout();
+
+ QGroupBox* windowOpacityBox = new QGroupBox(tr("Window opacity"));
+ QGroupBox* backgroundBox = new QGroupBox(tr("Background"));
+ QGroupBox* appearanceBox = new QGroupBox(tr("Appearance"));
+ QGroupBox* displayBox = new QGroupBox(tr("Rendering"));
+ QGroupBox* editingBox = new QGroupBox(tr("Editing"));
+
+ QLabel *windowOpacityLabel = new QLabel(tr("Opacity"));
+ QSlider *windowOpacityLevel = new QSlider(Qt::Horizontal);
+ windowOpacityLevel->setMinimum(30);
+ windowOpacityLevel->setMaximum(100);
+ int value = settings.value("windowOpacity").toInt();
+ windowOpacityLevel->setValue( 100 - value );
+
+ QButtonGroup* backgroundButtons = new QButtonGroup();
+ QRadioButton* checkerBackgroundButton = new QRadioButton();
+ QRadioButton* whiteBackgroundButton = new QRadioButton();
+ QRadioButton* greyBackgroundButton = new QRadioButton();
+ QRadioButton* dotsBackgroundButton = new QRadioButton();
+ QRadioButton* weaveBackgroundButton = new QRadioButton();
+ QPixmap previewCheckerboard(32,32);
+ QPixmap previewWhite(32,32);
+ QPixmap previewGrey(32,32);
+ QPixmap previewDots(32,32);
+ QPixmap previewWeave(32,32);
+ QPainter painter(&previewCheckerboard);
+ painter.fillRect( QRect(0,0,32,32), ScribbleArea::getBackgroundBrush("checkerboard") );
+ painter.end();
+ painter.begin(&previewDots);
+ painter.fillRect( QRect(0,0,32,32), ScribbleArea::getBackgroundBrush("dots") );
+ painter.end();
+ painter.begin(&previewWeave);
+ painter.fillRect( QRect(0,0,32,32), ScribbleArea::getBackgroundBrush("weave") );
+ painter.end();
+ previewWhite.fill( Qt::white );
+ previewGrey.fill( Qt:: lightGray );
+ checkerBackgroundButton->setIcon( previewCheckerboard );
+ whiteBackgroundButton->setIcon( previewWhite );
+ greyBackgroundButton->setIcon( previewGrey );
+ dotsBackgroundButton->setIcon( previewDots );
+ dotsBackgroundButton->setIcon( previewWeave );
+ backgroundButtons->addButton(checkerBackgroundButton);
+ backgroundButtons->addButton(whiteBackgroundButton);
+ backgroundButtons->addButton(greyBackgroundButton);
+ backgroundButtons->addButton(dotsBackgroundButton);
+ backgroundButtons->addButton(weaveBackgroundButton);
+ backgroundButtons->setId(checkerBackgroundButton, 1);
+ backgroundButtons->setId(whiteBackgroundButton, 2);
+ backgroundButtons->setId(greyBackgroundButton, 3);
+ backgroundButtons->setId(dotsBackgroundButton, 4);
+ backgroundButtons->setId(weaveBackgroundButton, 5);
+ QHBoxLayout *backgroundLayout = new QHBoxLayout();
+ backgroundBox->setLayout(backgroundLayout);
+ backgroundLayout->addWidget(checkerBackgroundButton);
+ backgroundLayout->addWidget(whiteBackgroundButton);
+ backgroundLayout->addWidget(greyBackgroundButton);
+ backgroundLayout->addWidget(dotsBackgroundButton);
+ backgroundLayout->addWidget(weaveBackgroundButton);
+ if( settings.value("background").toString() == "checkerboard" ) checkerBackgroundButton->setChecked(true);
+ if( settings.value("background").toString() == "white" ) whiteBackgroundButton->setChecked(true);
+ if( settings.value("background").toString() == "grey" ) greyBackgroundButton->setChecked(true);
+ if( settings.value("background").toString() == "dots" ) dotsBackgroundButton->setChecked(true);
+ if( settings.value("background").toString() == "weave" ) weaveBackgroundButton->setChecked(true);
+
+ QCheckBox *shadowsBox = new QCheckBox(tr("Shadows"));
+ shadowsBox->setChecked(false); // default
+ if (settings.value("shadows").toString()=="true") shadowsBox->setChecked(true);
+
+ QCheckBox *toolCursorsBox = new QCheckBox(tr("Tool Cursors"));
+ toolCursorsBox->setChecked(true); // default
+ if (settings.value("toolCursors").toString()=="false") toolCursorsBox->setChecked(false);
+
+ QCheckBox *aquaBox = new QCheckBox(tr("Aqua Style"));
+ aquaBox->setChecked(false); // default
+ if (settings.value("style").toString()=="aqua") aquaBox->setChecked(true);
+
+ QCheckBox *antialiasingBox = new QCheckBox(tr("Antialiasing"));
+ antialiasingBox->setChecked(true); // default
+ if (settings.value("antialiasing").toString()=="false") antialiasingBox->setChecked(false);
+
+ QButtonGroup *gradientsButtons = new QButtonGroup();
+ QRadioButton* gradient1Button = new QRadioButton(tr("None"));
+ QRadioButton* gradient2Button = new QRadioButton(tr("Quick"));
+ QRadioButton* gradient3Button = new QRadioButton(tr("Gradient1"));
+ QRadioButton* gradient4Button = new QRadioButton(tr("Gradient2"));
+ gradientsButtons->addButton(gradient1Button);
+ gradientsButtons->addButton(gradient2Button);
+ gradientsButtons->addButton(gradient3Button);
+ gradientsButtons->addButton(gradient4Button);
+ gradientsButtons->setId(gradient1Button, 1);
+ gradientsButtons->setId(gradient2Button, 2);
+ gradientsButtons->setId(gradient3Button, 3);
+ gradientsButtons->setId(gradient4Button, 4);
+ QGroupBox* gradientsBox = new QGroupBox(tr("Gradients"));
+ QHBoxLayout *gradientsLayout = new QHBoxLayout();
+ gradientsBox->setLayout(gradientsLayout);
+ gradientsLayout->addWidget(gradient1Button);
+ gradientsLayout->addWidget(gradient2Button);
+ gradientsLayout->addWidget(gradient3Button);
+ gradientsLayout->addWidget(gradient4Button);
+ if( settings.value("gradients").toString() == "1" ) gradient1Button->setChecked(true);
+ if( settings.value("gradients").toString() == "2" ) gradient2Button->setChecked(true);
+ if( settings.value("gradients").toString() == "" ) gradient2Button->setChecked(true); // default
+ if( settings.value("gradients").toString() == "3" ) gradient3Button->setChecked(true);
+ if( settings.value("gradients").toString() == "4" ) gradient4Button->setChecked(true);
+
+
+ /*QCheckBox *gradientsBox = new QCheckBox(tr("Gradients"));
+ gradientsBox->setChecked(true); // default
+ if (settings.value("gradients").toString()=="0") gradientsBox->setChecked(false);*/
+
+ QLabel *curveOpacityLabel = new QLabel(tr("Vector curve opacity"));
+ QSlider *curveOpacityLevel = new QSlider(Qt::Horizontal);
+ curveOpacityLevel->setMinimum(0);
+ curveOpacityLevel->setMaximum(100);
+ curveOpacityLevel->setValue( 100 - settings.value("curveOpacity").toInt() );
+
+ QGridLayout *windowOpacityLayout = new QGridLayout();
+ windowOpacityBox->setLayout(windowOpacityLayout);
+ windowOpacityLayout->addWidget(windowOpacityLabel, 0, 0);
+ windowOpacityLayout->addWidget(windowOpacityLevel, 0, 1);
+
+ QVBoxLayout *appearanceLayout = new QVBoxLayout();
+ appearanceBox->setLayout(appearanceLayout);
+ appearanceLayout->addWidget(shadowsBox);
+ appearanceLayout->addWidget(toolCursorsBox);
+#ifdef Q_WS_MAC
+ appearanceLayout->addWidget(aquaBox);
+#endif
+
+ QGridLayout *displayLayout = new QGridLayout();
+ displayBox->setLayout(displayLayout);
+ displayLayout->addWidget(antialiasingBox, 0, 0);
+ displayLayout->addWidget(gradientsBox, 1, 0);
+ displayLayout->addWidget(curveOpacityLabel, 2, 0);
+ displayLayout->addWidget(curveOpacityLevel, 3, 0);
+
+ QLabel *curveSmoothingLabel = new QLabel(tr("Vector curve smoothing"));
+ QSlider *curveSmoothingLevel = new QSlider(Qt::Horizontal);
+ curveSmoothingLevel->setMinimum(1);
+ curveSmoothingLevel->setMaximum(100);
+ value = settings.value("curveSmoothing").toInt();
+ curveSmoothingLevel->setValue( value );
+
+ QCheckBox *highResBox = new QCheckBox(tr("Tablet high-resolution position"));
+ if (settings.value("highResPosition")=="true") highResBox->setChecked(true);
+ else highResBox->setChecked(false);
+
+ QGridLayout *editingLayout = new QGridLayout();
+ editingBox->setLayout(editingLayout);
+ editingLayout->addWidget(curveSmoothingLabel, 0, 0);
+ editingLayout->addWidget(curveSmoothingLevel, 1, 0);
+ editingLayout->addWidget(highResBox, 2, 0);
+
+ //QLabel *fontSizeLabel = new QLabel(tr("Labels font size"));
+ //QDoubleSpinBox *fontSize = new QDoubleSpinBox();
+
+ /*fontSize->setMinimum(4);
+ fontSize->setMaximum(20);
+ frameSize->setMinimum(4);
+ frameSize->setMaximum(20);
+
+ fontSize->setFixedWidth(50);
+ frameSize->setFixedWidth(50);
+ lengthSize->setFixedWidth(50);
+
+ if (settings.value("drawLabel")=="false") drawLabel->setChecked(false);
+ else drawLabel->setChecked(true);
+ fontSize->setValue(settings.value("labelFontSize").toInt());
+ frameSize->setValue(settings.value("frameSize").toInt());
+ if (settings.value("labelFontSize").toInt()==0) fontSize->setValue(12);
+ if (settings.value("frameSize").toInt()==0) frameSize->setValue(6);
+ lengthSize->setText(settings.value("length").toString());
+ if (settings.value("length").toInt()==0) lengthSize->setText("240");
+
+ connect(fontSize, SIGNAL(valueChanged(int)), this, SIGNAL(fontSizeChange(int)));
+ connect(frameSize, SIGNAL(valueChanged(int)), this, SIGNAL(frameSizeChange(int)));
+ connect(lengthSize, SIGNAL(textChanged(QString)), this, SIGNAL(lengthSizeChange(QString)));
+ connect(drawLabel, SIGNAL(stateChanged(int)), this, SIGNAL(labelChange(int)));*/
+
+ lay->addWidget(windowOpacityBox);
+ lay->addWidget(appearanceBox);
+ lay->addWidget(backgroundBox);
+ lay->addWidget(displayBox);
+ lay->addWidget(editingBox);
+
+ connect(windowOpacityLevel, SIGNAL(valueChanged(int)), parent, SIGNAL(windowOpacityChange(int)));
+ connect(backgroundButtons, SIGNAL(buttonClicked(int)), parent, SIGNAL(backgroundChange(int)));
+ connect(gradientsButtons, SIGNAL(buttonClicked(int)), parent, SIGNAL(gradientsChange(int)));
+ connect(shadowsBox, SIGNAL(stateChanged(int)), parent, SIGNAL(shadowsChange(int)));
+ connect(toolCursorsBox, SIGNAL(stateChanged(int)), parent, SIGNAL(toolCursorsChange(int)));
+ connect(aquaBox, SIGNAL(stateChanged(int)), parent, SIGNAL(styleChange(int)));
+ connect(antialiasingBox, SIGNAL(stateChanged(int)), parent, SIGNAL(antialiasingChange(int)));
+ connect(curveOpacityLevel, SIGNAL(valueChanged(int)), parent, SIGNAL(curveOpacityChange(int)));
+ connect(curveSmoothingLevel, SIGNAL(valueChanged(int)), parent, SIGNAL(curveSmoothingChange(int)));
+ connect(highResBox, SIGNAL(stateChanged(int)), parent, SIGNAL(highResPositionChange(int)));
+
+ /*lay->addWidget(fontSizeLabel);
+ lay->addWidget(fontSize);
+ lay->addWidget(frameSizeLabel);
+ lay->addWidget(frameSize);
+ lay->addWidget(lengthSizeLabel);
+ lay->addWidget(lengthSize);*/
+ setLayout(lay);
+}
+
+
+TimelinePage::TimelinePage(QWidget *parent) : QWidget(parent) {
+ QSettings settings("Pencil","Pencil");
+ QVBoxLayout *generalLay = new QVBoxLayout();
+ QGridLayout *onionLay = new QGridLayout();
+
+ QGroupBox* timeLineBox = new QGroupBox(tr("Time Line"));
+ QGroupBox* onionSkinBox = new QGroupBox(tr("Onion Skin"));
+
+ // General timeline buttons
+
+ QCheckBox *drawLabel = new QCheckBox(tr("Draw timeline labels"));
+ QLabel *fontSizeLabel = new QLabel(tr("Labels font size"));
+ QSpinBox *fontSize = new QSpinBox();
+ QLabel *frameSizeLabel = new QLabel(tr("Frame size in Pixels"));
+ QSpinBox *frameSize = new QSpinBox(this);
+ QLabel *lengthSizeLabel = new QLabel(tr("Timeline size in Frames"));
+ QLineEdit *lengthSize = new QLineEdit(this);
+ lengthSize->setInputMask("9999");
+
+ QCheckBox *scrubBox = new QCheckBox(tr("Short scrub"));
+ scrubBox->setChecked(false); // default
+ if (settings.value("shortScrub").toBool()) scrubBox->setChecked(true);
+
+ fontSize->setMinimum(4);
+ fontSize->setMaximum(20);
+ frameSize->setMinimum(4);
+ frameSize->setMaximum(20);
+
+ fontSize->setFixedWidth(50);
+ frameSize->setFixedWidth(50);
+ lengthSize->setFixedWidth(50);
+
+ if (settings.value("drawLabel")=="false") drawLabel->setChecked(false);
+ else drawLabel->setChecked(true);
+ fontSize->setValue(settings.value("labelFontSize").toInt());
+ frameSize->setValue(settings.value("frameSize").toInt());
+ if (settings.value("labelFontSize").toInt()==0) fontSize->setValue(12);
+ if (settings.value("frameSize").toInt()==0) frameSize->setValue(6);
+ lengthSize->setText(settings.value("length").toString());
+ if (settings.value("length").toInt()==0) lengthSize->setText("240");
+
+ connect(fontSize, SIGNAL(valueChanged(int)), parent, SIGNAL(fontSizeChange(int)));
+ connect(frameSize, SIGNAL(valueChanged(int)), parent, SIGNAL(frameSizeChange(int)));
+ connect(lengthSize, SIGNAL(textChanged(QString)), parent, SIGNAL(lengthSizeChange(QString)));
+ connect(drawLabel, SIGNAL(stateChanged(int)), parent, SIGNAL(labelChange(int)));
+ connect(scrubBox, SIGNAL(stateChanged(int)), parent, SIGNAL(scrubChange(int)));
+
+ //lay->addWidget(drawLabel);
+ //lay->addWidget(fontSizeLabel);
+ //lay->addWidget(fontSize);
+ generalLay->addWidget(frameSizeLabel);
+ generalLay->addWidget(frameSize);
+ generalLay->addWidget(lengthSizeLabel);
+ generalLay->addWidget(lengthSize);
+ generalLay->addWidget(scrubBox);
+ timeLineBox->setLayout(generalLay);
+
+ // Onion skin buttons
+
+ QLabel *onionOpacityLabel = new QLabel(tr("Opacity"));
+ QLabel *onionFrameLabel = new QLabel(tr("Straight ahead"));
+ QLabel *onionInbetweenLabel = new QLabel(tr("Inbetween"));
+ QLabel *onionCurrentFrameLabel = new QLabel(tr("*current frame*"));
+
+ QSlider *onionOpacity = new QSlider(Qt::Horizontal);
+ onionOpacity->setToolTip(tr("Opacity of onion skin frames"));
+ QSpinBox *onionFrameNumber = new QSpinBox();
+ onionFrameNumber->setToolTip(tr("Number of frames to show in straight ahead mode"));
+ QCheckBox *previousprevious = new QCheckBox();
+ previousprevious->setToolTip(tr("Frame before previous"));
+ QCheckBox *previous = new QCheckBox();
+ previous->setToolTip(tr("Previous frame"));
+ QCheckBox *next = new QCheckBox();
+ next->setToolTip(tr("Next frame"));
+ QCheckBox *nextnext = new QCheckBox();
+ nextnext->setToolTip(tr("Frame after next"));
+
+ onionOpacity->setMinimum(0);
+ onionOpacity->setMaximum(100);
+ onionOpacity->setSliderPosition(30);
+ onionFrameNumber->setMinimum(1);
+ onionFrameNumber->setMaximum(20);
+ previousprevious->setChecked(false);
+ previous->setChecked(true);
+ next->setChecked(true);
+ nextnext->setChecked(false);
+
+ connect(onionOpacity, SIGNAL(valueChanged(int)), parent, SIGNAL(onionOpacityChange(int)));
+ connect(onionFrameNumber, SIGNAL(valueChanged(int)), parent, SIGNAL(onionStraightAheadChange(int)));
+ connect(previousprevious, SIGNAL(stateChanged(int)), parent, SIGNAL(onionPreviousPreviousChange(int)));
+ connect(previous, SIGNAL(stateChanged(int)), parent, SIGNAL(onionPreviousChange(int)));
+ connect(next, SIGNAL(stateChanged(int)), parent, SIGNAL(onionNextChange(int)));
+ connect(nextnext, SIGNAL(stateChanged(int)), parent, SIGNAL(onionNextNextChange(int)));
+
+ QGroupBox *onionInbetweenBox = new QGroupBox();
+ QGridLayout *onionInbetweenBoxLayout = new QGridLayout();
+ onionInbetweenBox->setLayout(onionInbetweenBoxLayout);
+ onionInbetweenBoxLayout->addWidget(previousprevious, 0, 0);
+ onionInbetweenBoxLayout->addWidget(previous, 0, 1);
+ onionInbetweenBoxLayout->addWidget(onionCurrentFrameLabel, 0, 2);
+ onionInbetweenBoxLayout->addWidget(next, 0, 3);
+ onionInbetweenBoxLayout->addWidget(nextnext, 0, 4);
+
+ onionSkinBox->setLayout(onionLay);
+ onionLay->addWidget(onionOpacityLabel, 0, 0);
+ onionLay->addWidget(onionOpacity, 0, 1);
+ onionLay->addWidget(onionFrameLabel, 1, 0);
+ onionLay->addWidget(onionInbetweenLabel, 1, 1);
+ onionLay->addWidget(onionFrameNumber, 2, 0);
+ onionLay->addWidget(onionInbetweenBox, 2, 1);
+
+ // Generic timeline settings
+
+ QVBoxLayout *fullLay = new QVBoxLayout();
+ fullLay->addWidget(timeLineBox);
+ fullLay->addWidget(onionSkinBox);
+ fullLay->addStretch(1);
+ setLayout(fullLay);
+}
+
+FilesPage::FilesPage(QWidget *parent) : QWidget(parent) {
+ QSettings settings("Pencil","Pencil");
+
+ QVBoxLayout *lay = new QVBoxLayout();
+
+ QGroupBox* autosaveBox = new QGroupBox(tr("Autosave documents"));
+ QCheckBox *autosaveCheckBox = new QCheckBox(tr("Enable autosave"));
+ QLabel *autosaveNumberLabel = new QLabel(tr("Number of modifications before autosaving:"));
+ QSpinBox *autosaveNumberBox = new QSpinBox();
+
+ autosaveNumberBox->setMinimum(5);
+ autosaveNumberBox->setMaximum(200);
+ autosaveNumberBox->setFixedWidth(50);
+
+ autosaveCheckBox->setChecked(false);
+ if (settings.value("autosave")=="true") autosaveCheckBox->setChecked(true);
+
+ autosaveNumberBox->setValue(settings.value("autosaveNumber").toInt());
+ if (settings.value("autosaveNumber").toInt()==0) autosaveNumberBox->setValue(20);
+
+ connect(autosaveNumberBox, SIGNAL(valueChanged(int)), parent, SIGNAL(autosaveNumberChange(int)));
+ connect(autosaveCheckBox, SIGNAL(stateChanged(int)), parent, SIGNAL(autosaveChange(int)));
+
+ lay->addWidget(autosaveCheckBox);
+ lay->addWidget(autosaveNumberLabel);
+ lay->addWidget(autosaveNumberBox);
+ autosaveBox->setLayout(lay);
+
+ QVBoxLayout *lay2 = new QVBoxLayout();
+ lay2->addWidget(autosaveBox);
+ lay2->addStretch(1);
+ setLayout(lay2);
+}
+
+
diff -rupN pencil_backup/src/interface/preferences.h pencil_dev/src/interface/preferences.h
--- pencil_backup/src/interface/preferences.h 2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/preferences.h 2009-10-01 19:41:14.000000000 -0500
@@ -39,6 +39,13 @@ class Preferences : public QDialog {
void shadowsChange(int);
void toolCursorsChange(int);
void styleChange(int);
+
+ void onionOpacityChange(int);
+ void onionStraightAheadChange(int);
+ void onionPreviousPreviousChange(int);
+ void onionPreviousChange(int);
+ void onionNextChange(int);
+ void onionNextNextChange(int);
void autosaveChange(int);
void autosaveNumberChange(int);
@@ -85,4 +92,4 @@ class FilesPage : public QWidget
public:
FilesPage(QWidget *parent = 0);
-};
\ No newline at end of file
+};
diff -rupN pencil_backup/src/interface/preferences.h~ pencil_dev/src/interface/preferences.h~
--- pencil_backup/src/interface/preferences.h~ 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/preferences.h~ 2009-10-01 18:24:29.000000000 -0500
@@ -0,0 +1,95 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+*/
+#include <QtGui>
+
+class QListWidget;
+class QListWidgetItem;
+class QStackedWidget;
+
+class Preferences : public QDialog {
+ Q_OBJECT
+
+ public:
+ Preferences();
+
+ public slots:
+ void changePage(QListWidgetItem *current, QListWidgetItem *previous);
+
+ signals:
+ void windowOpacityChange(int);
+ void curveOpacityChange(int);
+ void curveSmoothingChange(int);
+ void highResPositionChange(int);
+ void antialiasingChange(int);
+ void gradientsChange(int);
+ void backgroundChange(int);
+ void shadowsChange(int);
+ void toolCursorsChange(int);
+ void styleChange(int);
+/*
+ void onionOpacityChange(int);
+ void onionStraightAheadChange(int);
+ void onionPreviousPreviousChange(int);
+ void onionPreviousChange(int);
+ void onionNextChange(int);
+ void onionNextNextChange(int);
+*/
+ void autosaveChange(int);
+ void autosaveNumberChange(int);
+
+ void lengthSizeChange(QString);
+ void fontSizeChange(int);
+ void frameSizeChange(int);
+ void labelChange(int);
+ void scrubChange(int);
+
+ private:
+ void createIcons();
+
+ QListWidget *contentsWidget;
+ QStackedWidget *pagesWidget;
+ };
+
+
+class GeneralPage : public QWidget
+{
+ Q_OBJECT
+
+ public:
+ GeneralPage(QWidget *parent = 0);
+
+};
+
+
+
+class TimelinePage : public QWidget
+{
+ Q_OBJECT
+
+ public:
+ TimelinePage(QWidget *parent = 0);
+
+};
+
+
+class FilesPage : public QWidget
+{
+ Q_OBJECT
+
+ public:
+ FilesPage(QWidget *parent = 0);
+
+};
diff -rupN pencil_backup/src/interface/scribblearea.cpp pencil_dev/src/interface/scribblearea.cpp
--- pencil_backup/src/interface/scribblearea.cpp 2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/scribblearea.cpp 2009-10-03 09:10:22.000000000 -0500
@@ -15,6 +15,7 @@ GNU General Public License for more deta
*/
#include <QtGui>
#include <math.h>
+#include <stdio.h>
#include "scribblearea.h"
#include "beziercurve.h"
#include "editor.h"
@@ -134,8 +135,15 @@ ScribbleArea::ScribbleArea(QWidget *pare
makeInvisible = false;
somethingSelected = false;
setCursor(Qt::CrossCursor);
- onionPrev = true;
- onionNext = false;
+ onion = false;
+ onionOpacity = 0.2;
+ onionStraightAheadFrames = 5;
+ onionStraightAhead = true;
+ onionInbetween = false;
+ onionPreviousPrevious = false;
+ onionPrevious = true;
+ onionNext = true;
+ onionNextNext = false;
showThinLines = false;
showAllLayers = 1;
myView = QMatrix(); // identity matrix
@@ -510,9 +518,11 @@ void ScribbleArea::keyPressEvent( QKeyEv
switch (event->key()) {
case Qt::Key_Right:
if(somethingSelected) { myTempTransformedSelection.translate(1,0); myTransformedSelection = myTempTransformedSelection; calculateSelectionTransformation(); update(); } else { editor->scrubForward(); event->ignore(); }
+ printf("Key right clicked \n");
break;
case Qt::Key_Left:
if(somethingSelected) { myTempTransformedSelection.translate(-1,0); myTransformedSelection = myTempTransformedSelection; calculateSelectionTransformation(); update(); } else { editor->scrubBackward(); event->ignore(); }
+ printf("Key left clicked \n");
break;
case Qt::Key_Up:
if(somethingSelected) { myTempTransformedSelection.translate(0,-1); myTransformedSelection = myTempTransformedSelection; calculateSelectionTransformation(); update(); } else { editor->previousLayer(); event->ignore(); }
@@ -549,6 +559,33 @@ void ScribbleArea::keyPressEvent( QKeyEv
gradients = 2;
updateAllVectorLayersAtCurrentFrame();
break;
+ case Qt::Key_A:
+ flipPrevious();
+ break;
+ case Qt::Key_D:
+ flipNext();
+ break;
+ case Qt::Key_W:
+ editor->addKey();
+ break;
+ case Qt::Key_S:
+ editor->removeKey();
+ break;
+ case Qt::Key_Q:
+ editor->scrubBackward();
+ break;
+ case Qt::Key_E:
+ editor->scrubForward();
+ break;
+ case Qt::Key_Z:
+ onionShortCut();
+ break;
+ case Qt::Key_X:
+ straightAheadShortCut();
+ break;
+ case Qt::Key_C:
+ inbetweenShortCut();
+ break;
default:
event->ignore();
//QWidget::keyPressEvent(e);
@@ -1210,6 +1247,8 @@ void ScribbleArea::paintBitmapBuffer() {
case PENCIL:
if(pencil.preserveAlpha) cm = QPainter::CompositionMode_SourceAtop;
break;
+ default:
+ break;
}
targetImage->paste(bufferImg, cm);
}
@@ -1464,6 +1503,8 @@ void ScribbleArea::updateCanvas(int fram
//painter.drawLine( QPoint(mySize.width()/3, 0), QPoint(mySize.width()/3, mySize.height()) );
//painter.drawLine( QPoint(mySize.width()*2/3, 0), QPoint(mySize.width()*2/3, mySize.height()) );
}
+
+ int tempFrame = frame;
Object* object = editor->object;
qreal opacity;
@@ -1480,14 +1521,48 @@ void ScribbleArea::updateCanvas(int fram
if(bitmapImage != NULL) {
painter.setWorldMatrixEnabled(true);
- // previous frame (onion skin)
- BitmapImage* previousImage = layerBitmap->getLastBitmapImageAtFrame(frame, -1);
- if(previousImage != NULL && onionPrev) { painter.setOpacity(opacity*0.5); previousImage->paintImage(painter); }
+ // straight ahead (onion skin)
+ BitmapImage* straightAheadImage = layerBitmap->getLastBitmapImageAtFrame(frame, 0);
+ tempFrame = frame;
+ if(onionStraightAhead && onion) {
+ for(int frames = 1; frames < onionStraightAheadFrames; frames++) {
+ tempFrame = editor->getPrevKey(tempFrame);
+ straightAheadImage = layerBitmap->getLastBitmapImageAtFrame(tempFrame, 0);
+ if(tempFrame == layerBitmap->getMaxFrame()) {
+ frames = onionStraightAheadFrames;
+ straightAheadImage = NULL;
+ }
+ if(straightAheadImage != NULL) {
+ painter.setOpacity(opacity*onionOpacity);
+ straightAheadImage->paintImage(painter);
+ }
+ }
+ }
+
//painter.drawImage(previousImage->topLeft(), *(previousImage->image) );
- // next frame (onion skin)
- BitmapImage* nextImage = layerBitmap->getLastBitmapImageAtFrame(frame, 1);
- if(nextImage != NULL && onionNext) { painter.setOpacity(opacity*0.5); nextImage->paintImage(painter); }
+ // inbetween frame (onion skin)
+ BitmapImage* inbetweenImage = layerBitmap->getLastBitmapImageAtFrame(frame, 0);
+
+ if(onionInbetween && onion) {
+ painter.setOpacity(opacity*onionOpacity);
+ if(onionPreviousPrevious) {
+ inbetweenImage = layerBitmap->getLastBitmapImageAtFrame(editor->getPrevKey(editor->getPrevKey(frame)), 0);
+ inbetweenImage->paintImage(painter);
+ }
+ if(onionPrevious) {
+ inbetweenImage = layerBitmap->getLastBitmapImageAtFrame(editor->getPrevKey(frame), 0);
+ inbetweenImage->paintImage(painter);
+ }
+ if(onionNext) {
+ inbetweenImage = layerBitmap->getLastBitmapImageAtFrame(editor->getNextKey(frame), 0);
+ inbetweenImage->paintImage(painter);
+ }
+ if(onionNextNext) {
+ inbetweenImage = layerBitmap->getLastBitmapImageAtFrame(editor->getNextKey(editor->getNextKey(frame)), 0);
+ inbetweenImage->paintImage(painter);
+ }
+ }
// current frame
painter.setOpacity(opacity);
@@ -1531,13 +1606,45 @@ void ScribbleArea::updateCanvas(int fram
if(image != NULL) {
painter.setWorldMatrixEnabled(false);
- // previous frame (onion skin)
- QImage* previousImage = layerVector->getLastImageAtFrame(frame, -1, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
- if(previousImage != NULL && onionPrev) { painter.setOpacity(opacity*0.5); painter.drawImage(QPoint(0, 0), *previousImage ); }
+ // straight ahead (onion skin)
+ QImage* straightAheadImage = layerVector->getLastImageAtFrame(frame, 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+ tempFrame = frame;
+ if(onionStraightAhead && onion) {
+ for(int frames = 1; frames < onionStraightAheadFrames; frames++) {
+ tempFrame = editor->getPrevKey(tempFrame);
+ straightAheadImage = layerVector->getLastImageAtFrame(tempFrame, 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+ if(tempFrame == layerVector->getMaxFrame()) {
+ frames = onionStraightAheadFrames;
+ straightAheadImage = NULL;
+ }
+ if(straightAheadImage != NULL) {
+ painter.setOpacity(onionOpacity*opacity);
+ painter.drawImage(QPoint(0, 0), *straightAheadImage);
+ }
+ }
+ }
- // next frame (onion skin)
- QImage* nextImage = layerVector->getLastImageAtFrame(frame, 1, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
- if(nextImage != NULL && onionNext) { painter.setOpacity(opacity*0.5); painter.drawImage(QPoint(0, 0), *nextImage ); }
+ // inbetween (onion skin)
+ QImage* inbetweenImage = layerVector->getLastImageAtFrame(frame, 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+ if(onionInbetween && onion) {
+ painter.setOpacity(onionOpacity*opacity);
+ if(onionPreviousPrevious) {
+ inbetweenImage = layerVector->getLastImageAtFrame(editor->getPrevKey(editor->getPrevKey(frame)), 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+ painter.drawImage(QPoint(0, 0), *inbetweenImage);
+ }
+ if(onionPrevious) {
+ inbetweenImage = layerVector->getLastImageAtFrame(editor->getPrevKey(frame), 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+ painter.drawImage(QPoint(0, 0), *inbetweenImage);
+ }
+ if(onionNext) {
+ inbetweenImage = layerVector->getLastImageAtFrame(editor->getNextKey(frame), 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+ painter.drawImage(QPoint(0, 0), *inbetweenImage);
+ }
+ if(onionNextNext) {
+ inbetweenImage = layerVector->getLastImageAtFrame(editor->getNextKey(editor->getNextKey(frame)), 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+ painter.drawImage(QPoint(0, 0), *inbetweenImage);
+ }
+ }
// current frame
painter.setOpacity(opacity);
@@ -1936,18 +2043,69 @@ void ScribbleArea::deselectAll() {
updateFrame();
}
-void ScribbleArea::onionNextSlot() {
- onionNext = !onionNext;
+void ScribbleArea::onionChangeSlot1() {
+ onionChangeSlot(1);
+}
+
+void ScribbleArea::onionChangeSlot2() {
+ onionChangeSlot(2);
+}
+
+void ScribbleArea::onionIsOn() {
+ onion = !onion;
+ updateAllFrames();
+ ScribbleArea::setFocus();
+}
+
+void ScribbleArea::onionChangeSlot(int onionIndex) {
+ switch(onionIndex){
+ case 1 :{
+ ScribbleArea::onionStraightAhead = true;
+ ScribbleArea::onionInbetween = false;
+ break;
+ }
+ case 2 :{
+ ScribbleArea::onionStraightAhead = false;
+ ScribbleArea::onionInbetween = true;
+ break;
+ }
+ }
+ updateAllFrames();
+}
+
+void ScribbleArea::onionOpacityLevel(int opacityInteger) {
+ onionOpacity = (opacityInteger/100);
+ updateAllFrames();
+}
+
+void ScribbleArea::onionStraightAheadLevel(int numberOfFrames) {
+ onionStraightAheadFrames = numberOfFrames;
updateAllFrames();
}
-void ScribbleArea::onionPrevSlot() {
- onionPrev = !onionPrev;
+void ScribbleArea::onionPreviousPreviousLevel(int boolean) {
+ if(boolean) onionPreviousPrevious = true;
+ else onionPreviousPrevious = false;
updateAllFrames();
}
+void ScribbleArea::onionPreviousLevel(int boolean) {
+ if(boolean) onionPrevious = true;
+ else onionPrevious = false;
+ updateAllFrames();
+}
+void ScribbleArea::onionNextLevel(int boolean) {
+ if(boolean) onionNext = true;
+ else onionNext = false;
+ updateAllFrames();
+}
+void ScribbleArea::onionNextNextLevel(int boolean) {
+ if(boolean) onionNextNext = true;
+ else onionNextNext = false;
+ updateAllFrames();
+}
void ScribbleArea::floodFill(VectorImage* vectorImage, QPoint point, QRgb targetColour, QRgb replacementColour, int tolerance) {
bool invertible;
diff -rupN pencil_backup/src/interface/scribblearea.cpp~ pencil_dev/src/interface/scribblearea.cpp~
--- pencil_backup/src/interface/scribblearea.cpp~ 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/scribblearea.cpp~ 2009-10-03 09:08:34.000000000 -0500
@@ -0,0 +1,2756 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+*/
+#include <QtGui>
+#include <math.h>
+#include <stdio.h>
+#include "scribblearea.h"
+#include "beziercurve.h"
+#include "editor.h"
+#include "layerbitmap.h"
+#include "layervector.h"
+#include "layercamera.h"
+
+#include "bitmapimage.h"
+
+void VectorSelection::clear() {
+ vertex.clear();
+ curve.clear();
+}
+
+void VectorSelection::add(int curveNumber) {
+ curve << curveNumber;
+}
+
+void VectorSelection::add(QList<int> list) {
+ if(list.size() > 0) add(list[0]);
+ /*for(int i=0; i<list.size(); i++) {
+ add(list[i]);
+ }*/
+}
+
+void VectorSelection::add(VertexRef point) {
+ vertex << point;
+ add(point.curveNumber);
+}
+
+void VectorSelection::add(QList<VertexRef> list) {
+ if(list.size() > 0) add(list[0]);
+ /*for(int i=0; i<list.size(); i++) {
+ add(list[i]);
+ }*/
+}
+
+ScribbleArea::ScribbleArea(QWidget *parent, Editor* editor)
+ : QWidget(parent)
+//ScribbleArea::ScribbleArea(QWidget *parent, Editor* editor)
+// : QGLWidget(QGLFormat(QGL::SampleBuffers), parent)
+{
+ this->editor = editor;
+ QSettings settings("Pencil","Pencil");
+
+ pencil.width = settings.value("pencilWidth").toDouble();
+ if (pencil.width == 0) { pencil.width = 1; settings.setValue("pencilWidth", pencil.width); }
+ pen.width = settings.value("penWidth").toDouble();
+ if (pen.width == 0) { pen.width = 2; settings.setValue("penWidth", pen.width); }
+ brush.width = settings.value("brushWidth").toDouble();
+ if (brush.width == 0) { brush.width = 48; settings.setValue("brushWidth", brush.width); }
+ eraser.width = settings.value("eraserWidth").toDouble();
+ if (eraser.width == 0) { eraser.width = 24; settings.setValue("eraserWidth", brush.width); }
+ currentWidth = pencil.width;
+
+ pencil.colour = Qt::black;
+ pen.colour = Qt::black;
+ brush.colour = Qt::blue;
+ currentColour = pencil.colour;
+
+ pencil.colourNumber = 0;
+ pen.colourNumber = 0;
+ brush.colourNumber = 1;
+
+ pencil.feather = 0;
+ pen.feather = 0;
+ brush.feather = settings.value("brushFeather").toDouble();
+ if (brush.feather == 0) { brush.feather = 70; settings.setValue("brushFeather", brush.feather); }
+ eraser.feather = 0;
+
+ pencil.opacity = 0.8;
+ pen.opacity = 1;
+ brush.opacity = 0.5;
+ eraser.opacity = 0.5;
+
+ pencil.pressure = 1;
+ pen.pressure = 1;
+ brush.pressure = 1;
+ eraser.pressure = 1;
+
+ pencil.invisibility = 1;
+ pen.invisibility = 0;
+ brush.invisibility = -1;
+ eraser.invisibility = -1;
+
+ pencil.preserveAlpha = 0;
+ pen.preserveAlpha = 0;
+ brush.preserveAlpha = 0;
+ eraser.preserveAlpha = 0;
+
+ followContour = 0;
+
+ curveOpacity = (100-settings.value("curveOpacity").toInt())/100.0; // default value is 1.0
+ int curveSmoothingLevel = settings.value("curveSmoothing").toInt();
+ if(curveSmoothingLevel == 0) { curveSmoothingLevel = 20; settings.setValue("curveSmoothing", curveSmoothingLevel); } // default
+ curveSmoothing = curveSmoothingLevel/20.0; // default value is 1.0
+
+ highResPosition = false; // default is false (because it does not work on Windows)
+ if( settings.value("highResPosition").toString() == "true") highResPosition = true;
+ antialiasing = true; // default value is true (because it's prettier)
+ if( settings.value("antialiasing").toString() == "false") antialiasing = false;
+ shadows = false; // default value is false
+ if( settings.value("shadows").toString() == "true") shadows = true;
+ toolCursors = true; // default value is true
+ if( settings.value("toolCursors").toString() == "false") toolCursors = false;
+ gradients = 2;
+ if( settings.value("gradients").toString() != "") gradients = settings.value("gradients").toInt();;
+
+ toolMode = PENCIL;
+ tabletEraserBackupToolMode=-1;
+ tabletInUse=false;
+ tabletPressure=1.0;
+ setAttribute(Qt::WA_StaticContents); // ?
+ modified = false;
+ simplified = false;
+ usePressure = true;
+ makeInvisible = false;
+ somethingSelected = false;
+ setCursor(Qt::CrossCursor);
+ onion = false;
+ onionOpacity = 0.2;
+ onionStraightAheadFrames = 5;
+ onionStraightAhead = true;
+ onionInbetween = false;
+ onionPreviousPrevious = false;
+ onionPrevious = true;
+ onionNext = true;
+ onionNextNext = false;
+ showThinLines = false;
+ showAllLayers = 1;
+ myView = QMatrix(); // identity matrix
+ myTempView = QMatrix();
+ transMatrix = QMatrix();
+ centralView = QMatrix();
+
+ QString background = settings.value("background").toString();
+ if(background == "") background = "white";
+ setBackgroundBrush(background);
+ bufferImg = new BitmapImage(NULL);
+ eyedropperCursor = NULL;
+
+ QRect newSelection(QPoint(0,0), QSize(0,0));
+ mySelection = newSelection;
+ myTransformedSelection = newSelection;
+ myTempTransformedSelection = newSelection;
+ offset.setX(0);
+ offset.setY(0);
+ selectionTransformation.reset();
+
+ tol = 7.0;
+
+ readCanvasFromCache = true;
+ mouseInUse = false;
+ setMouseTracking(true); // reacts to mouse move events, even if the button is not pressed
+
+ debugRect = QRectF(0,0,0,0);
+
+ setSizePolicy( QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding) );
+ QPixmapCache::setCacheLimit(30*2*1024);
+ //setAutoFillBackground (false);
+ //setAttribute(Qt::WA_OpaquePaintEvent, false);
+ //setAttribute(Qt::WA_NoSystemBackground, true);
+}
+
+void ScribbleArea::setColour(const int i)
+{
+ if(toolMode == PENCIL) {
+ pencil.colourNumber = i;
+ pencil.colour = editor->object->getColour(i).colour;
+ }
+ if(toolMode == PEN || toolMode == POLYLINE) {
+ pen.colourNumber = i;
+ pen.colour = editor->object->getColour(i).colour;
+ }
+ if(toolMode == BUCKET || toolMode == COLOURING || toolMode == EYEDROPPER) {
+ brush.colourNumber = i;
+ brush.colour = editor->object->getColour(i).colour;
+ }
+ updateCursor();
+ updateFrame();
+}
+
+void ScribbleArea::setColour(const QColor colour)
+{
+ if(toolMode == PENCIL || toolMode == EYEDROPPER) {
+ pencil.colour = colour;
+ }
+ if(toolMode == PEN || toolMode == EYEDROPPER) {
+ pen.colour = colour;
+ }
+ if(toolMode == COLOURING || toolMode == BUCKET || toolMode == EYEDROPPER) {
+ brush.colour = colour;
+ }
+ currentColour = colour;
+ updateCursor();
+}
+
+void ScribbleArea::resetColours()
+{
+ pen.colourNumber = 0;
+ pencil.colourNumber = 0;
+ brush.colourNumber = 1;
+}
+
+void ScribbleArea::setWidth(const qreal newWidth)
+{
+ QSettings settings("Pencil","Pencil");
+ if(toolMode == PENCIL) {
+ pencil.width = newWidth;
+ settings.setValue("pencilWidth", newWidth);
+ }
+ if(toolMode == ERASER) {
+ eraser.width = newWidth;
+ settings.setValue("eraserWidth", newWidth);
+ }
+ if(toolMode == PEN || toolMode == POLYLINE) {
+ pen.width = newWidth;
+ settings.setValue("penWidth", newWidth);
+ }
+ if(toolMode == COLOURING) {
+ brush.width = newWidth;
+ settings.setValue("brushWidth", newWidth);
+ }
+ currentWidth = newWidth;
+ updateAllFrames();
+ updateCursor();
+}
+
+void ScribbleArea::setFeather(const qreal newFeather)
+{
+ QSettings settings("Pencil","Pencil");
+ if(toolMode == PENCIL) {
+ pencil.feather = newFeather;
+ settings.setValue("pencilOpacity", newFeather);
+ }
+ if(toolMode == PEN || toolMode == POLYLINE) {
+ pen.feather = newFeather;
+ settings.setValue("penOpacity", newFeather);
+ }
+ if(toolMode == COLOURING) {
+ brush.feather = newFeather;
+ settings.setValue("brushOpacity", newFeather);
+ }
+ //currentWidth = newWidth;
+ updateAllFrames();
+ updateCursor();
+}
+
+void ScribbleArea::setOpacity(const qreal newOpacity)
+{
+ QSettings settings("Pencil","Pencil");
+ if(toolMode == PENCIL) {
+ pencil.opacity = newOpacity;
+ settings.setValue("pencilOpacity", newOpacity);
+ }
+ if(toolMode == PEN || toolMode == POLYLINE) {
+ pen.opacity = newOpacity;
+ settings.setValue("penOpacity", newOpacity);
+ }
+ if(toolMode == COLOURING) {
+ brush.opacity = newOpacity;
+ settings.setValue("brushOpacity", newOpacity);
+ }
+ //currentWidth = newWidth;
+ updateAllFrames();
+}
+
+void ScribbleArea::setInvisibility(const bool invisibility)
+{
+ QSettings settings("Pencil","Pencil");
+ if(toolMode == PENCIL) {
+ pencil.invisibility = invisibility;
+ settings.setValue("pencilOpacity", invisibility);
+ }
+ if(toolMode == PEN || toolMode == POLYLINE) {
+ pen.invisibility = invisibility;
+ settings.setValue("penOpacity", invisibility);
+ }
+ makeInvisible = invisibility;
+ updateAllFrames();
+}
+
+void ScribbleArea::setPressure(const bool pressure)
+{
+ QSettings settings("Pencil","Pencil");
+ if(toolMode == PENCIL) {
+ pencil.pressure = pressure;
+ settings.setValue("pencilOpacity", pressure);
+ }
+ if(toolMode == PEN || toolMode == POLYLINE) {
+ pen.pressure = pressure;
+ settings.setValue("penOpacity", pressure);
+ }
+ if(toolMode == COLOURING) {
+ brush.pressure = pressure;
+ settings.setValue("brushOpacity", pressure);
+ }
+ usePressure = pressure;
+ updateAllFrames();
+}
+
+void ScribbleArea::setPreserveAlpha(const bool preserveAlpha)
+{
+ QSettings settings("Pencil","Pencil");
+ if(toolMode == PENCIL) {
+ pencil.preserveAlpha = preserveAlpha;
+ //settings.setValue("pencilCompositionMode", preserveAlpha);
+ }
+ if(toolMode == PEN || toolMode == POLYLINE) {
+ pen.preserveAlpha = preserveAlpha;
+ //settings.setValue("penCompositionMode", preserveAlpha);
+ }
+ if(toolMode == COLOURING) {
+ brush.preserveAlpha = preserveAlpha;
+ //settings.setValue("brushCompositionMode", preserveAlpha);
+ }
+ //this->preserveAlpha = preserveAlpha;
+ //updateAllFrames();
+}
+
+void ScribbleArea::setFollowContour(const bool followContour)
+{
+ this->followContour = followContour;
+}
+
+void ScribbleArea::setCurveOpacity(int newOpacity)
+{
+ curveOpacity = newOpacity/100.0;
+ QSettings settings("Pencil","Pencil");
+ settings.setValue("curveOpacity", 100-newOpacity);
+ updateAllVectorLayers();
+}
+
+void ScribbleArea::setCurveSmoothing(int newSmoothingLevel)
+{
+ curveSmoothing = newSmoothingLevel/20.0;
+ QSettings settings("Pencil","Pencil");
+ settings.setValue("curveSmoothing", newSmoothingLevel);
+}
+
+void ScribbleArea::setHighResPosition(int x)
+{
+ QSettings settings("Pencil","Pencil");
+ if (x==0) { highResPosition=false; settings.setValue("highResPosition","false"); }
+ else { highResPosition=true; settings.setValue("highResPosition","true"); }
+}
+
+void ScribbleArea::setAntialiasing(int x)
+{
+ QSettings settings("Pencil","Pencil");
+ if (x==0) { antialiasing=false; settings.setValue("antialiasing","false"); }
+ else { antialiasing=true; settings.setValue("antialiasing","true"); }
+ updateAllVectorLayers();
+}
+
+void ScribbleArea::setGradients(int x)
+{
+ //if(x==0) { gradients = x; } else { gradients = x; }
+ QSettings settings("Pencil","Pencil");
+ if(x > 0) {
+ gradients = x;
+ settings.setValue("gradients", gradients);
+ } else {
+ gradients = 2;
+ gradients = settings.value("gradients").toInt();
+ }
+ //if (x==0) { antialiasing=false; settings.setValue("antialiasing","false"); }
+ //else { antialiasing=true; settings.setValue("antialiasing","true"); }
+ updateAllVectorLayers();
+}
+
+void ScribbleArea::setShadows(int x)
+{
+ QSettings settings("Pencil","Pencil");
+ if (x==0) { shadows=false; settings.setValue("shadows","false"); }
+ else { shadows=true; settings.setValue("shadows","true"); }
+ update();
+}
+
+void ScribbleArea::setToolCursors(int x)
+{
+ QSettings settings("Pencil","Pencil");
+ if (x==0) { toolCursors=false; settings.setValue("toolCursors","false"); }
+ else { toolCursors=true; settings.setValue("toolCursors","true"); }
+}
+
+void ScribbleArea::setStyle(int x)
+{
+ QSettings settings("Pencil","Pencil");
+ if (x==0) { settings.setValue("style","default"); }
+ else { settings.setValue("style","aqua"); }
+ update();
+}
+
+void ScribbleArea::setBackground(int number)
+{
+ if(number == 1) setBackgroundBrush("checkerboard");
+ if(number == 2) setBackgroundBrush("white");
+ if(number == 3) setBackgroundBrush("grey");
+ if(number == 4) setBackgroundBrush("dots");
+ if(number == 5) setBackgroundBrush("weave");
+ updateAllFrames();
+}
+
+void ScribbleArea::setBackgroundBrush(QString brushName)
+{
+ QSettings settings("Pencil","Pencil");
+ settings.setValue("background", brushName);
+ backgroundBrush = getBackgroundBrush(brushName);
+}
+
+QBrush ScribbleArea::getBackgroundBrush(QString brushName)
+{
+ QBrush brush = QBrush(Qt::white);
+ if(brushName == "white") {
+ brush = QBrush(Qt::white);
+ }
+ if(brushName == "grey") {
+ brush = QBrush(Qt::lightGray);
+ }
+ if(brushName == "checkerboard") {
+ QPixmap pattern(16,16);
+ pattern.fill( QColor(255,255,255) );
+ QPainter painter(&pattern);
+ painter.fillRect( QRect(0,0,8,8), QColor(220,220,220) );
+ painter.fillRect( QRect(8,8,8,8), QColor(220,220,220) );
+ painter.end();
+ brush.setTexture(pattern);
+ }
+ if(brushName == "dots") {
+ QPixmap pattern(":background/dots.png");
+ brush.setTexture(pattern);
+ }
+ if(brushName == "weave") {
+ QPixmap pattern(":background/weave.jpg");
+ brush.setTexture(pattern);
+ }
+ return brush;
+}
+
+void ScribbleArea::updateFrame() {
+ updateFrame(editor->currentFrame);
+}
+
+void ScribbleArea::updateFrame(int frame) {
+ //qDebug() << "updateFrame";
+ //paintCanvas(frame);
+ setView();
+ int frameNumber = editor->getLastFrameAtFrame( frame );
+ QPixmapCache::remove("frame"+QString::number(frameNumber));
+ readCanvasFromCache = true;
+ update();
+}
+
+void ScribbleArea::updateAllFrames() {
+ //qDebug() << "updateAllFrames";
+ //frameList.clear();
+ setView();
+ QPixmapCache::clear();
+ readCanvasFromCache = true;
+ update();
+}
+
+void ScribbleArea::updateAllVectorLayersAtCurrentFrame() {
+ updateAllVectorLayersAt(editor->currentFrame);
+}
+
+void ScribbleArea::updateAllVectorLayersAt(int frameNumber) {
+ for(int i=0; i< editor->object->getLayerCount(); i++) {
+ Layer* layer = editor->object->getLayer(i);
+ if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(frameNumber, 0)->setModified(true);
+ }
+ updateFrame(editor->currentFrame);
+}
+
+
+void ScribbleArea::updateAllVectorLayers() {
+ for(int i=0; i< editor->object->getLayerCount(); i++) {
+ Layer* layer = editor->object->getLayer(i);
+ if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->setModified(true);
+ }
+ updateAllFrames();
+}
+
+void ScribbleArea::setModified(int layerNumber, int frameNumber) {
+ Layer* layer = editor->object->getLayer(layerNumber);
+ //if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(frameNumber, 0)->setModified(true);
+ if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->setModified(frameNumber, true);
+ if(layer->type == Layer::BITMAP) ((LayerImage*)layer)->setModified(frameNumber, true);
+ emit modification(layerNumber);
+ //updateFrame(frame);
+ updateAllFrames();
+}
+
+void ScribbleArea::escape() {
+ deselectAll();
+}
+
+void ScribbleArea::keyPressEvent( QKeyEvent *event ) {
+ switch (event->key()) {
+ case Qt::Key_Right:
+ if(somethingSelected) { myTempTransformedSelection.translate(1,0); myTransformedSelection = myTempTransformedSelection; calculateSelectionTransformation(); update(); } else { editor->scrubForward(); event->ignore(); }
+ printf("Key right clicked \n");
+ break;
+ case Qt::Key_Left:
+ if(somethingSelected) { myTempTransformedSelection.translate(-1,0); myTransformedSelection = myTempTransformedSelection; calculateSelectionTransformation(); update(); } else { editor->scrubBackward(); event->ignore(); }
+ printf("Key left clicked \n");
+ break;
+ case Qt::Key_Up:
+ if(somethingSelected) { myTempTransformedSelection.translate(0,-1); myTransformedSelection = myTempTransformedSelection; calculateSelectionTransformation(); update(); } else { editor->previousLayer(); event->ignore(); }
+ break;
+ case Qt::Key_Down:
+ if(somethingSelected) { myTempTransformedSelection.translate(0,1); myTransformedSelection = myTempTransformedSelection; calculateSelectionTransformation(); update(); } else { editor->nextLayer(); event->ignore(); }
+ break;
+ case Qt::Key_Return:
+ if(somethingSelected) { paintTransformedSelection(); deselectAll(); } else {
+ if(toolMode == POLYLINE) {
+ endPolyline();
+ } else {
+ event->ignore();
+ }
+ }
+ break;
+ case Qt::Key_Escape:
+ if(somethingSelected || toolMode == POLYLINE) { escape(); }
+ break;
+ case Qt::Key_Backspace:
+ if(somethingSelected) deleteSelection();
+ break;
+ case Qt::Key_F1:
+ simplified = true;
+ emit outlinesChanged(simplified);
+ gradients = 0;
+ updateAllVectorLayersAtCurrentFrame();
+ break;
+ case Qt::Key_F2:
+ gradients = 1;
+ updateAllVectorLayersAtCurrentFrame();
+ break;
+ case Qt::Key_F3:
+ gradients = 2;
+ updateAllVectorLayersAtCurrentFrame();
+ break;
+ case Qt::Key_A:
+ flipPrevious();
+ break;
+ case Qt::Key_D:
+ flipNext();
+ break;
+ case Qt::Key_W:
+ editor->addKey();
+ break;
+ case Qt::Key_S:
+ editor->removeKey();
+ break;
+ case Qt::Key_Q:
+ editor->scrubBackward();
+ break;
+ case Qt::Key_E:
+ editor->scrubForward();
+ break;
+ case Qt::Key_Z:
+ onionShortCut();
+ break;
+ case Qt::Key_X:
+ straightAheadShortCut();
+ break;
+ case Qt::Key_C:
+ inbetweenShortCut();
+ break;
+ default:
+ event->ignore();
+ //QWidget::keyPressEvent(e);
+ }
+}
+
+void ScribbleArea::keyReleaseEvent( QKeyEvent *event ) {
+ switch (event->key()) {
+ case Qt::Key_F1:
+ simplified = false;
+ emit outlinesChanged(simplified);
+ setGradients(-1);
+ updateAllVectorLayersAtCurrentFrame();
+ break;
+ case Qt::Key_F2:
+ setGradients(-1);
+ updateAllVectorLayersAtCurrentFrame();
+ break;
+ case Qt::Key_F3:
+ setGradients(-1);
+ updateAllVectorLayersAtCurrentFrame();
+ break;
+ default:
+ event->ignore();
+ //QWidget::keyPressEvent(e);
+ }
+}
+
+void ScribbleArea::tabletEvent(QTabletEvent *event)
+{
+ //qDebug() << "Device" << event->device() << "Pointer type" << event->pointerType();
+ tabletInUse = true;
+ tabletPosition = event->hiResGlobalPos();
+ tabletPressure = event->pressure();
+ if(event->pointerType() == QTabletEvent::Cursor) tabletPressure = 0.5*tabletPressure; // "normal" pressure is chosen to be 0.5 instead of 1.0
+ mousePressure.append(tabletPressure);
+ if(toolMode==ScribbleArea::ERASER) {
+ //myPenWidth = static_cast<int>(10.0*tabletPressure);
+ currentWidth = (eraser.width*tabletPressure);
+ }
+ if(toolMode==ScribbleArea::PENCIL) {
+ currentColour = pencil.colour;
+ if(usePressure) {currentColour.setAlphaF(pencil.colour.alphaF()*tabletPressure); } else { currentColour.setAlphaF(pencil.colour.alphaF()); }
+ currentWidth = pencil.width;
+ }
+ if(toolMode==ScribbleArea::PEN) {
+ currentColour = pen.colour;
+ currentColour.setAlphaF(pen.colour.alphaF());
+ if(usePressure) { currentWidth = 2.0*pen.width*tabletPressure; } else { currentWidth = pen.width; }
+ }
+ if(event->pointerType() == QTabletEvent::Eraser) {
+ //if(tabletEraser == false) eraserOn();
+ //tabletEraser = true;
+ if(tabletEraserBackupToolMode == -1) {
+ tabletEraserBackupToolMode = toolMode; // memorise which tool was being used before switching to the eraser
+ eraserOn();
+ }
+ } else {
+ //if(tabletEraser == true) pencilOn();
+ //tabletEraser = false;
+ if(tabletEraserBackupToolMode != -1) { // restore the tool in use
+ switch(tabletEraserBackupToolMode) {
+ case ScribbleArea::PENCIL:
+ pencilOn();
+ break;
+ case ScribbleArea::PEN:
+ penOn();
+ break;
+ default:
+ pencilOn();
+ }
+ tabletEraserBackupToolMode = -1;
+ }
+ }
+ event->ignore(); // indicates that the tablet event is not accepted yet, so that it is propagated as a mouse event)
+}
+
+void ScribbleArea::mousePressEvent(QMouseEvent *event)
+{
+ mouseInUse = true;
+
+ Layer* layer = editor->getCurrentLayer();
+ // ---- checks ------
+ if(layer==NULL) return;
+ if(!layer->visible && toolMode != HAND && (event->button() != Qt::RightButton)) {
+ QMessageBox::warning(this, tr("Warning"),
+ tr("You are drawing on a hidden layer! Please select another layer (or make the current layer visible)."),
+ QMessageBox::Ok,
+ QMessageBox::Ok);
+ mouseInUse = false;
+ return;
+ }
+ if(layer->type == Layer::VECTOR) {
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ if (vectorImage == NULL) return;
+ if(toolMode == ScribbleArea::PENCIL) editor->selectColour(pencil.colourNumber);
+ if(toolMode == ScribbleArea::PEN) editor->selectColour(pen.colourNumber);
+ if(toolMode == ScribbleArea::COLOURING || toolMode == ScribbleArea::BUCKET) editor->selectColour(brush.colourNumber);
+ }
+ if(layer->type == Layer::BITMAP) {
+ BitmapImage* bitmapImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+ if (bitmapImage == NULL) return;
+ }
+ // --- end checks ----
+
+ while(!mousePath.isEmpty()) mousePath.removeAt(0); // empty the mousePath
+ while(!mousePressure.isEmpty()) mousePressure.removeAt(0); // empty the mousePressure
+ if (event->button() == Qt::LeftButton || event->button() == Qt::RightButton) { // if the user is pressing the left or right button
+ if(tabletInUse && highResPosition) { lastPixel = QPointF(event->pos()) + tabletPosition - QPointF(event->globalPos()); } else { lastPixel = QPointF(event->pos()); }
+ bool invertible = true;
+ lastPoint = myTempView.inverted(&invertible).map(QPointF(lastPixel));
+ lastBrushPoint = lastPoint;
+ }
+
+ if (event->button() == Qt::LeftButton) {
+ if(toolMode == ScribbleArea::PENCIL || toolMode == ScribbleArea::ERASER || toolMode == ScribbleArea::PEN || toolMode == ScribbleArea::BUCKET || toolMode == ScribbleArea::COLOURING) {
+
+ editor->backup();
+
+ if(layer->type == Layer::VECTOR) {
+ if(toolMode == ScribbleArea::PENCIL && !showThinLines) toggleThinLines();
+ }
+ mousePath.append(lastPoint);
+ }
+ // ----------------------------------------------------------------------
+ if(toolMode == COLOURING) {
+ if(layer->type == Layer::BITMAP) {
+ qreal opacity = 1.0;
+ qreal brushWidth = brush.width + 0.5*brush.feather;
+ qreal offset = qMax(0.0,brush.width-0.5*brush.feather)/brushWidth;
+ if(tabletInUse) opacity = tabletPressure;
+ if(usePressure) brushWidth = brushWidth*tabletPressure;
+ drawBrush( lastPoint, brushWidth, offset, brush.colour, opacity);
+ int rad = qRound(brushWidth / 2) + 3;
+ update(myTempView.mapRect(QRect(lastPoint.toPoint(), lastPoint.toPoint()).normalized().adjusted(-rad, -rad, +rad, +rad)));
+ }
+ }
+ // ----------------------------------------------------------------------
+ if(toolMode == POLYLINE && (layer->type == Layer::BITMAP || layer->type == Layer::VECTOR) ) {
+ if(mousePoints.size() == 0) editor->backup();
+ if(layer->type == Layer::VECTOR) {
+ ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->deselectAll();
+ if(makeInvisible && !showThinLines) toggleThinLines();
+ }
+ mousePoints << lastPoint;
+ //qDebug() << "--------- " << mousePoints;
+ }
+ // ----------------------------------------------------------------------
+ if(toolMode == ScribbleArea::SELECT && (layer->type == Layer::BITMAP || layer->type == Layer::VECTOR)) {
+ if(layer->type == Layer::VECTOR) {
+ ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->deselectAll();
+ }
+ moveMode = ScribbleArea::MIDDLE;
+ if( somethingSelected ) { // there is something selected
+ if( BezierCurve::mLength(lastPoint - myTransformedSelection.topLeft()) < 6) moveMode = ScribbleArea::TOPLEFT;
+ if( BezierCurve::mLength(lastPoint - myTransformedSelection.topRight()) < 6) moveMode = ScribbleArea::TOPRIGHT;
+ if( BezierCurve::mLength(lastPoint - myTransformedSelection.bottomLeft()) < 6) moveMode = ScribbleArea::BOTTOMLEFT;
+ if( BezierCurve::mLength(lastPoint - myTransformedSelection.bottomRight()) < 6) moveMode = ScribbleArea::BOTTOMRIGHT;
+ if( moveMode == ScribbleArea::MIDDLE ) { paintTransformedSelection(); deselectAll(); } // the user did not click on one of the corners
+ } else { // there is nothing selected
+ mySelection.setTopLeft( lastPoint );
+ mySelection.setBottomRight( lastPoint );
+ setSelection(mySelection, true);
+ }
+ update();
+ }
+ // ----------------------------------------------------------------------
+ if(toolMode == ScribbleArea::EDIT) {
+ if(layer->type == Layer::VECTOR) {
+ closestCurves = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->getCurvesCloseTo(currentPoint, tol/myTempView.m11());
+ closestVertices = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->getVerticesCloseTo(currentPoint, tol/myTempView.m11());
+ if( closestVertices.size() > 0 || closestCurves.size() > 0 ) { // the user clicks near a vertex or a curve
+ editor->backup();
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ if(event->modifiers() != Qt::ShiftModifier && !vectorImage->isSelected(closestVertices)) { paintTransformedSelection(); deselectAll(); }
+ vectorImage->setSelected(closestVertices, true);
+ vectorSelection.add(closestCurves);
+ vectorSelection.add(closestVertices);
+ /*calculateSelectionRect();
+ moveMode == ScribbleArea::MIDDLE;
+ if( somethingSelected ) { // there is an area selection
+ if( BezierCurve::mLength(lastPoint - myTransformedSelection.topLeft()) < 6) moveMode = ScribbleArea::TOPLEFT;
+ if( BezierCurve::mLength(lastPoint - myTransformedSelection.topRight()) < 6) moveMode = ScribbleArea::TOPRIGHT;
+ if( BezierCurve::mLength(lastPoint - myTransformedSelection.bottomLeft()) < 6) moveMode = ScribbleArea::BOTTOMLEFT;
+ if( BezierCurve::mLength(lastPoint - myTransformedSelection.bottomRight()) < 6) moveMode = ScribbleArea::BOTTOMRIGHT;
+ }*/
+ update();
+ } else {
+ deselectAll();
+ }
+ }
+ }
+ // ----------------------------------------------------------------------
+ if(toolMode == ScribbleArea::MOVE && (layer->type == Layer::BITMAP || layer->type == Layer::VECTOR)) {
+ editor->backup();
+ moveMode = ScribbleArea::MIDDLE;
+ if( somethingSelected ) { // there is an area selection
+ if( BezierCurve::mLength(lastPoint - myTransformedSelection.topLeft()) < 6) moveMode = ScribbleArea::TOPLEFT;
+ if( BezierCurve::mLength(lastPoint - myTransformedSelection.topRight()) < 6) moveMode = ScribbleArea::TOPRIGHT;
+ if( BezierCurve::mLength(lastPoint - myTransformedSelection.bottomLeft()) < 6) moveMode = ScribbleArea::BOTTOMLEFT;
+ if( BezierCurve::mLength(lastPoint - myTransformedSelection.bottomRight()) < 6) moveMode = ScribbleArea::BOTTOMRIGHT;
+ }
+ // ---
+ if(moveMode == ScribbleArea::MIDDLE) {
+ if(layer->type == Layer::BITMAP) {
+ if(!(myTransformedSelection.contains(lastPoint))) { // click is outside the transformed selection with the MOVE tool
+ paintTransformedSelection(); deselectAll();
+ }
+ }
+ if(layer->type == Layer::VECTOR) {
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ if(closestCurves.size() > 0) { // the user clicks near a curve
+ // editor->backup();
+ if(!vectorImage->isSelected(closestCurves)) {
+ paintTransformedSelection();
+ if(event->modifiers() != Qt::ShiftModifier) { deselectAll(); }
+ vectorImage->setSelected(closestCurves, true);
+ setSelection( vectorImage->getSelectionRect(), true );
+ update();
+ }
+ } else {
+ int areaNumber = vectorImage->getLastAreaNumber(lastPoint);
+ if(areaNumber != -1) { // the user clicks on an area
+ if(!vectorImage->isAreaSelected(areaNumber)) {
+ if(event->modifiers() != Qt::ShiftModifier) { deselectAll(); }
+ vectorImage->setAreaSelected(areaNumber, true);
+ //setSelection( vectorImage->getSelectionRect() );
+ setSelection( QRectF(0,0,0,0), true );
+ update();
+ }
+ } else { // the user doesn't click near a curve or an area
+ if(!(myTransformedSelection.contains(lastPoint))) { // click is outside the transformed selection with the MOVE tool
+ paintTransformedSelection(); deselectAll();
+ }
+ }
+ }
+ }
+ }
+ // ---
+
+ }
+ }
+}
+
+void ScribbleArea::mouseMoveEvent(QMouseEvent *event)
+{
+ Layer* layer = editor->getCurrentLayer();
+ // ---- checks ------
+ if(layer==NULL) return;
+ if(layer->type == Layer::VECTOR) {
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ if (vectorImage == NULL) return;
+ }
+ if(layer->type == Layer::BITMAP) {
+ BitmapImage* bitmapImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+ if (bitmapImage == NULL) return;
+ }
+ // ---- end checks ------
+
+ if(tabletInUse && highResPosition) { currentPixel = QPointF(event->pos()) + tabletPosition - QPointF(event->globalPos()); } else { currentPixel = event->pos(); }
+ bool invertible = true;
+ currentPoint = myTempView.inverted(&invertible).map(QPointF(currentPixel));
+ if(event->buttons() & Qt::LeftButton || event->buttons() & Qt::RightButton) { // the user is also pressing the mouse (dragging)
+ offset = currentPoint - lastPoint;
+ mousePath.append(currentPoint);
+ }
+
+ // ----------------------------------------------------------------------
+ if(layer->type == Layer::BITMAP || layer->type == Layer::VECTOR) {
+ if ((event->buttons() & Qt::LeftButton) && (toolMode == ScribbleArea::PENCIL || toolMode == ScribbleArea::ERASER || toolMode == ScribbleArea::PEN || toolMode == ScribbleArea::COLOURING))
+ drawLineTo(currentPixel, currentPoint);
+ if(toolMode == ScribbleArea::POLYLINE)
+ drawPolyline();
+ }
+ // ----------------------------------------------------------------------
+ if (toolMode == ScribbleArea::SELECT && (event->buttons() & Qt::LeftButton) && somethingSelected && (layer->type == Layer::BITMAP || layer->type == Layer::VECTOR)) {
+ if(moveMode == ScribbleArea::MIDDLE) mySelection.setBottomRight(currentPoint);
+ if(moveMode == ScribbleArea::TOPLEFT) mySelection.setTopLeft(currentPoint);
+ if(moveMode == ScribbleArea::TOPRIGHT) mySelection.setTopRight(currentPoint);
+ if(moveMode == ScribbleArea::BOTTOMLEFT) mySelection.setBottomLeft(currentPoint);
+ if(moveMode == ScribbleArea::BOTTOMRIGHT) mySelection.setBottomRight(currentPoint);
+ myTransformedSelection = mySelection.adjusted(0,0,0,0);
+ myTempTransformedSelection = mySelection.adjusted(0,0,0,0);
+ if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->select(mySelection);
+ update();
+ }
+ // ----------------------------------------------------------------------
+ if (toolMode == ScribbleArea::ERASER && (layer->type == Layer::BITMAP || layer->type == Layer::VECTOR)) {
+ if(event->buttons() & Qt::LeftButton) { // the user is also pressing the mouse (dragging)
+ if(layer->type == Layer::VECTOR) {
+ qreal radius = (eraser.width/2)/myTempView.m11();
+ QList<VertexRef> nearbyVertices = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->getVerticesCloseTo(currentPoint, radius);
+ for(int i=0; i< nearbyVertices.size(); i++) {
+ ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->setSelected(nearbyVertices.at(i), true);
+ }
+ //update();
+ }
+ }
+ }
+ // ----------------------------------------------------------------------
+ if (toolMode == ScribbleArea::EDIT && (layer->type == Layer::BITMAP || layer->type == Layer::VECTOR)) {
+ if(event->buttons() & Qt::LeftButton) { // the user is also pressing the mouse (dragging) {
+ if( layer->type == Layer::VECTOR) {
+ if( event->modifiers() != Qt::ShiftModifier) { // (and the user doesn't press shift)
+ // transforms the selection
+ selectionTransformation = QMatrix().translate(offset.x(), offset.y());
+ ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->setSelectionTransformation(selectionTransformation);
+ /*if(moveMode == ScribbleArea::MIDDLE) {
+ if(QLineF(lastPixel,currentPixel).length()>4) myTempTransformedSelection = myTransformedSelection.translated(offset);
+ }
+ if(moveMode == ScribbleArea::TOPLEFT) myTempTransformedSelection = myTransformedSelection.adjusted(offset.x(), offset.y(), 0, 0);
+ if(moveMode == ScribbleArea::TOPRIGHT) myTempTransformedSelection = myTransformedSelection.adjusted(0, offset.y(), offset.x(), 0);
+ if(moveMode == ScribbleArea::BOTTOMLEFT) myTempTransformedSelection = myTransformedSelection.adjusted(offset.x(), 0, 0, offset.y());
+ if(moveMode == ScribbleArea::BOTTOMRIGHT) myTempTransformedSelection = myTransformedSelection.adjusted(0, 0, offset.x(), offset.y());
+ calculateSelectionTransformation();*/
+ //update();
+ }
+ }
+ } else { // the user is moving the mouse without pressing it
+ if(layer->type == Layer::VECTOR) {
+ closestVertices = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->getVerticesCloseTo(currentPoint, tol/myTempView.m11());
+ }
+ //update();
+ }
+ update();
+ }
+ // ----------------------------------------------------------------------
+ if (toolMode == ScribbleArea::MOVE && (layer->type == Layer::BITMAP || layer->type == Layer::VECTOR)) {
+ if(event->buttons() & Qt::LeftButton) { // the user is also pressing the mouse (dragging)
+ if( somethingSelected) { // there is something selected
+ if( event->modifiers() != Qt::ShiftModifier) { // (and the user doesn't press shift)
+ // transforms the selection
+ if(moveMode == ScribbleArea::MIDDLE) {
+ if(QLineF(lastPixel,currentPixel).length()>4) myTempTransformedSelection = myTransformedSelection.translated(offset);
+ }
+ if(moveMode == ScribbleArea::TOPLEFT) myTempTransformedSelection = myTransformedSelection.adjusted(offset.x(), offset.y(), 0, 0);
+ if(moveMode == ScribbleArea::TOPRIGHT) myTempTransformedSelection = myTransformedSelection.adjusted(0, offset.y(), offset.x(), 0);
+ if(moveMode == ScribbleArea::BOTTOMLEFT) myTempTransformedSelection = myTransformedSelection.adjusted(offset.x(), 0, 0, offset.y());
+ if(moveMode == ScribbleArea::BOTTOMRIGHT) myTempTransformedSelection = myTransformedSelection.adjusted(0, 0, offset.x(), offset.y());
+ calculateSelectionTransformation();
+ update();
+ }
+ } else { // there is nothing selected
+ //selectionTransformation = selectionTransformation.translate(offset.x(), offset.y());
+ //if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->setSelectionTransformation(selectionTransformation);
+
+ //VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ //setSelection( vectorImage->getSelectionRect() );
+
+ // we switch to the select tool
+ editor->getToolSet()->changeSelectButton();
+ selectOn();
+ moveMode = ScribbleArea::MIDDLE;
+ mySelection.setTopLeft( lastPoint );
+ mySelection.setBottomRight( lastPoint );
+ setSelection(mySelection, true);
+ }
+ } else { // the user is moving the mouse without pressing it
+ if(layer->type == Layer::VECTOR) {
+ closestCurves = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->getCurvesCloseTo(currentPoint, tol/myTempView.m11());
+ }
+ update();
+ }
+ }
+ // ----------------------------------------------------------------------
+ if ( toolMode == ScribbleArea::HAND && (event->buttons() != Qt::NoButton || event->buttons() & Qt::RightButton) ) {
+ if(event->modifiers() & Qt::ControlModifier || event->modifiers() & Qt::AltModifier || event->buttons() & Qt::RightButton) {
+ QPoint centralPixel(width()/2, height()/2);
+ if(lastPixel.x() != centralPixel.x()) {
+ qreal scale = 1.0;
+ qreal cosine = 1.0;
+ qreal sine = 0.0;
+ if( event->modifiers() & Qt::AltModifier) { // rotation
+ QPointF V1 = lastPixel-centralPixel;
+ QPointF V2 = currentPixel-centralPixel;
+ cosine = ( V1.x()*V2.x() + V1.y()*V2.y() )/(BezierCurve::eLength(V1)*BezierCurve::eLength(V2));
+ sine = ( -V1.x()*V2.y() + V1.y()*V2.x() )/(BezierCurve::eLength(V1)*BezierCurve::eLength(V2));
+
+ }
+ if( event->modifiers() & Qt::ControlModifier || event->buttons() & Qt::RightButton) { // scale
+ scale = exp( 0.01*( currentPixel.y()-lastPixel.y() ) );
+ }
+ transMatrix = QMatrix(
+ scale*cosine, -scale*sine,
+ scale*sine, scale*cosine,
+ 0.0,
+ 0.0
+ );
+ }
+ } else { // translation
+ transMatrix.setMatrix(1.0,0.0,0.0,1.0, currentPixel.x()-lastPixel.x(), currentPixel.y()-lastPixel.y());
+ }
+ update();
+ }
+ // ----------------------------------------------------------------------
+ if( toolMode == EYEDROPPER ) {
+ if(layer->type == Layer::BITMAP) {
+ BitmapImage* targetImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+ if( targetImage->contains(currentPoint) ) {
+ QColor pickedColour = targetImage->pixel(currentPoint.x(), currentPoint.y());
+ if(pickedColour.alpha() != 0) drawEyedropperPreview(pickedColour);
+ }
+ }
+ if(layer->type == Layer::VECTOR) {
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ int colourNumber = vectorImage->getColourNumber(currentPoint);
+ if( colourNumber != -1) {
+ drawEyedropperPreview( editor->object->getColour(colourNumber).colour );
+ }
+ }
+ }
+
+}
+
+void ScribbleArea::mouseReleaseEvent(QMouseEvent *event)
+{
+ mouseInUse = false;
+
+ Layer* layer = editor->getCurrentLayer();
+ // ---- checks ------
+ if(layer==NULL) return;
+ if(layer->type == Layer::VECTOR) {
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ if (vectorImage == NULL) return;
+ }
+ if(layer->type == Layer::BITMAP) {
+ BitmapImage* bitmapImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+ if (bitmapImage == NULL) return;
+ }
+ // ---- end checks ------
+
+ //currentWidth = myPenWidth;
+ if(layer->type == Layer::BITMAP || layer->type == Layer::VECTOR) {
+ if ((event->button() == Qt::LeftButton) && (toolMode == ScribbleArea::PENCIL || toolMode == ScribbleArea::ERASER || toolMode == ScribbleArea::PEN)) {
+ drawLineTo(currentPixel, currentPoint);
+ }
+ }
+
+ if(event->button() == Qt::LeftButton) {
+ // ======================================================================
+ if(layer->type == Layer::BITMAP) {
+ // ----------------------------------------------------------------------
+ if( toolMode == BUCKET) {
+ BitmapImage* sourceImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+ Layer* targetLayer = layer; // by default
+ int layerNumber = editor->currentLayer; // by default
+ if( editor->currentLayer > 0) {
+ Layer* layer2 = editor->getCurrentLayer(-1);
+ if(layer2->type == Layer::BITMAP) {
+ targetLayer = layer2;
+ layerNumber = layerNumber - 1;
+ }
+ }
+ BitmapImage* targetImage = ((LayerBitmap*)targetLayer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+ BitmapImage::floodFill( sourceImage, targetImage, lastPoint.toPoint(), qRgba(0,0,0,0), brush.colour.rgba(), 10*10, true);
+ setModified(layerNumber, editor->currentFrame);
+ }
+ // ----------------------------------------------------------------------
+ if( toolMode == EYEDROPPER) {
+ BitmapImage* targetImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+ QColor pickedColour = targetImage->pixel(lastPoint.x(), lastPoint.y());
+ if(pickedColour.alpha() != 0) editor->setColour( pickedColour );
+ }
+ // ----------------------------------------------------------------------
+ if( toolMode == PENCIL || toolMode == PEN || toolMode == ERASER || toolMode == COLOURING ) {
+ paintBitmapBuffer();
+ }
+ }
+
+ // ======================================================================
+ if(layer->type == Layer::VECTOR) {
+ // ----------------------------------------------------------------------
+ if( toolMode == BUCKET) {
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ if(event->modifiers() == Qt::AltModifier) {
+ vectorImage->removeArea(lastPoint);
+ } else {
+ floodFill(vectorImage, lastPixel.toPoint(), qRgba(0,0,0,0), qRgb(200,200,200), 100*100);
+ }
+ setModified(editor->currentLayer, editor->currentFrame);
+ }
+ // ----------------------------------------------------------------------
+ if( toolMode == EYEDROPPER) {
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ int colourNumber = vectorImage->getColourNumber(lastPoint);
+ if( colourNumber != -1) {
+ editor->selectColour( colourNumber );
+ }
+ }
+ // ----------------------------------------------------------------------
+ if( toolMode == COLOURING) {
+ // Clear the temporary pixel path
+ bufferImg->clear();
+ ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->colour(mousePath, brush.colourNumber);
+ //((LayerImage*)layer)->setModified(editor->currentFrame, true);
+ //update();
+ setModified(editor->currentLayer, editor->currentFrame);
+ }
+ // ----------------------------------------------------------------------
+ if( (toolMode == ScribbleArea::PENCIL || toolMode == ScribbleArea::PEN) && mousePath.size() > -1 ) {
+ // Clear the temporary pixel path
+ bufferImg->clear();
+ qreal tol = curveSmoothing/qAbs( myView.m11() );
+ BezierCurve curve(mousePath, mousePressure, tol);
+ if(toolMode == PEN) {
+ curve.setWidth(pen.width);
+ curve.setFeather(0);
+ curve.setInvisibility(false);
+ curve.setVariableWidth(usePressure);
+ curve.setColourNumber(pen.colourNumber);
+ } else {
+ curve.setWidth(0);
+ curve.setFeather(0);
+ curve.setInvisibility(true);
+ curve.setVariableWidth(false);
+ curve.setColourNumber(pencil.colourNumber);
+ }
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+
+ //curve.setSelected(true);
+ //qDebug() << "this curve has " << curve.getVertexSize() << "vertices";
+
+ vectorImage->addCurve(curve, qAbs(myView.m11()) );
+
+ //if(layer->type == Layer::BITMAP || layer->type == Layer::VECTOR) ((LayerImage*)layer)->setModified(editor->currentFrame, true);
+ //update();
+ setModified(editor->currentLayer, editor->currentFrame);
+ }
+ // ----------------------------------------------------------------------
+ if( toolMode == ScribbleArea::ERASER ) {
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ // Clear the area containing the last point
+ //vectorImage->removeArea(lastPoint);
+ // Clear the temporary pixel path
+ bufferImg->clear();
+ vectorImage->deleteSelectedPoints();
+ //update();
+ setModified(editor->currentLayer, editor->currentFrame);
+ }
+ }
+ }
+
+ // ====================== for all kinds of layers =======================
+ // ----------------------------------------------------------------------
+ if ((toolMode == ScribbleArea::EDIT) && (event->button() == Qt::LeftButton)) {
+ if(layer->type == Layer::VECTOR) {
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ vectorImage->applySelectionTransformation();
+ selectionTransformation.reset();
+ for(int k=0; k<vectorSelection.curve.size(); k++) {
+ int curveNumber = vectorSelection.curve.at(k);
+ vectorImage->curve[curveNumber].smoothCurve();
+ }
+ setModified(editor->currentLayer, editor->currentFrame);
+ }
+ }
+ if ((toolMode == ScribbleArea::MOVE) && (event->button() == Qt::LeftButton) && (layer->type == Layer::BITMAP || layer->type == Layer::VECTOR)) {
+ offset.setX(0);
+ offset.setY(0);
+ calculateSelectionTransformation();
+ //if(layer->type == Layer::VECTOR) {
+ // closestCurves = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->getCurvesCloseTo(currentPoint, tol/myView.m11());
+ // closestVertices = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->getVerticesCloseTo(currentPoint, tol/myView.m11());
+ //}
+ //if(somethingSelected && layer->type == Layer::VECTOR) {
+ //editor->backup();
+ //((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->applySelectionTransformation();
+ //}
+ //if( (mySelection.width() > 1) || (mySelection.height() > 1) ) {
+ myTransformedSelection = myTempTransformedSelection;
+ // update();
+ //}
+ //if(layer->type == Layer::BITMAP || layer->type == Layer::VECTOR) ((LayerImage*)layer)->setModified(editor->currentFrame, true);
+
+ if(layer->type == Layer::VECTOR) {
+ if(somethingSelected) {
+ //VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ //-- we should recalculate the intersections, once the curved are moved!
+ //vectorImage->reinsertSelection();
+ }
+ }
+
+ setModified(editor->currentLayer, editor->currentFrame);
+ }
+ // ----------------------------------------------------------------------
+ if( toolMode == ScribbleArea::HAND || (event->button() == Qt::RightButton) ) {
+ bufferImg->clear();
+ if(layer->type == Layer::CAMERA) {
+ LayerCamera* layerCamera = (LayerCamera*)layer;
+ QMatrix view = layerCamera->getViewAtFrame(editor->currentFrame);
+ layerCamera->loadImageAtFrame(editor->currentFrame, view * transMatrix);
+ //Camera* camera = ((LayerCamera*)layer)->getLastCameraAtFrame(editor->currentFrame, 0);
+ //camera->view = camera->view * transMatrix;
+ } else {
+ myView = myView * transMatrix;
+ }
+ transMatrix.reset();
+ updateAllVectorLayers();
+ //update();
+ }
+ // ----------------------------------------------------------------------
+ if( toolMode == ScribbleArea::SELECT && (event->button() == Qt::LeftButton) && (layer->type == Layer::BITMAP || layer->type == Layer::VECTOR)) {
+ if(layer->type == Layer::VECTOR) {
+ if(somethingSelected) {
+ editor->getToolSet()->changeMoveButton();
+ moveOn();
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ setSelection( vectorImage->getSelectionRect(), true );
+ if(mySelection.size() == QSizeF(0,0)) somethingSelected = false;
+ }
+ }
+ updateFrame();
+ }
+ // ----------------------------------------------------------------------
+ //update();
+ tabletInUse = false;
+}
+
+void ScribbleArea::mouseDoubleClickEvent(QMouseEvent *event)
+{
+ if( toolMode == ScribbleArea::HAND || event->button() == Qt::RightButton ) {
+ resetView();
+ } else {
+ if( toolMode == ScribbleArea::POLYLINE && BezierCurve::eLength(lastPixel.toPoint() - event->pos()) < 2.0 ) {
+ endPolyline();
+ } else {
+ mousePressEvent(event);
+ }
+ }
+}
+
+void ScribbleArea::paintBitmapBuffer() {
+ Layer* layer = editor->getCurrentLayer();
+ // ---- checks ------
+ if(layer==NULL) return;
+ // Clear the temporary pixel path
+ BitmapImage* targetImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+ if(targetImage!=NULL) {
+ QPainter::CompositionMode cm = QPainter::CompositionMode_SourceOver;
+ switch(toolMode) {
+ case ERASER:
+ cm = QPainter::CompositionMode_DestinationOut;
+ break;
+ case COLOURING:
+ if(brush.preserveAlpha) cm = QPainter::CompositionMode_SourceAtop;
+ if(followContour) {
+ // writes on the layer below
+ if( editor->currentLayer > 0) {
+ Layer* layer2 = editor->getCurrentLayer(-1);
+ if(layer2->type == Layer::BITMAP) {
+ targetImage = ((LayerBitmap*)layer2)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+ }
+ }
+ }
+ break;
+ case PEN:
+ if(pen.preserveAlpha) cm = QPainter::CompositionMode_SourceAtop;
+ break;
+ case PENCIL:
+ if(pencil.preserveAlpha) cm = QPainter::CompositionMode_SourceAtop;
+ break;
+ default:
+ break;
+ }
+ targetImage->paste(bufferImg, cm);
+ }
+ QRect rect = myTempView.mapRect(bufferImg->boundaries);
+ // Clear the buffer
+ bufferImg->clear();
+
+ //setModified(layer, editor->currentFrame);
+ ((LayerImage*)layer)->setModified(editor->currentFrame, true);
+ emit modification();
+ QPixmapCache::remove("frame"+QString::number(editor->currentFrame));
+ readCanvasFromCache = false;
+ updateCanvas(editor->currentFrame, rect.adjusted(-1,-1,1,1) );
+ update(rect);
+}
+
+void ScribbleArea::paintEvent(QPaintEvent* event)
+{
+ //qDebug() << "paint event!" << QDateTime::currentDateTime() << event->rect(); //readCanvasFromCache << mouseInUse << editor->currentFrame;
+ QPainter painter(this);
+
+ // draws the background (if necessary)
+ if(mouseInUse && toolMode == HAND) {
+ painter.setWorldMatrix(myTempView);
+ painter.setWorldMatrixEnabled(true);
+ painter.setPen(Qt::NoPen);
+ painter.setBrush(backgroundBrush);
+ painter.drawRect( (myTempView).inverted().mapRect( QRect(-2,-2, width()+3, height()+3) ) ); // this is necessary to have the background move with the view
+ }
+
+ // process the canvas (or not)
+ if(!mouseInUse && readCanvasFromCache) {
+ // --- we retrieve the canvas from the cache; we create it if it doesn't exist
+ int frameNumber = editor->getLastFrameAtFrame( editor->currentFrame );
+ if(!QPixmapCache::find("frame"+QString::number(frameNumber), canvas)) {
+ updateCanvas(editor->currentFrame, event->rect());
+ QPixmapCache::insert("frame"+QString::number(frameNumber), canvas);
+ }
+ }
+ if(toolMode == MOVE) {
+ Layer* layer = editor->getCurrentLayer();
+ if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->setModified(true);
+ updateCanvas(editor->currentFrame, event->rect());
+ }
+ // paints the canvas
+ painter.setWorldMatrixEnabled(true);
+ painter.setWorldMatrix( centralView.inverted() * transMatrix * centralView );
+ painter.drawPixmap( QPoint(0,0), canvas );
+
+ Layer* layer = editor->getCurrentLayer();
+ if(!layer) return;
+
+ if(!editor->playing) { // we don't need to display the following when the animation is playing
+ painter.setWorldMatrix(myTempView);
+
+ if(layer->type == Layer::VECTOR) {
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+
+ if(toolMode == EDIT || toolMode == HAND) {
+ //bufferImg->clear();
+ painter.save();
+ painter.setWorldMatrixEnabled(false);
+ painter.setRenderHint(QPainter::Antialiasing, false);
+ // ----- paints the edited elements
+ QPen pen2(Qt::black, 0.5, Qt::SolidLine, Qt::RoundCap,Qt::RoundJoin);
+ painter.setPen( pen2 );
+ QColor colour;
+ // ------------ vertices of the edited curves
+ colour = QColor(200,200,200);
+ painter.setBrush( colour );
+ for(int k=0; k<vectorSelection.curve.size(); k++) {
+ int curveNumber = vectorSelection.curve.at(k);
+ //QPainterPath path = vectorImage->curve[curveNumber].getStrokedPath();
+ //bufferImg->drawPath( myTempView.map(path), pen2, colour, QPainter::CompositionMode_SourceOver, false);
+ for(int vertexNumber=-1; vertexNumber<vectorImage->getCurveSize(curveNumber); vertexNumber++) {
+ QPointF vertexPoint = vectorImage->getVertex(curveNumber, vertexNumber);
+ QRectF rectangle = QRectF( (myView*transMatrix*centralView).map(vertexPoint)-QPointF(3.0,3.0), QSizeF(7,7) );
+ if(rect().contains( (myView*transMatrix*centralView).map(vertexPoint).toPoint())) {
+
+ painter.drawRect( rectangle.toRect() );
+ //bufferImg->drawRect( rectangle.toRect(), pen2, colour, QPainter::CompositionMode_SourceOver, false);
+ }
+ }
+
+ }
+ // ------------ selected vertices of the edited curves
+ colour = QColor(100,100,255);
+ painter.setBrush( colour );
+ for(int k=0; k<vectorSelection.vertex.size(); k++) {
+ VertexRef vertexRef = vectorSelection.vertex.at(k);
+ QPointF vertexPoint = vectorImage->getVertex(vertexRef);
+ QRectF rectangle0 = QRectF( (myView*transMatrix*centralView).map(vertexPoint)-QPointF(3.0,3.0), QSizeF(7,7) );
+ painter.drawRect( rectangle0.toRect() );
+ //bufferImg->drawRect( rectangle0, pen2, colour, QPainter::CompositionMode_SourceOver, false);
+
+ /* --- draws the control points -- maybe editable in a future version (although not recommended)
+ QPointF c1Point = vectorImage->getC1(vertexRef.nextVertex());
+ QPointF c2Point = vectorImage->getC2(vertexRef);
+ QRectF rectangle1 = QRectF( myTempView.map(c1Point)-QPointF(3.0,3.0), QSize(7,7) );
+ QRectF rectangle2 = QRectF( myTempView.map(c2Point)-QPointF(3.0,3.0), QSize(7,7) );
+ bufferImg->drawLine( myTempView.map(vertexPoint), myTempView.map(c1Point), colour, QPainter::CompositionMode_SourceOver, antialiasing);
+ bufferImg->drawLine( myTempView.map(vertexPoint), myTempView.map(c2Point), colour, QPainter::CompositionMode_SourceOver, antialiasing);
+ bufferImg->drawRect( rectangle0, pen2, colour, QPainter::CompositionMode_SourceOver, false);
+ bufferImg->drawEllipse( rectangle1, pen2, Qt::white, QPainter::CompositionMode_SourceOver, false);
+ bufferImg->drawEllipse( rectangle2, pen2, Qt::white, QPainter::CompositionMode_SourceOver, false);*/
+ }
+ // ----- paints the closest vertices
+ colour = QColor(255,0,0);
+ painter.setBrush( colour );
+ if( vectorSelection.curve.size() > 0 ) {
+ for(int k=0; k<closestVertices.size(); k++) {
+ VertexRef vertexRef = closestVertices.at(k);
+ QPointF vertexPoint = vectorImage->getVertex(vertexRef);
+ //if( vectorImage->isSelected(vertexRef) ) vertexPoint = selectionTransformation.map( vertexPoint );
+ QRectF rectangle = QRectF( (myView*transMatrix*centralView).map(vertexPoint)-QPointF(3.0,3.0), QSizeF(7,7) );
+ painter.drawRect( rectangle.toRect() );
+ //bufferImg->drawRect( rectangle.toRect(), pen2, colour, QPainter::CompositionMode_SourceOver, false);
+ }
+ }
+ painter.restore();
+ }
+
+ if(toolMode == MOVE) {
+ // ----- paints the closest curves
+ bufferImg->clear();
+ QPen pen2(Qt::black, 0.5, Qt::SolidLine, Qt::RoundCap,Qt::RoundJoin);
+ QColor colour = QColor(100,100,255);
+ for(int k=0; k<closestCurves.size(); k++) {
+ qreal scale = myTempView.det();
+ BezierCurve myCurve = vectorImage->curve[closestCurves[k]];
+ if(myCurve.isPartlySelected()) myCurve.transform( selectionTransformation );
+ QPainterPath path = myCurve.getStrokedPath(1.2/scale, false);
+ bufferImg->drawPath( (myView*transMatrix*centralView).map(path), pen2, colour, QPainter::CompositionMode_SourceOver, antialiasing);
+ }
+ }
+
+ }
+
+ // paints the buffer image
+ if(editor->getCurrentLayer() != NULL) {
+ painter.setOpacity(1.0);
+ if(editor->getCurrentLayer()->type == Layer::BITMAP) painter.setWorldMatrixEnabled(true);
+ if(editor->getCurrentLayer()->type == Layer::VECTOR) painter.setWorldMatrixEnabled(false);
+ bufferImg->paintImage(painter);
+ }
+
+ // paints the selection outline
+ if( somethingSelected && myTempTransformedSelection.isValid() ) {
+ // outline of the transformed selection
+ painter.setWorldMatrixEnabled(false);
+ painter.setOpacity(1.0);
+ QPolygon tempRect = (myView*transMatrix*centralView).mapToPolygon( myTempTransformedSelection.normalized().toRect() );
+
+ Layer* layer = editor->getCurrentLayer();
+ if(layer != NULL) {
+ if(layer->type == Layer::BITMAP) {
+ painter.setBrush(Qt::NoBrush);
+ painter.setPen(Qt::DashLine);
+ }
+ if(layer->type == Layer::VECTOR) {
+ painter.setBrush(QColor(0,0,0,20));
+ painter.setPen(Qt::gray);
+ }
+ painter.drawPolygon( tempRect );
+
+ if(layer->type != Layer::VECTOR || toolMode != SELECT) {
+ painter.setPen(Qt::SolidLine);
+ painter.setBrush(QBrush(Qt::gray));
+ painter.drawRect( tempRect.point(0).x()-3, tempRect.point(0).y()-3, 6, 6 );
+ painter.drawRect( tempRect.point(1).x()-3, tempRect.point(1).y()-3, 6, 6 );
+ painter.drawRect( tempRect.point(2).x()-3, tempRect.point(2).y()-3, 6, 6 );
+ painter.drawRect( tempRect.point(3).x()-3, tempRect.point(3).y()-3, 6, 6 );
+ }
+ }
+ }
+
+ }
+ // clips to the frame of the camera
+ if(layer->type == Layer::CAMERA) {
+ QRect rect = ((LayerCamera*)layer)->getViewRect();
+ rect.translate( width()/2, height()/2 );
+ painter.setWorldMatrixEnabled(false);
+ painter.setPen(Qt::NoPen);
+ painter.setBrush(QColor(0,0,0,160));
+ painter.drawRect( QRect(0, 0, width(), (height() - rect.height())/2) );
+ painter.drawRect( QRect(0, rect.bottom(), width(), (height() - rect.height())/2) );
+ painter.drawRect( QRect(0, rect.top(), (width() - rect.width())/2, rect.height()-1) );
+ painter.drawRect( QRect((width() + rect.width())/2, rect.top(), (width() - rect.width())/2, rect.height()-1) );
+ painter.setPen(Qt::black);
+ painter.setBrush(Qt::NoBrush);
+ painter.drawRect(rect);
+ }
+ // outlines the frame of the viewport
+ painter.setWorldMatrixEnabled(false);
+ painter.setPen( QPen(Qt::gray, 2) );
+ painter.setBrush(Qt::NoBrush);
+ painter.drawRect(QRect(0,0, width(), height()));
+ // shadow
+ if(shadows && !editor->playing && (!mouseInUse || toolMode == HAND)) {
+ int radius1 = 12;
+ int radius2 = 8;
+ QLinearGradient shadow = QLinearGradient( 0, 0, 0, radius1);
+ setGaussianGradient(shadow, Qt::black, 0.15, 0.0);
+ painter.setPen(Qt::NoPen);
+ painter.setBrush(shadow);
+ painter.drawRect(QRect(0,0, width(), radius1));
+ shadow.setFinalStop(radius1, 0);
+ painter.setBrush(shadow);
+ painter.drawRect(QRect(0,0, radius1, height()));
+ shadow.setStart(0, height());
+ shadow.setFinalStop(0, height()-radius2);
+ painter.setBrush(shadow);
+ painter.drawRect(QRect(0,height()-radius2, width(), height()));
+ shadow.setStart(width(), 0);
+ shadow.setFinalStop(width()-radius2, 0);
+ painter.setBrush(shadow);
+ painter.drawRect(QRect(width()-radius2,0, width(), height()));
+ }
+ event->accept();
+}
+
+void ScribbleArea::updateCanvas(int frame, QRect rect)
+{
+ //qDebug() << "paint canvas!" << QDateTime::currentDateTime();
+ // merge the different layers into the ScribbleArea
+ QPainter painter(&canvas);
+ if(myTempView.det() == 1.0) {
+ painter.setRenderHint(QPainter::SmoothPixmapTransform, false);
+ } else {
+ painter.setRenderHint(QPainter::SmoothPixmapTransform, antialiasing);
+ }
+ painter.setClipRect(rect);
+ painter.setClipping(true);
+ setView();
+ painter.setWorldMatrix(myTempView);
+ painter.setWorldMatrixEnabled(true);
+
+ // background
+ painter.setPen(Qt::NoPen);
+ painter.setBrush(backgroundBrush);
+ painter.drawRect( myTempView.inverted().mapRect( QRect(-2,-2, width()+3, height()+3) ) ); // this is necessary to have the background move with the view
+
+ // grid
+ bool drawGrid = false;
+ if(drawGrid) {
+ painter.setOpacity(1.0);
+ painter.setPen(Qt::gray);
+ painter.setBrush(Qt::NoBrush);
+ // What kind of grid do we want?
+ //painter.drawRect(QRect(0,0, mySize.width(), mySize.height()));
+ //painter.drawLine( QPoint(0,mySize.height()/2), QPoint(mySize.width(), mySize.height()/2) );
+ //painter.drawLine( QPoint(mySize.width()/3, 0), QPoint(mySize.width()/3, mySize.height()) );
+ //painter.drawLine( QPoint(mySize.width()*2/3, 0), QPoint(mySize.width()*2/3, mySize.height()) );
+ }
+
+ int tempFrame = frame;
+
+ Object* object = editor->object;
+ qreal opacity;
+ for(int i=0; i < object->getLayerCount(); i++) {
+ opacity = 1.0;
+ if(i != editor->currentLayer && (showAllLayers == 1)) { opacity = 0.4; }
+ if(editor->getCurrentLayer()->type == Layer::CAMERA) opacity = 1.0;
+ Layer* layer = (object->getLayer(i));
+ if(layer->visible && (showAllLayers>0 || i == editor->currentLayer)) {
+ // paints the bitmap images
+ if(layer->type == Layer::BITMAP) {
+ LayerBitmap* layerBitmap = (LayerBitmap*)layer;
+ BitmapImage* bitmapImage = layerBitmap->getLastBitmapImageAtFrame(frame, 0);
+ if(bitmapImage != NULL) {
+ painter.setWorldMatrixEnabled(true);
+
+ // straight ahead (onion skin)
+ BitmapImage* straightAheadImage = layerBitmap->getLastBitmapImageAtFrame(frame, 0);
+ tempFrame = frame;
+ if(onionStraightAhead && onion) {
+ for(int frames = 1; frames < onionStraightAheadFrames; frames++) {
+ tempFrame = editor->getPrevKey(tempFrame);
+ straightAheadImage = layerBitmap->getLastBitmapImageAtFrame(tempFrame, 0);
+ if(tempFrame == 1 || tempFrame == layerBitmap->getMaxFrame()) {
+ frames = onionStraightAheadFrames;
+ straightAheadImage = NULL;
+ }
+ if(straightAheadImage != NULL) {
+ painter.setOpacity(opacity*onionOpacity);
+ straightAheadImage->paintImage(painter);
+ }
+ }
+ }
+
+ //painter.drawImage(previousImage->topLeft(), *(previousImage->image) );
+
+ // inbetween frame (onion skin)
+ BitmapImage* inbetweenImage = layerBitmap->getLastBitmapImageAtFrame(frame, 0);
+
+ if(onionInbetween && onion) {
+ painter.setOpacity(opacity*onionOpacity);
+ if(onionPreviousPrevious) {
+ inbetweenImage = layerBitmap->getLastBitmapImageAtFrame(editor->getPrevKey(editor->getPrevKey(frame)), 0);
+ inbetweenImage->paintImage(painter);
+ }
+ if(onionPrevious) {
+ inbetweenImage = layerBitmap->getLastBitmapImageAtFrame(editor->getPrevKey(frame), 0);
+ inbetweenImage->paintImage(painter);
+ }
+ if(onionNext) {
+ inbetweenImage = layerBitmap->getLastBitmapImageAtFrame(editor->getNextKey(frame), 0);
+ inbetweenImage->paintImage(painter);
+ }
+ if(onionNextNext) {
+ inbetweenImage = layerBitmap->getLastBitmapImageAtFrame(editor->getNextKey(editor->getNextKey(frame)), 0);
+ inbetweenImage->paintImage(painter);
+ }
+ }
+
+ // current frame
+ painter.setOpacity(opacity);
+ if(i==editor->currentLayer && somethingSelected && (myTempTransformedSelection != mySelection) ) {
+ // hole in the original selection -- might support arbitrary shapes in the future
+ painter.setClipping(true);
+ QRegion clip = QRegion(mySelection.toRect());
+ QRegion totalImage = QRegion( myTempView.inverted().mapRect( QRect(-2,-2, width()+3, height()+3) ) );
+ QRegion ImageWithHole = totalImage-=clip;
+ painter.setClipRegion(ImageWithHole, Qt::ReplaceClip);
+ //painter.drawImage(bitmapImage->topLeft(), *(bitmapImage->image) );
+ bitmapImage->paintImage(painter);
+ painter.setClipping(false);
+ // transforms the bitmap selection
+ bool smoothTransform = false;
+ if(myTempTransformedSelection.width() != mySelection.width() || myTempTransformedSelection.height() != mySelection.height() ) smoothTransform = true;
+ BitmapImage selectionClip = bitmapImage->copy(mySelection.toRect());
+ selectionClip.transform(myTempTransformedSelection, smoothTransform);
+ selectionClip.paintImage(painter);
+ //painter.drawImage(selectionClip.topLeft(), *(selectionClip.image));
+ } else {
+ //painter.drawImage(bitmapImage->topLeft(), *(bitmapImage->image) );
+ bitmapImage->paintImage(painter);
+ }
+ //painter.setPen(Qt::red);
+ //painter.setBrush(Qt::NoBrush);
+ //painter.drawRect(bitmapImage->boundaries);
+ }
+ }
+ // paints the vector images
+ if(layer->type == Layer::VECTOR) {
+ LayerVector* layerVector = (LayerVector*)layer;
+ VectorImage* vectorImage = layerVector->getLastVectorImageAtFrame(frame, 0);
+ if( somethingSelected ) {
+ // transforms the vector selection
+ //calculateSelectionTransformation();
+ vectorImage->setSelectionTransformation(selectionTransformation);
+ //vectorImage->setTransformedSelection(myTempTransformedSelection);
+ }
+ QImage* image = layerVector->getLastImageAtFrame(frame, 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+ if(image != NULL) {
+ painter.setWorldMatrixEnabled(false);
+
+ // straight ahead (onion skin)
+ QImage* straightAheadImage = layerVector->getLastImageAtFrame(frame, 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+ tempFrame = frame;
+ if(onionStraightAhead && onion) {
+ for(int frames = 1; frames < onionStraightAheadFrames; frames++) {
+ tempFrame = editor->getPrevKey(tempFrame);
+ straightAheadImage = layerVector->getLastImageAtFrame(tempFrame, 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+ if(tempFrame == 1 || tempFrame == layerVector->getMaxFrame()) {
+ frames = onionStraightAheadFrames;
+ straightAheadImage = NULL;
+ }
+ if(straightAheadImage != NULL) {
+ painter.setOpacity(onionOpacity*opacity);
+ painter.drawImage(QPoint(0, 0), *straightAheadImage);
+ }
+ }
+ }
+
+ // inbetween (onion skin)
+ QImage* inbetweenImage = layerVector->getLastImageAtFrame(frame, 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+ if(onionInbetween && onion) {
+ painter.setOpacity(onionOpacity*opacity);
+ if(onionPreviousPrevious) {
+ inbetweenImage = layerVector->getLastImageAtFrame(editor->getPrevKey(editor->getPrevKey(frame)), 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+ painter.drawImage(QPoint(0, 0), *inbetweenImage);
+ }
+ if(onionPrevious) {
+ inbetweenImage = layerVector->getLastImageAtFrame(editor->getPrevKey(frame), 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+ painter.drawImage(QPoint(0, 0), *inbetweenImage);
+ }
+ if(onionNext) {
+ inbetweenImage = layerVector->getLastImageAtFrame(editor->getNextKey(frame), 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+ painter.drawImage(QPoint(0, 0), *inbetweenImage);
+ }
+ if(onionNextNext) {
+ inbetweenImage = layerVector->getLastImageAtFrame(editor->getNextKey(editor->getNextKey(frame)), 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+ painter.drawImage(QPoint(0, 0), *inbetweenImage);
+ }
+ }
+
+ // current frame
+ painter.setOpacity(opacity);
+ painter.drawImage(QPoint(0, 0), *image);
+ }
+ }
+ }
+ }
+ painter.end();
+}
+
+void ScribbleArea::setGaussianGradient(QGradient &gradient, QColor colour, qreal opacity, qreal offset) {
+ int r = colour.red();
+ int g = colour.green();
+ int b = colour.blue();
+ qreal a = colour.alphaF();
+ gradient.setColorAt(0.0, QColor(r, g, b, qRound(a*255*opacity)) );
+ gradient.setColorAt(offset+0.0*(1.0-offset), QColor(r, g, b, qRound(a*255*opacity)) );
+ gradient.setColorAt(offset+0.1*(1.0-offset), QColor(r, g, b, qRound(a*245*opacity)) );
+ gradient.setColorAt(offset+0.2*(1.0-offset), QColor(r, g, b, qRound(a*217*opacity)) );
+ gradient.setColorAt(offset+0.3*(1.0-offset), QColor(r, g, b, qRound(a*178*opacity)) );
+ gradient.setColorAt(offset+0.4*(1.0-offset), QColor(r, g, b, qRound(a*134*opacity)) );
+ gradient.setColorAt(offset+0.5*(1.0-offset), QColor(r, g, b, qRound(a*94*opacity)) );
+ gradient.setColorAt(offset+0.6*(1.0-offset), QColor(r, g, b, qRound(a*60*opacity)) );
+ gradient.setColorAt(offset+0.7*(1.0-offset), QColor(r, g, b, qRound(a*36*opacity)) );
+ gradient.setColorAt(offset+0.8*(1.0-offset), QColor(r, g, b, qRound(a*20*opacity)) );
+ gradient.setColorAt(offset+0.9*(1.0-offset), QColor(r, g, b, qRound(a*10*opacity)) );
+ gradient.setColorAt(offset+1.0*(1.0-offset), QColor(r, g, b, 0) );
+}
+
+void ScribbleArea::drawBrush(QPointF thePoint, qreal brushWidth, qreal offset, QColor fillColour, qreal opacity) {
+ QRadialGradient radialGrad(thePoint, 0.5*brushWidth);
+ setGaussianGradient(radialGrad, fillColour, opacity, offset);
+
+ //radialGrad.setCenter( thePoint );
+ //radialGrad.setFocalPoint( thePoint );
+
+ QRectF rectangle(thePoint.x()-0.5*brushWidth, thePoint.y()-0.5*brushWidth, brushWidth, brushWidth);
+
+ BitmapImage* tempBitmapImage = new BitmapImage(NULL);
+ if(followContour) {
+ tempBitmapImage = new BitmapImage(NULL, rectangle.toRect(), QColor(0,0,0,0));
+ //tempBitmapImage->drawRect( rectangle, Qt::NoPen, QColor(0,0,0,0), QPainter::CompositionMode_Source, antialiasing);
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return;
+ int index = ((LayerImage*)layer)->getLastIndexAtFrame(editor->currentFrame);
+ if(index == -1) return;
+ BitmapImage* bitmapImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+ if(bitmapImage == NULL) { qDebug() << "NULL image pointer!" << editor->currentLayer << editor->currentFrame; return; }
+ BitmapImage::floodFill(bitmapImage, tempBitmapImage, thePoint.toPoint(), qRgba(255,255,255,0), fillColour.rgb(), 20*20, false);
+ tempBitmapImage->drawRect( rectangle.toRect(), Qt::NoPen, radialGrad, QPainter::CompositionMode_SourceIn, antialiasing);
+ } else {
+ tempBitmapImage = new BitmapImage(NULL);
+ tempBitmapImage->drawRect( rectangle, Qt::NoPen, radialGrad, QPainter::CompositionMode_Source, antialiasing);
+ }
+
+ bufferImg->paste(tempBitmapImage);
+ delete tempBitmapImage;
+}
+
+void ScribbleArea::drawLineTo(const QPointF &endPixel, const QPointF &endPoint)
+{
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return;
+
+ if(layer->type == Layer::BITMAP) {
+ //int index = ((LayerImage*)layer)->getLastIndexAtFrame(editor->currentFrame);
+ //if(index == -1) return;
+ //BitmapImage* bitmapImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+ //if(bitmapImage == NULL) { qDebug() << "NULL image pointer!" << editor->currentLayer << editor->currentFrame; return; }
+
+ if (toolMode == ScribbleArea::ERASER) {
+ QPen pen2 = QPen ( QBrush(QColor(255,255,255,255)), currentWidth, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin );
+ bufferImg->drawLine(lastPoint, endPoint, pen2, QPainter::CompositionMode_SourceOver, antialiasing);
+ int rad = qRound(currentWidth / 2) + 2;
+ update(myTempView.mapRect(QRect(lastPoint.toPoint(), endPoint.toPoint()).normalized().adjusted(-rad, -rad, +rad, +rad)));
+ }
+ if(toolMode == ScribbleArea::PENCIL) {
+ QPen pen2 = QPen ( QBrush(currentColour), currentWidth, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin );
+ bufferImg->drawLine(lastPoint, endPoint, pen2, QPainter::CompositionMode_SourceOver, antialiasing);
+ int rad = qRound(currentWidth / 2) + 3;
+ update(myTempView.mapRect(QRect(lastPoint.toPoint(), endPoint.toPoint()).normalized().adjusted(-rad, -rad, +rad, +rad)));
+ }
+ if(toolMode == ScribbleArea::PEN) {
+ QPen pen2 = QPen ( QBrush(pen.colour), currentWidth, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin );
+ bufferImg->drawLine(lastPoint, endPoint, pen2, QPainter::CompositionMode_SourceOver, antialiasing);
+ int rad = qRound(currentWidth / 2) + 3;
+ update(myTempView.mapRect(QRect(lastPoint.toPoint(), endPoint.toPoint()).normalized().adjusted(-rad, -rad, +rad, +rad)));
+ }
+ if(toolMode == ScribbleArea::COLOURING) {
+ qreal opacity = 1.0;
+ qreal brushWidth = brush.width + 0.5*brush.feather;
+ qreal offset = qMax(0.0,brush.width-0.5*brush.feather)/brushWidth;
+ if(tabletInUse) opacity = tabletPressure;
+ if(usePressure) brushWidth = brushWidth*tabletPressure;
+
+ qreal distance = 4*QLineF(endPoint, lastBrushPoint).length();
+ qreal brushStep = 0.5*brush.width + 0.5*brush.feather;
+ if(usePressure) brushStep = brushStep*tabletPressure;
+ brushStep = qMax(1.0, brushStep);
+ int steps = qRound( distance)/brushStep ;
+
+ for(int i=0; i<steps; i++) {
+ QPointF thePoint = lastBrushPoint + (i+1)*(brushStep)*(endPoint -lastBrushPoint)/distance;
+ drawBrush( thePoint, brushWidth, offset, brush.colour, opacity);
+ if(i==steps-1) lastBrushPoint = thePoint;
+ }
+
+ int rad = qRound(brushWidth / 2) + 3;
+ update(myTempView.mapRect(QRect(lastPoint.toPoint(), endPoint.toPoint()).normalized().adjusted(-rad, -rad, +rad, +rad)));
+ }
+ }
+ if(layer->type == Layer::VECTOR) {
+ if (toolMode == ScribbleArea::ERASER) {
+ bufferImg->drawLine(lastPixel, currentPixel, QPen(Qt::white, currentWidth, Qt::SolidLine, Qt::RoundCap,Qt::RoundJoin), QPainter::CompositionMode_SourceOver, antialiasing);
+ int rad = qRound( (currentWidth/2 + 2)*qAbs( myTempView.m11() ) );
+ update(QRect(lastPixel.toPoint(), endPixel.toPoint()).normalized().adjusted(-rad, -rad, +rad, +rad));
+ }
+ if(toolMode == ScribbleArea::PENCIL) {
+ bufferImg->drawLine(lastPixel, currentPixel, QPen(currentColour, 1, Qt::DotLine, Qt::RoundCap,Qt::RoundJoin), QPainter::CompositionMode_SourceOver, antialiasing);
+ int rad = qRound( ( currentWidth/2 + 2)*qAbs( myTempView.m11() ) );
+ update(QRect(lastPixel.toPoint(), endPixel.toPoint()).normalized().adjusted(-rad, -rad, +rad, +rad));
+ }
+ if(toolMode == ScribbleArea::PEN) {
+ bufferImg->drawLine(lastPixel, currentPixel, QPen(pen.colour, currentWidth*myTempView.m11(), Qt::SolidLine, Qt::RoundCap,Qt::RoundJoin), QPainter::CompositionMode_SourceOver, antialiasing);
+ int rad = qRound( (currentWidth/2 + 2)* (qAbs(myTempView.m11())+qAbs(myTempView.m22())) );
+ update(QRect(lastPixel.toPoint(), endPixel.toPoint()).normalized().adjusted(-rad, -rad, +rad, +rad));
+ }
+ if(toolMode == ScribbleArea::COLOURING) {
+ bufferImg->drawLine(lastPixel, currentPixel, QPen(Qt::gray, 1, Qt::DashLine, Qt::RoundCap,Qt::RoundJoin), QPainter::CompositionMode_SourceOver, antialiasing);
+ int rad = qRound( (currentWidth/2 + 2)*qAbs( myTempView.m11() ) );
+ update(QRect(lastPixel.toPoint(), endPixel.toPoint()).normalized().adjusted(-rad, -rad, +rad, +rad));
+ }
+ }
+
+ //emit modification();
+
+ lastPixel = endPixel;
+ lastPoint = endPoint;
+}
+
+void ScribbleArea::drawEyedropperPreview(const QColor colour) {
+ QPainter painter( eyedropperCursor );
+ painter.setPen(QPen(Qt::black, 1, Qt::SolidLine, Qt::RoundCap,Qt::RoundJoin));
+ painter.setBrush(colour);
+ painter.drawRect( 10, 10, 20, 20);
+ painter.end();
+ setCursor( QCursor(*eyedropperCursor, 5, 5) );
+}
+
+void ScribbleArea::drawPolyline() {
+ if(toolMode == POLYLINE) {
+ if(mousePoints.size()>0) {
+ QPen pen2(pen.colour, pen.width, Qt::SolidLine, Qt::RoundCap,Qt::RoundJoin);
+ QPainterPath tempPath = BezierCurve(mousePoints).getSimplePath();
+ tempPath.lineTo(currentPoint);
+ QRect updateRect = myTempView.mapRect(tempPath.boundingRect().toRect()).adjusted(-10,-10,10,10);
+ if(editor->getCurrentLayer()->type == Layer::VECTOR) {
+ tempPath = myTempView.map( tempPath );
+ if(makeInvisible) { pen2.setWidth(0); pen2.setStyle(Qt::DotLine);} else pen2.setWidth(pen.width*myTempView.m11());
+ }
+ bufferImg->clear();
+ bufferImg->drawPath( tempPath, pen2, Qt::NoBrush, QPainter::CompositionMode_SourceOver, antialiasing);
+ update( updateRect );
+ //update( QRect(lastPixel.toPoint(), currentPixel.toPoint()).normalized() );
+ //bufferImg->drawRect(tempPath.boundingRect().toRect());
+ //update( QRect(lastPixel.toPoint()-QPoint(10,10), lastPixel.toPoint()+QPoint(10,10)) );
+ //update();
+ }
+ }
+}
+
+void ScribbleArea::endPolyline()
+{
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return;
+ if(layer->type == Layer::VECTOR) {
+ BezierCurve curve = BezierCurve(mousePoints);
+ if(makeInvisible) curve.setWidth(0); else curve.setWidth(pen.width);
+ curve.setColourNumber( pen.colourNumber );
+ curve.setVariableWidth(false);
+ curve.setInvisibility(makeInvisible);
+ //curve.setSelected(true);
+ ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->addCurve(curve, qAbs(myTempView.m11()) );
+ }
+ if(layer->type == Layer::BITMAP) {
+ drawPolyline();
+ BitmapImage* bitmapImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+ bitmapImage->paste(bufferImg);
+ }
+ bufferImg->clear();
+ while(!mousePoints.isEmpty()) mousePoints.removeAt(0); // empty the mousePoints
+ setModified(editor->currentLayer, editor->currentFrame);
+}
+
+
+void ScribbleArea::resizeEvent(QResizeEvent *event)
+{
+ //resize( size() );
+ QWidget::resizeEvent(event);
+ canvas = QPixmap(size());
+ recentre();
+ updateAllFrames();
+}
+
+void ScribbleArea::recentre() {
+ centralView = QMatrix(1,0,0,1, 0.5*width(), 0.5*height());
+ setView();
+ QPixmapCache::clear();
+ update();
+}
+
+void ScribbleArea::setMyView(QMatrix view) {
+ myView = view;
+}
+
+QMatrix ScribbleArea::getMyView() {
+ return myView;
+}
+
+void ScribbleArea::setView() {
+ setView(getView());
+}
+
+void ScribbleArea::setView(QMatrix view) {
+ for(int i=0; i < editor->object->getLayerCount() ; i++) {
+ Layer* layer = editor->object->getLayer(i);
+ if(layer->type == Layer::VECTOR) {
+ ((LayerVector*)layer)->setView(view * centralView);
+ }
+ }
+ myTempView = view * centralView;
+}
+
+void ScribbleArea::resetView() {
+ editor->resetMirror();
+ myView.reset();
+ myTempView = myView * centralView;
+ recentre();
+}
+
+QMatrix ScribbleArea::getView() {
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return QMatrix(); // error
+ if(layer->type == Layer::CAMERA) {
+ return ((LayerCamera*)layer)->getViewAtFrame(editor->currentFrame);
+ qDebug() << "viewCamera" << ((LayerCamera*)layer)->getViewAtFrame(editor->currentFrame);
+ } else {
+ return myView;
+ }
+}
+
+QRectF ScribbleArea::getViewRect() {
+ QRectF rect = QRectF( -width()/2, -height()/2, width(), height() );
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return rect;
+ if(layer->type == Layer::CAMERA) {
+ return ((LayerCamera*)layer)->getViewRect();
+ } else {
+ return rect;
+ }
+}
+
+QPointF ScribbleArea::getCentralPoint() {
+ return myTempView.inverted().map( QPoint(width()/2, height()/2) );
+}
+
+void ScribbleArea::calculateSelectionRect() {
+ selectionTransformation.reset();
+ Layer* layer = editor->getCurrentLayer();
+ if(layer==NULL) return;
+ if(layer->type == Layer::VECTOR) {
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ vectorImage->calculateSelectionRect();
+ setSelection( vectorImage->getSelectionRect(), true );
+ }
+}
+
+void ScribbleArea::calculateSelectionTransformation() {
+ qreal c1x, c1y , c2x, c2y, scaleX, scaleY;
+ c1x = 0.5*(myTempTransformedSelection.left()+myTempTransformedSelection.right());
+ c1y = 0.5*(myTempTransformedSelection.top()+myTempTransformedSelection.bottom());
+ c2x = 0.5*(mySelection.left()+mySelection.right());
+ c2y = 0.5*(mySelection.top()+mySelection.bottom());
+ if(mySelection.width() == 0) { scaleX = 1.0; } else { scaleX = myTempTransformedSelection.width()/mySelection.width(); }
+ if(mySelection.height() == 0) { scaleY = 1.0; } else { scaleY = myTempTransformedSelection.height()/mySelection.height(); }
+ selectionTransformation.reset();
+ selectionTransformation.translate(c1x,c1y);
+ selectionTransformation.scale(scaleX, scaleY);
+ selectionTransformation.translate(-c2x,-c2y);
+ //modification();
+}
+
+void ScribbleArea::paintTransformedSelection() {
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return;
+
+ if(somethingSelected) { // there is something selected
+ if(layer->type == Layer::BITMAP && (myTransformedSelection != mySelection) ) {
+ //backup();
+ BitmapImage* bitmapImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+ if(bitmapImage == NULL) { qDebug() << "NULL image pointer!" << editor->currentLayer << editor->currentFrame; return; }
+
+ bool smoothTransform = false;
+ if(myTransformedSelection.width() != mySelection.width() || myTransformedSelection.height() != mySelection.height() ) smoothTransform = true;
+ BitmapImage selectionClip = bitmapImage->copy(mySelection.toRect());
+ selectionClip.transform( myTransformedSelection, smoothTransform );
+ bitmapImage->clear(mySelection.toRect());
+ bitmapImage->paste(&selectionClip);
+ }
+ if(layer->type == Layer::VECTOR) {
+ // vector transformation
+ LayerVector* layerVector = (LayerVector*)layer;
+ VectorImage* vectorImage = layerVector->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ vectorImage->applySelectionTransformation();
+ selectionTransformation.reset();
+ }
+ //deselectAll();
+ //emit modification();
+ setModified(editor->currentLayer, editor->currentFrame);
+ }
+}
+
+void ScribbleArea::setSelection(QRectF rect, bool trueOrFalse) {
+ mySelection = rect;
+ myTransformedSelection = rect;
+ myTempTransformedSelection = rect;
+ somethingSelected = trueOrFalse;
+ displaySelectionProperties();
+}
+
+void ScribbleArea::displaySelectionProperties() {
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return;
+ if(layer->type == Layer::VECTOR) {
+ LayerVector* layerVector = (LayerVector*)layer;
+ VectorImage* vectorImage = layerVector->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ //vectorImage->applySelectionTransformation();
+ if(toolMode == MOVE) {
+ //if(closestCurves.size()>0) {
+ int selectedCurve = vectorImage->getFirstSelectedCurve();
+ if(selectedCurve != -1) {
+ editor->setWidth(vectorImage->curve[selectedCurve].getWidth());
+ editor->setFeather(vectorImage->curve[selectedCurve].getFeather());
+ editor->setOpacity(0);
+ editor->setInvisibility(vectorImage->curve[selectedCurve].isInvisible());
+ editor->setPressure(vectorImage->curve[selectedCurve].getVariableWidth());
+ editor->selectColour(vectorImage->curve[selectedCurve].getColourNumber());
+ }
+
+ int selectedArea = vectorImage->getFirstSelectedArea();
+ if(selectedArea != -1) {
+ editor->selectColour(vectorImage->area[selectedArea].colourNumber);
+ //editor->setFeather(vectorImage->area[selectedArea].getFeather());
+ }
+ }
+ }
+}
+
+void ScribbleArea::selectAll() {
+ offset.setX(0); offset.setY(0);
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return;
+ if(layer->type == Layer::BITMAP) {
+ setSelection( myTempView.inverted().mapRect( QRect(-2,-2, width()+3, height()+3) ), true ); // TO BE IMPROVED
+ }
+ if(layer->type == Layer::VECTOR) {
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ vectorImage->selectAll();
+ setSelection( vectorImage->getSelectionRect(), true );
+ }
+ updateFrame();
+}
+
+void ScribbleArea::deselectAll() {
+ offset.setX(0); offset.setY(0);
+ selectionTransformation.reset();
+ mySelection.setRect(10,10,20,20);
+ myTransformedSelection.setRect(10,10,20,20);
+ myTempTransformedSelection.setRect(10,10,20,20);
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return;
+ if(layer->type == Layer::VECTOR) {
+ ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->deselectAll();
+ if(toolMode == MOVE) {
+ editor->setWidth(-1);
+ editor->setOpacity(-1);
+ editor->setInvisibility(-1);
+ editor->setPressure(-1);
+ }
+ }
+ somethingSelected = false;
+ bufferImg->clear();
+ vectorSelection.clear();
+ while(!mousePoints.isEmpty()) mousePoints.removeAt(0); // empty the mousePoints
+ updateFrame();
+}
+
+void ScribbleArea::onionChangeSlot1() {
+ onionChangeSlot(1);
+}
+
+void ScribbleArea::onionChangeSlot2() {
+ onionChangeSlot(2);
+}
+
+void ScribbleArea::onionIsOn() {
+ onion = !onion;
+ updateAllFrames();
+ ScribbleArea::setFocus();
+}
+
+void ScribbleArea::onionChangeSlot(int onionIndex) {
+ switch(onionIndex){
+ case 1 :{
+ ScribbleArea::onionStraightAhead = true;
+ ScribbleArea::onionInbetween = false;
+ break;
+ }
+ case 2 :{
+ ScribbleArea::onionStraightAhead = false;
+ ScribbleArea::onionInbetween = true;
+ break;
+ }
+ }
+ updateAllFrames();
+}
+
+void ScribbleArea::onionOpacityLevel(int opacityInteger) {
+ onionOpacity = (opacityInteger/100);
+ updateAllFrames();
+}
+
+void ScribbleArea::onionStraightAheadLevel(int numberOfFrames) {
+ onionStraightAheadFrames = numberOfFrames;
+ updateAllFrames();
+}
+
+void ScribbleArea::onionPreviousPreviousLevel(int boolean) {
+ if(boolean) onionPreviousPrevious = true;
+ else onionPreviousPrevious = false;
+ updateAllFrames();
+}
+
+void ScribbleArea::onionPreviousLevel(int boolean) {
+ if(boolean) onionPrevious = true;
+ else onionPrevious = false;
+ updateAllFrames();
+}
+
+void ScribbleArea::onionNextLevel(int boolean) {
+ if(boolean) onionNext = true;
+ else onionNext = false;
+ updateAllFrames();
+}
+
+void ScribbleArea::onionNextNextLevel(int boolean) {
+ if(boolean) onionNextNext = true;
+ else onionNextNext = false;
+ updateAllFrames();
+}
+
+void ScribbleArea::floodFill(VectorImage* vectorImage, QPoint point, QRgb targetColour, QRgb replacementColour, int tolerance) {
+ bool invertible;
+ QPointF initialPoint = myTempView.inverted(&invertible).map(QPointF(point));
+ // Step 1: peforms a standard (pixel-based) flood fill, and finds the vertices on the contour of the filled area
+ qreal tol = 8.0/qAbs(myTempView.m11()); // tolerance for finding vertices along the contour of the flood-filled area
+ qreal tol2 = 1.5/qAbs(myTempView.m11()); // tolerance for connecting contour vertices from different curves // should be small as close points of different curves are supposed to coincide
+ QList<QPoint> queue; // queue all the pixels of the filled area (as they are found)
+ QList<QPoint> contourPixels; // list of the pixels near the contour of the filled area
+ int j, k; bool condition;
+ //vectorImage->update(true, showThinLines); // update the vector image with simplified curves (all width=1)
+ QImage* targetImage = new QImage(size(), QImage::Format_ARGB32_Premultiplied);
+ vectorImage->outputImage(targetImage, size(), myTempView, true, showThinLines, 1.0, true, false); // the target image is the vector image with simplified curves (all width=1)
+ //QImage* replaceImage = &bufferImg;
+ QImage* replaceImage = new QImage( size(), QImage::Format_ARGB32_Premultiplied);
+ QList<VertexRef> points = vectorImage->getAllVertices(); // refs of all the points
+ QList<VertexRef> boxPoints; // refs of points inside the bounding box
+ QList<VertexRef> contourPoints; // refs of points near the contour pixels
+ QList<VertexRef> vertices;
+ if( BitmapImage::rgbDistance(targetImage->pixel(point.x(), point.y()), targetColour) > tolerance ) return;
+ queue.append( point );
+ int boxLeft = point.x();
+ int boxRight = point.x();
+ int boxTop = point.y();
+ int boxBottom = point.y();
+ // ----- flood fill and remember the contour pixels -> contourPixels
+ // ----- from the standard flood fill algorithm
+ // ----- http://en.wikipedia.org/wiki/Flood_fill
+ j = -1; k = 1;
+ for(int i=0; i< queue.size(); i++ ) {
+ point = queue.at(i);
+ if( replaceImage->pixel(point.x(), point.y()) != replacementColour && BitmapImage::rgbDistance(targetImage->pixel(point.x(), point.y()), targetColour) < tolerance ) {
+ //image.setPixel( point.x(), point.y(), replacementColour);
+ j = -1; condition = (point.x() + j > 0);
+ while( replaceImage->pixel(point.x()+j, point.y()) != replacementColour && BitmapImage::rgbDistance(targetImage->pixel( point.x()+j, point.y() ), targetColour) < tolerance && condition) {
+ j = j - 1;
+ condition = (point.x() + j > 0);
+ }
+ if(!condition) { floodFillError(1); return; }
+ if( BitmapImage::rgbDistance(targetImage->pixel( point.x()+j, point.y() ), targetColour) >= tolerance ) { // bumps into the contour
+ contourPixels.append( point+QPoint(j,0) );
+ }
+
+ k = 1; condition = ( point.x() + k < targetImage->width()-1);
+ while( replaceImage->pixel(point.x()+k, point.y()) != replacementColour && BitmapImage::rgbDistance(targetImage->pixel( point.x()+k, point.y() ), targetColour) < tolerance && condition) {
+ k = k + 1;
+ condition = ( point.x() + k < targetImage->width()-1);
+ }
+ if(!condition) { floodFillError(1); return; }
+ if( BitmapImage::rgbDistance(targetImage->pixel( point.x()+k, point.y() ), targetColour) >= tolerance ) { // bumps into the contour
+ contourPixels.append( point + QPoint(k,0) );
+ }
+ if(point.x()+k > boxRight) boxRight = point.x()+k;
+ if(point.x()+j < boxLeft) boxLeft = point.x()+j;
+ for(int x = j+1; x < k; x++) {
+ replaceImage->setPixel( point.x()+x, point.y(), replacementColour);
+ if(point.y() - 1 > 0 && queue.size() < targetImage->height() * targetImage->width() ) {
+ if( replaceImage->pixel(point.x()+x, point.y()-1) != replacementColour) {
+ if(BitmapImage::rgbDistance(targetImage->pixel( point.x()+x, point.y() - 1), targetColour) < tolerance) {
+ queue.append( point + QPoint(x,-1) );
+ if(point.y()-1< boxBottom) boxBottom = point.y()-1;
+ }
+ else { // bumps into the contour
+ contourPixels.append(point+QPoint(x,-1));
+ }
+ }
+ } else { floodFillError(1); return; }
+ if(point.y() + 1 < targetImage->height() && queue.size() < targetImage->height() * targetImage->width() ) {
+ if( replaceImage->pixel(point.x()+x, point.y()+1) != replacementColour) {
+ if(BitmapImage::rgbDistance(targetImage->pixel( point.x()+x, point.y() + 1), targetColour) < tolerance) {
+ queue.append( point + QPoint(x, 1) );
+ if(point.y()+1> boxTop) boxTop = point.y()+1;
+ }
+ else { // bumps into the contour
+ contourPixels.append(point+QPoint(x,1));
+ }
+ }
+ } else { floodFillError(1); return; }
+ }
+ }
+ }
+ // --- finds the bounding box of the filled area, and all the points contained inside (+ 1*tol) -> boxPoints
+ QPointF mBoxTopRight = myTempView.inverted(&invertible).map( QPointF(qMax(boxLeft,boxRight)+1*tol, qMax(boxTop,boxBottom)+1*tol) );
+ QPointF mBoxBottomLeft = myTempView.inverted(&invertible).map( QPointF(qMin(boxLeft,boxRight)-1*tol, qMin(boxTop,boxBottom)-1*tol) );
+ QRectF boundingBox = QRectF( mBoxBottomLeft.x()-1, mBoxBottomLeft.y()-1, qAbs(mBoxBottomLeft.x()-mBoxTopRight.x())+2, qAbs(mBoxBottomLeft.y()-mBoxTopRight.y())+2 );
+ debugRect = QRectF(0,0,0,0);
+ debugRect = boundingBox;
+ for(int l=0; l<points.size(); l++) {
+ QPointF mPoint = vectorImage->getVertex(points.at(l));
+ if( boundingBox.contains( mPoint ) ) {
+ // -----
+ //vectorImage->setSelected(points.at(l), true);
+ boxPoints.append( points.at(l) );
+ }
+ }
+ // ---- finds the points near the contourPixels -> contourPoints
+ for(int i=0; i< contourPixels.size(); i++ ) {
+ QPointF mPoint = myTempView.inverted(&invertible).map( QPointF( contourPixels.at(i) ) );
+ vertices = vectorImage->getAndRemoveVerticesCloseTo(mPoint, tol, &boxPoints);
+ //contourPoints << vertices;
+ for(int m=0; m<vertices.size(); m++) { // for each ?
+ contourPoints.append( vertices.at(m) );
+ }
+ }
+ // ---- points of sharp peaks may be missing in contourPoints ---> we correct for that
+ for(int i=0; i< contourPoints.size(); i++) {
+ VertexRef theNextVertex = contourPoints[i].nextVertex();
+ if( ! contourPoints.contains(theNextVertex) ) { // if the next vertex is not in the list of contour points
+ if( contourPoints.contains( theNextVertex.nextVertex() ) ) { // but the next-next vertex is...
+ contourPoints.append( theNextVertex );
+ //qDebug() << "----- found SHARP point (type 1a) ------";
+ }
+ QList<VertexRef> closePoints = vectorImage->getVerticesCloseTo( theNextVertex, tol2 );
+ for( int j=0; j<closePoints.size(); j++ ) {
+ if( closePoints[j] != theNextVertex ) { // ...or a point connected to the next vertex is
+ if( contourPoints.contains(closePoints[j].nextVertex()) || contourPoints.contains(closePoints[j].prevVertex()) ) {
+ contourPoints.append( theNextVertex );
+ contourPoints.append( closePoints[j] );
+ //qDebug() << "----- found SHARP point (type 2a) ------";
+ }
+ }
+ }
+ }
+ VertexRef thePreviousVertex = contourPoints[i].prevVertex();
+ if( ! contourPoints.contains(thePreviousVertex) ) { // if the previous vertex is not in the list of contour points
+ if( contourPoints.contains( thePreviousVertex.prevVertex() ) ) { // but the prev-prev vertex is...
+ contourPoints.append( thePreviousVertex );
+ //qDebug() << "----- found SHARP point (type 1b) ------";
+ }
+ QList<VertexRef> closePoints = vectorImage->getVerticesCloseTo( thePreviousVertex, tol2 );
+ for( int j=0; j<closePoints.size(); j++ ) {
+ if( closePoints[j] != thePreviousVertex ) { // ...or a point connected to the previous vertex is
+ if( contourPoints.contains(closePoints[j].nextVertex()) || contourPoints.contains(closePoints[j].prevVertex()) ) {
+ contourPoints.append( thePreviousVertex );
+ contourPoints.append( closePoints[j] );
+ //qDebug() << "----- found SHARP point (type 2b) ------";
+ }
+ }
+ }
+ }
+ }
+
+ // 1 --- stop here (for debugging purpose)
+ /*qDebug() << "CONTOUR POINTS:";
+ for(int i=0; i < contourPoints.size(); i++) {
+ qDebug() << "(" << contourPoints.at(i).curveNumber << "," << contourPoints.at(i).vertexNumber << ")";
+ }*/
+ // -----
+ vectorImage->setSelected( contourPoints, true);
+ update();
+ //replaceImage->fill(qRgba(0,0,0,0));
+ //QMessageBox::warning(this, tr("My Application"), tr("all the contour points"), QMessageBox::Ok, QMessageBox::Ok);
+ //vectorImage->deselectAll();
+ //return;
+ // 2 --- or continue
+
+ // Step 2: finds closed paths among the selected vertices: we start from a vertex and build a tree of connected vertices
+ //while(contourPoints.size() > 0) {
+ QList<VertexRef> tree;
+ QList<int> fatherNode; // given the index in tree (of a vertex), return the index (in tree) of its father vertex; this will define the tree structure
+ QList<int> leaves; // list of indices in tree which correspond to end of branches (leaves)
+
+ // Step 2.1: build tree
+ int rootIndex = -1; bool rootIndexFound = false;
+ while(!rootIndexFound && rootIndex < contourPoints.size()-1) {
+ rootIndex++;
+ if( vectorImage->getVerticesCloseTo( vectorImage->getVertex(contourPoints.at(rootIndex)), tol2, &contourPoints).size() > 1) {
+ // this point is connected!
+ rootIndexFound = true;
+ }
+ }
+ if(!rootIndexFound) { floodFillError(3); return; }
+ tree << contourPoints.at(rootIndex);
+ fatherNode.append(-1);
+ //leaves << 0;
+ contourPoints.removeAt(rootIndex);
+ VertexRef vertex0 = tree.at(0);
+ //qDebug() << "ROOT = " << vertex0.curveNumber << "," << vertex0.vertexNumber;
+ j=0;
+ bool success = false;
+ int counter = 0;
+ while(!success && j>-1 && counter<1000) {
+ counter++;
+ //qDebug() << "------";
+ VertexRef vertex = tree.at(j);
+ //qDebug() << j << "/" << tree.size() << " " << vertex.curveNumber << "," << vertex.vertexNumber << "->" << fatherNode.at(j);
+ int index1 = contourPoints.indexOf(vertex.nextVertex());
+ if( index1 != -1) {
+ //qDebug() << "next vertex";
+ tree.append(vertex.nextVertex());
+ fatherNode.append(j);
+ contourPoints.removeAt(index1);
+ j = tree.size()-1;
+ } else {
+ int index2 = contourPoints.indexOf(vertex.prevVertex());
+ if( index2 != -1 ) {
+ // qDebug() << "previous vertex";
+ tree.append(vertex.prevVertex());
+ fatherNode.append(j);
+ contourPoints.removeAt(index2);
+ j = tree.size()-1;
+ } else {
+ QList<VertexRef> pointsNearby = vectorImage->getVerticesCloseTo( vectorImage->getVertex(vertex), tol2, &contourPoints);
+ if(pointsNearby.size() > 0) {
+ //qDebug() << "close vertex";
+ tree << pointsNearby.at(0);
+ fatherNode.append(j);
+ contourPoints.removeAt( contourPoints.indexOf(pointsNearby.at(0)) );
+ j = tree.size()-1;
+ } else {
+ qreal dist = vectorImage->getDistance(vertex, vertex0);
+ //qDebug() << "is it a leave ? " << j << "dist = " << dist << "-" << tol2;
+ if( ((vertex.curveNumber == vertex0.curveNumber) && (qAbs(vertex.vertexNumber-vertex0.vertexNumber)==1)) || (dist < tol2) ) {
+ // we found a leaf close to the root of the tree - does the closed path contain the initial point?
+ QList<VertexRef> closedPath;
+ int pathIndex = j;
+ if(dist > 0) closedPath.prepend(vertex0);
+ closedPath.prepend(tree.at(pathIndex));
+ while( (pathIndex = fatherNode.at(pathIndex)) != -1) {
+ closedPath.prepend(tree.at(pathIndex));
+ }
+ BezierArea newArea = BezierArea( closedPath, brush.colourNumber );
+ vectorImage->updateArea(newArea);
+ if( newArea.path.contains(initialPoint) ) {
+ vectorImage->addArea( newArea );
+ //qDebug() << "Yes!";
+ success = true;
+ } else {
+ //qDebug() << "No! almost";
+ j = fatherNode.at(j);
+ }
+ } else {
+ //qDebug() << "No!";
+ leaves << j;
+ j = fatherNode.at(j);
+ }
+ }
+ }
+ }
+
+ //
+ }
+
+ if(!success) { floodFillError(2); return; }
+ //qDebug() << "failure!" << contourPoints.size();
+ replaceImage->fill(qRgba(0,0,0,0));
+ deselectAll();
+
+ // -- debug --- (display tree)
+ /*for(int indexm=0; indexm < tree.size(); indexm++) {
+ qDebug() << indexm << ") " << tree.at(indexm).curveNumber << "," << tree.at(indexm).vertexNumber << " -> " << fatherNode.at(indexm);
+ //if(leaves.contains(indexm)) vectorImage->setSelected( tree.at(indexm), true);
+ vectorImage->setSelected( tree.at(indexm), true);
+ update();
+ //sleep( 1 );
+ QMessageBox::warning(this, tr("My Application"), tr("all the tree points"), QMessageBox::Ok, QMessageBox::Ok);
+ }*/
+ delete targetImage;
+ update();
+}
+
+void ScribbleArea::floodFillError(int errorType) {
+ QString message, error;
+ if(errorType == 1) message = "There is a gap in your drawing (or maybe you have zoomed too much).";
+ if(errorType == 2 || errorType == 3) message = "Sorry! This doesn't always work."
+ "Please try again (zoom a bit, click at another location... )<br>"
+ "if it doesn't work, zoom a bit and check that your paths are connected by pressing F1.).";
+
+ if(errorType == 1) error = "Out of bound.";
+ if(errorType == 2) error = "Could not find a closed path.";
+ if(errorType == 3) error = "Could not find the root index.";
+ QMessageBox::warning(this, tr("Flood fill error"), message+"<br><br>Error: "+error, QMessageBox::Ok, QMessageBox::Ok);
+ bufferImg->clear();
+ deselectAll();
+}
+
+
+void ScribbleArea::switchTool() {
+ if(toolMode == ScribbleArea::MOVE) { paintTransformedSelection(); deselectAll(); }
+ if(toolMode == ScribbleArea::POLYLINE) escape();
+}
+
+void ScribbleArea::updateCursor() {
+ if(toolMode == PENCIL) {
+ if(toolCursors) {
+ QCursor cursor(QPixmap(":icons/pencil2.png"),0,16);
+ setCursor(cursor);
+ } else {
+ setCursor(Qt::CrossCursor);
+ }
+ }
+ if(toolMode == PEN) {
+ if(toolCursors) {
+ QCursor cursor(QPixmap(":icons/pen.png"),7,0);
+ setCursor(cursor);
+ } else {
+ setCursor(Qt::CrossCursor);
+ }
+ }
+ if(toolMode == ERASER) {
+ QPixmap pixmap(eraser.width,eraser.width);
+ pixmap.fill( QColor(255,255,255,0) );
+ QPainter painter(&pixmap);
+ painter.setPen( QColor(0,0,0,190) );
+ painter.setBrush( QColor(255,255,255,100) );
+ painter.drawLine( QPointF(eraser.width/2-2,eraser.width/2), QPointF(eraser.width/2+2,eraser.width/2) );
+ painter.drawLine( QPointF(eraser.width/2,eraser.width/2-2), QPointF(eraser.width/2,eraser.width/2+2) );
+ painter.setRenderHints(QPainter::Antialiasing, true);
+ painter.setPen( QColor(0,0,0,100) );
+ painter.drawEllipse( QRectF(1,1,eraser.width-2,eraser.width-2) );
+ painter.end();
+ setCursor(pixmap); //setCursor(Qt::CrossCursor);
+ }
+ if(toolMode == BUCKET) {
+ if(toolCursors) {
+ QPixmap pixmap(":icons/bucketTool.png");
+ QPainter painter(&pixmap);
+ painter.setPen( brush.colour );
+ painter.drawLine( QPoint(5,16), QPoint(5,18) );
+ painter.end();
+ QCursor cursor(pixmap,4,20);
+ setCursor(cursor);
+ } else {
+ setCursor(Qt::CrossCursor);
+ }
+ }
+ if(toolMode == EYEDROPPER) {
+ if(eyedropperCursor == NULL) {
+ eyedropperCursor = new QPixmap(32,32);
+ eyedropperCursor->fill(Qt::white);
+ QPixmap* mask = new QPixmap(32,32);
+ mask->fill(Qt::color0);
+ QPainter painter(eyedropperCursor);
+ painter.drawLine(5,0,5,10);
+ painter.drawLine(0,5,10,5);
+ painter.end();
+ painter.begin(mask);
+ painter.setBrush(Qt::color1);
+ painter.setPen(Qt::color1);
+ painter.drawLine(5,0,5,10);
+ painter.drawLine(0,5,10,5);
+ painter.drawRect(10,10,20,20);
+ painter.end();
+ eyedropperCursor->setMask(*mask);
+ }
+ setCursor( QCursor(*eyedropperCursor, 5, 5) );
+ }
+ if(toolMode == SELECT) {
+ Layer* layer = editor->getCurrentLayer();
+ if(layer->type == Layer::VECTOR) setCursor(Qt::ArrowCursor);
+ if(layer->type == Layer::BITMAP) setCursor(Qt::CrossCursor);
+ }
+ if(toolMode == MOVE) {
+ setCursor(Qt::ArrowCursor);
+ }
+ if(toolMode == HAND) {
+ QPixmap pixmap(":icons/hand.png");
+ setCursor(pixmap); //setCursor(Qt::PointingHandCursor);
+ }
+ if(toolMode == POLYLINE) {
+ setCursor(Qt::CrossCursor);
+ }
+ if(toolMode == COLOURING) {
+ Layer* layer = editor->getCurrentLayer();
+ if(layer->type == Layer::VECTOR) {
+ setCursor(Qt::CrossCursor);
+ }
+ if(layer->type == Layer::BITMAP) {
+ //qreal width = brush.width*0.66;
+ qreal width = brush.width + 0.5*brush.feather;
+ QPixmap pixmap(width,width);
+ if(!pixmap.isNull()) {
+ pixmap.fill( QColor(255,255,255,0) );
+ QPainter painter(&pixmap);
+ painter.setPen( QColor(0,0,0,190) );
+ painter.setBrush( Qt::NoBrush );
+ painter.drawLine( QPointF(width/2-2,width/2), QPointF(width/2+2,width/2) );
+ painter.drawLine( QPointF(width/2,width/2-2), QPointF(width/2,width/2+2) );
+ painter.setRenderHints(QPainter::Antialiasing, true);
+ painter.setPen( QColor(0,0,0,100) );
+ painter.drawEllipse( QRectF(1+brush.feather/2,1+brush.feather/2,qMax(0.0,brush.width-brush.feather/2-2),qMax(0.0,brush.width-brush.feather/2-2)) );
+ painter.setPen( QColor(0,0,0,50) );
+ painter.drawEllipse( QRectF(1+brush.feather/8,1+brush.feather/8,qMax(0.0,width-brush.feather/4-2),qMax(0.0,width-brush.feather/4-2)) );
+ painter.end();
+ }
+ setCursor(pixmap);
+ }
+ }
+ if(toolMode == EDIT) {
+ QCursor cursor(QPixmap(":icons/smudge.png"),3,16);
+ setCursor(cursor); //setCursor(Qt::ArrowCursor);
+ }
+}
+
+void ScribbleArea::pencilOn() {
+ switchTool();
+ toolMode = ScribbleArea::PENCIL;
+ // --- change properties ---
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return;
+ if(layer->type == Layer::VECTOR) editor->selectColour(pencil.colourNumber);
+ if(layer->type == Layer::BITMAP) editor->setColour(pencil.colour);
+ editor->setWidth(pencil.width);
+ editor->setFeather(pencil.feather);
+ editor->setFeather(-1); // by definition the pencil has no feather
+ editor->setOpacity(pencil.opacity);
+ editor->setPressure(pencil.pressure);
+ editor->setInvisibility(pencil.invisibility);
+ editor->setPreserveAlpha(pencil.preserveAlpha);
+ editor->setFollowContour(-1);
+ editor->setInvisibility(-1); // by definition the pencil is invisible in vector mode
+ // --- change cursor ---
+ updateCursor();
+}
+
+void ScribbleArea::penOn() {
+ switchTool();
+ toolMode = ScribbleArea::PEN;
+ // --- change properties ---
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return;
+ if(layer->type == Layer::VECTOR) editor->selectColour(pen.colourNumber);
+ if(layer->type == Layer::BITMAP) editor->setColour(pen.colour);
+ if(pen.width<0) pen.width = 1.0; editor->setWidth(pen.width);
+ if(pen.feather<0) pen.feather = 0.0; editor->setFeather(pen.feather); editor->setFeather(-1);
+ if(pen.opacity<0) pen.opacity = 1.0; editor->setOpacity(pen.opacity);
+ editor->setPressure(pen.pressure);
+ editor->setInvisibility(pen.invisibility);
+ editor->setPreserveAlpha(pen.preserveAlpha);
+ editor->setFollowContour(-1);
+ editor->setInvisibility(-1); // by definition the pen is visible in vector mode
+ // --- change cursor ---
+ updateCursor();
+}
+
+void ScribbleArea::eraserOn() {
+ switchTool();
+ toolMode = ScribbleArea::ERASER;
+ // --- change properties ---
+ editor->setWidth(eraser.width);
+ editor->setFeather(eraser.feather); editor->setFeather(-1);
+ editor->setOpacity(eraser.opacity);
+ editor->setPressure(eraser.pressure);
+ editor->setPreserveAlpha(0);
+ editor->setPreserveAlpha(-1);
+ editor->setFollowContour(-1);
+ editor->setInvisibility(0);
+ editor->setInvisibility(-1);
+ // --- change cursor ---
+ updateCursor();
+}
+
+void ScribbleArea::selectOn() {
+ switchTool();
+ toolMode = ScribbleArea::SELECT;
+ // --- change properties ---
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return;
+ editor->setWidth(-1);
+ editor->setFeather(-1);
+ editor->setOpacity(-1);
+ editor->setPressure(-1);
+ editor->setInvisibility(-1);
+ editor->setPreserveAlpha(-1);
+ editor->setFollowContour(-1);
+ // --- change cursor ---
+ updateCursor();
+}
+
+void ScribbleArea::moveOn() {
+ toolMode = ScribbleArea::MOVE;
+ // --- change properties ---
+ editor->setWidth(-1);
+ editor->setFeather(-1);
+ editor->setOpacity(-1);
+ editor->setPressure(-1);
+ editor->setInvisibility(-1);
+ editor->setPreserveAlpha(-1);
+ editor->setFollowContour(-1);
+ // --- change cursor ---
+ updateCursor();
+}
+
+void ScribbleArea::handOn() {
+ if(toolMode == ScribbleArea::HAND) resetView();
+ toolMode = ScribbleArea::HAND;
+ // --- change properties ---
+ editor->setWidth(-1);
+ editor->setFeather(-1);
+ editor->setOpacity(-1);
+ editor->setPressure(-1);
+ editor->setInvisibility(-1);
+ editor->setPreserveAlpha(-1);
+ editor->setFollowContour(-1);
+ // --- change cursor ---
+ updateCursor();
+}
+
+void ScribbleArea::polylineOn() {
+ switchTool();
+ toolMode = ScribbleArea::POLYLINE;
+ // --- change properties ---
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return;
+ if(layer->type == Layer::VECTOR) editor->selectColour(pen.colourNumber);
+ if(layer->type == Layer::BITMAP) editor->setColour(pen.colour);
+ editor->setWidth(pen.width);
+ editor->setFeather(pen.feather); editor->setFeather(-1);
+ editor->setOpacity(pen.opacity);
+ editor->setPressure(pen.pressure);
+ editor->setInvisibility(pen.invisibility);
+ editor->setPreserveAlpha(pen.preserveAlpha);
+ editor->setFollowContour(-1);
+ // --- change cursor ---
+ updateCursor();
+}
+
+void ScribbleArea::bucketOn() {
+ switchTool();
+ toolMode = ScribbleArea::BUCKET;
+ // --- change properties ---
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return;
+ if(layer->type == Layer::VECTOR) editor->selectColour(brush.colourNumber);
+ if(layer->type == Layer::BITMAP) editor->setColour(brush.colour);
+ editor->setWidth(-1);
+ editor->setFeather(brush.feather); editor->setFeather(-1);
+ editor->setOpacity(1); // the bucket has full opacity (but one should be able to use it with translucent colours)
+ editor->setOpacity(-1); // disable the button
+ editor->setPressure(0);
+ editor->setPressure(-1); // disable the button
+ editor->setInvisibility(0);
+ editor->setInvisibility(-1); // disable the button
+ editor->setPreserveAlpha(0);
+ editor->setPreserveAlpha(-1); // disable the button
+ editor->setFollowContour(-1);
+ // --- change cursor ---
+ updateCursor();
+}
+
+void ScribbleArea::eyedropperOn() {
+ switchTool();
+ toolMode = ScribbleArea::EYEDROPPER;
+ // --- change properties ---
+ editor->setWidth(-1);
+ editor->setFeather(-1);
+ editor->setOpacity(-1);
+ editor->setPressure(-1);
+ editor->setInvisibility(0);
+ editor->setInvisibility(-1);
+ editor->setPreserveAlpha(0);
+ editor->setPreserveAlpha(-1);
+ editor->setFollowContour(-1);
+ // --- change cursor ---
+ updateCursor();
+}
+
+void ScribbleArea::colouringOn() {
+ switchTool();
+ toolMode = ScribbleArea::COLOURING;
+ // --- change properties ---
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return;
+ if(layer->type == Layer::VECTOR) editor->selectColour(brush.colourNumber);
+ if(layer->type == Layer::BITMAP) editor->setColour(brush.colour);
+ editor->setWidth(brush.width);
+ editor->setFeather(brush.feather);
+ editor->setOpacity(brush.opacity);
+ editor->setPressure(brush.pressure);
+ editor->setPreserveAlpha(brush.preserveAlpha);
+ editor->setFollowContour(followContour);
+ editor->setInvisibility(0);
+ editor->setInvisibility(-1);
+ // --- change cursor ---
+ updateCursor();
+}
+
+void ScribbleArea::smudgeOn() {
+ switchTool();
+ toolMode = EDIT;
+ // --- change properties ---
+ editor->setWidth(-1);
+ editor->setFeather(-1);
+ editor->setOpacity(-1);
+ editor->setPressure(-1);
+ editor->setInvisibility(0);
+ editor->setInvisibility(-1);
+ editor->setPreserveAlpha(0);
+ editor->setPreserveAlpha(-1);
+ editor->setFollowContour(-1);
+ // --- change cursor ---
+ updateCursor();
+}
+
+
+
+void ScribbleArea::deleteSelection() {
+ if( somethingSelected ) { // there is something selected
+ editor->backup();
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return;
+ closestCurves.clear();
+ if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->deleteSelection();
+ if(layer->type == Layer::BITMAP) ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0)->clear(mySelection);
+ updateAllFrames();
+ }
+}
+
+void ScribbleArea::clearImage() {
+ editor->backup();
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return;
+ if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->clear();
+ if(layer->type == Layer::BITMAP) ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0)->clear();
+ //emit modification();
+ //update();
+ setModified(editor->currentLayer, editor->currentFrame);
+}
+
+void ScribbleArea::toggleThinLines() {
+ showThinLines = !showThinLines;
+ emit thinLinesChanged(showThinLines);
+ setView(myView);
+ updateAllFrames();
+}
+
+void ScribbleArea::toggleOutlines() {
+ simplified = !simplified;
+ emit outlinesChanged(simplified);
+ setView(myView);
+ updateAllFrames();
+}
+
+void ScribbleArea::toggleMirror() {
+ myView = myView * QMatrix(-1, 0, 0, 1, 0, 0);
+ myTempView = myView * centralView;
+ setView(myView);
+ updateAllFrames();
+}
+
+void ScribbleArea::toggleShowAllLayers() {
+ showAllLayers++;
+ if(showAllLayers==3) showAllLayers = 0;
+ //emit showAllLayersChanged(showAllLayers);
+ setView(myView);
+ updateAllFrames();
+}
+
diff -rupN pencil_backup/src/interface/scribblearea.h pencil_dev/src/interface/scribblearea.h
--- pencil_backup/src/interface/scribblearea.h 2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/scribblearea.h 2009-10-01 19:47:12.000000000 -0500
@@ -106,6 +106,14 @@ signals:
void modification(int);
void thinLinesChanged(bool);
void outlinesChanged(bool);
+
+ void flipPrevious();
+ void flipNext();
+
+ void onionShortCut();
+ void straightAheadShortCut();
+ void inbetweenShortCut();
+
//void showAllLayersChanged(bool);
public slots:
@@ -118,9 +126,20 @@ public slots:
void selectAll();
void deselectAll();
- void onionPrevSlot();
- void onionNextSlot();
-
+ void onionIsOn();
+
+ void onionChangeSlot1();
+ void onionChangeSlot2();
+
+ void onionChangeSlot(int);
+
+ void onionOpacityLevel(int);
+ void onionStraightAheadLevel(int);
+ void onionPreviousPreviousLevel(int);
+ void onionPreviousLevel(int);
+ void onionNextLevel(int);
+ void onionNextNextLevel(int);
+
//void pressureSlot(int);
//void invisibleSlot(int);
@@ -219,7 +238,11 @@ private:
int gradients;
qreal curveOpacity;
qreal curveSmoothing;
- bool onionPrev, onionNext;
+ bool onion, onionStraightAhead, onionInbetween;
+
+ float onionOpacity;
+ int onionStraightAheadFrames;
+ bool onionPreviousPrevious, onionPrevious, onionNext, onionNextNext;
Properties pencil;
Properties pen;
diff -rupN pencil_backup/src/interface/scribblearea.h~ pencil_dev/src/interface/scribblearea.h~
--- pencil_backup/src/interface/scribblearea.h~ 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/scribblearea.h~ 2009-10-01 19:46:18.000000000 -0500
@@ -0,0 +1,298 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+*/
+#ifndef SCRIBBLEAREA_H
+#define SCRIBBLEAREA_H
+
+#include <QColor>
+#include <QImage>
+#include <QPoint>
+#include <QWidget>
+#include <QGLWidget>
+#include <QFrame>
+#include "vectorimage.h"
+#include "bitmapimage.h"
+#include "colourref.h"
+
+class Editor;
+class Layer;
+
+class Properties
+{
+ public:
+ qreal width;
+ qreal feather;
+ qreal opacity;
+ QColor colour;
+ int colourNumber;
+ bool pressure;
+ bool invisibility;
+ bool preserveAlpha;
+};
+
+class VectorSelection
+{
+ public:
+ QList<VertexRef> vertex;
+ QList<int> curve;
+ //QList<int> area;
+ void clear();
+ void add(int curveNumber);
+ void add(QList<int> curveNumbers);
+ void add(VertexRef point);
+ void add(QList<VertexRef> points);
+};
+
+/*struct Buffer {
+ QList<QPoint> points;
+ QList<QColor> colours;
+};*/
+
+//class ScribbleArea : public QGLWidget
+class ScribbleArea : public QWidget
+{
+ Q_OBJECT
+
+public:
+ ScribbleArea(QWidget *parent = 0, Editor* editor = 0);
+
+ void next(const int &i);
+
+ void setColour(const int);
+ void setColour(const QColor);
+ void resetColours();
+
+ void deleteSelection();
+ void setSelection(QRectF rect, bool);
+ void displaySelectionProperties();
+ QRectF getSelection() { return mySelection; }
+ bool somethingSelected;
+ bool readCanvasFromCache;
+
+ bool isModified() const { return modified; }
+
+ static QBrush getBackgroundBrush(QString);
+ //QColor penColour() const { return myPenColour; }
+ //double pencilWidth() const { return myPencilWidth; }
+ //double penWidth() const { return myPenWidth; }
+ //double brushWidth() const { return myBrushWidth; }
+ bool thinLines() const { return showThinLines; }
+ int allLayers() const { return showAllLayers; }
+ QMatrix getView();
+ QRectF getViewRect();
+ QPointF getCentralPoint();
+
+ void updateFrame();
+ void updateFrame(int frame);
+ void updateAllFrames();
+ void updateAllVectorLayersAtCurrentFrame();
+ void updateAllVectorLayersAt(int frame);
+ void updateAllVectorLayers();
+
+signals:
+ void modification();
+ void modification(int);
+ void thinLinesChanged(bool);
+ void outlinesChanged(bool);
+
+ void flipPrevious();
+ void flipNext();
+
+ void onionShortCut();
+ void straightAheadShortCut();
+ void inbetweenShortCut();
+
+ //void showAllLayersChanged(bool);
+
+public slots:
+ void clearImage();
+ void calculateSelectionRect();
+ void calculateSelectionTransformation();
+ void paintTransformedSelection();
+ void setModified(int layerNumber, int frameNumber);
+
+ void selectAll();
+ void deselectAll();
+
+ void onionIsOn();
+
+ void onionChangeSlot1();
+ void onionChangeSlot2();
+
+ void onionChangeSlot(int);
+
+ void onionOpacityLevel(int);
+ void onionStraightAheadLevel(int);
+ void onionPreviousPreviousLevel(int);
+ void onionPreviousLevel(int);
+ void onionNextLevel(int);
+ void onionNextNextLevel(int);
+
+ //void pressureSlot(int);
+ //void invisibleSlot(int);
+
+ void pencilOn();
+ void eraserOn();
+ void selectOn();
+ void moveOn();
+ void handOn();
+ void resetView();
+ void setMyView(QMatrix view);
+ QMatrix getMyView();
+ void penOn();
+ void polylineOn();
+ void bucketOn();
+ void eyedropperOn();
+ void colouringOn();
+ void smudgeOn();
+
+ void setWidth(const qreal);
+ void setFeather(const qreal);
+ void setOpacity(const qreal);
+ void setPressure(const bool);
+ void setInvisibility(const bool);
+ void setPreserveAlpha(const bool);
+ void setFollowContour(const bool);
+
+ void setCurveOpacity(int);
+ void setCurveSmoothing(int);
+ void setHighResPosition(int);
+ void setAntialiasing(int);
+ void setGradients(int);
+ void setBackground(int);
+ void setBackgroundBrush(QString);
+ void setShadows(int);
+ void setToolCursors(int);
+ void setStyle(int);
+ void toggleThinLines();
+ void toggleOutlines();
+ void toggleMirror();
+ void toggleShowAllLayers();
+
+ void escape();
+ //void undo();
+ //void redo();
+ //void copy();
+ //void paste();
+
+protected:
+ void tabletEvent(QTabletEvent *event);
+ void mousePressEvent(QMouseEvent *event);
+ void mouseMoveEvent(QMouseEvent *event);
+ void mouseReleaseEvent(QMouseEvent *event);
+ void mouseDoubleClickEvent(QMouseEvent *event);
+ void keyPressEvent(QKeyEvent *event);
+ void keyReleaseEvent(QKeyEvent *event);
+ void paintEvent(QPaintEvent *event);
+ void resizeEvent(QResizeEvent *event);
+ void recentre();
+ void setView();
+ void setView(QMatrix);
+
+private:
+ void paintBitmapBuffer();
+ void updateCanvas(int frame, QRect rect);
+ void setGaussianGradient(QGradient &gradient, QColor coulour, qreal opacity, qreal offset);
+ void drawBrush(QPointF thePoint, qreal brushWidth, qreal offset, QColor fillColour, qreal opacity);
+ void drawLineTo(const QPointF &endPixel, const QPointF &endPoint);
+ void drawEyedropperPreview(const QColor colour);
+ void drawPolyline();
+ void endPolyline();
+ void updateCursor();
+
+ void floodFill(VectorImage* vectorImage, QPoint point, QRgb targetColour, QRgb replacementColour, int tolerance);
+ void floodFillError(int errorType);
+
+ enum myToolModes { PENCIL, ERASER, SELECT, MOVE, EDIT, HAND, SMUDGE, PEN, POLYLINE, BUCKET, EYEDROPPER, COLOURING };
+ enum myMoveModes { MIDDLE, TOPLEFT, TOPRIGHT, BOTTOMLEFT, BOTTOMRIGHT };
+ myToolModes toolMode;
+ myMoveModes moveMode;
+
+ void switchTool();
+
+ Editor* editor;
+
+ int tabletEraserBackupToolMode;
+ bool modified;
+ bool simplified;
+
+ bool showThinLines;
+ int showAllLayers;
+ bool usePressure, makeInvisible;
+ bool highResPosition;
+ bool antialiasing;
+ bool shadows;
+ bool toolCursors;
+ int gradients;
+ qreal curveOpacity;
+ qreal curveSmoothing;
+ bool onion, onionStraightAhead, onionInbetween;
+
+ int onionOpacity, onionStraightAheadFrames;
+ bool onionPreviousPrevious, onionPrevious, onionNext, onionNextNext;
+
+ Properties pencil;
+ Properties pen;
+ Properties brush;
+ Properties eraser;
+
+ qreal currentWidth;
+ QColor currentColour;
+ /*qreal myPencilWidth, currentPencilWidth;
+ qreal myPenWidth, currentPenWidth;
+ qreal myBrushWidth, currentBrushWidth;*/
+ //QColor myPenColour, myFillColour;
+ //int penColourNumber, fillColourNumber;
+ bool followContour;
+
+ QBrush backgroundBrush;
+ BitmapImage* bufferImg; // used to pre-draw vector modifications
+ //Buffer buffer; // used to pre-draw bitmap modifications, such as lines, brushes, etc.
+ QPixmap* eyedropperCursor;
+
+ bool mouseInUse;
+ QList<QPointF> mousePoints; // copy of points clicked using polyline tool
+ QList<QPointF> mousePath; // copy of points drawn using pencil, pen, eraser, etc, tools
+ QList<qreal> mousePressure;
+ QPointF lastPixel, currentPixel;
+ QPointF lastPoint, currentPoint;
+ QPointF lastBrushPoint;
+ //QBrush brush; // the current brush
+
+ qreal tol;
+ QList<int> closestCurves;
+ QList<VertexRef> closestVertices;
+ QPointF offset;
+
+ VectorSelection vectorSelection;
+ //bool selectionChanged;
+ QMatrix selectionTransformation;
+ QRectF mySelection, myTransformedSelection, myTempTransformedSelection;
+
+ bool tabletInUse;
+ qreal tabletPressure;
+ QPointF tabletPosition;
+
+ QMatrix myView, myTempView, centralView, transMatrix;
+
+ QPixmap canvas;
+
+ // debug
+ QRectF debugRect;
+};
+
+#endif
+
+
diff -rupN pencil_backup/src/interface/timeline.cpp pencil_dev/src/interface/timeline.cpp
--- pencil_backup/src/interface/timeline.cpp 2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/timeline.cpp 2009-10-01 18:19:28.000000000 -0500
@@ -126,22 +126,28 @@ TimeLine::TimeLine(QWidget *parent, Edit
// --------- Onion skin buttons ---------
//QFrame* onionButtons = new QFrame(this);
QToolBar* onionButtons = new QToolBar(this);
+ QButtonGroup* onionRadio = new QButtonGroup();
//onionButtons->setFixedWidth(90);
//QHBoxLayout* onionButtonsLayout = new QHBoxLayout();
QLabel* onionLabel = new QLabel(tr("Onion skin:"));
onionLabel->setFont( QFont("Helvetica", 10) );
onionLabel->setIndent(5);
- QToolButton* onionPrevButton = new QToolButton(this);
- onionPrevButton->setIcon(QIcon(":icons/onionPrev.png"));
- onionPrevButton->setToolTip("Show previous frame");
- onionPrevButton->setFixedSize(24,24);
- onionPrevButton->setCheckable(true);
- onionPrevButton->setChecked(true);
- QToolButton* onionNextButton = new QToolButton(this);
- onionNextButton->setIcon(QIcon(":icons/onionNext.png"));
- onionNextButton->setToolTip("Show next frame");
- onionNextButton->setFixedSize(24,24);
- onionNextButton->setCheckable(true);
+ QCheckBox* onionCheck = new QCheckBox(this);
+ onionCheck->setToolTip("Enable or disable onion skin");
+ onionCheck->setCheckable(true);
+ QToolButton* onionStraightAheadButton = new QToolButton(this);
+ onionStraightAheadButton->setIcon(QIcon(":icons/onionStraightAhead.png"));
+ onionStraightAheadButton->setToolTip("Show frames for straight ahead");
+ onionStraightAheadButton->setFixedSize(24,25);
+ onionStraightAheadButton->setCheckable(true);
+ onionStraightAheadButton->setChecked(true);
+ onionStraightAheadButton->setAutoExclusive(true);
+ QToolButton* onionInbetweenButton = new QToolButton(this);
+ onionInbetweenButton->setIcon(QIcon(":icons/onionInbetween.png"));
+ onionInbetweenButton->setToolTip("Show frames for inbetweening");
+ onionInbetweenButton->setFixedSize(28,25);
+ onionInbetweenButton->setCheckable(true);
+ onionInbetweenButton->setAutoExclusive(true);
/*onionButtonsLayout->addWidget(onionLabel);
onionButtonsLayout->addWidget(onionPrevButton);
onionButtonsLayout->addWidget(onionNextButton);
@@ -151,8 +157,13 @@ TimeLine::TimeLine(QWidget *parent, Edit
onionButtons->setLayout(onionButtonsLayout);*/
onionButtons->addSeparator();
onionButtons->addWidget(onionLabel);
- onionButtons->addWidget(onionPrevButton);
- onionButtons->addWidget(onionNextButton);
+ onionButtons->addWidget(onionCheck);
+ onionRadio->addButton(onionStraightAheadButton);
+ onionRadio->addButton(onionInbetweenButton);
+ onionRadio->setId(onionStraightAheadButton, 1);
+ onionRadio->setId(onionInbetweenButton, 2);
+ onionButtons->addWidget(onionStraightAheadButton);
+ onionButtons->addWidget(onionInbetweenButton);
// --------- Time controls ---------
@@ -217,8 +228,12 @@ TimeLine::TimeLine(QWidget *parent, Edit
connect(addKeyButton, SIGNAL(clicked()), this, SIGNAL(addKeyClick()));
connect(removeKeyButton, SIGNAL(clicked()), this, SIGNAL(removeKeyClick()));
- connect(onionPrevButton, SIGNAL(clicked()), this, SIGNAL(onionPrevClick()));
- connect(onionNextButton, SIGNAL(clicked()), this, SIGNAL(onionNextClick()));
+ connect(this, SIGNAL(onionKey()), onionCheck, SLOT(click()));
+ connect(this, SIGNAL(straightAheadKey()), onionStraightAheadButton, SLOT(click()));
+ connect(this, SIGNAL(inbetweenKey()), onionInbetweenButton, SLOT(click()));
+
+ connect(onionCheck, SIGNAL(clicked()), this, SIGNAL(onionChecked()));
+ connect(onionRadio, SIGNAL(buttonClicked(int)), this, SIGNAL(onionType(int)));
connect(timeControls, SIGNAL(playClick()), this, SIGNAL(playClick()));
connect(timeControls, SIGNAL(loopClick()), this, SIGNAL(loopClick()));
@@ -276,6 +291,20 @@ void TimeLine::updateContent() {
update();
}
+/*
+void TimeLine::onionKey() {
+ onionclick();
+}
+
+void TimeLine::straightAheadKey() {
+ onionStraightAheadButton->click();
+}
+
+void TimeLine::inbetweenKey() {
+ onionInbetweenButton->click();
+}
+*/
+
/*void TimeLine::mousePressEvent(QMouseEvent *event) {
//int frameNumber = getFrameNumber(event->pos().x());
int layerNumber = getLayerNumber(event->pos().y());
diff -rupN pencil_backup/src/interface/timeline.cpp~ pencil_dev/src/interface/timeline.cpp~
--- pencil_backup/src/interface/timeline.cpp~ 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/timeline.cpp~ 2009-10-01 18:16:41.000000000 -0500
@@ -0,0 +1,747 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+*/
+#include <QtGui>
+#include "timeline.h"
+#include "editor.h"
+#include "toolset.h"
+#include "timecontrols.h"
+
+TimeLine::TimeLine(QWidget *parent, Editor *editor) : QDockWidget(parent, Qt::Tool) // DockPalette("")
+{
+ QWidget* timeLineContent = new QWidget(this);
+
+ list = new TimeLineCells(this, editor, "layers");
+ cells = new TimeLineCells(this, editor, "tracks");
+ connect(list, SIGNAL(mouseMovedY(int)), list, SLOT(setMouseMoveY(int)));
+ connect(list, SIGNAL(mouseMovedY(int)), cells, SLOT(setMouseMoveY(int)));
+
+ numberOfLayers = 0;
+ hScrollBar = new QScrollBar(Qt::Horizontal);
+ vScrollBar = new QScrollBar(Qt::Vertical);
+ vScrollBar->setMinimum(0);
+ vScrollBar->setMaximum(1);
+ vScrollBar->setPageStep(1);
+
+ QWidget* leftWidget = new QWidget();
+ leftWidget->setMinimumWidth(120);
+ QWidget* rightWidget = new QWidget();
+
+ QWidget* leftToolBar = new QWidget();
+ leftToolBar->setFixedHeight(31);
+ QWidget* rightToolBar = new QWidget();
+ rightToolBar->setFixedHeight(31);
+
+ // --- left widget ---
+ // --------- layer buttons ---------
+ //QFrame* layerButtons = new QFrame(this);
+ QToolBar* layerButtons = new QToolBar(this);
+ //QHBoxLayout* layerButtonLayout = new QHBoxLayout();
+ QLabel* layerLabel = new QLabel(tr("Layers:"));
+ layerLabel->setIndent(5);
+ layerLabel->setFont( QFont("Helvetica", 10) );
+ QToolButton* addLayerButton = new QToolButton(this);
+ addLayerButton->setIcon(QIcon(":icons/add.png"));
+ addLayerButton->setToolTip("Add Layer");
+ addLayerButton->setFixedSize(24,24);
+ QToolButton* removeLayerButton = new QToolButton(this);
+ removeLayerButton->setIcon(QIcon(":icons/remove.png"));
+ removeLayerButton->setToolTip("Remove Layer");
+ removeLayerButton->setFixedSize(24,24);
+ /*layerButtonLayout->addWidget(layerLabel);
+ layerButtonLayout->addWidget(addLayerButton);
+ layerButtonLayout->addWidget(removeLayerButton);
+ layerButtonLayout->setMargin(0);
+ layerButtonLayout->setSpacing(5);
+ layerButtons->setLayout(layerButtonLayout);*/
+ layerButtons->addWidget(layerLabel);
+ layerButtons->addWidget(addLayerButton);
+ layerButtons->addWidget(removeLayerButton);
+
+ QHBoxLayout* leftToolBarLayout = new QHBoxLayout();
+ leftToolBarLayout->setAlignment(Qt::AlignLeft);
+ leftToolBarLayout->setMargin(0);
+ leftToolBarLayout->addWidget(layerButtons);
+ leftToolBar->setLayout(leftToolBarLayout);
+
+ QAction* newBitmapLayerAct = new QAction(QIcon(":icons/layer-bitmap.png"), tr("New Bitmap Layer"), this);
+ QAction* newVectorLayerAct = new QAction(QIcon(":icons/layer-vector.png"), tr("New Vector Layer"), this);
+ QAction* newSoundLayerAct = new QAction(QIcon(":icons/layer-sound.png"), tr("New Sound Layer"), this);
+ QAction* newCameraLayerAct = new QAction(QIcon(":icons/layer-camera.png"), tr("New Camera Layer"), this);
+ QMenu* layerMenu = new QMenu(tr("&Layer"), this);
+ layerMenu->addAction(newBitmapLayerAct);
+ layerMenu->addAction(newVectorLayerAct);
+ layerMenu->addAction(newSoundLayerAct);
+ layerMenu->addAction(newCameraLayerAct);
+ addLayerButton->setMenu(layerMenu);
+ addLayerButton->setPopupMode(QToolButton::InstantPopup);
+
+ QGridLayout *leftLayout = new QGridLayout();
+ leftLayout->addWidget(leftToolBar,0,0);
+ leftLayout->addWidget(list,1,0);
+ leftLayout->setMargin(0);
+ leftLayout->setSpacing(0);
+ leftWidget->setLayout(leftLayout);
+
+ // --- right widget ---
+ // --------- key buttons ---------
+ //QFrame* keyButtons = new QFrame(this);
+ QToolBar* keyButtons = new QToolBar(this);
+ //keyButtons->setFixedWidth(90);
+ //QHBoxLayout* keyButtonsLayout = new QHBoxLayout();
+ QLabel* keyLabel = new QLabel(tr("Keys:"));
+ keyLabel->setFont( QFont("Helvetica", 10) );
+ keyLabel->setIndent(5);
+ QToolButton* addKeyButton = new QToolButton(this);
+ addKeyButton->setIcon(QIcon(":icons/add.png"));
+ addKeyButton->setToolTip("Add Key");
+ addKeyButton->setFixedSize(24,24);
+ QToolButton* removeKeyButton = new QToolButton(this);
+ removeKeyButton->setIcon(QIcon(":icons/remove.png"));
+ removeKeyButton->setToolTip("Remove Key");
+ removeKeyButton->setFixedSize(24,24);
+ /*keyButtonsLayout->addWidget(keyLabel);
+ keyButtonsLayout->addWidget(addKeyButton);
+ keyButtonsLayout->addWidget(removeKeyButton);
+ keyButtonsLayout->setMargin(0);
+ keyButtonsLayout->setSpacing(0);
+ //keyButtonLayout->setSizeConstraint(QLayout::SetMinimumSize);
+ keyButtons->setLayout(keyButtonsLayout);*/
+ keyButtons->addWidget(keyLabel);
+ keyButtons->addWidget(addKeyButton);
+ keyButtons->addWidget(removeKeyButton);
+
+ // --------- Onion skin buttons ---------
+ //QFrame* onionButtons = new QFrame(this);
+ QToolBar* onionButtons = new QToolBar(this);
+ QButtonGroup* onionRadio = new QButtonGroup();
+ //onionButtons->setFixedWidth(90);
+ //QHBoxLayout* onionButtonsLayout = new QHBoxLayout();
+ QLabel* onionLabel = new QLabel(tr("Onion skin:"));
+ onionLabel->setFont( QFont("Helvetica", 10) );
+ onionLabel->setIndent(5);
+ QCheckBox* onionCheck = new QCheckBox(this);
+ onionCheck->setToolTip("Enable or disable onion skin");
+ onionCheck->setCheckable(true);
+ QToolButton* onionStraightAheadButton = new QToolButton(this);
+ onionStraightAheadButton->setIcon(QIcon(":icons/onionStraightAhead.png"));
+ onionStraightAheadButton->setToolTip("Show frames for straight ahead");
+ onionStraightAheadButton->setFixedSize(24,25);
+ onionStraightAheadButton->setCheckable(true);
+ onionStraightAheadButton->setChecked(true);
+ onionStraightAheadButton->setAutoExclusive(true);
+ QToolButton* onionInbetweenButton = new QToolButton(this);
+ onionInbetweenButton->setIcon(QIcon(":icons/onionInbetween.png"));
+ onionInbetweenButton->setToolTip("Show frames for inbetweening");
+ onionInbetweenButton->setFixedSize(28,25);
+ onionInbetweenButton->setCheckable(true);
+ onionInbetweenButton->setAutoExclusive(true);
+ /*onionButtonsLayout->addWidget(onionLabel);
+ onionButtonsLayout->addWidget(onionPrevButton);
+ onionButtonsLayout->addWidget(onionNextButton);
+ onionButtonsLayout->setMargin(0);
+ onionButtonsLayout->setSpacing(0);
+ //keyButtonLayout->setSizeConstraint(QLayout::SetMinimumSize);
+ onionButtons->setLayout(onionButtonsLayout);*/
+ onionButtons->addSeparator();
+ onionButtons->addWidget(onionLabel);
+ onionButtons->addWidget(onionCheck);
+ onionRadio->addButton(onionStraightAheadButton);
+ onionRadio->addButton(onionInbetweenButton);
+ onionRadio->setId(onionStraightAheadButton, 1);
+ onionRadio->setId(onionInbetweenButton, 2);
+ onionButtons->addWidget(onionStraightAheadButton);
+ onionButtons->addWidget(onionInbetweenButton);
+
+
+ // --------- Time controls ---------
+ TimeControls* timeControls = new TimeControls(this);
+
+ QHBoxLayout* rightToolBarLayout = new QHBoxLayout();
+ //rightToolBarLayout->setAlignment(Qt::AlignLeft);
+ rightToolBarLayout->addWidget(keyButtons);
+ rightToolBarLayout->addWidget(onionButtons);
+ rightToolBarLayout->addStretch(1);
+ rightToolBarLayout->addWidget(timeControls);
+ rightToolBarLayout->setMargin(0);
+ rightToolBarLayout->setSpacing(0);
+ rightToolBar->setLayout(rightToolBarLayout);
+
+ QGridLayout *rightLayout = new QGridLayout();
+ rightLayout->addWidget(rightToolBar,0,0);
+ rightLayout->addWidget(cells,1,0);
+ rightLayout->setMargin(0);
+ rightLayout->setSpacing(0);
+ rightWidget->setLayout(rightLayout);
+
+ // --- Splitter ---
+ QSplitter *splitter = new QSplitter(parent);
+ splitter->addWidget(leftWidget);
+ splitter->addWidget(rightWidget);
+ splitter->setSizes( QList<int>() << 100 << 600 );
+ //splitter->addWidget(cells);
+
+
+ QGridLayout *lay = new QGridLayout();
+ //lay->addWidget(cells,0,0);
+ //lay->addWidget(toolBar,0,0);
+ lay->addWidget(splitter,0,0);
+ lay->addWidget(vScrollBar,0,1);
+ lay->addWidget(hScrollBar,1,0);
+ //lay->addWidget(vScrollBar,1,1);
+ lay->setMargin(0);
+ lay->setSpacing(0);
+ timeLineContent->setLayout(lay);
+ //timeLineContent->setBackgroundRole(QPalette::Dark);
+ //timeLineContent->setForegroundRole(QPalette::Dark);
+ setWidget(timeLineContent);
+
+ setWindowFlags(Qt::WindowStaysOnTopHint);
+ setWindowTitle("Time Line");
+ //setWindowFlags(Qt::SubWindow);
+ setFloating(true);
+ //setMinimumSize(100, 300);
+ //setGeometry(10,60,100, 300);
+
+ connect(this,SIGNAL(lengthChange(QString)), cells, SLOT(lengthChange(QString)));
+ connect(this,SIGNAL(fontSizeChange(int)), cells, SLOT(fontSizeChange(int)));
+ connect(this,SIGNAL(frameSizeChange(int)), cells, SLOT(frameSizeChange(int)));
+ connect(this,SIGNAL(labelChange(int)), cells, SLOT(labelChange(int)));
+ connect(this,SIGNAL(scrubChange(int)), cells, SLOT(scrubChange(int)));
+
+ connect(hScrollBar,SIGNAL(valueChanged(int)), cells, SLOT(hScrollChange(int)));
+ connect(vScrollBar,SIGNAL(valueChanged(int)), cells, SLOT(vScrollChange(int)));
+ connect(vScrollBar,SIGNAL(valueChanged(int)), list, SLOT(vScrollChange(int)));
+
+ connect(addKeyButton, SIGNAL(clicked()), this, SIGNAL(addKeyClick()));
+ connect(removeKeyButton, SIGNAL(clicked()), this, SIGNAL(removeKeyClick()));
+
+ connect(onionCheck, SIGNAL(clicked()), this, SIGNAL(onionChecked()));
+ connect(onionRadio, SIGNAL(buttonClicked(int)), this, SIGNAL(onionType(int)));
+
+ connect(timeControls, SIGNAL(playClick()), this, SIGNAL(playClick()));
+ connect(timeControls, SIGNAL(loopClick()), this, SIGNAL(loopClick()));
+ connect(timeControls, SIGNAL(soundClick()), this, SIGNAL(soundClick()));
+ connect(timeControls, SIGNAL(fpsClick(int)), this, SIGNAL(fpsClick(int)));
+ //connect(this, SIGNAL(topLevelChanged(bool)), timeControls, SLOT(updateButtons(bool))); // when the windows is docked or made floatable
+
+ connect(newBitmapLayerAct, SIGNAL(triggered()), this, SIGNAL(newBitmapLayer()));
+ connect(newVectorLayerAct, SIGNAL(triggered()), this, SIGNAL(newVectorLayer()));
+ connect(newSoundLayerAct, SIGNAL(triggered()), this, SIGNAL(newSoundLayer()));
+ connect(newCameraLayerAct, SIGNAL(triggered()), this, SIGNAL(newCameraLayer()));
+ connect(removeLayerButton, SIGNAL(clicked()), this, SIGNAL(deleteCurrentLayer()));
+
+ scrubbing = false;
+ //QSettings settings("Pencil","Pencil");
+ //layerHeight = (settings.value("layerHeight").toInt());
+ //if(layerHeight==0) { layerHeight=20; settings.setValue("layerHeight", layerHeight); }
+ //startY = 0;
+ //endY = 0;
+ //startLayerNumber = -1;
+ //offsetY = 15;
+}
+
+
+void TimeLine::resizeEvent(QResizeEvent *event) {
+ //QWidget::resizeEvent(event);
+ updateLayerView();
+ //event->accept();
+}
+
+void TimeLine::updateFrame(int frameNumber) {
+ if(cells) cells->updateFrame(frameNumber);
+}
+
+void TimeLine::updateLayerView() {
+ vScrollBar->setPageStep( (height()-cells->getOffsetY()-hScrollBar->height())/cells->getLayerHeight() -2 );
+ vScrollBar->setMinimum( 0 );
+ vScrollBar->setMaximum( qMax(0, numberOfLayers - vScrollBar->pageStep()) );
+ update();
+ updateContent();
+}
+
+void TimeLine::updateLayerNumber(int numberOfLayers) {
+ this->numberOfLayers = numberOfLayers;
+ updateLayerView();
+}
+
+void TimeLine::updateLength(int frameLength) {
+ hScrollBar->setMaximum( frameLength );
+}
+
+void TimeLine::updateContent() {
+ list->updateContent();
+ cells->updateContent();
+ update();
+}
+
+/*
+void TimeLine::onionKey() {
+ onionclick();
+}
+
+void TimeLine::straightAheadKey() {
+ onionStraightAheadButton->click();
+}
+
+void TimeLine::inbetweenKey() {
+ onionInbetweenButton->click();
+}
+*/
+
+/*void TimeLine::mousePressEvent(QMouseEvent *event) {
+ //int frameNumber = getFrameNumber(event->pos().x());
+ int layerNumber = getLayerNumber(event->pos().y());
+ startY = event->pos().y();
+ startLayerNumber = layerNumber;
+ endY = event->pos().y();
+
+ //if(frameNumber == editor->currentFrame) {
+ // scrubbing = true;
+ //} else {
+ if( (layerNumber != -1) && layerNumber < editor->object->getLayerCount()) {
+ //editor->object->getLayer(layerNumber)->mousePress(event, frameNumber);
+ editor->setCurrentLayer(layerNumber);
+ //} else {
+ //editor->scrubTo(frameNumber);
+ //scrubbing = true;
+ }
+ //}
+}
+
+void TimeLine::mouseMoveEvent(QMouseEvent *event) {
+ endY = event->pos().y();
+ //int frameNumber = getFrameNumber(event->pos().x());
+ int layerNumber = getLayerNumber(event->pos().y());
+ //if(scrubbing) {
+ // editor->scrubTo(frameNumber);
+ //} else {
+ //if(layerNumber != -1 && layerNumber < editor->object->getLayerCount()) {
+ // editor->object->getLayer(layerNumber)->mouseMove(event, frameNumber);
+ //}
+ //}
+ update();
+}
+
+void TimeLine::mouseReleaseEvent(QMouseEvent *event) {
+ endY = startY;
+ //scrubbing = false;
+ //int frameNumber = getFrameNumber(event->pos().x());
+ int layerNumber = getLayerNumber(event->pos().y());
+ //if(layerNumber != -1 && layerNumber < editor->object->getLayerCount() ) {
+ // editor->object->getLayer(layerNumber)->mouseRelease(event, frameNumber);
+ //}
+ if(layerNumber != startLayerNumber && startLayerNumber != -1 && layerNumber != -1) {
+ editor->moveLayer(startLayerNumber, layerNumber);
+ }
+ update();
+}
+
+void TimeLine::mouseDoubleClickEvent(QMouseEvent *event) {
+ int layerNumber = getLayerNumber(event->pos().y());
+ if(layerNumber != -1 && layerNumber < editor->object->getLayerCount() ) {
+ editor->switchVisibilityOfLayer(layerNumber);
+ }
+}*/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+TimeLineCells::TimeLineCells(TimeLine *parent, Editor *editor, QString type) : QWidget(parent)
+{
+ this->timeLine = parent;
+ this->editor = editor;
+ this->type = type;
+
+ cache = NULL;
+ QSettings settings("Pencil","Pencil");
+
+ frameLength = settings.value("length").toInt();
+ if (frameLength==0) { frameLength=240; settings.setValue("length", frameLength); }
+
+ shortScrub = settings.value("shortScrub").toBool();
+
+ fps = editor->fps;
+
+ //playing = false;
+ //scrubbing = false;
+ startY = 0;
+ endY = 0;
+ mouseMoveY = 0;
+ startLayerNumber = -1;
+ offsetX = 0;
+ offsetY = 20;
+ frameOffset = 0;
+ layerOffset = 0;
+
+ frameSize = (settings.value("frameSize").toInt());
+ if (frameSize==0) { frameSize=12; settings.setValue("frameSize", frameSize); }
+
+ fontSize = (settings.value("labelFontSize").toInt());
+ if (fontSize==0) { fontSize=12; settings.setValue("labelFontSize", fontSize); }
+
+ layerHeight = (settings.value("layerHeight").toInt());
+ if(layerHeight==0) { layerHeight=20; settings.setValue("layerHeight", layerHeight); }
+
+ //setMinimumSize(frameLength*frameSize, 3*layerHeight);
+ //setMinimumWidth(500);
+ setMinimumSize(500, 4*layerHeight);
+ setSizePolicy( QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding) );
+ setAttribute(Qt::WA_OpaquePaintEvent, false);
+}
+
+int TimeLineCells::getFrameNumber(int x) {
+ int frameNumber = frameOffset+1+(x-offsetX)/frameSize;
+ return frameNumber;
+}
+
+int TimeLineCells::getFrameX(int frameNumber) {
+ int x = offsetX + (frameNumber-frameOffset)*frameSize;
+ return x;
+}
+
+int TimeLineCells::getLayerNumber(int y) {
+ int layerNumber = layerOffset + (y-offsetY)/layerHeight;
+ if (y < offsetY) layerNumber = -1;
+ if (layerNumber >= editor->object->getLayerCount()) layerNumber = editor->object->getLayerCount();
+ return layerNumber;
+}
+
+int TimeLineCells::getLayerY(int layerNumber) {
+ return offsetY + (layerNumber-layerOffset)*layerHeight;
+}
+
+void TimeLineCells::updateFrame(int frameNumber) {
+ int x = getFrameX(frameNumber);
+ update(x-frameSize,0,frameSize+1,height());
+}
+
+void TimeLineCells::updateContent() {
+ drawContent();
+ update();
+}
+
+void TimeLineCells::drawContent() {
+ //qDebug() << "draw content" << QDateTime::currentDateTime() << timeLine->scrubbing;
+ if(cache == NULL) { cache = new QPixmap(size()); }
+ if(cache->isNull()) return;
+ QPainter painter( cache );
+ Object* object = editor->object;
+ if(object == NULL) return;
+ Layer* layer = object->getLayer(editor->currentLayer);
+ if(layer == NULL) return;
+
+ // grey background of the view
+ painter.setPen(Qt::NoPen);
+ painter.setBrush(Qt::lightGray);
+ painter.drawRect(QRect(0,0, width(), height()));
+
+ // --- updates the offsetX
+ /*painter.setPen(Qt::black);
+ painter.setFont(QFont("helvetica", getLayerHeight()/2));
+ for(int i=0; i< object->getLayerCount(); i++) {
+ Layer* layeri = object->getLayer(i);
+ if(layeri != NULL) {
+ int rightmost = 20 + painter.boundingRect(QRect(0,0,300,100), Qt::AlignLeft, layeri->name).width() + 5;
+ if( rightmost > offsetX) offsetX = rightmost;
+ }
+ }*/
+
+ // --- draw layers of the current object
+ for(int i=0; i< object->getLayerCount(); i++) {
+ if(i != editor->currentLayer) {
+ Layer* layeri = object->getLayer(i);
+ if(layeri != NULL) {
+ if(type == "tracks") layeri->paintTrack(painter, this, offsetX, getLayerY(i), width()-offsetX, getLayerHeight(), false, frameSize);
+ if(type == "layers") layeri->paintLabel(painter, this, 0, getLayerY(i), width()-1, getLayerHeight(), false, editor->allLayers());
+ }
+ }
+ }
+ //if(timeLine->scrubbing == false && abs(getMouseMoveY()) > 5) {
+ if( abs(getMouseMoveY()) > 5 ) {
+ if(type == "tracks") layer->paintTrack(painter, this, offsetX, getLayerY(editor->currentLayer)+getMouseMoveY(), width()-offsetX, getLayerHeight(), true, frameSize);
+ if(type == "layers") layer->paintLabel(painter, this, 0, getLayerY(editor->currentLayer)+getMouseMoveY(), width()-1, getLayerHeight(), true, editor->allLayers());
+ painter.setPen( Qt::black );
+ painter.drawRect(0, getLayerY( getLayerNumber(endY) ) -1, width(), 2);
+ } else {
+ if(type == "tracks") layer->paintTrack(painter, this, offsetX, getLayerY(editor->currentLayer), width()-offsetX, getLayerHeight(), true, frameSize);
+ if(type == "layers") layer->paintLabel(painter, this, 0, getLayerY(editor->currentLayer), width()-1, getLayerHeight(), true, editor->allLayers());
+ }
+ // --- draw top
+ painter.setPen(Qt::NoPen);
+ painter.setBrush(QColor(220,220,220));
+ painter.drawRect(QRect(0,0, width()-1, offsetY-1));
+ painter.setPen( Qt::gray );
+ painter.drawLine(0,0, width()-1, 0);
+ painter.drawLine(0,offsetY-2, width()-1, offsetY-2);
+ painter.setPen( Qt::lightGray );
+ painter.drawLine(0,offsetY-3, width()-1, offsetY-3);
+ painter.drawLine(0,0, 0, offsetY-3);
+
+ if(type == "layers") {
+ // --- draw circle
+ painter.setPen(Qt::black);
+ if(editor->allLayers() == 0) { painter.setBrush(Qt::NoBrush); }
+ if(editor->allLayers() == 1) { painter.setBrush(Qt::darkGray); }
+ if(editor->allLayers() == 2) { painter.setBrush(Qt::black); }
+ painter.setRenderHint(QPainter::Antialiasing, true);
+ painter.drawEllipse(6, 4, 9, 9);
+ painter.setRenderHint(QPainter::Antialiasing, false);
+ // --- draw right border line
+ //painter.setPen( Qt::lightGray );
+ //painter.drawLine(width()/2-1,0, width()/2-1, height());
+ }
+
+ if(type == "tracks") {
+ // --- draw ticks
+ painter.setPen( QColor(70,70,70,255) );
+ painter.setBrush(Qt::darkGray);
+ painter.setFont(QFont("helvetica", 10));
+ int incr = 0;
+ for(int i=frameOffset; i<frameOffset+(width()-offsetX)/frameSize; i++) {
+ if(i < 10) { incr = 4; } else { incr = 0; }
+ if (i%fps==0) painter.drawLine( getFrameX(i), 1, getFrameX(i), 5 );
+ else if (i%fps==fps/2) painter.drawLine( getFrameX(i), 1, getFrameX(i), 5);
+ else painter.drawLine( getFrameX(i), 1, getFrameX(i), 3);
+ if(i==0 || i%fps==fps-1) painter.drawText(QPoint(getFrameX(i)+incr, 15), QString::number(i+1));
+ }
+ // --- indicates the cached images by a line ---
+ /*painter.setPen( Qt::red );
+ QList<int> frameList = editor->frameList;
+ for(int i=0; i<frameList.size(); i++) {
+ //painter.setBrush( Qt::red );
+ int j = frameList.at(i);
+ if( j > frameOffset ) {
+ painter.drawLine( getFrameX(j-1-frameOffset), 1, getFrameX(j-frameOffset), 1);
+ }
+ }*/
+ // --- draw left border line
+ painter.setPen( Qt::darkGray );
+ painter.drawLine(0,0, 0, height());
+ }
+}
+
+void TimeLineCells::paintEvent(QPaintEvent *event) {
+ Object* object = editor->object;
+ Layer* layer = object->getLayer(editor->currentLayer);
+ if(layer == NULL) return;
+
+ QPainter painter( this );
+ if( (!editor->playing && !timeLine->scrubbing) || cache == NULL) drawContent();
+ if(cache) painter.drawPixmap(QPoint(0,0), *cache);
+
+ if(type == "tracks") {
+ // --- draw the position of the current frame
+ if(editor->currentFrame > frameOffset) {
+ painter.setBrush(QColor(255,0,0,128));
+ painter.setPen(Qt::NoPen);
+ painter.setFont(QFont("helvetica", 10));
+ //painter.setCompositionMode(QPainter::CompositionMode_Source); // this causes the message: QPainter::setCompositionMode: PorterDuff modes not supported on device
+ QRect scrubRect;
+ scrubRect.setTopLeft(QPoint( getFrameX(editor->currentFrame-1), 0));
+ scrubRect.setBottomRight(QPoint( getFrameX(editor->currentFrame), height()));
+ if(shortScrub) scrubRect.setBottomRight(QPoint( getFrameX(editor->currentFrame), 19));
+ painter.drawRect(scrubRect);
+ painter.setPen( QColor(70,70,70,255) );
+ int incr = 0;
+ if(editor->currentFrame < 10) { incr = 4; } else { incr = 0; }
+ painter.drawText(QPoint(getFrameX(editor->currentFrame-1)+incr, 15), QString::number(editor->currentFrame));
+ }
+ }
+ //event->accept();
+}
+
+void TimeLineCells::resizeEvent(QResizeEvent *event) {
+ //QWidget::resizeEvent(event);
+ if(cache) delete cache;
+ cache = new QPixmap(size());
+ updateContent();
+ event->accept();
+}
+
+void TimeLineCells::mousePressEvent(QMouseEvent *event) {
+ int frameNumber = getFrameNumber(event->pos().x());
+ int layerNumber = getLayerNumber(event->pos().y());
+ startY = event->pos().y();
+ startLayerNumber = layerNumber;
+ endY = event->pos().y();
+
+ if(type == "layers") {
+ if(layerNumber != -1 && layerNumber < editor->object->getLayerCount() ) {
+ if(event->pos().x() < 15) {
+ editor->switchVisibilityOfLayer(layerNumber);
+ } else {
+ editor->setCurrentLayer(layerNumber);
+ update();
+ }
+ }
+ if(layerNumber == -1) {
+ if(event->pos().x() < 15) {
+ editor->toggleShowAllLayers();
+ }
+ }
+ }
+
+ if(type == "tracks") {
+ if(frameNumber == editor->currentFrame && (!shortScrub || (shortScrub && startY < 20)) ) {
+ timeLine->scrubbing = true;
+ } else {
+ if( (layerNumber != -1) && layerNumber < editor->object->getLayerCount()) {
+ editor->object->getLayer(layerNumber)->mousePress(event, frameNumber);
+ //if(event->pos().x() > 15) editor->setCurrentLayer(layerNumber);
+ editor->setCurrentLayer(layerNumber);
+ update();
+ } else {
+ if(frameNumber > 0) {
+ editor->scrubTo(frameNumber);
+ timeLine->scrubbing = true;
+ }
+ }
+ }
+ }
+}
+
+
+void TimeLineCells::mouseMoveEvent(QMouseEvent *event) {
+ //if(event->pos().x() < offsetX) endY = event->pos().y();
+ if(type == "layers") {
+ endY = event->pos().y();
+ emit mouseMovedY(endY-startY);
+ }
+ int frameNumber = getFrameNumber(event->pos().x());
+ int layerNumber = getLayerNumber(event->pos().y());
+ if(timeLine->scrubbing && type == "tracks") {
+ editor->scrubTo(frameNumber);
+ } else {
+ if(layerNumber != -1 && layerNumber < editor->object->getLayerCount()) {
+ editor->object->getLayer(layerNumber)->mouseMove(event, frameNumber);
+ }
+ }
+ timeLine->update();
+}
+
+void TimeLineCells::mouseReleaseEvent(QMouseEvent *event) {
+ endY = startY;
+ emit mouseMovedY(0);
+ timeLine->scrubbing = false;
+ int frameNumber = getFrameNumber(event->pos().x());
+ if(frameNumber < 1) frameNumber = -1;
+ int layerNumber = getLayerNumber(event->pos().y());
+ if(type == "tracks" && layerNumber != -1 && layerNumber < editor->object->getLayerCount() ) {
+ editor->object->getLayer(layerNumber)->mouseRelease(event, frameNumber);
+ }
+ //if(event->pos().x() < offsetX && layerNumber != startLayerNumber && startLayerNumber != -1 && layerNumber != -1) {
+ if(type == "layers" && layerNumber != startLayerNumber && startLayerNumber != -1 && layerNumber != -1) {
+ editor->moveLayer(startLayerNumber, layerNumber);
+ }
+ update();
+}
+
+void TimeLineCells::mouseDoubleClickEvent(QMouseEvent *event) {
+ int frameNumber = getFrameNumber(event->pos().x());
+ int layerNumber = getLayerNumber(event->pos().y());
+
+ // -- short scrub --
+ if(event->pos().y() < 20) {
+ if(shortScrub) scrubChange(0); else scrubChange(1);
+ }
+
+ // -- layer --
+ Layer* layer = editor->object->getLayer( layerNumber );
+ //if(layerNumber != -1 && layerNumber < editor->object->getLayerCount() ) {
+ if(layer) {
+ if(type == "tracks" && (layerNumber != -1) && (frameNumber > 0) && layerNumber < editor->object->getLayerCount()) {
+ editor->object->getLayer(layerNumber)->mouseDoubleClick(event, frameNumber);
+ }
+ if(type == "layers") {
+ layer->editProperties();
+ }
+ }
+}
+
+// --- changes ---
+
+void TimeLineCells::fontSizeChange(int x) {
+ fontSize=x;
+ QSettings settings("Pencil","Pencil");
+ settings.setValue("labelFontSize", x);
+ updateContent();
+}
+
+void TimeLineCells::frameSizeChange(int x) {
+ //int old;
+ //old=frameSize;
+ frameSize = x;
+ QSettings settings("Pencil","Pencil");
+ settings.setValue("frameSize", x);
+ /*int i;
+ for(i=0;i<frame.size();i++) {
+ frame[i].moveTopLeft(QPoint((frame[i].x()/old)*frameSize,0));
+ frame[i].setWidth(frameSize);
+ }*/
+ updateContent();
+}
+
+void TimeLineCells::scrubChange(int x) {
+ QSettings settings("Pencil","Pencil");
+ if (x==0) { shortScrub=false; settings.setValue("shortScrub","false"); }
+ else { shortScrub=true; settings.setValue("shortScrub","true"); }
+ update();
+}
+
+void TimeLineCells::labelChange(int x) {
+ QSettings settings("Pencil","Pencil");
+ if (x==0) { drawFrameNumber=false; settings.setValue("drawLabel","false"); }
+ else { drawFrameNumber=true; settings.setValue("drawLabel","true"); }
+ updateContent();
+}
+
+void TimeLineCells::lengthChange(QString x) {
+ bool ok;
+ int dec = x.toInt(&ok, 10);
+ frameLength=dec;
+ timeLine->updateLength(frameLength);
+ //setMinimumSize(dec*frameSize,40);
+ //setFixedWidth(dec*frameSize);
+ updateContent();
+ QSettings settings("Pencil","Pencil");
+ settings.setValue("length", dec);
+}
+
+void TimeLineCells::hScrollChange(int x) {
+ frameOffset = x;
+ update();
+}
+
+void TimeLineCells::vScrollChange(int x) {
+ layerOffset = x;
+ update();
+}
+
diff -rupN pencil_backup/src/interface/timeline.h pencil_dev/src/interface/timeline.h
--- pencil_backup/src/interface/timeline.h 2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/timeline.h 2009-10-01 18:16:36.000000000 -0500
@@ -113,9 +113,13 @@ signals:
void loopClick();
void soundClick();
void fpsClick(int);
- void onionPrevClick();
- void onionNextClick();
-
+
+ void onionChecked();
+ void onionType(int);
+
+ void onionKey();
+ void straightAheadKey();
+ void inbetweenKey();
public slots:
void updateFrame(int frameNumber);
@@ -124,6 +128,8 @@ public slots:
void updateLength(int frameLength);
void updateContent();
+
+
public:
TimeLine(QWidget *parent = 0, Editor *editor = 0);
QScrollBar *hScrollBar, *vScrollBar;
@@ -131,6 +137,11 @@ public:
//int currentLayer;
bool scrubbing;
+ QCheckBox* onionCheck;
+ QToolButton* onionStraightAheadButton;
+ QToolButton* onionInbetweenButton;
+
+
protected:
void resizeEvent(QResizeEvent *event);
//void mousePressEvent(QMouseEvent *event);
diff -rupN pencil_backup/src/interface/timeline.h~ pencil_dev/src/interface/timeline.h~
--- pencil_backup/src/interface/timeline.h~ 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/timeline.h~ 2009-10-01 18:16:16.000000000 -0500
@@ -0,0 +1,159 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+*/
+#ifndef TIMELINE_H
+#define TIMELINE_H
+
+#include <QColor>
+#include <QImage>
+#include <QPoint>
+#include <QWidget>
+#include <QDockWidget>
+#include <QScrollBar>
+#include <QSound>
+#include "toolset.h"
+
+class Editor;
+
+class TimeLine;
+
+class TimeLineCells : public QWidget
+{
+ Q_OBJECT
+
+public:
+ TimeLineCells(TimeLine *parent = 0, Editor *editor = 0, QString type = "");
+ //int currentFrame;
+ //int currentLayer;
+ int getFps() { return fps; }
+ int getLayerNumber(int y);
+ int getLayerY(int layerNumber);
+ int getFrameNumber(int x);
+ int getFrameX(int frameNumber);
+ int getMouseMoveY() { return mouseMoveY; }
+ int getOffsetY() { return offsetY; }
+ int getLayerHeight() { return layerHeight; }
+
+signals:
+ void mouseMovedY(int);
+
+public slots:
+ void updateContent();
+ void updateFrame(int frameNumber);
+ void lengthChange(QString);
+ void frameSizeChange(int);
+ void fontSizeChange(int);
+ void scrubChange(int);
+ void labelChange(int);
+ void hScrollChange(int);
+ void vScrollChange(int);
+ void setMouseMoveY(int x) { mouseMoveY = x;}
+
+protected:
+ void drawContent();
+ void paintEvent(QPaintEvent *event);
+ void resizeEvent(QResizeEvent *event);
+ void mousePressEvent(QMouseEvent *event);
+ void mouseMoveEvent(QMouseEvent *event);
+ void mouseReleaseEvent(QMouseEvent *event);
+ void mouseDoubleClickEvent(QMouseEvent *event);
+
+private:
+ TimeLine *timeLine;
+ Editor* editor; // the editor for which this timeLine operates
+
+ QString type;
+ QPixmap* cache;
+ bool drawFrameNumber;
+ bool shortScrub;
+ int frameLength;
+ int frameSize;
+ int fontSize;
+ int fps;
+ bool scrubbing;
+ int layerHeight;
+ int offsetX, offsetY;
+ int startY, endY, startLayerNumber;
+ int mouseMoveY;
+ int frameOffset, layerOffset;
+};
+
+class TimeLine : public QDockWidget //DockPalette
+{
+ Q_OBJECT
+
+signals:
+ void modification();
+ void lengthChange(QString);
+ void frameSizeChange(int);
+ void fontSizeChange(int);
+ void labelChange(int);
+ void scrubChange(int);
+ void addKeyClick();
+ void removeKeyClick();
+ void newBitmapLayer();
+ void newVectorLayer();
+ void newSoundLayer();
+ void newCameraLayer();
+ void deleteCurrentLayer();
+
+ void playClick();
+ void loopClick();
+ void soundClick();
+ void fpsClick(int);
+
+ void onionChecked();
+ void onionType(int);
+
+public slots:
+ void updateFrame(int frameNumber);
+ void updateLayerNumber(int number);
+ void updateLayerView();
+ void updateLength(int frameLength);
+ void updateContent();
+
+ void onionKey();
+ void straightAheadKey();
+ void inbetweenKey();
+
+public:
+ TimeLine(QWidget *parent = 0, Editor *editor = 0);
+ QScrollBar *hScrollBar, *vScrollBar;
+ //int currentFrame;
+ //int currentLayer;
+ bool scrubbing;
+
+ QCheckBox* onionCheck;
+ QToolButton* onionStraightAheadButton;
+ QToolButton* onionInbetweenButton;
+
+
+protected:
+ void resizeEvent(QResizeEvent *event);
+ //void mousePressEvent(QMouseEvent *event);
+ //void mouseMoveEvent(QMouseEvent *event);
+ //void mouseReleaseEvent(QMouseEvent *event);
+ //void mouseDoubleClickEvent(QMouseEvent *event);
+
+private:
+ Editor* editor; // the editor for which this timeLine operates
+ //TimeLineCells* list;
+ TimeLineCells* cells;
+ TimeLineCells* list;
+ int numberOfLayers;
+
+};
+
+#endif
diff -rupN pencil_backup/src/interface/toolset.cpp pencil_dev/src/interface/toolset.cpp
--- pencil_backup/src/interface/toolset.cpp 2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/toolset.cpp 2009-09-27 14:50:43.000000000 -0500
@@ -164,6 +164,8 @@ ToolSet::ToolSet() {
newToolButton(clearButton); // = new QToolButton(this);
newToolButton(magnifyButton);
newToolButton(smudgeButton);
+ newToolButton(onionStraightAheadButton);
+ newToolButton(onionInbetweenButton);
add = new QToolButton(this);
rm = new QToolButton(this);
@@ -181,23 +183,25 @@ ToolSet::ToolSet() {
polylineButton->setWhatsThis("Polyline");
bucketButton->setWhatsThis("Paint bucket");
colouringButton->setWhatsThis("Brush");
+
usePressureBox = new QCheckBox("Size with pressure");
usePressureBox->setFont( QFont("Helvetica", 10) );
- usePressureBox->setChecked(true);
+ usePressureBox->setChecked(true);
+
makeInvisibleBox = new QCheckBox("Invisible");
makeInvisibleBox->setFont( QFont("Helvetica", 10) );
- makeInvisibleBox->setChecked(false);
+ makeInvisibleBox->setChecked(false);
+
preserveAlphaBox = new QCheckBox("Preserve Alpha");
preserveAlphaBox->setFont( QFont("Helvetica", 10) );
- preserveAlphaBox->setChecked(false);
+ preserveAlphaBox->setChecked(false);
+
followContourBox = new QCheckBox("Stop at contours");
followContourBox->setFont( QFont("Helvetica", 10) );
- followContourBox->setChecked(false);
- onionPrevBox = new QCheckBox("Previous");
- onionNextBox = new QCheckBox("Next");
- onionPrevBox->setFont( QFont("Helvetica", 10) );
- onionNextBox->setFont( QFont("Helvetica", 10) );
- onionPrevBox->setChecked(true);
+ followContourBox->setChecked(false);
+
+ onionStraightAheadButton->setFont( QFont("Helvetica", 10) );
+ onionInbetweenButton->setFont( QFont("Helvetica", 10) );
/*sizeSlider = new QDoubleSpinBox(this);
sizeSlider->setFocusPolicy(Qt::NoFocus);
@@ -244,8 +248,6 @@ ToolSet::ToolSet() {
framecounter->setToolTip("Frame Counter!");
framecounter->setFont( QFont("Helvetica", 40, QFont::Bold) );*/
- onionNextBox->setToolTip("Onion skin next frame");
- onionPrevBox->setToolTip("Onion skin previous frame");
sizeSlider->setToolTip("Set Pen Width");
pencilButton->setIcon(QIcon(":icons/pencil2.png"));
pencilButton->setToolTip("Sketch");
@@ -375,8 +377,8 @@ ToolSet::ToolSet() {
onionLay->setMargin(4);
onionLay->setSpacing(0);
- onionLay->addWidget(onionPrevBox, 0,0);
- onionLay->addWidget(onionNextBox, 1,0);
+ onionLay->addWidget(onionStraightAheadButton, 0,0);
+ onionLay->addWidget(onionInbetweenButton, 1,0);
timeLay->setMargin(4);
timeLay->setSpacing(0);
@@ -448,8 +450,8 @@ ToolSet::ToolSet() {
connect(featherSlider, SIGNAL(valueChanged(qreal)), this, SIGNAL(featherClick(qreal)));
connect(opacitySlider, SIGNAL(valueChanged(qreal)), this, SIGNAL(opacityClick(qreal)));
- connect(onionPrevBox, SIGNAL(stateChanged(int)), this, SIGNAL(prevClick()));
- connect(onionNextBox, SIGNAL(stateChanged(int)), this, SIGNAL(nextClick()));
+ connect(onionStraightAheadButton, SIGNAL(clicked()), this, SIGNAL(onionStraightAheadClick()));
+ connect(onionInbetweenButton, SIGNAL(clicked()), this, SIGNAL(onionInbetweenClick()));
connect(choseColour, SIGNAL(clicked()), this, SIGNAL(colourClick()));
connect(clearButton, SIGNAL(clicked()), this, SIGNAL(clearClick()));
diff -rupN pencil_backup/src/interface/toolset.cpp~ pencil_dev/src/interface/toolset.cpp~
--- pencil_backup/src/interface/toolset.cpp~ 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/toolset.cpp~ 2009-09-26 20:56:53.000000000 -0500
@@ -0,0 +1,668 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+*/
+#include <QtGui>
+#include "toolset.h"
+#include <math.h>
+
+SpinSlider::SpinSlider(QString text, QString type, QString dataType, qreal min, qreal max, QWidget* parent) : QWidget(parent) {
+ value = 1.0;
+ this->type = type;
+ this->dataType = dataType;
+ this->min = min;
+ this->max = max;
+ QLabel* label = new QLabel(text+": ");
+ label->setFont( QFont("Helvetica", 10) );
+ valueLabel = new QLabel("--");
+ valueLabel->setFont( QFont("Helvetica", 10) );
+ //valueLabel->setFixedWidth(30);
+ valueLabel->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
+ slider = new QSlider(Qt::Horizontal, this);
+ slider->setMinimum(0);
+ slider->setMaximum(100);
+ //slider->setFixedHeight(16);
+ QGridLayout *lay = new QGridLayout();
+ lay->setMargin(2);
+ lay->setSpacing(2);
+ //lay->setColumnStretch(0,1);
+ lay->addWidget(label,0,0,1,1);
+ lay->addWidget(valueLabel,0,1,1,1);
+ lay->addWidget(slider,1,0,1,2);
+ setLayout(lay);
+ setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Fixed);
+
+ connect(slider, SIGNAL(valueChanged(int)), this, SLOT(changeValue(int)));
+ connect(slider, SIGNAL(sliderReleased()), this, SLOT(sliderReleased()));
+ connect(slider, SIGNAL(sliderMoved(int)), this, SLOT(sliderMoved(int)));
+}
+
+void SpinSlider::changeValue(qreal value) {
+ this->value = value;
+ if(dataType == "integer") {
+ valueLabel->setText( QString::number(qRound(value)) );
+ } else {
+ valueLabel->setText( QLocale::system().toString(value,'f',1) );
+ }
+}
+
+void SpinSlider::changeValue(int value) {
+ qreal value2 = 0.0;
+ if(type=="linear") value2 = min + value*(max-min)/100;
+ if(type=="log") value2 = min*exp( value*log(max/min)/100 );
+ changeValue(value2);
+}
+
+void SpinSlider::setValue(qreal value) {
+ qreal value2 = 0.0;
+ if(type=="linear") value2 = qRound( 100*(value-min)/(max-min) );
+ if(type=="log") value2 = qRound( 100.0*log(value/0.2)/log(1000.0) );
+ slider->setSliderPosition(value2);
+ changeValue(value);
+}
+
+void SpinSlider::sliderReleased() {
+ //qDebug() << "sliderReleased";
+ emit valueChanged(this->value);
+}
+
+void SpinSlider::sliderMoved(int value) {
+ changeValue(value);
+ emit valueChanged(this->value);
+}
+
+// ----------------------------------------------------------------------------------
+
+ToolSet::ToolSet() {
+
+ drawPalette = new QDockWidget(tr("Tools"));
+ optionPalette = new QDockWidget(tr("Options"));
+ displayPalette = new QDockWidget(tr("Display"));
+ keyPalette = new QDockWidget(tr("Keys"));
+ onionPalette = new QDockWidget(tr("Onion skin"));
+ timePalette = new QDockWidget(tr("Controls"));
+
+#ifdef Q_WS_MAC
+ //drawPalette->setTitleBarWidget(new TitleBar(drawPalette));
+#endif
+ //drawPalette->setAutoFillBackground(false);
+ //drawPalette->setAttribute(Qt::WA_NoSystemBackground, true);
+
+ /*QPalette optionPalettePalette(optionPalette->palette());
+ optionPalettePalette.setColor(QPalette::Light, Qt::red);
+ optionPalettePalette.setColor(QPalette::Midlight, Qt::red);
+ optionPalettePalette.setColor(QPalette::Dark, Qt::red);
+ optionPalettePalette.setColor(QPalette::Shadow, Qt::red);
+ optionPalette->setPalette(optionPalettePalette);*/
+
+ //optionPalette->setWindowFlags(Qt::Tool);
+ //optionPalette->setWindowIconText(tr("Coucou"));
+ //optionPalette->setFont( QFont("Helvetica", 14, QFont::Bold) );
+
+ //QGroupBox *drawGroup = new QGroupBox(tr("Draw"));
+ QFrame *drawGroup = new QFrame();
+ QFrame *optionGroup = new QFrame();
+ QFrame *displayGroup = new QFrame();
+ QFrame *keyGroup = new QFrame();
+ QFrame *onionGroup = new QFrame();
+ QFrame * timeGroup = new QFrame();
+
+ //QFrame *line = new QFrame();
+ //line->setFrameStyle(QFrame::HLine | QFrame::Raised);
+
+ //drawGroup->setMaximumHeight( 100 );
+ //optionGroup->setFrameStyle(QFrame::Panel | QFrame::Raised);
+ //keyGroup->setFrameStyle(QFrame::Panel | QFrame::Raised);
+ //onionGroup->setFrameStyle(QFrame::Panel | QFrame::Raised);
+ //timeGroup->setFrameStyle(QFrame::Panel | QFrame::Raised);
+
+ //optionGroup->setLineWidth(2);
+ //keyGroup->setLineWidth(2);
+ //displayGroup->setLineWidth(2);
+ //onionGroup->setLineWidth(2);
+ //timeGroup->setLineWidth(2);
+
+ drawPalette->setWidget(drawGroup);
+ optionPalette->setWidget(optionGroup);
+ displayPalette->setWidget(displayGroup);
+ keyPalette->setWidget(keyGroup);
+ onionPalette->setWidget(onionGroup);
+ timePalette->setWidget(timeGroup);
+
+ QVBoxLayout *framelay = new QVBoxLayout();
+ QGridLayout *drawLay = new QGridLayout();
+ QGridLayout *optionLay = new QGridLayout();
+ QGridLayout *displayLay = new QGridLayout();
+ QGridLayout *keyLay = new QGridLayout();
+ QGridLayout *onionLay = new QGridLayout();
+ QGridLayout *timeLay = new QGridLayout();
+ QVBoxLayout *butlay = new QVBoxLayout();
+
+ QSettings settings("Pencil","Pencil");
+
+ newToolButton(pencilButton); // = new QToolButton(this);
+ newToolButton(selectButton); // = new QToolButton(this);
+ newToolButton(moveButton); // = new QToolButton(this);
+ newToolButton(handButton); // = new QToolButton(this);
+ newToolButton(penButton); // = new QToolButton(this);
+ newToolButton(eraserButton); // = new QToolButton(this);
+ newToolButton(polylineButton); // = new QToolButton(this);
+ newToolButton(bucketButton); // = new QToolButton(this);
+ newToolButton(colouringButton); // = new QToolButton(this);
+ newToolButton(eyedropperButton); // = new QToolButton(this);
+ newToolButton(clearButton); // = new QToolButton(this);
+ newToolButton(magnifyButton);
+ newToolButton(smudgeButton);
+ newToolButton(onionStraightAheadButton);
+ newToolButton(onionInbetweenButton);
+
+ add = new QToolButton(this);
+ rm = new QToolButton(this);
+ thinLinesButton = new QToolButton(this);
+ outlinesButton = new QToolButton(this);
+ mirrorButton = new QToolButton(this); // = new QToolButton(this);
+
+ choseColour = new QToolButton(this);
+ play = new QPushButton(tr("Play"),this);
+
+ play->setFixedWidth(80);
+
+ pencilButton->setWhatsThis("Draw");
+ penButton->setWhatsThis("Pen");
+ polylineButton->setWhatsThis("Polyline");
+ bucketButton->setWhatsThis("Paint bucket");
+ colouringButton->setWhatsThis("Brush");
+
+ usePressureBox = new QCheckBox("Size with pressure");
+ usePressureBox->setFont( QFont("Helvetica", 10) );
+ usePressureBox->setChecked(true);
+
+ makeInvisibleBox = new QCheckBox("Invisible");
+ makeInvisibleBox->setFont( QFont("Helvetica", 10) );
+ makeInvisibleBox->setChecked(false);
+
+ preserveAlphaBox = new QCheckBox("Preserve Alpha");
+ preserveAlphaBox->setFont( QFont("Helvetica", 10) );
+ preserveAlphaBox->setChecked(false);
+
+ followContourBox = new QCheckBox("Stop at contours");
+ followContourBox->setFont( QFont("Helvetica", 10) );
+ followContourBox->setChecked(false);
+
+ onionStraightAheadButton->setFont( QFont("Helvetica", 10) );
+ onionInbetweenButton->setFont( QFont("Helvetica", 10) );
+
+ /*sizeSlider = new QDoubleSpinBox(this);
+ sizeSlider->setFocusPolicy(Qt::NoFocus);
+ sizeSlider->setFont( QFont("Helvetica", 10) );
+ sizeSlider->setDecimals(1);
+ sizeSlider->setMinimum(0);
+ sizeSlider->setMaximum(200);
+ sizeSlider->setValue(settings.value("width").toInt());
+ sizeSlider->setFixedWidth(50);
+ sizeSlider->setFixedHeight(22);*/
+
+ sizeSlider = new SpinSlider("Size", "log", "real", 0.2, 200.0, this);
+ sizeSlider->setValue(settings.value("pencilWidth").toDouble());
+
+ featherSlider = new SpinSlider("Feather", "log", "real", 0.2, 200.0, this);
+ featherSlider->setValue(settings.value("pencilFeather").toDouble());
+
+ opacitySlider = new SpinSlider("Opacity", "linear", "real", 0.0, 1.0, this);
+ opacitySlider->setValue(settings.value("pencilOpacity").toDouble());
+
+ /*featherSlider = new QSlider(Qt::Horizontal, this);
+ featherSlider->setMinimum(0);
+ featherSlider->setMaximum(100);
+ featherSlider->setFixedHeight(22);*/
+
+ soundBox = new QCheckBox("Sound");
+ soundBox->setFont( QFont("Helvetica", 10) );
+ loopBox = new QCheckBox(tr("Loop"), this);
+ loopBox->setFont( QFont("Helvetica", 10) );
+
+ fpsBox = new QSpinBox(this);
+ //fpsBox->setFixedWidth(50);
+ fpsBox->setFont( QFont("Helvetica", 10) );
+ fpsBox->setFixedHeight(22);
+ fpsBox->setValue(settings.value("fps").toInt());
+ fpsBox->setMinimum(1);
+ fpsBox->setMaximum(50);
+ fpsBox->setToolTip("FPS");
+ fpsBox->setFocusPolicy(Qt::NoFocus);
+
+ /*framecounter = new QLabel;
+ framecounter->setText("1");
+ framecounter->setAlignment(Qt::AlignCenter);
+ framecounter->setToolTip("Frame Counter!");
+ framecounter->setFont( QFont("Helvetica", 40, QFont::Bold) );*/
+
+ sizeSlider->setToolTip("Set Pen Width");
+ pencilButton->setIcon(QIcon(":icons/pencil2.png"));
+ pencilButton->setToolTip("Sketch");
+ penButton->setIcon(QIcon(":icons/pen.png"));
+ penButton->setToolTip("Draw");
+ polylineButton->setIcon(QIcon(":icons/polyline.png"));
+ polylineButton->setToolTip("Polyline");
+ bucketButton->setIcon(QIcon(":icons/bucket.png"));
+ bucketButton->setToolTip("Fill");
+ colouringButton->setIcon(QIcon(":icons/brush.png"));
+ colouringButton->setToolTip("Colouring tool");
+ eyedropperButton->setIcon(QIcon(":icons/eyedropper.png"));
+ eyedropperButton->setToolTip("Pick colour");
+ selectButton->setIcon(QIcon(":icons/select.png"));
+ selectButton->setToolTip("Select");
+ moveButton->setIcon(QIcon(":icons/arrow.png"));
+ moveButton->setToolTip("Select/Move object");
+ handButton->setIcon(QIcon(":icons/hand.png"));
+ handButton->setToolTip("Move/Zoom canvas");
+ magnifyButton->setIcon(QIcon(":icons/magnify.png"));
+ magnifyButton->setToolTip("Magnify canvas");
+ magnifyButton->setEnabled(false);
+ smudgeButton->setIcon(QIcon(":icons/smudge.png"));
+ smudgeButton->setToolTip("Modify curve");
+ smudgeButton->setEnabled(true);
+ eraserButton->setIcon(QIcon(":icons/eraser.png"));
+ eraserButton->setToolTip("Erase");
+ add->setIcon(QIcon(":icons/add.png"));
+ add->setToolTip("Add Frame");
+ rm->setIcon(QIcon(":icons/remove.png"));
+ rm->setToolTip("Remove Frame");
+
+ QPixmap colourSwatch(30,30);
+ colourSwatch.fill(Qt::black);
+ QLabel* colourLabel = new QLabel();
+ colourLabel->setText(tr("Colour:"));
+ colourLabel->setFont( QFont("Helvetica", 10) );
+ choseColour->setIcon(colourSwatch);
+ choseColour->setToolTip("Display Colours");
+
+ thinLinesButton->setIcon(QIcon(":icons/thinlines5.png"));
+ thinLinesButton->setToolTip("Show invisible lines");
+ outlinesButton->setIcon(QIcon(":icons/outlines5.png"));
+ outlinesButton->setToolTip("Show outlines only");
+
+ mirrorButton->setIcon(QIcon(":icons/mirror.png"));
+ mirrorButton->setToolTip("Horizontal flip");
+ clearButton->setIcon(QIcon(":icons/clear.png"));
+ clearButton->setToolTip("Clear");
+ thinLinesButton->setCheckable(true);
+ thinLinesButton->setChecked(false);
+ outlinesButton->setCheckable(true);
+ outlinesButton->setChecked(false);
+ mirrorButton->setCheckable(true);
+ mirrorButton->setChecked(false);
+ pencilButton->setCheckable(true);
+ penButton->setCheckable(true);
+ polylineButton->setCheckable(true);
+ bucketButton->setCheckable(true);
+ colouringButton->setCheckable(true);
+ smudgeButton->setCheckable(true);
+ eyedropperButton->setCheckable(true);
+ selectButton->setCheckable(true);
+ moveButton->setCheckable(true);
+ handButton->setCheckable(true);
+ eraserButton->setCheckable(true);
+ pencilButton->setChecked(true);
+
+ drawLay->setMargin(2);
+ drawLay->setSpacing(0);
+
+ drawLay->addWidget(pencilButton,0,0); drawLay->setAlignment(pencilButton, Qt::AlignRight);
+ drawLay->addWidget(colouringButton,0,1); drawLay->setAlignment(colouringButton, Qt::AlignLeft);
+
+ drawLay->addWidget(penButton,1,0); drawLay->setAlignment(penButton, Qt::AlignRight);
+ drawLay->addWidget(polylineButton,1,1); drawLay->setAlignment(polylineButton, Qt::AlignLeft);
+
+ drawLay->addWidget(eraserButton,2,0); drawLay->setAlignment(eraserButton, Qt::AlignRight);
+ drawLay->addWidget(clearButton,2,1); drawLay->setAlignment(clearButton, Qt::AlignLeft);
+
+ drawLay->addWidget(bucketButton,3,0); drawLay->setAlignment(bucketButton, Qt::AlignRight);
+ drawLay->addWidget(eyedropperButton,3,1); drawLay->setAlignment(eyedropperButton, Qt::AlignLeft);
+
+ drawLay->addWidget(selectButton,4,0); drawLay->setAlignment(selectButton, Qt::AlignRight);
+ drawLay->addWidget(moveButton,4,1); drawLay->setAlignment(moveButton, Qt::AlignLeft);
+
+ drawLay->addWidget(handButton,5,0); drawLay->setAlignment(handButton, Qt::AlignRight);
+ drawLay->addWidget(smudgeButton,5,1); drawLay->setAlignment(smudgeButton, Qt::AlignLeft);
+ //drawLay->addWidget(mirrorButton,5,1); drawLay->setAlignment(mirrorButton, Qt::AlignLeft);
+
+ optionLay->setMargin(8);
+ optionLay->setSpacing(8);
+ optionLay->addWidget(colourLabel,6,0);
+ optionLay->addWidget(choseColour,6,1);
+ //optionLay->addWidget(thinLinesButton,6,2);
+
+ //optionLay->addWidget(sizeSlider,7,0,1,2);
+
+
+ /*QGroupBox* sizeBox = new QGroupBox("Size");
+ QHBoxLayout* sizeBoxLay = new QHBoxLayout();
+ sizeBoxLay->addWidget(sizeSlider2);
+ sizeBoxLay->setMargin(0);
+ sizeBoxLay->setSpacing(0);
+ sizeBox->setLayout(sizeBoxLay);*/
+
+ optionLay->addWidget(sizeSlider,8,0,1,2);
+ optionLay->addWidget(featherSlider,9,0,1,2);
+ //optionLay->addWidget(opacitySlider,10,0,1,2);
+
+ optionLay->addWidget(usePressureBox,11,0,1,2);
+ optionLay->addWidget(preserveAlphaBox,12,0,1,2);
+ optionLay->addWidget(followContourBox,13,0,1,2);
+ optionLay->addWidget(makeInvisibleBox,14,0,1,2);
+ optionLay->setRowStretch(15,1);
+
+ displayLay->setMargin(4);
+ displayLay->setSpacing(0);
+ displayLay->addWidget(mirrorButton,0,0);
+ displayLay->addWidget(thinLinesButton,0,1);
+ displayLay->addWidget(outlinesButton,0,2);
+
+ keyLay->setMargin(4);
+ keyLay->setSpacing(0);
+ keyLay->addWidget(add,0,0);
+ keyLay->addWidget(rm,0,1);
+
+ onionLay->setMargin(4);
+ onionLay->setSpacing(0);
+ onionLay->addWidget(onionStraightAheadButton, 0,0);
+ onionLay->addWidget(onionInbetweenButton, 1,0);
+
+ timeLay->setMargin(4);
+ timeLay->setSpacing(0);
+ timeLay->addWidget(play,0,0);
+ timeLay->addWidget(fpsBox,1,0);
+ timeLay->addWidget(loopBox,2,0,1,-1);
+ timeLay->addWidget(soundBox,3,0,1,-1);
+
+ drawGroup->setLayout(drawLay);
+ optionGroup->setLayout(optionLay);
+ displayGroup->setLayout(displayLay);
+ keyGroup->setLayout(keyLay);
+ onionGroup->setLayout(onionLay);
+ timeGroup->setLayout(timeLay);
+
+ //keyGroup->setFlat(true);
+ //onionGroup->setFlat(true);
+ //timeGroup->setFlat(true);
+
+ //drawGroup->setMaximumSize( QSize(3*32,6*32+1) );
+ drawGroup->setMaximumHeight(6*32+1);
+
+ drawPalette->setMaximumHeight(200);
+ //drawPalette->setFeatures(drawPalette->features() | QDockWidget::DockWidgetVerticalTitleBar);
+ //optionPalette->setMaximumHeight(300);
+ //optionGroup->setMaximumHeight(160);
+ displayPalette->setMaximumHeight(60);
+ keyGroup->setMaximumHeight(60);
+ onionGroup->setMaximumHeight(60);
+
+ /*butlay->setMargin(0);
+ butlay->setSpacing(2);
+ butlay->addWidget(drawGroup);
+ butlay->addWidget(optionGroup);
+ butlay->addWidget(keyGroup);
+ butlay->addWidget(onionGroup);
+ butlay->addWidget(timeGroup);
+
+ framelay->addLayout(butlay);
+ //framelay->addWidget(framecounter);
+
+ setLayout(framelay);*/
+
+ connect(add, SIGNAL(clicked()), this, SIGNAL(addClick()));
+ connect(rm, SIGNAL(clicked()), this, SIGNAL(rmClick()));
+
+ connect(pencilButton, SIGNAL(clicked()), this, SIGNAL(pencilClick()));
+ connect(selectButton, SIGNAL(clicked()), this, SIGNAL(selectClick()));
+ connect(moveButton, SIGNAL(clicked()), this, SIGNAL(moveClick()));
+ connect(handButton, SIGNAL(clicked()), this, SIGNAL(handClick()));
+ connect(eraserButton, SIGNAL(clicked()), this, SIGNAL(eraserClick()));
+ connect(penButton, SIGNAL(clicked()), this, SIGNAL(penClick()));
+ connect(polylineButton, SIGNAL(clicked()), this, SIGNAL(polylineClick()));
+ connect(bucketButton, SIGNAL(clicked()), this, SIGNAL(bucketClick()));
+ connect(eyedropperButton, SIGNAL(clicked()), this, SIGNAL(eyedropperClick()));
+ connect(colouringButton, SIGNAL(clicked()), this, SIGNAL(colouringClick()));
+ connect(smudgeButton, SIGNAL(clicked()), this, SIGNAL(smudgeClick()));
+
+ connect(thinLinesButton, SIGNAL(clicked()), this, SIGNAL(thinLinesClick()));
+ connect(outlinesButton, SIGNAL(clicked()), this, SIGNAL(outlinesClick()));
+ //connect(outlinesButton, SIGNAL(pressed()), this, SIGNAL(outlinesPressed()));
+ //connect(outlinesButton, SIGNAL(released()), this, SIGNAL(outlinesReleased()));
+
+ connect(usePressureBox, SIGNAL(clicked(bool)), this, SLOT(pressureClick(bool)));
+ connect(makeInvisibleBox, SIGNAL(clicked(bool)), this, SLOT(invisibleClick(bool)));
+ connect(preserveAlphaBox, SIGNAL(clicked(bool)), this, SLOT(preserveAlphaClick(bool)));
+ connect(followContourBox, SIGNAL(clicked(bool)), this, SLOT(followContourClick(bool)));
+ connect(sizeSlider, SIGNAL(valueChanged(qreal)), this, SIGNAL(widthClick(qreal)));
+ connect(featherSlider, SIGNAL(valueChanged(qreal)), this, SIGNAL(featherClick(qreal)));
+ connect(opacitySlider, SIGNAL(valueChanged(qreal)), this, SIGNAL(opacityClick(qreal)));
+
+ connect(onionStraightAheadButton, SIGNAL(clicked()), this SIGNAL(onionStraightAheadClick()));
+ connect(onionInbetweenButton, SIGNAL(clicked()), this SIGNAL(onionInbetweenClick()));
+
+ connect(choseColour, SIGNAL(clicked()), this, SIGNAL(colourClick()));
+ connect(clearButton, SIGNAL(clicked()), this, SIGNAL(clearClick()));
+ connect(mirrorButton, SIGNAL(clicked()), this, SIGNAL(mirrorClick()));
+
+ connect(play, SIGNAL(clicked()), this, SIGNAL(playClick()));
+ connect(loopBox, SIGNAL(stateChanged(int)), this, SIGNAL(loopClick()));
+ connect(soundBox, SIGNAL(stateChanged(int)), this, SIGNAL(soundClick()));
+
+ connect(fpsBox,SIGNAL(valueChanged(int)), this, SIGNAL(fpsClick(int)));
+
+ connect(pencilButton, SIGNAL(clicked()), this, SLOT(changePencilButton()));
+ connect(selectButton, SIGNAL(clicked()), this, SLOT(changeSelectButton()));
+ connect(moveButton, SIGNAL(clicked()), this, SLOT(changeMoveButton()));
+ connect(handButton, SIGNAL(clicked()), this, SLOT(changeHandButton()));
+ connect(eraserButton, SIGNAL(clicked()), this, SLOT(changeEraserButton()));
+ connect(penButton, SIGNAL(clicked()), this, SLOT(changePenButton()));
+ connect(polylineButton, SIGNAL(clicked()), this, SLOT(changePolylineButton()));
+ connect(bucketButton, SIGNAL(clicked()), this, SLOT(changeBucketButton()));
+ connect(eyedropperButton, SIGNAL(clicked()), this, SLOT(changeEyedropperButton()));
+ connect(colouringButton, SIGNAL(clicked()), this, SLOT(changeColouringButton()));
+ connect(smudgeButton, SIGNAL(clicked()), this, SLOT(changeSmudgeButton()));
+
+ //connect(thinLinesButton, SIGNAL(clicked()), this, SLOT(changeThinLinesButton()));
+}
+
+void ToolSet::newToolButton(QToolButton* &toolButton) {
+ toolButton = new QToolButton(this);
+ toolButton->setAutoRaise(true);
+ toolButton->setIconSize( QSize(24,24) );
+ toolButton->setFixedSize(32,32);
+}
+
+void ToolSet::setCounter(int x) {
+ //framecounter->setText(QString::number(x));
+}
+
+void ToolSet::setWidth(qreal x) {
+ if(x < 0) {
+ sizeSlider->setEnabled(false);
+ } else {
+ sizeSlider->setEnabled(true);
+ sizeSlider->setValue(x);
+ }
+}
+
+void ToolSet::setFeather(qreal x) {
+ if(x < 0) {
+ featherSlider->setEnabled(false);
+ } else {
+ featherSlider->setEnabled(true);
+ featherSlider->setValue(x);
+ }
+}
+
+void ToolSet::setOpacity(qreal x) {
+ if(x < 0) {
+ opacitySlider->setEnabled(false);
+ } else {
+ opacitySlider->setEnabled(true);
+ opacitySlider->setValue(x);
+ }
+}
+
+void ToolSet::setPressure(int x) { // x = -1, 0, 1
+ if(x<0) {
+ usePressureBox->setEnabled(false);
+ } else {
+ usePressureBox->setEnabled(true);
+ usePressureBox->setChecked(x>0);
+ }
+}
+
+void ToolSet::pressureClick(bool x) {
+ int y = 0;
+ if(x) y = 1;
+ emit pressureClick(y);
+}
+
+void ToolSet::setInvisibility(int x) { // x = -1, 0, 1
+ if(x<0) {
+ makeInvisibleBox->setEnabled(false);
+ } else {
+ makeInvisibleBox->setEnabled(true);
+ makeInvisibleBox->setChecked(x>0);
+ }
+}
+
+void ToolSet::invisibleClick(bool x) {
+ int y = 0;
+ if(x) y = 1;
+ emit invisibleClick(y);
+}
+
+void ToolSet::setPreserveAlpha(int x) { // x = -1, 0, 1
+ if(x<0) {
+ preserveAlphaBox->setEnabled(false);
+ } else {
+ preserveAlphaBox->setEnabled(true);
+ preserveAlphaBox->setChecked(x>0);
+ }
+}
+
+void ToolSet::preserveAlphaClick(bool x) {
+ int y = 0;
+ if(x) y = 1;
+ emit preserveAlphaClick(y);
+}
+
+void ToolSet::setFollowContour(int x) { // x = -1, 0, 1
+ if(x<0) {
+ followContourBox->setEnabled(false);
+ } else {
+ followContourBox->setEnabled(true);
+ followContourBox->setChecked(x>0);
+ }
+}
+
+void ToolSet::followContourClick(bool x) {
+ int y = 0;
+ if(x) y = 1;
+ emit followContourClick(y);
+}
+
+void ToolSet::setColour(QColor x) {
+ QPixmap colourSwatch(30,30);
+ colourSwatch.fill(x);
+ choseColour->setIcon(colourSwatch);
+}
+
+void ToolSet::changePencilButton() {
+ deselectAllTools();
+ pencilButton->setChecked(true);
+}
+
+void ToolSet::changeEraserButton() {
+ deselectAllTools();
+ eraserButton->setChecked(true);
+}
+
+void ToolSet::changeSelectButton() {
+ deselectAllTools();
+ selectButton->setChecked(true);
+}
+
+void ToolSet::changeMoveButton() {
+ deselectAllTools();
+ moveButton->setChecked(true);
+}
+
+void ToolSet::changeHandButton() {
+ deselectAllTools();
+ handButton->setChecked(true);
+}
+
+void ToolSet::changePenButton() {
+ deselectAllTools();
+ penButton->setChecked(true);
+}
+
+void ToolSet::changePolylineButton() {
+ deselectAllTools();
+ polylineButton->setChecked(true);
+}
+
+void ToolSet::changeBucketButton() {
+ deselectAllTools();
+ bucketButton->setChecked(true);
+}
+
+void ToolSet::changeEyedropperButton() {
+ deselectAllTools();
+ eyedropperButton->setChecked(true);
+}
+
+void ToolSet::changeColouringButton() {
+ deselectAllTools();
+ colouringButton->setChecked(true);
+}
+
+void ToolSet::changeSmudgeButton() {
+ deselectAllTools();
+ smudgeButton->setChecked(true);
+}
+
+void ToolSet::changeOutlinesButton(bool trueOrFalse) {
+ outlinesButton->setChecked(trueOrFalse);
+}
+
+
+void ToolSet::changeThinLinesButton(bool trueOrFalse) {
+ thinLinesButton->setChecked(trueOrFalse);
+}
+
+
+void ToolSet::resetMirror() {
+ mirrorButton->setChecked(false);
+}
+
+void ToolSet::deselectAllTools() {
+ pencilButton->setChecked(false);
+ eraserButton->setChecked(false);
+ selectButton->setChecked(false);
+ moveButton->setChecked(false);
+ handButton->setChecked(false);
+ penButton->setChecked(false);
+ polylineButton->setChecked(false);
+ bucketButton->setChecked(false);
+ eyedropperButton->setChecked(false);
+ colouringButton->setChecked(false);
+ smudgeButton->setChecked(false);
+}
+
+
diff -rupN pencil_backup/src/interface/toolset.h pencil_dev/src/interface/toolset.h
--- pencil_backup/src/interface/toolset.h 2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/toolset.h 2009-09-27 15:47:04.000000000 -0500
@@ -104,14 +104,16 @@ signals:
void colouringClick();
void smudgeClick();
+ void onionStraightAheadClick();
+ void onionInbetweenClick();
+
void lengthClick(QString);
void fpsClick(int);
void clearClick();
void thinLinesClick();
void outlinesClick();
void mirrorClick();
- void prevClick();
- void nextClick();
+ void onionRadio(int);
void widthClick(qreal);
void featherClick(qreal);
void opacityClick(qreal);
@@ -145,6 +147,9 @@ private:
QToolButton *add;
QToolButton *rm;
+
+ QToolButton *onionStraightAheadButton;
+ QToolButton *onionInbetweenButton;
QSpinBox *fpsBox;
//QDoubleSpinBox *sizeSlider;
@@ -160,8 +165,6 @@ private:
QCheckBox *preserveAlphaBox;
QCheckBox *followContourBox;
- QCheckBox *onionPrevBox;
- QCheckBox *onionNextBox;
QCheckBox *loopBox;
QCheckBox *soundBox;
int fps;
diff -rupN pencil_backup/src/interface/toolset.h~ pencil_dev/src/interface/toolset.h~
--- pencil_backup/src/interface/toolset.h~ 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/toolset.h~ 2009-09-26 20:49:53.000000000 -0500
@@ -0,0 +1,174 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+*/
+#ifndef TOOLSET_H
+#define TOOLSET_H
+
+#include <QtGui>
+
+class SpinSlider : public QWidget
+{
+ Q_OBJECT
+ public:
+ SpinSlider(QString text, QString type, QString dataType, qreal min, qreal max, QWidget *parent = 0);
+ public slots:
+ void changeValue(qreal);
+ void changeValue(int);
+ void setValue(qreal);
+ void sliderReleased();
+ void sliderMoved(int);
+ signals:
+ void valueChanged(qreal);
+ private:
+ QLabel* valueLabel;
+ QSlider* slider;
+ qreal value, min, max;
+ QString type, dataType;
+};
+
+
+class ToolSet : public QWidget
+{
+ Q_OBJECT
+
+public:
+ ToolSet();
+
+ QDockWidget *drawPalette;
+ QDockWidget *optionPalette;
+ QDockWidget *displayPalette;
+ QDockWidget *keyPalette;
+ QDockWidget *onionPalette;
+ QDockWidget *timePalette;
+
+public slots:
+ void setCounter(int);
+ void setWidth(qreal);
+ void setFeather(qreal);
+ void setOpacity(qreal);
+ void setInvisibility(int);
+ void setPressure(int);
+ void setPreserveAlpha(int);
+ void setFollowContour(int);
+ void setColour(QColor);
+ //void playStart();
+ void changePencilButton();
+ void changeEraserButton();
+ void changeSelectButton();
+ void changeMoveButton();
+ void changeHandButton();
+ void changePenButton();
+ void changePolylineButton();
+ void changeBucketButton();
+ void changeEyedropperButton();
+ void changeColouringButton();
+ void changeThinLinesButton(bool);
+ void changeOutlinesButton(bool);
+ void changeSmudgeButton();
+
+ void resetMirror();
+ void pressureClick(bool);
+ void invisibleClick(bool);
+ void preserveAlphaClick(bool);
+ void followContourClick(bool);
+
+signals:
+ void rmClick();
+ void playClick();
+ void addClick();
+ void pencilClick();
+ void eraserClick();
+ void selectClick();
+ void moveClick();
+ void handClick();
+ void penClick();
+ void pressureClick(int);
+ void invisibleClick(int);
+ void preserveAlphaClick(int);
+ void followContourClick(int);
+ void polylineClick();
+ void bucketClick();
+ void eyedropperClick();
+ void colouringClick();
+ void smudgeClick();
+
+ void lengthClick(QString);
+ void fpsClick(int);
+ void clearClick();
+ void thinLinesClick();
+ void outlinesClick();
+ void mirrorClick();
+ void onionRadio(int);
+ void widthClick(qreal);
+ void featherClick(qreal);
+ void opacityClick(qreal);
+ void colourClick();
+ void loopClick();
+ void soundClick();
+
+private:
+ void newToolButton(QToolButton* &toolButton);
+
+ QToolButton *choseColour;
+ QPixmap *colourSwatch;
+ QToolButton *pencilButton;
+ QToolButton *selectButton;
+ QToolButton *moveButton;
+ QToolButton *handButton;
+ QToolButton *eraserButton;
+ QToolButton *penButton;
+ QToolButton *polylineButton;
+ QToolButton *bucketButton;
+ QToolButton *colouringButton;
+ QToolButton *eyedropperButton;
+ QToolButton *magnifyButton;
+ QToolButton *smudgeButton;
+
+ QToolButton *thinLinesButton;
+ QToolButton *outlinesButton;
+
+ QToolButton *mirrorButton;
+ QToolButton *clearButton;
+
+ QToolButton *add;
+ QToolButton *rm;
+
+ QToolButton *onionStraightAheadButton;
+ QToolButton *onionInbetweenButton;
+
+ QSpinBox *fpsBox;
+ //QDoubleSpinBox *sizeSlider;
+ SpinSlider *sizeSlider;
+ SpinSlider *featherSlider;
+ SpinSlider *opacitySlider;
+ //QSlider *featherSlider;
+ QLabel *framecounter;
+ QPushButton *play;
+
+ QCheckBox *usePressureBox;
+ QCheckBox *makeInvisibleBox;
+ QCheckBox *preserveAlphaBox;
+ QCheckBox *followContourBox;
+
+ QCheckBox *loopBox;
+ QCheckBox *soundBox;
+ int fps;
+
+ void deselectAllTools();
+
+
+};
+
+#endif
Binary files pencil_backup/timecontrols.o and pencil_dev/timecontrols.o differ
Binary files pencil_backup/timeline.o and pencil_dev/timeline.o differ
Binary files pencil_backup/toolset.o and pencil_dev/toolset.o differ
Binary files pencil_backup/vectorimage.o and pencil_dev/vectorimage.o differ
Binary files pencil_backup/vertexref.o and pencil_dev/vertexref.o differ
Binary files pencil_backup/beziercurve.o and pencil_dev/beziercurve.o differ
Binary files pencil_backup/bitmapimage.o and pencil_dev/bitmapimage.o differ
Binary files pencil_backup/blur.o and pencil_dev/blur.o differ
Binary files pencil_backup/colourref.o and pencil_dev/colourref.o differ
Binary files pencil_backup/editor.o and pencil_dev/editor.o differ
Binary files pencil_backup/flash.o and pencil_dev/flash.o differ
Binary files pencil_backup/gradient.o and pencil_dev/gradient.o differ
Binary files pencil_backup/icons/onionInbetween.png and pencil_dev/icons/onionInbetween.png differ
Binary files pencil_backup/icons/onionNext.png and pencil_dev/icons/onionNext.png differ
Binary files pencil_backup/icons/onionPrev.png and pencil_dev/icons/onionPrev.png differ
Binary files pencil_backup/icons/onionPrev_test.xcf and pencil_dev/icons/onionPrev_test.xcf differ
Binary files pencil_backup/icons/onionStraightAhead.png and pencil_dev/icons/onionStraightAhead.png differ
Binary files pencil_backup/layerbitmap.o and pencil_dev/layerbitmap.o differ
Binary files pencil_backup/layercamera.o and pencil_dev/layercamera.o differ
Binary files pencil_backup/layerimage.o and pencil_dev/layerimage.o differ
Binary files pencil_backup/layer.o and pencil_dev/layer.o differ
Binary files pencil_backup/layersound.o and pencil_dev/layersound.o differ
Binary files pencil_backup/layervector.o and pencil_dev/layervector.o differ
Binary files pencil_backup/linux.o and pencil_dev/linux.o differ
Binary files pencil_backup/main.o and pencil_dev/main.o differ
Binary files pencil_backup/mainwindow.o and pencil_dev/mainwindow.o differ
diff -rupN pencil_backup/Makefile pencil_dev/Makefile
--- pencil_backup/Makefile 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/Makefile 2009-09-28 18:57:52.000000000 -0500
@@ -0,0 +1,584 @@
+#############################################################################
+# Makefile for building: Pencil
+# Generated by qmake (2.01a) (Qt 4.5.0) on: Mon Sep 28 18:57:52 2009
+# Project: pencil.pro
+# Template: app
+# Command: /usr/bin/qmake -unix -o Makefile pencil.pro
+#############################################################################
+
+####### Compiler, tools and options
+
+CC = gcc
+CXX = g++
+DEFINES = -DQT_NO_DEBUG -DQT_XML_LIB -DQT_OPENGL_LIB -DQT_GUI_LIB -DQT_CORE_LIB -DQT_SHARED
+CFLAGS = -pipe -O2 -D_REENTRANT -Wall -W $(DEFINES)
+CXXFLAGS = -pipe -O2 -D_REENTRANT -Wall -W $(DEFINES)
+INCPATH = -I/usr/share/qt4/mkspecs/linux-g++ -I. -I/usr/include/qt4/QtCore -I/usr/include/qt4/QtGui -I/usr/include/qt4/QtOpenGL -I/usr/include/qt4/QtXml -I/usr/include/qt4 -I. -Isrc -Isrc/external/flash -Isrc/external/linux -Isrc/external/macosx -Isrc/external/win32 -Isrc/graphics -Isrc/graphics/bitmap -Isrc/graphics/vector -Isrc/interface -Isrc/structure -I. -Iliblinux -I/usr/X11R6/include -I. -I.
+LINK = g++
+LFLAGS = -Wl,-O1
+LIBS = $(SUBLIBS) -L/usr/lib -L/usr/X11R6/lib -Lliblinux -lming -lpng -lQtXml -lQtOpenGL -lQtGui -lQtCore -lGLU -lGL -lpthread
+AR = ar cqs
+RANLIB =
+QMAKE = /usr/bin/qmake
+TAR = tar -cf
+COMPRESS = gzip -9f
+COPY = cp -f
+SED = sed
+COPY_FILE = $(COPY)
+COPY_DIR = $(COPY) -r
+INSTALL_FILE = install -m 644 -p
+INSTALL_DIR = $(COPY_DIR)
+INSTALL_PROGRAM = install -m 755 -p
+DEL_FILE = rm -f
+SYMLINK = ln -sf
+DEL_DIR = rmdir
+MOVE = mv -f
+CHK_DIR_EXISTS= test -d
+MKDIR = mkdir -p
+
+####### Output directory
+
+OBJECTS_DIR = ./
+
+####### Files
+
+SOURCES = src/external/flash/flash.cpp \
+ src/graphics/bitmap/blur.cpp \
+ src/graphics/bitmap/bitmapimage.cpp \
+ src/graphics/vector/bezierarea.cpp \
+ src/graphics/vector/beziercurve.cpp \
+ src/graphics/vector/colourref.cpp \
+ src/graphics/vector/gradient.cpp \
+ src/graphics/vector/vectorimage.cpp \
+ src/graphics/vector/vertexref.cpp \
+ src/structure/layer.cpp \
+ src/structure/layerbitmap.cpp \
+ src/structure/layercamera.cpp \
+ src/structure/layerimage.cpp \
+ src/structure/layersound.cpp \
+ src/structure/layervector.cpp \
+ src/structure/object.cpp \
+ src/interface/editor.cpp \
+ src/interface/mainwindow.cpp \
+ src/interface/palette.cpp \
+ src/interface/preferences.cpp \
+ src/interface/scribblearea.cpp \
+ src/interface/timeline.cpp \
+ src/interface/timecontrols.cpp \
+ src/interface/toolset.cpp \
+ src/main.cpp \
+ src/external/linux/linux.cpp moc_layer.cpp \
+ moc_layerbitmap.cpp \
+ moc_layercamera.cpp \
+ moc_layerimage.cpp \
+ moc_layersound.cpp \
+ moc_layervector.cpp \
+ moc_object.cpp \
+ moc_editor.cpp \
+ moc_mainwindow.cpp \
+ moc_palette.cpp \
+ moc_preferences.cpp \
+ moc_scribblearea.cpp \
+ moc_timeline.cpp \
+ moc_timecontrols.cpp \
+ moc_toolset.cpp \
+ qrc_pencil.cpp
+OBJECTS = flash.o \
+ blur.o \
+ bitmapimage.o \
+ bezierarea.o \
+ beziercurve.o \
+ colourref.o \
+ gradient.o \
+ vectorimage.o \
+ vertexref.o \
+ layer.o \
+ layerbitmap.o \
+ layercamera.o \
+ layerimage.o \
+ layersound.o \
+ layervector.o \
+ object.o \
+ editor.o \
+ mainwindow.o \
+ palette.o \
+ preferences.o \
+ scribblearea.o \
+ timeline.o \
+ timecontrols.o \
+ toolset.o \
+ main.o \
+ linux.o \
+ moc_layer.o \
+ moc_layerbitmap.o \
+ moc_layercamera.o \
+ moc_layerimage.o \
+ moc_layersound.o \
+ moc_layervector.o \
+ moc_object.o \
+ moc_editor.o \
+ moc_mainwindow.o \
+ moc_palette.o \
+ moc_preferences.o \
+ moc_scribblearea.o \
+ moc_timeline.o \
+ moc_timecontrols.o \
+ moc_toolset.o \
+ qrc_pencil.o
+DIST = /usr/share/qt4/mkspecs/common/g++.conf \
+ /usr/share/qt4/mkspecs/common/unix.conf \
+ /usr/share/qt4/mkspecs/common/linux.conf \
+ /usr/share/qt4/mkspecs/qconfig.pri \
+ /usr/share/qt4/mkspecs/features/qt_functions.prf \
+ /usr/share/qt4/mkspecs/features/qt_config.prf \
+ /usr/share/qt4/mkspecs/features/exclusive_builds.prf \
+ /usr/share/qt4/mkspecs/features/default_pre.prf \
+ /usr/share/qt4/mkspecs/features/release.prf \
+ /usr/share/qt4/mkspecs/features/default_post.prf \
+ /usr/share/qt4/mkspecs/features/qt.prf \
+ /usr/share/qt4/mkspecs/features/unix/opengl.prf \
+ /usr/share/qt4/mkspecs/features/unix/thread.prf \
+ /usr/share/qt4/mkspecs/features/moc.prf \
+ /usr/share/qt4/mkspecs/features/warn_on.prf \
+ /usr/share/qt4/mkspecs/features/resources.prf \
+ /usr/share/qt4/mkspecs/features/uic.prf \
+ /usr/share/qt4/mkspecs/features/yacc.prf \
+ /usr/share/qt4/mkspecs/features/lex.prf \
+ pencil.pro
+QMAKE_TARGET = Pencil
+DESTDIR =
+TARGET = Pencil
+
+first: all
+####### Implicit rules
+
+.SUFFIXES: .o .c .cpp .cc .cxx .C
+
+.cpp.o:
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
+
+.cc.o:
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
+
+.cxx.o:
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
+
+.C.o:
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o "$@" "$<"
+
+.c.o:
+ $(CC) -c $(CFLAGS) $(INCPATH) -o "$@" "$<"
+
+####### Build rules
+
+all: Makefile $(TARGET)
+
+$(TARGET): $(OBJECTS)
+ $(LINK) $(LFLAGS) -o $(TARGET) $(OBJECTS) $(OBJCOMP) $(LIBS)
+
+Makefile: pencil.pro /usr/share/qt4/mkspecs/linux-g++/qmake.conf /usr/share/qt4/mkspecs/common/g++.conf \
+ /usr/share/qt4/mkspecs/common/unix.conf \
+ /usr/share/qt4/mkspecs/common/linux.conf \
+ /usr/share/qt4/mkspecs/qconfig.pri \
+ /usr/share/qt4/mkspecs/features/qt_functions.prf \
+ /usr/share/qt4/mkspecs/features/qt_config.prf \
+ /usr/share/qt4/mkspecs/features/exclusive_builds.prf \
+ /usr/share/qt4/mkspecs/features/default_pre.prf \
+ /usr/share/qt4/mkspecs/features/release.prf \
+ /usr/share/qt4/mkspecs/features/default_post.prf \
+ /usr/share/qt4/mkspecs/features/qt.prf \
+ /usr/share/qt4/mkspecs/features/unix/opengl.prf \
+ /usr/share/qt4/mkspecs/features/unix/thread.prf \
+ /usr/share/qt4/mkspecs/features/moc.prf \
+ /usr/share/qt4/mkspecs/features/warn_on.prf \
+ /usr/share/qt4/mkspecs/features/resources.prf \
+ /usr/share/qt4/mkspecs/features/uic.prf \
+ /usr/share/qt4/mkspecs/features/yacc.prf \
+ /usr/share/qt4/mkspecs/features/lex.prf \
+ /usr/lib/libQtXml.prl \
+ /usr/lib/libQtOpenGL.prl \
+ /usr/lib/libQtGui.prl \
+ /usr/lib/libQtCore.prl
+ $(QMAKE) -unix -o Makefile pencil.pro
+/usr/share/qt4/mkspecs/common/g++.conf:
+/usr/share/qt4/mkspecs/common/unix.conf:
+/usr/share/qt4/mkspecs/common/linux.conf:
+/usr/share/qt4/mkspecs/qconfig.pri:
+/usr/share/qt4/mkspecs/features/qt_functions.prf:
+/usr/share/qt4/mkspecs/features/qt_config.prf:
+/usr/share/qt4/mkspecs/features/exclusive_builds.prf:
+/usr/share/qt4/mkspecs/features/default_pre.prf:
+/usr/share/qt4/mkspecs/features/release.prf:
+/usr/share/qt4/mkspecs/features/default_post.prf:
+/usr/share/qt4/mkspecs/features/qt.prf:
+/usr/share/qt4/mkspecs/features/unix/opengl.prf:
+/usr/share/qt4/mkspecs/features/unix/thread.prf:
+/usr/share/qt4/mkspecs/features/moc.prf:
+/usr/share/qt4/mkspecs/features/warn_on.prf:
+/usr/share/qt4/mkspecs/features/resources.prf:
+/usr/share/qt4/mkspecs/features/uic.prf:
+/usr/share/qt4/mkspecs/features/yacc.prf:
+/usr/share/qt4/mkspecs/features/lex.prf:
+/usr/lib/libQtXml.prl:
+/usr/lib/libQtOpenGL.prl:
+/usr/lib/libQtGui.prl:
+/usr/lib/libQtCore.prl:
+qmake: FORCE
+ @$(QMAKE) -unix -o Makefile pencil.pro
+
+dist:
+ @$(CHK_DIR_EXISTS) .tmp/Pencil1.0.0 || $(MKDIR) .tmp/Pencil1.0.0
+ $(COPY_FILE) --parents $(SOURCES) $(DIST) .tmp/Pencil1.0.0/ && $(COPY_FILE) --parents src/interfaces.h src/external/flash/flash.h src/graphics/bitmap/bitmapimage.h src/graphics/vector/bezierarea.h src/graphics/vector/beziercurve.h src/graphics/vector/colourref.h src/graphics/vector/gradient.h src/graphics/vector/vectorimage.h src/graphics/vector/vertexref.h src/structure/layer.h src/structure/layerbitmap.h src/structure/layercamera.h src/structure/layerimage.h src/structure/layersound.h src/structure/layervector.h src/structure/object.h src/interface/editor.h src/interface/mainwindow.h src/interface/palette.h src/interface/preferences.h src/interface/scribblearea.h src/interface/timeline.h src/interface/timecontrols.h src/interface/toolset.h .tmp/Pencil1.0.0/ && $(COPY_FILE) --parents pencil.qrc .tmp/Pencil1.0.0/ && $(COPY_FILE) --parents src/external/flash/flash.cpp src/graphics/bitmap/blur.cpp src/graphics/bitmap/bitmapimage.cpp src/graphics/vector/bezierarea.cpp src/graphics/vector/beziercurve.cpp src/graphics/vector/colourref.cpp src/graphics/vector/gradient.cpp src/graphics/vector/vectorimage.cpp src/graphics/vector/vertexref.cpp src/structure/layer.cpp src/structure/layerbitmap.cpp src/structure/layercamera.cpp src/structure/layerimage.cpp src/structure/layersound.cpp src/structure/layervector.cpp src/structure/object.cpp src/interface/editor.cpp src/interface/mainwindow.cpp src/interface/palette.cpp src/interface/preferences.cpp src/interface/scribblearea.cpp src/interface/timeline.cpp src/interface/timecontrols.cpp src/interface/toolset.cpp src/main.cpp src/external/linux/linux.cpp .tmp/Pencil1.0.0/ && (cd `dirname .tmp/Pencil1.0.0` && $(TAR) Pencil1.0.0.tar Pencil1.0.0 && $(COMPRESS) Pencil1.0.0.tar) && $(MOVE) `dirname .tmp/Pencil1.0.0`/Pencil1.0.0.tar.gz . && $(DEL_FILE) -r .tmp/Pencil1.0.0
+
+
+clean:compiler_clean
+ -$(DEL_FILE) $(OBJECTS)
+ -$(DEL_FILE) *~ core *.core
+
+
+####### Sub-libraries
+
+distclean: clean
+ -$(DEL_FILE) $(TARGET)
+ -$(DEL_FILE) Makefile
+
+
+mocclean: compiler_moc_header_clean compiler_moc_source_clean
+
+mocables: compiler_moc_header_make_all compiler_moc_source_make_all
+
+compiler_moc_header_make_all: moc_layer.cpp moc_layerbitmap.cpp moc_layercamera.cpp moc_layerimage.cpp moc_layersound.cpp moc_layervector.cpp moc_object.cpp moc_editor.cpp moc_mainwindow.cpp moc_palette.cpp moc_preferences.cpp moc_scribblearea.cpp moc_timeline.cpp moc_timecontrols.cpp moc_toolset.cpp
+compiler_moc_header_clean:
+ -$(DEL_FILE) moc_layer.cpp moc_layerbitmap.cpp moc_layercamera.cpp moc_layerimage.cpp moc_layersound.cpp moc_layervector.cpp moc_object.cpp moc_editor.cpp moc_mainwindow.cpp moc_palette.cpp moc_preferences.cpp moc_scribblearea.cpp moc_timeline.cpp moc_timecontrols.cpp moc_toolset.cpp
+moc_layer.cpp: src/structure/layer.h
+ /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/structure/layer.h -o moc_layer.cpp
+
+moc_layerbitmap.cpp: src/structure/layerimage.h \
+ src/structure/layer.h \
+ src/structure/layerbitmap.h
+ /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/structure/layerbitmap.h -o moc_layerbitmap.cpp
+
+moc_layercamera.cpp: src/structure/layerimage.h \
+ src/structure/layer.h \
+ src/structure/layercamera.h
+ /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/structure/layercamera.h -o moc_layercamera.cpp
+
+moc_layerimage.cpp: src/structure/layer.h \
+ src/structure/layerimage.h
+ /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/structure/layerimage.h -o moc_layerimage.cpp
+
+moc_layersound.cpp: src/structure/layerimage.h \
+ src/structure/layer.h \
+ src/structure/layersound.h
+ /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/structure/layersound.h -o moc_layersound.cpp
+
+moc_layervector.cpp: src/structure/layerimage.h \
+ src/structure/layer.h \
+ src/structure/layervector.h
+ /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/structure/layervector.h -o moc_layervector.cpp
+
+moc_object.cpp: src/structure/layer.h \
+ src/structure/layerbitmap.h \
+ src/structure/layerimage.h \
+ src/structure/layervector.h \
+ src/structure/object.h
+ /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/structure/object.h -o moc_object.cpp
+
+moc_editor.cpp: src/interface/timeline.h \
+ src/interface/toolset.h \
+ src/interface/scribblearea.h \
+ src/interface/preferences.h \
+ src/interface/palette.h \
+ src/interface/editor.h
+ /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/interface/editor.h -o moc_editor.cpp
+
+moc_mainwindow.cpp: src/interface/editor.h \
+ src/interface/timeline.h \
+ src/interface/toolset.h \
+ src/interface/scribblearea.h \
+ src/interface/preferences.h \
+ src/interface/palette.h \
+ src/interface/mainwindow.h
+ /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/interface/mainwindow.h -o moc_mainwindow.cpp
+
+moc_palette.cpp: src/interface/toolset.h \
+ src/interface/palette.h
+ /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/interface/palette.h -o moc_palette.cpp
+
+moc_preferences.cpp: src/interface/preferences.h
+ /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/interface/preferences.h -o moc_preferences.cpp
+
+moc_scribblearea.cpp: src/interface/scribblearea.h
+ /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/interface/scribblearea.h -o moc_scribblearea.cpp
+
+moc_timeline.cpp: src/interface/toolset.h \
+ src/interface/timeline.h
+ /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/interface/timeline.h -o moc_timeline.cpp
+
+moc_timecontrols.cpp: src/interface/timecontrols.h
+ /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/interface/timecontrols.h -o moc_timecontrols.cpp
+
+moc_toolset.cpp: src/interface/toolset.h
+ /usr/bin/moc-qt4 $(DEFINES) $(INCPATH) src/interface/toolset.h -o moc_toolset.cpp
+
+compiler_rcc_make_all: qrc_pencil.cpp
+compiler_rcc_clean:
+ -$(DEL_FILE) qrc_pencil.cpp
+qrc_pencil.cpp: pencil.qrc \
+ background/weave.jpg \
+ background/dots.png \
+ icons/select.png \
+ icons/pen.png \
+ icons/brush.png \
+ icons/bucketTool.png \
+ icons/add.png \
+ icons/polyline.png \
+ icons/arrow.png \
+ icons/logo.png \
+ icons/layer-sound.png \
+ icons/eraser2.png \
+ icons/move.png \
+ icons/onionStraightAhead.png \
+ icons/prefs-files.png \
+ icons/icon.png \
+ icons/prefstimeline.png \
+ icons/aqua.png \
+ icons/eyedropper.png \
+ icons/smudge.png \
+ icons/layer-vector.png \
+ icons/magnify.png \
+ icons/pencil2.png \
+ icons/thinlines5.png \
+ icons/layer-bitmap.png \
+ icons/onionInbetween.png \
+ icons/house.png \
+ icons/hand.png \
+ icons/bucket.png \
+ icons/prefspencil.png \
+ icons/clear.png \
+ icons/mirror.png \
+ icons/layer-camera.png \
+ icons/eraser.png \
+ icons/outlines5.png \
+ icons/remove.png \
+ icons/controls/separator.png \
+ icons/controls/play.png \
+ icons/controls/sound.png \
+ icons/controls/loop.png
+ /usr/bin/rcc -name pencil pencil.qrc -o qrc_pencil.cpp
+
+compiler_image_collection_make_all: qmake_image_collection.cpp
+compiler_image_collection_clean:
+ -$(DEL_FILE) qmake_image_collection.cpp
+compiler_moc_source_make_all:
+compiler_moc_source_clean:
+compiler_uic_make_all:
+compiler_uic_clean:
+compiler_yacc_decl_make_all:
+compiler_yacc_decl_clean:
+compiler_yacc_impl_make_all:
+compiler_yacc_impl_clean:
+compiler_lex_make_all:
+compiler_lex_clean:
+compiler_clean: compiler_moc_header_clean compiler_rcc_clean
+
+####### Compile
+
+flash.o: src/external/flash/flash.cpp src/external/flash/flash.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o flash.o src/external/flash/flash.cpp
+
+blur.o: src/graphics/bitmap/blur.cpp src/graphics/bitmap/blur.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o blur.o src/graphics/bitmap/blur.cpp
+
+bitmapimage.o: src/graphics/bitmap/bitmapimage.cpp src/graphics/bitmap/bitmapimage.h \
+ src/graphics/bitmap/blur.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o bitmapimage.o src/graphics/bitmap/bitmapimage.cpp
+
+bezierarea.o: src/graphics/vector/bezierarea.cpp src/graphics/vector/bezierarea.h \
+ src/graphics/vector/vertexref.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o bezierarea.o src/graphics/vector/bezierarea.cpp
+
+beziercurve.o: src/graphics/vector/beziercurve.cpp src/graphics/vector/beziercurve.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o beziercurve.o src/graphics/vector/beziercurve.cpp
+
+colourref.o: src/graphics/vector/colourref.cpp src/graphics/vector/colourref.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o colourref.o src/graphics/vector/colourref.cpp
+
+gradient.o: src/graphics/vector/gradient.cpp src/graphics/vector/gradient.h \
+ src/graphics/vector/vectorimage.h \
+ src/graphics/vector/bezierarea.h \
+ src/graphics/vector/vertexref.h \
+ src/graphics/vector/beziercurve.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o gradient.o src/graphics/vector/gradient.cpp
+
+vectorimage.o: src/graphics/vector/vectorimage.cpp src/graphics/vector/vectorimage.h \
+ src/graphics/vector/bezierarea.h \
+ src/graphics/vector/vertexref.h \
+ src/graphics/vector/beziercurve.h \
+ src/graphics/vector/gradient.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o vectorimage.o src/graphics/vector/vectorimage.cpp
+
+vertexref.o: src/graphics/vector/vertexref.cpp src/graphics/vector/vertexref.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o vertexref.o src/graphics/vector/vertexref.cpp
+
+layer.o: src/structure/layer.cpp src/structure/layer.h \
+ src/structure/object.h \
+ src/structure/layerbitmap.h \
+ src/structure/layerimage.h \
+ src/structure/layervector.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o layer.o src/structure/layer.cpp
+
+layerbitmap.o: src/structure/layerbitmap.cpp src/structure/layerbitmap.h \
+ src/structure/layerimage.h \
+ src/structure/layer.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o layerbitmap.o src/structure/layerbitmap.cpp
+
+layercamera.o: src/structure/layercamera.cpp src/structure/layercamera.h \
+ src/structure/layerimage.h \
+ src/structure/layer.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o layercamera.o src/structure/layercamera.cpp
+
+layerimage.o: src/structure/layerimage.cpp src/structure/layerimage.h \
+ src/structure/layer.h \
+ src/structure/object.h \
+ src/structure/layerbitmap.h \
+ src/structure/layervector.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o layerimage.o src/structure/layerimage.cpp
+
+layersound.o: src/structure/layersound.cpp src/structure/layersound.h \
+ src/structure/layerimage.h \
+ src/structure/layer.h \
+ src/structure/object.h \
+ src/structure/layerbitmap.h \
+ src/structure/layervector.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o layersound.o src/structure/layersound.cpp
+
+layervector.o: src/structure/layervector.cpp src/structure/layervector.h \
+ src/structure/layerimage.h \
+ src/structure/layer.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o layervector.o src/structure/layervector.cpp
+
+object.o: src/structure/object.cpp src/structure/object.h \
+ src/structure/layer.h \
+ src/structure/layerbitmap.h \
+ src/structure/layerimage.h \
+ src/structure/layervector.h \
+ src/structure/layersound.h \
+ src/structure/layercamera.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o object.o src/structure/object.cpp
+
+editor.o: src/interface/editor.cpp src/interface/editor.h \
+ src/interface/timeline.h \
+ src/interface/toolset.h \
+ src/interface/scribblearea.h \
+ src/interface/preferences.h \
+ src/interface/palette.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o editor.o src/interface/editor.cpp
+
+mainwindow.o: src/interface/mainwindow.cpp src/interface/editor.h \
+ src/interface/timeline.h \
+ src/interface/toolset.h \
+ src/interface/scribblearea.h \
+ src/interface/preferences.h \
+ src/interface/palette.h \
+ src/interface/mainwindow.h \
+ src/interfaces.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o mainwindow.o src/interface/mainwindow.cpp
+
+palette.o: src/interface/palette.cpp src/interface/palette.h \
+ src/interface/toolset.h \
+ src/interface/editor.h \
+ src/interface/timeline.h \
+ src/interface/scribblearea.h \
+ src/interface/preferences.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o palette.o src/interface/palette.cpp
+
+preferences.o: src/interface/preferences.cpp src/interface/preferences.h \
+ src/interface/scribblearea.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o preferences.o src/interface/preferences.cpp
+
+scribblearea.o: src/interface/scribblearea.cpp src/interface/scribblearea.h \
+ src/interface/editor.h \
+ src/interface/timeline.h \
+ src/interface/toolset.h \
+ src/interface/preferences.h \
+ src/interface/palette.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o scribblearea.o src/interface/scribblearea.cpp
+
+timeline.o: src/interface/timeline.cpp src/interface/timeline.h \
+ src/interface/toolset.h \
+ src/interface/editor.h \
+ src/interface/scribblearea.h \
+ src/interface/preferences.h \
+ src/interface/palette.h \
+ src/interface/timecontrols.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o timeline.o src/interface/timeline.cpp
+
+timecontrols.o: src/interface/timecontrols.cpp src/interface/timecontrols.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o timecontrols.o src/interface/timecontrols.cpp
+
+toolset.o: src/interface/toolset.cpp src/interface/toolset.h
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o toolset.o src/interface/toolset.cpp
+
+main.o: src/main.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o main.o src/main.cpp
+
+linux.o: src/external/linux/linux.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o linux.o src/external/linux/linux.cpp
+
+moc_layer.o: moc_layer.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_layer.o moc_layer.cpp
+
+moc_layerbitmap.o: moc_layerbitmap.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_layerbitmap.o moc_layerbitmap.cpp
+
+moc_layercamera.o: moc_layercamera.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_layercamera.o moc_layercamera.cpp
+
+moc_layerimage.o: moc_layerimage.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_layerimage.o moc_layerimage.cpp
+
+moc_layersound.o: moc_layersound.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_layersound.o moc_layersound.cpp
+
+moc_layervector.o: moc_layervector.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_layervector.o moc_layervector.cpp
+
+moc_object.o: moc_object.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_object.o moc_object.cpp
+
+moc_editor.o: moc_editor.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_editor.o moc_editor.cpp
+
+moc_mainwindow.o: moc_mainwindow.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_mainwindow.o moc_mainwindow.cpp
+
+moc_palette.o: moc_palette.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_palette.o moc_palette.cpp
+
+moc_preferences.o: moc_preferences.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_preferences.o moc_preferences.cpp
+
+moc_scribblearea.o: moc_scribblearea.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_scribblearea.o moc_scribblearea.cpp
+
+moc_timeline.o: moc_timeline.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_timeline.o moc_timeline.cpp
+
+moc_timecontrols.o: moc_timecontrols.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_timecontrols.o moc_timecontrols.cpp
+
+moc_toolset.o: moc_toolset.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o moc_toolset.o moc_toolset.cpp
+
+qrc_pencil.o: qrc_pencil.cpp
+ $(CXX) -c $(CXXFLAGS) $(INCPATH) -o qrc_pencil.o qrc_pencil.cpp
+
+####### Install
+
+install: FORCE
+
+uninstall: FORCE
+
+FORCE:
+
diff -rupN pencil_backup/moc_editor.cpp pencil_dev/moc_editor.cpp
--- pencil_backup/moc_editor.cpp 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_editor.cpp 2009-10-01 20:03:19.000000000 -0500
@@ -0,0 +1,469 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'editor.h'
+**
+** Created: Thu Oct 1 20:03:19 2009
+** by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/interface/editor.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'editor.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. 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_BackupElement[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_BackupElement[] = {
+ "BackupElement\0"
+};
+
+const QMetaObject BackupElement::staticMetaObject = {
+ { &QObject::staticMetaObject, qt_meta_stringdata_BackupElement,
+ qt_meta_data_BackupElement, 0 }
+};
+
+const QMetaObject *BackupElement::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *BackupElement::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_BackupElement))
+ return static_cast<void*>(const_cast< BackupElement*>(this));
+ return QObject::qt_metacast(_clname);
+}
+
+int BackupElement::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QObject::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ return _id;
+}
+static const uint qt_meta_data_BackupBitmapElement[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_BackupBitmapElement[] = {
+ "BackupBitmapElement\0"
+};
+
+const QMetaObject BackupBitmapElement::staticMetaObject = {
+ { &BackupElement::staticMetaObject, qt_meta_stringdata_BackupBitmapElement,
+ qt_meta_data_BackupBitmapElement, 0 }
+};
+
+const QMetaObject *BackupBitmapElement::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *BackupBitmapElement::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_BackupBitmapElement))
+ return static_cast<void*>(const_cast< BackupBitmapElement*>(this));
+ return BackupElement::qt_metacast(_clname);
+}
+
+int BackupBitmapElement::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = BackupElement::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ return _id;
+}
+static const uint qt_meta_data_BackupVectorElement[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_BackupVectorElement[] = {
+ "BackupVectorElement\0"
+};
+
+const QMetaObject BackupVectorElement::staticMetaObject = {
+ { &BackupElement::staticMetaObject, qt_meta_stringdata_BackupVectorElement,
+ qt_meta_data_BackupVectorElement, 0 }
+};
+
+const QMetaObject *BackupVectorElement::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *BackupVectorElement::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_BackupVectorElement))
+ return static_cast<void*>(const_cast< BackupVectorElement*>(this));
+ return BackupElement::qt_metacast(_clname);
+}
+
+int BackupVectorElement::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = BackupElement::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ return _id;
+}
+static const uint qt_meta_data_Editor[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 101, 12, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ // signals: signature, parameters, type, tag, flags
+ 8, 7, 7, 7, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+ 20, 7, 7, 7, 0x0a,
+ 42, 7, 37, 7, 0x0a,
+ 54, 7, 7, 7, 0x0a,
+ 77, 68, 7, 7, 0x0a,
+ 98, 7, 7, 7, 0x0a,
+ 112, 68, 7, 7, 0x0a,
+ 133, 7, 7, 7, 0x0a,
+ 149, 7, 7, 7, 0x0a,
+ 177, 165, 7, 7, 0x0a,
+ 194, 165, 7, 7, 0x0a,
+ 220, 165, 7, 7, 0x0a,
+ 233, 7, 7, 7, 0x0a,
+ 248, 7, 7, 7, 0x0a,
+ 264, 7, 7, 7, 0x0a,
+ 271, 7, 7, 7, 0x0a,
+ 285, 7, 7, 7, 0x0a,
+ 301, 7, 7, 7, 0x0a,
+ 320, 7, 316, 7, 0x0a,
+ 329, 7, 7, 7, 0x0a,
+ 339, 7, 7, 7, 0x0a,
+ 350, 7, 7, 7, 0x0a,
+ 366, 7, 7, 7, 0x0a,
+ 378, 7, 7, 7, 0x0a,
+ 411, 387, 7, 7, 0x0a,
+ 428, 7, 7, 7, 0x0a,
+ 440, 165, 7, 7, 0x0a,
+ 480, 454, 7, 7, 0x0a,
+ 498, 165, 7, 7, 0x0a,
+ 515, 165, 316, 7, 0x0a,
+ 540, 165, 316, 7, 0x0a,
+ 565, 7, 7, 7, 0x0a,
+ 583, 7, 7, 7, 0x0a,
+ 602, 595, 7, 7, 0x0a,
+ 621, 7, 7, 7, 0x0a,
+ 648, 636, 7, 7, 0x0a,
+ 669, 636, 7, 7, 0x0a,
+ 702, 698, 7, 7, 0x0a,
+ 721, 7, 7, 7, 0x0a,
+ 738, 7, 7, 7, 0x0a,
+ 754, 7, 7, 7, 0x0a,
+ 772, 7, 7, 7, 0x0a,
+ 790, 7, 7, 7, 0x0a,
+ 810, 7, 7, 7, 0x0a,
+ 828, 7, 7, 7, 0x0a,
+ 848, 7, 7, 7, 0x0a,
+ 869, 7, 7, 7, 0x0a,
+ 892, 7, 7, 7, 0x0a,
+ 909, 7, 7, 7, 0x0a,
+ 928, 7, 7, 7, 0x0a,
+ 950, 7, 7, 7, 0x0a,
+ 974, 7, 7, 7, 0x0a,
+ 996, 7, 7, 7, 0x0a,
+ 1020, 7, 7, 7, 0x0a,
+ 1038, 7, 7, 7, 0x0a,
+ 1064, 7, 7, 7, 0x0a,
+ 1082, 7, 7, 7, 0x0a,
+ 1100, 7, 7, 7, 0x0a,
+ 1124, 1122, 7, 7, 0x0a,
+ 1149, 1122, 7, 7, 0x0a,
+ 1174, 7, 7, 7, 0x0a,
+ 1186, 7, 7, 7, 0x0a,
+ 1204, 7, 7, 7, 0x0a,
+ 1224, 7, 7, 7, 0x0a,
+ 1250, 7, 7, 7, 0x0a,
+ 1265, 7, 7, 7, 0x0a,
+ 1283, 7, 7, 7, 0x0a,
+ 1292, 387, 7, 7, 0x0a,
+ 1308, 7, 7, 7, 0x0a,
+ 1315, 7, 7, 7, 0x0a,
+ 1322, 7, 7, 7, 0x0a,
+ 1329, 7, 7, 7, 0x0a,
+ 1337, 7, 7, 7, 0x0a,
+ 1356, 7, 7, 7, 0x0a,
+ 1373, 7, 7, 7, 0x0a,
+ 1390, 7, 7, 7, 0x0a,
+ 1406, 7, 7, 7, 0x0a,
+ 1423, 7, 7, 7, 0x0a,
+ 1444, 7, 7, 7, 0x0a,
+ 1459, 7, 7, 7, 0x0a,
+ 1481, 7, 7, 7, 0x0a,
+ 1495, 7, 7, 7, 0x0a,
+ 1508, 7, 7, 7, 0x0a,
+ 1526, 7, 7, 7, 0x0a,
+ 1549, 1546, 7, 7, 0x0a,
+ 1589, 7, 7, 7, 0x0a,
+ 1606, 7, 7, 7, 0x0a,
+ 1623, 7, 316, 7, 0x0a,
+ 1639, 7, 316, 7, 0x0a,
+ 1655, 7, 7, 7, 0x08,
+ 1669, 7, 7, 7, 0x08,
+ 1684, 7, 37, 7, 0x08,
+ 1699, 7, 7, 7, 0x08,
+ 1711, 7, 37, 7, 0x08,
+ 1721, 7, 37, 7, 0x08,
+ 1733, 7, 37, 7, 0x08,
+ 1745, 7, 37, 7, 0x08,
+ 1759, 7, 7, 7, 0x08,
+ 1773, 7, 7, 7, 0x08,
+ 1781, 7, 7, 7, 0x08,
+ 1791, 7, 7, 7, 0x08,
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_Editor[] = {
+ "Editor\0\0selectAll()\0showCounter(int)\0"
+ "bool\0maybeSave()\0importImage()\0filePath\0"
+ "importImage(QString)\0importSound()\0"
+ "importSound(QString)\0importPalette()\0"
+ "exportPalette()\0frameNumber\0"
+ "updateFrame(int)\0updateFrameAndVector(int)\0"
+ "scrubTo(int)\0scrubForward()\0scrubBackward()\0"
+ "play()\0startOrStop()\0playNextFrame()\0"
+ "changeFps(int)\0int\0getFps()\0setLoop()\0"
+ "setSound()\0previousLayer()\0nextLayer()\0"
+ "addKey()\0layerNumber,frameNumber\0"
+ "addKey(int,int&)\0removeKey()\0addFrame(int)\0"
+ "frameNumber1,frameNumber2\0addFrame(int,int)\0"
+ "removeFrame(int)\0getLastIndexAtFrame(int)\0"
+ "getLastFrameAtFrame(int)\0showPreferences()\0"
+ "newObject()\0object\0setObject(Object*)\0"
+ "updateObject()\0layerNumber\0"
+ "setCurrentLayer(int)\0switchVisibilityOfLayer(int)\0"
+ "i,j\0moveLayer(int,int)\0updateMaxFrame()\0"
+ "setWidth(qreal)\0applyWidth(qreal)\0"
+ "setFeather(qreal)\0applyFeather(qreal)\0"
+ "setOpacity(qreal)\0applyOpacity(qreal)\0"
+ "setInvisibility(int)\0applyInvisibility(int)\0"
+ "setPressure(int)\0applyPressure(int)\0"
+ "setPreserveAlpha(int)\0applyPreserveAlpha(int)\0"
+ "setFollowContour(int)\0applyFollowContour(int)\0"
+ "selectColour(int)\0selectAndApplyColour(int)\0"
+ "setColour(QColor)\0changeColour(int)\0"
+ "changeColourName(int)\0,\0"
+ "changeColour(int,QColor)\0"
+ "updateColour(int,QColor)\0addColour()\0"
+ "removeColour(int)\0changeAutosave(int)\0"
+ "changeAutosaveNumber(int)\0modification()\0"
+ "modification(int)\0backup()\0backup(int,int)\0"
+ "undo()\0redo()\0copy()\0paste()\0"
+ "clipboardChanged()\0newBitmapLayer()\0"
+ "newVectorLayer()\0newSoundLayer()\0"
+ "newCameraLayer()\0deleteCurrentLayer()\0"
+ "toggleMirror()\0toggleShowAllLayers()\0"
+ "resetMirror()\0openRecent()\0dockAllPalettes()\0"
+ "detachAllPalettes()\0,,\0"
+ "restorePalettesSettings(bool,bool,bool)\0"
+ "getPrevKeyFlip()\0getNextKeyFlip()\0"
+ "getPrevKey(int)\0getNextKey(int)\0"
+ "newDocument()\0openDocument()\0"
+ "saveDocument()\0saveForce()\0exportX()\0"
+ "exportSeq()\0exportMov()\0exportFlash()\0"
+ "showPalette()\0about()\0helpBox()\0"
+ "saveLength(QString)\0"
+};
+
+const QMetaObject Editor::staticMetaObject = {
+ { &QWidget::staticMetaObject, qt_meta_stringdata_Editor,
+ qt_meta_data_Editor, 0 }
+};
+
+const QMetaObject *Editor::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *Editor::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_Editor))
+ return static_cast<void*>(const_cast< Editor*>(this));
+ return QWidget::qt_metacast(_clname);
+}
+
+int Editor::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QWidget::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ switch (_id) {
+ case 0: selectAll(); break;
+ case 1: showCounter((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 2: { bool _r = maybeSave();
+ if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; } break;
+ case 3: importImage(); break;
+ case 4: importImage((*reinterpret_cast< QString(*)>(_a[1]))); break;
+ case 5: importSound(); break;
+ case 6: importSound((*reinterpret_cast< QString(*)>(_a[1]))); break;
+ case 7: importPalette(); break;
+ case 8: exportPalette(); break;
+ case 9: updateFrame((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 10: updateFrameAndVector((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 11: scrubTo((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 12: scrubForward(); break;
+ case 13: scrubBackward(); break;
+ case 14: play(); break;
+ case 15: startOrStop(); break;
+ case 16: playNextFrame(); break;
+ case 17: changeFps((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 18: { int _r = getFps();
+ if (_a[0]) *reinterpret_cast< int*>(_a[0]) = _r; } break;
+ case 19: setLoop(); break;
+ case 20: setSound(); break;
+ case 21: previousLayer(); break;
+ case 22: nextLayer(); break;
+ case 23: addKey(); break;
+ case 24: addKey((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
+ case 25: removeKey(); break;
+ case 26: addFrame((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 27: addFrame((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
+ case 28: removeFrame((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 29: { int _r = getLastIndexAtFrame((*reinterpret_cast< int(*)>(_a[1])));
+ if (_a[0]) *reinterpret_cast< int*>(_a[0]) = _r; } break;
+ case 30: { int _r = getLastFrameAtFrame((*reinterpret_cast< int(*)>(_a[1])));
+ if (_a[0]) *reinterpret_cast< int*>(_a[0]) = _r; } break;
+ case 31: showPreferences(); break;
+ case 32: newObject(); break;
+ case 33: setObject((*reinterpret_cast< Object*(*)>(_a[1]))); break;
+ case 34: updateObject(); break;
+ case 35: setCurrentLayer((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 36: switchVisibilityOfLayer((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 37: moveLayer((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
+ case 38: updateMaxFrame(); break;
+ case 39: setWidth((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+ case 40: applyWidth((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+ case 41: setFeather((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+ case 42: applyFeather((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+ case 43: setOpacity((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+ case 44: applyOpacity((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+ case 45: setInvisibility((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 46: applyInvisibility((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 47: setPressure((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 48: applyPressure((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 49: setPreserveAlpha((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 50: applyPreserveAlpha((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 51: setFollowContour((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 52: applyFollowContour((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 53: selectColour((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 54: selectAndApplyColour((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 55: setColour((*reinterpret_cast< QColor(*)>(_a[1]))); break;
+ case 56: changeColour((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 57: changeColourName((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 58: changeColour((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< QColor(*)>(_a[2]))); break;
+ case 59: updateColour((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< QColor(*)>(_a[2]))); break;
+ case 60: addColour(); break;
+ case 61: removeColour((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 62: changeAutosave((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 63: changeAutosaveNumber((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 64: modification(); break;
+ case 65: modification((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 66: backup(); break;
+ case 67: backup((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
+ case 68: undo(); break;
+ case 69: redo(); break;
+ case 70: copy(); break;
+ case 71: paste(); break;
+ case 72: clipboardChanged(); break;
+ case 73: newBitmapLayer(); break;
+ case 74: newVectorLayer(); break;
+ case 75: newSoundLayer(); break;
+ case 76: newCameraLayer(); break;
+ case 77: deleteCurrentLayer(); break;
+ case 78: toggleMirror(); break;
+ case 79: toggleShowAllLayers(); break;
+ case 80: resetMirror(); break;
+ case 81: openRecent(); break;
+ case 82: dockAllPalettes(); break;
+ case 83: detachAllPalettes(); break;
+ case 84: restorePalettesSettings((*reinterpret_cast< bool(*)>(_a[1])),(*reinterpret_cast< bool(*)>(_a[2])),(*reinterpret_cast< bool(*)>(_a[3]))); break;
+ case 85: getPrevKeyFlip(); break;
+ case 86: getNextKeyFlip(); break;
+ case 87: { int _r = getPrevKey((*reinterpret_cast< int(*)>(_a[1])));
+ if (_a[0]) *reinterpret_cast< int*>(_a[0]) = _r; } break;
+ case 88: { int _r = getNextKey((*reinterpret_cast< int(*)>(_a[1])));
+ if (_a[0]) *reinterpret_cast< int*>(_a[0]) = _r; } break;
+ case 89: newDocument(); break;
+ case 90: openDocument(); break;
+ case 91: { bool _r = saveDocument();
+ if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; } break;
+ case 92: saveForce(); break;
+ case 93: { bool _r = exportX();
+ if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; } break;
+ case 94: { bool _r = exportSeq();
+ if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; } break;
+ case 95: { bool _r = exportMov();
+ if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; } break;
+ case 96: { bool _r = exportFlash();
+ if (_a[0]) *reinterpret_cast< bool*>(_a[0]) = _r; } break;
+ case 97: showPalette(); break;
+ case 98: about(); break;
+ case 99: helpBox(); break;
+ case 100: saveLength((*reinterpret_cast< QString(*)>(_a[1]))); break;
+ default: ;
+ }
+ _id -= 101;
+ }
+ return _id;
+}
+
+// SIGNAL 0
+void Editor::selectAll()
+{
+ QMetaObject::activate(this, &staticMetaObject, 0, 0);
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_editor.o and pencil_dev/moc_editor.o differ
diff -rupN pencil_backup/moc_layerbitmap.cpp pencil_dev/moc_layerbitmap.cpp
--- pencil_backup/moc_layerbitmap.cpp 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_layerbitmap.cpp 2009-09-28 17:10:22.000000000 -0500
@@ -0,0 +1,63 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'layerbitmap.h'
+**
+** Created: Mon Sep 28 17:10:22 2009
+** by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/structure/layerbitmap.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'layerbitmap.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. 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_LayerBitmap[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_LayerBitmap[] = {
+ "LayerBitmap\0"
+};
+
+const QMetaObject LayerBitmap::staticMetaObject = {
+ { &LayerImage::staticMetaObject, qt_meta_stringdata_LayerBitmap,
+ qt_meta_data_LayerBitmap, 0 }
+};
+
+const QMetaObject *LayerBitmap::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *LayerBitmap::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_LayerBitmap))
+ return static_cast<void*>(const_cast< LayerBitmap*>(this));
+ return LayerImage::qt_metacast(_clname);
+}
+
+int LayerBitmap::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = LayerImage::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ return _id;
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_layerbitmap.o and pencil_dev/moc_layerbitmap.o differ
diff -rupN pencil_backup/moc_layercamera.cpp pencil_dev/moc_layercamera.cpp
--- pencil_backup/moc_layercamera.cpp 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_layercamera.cpp 2009-09-28 17:10:24.000000000 -0500
@@ -0,0 +1,106 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'layercamera.h'
+**
+** Created: Mon Sep 28 17:10:24 2009
+** by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/structure/layercamera.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'layercamera.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. 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_CameraPropertiesDialog[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_CameraPropertiesDialog[] = {
+ "CameraPropertiesDialog\0"
+};
+
+const QMetaObject CameraPropertiesDialog::staticMetaObject = {
+ { &QDialog::staticMetaObject, qt_meta_stringdata_CameraPropertiesDialog,
+ qt_meta_data_CameraPropertiesDialog, 0 }
+};
+
+const QMetaObject *CameraPropertiesDialog::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *CameraPropertiesDialog::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_CameraPropertiesDialog))
+ return static_cast<void*>(const_cast< CameraPropertiesDialog*>(this));
+ return QDialog::qt_metacast(_clname);
+}
+
+int CameraPropertiesDialog::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QDialog::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ return _id;
+}
+static const uint qt_meta_data_LayerCamera[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_LayerCamera[] = {
+ "LayerCamera\0"
+};
+
+const QMetaObject LayerCamera::staticMetaObject = {
+ { &LayerImage::staticMetaObject, qt_meta_stringdata_LayerCamera,
+ qt_meta_data_LayerCamera, 0 }
+};
+
+const QMetaObject *LayerCamera::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *LayerCamera::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_LayerCamera))
+ return static_cast<void*>(const_cast< LayerCamera*>(this));
+ return LayerImage::qt_metacast(_clname);
+}
+
+int LayerCamera::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = LayerImage::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ return _id;
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_layercamera.o and pencil_dev/moc_layercamera.o differ
diff -rupN pencil_backup/moc_layer.cpp pencil_dev/moc_layer.cpp
--- pencil_backup/moc_layer.cpp 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_layer.cpp 2009-09-28 17:10:20.000000000 -0500
@@ -0,0 +1,63 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'layer.h'
+**
+** Created: Mon Sep 28 17:10:20 2009
+** by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/structure/layer.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'layer.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. 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_Layer[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_Layer[] = {
+ "Layer\0"
+};
+
+const QMetaObject Layer::staticMetaObject = {
+ { &QObject::staticMetaObject, qt_meta_stringdata_Layer,
+ qt_meta_data_Layer, 0 }
+};
+
+const QMetaObject *Layer::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *Layer::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_Layer))
+ return static_cast<void*>(const_cast< Layer*>(this));
+ return QObject::qt_metacast(_clname);
+}
+
+int Layer::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QObject::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ return _id;
+}
+QT_END_MOC_NAMESPACE
diff -rupN pencil_backup/moc_layerimage.cpp pencil_dev/moc_layerimage.cpp
--- pencil_backup/moc_layerimage.cpp 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_layerimage.cpp 2009-09-28 17:10:27.000000000 -0500
@@ -0,0 +1,99 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'layerimage.h'
+**
+** Created: Mon Sep 28 17:10:27 2009
+** by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/structure/layerimage.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'layerimage.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. 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_LayerImage[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 3, 12, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ // signals: signature, parameters, type, tag, flags
+ 12, 11, 11, 11, 0x05,
+ 30, 28, 11, 11, 0x05,
+ 50, 11, 11, 11, 0x05,
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_LayerImage[] = {
+ "LayerImage\0\0imageAdded(int)\0,\0"
+ "imageAdded(int,int)\0imageRemoved(int)\0"
+};
+
+const QMetaObject LayerImage::staticMetaObject = {
+ { &Layer::staticMetaObject, qt_meta_stringdata_LayerImage,
+ qt_meta_data_LayerImage, 0 }
+};
+
+const QMetaObject *LayerImage::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *LayerImage::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_LayerImage))
+ return static_cast<void*>(const_cast< LayerImage*>(this));
+ return Layer::qt_metacast(_clname);
+}
+
+int LayerImage::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = Layer::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ switch (_id) {
+ case 0: imageAdded((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 1: imageAdded((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
+ case 2: imageRemoved((*reinterpret_cast< int(*)>(_a[1]))); break;
+ default: ;
+ }
+ _id -= 3;
+ }
+ return _id;
+}
+
+// SIGNAL 0
+void LayerImage::imageAdded(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+
+// SIGNAL 1
+void LayerImage::imageAdded(int _t1, int _t2)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
+ QMetaObject::activate(this, &staticMetaObject, 1, _a);
+}
+
+// SIGNAL 2
+void LayerImage::imageRemoved(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 2, _a);
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_layerimage.o and pencil_dev/moc_layerimage.o differ
Binary files pencil_backup/moc_layer.o and pencil_dev/moc_layer.o differ
diff -rupN pencil_backup/moc_layersound.cpp pencil_dev/moc_layersound.cpp
--- pencil_backup/moc_layersound.cpp 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_layersound.cpp 2009-09-28 17:10:29.000000000 -0500
@@ -0,0 +1,63 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'layersound.h'
+**
+** Created: Mon Sep 28 17:10:29 2009
+** by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/structure/layersound.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'layersound.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. 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_LayerSound[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_LayerSound[] = {
+ "LayerSound\0"
+};
+
+const QMetaObject LayerSound::staticMetaObject = {
+ { &LayerImage::staticMetaObject, qt_meta_stringdata_LayerSound,
+ qt_meta_data_LayerSound, 0 }
+};
+
+const QMetaObject *LayerSound::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *LayerSound::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_LayerSound))
+ return static_cast<void*>(const_cast< LayerSound*>(this));
+ return LayerImage::qt_metacast(_clname);
+}
+
+int LayerSound::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = LayerImage::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ return _id;
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_layersound.o and pencil_dev/moc_layersound.o differ
diff -rupN pencil_backup/moc_layervector.cpp pencil_dev/moc_layervector.cpp
--- pencil_backup/moc_layervector.cpp 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_layervector.cpp 2009-09-28 17:10:31.000000000 -0500
@@ -0,0 +1,63 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'layervector.h'
+**
+** Created: Mon Sep 28 17:10:31 2009
+** by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/structure/layervector.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'layervector.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. 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_LayerVector[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_LayerVector[] = {
+ "LayerVector\0"
+};
+
+const QMetaObject LayerVector::staticMetaObject = {
+ { &LayerImage::staticMetaObject, qt_meta_stringdata_LayerVector,
+ qt_meta_data_LayerVector, 0 }
+};
+
+const QMetaObject *LayerVector::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *LayerVector::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_LayerVector))
+ return static_cast<void*>(const_cast< LayerVector*>(this));
+ return LayerImage::qt_metacast(_clname);
+}
+
+int LayerVector::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = LayerImage::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ return _id;
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_layervector.o and pencil_dev/moc_layervector.o differ
diff -rupN pencil_backup/moc_mainwindow.cpp pencil_dev/moc_mainwindow.cpp
--- pencil_backup/moc_mainwindow.cpp 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_mainwindow.cpp 2009-10-01 20:03:22.000000000 -0500
@@ -0,0 +1,76 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'mainwindow.h'
+**
+** Created: Thu Oct 1 20:03:22 2009
+** by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/interface/mainwindow.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'mainwindow.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. 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_MainWindow[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 2, 12, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ // slots: signature, parameters, type, tag, flags
+ 20, 12, 11, 11, 0x0a,
+ 36, 11, 11, 11, 0x08,
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_MainWindow[] = {
+ "MainWindow\0\0opacity\0setOpacity(int)\0"
+ "exportFile()\0"
+};
+
+const QMetaObject MainWindow::staticMetaObject = {
+ { &QMainWindow::staticMetaObject, qt_meta_stringdata_MainWindow,
+ qt_meta_data_MainWindow, 0 }
+};
+
+const QMetaObject *MainWindow::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *MainWindow::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_MainWindow))
+ return static_cast<void*>(const_cast< MainWindow*>(this));
+ return QMainWindow::qt_metacast(_clname);
+}
+
+int MainWindow::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: setOpacity((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 1: exportFile(); break;
+ default: ;
+ }
+ _id -= 2;
+ }
+ return _id;
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_mainwindow.o and pencil_dev/moc_mainwindow.o differ
diff -rupN pencil_backup/moc_object.cpp pencil_dev/moc_object.cpp
--- pencil_backup/moc_object.cpp 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_object.cpp 2009-09-28 17:10:34.000000000 -0500
@@ -0,0 +1,111 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'object.h'
+**
+** Created: Mon Sep 28 17:10:34 2009
+** by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/structure/object.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'object.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. 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_Object[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 7, 12, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ // signals: signature, parameters, type, tag, flags
+ 8, 7, 7, 7, 0x05,
+ 26, 24, 7, 7, 0x05,
+ 46, 7, 7, 7, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+ 64, 7, 7, 7, 0x0a,
+ 79, 7, 7, 7, 0x0a,
+ 94, 7, 7, 7, 0x0a,
+ 108, 7, 7, 7, 0x0a,
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_Object[] = {
+ "Object\0\0imageAdded(int)\0,\0imageAdded(int,int)\0"
+ "imageRemoved(int)\0modification()\0"
+ "toggleMirror()\0resetMirror()\0"
+ "imageCheck(int)\0"
+};
+
+const QMetaObject Object::staticMetaObject = {
+ { &QObject::staticMetaObject, qt_meta_stringdata_Object,
+ qt_meta_data_Object, 0 }
+};
+
+const QMetaObject *Object::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *Object::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_Object))
+ return static_cast<void*>(const_cast< Object*>(this));
+ return QObject::qt_metacast(_clname);
+}
+
+int Object::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QObject::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ switch (_id) {
+ case 0: imageAdded((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 1: imageAdded((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
+ case 2: imageRemoved((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 3: modification(); break;
+ case 4: toggleMirror(); break;
+ case 5: resetMirror(); break;
+ case 6: imageCheck((*reinterpret_cast< int(*)>(_a[1]))); break;
+ default: ;
+ }
+ _id -= 7;
+ }
+ return _id;
+}
+
+// SIGNAL 0
+void Object::imageAdded(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+
+// SIGNAL 1
+void Object::imageAdded(int _t1, int _t2)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)), const_cast<void*>(reinterpret_cast<const void*>(&_t2)) };
+ QMetaObject::activate(this, &staticMetaObject, 1, _a);
+}
+
+// SIGNAL 2
+void Object::imageRemoved(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 2, _a);
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_object.o and pencil_dev/moc_object.o differ
diff -rupN pencil_backup/moc_palette.cpp pencil_dev/moc_palette.cpp
--- pencil_backup/moc_palette.cpp 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_palette.cpp 2009-09-28 17:10:42.000000000 -0500
@@ -0,0 +1,110 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'palette.h'
+**
+** Created: Mon Sep 28 17:10:42 2009
+** by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/interface/palette.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'palette.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. 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_Palette[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 15, 12, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ // slots: signature, parameters, type, tag, flags
+ 9, 8, 8, 8, 0x0a,
+ 22, 8, 8, 8, 0x0a,
+ 45, 43, 8, 8, 0x0a,
+ 63, 8, 8, 8, 0x0a,
+ 85, 81, 8, 8, 0x0a,
+ 112, 8, 8, 8, 0x08,
+ 136, 134, 8, 8, 0x08,
+ 184, 8, 8, 8, 0x08,
+ 223, 8, 8, 8, 0x08,
+ 238, 8, 8, 8, 0x08,
+ 253, 8, 8, 8, 0x08,
+ 284, 8, 8, 8, 0x08,
+ 319, 8, 8, 8, 0x08,
+ 330, 8, 8, 8, 0x08,
+ 340, 8, 8, 8, 0x08,
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_Palette[] = {
+ "Palette\0\0updateList()\0updateSwatch(QColor)\0"
+ "i\0selectColour(int)\0setColour(QColor)\0"
+ ",,,\0setColour(int,int,int,int)\0"
+ "colourSwatchClicked()\0,\0"
+ "selectColour(QListWidgetItem*,QListWidgetItem*)\0"
+ "selectAndApplyColour(QListWidgetItem*)\0"
+ "updateColour()\0changeColour()\0"
+ "changeColour(QListWidgetItem*)\0"
+ "changeColourName(QListWidgetItem*)\0"
+ "addClick()\0rmClick()\0closeIfDocked(bool)\0"
+};
+
+const QMetaObject Palette::staticMetaObject = {
+ { &QDockWidget::staticMetaObject, qt_meta_stringdata_Palette,
+ qt_meta_data_Palette, 0 }
+};
+
+const QMetaObject *Palette::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *Palette::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_Palette))
+ return static_cast<void*>(const_cast< Palette*>(this));
+ return QDockWidget::qt_metacast(_clname);
+}
+
+int Palette::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QDockWidget::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ switch (_id) {
+ case 0: updateList(); break;
+ case 1: updateSwatch((*reinterpret_cast< QColor(*)>(_a[1]))); break;
+ case 2: selectColour((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 3: setColour((*reinterpret_cast< QColor(*)>(_a[1]))); break;
+ case 4: setColour((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2])),(*reinterpret_cast< int(*)>(_a[3])),(*reinterpret_cast< int(*)>(_a[4]))); break;
+ case 5: colourSwatchClicked(); break;
+ case 6: selectColour((*reinterpret_cast< QListWidgetItem*(*)>(_a[1])),(*reinterpret_cast< QListWidgetItem*(*)>(_a[2]))); break;
+ case 7: selectAndApplyColour((*reinterpret_cast< QListWidgetItem*(*)>(_a[1]))); break;
+ case 8: updateColour(); break;
+ case 9: changeColour(); break;
+ case 10: changeColour((*reinterpret_cast< QListWidgetItem*(*)>(_a[1]))); break;
+ case 11: changeColourName((*reinterpret_cast< QListWidgetItem*(*)>(_a[1]))); break;
+ case 12: addClick(); break;
+ case 13: rmClick(); break;
+ case 14: closeIfDocked((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ default: ;
+ }
+ _id -= 15;
+ }
+ return _id;
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_palette.o and pencil_dev/moc_palette.o differ
diff -rupN pencil_backup/moc_preferences.cpp pencil_dev/moc_preferences.cpp
--- pencil_backup/moc_preferences.cpp 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_preferences.cpp 2009-10-01 20:03:24.000000000 -0500
@@ -0,0 +1,427 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'preferences.h'
+**
+** Created: Thu Oct 1 20:03:24 2009
+** by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/interface/preferences.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'preferences.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. 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_Preferences[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 24, 12, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ // signals: signature, parameters, type, tag, flags
+ 13, 12, 12, 12, 0x05,
+ 38, 12, 12, 12, 0x05,
+ 62, 12, 12, 12, 0x05,
+ 88, 12, 12, 12, 0x05,
+ 115, 12, 12, 12, 0x05,
+ 139, 12, 12, 12, 0x05,
+ 160, 12, 12, 12, 0x05,
+ 182, 12, 12, 12, 0x05,
+ 201, 12, 12, 12, 0x05,
+ 224, 12, 12, 12, 0x05,
+ 241, 12, 12, 12, 0x05,
+ 265, 12, 12, 12, 0x05,
+ 295, 12, 12, 12, 0x05,
+ 328, 12, 12, 12, 0x05,
+ 353, 12, 12, 12, 0x05,
+ 374, 12, 12, 12, 0x05,
+ 399, 12, 12, 12, 0x05,
+ 419, 12, 12, 12, 0x05,
+ 445, 12, 12, 12, 0x05,
+ 471, 12, 12, 12, 0x05,
+ 491, 12, 12, 12, 0x05,
+ 512, 12, 12, 12, 0x05,
+ 529, 12, 12, 12, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+ 563, 546, 12, 12, 0x0a,
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_Preferences[] = {
+ "Preferences\0\0windowOpacityChange(int)\0"
+ "curveOpacityChange(int)\0"
+ "curveSmoothingChange(int)\0"
+ "highResPositionChange(int)\0"
+ "antialiasingChange(int)\0gradientsChange(int)\0"
+ "backgroundChange(int)\0shadowsChange(int)\0"
+ "toolCursorsChange(int)\0styleChange(int)\0"
+ "onionOpacityChange(int)\0"
+ "onionStraightAheadChange(int)\0"
+ "onionPreviousPreviousChange(int)\0"
+ "onionPreviousChange(int)\0onionNextChange(int)\0"
+ "onionNextNextChange(int)\0autosaveChange(int)\0"
+ "autosaveNumberChange(int)\0"
+ "lengthSizeChange(QString)\0fontSizeChange(int)\0"
+ "frameSizeChange(int)\0labelChange(int)\0"
+ "scrubChange(int)\0current,previous\0"
+ "changePage(QListWidgetItem*,QListWidgetItem*)\0"
+};
+
+const QMetaObject Preferences::staticMetaObject = {
+ { &QDialog::staticMetaObject, qt_meta_stringdata_Preferences,
+ qt_meta_data_Preferences, 0 }
+};
+
+const QMetaObject *Preferences::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *Preferences::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_Preferences))
+ return static_cast<void*>(const_cast< Preferences*>(this));
+ return QDialog::qt_metacast(_clname);
+}
+
+int Preferences::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QDialog::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ switch (_id) {
+ case 0: windowOpacityChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 1: curveOpacityChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 2: curveSmoothingChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 3: highResPositionChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 4: antialiasingChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 5: gradientsChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 6: backgroundChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 7: shadowsChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 8: toolCursorsChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 9: styleChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 10: onionOpacityChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 11: onionStraightAheadChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 12: onionPreviousPreviousChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 13: onionPreviousChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 14: onionNextChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 15: onionNextNextChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 16: autosaveChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 17: autosaveNumberChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 18: lengthSizeChange((*reinterpret_cast< QString(*)>(_a[1]))); break;
+ case 19: fontSizeChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 20: frameSizeChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 21: labelChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 22: scrubChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 23: changePage((*reinterpret_cast< QListWidgetItem*(*)>(_a[1])),(*reinterpret_cast< QListWidgetItem*(*)>(_a[2]))); break;
+ default: ;
+ }
+ _id -= 24;
+ }
+ return _id;
+}
+
+// SIGNAL 0
+void Preferences::windowOpacityChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+
+// SIGNAL 1
+void Preferences::curveOpacityChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 1, _a);
+}
+
+// SIGNAL 2
+void Preferences::curveSmoothingChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 2, _a);
+}
+
+// SIGNAL 3
+void Preferences::highResPositionChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 3, _a);
+}
+
+// SIGNAL 4
+void Preferences::antialiasingChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 4, _a);
+}
+
+// SIGNAL 5
+void Preferences::gradientsChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 5, _a);
+}
+
+// SIGNAL 6
+void Preferences::backgroundChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 6, _a);
+}
+
+// SIGNAL 7
+void Preferences::shadowsChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 7, _a);
+}
+
+// SIGNAL 8
+void Preferences::toolCursorsChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 8, _a);
+}
+
+// SIGNAL 9
+void Preferences::styleChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 9, _a);
+}
+
+// SIGNAL 10
+void Preferences::onionOpacityChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 10, _a);
+}
+
+// SIGNAL 11
+void Preferences::onionStraightAheadChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 11, _a);
+}
+
+// SIGNAL 12
+void Preferences::onionPreviousPreviousChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 12, _a);
+}
+
+// SIGNAL 13
+void Preferences::onionPreviousChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 13, _a);
+}
+
+// SIGNAL 14
+void Preferences::onionNextChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 14, _a);
+}
+
+// SIGNAL 15
+void Preferences::onionNextNextChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 15, _a);
+}
+
+// SIGNAL 16
+void Preferences::autosaveChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 16, _a);
+}
+
+// SIGNAL 17
+void Preferences::autosaveNumberChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 17, _a);
+}
+
+// SIGNAL 18
+void Preferences::lengthSizeChange(QString _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 18, _a);
+}
+
+// SIGNAL 19
+void Preferences::fontSizeChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 19, _a);
+}
+
+// SIGNAL 20
+void Preferences::frameSizeChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 20, _a);
+}
+
+// SIGNAL 21
+void Preferences::labelChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 21, _a);
+}
+
+// SIGNAL 22
+void Preferences::scrubChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 22, _a);
+}
+static const uint qt_meta_data_GeneralPage[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_GeneralPage[] = {
+ "GeneralPage\0"
+};
+
+const QMetaObject GeneralPage::staticMetaObject = {
+ { &QWidget::staticMetaObject, qt_meta_stringdata_GeneralPage,
+ qt_meta_data_GeneralPage, 0 }
+};
+
+const QMetaObject *GeneralPage::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *GeneralPage::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_GeneralPage))
+ return static_cast<void*>(const_cast< GeneralPage*>(this));
+ return QWidget::qt_metacast(_clname);
+}
+
+int GeneralPage::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QWidget::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ return _id;
+}
+static const uint qt_meta_data_TimelinePage[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_TimelinePage[] = {
+ "TimelinePage\0"
+};
+
+const QMetaObject TimelinePage::staticMetaObject = {
+ { &QWidget::staticMetaObject, qt_meta_stringdata_TimelinePage,
+ qt_meta_data_TimelinePage, 0 }
+};
+
+const QMetaObject *TimelinePage::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *TimelinePage::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_TimelinePage))
+ return static_cast<void*>(const_cast< TimelinePage*>(this));
+ return QWidget::qt_metacast(_clname);
+}
+
+int TimelinePage::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QWidget::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ return _id;
+}
+static const uint qt_meta_data_FilesPage[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 0, 0, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_FilesPage[] = {
+ "FilesPage\0"
+};
+
+const QMetaObject FilesPage::staticMetaObject = {
+ { &QWidget::staticMetaObject, qt_meta_stringdata_FilesPage,
+ qt_meta_data_FilesPage, 0 }
+};
+
+const QMetaObject *FilesPage::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *FilesPage::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_FilesPage))
+ return static_cast<void*>(const_cast< FilesPage*>(this));
+ return QWidget::qt_metacast(_clname);
+}
+
+int FilesPage::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
Binary files pencil_backup/moc_preferences.o and pencil_dev/moc_preferences.o differ
diff -rupN pencil_backup/moc_scribblearea.cpp pencil_dev/moc_scribblearea.cpp
--- pencil_backup/moc_scribblearea.cpp 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_scribblearea.cpp 2009-10-01 20:03:27.000000000 -0500
@@ -0,0 +1,285 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'scribblearea.h'
+**
+** Created: Thu Oct 1 20:03:27 2009
+** by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/interface/scribblearea.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'scribblearea.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. 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_ScribbleArea[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 62, 12, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ // signals: signature, parameters, type, tag, flags
+ 14, 13, 13, 13, 0x05,
+ 29, 13, 13, 13, 0x05,
+ 47, 13, 13, 13, 0x05,
+ 70, 13, 13, 13, 0x05,
+ 92, 13, 13, 13, 0x05,
+ 107, 13, 13, 13, 0x05,
+ 118, 13, 13, 13, 0x05,
+ 134, 13, 13, 13, 0x05,
+ 158, 13, 13, 13, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+ 178, 13, 13, 13, 0x0a,
+ 191, 13, 13, 13, 0x0a,
+ 216, 13, 13, 13, 0x0a,
+ 251, 13, 13, 13, 0x0a,
+ 303, 279, 13, 13, 0x0a,
+ 324, 13, 13, 13, 0x0a,
+ 336, 13, 13, 13, 0x0a,
+ 350, 13, 13, 13, 0x0a,
+ 362, 13, 13, 13, 0x0a,
+ 381, 13, 13, 13, 0x0a,
+ 400, 13, 13, 13, 0x0a,
+ 421, 13, 13, 13, 0x0a,
+ 444, 13, 13, 13, 0x0a,
+ 473, 13, 13, 13, 0x0a,
+ 505, 13, 13, 13, 0x0a,
+ 529, 13, 13, 13, 0x0a,
+ 549, 13, 13, 13, 0x0a,
+ 573, 13, 13, 13, 0x0a,
+ 584, 13, 13, 13, 0x0a,
+ 595, 13, 13, 13, 0x0a,
+ 606, 13, 13, 13, 0x0a,
+ 615, 13, 13, 13, 0x0a,
+ 624, 13, 13, 13, 0x0a,
+ 641, 636, 13, 13, 0x0a,
+ 668, 13, 660, 13, 0x0a,
+ 680, 13, 13, 13, 0x0a,
+ 688, 13, 13, 13, 0x0a,
+ 701, 13, 13, 13, 0x0a,
+ 712, 13, 13, 13, 0x0a,
+ 727, 13, 13, 13, 0x0a,
+ 741, 13, 13, 13, 0x0a,
+ 752, 13, 13, 13, 0x0a,
+ 768, 13, 13, 13, 0x0a,
+ 786, 13, 13, 13, 0x0a,
+ 804, 13, 13, 13, 0x0a,
+ 822, 13, 13, 13, 0x0a,
+ 844, 13, 13, 13, 0x0a,
+ 867, 13, 13, 13, 0x0a,
+ 890, 13, 13, 13, 0x0a,
+ 911, 13, 13, 13, 0x0a,
+ 934, 13, 13, 13, 0x0a,
+ 958, 13, 13, 13, 0x0a,
+ 979, 13, 13, 13, 0x0a,
+ 997, 13, 13, 13, 0x0a,
+ 1016, 13, 13, 13, 0x0a,
+ 1044, 13, 13, 13, 0x0a,
+ 1060, 13, 13, 13, 0x0a,
+ 1080, 13, 13, 13, 0x0a,
+ 1094, 13, 13, 13, 0x0a,
+ 1112, 13, 13, 13, 0x0a,
+ 1129, 13, 13, 13, 0x0a,
+ 1144, 13, 13, 13, 0x0a,
+ 1166, 13, 13, 13, 0x0a,
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_ScribbleArea[] = {
+ "ScribbleArea\0\0modification()\0"
+ "modification(int)\0thinLinesChanged(bool)\0"
+ "outlinesChanged(bool)\0flipPrevious()\0"
+ "flipNext()\0onionShortCut()\0"
+ "straightAheadShortCut()\0inbetweenShortCut()\0"
+ "clearImage()\0calculateSelectionRect()\0"
+ "calculateSelectionTransformation()\0"
+ "paintTransformedSelection()\0"
+ "layerNumber,frameNumber\0setModified(int,int)\0"
+ "selectAll()\0deselectAll()\0onionIsOn()\0"
+ "onionChangeSlot1()\0onionChangeSlot2()\0"
+ "onionChangeSlot(int)\0onionOpacityLevel(int)\0"
+ "onionStraightAheadLevel(int)\0"
+ "onionPreviousPreviousLevel(int)\0"
+ "onionPreviousLevel(int)\0onionNextLevel(int)\0"
+ "onionNextNextLevel(int)\0pencilOn()\0"
+ "eraserOn()\0selectOn()\0moveOn()\0handOn()\0"
+ "resetView()\0view\0setMyView(QMatrix)\0"
+ "QMatrix\0getMyView()\0penOn()\0polylineOn()\0"
+ "bucketOn()\0eyedropperOn()\0colouringOn()\0"
+ "smudgeOn()\0setWidth(qreal)\0setFeather(qreal)\0"
+ "setOpacity(qreal)\0setPressure(bool)\0"
+ "setInvisibility(bool)\0setPreserveAlpha(bool)\0"
+ "setFollowContour(bool)\0setCurveOpacity(int)\0"
+ "setCurveSmoothing(int)\0setHighResPosition(int)\0"
+ "setAntialiasing(int)\0setGradients(int)\0"
+ "setBackground(int)\0setBackgroundBrush(QString)\0"
+ "setShadows(int)\0setToolCursors(int)\0"
+ "setStyle(int)\0toggleThinLines()\0"
+ "toggleOutlines()\0toggleMirror()\0"
+ "toggleShowAllLayers()\0escape()\0"
+};
+
+const QMetaObject ScribbleArea::staticMetaObject = {
+ { &QWidget::staticMetaObject, qt_meta_stringdata_ScribbleArea,
+ qt_meta_data_ScribbleArea, 0 }
+};
+
+const QMetaObject *ScribbleArea::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *ScribbleArea::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_ScribbleArea))
+ return static_cast<void*>(const_cast< ScribbleArea*>(this));
+ return QWidget::qt_metacast(_clname);
+}
+
+int ScribbleArea::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QWidget::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ switch (_id) {
+ case 0: modification(); break;
+ case 1: modification((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 2: thinLinesChanged((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ case 3: outlinesChanged((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ case 4: flipPrevious(); break;
+ case 5: flipNext(); break;
+ case 6: onionShortCut(); break;
+ case 7: straightAheadShortCut(); break;
+ case 8: inbetweenShortCut(); break;
+ case 9: clearImage(); break;
+ case 10: calculateSelectionRect(); break;
+ case 11: calculateSelectionTransformation(); break;
+ case 12: paintTransformedSelection(); break;
+ case 13: setModified((*reinterpret_cast< int(*)>(_a[1])),(*reinterpret_cast< int(*)>(_a[2]))); break;
+ case 14: selectAll(); break;
+ case 15: deselectAll(); break;
+ case 16: onionIsOn(); break;
+ case 17: onionChangeSlot1(); break;
+ case 18: onionChangeSlot2(); break;
+ case 19: onionChangeSlot((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 20: onionOpacityLevel((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 21: onionStraightAheadLevel((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 22: onionPreviousPreviousLevel((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 23: onionPreviousLevel((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 24: onionNextLevel((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 25: onionNextNextLevel((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 26: pencilOn(); break;
+ case 27: eraserOn(); break;
+ case 28: selectOn(); break;
+ case 29: moveOn(); break;
+ case 30: handOn(); break;
+ case 31: resetView(); break;
+ case 32: setMyView((*reinterpret_cast< QMatrix(*)>(_a[1]))); break;
+ case 33: { QMatrix _r = getMyView();
+ if (_a[0]) *reinterpret_cast< QMatrix*>(_a[0]) = _r; } break;
+ case 34: penOn(); break;
+ case 35: polylineOn(); break;
+ case 36: bucketOn(); break;
+ case 37: eyedropperOn(); break;
+ case 38: colouringOn(); break;
+ case 39: smudgeOn(); break;
+ case 40: setWidth((*reinterpret_cast< const qreal(*)>(_a[1]))); break;
+ case 41: setFeather((*reinterpret_cast< const qreal(*)>(_a[1]))); break;
+ case 42: setOpacity((*reinterpret_cast< const qreal(*)>(_a[1]))); break;
+ case 43: setPressure((*reinterpret_cast< const bool(*)>(_a[1]))); break;
+ case 44: setInvisibility((*reinterpret_cast< const bool(*)>(_a[1]))); break;
+ case 45: setPreserveAlpha((*reinterpret_cast< const bool(*)>(_a[1]))); break;
+ case 46: setFollowContour((*reinterpret_cast< const bool(*)>(_a[1]))); break;
+ case 47: setCurveOpacity((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 48: setCurveSmoothing((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 49: setHighResPosition((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 50: setAntialiasing((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 51: setGradients((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 52: setBackground((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 53: setBackgroundBrush((*reinterpret_cast< QString(*)>(_a[1]))); break;
+ case 54: setShadows((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 55: setToolCursors((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 56: setStyle((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 57: toggleThinLines(); break;
+ case 58: toggleOutlines(); break;
+ case 59: toggleMirror(); break;
+ case 60: toggleShowAllLayers(); break;
+ case 61: escape(); break;
+ default: ;
+ }
+ _id -= 62;
+ }
+ return _id;
+}
+
+// SIGNAL 0
+void ScribbleArea::modification()
+{
+ QMetaObject::activate(this, &staticMetaObject, 0, 0);
+}
+
+// SIGNAL 1
+void ScribbleArea::modification(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 1, _a);
+}
+
+// SIGNAL 2
+void ScribbleArea::thinLinesChanged(bool _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 2, _a);
+}
+
+// SIGNAL 3
+void ScribbleArea::outlinesChanged(bool _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 3, _a);
+}
+
+// SIGNAL 4
+void ScribbleArea::flipPrevious()
+{
+ QMetaObject::activate(this, &staticMetaObject, 4, 0);
+}
+
+// SIGNAL 5
+void ScribbleArea::flipNext()
+{
+ QMetaObject::activate(this, &staticMetaObject, 5, 0);
+}
+
+// SIGNAL 6
+void ScribbleArea::onionShortCut()
+{
+ QMetaObject::activate(this, &staticMetaObject, 6, 0);
+}
+
+// SIGNAL 7
+void ScribbleArea::straightAheadShortCut()
+{
+ QMetaObject::activate(this, &staticMetaObject, 7, 0);
+}
+
+// SIGNAL 8
+void ScribbleArea::inbetweenShortCut()
+{
+ QMetaObject::activate(this, &staticMetaObject, 8, 0);
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_scribblearea.o and pencil_dev/moc_scribblearea.o differ
diff -rupN pencil_backup/moc_timecontrols.cpp pencil_dev/moc_timecontrols.cpp
--- pencil_backup/moc_timecontrols.cpp 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_timecontrols.cpp 2009-09-28 17:10:51.000000000 -0500
@@ -0,0 +1,110 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'timecontrols.h'
+**
+** Created: Mon Sep 28 17:10:51 2009
+** by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/interface/timecontrols.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'timecontrols.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. 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_TimeControls[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 5, 12, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ // signals: signature, parameters, type, tag, flags
+ 14, 13, 13, 13, 0x05,
+ 26, 13, 13, 13, 0x05,
+ 38, 13, 13, 13, 0x05,
+ 51, 13, 13, 13, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+ 65, 13, 13, 13, 0x0a,
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_TimeControls[] = {
+ "TimeControls\0\0playClick()\0loopClick()\0"
+ "soundClick()\0fpsClick(int)\0"
+ "updateButtons(bool)\0"
+};
+
+const QMetaObject TimeControls::staticMetaObject = {
+ { &QToolBar::staticMetaObject, qt_meta_stringdata_TimeControls,
+ qt_meta_data_TimeControls, 0 }
+};
+
+const QMetaObject *TimeControls::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *TimeControls::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_TimeControls))
+ return static_cast<void*>(const_cast< TimeControls*>(this));
+ return QToolBar::qt_metacast(_clname);
+}
+
+int TimeControls::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QToolBar::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ switch (_id) {
+ case 0: playClick(); break;
+ case 1: loopClick(); break;
+ case 2: soundClick(); break;
+ case 3: fpsClick((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 4: updateButtons((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ default: ;
+ }
+ _id -= 5;
+ }
+ return _id;
+}
+
+// SIGNAL 0
+void TimeControls::playClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 0, 0);
+}
+
+// SIGNAL 1
+void TimeControls::loopClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 1, 0);
+}
+
+// SIGNAL 2
+void TimeControls::soundClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 2, 0);
+}
+
+// SIGNAL 3
+void TimeControls::fpsClick(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 3, _a);
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_timecontrols.o and pencil_dev/moc_timecontrols.o differ
diff -rupN pencil_backup/moc_timeline.cpp pencil_dev/moc_timeline.cpp
--- pencil_backup/moc_timeline.cpp 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_timeline.cpp 2009-10-01 18:20:13.000000000 -0500
@@ -0,0 +1,367 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'timeline.h'
+**
+** Created: Thu Oct 1 18:20:13 2009
+** by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/interface/timeline.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'timeline.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. 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_TimeLineCells[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 11, 12, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ // signals: signature, parameters, type, tag, flags
+ 15, 14, 14, 14, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+ 32, 14, 14, 14, 0x0a,
+ 60, 48, 14, 14, 0x0a,
+ 77, 14, 14, 14, 0x0a,
+ 99, 14, 14, 14, 0x0a,
+ 120, 14, 14, 14, 0x0a,
+ 140, 14, 14, 14, 0x0a,
+ 157, 14, 14, 14, 0x0a,
+ 174, 14, 14, 14, 0x0a,
+ 193, 14, 14, 14, 0x0a,
+ 214, 212, 14, 14, 0x0a,
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_TimeLineCells[] = {
+ "TimeLineCells\0\0mouseMovedY(int)\0"
+ "updateContent()\0frameNumber\0"
+ "updateFrame(int)\0lengthChange(QString)\0"
+ "frameSizeChange(int)\0fontSizeChange(int)\0"
+ "scrubChange(int)\0labelChange(int)\0"
+ "hScrollChange(int)\0vScrollChange(int)\0"
+ "x\0setMouseMoveY(int)\0"
+};
+
+const QMetaObject TimeLineCells::staticMetaObject = {
+ { &QWidget::staticMetaObject, qt_meta_stringdata_TimeLineCells,
+ qt_meta_data_TimeLineCells, 0 }
+};
+
+const QMetaObject *TimeLineCells::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *TimeLineCells::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_TimeLineCells))
+ return static_cast<void*>(const_cast< TimeLineCells*>(this));
+ return QWidget::qt_metacast(_clname);
+}
+
+int TimeLineCells::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QWidget::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ switch (_id) {
+ case 0: mouseMovedY((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 1: updateContent(); break;
+ case 2: updateFrame((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 3: lengthChange((*reinterpret_cast< QString(*)>(_a[1]))); break;
+ case 4: frameSizeChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 5: fontSizeChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 6: scrubChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 7: labelChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 8: hScrollChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 9: vScrollChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 10: setMouseMoveY((*reinterpret_cast< int(*)>(_a[1]))); break;
+ default: ;
+ }
+ _id -= 11;
+ }
+ return _id;
+}
+
+// SIGNAL 0
+void TimeLineCells::mouseMovedY(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+static const uint qt_meta_data_TimeLine[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 27, 12, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ // signals: signature, parameters, type, tag, flags
+ 10, 9, 9, 9, 0x05,
+ 25, 9, 9, 9, 0x05,
+ 47, 9, 9, 9, 0x05,
+ 68, 9, 9, 9, 0x05,
+ 88, 9, 9, 9, 0x05,
+ 105, 9, 9, 9, 0x05,
+ 122, 9, 9, 9, 0x05,
+ 136, 9, 9, 9, 0x05,
+ 153, 9, 9, 9, 0x05,
+ 170, 9, 9, 9, 0x05,
+ 187, 9, 9, 9, 0x05,
+ 203, 9, 9, 9, 0x05,
+ 220, 9, 9, 9, 0x05,
+ 241, 9, 9, 9, 0x05,
+ 253, 9, 9, 9, 0x05,
+ 265, 9, 9, 9, 0x05,
+ 278, 9, 9, 9, 0x05,
+ 292, 9, 9, 9, 0x05,
+ 307, 9, 9, 9, 0x05,
+ 322, 9, 9, 9, 0x05,
+ 333, 9, 9, 9, 0x05,
+ 352, 9, 9, 9, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+ 379, 367, 9, 9, 0x0a,
+ 403, 396, 9, 9, 0x0a,
+ 426, 9, 9, 9, 0x0a,
+ 456, 444, 9, 9, 0x0a,
+ 474, 9, 9, 9, 0x0a,
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_TimeLine[] = {
+ "TimeLine\0\0modification()\0lengthChange(QString)\0"
+ "frameSizeChange(int)\0fontSizeChange(int)\0"
+ "labelChange(int)\0scrubChange(int)\0"
+ "addKeyClick()\0removeKeyClick()\0"
+ "newBitmapLayer()\0newVectorLayer()\0"
+ "newSoundLayer()\0newCameraLayer()\0"
+ "deleteCurrentLayer()\0playClick()\0"
+ "loopClick()\0soundClick()\0fpsClick(int)\0"
+ "onionChecked()\0onionType(int)\0onionKey()\0"
+ "straightAheadKey()\0inbetweenKey()\0"
+ "frameNumber\0updateFrame(int)\0number\0"
+ "updateLayerNumber(int)\0updateLayerView()\0"
+ "frameLength\0updateLength(int)\0"
+ "updateContent()\0"
+};
+
+const QMetaObject TimeLine::staticMetaObject = {
+ { &QDockWidget::staticMetaObject, qt_meta_stringdata_TimeLine,
+ qt_meta_data_TimeLine, 0 }
+};
+
+const QMetaObject *TimeLine::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *TimeLine::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_TimeLine))
+ return static_cast<void*>(const_cast< TimeLine*>(this));
+ return QDockWidget::qt_metacast(_clname);
+}
+
+int TimeLine::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QDockWidget::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ switch (_id) {
+ case 0: modification(); break;
+ case 1: lengthChange((*reinterpret_cast< QString(*)>(_a[1]))); break;
+ case 2: frameSizeChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 3: fontSizeChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 4: labelChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 5: scrubChange((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 6: addKeyClick(); break;
+ case 7: removeKeyClick(); break;
+ case 8: newBitmapLayer(); break;
+ case 9: newVectorLayer(); break;
+ case 10: newSoundLayer(); break;
+ case 11: newCameraLayer(); break;
+ case 12: deleteCurrentLayer(); break;
+ case 13: playClick(); break;
+ case 14: loopClick(); break;
+ case 15: soundClick(); break;
+ case 16: fpsClick((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 17: onionChecked(); break;
+ case 18: onionType((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 19: onionKey(); break;
+ case 20: straightAheadKey(); break;
+ case 21: inbetweenKey(); break;
+ case 22: updateFrame((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 23: updateLayerNumber((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 24: updateLayerView(); break;
+ case 25: updateLength((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 26: updateContent(); break;
+ default: ;
+ }
+ _id -= 27;
+ }
+ return _id;
+}
+
+// SIGNAL 0
+void TimeLine::modification()
+{
+ QMetaObject::activate(this, &staticMetaObject, 0, 0);
+}
+
+// SIGNAL 1
+void TimeLine::lengthChange(QString _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 1, _a);
+}
+
+// SIGNAL 2
+void TimeLine::frameSizeChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 2, _a);
+}
+
+// SIGNAL 3
+void TimeLine::fontSizeChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 3, _a);
+}
+
+// SIGNAL 4
+void TimeLine::labelChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 4, _a);
+}
+
+// SIGNAL 5
+void TimeLine::scrubChange(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 5, _a);
+}
+
+// SIGNAL 6
+void TimeLine::addKeyClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 6, 0);
+}
+
+// SIGNAL 7
+void TimeLine::removeKeyClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 7, 0);
+}
+
+// SIGNAL 8
+void TimeLine::newBitmapLayer()
+{
+ QMetaObject::activate(this, &staticMetaObject, 8, 0);
+}
+
+// SIGNAL 9
+void TimeLine::newVectorLayer()
+{
+ QMetaObject::activate(this, &staticMetaObject, 9, 0);
+}
+
+// SIGNAL 10
+void TimeLine::newSoundLayer()
+{
+ QMetaObject::activate(this, &staticMetaObject, 10, 0);
+}
+
+// SIGNAL 11
+void TimeLine::newCameraLayer()
+{
+ QMetaObject::activate(this, &staticMetaObject, 11, 0);
+}
+
+// SIGNAL 12
+void TimeLine::deleteCurrentLayer()
+{
+ QMetaObject::activate(this, &staticMetaObject, 12, 0);
+}
+
+// SIGNAL 13
+void TimeLine::playClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 13, 0);
+}
+
+// SIGNAL 14
+void TimeLine::loopClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 14, 0);
+}
+
+// SIGNAL 15
+void TimeLine::soundClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 15, 0);
+}
+
+// SIGNAL 16
+void TimeLine::fpsClick(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 16, _a);
+}
+
+// SIGNAL 17
+void TimeLine::onionChecked()
+{
+ QMetaObject::activate(this, &staticMetaObject, 17, 0);
+}
+
+// SIGNAL 18
+void TimeLine::onionType(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 18, _a);
+}
+
+// SIGNAL 19
+void TimeLine::onionKey()
+{
+ QMetaObject::activate(this, &staticMetaObject, 19, 0);
+}
+
+// SIGNAL 20
+void TimeLine::straightAheadKey()
+{
+ QMetaObject::activate(this, &staticMetaObject, 20, 0);
+}
+
+// SIGNAL 21
+void TimeLine::inbetweenKey()
+{
+ QMetaObject::activate(this, &staticMetaObject, 21, 0);
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_timeline.o and pencil_dev/moc_timeline.o differ
diff -rupN pencil_backup/moc_toolset.cpp pencil_dev/moc_toolset.cpp
--- pencil_backup/moc_toolset.cpp 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/moc_toolset.cpp 2009-09-28 17:10:52.000000000 -0500
@@ -0,0 +1,506 @@
+/****************************************************************************
+** Meta object code from reading C++ file 'toolset.h'
+**
+** Created: Mon Sep 28 17:10:52 2009
+** by: The Qt Meta Object Compiler version 61 (Qt 4.5.0)
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include "src/interface/toolset.h"
+#if !defined(Q_MOC_OUTPUT_REVISION)
+#error "The header file 'toolset.h' doesn't include <QObject>."
+#elif Q_MOC_OUTPUT_REVISION != 61
+#error "This file was generated using the moc from 4.5.0. 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_SpinSlider[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 6, 12, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ // signals: signature, parameters, type, tag, flags
+ 12, 11, 11, 11, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+ 32, 11, 11, 11, 0x0a,
+ 51, 11, 11, 11, 0x0a,
+ 68, 11, 11, 11, 0x0a,
+ 84, 11, 11, 11, 0x0a,
+ 101, 11, 11, 11, 0x0a,
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_SpinSlider[] = {
+ "SpinSlider\0\0valueChanged(qreal)\0"
+ "changeValue(qreal)\0changeValue(int)\0"
+ "setValue(qreal)\0sliderReleased()\0"
+ "sliderMoved(int)\0"
+};
+
+const QMetaObject SpinSlider::staticMetaObject = {
+ { &QWidget::staticMetaObject, qt_meta_stringdata_SpinSlider,
+ qt_meta_data_SpinSlider, 0 }
+};
+
+const QMetaObject *SpinSlider::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *SpinSlider::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_SpinSlider))
+ return static_cast<void*>(const_cast< SpinSlider*>(this));
+ return QWidget::qt_metacast(_clname);
+}
+
+int SpinSlider::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QWidget::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ switch (_id) {
+ case 0: valueChanged((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+ case 1: changeValue((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+ case 2: changeValue((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 3: setValue((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+ case 4: sliderReleased(); break;
+ case 5: sliderMoved((*reinterpret_cast< int(*)>(_a[1]))); break;
+ default: ;
+ }
+ _id -= 6;
+ }
+ return _id;
+}
+
+// SIGNAL 0
+void SpinSlider::valueChanged(qreal _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 0, _a);
+}
+static const uint qt_meta_data_ToolSet[] = {
+
+ // content:
+ 2, // revision
+ 0, // classname
+ 0, 0, // classinfo
+ 60, 12, // methods
+ 0, 0, // properties
+ 0, 0, // enums/sets
+ 0, 0, // constructors
+
+ // signals: signature, parameters, type, tag, flags
+ 9, 8, 8, 8, 0x05,
+ 19, 8, 8, 8, 0x05,
+ 31, 8, 8, 8, 0x05,
+ 42, 8, 8, 8, 0x05,
+ 56, 8, 8, 8, 0x05,
+ 70, 8, 8, 8, 0x05,
+ 84, 8, 8, 8, 0x05,
+ 96, 8, 8, 8, 0x05,
+ 108, 8, 8, 8, 0x05,
+ 119, 8, 8, 8, 0x05,
+ 138, 8, 8, 8, 0x05,
+ 158, 8, 8, 8, 0x05,
+ 182, 8, 8, 8, 0x05,
+ 206, 8, 8, 8, 0x05,
+ 222, 8, 8, 8, 0x05,
+ 236, 8, 8, 8, 0x05,
+ 254, 8, 8, 8, 0x05,
+ 271, 8, 8, 8, 0x05,
+ 285, 8, 8, 8, 0x05,
+ 311, 8, 8, 8, 0x05,
+ 333, 8, 8, 8, 0x05,
+ 354, 8, 8, 8, 0x05,
+ 368, 8, 8, 8, 0x05,
+ 381, 8, 8, 8, 0x05,
+ 398, 8, 8, 8, 0x05,
+ 414, 8, 8, 8, 0x05,
+ 428, 8, 8, 8, 0x05,
+ 444, 8, 8, 8, 0x05,
+ 462, 8, 8, 8, 0x05,
+ 482, 8, 8, 8, 0x05,
+ 502, 8, 8, 8, 0x05,
+ 516, 8, 8, 8, 0x05,
+ 528, 8, 8, 8, 0x05,
+
+ // slots: signature, parameters, type, tag, flags
+ 541, 8, 8, 8, 0x0a,
+ 557, 8, 8, 8, 0x0a,
+ 573, 8, 8, 8, 0x0a,
+ 591, 8, 8, 8, 0x0a,
+ 609, 8, 8, 8, 0x0a,
+ 630, 8, 8, 8, 0x0a,
+ 647, 8, 8, 8, 0x0a,
+ 669, 8, 8, 8, 0x0a,
+ 691, 8, 8, 8, 0x0a,
+ 709, 8, 8, 8, 0x0a,
+ 730, 8, 8, 8, 0x0a,
+ 751, 8, 8, 8, 0x0a,
+ 772, 8, 8, 8, 0x0a,
+ 791, 8, 8, 8, 0x0a,
+ 810, 8, 8, 8, 0x0a,
+ 828, 8, 8, 8, 0x0a,
+ 851, 8, 8, 8, 0x0a,
+ 872, 8, 8, 8, 0x0a,
+ 897, 8, 8, 8, 0x0a,
+ 921, 8, 8, 8, 0x0a,
+ 949, 8, 8, 8, 0x0a,
+ 976, 8, 8, 8, 0x0a,
+ 997, 8, 8, 8, 0x0a,
+ 1011, 8, 8, 8, 0x0a,
+ 1031, 8, 8, 8, 0x0a,
+ 1052, 8, 8, 8, 0x0a,
+ 1077, 8, 8, 8, 0x0a,
+
+ 0 // eod
+};
+
+static const char qt_meta_stringdata_ToolSet[] = {
+ "ToolSet\0\0rmClick()\0playClick()\0"
+ "addClick()\0pencilClick()\0eraserClick()\0"
+ "selectClick()\0moveClick()\0handClick()\0"
+ "penClick()\0pressureClick(int)\0"
+ "invisibleClick(int)\0preserveAlphaClick(int)\0"
+ "followContourClick(int)\0polylineClick()\0"
+ "bucketClick()\0eyedropperClick()\0"
+ "colouringClick()\0smudgeClick()\0"
+ "onionStraightAheadClick()\0"
+ "onionInbetweenClick()\0lengthClick(QString)\0"
+ "fpsClick(int)\0clearClick()\0thinLinesClick()\0"
+ "outlinesClick()\0mirrorClick()\0"
+ "onionRadio(int)\0widthClick(qreal)\0"
+ "featherClick(qreal)\0opacityClick(qreal)\0"
+ "colourClick()\0loopClick()\0soundClick()\0"
+ "setCounter(int)\0setWidth(qreal)\0"
+ "setFeather(qreal)\0setOpacity(qreal)\0"
+ "setInvisibility(int)\0setPressure(int)\0"
+ "setPreserveAlpha(int)\0setFollowContour(int)\0"
+ "setColour(QColor)\0changePencilButton()\0"
+ "changeEraserButton()\0changeSelectButton()\0"
+ "changeMoveButton()\0changeHandButton()\0"
+ "changePenButton()\0changePolylineButton()\0"
+ "changeBucketButton()\0changeEyedropperButton()\0"
+ "changeColouringButton()\0"
+ "changeThinLinesButton(bool)\0"
+ "changeOutlinesButton(bool)\0"
+ "changeSmudgeButton()\0resetMirror()\0"
+ "pressureClick(bool)\0invisibleClick(bool)\0"
+ "preserveAlphaClick(bool)\0"
+ "followContourClick(bool)\0"
+};
+
+const QMetaObject ToolSet::staticMetaObject = {
+ { &QWidget::staticMetaObject, qt_meta_stringdata_ToolSet,
+ qt_meta_data_ToolSet, 0 }
+};
+
+const QMetaObject *ToolSet::metaObject() const
+{
+ return &staticMetaObject;
+}
+
+void *ToolSet::qt_metacast(const char *_clname)
+{
+ if (!_clname) return 0;
+ if (!strcmp(_clname, qt_meta_stringdata_ToolSet))
+ return static_cast<void*>(const_cast< ToolSet*>(this));
+ return QWidget::qt_metacast(_clname);
+}
+
+int ToolSet::qt_metacall(QMetaObject::Call _c, int _id, void **_a)
+{
+ _id = QWidget::qt_metacall(_c, _id, _a);
+ if (_id < 0)
+ return _id;
+ if (_c == QMetaObject::InvokeMetaMethod) {
+ switch (_id) {
+ case 0: rmClick(); break;
+ case 1: playClick(); break;
+ case 2: addClick(); break;
+ case 3: pencilClick(); break;
+ case 4: eraserClick(); break;
+ case 5: selectClick(); break;
+ case 6: moveClick(); break;
+ case 7: handClick(); break;
+ case 8: penClick(); break;
+ case 9: pressureClick((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 10: invisibleClick((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 11: preserveAlphaClick((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 12: followContourClick((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 13: polylineClick(); break;
+ case 14: bucketClick(); break;
+ case 15: eyedropperClick(); break;
+ case 16: colouringClick(); break;
+ case 17: smudgeClick(); break;
+ case 18: onionStraightAheadClick(); break;
+ case 19: onionInbetweenClick(); break;
+ case 20: lengthClick((*reinterpret_cast< QString(*)>(_a[1]))); break;
+ case 21: fpsClick((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 22: clearClick(); break;
+ case 23: thinLinesClick(); break;
+ case 24: outlinesClick(); break;
+ case 25: mirrorClick(); break;
+ case 26: onionRadio((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 27: widthClick((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+ case 28: featherClick((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+ case 29: opacityClick((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+ case 30: colourClick(); break;
+ case 31: loopClick(); break;
+ case 32: soundClick(); break;
+ case 33: setCounter((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 34: setWidth((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+ case 35: setFeather((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+ case 36: setOpacity((*reinterpret_cast< qreal(*)>(_a[1]))); break;
+ case 37: setInvisibility((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 38: setPressure((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 39: setPreserveAlpha((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 40: setFollowContour((*reinterpret_cast< int(*)>(_a[1]))); break;
+ case 41: setColour((*reinterpret_cast< QColor(*)>(_a[1]))); break;
+ case 42: changePencilButton(); break;
+ case 43: changeEraserButton(); break;
+ case 44: changeSelectButton(); break;
+ case 45: changeMoveButton(); break;
+ case 46: changeHandButton(); break;
+ case 47: changePenButton(); break;
+ case 48: changePolylineButton(); break;
+ case 49: changeBucketButton(); break;
+ case 50: changeEyedropperButton(); break;
+ case 51: changeColouringButton(); break;
+ case 52: changeThinLinesButton((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ case 53: changeOutlinesButton((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ case 54: changeSmudgeButton(); break;
+ case 55: resetMirror(); break;
+ case 56: pressureClick((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ case 57: invisibleClick((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ case 58: preserveAlphaClick((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ case 59: followContourClick((*reinterpret_cast< bool(*)>(_a[1]))); break;
+ default: ;
+ }
+ _id -= 60;
+ }
+ return _id;
+}
+
+// SIGNAL 0
+void ToolSet::rmClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 0, 0);
+}
+
+// SIGNAL 1
+void ToolSet::playClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 1, 0);
+}
+
+// SIGNAL 2
+void ToolSet::addClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 2, 0);
+}
+
+// SIGNAL 3
+void ToolSet::pencilClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 3, 0);
+}
+
+// SIGNAL 4
+void ToolSet::eraserClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 4, 0);
+}
+
+// SIGNAL 5
+void ToolSet::selectClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 5, 0);
+}
+
+// SIGNAL 6
+void ToolSet::moveClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 6, 0);
+}
+
+// SIGNAL 7
+void ToolSet::handClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 7, 0);
+}
+
+// SIGNAL 8
+void ToolSet::penClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 8, 0);
+}
+
+// SIGNAL 9
+void ToolSet::pressureClick(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 9, _a);
+}
+
+// SIGNAL 10
+void ToolSet::invisibleClick(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 10, _a);
+}
+
+// SIGNAL 11
+void ToolSet::preserveAlphaClick(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 11, _a);
+}
+
+// SIGNAL 12
+void ToolSet::followContourClick(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 12, _a);
+}
+
+// SIGNAL 13
+void ToolSet::polylineClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 13, 0);
+}
+
+// SIGNAL 14
+void ToolSet::bucketClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 14, 0);
+}
+
+// SIGNAL 15
+void ToolSet::eyedropperClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 15, 0);
+}
+
+// SIGNAL 16
+void ToolSet::colouringClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 16, 0);
+}
+
+// SIGNAL 17
+void ToolSet::smudgeClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 17, 0);
+}
+
+// SIGNAL 18
+void ToolSet::onionStraightAheadClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 18, 0);
+}
+
+// SIGNAL 19
+void ToolSet::onionInbetweenClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 19, 0);
+}
+
+// SIGNAL 20
+void ToolSet::lengthClick(QString _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 20, _a);
+}
+
+// SIGNAL 21
+void ToolSet::fpsClick(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 21, _a);
+}
+
+// SIGNAL 22
+void ToolSet::clearClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 22, 0);
+}
+
+// SIGNAL 23
+void ToolSet::thinLinesClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 23, 0);
+}
+
+// SIGNAL 24
+void ToolSet::outlinesClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 24, 0);
+}
+
+// SIGNAL 25
+void ToolSet::mirrorClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 25, 0);
+}
+
+// SIGNAL 26
+void ToolSet::onionRadio(int _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 26, _a);
+}
+
+// SIGNAL 27
+void ToolSet::widthClick(qreal _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 27, _a);
+}
+
+// SIGNAL 28
+void ToolSet::featherClick(qreal _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 28, _a);
+}
+
+// SIGNAL 29
+void ToolSet::opacityClick(qreal _t1)
+{
+ void *_a[] = { 0, const_cast<void*>(reinterpret_cast<const void*>(&_t1)) };
+ QMetaObject::activate(this, &staticMetaObject, 29, _a);
+}
+
+// SIGNAL 30
+void ToolSet::colourClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 30, 0);
+}
+
+// SIGNAL 31
+void ToolSet::loopClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 31, 0);
+}
+
+// SIGNAL 32
+void ToolSet::soundClick()
+{
+ QMetaObject::activate(this, &staticMetaObject, 32, 0);
+}
+QT_END_MOC_NAMESPACE
Binary files pencil_backup/moc_toolset.o and pencil_dev/moc_toolset.o differ
Binary files pencil_backup/object.o and pencil_dev/object.o differ
Binary files pencil_backup/palette.o and pencil_dev/palette.o differ
Binary files pencil_backup/Pencil and pencil_dev/Pencil differ
diff -rupN pencil_backup/pencil.qrc pencil_dev/pencil.qrc
--- pencil_backup/pencil.qrc 2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/pencil.qrc 2009-09-28 17:01:13.000000000 -0500
@@ -24,8 +24,8 @@
<file>icons/magnify.png</file>
<file>icons/smudge.png</file>
- <file>icons/onionPrev.png</file>
- <file>icons/onionNext.png</file>
+ <file>icons/onionStraightAhead.png</file>
+ <file>icons/onionInbetween.png</file>
<file>icons/layer-vector.png</file>
<file>icons/layer-bitmap.png</file>
diff -rupN pencil_backup/pencil.qrc~ pencil_dev/pencil.qrc~
--- pencil_backup/pencil.qrc~ 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/pencil.qrc~ 2008-01-21 11:43:53.000000000 -0600
@@ -0,0 +1,52 @@
+<!DOCTYPE RCC><RCC version="1.0">
+ <qresource>
+ <file>icons/arrow.png</file>
+
+ <file>icons/clear.png</file>
+ <file>icons/remove.png</file>
+ <file>icons/add.png</file>
+ <file>icons/eraser.png</file>
+ <file>icons/pencil2.png</file>
+ <file>icons/house.png</file>
+ <file>icons/select.png</file>
+ <file>icons/move.png</file>
+ <file>icons/pen.png</file>
+ <file>icons/brush.png</file>
+ <file>icons/polyline.png</file>
+ <file>icons/eraser2.png</file>
+ <file>icons/hand.png</file>
+ <file>icons/bucket.png</file>
+ <file>icons/bucketTool.png</file>
+ <file>icons/eyedropper.png</file>
+ <file>icons/thinlines5.png</file>
+ <file>icons/outlines5.png</file>
+ <file>icons/mirror.png</file>
+ <file>icons/magnify.png</file>
+ <file>icons/smudge.png</file>
+
+ <file>icons/onionPrev.png</file>
+ <file>icons/onionNext.png</file>
+
+ <file>icons/layer-vector.png</file>
+ <file>icons/layer-bitmap.png</file>
+ <file>icons/layer-sound.png</file>
+ <file>icons/layer-camera.png</file>
+
+ <file>icons/controls/play.png</file>
+ <file>icons/controls/loop.png</file>
+ <file>icons/controls/sound.png</file>
+ <file>icons/controls/separator.png</file>
+
+ <file>icons/prefspencil.png</file>
+ <file>icons/prefstimeline.png</file>
+ <file>icons/prefs-files.png</file>
+
+ <file>background/weave.jpg</file>
+ <file>background/dots.png</file>
+
+ <file>icons/logo.png</file>
+ <file>icons/icon.png</file>
+
+ <file>icons/aqua.png</file>
+ </qresource>
+</RCC>
Binary files pencil_backup/preferences.o and pencil_dev/preferences.o differ
diff -rupN pencil_backup/qrc_pencil.cpp pencil_dev/qrc_pencil.cpp
--- pencil_backup/qrc_pencil.cpp 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/qrc_pencil.cpp 2009-09-28 17:10:55.000000000 -0500
@@ -0,0 +1,5928 @@
+/****************************************************************************
+** Resource object code
+**
+** Created: Mon Sep 28 17:10:55 2009
+** by: The Resource Compiler for Qt version 4.5.0
+**
+** WARNING! All changes made in this file will be lost!
+*****************************************************************************/
+
+#include <QtCore/qglobal.h>
+
+static const unsigned char qt_resource_data[] = {
+ // /home/matthew/pencil_dev/background/weave.jpg
+ 0x0,0x0,0x11,0x0,
+ 0xff,
+ 0xd8,0xff,0xe0,0x0,0x10,0x4a,0x46,0x49,0x46,0x0,0x1,0x1,0x1,0x0,0x48,0x0,
+ 0x48,0x0,0x0,0xff,0xdb,0x0,0x43,0x0,0x5,0x3,0x4,0x4,0x4,0x3,0x5,0x4,
+ 0x4,0x4,0x5,0x5,0x5,0x6,0x7,0xc,0x8,0x7,0x7,0x7,0x7,0xf,0xb,0xb,
+ 0x9,0xc,0x11,0xf,0x12,0x12,0x11,0xf,0x11,0x11,0x13,0x16,0x1c,0x17,0x13,0x14,
+ 0x1a,0x15,0x11,0x11,0x18,0x21,0x18,0x1a,0x1d,0x1d,0x1f,0x1f,0x1f,0x13,0x17,0x22,
+ 0x24,0x22,0x1e,0x24,0x1c,0x1e,0x1f,0x1e,0xff,0xdb,0x0,0x43,0x1,0x5,0x5,0x5,
+ 0x7,0x6,0x7,0xe,0x8,0x8,0xe,0x1e,0x14,0x11,0x14,0x1e,0x1e,0x1e,0x1e,0x1e,
+ 0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,
+ 0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,
+ 0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0x1e,0xff,0xc0,0x0,
+ 0x11,0x8,0x0,0x81,0x0,0x81,0x3,0x1,0x22,0x0,0x2,0x11,0x1,0x3,0x11,0x1,
+ 0xff,0xc4,0x0,0x19,0x0,0x0,0x3,0x1,0x1,0x1,0x0,0x0,0x0,0x0,0x0,0x0,
+ 0x0,0x0,0x0,0x0,0x0,0x0,0x2,0x3,0x4,0x1,0x8,0xff,0xc4,0x0,0x43,0x10,
+ 0x0,0x2,0x1,0x3,0x2,0x3,0x4,0x6,0x6,0x7,0x6,0x7,0x1,0x0,0x0,0x0,
+ 0x1,0x2,0x3,0x0,0x11,0x12,0x13,0x21,0x4,0x31,0x51,0x22,0x41,0x71,0xf0,0x23,
+ 0x61,0x91,0xa1,0xb1,0xd1,0x14,0x32,0x33,0x73,0xc1,0xf1,0x34,0x42,0x53,0x81,0x92,
+ 0x93,0xe1,0x24,0x52,0x54,0x72,0xb2,0xd2,0x15,0x43,0x44,0x63,0x74,0xa3,0xc2,0xe2,
+ 0xff,0xc4,0x0,0x14,0x1,0x1,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+ 0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xc4,0x0,0x14,0x11,0x1,0x0,0x0,0x0,0x0,
+ 0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0xff,0xda,0x0,0xc,
+ 0x3,0x1,0x0,0x2,0x11,0x3,0x11,0x0,0x3f,0x0,0xf5,0x5a,0xa4,0x52,0x33,0x40,
+ 0xdc,0x41,0xe,0xa5,0x6c,0xd6,0x60,0x8,0xe7,0x5c,0x81,0xd1,0x74,0x62,0x95,0xed,
+ 0x8b,0xb9,0xc8,0x16,0x1,0x4f,0xe2,0x29,0x65,0x70,0x4b,0x48,0xad,0x11,0x1e,0x8c,
+ 0xdf,0x32,0x5,0xe9,0xb5,0x5b,0x34,0x66,0x78,0x9c,0xab,0x3e,0xda,0xc7,0x71,0x6e,
+ 0x5b,0xf9,0xde,0x83,0x47,0xc,0x63,0xbc,0x4c,0xb2,0x46,0x6d,0x10,0x52,0xb,0x1e,
+ 0xe6,0xd8,0xf2,0xf3,0xb5,0x2c,0xf0,0xc4,0x86,0x3c,0x98,0x2a,0x2c,0xae,0x6f,0x97,
+ 0x2d,0xb9,0x54,0xf8,0x67,0xf,0x14,0x25,0x24,0x42,0x42,0x95,0x60,0x26,0xb1,0x16,
+ 0x37,0xad,0x91,0xbb,0x2b,0xb0,0xc,0x1c,0x9,0x9,0xb1,0x90,0x76,0x86,0x34,0x18,
+ 0x67,0xe1,0x62,0x73,0x65,0x94,0xaf,0xa0,0x18,0x96,0x90,0x8b,0x12,0x7f,0x2a,0x53,
+ 0x13,0x23,0xf6,0x9a,0xc5,0x65,0x65,0x61,0x9f,0x2e,0xcf,0x31,0xf1,0xab,0xb0,0x63,
+ 0x9,0x8a,0x54,0x62,0x86,0x5,0x46,0xb3,0xc,0x85,0x8f,0x3a,0xed,0xdf,0x3c,0x64,
+ 0x47,0x62,0x26,0xb6,0x44,0x82,0xc4,0x63,0x8f,0xcb,0xcf,0x30,0x8c,0x83,0x28,0x75,
+ 0x6d,0x67,0xd3,0x52,0x4a,0xcb,0xb5,0xc3,0x5a,0xe2,0xaa,0xd7,0x79,0x8b,0x2b,0x20,
+ 0xcf,0x88,0x4,0x8c,0x81,0xb1,0x3,0xcf,0x9b,0xd7,0x26,0x8e,0x55,0xba,0x94,0x76,
+ 0xc6,0xe,0x66,0xdb,0x6f,0xea,0xf9,0x51,0x34,0x72,0x17,0xb8,0xbe,0xf3,0xc7,0x72,
+ 0x0,0x36,0xfd,0x5b,0xd0,0x65,0x23,0xfb,0x3c,0xb0,0x39,0x8d,0x8,0xe,0x14,0x99,
+ 0x86,0xdd,0xae,0xb6,0xbd,0x55,0x57,0x3c,0x8e,0x31,0xab,0xac,0x8b,0x6b,0x4a,0x8,
+ 0x6b,0xe,0x54,0x4e,0xcc,0xea,0xcc,0xeb,0x21,0x23,0x20,0x4e,0xb,0xd4,0x54,0xca,
+ 0xb0,0x7e,0x20,0xa7,0xe,0xca,0xc1,0xd5,0x8a,0x82,0x7,0xbf,0xcf,0x3f,0x5d,0xe8,
+ 0x34,0x70,0xed,0x23,0x68,0xae,0x10,0xb2,0xba,0x48,0xe,0x4f,0xb9,0x37,0xe5,0xef,
+ 0xf7,0xd6,0x88,0xf1,0x95,0x55,0xc3,0x2d,0x81,0x5b,0xda,0x50,0xa,0x9a,0xc9,0xc3,
+ 0xcc,0x32,0x53,0xa7,0x22,0xdf,0x32,0x31,0x64,0xec,0x9b,0xde,0xb5,0x24,0x82,0x36,
+ 0x47,0x65,0x99,0x63,0x7c,0x3b,0x56,0x18,0xfe,0xfe,0x9b,0xd0,0x75,0xe1,0x4,0xe4,
+ 0xae,0x9f,0x59,0xef,0xe9,0x79,0x5f,0xbe,0x91,0xd4,0x1e,0x1a,0xe2,0x4e,0xd2,0x4,
+ 0x61,0x8b,0xdb,0x6e,0xfd,0xaa,0x8d,0x1d,0x86,0xd1,0xb2,0x87,0x77,0x24,0x5c,0x1,
+ 0xc8,0xf7,0xf7,0x5e,0xd4,0x81,0x19,0xb8,0x75,0x43,0x13,0x6,0x28,0x8a,0x2e,0xc2,
+ 0xf6,0xbd,0x4,0xe2,0x48,0xb5,0xcc,0x5a,0xb2,0xf,0x4d,0x20,0x18,0xc9,0x7b,0x77,
+ 0xef,0x7f,0x6d,0x67,0x11,0x88,0x5d,0xe1,0x98,0x3a,0xae,0x5,0x85,0xa4,0x17,0x37,
+ 0x3b,0x1a,0xdb,0x2c,0x6c,0x67,0xc,0xc8,0xec,0x16,0x43,0xfd,0xc0,0x40,0xb6,0xf6,
+ 0xeb,0x59,0x26,0x8d,0x97,0x87,0xc1,0x95,0xf0,0x31,0x90,0x15,0xdd,0x6e,0x2c,0x68,
+ 0x34,0xff,0x0,0xc3,0x17,0xf6,0xef,0xec,0xa2,0xb2,0xe5,0xc1,0xf5,0x3f,0xc4,0x68,
+ 0xa0,0xd1,0xc4,0xeb,0x2b,0xb9,0xd6,0xba,0x38,0x40,0x5,0xc5,0xd4,0xde,0xc7,0xc4,
+ 0x7c,0xeb,0x8c,0xf3,0x99,0xa3,0x64,0x3a,0xa1,0x64,0x2a,0xca,0x2,0x92,0x5,0xb6,
+ 0x22,0xa9,0x28,0xf,0x12,0xb8,0x88,0x9c,0x96,0xc7,0x3c,0x2e,0x3b,0x5d,0xfd,0x45,
+ 0x4b,0x4f,0x58,0x24,0x72,0x2c,0x71,0x4a,0xb3,0x76,0x3b,0x3,0x16,0x16,0xf5,0x7b,
+ 0x28,0x39,0x19,0x66,0x8d,0x5f,0x1d,0x9a,0x37,0xd8,0xc6,0x36,0x20,0xee,0x2b,0x5c,
+ 0x6,0x46,0x90,0xa3,0x3,0x62,0xe4,0x5f,0x4c,0x6d,0x61,0xb5,0xeb,0x7,0xa,0xb2,
+ 0x21,0x50,0xa8,0xa0,0xd9,0xd4,0xab,0x44,0x48,0xd9,0xbe,0x75,0x50,0xc6,0x29,0xcc,
+ 0xa3,0x16,0x8d,0xa5,0x52,0x7d,0x1b,0x29,0x5b,0xec,0x39,0x50,0x56,0x46,0xca,0x14,
+ 0xc,0xaa,0x92,0x88,0xdc,0x90,0x63,0xbd,0xc0,0x3b,0xdb,0xdd,0x44,0x89,0x99,0x3b,
+ 0xa5,0x8c,0x88,0x1,0x31,0x65,0x72,0x40,0xe5,0xee,0xae,0x49,0x26,0x20,0xac,0xb1,
+ 0xa1,0xb0,0x95,0x15,0x95,0x49,0x23,0xd5,0x49,0x17,0x11,0x3,0xb4,0xa2,0xeb,0x75,
+ 0x31,0x13,0xb9,0x6,0xfc,0xbc,0xf8,0xd0,0x33,0x21,0x31,0xaf,0x34,0xf4,0x4e,0x97,
+ 0x11,0x9b,0x6c,0x6f,0xf8,0x79,0xee,0x55,0xbb,0x4d,0x30,0x4,0x5f,0x52,0x26,0xb0,
+ 0x8f,0x95,0xea,0x8a,0x62,0x2c,0x11,0x5b,0x22,0x51,0xf1,0xb4,0x8c,0x2e,0x41,0xf3,
+ 0xed,0xf0,0xa9,0x5b,0x87,0x9a,0x53,0x34,0x4f,0x13,0x37,0xa3,0x6b,0x6a,0x11,0x62,
+ 0x3a,0xdb,0xdb,0x41,0xd7,0x8f,0x5b,0x87,0x2c,0x90,0xc6,0x5a,0xf2,0x62,0x56,0x33,
+ 0xcc,0x1e,0x95,0x6,0x45,0x28,0xec,0x2,0xab,0x2a,0x21,0x37,0x88,0xdc,0x72,0x3,
+ 0x9f,0x3d,0xef,0x56,0x84,0x2a,0x4b,0x24,0x2e,0xd1,0x63,0x77,0x61,0xdb,0x37,0xdf,
+ 0xbe,0xa5,0x2c,0x42,0x32,0xc1,0x8c,0x6d,0x1e,0x8a,0xb8,0x2d,0x29,0xbd,0x81,0xf3,
+ 0xbf,0xae,0x81,0xf8,0x65,0xbc,0x88,0xda,0x48,0xe4,0x87,0xc,0xcb,0x1,0xad,0x11,
+ 0x10,0x0,0x42,0xaa,0x4,0x8a,0xbb,0x34,0x6,0xdd,0x2c,0x7d,0xb5,0x80,0xa1,0x8b,
+ 0x8c,0x81,0xa1,0x94,0xe2,0xce,0xf7,0xb3,0x9c,0x79,0x77,0x9a,0xd8,0x24,0x32,0x70,
+ 0xf6,0x7b,0x80,0xd0,0x29,0x23,0x33,0x71,0x63,0xcc,0x50,0x3e,0x6b,0x1d,0x92,0x65,
+ 0x5c,0x35,0x2d,0x63,0x15,0xc8,0xdb,0x62,0x28,0x68,0x35,0x63,0x50,0xaf,0x13,0x30,
+ 0x8c,0x3a,0x93,0x9,0xb9,0x3,0xf7,0xf5,0xb5,0x74,0xe9,0xcf,0x11,0x39,0xa9,0xca,
+ 0x63,0xc8,0xb0,0xbe,0xdd,0xde,0xba,0x4e,0x1d,0x62,0x93,0x83,0x8f,0x17,0x74,0x68,
+ 0xd1,0xac,0xc5,0xcd,0xc5,0x8d,0xbc,0x6d,0x40,0xd8,0xb4,0x82,0x32,0xca,0x85,0x96,
+ 0x60,0x5d,0x74,0x6c,0x48,0xee,0xe7,0x49,0xa,0x38,0x8c,0xa0,0x48,0x8e,0x5,0xf1,
+ 0xbc,0x47,0x98,0x20,0x55,0x59,0x33,0x8d,0x75,0x2f,0xbc,0x8a,0xa4,0xa3,0xb0,0x20,
+ 0xd8,0x6f,0x59,0x24,0xd6,0x89,0xa4,0x94,0xa8,0x26,0x36,0x6b,0xe4,0xcc,0x3,0xaf,
+ 0x5a,0xd,0x5a,0x2f,0xd1,0x3f,0x90,0x3e,0x54,0x56,0x7f,0xa6,0xc3,0xfe,0x11,0xff,
+ 0x0,0x8e,0x8a,0xb,0x46,0xa8,0xbc,0x31,0xec,0x26,0xca,0x54,0x63,0x13,0x75,0xe8,
+ 0x68,0xd2,0xe1,0xd2,0x5c,0x34,0xe1,0xd2,0xd5,0x12,0x0,0x14,0x8c,0x4d,0xbf,0x1b,
+ 0x52,0x99,0x4,0x70,0x1b,0xc8,0x8,0xb3,0xdf,0x19,0x88,0xb9,0xbe,0xd5,0x4c,0xc0,
+ 0xcf,0xfb,0x49,0x78,0x8b,0x46,0xc8,0x44,0xb6,0x23,0x90,0x20,0xd0,0x65,0xd3,0x55,
+ 0xc5,0xe3,0x68,0x8,0x50,0xfc,0x98,0xf5,0xe7,0xf1,0xf6,0x55,0x5e,0xe1,0x9d,0x94,
+ 0x46,0x8f,0x9a,0x7,0xd,0x29,0xb1,0x19,0x5c,0x35,0x38,0xd4,0x51,0x1a,0x86,0x37,
+ 0xd,0x22,0xdf,0x30,0x2e,0x3c,0x3b,0xff,0x0,0xa5,0x70,0xfd,0x20,0x9,0x34,0xdc,
+ 0x23,0xc,0x6d,0x76,0x52,0x7,0xab,0xd5,0xf9,0x50,0x52,0x37,0xcc,0xc,0x94,0x29,
+ 0x66,0x7b,0x81,0x36,0xc4,0xdb,0xad,0x4e,0x41,0x1b,0xb4,0x8e,0xc0,0x82,0x63,0x44,
+ 0x37,0x90,0x5b,0x9d,0xef,0xf0,0xa6,0xb9,0xd6,0x2c,0x22,0xa,0xad,0x29,0xb8,0x38,
+ 0xd8,0x1b,0x73,0xf3,0xf9,0xcb,0x57,0x4e,0x24,0x25,0x5d,0x6e,0x88,0x36,0x55,0xdc,
+ 0x13,0xbe,0xd4,0x14,0x77,0x78,0xf8,0x88,0xdc,0x72,0xbb,0x97,0x51,0x20,0x27,0x97,
+ 0x3a,0x38,0x94,0x8a,0x64,0x92,0xf9,0x76,0x91,0x1c,0x35,0xc5,0xf9,0xed,0x6a,0xab,
+ 0x4a,0x44,0x98,0xbb,0x96,0x56,0x76,0x0,0x60,0x37,0xb0,0xf7,0xd4,0xd8,0xde,0x32,
+ 0x55,0xdc,0x90,0x91,0xfd,0x68,0xb7,0x3f,0xd6,0x81,0x1c,0x42,0xdc,0x41,0xcd,0xa4,
+ 0x47,0xb3,0xef,0xa8,0x2,0xb1,0x1c,0xcf,0x9e,0x94,0xac,0xa5,0x55,0xb1,0x32,0x11,
+ 0xa0,0x19,0x46,0xa0,0x36,0xc4,0xf7,0x1a,0xd2,0xe1,0x9a,0x58,0xed,0x1b,0xd8,0xbb,
+ 0x6,0xb4,0x63,0xa5,0x49,0x2e,0xd,0x83,0x2e,0x5a,0x18,0xd8,0xa6,0xe2,0xc7,0x71,
+ 0x41,0x9,0x56,0x39,0x24,0x81,0x82,0x15,0xbb,0xb2,0x9f,0x48,0x2c,0x6e,0x2c,0x7e,
+ 0x34,0xdc,0x25,0x93,0x87,0x52,0xe8,0xd6,0x58,0x2d,0x98,0x7d,0xf6,0x6e,0xf1,0x55,
+ 0x31,0x48,0xcd,0xd,0xd4,0xc,0x66,0x2c,0xae,0xaa,0x2d,0xb8,0xe9,0xe3,0xf0,0xa5,
+ 0x8d,0x1c,0x46,0xa1,0xd4,0x82,0x23,0x63,0x90,0x8c,0x37,0xeb,0x6f,0xe7,0xd7,0x41,
+ 0x48,0xd4,0xa4,0xd2,0x46,0xa5,0xec,0x26,0xc,0x8,0x6e,0x44,0x8d,0xc1,0xa9,0xc5,
+ 0xa9,0xa7,0xaa,0xba,0x8d,0xe8,0x9e,0xe0,0xc8,0x37,0xb1,0xeb,0xcc,0xd6,0x85,0x59,
+ 0x75,0x64,0x42,0x24,0x27,0x25,0x6b,0x95,0x5b,0x11,0xb7,0xf5,0xa5,0x58,0xe4,0x42,
+ 0x8c,0x22,0x7,0x79,0xd,0x91,0x57,0xaf,0x33,0xe3,0x41,0x33,0x2d,0x84,0xad,0x84,
+ 0x8c,0xad,0xa7,0xb6,0xa8,0xd8,0xf9,0xb5,0x54,0x15,0xcf,0x7,0x46,0x20,0xb3,0xda,
+ 0xf2,0x5f,0x6a,0x56,0xe,0xf1,0xc9,0x82,0xc8,0xd9,0x46,0x84,0x76,0x54,0x6c,0x2f,
+ 0xb5,0x70,0x6,0x1c,0x58,0x50,0x97,0xc,0xe4,0x80,0x63,0x2,0xdd,0x91,0xbd,0x6,
+ 0x7d,0x2e,0x13,0xfc,0x34,0x5f,0xcc,0x1f,0x3a,0x2b,0x4e,0x97,0xfd,0xd4,0xf6,0x7f,
+ 0xfa,0xa2,0x81,0xae,0x4c,0x2c,0x8c,0x1,0x5c,0x58,0x86,0x56,0x5d,0xbc,0xf5,0xa5,
+ 0x95,0x54,0x9,0x57,0x25,0xed,0x2a,0x15,0xc8,0x2e,0xfd,0x4f,0xc6,0x9a,0x18,0xd8,
+ 0x1c,0x96,0xd8,0x8c,0xee,0xad,0x18,0x16,0x3b,0xdf,0x7e,0x9b,0xd2,0x45,0x88,0xe1,
+ 0xd1,0x1d,0x23,0x5c,0x63,0x4b,0xa3,0xc7,0x7b,0x6f,0xfd,0x68,0x17,0x89,0x80,0xab,
+ 0x6a,0x24,0x4d,0x65,0x32,0x7d,0x55,0x1c,0x88,0xb7,0x5a,0x52,0xa3,0x49,0x98,0xab,
+ 0x32,0x31,0x8b,0x76,0x51,0xcb,0xaf,0xc2,0xa8,0x15,0xa2,0x6e,0xc6,0x9c,0x6a,0x25,
+ 0x6b,0xd,0x36,0x3d,0x4f,0x31,0x53,0x99,0x44,0x71,0x4a,0xe8,0x90,0x14,0x28,0xae,
+ 0xc2,0xec,0x2d,0xb7,0xc2,0x81,0xe5,0x8d,0xd4,0xdc,0xab,0x36,0x79,0xa9,0x61,0x18,
+ 0xe9,0xe3,0x5c,0x95,0x43,0xc0,0xcb,0xe9,0x5,0xd5,0x2d,0xd8,0x23,0x6a,0x79,0x11,
+ 0x73,0xa,0xc,0x18,0xbb,0x92,0x3,0x3,0xce,0xd6,0xf3,0x7e,0x94,0x8b,0xf6,0x6e,
+ 0x92,0x24,0xa,0x34,0xc7,0x7b,0x62,0x40,0x6e,0x9d,0xd4,0x8,0xd1,0xb8,0x2b,0xa6,
+ 0x59,0x1a,0x29,0x5f,0xb2,0x52,0xe0,0xdd,0x4d,0x8f,0x85,0x67,0xd4,0xa,0xe,0xca,
+ 0xa7,0x41,0x6e,0x18,0x30,0xef,0xb7,0x2a,0xdc,0xf1,0x29,0x95,0x11,0xa2,0x1,0xcb,
+ 0x91,0x71,0x23,0x1d,0xf1,0xbf,0xca,0xb3,0x4c,0xb9,0x44,0x25,0xd0,0x4,0xe9,0xa8,
+ 0x27,0x5a,0xdd,0xe3,0x63,0x7f,0x3b,0xd0,0x77,0x56,0x1d,0x78,0xa4,0xc,0x8a,0xba,
+ 0x8d,0x7b,0x86,0xda,0xe3,0x95,0xaa,0xb7,0x8a,0x48,0x1,0x73,0x11,0x73,0xc3,0xb6,
+ 0xf7,0x3b,0xd8,0x8d,0xfe,0x15,0x9,0x96,0xce,0x3,0x2b,0xfd,0xbb,0x63,0x94,0xb7,
+ 0xc4,0xd8,0xed,0xb7,0x9d,0xe9,0x78,0x56,0x51,0xa2,0x62,0x93,0x4d,0x5a,0x6,0x16,
+ 0x2f,0xdd,0x7b,0x8f,0x65,0x5,0x96,0x34,0xf,0xb,0xa1,0x8c,0x5d,0xc1,0x51,0x76,
+ 0x26,0xe4,0x6f,0xbf,0x4e,0xd5,0x70,0xa2,0x22,0xc,0x1d,0x4a,0x34,0x6e,0xa,0x84,
+ 0x22,0xc4,0xb0,0xde,0x99,0x72,0x26,0x1b,0x8c,0x1d,0x67,0x53,0x88,0x92,0xe1,0x81,
+ 0x5e,0x7e,0x7a,0x50,0xce,0xfa,0x23,0x22,0x54,0x18,0xdc,0x30,0x32,0x5a,0xfb,0xdb,
+ 0x9d,0x3,0x25,0xb5,0x9a,0x26,0x92,0x3c,0xae,0x87,0xb4,0xad,0xf5,0xad,0xb7,0xc0,
+ 0xd7,0x62,0x28,0xad,0x1d,0x8c,0xb,0x91,0x72,0x2c,0xa7,0x1f,0xdd,0xe7,0xad,0x12,
+ 0x96,0x13,0x48,0x7b,0x20,0x6b,0x46,0x1,0xf,0x6e,0xe1,0xb1,0xae,0x3a,0x33,0x88,
+ 0x48,0x61,0x91,0x56,0xb8,0xe,0x6f,0xcb,0xce,0xf4,0x4,0xba,0x62,0x39,0xc1,0x64,
+ 0xb,0x84,0x60,0x1c,0x49,0xa,0x77,0xf6,0x53,0xf1,0xc,0xa5,0x98,0x92,0x85,0x56,
+ 0x45,0xb8,0x66,0x2a,0x50,0x91,0xe7,0xdb,0x51,0x8a,0x73,0x37,0xf,0x28,0x72,0x8a,
+ 0xdf,0x47,0xc,0x6c,0xfb,0x78,0x8d,0xab,0x4a,0xb3,0x7d,0x20,0x2,0x50,0x8c,0x94,
+ 0x39,0xd4,0xef,0xc7,0x97,0xac,0x6f,0x40,0x9a,0xf0,0x7e,0xda,0x3f,0xe6,0xa,0x2b,
+ 0xba,0x13,0x7f,0x72,0xf,0xe1,0x1f,0xed,0xa2,0x82,0x5c,0x3c,0xd1,0x33,0x69,0x86,
+ 0x8f,0x32,0xae,0x2f,0x8b,0x29,0xdf,0xd5,0xe7,0x9d,0x51,0x8d,0xa3,0x2f,0x6e,0x1d,
+ 0x86,0x92,0x82,0xa1,0x8e,0xeb,0x7d,0xfe,0x35,0x6,0x9b,0x4e,0x40,0xe6,0x13,0x80,
+ 0x65,0x21,0x96,0x51,0x63,0x7d,0xbf,0x13,0x57,0x8a,0x5b,0xc7,0x75,0x59,0xf1,0x6d,
+ 0x40,0x46,0xd7,0x5f,0x1,0x40,0x36,0x94,0x60,0x33,0x2a,0x15,0x32,0x15,0xc,0x26,
+ 0x6d,0xb6,0xef,0xa9,0x90,0xaa,0xb8,0x0,0x4a,0xe8,0x8b,0x63,0x35,0xc9,0x5e,0x5e,
+ 0xcf,0xa,0xd1,0xaa,0xc3,0x3f,0xb4,0xb0,0x8,0xc4,0x80,0xd,0xfa,0xf8,0x54,0x58,
+ 0x2d,0xd6,0x37,0x12,0x92,0x1d,0xd4,0x6c,0x2f,0x6b,0x5f,0x6f,0x6d,0x7,0x43,0x2a,
+ 0x9c,0x9,0x40,0x75,0x32,0x0,0xcf,0x7b,0x8b,0x6c,0x41,0x3b,0xf3,0xae,0x31,0x5f,
+ 0xa2,0xb6,0x4b,0x61,0xa6,0x46,0x2d,0x36,0xfb,0x9e,0xb5,0xd8,0xae,0xd1,0x69,0xb6,
+ 0x65,0x4a,0xa6,0xd,0xa6,0xa0,0xfb,0xf6,0xfc,0xe9,0x78,0x77,0x95,0x42,0xc1,0x22,
+ 0xb5,0xce,0x77,0x53,0x10,0xb3,0xfb,0x39,0x7e,0x54,0x1a,0x8,0x90,0x38,0x4,0xb1,
+ 0x41,0x20,0x0,0xe6,0x39,0x63,0xf3,0xac,0xae,0x1,0x64,0x59,0x35,0x98,0x4b,0x9,
+ 0x1b,0x62,0x41,0xb1,0xe5,0xe3,0x56,0x5b,0x28,0x90,0xe9,0xc9,0xda,0x54,0x20,0x18,
+ 0xc1,0x1e,0xc1,0x44,0xa0,0x2b,0xba,0x98,0xcb,0x20,0x97,0x25,0xc6,0x2c,0x8a,0xdc,
+ 0x7c,0xe8,0x25,0xa4,0xfa,0x80,0xa1,0x7b,0x6a,0x0,0xc0,0x4,0x3d,0xd5,0x4,0x33,
+ 0x16,0x89,0x8b,0x33,0xb6,0x9b,0xdc,0x92,0xa1,0xaf,0x7f,0x3f,0xa,0xb6,0xa2,0xe3,
+ 0x83,0xa4,0x80,0x94,0xbb,0x7a,0x2b,0x6,0x1,0xb9,0xf8,0x8a,0x1d,0xd0,0x4a,0xea,
+ 0xcb,0xa9,0x79,0x41,0x3e,0x86,0xfb,0x1e,0xa2,0x82,0x40,0xca,0x78,0x58,0xe4,0x52,
+ 0xcc,0xa8,0xf1,0x92,0x19,0xc6,0xc3,0xc6,0xae,0x4c,0xcd,0x18,0x25,0xd9,0x58,0xc6,
+ 0xfc,0xd9,0x7a,0xf4,0xa9,0xa6,0x2a,0x8e,0xe8,0x84,0x29,0x4,0x3a,0xfd,0x1f,0xd6,
+ 0x7b,0xbc,0xfb,0xea,0x91,0xa2,0x4,0x65,0x45,0xa,0xa6,0x5d,0x86,0x95,0xf1,0xc8,
+ 0x77,0x50,0x5,0x9c,0x4a,0xfd,0x82,0x9,0x78,0xec,0x55,0xc1,0xb9,0xb0,0xdc,0x8f,
+ 0x1b,0xd7,0x30,0x55,0x64,0x45,0x56,0x57,0x8d,0xa4,0x0,0x87,0x5d,0xaf,0xeb,0xee,
+ 0xa4,0x6d,0x26,0x8e,0x25,0x9b,0x15,0x62,0x1a,0x33,0x8c,0x26,0xc4,0xe,0x9e,0xcf,
+ 0x3d,0xfd,0x6,0x37,0xe1,0xe2,0x77,0x48,0xd9,0x81,0x46,0xcb,0x44,0x8b,0xef,0x63,
+ 0xee,0xa0,0x57,0x63,0xa1,0x24,0x8c,0xac,0x2d,0x19,0x5c,0x75,0x31,0xde,0xf6,0xd8,
+ 0xfa,0xc5,0x8f,0x9d,0x9c,0xdc,0x34,0x8b,0xe9,0x2c,0x70,0xa,0xc1,0x95,0xaf,0xb7,
+ 0xbf,0xbb,0xfa,0x54,0x84,0x2a,0xf0,0x4b,0x12,0x62,0x43,0x66,0x0,0x30,0x9b,0xef,
+ 0xcb,0x9f,0x9f,0x75,0x4d,0xa5,0x45,0x19,0x18,0xe3,0x24,0x84,0x72,0xaf,0x11,0xf5,
+ 0xf,0xc2,0x83,0x66,0x5c,0xf,0xed,0x93,0xf8,0x68,0xa4,0xfa,0x44,0x3d,0x1b,0xf8,
+ 0x47,0xce,0x8a,0x9,0x99,0x58,0x66,0xda,0x6c,0x2c,0x50,0x9b,0x45,0xb8,0xb1,0xb1,
+ 0xaa,0xb0,0x31,0x71,0x59,0x61,0xd9,0x12,0xb6,0xeb,0x16,0x5b,0x15,0xfc,0xfc,0x7d,
+ 0xd5,0xc9,0x1a,0x9,0x40,0x99,0xd2,0x44,0x56,0x8c,0xa3,0xdd,0x5b,0x6e,0x84,0xd4,
+ 0xe1,0x9a,0x38,0xdd,0xd5,0xd9,0xf6,0x75,0x4,0xf6,0xac,0x54,0x8b,0x50,0x6a,0x2c,
+ 0x1e,0x32,0x41,0x21,0x9b,0x87,0x7,0xec,0x8d,0xad,0x4e,0x24,0x2d,0x2b,0xf,0xd6,
+ 0x59,0x41,0xde,0x23,0x71,0x71,0xf2,0xef,0xac,0xf0,0xcd,0x19,0x8b,0x51,0x65,0x1d,
+ 0x98,0x5d,0x48,0x37,0xd8,0x83,0xd7,0xba,0xab,0x2c,0xc9,0x1b,0x23,0x19,0x4d,0x9a,
+ 0x41,0xbe,0xa1,0x0,0xf6,0x7b,0xe8,0x21,0xe8,0xca,0x58,0x29,0xba,0x0,0x4a,0x98,
+ 0x8e,0xd6,0x7b,0xd3,0xc4,0xec,0xb3,0x69,0x32,0x96,0x4d,0x56,0x2,0xe8,0xdb,0x5c,
+ 0x75,0xb5,0x3b,0xce,0xb7,0xa,0x26,0x0,0x10,0xeb,0xbb,0x1d,0x88,0x3d,0x6d,0x48,
+ 0xe1,0x75,0xac,0xec,0xe9,0x69,0x40,0xe,0x92,0xdc,0x5c,0xaf,0x7d,0x0,0xb2,0xe3,
+ 0x1e,0x13,0x28,0x5b,0x22,0x60,0xf6,0x22,0xe0,0x11,0xb1,0xf6,0xd5,0x5d,0x90,0x4d,
+ 0x21,0x56,0x7,0x17,0x53,0xf5,0x88,0xd8,0xfc,0x6a,0x20,0xb0,0xe1,0xcb,0x2c,0xac,
+ 0x6d,0x1b,0x2,0x35,0x2f,0xb8,0x3e,0x45,0x34,0xd3,0x23,0x9,0xe4,0x4e,0x24,0x85,
+ 0xa,0xac,0x4c,0x6e,0x36,0xb7,0x3f,0x9d,0x2,0xcc,0x53,0x12,0x17,0x5,0x65,0x46,
+ 0xe7,0x2b,0x83,0xcf,0xa5,0x75,0x9a,0x29,0x11,0xdf,0x38,0xd8,0x2e,0x99,0x24,0x12,
+ 0x7b,0xea,0x9a,0xb2,0x80,0x3,0xcd,0x1f,0x26,0xa,0xfa,0x83,0x91,0x1b,0x13,0x4b,
+ 0x69,0x15,0xdc,0xa4,0x8b,0x76,0x89,0x49,0x50,0x56,0xfb,0x7a,0xfc,0xf3,0xa0,0x98,
+ 0xd,0xc,0xec,0xea,0x50,0x11,0x96,0x57,0x66,0x20,0x8a,0x60,0x32,0x92,0x41,0x75,
+ 0x52,0x4a,0xb5,0x89,0x6b,0x11,0xb7,0x9f,0xdf,0x4e,0xcf,0x2a,0xca,0xa7,0x39,0x31,
+ 0x76,0xc7,0xeb,0xaf,0x2b,0x7e,0x75,0x54,0xd4,0x16,0xb9,0x94,0x59,0x45,0xc8,0x75,
+ 0x23,0xdf,0x41,0x9e,0x4d,0x58,0xe3,0x5,0x5e,0x12,0xab,0x9f,0xd6,0x66,0x3c,0xfc,
+ 0xfc,0x6a,0x43,0x88,0x74,0x8e,0x26,0x59,0x62,0x8,0xc8,0xaa,0x9,0x91,0xb6,0x37,
+ 0xdc,0x56,0x90,0x78,0x88,0xdc,0xa9,0x69,0x1d,0x73,0x38,0x9c,0xd4,0x83,0x7e,0xe3,
+ 0x7e,0x55,0xc1,0x24,0x86,0x16,0x2c,0xb2,0x5d,0x45,0xc8,0x12,0x2e,0xe4,0x1b,0xd0,
+ 0x49,0x67,0x7,0x88,0xda,0x58,0xc0,0x2c,0xca,0x57,0x57,0xbc,0xf7,0x5f,0xba,0xa5,
+ 0xc5,0x49,0x2e,0x9b,0x59,0x8a,0x38,0x85,0x6c,0xb,0x16,0x17,0xca,0xdc,0xfc,0xf3,
+ 0xad,0x13,0x2c,0x85,0xe5,0x52,0x9c,0x41,0x5,0xc1,0xc,0xa5,0x6e,0x2e,0x3a,0x79,
+ 0xf7,0x52,0x89,0x24,0x9b,0x86,0x47,0x56,0xe2,0x1f,0x2c,0x91,0x86,0x4a,0x2e,0x1,
+ 0x23,0x95,0x4,0x35,0xdf,0xf6,0x1c,0x47,0xf1,0x1a,0x29,0xfe,0x9e,0xbd,0x27,0xf7,
+ 0x51,0x40,0xc0,0xa2,0xa3,0x3c,0x72,0x90,0x3b,0x5d,0xad,0x53,0xb6,0xfb,0xb,0x77,
+ 0xd3,0x39,0xc,0xe6,0x74,0x99,0x6f,0x64,0x62,0x33,0xec,0xee,0x29,0x63,0x32,0x6a,
+ 0xe0,0xf2,0xca,0xac,0xd9,0x10,0xc1,0x94,0x8e,0x7d,0xc0,0xf5,0xae,0xc6,0x24,0xc7,
+ 0x3e,0x1f,0x8a,0x72,0x44,0x6a,0x40,0xb2,0xf6,0x85,0xf9,0x79,0xeb,0x41,0xde,0x1a,
+ 0x45,0x79,0x23,0x43,0x2a,0xb3,0x33,0x48,0x1,0xd4,0xb9,0xf7,0x8f,0x36,0xa2,0x3e,
+ 0x20,0xe9,0xe8,0x15,0xed,0x85,0x43,0x88,0x71,0xda,0x1c,0xaa,0x9e,0x98,0x4c,0x8c,
+ 0x3,0x9b,0x48,0xcd,0x62,0xaa,0x3b,0x36,0xf3,0xef,0xa4,0x93,0x39,0x20,0xa,0xd1,
+ 0xb6,0xd0,0xdd,0x4b,0x46,0xe,0xe0,0xfe,0x54,0xd,0x24,0xdb,0xb0,0x63,0x25,0x83,
+ 0x3a,0x82,0x5c,0xb,0x5b,0xcf,0xba,0x95,0xd8,0x37,0x69,0x5e,0x55,0x75,0x68,0xcf,
+ 0x69,0x97,0x7e,0xef,0x75,0x3b,0x65,0xaa,0xdb,0xc8,0x2e,0xf9,0x6f,0x18,0xe9,0x52,
+ 0x6c,0x84,0x57,0x64,0x20,0x84,0x53,0xf6,0x63,0x6b,0x1f,0x87,0xce,0x83,0xb0,0xb6,
+ 0xeb,0x6d,0x60,0x7b,0x6a,0xc3,0xb3,0x72,0x79,0xde,0xd4,0xe5,0x9a,0xc2,0x70,0xf3,
+ 0x35,0xe1,0xb6,0x41,0x54,0xf2,0x6e,0x95,0x24,0xc0,0x71,0x28,0x12,0xc2,0xef,0x22,
+ 0x58,0x45,0xba,0x9c,0x6f,0x4a,0x54,0x24,0x42,0x58,0x22,0x50,0x34,0x18,0x98,0xcc,
+ 0x76,0xdc,0x73,0x0,0x7e,0x1e,0xaa,0xb,0x2a,0x82,0x23,0x0,0x4a,0x1,0x92,0xc6,
+ 0xe8,0xbd,0x93,0x51,0x8d,0x80,0x11,0x2e,0x53,0x24,0xda,0x2c,0x1,0x8,0x5,0xc0,
+ 0x3e,0xea,0xa9,0x16,0x94,0x62,0x10,0x12,0x51,0x9a,0xd0,0x93,0x96,0xfb,0x9e,0x74,
+ 0xb8,0xdc,0xe2,0x5a,0x3b,0x10,0xe4,0x7a,0x3,0xcb,0xa7,0xc3,0xc9,0xa0,0x72,0x63,
+ 0x33,0x69,0xbe,0xa7,0x69,0x97,0xf5,0x54,0xa9,0x36,0xda,0xb8,0x8b,0x16,0x21,0x4a,
+ 0x48,0x48,0x85,0x94,0xb,0xf,0xaa,0xf,0x77,0xb2,0xb8,0x1,0xd9,0x65,0x68,0xcd,
+ 0xb4,0xc3,0xd,0x22,0x6f,0xb7,0x3b,0xd7,0x71,0xd9,0x63,0x69,0xa2,0xcb,0x17,0x3,
+ 0xd0,0x9e,0x40,0xf7,0x8a,0xa,0x49,0x60,0x5d,0x99,0x24,0xc4,0x95,0xe,0xad,0x1a,
+ 0x9f,0x81,0xa8,0x48,0xba,0x6f,0x32,0x18,0x65,0xc1,0xcb,0x1d,0x90,0x10,0xbe,0x7f,
+ 0xa,0x7c,0x19,0xa2,0x90,0x47,0xc4,0x46,0x5b,0x4d,0x7e,0xbf,0xe,0x40,0x23,0xfa,
+ 0xd2,0x48,0x88,0xd2,0x4d,0x13,0x68,0x10,0xec,0x6c,0x30,0x26,0xc7,0x1f,0x65,0x3,
+ 0xea,0x26,0xab,0x4a,0xb,0x8b,0xb2,0x35,0x8a,0xf,0xf,0xc6,0xbb,0xc3,0xf6,0x65,
+ 0xb1,0x85,0xec,0xa5,0x8a,0xb1,0x88,0x58,0x82,0x77,0xf8,0xd6,0x66,0x46,0x68,0x75,
+ 0x23,0x5e,0x1e,0x42,0x42,0x11,0x8a,0xb5,0xc8,0xbf,0x31,0xeb,0xf9,0xfb,0x48,0x33,
+ 0x59,0xd4,0xa6,0x8d,0x99,0xdf,0x70,0x8d,0xb6,0xd7,0x23,0xe3,0x41,0xb3,0x7f,0xda,
+ 0x25,0x14,0xb8,0x1e,0x8b,0xfc,0xa6,0xff,0x0,0x6d,0x14,0x19,0x40,0x28,0x15,0xb3,
+ 0x70,0x44,0xa4,0x2b,0x2a,0x3,0x6e,0xcf,0xc3,0x9f,0xbe,0xb8,0x86,0x36,0x2a,0x4a,
+ 0xa8,0xf,0x7,0x6b,0x18,0xf6,0xd9,0xaf,0x70,0x2b,0xb1,0x17,0x8a,0x6b,0x2f,0xa,
+ 0x16,0xf2,0x7e,0xc8,0xad,0xfb,0x34,0x47,0x89,0x11,0x13,0xa,0x82,0x23,0x90,0xb,
+ 0xdf,0x95,0xf7,0x1e,0xbe,0x62,0x82,0x9c,0x3b,0xe3,0x38,0x1,0x95,0xed,0x35,0xf7,
+ 0x8e,0xc7,0x12,0x29,0x63,0xb2,0x24,0x64,0x62,0xb1,0xbc,0x4e,0x2e,0x11,0x88,0x53,
+ 0x7e,0x9e,0xdf,0x7d,0x2c,0xb8,0x2,0x92,0xfd,0x1c,0x64,0xa,0x16,0x24,0x11,0xb7,
+ 0x2b,0xdf,0xc8,0xa9,0x87,0x8e,0x29,0x95,0xcc,0x2c,0x3b,0x72,0x2b,0x20,0x76,0x4,
+ 0x8a,0xd,0xbe,0x8d,0xd8,0x32,0x15,0x4,0xba,0xb0,0xbc,0x67,0xa6,0xd5,0x35,0xc7,
+ 0x6,0x17,0x5,0x34,0x6c,0x41,0x89,0x87,0x23,0xf1,0xa8,0xc7,0x82,0xce,0x86,0x12,
+ 0xe6,0x36,0x58,0xee,0xc,0x86,0xe3,0x9d,0x52,0x2,0xaf,0x19,0xc,0x92,0x5f,0x7,
+ 0x56,0xc8,0xb6,0xc2,0xfd,0x68,0x1a,0x41,0x13,0x4d,0x18,0x94,0x64,0xaf,0x38,0x2a,
+ 0xc0,0x10,0x6e,0x54,0xfb,0xf,0x2a,0x92,0x8c,0x64,0x84,0x44,0xe1,0x98,0x97,0x1,
+ 0xb,0x10,0x58,0x6f,0xb5,0xb9,0x6d,0xe7,0xd7,0x57,0x8d,0x80,0xed,0xac,0xa5,0x75,
+ 0x10,0x9c,0x64,0x3b,0x5c,0x91,0x71,0xdf,0xd3,0x6a,0x8b,0xab,0x28,0x4d,0xa6,0x3a,
+ 0x7c,0x43,0x0,0xda,0x97,0xb6,0xd7,0xf6,0x50,0x31,0x31,0xb2,0x86,0x8e,0x50,0x41,
+ 0x29,0x22,0xab,0x48,0xc0,0xa8,0xfc,0x69,0x91,0xa3,0x21,0x6c,0x0,0xbb,0x48,0x19,
+ 0x75,0x8d,0xaf,0xbf,0xb3,0xc7,0xc6,0xa2,0x25,0x91,0x14,0xb2,0x19,0x19,0x31,0x53,
+ 0x6d,0x4d,0xf7,0x3c,0xab,0x40,0x76,0xc8,0x86,0xd5,0x52,0x24,0x65,0xde,0x41,0xbe,
+ 0xd7,0xe7,0xdd,0x41,0x58,0x89,0x62,0x14,0x3c,0x6e,0x31,0x4b,0x1d,0x52,0x3f,0xbc,
+ 0x3b,0xab,0x8a,0xa6,0xc0,0x29,0x56,0x68,0xd9,0xd5,0x3,0xc9,0x73,0xfe,0x5a,0xe2,
+ 0x30,0xcf,0x19,0x11,0x97,0x38,0xd4,0xee,0xc0,0x5b,0x7e,0xe2,0x7d,0x75,0x68,0xcb,
+ 0x3b,0xab,0xa2,0x12,0xc2,0x56,0x1b,0x4a,0x39,0x5b,0x9f,0x9f,0x55,0x6,0x75,0xd9,
+ 0x6,0x5a,0x6e,0xa6,0x30,0x1,0xd7,0x3b,0xfe,0x75,0xd2,0x6d,0xc4,0x2,0x5e,0x26,
+ 0x8c,0xc9,0x95,0xcc,0xc2,0xea,0x6d,0x6b,0x7a,0xeb,0xac,0xa0,0x43,0x8e,0x3f,0xf2,
+ 0xc9,0x1d,0xb1,0x63,0x63,0xe7,0xdf,0x4d,0x24,0x13,0x47,0xc4,0x31,0x45,0x66,0x56,
+ 0x91,0x4e,0xf2,0x6e,0x76,0xa0,0xc3,0x16,0xb4,0x9,0x1a,0xdd,0xa,0xac,0x64,0x10,
+ 0x67,0x3,0x93,0x5f,0xba,0x9e,0x46,0x2,0x40,0xec,0xe1,0x2f,0x2d,0xc8,0x13,0xfa,
+ 0xb9,0xf8,0xed,0x5d,0x6e,0x1f,0xb2,0x62,0x78,0xdd,0x49,0x8d,0x90,0x1c,0xd5,0x49,
+ 0xb9,0xe7,0xea,0xf1,0xa5,0x65,0x9c,0x96,0x43,0x13,0x7,0x57,0x57,0x0,0xb8,0xed,
+ 0x0,0x37,0x23,0xae,0xc2,0x82,0xfa,0x63,0xf6,0xfe,0xe6,0xa2,0x92,0xfc,0x47,0xf8,
+ 0x1f,0xfd,0x69,0x45,0x0,0x79,0xc3,0xe2,0x3f,0xd3,0x54,0xe1,0x7f,0x42,0x83,0xee,
+ 0xe4,0xfc,0x68,0xa2,0x82,0x8b,0xf5,0xd7,0xee,0x93,0xff,0x0,0x9a,0xcb,0xc5,0xfd,
+ 0x8f,0xf,0xe2,0xdf,0x1a,0x28,0xa0,0x90,0xfb,0x6e,0x1f,0xee,0x7f,0x1a,0xef,0xf,
+ 0xfa,0x62,0xf8,0xb5,0x14,0x50,0x57,0xfe,0x90,0x7d,0xf0,0xf8,0xad,0x53,0x8b,0xe6,
+ 0xff,0x0,0xf9,0x1f,0x3a,0x28,0xa0,0xc7,0xc5,0xfd,0x84,0x7f,0xe4,0x5f,0x8d,0x56,
+ 0x5f,0xd2,0xf,0xde,0xa7,0xc2,0x8a,0x28,0x35,0xaf,0xd6,0x3f,0x76,0xdf,0xeb,0x34,
+ 0xf1,0xfd,0x91,0xfb,0xcf,0xc2,0x8a,0x28,0x16,0x5f,0xb7,0x87,0xef,0x24,0xff,0x0,
+ 0x4d,0x34,0xbf,0xa4,0x7e,0xf8,0xe8,0xa2,0x82,0x7f,0xae,0xbf,0xe4,0x7a,0xc6,0xff,
+ 0x0,0x63,0x27,0xde,0x2f,0xe3,0x45,0x14,0x13,0xa2,0x8a,0x28,0x3f,0xff,0xd9,
+ // /home/matthew/pencil_dev/background/dots.png
+ 0x0,0x0,0x0,0xac,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x6,0x0,0x0,0x0,0x6,0x8,0x3,0x0,0x0,0x0,0xd7,0x12,0x1f,0x7a,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x0,0x9,0x50,0x4c,0x54,0x45,0xfb,0xfb,0xfb,
+ 0xff,0xff,0xff,0xd2,0xd2,0xd2,0xf6,0xc3,0x4d,0x32,0x0,0x0,0x0,0x29,0x49,0x44,
+ 0x41,0x54,0x78,0xda,0x62,0x60,0x0,0x2,0x26,0x6,0x80,0x0,0x2,0x91,0x8c,0xc,
+ 0xc,0x0,0x1,0x4,0x65,0x3,0x4,0x10,0x94,0xd,0x10,0x40,0x50,0x36,0x40,0x0,
+ 0x41,0x10,0x23,0x40,0x80,0x1,0x0,0x0,0xf3,0x0,0xa,0x5b,0x7d,0x59,0xcb,0x0,
+ 0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/select.png
+ 0x0,0x0,0x1,0xfc,
+ 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,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x1,0x8e,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0xfc,0xff,0xff,0x3f,0x3,0x25,0x0,0x20,0x80,0x18,0xd3,0xd2,0xd2,0xfe,0xff,0xfb,
+ 0xf7,0x8f,0x1,0x84,0xe7,0xce,0x9d,0xcb,0x8,0x12,0x8c,0x8a,0x8a,0xfa,0xff,0xe7,
+ 0xcf,0x1f,0x6,0x64,0xbc,0x6d,0xdb,0x36,0xb0,0x9c,0xad,0xad,0x2d,0x58,0xee,0xf7,
+ 0xef,0xdf,0xc,0x67,0xce,0x9c,0x61,0x4,0x8,0x20,0x16,0x90,0xc6,0xaa,0xaa,0x2a,
+ 0x46,0x10,0xd,0x3,0x1d,0x1d,0x1d,0x8c,0x30,0x43,0xd1,0x5d,0xb8,0x74,0xe9,0x52,
+ 0xc6,0xbf,0x7f,0xff,0x32,0x4,0x6,0x6,0x82,0x25,0x0,0x2,0x8,0x6c,0x0,0xc8,
+ 0x34,0x14,0x67,0x31,0x32,0x82,0x35,0x82,0x14,0x82,0xe4,0x99,0x99,0x99,0x51,0xe4,
+ 0x40,0x62,0x20,0x57,0x80,0x0,0x40,0x0,0xb1,0xc0,0x9c,0x8d,0xc,0x58,0x58,0x58,
+ 0xc0,0x9a,0x40,0x34,0x36,0x39,0x10,0x80,0x19,0x0,0x10,0x40,0x8c,0xd8,0x2,0xf1,
+ 0xed,0xdb,0xb7,0x70,0xe7,0x83,0x68,0x26,0x26,0x26,0x6,0x31,0x31,0x31,0xac,0x81,
+ 0x8,0x10,0x40,0x4c,0xd1,0xd1,0xd1,0xff,0x5f,0xbc,0x78,0xc1,0xf0,0xfa,0xf5,0x6b,
+ 0xb8,0x20,0xcc,0x76,0x36,0x36,0x36,0x6,0xe,0xe,0xe,0x30,0x8d,0xb,0x0,0x4,
+ 0x10,0x13,0xc8,0x9f,0x20,0x7f,0x61,0x44,0xf,0x54,0xc,0x44,0x23,0xcb,0x7f,0xfc,
+ 0xf8,0x91,0xe1,0xfd,0xfb,0xf7,0xc,0x32,0x32,0x32,0x60,0xa7,0x3,0x4,0x10,0x13,
+ 0xcc,0x2f,0xc8,0x5e,0x81,0x69,0x0,0x39,0x1d,0x84,0xd1,0xd,0x6,0x61,0x98,0x3e,
+ 0x80,0x0,0x62,0x5a,0xb3,0x66,0xd,0x4a,0x14,0xc2,0x14,0x81,0x34,0x22,0xbb,0x2,
+ 0x3d,0x86,0x60,0x6,0x0,0x4,0x10,0xb,0xb2,0x9f,0xe1,0xfe,0x82,0xda,0x8a,0xcb,
+ 0x6b,0x82,0x82,0x82,0xc,0x6f,0xde,0xbc,0x1,0x4b,0x2,0x4,0x10,0x93,0xa7,0xa7,
+ 0xe7,0x7f,0x58,0xb4,0xa1,0x3b,0x13,0x9b,0x21,0xe8,0x7c,0x80,0x0,0x2,0x87,0x1,
+ 0xb2,0x66,0x98,0xb,0x60,0xde,0x40,0x76,0x11,0x8c,0xfd,0xe5,0xcb,0x17,0x6,0x2e,
+ 0x2e,0x2e,0x70,0xa0,0x1,0x4,0x10,0xb,0xc8,0x0,0x50,0x4c,0x60,0xf3,0x2,0xd6,
+ 0x68,0x83,0xca,0xc1,0xc2,0xd,0x20,0x80,0x18,0x6d,0x6c,0x6c,0xfe,0x83,0x92,0x32,
+ 0xc8,0x20,0x50,0xe6,0x0,0x9,0xaa,0xa9,0xa9,0xc1,0x33,0xc,0x2c,0x33,0x1,0xd3,
+ 0x9,0x58,0x8e,0x9b,0x9b,0xfb,0x3f,0xc8,0x42,0x10,0x6,0xca,0x33,0x2,0x4,0x10,
+ 0x23,0xa5,0xd9,0x19,0x20,0xc0,0x0,0x70,0xd3,0xca,0x9a,0xbe,0xa3,0x32,0x95,0x0,
+ 0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/pen.png
+ 0x0,0x0,0x2,0xc7,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x11,0x0,0x0,0x0,0x11,0x8,0x6,0x0,0x0,0x0,0x3b,0x6d,0x47,0xfa,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x2,0x59,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0xfa,0xff,0xff,0x3f,0x3,0x8,0x63,0x1,0x4c,0x40,0xcc,0x6c,0x18,0x9c,0xa,0x92,
+ 0x64,0x3,0x62,0x16,0x10,0x1f,0x88,0x19,0xd1,0x15,0x2,0x4,0x10,0x13,0x3,0x76,
+ 0x0,0x52,0xc8,0xb4,0xf9,0xc4,0x85,0xd9,0x2c,0x10,0x15,0x1c,0x40,0xcc,0xe,0x35,
+ 0x8,0x43,0xf,0x40,0x0,0xe1,0x33,0x84,0xe5,0xc2,0xab,0xaf,0x89,0xb7,0x8e,0xef,
+ 0x63,0x70,0xf3,0xb,0xfd,0x8,0xe4,0x73,0x23,0x19,0x84,0xe2,0x1a,0x80,0x0,0xc2,
+ 0x65,0x8,0xd3,0xc6,0x63,0x67,0x67,0xbc,0xfd,0xfa,0x8b,0xc1,0x20,0xb2,0x80,0xe1,
+ 0x35,0xbb,0x2c,0x48,0x8c,0xf,0x6a,0x10,0x2b,0xba,0x3e,0x80,0x0,0x62,0xc2,0xe1,
+ 0xa,0xe6,0x2b,0x1f,0x7f,0xc5,0x7b,0xea,0x29,0x31,0x30,0x31,0xb1,0x30,0x84,0x45,
+ 0x44,0x31,0xb8,0xfa,0x86,0xdc,0xc6,0xe5,0x1a,0x80,0x0,0x62,0xc2,0xe1,0x8a,0x99,
+ 0x5f,0xff,0xfc,0x67,0x30,0x90,0x15,0x1,0xb,0xf8,0x9a,0x28,0x30,0x3c,0xfd,0x1,
+ 0x72,0x8,0x3,0x2f,0x10,0x73,0xa2,0xbb,0x6,0x20,0x80,0x98,0xb0,0x84,0x11,0xeb,
+ 0xa9,0x77,0xdf,0xe3,0xbd,0xb5,0x15,0x50,0x24,0x32,0xb2,0xf3,0x18,0xcc,0xec,0xdc,
+ 0xcf,0x1,0x99,0x3c,0xe8,0x6,0x1,0x4,0x10,0x13,0xba,0x37,0x36,0x9e,0xbf,0xfe,
+ 0x5d,0x80,0x9b,0x93,0x41,0x47,0x52,0x18,0x2c,0xe8,0x6a,0x65,0x2,0xa6,0x4d,0xd5,
+ 0xc5,0x19,0x38,0x94,0x3d,0x18,0xda,0xbb,0xfa,0xaf,0x3,0xb9,0x5c,0xd0,0x68,0x7,
+ 0x47,0x39,0x40,0x0,0x31,0x20,0xa5,0x13,0x90,0x81,0x9c,0x79,0xeb,0xf6,0xff,0xff,
+ 0xf2,0xf3,0xd7,0xff,0x8f,0xdf,0x7f,0xfe,0x7f,0xf9,0xe9,0xeb,0x7f,0x7e,0x19,0xe5,
+ 0xff,0x57,0x1e,0xbe,0xf9,0x7f,0xfc,0xfa,0xf3,0xff,0x3b,0x4e,0x3e,0xf8,0x2f,0xa7,
+ 0xe7,0x6,0x52,0xac,0xd,0xc4,0xe2,0x50,0x17,0x31,0x1,0x4,0x10,0x13,0x9a,0x57,
+ 0x58,0xd8,0xd9,0x58,0x19,0xaa,0xb6,0x1d,0x87,0xb,0x1e,0x39,0x7e,0x12,0xee,0xce,
+ 0x49,0x6b,0x4f,0x33,0xf8,0x39,0x19,0x30,0xa0,0x5,0x30,0x13,0x40,0x0,0x21,0xbb,
+ 0x4,0x24,0xc0,0xf,0xc4,0x8a,0x5a,0xa1,0x89,0xff,0x2f,0x3f,0x7b,0x3,0x76,0xc9,
+ 0xfd,0x57,0x1f,0xff,0x5f,0x79,0xf4,0xe6,0xff,0xea,0x23,0xb7,0xff,0xcb,0xe8,0x3a,
+ 0x80,0x14,0x6,0x2,0xb1,0x15,0x48,0x1d,0x54,0x3d,0xb,0x40,0x0,0xa1,0x7,0x2c,
+ 0x48,0xd1,0xff,0x8,0x6b,0x63,0x86,0xde,0x3,0xe7,0x51,0x24,0x66,0x6d,0x3d,0xc6,
+ 0x10,0xe6,0x65,0xd,0x53,0xf3,0xf,0xa6,0x16,0x24,0x0,0x10,0x40,0xe8,0x61,0x2,
+ 0x72,0xa6,0x34,0x10,0x1b,0xc9,0x5a,0x3a,0x23,0x5c,0xf2,0xf8,0xcd,0x7f,0x7e,0x69,
+ 0x65,0x90,0xa2,0x38,0x20,0xf6,0x2,0xc9,0x43,0xd5,0x81,0xd4,0x33,0x1,0x4,0x10,
+ 0x23,0x2c,0xf3,0x31,0x2,0x1,0x34,0xc4,0xf9,0x4c,0x14,0xc4,0x5f,0xfd,0x63,0x84,
+ 0x88,0x33,0x1,0x85,0xff,0xfd,0xfb,0xf,0xb3,0x93,0xe1,0xdc,0xc3,0x57,0x2e,0x40,
+ 0xea,0x39,0x10,0xbf,0x6,0xe2,0x4f,0x40,0xfc,0xb,0x20,0x80,0x98,0xd0,0xbc,0xf2,
+ 0x17,0x88,0x7f,0x9f,0x79,0xf0,0x52,0xd9,0xc5,0x42,0x96,0x61,0x6a,0x47,0x3a,0x43,
+ 0x57,0x41,0x0,0xdc,0x30,0xa0,0x1,0x21,0x40,0xe6,0xf,0x28,0xfe,0xd,0x55,0xff,
+ 0x1f,0x20,0x80,0xb0,0x85,0x9,0x48,0xe2,0x8f,0x90,0x18,0x7,0x3,0x33,0xb,0x1b,
+ 0x38,0xe,0xfc,0x8c,0x15,0x61,0x2e,0xf9,0x3,0xd5,0xfc,0x7,0x66,0x0,0x48,0x10,
+ 0x20,0x80,0x58,0xd0,0xc,0xf9,0x7,0x73,0xcd,0x7f,0xa6,0xff,0xf0,0xa8,0x35,0x55,
+ 0x1,0x7a,0xff,0x1b,0x3,0xc3,0x99,0x87,0x2f,0xd1,0x5d,0x1,0x52,0xcf,0x0,0x10,
+ 0x60,0x0,0x1c,0xc5,0xd8,0xf7,0xd3,0x3d,0xb9,0x1e,0x0,0x0,0x0,0x0,0x49,0x45,
+ 0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/brush.png
+ 0x0,0x0,0x2,0xe6,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x12,0x0,0x0,0x0,0xe,0x8,0x6,0x0,0x0,0x0,0x22,0xda,0x4c,0xb7,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x2,0x78,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0xf9,0xff,0xff,0x3f,0x3,0xa9,0x60,0xd1,0xa2,0x45,0xf7,0xee,0xec,0x58,0xa7,0x18,
+ 0x6a,0x67,0xca,0x30,0x61,0xfd,0xe,0x6,0x4e,0x56,0x16,0x6,0x80,0x0,0x62,0x22,
+ 0xd5,0x90,0xc5,0x8b,0x17,0x1f,0x41,0x36,0xe4,0xe6,0xad,0x7b,0xc,0x51,0x55,0xad,
+ 0xf,0x0,0x2,0x88,0x1,0xe4,0x22,0x62,0xf1,0x96,0x2d,0x5b,0xae,0xe6,0xfa,0xb9,
+ 0xfe,0xbf,0x34,0xbd,0xe5,0x7f,0x41,0x80,0xeb,0x7f,0x6b,0x5,0xa9,0xff,0x7b,0xf6,
+ 0xec,0x79,0xa,0x92,0x3,0x8,0x20,0xa2,0xd,0xd9,0xbe,0x7d,0xfb,0x8d,0xc,0x2f,
+ 0x27,0xb0,0x21,0xad,0xf1,0xc1,0xff,0x6d,0x14,0xa5,0xff,0x6f,0x58,0xbf,0xfe,0x3c,
+ 0x4c,0x1e,0x20,0x80,0x88,0x32,0x64,0xcf,0xbe,0x43,0x57,0xb,0x2,0xdd,0x20,0x86,
+ 0xc4,0x41,0xc,0x99,0x35,0x6b,0xd6,0x4e,0x64,0x35,0x0,0x1,0xc4,0x42,0x28,0x4c,
+ 0x26,0xcf,0xdb,0x7c,0x75,0xd3,0xeb,0xe7,0x5a,0x7f,0x4d,0x3,0x19,0xb6,0x9d,0xde,
+ 0xcf,0xb0,0xed,0xd0,0x71,0x86,0xe0,0xbc,0x92,0x33,0xc6,0xc6,0xc6,0xab,0x91,0xd5,
+ 0x1,0x4,0x10,0x23,0xae,0x58,0x3b,0x73,0xec,0xd0,0xa6,0x3,0x7b,0xf6,0xf9,0x6e,
+ 0x63,0x95,0x60,0x58,0x18,0xeb,0xcb,0x50,0xb9,0x69,0x3f,0xc3,0xb3,0x8f,0x5f,0x18,
+ 0x82,0xf9,0xff,0xbd,0x31,0x37,0x35,0xdd,0x62,0x62,0x6a,0x9a,0x88,0xac,0x1e,0x20,
+ 0x80,0xb0,0xba,0x68,0xe3,0xc2,0x99,0xff,0xcf,0x1e,0x3f,0xcc,0xc0,0xc5,0xc9,0xc1,
+ 0xa0,0xf9,0xe3,0x25,0x43,0xc7,0x4e,0x21,0xb0,0x21,0xe1,0x22,0xec,0x37,0x8c,0xd,
+ 0x75,0xb7,0x9b,0x98,0x98,0x14,0xa1,0xeb,0x1,0x8,0x20,0x8c,0xf0,0xd8,0xb4,0x7c,
+ 0xfe,0xff,0x9e,0x92,0xb4,0xff,0xef,0x5f,0xbf,0xfc,0xff,0xfe,0xcd,0xab,0xff,0x1c,
+ 0xec,0x6c,0xff,0x75,0x35,0xd4,0xff,0xfb,0x6,0x46,0xfc,0xc7,0x17,0x8e,0x0,0x1,
+ 0x84,0xc2,0x39,0xb9,0x77,0xdb,0xff,0x40,0x67,0x6b,0xb0,0x1,0xf,0x6e,0x5e,0xfb,
+ 0xbf,0x7d,0xc3,0xea,0xff,0x9d,0xa5,0x99,0xff,0x85,0x5,0xf8,0xfe,0xaf,0x5d,0xb3,
+ 0xfa,0x1b,0xbe,0xb0,0x4,0x8,0x20,0x14,0xaf,0xad,0x5e,0x3c,0x9f,0xa1,0xa6,0xb1,
+ 0x85,0xe1,0xec,0xb1,0xc3,0xc,0x13,0x66,0x71,0x3,0x45,0x78,0x19,0x2e,0x1d,0x5f,
+ 0xc5,0x20,0x29,0x2d,0xcb,0x20,0x2f,0xaf,0x70,0x18,0x68,0x19,0x63,0x43,0x43,0x3,
+ 0x23,0x48,0xad,0xb6,0xb6,0x36,0x63,0x68,0x68,0xe8,0xff,0xd5,0xab,0x57,0x33,0x5e,
+ 0xbd,0x7a,0x95,0x11,0x20,0x0,0x0,0x49,0x0,0xb6,0xff,0x1,0xff,0xff,0xff,0x0,
+ 0xb8,0xab,0xa3,0xff,0xfe,0xfa,0xf8,0x0,0xea,0xe9,0xea,0x0,0xac,0xbe,0x20,0x0,
+ 0xc3,0xc3,0xfd,0x0,0x15,0x15,0xa1,0x0,0xfc,0xe3,0xca,0x0,0xf2,0x0,0xfc,0x0,
+ 0x9e,0xa8,0xa6,0xe3,0xc9,0xca,0xca,0x57,0x7,0x7,0x7,0xf7,0x3,0x3,0x3,0x1,
+ 0xfd,0xfd,0xfd,0xfb,0x4,0x4,0x4,0xf5,0xf7,0xf7,0xf7,0xfa,0xa,0xa,0xa,0x0,
+ 0x6,0x6,0x6,0xfd,0x2,0x88,0xc5,0xd7,0x77,0xe7,0xff,0x43,0x87,0x40,0x31,0xc7,
+ 0xe,0xc4,0xb2,0x40,0xfc,0x97,0x81,0xf9,0x6b,0x1a,0xc3,0xfb,0xdf,0x2c,0xc,0xc2,
+ 0x12,0x22,0xc,0xd5,0x59,0x59,0x5f,0x98,0x59,0x58,0xde,0x70,0x70,0x70,0xb8,0x1,
+ 0xd,0x78,0xb,0x54,0xf0,0x7,0x68,0xd8,0xa7,0x1f,0x3f,0x7e,0xbc,0x0,0x3a,0xe2,
+ 0x15,0x13,0x13,0xd3,0x8f,0x7f,0xff,0xfe,0xfd,0x0,0x8,0x20,0xb0,0x8b,0x7c,0x7c,
+ 0x96,0x82,0xd3,0xc0,0xab,0x57,0xc7,0x19,0xde,0xbd,0xbb,0xce,0xc0,0xf0,0xef,0x3e,
+ 0x43,0x80,0xaf,0xdf,0x67,0x7b,0x27,0xa7,0xcb,0x17,0x2e,0x5d,0x9c,0xb,0x34,0xe0,
+ 0x13,0x50,0x1a,0x84,0xbf,0x0,0x35,0xfd,0x5,0x6a,0xfe,0xcc,0xca,0xca,0xfa,0xf1,
+ 0xf7,0xef,0xdf,0x9f,0xf9,0xf8,0xf8,0x7e,0x3f,0x78,0xf0,0xe0,0x1f,0x40,0x80,0x1,
+ 0x0,0xb5,0xaf,0xb4,0x36,0xdc,0x9d,0x9e,0x8e,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,
+ 0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/bucketTool.png
+ 0x0,0x0,0x5,0x75,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x13,0x0,0x0,0x0,0x15,0x8,0x6,0x0,0x0,0x0,0xa4,0x9,0xd5,0xd1,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x7,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0xdc,0xb5,0x6b,0x17,0x3,0x8,0x30,0x32,0x32,0x32,0xfc,0xfe,0xfd,0x5b,0x67,0xef,
+ 0xde,0xbd,0xa7,0xcc,0xcc,0xcc,0xca,0x95,0x95,0x95,0x27,0xbf,0x7a,0xf5,0x8a,0xe1,
+ 0xe9,0xd3,0xa7,0xc,0xbc,0xbc,0xbc,0x60,0x79,0x66,0x66,0x66,0xde,0xbb,0x77,0xef,
+ 0x2e,0xbb,0x77,0xff,0xbe,0xab,0xae,0x8e,0x4e,0x9e,0x8e,0x8e,0xce,0x2c,0x3e,0x3e,
+ 0x3e,0x6,0x18,0x0,0x8,0x20,0xa0,0x3c,0x33,0xc3,0xe5,0xcb,0x97,0x19,0xae,0x5e,
+ 0xbd,0xca,0x70,0xe4,0xc8,0x91,0x64,0x59,0x59,0xd9,0xbf,0xfb,0xf6,0xed,0xb3,0xfa,
+ 0xf2,0xe5,0xcb,0xb,0x26,0x26,0xa6,0x5b,0x9c,0x9c,0x9c,0x20,0x9b,0x9c,0x4e,0x1c,
+ 0x3f,0xde,0x76,0xf1,0xe2,0xc5,0xe9,0x72,0x72,0x72,0xba,0x6,0x46,0x46,0x2c,0x87,
+ 0x8f,0x1d,0xf3,0xf9,0xfa,0xf9,0xb3,0x94,0xbe,0x9e,0xde,0xae,0x7f,0xff,0xfe,0xfd,
+ 0x5,0xaa,0x65,0x0,0x8,0x20,0x16,0x4b,0x4b,0x4b,0xb0,0xad,0xec,0xec,0xec,0xcc,
+ 0xa7,0x4f,0x9f,0x36,0xd4,0xd4,0xd4,0x8c,0x7d,0xf7,0xee,0x5d,0xde,0x89,0x13,0x27,
+ 0x62,0x9d,0x9d,0x9d,0xaf,0xbf,0x79,0xf3,0x36,0xf1,0xf5,0xeb,0xd7,0xb9,0x82,0x82,
+ 0x2,0xbc,0x45,0x45,0x45,0xc,0xfa,0xfa,0xfa,0x60,0x57,0xe8,0xe8,0xea,0x32,0x96,
+ 0x94,0x96,0xa5,0x49,0x48,0x48,0x1c,0x2,0xfa,0x62,0xe9,0xb7,0x6f,0xdf,0x18,0x0,
+ 0x2,0x88,0xe5,0xc3,0x87,0xf,0xc,0x5f,0xbf,0x7e,0x65,0x0,0xba,0x44,0x10,0x68,
+ 0xba,0xe9,0xdf,0xbf,0x7f,0xd9,0xd4,0x35,0x34,0x8e,0x9f,0x3f,0x7f,0xbe,0xe4,0xd2,
+ 0xa5,0xcb,0x1,0xa6,0xa6,0x26,0xac,0xe9,0xe9,0x69,0xc,0xf2,0xf2,0xf2,0x60,0x43,
+ 0x80,0xea,0x18,0xfe,0xfc,0xf9,0xc3,0xa0,0xae,0xa2,0xc2,0xd0,0xd3,0xd9,0xc9,0xd0,
+ 0xd0,0xd8,0x30,0xdd,0x8d,0xe1,0xff,0x35,0x79,0x79,0x85,0xf3,0x0,0x1,0xc4,0x2,
+ 0xf4,0x37,0x3,0xc8,0x2b,0x97,0x2e,0x5d,0xfa,0x77,0xfc,0xf8,0x71,0xc6,0x3d,0x7b,
+ 0xf6,0xac,0xfd,0xfc,0xf9,0xb3,0xb5,0xb8,0xb8,0x38,0x43,0x42,0x42,0x3c,0x83,0x83,
+ 0x83,0x3,0xc3,0xff,0xff,0xff,0x19,0x80,0x62,0xc,0xdf,0xbf,0x7f,0x7,0xb3,0x81,
+ 0x61,0xb,0x31,0x50,0x4d,0x95,0x41,0x4b,0x43,0x83,0x77,0xd7,0xae,0x3d,0xed,0x5,
+ 0xf9,0x79,0x1e,0x0,0x1,0xc4,0xc4,0xc1,0xc1,0xc1,0x0,0xc4,0xae,0x77,0xef,0xdd,
+ 0x5b,0xc,0xf4,0x8e,0xac,0x89,0xa9,0xa9,0xf5,0x8c,0x19,0x33,0x18,0x92,0x92,0x92,
+ 0x18,0x80,0x61,0x4,0xd6,0xfc,0xe6,0xcd,0x1b,0xb0,0xeb,0x41,0x6,0xfc,0xfc,0xf9,
+ 0x93,0xe1,0xc7,0x8f,0x1f,0xc,0x6f,0xdf,0xbe,0x65,0xb8,0x7d,0xfb,0x36,0x83,0x8f,
+ 0x8f,0xf,0x3,0x27,0x17,0xa7,0xd9,0x91,0xa3,0x47,0x45,0x1,0x2,0x88,0xe5,0xf1,
+ 0xe3,0xc7,0x1e,0xf3,0xe6,0xcd,0xdb,0xa8,0xad,0xa3,0xc3,0x36,0x7f,0xfe,0x7c,0x6,
+ 0x60,0x0,0x83,0xbd,0x23,0x2a,0x2a,0xca,0xb0,0x69,0xd3,0x26,0xb0,0x26,0x98,0x4b,
+ 0x7e,0xfd,0xfa,0x5,0xa6,0x41,0x7c,0x18,0x6,0x86,0x35,0x83,0xac,0x8c,0x8c,0xe0,
+ 0xfb,0xf7,0xef,0x4b,0x0,0x2,0x88,0x65,0xf1,0xe2,0xc5,0x53,0x1e,0x3d,0x7a,0xc4,
+ 0x26,0x29,0x29,0x9,0xe,0xf,0x90,0xcd,0x20,0x1a,0x94,0x1c,0x40,0x0,0x64,0x18,
+ 0x28,0xc6,0x41,0xe2,0x20,0x83,0x60,0x86,0xc1,0x68,0x50,0xc0,0x4b,0xcb,0xc8,0x30,
+ 0x2c,0x5c,0xb0,0xd0,0x8,0x20,0x80,0x98,0x80,0xea,0xd9,0x81,0xe9,0x8a,0xe1,0xe5,
+ 0xcb,0x97,0xc,0x25,0x25,0x25,0xc,0xa0,0x8,0x1,0x79,0x83,0x8d,0x8d,0x8d,0x81,
+ 0x9f,0x9f,0x1f,0x6c,0x18,0x88,0xf,0xd2,0x4,0xc2,0x20,0xef,0xc2,0x30,0x88,0xff,
+ 0xf9,0xf3,0x27,0xb0,0x3a,0x31,0x71,0x71,0x43,0x80,0x0,0x62,0x52,0x55,0x55,0x3d,
+ 0xd,0x4c,0xa,0xe0,0x28,0xff,0xf8,0xf1,0x23,0xc3,0xd4,0xa9,0x53,0x19,0x80,0x31,
+ 0xca,0xf0,0xfc,0xf9,0x73,0x70,0xa0,0x6f,0xdb,0xb6,0xd,0x6c,0x11,0xcc,0x40,0x50,
+ 0x24,0x80,0x30,0xcc,0xe0,0x2f,0x5f,0xbe,0x32,0x30,0x1,0x93,0x16,0x2b,0xb,0x33,
+ 0xb,0x40,0x0,0x31,0xb1,0xb0,0xb0,0xac,0x5,0x27,0x38,0x16,0x16,0x6,0x35,0x35,
+ 0x35,0x86,0xe5,0xcb,0x97,0x33,0xdc,0xb8,0x71,0x83,0xe1,0xce,0x9d,0x3b,0xc,0xa0,
+ 0x98,0x6,0xc9,0x81,0x2,0x1a,0xe4,0x4d,0x98,0xeb,0x60,0x18,0x66,0xf0,0xef,0xdf,
+ 0xbf,0x18,0x18,0xfe,0x33,0x30,0x0,0x4,0x10,0x50,0x2d,0xd3,0x7a,0xa0,0xc4,0x43,
+ 0x50,0xf8,0x28,0x29,0x29,0x31,0xe8,0xea,0xea,0x32,0x6c,0xdd,0xba,0x95,0x41,0x4c,
+ 0x4c,0x8c,0xe1,0xd9,0xb3,0x67,0xe0,0x40,0x7,0x65,0x99,0x4f,0x9f,0x3e,0xc1,0xbd,
+ 0x7,0xa,0x53,0x90,0x61,0x20,0xb,0xbe,0x2,0xe9,0x73,0xe7,0x2f,0x32,0xbc,0xfb,
+ 0xf0,0xe1,0x27,0x40,0x0,0xb1,0x78,0x7b,0x7b,0x7f,0x3,0xc6,0xc4,0x15,0x20,0x96,
+ 0x7,0xc5,0x24,0x28,0xfc,0xb6,0x6d,0xdd,0xc6,0x60,0x6a,0x6a,0xa,0x66,0x83,0x34,
+ 0x0,0xb3,0xb,0x3c,0xb1,0x82,0x30,0xc8,0x19,0x3f,0x80,0xe2,0xcf,0x9f,0xbf,0x60,
+ 0x38,0x78,0xf8,0x28,0xc3,0xdb,0xd7,0x2f,0x6f,0x7b,0x7a,0x78,0xe4,0x0,0x4,0x10,
+ 0x13,0x28,0x65,0x7,0x5,0x5,0x4d,0x7b,0xfd,0xe6,0xf5,0x3f,0xe,0x60,0x34,0x3,
+ 0xb3,0x7,0x3,0xaf,0x0,0x1f,0x38,0xac,0x40,0x86,0x80,0xc2,0xa,0x64,0x10,0xc8,
+ 0x3b,0x20,0x57,0x82,0xf0,0xa9,0xd3,0xe7,0x18,0xd6,0x6f,0xd8,0xc4,0x70,0xf0,0xe0,
+ 0xa1,0x5d,0x82,0x7c,0x3c,0x7e,0x72,0xb2,0xb2,0x46,0x1c,0xec,0x1c,0xbb,0x0,0x2,
+ 0x88,0xe9,0xec,0xd9,0xb3,0x20,0xdb,0xb7,0x7d,0xfb,0xfa,0x6d,0xdd,0xe5,0x2b,0x57,
+ 0x18,0x44,0x44,0x44,0x18,0xec,0xec,0x6d,0x19,0xde,0xbc,0x7f,0x3,0x8f,0x49,0x90,
+ 0x6b,0x40,0xde,0xbb,0x7a,0xed,0x6,0xc3,0xf6,0x9d,0x3b,0x7f,0x5d,0xbe,0x72,0xe9,
+ 0x24,0x1b,0xb,0x4b,0x8a,0xa2,0xbc,0x9c,0x2f,0x30,0x8,0x36,0x3,0x13,0xf6,0x97,
+ 0x7f,0xff,0xff,0x31,0x0,0x4,0x10,0xb,0x28,0x80,0x41,0x19,0x3d,0x2c,0x3c,0x7c,
+ 0xf2,0xb2,0x65,0xcb,0x80,0x3e,0x33,0x93,0x93,0x91,0x90,0x66,0xe0,0xe6,0xe4,0x66,
+ 0x0,0x7a,0x9d,0xe1,0x1f,0x30,0x7,0x80,0x22,0xe0,0xf1,0xe3,0x27,0xdf,0x7e,0xfd,
+ 0xfc,0x79,0x8a,0x8d,0x8d,0xb5,0xdb,0xc4,0xc8,0x68,0x1b,0x28,0x57,0xfc,0x4,0xba,
+ 0x12,0x94,0x43,0x40,0xb1,0xf,0x2,0x0,0x1,0xc4,0xac,0xa0,0xa0,0x0,0x76,0xd,
+ 0xb0,0x7c,0x7a,0x28,0x26,0x2a,0x7a,0x74,0xf6,0xac,0xd9,0xe6,0xaf,0x5e,0xbf,0x17,
+ 0x57,0x54,0xd3,0x66,0xb8,0x76,0xf9,0x2,0xc3,0xe1,0xc3,0x47,0x18,0xde,0xbe,0x79,
+ 0x7b,0x48,0x57,0x47,0x3b,0x59,0x4a,0x4a,0xb2,0x9,0xa8,0xf1,0x36,0x28,0xb,0x82,
+ 0x22,0x0,0x14,0x44,0xa0,0x3c,0xc,0x72,0xb9,0x80,0x80,0x0,0x3,0x40,0x0,0x31,
+ 0x82,0x4c,0x46,0x6,0x9e,0x9e,0x9e,0xa9,0x11,0x71,0xa9,0x19,0x1b,0xd7,0xad,0x32,
+ 0xf8,0xfd,0xe3,0xdb,0x26,0x71,0x71,0xb1,0x5e,0x6e,0x6e,0xee,0x33,0xc0,0x84,0xf9,
+ 0x3,0x64,0xe9,0xce,0x9d,0x3b,0x19,0x80,0x69,0x13,0x1c,0xdb,0xa0,0xb0,0x14,0x12,
+ 0x12,0x2,0xbb,0xe,0x64,0x1,0x40,0x0,0xb1,0x30,0xa0,0x81,0x9b,0x37,0x6f,0x89,
+ 0xda,0x58,0x9a,0xee,0xbb,0x73,0xe3,0xd2,0xed,0xe6,0xc6,0x86,0x8,0x98,0x78,0x67,
+ 0x47,0x3b,0xb7,0xa4,0x84,0xc4,0xef,0xbf,0x7f,0xfe,0xfc,0xfa,0x7,0xf4,0x16,0xf,
+ 0x37,0x24,0x18,0x40,0xb1,0xd,0xca,0x2d,0x20,0x3,0x1,0x2,0x8,0xc3,0x30,0x41,
+ 0x41,0x41,0xf5,0xa6,0xfa,0x1a,0xce,0x85,0xb,0x17,0x86,0x21,0x8b,0xdf,0x7d,0xf8,
+ 0xe2,0xeb,0xe3,0x97,0xef,0x18,0xde,0x7c,0xf8,0xc2,0xc0,0x5,0xcc,0x1d,0x5f,0xbe,
+ 0x7c,0x62,0x60,0x63,0x65,0x65,0x10,0x17,0x13,0x65,0x60,0x2,0xe6,0x5d,0x10,0x0,
+ 0x8,0x20,0xb0,0x89,0xc8,0x18,0x8,0xe2,0xd0,0xc5,0x88,0xc5,0x0,0x1,0x6,0x0,
+ 0xc9,0xba,0xe3,0x6,0xeb,0x52,0x42,0x4d,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,
+ 0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/add.png
+ 0x0,0x0,0x3,0x3,
+ 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,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x2,0x95,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0xfc,0xff,0xff,0x3f,0x3,0x32,0x90,0x97,0x97,0x77,0x63,0x65,0x65,0x75,0x67,0x61,
+ 0x61,0xb1,0x2,0x62,0x4d,0x26,0x26,0x26,0x90,0xf0,0xf5,0x7f,0xff,0xfe,0x1d,0xfb,
+ 0xf3,0xe7,0xcf,0xce,0x1b,0x37,0x6e,0xec,0x42,0x56,0xf,0x10,0x40,0x8c,0x30,0x3,
+ 0x64,0x64,0x64,0x14,0xd8,0xd8,0xd8,0x72,0x38,0x38,0x38,0xd2,0xb9,0xb8,0xb8,0x78,
+ 0x80,0x34,0x3,0xd0,0x20,0x6,0x66,0x66,0x66,0xb0,0xfc,0xdf,0xbf,0x7f,0x19,0x7e,
+ 0xff,0xfe,0xfd,0xe5,0xc7,0x8f,0x1f,0x33,0xbf,0x7d,0xfb,0x36,0xe5,0xda,0xb5,0x6b,
+ 0xf,0x40,0xe2,0x0,0x1,0x4,0x36,0x0,0xa4,0x99,0x9d,0x9d,0xbd,0x99,0x87,0x87,
+ 0x27,0x6,0x88,0x19,0x40,0x58,0x59,0x59,0x99,0x41,0x42,0x42,0x82,0xe1,0xdd,0xbb,
+ 0x77,0xc,0x6f,0xdf,0xbe,0x65,0x0,0x6a,0x2,0x19,0xc0,0xf0,0xf3,0xe7,0x4f,0x86,
+ 0x2f,0x5f,0xbe,0x2c,0x1,0xe2,0xda,0x8b,0x17,0x2f,0x3e,0x0,0x8,0x20,0x16,0x90,
+ 0x29,0x20,0x9b,0x41,0x9a,0xf9,0xf9,0xf9,0x19,0xf8,0xf8,0xf8,0x18,0x38,0x39,0x39,
+ 0x19,0x78,0x79,0x79,0x19,0x92,0x92,0x92,0x18,0xb8,0xb9,0xb9,0x19,0xba,0xbb,0xbb,
+ 0x19,0x1e,0x3f,0x7e,0xcc,0x0,0xf4,0x6,0x3,0xd0,0x22,0x90,0xcb,0x62,0x80,0x2e,
+ 0x7b,0x9,0xd4,0x5a,0x2,0x10,0x40,0x2c,0x20,0x3f,0x3,0x15,0xa5,0x83,0x6c,0x5,
+ 0x69,0x6,0xd1,0x20,0xa7,0x83,0xbc,0x20,0x2e,0x2e,0xce,0x0,0xa,0x3,0x90,0x37,
+ 0x40,0x34,0xc,0x43,0xbd,0x95,0x6e,0x6d,0x6d,0xbd,0xb,0x20,0x80,0x58,0x40,0x1,
+ 0x6,0xf2,0x33,0x48,0x23,0xc8,0x66,0x90,0x66,0x98,0x42,0xa0,0x7f,0x41,0xae,0x63,
+ 0x0,0x6,0x1e,0x3c,0xd0,0x40,0xe2,0x20,0x35,0x40,0xb5,0x3c,0x40,0x2f,0xb9,0x3,
+ 0x4,0x10,0xb,0x28,0xb4,0x41,0xb6,0x81,0x9c,0xaf,0xa3,0xa3,0x3,0x96,0x4,0x5,
+ 0x18,0xc8,0x35,0x1f,0x3f,0x7e,0x64,0x0,0xca,0x33,0x88,0x88,0x88,0x30,0x0,0x2d,
+ 0x1,0x6b,0xfe,0xfa,0xf5,0x2b,0xc3,0xcb,0x97,0x2f,0x61,0xde,0xb1,0x2,0x8,0x20,
+ 0x90,0x1,0x9a,0x20,0x4d,0x20,0x9c,0x97,0x97,0x7,0xf6,0x3b,0x28,0x60,0x9f,0x3f,
+ 0x7f,0xe,0x66,0x83,0x40,0x78,0x78,0x38,0x38,0x40,0x19,0x19,0x19,0xc1,0x1,0x5a,
+ 0x54,0x54,0x4,0x73,0x89,0x26,0x40,0x0,0x31,0xc1,0xfc,0x4,0xc2,0xa0,0x10,0x6,
+ 0x1,0x10,0xd,0x32,0x4,0x64,0x3b,0xcc,0x4b,0x20,0xcd,0x20,0xc,0x12,0x7,0xd9,
+ 0xe,0x62,0x83,0xc4,0x1,0x2,0x8,0x14,0xb,0xd7,0x81,0xd8,0x2,0x24,0xd8,0xd5,
+ 0xd5,0x5,0xd6,0x4,0xf2,0x2,0x28,0x0,0xe3,0xe3,0xe3,0xc1,0xe1,0x32,0x77,0xee,
+ 0x5c,0x86,0x17,0x2f,0x5e,0xc0,0xc3,0x3,0x96,0x36,0x40,0x7a,0x1,0x2,0x88,0x5,
+ 0x94,0xc2,0x80,0x1a,0x2c,0xbe,0x7f,0xff,0xce,0xf0,0xea,0xd5,0x2b,0x6,0x68,0xca,
+ 0x63,0x80,0xa5,0x7,0x50,0xf8,0x80,0xfc,0xc,0x8c,0x77,0x94,0x80,0x4,0x59,0x8,
+ 0xd2,0xb,0x10,0x40,0x4c,0xa0,0xe4,0x9,0x4a,0x61,0xa0,0x44,0x2,0x12,0x84,0x1,
+ 0x10,0x1b,0xa4,0x19,0xe4,0x54,0x90,0xab,0xd0,0x1,0x50,0x1e,0xa4,0x67,0x27,0x40,
+ 0x0,0x31,0x81,0xd2,0x36,0x28,0x79,0x82,0xfc,0xfd,0xeb,0xd7,0x2f,0xb8,0x21,0xa0,
+ 0xd0,0x6,0xb9,0xe8,0xfd,0xfb,0xf7,0x60,0x2f,0xa1,0x69,0x6,0xa9,0x9d,0xb9,0x69,
+ 0xd3,0xa6,0x5d,0x0,0x1,0x4,0x36,0x1a,0x94,0xb6,0x81,0x51,0x22,0xe,0x4d,0x61,
+ 0xe0,0x80,0x3,0x69,0xce,0xcd,0xcd,0x5,0x7,0x1a,0xc8,0x25,0x30,0x7f,0x83,0x34,
+ 0x3,0x6d,0x5e,0x2,0xf4,0xf2,0x14,0x10,0x1f,0x20,0x80,0xe0,0x99,0x49,0x5f,0x5f,
+ 0x5f,0x1,0x98,0x16,0x72,0x80,0xf1,0x9f,0xe,0x4a,0x24,0xa0,0x0,0x83,0x85,0x3e,
+ 0x8,0x40,0x43,0xff,0xb,0xc8,0x66,0x90,0xe6,0x2d,0x5b,0xb6,0x80,0x33,0x13,0x40,
+ 0x0,0x31,0xa2,0x67,0x67,0x60,0xf2,0x74,0x3,0x6,0x9e,0x3b,0x28,0x91,0x40,0xe3,
+ 0x19,0x9e,0x9d,0x41,0x7e,0x6,0x39,0x1b,0x59,0x3d,0x40,0x80,0x1,0x0,0x18,0x4c,
+ 0x2e,0xe9,0x19,0xc4,0xa1,0x62,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,
+ 0x60,0x82,
+ // /home/matthew/pencil_dev/icons/polyline.png
+ 0x0,0x0,0x1,0xae,
+ 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,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,0xd8,
+ 0xeb,0xf5,0x1c,0x14,0xaa,0x0,0x0,0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x6d,
+ 0x98,0x0,0x0,0x73,0x8e,0x0,0x0,0xea,0x48,0x0,0x0,0x86,0x0,0x0,0x0,0x77,
+ 0xef,0x0,0x0,0xd0,0xf0,0x0,0x0,0x32,0xf7,0x0,0x0,0x1c,0x74,0xb6,0xd2,0x6c,
+ 0xb,0x0,0x0,0x1,0x24,0x49,0x44,0x41,0x54,0x78,0xda,0x62,0x60,0x60,0x60,0x48,
+ 0x6,0x62,0x2b,0x6,0x34,0xf0,0xff,0xff,0x7f,0xbc,0x18,0x8,0x42,0x80,0xf8,0x2d,
+ 0x40,0x0,0x81,0x18,0x1b,0x81,0xf8,0x3,0x10,0xaf,0x3,0x62,0x2d,0x62,0xc,0x0,
+ 0x82,0x28,0x20,0x7e,0x8,0xc4,0x9f,0x0,0x2,0x8,0xc4,0xd1,0x5,0xe2,0x47,0x40,
+ 0x5c,0xa,0x35,0x71,0xe,0x10,0xcb,0xe1,0xd1,0x9c,0x0,0xd5,0xac,0x8,0xb2,0x18,
+ 0x20,0x80,0x60,0x16,0x6e,0x81,0x7a,0x85,0x1f,0x88,0xdb,0xa1,0x6,0xf5,0x2,0xb1,
+ 0x10,0x9a,0xe6,0x64,0x98,0x66,0x28,0xff,0x3,0x40,0x0,0xc1,0xc,0xb0,0x4,0xe2,
+ 0x1b,0x40,0xcc,0xc,0xe5,0x4b,0x0,0xf1,0x34,0xa8,0x41,0x15,0x40,0xcc,0x3,0xc4,
+ 0x69,0x40,0x7c,0xf,0xd9,0x75,0x20,0x3,0x0,0x2,0x8,0x39,0xdc,0xe,0x40,0x3,
+ 0x6,0x1e,0x6,0x40,0xa0,0x2,0xc4,0x2b,0x80,0xf8,0xd,0x10,0xdf,0x4,0x62,0x69,
+ 0x34,0x17,0x7d,0x0,0x8,0x20,0x64,0x3,0x3c,0x80,0xf8,0xc,0xb6,0x40,0x4,0x2,
+ 0x3d,0x90,0xab,0xb0,0x84,0xc7,0x7,0x80,0x0,0x42,0x8f,0xbd,0x33,0x50,0x83,0x8,
+ 0x46,0x23,0xd4,0x80,0x8f,0x0,0x1,0x84,0x6e,0x0,0xc8,0xb,0x4b,0xf1,0x19,0x0,
+ 0xa,0x58,0x20,0xce,0x1,0xe2,0x4b,0x40,0x7c,0xe,0x20,0x80,0xd0,0xd,0x60,0x86,
+ 0x5,0x24,0x16,0x8d,0xf6,0x50,0xc3,0x3f,0x40,0xc3,0xc5,0x15,0x24,0xe,0x10,0x40,
+ 0xc,0xb8,0x0,0x54,0x52,0x2,0x1a,0xb,0xb7,0x81,0xf8,0x2a,0x10,0x17,0xa1,0x47,
+ 0x2d,0x40,0x0,0x11,0xf2,0xe3,0x79,0x20,0x9e,0xf,0x8a,0x66,0x5c,0x6a,0x0,0x2,
+ 0x88,0x11,0xaf,0x33,0x88,0x0,0x0,0x1,0x44,0xb1,0x1,0x0,0x1,0x44,0xb1,0x1,
+ 0x0,0x1,0x44,0xb1,0x1,0x0,0x1,0x6,0x0,0x58,0x49,0x16,0x83,0xc9,0xda,0xd7,
+ 0xdf,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/arrow.png
+ 0x0,0x0,0x1,0xe3,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0xe,0x0,0x0,0x0,0xe,0x8,0x6,0x0,0x0,0x0,0x1f,0x48,0x2d,0xd1,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x1,0x75,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0xf8,0xff,0xff,0x3f,0x3,0x8,0x8b,0x8b,0x8b,0xff,0x3f,0x74,0xe8,0xd0,0x62,0x18,
+ 0x9f,0x10,0x6,0x8,0x20,0x38,0x43,0x5b,0x5b,0xfb,0x3f,0x54,0xf3,0xc,0x62,0x34,
+ 0x2,0x4,0x10,0x9c,0xe1,0xe4,0xe4,0xf4,0xdf,0xc7,0xc7,0xe7,0xbf,0x82,0x82,0xc2,
+ 0xff,0x3,0x7,0xe,0x10,0xd4,0xc,0x10,0x40,0x4c,0xc,0x50,0xc0,0xc7,0xc7,0xc7,
+ 0x0,0xd4,0x4,0x72,0x32,0x43,0x7c,0x7c,0x7c,0xfa,0x91,0x23,0x47,0x36,0x30,0xe0,
+ 0x1,0x0,0x1,0x4,0xd7,0xc8,0xc1,0xc1,0xc1,0xc0,0xc3,0xc3,0xc3,0xf0,0xe5,0xcb,
+ 0x17,0x86,0x6f,0xdf,0xbe,0x81,0x5c,0xe0,0x7f,0xec,0xe8,0xd1,0xe5,0xb8,0x34,0x2,
+ 0x4,0x10,0x5c,0x23,0x33,0x33,0x33,0x3,0x2b,0x2b,0x2b,0xc3,0xfb,0xf7,0xef,0x19,
+ 0x3e,0x7c,0xf8,0xc0,0xf0,0xfb,0xf7,0x6f,0x6,0x6b,0x1b,0x9b,0x88,0xe3,0xc7,0x8f,
+ 0x63,0xb5,0x19,0x20,0x80,0x50,0x6c,0x64,0x67,0x67,0x67,0xf8,0xf5,0xeb,0x17,0xc3,
+ 0xdf,0xbf,0x7f,0xe1,0xa,0xac,0xac,0xac,0xfc,0x4f,0x9e,0x3c,0xb9,0x10,0x5d,0x23,
+ 0x40,0x0,0xc1,0x35,0x82,0x3c,0x7c,0xed,0xda,0x35,0x86,0x7f,0xff,0xfe,0x81,0x31,
+ 0x32,0xb0,0xb0,0xb0,0x88,0x43,0xd7,0x8,0x10,0x40,0x2c,0x30,0x6,0x23,0x23,0x23,
+ 0xc3,0xeb,0xd7,0xaf,0x19,0x58,0x58,0x20,0x42,0x6c,0x6c,0x6c,0xc,0x5b,0x36,0x6f,
+ 0x7e,0xc5,0xcb,0xc7,0xf7,0x9e,0x89,0x89,0xe9,0x15,0xba,0x46,0x80,0x0,0x62,0x42,
+ 0xe6,0x7c,0xfa,0xf4,0x89,0x61,0xce,0x9c,0x39,0xaf,0xcd,0xcd,0xcd,0xc1,0x4e,0xde,
+ 0xb2,0x75,0xeb,0x2f,0x6e,0x6e,0xee,0x6b,0x66,0x66,0x66,0x76,0xe8,0x1a,0x1,0x2,
+ 0x8,0x1e,0x2f,0x21,0x21,0x21,0xff,0x8f,0x1d,0x3b,0x76,0x17,0xc4,0x9e,0x3a,0x75,
+ 0xea,0x2a,0x90,0xeb,0x41,0x9,0xe2,0xec,0x99,0x33,0xf7,0xb0,0xc5,0x23,0x40,0x0,
+ 0xe1,0x8c,0x60,0x75,0x75,0xf5,0xff,0x20,0xcd,0xb5,0xb5,0xb5,0xff,0x9f,0x3f,0x7f,
+ 0xbe,0x7,0x5d,0x1e,0x20,0x80,0x70,0x6a,0x9c,0x32,0x65,0xca,0x46,0xa0,0x7f,0xff,
+ 0xcb,0xc8,0xc8,0xfc,0x7f,0xf1,0xfc,0x79,0x13,0xba,0x3c,0x40,0x0,0xe1,0x4f,0x8f,
+ 0x40,0x1b,0x41,0x1a,0x9f,0x3c,0x79,0x72,0x8,0x5d,0xe,0x20,0xc0,0x0,0xe8,0x78,
+ 0x54,0xc0,0xc6,0x93,0x38,0x12,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,
+ 0x60,0x82,
+ // /home/matthew/pencil_dev/icons/logo.png
+ 0x0,0x0,0x63,0x26,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x1,0x3e,0x0,0x0,0x0,0x7b,0x8,0x2,0x0,0x0,0x0,0x62,0xb8,0x7b,0xc,
+ 0x0,0x0,0xb,0x33,0x69,0x43,0x43,0x50,0x49,0x43,0x43,0x20,0x50,0x72,0x6f,0x66,
+ 0x69,0x6c,0x65,0x0,0x0,0x78,0x9c,0x95,0x97,0x67,0x58,0x14,0xd7,0x1e,0x87,0x7f,
+ 0x43,0x15,0x41,0x40,0x44,0x10,0x41,0x58,0x10,0x10,0xa4,0x77,0x11,0xa5,0x57,0xe9,
+ 0x4b,0x91,0xaa,0x2e,0x5b,0x60,0x91,0x2d,0xec,0x2e,0x4b,0x15,0xc4,0x86,0x51,0x63,
+ 0x4b,0xec,0x1a,0x54,0x22,0x82,0x90,0x60,0x41,0x29,0x6a,0x6c,0x10,0x2b,0x62,0xec,
+ 0x3d,0x62,0x45,0xa2,0x20,0xa2,0xe2,0xb5,0xed,0xfd,0x30,0x4b,0x11,0xaf,0xc6,0x7b,
+ 0xf6,0xcb,0x99,0x79,0x4e,0x99,0xd9,0xf7,0xfd,0xfd,0xe7,0x39,0x80,0x7a,0x3b,0x8d,
+ 0xcf,0xcf,0x90,0x1,0xc0,0xe1,0x8a,0x4,0xd4,0x0,0x6f,0x4a,0x5c,0x7c,0x2,0x45,
+ 0xf1,0x1a,0x14,0xa0,0x8e,0x51,0x70,0x81,0x2b,0x8d,0x2e,0xe4,0x7b,0x45,0x44,0x84,
+ 0xe0,0xab,0xed,0xcd,0x55,0x10,0x0,0x70,0xc9,0x8a,0xc6,0xe7,0x67,0x7c,0x7d,0xdc,
+ 0xff,0x6c,0xaa,0x82,0xb8,0xf8,0x4,0x80,0xb0,0x4,0xa0,0x99,0x4a,0xf6,0x3d,0x1,
+ 0x68,0xa6,0x90,0xfd,0x68,0x0,0x9a,0xd9,0x22,0xbe,0x8,0x20,0xd2,0x0,0x68,0xd2,
+ 0xd3,0x68,0xc,0x80,0x28,0x0,0x60,0x29,0x88,0xa6,0xfa,0x0,0x44,0x5,0x0,0xd5,
+ 0x54,0xb2,0x5f,0xf,0x40,0x35,0x85,0xec,0x9f,0x2,0xa0,0x2a,0xa6,0xa7,0x8a,0x0,
+ 0xe2,0x3a,0xa0,0xa0,0xc1,0x65,0xb0,0xb9,0x80,0xe2,0x33,0x40,0xc1,0x9d,0xc1,0x14,
+ 0xd2,0x1,0x55,0x4b,0x0,0xc,0x86,0x90,0xce,0x1,0x54,0x57,0x2,0xc4,0x27,0xe,
+ 0x87,0xc7,0x0,0xd4,0x57,0x2,0x30,0xa3,0xf3,0x5,0x22,0x40,0xbd,0x1e,0x80,0x55,
+ 0x5c,0x7c,0x2,0x85,0x7c,0x64,0xfa,0x44,0xc0,0x45,0x19,0x90,0x7b,0x3f,0x70,0x8f,
+ 0xa3,0xb,0xec,0x7e,0x1,0xe8,0x7f,0x1c,0xb8,0x67,0xba,0xa,0x18,0x43,0x1,0x6a,
+ 0x2c,0x7,0xee,0xf5,0x50,0x41,0x0,0x20,0xb4,0x5a,0x85,0x2c,0x7,0x7b,0x0,0x0,
+ 0xa1,0xe2,0xd,0xc8,0xdf,0x95,0x48,0x7a,0x4c,0x1,0xc5,0xd5,0xc0,0xc7,0x55,0x12,
+ 0xc9,0xfb,0xed,0x12,0xc9,0xc7,0x32,0x40,0xf6,0x36,0x70,0x34,0x83,0x9e,0x25,0x10,
+ 0x4b,0xff,0x2f,0x82,0x68,0x1,0xfe,0xed,0x9a,0x7c,0x67,0x69,0x93,0x25,0x0,0x19,
+ 0x40,0x55,0x4f,0xe3,0xa1,0xf6,0xd8,0xb1,0xba,0x7a,0x66,0x6,0x3a,0x86,0xc6,0x46,
+ 0x86,0xc6,0xe6,0xa6,0x94,0x9,0x26,0xe6,0x96,0x13,0xcd,0x2d,0x2d,0xad,0x2c,0xac,
+ 0xad,0x6c,0xac,0x6c,0x6d,0xec,0x6c,0x1c,0xec,0x1c,0x9d,0x9c,0x9c,0x9d,0x1d,0x9d,
+ 0x6b,0x5d,0x5c,0x5d,0x9d,0x27,0xbb,0xb9,0x4d,0x99,0xea,0xee,0x3e,0xd5,0xc3,0xd3,
+ 0xd3,0xd3,0xcb,0xcb,0xc7,0xd7,0xd7,0xc7,0xcf,0xcf,0xdf,0x3f,0xc0,0x3f,0x30,0x20,
+ 0x28,0x70,0xda,0xb4,0xe0,0xe0,0x90,0xd0,0xd0,0xd0,0xb0,0xf0,0xf0,0xb0,0x88,0xc8,
+ 0xc8,0x48,0x6a,0x64,0x54,0x54,0x74,0x74,0x4c,0x6c,0x6c,0xec,0xf4,0xe9,0x71,0xf1,
+ 0xf1,0xf1,0x9,0xf1,0x89,0x89,0x89,0xb7,0x92,0x92,0x92,0x93,0x67,0x24,0xcf,0x9c,
+ 0x39,0x6b,0x16,0x8d,0x96,0x92,0x92,0x72,0x9f,0xce,0x60,0x30,0x98,0xc,0x16,0x2b,
+ 0x35,0x35,0xf5,0x49,0x1a,0x9b,0xcd,0x4e,0x4f,0x9f,0x3d,0x7b,0xf6,0x3f,0x19,0x19,
+ 0x1c,0xe,0x97,0xcb,0xe3,0xf1,0xba,0xf8,0xfc,0xcc,0x4c,0x81,0x40,0x28,0x14,0xf6,
+ 0x88,0x44,0x59,0x59,0x62,0xb1,0xf8,0x4d,0x76,0x76,0x4e,0x76,0x6e,0x6e,0x5e,0x5e,
+ 0xde,0xbb,0xfc,0x82,0x82,0x82,0x39,0x85,0x85,0x85,0x85,0x9f,0x8a,0x8a,0xe6,0x16,
+ 0x15,0x17,0xcf,0x9b,0x37,0x5f,0x66,0xfe,0xfc,0x5,0xb,0x16,0x2e,0x5c,0xb4,0xa8,
+ 0xa4,0x64,0xb1,0xe2,0xe2,0xc5,0x3f,0xfc,0xb0,0x64,0xc9,0xd2,0xa5,0xcb,0x96,0xfe,
+ 0xa8,0xf2,0xe3,0x8f,0xcb,0x97,0xaf,0x58,0xb1,0x72,0xe5,0xaa,0x55,0xab,0x47,0xae,
+ 0x5e,0xfd,0xd3,0x4f,0x3f,0xff,0xbc,0x66,0xcd,0xda,0xb5,0xeb,0xb4,0xd6,0xad,0x5b,
+ 0xbf,0x7e,0xc3,0x86,0x8d,0x1b,0x37,0x8d,0xdd,0xb4,0x69,0xf3,0xe6,0x2d,0x5b,0x7e,
+ 0xf9,0xa5,0x54,0xbf,0xb4,0x74,0xeb,0xd6,0x6d,0xdb,0xb6,0x6f,0x2f,0x33,0x2a,0x2b,
+ 0xfb,0xf5,0xd7,0x1d,0x3b,0xca,0x4d,0xca,0xcb,0x77,0xee,0xac,0xa8,0xa8,0xac,0xdc,
+ 0x65,0xbe,0x6b,0x57,0x55,0x55,0x75,0xf5,0x6f,0x96,0xbf,0xfd,0xf6,0xfb,0xef,0x35,
+ 0x35,0xbb,0x6d,0x76,0xef,0xde,0xb3,0x67,0xef,0xde,0x7d,0xf6,0xfb,0xf6,0xd5,0xd6,
+ 0xee,0xdf,0x7f,0xc0,0xe9,0xc0,0x81,0xba,0xba,0xfa,0xfa,0x86,0x49,0xd,0xd,0x8d,
+ 0x8d,0x7,0xf,0x1e,0x72,0x3b,0x74,0xe8,0xf0,0xe1,0x3f,0xfe,0x38,0xe2,0x7e,0xe4,
+ 0xc8,0xd1,0xa3,0xc7,0x8e,0x1d,0xf7,0x3a,0x7e,0xfc,0xc4,0x89,0xa6,0xa6,0x66,0xdf,
+ 0xe6,0xe6,0x3f,0xff,0x3c,0xe9,0x7f,0xf2,0xe4,0xa9,0x53,0xa7,0x4f,0x9f,0x9,0x3a,
+ 0x73,0xe6,0xec,0xd9,0x73,0xe7,0x5a,0x42,0x5a,0x5a,0xce,0x9f,0x6f,0x6d,0xbd,0x10,
+ 0x7e,0xe1,0xc2,0x5f,0x7f,0x5d,0xbc,0x78,0x89,0x7a,0xe9,0xd2,0xe5,0xcb,0x57,0xae,
+ 0x5c,0x8d,0xb9,0x7a,0xf5,0xda,0xb5,0xeb,0xd7,0x6f,0xc4,0xdd,0xb8,0x71,0xf3,0xe6,
+ 0xad,0x5b,0xb7,0x6f,0xdf,0x49,0xba,0x73,0xe7,0xee,0xdd,0xbf,0xff,0xbe,0x77,0xaf,
+ 0x6d,0x56,0x5b,0xdb,0xfd,0xfb,0xf,0x1e,0x3c,0x7c,0xf8,0xe8,0xd1,0xe3,0xc7,0x4f,
+ 0x9e,0xb4,0xb7,0x3f,0x7d,0xda,0xd1,0xf1,0xcf,0x3f,0xcf,0x9e,0x3d,0x7f,0xde,0xd9,
+ 0xd9,0xd5,0xf5,0xe2,0x45,0x77,0xf7,0xcb,0x97,0x3d,0x3d,0xaf,0x5f,0xbf,0x79,0xd3,
+ 0xdb,0xfb,0xf6,0xed,0xbb,0x77,0xef,0xdf,0x7f,0xfc,0x28,0x91,0x0,0x4a,0xea,0x2a,
+ 0xcf,0xd5,0x35,0x34,0x46,0x8d,0xd6,0xd3,0xd6,0xd0,0xa1,0xe8,0xea,0x8c,0xa3,0xe8,
+ 0xeb,0x52,0xf4,0xc,0x4d,0xc7,0x1b,0x19,0x1b,0x9b,0x1a,0x4d,0x30,0x35,0x33,0x9d,
+ 0x68,0x6e,0x61,0x6e,0x69,0x61,0x65,0x6d,0x6d,0x63,0x63,0x65,0xbb,0xc0,0xce,0xde,
+ 0xde,0xce,0xd1,0xc9,0xc9,0xc9,0xd9,0xc5,0xc5,0xd9,0x75,0xf2,0xe4,0xc9,0x6e,0x6e,
+ 0x53,0xa6,0x4e,0x9d,0xe2,0xee,0xe1,0xe9,0xe1,0xe5,0xe9,0xed,0xe5,0xe3,0xed,0xeb,
+ 0xeb,0xe7,0xe7,0x1f,0x10,0x10,0x10,0x18,0x14,0x14,0x38,0x2d,0x38,0x38,0x38,0x24,
+ 0x38,0x34,0x34,0x2c,0x2c,0xac,0x25,0x3c,0x3c,0x22,0x22,0x92,0x4a,0xa5,0x46,0x51,
+ 0xa3,0xa3,0x63,0x62,0x62,0xae,0xc4,0xc6,0x4e,0x8f,0x8d,0x8b,0x8b,0x8f,0x4f,0x48,
+ 0x48,0xb8,0x99,0x98,0x98,0x94,0x4c,0xfa,0x30,0xf3,0x6f,0x52,0x8,0x3a,0x9d,0xfe,
+ 0x80,0xc1,0x60,0x32,0x59,0x2c,0xd6,0xe3,0xd4,0x54,0xd2,0x88,0xf4,0x8e,0xd9,0xb3,
+ 0x33,0x38,0x1c,0xe,0xe7,0x39,0x97,0xcb,0xe3,0xf1,0xf9,0x99,0xfc,0xcc,0x6e,0x81,
+ 0x50,0x28,0x14,0x89,0x44,0xaf,0xb2,0xc4,0x62,0x71,0xb6,0x38,0xbb,0x37,0x27,0x47,
+ 0xea,0x44,0x7e,0x41,0xc1,0x9c,0x39,0x52,0x27,0xe6,0xe,0x71,0x42,0xa1,0xa4,0x44,
+ 0xea,0xc4,0xf0,0xa5,0x4b,0x97,0x2d,0x93,0x3a,0xa1,0xb6,0x72,0xe5,0xaa,0x55,0x52,
+ 0x27,0x34,0xd7,0xac,0x59,0xbb,0x56,0xea,0x84,0xce,0xc6,0x8d,0xdf,0x70,0xa2,0x7c,
+ 0xe7,0xce,0x8a,0x9,0x15,0x15,0x95,0x95,0xbb,0x76,0x55,0x55,0x55,0x5b,0x54,0x57,
+ 0x7f,0xc5,0x88,0x3,0x75,0xce,0x75,0x75,0xf5,0xf5,0xd,0xd,0x8d,0x8d,0x7,0x27,
+ 0x1f,0x3c,0x38,0xc4,0x87,0xe3,0x27,0xbc,0x4f,0x9c,0x68,0x6a,0xfa,0xcc,0x86,0x33,
+ 0x67,0xa7,0x9d,0x3d,0x7b,0xee,0x5c,0x4b,0xcb,0xf9,0xf3,0xad,0x61,0xad,0xad,0x43,
+ 0x5c,0x18,0x6a,0x42,0x9f,0x7,0xdf,0xb0,0xe0,0x45,0xd7,0x80,0x3,0x6f,0xdf,0xbe,
+ 0x7b,0xf7,0xe1,0x83,0x44,0x2,0xc,0x1f,0x49,0xf2,0xd7,0xd4,0xd5,0x1a,0xa9,0xad,
+ 0xaf,0xa3,0x3d,0xd6,0x40,0x4f,0x6b,0x9c,0xae,0xbe,0xa1,0x81,0x3e,0x85,0x62,0x68,
+ 0x60,0x64,0x38,0xde,0xd0,0x78,0xbc,0xf1,0x36,0x13,0x63,0xd3,0x9,0x13,0xcc,0xcc,
+ 0x4c,0xcd,0xca,0xcd,0x2d,0x2c,0xcc,0x2c,0xad,0xac,0xad,0x6d,0x6c,0x6d,0x6d,0xec,
+ 0xec,0x1d,0x1c,0x1c,0x1d,0x9d,0x9c,0x9d,0x9d,0x5c,0x5c,0x26,0x4d,0x72,0x9d,0xe4,
+ 0xe6,0x3a,0xc5,0x6d,0xea,0x54,0x77,0x77,0xf,0x4f,0x4f,0x4f,0x2f,0x6f,0x6f,0x2f,
+ 0x1f,0x5f,0x5f,0x5f,0x3f,0x5f,0x7f,0xff,0x80,0x80,0xc0,0xc0,0xc0,0x53,0x41,0x41,
+ 0xfd,0x3e,0x84,0x87,0x87,0x47,0x44,0x44,0x5c,0x88,0x8c,0xa4,0x52,0xa3,0xa2,0xa2,
+ 0xa3,0x63,0xa2,0x7,0x7c,0x88,0xbf,0x91,0x90,0x98,0x98,0x98,0x94,0x94,0x9c,0x9c,
+ 0x7c,0x67,0xc6,0xc,0xb2,0x42,0xd0,0xda,0x52,0x52,0xe8,0x74,0x6,0x83,0xc9,0x64,
+ 0x3e,0x62,0xb1,0x52,0x53,0xd3,0xd2,0xd2,0xda,0xd9,0xec,0x74,0xb6,0xb4,0x46,0x70,
+ 0x7,0xd5,0x88,0x4c,0xc1,0x4b,0xa1,0x50,0x24,0xcc,0xca,0xca,0x7a,0x2d,0x16,0x67,
+ 0x67,0xe7,0xe4,0xe4,0xe6,0xe6,0xfe,0x27,0x2f,0x2f,0x3f,0xbf,0xa0,0x60,0x4e,0xc1,
+ 0x9c,0x8f,0x85,0x85,0x52,0x1f,0x88,0x79,0xf3,0xa4,0x3e,0xc8,0x2f,0x5a,0xd4,0xef,
+ 0xc3,0xd2,0x65,0xca,0xfd,0x3e,0xc,0xad,0x11,0xeb,0xd6,0x6b,0x4b,0x6b,0xc4,0x97,
+ 0x36,0x94,0xfd,0x3a,0xbe,0xdf,0x86,0xc1,0xf5,0xe1,0x73,0x17,0xf6,0xd5,0xd6,0xee,
+ 0x77,0xdc,0xbf,0x5f,0x5a,0x1b,0x1a,0x1a,0x5d,0x1b,0x1b,0xfb,0x4d,0x38,0x72,0xd4,
+ 0x43,0x6a,0xc2,0x40,0x5d,0xf8,0xd2,0x3,0xd2,0x82,0xc8,0x8b,0x17,0x3f,0xb3,0xe0,
+ 0x5f,0x1d,0x20,0xd,0xe8,0xea,0x7c,0xf1,0xe2,0x4b,0xfe,0xe4,0xb7,0xf,0x0,0x14,
+ 0x9c,0x81,0xcd,0xd5,0x40,0x9c,0x3a,0x40,0xe5,0x2,0xcb,0x35,0x81,0x9,0x1c,0x40,
+ 0xab,0x2,0x88,0x18,0x1,0x44,0xbb,0x42,0xc6,0xc1,0x1,0xc4,0xbb,0x36,0x10,0xd7,
+ 0x86,0xf7,0x7d,0x3f,0x6,0x35,0x42,0xfa,0x93,0x81,0xc,0x64,0x20,0xb,0x59,0xc8,
+ 0x41,0x1,0x8a,0x50,0x82,0x32,0x46,0x40,0x1d,0xa3,0xa0,0x5,0x5d,0x50,0x60,0x2,
+ 0x6b,0xb8,0xc0,0x1d,0x7e,0x8,0x45,0x3c,0x98,0x28,0xc6,0x4a,0x94,0x62,0x37,0x8e,
+ 0xe1,0x11,0xde,0x12,0xca,0x84,0x13,0x11,0x4c,0xd0,0x88,0x95,0xc4,0x31,0xe2,0xb5,
+ 0x8c,0x85,0xc,0x43,0xa6,0x58,0xa6,0x54,0xe6,0xb6,0xac,0x9e,0xec,0x4c,0xd9,0xe,
+ 0x39,0x35,0x39,0x47,0xb9,0x22,0xb9,0x16,0xb9,0xd7,0xf2,0xe3,0xe4,0xf9,0xf2,0x4d,
+ 0xa,0xba,0xa,0x22,0x85,0x6d,0xa,0xad,0x8a,0x56,0x8a,0xcb,0x14,0x3b,0x87,0x51,
+ 0x87,0xd5,0x2b,0x51,0x94,0x96,0x28,0xbd,0x19,0xce,0x18,0x7e,0x45,0x39,0x40,0xf9,
+ 0x90,0x8a,0xbd,0x4a,0xd5,0x8,0xd3,0x11,0xdb,0x55,0xd,0x55,0xb7,0xa9,0x19,0xab,
+ 0x55,0xaa,0xdb,0xa8,0xd7,0x8f,0xf4,0x19,0xd9,0xaa,0xd1,0x39,0x6a,0xae,0xe6,0x68,
+ 0xcd,0xaa,0xd1,0x3e,0xa3,0xef,0x68,0xe5,0x6a,0x1f,0x18,0x13,0x37,0xe6,0x83,0xce,
+ 0xb6,0xb1,0x81,0xba,0x9b,0xf5,0x82,0xf4,0xde,0x8e,0xab,0x30,0x50,0x33,0x68,0xa6,
+ 0xcc,0x31,0x74,0x31,0xda,0x3d,0x9e,0x67,0x6c,0x6b,0xdc,0x63,0x5a,0x38,0xc1,0xdf,
+ 0x4c,0xdd,0xbc,0x72,0x62,0xae,0xc5,0x34,0x4b,0x3d,0xab,0x93,0xd6,0x5b,0x6d,0x72,
+ 0x6d,0x63,0xec,0x35,0xec,0x7b,0x1c,0xae,0x38,0x36,0x38,0x97,0xb8,0x64,0x4e,0x4a,
+ 0x72,0xd,0x9a,0x3c,0x69,0xca,0xd8,0xa9,0xaa,0xee,0xb2,0xee,0xef,0x3d,0x5e,0x79,
+ 0x75,0x78,0xb7,0xfb,0xb4,0xfb,0x3e,0xf5,0x7b,0x16,0xd0,0x1b,0x28,0x99,0xa6,0x14,
+ 0xac,0x19,0x62,0x18,0xe6,0x19,0x4e,0x8d,0x60,0x45,0xe6,0x47,0x55,0x45,0x37,0xc7,
+ 0xb4,0xc5,0x4a,0xe2,0x3d,0x12,0x68,0x89,0xb,0x93,0xaa,0x66,0xbc,0x9f,0x65,0x42,
+ 0xa3,0xd2,0x6b,0x18,0xf7,0x58,0x1a,0xa9,0x1,0xec,0xda,0xf4,0xe7,0x19,0x66,0xdc,
+ 0xed,0xbc,0xb6,0x4c,0x23,0x61,0xa5,0xa8,0x4b,0xec,0x9c,0x73,0x3a,0x6f,0x74,0x3e,
+ 0xbd,0x50,0xb6,0x28,0x66,0x6e,0xe5,0xfc,0xd8,0x5,0x35,0x8b,0x94,0x16,0x1f,0x5f,
+ 0x62,0xb8,0xb4,0x78,0x79,0xc0,0x8a,0xea,0x55,0x1a,0x3f,0x3d,0x5c,0x13,0xb1,0xf6,
+ 0xd0,0x86,0x4d,0x9b,0x54,0xb6,0xbc,0x2a,0x4d,0xdf,0xda,0x56,0x76,0x65,0x47,0x64,
+ 0x79,0x6b,0xe5,0xf9,0xaa,0xc8,0xea,0xcb,0x35,0xf7,0xf6,0xb0,0xf7,0xbe,0x3c,0xa0,
+ 0x5c,0xb7,0xa1,0xc1,0xfc,0x50,0xe8,0xe1,0xb6,0x23,0xd9,0xc7,0x77,0x36,0x79,0x35,
+ 0xdf,0x39,0x99,0x7f,0xa6,0xf1,0x5c,0x62,0x8b,0xa4,0xb5,0xec,0x62,0xf7,0xe5,0x4d,
+ 0x57,0xfd,0xae,0x75,0xdf,0x28,0xbd,0x15,0x76,0x5b,0x72,0x77,0xcf,0x3d,0xc6,0x7d,
+ 0x9d,0x7,0x17,0x1e,0x2d,0x7e,0xe2,0xd5,0xfe,0xa1,0xa3,0xe1,0x99,0xb8,0xd3,0xb9,
+ 0xab,0xb7,0xbb,0xe1,0xe5,0xc6,0x9e,0x82,0xd7,0xde,0xbd,0xc3,0xde,0x5e,0xf8,0xcf,
+ 0xfe,0x77,0x1b,0x3f,0x30,0x3f,0x6,0x7f,0xb2,0x93,0x8c,0x91,0x48,0x86,0xb0,0x27,
+ 0xb9,0xcb,0x43,0x1,0xc3,0xa0,0xc,0x55,0x68,0x40,0xb,0xe3,0x60,0x2,0xb,0xd8,
+ 0xc1,0x5,0xde,0x52,0xde,0x42,0x29,0xf1,0x63,0xb8,0x88,0x47,0x84,0x32,0x41,0x21,
+ 0x9c,0x8,0x1a,0x91,0x23,0x25,0xae,0x26,0x63,0x21,0xc3,0xe8,0x27,0x5e,0x2c,0xdb,
+ 0x21,0xe7,0x28,0x17,0x2f,0x57,0x24,0xd7,0x22,0x3f,0x4e,0x9e,0x2f,0xbf,0x51,0xca,
+ 0x9c,0x24,0x7e,0xf8,0xdb,0xcc,0x3f,0x23,0x9e,0x3c,0x40,0x5c,0x5b,0xbb,0x9f,0x78,
+ 0x37,0x49,0x5c,0x3f,0xd1,0x40,0xcd,0xa0,0xd9,0xd0,0xc5,0xf0,0xa5,0xd1,0xee,0xf1,
+ 0x3c,0xe3,0x1e,0x93,0x3a,0xd3,0x42,0x33,0x75,0xb3,0xdb,0xe6,0x95,0x13,0x73,0x2d,
+ 0xf5,0x2c,0xbb,0xad,0x4e,0xda,0xe4,0xda,0xc6,0xd8,0x39,0x7c,0xce,0xdb,0xcd,0x8c,
+ 0xe4,0xed,0xf1,0xca,0xb3,0xd3,0xab,0xc3,0xbb,0xdd,0xf7,0xa9,0xdf,0x33,0xff,0xee,
+ 0x80,0x5e,0x92,0x76,0xa8,0x6d,0x98,0x67,0x4,0x2b,0x32,0x9f,0xba,0x3a,0xaa,0x2a,
+ 0xba,0x39,0x56,0x12,0xa7,0x4f,0xf2,0x4e,0xbe,0x48,0xf2,0x4e,0x29,0x22,0x79,0xa7,
+ 0x15,0xa4,0x3f,0xcf,0x30,0xe3,0x30,0xb8,0xdb,0x79,0x6d,0x2,0xe6,0x60,0xe2,0x5,
+ 0x7b,0x8b,0x62,0xe6,0x56,0x16,0x4b,0x16,0xd4,0x2c,0x52,0x2a,0x61,0x2e,0x3e,0xbe,
+ 0xb4,0x78,0xd9,0x83,0xe5,0x1,0x2b,0xaa,0x57,0xe7,0xf,0x30,0xdf,0x5c,0xb4,0xe5,
+ 0xd5,0xd6,0xb6,0xed,0x9,0x65,0x57,0x76,0x44,0x56,0x84,0xd,0xa6,0x5e,0x5b,0x58,
+ 0xb7,0xa1,0xc1,0xbc,0xb1,0xf1,0x50,0xe8,0x91,0xec,0x63,0xaa,0x43,0xb9,0xff,0x35,
+ 0xed,0x3b,0xc8,0x6b,0x75,0xf5,0x76,0x37,0xf4,0x14,0xbc,0xf6,0x7e,0x63,0xd2,0xc7,
+ 0xfe,0x7d,0x11,0x49,0xff,0xd3,0x59,0x9,0xf3,0x2b,0xfc,0x65,0x21,0x3f,0x84,0xbf,
+ 0xb5,0x94,0x3e,0xc9,0x5e,0x9a,0x75,0x42,0x99,0x70,0x1a,0x94,0xf3,0xa1,0x19,0x2f,
+ 0x97,0x12,0x6f,0x92,0xef,0x1a,0x44,0xbc,0x73,0x18,0x75,0xd8,0x82,0x6f,0xa6,0x7c,
+ 0x10,0x71,0x8d,0xce,0x51,0x73,0xfb,0x33,0xae,0xfd,0x7f,0x65,0xbc,0x9b,0xcc,0xb8,
+ 0x9d,0x83,0xbd,0x86,0x7d,0x8f,0x63,0x83,0xd3,0x56,0xe7,0x12,0x32,0xe1,0x6e,0x66,
+ 0x43,0x13,0xee,0xdf,0x4d,0x26,0x9c,0x24,0xfe,0x79,0xc2,0xe3,0xf4,0xe3,0x3d,0x12,
+ 0x17,0x26,0x55,0xf5,0x31,0xef,0xcb,0x78,0x5a,0x1,0xbb,0x36,0xfd,0x39,0xc9,0x3c,
+ 0xd3,0x48,0xc0,0x14,0x75,0x89,0x9d,0xb3,0x8b,0x6,0xe7,0xbc,0x58,0x32,0x3f,0x76,
+ 0x41,0x4d,0x9,0x93,0x4c,0xfa,0xb2,0x7,0x2b,0xaa,0x57,0x69,0x90,0xdc,0xd7,0x5b,
+ 0xf4,0x71,0x2f,0x4d,0x27,0xb9,0x97,0xb7,0x56,0x84,0x55,0x45,0x56,0x5f,0xfe,0x3d,
+ 0x61,0x70,0xde,0x1b,0x1b,0x3f,0x4f,0xfc,0x69,0x9d,0xef,0x63,0xff,0xf4,0xe6,0x60,
+ 0xfa,0x64,0xf2,0xbf,0xce,0x9f,0x3c,0x2f,0x1,0x0,0x86,0xfb,0xf0,0x32,0x78,0x2,
+ 0x4a,0x88,0x8f,0xef,0x77,0x1d,0xf1,0xbe,0xbf,0x71,0x32,0xb2,0xfa,0xf6,0x50,0x3,
+ 0xa0,0xc2,0x16,0x5,0x45,0x3,0xd0,0x4,0xd0,0xc4,0x12,0xf8,0x53,0x1,0x78,0x3,
+ 0xb8,0xce,0x4d,0x9,0xb,0x7,0xa0,0x1,0x10,0x63,0x99,0x42,0xbf,0x28,0x69,0xdf,
+ 0x92,0xc5,0xf6,0xf,0x2,0xa0,0xe,0x10,0xee,0x7c,0x51,0x44,0x34,0x80,0x31,0x0,
+ 0x11,0x96,0x97,0x16,0x3d,0x1d,0x80,0x2a,0x40,0xb0,0xd2,0x69,0xd3,0x22,0xa4,0x7d,
+ 0x11,0x37,0x23,0x2c,0x4,0x80,0x16,0x40,0xcc,0x63,0x30,0x7d,0xfd,0xa4,0x73,0xd7,
+ 0xcf,0xe6,0x5,0x53,0x1,0xa8,0x0,0x44,0x5,0x93,0x1b,0xd3,0xb7,0x7e,0xad,0x50,
+ 0x1c,0xd5,0x37,0xe6,0x4f,0x6,0xcd,0x37,0x18,0x80,0x1e,0x40,0x5c,0xcd,0x4b,0xf3,
+ 0x9,0x93,0x8e,0x7f,0x89,0x10,0xf8,0xc0,0x17,0x14,0xd0,0xc1,0x43,0x6,0x78,0x10,
+ 0x80,0x8d,0xd3,0xa0,0x43,0x0,0x1a,0xb8,0xa0,0xe0,0x1e,0x28,0xa0,0x43,0x0,0x36,
+ 0x84,0x10,0x81,0x86,0x2c,0xe4,0x80,0x82,0xc,0xb0,0x91,0x89,0x2c,0xb0,0xc1,0x0,
+ 0x13,0x42,0xe9,0xfc,0x2c,0x64,0x80,0x89,0x2c,0x8,0xe0,0xf,0x1a,0x4,0x48,0x5,
+ 0x13,0x56,0xd2,0x1d,0xbe,0xdc,0x27,0x16,0xf,0x21,0x0,0xfb,0x1b,0x23,0xd8,0x60,
+ 0x80,0x37,0x93,0x3d,0x4f,0xc0,0xd9,0xcb,0x12,0xaf,0xe7,0xe5,0x4e,0x8e,0x4d,0xb3,
+ 0xad,0xb2,0x7d,0x6a,0xfb,0x1,0x14,0xe9,0xe8,0xe0,0xfe,0x1d,0x99,0xe0,0xf6,0xaf,
+ 0x44,0xee,0x9e,0xd2,0x77,0x7d,0xfe,0x59,0xdd,0xb3,0xfe,0x19,0x3e,0xfd,0xab,0x53,
+ 0xfa,0x47,0x3f,0x84,0x0,0xa9,0x43,0x9e,0xc3,0xa,0x2c,0xd0,0x20,0x80,0x18,0x4c,
+ 0x8,0x31,0x1b,0x8f,0x21,0x0,0x67,0x26,0x7b,0xde,0xc0,0x3c,0x90,0x67,0x6f,0x0,
+ 0x50,0x50,0x7,0x36,0x53,0x0,0xa0,0x3e,0x7f,0xed,0xdc,0xa1,0x9e,0x88,0x98,0x39,
+ 0x22,0x0,0xf0,0xe1,0xf1,0x73,0x5,0xec,0xd4,0x34,0x11,0xc5,0x8b,0xcf,0xcf,0x60,
+ 0x52,0x7c,0x78,0x1c,0x7e,0x96,0x88,0x29,0xb0,0xa4,0x4,0x71,0xe9,0xd6,0x96,0x14,
+ 0x7b,0x5b,0x5b,0x27,0x0,0xf8,0x2f,0xe5,0xbe,0x80,0x90,0x4c,0x36,0x19,0x1,0x0,
+ 0x0,0x20,0x0,0x49,0x44,0x41,0x54,0x78,0x9c,0xec,0xbd,0x79,0x7c,0x5c,0x57,0x7d,
+ 0x37,0xfc,0x3d,0x77,0xbf,0xb3,0x49,0x1a,0x49,0xb6,0x2c,0xc9,0x96,0xbc,0xc5,0x76,
+ 0x6c,0x67,0xb1,0x93,0x18,0x27,0x4e,0x42,0x48,0x48,0x42,0x2,0x2d,0x4b,0x79,0xa,
+ 0xf,0xcf,0x4b,0x3,0x7d,0x1e,0x5e,0xa,0xb4,0x6f,0x4b,0x4b,0x59,0x1a,0x28,0x2d,
+ 0x4b,0x69,0x81,0x42,0x69,0x81,0x42,0x5b,0xa,0xa5,0x90,0x40,0xfb,0x10,0x42,0x16,
+ 0x48,0x8,0x21,0x2b,0xd9,0xed,0x38,0xde,0x13,0x2f,0x92,0x6d,0xc9,0x5a,0x67,0x46,
+ 0x33,0x9a,0xb9,0xfb,0x39,0xef,0x1f,0x67,0xe6,0xe8,0xcc,0x9d,0x91,0x2c,0x67,0x75,
+ 0x12,0x7d,0x3f,0xfa,0xdc,0xcf,0x99,0x3b,0x77,0xee,0x72,0x74,0xbe,0xf7,0xf7,0x3b,
+ 0xbf,0xed,0x90,0xc9,0xc9,0x49,0x2c,0xe0,0x74,0x45,0x14,0x45,0x0,0x1c,0xc7,0x89,
+ 0xa2,0x28,0x9f,0xcf,0xbb,0xae,0x9b,0xcf,0x4f,0x96,0x4a,0xd3,0xbf,0xdb,0xfa,0xb1,
+ 0xd8,0x91,0x9f,0x7b,0xfc,0x7f,0x67,0xb3,0x59,0xdb,0xb2,0x17,0x2d,0xee,0x6c,0x6b,
+ 0x6b,0xb7,0x2c,0xcb,0xb2,0xac,0x54,0x2a,0xa5,0xeb,0xba,0xa6,0x69,0xaa,0xaa,0xbe,
+ 0x14,0xb7,0xbf,0x80,0x17,0x10,0xca,0x4b,0x7d,0x3,0xb,0x98,0xb,0xaa,0xaa,0x86,
+ 0x61,0x8,0xc0,0x71,0x1c,0xb1,0xb3,0x55,0x1d,0x9e,0xed,0x78,0x3b,0x61,0xc7,0xf6,
+ 0x68,0x9a,0xf6,0x2,0xdd,0xdb,0x2,0x5e,0x5a,0x2c,0x50,0xf7,0xb4,0x6,0x97,0xba,
+ 0x0,0x6c,0x7b,0x86,0x93,0xb9,0x6,0x45,0xe9,0x86,0x81,0x77,0x1,0xb0,0x2d,0x1b,
+ 0x80,0x55,0xdd,0x5a,0xe2,0x27,0xb,0x22,0xf7,0x15,0x89,0x5,0xea,0xbe,0x3c,0xc0,
+ 0xa5,0xae,0xe3,0x54,0x0,0x64,0xdb,0xdb,0x1b,0xf,0x58,0xd1,0xe1,0x0,0x30,0x4d,
+ 0x3,0x80,0x65,0x59,0x7c,0xa7,0xae,0xeb,0x2f,0xde,0x2d,0x2e,0xe0,0xc5,0xc5,0x2,
+ 0x75,0x5f,0x66,0xf0,0x7d,0xbf,0x4f,0xdf,0x1e,0xdb,0x79,0x78,0xc2,0x2e,0xd0,0x9e,
+ 0x97,0xe4,0x7e,0x16,0xf0,0x52,0x61,0x81,0xba,0x2f,0x3,0x8,0xb5,0x79,0x6e,0xd8,
+ 0x9,0xdb,0x30,0xc,0xf1,0x71,0x41,0x4f,0x7e,0x65,0x63,0x81,0xba,0x2f,0x33,0x78,
+ 0x9e,0xdf,0xb8,0x33,0x9b,0xcd,0x8a,0xb6,0x6d,0x27,0x20,0xcd,0x8d,0x17,0x8,0xfc,
+ 0x4a,0xc5,0x2,0x75,0x5f,0x66,0xe0,0xb3,0x59,0x19,0xfb,0xdd,0x6d,0xb9,0x5c,0x8e,
+ 0xb7,0x85,0x8d,0x8a,0xcf,0x8d,0x17,0xcc,0xcb,0xaf,0x60,0x3c,0xd7,0x7f,0xad,0xac,
+ 0xcb,0x2d,0xbc,0xe0,0x5f,0x8,0x4,0x41,0xc0,0x1b,0xae,0xeb,0x2,0xf0,0x3c,0x7f,
+ 0x6d,0xeb,0x3,0xb1,0x63,0xb8,0x47,0x57,0x66,0xb5,0x6c,0x91,0x5e,0xc0,0x2b,0x12,
+ 0xcf,0x46,0xea,0x46,0x12,0x0,0x84,0x35,0x44,0xf5,0x78,0xbe,0x6f,0xf5,0x55,0xd,
+ 0xce,0x5b,0x8e,0xfd,0xee,0x36,0xf9,0xab,0x1d,0x23,0x7d,0x42,0xea,0xca,0xe0,0xe6,
+ 0xe5,0x85,0x7f,0xc4,0x2b,0x15,0xa7,0x26,0x75,0xc5,0x38,0xe0,0x71,0x2,0x1c,0x5c,
+ 0x2c,0xe8,0xba,0xee,0x38,0x4e,0x53,0x6f,0xc4,0x82,0x34,0x7e,0xd6,0x10,0xf1,0x18,
+ 0x96,0x65,0xb9,0xae,0xeb,0xba,0xe,0x80,0xb5,0x56,0x13,0xa9,0xb,0x80,0xdb,0xa8,
+ 0x84,0x67,0x88,0x63,0xa1,0xf3,0x5f,0xa9,0x38,0x5,0xea,0xa,0x19,0xcb,0x3f,0x72,
+ 0xc6,0xa,0x32,0xf3,0x6,0xdf,0xaa,0xaa,0xaa,0xeb,0x3a,0x3f,0x52,0xd3,0x34,0xb1,
+ 0xf3,0xf9,0xbc,0xf1,0x57,0x1,0x64,0x81,0x29,0x4b,0xdd,0x18,0xe,0x4f,0xd8,0xd9,
+ 0x6c,0x3c,0x8e,0x6a,0xa1,0xb7,0x5f,0xf1,0x98,0x2f,0x75,0x65,0xde,0x6,0x41,0x20,
+ 0x62,0x6b,0xf9,0xb7,0xae,0xeb,0xc6,0x5e,0xf6,0xb6,0x6d,0xcb,0xa3,0x67,0x81,0xc0,
+ 0xcf,0x5,0xb6,0x6d,0xb,0xea,0x36,0x46,0x41,0x36,0x9a,0x97,0x17,0xf0,0x6a,0xc0,
+ 0xbc,0xa8,0xdb,0xc8,0x5b,0x4e,0x5a,0x31,0x9e,0x5c,0xd7,0xe5,0x6d,0x4e,0x60,0x61,
+ 0xe1,0xb4,0x6d,0x3b,0x8a,0xa2,0xd9,0xe8,0xba,0x40,0xe3,0xf9,0x40,0xf4,0xf6,0x6c,
+ 0xc8,0xe5,0x72,0x3d,0xdd,0x75,0xf1,0x18,0xb,0x36,0xaa,0x57,0x3,0x4e,0x4e,0x5d,
+ 0x59,0x6d,0x8b,0xf1,0x96,0xd3,0x95,0x47,0xe7,0x71,0x38,0x4e,0xc5,0xb6,0x13,0x32,
+ 0x8d,0x21,0x11,0x98,0x6b,0xd1,0xc2,0x63,0x31,0x7,0xab,0x17,0x20,0x20,0xba,0x48,
+ 0xee,0x67,0x81,0xfd,0xee,0x36,0x59,0xea,0xd6,0x8e,0x74,0x52,0xa9,0xd4,0xb,0x7e,
+ 0x67,0xb,0x78,0x49,0x31,0x5f,0x85,0x39,0xc,0x43,0x99,0xb7,0x85,0x42,0x1,0x80,
+ 0x56,0xda,0x9e,0x76,0x1e,0x6a,0x3,0x0,0xec,0x67,0x6f,0xe5,0x47,0x72,0x53,0xa,
+ 0x77,0x30,0xca,0x8a,0x74,0x4c,0x2,0x73,0x2,0x2f,0x68,0xd1,0x27,0xc5,0x49,0x4d,
+ 0xc4,0x5c,0xea,0x9a,0xa6,0x21,0x9c,0xba,0x58,0x88,0x5e,0x7e,0x15,0xe0,0xe4,0xd4,
+ 0x55,0x55,0x35,0x36,0x7a,0x5c,0xd7,0x35,0xa3,0x91,0x4d,0xf4,0xef,0xc1,0x8e,0xc1,
+ 0x2,0xec,0xa5,0x70,0x8e,0xad,0xc5,0x3,0xfb,0xdd,0x6d,0x83,0xc1,0xa6,0x82,0xd7,
+ 0x6d,0x9a,0x86,0xef,0xfb,0xae,0xeb,0x34,0x25,0x30,0x80,0x98,0xf8,0x5d,0xc0,0x3c,
+ 0xe1,0xfb,0xfe,0xda,0xfa,0x0,0xe6,0x1d,0x23,0x7d,0x8d,0x52,0x97,0x77,0xf2,0x42,
+ 0x9a,0xee,0xfc,0x11,0x4,0xc1,0xe1,0xc3,0x87,0x7,0x6,0x6,0x86,0x87,0x87,0x8b,
+ 0x85,0x29,0xd7,0xf7,0x54,0x45,0x49,0xa5,0x52,0x1d,0x1d,0x1d,0x1d,0x9d,0x9d,0x5d,
+ 0x5d,0x5d,0x4b,0x96,0x2c,0x69,0x69,0x69,0x79,0xa9,0x6f,0xb3,0xe,0xa7,0x46,0x1e,
+ 0xa1,0x2a,0x6b,0x95,0x61,0xb0,0x63,0x40,0x95,0xb7,0xfc,0xdb,0xb5,0xd6,0x3,0x6b,
+ 0xad,0x7,0x60,0x2f,0xbd,0x61,0xdf,0x25,0x9e,0xb1,0xca,0x4e,0xd8,0x32,0x81,0x5,
+ 0x1a,0xc5,0xef,0x82,0xe6,0xfc,0x1c,0x21,0xcc,0xcb,0x31,0x63,0xe1,0x2,0x4e,0x8a,
+ 0xd1,0xd1,0xd1,0xff,0xf8,0x8f,0xff,0xb8,0xfd,0xf6,0xdb,0x27,0x27,0x26,0xba,0x93,
+ 0xe9,0xb5,0x6d,0x8b,0xba,0x12,0x29,0x5b,0x33,0xc2,0x28,0x1a,0x74,0xa7,0x1f,0x9c,
+ 0x2e,0xe,0x4e,0x4f,0xe5,0x3d,0xc7,0xb2,0xac,0xe5,0xfd,0xfd,0x6f,0xb8,0xe6,0x9a,
+ 0x6b,0xae,0xb9,0x66,0xf1,0xe2,0xc5,0x2f,0xf5,0x5d,0x3,0xf3,0x9f,0xeb,0xa,0xab,
+ 0xb2,0xeb,0xba,0x8e,0x53,0x49,0xa3,0x46,0x5a,0x47,0x22,0x70,0x6d,0xcf,0x3b,0xfb,
+ 0x7f,0xc0,0x9,0x5c,0xa8,0x27,0xb0,0x6c,0xff,0x94,0x4d,0x29,0xc2,0xfe,0x8c,0x5,
+ 0xe5,0xb9,0x6,0xd1,0xed,0xfc,0x63,0xdc,0x39,0x24,0x3a,0xbc,0x6,0x39,0xf1,0x40,
+ 0x3e,0xc9,0x42,0x7f,0x36,0x5,0xa5,0xf4,0xd8,0xb1,0x63,0xdf,0xfb,0xde,0xf7,0x6e,
+ 0xfe,0xc1,0xd,0xeb,0xda,0x17,0xff,0xf1,0x59,0xe7,0x5f,0xf9,0xa6,0xd,0xdd,0x99,
+ 0x56,0x42,0x48,0xe3,0xc1,0x53,0x4e,0x65,0xe7,0x89,0x63,0xf7,0x1f,0x79,0xfa,0xa7,
+ 0xdf,0xfc,0xf6,0xb7,0xbf,0xf2,0xf,0xaf,0xff,0xed,0x37,0xfd,0xde,0x75,0xd7,0x2d,
+ 0x5b,0xb6,0xec,0xa5,0x9d,0x95,0xcc,0x4b,0xea,0xca,0x1,0x18,0x33,0x63,0x48,0x70,
+ 0x55,0x12,0xbc,0xc0,0x8c,0x1c,0x7e,0x67,0xff,0xf,0xf6,0xbb,0xdb,0x76,0x8c,0xf4,
+ 0x71,0x2,0x3,0x70,0x5d,0xa7,0xad,0xad,0x5d,0xd6,0x9f,0x53,0xa9,0x94,0x18,0x9d,
+ 0x62,0xf6,0xbb,0x30,0xda,0x38,0xe4,0x6e,0x9f,0xd,0x72,0xae,0x9f,0x78,0x33,0x8a,
+ 0xe,0x5c,0xe8,0xc9,0xa6,0x8,0xc3,0xf0,0xab,0x5f,0xfd,0xea,0x6f,0xee,0xba,0x7b,
+ 0xa3,0x99,0xf9,0xcf,0xff,0xf1,0xbf,0xcf,0xeb,0xed,0x37,0xb5,0xb9,0x48,0xd8,0x62,
+ 0x27,0x2e,0x59,0xb1,0xe6,0x92,0x15,0x6b,0xfe,0xec,0xd2,0x37,0x3c,0x7e,0xfc,0xc8,
+ 0x4f,0x77,0x6f,0xff,0xd0,0x7b,0x7e,0xff,0x9a,0xb7,0xbf,0xed,0xdd,0xef,0x7e,0xf7,
+ 0x4b,0xa8,0x45,0x9f,0x82,0xc2,0xec,0x38,0x8e,0xe0,0x6d,0xae,0xe8,0x61,0xd1,0xd2,
+ 0x59,0xd9,0x5b,0xc3,0xda,0xb6,0xc1,0xb5,0xd6,0x3,0xfb,0xdd,0x6d,0xf,0xe7,0x2e,
+ 0x7,0x60,0x9a,0x46,0x3e,0x3f,0x29,0xf4,0x67,0xcb,0xb2,0xa6,0xa7,0xa7,0x17,0x66,
+ 0xbf,0x27,0x85,0xe8,0x76,0xcf,0xf3,0xd7,0x2e,0x19,0x44,0xbd,0xab,0xc8,0xb6,0x16,
+ 0x5c,0x41,0xa7,0x80,0x20,0x8,0xfe,0xfa,0xaf,0xff,0xfa,0xd6,0x1b,0xff,0xeb,0x6b,
+ 0x6f,0x7c,0xc7,0x95,0x6b,0x36,0xda,0xa7,0x22,0x39,0x4d,0x4d,0xbb,0xa8,0x7f,0xf5,
+ 0x79,0xbd,0xcb,0xf7,0x8e,0xe,0x5f,0xff,0xdf,0x3f,0xfd,0xe5,0x9d,0x77,0x7e,0xf3,
+ 0x9f,0xff,0xb9,0xa7,0xe7,0xa5,0xc9,0x94,0x7e,0x36,0x31,0xcc,0xae,0xeb,0x14,0xa2,
+ 0xee,0xf8,0x5e,0xbb,0x81,0xc9,0xb5,0xed,0x5a,0xeb,0x81,0xeb,0x56,0x7e,0xe7,0x6c,
+ 0xeb,0xd6,0x42,0x7e,0xaa,0x54,0x9a,0x2e,0x16,0xa7,0x1c,0xa7,0x92,0xcf,0xe7,0x6a,
+ 0xbe,0x25,0x27,0x8a,0x22,0x21,0x7b,0xb1,0x10,0x76,0x5b,0xf,0x29,0xee,0xc5,0xa9,
+ 0x26,0x18,0xd4,0x3a,0x76,0x7f,0xbe,0x4f,0x1c,0x26,0x5e,0x88,0xb,0x4e,0xdd,0x39,
+ 0x50,0xa9,0x54,0xbe,0xf2,0xe5,0x2f,0x3f,0x74,0xdb,0x2f,0x7e,0xf9,0xde,0xf,0xff,
+ 0xf6,0x86,0x4d,0xa7,0xc4,0x5b,0x1,0x53,0xd3,0xce,0xed,0x59,0xf6,0xfd,0xdf,0xf9,
+ 0xfd,0x33,0xa9,0xf1,0x8e,0xb7,0xbe,0xed,0xa1,0x87,0x1e,0xa2,0x94,0x3e,0xef,0xb7,
+ 0x7a,0x52,0x68,0xcf,0x8e,0x27,0x4e,0x45,0x7a,0xf3,0xc7,0xe6,0x5d,0xd,0xd3,0xb0,
+ 0xaa,0x9,0xba,0xd,0x6b,0xad,0xbf,0xba,0xa3,0xf4,0x47,0x5,0xaf,0xbb,0x58,0x9c,
+ 0xca,0x64,0x5a,0xf2,0xf9,0x9c,0x6d,0x27,0x5a,0x5b,0x5b,0x1d,0xc7,0x11,0x3,0x4e,
+ 0x76,0x1a,0x2d,0x20,0x6,0xcf,0xf3,0xab,0x7d,0x5b,0x55,0x73,0xaa,0xd4,0x35,0x4d,
+ 0xc3,0x75,0x1d,0xdb,0x4e,0xf0,0x60,0x18,0xe1,0xd4,0x5d,0xe8,0x46,0x19,0xc5,0x62,
+ 0xf1,0xef,0xbf,0xfc,0xe5,0xbd,0xbf,0x7e,0xe0,0xcb,0x57,0xbf,0xbd,0xbd,0xa5,0xa5,
+ 0x10,0x78,0x2a,0x21,0x86,0xaa,0xe9,0x44,0x61,0x0,0x53,0x88,0x46,0xd9,0xfc,0xcf,
+ 0x96,0x4d,0x24,0xbf,0xfe,0xdb,0xff,0xeb,0xdb,0xf,0xdf,0xf3,0x77,0x9f,0xfa,0xf4,
+ 0x1f,0x7e,0xfc,0xa3,0x97,0x5e,0x7a,0xe9,0xb,0x77,0xe7,0x4d,0x71,0x6a,0x81,0x90,
+ 0xa8,0x5,0x6,0x2c,0x49,0xe7,0x1,0x54,0xf9,0x29,0x88,0x1a,0xfb,0xd8,0xec,0x80,
+ 0xab,0xec,0x9b,0xf6,0xe7,0xfb,0xb8,0xfe,0x2c,0x87,0xcb,0x73,0xb3,0x73,0xf5,0x9e,
+ 0x16,0xd4,0xe6,0x39,0x20,0xf5,0xed,0x8e,0x81,0x5,0xa9,0x3b,0x5f,0x4c,0x4f,0x4f,
+ 0x7f,0xea,0x53,0x9f,0x1a,0x18,0x18,0xe8,0x5d,0xb3,0xea,0x36,0x5a,0xb8,0x67,0x32,
+ 0xd0,0x75,0x9d,0x46,0xd4,0xf7,0x3c,0x6f,0x32,0xdf,0xad,0x98,0xe7,0x9f,0xb1,0xee,
+ 0xcc,0x4c,0xb6,0x35,0x3c,0x5,0x45,0x54,0x57,0xd5,0xff,0xb3,0xe5,0x52,0xdb,0xd0,
+ 0x3f,0xf6,0x27,0x7f,0xfa,0xaf,0xdf,0xff,0xde,0xfa,0xf5,0xeb,0x5f,0xc0,0x7,0x68,
+ 0xc0,0xc9,0x49,0xd2,0x68,0x2c,0xf1,0x7d,0xbf,0xde,0xdb,0xb3,0x14,0x4d,0x3f,0xc6,
+ 0x28,0x5d,0xdb,0xb3,0xb6,0x6d,0x10,0xf8,0xd5,0xc3,0xb9,0xcb,0x5b,0xdb,0x5a,0x50,
+ 0x9b,0xc8,0x71,0xc1,0x1b,0x45,0xd1,0x42,0x2c,0xc1,0x1c,0x68,0xc,0x60,0xb6,0x2d,
+ 0x5b,0xd4,0xb5,0x91,0x3d,0x43,0xb,0xaf,0x3f,0x19,0xc5,0x62,0xf1,0xae,0xbb,0xee,
+ 0xda,0xb6,0x6d,0xdb,0xef,0xfd,0xde,0x75,0x9a,0xa6,0x29,0x8a,0x2,0x80,0x31,0x6,
+ 0x30,0x80,0x4,0x81,0x3f,0x34,0x34,0xf4,0xa3,0xed,0xdb,0xdd,0xc1,0x3d,0x5d,0x54,
+ 0xb9,0xc0,0x6a,0xdb,0x90,0x5d,0xd4,0x9d,0x69,0x35,0x54,0xad,0x89,0xb9,0xb9,0x1e,
+ 0x86,0xa6,0x5d,0x77,0xde,0xc5,0x47,0x72,0x13,0x7f,0xf4,0x81,0xf,0xfe,0xfb,0xf7,
+ 0xff,0x63,0xe9,0xd2,0xa5,0x4d,0xf,0x6b,0x6a,0xb8,0x7e,0x8e,0x50,0x3f,0xf2,0x91,
+ 0x8f,0xcc,0x7d,0x84,0xa2,0x28,0x9e,0xe7,0x31,0xc6,0x78,0x52,0xae,0xeb,0x3a,0x8c,
+ 0x31,0x25,0x98,0x5c,0x95,0xdc,0xdf,0x78,0xf0,0xfe,0x7c,0xdf,0xa7,0x6e,0x5e,0x56,
+ 0x54,0xd7,0xea,0x1a,0x26,0xc2,0x65,0x1d,0xf6,0x54,0xdd,0xd7,0x7a,0xd5,0x1c,0xd7,
+ 0x61,0x4f,0x59,0x24,0x37,0xe4,0xad,0x24,0xa4,0x9a,0x66,0x54,0xfd,0x5e,0xd7,0x19,
+ 0x63,0x84,0x10,0xde,0xb9,0xaf,0x72,0x78,0x9e,0x17,0x45,0x11,0xef,0xf6,0x52,0xa9,
+ 0x18,0x86,0x61,0xac,0xdb,0x1f,0x18,0xbb,0x50,0xd7,0x74,0x5d,0xd7,0x4d,0xd3,0xd0,
+ 0x34,0xdd,0xb6,0x6d,0x4d,0xd3,0x74,0x5d,0x37,0x4d,0x93,0x52,0xba,0xd0,0x87,0x1c,
+ 0xf9,0x7c,0xfe,0x6f,0xfe,0xe6,0xb,0xd3,0xd3,0x95,0xd7,0xbd,0xee,0xca,0x74,0xba,
+ 0xc5,0x34,0x6d,0xcb,0xb2,0x55,0x55,0xd7,0x75,0x4d,0xd7,0x8d,0x54,0x2a,0xd5,0xd1,
+ 0xd1,0xd9,0xdb,0xbb,0xf4,0x9c,0x73,0xce,0x39,0x63,0xcd,0x5a,0xa3,0xb3,0x7d,0xb7,
+ 0x57,0xbc,0x65,0xcf,0x8e,0x3d,0x43,0x47,0x3b,0xda,0xdb,0xb3,0x86,0x7d,0xd2,0x4e,
+ 0x24,0x84,0x5c,0xd8,0xb7,0x6a,0xc7,0x91,0x43,0x4f,0x1c,0x3d,0xbc,0x75,0xeb,0xd6,
+ 0xd8,0x4b,0x53,0x26,0xed,0xf3,0x4b,0xe0,0x79,0x49,0x5d,0x5d,0xd7,0xe5,0x59,0x53,
+ 0x5c,0xea,0x72,0x38,0xc7,0xf6,0xbb,0xdb,0xbe,0x76,0x47,0x6,0xc0,0xfd,0x3b,0xf3,
+ 0xf7,0xef,0xcc,0xf4,0xf4,0x74,0x3,0x6b,0x57,0x74,0x38,0xe7,0x76,0xd,0xae,0x6d,
+ 0x1b,0x8c,0x1d,0xbe,0xb6,0x6d,0x70,0x70,0x6c,0xb8,0xe0,0x75,0xf3,0xc0,0x49,0x2c,
+ 0x84,0x13,0xd4,0xa3,0xb1,0xdb,0x63,0x90,0x6d,0x54,0x68,0xc8,0x19,0x5a,0x90,0xba,
+ 0x1c,0xb9,0x5c,0xee,0x83,0x1f,0xfc,0xa0,0xef,0x47,0x5f,0xf8,0xc2,0x97,0x3a,0x3b,
+ 0xab,0xa1,0x14,0x5c,0x60,0xa8,0x2a,0xb1,0x6d,0xc3,0x30,0x74,0x5d,0xd7,0xa2,0x88,
+ 0xfa,0xbe,0xd7,0xd6,0x96,0x5d,0xb2,0xa4,0x67,0xc5,0x8a,0x55,0x53,0x5b,0x2f,0x7a,
+ 0xe2,0x89,0xc7,0xfe,0xf4,0x17,0x37,0xbd,0xef,0xc2,0xcb,0xae,0xed,0xe8,0xb3,0x70,
+ 0x12,0xca,0x59,0xba,0xfe,0xe7,0x17,0x5f,0xf5,0xf6,0x1b,0xbe,0xfd,0xf8,0xd5,0x57,
+ 0x6f,0xdb,0x36,0x53,0x8,0x81,0x10,0xc2,0x18,0x6b,0xda,0x7e,0xee,0x8f,0x76,0xf2,
+ 0x7f,0xb0,0xa6,0x69,0x73,0x67,0xae,0x70,0x8,0xde,0xf6,0xf4,0xd4,0x19,0x9f,0xf,
+ 0x4f,0xd8,0x87,0x27,0xd6,0xae,0xe8,0xe8,0x7b,0xe7,0xba,0xfb,0x62,0x3f,0xb9,0x6a,
+ 0xd1,0x4d,0xdf,0x3d,0xf4,0x5e,0x11,0x7c,0xcb,0x35,0x67,0xdb,0xb6,0x17,0x1c,0x45,
+ 0xa8,0xef,0x76,0xe1,0x1c,0x6a,0x2c,0xe3,0x8a,0xfa,0x6a,0x55,0xb,0x13,0x5d,0x19,
+ 0xa3,0xa3,0xa3,0x9f,0xf9,0xcc,0x67,0x0,0xe5,0x9f,0xfe,0xe9,0x9b,0xc9,0x64,0x52,
+ 0xec,0xb7,0x2c,0xae,0xa7,0xa8,0xba,0xae,0xea,0xba,0xae,0xaa,0x84,0x31,0x58,0x96,
+ 0x99,0x48,0x24,0x72,0xb9,0xbc,0xaa,0x2e,0xb6,0x2c,0xfb,0xb2,0xcb,0x2e,0x5f,0xbf,
+ 0x7e,0xe3,0x7d,0xf7,0xfd,0x3a,0x37,0xf2,0xcc,0x9b,0xdb,0x97,0x75,0xe8,0xd6,0xdc,
+ 0x6c,0x5b,0xda,0x92,0x7d,0xfd,0xd2,0x35,0x9f,0xfa,0xf8,0x27,0x7e,0x72,0xcb,0xcf,
+ 0x32,0x99,0xc,0xdf,0xd9,0x28,0x72,0x9f,0x47,0x21,0x7c,0x72,0x85,0x39,0xc,0x43,
+ 0xbe,0x7c,0x86,0x50,0x98,0x3d,0xcf,0xd3,0x69,0x21,0xa6,0x30,0xff,0x72,0xe0,0xec,
+ 0x48,0xcb,0x66,0x32,0x69,0xf0,0x52,0x49,0xf5,0x18,0x9e,0xc,0x87,0x2a,0x3d,0xba,
+ 0x86,0x98,0xa,0x3d,0x1a,0xf6,0x97,0x83,0x84,0xaa,0x2a,0x0,0x84,0xbe,0xc7,0x18,
+ 0x53,0x55,0x75,0x41,0xdf,0xb,0xc3,0x90,0xcf,0x53,0x0,0xb8,0xae,0x13,0x86,0xa1,
+ 0x66,0xa6,0x7b,0xb4,0xdd,0xfc,0xdb,0x9,0xb7,0x75,0x34,0x38,0x3,0x80,0x65,0x5b,
+ 0xc9,0x64,0x4a,0xd7,0xf5,0x54,0x2a,0x15,0x86,0xa1,0x65,0x59,0xb,0xbd,0x7,0xe0,
+ 0xf8,0xf1,0xe3,0x7f,0xf9,0x97,0x7f,0xa9,0xaa,0xe6,0xf5,0xd7,0xff,0x55,0x6b,0x6b,
+ 0xab,0xd8,0xaf,0xeb,0xaa,0xa6,0xa9,0x84,0x40,0x51,0x14,0xbe,0x1e,0x93,0xa2,0x10,
+ 0xce,0x22,0x45,0x51,0x4c,0xd3,0x62,0x8c,0x0,0xaa,0xa2,0xa8,0xa6,0xa9,0xf7,0xf6,
+ 0x2e,0x1d,0x9,0xbd,0xc7,0x6,0xe,0xb6,0x43,0x6d,0x37,0x13,0x73,0x93,0xad,0x54,
+ 0x74,0xef,0xde,0xbd,0xf3,0x44,0x71,0x72,0xdb,0xc5,0x17,0x13,0x42,0xe6,0x3e,0xb8,
+ 0x91,0xc9,0xa7,0x8a,0x93,0xff,0x83,0x35,0x4d,0x9b,0x35,0x1c,0x4f,0xc2,0xe1,0x89,
+ 0xea,0xfb,0x9e,0x47,0xc3,0xdb,0x96,0x9d,0xad,0x81,0xb7,0xb,0xb4,0x67,0xc7,0x48,
+ 0x5f,0xe3,0xf,0x9d,0x8a,0xe3,0xfb,0x4d,0xa,0x94,0xbe,0xca,0x21,0xac,0x83,0x22,
+ 0xb9,0xd2,0xf7,0xfd,0xb4,0xf3,0x90,0x38,0x80,0x77,0x66,0xe3,0x22,0x43,0x58,0xd0,
+ 0x96,0x81,0x63,0xc7,0x8e,0xbd,0xef,0x7d,0xef,0x63,0x4c,0xf9,0xe8,0x47,0xaf,0x6f,
+ 0x6f,0xef,0x10,0xfb,0x15,0x85,0x18,0x86,0x91,0x48,0x98,0xa6,0x69,0xe8,0xba,0x48,
+ 0x3e,0x65,0x41,0x10,0x79,0x9e,0xef,0x79,0x7e,0x14,0x51,0x45,0x51,0x54,0x55,0xb5,
+ 0xed,0x54,0x4b,0x4b,0x7b,0x67,0x67,0xd7,0x39,0xe7,0x9c,0xdb,0x7d,0xc1,0xa6,0x7f,
+ 0x3e,0xb2,0x6b,0xb0,0x98,0x9f,0xe3,0x8a,0xa,0x21,0x49,0xdd,0x7c,0x7d,0xcf,0x86,
+ 0xdb,0x6e,0xbb,0x6d,0xf7,0xee,0xdd,0xac,0x1e,0xa8,0x5a,0xc5,0xc0,0x1a,0xf0,0xac,
+ 0x9f,0xf1,0xd4,0xde,0xcd,0xb3,0x4d,0x47,0xc5,0xbc,0x4b,0x10,0xb5,0xb5,0xad,0xc5,
+ 0x34,0x8d,0x74,0x3a,0x65,0x9a,0x46,0x6b,0x5b,0xb,0xe7,0x73,0x81,0xf6,0x7c,0x73,
+ 0xcf,0x3b,0x1,0x20,0x53,0x35,0xa3,0xcb,0xcb,0xe7,0xf0,0x31,0x3a,0x1f,0xe5,0xfc,
+ 0xd5,0x3,0x5e,0x95,0x4a,0x7c,0xcc,0x2c,0xde,0x20,0xda,0x9e,0xb1,0x8a,0x37,0xe4,
+ 0xe8,0xe5,0x5,0x85,0x19,0xc0,0xc0,0xc0,0xc0,0xf5,0xd7,0x5f,0xbf,0x62,0xc5,0xaa,
+ 0xbf,0xfd,0xdb,0xaf,0xb4,0xb6,0x56,0xc3,0x92,0x75,0x5d,0x4d,0xa5,0xec,0x4c,0x26,
+ 0x99,0x4a,0x59,0x96,0x65,0x58,0x96,0xa1,0x69,0x2a,0x80,0x30,0x8c,0x28,0xa5,0x51,
+ 0x14,0x15,0x8b,0x95,0x5c,0x6e,0xba,0x58,0xac,0x38,0x8e,0x4f,0x29,0x23,0x84,0xe8,
+ 0xba,0x69,0xdb,0xc9,0xd6,0xd6,0xf6,0x55,0xab,0xd7,0x9c,0x79,0xe9,0xb6,0xbf,0x78,
+ 0xe2,0xd7,0x3,0xf9,0x89,0xd9,0xc8,0x46,0x29,0xb,0xa2,0xa8,0xd3,0x4e,0xf7,0xd0,
+ 0xc4,0xdd,0x77,0xfd,0x4a,0xae,0xb2,0x48,0xeb,0xc1,0x19,0x2b,0x1a,0xcf,0x9a,0xc0,
+ 0x27,0xa7,0x6e,0xd3,0x0,0xe6,0x3e,0x7d,0x7b,0x95,0x7e,0x99,0x19,0x5f,0x16,0xe7,
+ 0xad,0x9d,0xb0,0x4d,0xd3,0x30,0xc,0x23,0x93,0x69,0xb1,0x2c,0x3b,0x93,0x69,0x31,
+ 0xc,0xc3,0x34,0xd,0xfe,0x2d,0x38,0xcf,0x8b,0x7b,0xf8,0x6f,0xc5,0xf2,0x39,0xc2,
+ 0x58,0x25,0x3b,0x78,0x17,0x80,0x7a,0x4d,0xa7,0x38,0xba,0x1b,0xa8,0xf6,0xb9,0xe3,
+ 0xce,0xbc,0xe3,0x78,0x30,0x6,0x6f,0x8b,0xaa,0x60,0xaf,0x4e,0xec,0xdb,0xb7,0xef,
+ 0x63,0x1f,0xfb,0xd8,0x92,0x25,0x4b,0x3f,0xfe,0xf1,0xbf,0x34,0xc,0x83,0x10,0x10,
+ 0x2,0xcb,0xd2,0x33,0x99,0x64,0x4b,0x4b,0x32,0x93,0x49,0x98,0xa6,0xa1,0xaa,0xaa,
+ 0xaa,0x2a,0x9a,0xa6,0xaa,0xaa,0x42,0x29,0xd,0x82,0x20,0x8,0xa2,0x30,0xa4,0x41,
+ 0x10,0x3a,0x8e,0x17,0x4,0xd5,0xde,0x23,0x84,0x68,0x9a,0xa1,0x69,0x46,0x32,0x99,
+ 0xd9,0xb8,0xf1,0xec,0x2d,0x57,0x5f,0xf9,0x57,0x8f,0xfe,0x6a,0xa0,0x30,0xd1,0xf4,
+ 0xba,0x41,0x18,0x4d,0x95,0x1d,0x0,0xeb,0x33,0xdd,0xbb,0x9e,0x7a,0x6a,0x6a,0x6a,
+ 0x4a,0xe6,0x2d,0x6f,0x34,0xca,0xe1,0xe7,0x22,0x78,0xe7,0x2b,0x75,0x63,0xc2,0xb0,
+ 0x64,0x6f,0xad,0xd2,0xaf,0xb8,0x7,0xf5,0x59,0xa3,0xa6,0x69,0x64,0x32,0x2d,0x6d,
+ 0x6d,0xed,0xb6,0x9d,0x68,0x6b,0xcb,0xda,0x76,0x82,0x13,0xd8,0x34,0x8d,0x19,0xed,
+ 0x8e,0x13,0xbe,0xb8,0xe7,0xf0,0xb8,0x5,0xc0,0xf3,0x7c,0x11,0x51,0xe0,0x38,0xce,
+ 0x42,0xd0,0xbc,0x40,0x4c,0x8a,0xae,0xed,0x4b,0x1,0x40,0x71,0xcf,0xfe,0x7c,0x1f,
+ 0x7f,0xf,0x36,0x56,0x54,0xc7,0xab,0x58,0x61,0xde,0xb3,0x67,0xcf,0xfb,0xdf,0xff,
+ 0xfe,0x35,0x6b,0xd6,0x7f,0xe4,0x23,0x1f,0xeb,0xea,0x5a,0x94,0x4e,0xdb,0xa9,0x94,
+ 0x6d,0x59,0xa6,0xaa,0xaa,0x51,0x44,0x1,0x28,0x8a,0xa2,0x28,0x84,0x10,0x88,0xc9,
+ 0x2d,0x21,0xc4,0x71,0xfc,0x4a,0xc5,0x6b,0x2a,0x30,0x8,0x21,0xba,0x6e,0x58,0x56,
+ 0x22,0x9d,0x6e,0xbb,0xe0,0x82,0x2d,0x6b,0x2e,0x7f,0xed,0xf7,0x76,0x3f,0x5e,0xf1,
+ 0xbd,0xc6,0x23,0x4b,0xae,0x3b,0x9c,0x2b,0x0,0x68,0x33,0x12,0xa3,0x87,0x8f,0xe6,
+ 0xf3,0x79,0xce,0xd5,0xa6,0x22,0xb7,0x91,0xc0,0xcf,0xe2,0x61,0xe7,0xa2,0x2e,0xb7,
+ 0x4b,0xc9,0xe9,0x7e,0x0,0x5c,0xd7,0xf1,0x3c,0x3f,0xed,0x3c,0x24,0x4b,0x5d,0x9e,
+ 0xbf,0xc2,0x45,0x6e,0x26,0xd3,0x2,0x80,0x2f,0xcd,0xcc,0x1b,0x6d,0x6d,0xd5,0x52,
+ 0xa3,0xa6,0x69,0xd8,0x96,0x3d,0x18,0x6c,0x42,0x71,0x8f,0x2c,0xae,0x9b,0x8e,0xbf,
+ 0x5,0xa0,0x3e,0x80,0x19,0x80,0xe8,0xb7,0xcc,0xe2,0xd,0x8e,0xeb,0xd8,0x9,0x5b,
+ 0x7e,0xeb,0xe1,0xd5,0x9d,0x2a,0xb4,0x77,0xef,0xde,0x4f,0x7e,0xf2,0x53,0x97,0x5f,
+ 0x7e,0xf5,0x47,0x3f,0xfa,0x17,0x8b,0x16,0x75,0xb4,0xb4,0x24,0x5b,0x5a,0x92,0xad,
+ 0xad,0xa9,0x6c,0x36,0x95,0x4c,0xda,0xaa,0xaa,0x7a,0x5e,0xe0,0xfb,0x41,0x14,0x55,
+ 0x5,0xac,0xef,0x87,0x9e,0x17,0xf8,0x7e,0xe8,0xba,0xbe,0xe3,0xb8,0x9c,0xdb,0x31,
+ 0x10,0x42,0x14,0x45,0x55,0x55,0x2d,0x91,0x48,0xb5,0xb4,0x74,0x6c,0x79,0xcd,0x85,
+ 0xc3,0x9d,0xe9,0xc7,0x4e,0xc4,0x33,0x6d,0xfc,0x30,0xbc,0x67,0xf7,0xfe,0x20,0x8a,
+ 0x0,0xe8,0xaa,0xe6,0xe5,0xa6,0xb,0x85,0x2,0xf7,0xc9,0xc7,0x64,0x2f,0x87,0x50,
+ 0x98,0x65,0x32,0x9f,0xea,0xf3,0xce,0x4a,0x5d,0x59,0xe9,0x12,0x3,0x88,0x47,0x41,
+ 0x56,0x99,0xc6,0x87,0x51,0x71,0xf,0x32,0xeb,0x79,0x9,0x6f,0xae,0x2a,0xa3,0xe6,
+ 0x63,0xb4,0x24,0x70,0xd9,0xb,0x61,0x56,0xa9,0xfd,0x90,0xb3,0x1d,0xf5,0xa,0xf3,
+ 0xa9,0x3e,0xc3,0xab,0x8,0xb5,0x7e,0x2b,0x8e,0xee,0x6e,0x94,0xba,0xaf,0xe6,0xae,
+ 0x7b,0xf8,0xe1,0x87,0xff,0xfc,0xcf,0xff,0x7c,0xcb,0x96,0x6d,0xef,0x7b,0xdf,0x7,
+ 0x0,0xe6,0xba,0x7e,0xa9,0x54,0x9e,0x9a,0x9a,0xae,0x54,0x1c,0xc6,0xa0,0x69,0x8a,
+ 0xae,0xab,0xba,0xae,0x12,0x42,0x28,0x65,0x5c,0xd4,0x45,0x11,0x75,0x1c,0xaf,0x54,
+ 0x2a,0x7,0x41,0x38,0x1f,0xe2,0x98,0xa6,0xd5,0xd9,0xd9,0xf5,0xda,0xcb,0xaf,0xf8,
+ 0xde,0xd1,0xbd,0x39,0xa7,0x2c,0xf6,0xfb,0x41,0x78,0xdf,0xee,0xa7,0xf,0xc,0x8d,
+ 0xf2,0x8f,0x3a,0x51,0x13,0x9a,0x71,0xe4,0xc8,0x91,0x20,0x8,0x62,0x4b,0xb,0xc8,
+ 0x72,0xf8,0xb9,0xab,0xcd,0xcd,0x35,0x2b,0x51,0xfc,0x11,0xb5,0xe8,0x65,0xd9,0xce,
+ 0xe9,0x79,0x3e,0xac,0x99,0x61,0xb4,0x7f,0x70,0x5a,0xcc,0x63,0x45,0x44,0x9e,0x58,
+ 0x9a,0x99,0xd3,0xde,0xb2,0x2c,0xc7,0xa9,0xf0,0x6f,0xfb,0xc8,0x76,0x20,0x5,0x60,
+ 0xff,0xe0,0xb4,0xb8,0xa2,0xac,0x30,0x2f,0x94,0x44,0xe3,0x68,0xa2,0xc2,0xd5,0x5e,
+ 0x97,0x83,0xc1,0x5b,0x62,0xdf,0xc4,0x12,0xf,0x5e,0x55,0xf8,0xd9,0xcf,0x7e,0xf6,
+ 0xc9,0x4f,0x7e,0xd2,0x75,0xcb,0x53,0x53,0xb9,0xdb,0x6f,0xff,0x89,0xe7,0xf9,0xbe,
+ 0x1f,0x2,0x4c,0xd7,0xf5,0xf6,0xf6,0xf6,0xe5,0xcb,0x97,0x9f,0x77,0xde,0x79,0x5b,
+ 0xb7,0x5e,0xbc,0x66,0xcd,0x5a,0xcb,0x32,0x54,0x55,0xd5,0x75,0xee,0x10,0x62,0x94,
+ 0x32,0xdf,0x8f,0xe6,0xcf,0x1a,0xd3,0xb4,0xd7,0xae,0xdd,0xb0,0xff,0x9c,0xbd,0xdf,
+ 0xd8,0xfe,0xc0,0xf5,0x17,0x5d,0x5,0x20,0xa2,0xf4,0xf1,0x83,0x83,0x8f,0x3c,0x73,
+ 0x58,0x1c,0xa3,0x12,0x92,0xd4,0x8c,0xc1,0xc1,0xc1,0x30,0xc,0x79,0x5c,0x20,0x8f,
+ 0x6c,0x13,0xd1,0x97,0xaa,0xaa,0xf2,0x3d,0x3c,0x48,0x83,0xab,0xee,0xcf,0xf,0x75,
+ 0x1b,0x8b,0x2d,0xd7,0x6c,0xbf,0x15,0xae,0x2d,0xcf,0x1c,0xda,0x6c,0x18,0xc5,0xc2,
+ 0x7a,0x6c,0xdb,0xae,0x15,0x76,0x4d,0x70,0xd1,0x5a,0xb2,0xb7,0xa2,0x78,0x23,0x32,
+ 0xeb,0x4b,0xee,0x46,0x7e,0x8c,0xb0,0x91,0xca,0x6b,0xb1,0x2f,0x20,0x86,0x9e,0xc4,
+ 0x9,0xf1,0xba,0xc4,0x58,0x75,0x67,0xa3,0x79,0xf9,0xd5,0x36,0xd1,0x7d,0xe4,0x91,
+ 0x47,0xbe,0xf5,0xad,0x2f,0xbc,0xe1,0xd,0x27,0xb6,0x6c,0x81,0xaa,0x16,0x75,0x1d,
+ 0x86,0x1,0xd3,0x84,0x6d,0xc3,0xb2,0x0,0x1c,0x39,0x7e,0xfc,0xf1,0x7,0x1e,0xb8,
+ 0xf9,0xd6,0x5b,0x6d,0xdb,0x5e,0xba,0xf5,0x82,0x37,0x5e,0x74,0xd1,0x25,0xbd,0x7d,
+ 0xab,0x17,0x2f,0x5e,0x44,0x88,0xa2,0x69,0xaa,0x61,0x68,0x9e,0x17,0x9c,0xf4,0x2a,
+ 0x1c,0x8a,0xa2,0xa4,0x52,0x2d,0x97,0x5c,0x72,0xd9,0x3f,0xdc,0xff,0xe0,0xe3,0x47,
+ 0x7,0x16,0xdb,0x99,0x1d,0x47,0x8e,0xee,0x1a,0x1c,0xa,0x25,0x65,0x5b,0x51,0x14,
+ 0x5b,0x33,0x46,0x47,0x46,0x39,0x8f,0x14,0x9,0xaa,0xaa,0x72,0xa2,0xf2,0x7a,0x6f,
+ 0x9c,0xc6,0xcf,0xee,0xa9,0xc3,0x30,0x6c,0xfe,0x6f,0x9e,0x8d,0xb7,0xdc,0x1,0x9b,
+ 0xcb,0xe5,0x32,0xe7,0x6e,0x40,0xf1,0x36,0x64,0xd6,0x23,0xb3,0x3e,0xb7,0x6f,0x12,
+ 0xe8,0x41,0x33,0xe5,0x2d,0x56,0x92,0xce,0xb2,0xec,0xaa,0xb,0x37,0xb3,0x1e,0xc5,
+ 0x3d,0xb9,0xe2,0x19,0x40,0x42,0xd6,0xb1,0x5,0x5e,0x6d,0xe3,0xaf,0x11,0x72,0x2,
+ 0x73,0x5d,0x19,0xd7,0xcc,0x7a,0x0,0x87,0xc7,0x2d,0xdb,0x9a,0xe9,0xf0,0x98,0x79,
+ 0xf9,0x55,0xd2,0x7b,0x8c,0xb1,0xdb,0x6e,0xbb,0xed,0x1f,0xff,0xf1,0xaf,0xdf,0xff,
+ 0xfe,0x81,0x77,0xbf,0x1b,0x73,0xc4,0xd1,0xbe,0xeb,0x5d,0xfe,0xe4,0xa4,0xbf,0xfb,
+ 0xc1,0xe2,0xa1,0x1d,0xfe,0xaf,0xfe,0xef,0xf6,0x27,0x8f,0xe2,0x9c,0x73,0xcf,0xfb,
+ 0xed,0xdf,0x7e,0xeb,0xf2,0xe5,0xcb,0x93,0x49,0x6e,0x28,0x9d,0x2f,0x7b,0x55,0x55,
+ 0xed,0xed,0x5d,0xde,0xb7,0x6e,0xfd,0xe7,0xee,0xb8,0x75,0x53,0x4b,0x1f,0x6d,0x96,
+ 0x27,0x68,0xa8,0xda,0x54,0xa1,0xc0,0xa9,0x4b,0x8,0xe1,0x11,0x32,0x8a,0xa2,0x30,
+ 0xc6,0x44,0xa8,0xc,0xff,0xf8,0x5c,0x42,0x23,0xe3,0x73,0x5d,0x7e,0x3d,0xc1,0x5b,
+ 0x93,0x8e,0xb,0xeb,0x14,0x57,0x95,0x9d,0x8a,0x93,0xcb,0xe5,0xba,0xad,0x81,0xaa,
+ 0x4,0xa8,0x47,0x6c,0x91,0xc8,0x46,0x78,0x9e,0x7f,0xfe,0xa2,0x5d,0x0,0x90,0x59,
+ 0x7f,0xa2,0xd4,0x26,0x47,0x14,0x2c,0xc4,0x30,0xb,0xf0,0x0,0x66,0xf1,0x91,0xbf,
+ 0xd7,0x72,0x45,0xf,0xa8,0x9a,0xf4,0xf9,0xf4,0x24,0x66,0xa3,0x2,0x10,0x4,0xc1,
+ 0xab,0x84,0xb7,0x0,0x6e,0xb9,0xe5,0x96,0x4f,0x7e,0xf2,0xe3,0xd7,0x5f,0x3f,0xf0,
+ 0x9e,0xf7,0xcc,0xc5,0x5b,0x0,0x4,0xe8,0x0,0xb9,0x74,0xcd,0xba,0xeb,0x3e,0xf0,
+ 0xc7,0xd7,0x7f,0xec,0x83,0x9f,0xbb,0xae,0xeb,0xc0,0x23,0x3f,0xbe,0xee,0xba,0xff,
+ 0xf9,0xcb,0x5f,0xde,0x59,0xa9,0x78,0xb6,0x6d,0x9a,0xe6,0x29,0xe4,0xab,0xe9,0xba,
+ 0x71,0xe9,0x65,0x97,0xef,0x29,0x8e,0x15,0xdc,0x72,0xd3,0x3,0x54,0xa2,0x38,0x8e,
+ 0xe3,0xfb,0xbe,0x98,0xee,0x72,0x59,0xd8,0xe8,0x22,0x8a,0x5,0x6c,0xcc,0x13,0x55,
+ 0x79,0xde,0xf8,0x5,0x7f,0xdf,0x73,0xee,0x4d,0xf9,0xe9,0xad,0xf6,0xf7,0xb6,0xda,
+ 0xdf,0xeb,0xd4,0x6,0x39,0x6f,0x65,0x77,0xa2,0x6c,0x25,0x6e,0xf2,0x0,0xf5,0x22,
+ 0x97,0xcb,0xed,0x74,0xba,0xea,0xde,0x18,0x76,0xfb,0xf9,0x7e,0xc3,0x30,0x62,0x36,
+ 0xd2,0x85,0xbc,0x3f,0x39,0x82,0xd,0x35,0xa9,0x9b,0xcd,0x98,0x0,0xb8,0x71,0x1,
+ 0x35,0xa3,0x20,0xcf,0xb0,0xe7,0x87,0xbd,0x7a,0xba,0x2e,0x8a,0xa2,0x3b,0xef,0xbc,
+ 0xe3,0xeb,0x5f,0xbf,0xfe,0x1b,0xdf,0x18,0x7d,0xeb,0x5b,0x71,0x92,0x87,0xe,0xc1,
+ 0x86,0x54,0x36,0xb9,0x19,0x3d,0x9f,0x53,0x53,0xbf,0x95,0xa,0x4f,0x6c,0x5e,0x6e,
+ 0xdd,0xf8,0xb9,0xd7,0xfd,0xf9,0xef,0xf6,0x7e,0xee,0x93,0x1f,0xfc,0xf2,0x97,0xbf,
+ 0x38,0x3e,0x3e,0x91,0x4a,0x59,0xc9,0xa4,0x35,0x7f,0xd1,0x17,0x45,0x5e,0xcb,0xd2,
+ 0xc5,0x83,0xd3,0x4d,0x16,0x58,0xe4,0xa0,0x51,0x14,0x4,0x81,0xa0,0x2e,0xa5,0x34,
+ 0xb6,0x14,0x66,0xcc,0xc2,0x7c,0x2a,0x4f,0xf,0x0,0x41,0x10,0xd4,0x51,0x37,0xe6,
+ 0xca,0x17,0xa6,0x29,0x0,0xe7,0x2f,0xda,0xd5,0xaa,0xe,0x3b,0xae,0xd3,0x74,0x3d,
+ 0xc8,0xa6,0x10,0xbc,0x95,0x83,0xa,0x3a,0xb5,0x41,0x0,0xc8,0xac,0xdf,0x75,0xdc,
+ 0x10,0x16,0x69,0xe,0x21,0x75,0xe5,0x51,0xfb,0xea,0x44,0xd3,0x30,0x18,0x11,0x5,
+ 0xc9,0x63,0xaa,0xea,0xa,0x95,0xd4,0xf0,0x6a,0xe8,0xba,0x30,0xc,0x7f,0xf0,0x83,
+ 0xff,0xfc,0xd2,0x97,0x3e,0xfc,0x89,0x4f,0x8c,0xbc,0xe1,0xd,0x27,0x3b,0x3a,0x0,
+ 0x8e,0xa9,0x98,0x3a,0xf,0x8b,0x3e,0x6,0xf3,0x22,0x4c,0x3c,0x81,0xc9,0x1d,0x8,
+ 0x7d,0x93,0xfa,0xef,0xb9,0xba,0xff,0xfb,0x7f,0x79,0xc9,0xd1,0xa7,0x7e,0xfa,0xb9,
+ 0xcf,0x7e,0x7a,0x74,0x64,0x3c,0x99,0xb4,0xd2,0x69,0x7b,0x3e,0xe4,0x8d,0x22,0x3a,
+ 0x32,0x32,0xbc,0x7c,0xf9,0xf2,0xdd,0xc5,0x78,0xfa,0x34,0x7,0x65,0x8c,0x87,0xfd,
+ 0x73,0xff,0x10,0x27,0xb0,0xcc,0xde,0x46,0x1f,0xef,0x29,0x3d,0x3e,0x6f,0x34,0x91,
+ 0xba,0x31,0xc3,0xa6,0x10,0x8f,0x57,0xad,0x7a,0x7a,0x45,0xe7,0xac,0x31,0xcc,0x4d,
+ 0xe1,0x38,0x4e,0x6c,0x75,0xa2,0xaa,0xb6,0xc,0xc8,0xd5,0xad,0x84,0xdc,0x10,0x25,
+ 0xe6,0x4e,0xe9,0x2a,0xaf,0x54,0x34,0x9,0x83,0x1,0x50,0x8b,0xa9,0xe2,0x73,0x8d,
+ 0x98,0xc2,0xfc,0x8a,0xf,0xa5,0xa2,0x94,0x7e,0xff,0xfb,0xdf,0xff,0xc7,0x7f,0xfc,
+ 0xfc,0xd7,0xbf,0x3e,0xfe,0xe6,0x37,0x9f,0x4c,0xde,0x52,0xe0,0x84,0xc2,0xbc,0xf3,
+ 0xb0,0xec,0xb,0x48,0x5e,0x46,0x46,0x7e,0x83,0x3,0x37,0xa0,0x3c,0x81,0xc0,0x43,
+ 0xe0,0x2b,0x51,0x74,0xfe,0x19,0x6d,0x5f,0xff,0xf3,0x8b,0xcc,0xf2,0x8e,0x3f,0xfb,
+ 0xb3,0x3f,0x2a,0x16,0x4b,0x89,0x84,0x69,0xdb,0x27,0x9f,0xb5,0x1d,0x3f,0x7e,0xb8,
+ 0x50,0x28,0xf4,0xf6,0xf6,0x4e,0xc0,0x2d,0xf9,0x4d,0x18,0x11,0xd0,0xd0,0x4e,0x26,
+ 0x84,0xc2,0x2c,0x1c,0xbc,0x72,0x84,0xc6,0xb3,0x53,0x95,0x5,0xa2,0x28,0x6a,0xee,
+ 0xd7,0x15,0x7c,0x33,0xa3,0x91,0xa1,0x62,0x5a,0xec,0xbf,0x6a,0xd5,0xd3,0x2b,0x3a,
+ 0x9c,0x15,0x1d,0xf3,0xa,0x33,0xe6,0x85,0x2f,0xc4,0xba,0x44,0xae,0xeb,0x54,0x45,
+ 0x2e,0x30,0xec,0xf6,0xb,0xa1,0x21,0x2f,0xb7,0x21,0xf0,0xca,0x1e,0x7f,0x1c,0xfc,
+ 0x19,0x67,0xdb,0xa2,0x7e,0x81,0x3f,0xdf,0xf7,0x7b,0x32,0x25,0xde,0x96,0x23,0x99,
+ 0x5d,0x69,0xfe,0xc2,0xab,0xf3,0xbd,0x82,0xe7,0xba,0x41,0x10,0xfc,0xf8,0xc7,0x3f,
+ 0xfa,0xf1,0x8f,0x3f,0xff,0xc3,0x1f,0xe6,0x2f,0xbc,0x10,0x27,0x7d,0x50,0x56,0xd1,
+ 0x19,0xbb,0xc,0xa9,0x8f,0x10,0x6b,0x33,0x39,0xf1,0x0,0x6,0x6e,0x81,0x6,0x58,
+ 0x9,0x44,0x21,0x0,0x84,0x1,0x18,0x5b,0xdc,0x62,0xfc,0xdd,0x7,0x36,0x77,0xe0,
+ 0xd0,0xff,0xf7,0x47,0xef,0x3f,0x7a,0xf4,0x58,0x32,0x69,0xd9,0xb6,0xa1,0x28,0xb3,
+ 0xa,0x5f,0xc7,0x71,0x76,0xed,0xda,0x49,0x8,0x69,0x6b,0x6b,0xeb,0xe8,0xec,0x18,
+ 0x98,0x1e,0x8f,0x1d,0x40,0x19,0x75,0x42,0xbf,0xa5,0xb5,0x55,0xe,0xc9,0x88,0xb5,
+ 0x1b,0xe3,0xab,0x9e,0x45,0x6f,0x9c,0x24,0x10,0xd2,0x53,0xbb,0xc6,0xc3,0xba,0x74,
+ 0x9f,0x77,0x6e,0x99,0x9c,0xed,0x60,0x1,0x31,0xe0,0x62,0x22,0x57,0xc,0x3e,0xa1,
+ 0x2d,0x37,0x16,0xfe,0xe6,0x22,0xf7,0x95,0x3a,0xfe,0x4,0x39,0x1b,0xb9,0xca,0xfb,
+ 0xaa,0x71,0x39,0xc5,0xa6,0x70,0xdc,0xba,0x17,0x1f,0x87,0xbc,0xac,0xf1,0x2b,0xf,
+ 0x8e,0xe3,0x7c,0xe3,0x1b,0x5f,0xff,0xee,0x77,0xff,0xe2,0x6f,0xff,0xb6,0xb8,0x65,
+ 0xcb,0x9c,0x87,0x32,0x80,0x2,0x81,0x89,0xa1,0xcd,0xb0,0x3e,0x80,0x45,0x97,0x23,
+ 0xb7,0x3,0x23,0x77,0x23,0x72,0xa1,0x68,0xa0,0x80,0x95,0x80,0xaa,0x42,0xd3,0x40,
+ 0x43,0x4,0x6e,0xd6,0xc4,0xd7,0xfe,0xf8,0x82,0x33,0x5a,0x4e,0x7c,0xfa,0x2f,0x3f,
+ 0x31,0x32,0x72,0x22,0x9d,0xb6,0x2d,0xcb,0x6c,0xaa,0x39,0x87,0x61,0x78,0xe0,0xc0,
+ 0xee,0x7c,0xbe,0x4a,0x81,0xb5,0x6b,0xd7,0x8e,0xba,0xc5,0xd8,0x31,0x11,0xa5,0xd3,
+ 0x81,0xb7,0x68,0xd1,0x22,0x31,0xd1,0x15,0xa4,0xe5,0x59,0x9c,0x72,0x54,0x46,0xf5,
+ 0x7e,0x9f,0xaf,0x68,0x2a,0x55,0x55,0xb9,0xe2,0xca,0xe3,0x28,0x0,0xfc,0xe8,0xc0,
+ 0x6b,0xe5,0x3,0xe6,0xc3,0x5e,0xe,0x31,0x5b,0xe6,0x22,0xb7,0xdb,0x1a,0xe0,0xfb,
+ 0x4f,0x94,0xda,0xc4,0x31,0x22,0xf4,0xea,0x15,0xef,0xd1,0xe5,0x6e,0x1b,0x39,0xdc,
+ 0x25,0x90,0x20,0x7f,0x3c,0x69,0x2,0xc6,0x6c,0xb5,0x97,0x5f,0xa9,0x52,0xd7,0xf7,
+ 0xfd,0x6f,0x7e,0xf3,0x9b,0xff,0xfd,0xdf,0xff,0xf0,0x83,0x1f,0x4c,0x5f,0x76,0x19,
+ 0x9b,0xd5,0x1b,0xca,0x0,0xde,0x73,0xd4,0x64,0x7,0xce,0x44,0xf2,0xe3,0x68,0xbb,
+ 0x94,0x8c,0xfe,0x6,0x7,0x6f,0x80,0x5f,0x80,0xae,0xc2,0xb0,0x60,0x5a,0x50,0x54,
+ 0xe8,0x26,0x34,0x1d,0x8c,0xc2,0x9d,0x46,0x39,0x9f,0x46,0xe5,0xa3,0xbf,0xd3,0xd7,
+ 0x16,0xee,0xfd,0xfc,0xe7,0x3f,0xcb,0x18,0x12,0x9,0x93,0xe7,0x15,0xc5,0x70,0xfc,
+ 0xf8,0xc0,0xfe,0xfd,0xbb,0x79,0xe9,0x56,0x55,0x55,0xbb,0xba,0xba,0xa6,0x58,0x5c,
+ 0x61,0xe,0x19,0x2d,0x85,0xee,0xe2,0xc5,0x8b,0x67,0x9b,0xd6,0x3e,0xf7,0xe8,0x65,
+ 0x7e,0xf5,0x3a,0xea,0x36,0xfe,0xd7,0x45,0x0,0xe3,0x1d,0x7,0xcf,0x38,0xa5,0x53,
+ 0xcb,0x26,0x2e,0xce,0x7f,0x21,0x72,0x1f,0x1b,0xdb,0xc8,0xe7,0x69,0xc2,0xb6,0x2c,
+ 0xb4,0x65,0xee,0xa1,0x7e,0xe5,0xd,0x3e,0x21,0x9,0x65,0xde,0xba,0xae,0x1b,0xcd,
+ 0x2,0x34,0x4c,0x74,0x63,0xa8,0xb3,0xf3,0x4b,0x78,0x45,0x4a,0x5d,0xc7,0x71,0xbe,
+ 0xf3,0x9d,0x7f,0xbd,0xf7,0xde,0xaf,0xfe,0xe4,0x27,0xe5,0xb5,0x6b,0x31,0x57,0x11,
+ 0x81,0x8,0x8,0xc0,0x7c,0x83,0xd,0x6d,0x42,0xc7,0xe7,0xc8,0xe2,0x8b,0xc8,0xc4,
+ 0xc3,0x18,0xbf,0x7,0x1a,0x85,0xaa,0x81,0xa8,0x8,0x7c,0x54,0x8a,0x70,0xcb,0x70,
+ 0x4a,0xf0,0x3d,0x80,0xc0,0x4e,0xa3,0xb5,0x13,0x89,0x96,0x96,0x4c,0xf2,0x13,0xef,
+ 0xda,0xb0,0xef,0xd1,0x5b,0x7e,0xf8,0xc3,0x1f,0x10,0x82,0x98,0xbb,0x28,0x8,0x82,
+ 0xc3,0x87,0x9f,0x79,0xf0,0xc1,0x7b,0x82,0x20,0x50,0x14,0x65,0x68,0x68,0x68,0x74,
+ 0x74,0x74,0x7a,0x7a,0xba,0x58,0x89,0xaf,0x9c,0xea,0x47,0xa1,0x92,0x34,0x2d,0xcb,
+ 0x12,0x92,0x96,0x1b,0xa8,0x62,0x21,0x90,0xcf,0x3e,0xfe,0xb1,0xc6,0xe,0xa5,0xe9,
+ 0x2c,0x2b,0x6,0xd3,0x34,0x4e,0x94,0xda,0x1e,0x1b,0xab,0x6,0x3f,0x21,0xbd,0x2e,
+ 0xd6,0xe0,0x66,0x67,0xcf,0xf3,0xf9,0xd4,0xcb,0x95,0x20,0x66,0xb9,0xdd,0xd6,0x0,
+ 0x3f,0x7e,0xcf,0x50,0x2,0xf5,0xf1,0x1b,0x8d,0x13,0xdd,0xb9,0xe7,0x81,0x2f,0xd3,
+ 0x2d,0x97,0xa8,0x82,0xb1,0x8e,0x84,0x7c,0x3e,0x2f,0x4c,0x7a,0x32,0x69,0x85,0xce,
+ 0x12,0xfb,0x8f,0x34,0x95,0xba,0x91,0x54,0x89,0xfe,0x25,0x7f,0xd8,0xe7,0x6b,0x5b,
+ 0x2c,0x16,0xbf,0xf8,0xc5,0xbf,0xfb,0xf9,0xcf,0x3f,0xff,0xd5,0xaf,0xba,0x6b,0xd7,
+ 0x36,0x3e,0x74,0x3d,0x34,0x40,0x51,0x71,0xe2,0x1c,0xd8,0x1f,0x45,0x7a,0x1d,0x4e,
+ 0xdc,0x8f,0xa3,0xbf,0x40,0x79,0xc,0xbe,0x8b,0xd0,0x3,0xa3,0x20,0x4,0x1a,0x1f,
+ 0x78,0x4,0x34,0x82,0xe7,0x22,0xf0,0xe1,0xb9,0x70,0x2b,0x70,0xa7,0x97,0xb5,0xab,
+ 0x7f,0xff,0x7,0x9b,0xbe,0xf3,0xad,0xaf,0xed,0xdc,0xf9,0xa4,0xec,0x28,0xaa,0x54,
+ 0x2a,0x3b,0x77,0x3e,0xf6,0xe8,0xa3,0xf,0x50,0x4a,0xcb,0xe5,0xb2,0xe7,0x79,0x8e,
+ 0xe3,0xec,0xd8,0xb1,0x23,0x97,0xcb,0xb9,0x61,0xbc,0x4a,0x44,0x39,0xf2,0xcc,0xf6,
+ 0x16,0x4d,0xd3,0x18,0x63,0x9c,0xb7,0x41,0x10,0xf0,0x36,0xab,0xd5,0x3c,0xe1,0x26,
+ 0xab,0x39,0x9e,0x7a,0xee,0x8f,0xd5,0x67,0xe5,0x2a,0x9c,0x50,0xe4,0x38,0xb8,0xf4,
+ 0xe3,0x8c,0xe2,0xb1,0xc7,0x76,0xc2,0xde,0x33,0x84,0x9e,0x4c,0x7f,0xb7,0x35,0x80,
+ 0xd2,0x3e,0x0,0x48,0xaf,0xe3,0x8d,0x2,0xed,0x91,0x97,0x89,0xe4,0x32,0x96,0xab,
+ 0xc1,0x9c,0xb7,0x10,0x22,0xb7,0xb4,0x4f,0x88,0x5c,0x0,0x7c,0x1,0x31,0x59,0xe4,
+ 0x8a,0x89,0xee,0x2b,0x46,0x74,0x88,0x7,0x91,0x3,0xc2,0x63,0x26,0x0,0xe,0xf9,
+ 0x63,0xd3,0x3,0x4,0x64,0xc3,0xe1,0x1c,0x17,0x9d,0xfb,0x75,0xfc,0xb2,0x80,0xeb,
+ 0xba,0x5f,0xfd,0xea,0x57,0x1f,0x7e,0xf8,0x3b,0x37,0xdd,0xe4,0xf7,0xf4,0xe0,0x24,
+ 0x9e,0x9b,0x8,0x28,0x81,0xd,0x74,0x63,0xe9,0xa7,0x61,0xf5,0x91,0x89,0x27,0x30,
+ 0xfe,0x20,0x88,0xf,0x42,0x10,0x86,0x88,0x2,0xf8,0x15,0x50,0x6,0xc3,0x86,0x4a,
+ 0x60,0x24,0xa0,0x19,0x48,0x28,0x20,0xa,0x8,0xc0,0x18,0xbc,0xa,0xca,0xc5,0xb,
+ 0xd7,0x64,0xde,0x72,0x61,0xf1,0x47,0x3f,0xfa,0xf1,0x27,0x3e,0x71,0x3d,0x80,0x28,
+ 0x8a,0xe,0x1f,0x3e,0xb0,0x73,0xe7,0xf6,0x13,0x27,0x86,0xa7,0xa7,0xa7,0xdb,0xdb,
+ 0xdb,0xa7,0xa6,0xa6,0xa6,0xa7,0xa7,0x35,0x4d,0xab,0x54,0x2a,0xc9,0x64,0xb2,0x51,
+ 0x68,0xe,0x94,0x26,0x3a,0xd6,0x2e,0x36,0xc,0x83,0x52,0x2a,0x97,0x92,0x43,0x2d,
+ 0x64,0x4a,0xc4,0x2d,0xcf,0x81,0x18,0x2b,0x9b,0x92,0x54,0x43,0x4d,0x4,0xf3,0x6d,
+ 0x18,0x86,0xba,0xae,0x7,0x41,0x90,0x4a,0xa5,0xa6,0xa7,0xa7,0x79,0xd2,0xf,0x0,
+ 0xdf,0xf7,0x9d,0x8a,0x73,0xe7,0xbe,0xc5,0x57,0xae,0x43,0x55,0x7e,0x96,0xf6,0xf1,
+ 0x6d,0xab,0x32,0x74,0x78,0xc2,0xce,0x66,0xb3,0x7c,0x51,0x3f,0x0,0x96,0x65,0x73,
+ 0x2,0x73,0xde,0xce,0x88,0xdc,0xd2,0xbe,0x3d,0x43,0x9,0x3b,0x1,0xd9,0x40,0xc5,
+ 0xa9,0x1b,0x8b,0x9b,0x17,0xb7,0x14,0xd6,0xc2,0xfa,0x5e,0x8e,0x5b,0xf1,0x8,0xd5,
+ 0xa1,0x55,0xcf,0xdb,0x46,0x66,0x5a,0x96,0xc5,0x77,0xca,0x6a,0x48,0x5d,0x14,0x64,
+ 0xed,0x75,0x29,0x20,0x87,0x64,0xcc,0x7,0xa7,0x43,0xb7,0xcc,0x73,0x3b,0x3d,0x3d,
+ 0xfd,0xad,0x6f,0x7d,0x73,0xcf,0x9e,0x6f,0xfd,0xf8,0xc7,0x41,0x6f,0xef,0xc9,0x1f,
+ 0x8d,0x45,0xc0,0x74,0x3f,0x7a,0x3f,0x46,0x40,0x70,0xec,0x3e,0x8c,0x3c,0x8c,0xca,
+ 0x4,0xcc,0x4,0x54,0x1d,0x8a,0x2,0xd5,0x84,0x69,0x83,0x32,0xe8,0x6,0x34,0x3,
+ 0x8c,0x81,0x86,0xa0,0x11,0xfc,0x32,0x2,0x17,0x51,0x8,0xdd,0x42,0x6b,0x27,0x51,
+ 0xf5,0x77,0xbd,0x21,0xf9,0x3f,0x3f,0x7d,0xfb,0xbf,0xfc,0x4b,0x36,0x91,0x48,0x28,
+ 0x8a,0x52,0x2a,0x95,0xb8,0x84,0x3c,0x74,0xe8,0x50,0xb1,0x58,0x4c,0xa7,0xd3,0xe3,
+ 0xe3,0xe3,0xd9,0x6c,0x96,0x52,0xea,0xba,0xae,0xa9,0xd6,0xd9,0x59,0xbd,0x28,0xd8,
+ 0xef,0x8c,0x5d,0xbd,0x62,0x2b,0x5f,0xbc,0xd2,0x30,0xc,0x51,0x99,0x98,0x6f,0x35,
+ 0x4d,0x23,0x84,0x88,0xad,0xd8,0x23,0x4f,0x15,0x67,0x1b,0x48,0x62,0xcb,0x49,0x1a,
+ 0x9f,0x55,0xf2,0xa1,0xc6,0xd9,0xcb,0x33,0x7,0xf8,0x30,0x72,0x5d,0xa7,0xb5,0xad,
+ 0xa5,0x90,0x9f,0xba,0x77,0x67,0xe9,0x9d,0x57,0xcc,0xf0,0x16,0xe9,0x75,0xa8,0xc5,
+ 0xc2,0x37,0x6,0x9,0xf8,0xbe,0x6f,0x18,0xc6,0xf9,0x8b,0x76,0xf1,0x83,0x7f,0x3a,
+ 0x70,0xa5,0x9d,0xf0,0x51,0x9b,0xe5,0xca,0x22,0x17,0x92,0x3b,0x37,0x26,0x28,0xea,
+ 0xde,0x34,0xd2,0xeb,0xe7,0xf4,0x9f,0x12,0xcb,0x46,0x29,0x61,0x31,0x16,0xa4,0x15,
+ 0x9c,0x6c,0x35,0x8a,0x5d,0xda,0x1,0x0,0x83,0xee,0xa5,0x90,0x8,0xdc,0x4,0xbc,
+ 0xc3,0xc7,0x66,0x76,0x58,0xcd,0x34,0xe7,0x20,0x8,0x62,0xbe,0xf1,0x97,0x51,0xa7,
+ 0x71,0xe4,0xf3,0xf9,0x2f,0x7d,0xe9,0x8b,0x7,0xf,0x7e,0xf7,0x2b,0x5f,0x9,0xfb,
+ 0xfb,0xe7,0xf1,0x3,0x6,0xc,0x2e,0x43,0xdb,0x87,0xc1,0xda,0x30,0xb6,0x1f,0xc5,
+ 0x43,0xb0,0xc,0xd8,0xbd,0x20,0x4,0x81,0x57,0x3d,0x40,0xd3,0xc1,0x18,0x7c,0x7,
+ 0x9e,0x3,0xc6,0x40,0x0,0x45,0x5,0x21,0x48,0xb5,0x41,0xd5,0x41,0x80,0x30,0x40,
+ 0xa5,0xb8,0xb8,0xc5,0x78,0xed,0xd9,0xad,0x3f,0xbf,0xfd,0xd6,0xf3,0x2f,0x78,0x4d,
+ 0xb1,0x58,0x6c,0x6d,0x6d,0xf5,0x3c,0x8f,0x52,0xaa,0x69,0xda,0xf0,0xf0,0xf0,0x92,
+ 0x25,0x4b,0xf8,0x7f,0x30,0x8a,0xa2,0xb1,0xb1,0xb1,0xb4,0x6e,0x8a,0x5b,0x8,0x69,
+ 0x74,0xff,0xc8,0x81,0xe4,0xa2,0xec,0xda,0x75,0xeb,0xe4,0x5b,0x23,0x12,0xe6,0xd8,
+ 0x33,0xff,0xce,0xa9,0xfe,0x2b,0x63,0x7b,0xc5,0xff,0x58,0xfc,0xef,0x6b,0x19,0xf3,
+ 0xd5,0x6c,0xdb,0x9c,0xdb,0x73,0xc7,0xe,0xf7,0xaa,0x73,0x25,0xf6,0xa2,0x5a,0xa4,
+ 0xa6,0xd1,0x76,0xe2,0x79,0xfe,0x9b,0x37,0x1e,0x43,0x9,0x0,0x86,0xdd,0x7e,0x9e,
+ 0x75,0x14,0xcb,0xe9,0x85,0x94,0x68,0x2a,0xc6,0x1c,0x6f,0x70,0x25,0x93,0x37,0xc4,
+ 0x47,0xd4,0x5b,0x7d,0x4e,0xe7,0xb1,0x28,0xf3,0x96,0xef,0x11,0xf3,0x7f,0x0,0xae,
+ 0xeb,0x9c,0x93,0xdd,0x5d,0xd3,0x47,0x6,0x90,0x5e,0xb7,0x7f,0xb0,0x62,0xdb,0x9,
+ 0x79,0x11,0x53,0x19,0x33,0xca,0xe,0x36,0x36,0x7e,0x2b,0x20,0x8c,0xd5,0xa2,0xdf,
+ 0xe4,0x9b,0x79,0x59,0xc0,0x71,0x9c,0x2f,0x7e,0xf1,0x8b,0x7b,0xf7,0xfe,0xc7,0x4f,
+ 0x7e,0x12,0x2e,0x5a,0x74,0x32,0x3d,0x19,0x40,0x4,0xb6,0xa7,0x17,0x4b,0xbe,0x0,
+ 0x63,0x39,0x99,0xd8,0x7,0xf7,0x28,0x34,0x8a,0x80,0xa1,0x9c,0x83,0x99,0x0,0x5,
+ 0xdc,0x22,0x40,0x40,0x14,0x28,0x2a,0x74,0xb,0x96,0x5,0x5e,0xf9,0x6,0x4,0x61,
+ 0x0,0x1a,0x41,0x51,0x11,0xf8,0x88,0x22,0x18,0x96,0xa1,0xe9,0xd7,0x6e,0xed,0xf9,
+ 0xcf,0xdb,0xee,0x3a,0xd0,0xd2,0xe6,0xba,0x6e,0x26,0x93,0x31,0xc,0x63,0x78,0x78,
+ 0xb8,0xb5,0xb5,0x75,0x6a,0x6a,0x4a,0xd8,0x9f,0xc,0xc3,0x28,0x14,0xa,0x4b,0x8d,
+ 0xaa,0xca,0x43,0x19,0xdb,0x99,0x3b,0xb6,0xbf,0x32,0xfe,0x87,0x1f,0xf8,0x13,0x31,
+ 0x9e,0xb9,0xb6,0x2c,0x58,0xaa,0x88,0x22,0x1d,0xf5,0x38,0xd5,0xdc,0x3,0x3e,0xec,
+ 0x15,0x34,0x4c,0x8a,0xe4,0xff,0xb1,0xb8,0x9,0x6e,0x6a,0xe6,0x65,0x2e,0xe,0x8f,
+ 0x5b,0x8f,0x1d,0xaa,0x11,0xa6,0xde,0x52,0xe5,0xb8,0x8e,0x53,0x71,0xa,0xf9,0x29,
+ 0x5e,0x5f,0xef,0xe2,0xbe,0x1,0xfe,0xed,0xf0,0xb8,0x73,0xff,0x60,0x3f,0x50,0x55,
+ 0x95,0x9b,0x86,0x61,0x88,0x31,0xc7,0x5f,0x69,0xc2,0x9c,0x23,0x7f,0x94,0x5d,0x29,
+ 0x73,0x4c,0xe2,0x4f,0x9f,0xad,0x78,0xdd,0xc8,0x39,0x58,0xad,0x46,0x71,0x6d,0xe2,
+ 0xb1,0x6b,0xd6,0x1c,0xea,0xee,0xb4,0x85,0xf2,0x72,0xfb,0x81,0x95,0xae,0xeb,0xc8,
+ 0xea,0x71,0x5c,0xf6,0xa6,0xeb,0xde,0xe5,0x8d,0xe0,0x6b,0x26,0xa,0xf0,0x9f,0x8b,
+ 0xee,0x92,0xff,0xb9,0xa7,0xf3,0x36,0x9f,0xcf,0x7f,0xe5,0x2b,0x5f,0x1a,0x18,0xf8,
+ 0xf7,0x1b,0x6e,0xf0,0x17,0x2f,0x3e,0x39,0x6f,0x99,0x43,0xd8,0xd3,0x67,0x62,0xc9,
+ 0xb7,0x48,0x72,0x3d,0x19,0xd9,0x8e,0x13,0xf,0xc2,0x9d,0x42,0x71,0x2,0xf9,0x13,
+ 0x88,0x2,0xf8,0xe,0x10,0xc2,0x4a,0x22,0xd3,0x81,0x4c,0x7,0x52,0xad,0x30,0xc,
+ 0x4,0x2e,0xdc,0x12,0xa6,0x26,0x90,0x1f,0x1,0xa3,0x20,0xa,0x18,0x83,0x6e,0xc2,
+ 0x4c,0x42,0x51,0xa3,0x88,0x75,0xb7,0x1a,0xfd,0x4b,0x5a,0x86,0x8e,0xd,0x14,0x8b,
+ 0xc5,0xc3,0x87,0xf,0x13,0x42,0xf8,0xbf,0x2f,0x8,0x82,0xe9,0xe9,0xe9,0x30,0xc,
+ 0x15,0x45,0x49,0xa7,0xd3,0x85,0x42,0xa1,0xcb,0x6e,0x5,0x40,0x19,0x3b,0x50,0x38,
+ 0xb1,0xd3,0x1d,0x79,0xd7,0x7b,0x7f,0x8f,0x17,0x8e,0x8d,0xa2,0x88,0xe7,0x6,0x11,
+ 0x42,0x78,0x76,0x2e,0x6f,0x47,0x51,0xc4,0xf3,0x75,0x79,0x9b,0x67,0xf3,0x12,0x42,
+ 0xe6,0x6f,0xb2,0x12,0xff,0xc7,0x26,0x86,0x76,0x59,0x8e,0x71,0x1f,0xaf,0xa8,0x56,
+ 0xc3,0xed,0x55,0xb6,0x65,0x1f,0x3c,0x32,0x2c,0xe6,0x5d,0x97,0x9e,0x5d,0xb5,0x9a,
+ 0x8,0xf6,0xf2,0x8f,0x17,0xf7,0xd,0x70,0x47,0xee,0x63,0x63,0x1b,0xef,0xdc,0x57,
+ 0x2d,0x3c,0xdf,0xa8,0x2a,0xf3,0xb7,0x83,0x3c,0xe6,0x9a,0x9a,0x5e,0x39,0xa6,0xa7,
+ 0xa7,0xf9,0x31,0x4d,0x47,0xe4,0xe9,0x9,0xfe,0x44,0x82,0xb7,0x6b,0x13,0x8f,0x6d,
+ 0x5a,0x72,0xb4,0xea,0xe2,0xae,0x19,0xfc,0x1e,0x3b,0xa4,0x95,0x4a,0x33,0x85,0x7,
+ 0x9a,0x2b,0xcc,0xc2,0x3a,0x78,0x2a,0x97,0x16,0xed,0x97,0x45,0x78,0xf3,0xc4,0xc4,
+ 0xc4,0x67,0x3e,0xf3,0x99,0xdd,0xbb,0xbf,0xfe,0x95,0xaf,0x44,0xb3,0x2c,0xdf,0x53,
+ 0x8f,0xa,0xb0,0xef,0xc,0xa8,0x1f,0x86,0xd2,0x8a,0x67,0x6e,0xc5,0x89,0x47,0x11,
+ 0xba,0x88,0x42,0x98,0x49,0xb4,0x2d,0x41,0xcb,0x62,0xa4,0x3b,0x60,0x24,0xa1,0x68,
+ 0x70,0xa6,0x31,0x9d,0x83,0x53,0x44,0x79,0xa,0x9e,0x3,0x45,0x43,0xaa,0x15,0x6d,
+ 0x5d,0x30,0x2c,0xe8,0x26,0x18,0x45,0x29,0x87,0x89,0x63,0xc8,0x8f,0x1c,0xda,0x37,
+ 0xe0,0x4f,0x7,0xd7,0x5d,0x75,0x46,0xd2,0x39,0x1e,0x5,0x7e,0xb9,0x5c,0x1e,0x1f,
+ 0x1f,0x4f,0x26,0x93,0x61,0x18,0x6,0x41,0x50,0x2e,0x97,0x93,0xc9,0x64,0x3a,0x9d,
+ 0xe6,0x13,0xe0,0xa5,0xc9,0x36,0xca,0xe8,0x53,0xb9,0x63,0xf7,0x4f,0x1d,0xbe,0xfc,
+ 0xda,0xab,0xfb,0xfb,0xfb,0x21,0x49,0x51,0x2e,0x69,0x45,0xde,0x9f,0xca,0xd7,0x5c,
+ 0xa8,0xed,0x7c,0x2e,0xb5,0xb2,0xab,0x52,0x77,0x36,0xc4,0xe6,0x4b,0x42,0xf0,0x2,
+ 0xa8,0x56,0x72,0x4c,0xaf,0x3,0xd0,0x6d,0xd,0xfc,0xc5,0x3b,0xd2,0xe7,0xad,0x49,
+ 0xa0,0xc6,0xde,0x25,0xe9,0xfc,0xc5,0x7d,0x3,0x5c,0xa4,0xdc,0xb1,0x23,0x3a,0x9c,
+ 0x6f,0xe7,0xb1,0x53,0xe9,0x74,0x4a,0x96,0xb7,0x82,0xbd,0xc2,0x29,0x22,0xc7,0x3c,
+ 0x37,0x85,0x38,0xac,0x29,0x81,0x4f,0x1f,0xc8,0x22,0x57,0x2e,0xf,0xe4,0xba,0x4e,
+ 0x77,0xa7,0xd,0xd4,0x18,0x98,0x5e,0x7,0xe0,0xb1,0x43,0x1a,0x77,0x98,0x9,0x34,
+ 0x2a,0xcc,0x9e,0xe7,0x57,0x7f,0x52,0x6f,0xa6,0x42,0x6d,0xce,0x1c,0x63,0xbb,0xb8,
+ 0x28,0x67,0x6f,0xec,0x35,0x17,0x33,0x19,0x9c,0x26,0x5b,0xdf,0xf7,0xff,0xe6,0x6f,
+ 0xfe,0xe6,0xd8,0xb1,0x1b,0x6f,0xbc,0x91,0xae,0x5f,0x3f,0xf,0x3d,0xd9,0x1,0x7b,
+ 0xac,0x17,0xe4,0xbd,0xe8,0xb9,0x80,0xe4,0x9e,0x80,0x77,0x1c,0x76,0x2,0x89,0x16,
+ 0x58,0x29,0x98,0x9,0xe8,0x26,0x8,0x41,0x69,0x2,0xd3,0x39,0x84,0x21,0x54,0xd,
+ 0x9a,0x1,0xcd,0x42,0xaa,0xd,0x99,0xe,0x98,0x49,0x68,0x6,0xc0,0xe0,0x94,0x31,
+ 0x71,0x1c,0xb9,0x13,0x70,0xcb,0xa0,0x74,0xfb,0xf6,0x43,0xc5,0xbc,0x97,0x32,0x94,
+ 0xcb,0xd6,0xb7,0x2d,0x4a,0x44,0x86,0x42,0x1,0xe4,0x72,0x39,0xc6,0x98,0x61,0x18,
+ 0xe9,0x74,0x3a,0x99,0x4c,0xae,0x58,0xb1,0x42,0xd3,0xb4,0x62,0xb1,0x98,0xd5,0xed,
+ 0x8c,0x6e,0xef,0x2b,0xc,0xff,0x6a,0x64,0xef,0xb5,0x6f,0x7b,0xf3,0xfa,0xf5,0xeb,
+ 0x29,0xa5,0x3c,0x61,0x8e,0x3b,0x87,0xf8,0x96,0x5b,0x9b,0x75,0x5d,0x17,0x5b,0x4d,
+ 0xd3,0x78,0x3b,0x8a,0x22,0x91,0x62,0x3d,0x9b,0x3d,0x62,0xb6,0x29,0xe1,0x5c,0x5d,
+ 0x89,0x1a,0x7b,0x85,0xda,0x2c,0x8a,0xd4,0xd4,0x21,0xbd,0xe,0xc0,0x55,0xe7,0xaa,
+ 0x1b,0x7b,0xf9,0x35,0x8a,0xdd,0x9d,0x36,0x60,0x73,0x25,0xd9,0xa9,0x38,0xb2,0x49,
+ 0x59,0x98,0x43,0xc5,0x2c,0x97,0x87,0x3a,0xcb,0xee,0x90,0x58,0x2c,0x87,0xec,0x6d,
+ 0xe2,0xf3,0x40,0x9e,0xf,0xcc,0xcb,0xbe,0xaa,0xaa,0x2a,0x66,0x74,0x2f,0xbe,0xec,
+ 0x9d,0x4d,0xcf,0x11,0x88,0xea,0xcb,0x3,0x89,0x28,0x6e,0xa0,0x6a,0x73,0x1a,0x1e,
+ 0x77,0x1e,0x3f,0x94,0x69,0x1a,0xf4,0xde,0xdc,0x5e,0x55,0x6f,0xa6,0x72,0x5d,0xa7,
+ 0xad,0xad,0xdd,0x75,0x5d,0xae,0xa7,0xf1,0x6e,0x5c,0x67,0xdc,0xb9,0xf,0x57,0x42,
+ 0x5a,0x3f,0x31,0x56,0x8d,0xe1,0x25,0x67,0x69,0xe3,0xb6,0x52,0xa9,0x7c,0xf9,0xcb,
+ 0x7f,0x37,0x3e,0xfe,0x83,0x1f,0xfc,0x80,0xd6,0x2a,0xfc,0xce,0x5,0xe6,0x1,0x7,
+ 0x56,0x20,0xfd,0x5e,0xb2,0xfe,0x6d,0x98,0x78,0x4,0x53,0x7,0xc1,0x22,0x50,0xa,
+ 0x42,0x50,0x29,0x81,0x46,0x50,0x55,0x68,0x16,0x12,0x6d,0x0,0x45,0xb9,0x0,0xab,
+ 0x5,0x8a,0xe,0x30,0x30,0x86,0xd0,0x47,0xe0,0xc1,0x77,0xe1,0x55,0xa0,0x1b,0xd0,
+ 0xd,0x10,0x42,0x5d,0xf7,0xc0,0x33,0xc3,0x95,0xc0,0x58,0xd9,0x63,0x53,0xa2,0x5a,
+ 0x6a,0xb0,0xa9,0x3f,0xf1,0xab,0x21,0x9f,0x10,0x32,0x3d,0x3d,0xad,0xaa,0x6a,0x2a,
+ 0x95,0xea,0xec,0xec,0x54,0x55,0xd5,0x30,0x8c,0x7c,0x3e,0x9f,0xcb,0xe5,0xfa,0xad,
+ 0xf6,0x23,0xd3,0xe3,0xf,0x4d,0xd,0xbc,0xe5,0x77,0xdf,0x7e,0xc6,0x19,0x67,0x30,
+ 0xc6,0xf8,0xda,0x1d,0xa6,0x69,0x2,0xd0,0x75,0x9d,0x10,0xc2,0x87,0x3d,0xdf,0xcf,
+ 0xb7,0x96,0x65,0xf1,0x63,0x28,0xa5,0x86,0x61,0xf0,0x69,0x73,0x14,0x45,0x96,0x65,
+ 0xc9,0xd4,0x8b,0x31,0xb1,0x69,0xbf,0x9d,0x84,0xbd,0x8d,0xb0,0x13,0x36,0xd0,0xa4,
+ 0x12,0x7c,0x55,0x9e,0x0,0x0,0x86,0xc7,0x9d,0x9b,0x77,0x64,0x6c,0xcb,0x11,0xb1,
+ 0xca,0xc2,0x16,0x2a,0xd4,0x6f,0x1,0xae,0x4f,0x62,0x66,0xc1,0xce,0x4a,0x63,0x10,
+ 0x82,0xeb,0x3a,0xe2,0xc,0xb2,0x21,0xc7,0xb6,0x6d,0x99,0xbd,0x2f,0xce,0x38,0x43,
+ 0x3d,0x45,0x65,0x73,0x9a,0xdc,0x68,0x8c,0x67,0x3c,0x7f,0xa5,0xd4,0xa5,0xe9,0x75,
+ 0x0,0x6e,0xde,0x91,0xa9,0x75,0x29,0x7f,0x9c,0x53,0xf0,0xf4,0xa0,0xe6,0x87,0x6b,
+ 0x6b,0xcb,0x8a,0x3e,0xb1,0x6d,0x1b,0x11,0x4c,0x3a,0xee,0x38,0x9d,0xe2,0x9d,0x1b,
+ 0x7b,0xc7,0x9d,0xe,0x5c,0x95,0xb7,0xf9,0x7c,0xfe,0xb3,0x9f,0xfd,0x6c,0x2e,0x77,
+ 0xe3,0x57,0xbe,0xc2,0xba,0xbb,0xe7,0x7a,0xde,0x2a,0x18,0xb0,0x77,0x19,0xd4,0xff,
+ 0x17,0xab,0xae,0xc2,0xe8,0x3d,0x18,0xf8,0xd,0x2a,0x39,0x58,0x49,0x10,0x2,0x45,
+ 0xab,0x8a,0x5c,0xa1,0x8e,0x52,0x8a,0x44,0xb,0xa2,0x8,0x9e,0x3,0x4a,0xa1,0x6a,
+ 0x10,0xe9,0x3e,0x89,0xc,0x54,0x5,0x14,0x30,0xcc,0x91,0x3c,0xcd,0xfb,0x89,0x9e,
+ 0x4c,0x39,0xd4,0x4c,0x52,0x99,0xd2,0x69,0xf1,0x8c,0xe,0xed,0x89,0x91,0xca,0x9,
+ 0x25,0x11,0x86,0x61,0x3a,0x9d,0xe6,0xff,0x53,0x4e,0xcb,0x42,0xa1,0xe0,0x39,0xe,
+ 0x65,0xfa,0x5d,0xe3,0x7,0xb6,0x5d,0xf9,0xba,0xb5,0x6b,0xd7,0x72,0x66,0x42,0x62,
+ 0x69,0xac,0xcd,0x7f,0xc8,0x25,0x30,0xdf,0x72,0xf6,0x72,0xd9,0x6b,0x18,0x46,0x4c,
+ 0xea,0xce,0xf1,0x71,0x86,0xb7,0x98,0x87,0xf4,0x10,0x3,0xab,0x91,0x54,0x8d,0xb8,
+ 0xe1,0xae,0xb1,0x2,0xed,0x11,0x11,0x3f,0x62,0x7e,0xb,0x89,0xb7,0x5c,0xd2,0x36,
+ 0xfa,0x4b,0x5c,0xd7,0xe9,0xca,0x4,0x51,0x38,0xac,0x26,0xba,0xa3,0xca,0x4c,0x3e,
+ 0xe4,0x78,0xd8,0x57,0x2c,0x4e,0xc5,0x2e,0x24,0xc4,0xaf,0x18,0x97,0x73,0x3f,0xce,
+ 0xf3,0xb5,0x45,0xbd,0xa,0xca,0x29,0x2a,0x88,0x1a,0xd5,0x15,0x18,0x70,0xc4,0xa3,
+ 0xb5,0x1a,0xf1,0x50,0xf5,0xe1,0x71,0x2c,0x93,0x48,0xfd,0x0,0x0,0x20,0x0,0x49,
+ 0x44,0x41,0x54,0x7,0xd0,0x45,0x6d,0xc7,0xa6,0xd6,0xbb,0xa6,0xe0,0x95,0x5c,0x21,
+ 0x49,0xdd,0xba,0xd9,0x87,0x1,0x4f,0xe9,0x44,0x4d,0x8,0x37,0x6,0x87,0xbf,0x38,
+ 0xbd,0x34,0xcf,0x6d,0xa5,0x52,0xf9,0xfc,0xe7,0x3f,0x3f,0x36,0xf6,0x5f,0xff,0xf5,
+ 0x5f,0xac,0xb5,0x55,0xf8,0x4b,0xf8,0xe2,0xb7,0xcd,0xc0,0x40,0x77,0x76,0x93,0xfc,
+ 0x5b,0xb0,0xf9,0x2a,0x32,0xf9,0x20,0x8e,0x3d,0x1,0x95,0xa0,0x65,0x11,0x54,0x15,
+ 0x7c,0x49,0x3e,0x59,0xd5,0x66,0xc,0x95,0x2,0x8,0xa0,0x59,0x50,0x75,0x44,0x2e,
+ 0x88,0x2,0xd3,0x86,0xef,0x80,0x46,0xd0,0x93,0x30,0x4c,0x10,0xd5,0x75,0xfc,0x23,
+ 0xc7,0x8b,0xfd,0x6d,0x24,0x98,0xf2,0x34,0xbf,0xa8,0x54,0x26,0x61,0xdb,0x29,0x4b,
+ 0xb5,0x98,0xc7,0x98,0xcd,0xcb,0xd3,0x15,0xa,0x5,0x5e,0x4d,0x6a,0x7a,0x7a,0x7a,
+ 0x6a,0x6a,0xaa,0x3c,0x35,0xfd,0x84,0x9f,0x7b,0xf3,0xdb,0xdf,0xba,0x7e,0xfd,0x7a,
+ 0x7e,0xcf,0x5c,0x13,0x46,0xcd,0x85,0xcb,0xb7,0xaa,0xaa,0xf2,0xba,0x36,0x9c,0xa5,
+ 0xa2,0xcd,0xf5,0x6a,0x45,0x51,0xf8,0x5b,0x35,0xac,0xad,0xec,0x5,0x69,0x8c,0xcd,
+ 0xf1,0x31,0x9c,0xad,0x36,0x55,0xc,0xb2,0xba,0x65,0x59,0x76,0xa9,0x34,0xed,0x68,
+ 0xfd,0x40,0xbc,0x1a,0x2d,0x80,0x3b,0x76,0x44,0x8f,0x1f,0xa8,0x0,0x36,0x8f,0xaf,
+ 0xb2,0x13,0x76,0xb5,0x2c,0x46,0xf5,0xb7,0x75,0xbc,0xe5,0x3b,0x5,0x6f,0xf3,0xf9,
+ 0xc9,0xae,0x4c,0xb0,0xa9,0xef,0x68,0xed,0xf0,0xa3,0x75,0xa7,0xc6,0xa1,0xc7,0xe,
+ 0x69,0x87,0xf3,0xed,0xe3,0xe3,0xe3,0xb1,0x73,0xa2,0x26,0x55,0xe6,0xf3,0x2c,0xcf,
+ 0x1d,0x82,0xb4,0x73,0x4,0x1b,0xcb,0xf,0x88,0xd9,0xe3,0xa2,0xee,0xdc,0xb7,0x18,
+ 0xa8,0x1e,0x26,0x2f,0x6f,0x5d,0xf3,0xa5,0xcf,0x9a,0x1d,0x6d,0x5b,0xb6,0x53,0x71,
+ 0xb8,0xdd,0xc1,0x71,0x2a,0x31,0x59,0xbd,0xcf,0xbf,0x52,0xbe,0x93,0xf9,0x3c,0xd4,
+ 0x4b,0x88,0xef,0x7c,0xe7,0xdf,0x26,0x87,0xef,0xfc,0xde,0x3f,0x2d,0x4d,0x4d,0x18,
+ 0xd1,0x89,0x96,0xc8,0x6f,0x67,0x51,0x96,0x91,0x4,0x3a,0xc,0xad,0x65,0x37,0x51,
+ 0x47,0x88,0x1e,0x90,0x68,0x44,0x31,0x2b,0x50,0xc0,0x22,0xc2,0x8e,0x77,0x93,0xa9,
+ 0xab,0xc8,0x59,0xd7,0xa2,0xb0,0x3,0xb9,0xc3,0x10,0x9e,0xed,0x28,0x4,0xa3,0x55,
+ 0xf6,0x72,0x66,0x6a,0x1a,0x54,0x3,0xba,0xd,0xdf,0x81,0x57,0x81,0x6e,0x42,0x37,
+ 0xe0,0x3b,0x50,0x34,0x24,0x32,0x50,0x54,0x50,0xc6,0x4a,0xb9,0xe9,0x92,0x77,0xf8,
+ 0x78,0xa9,0xd7,0x86,0xee,0x4d,0x4d,0x6b,0x96,0x45,0x69,0x10,0x80,0xa4,0xd3,0x29,
+ 0x93,0xda,0x26,0x1,0xa3,0xba,0x6e,0x72,0xd6,0x69,0x9a,0x96,0x4c,0x26,0xa7,0xa6,
+ 0xa6,0x26,0x27,0x27,0x3,0x42,0xaf,0x7d,0xf3,0x9b,0x36,0x6c,0xd8,0x20,0xaa,0xc6,
+ 0x69,0x9a,0x26,0x6c,0x51,0xaa,0xaa,0x6a,0x9a,0xa6,0xd6,0x43,0xde,0xc3,0x2d,0x55,
+ 0x8d,0xe,0xde,0xf9,0xe3,0xe4,0xd4,0xd5,0x75,0xdd,0x75,0x5d,0x39,0x77,0xd4,0x34,
+ 0xd,0x3b,0x1c,0x0,0xe2,0x54,0xb9,0x63,0x47,0x74,0xf3,0xdd,0x7,0x7b,0x7a,0xba,
+ 0xe5,0x95,0x10,0x0,0x58,0x96,0xcd,0xab,0xa8,0x37,0xca,0x93,0x98,0xb0,0xdd,0xb4,
+ 0x24,0x46,0xd7,0x3a,0x9c,0xbf,0x32,0xec,0x19,0x1f,0xb8,0x7f,0xb0,0x5f,0x36,0xc6,
+ 0x72,0xf0,0x19,0xdd,0x8b,0x90,0xa3,0x2f,0x3b,0x69,0x1b,0x17,0xd1,0x44,0x6d,0x82,
+ 0xca,0xc5,0x60,0x8c,0x7b,0x5,0x3f,0x23,0x7f,0xfc,0xd1,0xe3,0x8b,0x1,0x87,0xf7,
+ 0x15,0x37,0xe0,0xc9,0xbe,0xee,0xb9,0xe1,0xb8,0x8e,0xe8,0x64,0x99,0xb7,0x31,0xdb,
+ 0x81,0xc0,0x69,0x5b,0x5a,0x7d,0x74,0x74,0xf4,0x27,0x3f,0xfa,0xfe,0xd7,0xff,0xea,
+ 0xba,0xa4,0x72,0x66,0x45,0x49,0x91,0x94,0xa5,0x28,0xba,0xa2,0x0,0x44,0x3,0x14,
+ 0xbf,0x70,0x5,0x8b,0x7c,0xa6,0x96,0x8,0x3d,0xa4,0x19,0xfb,0x75,0xfd,0x3e,0x32,
+ 0xad,0x63,0x74,0x1b,0x96,0x5d,0x88,0xc9,0x9d,0x28,0x1e,0x85,0x57,0xaa,0xd2,0x55,
+ 0x55,0x11,0x6,0x50,0x54,0x28,0x2a,0x14,0x5,0x66,0x12,0x8a,0x2,0x42,0xc0,0x28,
+ 0xc2,0x0,0xba,0x89,0xc8,0x87,0xef,0x42,0xb7,0x90,0x68,0x5,0x18,0x9c,0x12,0x14,
+ 0x5,0x44,0x1d,0x1e,0x99,0x2a,0x38,0x56,0xbb,0x1a,0x25,0x99,0x3b,0x15,0xa9,0x49,
+ 0xc3,0xf4,0x2b,0x15,0x45,0x51,0xad,0xca,0x48,0x21,0x34,0xa8,0xaa,0x75,0x75,0x2d,
+ 0x49,0x24,0x93,0xdc,0xa9,0xdb,0xd5,0xd5,0x65,0x9a,0xe6,0xd3,0x4f,0x3f,0x3d,0x36,
+ 0x36,0x76,0xd1,0x45,0x17,0x6d,0xdc,0xb8,0x11,0xb5,0x25,0x14,0x84,0xd,0x99,0x87,
+ 0x49,0x35,0x42,0x36,0x2f,0x8b,0xda,0xae,0x82,0xb4,0x2f,0x8,0x75,0x39,0x78,0x58,
+ 0xd5,0x1c,0x72,0x0,0x40,0x36,0x63,0xf2,0xc5,0x75,0x73,0xb9,0x5c,0x4f,0x77,0x8f,
+ 0x9d,0xb0,0x63,0xaa,0x32,0x9a,0x9,0x1,0xee,0x34,0x69,0xe4,0x2d,0x49,0xf6,0xb3,
+ 0xf2,0x40,0xac,0xdd,0xd3,0xbf,0xee,0x62,0xec,0x13,0xec,0x15,0x1,0xc,0xbc,0x4,
+ 0x71,0x63,0x14,0xd1,0xf3,0x88,0xd9,0x82,0x90,0xe7,0x8,0x45,0x8e,0x11,0xd8,0x75,
+ 0x9d,0xdb,0xf,0xac,0xec,0xca,0x4,0x51,0x65,0x78,0xa8,0xb2,0xc4,0xa9,0x4c,0x71,
+ 0xa5,0x57,0xf0,0x36,0xa6,0x95,0xcc,0xd1,0xe1,0x31,0xa9,0xcb,0xdf,0x8c,0xa8,0xd9,
+ 0xa5,0xe4,0xad,0xfc,0xab,0xd3,0xb0,0xfc,0xc8,0x2d,0xb7,0xdc,0x92,0x6d,0x6f,0x3d,
+ 0xeb,0xc2,0xad,0xc4,0xb4,0x14,0xd5,0x54,0x55,0x4b,0x51,0x2d,0x45,0x25,0x84,0x11,
+ 0x0,0x34,0xd1,0xc2,0xa2,0x20,0xc,0x2a,0x11,0xed,0xa5,0xd1,0x36,0xbf,0xf2,0x96,
+ 0xc4,0x23,0xdf,0x50,0xf3,0xf,0x92,0xf6,0x61,0x64,0xb2,0x30,0x93,0xd0,0x54,0xe8,
+ 0x6,0x54,0x3,0x4,0xd0,0x2d,0xa0,0xa6,0x2d,0x33,0x8a,0x28,0x40,0x18,0xc2,0xaf,
+ 0x80,0x52,0xe8,0x26,0x34,0x13,0x56,0x1a,0xbe,0x83,0xd2,0x4,0x74,0x13,0x86,0xd,
+ 0xc3,0x1a,0x1e,0x1a,0x3f,0x3a,0xa9,0xb7,0x25,0x94,0xd6,0x70,0xac,0xa8,0x77,0x12,
+ 0x94,0x4d,0xd,0x6e,0xb1,0xa4,0xeb,0x2a,0x53,0xf5,0x14,0xf1,0x92,0xa9,0x6c,0x7f,
+ 0xb6,0xbf,0x52,0x71,0x28,0xa5,0x1b,0x37,0x6e,0x34,0xc,0x63,0xc7,0x8e,0x1d,0x7b,
+ 0xf7,0xee,0xdd,0xba,0x75,0xeb,0xd6,0xad,0x5b,0x63,0x54,0xe4,0x82,0x97,0xb3,0x54,
+ 0x6e,0x70,0x4a,0xb,0x87,0x90,0xa0,0xab,0x88,0xd0,0x78,0x76,0x52,0x77,0x5e,0x9e,
+ 0x25,0xfe,0xce,0xae,0x8b,0x8f,0xd7,0xfa,0x1,0x90,0x64,0xff,0xf0,0xb8,0xc3,0x1b,
+ 0x0,0x7a,0x32,0xa5,0xa1,0xa1,0x61,0xd4,0xd6,0xe9,0xe4,0x93,0x37,0x31,0x22,0xf9,
+ 0x42,0xbb,0xf2,0x69,0xe5,0xd0,0x22,0xce,0x5b,0x7e,0x1e,0xbe,0xe5,0x5c,0x15,0xed,
+ 0xe1,0x71,0xe7,0xb1,0x43,0x1a,0x2b,0xf,0xf4,0xf4,0xaf,0xbb,0xb8,0x6f,0x80,0x2f,
+ 0xed,0x29,0xfb,0x45,0x4e,0x9a,0xe3,0xfa,0x5c,0x10,0xe3,0x6d,0x2c,0x35,0xca,0x71,
+ 0x2a,0xf9,0xfc,0x24,0xff,0xe3,0x1f,0x1d,0xa7,0x92,0xcf,0xe7,0x20,0xa9,0x15,0xa8,
+ 0x45,0xa4,0x1d,0x9d,0x60,0x43,0x95,0x25,0x9e,0xe7,0x8b,0xc5,0x10,0x67,0x7b,0xbb,
+ 0xc9,0x33,0x58,0xce,0x52,0xde,0x1b,0xdd,0x4b,0xba,0xe4,0x7b,0x6b,0xc,0xc0,0xe2,
+ 0x67,0x10,0xe7,0x39,0x6d,0x45,0xae,0xe7,0x79,0x3f,0xff,0xf9,0x6d,0xef,0x7c,0xfb,
+ 0xe5,0xba,0x99,0x54,0xb5,0x94,0xa6,0xda,0xaa,0x6e,0xa9,0x9a,0xa6,0xaa,0x86,0xaa,
+ 0x1a,0xaa,0x66,0x68,0xaa,0xa5,0x69,0xb6,0x66,0xa6,0x74,0x3d,0xa1,0x9a,0x69,0xd5,
+ 0xec,0xf5,0x37,0xbd,0x3f,0xcc,0x9e,0xc9,0x2a,0x5,0x38,0x53,0xd0,0x54,0x58,0x29,
+ 0xe8,0x16,0x8,0x1,0x63,0xa0,0x11,0xa2,0x0,0x61,0x0,0x67,0x1a,0xd3,0x79,0x38,
+ 0x25,0xb0,0x8,0x46,0x2,0xc9,0x16,0xa8,0x2a,0xdc,0x12,0xa,0x27,0x10,0x38,0x2c,
+ 0xd5,0xc6,0x52,0xad,0x4c,0x37,0x4f,0x1c,0x1b,0x3d,0x78,0x60,0x52,0x27,0x58,0x84,
+ 0xb1,0xc0,0xc8,0x30,0x28,0x44,0x51,0x54,0xe6,0xc1,0x30,0x19,0x8b,0x14,0xdf,0x2d,
+ 0x7a,0xaa,0xa6,0x69,0x94,0x32,0x5d,0xd7,0x93,0xc9,0x64,0x32,0x99,0x1c,0x1d,0x1d,
+ 0xdd,0xbf,0x7f,0xff,0x96,0x2d,0x5b,0x2e,0xbc,0xf0,0x42,0xce,0x5b,0x51,0xa8,0x95,
+ 0xf3,0x56,0x90,0x56,0x40,0xde,0x1f,0xe3,0xb0,0x4c,0xe6,0x67,0xd1,0x7b,0x27,0xa7,
+ 0xae,0x98,0xda,0x89,0xc1,0xe1,0x79,0xbe,0x1d,0xe,0x70,0x49,0xb8,0xeb,0xb8,0x1,
+ 0x80,0x95,0x7,0xaa,0xec,0xad,0x2d,0x69,0xdf,0xb4,0x4a,0x2b,0xd7,0x19,0x10,0xcf,
+ 0x6b,0x73,0xce,0x5e,0xea,0x41,0x12,0xad,0xe2,0x6c,0x62,0xf,0x49,0xf6,0xef,0x3a,
+ 0x6e,0xfc,0xfb,0x4f,0xf7,0xf0,0x6f,0x59,0x72,0xb5,0xe3,0x3a,0x22,0xc7,0x50,0x40,
+ 0xce,0x7a,0x7b,0xbe,0x20,0x72,0xdf,0x45,0xac,0x88,0x4c,0xda,0x7c,0x7e,0xb2,0x58,
+ 0x9c,0x6a,0x35,0x8a,0x5d,0x99,0xa0,0x2b,0x13,0x74,0x6a,0x83,0xe3,0xe3,0xe3,0xc5,
+ 0xe2,0x54,0xb1,0x38,0xc5,0x43,0xa3,0x38,0x99,0xc5,0x93,0x8a,0xd3,0x72,0xab,0xbb,
+ 0xac,0x95,0x70,0xef,0x8e,0xfc,0x76,0x93,0xa5,0xae,0x5c,0xb9,0x9e,0x94,0x9f,0x11,
+ 0xb,0xe,0x1,0x70,0x9c,0x8a,0x38,0xf2,0xf4,0x9f,0xd9,0xca,0xd8,0xbf,0x7f,0x7f,
+ 0x79,0xba,0x74,0xcd,0xd5,0x17,0x6a,0xaa,0xa1,0xe9,0x86,0xaa,0xeb,0xba,0x61,0x6b,
+ 0x9a,0xa9,0xa8,0x3a,0x51,0x75,0x42,0x34,0xa2,0x69,0x44,0xd3,0x35,0xd5,0x50,0x54,
+ 0x8b,0xc2,0x88,0xd4,0x64,0x90,0x59,0xe9,0x6f,0xf9,0x23,0xef,0xcc,0xdf,0xa5,0x9e,
+ 0x87,0xa3,0x7b,0x91,0x1f,0x85,0x57,0x81,0x53,0xc2,0x74,0x1e,0x5e,0x19,0xbe,0x8b,
+ 0x28,0x4,0x21,0xd0,0x4d,0x68,0x6,0x7c,0x17,0xa5,0x49,0x14,0x27,0xe0,0x94,0x0,
+ 0x82,0x54,0x16,0x76,0xb,0x34,0x3,0x11,0xf5,0x8a,0x53,0xe3,0x47,0x47,0x32,0xe9,
+ 0x64,0x56,0xad,0xa8,0x95,0x9c,0x43,0x92,0xac,0x32,0xa9,0x80,0xf9,0x5e,0x48,0x99,
+ 0x62,0xa8,0x84,0x32,0x56,0xac,0x4,0x27,0xa6,0x55,0xd7,0x75,0x53,0xa9,0x54,0x36,
+ 0x9b,0x1d,0x1c,0x1c,0xbc,0xe3,0x8e,0x3b,0xd6,0xad,0x5b,0xb7,0x75,0xeb,0x56,0xce,
+ 0x43,0x1,0x9d,0xaf,0xb1,0xad,0xaa,0xba,0x4,0x4e,0x5d,0xf1,0x95,0xe0,0x6d,0x4c,
+ 0xd8,0x3e,0xeb,0xd5,0xb1,0xe7,0xa5,0x30,0x47,0x51,0x64,0xdb,0x76,0x3e,0x5f,0x75,
+ 0x8,0x99,0xa6,0xe1,0xa0,0x9f,0x13,0x2c,0x37,0xf9,0x28,0x49,0x5e,0x20,0x34,0x5b,
+ 0x19,0xb2,0xdd,0x85,0x1b,0x81,0x63,0x7,0xf0,0xd1,0xef,0xfb,0x7e,0x4f,0xe2,0x38,
+ 0x67,0xa9,0x2c,0x6f,0x5,0xf8,0x57,0x1b,0x7b,0xfd,0xec,0x9b,0xd7,0x93,0x64,0x2f,
+ 0x0,0x32,0xbe,0xf,0xc8,0x80,0xe7,0x33,0x55,0x5,0xda,0xb,0xb2,0x6c,0x47,0x53,
+ 0x25,0xd9,0x95,0xa,0xca,0x2f,0xeb,0x20,0x8b,0x5b,0x58,0x4f,0xe2,0x58,0xed,0x3e,
+ 0xc3,0xb,0x92,0xf6,0xd0,0xc0,0xbe,0x47,0x47,0xce,0x28,0x95,0xa6,0x9b,0x2e,0xf9,
+ 0x2d,0x3b,0xc6,0x65,0x87,0x99,0xd8,0x29,0x17,0xc1,0x15,0x85,0x4a,0x44,0x3f,0x90,
+ 0x64,0x3f,0xab,0x84,0xc0,0xa8,0x53,0x71,0x5a,0xdb,0x5a,0xa4,0x53,0xc5,0xcf,0x20,
+ 0x77,0xb8,0x1c,0x1,0x7e,0xfa,0x60,0xc7,0x8e,0xed,0xaf,0x39,0xef,0x8c,0xce,0xf6,
+ 0xac,0xa2,0x5a,0x84,0xe8,0x8a,0xaa,0x2b,0x8a,0x6,0xc6,0x0,0xd,0x2a,0x3,0x65,
+ 0x20,0x14,0xaa,0xa,0xaa,0x87,0x11,0x8b,0x68,0x14,0x84,0x21,0xa0,0x47,0x46,0xab,
+ 0x91,0x5e,0xce,0xba,0x2f,0xb1,0xe,0xdf,0x4e,0x8e,0x3c,0x89,0x15,0x67,0x21,0xd3,
+ 0x1,0x85,0xc0,0x29,0x43,0x51,0xe1,0x94,0xa0,0x69,0xf0,0x5c,0x0,0x30,0x6d,0x24,
+ 0x53,0x50,0xc,0x68,0x3a,0x40,0xa0,0xa8,0x60,0x8c,0xb8,0x25,0xc6,0xe8,0x8e,0x3d,
+ 0x63,0x2d,0x6d,0xfd,0x8a,0x9b,0x6f,0x73,0x8f,0x95,0x94,0x36,0xc3,0x2b,0x94,0x98,
+ 0x9a,0x22,0x34,0x82,0x5a,0xf6,0xa2,0xb4,0x19,0x85,0x94,0x1e,0x2d,0x84,0x13,0x9e,
+ 0xd6,0x46,0x69,0x47,0x47,0xc7,0x91,0x23,0x47,0x7e,0xfa,0xd3,0x9f,0x5e,0x72,0xc9,
+ 0x25,0x67,0x9f,0x7d,0x36,0x9f,0x77,0x70,0x91,0x2b,0xc4,0x29,0x67,0x29,0x67,0xaf,
+ 0x6c,0xaf,0xe2,0xbc,0x8d,0x5,0x30,0xcb,0x51,0xcd,0x2f,0x2c,0x75,0xb9,0x41,0x5c,
+ 0xde,0x63,0x87,0x3,0x24,0xb9,0x92,0x95,0x7,0xa,0xb4,0xa7,0x3a,0x9e,0xca,0x3,
+ 0x3d,0xfd,0xeb,0x80,0x5d,0x0,0x6c,0xcb,0x16,0xda,0xf2,0x6c,0xe7,0x94,0xe5,0xc9,
+ 0xcc,0xa0,0xac,0xb1,0x17,0xc0,0xf0,0xb8,0xb3,0x6b,0xc7,0xa1,0x9b,0xef,0x3e,0x8,
+ 0x1c,0xf8,0xc6,0x9f,0xae,0xe9,0xe9,0x5f,0xd7,0x5d,0x93,0xc9,0x2c,0xb9,0x9a,0x8f,
+ 0xdd,0x17,0x6d,0x89,0xc0,0x46,0xde,0x76,0x65,0x82,0x4d,0x4b,0x8e,0x91,0x64,0x3f,
+ 0x2b,0x1f,0x15,0x6f,0x1c,0xd1,0xf,0x6f,0xee,0x1c,0xf8,0xee,0x7d,0x19,0xa7,0xe2,
+ 0xc8,0xda,0x87,0x61,0x18,0x3c,0x95,0x8a,0x7f,0xac,0x66,0x74,0xd4,0x4f,0x71,0x5,
+ 0xdf,0xf8,0x64,0xb5,0xe9,0x5c,0x97,0x94,0x9f,0xb1,0xad,0xc5,0x0,0x3c,0xcf,0x37,
+ 0xc,0x43,0x56,0x98,0xc5,0xcf,0x1b,0x79,0x7b,0xba,0x4d,0x74,0xcb,0xe5,0xf2,0xfe,
+ 0xfd,0x7b,0xdf,0xf2,0x86,0x2d,0xaa,0x6e,0xaa,0x9a,0xa9,0x68,0x9a,0xa2,0xa8,0x20,
+ 0x84,0x1,0x60,0x14,0x14,0x20,0x8c,0x31,0x84,0x41,0xc8,0xc0,0x14,0x55,0xd5,0x54,
+ 0x85,0x31,0x25,0x8,0xfc,0x90,0xa8,0x51,0x66,0x99,0x96,0x6c,0x8f,0x92,0x1d,0x89,
+ 0x83,0x37,0x29,0x93,0x27,0x50,0x2e,0x20,0xd1,0xa,0x45,0x81,0x6e,0xc0,0xb2,0xc1,
+ 0x0,0xc3,0x86,0xa2,0x56,0xf3,0xd,0xa0,0x80,0x10,0xd0,0x10,0x9e,0xb,0xc6,0xc2,
+ 0x88,0x1c,0x3e,0xea,0x6a,0xd0,0x32,0x56,0x14,0x8d,0x1e,0xf2,0x93,0x99,0x72,0xa0,
+ 0x6,0x41,0x39,0x6d,0x30,0x1a,0x2a,0x45,0x96,0x6a,0x57,0x8b,0x1,0x49,0xa8,0x6a,
+ 0xf4,0xb3,0x3d,0x7e,0xcb,0xf2,0x74,0x4f,0x4f,0xcf,0xe8,0xe8,0xe8,0x3d,0xf7,0xdc,
+ 0x73,0xe9,0xa5,0x97,0x6e,0xda,0xb4,0x89,0x87,0x22,0xb,0x2b,0x31,0xdf,0xca,0x32,
+ 0x96,0xb3,0xd7,0x30,0xc,0xa1,0x30,0x8b,0x83,0x65,0x3c,0x47,0xde,0x62,0x9e,0x16,
+ 0x66,0xfe,0xc2,0x96,0xf5,0x37,0x47,0xab,0xd2,0xac,0x55,0x79,0x94,0x24,0x2f,0x80,
+ 0xa4,0xdc,0x66,0xe5,0xbc,0xfb,0x5a,0xd1,0x29,0x3e,0x92,0x1a,0xdf,0xfd,0x42,0x87,
+ 0x14,0x8c,0x3d,0x3e,0x1e,0xee,0x3e,0x10,0xdd,0x7c,0xf7,0x1d,0xf2,0x61,0xb2,0xfe,
+ 0x4c,0x92,0xfd,0x42,0xea,0x9e,0x2a,0x62,0x99,0x49,0xf3,0xf9,0x49,0x2c,0x59,0xcf,
+ 0x71,0x2a,0xc5,0xe2,0xd4,0xf9,0x2b,0x59,0x6f,0xa7,0xc6,0xca,0xa8,0xbb,0x2b,0xe9,
+ 0xd5,0x43,0x92,0xfd,0x67,0xad,0xa6,0x8f,0xec,0x3a,0x1,0x20,0x46,0x60,0xce,0x5e,
+ 0xc1,0x5b,0xb1,0xbf,0xa9,0x62,0x82,0x66,0xbe,0x74,0x96,0x5c,0xed,0xb8,0xa3,0x76,
+ 0x2d,0x28,0x55,0x98,0xa9,0xe4,0x52,0xb8,0xb1,0x7,0x3c,0xdd,0x78,0xb,0xa0,0x50,
+ 0x28,0x4c,0xe5,0x47,0xd6,0xad,0x79,0x93,0xa2,0xe8,0x44,0xd5,0x8,0x8,0x21,0x1a,
+ 0xaa,0xeb,0x80,0xf0,0x2d,0x21,0x8c,0x29,0x8a,0xa,0x50,0xa2,0x21,0x8c,0x42,0xc6,
+ 0x28,0x21,0xa0,0x8c,0x1,0x6a,0xa4,0x18,0xb4,0xf3,0x4c,0x4a,0x58,0x6a,0xef,0x7f,
+ 0x29,0xbe,0x87,0xa4,0x2,0xc3,0x6,0xa5,0x20,0x7c,0xe,0xa8,0x80,0x52,0xf0,0xfa,
+ 0x4d,0x34,0xaa,0x26,0x9,0xa9,0x1a,0xd,0xfc,0xdc,0x89,0x49,0x36,0x31,0x91,0xb1,
+ 0x92,0x98,0x38,0x62,0x9b,0xfa,0x84,0x67,0x24,0x55,0x9f,0x32,0xaa,0xb3,0x20,0xaf,
+ 0x64,0xfd,0x72,0xc5,0x34,0x23,0x27,0xa,0xc7,0xa,0xce,0xb1,0x2,0x96,0x67,0xb3,
+ 0x23,0x23,0x23,0x8f,0x3c,0xf2,0xc8,0xf9,0xe7,0x9f,0xbf,0x61,0xc3,0x6,0x48,0x6b,
+ 0x8,0x89,0x69,0x2d,0xe7,0xad,0x50,0x92,0x85,0x86,0x2c,0xeb,0xc9,0x31,0xf6,0x3e,
+ 0x47,0x55,0x19,0xd5,0x27,0x9c,0x7,0x9a,0x5a,0x80,0xf8,0x18,0x3d,0x3c,0x61,0xa3,
+ 0xde,0xa4,0xd4,0x58,0x63,0x9d,0xf,0xfd,0xb9,0x47,0xf,0x3f,0xc3,0xd,0x77,0x8d,
+ 0x7d,0xee,0x9b,0xbf,0xba,0xf9,0xee,0x83,0x4d,0xbf,0x85,0xc4,0xf0,0x93,0xa2,0xb1,
+ 0x6e,0x9b,0xbc,0x47,0xfe,0x6a,0x8e,0x33,0x34,0x26,0xeb,0x9,0xde,0xca,0x37,0x23,
+ 0x4b,0x5d,0x71,0xb7,0x9b,0x57,0x29,0xa8,0x25,0x63,0x70,0xd3,0x15,0xcf,0xa6,0x2,
+ 0xe0,0xfb,0xf1,0x59,0x3a,0x7,0xbf,0x1c,0x7f,0x73,0xf3,0x3d,0xb2,0xc2,0x3c,0xdb,
+ 0xe3,0x37,0x55,0x6d,0x4e,0x43,0xae,0xc6,0xb0,0x77,0xef,0xee,0x25,0x8b,0x52,0xed,
+ 0xed,0x59,0x45,0x35,0x89,0xa2,0x10,0xa2,0x10,0x10,0x30,0x0,0xa4,0x66,0x25,0x6,
+ 0x21,0xaa,0xaa,0xa8,0xaa,0xa2,0xa9,0x9a,0xa6,0x69,0x6,0x23,0x8c,0x29,0x4,0xe0,
+ 0xc2,0x4a,0x5,0x51,0xa2,0xf6,0xd5,0xa5,0x33,0xff,0x7,0xf5,0x42,0x4c,0x1c,0x7,
+ 0xd,0xa1,0x19,0xd5,0x4,0x20,0x2b,0x51,0xb5,0x60,0xa9,0x3a,0x74,0x1d,0x51,0x80,
+ 0xd2,0x4,0xca,0x53,0x13,0xb9,0xe8,0x78,0x5e,0xa3,0xaa,0x99,0x61,0x45,0xc5,0x2f,
+ 0x79,0x44,0xa7,0x51,0x60,0xba,0x93,0x59,0xcd,0x2d,0x19,0x8b,0xe8,0xf4,0x54,0x6b,
+ 0x42,0xf,0x89,0xe6,0x97,0xa,0xf7,0x1c,0x9,0x93,0xe9,0x96,0x72,0xb9,0xfc,0xcb,
+ 0x5f,0xfe,0xf2,0x92,0x4b,0x2e,0x39,0xeb,0xac,0xb3,0x84,0xde,0xdb,0x68,0x8b,0x6a,
+ 0x9c,0xd9,0xca,0xe,0x21,0x79,0x96,0x1b,0xb3,0x2d,0x3f,0x97,0xe,0x3c,0xb9,0xd4,
+ 0xd,0x82,0xa0,0xd1,0xc2,0x6c,0x87,0x3,0xc0,0x4a,0x0,0xbc,0x26,0xb3,0x3c,0xa4,
+ 0x62,0x52,0x57,0x3e,0x8f,0x3c,0x9e,0x84,0x6d,0x59,0xb6,0x9d,0x1e,0x9e,0xb0,0x7b,
+ 0x7a,0x6c,0x7e,0xce,0xc3,0x13,0xf6,0x8a,0xe,0x67,0xd5,0xf2,0xee,0xb,0xce,0xea,
+ 0xe5,0x3f,0x11,0xdc,0x18,0x9,0xd7,0x0,0x27,0xe4,0x93,0x73,0x8d,0x51,0x84,0xfb,
+ 0x89,0x9d,0xb1,0x7b,0x98,0xcd,0x6b,0x82,0x6,0xad,0x32,0x98,0x65,0xc1,0xb4,0x9e,
+ 0xc4,0x89,0xde,0xce,0x5e,0xd4,0x13,0x55,0x36,0x8c,0x43,0x92,0xc3,0xe7,0xad,0x64,
+ 0x77,0x3e,0x96,0xe7,0x1d,0xb2,0x65,0xe3,0x92,0xc5,0x2d,0x14,0xc0,0xe8,0x14,0x39,
+ 0x3a,0xc1,0x7c,0xdf,0xe7,0x31,0x8c,0x32,0xf1,0x78,0x3f,0xcf,0xf6,0x36,0x39,0x3e,
+ 0x1e,0xf2,0x57,0x46,0xc3,0x43,0x55,0x5e,0x8e,0xcb,0x35,0xfd,0xfc,0xf6,0xdb,0x5e,
+ 0x7b,0xe1,0x9a,0x44,0xc2,0x56,0x14,0x55,0xe1,0x9a,0x2d,0x23,0xd5,0x20,0x2a,0xc6,
+ 0xc0,0x8,0x40,0xa1,0x28,0x20,0x2c,0xc,0x2,0x45,0x51,0x54,0x42,0x74,0x55,0x1,
+ 0x8d,0x22,0x42,0xc1,0x7c,0xe6,0x97,0x15,0x35,0x64,0x20,0x51,0x76,0xb9,0xb3,0xe4,
+ 0x2,0x2b,0xbf,0x5b,0x8d,0x22,0x68,0x14,0x61,0x0,0x12,0x82,0x1,0x34,0x2,0x28,
+ 0xc2,0x0,0x61,0xc0,0xcc,0x44,0x98,0xc8,0x1e,0x1b,0xf1,0xc7,0x8f,0x8d,0x74,0xb5,
+ 0x27,0xe8,0x78,0x41,0x33,0x4d,0x97,0x58,0x95,0xc8,0xe8,0x50,0xa7,0x48,0x48,0x7d,
+ 0x35,0xcd,0x2a,0x53,0x61,0x44,0x3b,0x58,0xb9,0x58,0xcc,0xeb,0x66,0xe2,0xae,0x3d,
+ 0x25,0xa8,0xc9,0x3d,0x7b,0xf6,0xbc,0xe9,0x4d,0x6f,0x3a,0xe3,0x8c,0x33,0xc4,0xd4,
+ 0x54,0x88,0x50,0x61,0x8e,0x32,0xc,0x83,0x6f,0x79,0x43,0x36,0x53,0x35,0x6,0x60,
+ 0x3c,0x5f,0x22,0x17,0xf3,0xf7,0xeb,0x42,0x52,0x98,0x3d,0xcf,0x87,0xd9,0xcf,0x77,
+ 0x72,0xa9,0x2b,0xb0,0xa2,0xc3,0x29,0x34,0x59,0x1c,0x7c,0x6,0x73,0xbb,0x70,0xae,
+ 0xff,0xfd,0x6a,0x12,0xb9,0x34,0xf5,0xed,0x15,0xdf,0xa,0x6e,0xfc,0xfc,0xde,0x3d,
+ 0xbc,0x9e,0x8e,0x6c,0x9,0x6b,0x3c,0x7f,0x2c,0x2c,0x81,0xd3,0x3b,0x9f,0xcf,0xcb,
+ 0xab,0x99,0xf1,0x58,0xe,0xf9,0x30,0x99,0x39,0x31,0xde,0x76,0x65,0x82,0xcd,0xab,
+ 0x7a,0x63,0x37,0x23,0x8,0xbc,0xfd,0xc4,0x32,0x2e,0x69,0xc5,0x4e,0xbe,0xc0,0x57,
+ 0x2e,0x97,0xbb,0xf2,0xfc,0xb6,0xcd,0xab,0x14,0xae,0xe3,0xf4,0x76,0x62,0xf3,0x2a,
+ 0xdc,0xb6,0x5d,0x2d,0x16,0xa7,0x32,0x99,0x16,0xf9,0x5a,0x8d,0x3a,0xf3,0xdc,0x8e,
+ 0xf4,0xda,0x23,0x9c,0x5a,0xd8,0xf3,0xe9,0x80,0xf1,0xf1,0xf1,0xdd,0xbb,0x9e,0xfc,
+ 0xa3,0xf7,0xbd,0x5e,0x21,0x2a,0x2f,0x58,0x41,0x0,0x10,0x6,0xc2,0xaa,0x82,0x17,
+ 0xc,0x20,0x88,0x22,0xca,0xa8,0xef,0x79,0x8a,0xa6,0x29,0x44,0x23,0x44,0x65,0x4a,
+ 0x8,0xa,0x2,0x45,0x51,0x82,0xea,0x51,0x8a,0xe6,0x2f,0x7d,0xd,0x99,0x1e,0xb3,
+ 0x47,0x7,0x48,0x47,0x37,0x54,0x15,0x7e,0x0,0xd3,0x4,0x21,0xd0,0x2c,0xd8,0x69,
+ 0xa8,0xfa,0xe4,0x64,0xe9,0xd8,0xf1,0x51,0x77,0xaa,0xbc,0xc8,0x8e,0xd4,0x42,0x8e,
+ 0xaa,0x66,0x5,0xc9,0x80,0xb9,0x36,0x2a,0x6e,0xb9,0x92,0x4c,0x25,0x82,0x72,0xd1,
+ 0xa3,0x96,0xa2,0x6a,0x85,0xa9,0x62,0xc8,0xb4,0x52,0x64,0xef,0x1f,0x1e,0xa9,0x4,
+ 0xe4,0x8a,0x2b,0xae,0x58,0xb1,0x62,0x85,0x6c,0x55,0x6a,0x54,0x92,0x1b,0xed,0xc9,
+ 0xb2,0x37,0xa8,0xd1,0x4c,0xf5,0xdc,0x49,0xcb,0x31,0x5f,0x85,0xb9,0x59,0x34,0x15,
+ 0x50,0x93,0xba,0x2,0x5,0xda,0x13,0x53,0x98,0x79,0x24,0x16,0xf,0x75,0x8a,0x25,
+ 0xc1,0x81,0x17,0xf5,0x4f,0xd4,0xc9,0x4f,0x8e,0x98,0x1c,0x93,0xf1,0x8d,0x9b,0x86,
+ 0xf8,0x4a,0xdc,0x8d,0xd5,0x36,0xa4,0xf4,0x3a,0x27,0x16,0x68,0xc9,0x51,0x28,0x14,
+ 0x0,0x14,0xa,0x85,0x58,0xa,0x21,0x1a,0x92,0xe3,0xa2,0xfa,0xa,0xe6,0x5c,0xbf,
+ 0x15,0xcc,0x6c,0xc4,0xe7,0x6e,0x2c,0xfd,0xeb,0xf,0x7f,0xf9,0x8b,0x7,0xe,0xcd,
+ 0x76,0x40,0x23,0xb8,0x73,0xcb,0x71,0x2a,0xe2,0x66,0x4,0xc4,0xd5,0xe7,0x16,0xa7,
+ 0xc2,0x39,0x34,0xff,0x8b,0x9e,0x26,0xf8,0xc5,0x2f,0x7e,0x91,0x4e,0xd9,0x67,0xac,
+ 0xea,0x5,0x28,0x27,0x29,0x40,0x80,0x8,0xe0,0x2f,0x7e,0x2,0x42,0x40,0xc0,0x14,
+ 0x15,0xa,0x88,0xaa,0x79,0xae,0xe3,0xb8,0x65,0x4a,0x43,0x30,0x0,0xc,0x4,0xd5,
+ 0xe9,0x31,0x0,0x1a,0x46,0x5a,0xa2,0xb2,0xea,0x6a,0x9f,0xb4,0xb2,0x89,0x21,0x38,
+ 0x15,0x66,0x27,0x99,0x95,0x61,0xa9,0xe,0x58,0x69,0x68,0x46,0xae,0x30,0xbd,0x77,
+ 0xcf,0xf0,0xb1,0x23,0xe3,0x49,0x5a,0x2c,0xba,0x74,0xca,0x83,0x91,0x6a,0x8d,0x7c,
+ 0x57,0x53,0x99,0xe2,0x14,0x52,0x16,0xf5,0x82,0x30,0x52,0xad,0x29,0x66,0xb5,0xaa,
+ 0x15,0xd7,0x6a,0xcb,0x66,0xac,0xff,0x7c,0xb4,0x7c,0x64,0x22,0x78,0xeb,0x5b,0xdf,
+ 0xba,0x6a,0xd5,0x2a,0x4d,0xd3,0x38,0xdf,0x4,0x27,0x63,0x8c,0x95,0x3f,0xca,0x26,
+ 0xab,0xa6,0x16,0xa9,0xe7,0x4b,0xe4,0xe2,0x59,0x5b,0x98,0x79,0x48,0x6,0x44,0xe2,
+ 0xae,0x84,0x6c,0x36,0xeb,0xb8,0x4e,0x2b,0xe2,0xf2,0x84,0xab,0xa3,0x8d,0x52,0x77,
+ 0x3c,0xec,0xab,0xd5,0xbd,0x3e,0x39,0x7e,0xf1,0xc0,0x21,0xc0,0xc2,0x2c,0x2b,0xee,
+ 0xa0,0xa1,0x96,0xa2,0x1c,0x11,0x51,0x3b,0xa0,0xae,0xc,0x45,0x63,0xa,0x21,0xea,
+ 0x17,0x3a,0x13,0x8a,0xfd,0xb5,0x9b,0x66,0xbd,0xc9,0x5f,0x3c,0x70,0x88,0xc7,0xa2,
+ 0xdc,0x7c,0xf7,0xc1,0x6c,0xc6,0x14,0x1a,0xfe,0x89,0x52,0x1b,0xd0,0x9c,0x57,0x6a,
+ 0xe5,0x69,0xa0,0x9b,0xab,0xcd,0xf2,0xcd,0x37,0x46,0xad,0xcc,0xde,0x19,0x78,0xd1,
+ 0xc,0xec,0xcf,0x2f,0x82,0x20,0xf8,0xd9,0xcf,0x7e,0xf6,0xc6,0x2b,0x2f,0xd0,0x55,
+ 0x85,0x31,0x80,0x30,0x44,0x84,0x28,0x0,0x51,0xc0,0x8,0x8,0x5,0x18,0x61,0xc,
+ 0x50,0x18,0x8b,0x8,0x83,0xa9,0x6b,0x4,0xaa,0xef,0x87,0x61,0x44,0x69,0x8,0x5d,
+ 0xa5,0xa0,0xe,0x8,0x65,0x81,0x47,0xa0,0x46,0x44,0x9,0x7d,0x3f,0x52,0x92,0xd1,
+ 0xaa,0x37,0x66,0xe,0xde,0x6c,0xb9,0x65,0xc2,0x28,0x4b,0x84,0x8,0x2d,0x66,0x5a,
+ 0xc5,0x92,0xff,0xd8,0x23,0x87,0x87,0xf3,0x74,0x75,0xbb,0xa2,0x69,0x5a,0xae,0x50,
+ 0xe9,0xe8,0xea,0xc,0x2,0x9f,0x6a,0x76,0x34,0x75,0x82,0x41,0x4b,0x99,0xfa,0xd4,
+ 0xa4,0x57,0xd6,0x5b,0xad,0x60,0x6a,0x4a,0xd1,0x53,0x2c,0xf7,0xed,0x1d,0xe6,0x8f,
+ 0x76,0xd2,0xeb,0xde,0xf3,0xfb,0x5d,0x5d,0x5d,0x0,0x84,0xcc,0x94,0x27,0xb1,0x7a,
+ 0x33,0x8,0xb,0xb3,0x1c,0x7d,0xd1,0x68,0x58,0x7e,0xb1,0xa5,0x6e,0xf3,0x2f,0xac,
+ 0x9e,0xd8,0x8e,0x15,0x9d,0x6e,0x2e,0x97,0xe3,0xa9,0x30,0x8d,0x96,0x98,0xa6,0xd3,
+ 0x66,0x81,0x27,0xe,0xd2,0x1f,0xde,0xfc,0xe8,0xf1,0xf1,0x59,0x73,0x6e,0x7f,0xf1,
+ 0xc0,0xa1,0xc7,0xf,0x54,0x50,0x73,0x3e,0x71,0xbf,0x48,0xe3,0x61,0x42,0xc6,0xe6,
+ 0xf3,0x39,0x1e,0xd8,0xe4,0xba,0x8e,0xeb,0x3a,0x3c,0x52,0x82,0x7,0x4b,0x88,0xb0,
+ 0x27,0x21,0x8a,0xe5,0xc,0x7e,0x48,0xaf,0x0,0xfe,0x73,0x1e,0x34,0x32,0x1b,0x64,
+ 0xbb,0xda,0x9d,0x8f,0xe5,0xc5,0x23,0xc,0xd,0xf,0xf1,0xc6,0xe3,0x87,0xe2,0xff,
+ 0x2d,0x47,0xeb,0xe7,0x86,0xab,0x98,0xe0,0x95,0x4b,0x31,0xcb,0xbd,0xd4,0x94,0xa5,
+ 0x22,0x4e,0x43,0xfe,0xed,0x69,0xe8,0xbf,0x8d,0xe1,0xd0,0xa1,0x43,0xc7,0x8f,0x1f,
+ 0xfb,0xad,0x6b,0xb6,0x82,0x28,0x84,0x28,0x50,0xf8,0x5a,0xef,0x3c,0x55,0x88,0x10,
+ 0x28,0x84,0x13,0x9a,0x46,0x60,0x0,0x23,0x8c,0x52,0x85,0x31,0x95,0xb9,0xa0,0xa1,
+ 0x42,0x28,0xa8,0x47,0x58,0xc8,0x28,0x28,0xb4,0x20,0x64,0x5e,0xd9,0xd,0x7d,0x3f,
+ 0xf4,0x2,0x47,0x6d,0xc9,0xf7,0xbe,0x3e,0x9a,0x2e,0x21,0xf4,0x49,0xba,0x3,0x76,
+ 0xba,0xe2,0xb2,0x3,0xfb,0x47,0x86,0x8a,0x6a,0x4f,0x77,0xb6,0xc5,0x8,0x83,0x20,
+ 0xc8,0xb4,0x66,0x40,0x69,0x64,0xb7,0x30,0xa7,0x68,0x4,0x65,0x9d,0xb0,0xe2,0x74,
+ 0x18,0x52,0xa2,0x79,0x53,0x89,0x74,0xca,0xf,0xa3,0x7f,0xf8,0x4d,0xf8,0x2f,0xf,
+ 0x7,0x97,0x5d,0x71,0xd5,0xe2,0xc5,0x8b,0xb9,0x13,0xa8,0x51,0xde,0xca,0x73,0x5a,
+ 0x59,0x79,0x6e,0xb4,0x4e,0x29,0xd,0x39,0x6,0xcf,0x17,0x6f,0xf1,0xac,0xe7,0xba,
+ 0xd5,0x91,0xe4,0xe,0x1,0x80,0xd5,0x3,0x77,0x88,0x6f,0xb3,0x19,0x13,0xa8,0x38,
+ 0xae,0x63,0x7b,0x76,0x93,0xa4,0xfc,0xda,0x5b,0xa0,0x69,0x74,0x6e,0x54,0x19,0x3e,
+ 0x3c,0x61,0xdf,0xff,0xcd,0x5f,0xf5,0xf4,0x74,0xf3,0x9a,0x1b,0x8e,0xd6,0xdf,0x93,
+ 0x38,0x31,0x1e,0xf6,0x75,0x6a,0x83,0x7b,0x86,0x12,0x8e,0x6b,0xf5,0x74,0xb7,0xc5,
+ 0x12,0x80,0xb9,0xd8,0x94,0xa3,0x85,0x85,0x9c,0x14,0xcb,0x79,0x3,0xd8,0x76,0xa6,
+ 0x5e,0xb5,0xf1,0x58,0x3d,0xc7,0x8f,0xd,0xee,0x3c,0x66,0x16,0x8b,0x53,0x22,0xfb,
+ 0xbf,0x50,0x28,0x8,0xe7,0xaa,0xac,0x69,0xf3,0xf3,0x94,0x4a,0xd3,0xbd,0x3c,0x15,
+ 0x59,0x7a,0x52,0xf1,0xf1,0xd1,0xa7,0x8e,0xf3,0xe3,0x45,0x24,0xd9,0x77,0x7f,0xb6,
+ 0xef,0x7d,0xff,0xeb,0xea,0x45,0xe6,0x90,0x78,0xb4,0x5c,0x2e,0xf7,0xe8,0x53,0xec,
+ 0x82,0xb,0xb6,0x88,0x1f,0x7a,0xde,0x41,0x1e,0x11,0x15,0x13,0xbc,0x68,0x98,0xa2,
+ 0x73,0x78,0x9e,0xf,0xe8,0xfc,0x8a,0x4d,0x8d,0x55,0x2f,0x23,0x3c,0xfe,0xf8,0xe3,
+ 0x1b,0xd7,0xf5,0xf4,0xf6,0x2e,0x26,0x8a,0x4a,0x54,0x83,0x70,0x65,0xb2,0xaa,0x33,
+ 0x33,0x30,0x5,0x2c,0x62,0x0,0x3,0x5,0x3,0xa3,0x21,0x63,0x11,0xd,0x1d,0x46,
+ 0x5d,0x44,0x84,0x30,0x80,0x4,0x0,0xa5,0x61,0x18,0xd1,0xd0,0xf7,0x83,0xc0,0xa7,
+ 0x84,0x82,0x22,0x8c,0x7c,0xe6,0x92,0x4e,0x7f,0xd9,0xdb,0xfb,0x9f,0xf9,0x37,0x74,
+ 0x2c,0xb,0x34,0xeb,0x89,0x47,0x8e,0x24,0x5a,0xb3,0x4b,0x96,0xa4,0xdb,0xd8,0x84,
+ 0x4a,0x48,0xae,0x18,0x76,0xf6,0xa5,0x35,0xbf,0x82,0x72,0xce,0x8,0xa6,0x3,0x20,
+ 0x69,0x5b,0xbb,0x8f,0x14,0x5a,0x5b,0x12,0xba,0x95,0x50,0x40,0xbe,0xf3,0x70,0xf9,
+ 0x27,0xbb,0x95,0xb7,0xbd,0xe3,0x1d,0xc9,0x64,0x12,0x52,0x5e,0x81,0x6c,0x97,0x92,
+ 0xad,0xca,0x1c,0x22,0xc,0xa3,0xd1,0x7f,0x2b,0x9b,0xa6,0x9e,0xbb,0x49,0x39,0x86,
+ 0x53,0x48,0xfa,0xab,0x11,0x43,0xa,0x84,0xb0,0x7a,0x80,0x43,0xf2,0x68,0x1e,0xf,
+ 0xfb,0x9a,0x66,0xe1,0xcb,0x90,0x3,0xb3,0x66,0xce,0xe3,0xe,0x1d,0xce,0xb7,0x3,
+ 0x79,0x4e,0x0,0x2e,0x5d,0x81,0xbd,0x7b,0x0,0x80,0x1b,0x69,0x1d,0xdb,0xb2,0x65,
+ 0xde,0xca,0x5,0xae,0x64,0xde,0x2,0xd8,0xb8,0xb2,0x65,0x91,0x39,0x74,0xe3,0xbd,
+ 0x55,0xc7,0xcc,0x59,0xab,0x5b,0x7b,0x97,0x2e,0x15,0xf7,0xd9,0xdb,0xa9,0xf5,0x2e,
+ 0xed,0x7a,0x62,0xf7,0xb1,0x67,0x86,0xaa,0x1,0x4f,0xa2,0x4,0x87,0xb8,0x23,0x21,
+ 0x6,0x8b,0xc5,0x29,0xd3,0x34,0x66,0xe8,0xa,0xd4,0xb1,0xb7,0x26,0x51,0x5,0x6f,
+ 0x1,0x64,0xb3,0xd9,0x81,0x3,0x8f,0xf8,0x4b,0xba,0xb2,0xd9,0xac,0x98,0xf9,0x8f,
+ 0x87,0x7d,0x33,0x3f,0x74,0x87,0x5a,0xd5,0xe1,0x1c,0x2c,0x1e,0x55,0xc2,0x6b,0x29,
+ 0xbb,0xf5,0x15,0x98,0x9b,0xab,0xca,0xf5,0x97,0x6,0x10,0x63,0xfe,0x8b,0x99,0xfc,
+ 0xf8,0xec,0xe0,0xba,0xee,0xce,0x9d,0x3b,0xaf,0x79,0xfd,0x16,0x42,0x54,0x55,0xb5,
+ 0x14,0x45,0x55,0x14,0x15,0x0,0x18,0x9f,0xba,0x32,0x0,0x94,0x31,0xc6,0x42,0x30,
+ 0x4a,0x19,0x18,0xd,0xa3,0xd0,0x8b,0x68,0x40,0xa3,0x50,0x61,0x11,0x0,0x30,0xf0,
+ 0x15,0x41,0x2,0x3f,0xa,0xbd,0x30,0xa,0x29,0x0,0x16,0xb1,0x30,0x62,0x34,0xa2,
+ 0x45,0x92,0x9d,0x4c,0xad,0xb1,0x26,0x73,0x4f,0x8f,0x30,0x96,0x48,0x57,0xbc,0x70,
+ 0xb1,0x19,0x84,0xe5,0xb0,0xe4,0x78,0xd9,0xa4,0x46,0x9d,0x92,0x9e,0xce,0xb0,0xe3,
+ 0x7b,0x74,0x25,0x52,0xac,0xc4,0x44,0x99,0x66,0x52,0x9a,0xa6,0x40,0xd5,0xf5,0xaf,
+ 0xdd,0x33,0x71,0xd7,0x60,0xe6,0xb7,0x7f,0xe7,0x8d,0xc9,0x64,0x52,0xa9,0xa5,0xda,
+ 0x36,0xd5,0x93,0x63,0x96,0x64,0xd9,0x34,0x25,0xbb,0x82,0xe4,0xcc,0x84,0xe7,0x57,
+ 0xde,0x72,0xcc,0x37,0x10,0x52,0xb4,0x2d,0xcb,0x96,0xe3,0xfb,0x3a,0xbb,0x96,0xcf,
+ 0xc8,0x22,0xa0,0x53,0x7b,0x4,0xb3,0x2f,0x66,0xc5,0x21,0xe7,0xc4,0x54,0x25,0xb3,
+ 0x3b,0x4,0xab,0xa7,0x55,0xbd,0xaf,0xf1,0x60,0x6e,0x91,0x42,0x6d,0x11,0x77,0x7e,
+ 0x7c,0x5b,0x5b,0x3b,0xea,0xab,0x6d,0xc8,0xf2,0xf6,0xf2,0x33,0xa7,0x1,0xc0,0xea,
+ 0xc9,0xe5,0x1e,0xe5,0x67,0x88,0x9b,0x97,0xac,0x1e,0xb8,0x43,0x9b,0x57,0x29,0x4f,
+ 0x3d,0xe3,0x0,0x10,0x19,0xfc,0xf5,0x59,0x3e,0xd5,0xf7,0x94,0xe7,0xf9,0xab,0x7b,
+ 0xcc,0x19,0xce,0xf0,0x39,0x82,0x44,0xa1,0x5d,0xbb,0x76,0xb,0xde,0xf2,0xbb,0x75,
+ 0x5c,0x67,0xcf,0x50,0x62,0x3c,0x34,0xf9,0x1e,0xce,0xde,0x4e,0x6d,0x10,0xe8,0x15,
+ 0x37,0x70,0xa2,0x94,0x13,0x99,0xba,0x90,0x72,0x6e,0xe5,0x44,0x2,0x71,0x33,0xbc,
+ 0xc3,0x3d,0xa5,0x13,0x56,0x82,0x5f,0x3a,0x9b,0xad,0xa6,0x39,0x88,0xd7,0xa8,0xeb,
+ 0xba,0x6d,0x6d,0x33,0x8b,0xb0,0x9d,0xb6,0xc8,0xe7,0xf3,0xc3,0xc7,0xf,0x9f,0xff,
+ 0x7f,0x2e,0x21,0xaa,0xa6,0xa8,0x3a,0x81,0x6,0xa6,0x82,0x80,0xbb,0x71,0xc1,0x18,
+ 0x65,0x11,0xa3,0x21,0x8,0xa5,0x51,0x44,0x59,0x44,0x69,0x40,0x43,0x37,0xa,0x3,
+ 0xbe,0x8a,0x0,0x65,0x14,0x94,0x45,0x61,0x14,0xf8,0x61,0xe8,0x87,0x61,0x48,0xc1,
+ 0x18,0x3,0x8b,0xf8,0x2,0x7a,0x51,0x14,0x84,0xd1,0x89,0xc4,0x26,0x65,0xe8,0x31,
+ 0x4,0x51,0x7b,0x3a,0x9d,0x1f,0x19,0x9,0x53,0x2d,0x1d,0x9,0x56,0xf2,0x3,0x8b,
+ 0x3a,0x4a,0xeb,0x2a,0xad,0x74,0xdc,0xd,0xbc,0xbc,0xd9,0x92,0x30,0xed,0xd2,0x74,
+ 0x29,0x93,0x4c,0x39,0x4c,0xfb,0xec,0xcd,0xc3,0x4f,0x4d,0xb6,0xbc,0xee,0x8a,0xd7,
+ 0xb7,0xb4,0xb4,0x28,0xf5,0x49,0x7c,0x42,0xa8,0xc6,0x78,0xcb,0xbd,0x41,0x72,0x9a,
+ 0x41,0x2c,0xf4,0x42,0x7d,0x9e,0x2a,0xc8,0xcd,0x86,0xf9,0x9e,0x51,0x36,0x9f,0x54,
+ 0xa7,0x58,0x56,0xf,0xdc,0xa1,0xc5,0x2d,0x54,0x1e,0xc7,0x3c,0xa9,0x65,0xb6,0xc5,
+ 0xac,0xd0,0x2c,0x8b,0x45,0x24,0xdf,0x76,0x76,0x2d,0x97,0xf7,0x67,0xb3,0xd9,0x9e,
+ 0xee,0x1e,0x2e,0x69,0x5b,0xdb,0x5a,0xd2,0xe9,0x54,0x26,0xd3,0x62,0x59,0xb6,0xe0,
+ 0x6d,0xe3,0xc9,0xb9,0x7e,0x3b,0xe6,0xf5,0x88,0xfb,0xb1,0x2d,0xfb,0x1d,0x97,0xda,
+ 0x8d,0x73,0x72,0x58,0x3d,0xb0,0x7a,0xce,0x5a,0xdd,0x1a,0x9b,0x70,0x42,0xb2,0x6c,
+ 0x55,0x2b,0x63,0x55,0x9c,0xd6,0xb6,0x7a,0x53,0x9c,0x44,0xe3,0x27,0xe,0xce,0xb8,
+ 0xc2,0xc4,0x5b,0x86,0x3b,0x72,0xc7,0x46,0xc7,0xc5,0x7e,0x0,0x6a,0xa2,0xbb,0x8e,
+ 0xfc,0xb1,0xce,0xac,0xa1,0xc5,0x28,0xc5,0xc,0xce,0xc2,0x64,0x60,0xd2,0x71,0x71,
+ 0x69,0xd3,0x34,0x44,0xa1,0xc,0xe9,0xf1,0xe7,0xb5,0xee,0xf1,0x4b,0x8b,0x81,0x81,
+ 0x81,0x84,0xc5,0x3a,0x3b,0x5a,0x8,0x51,0x88,0xa2,0x12,0x55,0xe5,0x1e,0x1e,0x54,
+ 0x17,0xf5,0xa0,0x2c,0xf2,0x19,0x8b,0x68,0x14,0x31,0x16,0xd1,0xd0,0xa3,0x81,0x13,
+ 0x85,0x3e,0xa3,0x21,0x58,0xc4,0x18,0x65,0x11,0x8d,0xc2,0xd0,0xf,0x83,0x20,0x8,
+ 0x23,0x1a,0xd1,0x88,0xd2,0x90,0x82,0x52,0x2,0x16,0x45,0x2c,0x8,0x29,0xd,0x82,
+ 0xb2,0x92,0x3e,0x56,0xb1,0xc,0x16,0xe0,0xd8,0x8e,0x8c,0xc5,0x8a,0x4e,0x40,0x43,
+ 0xdf,0x24,0x74,0x4a,0xeb,0x4c,0x87,0x93,0x5a,0x79,0x3c,0x47,0xda,0xcc,0xb6,0xce,
+ 0x52,0xb1,0x6c,0x6b,0x81,0x92,0x6a,0xfd,0xf4,0xad,0xb9,0xa7,0xf2,0x6d,0x6f,0x7e,
+ 0xeb,0xdb,0xda,0xdb,0xdb,0x85,0x8a,0x2b,0x42,0x2f,0x74,0x29,0xb6,0x51,0x70,0x55,
+ 0x10,0x58,0x1c,0xa0,0x4a,0x99,0xf4,0xb2,0x61,0x99,0xe3,0x85,0xe8,0xc9,0xf9,0x9e,
+ 0x54,0x1e,0x16,0x33,0x13,0x5d,0x3e,0xa,0xe5,0x6d,0xfc,0x57,0x4d,0xec,0xab,0x72,
+ 0x6d,0xe7,0xea,0x2e,0xab,0x7,0x35,0xd7,0x4b,0xb6,0x86,0xea,0x31,0xf5,0x1a,0xb2,
+ 0x88,0xf8,0x6d,0x2c,0x70,0x25,0xf4,0xdb,0xd2,0x74,0x45,0xdc,0xdb,0x7b,0xde,0x90,
+ 0xad,0x93,0x93,0xe2,0x3e,0xdd,0x21,0x0,0x8b,0x5b,0x28,0x2f,0x1c,0xcd,0xc3,0x9b,
+ 0x62,0xec,0x75,0x5d,0x87,0xbf,0x56,0x56,0xf6,0x24,0x9a,0x3c,0xa9,0xd5,0x3,0x60,
+ 0x7c,0xe4,0x8,0x17,0xb9,0xf2,0xd,0xf3,0x2d,0xaf,0x7a,0x2b,0x14,0x10,0x1e,0x8f,
+ 0x21,0xae,0xde,0xf4,0xed,0xd6,0x62,0x94,0x56,0xf6,0x24,0x7a,0xb3,0xb2,0x6b,0xba,
+ 0x22,0xf4,0xe1,0xd1,0x29,0x45,0x5c,0x7a,0x59,0x7,0x41,0x6d,0xb9,0x89,0xf9,0x94,
+ 0x1c,0x3a,0x7d,0x70,0xcb,0x2d,0x3f,0x3b,0xf7,0xac,0x55,0xe9,0x54,0x82,0x10,0xd,
+ 0x50,0x18,0x2f,0x83,0xcc,0x73,0xf6,0x68,0x10,0x6,0x2e,0xa5,0x1,0x45,0x44,0x19,
+ 0x8d,0x22,0x3f,0xa2,0x41,0x14,0xf9,0x34,0xf2,0x29,0x8d,0xa2,0x88,0x46,0x21,0xd,
+ 0xc3,0x30,0x8,0x22,0x1a,0x50,0x1a,0x86,0x51,0x40,0x9,0x17,0xb5,0x21,0x8d,0x82,
+ 0x80,0x85,0x61,0x14,0x84,0x1,0x65,0x94,0x68,0x15,0xa5,0xa5,0x60,0x76,0x8d,0x17,
+ 0x2a,0x25,0x5f,0xeb,0x4e,0x86,0xd3,0x4e,0x60,0x1a,0x7a,0xfb,0xe2,0x45,0xd3,0xd3,
+ 0xe5,0x49,0xd6,0x62,0xa4,0xd2,0x49,0xf8,0x34,0x70,0xa9,0x6a,0x7d,0xea,0xff,0x1e,
+ 0x1f,0xf4,0x16,0xbd,0xf1,0x8d,0x6f,0x32,0xc,0x43,0x30,0x2d,0xa6,0x1e,0x5b,0x96,
+ 0x65,0x9a,0xa6,0x50,0x8f,0x45,0xc,0x86,0xaa,0xaa,0x82,0xcc,0x82,0xc0,0x8d,0xd3,
+ 0xdd,0x17,0xa8,0x27,0x15,0x61,0x90,0x9c,0xa3,0x11,0xc3,0x8c,0xd4,0x15,0x90,0x66,
+ 0x5f,0x73,0x43,0xf6,0x58,0xc6,0x89,0x6d,0xf5,0xf4,0x74,0xcf,0xb8,0x85,0x1b,0x67,
+ 0xb6,0xa8,0x29,0xc9,0x8d,0xa4,0x15,0xa6,0x60,0xcf,0xf3,0xb,0xf9,0x49,0x7e,0x6f,
+ 0xbf,0x73,0xcd,0x5,0x75,0x26,0xa5,0xfa,0x6b,0x1,0xe8,0x5d,0xda,0x7,0x80,0xe7,
+ 0xf,0x72,0xa5,0x54,0x64,0xdb,0x72,0x13,0x17,0x44,0xf6,0xa2,0xfc,0x80,0xb3,0x3c,
+ 0xac,0xb8,0x61,0xfe,0x37,0xf3,0xdb,0x86,0x8,0xb3,0x31,0x2f,0xee,0xfd,0x9e,0x3,
+ 0x4d,0x99,0x59,0x7d,0x11,0x48,0xae,0x5d,0x59,0x50,0x8b,0x48,0x4f,0xf9,0xe3,0xe9,
+ 0xd0,0xa8,0x54,0x2a,0xf,0x3e,0x70,0xcf,0xe6,0x73,0xce,0x20,0x84,0x30,0x16,0x30,
+ 0x16,0x32,0x16,0x51,0xea,0x47,0x91,0x17,0x6,0xd3,0xa1,0x57,0x8e,0xc2,0x80,0xd2,
+ 0x10,0x94,0x81,0x51,0x86,0x88,0x46,0x3e,0x8d,0x2,0x4a,0x23,0x16,0x85,0x51,0x18,
+ 0x55,0xd7,0x9a,0xf6,0x3,0x1a,0x52,0x42,0x1,0x4a,0x23,0x4a,0x59,0x44,0x83,0x30,
+ 0x72,0x9d,0xa0,0x52,0x9,0xfc,0x20,0xa2,0x21,0xf5,0x82,0x88,0xa9,0xf6,0x48,0xae,
+ 0x44,0xf4,0x84,0x4e,0xc2,0x4a,0xa8,0x2e,0x46,0xe,0x56,0x52,0x77,0x27,0x27,0xd1,
+ 0x56,0xf2,0xc8,0x62,0xd3,0xa3,0x53,0x63,0x53,0xa1,0xf9,0xf1,0xff,0x1e,0x3e,0xec,
+ 0x75,0xbf,0xf6,0xb5,0xaf,0xb5,0x6d,0x9b,0x10,0xc2,0x4b,0x4f,0x69,0xb5,0xd5,0x7d,
+ 0x84,0x9f,0x96,0x37,0x38,0x7b,0x35,0x4d,0x33,0x4d,0x93,0x2f,0x26,0x64,0x9a,0xa6,
+ 0x56,0x2b,0xda,0xaa,0xaa,0x2a,0xff,0xb9,0xa2,0x28,0xbc,0x66,0xba,0xa2,0x28,0x8d,
+ 0x95,0xcc,0xe6,0xd9,0x88,0xb5,0x9b,0x1e,0xa3,0xe8,0xd,0x75,0xc,0x1b,0x1b,0x32,
+ 0xea,0xcc,0x54,0xb5,0xd1,0xdf,0x54,0xe4,0xc6,0xc0,0x27,0xcc,0x6a,0x6d,0xdd,0x6d,
+ 0xe,0x5e,0xd8,0xf9,0xd0,0x50,0x95,0xc3,0xaf,0x3f,0x2f,0x13,0x1b,0xe5,0x8d,0x75,
+ 0x36,0x1a,0xee,0x67,0xc6,0x73,0xcb,0xd7,0x34,0x7b,0x66,0xa8,0xea,0xc8,0x59,0xc4,
+ 0x5d,0xcb,0xe2,0xde,0x9a,0x51,0x6e,0x45,0xa7,0xb,0x40,0xa8,0xcd,0x7c,0xa7,0x6d,
+ 0x27,0xd6,0xf6,0x65,0xf8,0xfe,0x6a,0x1d,0x2c,0xf9,0x1,0xe7,0xf1,0xb0,0xa8,0x77,
+ 0xe7,0xe4,0x72,0x39,0x5e,0xe7,0x8d,0x63,0xe0,0xc0,0x23,0x4d,0xc3,0x45,0x47,0x8b,
+ 0xfa,0xa1,0xa1,0xca,0xf1,0xdc,0x8c,0x51,0x50,0xac,0x6f,0xc,0x60,0xa4,0x38,0x13,
+ 0x46,0x6a,0x64,0xfa,0x44,0xbb,0xb6,0x44,0x5b,0xd5,0x3c,0x2e,0x62,0x4b,0xf4,0xfa,
+ 0x3c,0x84,0xd3,0xa1,0x71,0xff,0xfd,0xf7,0xd3,0x28,0xd8,0x74,0xf6,0x6a,0x80,0x32,
+ 0x4a,0x69,0xe0,0xd2,0xd0,0xa3,0x41,0x25,0xa,0x2a,0x51,0xe0,0xd1,0xc8,0xe7,0x11,
+ 0x1a,0x8c,0x81,0x45,0x11,0x8b,0x7c,0xc6,0x57,0xa3,0xd,0xc3,0x30,0xa4,0x41,0x10,
+ 0x44,0x61,0x18,0x7a,0x11,0x61,0x8c,0x21,0xa,0x81,0x8,0x8c,0x5,0x34,0x8,0x98,
+ 0x5b,0xf6,0x3c,0xc7,0xb,0xc3,0x88,0x46,0x34,0x8,0x23,0x16,0x31,0xd3,0x4e,0x97,
+ 0xb,0x65,0xd3,0x4a,0xc0,0xcc,0x28,0x95,0x3c,0xb1,0x5b,0xa0,0x59,0x7b,0xc7,0x95,
+ 0x96,0x70,0xa2,0x55,0x29,0x19,0xb4,0x52,0x8,0x95,0xeb,0x7f,0x3a,0x5a,0x6e,0x39,
+ 0xeb,0xf2,0xcb,0x2f,0xcf,0x64,0x32,0x9c,0xb7,0x7a,0x2d,0x7a,0x9c,0xb3,0x54,0x51,
+ 0x14,0xcb,0xb2,0x74,0x5d,0x27,0x84,0xd8,0xb6,0xcd,0xf9,0x69,0x59,0x96,0x88,0xe1,
+ 0xe3,0x24,0xb7,0x2c,0x4b,0x55,0x55,0x5e,0xe7,0x91,0x10,0x22,0x56,0x9,0xb,0xc3,
+ 0x90,0xff,0xf6,0x59,0x74,0x94,0xcc,0xc1,0xd8,0x47,0xd1,0x50,0xe6,0x73,0x3a,0x19,
+ 0x96,0x65,0xc7,0xa6,0x67,0x32,0xe4,0x1,0xca,0x21,0x5c,0x8e,0xb1,0x68,0x7,0x48,
+ 0xa,0x73,0x21,0x3f,0xc9,0x1b,0xbd,0x4b,0xfb,0xf8,0x98,0x96,0xd,0x5d,0x73,0x28,
+ 0x84,0xb2,0x7e,0x5b,0x2c,0x4e,0x79,0x9e,0xef,0xb8,0xb3,0x66,0x2,0xde,0x78,0xaf,
+ 0xf3,0xe8,0xa3,0x8f,0xc4,0x76,0xae,0x5e,0x77,0x5e,0x2e,0x97,0xe3,0xea,0x2b,0x57,
+ 0x9b,0x5d,0xd7,0x59,0x9c,0x9,0x56,0xf6,0x24,0xf8,0x63,0x76,0x65,0xe6,0x72,0x93,
+ 0x8a,0xd0,0x14,0xe,0x71,0x69,0x3e,0x2f,0xaa,0x3e,0xa6,0x65,0x83,0x6b,0xdd,0x35,
+ 0x88,0x82,0xe9,0x5c,0x4a,0x8b,0xfd,0x96,0x65,0x4d,0xf9,0x69,0xd1,0x46,0xed,0x95,
+ 0xd4,0xe8,0x66,0x5b,0xd4,0x2,0x6e,0xf,0x13,0x4b,0xb4,0xc5,0x66,0xc8,0xf3,0x79,
+ 0x23,0xbf,0xc8,0xd,0xdf,0xf7,0x6f,0xba,0xe9,0xa6,0x2b,0x5f,0x77,0x7e,0x3a,0x65,
+ 0x73,0xaf,0x4f,0x44,0xfd,0x28,0xc,0xa2,0x28,0x88,0x42,0x3f,0xa,0x3,0x2e,0x60,
+ 0x29,0xd,0x69,0xe8,0xd3,0xc8,0x8f,0xc2,0x90,0xd2,0x90,0x86,0x11,0xa5,0x2c,0xc,
+ 0xc3,0xc8,0x8b,0x2,0x2f,0x8,0xa3,0xd0,0xf3,0x83,0x30,0x8,0xa9,0x1f,0x86,0x4e,
+ 0xe8,0xfa,0x7e,0xc5,0x73,0xfc,0x30,0xc,0x29,0x89,0x68,0x44,0x59,0xc4,0xc0,0x8,
+ 0x21,0xba,0x61,0x66,0x52,0x6,0x5,0x19,0x9d,0x98,0xea,0x30,0xdc,0x3,0xde,0x22,
+ 0x5f,0xb5,0x17,0xa7,0x95,0xf2,0xd8,0x70,0x8b,0x89,0x83,0x93,0xe4,0xfd,0x3f,0x9a,
+ 0x42,0xc7,0xfa,0x8b,0xb6,0x6d,0xe3,0x35,0x56,0xb9,0xea,0xb,0x40,0xd3,0x34,0xcb,
+ 0xb2,0xb8,0xb0,0x35,0x4d,0x53,0x55,0x55,0xd3,0x34,0x13,0x89,0x4,0x21,0x84,0x6b,
+ 0xce,0xdc,0x82,0xc5,0xc5,0xf,0x97,0xc0,0x5c,0xea,0x5a,0x96,0xc5,0x85,0xad,0x69,
+ 0x9a,0x51,0x14,0xf1,0xe3,0xc3,0x5a,0x31,0xf3,0x53,0xed,0x31,0x99,0x83,0xb1,0x8f,
+ 0xa2,0xf1,0x5c,0xa5,0x6e,0xc,0x26,0xad,0xda,0x66,0xc4,0x90,0x8a,0x15,0x6d,0x69,
+ 0xea,0xba,0x10,0x72,0x12,0xc0,0x3b,0xae,0x5a,0x5,0xc9,0xd0,0x25,0xf4,0x58,0x48,
+ 0x44,0x8d,0x81,0x27,0xf4,0x78,0x9e,0xef,0x54,0x9c,0xbe,0xbe,0x65,0x6f,0x79,0xed,
+ 0xb2,0xa6,0xf7,0x76,0xf0,0xe0,0x41,0x5e,0x67,0x43,0x46,0x3a,0x95,0x10,0x37,0x2c,
+ 0xd4,0xe6,0x81,0xd1,0x40,0x28,0x2,0x73,0x43,0x4,0x84,0x72,0x7e,0x8a,0x97,0xda,
+ 0xda,0xbe,0x8c,0xe0,0xbc,0x5c,0x2,0xae,0x7a,0x70,0xbd,0x79,0xa9,0xe9,0x6a,0x7d,
+ 0xa8,0xe6,0x4b,0x56,0x6f,0xcf,0x34,0xd,0x61,0xf7,0xe2,0x38,0x6b,0x75,0xab,0x68,
+ 0x37,0xad,0x16,0xf2,0x92,0xcb,0xd8,0x58,0x63,0x7c,0x7c,0xfc,0xc9,0x27,0x9f,0x7c,
+ 0xfb,0x5b,0x2e,0xe1,0x37,0xc9,0x58,0x44,0xc3,0x20,0xa,0x9d,0x30,0x70,0xc3,0xd0,
+ 0xa5,0xd4,0x67,0x94,0xb2,0x28,0xa0,0x34,0x88,0xa8,0x1b,0x85,0x2e,0x8b,0x2,0x16,
+ 0x6,0x34,0x8,0x43,0x3f,0xa4,0x7e,0x18,0x6,0x21,0xd,0xa3,0x28,0x62,0x94,0x22,
+ 0xc,0x68,0x10,0x84,0x7e,0x14,0xf8,0x5e,0x10,0x7a,0x51,0x14,0x32,0xc6,0xb3,0x5,
+ 0x19,0x14,0x28,0xa0,0x54,0xd3,0x95,0x24,0x73,0x1c,0x3f,0x4a,0x6b,0x61,0x5e,0x6d,
+ 0x5b,0x92,0x62,0x88,0xc2,0xf2,0xf0,0xe1,0x8e,0xb4,0xf1,0xe4,0x9,0xfc,0xe1,0xd,
+ 0xc3,0xe6,0xe2,0xd,0x17,0x5d,0x74,0x91,0x5e,0xab,0x93,0xcc,0xad,0xc1,0x42,0xd8,
+ 0xda,0xb6,0xcd,0x77,0xda,0xb6,0xcd,0xe7,0xc0,0x89,0x44,0x82,0x37,0xf8,0x57,0xfc,
+ 0xbf,0x43,0x8,0xe1,0xe5,0x94,0x15,0x45,0xe1,0xc2,0x96,0x37,0x9e,0xb5,0xb0,0xc5,
+ 0xb,0x2d,0x75,0x9b,0x8e,0x33,0xe,0x21,0x75,0xc5,0xe8,0x9c,0x23,0x94,0xcf,0xaa,
+ 0xad,0x63,0x4,0x40,0xa6,0xca,0x96,0x8d,0x4b,0x50,0x5b,0x79,0x8c,0x93,0x41,0xac,
+ 0xa3,0xd5,0x48,0xda,0x7c,0x7e,0x92,0x4f,0x71,0x9d,0x8a,0xb3,0x68,0x71,0xe7,0xb5,
+ 0x17,0x76,0x35,0xbf,0x18,0xc0,0x63,0x15,0xc7,0xea,0x6b,0x39,0x2f,0x6a,0x89,0x1f,
+ 0xe6,0xfb,0x7e,0xb1,0x38,0xf5,0xd4,0x33,0x13,0x98,0xd3,0x54,0xce,0x21,0xa4,0xae,
+ 0x38,0x92,0x67,0xf6,0xad,0xec,0x49,0x78,0x6a,0x97,0x53,0x71,0xf8,0xfe,0xd8,0xcc,
+ 0x96,0x7f,0x94,0x35,0x8b,0x98,0x8f,0x5a,0xcc,0xe7,0x6b,0xdb,0xaa,0xe9,0x4b,0xbe,
+ 0xf9,0xa5,0xb5,0x35,0x79,0x1a,0x23,0x99,0xe5,0xc,0xa4,0x97,0x5c,0xd8,0x8a,0xc6,
+ 0xe3,0x8f,0x3f,0x9e,0xb0,0x75,0x4a,0x8d,0xe1,0x91,0x42,0x18,0x46,0x60,0x8c,0xb1,
+ 0x80,0x46,0x6e,0x14,0xb8,0x34,0xf2,0x69,0x14,0x52,0xea,0xd3,0xc8,0xa5,0x81,0xc3,
+ 0x95,0xe7,0x30,0x8,0x59,0x18,0xd1,0x30,0xc,0xa2,0xc8,0x73,0x7d,0xdf,0xf7,0x83,
+ 0x30,0xa,0x83,0x88,0x6,0x2c,0x8c,0x98,0xe3,0x45,0x81,0x1b,0x45,0x51,0xc4,0x68,
+ 0x35,0xd1,0x88,0x0,0x4,0x20,0x8c,0x29,0x50,0x14,0xea,0x6b,0x51,0xc9,0xb6,0xac,
+ 0x6c,0x47,0x76,0x22,0x48,0xa4,0x4c,0x42,0x8b,0x63,0x8b,0x4d,0x7f,0x18,0x8b,0x3f,
+ 0xf2,0xdf,0xc3,0x3d,0xeb,0x2f,0xbd,0xe8,0xa2,0x8b,0x38,0xe5,0xc4,0x64,0x95,0x13,
+ 0x4f,0xd7,0x75,0xdb,0xb6,0x79,0x83,0x93,0x93,0xef,0x41,0x4d,0x20,0x73,0xa9,0xcb,
+ 0x45,0x2b,0xd7,0x9f,0xf9,0x7a,0x5f,0x7c,0x5,0x3,0x21,0x6c,0xf9,0xf,0x9f,0x75,
+ 0x8f,0xbd,0x20,0x52,0xb7,0xe,0x66,0x67,0x7c,0x2b,0xc6,0x74,0xbd,0xd4,0x8d,0xf9,
+ 0x2d,0xf8,0x12,0x64,0x33,0xa7,0x31,0x8d,0x81,0xd1,0x40,0x9c,0x64,0xf3,0x86,0xa5,
+ 0x5c,0x4c,0x71,0xf6,0xf2,0x4a,0x31,0x72,0xf4,0xa2,0xa8,0xe4,0xc6,0x8d,0x49,0xa5,
+ 0xd2,0x34,0x8f,0xbb,0xa8,0xf2,0x56,0xdc,0x49,0x7d,0x83,0x9b,0x82,0xb7,0x3f,0x76,
+ 0x5f,0xec,0x2b,0xe1,0x7a,0x95,0xd7,0x7,0xe6,0x7c,0xb0,0x2d,0xbb,0x3a,0xc3,0x6c,
+ 0x7c,0x52,0x33,0x3e,0x35,0x10,0xea,0x2b,0x9f,0x1e,0x9b,0xd1,0x88,0xf8,0xaa,0x2a,
+ 0x75,0x6b,0x3f,0x91,0x99,0x5c,0x5f,0xef,0x26,0x6e,0x81,0x43,0x7d,0x62,0xd0,0x6d,
+ 0x77,0xef,0x7a,0x62,0xf7,0x31,0x7e,0xaa,0x45,0x2d,0xd5,0x70,0x71,0xf1,0xad,0x98,
+ 0x9b,0x88,0xbc,0xdf,0xd3,0x84,0xb4,0xbe,0xef,0x7,0x41,0xf0,0xd4,0x53,0x4f,0x1d,
+ 0x78,0xfa,0xf0,0x55,0x6f,0xf9,0xe3,0xd7,0x5c,0xf1,0x87,0xe7,0x5f,0xfe,0x27,0xef,
+ 0xfa,0x83,0x7f,0xfc,0xe6,0xbf,0xdd,0xfe,0xd0,0xa3,0xfb,0x26,0x26,0xb,0x51,0x18,
+ 0xd0,0x28,0x8c,0xc2,0xaa,0xe6,0x1c,0xf9,0x6e,0xe8,0xf9,0xa1,0x17,0x38,0xae,0x5f,
+ 0x76,0x7c,0xa7,0xec,0x7a,0x5e,0x58,0x55,0xa8,0xfd,0xd0,0xb,0x3c,0xaf,0xe2,0x78,
+ 0x8e,0x17,0x84,0x51,0x40,0x59,0x44,0x18,0xab,0x6,0x4c,0x32,0x1e,0x4b,0x49,0x9,
+ 0x58,0x50,0x9e,0x9e,0x2a,0x28,0xa9,0x56,0x4d,0xd7,0x56,0xb6,0x52,0xc7,0x71,0x54,
+ 0xaf,0xb8,0xdb,0x5b,0x74,0xdd,0xb7,0x9e,0xe9,0x5b,0x7f,0xd1,0x99,0x67,0x9e,0xc9,
+ 0x49,0xb,0x49,0x43,0x16,0xfa,0x30,0xe7,0x2a,0x57,0xa1,0x85,0xaa,0xcc,0x97,0xc9,
+ 0xe6,0xc7,0x0,0xe0,0xa4,0xe5,0xf5,0xd0,0x39,0x69,0xb9,0xaa,0x2c,0x68,0xfc,0x1c,
+ 0x7b,0x6c,0x5e,0x52,0x97,0xff,0xd7,0x5,0x45,0x1b,0x1b,0x8d,0xe0,0x75,0x55,0x0,
+ 0xc0,0x1b,0x87,0xd9,0x39,0xb3,0x95,0x7,0x5c,0x6d,0x85,0x7b,0x21,0x75,0xc5,0x2c,
+ 0x57,0x55,0x55,0x29,0xe7,0xae,0x6a,0x86,0x19,0x1f,0x1f,0x9f,0x39,0x21,0xf0,0x8e,
+ 0xab,0x56,0xf5,0xf5,0x2d,0x83,0xb4,0xea,0x27,0x27,0xb0,0x88,0x43,0x2e,0x16,0xa7,
+ 0x4a,0xa5,0xe9,0x52,0x69,0xba,0x90,0x9f,0x2,0x70,0xc9,0x5,0x2b,0x37,0x6f,0xde,
+ 0xc4,0xc7,0x34,0xbc,0xf1,0x43,0x43,0x95,0x19,0x1,0x55,0xbb,0x37,0x2e,0x75,0xab,
+ 0x71,0x5a,0xb5,0xb,0xc1,0x1b,0xe7,0xd2,0x8f,0x73,0xa0,0x71,0x1a,0x5f,0x55,0x53,
+ 0x67,0x79,0xd2,0x65,0x1d,0x84,0x9f,0x56,0x5e,0xa3,0x94,0x9b,0xb8,0xa,0x7e,0x46,
+ 0x88,0xdc,0xba,0x18,0x95,0x6,0xce,0xcf,0x6,0x99,0xc6,0x82,0xe1,0x9e,0xda,0x25,
+ 0xee,0x67,0x75,0x8f,0x9,0x80,0x3b,0xb7,0xf8,0xb7,0xa7,0x9b,0x9d,0xd9,0xf7,0x7d,
+ 0xbe,0xc6,0xec,0xc4,0xc4,0xc4,0xae,0x5d,0xbb,0x2c,0xcb,0x5a,0xbd,0x7a,0xcd,0xbb,
+ 0xdf,0xfd,0x9e,0xf,0x7d,0xe8,0xc3,0xab,0x57,0x9f,0xf3,0xed,0xef,0xdd,0xf1,0x7b,
+ 0x7f,0xf0,0xb7,0x1f,0xfc,0xb3,0xaf,0xdd,0x75,0xcf,0xce,0x30,0xc,0x41,0x23,0x5a,
+ 0x5b,0x3,0xce,0xf7,0x7c,0xd7,0xf5,0xdd,0x8a,0xef,0x7b,0x41,0xe0,0x51,0x1a,0x52,
+ 0xca,0xe7,0xb2,0x21,0x75,0x2b,0x81,0x53,0xe,0x42,0x1a,0x51,0xca,0x8,0x23,0xd5,
+ 0x25,0x12,0x28,0x63,0x14,0x4,0xc,0xa,0x61,0x84,0x44,0xbe,0xa7,0x28,0xc8,0x64,
+ 0x12,0x34,0xc,0x11,0x38,0x6a,0x79,0xec,0xe1,0x63,0xf4,0xa3,0x37,0xc,0xac,0x39,
+ 0xe7,0xa2,0x4d,0x9b,0x36,0xe9,0xb5,0x55,0x8,0xb4,0xda,0xea,0xf2,0xbc,0x61,0x18,
+ 0x6,0x17,0xc5,0x9c,0x2d,0xdc,0x9d,0x2b,0x16,0x1c,0x89,0x19,0x93,0x79,0x83,0xaf,
+ 0x63,0xc0,0xf5,0x64,0xee,0xa,0x7a,0xbe,0xba,0xe,0xd,0x1c,0x8c,0x1d,0x73,0xca,
+ 0xa,0x33,0x64,0xdb,0x69,0x6d,0x1c,0xdf,0xf6,0xeb,0x5d,0xd5,0x8f,0x35,0xc4,0xa4,
+ 0x2e,0xea,0x67,0xb9,0x4d,0xb,0x17,0x1e,0x1a,0xaa,0xcc,0xd0,0xc3,0xec,0xbc,0xf6,
+ 0xc2,0xae,0xdf,0xb9,0xe6,0x82,0xaa,0x31,0xc6,0x75,0x72,0xb9,0x5c,0x21,0x3f,0x25,
+ 0xff,0x71,0xf3,0xef,0x25,0x17,0xac,0x7c,0xc7,0x55,0xab,0x56,0xae,0xe8,0x13,0x6c,
+ 0x1c,0x9b,0xc2,0x97,0xbe,0x7e,0xe3,0xb1,0x63,0xc7,0x64,0xbe,0x55,0x85,0x15,0x30,
+ 0x34,0x34,0x3c,0x36,0x5,0xf9,0x42,0xb1,0x99,0x67,0x8c,0xbd,0x8e,0xeb,0xd4,0x1d,
+ 0x5f,0xfb,0x15,0x6f,0x6c,0xde,0x30,0xb3,0x92,0xa4,0x60,0xef,0xca,0x9e,0x4,0xcc,
+ 0x4e,0xfe,0x32,0x9a,0xdb,0x9,0x24,0xf2,0x16,0x45,0x2f,0xd9,0x12,0x50,0x2f,0x87,
+ 0xf9,0xc1,0x66,0x34,0x22,0x6e,0x60,0xa9,0xb4,0x8e,0x65,0xe3,0x74,0x97,0x37,0x5e,
+ 0x72,0x91,0x1b,0x4,0x1,0x63,0xac,0x58,0x2c,0x1e,0x38,0x70,0x60,0xf5,0xea,0x35,
+ 0xbf,0xf5,0x5b,0x6f,0xbd,0xf0,0xc2,0x8b,0x37,0x6f,0x3e,0xef,0xd,0x6f,0x78,0xe3,
+ 0x87,0x3e,0xf4,0x27,0x1b,0x37,0x9e,0x7b,0xef,0x3,0x3b,0xdf,0xfb,0x81,0x2f,0xfc,
+ 0xdb,0xf7,0x7f,0x4d,0x19,0x8b,0xa2,0x28,0xf0,0x3,0xcf,0xf3,0x1d,0x27,0xf0,0x3d,
+ 0xdf,0xf7,0xa3,0xc0,0xd,0x23,0x1e,0x58,0x5,0x12,0x7a,0x81,0x53,0xf1,0x3d,0x2f,
+ 0x88,0x18,0x14,0x6,0xc6,0x0,0x46,0x9,0xe3,0x31,0x86,0x4,0x84,0x55,0xb3,0x5,
+ 0x29,0x2d,0xe5,0x26,0x35,0x45,0x49,0x18,0x1a,0xb,0xdd,0xa8,0x52,0xd8,0x37,0x12,
+ 0x7d,0xfa,0xd6,0xfc,0xe6,0x8b,0xaf,0x39,0xe7,0xdc,0x73,0x39,0xc1,0xf8,0xc0,0xe6,
+ 0xc2,0x53,0x48,0x5a,0x1e,0x86,0xc1,0x1b,0xa6,0x69,0x72,0x69,0xac,0x69,0x5a,0x22,
+ 0x91,0xe0,0x8e,0x1f,0xae,0x1e,0x8b,0x6,0x17,0xb9,0x61,0x18,0xf2,0xe3,0x9f,0xb5,
+ 0x51,0xaa,0xb1,0xf1,0x3c,0x2b,0xcc,0x71,0x5d,0xae,0xa6,0x37,0xde,0x74,0xcf,0xd1,
+ 0x5b,0x6f,0xbd,0xbd,0x51,0x98,0x70,0x41,0x51,0x73,0x72,0xc4,0x33,0xda,0xe5,0x71,
+ 0xc9,0x8f,0xdc,0x3f,0x58,0x9c,0x39,0xad,0x37,0xe,0xb3,0x73,0xd1,0xa2,0xce,0xf7,
+ 0xbc,0x65,0xe3,0x55,0x97,0x6c,0x58,0xb3,0x66,0xcd,0x96,0x8d,0x4b,0x96,0xf5,0x2d,
+ 0x3b,0x6b,0x75,0x2b,0xdf,0x9e,0xb5,0xba,0xf5,0xda,0xd7,0x6d,0xbc,0xf6,0xc2,0xae,
+ 0x95,0x2b,0xfa,0x66,0x34,0x58,0x6f,0x1c,0xc0,0xb7,0xff,0xf3,0x17,0x0,0x9e,0x7a,
+ 0xa6,0x20,0xef,0x7f,0xea,0x99,0x82,0xb8,0xee,0xb1,0x63,0xc7,0xe4,0xb,0x89,0x65,
+ 0x50,0x84,0xc6,0x2b,0xf2,0x2b,0x38,0xab,0xeb,0x8e,0x17,0x52,0xb7,0xf6,0x71,0xe3,
+ 0xc6,0xd,0x5c,0xf0,0x2,0xc8,0xe5,0x72,0x7d,0x7d,0xcb,0xf8,0x57,0x4e,0xc5,0xa9,
+ 0xe3,0xad,0xa4,0x66,0x37,0xf5,0xc,0xcd,0x91,0x9a,0x2b,0x74,0x93,0x99,0xb7,0x4c,
+ 0xad,0x7f,0xaa,0x9f,0x66,0x99,0xee,0xe2,0xa5,0x33,0x4a,0x71,0x19,0xe5,0xfb,0x3e,
+ 0xd7,0x4b,0xef,0xab,0x4b,0xca,0xdf,0x0,0x0,0x17,0x96,0x49,0x44,0x41,0x54,0xb9,
+ 0xe7,0x9e,0x6c,0xb6,0xfd,0xe2,0x8b,0x5f,0x7b,0xc5,0x15,0x57,0x6e,0xdc,0x78,0x76,
+ 0x26,0xd3,0x9a,0x48,0x24,0x7b,0x7a,0x96,0x9e,0x73,0xce,0xe6,0x2b,0xae,0x78,0xbd,
+ 0x69,0x59,0x7f,0xf1,0x57,0xff,0xf4,0xf1,0xbf,0xfe,0xfe,0xd8,0x78,0x31,0x8,0xa2,
+ 0xc0,0xb,0x7d,0xcf,0x73,0x3d,0xdf,0x77,0xbd,0x30,0xa,0x43,0xdf,0xf7,0xbd,0xb0,
+ 0x5c,0xaa,0x54,0x2a,0x9e,0x1f,0x44,0x2c,0xe2,0xab,0xc5,0x13,0x0,0x50,0x14,0x86,
+ 0x88,0x80,0x11,0x85,0x40,0x55,0xa1,0x28,0xd5,0x14,0x24,0x46,0x95,0x64,0x8b,0x1b,
+ 0x4,0x7a,0x58,0x79,0xfc,0xe9,0xdc,0x1f,0xfc,0xb8,0xb4,0x79,0xdb,0x95,0xcb,0x97,
+ 0x2f,0x6f,0x34,0x4a,0x71,0xc7,0xf,0x77,0xe7,0xd8,0xb6,0xcd,0xa5,0x6e,0x22,0x91,
+ 0xe0,0xb1,0x8d,0x89,0x44,0x42,0xaf,0x19,0xa5,0x62,0xae,0x20,0xd3,0x34,0xb9,0x99,
+ 0x8a,0x33,0x9c,0xbb,0x82,0x9e,0xaf,0x3e,0x9c,0x8f,0xc2,0xac,0xf1,0x43,0x5,0xb3,
+ 0x9b,0x36,0x1a,0x7,0xd3,0x8c,0xb5,0xd3,0x1b,0xbf,0xe8,0xdc,0x65,0x86,0x71,0xcd,
+ 0x6c,0xc3,0x6e,0xb6,0x12,0xc1,0x62,0x71,0xd,0x3e,0x97,0xf3,0x7d,0x7f,0x6c,0x74,
+ 0x7c,0x46,0x8f,0x95,0xe6,0xa2,0x2b,0x57,0x60,0xe5,0xa,0x49,0xc5,0x9d,0x3,0x66,
+ 0xe7,0xbf,0xdf,0x78,0x37,0x27,0xd2,0xd0,0xf0,0x90,0x7c,0x36,0x91,0x7f,0x7,0xe0,
+ 0x91,0x5d,0x27,0x36,0x6f,0xae,0xde,0x3c,0xcc,0xce,0xb5,0x7d,0x95,0x1d,0x3b,0x90,
+ 0xcb,0xe5,0x64,0x46,0x9,0xd9,0x6b,0x5b,0xf6,0x53,0xcf,0x14,0x36,0x6f,0x46,0xfc,
+ 0xde,0x6a,0x1f,0xb7,0x6c,0x5c,0xb2,0x6b,0xd7,0x6e,0xf1,0x43,0xae,0x2d,0xc3,0x1b,
+ 0x97,0xaf,0xd8,0xda,0xd6,0x22,0xab,0xe8,0xf2,0xb5,0xac,0x3a,0x63,0x95,0x8d,0x1a,
+ 0xeb,0x78,0x79,0x83,0xc6,0xd8,0xc6,0xaa,0xc2,0x3c,0x67,0x57,0xc8,0x5,0x37,0x5e,
+ 0x12,0x61,0xab,0x69,0x1a,0xd7,0xe1,0xf9,0x9e,0x28,0x8a,0xee,0xbc,0xf3,0xce,0xee,
+ 0xee,0xde,0xf3,0xcf,0xdf,0xd2,0xdd,0xdd,0x1d,0x86,0xe1,0xd0,0xd0,0xb1,0xa3,0x47,
+ 0x8f,0xe,0xd,0x1d,0xdf,0xbe,0xfd,0xf1,0xae,0xae,0xae,0xd,0x1b,0xce,0x7e,0xe8,
+ 0xa1,0x7,0xbe,0xf7,0xc3,0x5b,0x74,0x4d,0xf9,0xe0,0x75,0x57,0x2b,0x94,0x79,0x5e,
+ 0x48,0x69,0xe4,0x7b,0x21,0xa3,0x2c,0xa,0x82,0x88,0x11,0x6,0x6,0x6,0x4a,0x19,
+ 0x0,0x42,0xc0,0x40,0x9,0xc0,0x22,0x10,0x45,0xa9,0x2e,0x4b,0x5f,0x3,0xa3,0x91,
+ 0xa6,0x92,0x54,0xd2,0xb2,0xc7,0xf7,0xde,0x71,0x90,0x7d,0xed,0x9e,0x68,0xdb,0xeb,
+ 0xae,0xee,0xeb,0xeb,0xe3,0xa,0x30,0x97,0x9f,0x9c,0x78,0x9a,0xa6,0x89,0x5a,0x7c,
+ 0x3c,0x2a,0x43,0xaf,0x59,0xa7,0xe4,0xaf,0xb8,0x51,0x8a,0xcf,0x8a,0x79,0x43,0x98,
+ 0xa9,0x9e,0x17,0xa3,0xd4,0x1c,0xd,0xc1,0xbe,0x46,0x6e,0x2a,0x98,0xb7,0xe6,0x2d,
+ 0x47,0xc6,0xdb,0x9,0xfb,0xd0,0xe1,0x41,0x3e,0x86,0x16,0x2d,0xea,0xbc,0xf6,0xb2,
+ 0x8d,0xb1,0xd1,0x23,0x5b,0x98,0xe7,0x59,0x39,0xc9,0x4e,0xd8,0xbf,0xda,0x1e,0x5f,
+ 0xcb,0x6f,0x6,0xf3,0x98,0x22,0x3e,0xf1,0xc4,0x76,0x4e,0x98,0x9e,0x9e,0xee,0xaa,
+ 0x62,0x5c,0x83,0x4c,0xcb,0x19,0x61,0x68,0x76,0x42,0xf2,0xf,0x41,0x12,0xbc,0x90,
+ 0xe6,0x5,0x8e,0xeb,0x1c,0x3a,0x3c,0x18,0xbf,0x81,0xda,0x47,0x3e,0xc7,0x16,0x82,
+ 0x77,0xe5,0x8a,0x3e,0x34,0xd8,0xb1,0xd,0xc3,0x68,0x62,0x3c,0x9b,0x13,0xaa,0x54,
+ 0x59,0xae,0xee,0xb2,0x92,0xf5,0xab,0x11,0x8d,0xf6,0xfc,0xf9,0xfc,0x73,0x9f,0xf7,
+ 0x86,0x98,0x7b,0xf3,0xb9,0xee,0x33,0xcf,0x3c,0x73,0xf0,0xe0,0xc1,0x6c,0xb6,0x7d,
+ 0xd9,0xb2,0x3e,0x5d,0x37,0x5c,0xd7,0x3d,0x72,0xe4,0xd0,0x43,0xf,0xdd,0x7f,0xe0,
+ 0xc0,0x9e,0x7d,0xfb,0x76,0xff,0xfc,0xe7,0xb7,0x85,0x61,0x68,0x18,0xa6,0xef,0x7,
+ 0xdf,0xfe,0xee,0x4f,0x1f,0x7d,0xe2,0x69,0xd7,0xf,0x82,0x88,0x3a,0xe,0xf5,0x7d,
+ 0x1a,0xfa,0x51,0x44,0xc1,0x58,0x35,0x58,0x83,0xa7,0x6,0x12,0xc6,0x73,0x4,0x9,
+ 0x8,0x94,0x86,0xd5,0xfd,0x82,0x4a,0x69,0xea,0xf8,0x91,0x74,0x38,0xfe,0xc4,0x10,
+ 0x3e,0x73,0x47,0x79,0xdb,0x55,0x6f,0xe3,0x8b,0x59,0x2b,0x8a,0xc2,0xe7,0xa8,0x62,
+ 0x8a,0xcb,0xa5,0xae,0xae,0xeb,0x5c,0xea,0x8a,0x3d,0xfc,0x18,0x0,0xbc,0x21,0x64,
+ 0xb5,0x98,0xd0,0x72,0xba,0xa2,0xd9,0xca,0x8f,0xcf,0x7b,0x63,0xb6,0xfd,0xa7,0x10,
+ 0x18,0x2d,0xc6,0x10,0xd7,0x6f,0xab,0x36,0xe1,0x79,0xff,0xaa,0xa9,0x47,0x57,0xe8,
+ 0xcc,0xbc,0x4a,0xd3,0xd1,0xc1,0xa3,0x63,0x63,0xe3,0x8d,0x87,0xcd,0x7,0x63,0x63,
+ 0xe3,0x3f,0xbf,0x77,0xcf,0xd0,0xd0,0x30,0xb7,0x24,0xf7,0xf4,0x74,0xef,0x3a,0x34,
+ 0x43,0xa0,0x5c,0x2e,0xd7,0xd3,0xd3,0xcd,0xff,0x86,0x86,0x86,0xab,0xef,0x1d,0x0,
+ 0xc0,0xa2,0x45,0x9d,0xd7,0x7f,0xf8,0xff,0x79,0xe7,0x9b,0x2f,0x59,0xb2,0xa4,0x89,
+ 0x63,0x89,0x87,0x22,0xdf,0xf7,0xe8,0x5c,0x95,0x6b,0xae,0xbc,0xf2,0xa,0x0,0x43,
+ 0x43,0xc3,0xef,0x7c,0x73,0xd5,0x69,0x59,0xd5,0xb1,0x6b,0x38,0x7f,0xfd,0xac,0x2e,
+ 0xab,0x18,0xe6,0x48,0xd9,0xe3,0xdd,0x5e,0x95,0xba,0x12,0x64,0x23,0x33,0xd7,0x71,
+ 0x4e,0x93,0x35,0x10,0x18,0xe3,0xe9,0x3c,0xf4,0x96,0x5b,0x6e,0x61,0x8c,0xb5,0xb7,
+ 0x77,0xa4,0x52,0x69,0xcf,0xf3,0xc7,0xc6,0xc6,0xc2,0x30,0x8a,0xa2,0x70,0xfb,0xf6,
+ 0x27,0xf2,0xf9,0xbc,0xef,0xfb,0xf,0x3d,0xf4,0x60,0xb9,0x3c,0xd,0x20,0xc,0xc3,
+ 0x8f,0xfc,0xf5,0xbf,0x8d,0x4c,0x94,0x7c,0xc7,0xa3,0x61,0x40,0xc3,0x30,0xa0,0x51,
+ 0xc4,0x68,0x35,0xd6,0x82,0x11,0x28,0x84,0x80,0x50,0x46,0x0,0xa5,0x5a,0x15,0xbd,
+ 0x3e,0x48,0x98,0x51,0x1a,0x56,0xa6,0xc,0x5b,0xfb,0xcf,0xa7,0xf4,0xf,0xfd,0xc4,
+ 0x7d,0xdd,0xeb,0xaf,0x5d,0xb4,0x68,0x51,0x2c,0x7,0x28,0x56,0xe6,0x22,0x56,0x17,
+ 0x2e,0x96,0x8b,0x2b,0x92,0xf8,0x62,0xf1,0xc9,0xa4,0x7e,0x1,0xa1,0x17,0x1f,0xf3,
+ 0x5d,0x73,0x48,0xce,0x19,0xe0,0xd1,0x8b,0x47,0x7,0x9b,0xaf,0xca,0xd7,0x74,0x22,
+ 0x17,0x9b,0xeb,0xf2,0x1,0x1a,0xcb,0x43,0x48,0xa7,0x53,0x76,0xc2,0xbe,0xfb,0xe1,
+ 0x78,0x25,0xd7,0x79,0x82,0x4f,0x71,0xe5,0xbc,0xd9,0xd9,0xee,0xb0,0xa7,0xa7,0xbb,
+ 0x91,0x8a,0x2b,0x57,0xf4,0xbd,0xe5,0xaa,0xcd,0x57,0x5d,0xb2,0x81,0x7f,0xac,0xda,
+ 0x84,0x6a,0x33,0x5e,0xc7,0x75,0xe6,0x78,0xa7,0xbc,0xe5,0xaa,0xcd,0x7f,0xf5,0xd1,
+ 0xf7,0x7e,0xf3,0xcb,0x1f,0xe5,0x22,0x77,0xbc,0x9c,0xe4,0x15,0x98,0xab,0x97,0xeb,
+ 0xee,0x11,0x93,0x52,0x19,0x31,0xf3,0x58,0x23,0x64,0xc1,0x2b,0x5c,0x44,0x4d,0xbc,
+ 0x47,0x75,0x91,0x67,0xae,0x5c,0x34,0xef,0x25,0x4,0xab,0xa1,0x5c,0x2e,0xdf,0x77,
+ 0xdf,0x7d,0x8a,0xa2,0xac,0x5c,0xb9,0xda,0x30,0xac,0xc3,0x87,0x9f,0xb9,0xff,0xfe,
+ 0xbb,0x77,0xee,0xdc,0x7e,0xef,0xbd,0xf7,0x4c,0x4e,0x4e,0x26,0x12,0x9,0xc6,0x28,
+ 0x63,0x33,0x9,0x58,0x13,0x93,0x93,0xdf,0xf8,0xee,0x2d,0x11,0x45,0x18,0x45,0x94,
+ 0xd7,0x98,0xab,0x16,0x9a,0x3,0x1,0x23,0x8c,0x12,0xc2,0x78,0xa1,0xf5,0xa6,0xcb,
+ 0xe3,0xf9,0x6e,0xe5,0xf8,0xf0,0xd0,0x4f,0x9f,0x18,0xff,0xf1,0xe3,0xe5,0x37,0x5c,
+ 0x7b,0xed,0xf2,0xe5,0xcb,0x5,0xf1,0x4,0x69,0x5,0x57,0x4d,0xb1,0x7e,0x8c,0x44,
+ 0x5a,0x6e,0x4c,0xd6,0x6b,0x55,0x2f,0xe4,0xa4,0x82,0x17,0xae,0xe4,0xc5,0xb3,0xc0,
+ 0xb3,0x2f,0x70,0x33,0xa3,0x33,0x4b,0xe0,0x21,0x19,0x76,0xb5,0x7e,0xc5,0x5c,0xab,
+ 0x1f,0x8,0x70,0xc1,0xcb,0x8f,0x34,0x4d,0xc3,0xa9,0x38,0xbf,0x79,0x72,0xf8,0xa4,
+ 0xbf,0x8a,0xe1,0x1b,0xdf,0xbd,0x4d,0xb4,0xf9,0xbb,0x43,0xf6,0x79,0x8e,0x97,0x93,
+ 0x22,0x1b,0x89,0x6f,0x87,0x86,0x87,0x9a,0x52,0x71,0xe5,0x8a,0xbe,0xd6,0xb6,0x16,
+ 0x11,0xa,0x2,0xc1,0x5e,0xcb,0x7e,0x70,0xc7,0x5c,0xb,0x88,0xca,0xe4,0xbc,0xf5,
+ 0x96,0x5b,0x64,0x3,0x95,0x1c,0xf6,0x24,0xee,0x30,0x96,0xd2,0xdc,0x74,0x4e,0xc1,
+ 0xa7,0xbb,0xf2,0x9e,0xd9,0xe2,0xd8,0x1a,0x2d,0xd5,0x2f,0x6d,0xc2,0x3d,0x27,0x2d,
+ 0x6f,0x1c,0x38,0x70,0x60,0x6c,0x6c,0xac,0xa7,0xa7,0x77,0xf5,0xea,0xd5,0xa5,0x52,
+ 0xe9,0x9e,0x7b,0xee,0xda,0xb5,0x6b,0xd7,0x23,0x8f,0x3c,0x4,0x10,0xcb,0xb2,0xf2,
+ 0xf9,0x7c,0xe3,0x8b,0xe6,0xe1,0xc7,0x76,0x3f,0x73,0x64,0x98,0x7,0x48,0xf1,0x2,
+ 0x73,0xac,0x5a,0xe8,0x95,0xd7,0x8c,0xe4,0xfb,0x1a,0x6a,0x6,0x79,0xfe,0xaf,0x1e,
+ 0xd8,0xf1,0xd1,0xbf,0xfb,0xfe,0x87,0xff,0xfe,0xd6,0x3b,0x9e,0x2a,0x5e,0x7d,0xcd,
+ 0x9b,0x7a,0x7b,0x7b,0xe5,0x32,0x17,0x5a,0x7d,0xc1,0x64,0xde,0x96,0xf3,0xe6,0x5,
+ 0x69,0x9b,0xe6,0xdf,0x42,0xaa,0x9f,0xfe,0x92,0xf3,0x16,0xf3,0xaf,0x92,0x21,0xa,
+ 0xd3,0xf0,0x3d,0x3c,0x80,0xe9,0xb1,0xdd,0xc3,0x5c,0xce,0x8,0x1c,0x38,0xb0,0x8f,
+ 0x37,0x4e,0x5a,0xf1,0x8c,0x9f,0x53,0xb6,0xc4,0x8,0x23,0xea,0x81,0xfd,0xfb,0x2d,
+ 0xcb,0xda,0xb4,0xb6,0x79,0x3d,0xe7,0x18,0x72,0x6e,0xe6,0xc6,0x1b,0x6f,0xe0,0x54,
+ 0x11,0x2,0xbf,0xa7,0xbb,0x87,0x37,0xf6,0xe,0x54,0xce,0xec,0x4f,0x1c,0xdd,0x7f,
+ 0x3f,0x0,0xdb,0xb2,0xf9,0x7e,0x7e,0xd8,0x7f,0xdf,0xfe,0xe8,0x7,0xae,0xbb,0xb6,
+ 0xf1,0x84,0x86,0x61,0xc8,0x69,0xfd,0x2,0x85,0xfc,0xd4,0xaf,0x1e,0x3a,0x78,0xf9,
+ 0xd6,0x55,0x73,0xdf,0xcf,0x4d,0x77,0x3c,0x21,0xc,0x54,0x3c,0xd8,0x23,0xdb,0x7b,
+ 0x6e,0xec,0x98,0x6c,0x36,0xcb,0x67,0xd4,0x4d,0x6b,0x0,0xcd,0x6,0x5e,0xe4,0xa0,
+ 0xc5,0x28,0x1,0x33,0x3d,0xc3,0xd3,0x95,0x62,0x47,0xca,0x25,0xf2,0x5e,0x12,0x8,
+ 0x91,0x4b,0x29,0x7d,0xf2,0xc9,0x27,0x83,0x20,0x58,0xb7,0x6e,0x83,0x69,0xda,0x7b,
+ 0xf7,0x3e,0xf5,0xe8,0xa3,0x8f,0x4c,0x4f,0x97,0x6,0x7,0x7,0x3d,0x6f,0xd6,0x30,
+ 0xbb,0xfc,0xd4,0xf4,0x8e,0x3d,0x7,0xfb,0x7b,0x3a,0x14,0x10,0x10,0xca,0xa0,0x2a,
+ 0xa4,0x56,0x36,0x52,0x22,0x4c,0x18,0x45,0xf9,0xa9,0xe9,0x13,0x63,0xb9,0x43,0x3,
+ 0xc3,0x4f,0xee,0x3d,0x72,0x70,0x70,0xcc,0xb4,0xed,0xde,0xde,0xde,0xdf,0xbd,0xe0,
+ 0x92,0xae,0xae,0x2e,0x5d,0xd7,0x85,0xb0,0x55,0x1b,0x8a,0x9e,0xc7,0x48,0xab,0x4b,
+ 0xeb,0x7d,0x89,0xe2,0x18,0x72,0xc6,0x3c,0xa9,0x5f,0x9b,0xef,0xc5,0xe8,0xc4,0x93,
+ 0xe1,0x14,0xaa,0x1c,0xc5,0x68,0xc6,0xcb,0x3e,0x6d,0xdf,0x9f,0x13,0x1c,0xcb,0xb9,
+ 0x99,0x13,0x27,0x46,0xf8,0x60,0x6a,0xac,0x90,0x3c,0x7,0x1a,0xf,0xdb,0xf9,0xe4,
+ 0x93,0x4f,0x3f,0x6d,0x6f,0xd9,0xf2,0x9a,0xe5,0x8b,0x4f,0xf2,0x6e,0xbb,0xf7,0xde,
+ 0x5f,0xb,0x83,0xad,0x1d,0xf3,0xa0,0x0,0x7,0xe,0xec,0xeb,0x48,0x2c,0x3b,0x3a,
+ 0xc1,0x1a,0xd5,0x78,0xc7,0x75,0x6e,0xfc,0xd9,0x43,0x57,0x5e,0x79,0x55,0xd6,0x2a,
+ 0xce,0x79,0x6f,0x33,0x67,0x3b,0x3a,0x78,0xf4,0xdf,0x7,0x8f,0x6e,0x79,0xcd,0x6b,
+ 0xce,0xec,0x6f,0xae,0x4d,0xdc,0xf6,0xeb,0x5d,0x7b,0xf6,0xec,0x95,0xaf,0x95,0xcd,
+ 0x66,0x93,0x64,0x2,0xa8,0x53,0x98,0xb9,0x72,0xd1,0x28,0x2a,0x4f,0xa,0xc3,0x30,
+ 0xe4,0x4,0xf,0xae,0x9e,0xc8,0x95,0xba,0x4e,0x13,0xb0,0x9a,0xbd,0xd7,0x71,0x9c,
+ 0xdd,0xbb,0x77,0x13,0x42,0xfa,0xfa,0xfa,0xa7,0xa7,0x8b,0xf7,0xde,0xfb,0xab,0xc9,
+ 0xc9,0xc9,0xb1,0xb1,0xd1,0x39,0x78,0xb,0x20,0x8a,0xc2,0x23,0x47,0x47,0x3d,0x3f,
+ 0xb4,0x4d,0xa3,0xe6,0xb0,0xad,0x3a,0x83,0xf8,0xc9,0x27,0xb,0xc5,0x9d,0x7b,0xf,
+ 0xef,0xdc,0x7b,0xf8,0xf0,0xd1,0x91,0x90,0x2a,0xa9,0x96,0x6c,0x6f,0x4f,0xff,0x95,
+ 0xeb,0x36,0x65,0xb3,0x59,0x91,0x76,0x2b,0x64,0xa6,0x2e,0x15,0x7c,0xd3,0xea,0x4b,
+ 0x28,0xf3,0x9c,0x5b,0x31,0xad,0x8d,0xa9,0xc7,0x31,0x3d,0xf9,0x85,0xce,0xbf,0x3d,
+ 0x55,0x3c,0x8b,0x2,0x37,0xdc,0x10,0x52,0x5d,0x8,0xe7,0xe9,0xa7,0xf,0x58,0xd6,
+ 0xd9,0x67,0xf6,0x27,0x8e,0x4e,0x28,0xbf,0xf9,0xcd,0x1d,0x9c,0xb7,0xdc,0x53,0x3a,
+ 0xcf,0x35,0xda,0xe5,0x65,0xa0,0x85,0xa3,0x8,0x80,0x53,0x71,0x7e,0xfe,0xf3,0xdb,
+ 0xd7,0xac,0x59,0x73,0xee,0xb9,0x9b,0x9a,0xb2,0xeb,0xe8,0x84,0xf2,0x9b,0xdf,0x3c,
+ 0x78,0xf0,0xe0,0x41,0xc1,0x5b,0x91,0x88,0x23,0x4b,0xb3,0xc7,0xf6,0x8c,0x0,0x48,
+ 0xa7,0x53,0xc2,0xec,0x69,0x9a,0x46,0xd5,0x11,0x5a,0x71,0xee,0xbd,0xf7,0xd7,0x97,
+ 0x5e,0x7a,0x99,0x38,0xff,0xde,0x81,0xca,0xd8,0xe8,0xb8,0xf4,0xea,0x99,0x29,0x19,
+ 0xcb,0xf7,0x38,0x15,0xe7,0x9e,0x7b,0x7e,0xfd,0x54,0x36,0x1b,0xe3,0xfc,0x91,0x51,
+ 0x76,0xcf,0xaf,0x7f,0x1d,0xcb,0x34,0xe0,0xf1,0x24,0x5a,0x66,0x25,0x50,0x77,0x64,
+ 0x21,0x3f,0x35,0x5b,0x31,0xda,0xa6,0x90,0x3b,0xe7,0xc4,0x89,0xe1,0x33,0xfb,0x57,
+ 0x1,0xf8,0xcd,0x93,0xc3,0x47,0x8f,0xe,0x9e,0xd2,0x79,0x5e,0x64,0x30,0xc6,0xa,
+ 0x85,0xc2,0x53,0x4f,0x3d,0x55,0x2a,0x95,0x1c,0xa7,0xb2,0x7d,0xfb,0xa3,0xcf,0x3c,
+ 0xf3,0xf4,0xf0,0xf0,0xf1,0x58,0x61,0xe0,0x66,0x3f,0xc4,0xce,0x7d,0x47,0x4a,0x65,
+ 0xd7,0xb6,0x4c,0x48,0xc6,0x63,0x3f,0x8,0x1e,0x7c,0x7c,0xdf,0x6d,0x77,0x3f,0xb2,
+ 0x6b,0xef,0x11,0xc3,0x32,0xd7,0xaf,0xdf,0xf0,0x9a,0x8b,0xaf,0x68,0x6d,0x6d,0x8d,
+ 0x55,0x6f,0x53,0x6b,0x2b,0xdf,0xca,0x82,0x54,0x4c,0x5f,0xb9,0xb0,0x15,0x59,0xf2,
+ 0x32,0x6f,0x85,0x94,0x16,0x6a,0xb6,0x7c,0xe6,0xd3,0x41,0x49,0x96,0x41,0x6,0x7,
+ 0xe3,0xf3,0xd5,0xa6,0x68,0xba,0x50,0x25,0x6a,0xa9,0x76,0xe9,0x74,0x4a,0xd4,0xa9,
+ 0x89,0x95,0x7d,0xb3,0x2c,0x6b,0x8e,0xb4,0xa1,0xc6,0x45,0xe2,0xf9,0x8a,0xd2,0x22,
+ 0x13,0x48,0xcc,0x57,0x1b,0xc3,0x92,0xaa,0xea,0x68,0x36,0x2b,0x27,0xe5,0xe3,0x64,
+ 0xe3,0xd8,0x95,0x72,0x92,0x4,0x81,0xc5,0xb7,0x62,0x99,0x79,0xd4,0xcf,0xd5,0x45,
+ 0x89,0x49,0xfe,0x98,0xf2,0xcd,0xc4,0x1c,0xc2,0x90,0x94,0x58,0x7e,0xe6,0xb3,0xcf,
+ 0x39,0x87,0xef,0xcf,0xe7,0x73,0xae,0xeb,0xf0,0x57,0x3,0x1a,0x16,0xb3,0x97,0x9d,
+ 0xba,0x27,0xed,0x73,0xf9,0x72,0xdc,0x38,0x1f,0x5b,0x31,0xb0,0x69,0x6f,0xbf,0x68,
+ 0xe0,0x3e,0x21,0xc6,0xd8,0xfd,0xf7,0xdf,0xff,0xbe,0xf7,0xbd,0x6f,0xe9,0xd2,0x65,
+ 0xaf,0x79,0xcd,0xb6,0x3,0x7,0xf6,0xc,0xc,0xc,0x4c,0x4d,0x15,0x98,0xe4,0x83,
+ 0x9d,0xd,0x86,0x61,0x7c,0xe3,0xb3,0x1f,0x5a,0xbe,0x74,0xd1,0x64,0xbe,0x34,0x32,
+ 0x9e,0x3b,0x3c,0x78,0xe2,0xc9,0x7d,0x3,0xcf,0xc,0x8e,0x5a,0x76,0x62,0xc9,0x92,
+ 0x25,0x2b,0x56,0xac,0xe0,0xc5,0x56,0x65,0x3a,0xc9,0xa6,0x60,0x45,0x5a,0x60,0x5e,
+ 0xae,0x20,0x25,0x74,0x63,0xb9,0xc1,0xbf,0x6a,0xb4,0x21,0x9f,0x26,0x96,0xe4,0xd9,
+ 0x30,0x5f,0xea,0x62,0xf6,0x91,0xc4,0x73,0x0,0xe4,0x15,0x28,0x63,0x65,0xdf,0xe6,
+ 0x1e,0x49,0x8d,0xa7,0x45,0xb5,0xec,0x43,0xb5,0x14,0x2b,0x27,0x40,0xd3,0x24,0x1e,
+ 0x59,0xd2,0x8a,0x11,0x2c,0xbe,0xb5,0x9a,0x95,0x8c,0x85,0x14,0x75,0x24,0x38,0xc0,
+ 0x39,0xcc,0xa5,0x71,0x23,0x6f,0xe5,0x1f,0xc6,0xee,0xaa,0xba,0xdf,0x75,0x62,0xba,
+ 0xba,0x3c,0xd5,0x6f,0x8c,0x8b,0x6e,0x7c,0xbb,0x35,0xed,0x25,0xa1,0xec,0x88,0xd5,
+ 0x3a,0xe5,0x3e,0xb7,0x2c,0x9b,0x6f,0x21,0x69,0xdd,0x73,0xbf,0x28,0x5f,0x34,0x8,
+ 0xea,0x7e,0xfc,0xe3,0x1f,0xbf,0xe9,0xa6,0x9b,0x52,0xa9,0xb4,0x65,0x59,0xa5,0x52,
+ 0xd1,0xf3,0xbc,0xf9,0xf0,0x96,0xe3,0xff,0x6f,0xef,0xfa,0x9a,0xd2,0xc8,0x96,0x78,
+ 0xeb,0x60,0x64,0x5c,0x4d,0x98,0x89,0xa0,0x93,0x4b,0xe9,0x15,0x2a,0xab,0x71,0x53,
+ 0x9,0xa6,0x6a,0xaf,0xe6,0x2d,0x79,0xba,0x95,0xfb,0x5,0xf6,0x63,0xec,0x97,0xda,
+ 0xd7,0x7d,0x8d,0x2f,0x7b,0x4b,0x1f,0x72,0x2b,0x58,0xd9,0x35,0x98,0x72,0x89,0x24,
+ 0x15,0x14,0xc2,0x66,0xd4,0x51,0x6,0x4d,0xc2,0x41,0x51,0xb8,0xf,0x9d,0xe9,0x6d,
+ 0xce,0xc0,0x38,0xe2,0x9f,0xc5,0x2c,0xbf,0x7,0xb,0x86,0xf3,0xa7,0xe7,0x38,0xbf,
+ 0xe9,0x3e,0xdd,0xe7,0xf4,0xf9,0xf7,0xe3,0x7f,0x41,0xed,0xf8,0xc3,0x56,0xb1,0x5a,
+ 0x53,0xb4,0x9b,0xe1,0x5b,0xb7,0x6e,0x69,0x9a,0x76,0xe3,0xc6,0x8d,0xbe,0xbe,0x3e,
+ 0x0,0xc0,0x85,0xfe,0x4,0x24,0x1e,0x0,0xa0,0x9a,0xc5,0x75,0xc8,0xdc,0x18,0x26,
+ 0x8a,0x52,0x62,0x1a,0xfa,0x4b,0xd4,0xed,0x6d,0x3c,0xd7,0x8b,0xb4,0x6e,0x7,0xf2,
+ 0x16,0xda,0xa0,0x2e,0x34,0xa3,0x19,0x2f,0xc6,0xed,0x64,0xfe,0x24,0x41,0x8b,0x87,
+ 0xc9,0xdd,0x2c,0xb4,0xc8,0xa5,0xc,0x8e,0x1e,0x93,0x18,0x72,0x62,0x26,0xd,0x9,
+ 0x92,0xd8,0xd2,0xea,0x5f,0x7e,0x7c,0xa6,0x3b,0x93,0xe,0x97,0xa,0x1a,0x69,0xc9,
+ 0x6d,0x75,0xe2,0x55,0xc5,0xd9,0xc4,0x4f,0xc5,0xa8,0x0,0x4f,0xd9,0x3,0x2d,0x5e,
+ 0x70,0x6e,0xab,0x84,0xb,0x2f,0x45,0x8c,0xfc,0x6c,0x8d,0xbe,0x1c,0x1c,0x1e,0x1e,
+ 0xd6,0x6a,0xb5,0x6a,0xb5,0xfa,0xfd,0xf7,0xdf,0xb7,0x11,0xa9,0xea,0xe9,0xe9,0xa9,
+ 0xd7,0xeb,0xba,0xae,0xcf,0xcc,0xcc,0xdc,0xbd,0x7b,0xf7,0xfa,0xf5,0xeb,0x0,0x80,
+ 0x4e,0x2f,0xf2,0x5d,0x13,0xf8,0x8c,0x94,0x3c,0xc9,0xb8,0xba,0x98,0x34,0xad,0xd2,
+ 0x98,0xd5,0x91,0xae,0x28,0xae,0x5c,0x70,0xa,0xcb,0xc3,0x4a,0x1e,0xa9,0xe,0xf1,
+ 0x4b,0x49,0x68,0x3f,0x19,0x77,0x2b,0x92,0xf0,0xc7,0x88,0xe0,0xf1,0x18,0x91,0xfb,
+ 0x9a,0x26,0xbd,0xae,0x6,0x55,0x62,0x17,0x4d,0x59,0xb9,0x6d,0x2c,0xd1,0xcc,0xbf,
+ 0x6f,0x8c,0x74,0xb2,0xaa,0xe,0x10,0x93,0x5b,0xb5,0x56,0x71,0x4e,0x39,0x71,0x12,
+ 0x26,0xab,0x95,0x8a,0xb8,0x7e,0xfd,0x6,0xca,0x46,0x56,0x3a,0x36,0x85,0x19,0xf0,
+ 0xe8,0xab,0xdb,0x86,0xe7,0x7a,0x12,0x5a,0xec,0xc7,0x60,0x85,0xff,0x74,0x7,0xe0,
+ 0x5f,0x4d,0xd3,0xa5,0xbc,0xcd,0x9d,0xc3,0x5b,0x70,0xdc,0x54,0x8b,0x8b,0x8b,0x1e,
+ 0xbb,0xb5,0xdd,0xf8,0xe6,0x9b,0x6f,0x74,0x5d,0xf,0x85,0x42,0x13,0x13,0x13,0xb1,
+ 0x58,0xec,0xe6,0xcd,0x9b,0xc4,0x55,0x3c,0x90,0x1a,0xd7,0xc,0x3,0xf3,0x33,0x13,
+ 0xc1,0xf8,0x4c,0x55,0xa,0x5,0x49,0x86,0xb1,0x14,0xb3,0xd,0x38,0xa7,0xe0,0x4a,
+ 0x16,0x32,0x5,0x84,0x3a,0x50,0xdf,0x22,0x4e,0x41,0x5d,0x89,0x63,0x70,0x12,0x7b,
+ 0xe1,0xa4,0x27,0xd2,0x7f,0xcb,0x9c,0x5a,0x9c,0x24,0xbc,0x3b,0x5e,0x85,0x4e,0xe2,
+ 0x6c,0xfa,0xca,0xc7,0x92,0xb4,0x42,0x93,0x3b,0x81,0x78,0x23,0x92,0xc,0xbc,0x16,
+ 0xaf,0x2,0x8d,0x56,0x3a,0x0,0xe0,0x41,0xd5,0x44,0xb3,0xa6,0xc1,0x6d,0x9f,0x7a,
+ 0x92,0x46,0xc6,0x2d,0x92,0xfb,0xe5,0xd2,0x21,0x8b,0xa8,0x8,0x3f,0xff,0xfc,0xb3,
+ 0x77,0x1,0xd4,0xae,0x3,0x3,0x3,0xb7,0x6f,0xdf,0x8e,0xc7,0xe3,0x23,0x23,0x23,
+ 0xba,0xae,0xf,0xd,0xd,0x1,0xd3,0xb1,0x52,0x79,0x6e,0xbb,0x92,0x9d,0x4c,0xa4,
+ 0xed,0x6d,0xcc,0x78,0xce,0xe7,0xb4,0x92,0x79,0xcc,0xe7,0xc3,0xa4,0x6f,0xc1,0x79,
+ 0x17,0x50,0x2f,0x1d,0xcb,0x5b,0x68,0x5b,0xeb,0x36,0x6,0x8a,0x9a,0x13,0x98,0x3f,
+ 0x49,0xde,0x61,0xc6,0xc6,0x84,0x55,0x2a,0x38,0x69,0xd6,0x79,0x19,0xa6,0xee,0x82,
+ 0x4d,0x15,0x8e,0x24,0x1b,0xb6,0xe3,0x7e,0x9a,0x89,0xd2,0x92,0x3a,0x95,0xfa,0x72,
+ 0xcb,0xc3,0x6b,0xf1,0x2a,0xa4,0xc,0xdd,0x2d,0x78,0xeb,0x7f,0xf7,0xaf,0xee,0x51,
+ 0xa2,0x91,0x21,0x31,0x5a,0x35,0xdb,0xea,0xdc,0xe0,0xbf,0x4,0x48,0xb9,0x56,0x33,
+ 0x5b,0x64,0xec,0xb5,0x6b,0xd7,0x1e,0x3c,0x78,0xf0,0xf0,0xe1,0xc3,0xa9,0xa9,0xa9,
+ 0x7a,0xbd,0x7e,0x7c,0x7c,0x7c,0x74,0x74,0x54,0xab,0xd5,0x6a,0xb5,0xda,0xd1,0xd1,
+ 0x11,0x56,0xec,0xed,0xed,0xc5,0x39,0x2d,0x6a,0x5d,0xde,0x2,0x71,0xc,0x49,0xc8,
+ 0xe3,0xb1,0xdc,0xb1,0x4c,0x11,0x20,0xba,0x48,0x1a,0x95,0xd8,0x2e,0x29,0xd8,0xce,
+ 0xf4,0x27,0xbb,0xd1,0xbe,0xc1,0x2c,0x3d,0xd3,0xd2,0x75,0x9,0xde,0xf6,0x9b,0xd2,
+ 0x98,0x71,0x8e,0xb7,0xc9,0x9,0x16,0xa,0x85,0x88,0xb4,0x6e,0xc2,0xf0,0x7e,0x3d,
+ 0x9e,0x60,0xb6,0xfa,0xd2,0xcb,0x76,0x70,0xef,0x73,0xe2,0xb5,0x78,0x15,0x14,0xcc,
+ 0xdd,0x82,0x1f,0xf6,0x4a,0xbd,0x78,0x8f,0x12,0x3f,0xd7,0xdb,0xd9,0x74,0xd5,0x40,
+ 0xd7,0xe,0xb1,0x96,0x1,0x0,0x2d,0xdb,0x1f,0x7e,0xf8,0xe1,0xc5,0x8b,0x17,0xd5,
+ 0x6a,0x15,0xb9,0xa7,0xaa,0x6a,0x24,0x12,0x89,0x44,0x22,0x13,0x13,0x13,0xdf,0x7d,
+ 0xf7,0x5d,0x3c,0x1e,0x57,0x14,0x5,0x37,0xc1,0x1c,0x1f,0x1f,0xe3,0xf6,0x57,0x32,
+ 0x8c,0xd1,0x45,0x84,0x17,0xc1,0xa5,0xfd,0x88,0xba,0x3c,0x0,0xcb,0xf5,0xad,0xa4,
+ 0x78,0xa9,0x40,0xc0,0x39,0xed,0x96,0x7,0x6f,0x79,0xe4,0xb6,0xe7,0x2,0xe,0x7,
+ 0xba,0x20,0x9c,0xc2,0x4d,0x85,0xf0,0x3e,0xdb,0x1a,0x9a,0x9d,0x34,0xe9,0xff,0x49,
+ 0x42,0xb5,0xe3,0xee,0xa2,0x95,0xab,0xe3,0x1c,0x55,0x8d,0x74,0xe0,0xbd,0x9f,0x66,
+ 0xa5,0xd7,0x56,0x53,0x61,0x9a,0xda,0xed,0x9c,0x81,0xfe,0xdd,0x78,0x3e,0xf1,0x97,
+ 0xf3,0x16,0x0,0xe,0xe,0xe,0x6a,0xb5,0xda,0xe7,0xcf,0x9f,0x7f,0xfa,0xe9,0xa7,
+ 0x67,0xcf,0x9e,0xf5,0xf7,0xf7,0xdf,0xb9,0x73,0x27,0x16,0x8b,0x45,0x22,0x91,0xe1,
+ 0xe1,0xe1,0x40,0x20,0x70,0x74,0x74,0x54,0xfd,0x92,0x55,0xf9,0x8,0xa9,0x7b,0x74,
+ 0x74,0x84,0xc7,0x2c,0xd6,0x1c,0x48,0xb3,0x5c,0x70,0xc,0x66,0x70,0x16,0x24,0xe2,
+ 0x57,0x3e,0xb9,0xe5,0x14,0xe5,0xe1,0x5c,0x49,0xc7,0x72,0xa7,0x54,0x87,0x7,0x6f,
+ 0x3d,0x70,0x6a,0xea,0x22,0x3c,0x9e,0x27,0xae,0x42,0xdb,0x7b,0x8c,0x4e,0xfb,0xb0,
+ 0x36,0x15,0xe0,0xec,0xed,0x37,0x7d,0x89,0x9c,0x3b,0xb0,0x17,0x6f,0x99,0xfd,0x8b,
+ 0xd1,0x9,0xbc,0x5,0x87,0xba,0x44,0x48,0x62,0x29,0x9a,0xc4,0xf8,0x15,0xff,0xd2,
+ 0xaf,0xc8,0x5b,0xb4,0x9c,0xb9,0x33,0x19,0xa9,0x4b,0x3e,0x5e,0x8a,0x0,0x71,0x83,
+ 0x99,0x2c,0x61,0x72,0x56,0x91,0xa6,0x25,0xb3,0xd9,0x1d,0xf8,0x21,0xf5,0x2b,0x45,
+ 0x80,0xae,0xa,0x75,0x3,0xe7,0xfe,0x74,0xf2,0x6,0x2f,0xe1,0xd1,0xf7,0x16,0xa0,
+ 0x13,0xda,0xf1,0xd3,0xcb,0xd5,0x92,0xf9,0x44,0x70,0xe5,0x89,0x3e,0x61,0x60,0x7b,
+ 0x0,0xf1,0x2f,0x38,0x53,0x62,0x64,0x26,0x7e,0xc6,0xd,0xb1,0x34,0xb3,0xa5,0x2,
+ 0x3c,0x7e,0xcb,0x2d,0x6a,0x6e,0xf4,0xd2,0x56,0x5b,0xa5,0x71,0x49,0x63,0xc0,0x39,
+ 0x96,0x9e,0x9a,0x42,0x2,0x63,0x7a,0x2a,0xae,0xd8,0xaf,0xa,0x69,0x11,0x57,0xfb,
+ 0xa4,0xd6,0x2e,0x3a,0x16,0x1e,0x26,0x2e,0xb9,0x73,0xf1,0x60,0x3,0xa4,0x56,0xaf,
+ 0x93,0x99,0xad,0x69,0xf0,0xd6,0xbd,0x46,0x82,0x47,0x74,0x14,0xb6,0x61,0x80,0xb8,
+ 0x4a,0x1c,0xee,0x65,0x87,0xee,0x29,0x8d,0xa7,0xef,0xb9,0x4d,0xf1,0x2b,0x84,0x2e,
+ 0x75,0xbb,0xb8,0x10,0xf4,0x34,0x86,0x70,0xc8,0xee,0x45,0x4e,0x22,0x3f,0x69,0x6e,
+ 0x85,0xbc,0x45,0x6f,0x16,0x8f,0x9,0x91,0x3e,0xe4,0x13,0x51,0xa2,0x5f,0x2f,0x4b,
+ 0xe9,0x8,0x0,0x3c,0x42,0x4b,0x2a,0x97,0x88,0xd,0xce,0xe2,0xd,0xb7,0x82,0xbd,
+ 0x8a,0xbc,0x85,0x36,0xa8,0x6b,0xdb,0x36,0x2e,0x33,0xe6,0x50,0xd5,0x1,0xc3,0x30,
+ 0x4e,0xdb,0x4e,0xa5,0x52,0x31,0xc,0xc3,0x34,0xcd,0x60,0x30,0xc8,0xcf,0x86,0x15,
+ 0x42,0x98,0xe6,0x87,0x58,0x2c,0x7e,0x5a,0xd9,0x3c,0x7a,0x69,0xaf,0x7a,0xe7,0x48,
+ 0x72,0x2a,0x8,0x21,0x70,0xf7,0x65,0x22,0xf1,0xe0,0x12,0xba,0x73,0xa3,0xc7,0x9,
+ 0xe7,0x20,0x67,0x90,0x90,0x8a,0xa2,0x90,0x3a,0x45,0xb2,0x91,0xda,0x44,0x1a,0xa3,
+ 0x99,0xdd,0xd4,0x3b,0xd5,0xdb,0xb8,0x5d,0x56,0x9a,0xb2,0x12,0x5d,0x25,0xd5,0xca,
+ 0x63,0x3f,0x3d,0x8d,0xc0,0x32,0x70,0x75,0x66,0xb6,0x6e,0x9c,0x9a,0xba,0x95,0x4a,
+ 0x5,0xd3,0x94,0xf2,0x35,0x89,0x43,0x43,0x83,0xa7,0xa7,0x6e,0xd1,0xb2,0xac,0x68,
+ 0x34,0x9a,0xcf,0xe7,0xc2,0xe1,0xf0,0xf0,0xf0,0x70,0xa1,0x50,0xc8,0xe7,0x73,0xb3,
+ 0xb3,0x73,0x95,0x4a,0x25,0x93,0xc9,0x9c,0x13,0x61,0x8a,0x96,0x65,0xb5,0x4d,0x98,
+ 0xb3,0x4b,0x92,0x4e,0xaf,0x6,0x83,0x6a,0x2c,0x16,0x3f,0xa3,0x24,0xa7,0xc2,0x52,
+ 0x32,0xa9,0xe,0xa8,0xe1,0x70,0xd8,0x34,0x4d,0x1c,0xd2,0x4b,0xe8,0xd4,0xd,0xae,
+ 0x6c,0x89,0xc3,0xdc,0x12,0x46,0x4d,0x8b,0xc5,0x28,0x38,0xe4,0x56,0xb9,0x3d,0x2c,
+ 0x60,0xa3,0xb0,0x35,0x8f,0x9c,0xa8,0x4a,0xe3,0xae,0x5a,0x6e,0x4e,0x73,0xa2,0x92,
+ 0x24,0x57,0x9d,0xb7,0xd0,0x6,0x75,0xd,0xc3,0x30,0xc,0x43,0x51,0x94,0xb7,0x6f,
+ 0xdf,0x58,0x96,0x35,0x3b,0x3b,0x77,0x46,0x4f,0x2c,0x3e,0x58,0xc7,0xc7,0xc7,0xb8,
+ 0x5e,0x4a,0x51,0x14,0x4d,0xd3,0x9e,0x3c,0x69,0x99,0x62,0xb2,0xd,0xb4,0x2d,0xe1,
+ 0xd9,0x25,0xf9,0xf8,0xf1,0x13,0x2e,0xff,0x8a,0xc5,0xe2,0xe7,0xf2,0x32,0xf2,0x3,
+ 0x51,0x11,0xf7,0x13,0x89,0xe1,0xe1,0xe1,0xb7,0x6f,0xdf,0xc0,0x65,0xb9,0xca,0x25,
+ 0x70,0x83,0x99,0xeb,0x3a,0x24,0x64,0xb5,0x5a,0xa5,0xc8,0x2d,0xaa,0x68,0x54,0x92,
+ 0xe4,0xd3,0x2,0x87,0xba,0xc0,0xa2,0xb8,0x78,0x2f,0x12,0x63,0x7b,0x1b,0x83,0xb1,
+ 0xdc,0x2a,0x96,0xbc,0xc7,0x3d,0x57,0x30,0x2,0xe4,0x81,0x36,0xe7,0xba,0x6e,0x37,
+ 0x32,0x86,0x2e,0x4d,0xf3,0x3,0x19,0xcf,0xa6,0x69,0x22,0x1b,0xd,0xe3,0x16,0x45,
+ 0x2f,0xd1,0xde,0xc6,0xa5,0x82,0xc0,0x8e,0xdb,0x5,0x67,0x1b,0xc0,0xce,0xce,0x8e,
+ 0xa6,0x69,0xb6,0x6d,0x93,0x9,0x8d,0x55,0xb8,0x4d,0x6e,0xdb,0x76,0x30,0x18,0x2c,
+ 0x95,0x4a,0x42,0x94,0x79,0xe3,0x68,0xdf,0x82,0xcb,0x80,0x6f,0x1a,0x28,0x96,0x4a,
+ 0x92,0x18,0xfc,0x16,0xb0,0x2f,0x4d,0xd3,0x70,0xef,0x8e,0xa6,0x69,0xd9,0xec,0x3b,
+ 0x0,0x40,0x12,0xf2,0xcf,0xd8,0x2,0x8a,0x44,0x17,0x9d,0x6d,0x3,0x82,0xc7,0x7e,
+ 0x9d,0x5e,0x4c,0x5c,0xea,0x4c,0xbd,0xbb,0xdb,0x6f,0x25,0xb3,0x74,0xcb,0xd2,0x38,
+ 0xd8,0xb6,0xd,0xce,0xde,0x49,0x1a,0x52,0xbe,0xe2,0x12,0x47,0x8f,0x2f,0xcf,0xc2,
+ 0x8,0xb3,0x7b,0xe8,0xa8,0x29,0xba,0x1d,0xb7,0x0,0x4d,0x41,0x6,0x73,0x20,0xf0,
+ 0x25,0x84,0x81,0xb4,0x44,0xa7,0x14,0xd2,0x15,0xa3,0x47,0x64,0x1e,0x3,0x0,0xf2,
+ 0x96,0xc8,0x8c,0x7c,0x26,0x3d,0x89,0xcd,0x4a,0x61,0x21,0xae,0x45,0xe9,0x33,0xf7,
+ 0x45,0x1,0xf3,0x2a,0x7f,0x35,0xa4,0x45,0x28,0x3f,0xfe,0xf8,0x63,0x7b,0x35,0x6d,
+ 0xdb,0x2e,0x97,0xcb,0xd1,0x68,0x14,0xbf,0x2e,0x2f,0xff,0xb6,0xb1,0xbe,0x71,0x58,
+ 0x3d,0xdc,0xdb,0xdb,0x8b,0x46,0xa3,0xe9,0xf4,0x6a,0x26,0x93,0xa9,0xd7,0xeb,0xbb,
+ 0x3b,0xbb,0x7f,0x14,0xa,0x23,0xa3,0xa3,0x7d,0x7d,0x7d,0xa6,0x69,0xfe,0xfa,0xeb,
+ 0x8b,0x7a,0xbd,0x5e,0x78,0x5f,0x38,0xac,0x1e,0x2,0x40,0x34,0x1a,0x5d,0x5e,0xfe,
+ 0xad,0x56,0xab,0xf5,0xf5,0xf5,0xfd,0xfe,0xfb,0xef,0x42,0x88,0x42,0xa1,0x30,0x3c,
+ 0x3c,0x9c,0x4c,0x3e,0xbf,0x7d,0xfb,0x36,0x0,0x50,0x95,0x4d,0x73,0x73,0x63,0x63,
+ 0xe3,0x9f,0x13,0x13,0x0,0xb0,0xb8,0xb8,0x70,0x70,0x50,0x29,0x16,0x8b,0xbc,0x71,
+ 0x21,0xc4,0x52,0x32,0xb9,0xb7,0xb7,0x77,0x58,0x3d,0x5c,0x5f,0x5f,0xaf,0x56,0xf,
+ 0xc2,0xe1,0x88,0x24,0x24,0xa2,0x69,0xc9,0xf7,0xef,0xf3,0xeb,0xeb,0x59,0xbc,0x5,
+ 0x5e,0x1d,0x25,0xf9,0xf4,0xe9,0x53,0x32,0xf9,0xbc,0x58,0xdc,0x3d,0x3e,0x3e,0xda,
+ 0xd8,0xc8,0x55,0xab,0x7,0xd9,0x6c,0xb6,0x5c,0x2e,0x17,0xa,0x5,0x2c,0x29,0x84,
+ 0x78,0xf5,0x6a,0x65,0xd3,0xdc,0x3c,0xac,0x1e,0xee,0xee,0xec,0x6e,0x6d,0x6f,0x45,
+ 0xa3,0xd1,0xf7,0xef,0xf3,0x85,0x42,0x61,0x6f,0x6f,0x6f,0x7f,0x7f,0xbf,0x56,0xab,
+ 0xad,0xaf,0x67,0x51,0x12,0x1a,0x1c,0xea,0x88,0xb7,0xbf,0xb5,0xb9,0x8d,0xd5,0xdd,
+ 0x32,0x1f,0x56,0xf,0xcb,0xe5,0xf2,0xeb,0xd7,0xaf,0x7,0x7,0x7,0x71,0xad,0xef,
+ 0xf2,0xf2,0x6f,0xd8,0x29,0x5d,0x5c,0x5c,0x5c,0x0,0x80,0xf2,0xe7,0xf2,0xfe,0xfe,
+ 0xde,0xe6,0xe6,0x26,0xe,0x69,0xbd,0x5e,0xdb,0xde,0xde,0x1a,0x1d,0x35,0x70,0xf4,
+ 0xf6,0xf7,0xf7,0xb1,0xfd,0xff,0x3d,0x7b,0x36,0x38,0x38,0x18,0x8,0x4,0x9a,0xe,
+ 0x5d,0x32,0xf9,0xbc,0x5c,0x2e,0xef,0xee,0xec,0xf6,0x7,0x83,0xbc,0xcc,0xc6,0xfa,
+ 0xc6,0x8d,0x50,0xc8,0x83,0xbd,0x48,0x3f,0xfc,0xdc,0xe3,0x84,0x79,0x38,0x91,0x88,
+ 0x4e,0x4a,0xe3,0xd2,0x7f,0x85,0x21,0xd0,0x98,0x26,0x4a,0x4a,0x76,0x21,0x45,0x80,
+ 0xa8,0x3a,0x9f,0xdf,0xba,0xe7,0xc6,0x5f,0xd,0x6f,0xe1,0x7c,0x3d,0xcc,0xea,0x80,
+ 0x8a,0xd6,0xaf,0x10,0x22,0x97,0xcb,0xcf,0xcd,0x3d,0xd4,0x34,0x4d,0x51,0x94,0xff,
+ 0xfe,0xf2,0xb,0x3a,0x7b,0x32,0x6b,0x6b,0x93,0x93,0x93,0xb1,0x58,0x1c,0x1f,0x44,
+ 0x9e,0x89,0x46,0xd3,0xb4,0xc9,0xc9,0x49,0xb4,0xc0,0xf1,0x65,0x8f,0xed,0xa4,0x52,
+ 0x2f,0x13,0x89,0x19,0xd4,0x3,0x4b,0x4b,0xc9,0x74,0x7a,0x75,0x7a,0xfa,0x4b,0xd2,
+ 0x46,0xec,0x6b,0x71,0x61,0x1,0x1b,0x5f,0x5f,0x7f,0x47,0x2,0x98,0xa6,0x99,0x4a,
+ 0xbd,0xa4,0x92,0x12,0x5a,0x95,0x2c,0x16,0x8b,0x8f,0x1e,0x3d,0x56,0x55,0x35,0x9b,
+ 0x7d,0x97,0xcf,0xe5,0xa7,0xa7,0xe5,0x8a,0xe1,0x70,0x38,0x16,0x8b,0x8f,0x8c,0x98,
+ 0xa9,0xd4,0x4b,0xbc,0x11,0xaa,0x5e,0x2a,0x95,0x44,0x59,0x3c,0x7a,0xfc,0x18,0xc5,
+ 0x5e,0x5c,0x5c,0xb0,0x6d,0x3b,0x16,0x8b,0x5b,0x96,0x85,0xb5,0x50,0x9d,0x62,0x8f,
+ 0xdb,0x5b,0x16,0x76,0x64,0xdb,0xf6,0x4a,0x2a,0xa5,0x69,0x26,0x6a,0x45,0x2c,0x89,
+ 0x9c,0x91,0x16,0x5a,0x99,0xe6,0x7,0x92,0x39,0x9d,0x5e,0xb5,0xed,0x5d,0xc3,0x30,
+ 0x52,0xa9,0x65,0x0,0x98,0x9d,0x9b,0x53,0x55,0x15,0x25,0x9,0x85,0x42,0x4f,0x9e,
+ 0xfc,0x67,0x7e,0xfe,0xe9,0xfd,0x44,0x2,0x75,0x38,0xe,0xa9,0x69,0x9a,0x99,0xb5,
+ 0x35,0x0,0xb0,0x6d,0x5b,0xd,0xaa,0x98,0x2a,0xc0,0xb6,0x6d,0x51,0x11,0xa1,0x50,
+ 0xc8,0x63,0xe8,0xc6,0xc6,0xc6,0x71,0xf0,0x17,0x17,0x16,0x22,0x23,0x61,0xbc,0x9e,
+ 0xcd,0xbe,0x5b,0x49,0xa5,0xf0,0x66,0x9b,0xa2,0xa7,0x71,0xd5,0x31,0x2a,0x43,0xda,
+ 0xf4,0xd3,0xeb,0x44,0x80,0x30,0xea,0x4b,0xc5,0x68,0x96,0x2b,0x4d,0x44,0x39,0xdb,
+ 0xe9,0x2b,0x3a,0xba,0x9a,0x1a,0xc3,0x92,0xbe,0x85,0x4e,0xdd,0xb5,0x77,0x46,0x9c,
+ 0x27,0x75,0xc3,0x61,0xe7,0x84,0x4e,0x55,0xc5,0x47,0x13,0x0,0x76,0x76,0x76,0xf0,
+ 0xa2,0x10,0x42,0x54,0x84,0x61,0xdc,0xc2,0x2,0x91,0x91,0x30,0x25,0xd6,0x68,0x85,
+ 0x52,0xa9,0xa4,0x6,0x55,0xb2,0xdf,0xc6,0xc6,0xc6,0x33,0x6b,0x6b,0xc8,0xa8,0x91,
+ 0x91,0x2f,0x17,0x89,0xff,0xd3,0xd3,0x77,0xd1,0xfc,0x13,0x42,0x48,0x5b,0x88,0x25,
+ 0xb4,0x2a,0xa9,0xeb,0x3a,0xca,0xac,0x69,0x7a,0x26,0x93,0x71,0x57,0x44,0xbb,0x11,
+ 0x69,0xc6,0x3f,0x3,0x80,0x61,0x18,0x41,0xe7,0x4c,0xc3,0x52,0xa9,0xe4,0xae,0x4b,
+ 0xb0,0xed,0xdd,0xc8,0x48,0xd8,0xe9,0x48,0x8b,0x8c,0x84,0x6d,0x7b,0xd7,0x30,0xfe,
+ 0x41,0x6d,0xe2,0x4c,0xc1,0x9d,0x4e,0x59,0x94,0x85,0x69,0x9a,0xa1,0x50,0x88,0x78,
+ 0x55,0xb2,0xf7,0x26,0xa7,0xa6,0xb0,0x98,0x61,0x18,0x99,0xb5,0xb5,0x52,0xa9,0xd4,
+ 0x54,0x19,0x86,0x42,0x21,0xcc,0x55,0x60,0xdb,0x45,0xcc,0x4d,0x8b,0x1e,0x6f,0x35,
+ 0xa8,0xaa,0xaa,0xea,0x31,0x74,0x64,0xcf,0x8b,0x8a,0x98,0x98,0x88,0xd3,0x38,0x64,
+ 0x32,0x19,0x8f,0xb5,0xa2,0xa4,0x69,0xe9,0x73,0x2f,0x5b,0x18,0x8c,0x1e,0x29,0x3a,
+ 0x68,0xab,0xee,0xe4,0x8e,0x94,0xaa,0xf3,0xaf,0x44,0x45,0x8c,0x27,0x71,0x26,0x93,
+ 0xf3,0x59,0xd2,0xea,0x70,0x65,0xa3,0x3e,0x3e,0x71,0x51,0x71,0xdd,0x52,0xa9,0xb4,
+ 0x94,0x4c,0xe2,0xe3,0x82,0x19,0x24,0xa4,0xe3,0x4b,0x82,0x41,0xf5,0x44,0xea,0xa,
+ 0x51,0xe6,0x9a,0x39,0x18,0xc,0x52,0xae,0xc,0xf7,0xb2,0x7e,0x8c,0x88,0x98,0xe6,
+ 0x26,0xf5,0xd8,0xba,0x59,0xbf,0x25,0xfd,0x43,0x51,0x14,0xd3,0xfc,0x63,0x25,0x95,
+ 0xa2,0x8c,0x19,0xad,0xf0,0xf1,0xe3,0x27,0x7a,0xc7,0x1,0x40,0x30,0xa8,0x5a,0x96,
+ 0x75,0xa2,0xe3,0x19,0x15,0x78,0x2a,0xf5,0x12,0x0,0xc,0x63,0x74,0x72,0xf2,0x8e,
+ 0xaa,0xaa,0xa2,0xd2,0xb0,0x11,0x42,0x1d,0x50,0x5b,0xbd,0xb3,0x70,0xd8,0x4d,0xd3,
+ 0xac,0x54,0x4,0xa6,0x1,0xc1,0x6c,0x3b,0x21,0xed,0x6,0xf8,0x18,0x10,0xfc,0xdf,
+ 0xa1,0x29,0xce,0x2f,0x7a,0x53,0x17,0x21,0x99,0xca,0x14,0xbf,0x45,0xf6,0x82,0xcb,
+ 0xed,0x2c,0xb1,0x4e,0xd2,0xc0,0x9c,0xa8,0xee,0x9f,0xa4,0xd9,0x6c,0x97,0xba,0xa7,
+ 0x86,0x6d,0xdb,0x68,0x52,0x6a,0x9a,0xae,0x69,0xda,0xd2,0x52,0xf2,0x22,0x7a,0x91,
+ 0xf0,0xea,0xd5,0xa,0x0,0x24,0x12,0x33,0xb8,0xc1,0x28,0x99,0x7c,0x7e,0xf6,0x92,
+ 0xfe,0xf1,0xf6,0xed,0x9b,0xed,0x2d,0x6b,0x72,0x6a,0x2a,0x14,0xa,0xa9,0xaa,0x3a,
+ 0x3f,0xff,0xf4,0xec,0x6d,0x4a,0x98,0x9d,0x9d,0x13,0x42,0xac,0xaf,0xbf,0xdb,0xde,
+ 0xb2,0x96,0x92,0x49,0xf,0x7b,0xb5,0x29,0x74,0x5d,0x17,0xa2,0xfc,0xf1,0xe3,0xa7,
+ 0xb1,0xb1,0x71,0x70,0xf2,0x6c,0xe1,0x4b,0xc4,0xe7,0x80,0xcc,0xcd,0x3d,0xe4,0x5f,
+ 0x79,0x28,0x5e,0x2,0x91,0x8a,0x7b,0x8c,0x11,0x81,0x40,0x80,0x16,0x2a,0x93,0xca,
+ 0x85,0x46,0x15,0x2d,0xcd,0x93,0xa1,0xd1,0x30,0xe6,0x6c,0x94,0xd4,0xaf,0xbb,0xe2,
+ 0x57,0x8c,0xb,0xa2,0x6e,0x51,0xd7,0xf5,0x3f,0x5d,0xaf,0x65,0x1,0xce,0x7f,0x9a,
+ 0x5c,0xc7,0x52,0x6e,0xb4,0xa6,0x50,0xd5,0x1,0x9e,0x2,0xa,0x9b,0x6d,0x55,0xb8,
+ 0x58,0x2c,0xe2,0xec,0x1a,0x0,0xbc,0x4d,0x56,0xff,0x25,0xfd,0xc3,0xb2,0xac,0xb1,
+ 0xf1,0x31,0xc9,0x59,0xdd,0x14,0x43,0x43,0x83,0xfc,0xde,0xf7,0xf7,0xf7,0xe8,0xa8,
+ 0x41,0xf,0x90,0xe7,0x79,0x7a,0xfa,0xae,0xa6,0x99,0xa8,0x7e,0x75,0x5d,0xb7,0xed,
+ 0x22,0x51,0x48,0x94,0x85,0x47,0xce,0xfa,0xa1,0xa1,0x41,0xcb,0xb2,0x8a,0xc5,0xe2,
+ 0xb7,0xdf,0x4e,0xa2,0xaa,0xc7,0xcf,0xe0,0x63,0x40,0xc8,0x86,0xa7,0x1b,0xcc,0x64,
+ 0x5e,0x4b,0xd9,0x8b,0x38,0xb8,0x26,0x94,0x96,0x34,0x22,0x99,0x15,0x45,0xe1,0x6b,
+ 0x9b,0xdd,0x15,0xdd,0xd,0x92,0xae,0x96,0x4a,0x36,0x55,0xce,0x7f,0x7,0x5c,0xd4,
+ 0xf4,0x5d,0x94,0x5,0x22,0x9d,0x5e,0x25,0x2b,0x57,0xd7,0xf5,0x37,0x6f,0x32,0x42,
+ 0x8,0xdb,0xb6,0xd1,0x3c,0xf3,0x6,0xee,0x83,0x4d,0xa7,0x57,0xb1,0x4a,0x3e,0x97,
+ 0xe7,0xa6,0xa6,0x4,0x35,0xa8,0x9a,0xe6,0x1f,0x0,0x60,0xdb,0x36,0xba,0x64,0xce,
+ 0x5e,0xd2,0x3f,0xfa,0xfb,0xaf,0x7d,0x59,0xa9,0x22,0x4,0x2a,0x31,0x82,0x94,0xfb,
+ 0xca,0x30,0xfe,0x61,0x9a,0x9b,0x48,0xc5,0x6c,0xf6,0x9d,0x69,0x6e,0xe2,0x44,0xf7,
+ 0x44,0xe4,0x73,0x79,0x7c,0x29,0xd8,0xf6,0x2e,0x9a,0xb5,0xe1,0x70,0x38,0x9f,0xcb,
+ 0xe3,0x1,0x2,0xe9,0xf4,0x2a,0x38,0x23,0xd6,0x14,0x9a,0x76,0x93,0xde,0xa1,0x9a,
+ 0xa6,0xa3,0xa7,0xa,0x39,0xe9,0x67,0x40,0x74,0x5d,0xcf,0xe7,0x73,0xf8,0x3f,0xcd,
+ 0x64,0x5e,0x97,0xec,0xbd,0x13,0xe3,0x43,0x3d,0x8e,0xf,0x99,0x83,0xb2,0x43,0xf5,
+ 0x3b,0x8,0x32,0xf4,0xb7,0x0,0x1d,0x35,0xc2,0x3d,0xcc,0xdc,0xb7,0xfc,0x75,0xdb,
+ 0xc6,0x4d,0x71,0x21,0x5a,0xd7,0x30,0x6e,0x59,0x96,0x85,0x53,0xa3,0xf1,0xf1,0x31,
+ 0xc3,0x18,0xc5,0xc7,0xf7,0xde,0xbd,0xfb,0x4b,0xc9,0xe4,0xe2,0xe2,0x82,0x1a,0x54,
+ 0xd,0x63,0x54,0x4a,0x95,0x88,0xce,0xa1,0xf9,0xf9,0xa7,0x89,0xc4,0x97,0xe3,0x2,
+ 0x54,0x55,0xbd,0x9f,0x48,0xac,0xa4,0x52,0xb9,0x5c,0x1e,0x9b,0xf2,0x58,0xd5,0x30,
+ 0x39,0x35,0x95,0x4a,0xbd,0xcc,0xe5,0xf2,0x6a,0x50,0xc5,0xcf,0xad,0xb4,0x9f,0xff,
+ 0x92,0xfe,0x31,0x3e,0x3e,0xb1,0x92,0x4a,0xcd,0xcf,0x3f,0xc5,0x36,0x45,0xf9,0x4b,
+ 0xe,0xc7,0x70,0x38,0x9c,0xc9,0x64,0xb6,0xb7,0xac,0xb1,0xf1,0x31,0xe7,0x36,0xb5,
+ 0x44,0x62,0x26,0x95,0x7a,0x89,0x9e,0xb0,0x44,0x62,0x6,0xe3,0xd8,0xde,0xed,0xf3,
+ 0x21,0x55,0x83,0x2a,0x26,0x88,0x8d,0xc5,0xe2,0x95,0x8a,0x40,0xfb,0x16,0x2f,0x4a,
+ 0x74,0xa2,0x21,0x7d,0xf4,0xe8,0x31,0x7a,0xaa,0xd0,0x6c,0x41,0xc6,0x92,0x9,0xe3,
+ 0x67,0x40,0xee,0xdd,0xbb,0xff,0xea,0xd5,0x8a,0x24,0x40,0x17,0x7f,0x21,0x7a,0xb2,
+ 0xd9,0xec,0x5,0x35,0xcd,0x43,0xff,0x7e,0xae,0x83,0xb3,0x32,0xc1,0xfd,0x2b,0x3e,
+ 0xd9,0x1e,0x93,0x2b,0x5e,0xfd,0xc4,0x62,0xa7,0x2a,0xe9,0x1f,0xa7,0x12,0xbe,0x55,
+ 0x61,0x6f,0xb4,0xd1,0x94,0xcf,0x8e,0x7c,0xe,0x88,0xcf,0x7f,0x44,0x17,0x97,0x80,
+ 0xb,0xa4,0x6e,0x17,0x5d,0x74,0x71,0x71,0xf8,0xa,0x43,0xd5,0x5d,0x74,0xf1,0x77,
+ 0x40,0x97,0xba,0x5d,0x74,0x71,0x25,0xd1,0xa5,0x6e,0x17,0x5d,0x5c,0x49,0x4,0xb6,
+ 0xb7,0xb7,0x9b,0xfe,0x10,0x89,0x44,0x2e,0x59,0x94,0x2e,0xba,0xe8,0xc2,0x3f,0xfe,
+ 0xf,0xd,0x28,0xea,0xf0,0x6b,0xc6,0x29,0x94,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,
+ 0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/layer-sound.png
+ 0x0,0x0,0x3,0x72,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x13,0x0,0x0,0x0,0x10,0x8,0x6,0x0,0x0,0x0,0xf4,0xc4,0x44,0x62,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x3,0x4,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0x60,0xc0,0xf,0x84,0x58,0x59,0xd9,0x3f,0x2,0xe9,0xff,0x9a,0x9a,0x9a,0x33,0xd0,
+ 0xe4,0x18,0x81,0xd8,0x3,0x88,0xd7,0x3,0xb1,0x30,0x48,0x0,0x20,0x80,0x98,0xf0,
+ 0x18,0x24,0x29,0x22,0x2a,0x77,0x44,0x5d,0x5d,0x83,0x6d,0xd7,0xae,0x5d,0xc,0x22,
+ 0x22,0x22,0xb1,0x30,0x4d,0x40,0x60,0x6,0xc4,0x9b,0x80,0x58,0x1f,0x88,0x41,0xe2,
+ 0x6f,0x41,0x82,0x0,0x1,0xc4,0x8c,0xcd,0x14,0x76,0x76,0x76,0x45,0x61,0x11,0xb9,
+ 0x7d,0x6e,0x1e,0xd9,0xea,0xaa,0xca,0x3c,0x4c,0xfa,0xfa,0xfa,0x8c,0x9c,0x9c,0x9c,
+ 0xac,0x4f,0x9e,0x3c,0xf9,0xf4,0xf6,0xed,0xdb,0xc3,0x40,0x25,0x1c,0x40,0xbc,0x8,
+ 0x88,0xf7,0x1,0xf1,0x2f,0x98,0x3e,0x80,0x0,0xc2,0x70,0x19,0x1b,0x1b,0x9b,0xa6,
+ 0x80,0x90,0xec,0xfe,0xd4,0xcc,0x59,0x2a,0x9f,0x3e,0x5c,0xfd,0x64,0x65,0x65,0x5,
+ 0x56,0x63,0x60,0x60,0xc0,0xc0,0xc5,0xc5,0x15,0xe,0x55,0x76,0x17,0x88,0x3f,0x43,
+ 0xd9,0x2c,0x40,0xec,0x8,0xc4,0xe9,0x0,0x1,0xc4,0x2,0x15,0x0,0xb9,0x50,0x84,
+ 0x95,0x95,0xd5,0x5b,0x54,0x4c,0xb9,0x21,0x39,0x63,0xba,0x2c,0x37,0xb7,0x0,0xc3,
+ 0xbb,0xb7,0xf,0x98,0xa5,0xa5,0xa5,0x19,0x18,0x19,0x19,0x19,0x80,0x2e,0x63,0x0,
+ 0xca,0x8b,0xfd,0xff,0xff,0x1f,0xcc,0x7,0x2,0x63,0x20,0xce,0x6,0x62,0x1,0x20,
+ 0x6,0xb9,0x76,0x3,0x40,0x0,0x81,0xc,0x63,0x13,0x12,0x92,0x3e,0x23,0x29,0xa5,
+ 0x26,0x7e,0xed,0xea,0x41,0xd1,0x94,0xcc,0x59,0x8c,0x5c,0x5c,0xbc,0x10,0x67,0x33,
+ 0x83,0x6d,0x65,0x0,0x19,0x0,0xf5,0x3e,0x37,0x23,0xc4,0x24,0x90,0xc0,0x2b,0x20,
+ 0x2e,0x85,0x85,0x17,0x8,0x0,0x4,0x10,0x8b,0xbd,0xbd,0xfd,0x4f,0x31,0x49,0xa7,
+ 0x5f,0xff,0x80,0xf2,0xc6,0x66,0xbe,0xc,0x30,0x83,0x40,0xe0,0xf6,0xad,0x5b,0xac,
+ 0x35,0x35,0xb5,0xc,0x36,0x36,0xd6,0xc,0xde,0xde,0xde,0xc,0xfc,0xfc,0xfc,0x3c,
+ 0x40,0x61,0x7e,0x20,0xfe,0x0,0xc4,0x8f,0xd1,0x83,0x8,0x20,0x80,0xc0,0xe1,0x21,
+ 0x25,0xa3,0xce,0xf6,0xee,0xcd,0xa3,0xaf,0xc2,0x22,0xb2,0x8c,0xc8,0x92,0x4a,0xca,
+ 0x2a,0xc,0xe9,0xe9,0x59,0xc,0x17,0x2f,0x5e,0x66,0xf8,0xfa,0xf5,0x2b,0xc8,0xab,
+ 0xff,0x80,0xc2,0xdc,0x50,0x69,0x71,0x20,0x2e,0x80,0xba,0xae,0x1a,0x88,0xeb,0x1,
+ 0x2,0x8,0xec,0x8d,0x9f,0x3f,0xbe,0x32,0xfc,0xfa,0xf9,0xfd,0x3f,0x2b,0x2b,0x7,
+ 0x5a,0x42,0x62,0x4,0xfb,0x8f,0x9b,0x9b,0x9b,0x41,0x43,0x43,0x83,0xe1,0xfb,0xf7,
+ 0xef,0x7f,0x80,0xdc,0x2f,0x50,0x69,0x50,0x4,0x9c,0x4,0xe2,0xdf,0xd0,0x18,0xfd,
+ 0x5,0x10,0x40,0x60,0xc3,0xee,0xdc,0x3e,0xfd,0x49,0x4c,0x42,0x99,0xeb,0xc5,0xf3,
+ 0x3b,0xff,0x91,0x5d,0xf7,0xe1,0xc3,0x87,0xff,0x7b,0xf6,0xec,0x62,0x70,0x77,0x77,
+ 0x65,0x50,0x50,0x50,0x60,0xf8,0xfc,0xf9,0xf3,0x77,0xa0,0xf0,0x27,0xa8,0xf4,0x37,
+ 0x20,0x3e,0x8e,0x6c,0x39,0x40,0x0,0xb1,0x1c,0x3c,0x78,0x90,0x5d,0x48,0xe4,0xfe,
+ 0xea,0xdf,0xbf,0x7f,0x68,0x7f,0xfe,0xf8,0x4a,0xb9,0xae,0x79,0x3f,0x3,0x37,0x8f,
+ 0x20,0x24,0x8a,0x99,0xd9,0x3e,0x67,0x65,0x65,0x8,0x9a,0x9a,0x9a,0x82,0x23,0x81,
+ 0x99,0x99,0xf9,0xb,0x90,0xfe,0xf,0x8d,0x4d,0x55,0x20,0xf6,0x6,0xe2,0x65,0xd0,
+ 0xc8,0x60,0x0,0x8,0x20,0x50,0x98,0xfd,0x2,0x86,0x97,0x3f,0xd0,0x20,0x15,0x60,
+ 0x1a,0x53,0x3b,0xb8,0xa7,0x1,0xe8,0xa2,0x17,0x60,0xc3,0xf8,0xf8,0x25,0xff,0xaa,
+ 0xa9,0xa9,0x31,0xb0,0xb0,0x40,0x52,0xd0,0xeb,0xd7,0xaf,0xdf,0x23,0x39,0xe4,0x1e,
+ 0x10,0x5f,0x3,0xe2,0x2e,0x20,0x5e,0x1,0xc4,0xae,0x0,0x1,0xc4,0x82,0xec,0xcc,
+ 0x5f,0xbf,0x7e,0xdd,0x6,0xba,0x54,0x1a,0xc8,0x7c,0x6a,0x66,0x5d,0x4,0x8c,0x18,
+ 0x3,0x5e,0x60,0xaa,0xff,0x2f,0x2c,0x2c,0xcc,0xf8,0xec,0xd9,0x33,0x86,0x1f,0x3f,
+ 0x7e,0x9c,0x44,0x52,0xfe,0x17,0x88,0x77,0x41,0x31,0x28,0x86,0xd5,0x1,0x2,0x8,
+ 0x5b,0xde,0x7c,0x6,0x34,0x50,0xf8,0xd4,0xd1,0x3e,0x6,0x6e,0x5e,0x71,0xd6,0xfd,
+ 0xfb,0xf,0x82,0x3,0x7c,0xfd,0xfa,0xf5,0x1f,0x6f,0xdf,0xbe,0x3d,0x5,0xea,0xc5,
+ 0x20,0x20,0xf6,0x81,0x66,0x76,0x10,0x0,0x15,0x6,0xa7,0x0,0x2,0x8,0x5f,0x89,
+ 0xc1,0x3,0x4c,0x83,0xff,0xad,0xac,0xec,0x3f,0xff,0xfc,0xf9,0xf3,0xbf,0x9f,0x9f,
+ 0xdf,0x75,0x58,0xe2,0x85,0xe6,0xcd,0xa,0x20,0x5e,0xb,0xc4,0x7a,0x30,0x41,0x80,
+ 0x0,0x22,0x84,0xd8,0x41,0x6,0x2,0xc3,0xf2,0x7,0x1f,0x1f,0x9f,0x19,0x92,0x61,
+ 0xc,0x48,0x69,0x6d,0xa,0x10,0x2b,0x80,0x38,0x0,0x1,0x6,0x0,0xae,0x19,0xe5,
+ 0xdb,0xe5,0x56,0x21,0x6,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,
+ 0x82,
+ // /home/matthew/pencil_dev/icons/eraser2.png
+ 0x0,0x0,0x2,0x65,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x1f,0x0,0x0,0x0,0x18,0x8,0x6,0x0,0x0,0x0,0x2,0xab,0x26,0x81,
+ 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,0xd8,
+ 0xeb,0xf5,0x1c,0x14,0xaa,0x0,0x0,0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x6d,
+ 0x98,0x0,0x0,0x73,0x8e,0x0,0x0,0xea,0x48,0x0,0x0,0x86,0x0,0x0,0x0,0x77,
+ 0xef,0x0,0x0,0xd0,0xf0,0x0,0x0,0x32,0xf7,0x0,0x0,0x1c,0x74,0xb6,0xd2,0x6c,
+ 0xb,0x0,0x0,0x1,0xdb,0x49,0x44,0x41,0x54,0x78,0xda,0x62,0xfc,0xff,0xff,0x3f,
+ 0x3,0x2d,0x0,0x23,0x13,0x2b,0xd8,0xe0,0xff,0xff,0x7e,0x33,0xe2,0x52,0x3,0x10,
+ 0x40,0x2c,0xb4,0xb2,0xb4,0x71,0xe7,0xe5,0x74,0x18,0x1f,0x97,0x3,0x0,0x2,0x88,
+ 0x91,0x5a,0x3e,0x47,0xb3,0x74,0x26,0x92,0x54,0x7a,0xbd,0xbb,0xee,0x4c,0x6c,0xe,
+ 0x0,0x8,0x20,0x8a,0x2d,0xc7,0x63,0x29,0x3,0x21,0x7,0x0,0x4,0x10,0xd9,0x96,
+ 0x13,0x69,0x29,0x5e,0x7,0x0,0x4,0x10,0xc9,0x96,0x93,0x61,0x29,0x4e,0x7,0x0,
+ 0x4,0x10,0xd1,0x96,0xc3,0x2c,0x7d,0xf7,0xf6,0x95,0xf0,0xe4,0x33,0x2f,0xdf,0x52,
+ 0x10,0x53,0x70,0x7,0x0,0x4,0x10,0x41,0xcb,0x91,0x2d,0x5,0x52,0x6f,0xdf,0xbf,
+ 0x7f,0xf,0x16,0x5f,0x72,0xf7,0x17,0x3,0xa5,0xe,0x0,0x8,0x20,0x26,0x7c,0x96,
+ 0x82,0x30,0xc8,0x52,0x20,0x66,0x0,0x5a,0xa,0xb7,0x18,0x4,0x62,0x94,0xd9,0xc8,
+ 0xb2,0x55,0x8b,0xf,0x4c,0x81,0xa3,0xb,0x20,0x80,0x98,0x48,0xb5,0x14,0x19,0x90,
+ 0xe2,0x0,0xa8,0xa5,0xc,0xab,0x8f,0x5f,0x65,0xb8,0x7a,0xf5,0xea,0x2c,0x10,0x1b,
+ 0x20,0x80,0x50,0x82,0x1d,0x66,0x29,0x72,0xf0,0x12,0x3,0xf0,0x45,0x1,0xc8,0xd2,
+ 0x6b,0x9f,0x18,0x40,0x16,0xc2,0xc5,0x56,0x15,0x45,0x80,0x4b,0x3e,0x80,0x0,0x62,
+ 0xa2,0xd4,0x62,0x5c,0x21,0x80,0xe6,0x53,0x64,0xa9,0x59,0x30,0x6,0x40,0x0,0x81,
+ 0x7d,0x8e,0x54,0x4,0xfe,0x7,0x59,0x4c,0xaa,0xe5,0xc8,0x21,0x80,0xcd,0xa7,0xc8,
+ 0x16,0x3,0x7d,0x9d,0x6,0xcb,0x6a,0x0,0x1,0x84,0x5c,0xb6,0x83,0xc3,0x5f,0x50,
+ 0x50,0x10,0xcc,0x21,0xd5,0x1,0x4a,0x4a,0x4a,0xc,0xc,0x77,0x6f,0x80,0x7d,0x8a,
+ 0x3,0xa0,0x58,0xc,0x2,0x0,0x1,0xc4,0xc8,0xc0,0xc8,0x2,0xf,0x6e,0x98,0xc5,
+ 0x30,0xcb,0x89,0x71,0x0,0xc8,0xd2,0x3d,0x7b,0xf6,0x80,0xd5,0xae,0x79,0xca,0x84,
+ 0xd3,0x52,0x6c,0x35,0x1c,0x40,0x0,0xc1,0x2c,0x87,0xb,0xa0,0x3b,0x0,0x57,0x28,
+ 0x20,0x5b,0xa,0x3,0x68,0x96,0xe3,0xb4,0x14,0x6,0x0,0x2,0x8,0xc5,0xe7,0xc4,
+ 0x38,0x0,0x9b,0xa5,0x68,0x96,0x13,0xb4,0x14,0x6,0x0,0x2,0x8,0x9e,0xe0,0x8,
+ 0x39,0x0,0xc4,0xc7,0x65,0x29,0x14,0x84,0x87,0x85,0x47,0xad,0x24,0xc6,0x52,0x18,
+ 0x0,0x8,0x20,0x78,0x3e,0x27,0xe4,0x80,0xd5,0xab,0x57,0x53,0xcd,0x52,0x18,0x0,
+ 0x8,0x20,0x9c,0x85,0xc,0xb2,0x3,0x70,0x58,0x4c,0xb6,0xa5,0x30,0x0,0x10,0x40,
+ 0x18,0x15,0xb,0xba,0x3,0x40,0x41,0x4d,0x6d,0x4b,0x61,0x0,0x20,0x80,0x30,0xda,
+ 0x70,0xe0,0xaa,0xe,0xea,0x0,0x50,0xb9,0x8e,0xc5,0xd2,0x95,0x94,0x5a,0xa,0x3,
+ 0x0,0x1,0x84,0xb3,0x4a,0x5,0x39,0x60,0xd5,0xca,0x65,0xe1,0x20,0x36,0xb5,0x7c,
+ 0x8a,0xe,0x0,0x2,0x8,0x6f,0x7d,0x4e,0x4c,0xf3,0x97,0x12,0x0,0x10,0x60,0x0,
+ 0x83,0xe1,0x74,0x16,0x50,0xec,0xe9,0x34,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,
+ 0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/move.png
+ 0x0,0x0,0x1,0x26,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0xf,0x0,0x0,0x0,0xe,0x8,0x6,0x0,0x0,0x0,0xf0,0x8a,0x46,0xef,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x0,0xb8,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0x60,0xc0,0xf,0x2a,0xf0,0x49,0x2,0x4,0x10,0x3e,0xe4,0xa,0xc4,0xff,0x81,0xd8,
+ 0x18,0x97,0x2,0x80,0x0,0xc2,0x87,0xe,0x43,0x35,0x6f,0xc1,0xa5,0x0,0x20,0x80,
+ 0x8,0xd9,0xfa,0x1f,0x9f,0xed,0x0,0x1,0x84,0xf,0xb5,0x43,0x35,0xe2,0xf4,0x37,
+ 0x40,0x0,0x31,0x21,0xb1,0x15,0x81,0x78,0x26,0x10,0x5b,0xe2,0x31,0x70,0x5,0x10,
+ 0x7b,0xc0,0x38,0x0,0x1,0x84,0xac,0xe9,0xf,0x9a,0x53,0xf1,0xe1,0x63,0x20,0x43,
+ 0x0,0x2,0x8,0x64,0x33,0xf,0x10,0xb,0x1,0x31,0x33,0x9,0x5e,0xe2,0x7,0xe9,
+ 0x1,0x8,0x20,0x64,0x1,0x5d,0x20,0x5e,0xd,0xc4,0x36,0x78,0xfc,0xbc,0x1d,0x88,
+ 0xa3,0x60,0x1c,0x80,0x0,0x62,0x41,0x92,0xb8,0xc,0xc4,0xa1,0x4,0x6c,0xf4,0x44,
+ 0xe6,0x0,0x4,0x10,0xbe,0xa8,0x7a,0xe,0xb5,0xf9,0x9,0xae,0x40,0x4,0x8,0x20,
+ 0x5c,0x88,0xd,0x88,0xef,0x41,0x35,0x5f,0xc2,0xa5,0x8,0x20,0x80,0xf0,0xa1,0x64,
+ 0xa8,0xe6,0x10,0x5c,0xa,0x0,0x2,0x88,0x90,0xed,0x1b,0xf1,0x29,0x0,0x8,0x30,
+ 0x0,0xa1,0xda,0x26,0xbe,0x2a,0xea,0x46,0xb5,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,
+ 0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/onionStraightAhead.png
+ 0x0,0x0,0x4,0x5,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x14,0x0,0x0,0x0,0x15,0x8,0x6,0x0,0x0,0x0,0x46,0xd5,0xce,0xa8,
+ 0x0,0x0,0x0,0x1,0x73,0x52,0x47,0x42,0x0,0xae,0xce,0x1c,0xe9,0x0,0x0,0x0,
+ 0x6,0x62,0x4b,0x47,0x44,0x0,0xff,0x0,0xff,0x0,0xff,0xa0,0xbd,0xa7,0x93,0x0,
+ 0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13,0x1,
+ 0x0,0x9a,0x9c,0x18,0x0,0x0,0x0,0x7,0x74,0x49,0x4d,0x45,0x7,0xd9,0x9,0x19,
+ 0x1,0x4,0x9,0xc5,0x96,0x8a,0xb4,0x0,0x0,0x3,0x85,0x49,0x44,0x41,0x54,0x38,
+ 0xcb,0x9d,0x94,0x6d,0x48,0x5b,0x57,0x18,0xc7,0x9f,0x7b,0xcf,0xbd,0x49,0xd4,0xd4,
+ 0xe6,0xe6,0xc6,0x3a,0x6f,0xa8,0x33,0xed,0xd6,0xb1,0xd9,0xb4,0x9b,0x88,0xb0,0x71,
+ 0x9,0xea,0x60,0x29,0x58,0xf4,0x8b,0x60,0xf7,0xa1,0x35,0xa9,0xba,0x65,0x8c,0x75,
+ 0x5f,0xa,0x93,0xe,0x37,0xd8,0x1b,0x6c,0x20,0xa3,0x1d,0x8c,0x41,0x45,0x94,0xd0,
+ 0x42,0xfd,0x20,0x83,0x41,0xf6,0x52,0x18,0x6e,0x9f,0xb6,0x99,0xe2,0xc4,0x64,0xc3,
+ 0x9a,0xe8,0x5d,0xd0,0xe4,0xfa,0x92,0x18,0x8d,0x79,0xb9,0x2f,0x39,0x77,0x5f,0x34,
+ 0xa6,0xf5,0x6e,0xce,0x3d,0x9f,0x9e,0xc3,0x39,0xe7,0xc7,0xff,0xf9,0xff,0xf,0x7,
+ 0xc1,0xbf,0xd4,0xe0,0xe0,0xe0,0xa9,0x58,0x2c,0xd6,0xc6,0xf3,0xbc,0xa9,0xa1,0xa1,
+ 0xe1,0xb2,0xaa,0xaa,0xad,0x3c,0xcf,0x57,0x65,0xb3,0xd9,0x2b,0x76,0xbb,0xbd,0xcb,
+ 0xe3,0xe9,0x1b,0x48,0x24,0xe2,0xcf,0xe5,0xf3,0xf9,0x58,0xed,0xc9,0xa7,0x6f,0x9b,
+ 0xcc,0xc7,0xde,0x20,0xf5,0x40,0xc1,0x60,0xf0,0xc4,0xc8,0xc8,0x88,0x7d,0x6c,0x6c,
+ 0xec,0xc5,0xfe,0xfe,0x7e,0xa9,0xa9,0xa9,0xc9,0x3e,0x33,0x33,0xe3,0x6e,0x6c,0x6c,
+ 0x9c,0x89,0xc5,0x96,0x5b,0x1d,0x8e,0xd3,0xde,0xf1,0xf1,0x7b,0xc7,0x7a,0x7b,0x7,
+ 0x92,0x79,0x45,0x6b,0x7f,0xde,0x75,0x71,0xf4,0xda,0xa7,0x7e,0x83,0xc5,0x5a,0x9b,
+ 0x26,0x1e,0x87,0xf9,0x7c,0xbe,0x33,0x81,0x40,0xe0,0xac,0xd3,0xe9,0x5c,0x62,0x18,
+ 0xc6,0x49,0x51,0x54,0x57,0x2a,0x95,0xba,0x1f,0xe,0x87,0xdb,0x5d,0xae,0x36,0x67,
+ 0x73,0x73,0x4b,0xdc,0x60,0x30,0x3e,0xb9,0x99,0xde,0x9a,0xff,0xfe,0xc7,0xa9,0xf3,
+ 0xa7,0x9b,0x5f,0x2e,0x3c,0xd3,0xe4,0xa,0x1,0x0,0x7c,0xf5,0xfe,0x80,0x86,0xf6,
+ 0x40,0x93,0x93,0x93,0xdc,0xf4,0xf4,0x74,0xab,0x28,0x8a,0x15,0x13,0x13,0x13,0xf9,
+ 0x48,0x24,0xf2,0x36,0xc7,0x71,0xf6,0xa1,0xa1,0xa1,0xa5,0xb9,0xb9,0xd0,0xe5,0x96,
+ 0x96,0x97,0xce,0x5d,0xbf,0xfe,0xce,0xd6,0xf6,0x76,0x66,0x7b,0xd4,0x3f,0xfe,0x2c,
+ 0x79,0xdc,0xce,0x5c,0xb8,0xf4,0xba,0x52,0x90,0x8b,0x4a,0x65,0x35,0xb3,0x1,0x0,
+ 0x10,0x9c,0xfa,0x6,0x28,0x0,0x0,0xbf,0xdf,0xcf,0x79,0x3c,0x9e,0xee,0x68,0x34,
+ 0x6a,0xca,0xe5,0x72,0xa8,0xa7,0xa7,0xe7,0x62,0x20,0x10,0x30,0x21,0x84,0xd2,0x57,
+ 0xaf,0xf6,0x75,0xdd,0xb8,0xf1,0xde,0x26,0x49,0x22,0xf5,0x83,0x8f,0x3f,0x7c,0x22,
+ 0x91,0xcc,0x71,0xee,0x57,0xdf,0x42,0x35,0x75,0x27,0x65,0x3d,0xbb,0x48,0x0,0x80,
+ 0x70,0x38,0x6c,0x72,0x38,0x1c,0xf,0x6c,0x36,0xdb,0xba,0x28,0x8a,0xa6,0xce,0xce,
+ 0xce,0x39,0x86,0x61,0x92,0x3b,0x3b,0x3b,0x24,0xcf,0xbb,0x54,0xab,0x95,0xc5,0x0,
+ 0x0,0x99,0x9c,0x6a,0xec,0xec,0xbd,0xa6,0x18,0x4d,0x15,0xff,0x18,0x64,0x29,0x14,
+ 0x8c,0x71,0x69,0x7c,0x45,0x51,0xca,0xc2,0xda,0xb7,0x99,0x42,0x8,0xe,0x2b,0xdd,
+ 0x94,0x9,0x82,0xd0,0xf6,0x7b,0xad,0x44,0xc4,0xba,0x8,0x42,0x1f,0x58,0x2c,0x16,
+ 0x49,0x7d,0x85,0x47,0xab,0xd2,0x45,0x8a,0xa2,0x8a,0x7b,0xbd,0xd1,0x68,0xc4,0x0,
+ 0x0,0x9a,0xa6,0xfd,0x7f,0x20,0xc6,0xb8,0xd4,0xab,0xaa,0x4a,0xee,0xaa,0x26,0x48,
+ 0x92,0x3c,0x84,0xaa,0x11,0x87,0x7a,0xf8,0xa8,0x9f,0xfb,0x47,0x48,0xdd,0xd3,0x9a,
+ 0xbe,0xc2,0x47,0x83,0x20,0x74,0x55,0x61,0x7c,0x84,0x91,0x49,0x92,0x2c,0x79,0x48,
+ 0xd3,0xf4,0x1,0xf,0x49,0x92,0xc4,0x65,0xb2,0xb5,0x23,0x3d,0x9b,0xb2,0xe4,0x9,
+ 0x55,0x2d,0x66,0xf7,0xd6,0xd9,0x5c,0x7e,0xeb,0xc0,0xc0,0xda,0x7f,0xf0,0x50,0x51,
+ 0x14,0x19,0x0,0x40,0x96,0x65,0x41,0x55,0x65,0x94,0x4e,0xa7,0xab,0x45,0x71,0x55,
+ 0x28,0x16,0x15,0xd3,0xce,0x76,0xda,0x82,0x10,0xa5,0xca,0x92,0x84,0x22,0xb,0xb,
+ 0x6,0x43,0x85,0x39,0x9,0x0,0x10,0x99,0xfb,0xb5,0x32,0xb9,0xba,0x4c,0x50,0x7a,
+ 0x40,0x9a,0xa6,0xd,0x0,0x10,0x15,0x45,0x91,0x3,0x0,0xda,0x60,0x30,0xfe,0x82,
+ 0x10,0xaa,0xc2,0x18,0x23,0x73,0x35,0xb3,0xb9,0xb1,0xbe,0x6,0x99,0xec,0x7a,0xde,
+ 0x5a,0xd7,0x30,0xaf,0xaa,0x32,0xdc,0xbd,0xf5,0xae,0x45,0xf8,0xe3,0xc1,0x77,0xa9,
+ 0xd5,0x95,0xcf,0x74,0x81,0xb3,0xb3,0xb3,0x61,0x41,0x10,0x78,0x9a,0xa6,0xd5,0x42,
+ 0x41,0x8e,0xc6,0xe3,0x71,0x73,0x55,0x95,0x39,0xf,0x58,0x93,0x17,0xa3,0x51,0xad,
+ 0xd2,0x62,0x5b,0x60,0xb9,0xda,0xf4,0x9f,0xc1,0x9f,0xcd,0xdf,0xde,0xf9,0x22,0xb7,
+ 0x91,0x58,0xf2,0x4a,0x92,0xb4,0x4,0x0,0x40,0x3d,0x96,0xec,0x4f,0xc3,0xc3,0xc3,
+ 0x28,0x14,0xa,0x9d,0x59,0x5b,0x5b,0xbb,0xeb,0xf5,0x7a,0xeb,0xdb,0xdb,0x5f,0x79,
+ 0x8d,0x61,0x98,0x87,0xa3,0xa3,0xb7,0x61,0x51,0x58,0xdc,0x6a,0xb3,0x9f,0x7a,0xa8,
+ 0x48,0x79,0xe2,0xce,0xe7,0x83,0x16,0x61,0xe1,0xf7,0xaf,0x53,0x89,0x95,0x9b,0xe5,
+ 0x6f,0xa7,0x4,0xcc,0x64,0x32,0xd5,0xf5,0xf5,0xf5,0x75,0x6e,0xb7,0x3b,0x27,0x49,
+ 0x92,0xd0,0xdd,0xdd,0x7d,0xd6,0x66,0xb3,0xad,0x60,0x8c,0x97,0x7d,0xbe,0xfe,0x62,
+ 0x24,0x32,0xff,0x11,0xf7,0xd4,0xf9,0x4f,0x42,0xbf,0x4d,0x55,0xfe,0x70,0xef,0xcb,
+ 0x4c,0x5c,0xf8,0xeb,0xa,0x40,0x21,0xa6,0x9b,0x66,0x47,0x47,0xc7,0xb,0x2c,0xcb,
+ 0xf6,0xed,0xf6,0x17,0x58,0x96,0xbd,0xb5,0xbb,0x75,0xae,0xa6,0xe6,0xc4,0x4d,0x0,
+ 0x40,0x0,0x0,0x66,0x8b,0x35,0xc8,0xd6,0x72,0x6f,0x1e,0xf8,0x11,0xca,0xea,0x6f,
+ 0x77,0xa1,0x84,0x11,0xdf,0xff,0xf0,0xf8,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,
+ 0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/prefs-files.png
+ 0x0,0x0,0x10,0xe0,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x3a,0x0,0x0,0x0,0x36,0x8,0x6,0x0,0x0,0x0,0x96,0x79,0x8a,0x53,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 0x0,0x0,0x0,0x19,0x74,0x45,0x58,0x74,0x53,0x6f,0x66,0x74,0x77,0x61,0x72,0x65,
+ 0x0,0x41,0x64,0x6f,0x62,0x65,0x20,0x49,0x6d,0x61,0x67,0x65,0x52,0x65,0x61,0x64,
+ 0x79,0x71,0xc9,0x65,0x3c,0x0,0x0,0x10,0x72,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0x60,0xa0,0xf,0x60,0x4,0x62,0x26,0x28,0x4d,0x31,0xe0,0x66,0x63,0x67,0x10,0xe0,
+ 0xe0,0x4,0xb3,0x39,0x59,0xd9,0x18,0x98,0x19,0x99,0x8,0xea,0x1,0x8,0x20,0x16,
+ 0x98,0x43,0xd8,0xd9,0xd9,0x79,0xd8,0x39,0x38,0xf8,0xfe,0xff,0xff,0xc7,0xc2,0xf0,
+ 0x1f,0xec,0x28,0x26,0x72,0x1c,0xf1,0xff,0xff,0x7f,0x14,0x9a,0x85,0x85,0xe5,0xff,
+ 0xf7,0xef,0xdf,0x3f,0xfc,0x2,0x2,0x20,0xf7,0xf,0x10,0xff,0x6,0xe2,0xbf,0xc,
+ 0x74,0x6,0x0,0x1,0x4,0xf3,0xe8,0xff,0xa4,0xa4,0xa4,0xa2,0x8a,0x8a,0x8a,0x86,
+ 0x8f,0x1f,0x3f,0x7e,0x46,0x8a,0x5,0x84,0xc3,0xff,0xfd,0x67,0xf8,0x7,0xc,0x81,
+ 0xff,0xff,0xfe,0x31,0xfc,0xfb,0x7,0x12,0x83,0xd0,0x20,0x79,0x10,0xfe,0x7,0x16,
+ 0xff,0xc7,0xf0,0xe7,0xf7,0x1f,0x86,0x1f,0x3f,0x7f,0x30,0xfc,0xfc,0xf9,0x93,0xe1,
+ 0xf7,0xef,0xdf,0x8c,0x3c,0x3c,0x3c,0xac,0x7,0xe,0x1c,0x98,0xd2,0xd9,0xd9,0xd9,
+ 0x7,0xf5,0xe8,0x37,0x28,0xfe,0x7,0x32,0x96,0x5e,0x1e,0x5,0x8,0x20,0x16,0xa8,
+ 0x87,0xfe,0x73,0x71,0x71,0xf1,0x8a,0x8a,0x88,0x80,0x62,0x80,0x17,0x6b,0xc,0x81,
+ 0x3c,0x2,0xa5,0x61,0x9e,0x83,0x79,0x10,0xd9,0xa3,0x20,0xc,0x8a,0x3c,0x90,0x47,
+ 0xbf,0x7d,0xff,0xc6,0xf0,0xed,0xeb,0x37,0x6,0x7,0x7,0x87,0xbc,0x6f,0xdf,0xbe,
+ 0xf1,0xce,0x9a,0x35,0x6b,0xe,0x50,0xfc,0x39,0xd4,0xe8,0x1f,0xd0,0xd8,0xa5,0xb,
+ 0x0,0x8,0x20,0x98,0x47,0x99,0x80,0xe,0x64,0xff,0xf3,0xf7,0x2f,0xc3,0xdf,0xbf,
+ 0x7f,0xb1,0x26,0x47,0x6c,0x18,0xe6,0x49,0x70,0x6c,0xff,0x3,0xc7,0x37,0x58,0x3d,
+ 0x13,0x13,0x13,0x28,0xc0,0x18,0x58,0x59,0x58,0xc1,0xf4,0xa7,0x4f,0x9f,0x58,0x3c,
+ 0x3c,0x3c,0x52,0x81,0x66,0xf3,0x4c,0x9b,0x36,0xad,0x1f,0x9a,0x2d,0x3e,0x2,0xf1,
+ 0x67,0x7a,0xc5,0x2c,0x40,0x0,0xc1,0x3c,0xca,0xcc,0xc8,0xc8,0x8,0xc2,0xc,0x20,
+ 0x8c,0xb3,0x44,0x1,0xca,0x81,0x3c,0x4,0xa3,0x41,0x1e,0x2,0xd1,0x20,0x67,0x33,
+ 0x42,0x21,0xc8,0xe3,0xcc,0xcc,0xcc,0x60,0xf5,0x7f,0xfe,0xfc,0x61,0x60,0x63,0x63,
+ 0x3,0x7b,0xf6,0xf5,0xeb,0xd7,0xc,0x61,0x61,0x61,0x91,0xc0,0xd8,0xfe,0x3e,0x67,
+ 0xce,0x9c,0x19,0x50,0xcf,0xfe,0xa5,0x57,0xcc,0x2,0x4,0x10,0x2c,0x8f,0xe2,0x2d,
+ 0x7c,0x60,0x1,0x0,0xf2,0x4,0xcc,0x73,0x20,0x1a,0xb9,0xe0,0x81,0x79,0x1e,0xa6,
+ 0x6,0xc4,0xe7,0xe0,0xe0,0x0,0x8b,0xb1,0xb2,0xb2,0x82,0x93,0x32,0x28,0x49,0x3,
+ 0xcb,0x81,0x24,0x60,0x0,0x30,0x2e,0x58,0xb0,0x60,0x16,0x34,0x36,0x3f,0x0,0xf1,
+ 0x17,0x5a,0xc7,0x2c,0x40,0x0,0xb1,0x10,0x55,0x37,0xa0,0xc5,0x32,0xb2,0x27,0x61,
+ 0x6c,0x98,0xe7,0x91,0x93,0x3a,0x28,0x66,0x41,0x9e,0x4,0x61,0x90,0x1c,0x30,0x9,
+ 0x33,0xf0,0xf2,0xf2,0x32,0x94,0x94,0x94,0x24,0x2,0xf9,0x4c,0xf3,0xe6,0xcd,0x9b,
+ 0xa,0xd,0xe0,0x7f,0xb4,0x8e,0x59,0x80,0x0,0x62,0xc1,0x16,0x73,0xc4,0xc4,0x2c,
+ 0xcc,0x73,0x30,0x3e,0x2c,0x46,0x91,0x3d,0xa,0xf2,0x1c,0xc8,0x93,0xc0,0xaa,0xb,
+ 0x8c,0x3f,0x7f,0xfe,0xcc,0xc0,0xcd,0xcd,0xd,0x56,0x5b,0x5a,0x5a,0x1a,0xf,0xa4,
+ 0x19,0xe7,0xce,0x9d,0x3b,0x83,0x1e,0x31,0xb,0x10,0x40,0x2c,0xe8,0x9e,0xc0,0xe7,
+ 0x51,0x6c,0xb1,0xc,0x8b,0x59,0x58,0xec,0x82,0x0,0xcc,0xc3,0x20,0x3e,0xac,0x60,
+ 0x2,0xe5,0x55,0x60,0xd5,0x5,0x66,0xf3,0xf3,0xf3,0x83,0xd5,0x14,0x16,0x16,0xc6,
+ 0x81,0xe4,0x67,0xcf,0x9e,0x3d,0x5,0x1a,0xb3,0x20,0xc3,0xbe,0xd3,0x22,0x66,0x1,
+ 0x2,0x8,0x35,0x46,0x19,0x88,0xf7,0x24,0x2c,0xc6,0x60,0x31,0x8b,0x1e,0x58,0x30,
+ 0x31,0x50,0x29,0xe,0x8b,0x59,0x50,0xe1,0x4,0x12,0xe7,0xe4,0xe4,0x64,0x10,0x16,
+ 0x16,0x6,0x8b,0x3,0x93,0x71,0x1c,0x50,0x3d,0x13,0xb0,0xea,0x99,0x6,0x8d,0x4d,
+ 0x26,0x5a,0x94,0xc6,0x0,0x1,0x84,0x1a,0xa3,0x4c,0xc8,0x31,0xca,0x88,0xd7,0x1e,
+ 0x98,0x67,0x91,0xf3,0x29,0x32,0x1f,0x6,0x40,0xf9,0x14,0x84,0x61,0xb1,0xfb,0xe3,
+ 0xc7,0xf,0x70,0xac,0x82,0xd4,0x82,0x3c,0xc,0x2,0xe5,0xe5,0xe5,0x31,0xa0,0x80,
+ 0x98,0x3a,0x75,0xea,0x24,0xa8,0xc5,0xff,0xa8,0x1d,0xb3,0x0,0x1,0x84,0x91,0x47,
+ 0x91,0x1d,0x89,0xdc,0x34,0x45,0x4e,0xa2,0xe8,0x9e,0xc5,0x86,0x91,0x93,0x33,0xc8,
+ 0xa3,0xa0,0xa4,0xb,0x12,0x9f,0x3c,0x79,0x32,0x3,0xb0,0x49,0x8,0x16,0x7,0x79,
+ 0x54,0x4,0xd8,0x48,0x91,0x91,0x91,0x61,0x88,0x8b,0x8b,0x8b,0x1,0x8a,0x31,0x3,
+ 0x3d,0x3b,0xed,0x1f,0xa4,0xe9,0xc5,0x4,0xcd,0xb3,0x7f,0xa9,0x11,0xb3,0x0,0x1,
+ 0x84,0x35,0x8f,0xe2,0xf2,0x14,0xa1,0xd8,0x45,0x2e,0xa4,0x60,0xb1,0xc,0xf2,0x24,
+ 0x28,0x6,0x41,0x85,0x11,0xb0,0xf5,0x5,0xf6,0x30,0xb0,0x95,0x4,0xf6,0x2c,0x88,
+ 0x7e,0xf7,0xee,0x1d,0xc3,0xc3,0x87,0xf,0xc1,0x49,0xd9,0xc6,0xc6,0x26,0x12,0xa8,
+ 0x46,0xac,0xb7,0xb7,0xb7,0x9,0x98,0xcc,0x9f,0x41,0x8d,0x7,0x35,0x17,0x7f,0x51,
+ 0xea,0x51,0x80,0x0,0x22,0xba,0xd4,0x85,0x79,0x1e,0x5d,0x1e,0x5b,0x2,0x47,0x4e,
+ 0xca,0x20,0xc,0x4a,0x96,0xa0,0x3a,0x95,0x8f,0x8f,0xf,0x9c,0x4f,0x41,0x1e,0x86,
+ 0x95,0xd8,0xc8,0x7a,0xde,0xbc,0x79,0xc3,0x60,0x6e,0x6e,0xee,0xc,0x2c,0xa4,0xde,
+ 0x74,0x77,0x77,0x4f,0x85,0x7a,0xf0,0x2f,0x12,0x86,0xb4,0x1d,0x7f,0x3,0x9b,0x98,
+ 0x48,0x85,0xe1,0x7f,0x22,0x22,0x1c,0x20,0x80,0x58,0xb0,0x79,0x12,0x9b,0x67,0xb1,
+ 0x95,0xb2,0x50,0x9,0xb0,0x67,0xb1,0x25,0x63,0x18,0x0,0xc5,0x22,0xa8,0x5a,0x11,
+ 0x6,0x26,0x53,0x90,0x87,0x7f,0x1,0x1d,0xa,0x72,0x1b,0xcc,0xcc,0xbf,0xd0,0xa6,
+ 0x27,0xac,0xad,0xec,0xe4,0xe4,0x14,0x30,0x73,0xe6,0xcc,0x83,0xc0,0x7a,0xf7,0x1b,
+ 0xb4,0x23,0x0,0xaa,0x63,0xff,0x2,0x55,0xeb,0x9a,0xca,0x29,0x45,0x1b,0x49,0x2b,
+ 0xc8,0xb3,0x2,0x53,0xca,0xbd,0xf7,0x6f,0xbe,0xdc,0x7a,0xf9,0xec,0xe2,0xed,0x37,
+ 0x2f,0x37,0x2,0xe5,0x1f,0xe3,0xf3,0x28,0x40,0x0,0xb1,0x20,0xc7,0x18,0xae,0x18,
+ 0x5,0xcb,0x81,0xbc,0xc3,0x88,0x3f,0x96,0xd1,0x3d,0x8b,0xec,0x51,0x50,0xa8,0x83,
+ 0x62,0x8d,0xb,0x98,0x2f,0x91,0xdb,0xd3,0x20,0x75,0x20,0x3e,0xb0,0xa7,0x3,0xc6,
+ 0x20,0x36,0xb0,0xbe,0x5,0xb5,0xbd,0xc5,0x80,0xd2,0xa2,0xd0,0x36,0xf1,0x6f,0x5e,
+ 0x36,0x76,0xcf,0x9,0xde,0x91,0xab,0x13,0xad,0x1c,0xb9,0x19,0x39,0xb9,0x80,0xc5,
+ 0xd5,0x5f,0x50,0x3d,0xc6,0xf0,0xfe,0xf3,0x27,0x86,0xa9,0x47,0xf7,0xd4,0xb6,0xee,
+ 0xd9,0x18,0xfc,0xe3,0xcf,0xef,0x23,0xb8,0x3c,0xa,0x10,0x40,0x2c,0xc8,0x49,0x7,
+ 0x97,0x47,0x91,0xf3,0x2d,0xb2,0x3c,0xb6,0xfc,0x8c,0x9c,0xcf,0xe1,0xe6,0x81,0x10,
+ 0xb0,0x44,0x7,0x35,0xf2,0x41,0x1e,0x41,0xee,0x10,0xc0,0xea,0x5d,0x90,0x27,0x41,
+ 0x4d,0x44,0x90,0x3c,0x30,0xff,0x32,0x2,0xe5,0xf8,0x81,0x52,0x3c,0xa0,0x70,0x32,
+ 0x34,0x36,0xaa,0xe,0x77,0x76,0x2f,0x36,0xd2,0xd4,0xe7,0x3e,0xf4,0xf2,0x35,0x3,
+ 0xf7,0xe3,0xa7,0xc,0xda,0xbc,0xc2,0xc,0x9c,0xc0,0xce,0xb7,0x20,0x37,0xf,0x43,
+ 0x8d,0x77,0x98,0x98,0x99,0xac,0xe2,0x96,0xc4,0x95,0xb3,0x6b,0x9e,0x7d,0xfa,0x30,
+ 0x5,0x9b,0x47,0x1,0x2,0x88,0x5,0x3d,0x6f,0xe1,0xca,0xa3,0x60,0xc7,0x43,0xa2,
+ 0x0,0x67,0x20,0x60,0x3,0x30,0x33,0x99,0x18,0x81,0xa5,0x2f,0x13,0x33,0x46,0xb7,
+ 0xe,0xd8,0xd1,0x7,0xf7,0x6b,0x61,0xd5,0x10,0xc8,0xa3,0xd0,0x6a,0x87,0x15,0x88,
+ 0x7f,0x8a,0x8a,0x8a,0xf9,0x4e,0xe8,0x9b,0xd6,0x22,0xa7,0xa8,0xc0,0xf0,0xf3,0xdf,
+ 0x4f,0x6,0x5e,0x16,0x26,0x86,0x1b,0x57,0xaf,0xff,0xbf,0x7a,0xe8,0x4,0xa3,0xe7,
+ 0x3f,0x61,0x6,0x31,0x4e,0x60,0x58,0xfc,0xf9,0xc6,0xe0,0x66,0x68,0xc1,0x3f,0xf1,
+ 0xe7,0x8f,0xae,0xd0,0x45,0x93,0xf,0x1,0xf5,0x5d,0x42,0x6a,0x80,0x80,0x1d,0x7,
+ 0x10,0x40,0x2c,0xe8,0x79,0x10,0x52,0xbd,0xfc,0x7,0x17,0x33,0x28,0x1e,0x0,0x27,
+ 0x5f,0x20,0xc5,0x88,0x5a,0xe5,0x10,0x2a,0xa9,0x61,0xc9,0x18,0xa6,0xe,0x52,0x50,
+ 0xfd,0x3,0x7a,0x8,0x54,0xaf,0xfe,0x83,0x96,0xd0,0x20,0x9a,0x9,0xde,0x61,0x0,
+ 0x16,0x56,0xff,0x81,0x31,0xcc,0x24,0x2f,0xaf,0x98,0xd8,0xd3,0x33,0xd1,0x45,0x5b,
+ 0x5b,0x7,0x58,0x72,0x33,0x2,0xf3,0xb9,0x28,0x58,0x5e,0xc8,0x54,0x90,0xf1,0xae,
+ 0xa4,0x2c,0xc3,0xc9,0x6b,0xd7,0x18,0x94,0xaf,0x3f,0x62,0xd0,0xe2,0x11,0x2,0xd6,
+ 0xba,0x5f,0x19,0xbc,0xd5,0xf5,0x39,0xd,0x44,0xe5,0x12,0x2f,0xbc,0x7e,0x54,0x8,
+ 0xf5,0x1b,0xcc,0xa3,0x7f,0x1,0x2,0x88,0x5,0xfb,0xf0,0xe,0x96,0x2,0x9,0xc6,
+ 0x47,0xf2,0x10,0x72,0x1,0x45,0x4c,0xd3,0x11,0xde,0xad,0x63,0x0,0xd5,0xad,0xa0,
+ 0x0,0x80,0xb5,0xa2,0x60,0x6d,0x4,0x68,0x7e,0xfe,0xcf,0xf6,0x5b,0x5a,0x5a,0x4d,
+ 0x7f,0xc1,0x82,0x95,0x56,0x46,0x46,0x5a,0x8c,0x40,0x21,0x6,0x10,0xfe,0xfd,0xfb,
+ 0xf,0xb0,0xbb,0xf7,0x81,0xe1,0xfb,0xb7,0x9f,0xc,0xa2,0xbc,0x42,0xc,0x2,0x96,
+ 0xd6,0xc,0x87,0x9f,0x3c,0x65,0x10,0x7c,0xff,0x96,0x41,0x52,0x4a,0x9a,0xe1,0xed,
+ 0xcb,0xb7,0xc,0xe2,0x6c,0x7c,0x3e,0x40,0x63,0x3a,0x80,0xf8,0x13,0x34,0x56,0x41,
+ 0x85,0x19,0x3,0x40,0x0,0x61,0x89,0x51,0x6,0xb0,0x3,0xd0,0x3d,0x8b,0xb5,0x7a,
+ 0xf9,0xcf,0x0,0x2e,0x64,0x50,0x3c,0xc,0x2b,0xb1,0x18,0xb1,0xc7,0x2c,0x72,0xa3,
+ 0x1f,0xb9,0xc7,0x3,0x32,0x2,0x54,0xd,0xbd,0x7f,0xff,0x83,0xe1,0xe0,0xc1,0x89,
+ 0x9c,0x59,0x59,0xff,0xcc,0x99,0x98,0xba,0x18,0x4f,0x9f,0xfe,0xcf,0xf0,0xe2,0xb9,
+ 0xec,0x7f,0x65,0xe5,0x0,0x6,0x2d,0x1d,0x23,0xc6,0x5f,0xbf,0xfe,0x82,0xcd,0xfe,
+ 0xf3,0xf7,0xf,0x30,0xca,0x98,0x19,0x8c,0xbc,0xbc,0x19,0xf6,0x2c,0x5b,0xce,0xa0,
+ 0x7c,0xfa,0x2,0xc3,0xd9,0xbb,0x8f,0x19,0xf8,0xd9,0xb8,0xe4,0x80,0xc6,0xe9,0x0,
+ 0xf1,0x39,0xa8,0x47,0x7f,0x82,0xac,0x4,0x8,0x20,0x16,0xcc,0xe4,0xc6,0x84,0x14,
+ 0x79,0xff,0xf1,0x57,0x2f,0x68,0x95,0x28,0x36,0xf,0x23,0x77,0xd6,0xb1,0x75,0xeb,
+ 0x60,0xe6,0x31,0x33,0xb3,0x2,0x9b,0x87,0xec,0xc,0xe7,0xce,0xcd,0x65,0x8,0xd,
+ 0x5d,0xc1,0xa8,0xa9,0xc9,0xc0,0xf2,0xf7,0xdf,0x35,0x86,0x7f,0xc0,0x46,0xe0,0xeb,
+ 0xbb,0xa6,0xff,0x8e,0xec,0xff,0xc0,0x78,0xee,0xcc,0x31,0x6,0x9f,0xa0,0x4,0x46,
+ 0xa6,0x5f,0x3f,0xa0,0x25,0xf4,0x1f,0x6,0x49,0x61,0x31,0x86,0x8b,0x1a,0x6a,0x3f,
+ 0xe7,0x2c,0x9f,0xc4,0xa6,0xc2,0x2f,0xc1,0xc8,0xc5,0xca,0xe,0x8c,0x7b,0x6,0x29,
+ 0x20,0xbe,0x89,0xe4,0xc2,0xbf,0x0,0x1,0xc4,0x84,0xee,0x48,0x48,0x5e,0x62,0x82,
+ 0xe7,0x27,0x18,0x86,0x89,0xa3,0x8b,0xa1,0xf0,0x99,0x18,0x51,0xc4,0x60,0xf9,0x12,
+ 0xdc,0xd6,0x65,0x66,0x82,0xd3,0x30,0x36,0xac,0xd,0xc,0xaa,0x5b,0xdf,0xbc,0xf9,
+ 0xc6,0xb0,0x6b,0x57,0x1a,0x83,0x95,0x55,0x1b,0x3,0xd0,0x93,0x10,0xcf,0x83,0x4a,
+ 0xa4,0xaf,0xc1,0xff,0xa4,0xd8,0x33,0x99,0xc2,0x4c,0xff,0x30,0xd9,0xb,0xec,0x60,
+ 0x3c,0xb8,0x69,0x22,0x30,0x2d,0x32,0x81,0x93,0x38,0xb0,0xc5,0xc8,0xf0,0xf5,0xeb,
+ 0x97,0xdf,0x9f,0x3f,0xbf,0xff,0xcd,0x26,0xca,0xc7,0xc8,0x2,0xf4,0xd7,0xaf,0x7f,
+ 0x7f,0xfe,0x42,0x53,0xaa,0x0,0x68,0x64,0x14,0x88,0xd9,0x41,0x46,0x1,0x4,0x10,
+ 0x13,0xb6,0xc2,0x8,0x5c,0x23,0x20,0x35,0x9,0x11,0x8e,0x67,0xc0,0x10,0x43,0xe1,
+ 0x33,0x32,0xe1,0x94,0x87,0xc9,0x81,0x68,0x26,0x46,0x44,0x40,0x80,0x9a,0x86,0x3f,
+ 0x7e,0x70,0x32,0x5c,0xbc,0x38,0x8b,0xc1,0xcb,0x6b,0x2d,0x83,0x9a,0xda,0x6f,0x44,
+ 0xb6,0xf8,0xe8,0xfb,0xff,0xff,0xe7,0x44,0x46,0x86,0x27,0x7,0x18,0x19,0x7e,0x7c,
+ 0x61,0xd0,0x54,0x97,0x64,0xd0,0x62,0x39,0xf0,0x7f,0xd7,0xda,0xa9,0xff,0x39,0xb9,
+ 0x79,0x81,0x49,0x9d,0xed,0xdf,0xe5,0xcb,0xe7,0x7e,0xdd,0xbd,0x7f,0x8b,0x8b,0x99,
+ 0x8b,0x83,0x1,0x58,0x27,0x31,0x7c,0xf9,0xfd,0xe3,0xb,0xb4,0xd9,0x8,0xae,0x9a,
+ 0xa0,0x9e,0x66,0x2,0x8,0x20,0x16,0x52,0xda,0xb4,0x84,0x7a,0x34,0xff,0xff,0x23,
+ 0xca,0x2c,0x9c,0xba,0xa1,0xf9,0x15,0x52,0xba,0x72,0x33,0x3c,0x79,0xf2,0x81,0xe1,
+ 0xd0,0xa1,0x24,0x6,0x7,0x87,0x8d,0xc,0xb2,0xb2,0x48,0x79,0xff,0xbd,0x3,0x3,
+ 0xe3,0x4b,0x1f,0x46,0x86,0xf,0xdb,0x80,0x1a,0x81,0x91,0xc4,0x4,0xac,0x6d,0xbe,
+ 0xff,0x61,0x30,0xd4,0x93,0x67,0x64,0xb8,0x73,0x95,0x61,0xd9,0xe2,0x19,0x3f,0x39,
+ 0xb9,0xf9,0x19,0xce,0x9f,0x3b,0xc5,0xf9,0xf8,0xc5,0x33,0x26,0xae,0x37,0x1f,0x18,
+ 0x54,0xd9,0xa5,0x19,0x9e,0x7e,0x7b,0x7f,0x5,0xda,0x19,0x60,0x87,0xf6,0x80,0xc0,
+ 0xd,0x37,0x80,0x0,0x62,0xc1,0x9e,0x74,0x19,0x71,0xf6,0x58,0xf0,0x37,0x26,0x30,
+ 0xaa,0x59,0xd4,0xaa,0x7,0xda,0x5c,0x4,0xf1,0xd9,0xd8,0xd8,0x81,0x8d,0xf9,0x77,
+ 0xc,0x97,0x2e,0xd5,0x32,0xf8,0xfa,0x6e,0x60,0x90,0x90,0x80,0x6a,0xf8,0x3,0x4c,
+ 0xb0,0x1f,0x81,0x5,0xe7,0x2b,0xdb,0xff,0xc,0x6f,0x4f,0x0,0x35,0x3,0x9b,0x8b,
+ 0x8c,0xcc,0xa0,0x16,0x7,0x24,0x5e,0x80,0x75,0xae,0xb6,0x24,0xeb,0xbf,0x9,0x2b,
+ 0x16,0xb3,0xdc,0x7c,0xc3,0xc3,0xcc,0xf4,0xff,0x37,0x3,0x1b,0x27,0x7,0x83,0x20,
+ 0x30,0x39,0x5f,0x7c,0xff,0xf8,0xdb,0xf5,0xf7,0xcf,0xf6,0x22,0x57,0x2b,0x30,0xc,
+ 0x10,0x40,0x4c,0x84,0x3c,0x81,0xd1,0x88,0xc7,0x21,0x46,0xac,0x3c,0xa4,0xa,0x61,
+ 0x67,0x78,0xf6,0xec,0x15,0xc3,0xae,0xdd,0x4e,0xc,0x6e,0x6e,0xf3,0x11,0x9e,0x4,
+ 0x39,0xed,0x95,0x27,0x3,0xc3,0x73,0xf,0x6,0xc6,0xb7,0xd7,0x18,0xc1,0x21,0xc7,
+ 0xc2,0x1,0xc4,0x6c,0x90,0x10,0xfc,0xfb,0x9d,0xe1,0xf3,0xab,0xb7,0xff,0x9e,0x5f,
+ 0x7f,0xf4,0xc7,0x4a,0xe2,0x17,0xd3,0x83,0xfb,0x77,0x19,0x98,0x81,0xad,0x2d,0x49,
+ 0x11,0x31,0x86,0xf3,0xcf,0xef,0x7d,0x58,0x74,0xe7,0x68,0xff,0xb7,0x3f,0xbf,0xae,
+ 0x40,0x4b,0xdb,0x1f,0x50,0xc,0xea,0x18,0xfc,0x3,0x8,0x20,0x16,0x62,0x1a,0xef,
+ 0x58,0xab,0x19,0x58,0xdb,0x17,0xad,0x8a,0xc1,0x56,0xaf,0xa2,0xf3,0x7f,0xfd,0xfa,
+ 0xcf,0x70,0xf1,0xcc,0x1a,0x86,0x48,0x3f,0x9,0x6,0x41,0x36,0x5d,0x86,0xdf,0x5f,
+ 0xbe,0x1,0x5d,0x76,0x9b,0x81,0xf9,0x31,0xb0,0xca,0xfb,0x69,0x9,0x4c,0x70,0xc0,
+ 0x9a,0x81,0x95,0x5,0x12,0x93,0xa0,0x36,0xed,0xaf,0x6f,0x60,0x7d,0xbf,0xff,0x33,
+ 0xfd,0x7f,0xf7,0xf6,0xdb,0x5f,0xe,0xc6,0xbf,0xac,0xb2,0x9c,0x5f,0x19,0xc5,0x85,
+ 0xf9,0x19,0xa4,0xa4,0xa4,0x18,0x6e,0xdf,0xbe,0xf5,0xfb,0xea,0xeb,0x47,0xcb,0x80,
+ 0x4a,0xae,0x43,0x83,0xeb,0x1b,0x34,0xd9,0xc2,0x3a,0xef,0x7f,0x1,0x2,0x88,0x5,
+ 0x57,0xc7,0x1a,0x9b,0xe7,0x50,0x2,0x2,0x96,0x57,0x19,0x11,0x43,0x30,0xc8,0x75,
+ 0x2d,0xba,0x1e,0x18,0x1f,0x54,0xf8,0x9c,0x39,0x7b,0x8e,0xe1,0x27,0xb0,0x25,0x23,
+ 0x26,0x3d,0x97,0xe1,0xef,0x4f,0x36,0x6,0x46,0x60,0xd3,0xee,0xe7,0xb7,0x17,0xc,
+ 0x2c,0x8f,0x56,0x30,0xb0,0xfd,0x2,0xb6,0xcb,0x25,0xe4,0x40,0xad,0x3,0x60,0x32,
+ 0xfe,0xe,0xf1,0x28,0xb0,0x34,0xff,0xc3,0xc2,0xf1,0xff,0xf6,0xe5,0x27,0xbf,0xf9,
+ 0x7e,0x7d,0x64,0x65,0x63,0xfd,0xc3,0xf8,0xfb,0xf7,0x3f,0x6,0x5d,0x7d,0x43,0x86,
+ 0xf7,0x1f,0x3e,0x7e,0x3b,0x7b,0xee,0xdc,0x2,0xa4,0x7a,0xf3,0xb,0xb4,0xb1,0xf0,
+ 0x5,0x29,0x46,0xff,0x2,0x4,0x10,0x13,0x66,0x81,0xc1,0x88,0x33,0x9,0x63,0x4b,
+ 0xa2,0xb8,0x92,0x2d,0xba,0x3c,0x62,0x2c,0xe9,0x3f,0xc3,0xed,0x1b,0x17,0x19,0xcc,
+ 0x4c,0xf5,0x81,0x85,0x3e,0x2b,0x3,0x33,0xdb,0x5f,0x6,0x66,0x76,0xa0,0x33,0x38,
+ 0x44,0x18,0x3e,0xeb,0x25,0x31,0x7c,0xe7,0xd7,0x63,0x60,0x78,0xf9,0x0,0xe8,0xb4,
+ 0x5f,0x90,0xc8,0x1,0x36,0x22,0x18,0x38,0xb8,0xff,0xbf,0x7d,0xf6,0xee,0x2f,0xe7,
+ 0xcf,0x4f,0xac,0xcc,0xff,0x80,0xd,0x7e,0x60,0x37,0xef,0xd6,0x47,0xe,0x86,0x87,
+ 0xcf,0xde,0xfc,0x3c,0x76,0xf4,0xc8,0x4a,0xa0,0xc2,0x8b,0xd0,0xa6,0xd5,0x67,0x24,
+ 0x4f,0x7e,0x87,0x36,0x16,0xc0,0x31,0xa,0x10,0x40,0x98,0x31,0xca,0x88,0xea,0x59,
+ 0x5c,0x31,0x8d,0x2b,0xc6,0xb0,0xa9,0x81,0xf0,0xff,0x83,0xeb,0xbd,0xe7,0xcf,0x5f,
+ 0x30,0xfc,0xfa,0xf1,0x82,0x41,0x45,0xd3,0xe,0x1c,0x6b,0xe0,0x52,0xe3,0x3f,0xa8,
+ 0x41,0x1,0xec,0x93,0x2,0x63,0xef,0x9b,0x92,0xb,0xb0,0xaa,0xff,0xcc,0xc0,0xf9,
+ 0x5,0xe8,0x59,0x7e,0x31,0x86,0x3f,0xc0,0xe4,0x7a,0xef,0xda,0xd3,0x5f,0xcc,0x9f,
+ 0x3f,0xb0,0xb2,0xff,0xf9,0xc2,0xf8,0xf7,0xcf,0x2f,0x60,0x99,0xf4,0x87,0xe1,0xf8,
+ 0xad,0x4f,0x1f,0x8e,0x9c,0xbe,0xb3,0x10,0xe8,0x87,0x9b,0x48,0xc3,0xa5,0xef,0x80,
+ 0xf8,0x3d,0xb4,0x6b,0xf7,0xd,0xea,0x51,0x50,0x13,0xf0,0x3f,0x40,0x0,0x31,0xe1,
+ 0x1b,0x13,0xc2,0x37,0xc,0x4a,0x4a,0xc,0x43,0xc4,0x40,0xd,0x7,0x16,0x60,0xc3,
+ 0xe0,0x5,0x83,0x8e,0x9a,0x4,0xc4,0x69,0xd0,0x6c,0xce,0xf8,0x1f,0x34,0xb,0xf7,
+ 0xd,0x58,0xe1,0x7d,0x5,0xd6,0x24,0xdf,0x19,0xde,0x8b,0xd9,0x31,0x7c,0xfc,0x23,
+ 0xfc,0xff,0x3f,0xb0,0xe5,0x73,0xfb,0xfe,0xc7,0x7f,0xaf,0x1e,0xbd,0x64,0xfd,0xb,
+ 0xc,0x27,0xc6,0xdf,0xdf,0x81,0x4d,0xbf,0x7f,0xc,0xab,0x2e,0x7c,0xfb,0xb2,0xe7,
+ 0xca,0xbb,0xa5,0x40,0x4f,0xde,0x80,0x96,0xaa,0x1f,0xa1,0x1e,0x45,0x4e,0xb2,0xbf,
+ 0x91,0x47,0x12,0x1,0x2,0x8,0x6f,0x3d,0x4a,0x6c,0x6c,0x12,0x2b,0x6,0x8a,0xd1,
+ 0x5f,0x3f,0x3e,0x30,0xa8,0xab,0x2a,0x42,0xcb,0x41,0x60,0x52,0x6,0x26,0xd1,0x3f,
+ 0xbf,0xbe,0x2,0x73,0x12,0x30,0x22,0x80,0x1e,0xf9,0xfa,0xf1,0x1b,0xc3,0xf7,0x1f,
+ 0x7f,0x19,0x3e,0x71,0x18,0x31,0x3c,0xb9,0xba,0xfd,0xcf,0xc7,0x4f,0x3f,0x98,0x85,
+ 0xb8,0x99,0x18,0x39,0x81,0x9d,0x0,0x56,0x60,0x6b,0xa8,0x6b,0xfb,0xdb,0x17,0x93,
+ 0x76,0xbf,0x9c,0x7,0xd4,0xfc,0x8,0xea,0x91,0xf7,0x50,0xfc,0xe,0xea,0xd1,0xaf,
+ 0xd0,0x98,0xfc,0x85,0x3c,0xfc,0x2,0x10,0x40,0x4c,0x84,0x46,0xf9,0xf0,0xc5,0x26,
+ 0xa9,0x79,0xf6,0xfb,0xf7,0x1f,0xc,0x1f,0xdf,0x3d,0x67,0x60,0x7,0x56,0x2f,0xff,
+ 0xa1,0xb1,0xf8,0xe7,0xf7,0x57,0x60,0xc1,0xf4,0x96,0xe1,0xe7,0x8f,0x6f,0xc,0xdf,
+ 0x3e,0x7f,0x63,0xf8,0xf1,0xed,0x7,0xc3,0xcf,0xaf,0x5f,0x18,0xde,0x7d,0x67,0x66,
+ 0x7c,0xf4,0x8e,0x83,0x99,0xf3,0xd7,0x7b,0x46,0x50,0x13,0xf1,0x2f,0x30,0x5f,0xce,
+ 0x3d,0xfe,0xe9,0xcd,0x9c,0x43,0x6f,0x17,0x3,0x8d,0x7b,0x8,0x8d,0x31,0x98,0x7,
+ 0xdf,0x41,0x63,0x15,0xa5,0x0,0x42,0x76,0x33,0x40,0x0,0x11,0x4c,0xba,0x84,0x6,
+ 0xce,0x70,0x6,0x4,0x1a,0x9f,0xd,0x58,0xa8,0xdc,0xb9,0x73,0x9b,0xe1,0xc1,0x9d,
+ 0x8b,0xc,0x1c,0xac,0xbf,0x81,0x49,0xf4,0x1d,0xc3,0x1f,0x60,0xec,0xfe,0xfe,0xf1,
+ 0x99,0xe1,0x17,0xd0,0x63,0x5f,0x3f,0x7c,0x61,0xf8,0xfe,0xe5,0x7,0xc3,0x97,0x4f,
+ 0xdf,0x19,0xde,0xbd,0xfd,0xa,0xac,0x82,0xfe,0x30,0xfc,0x67,0x65,0xff,0xff,0x9b,
+ 0x89,0x3,0xd8,0xd9,0xfe,0xcb,0xb0,0xf0,0xc0,0x93,0x97,0x55,0xab,0x9f,0x4c,0xfa,
+ 0xf6,0xf3,0xcf,0x1d,0x68,0xbe,0x3,0x79,0xee,0x35,0x10,0xbf,0x41,0x8a,0x4d,0xd8,
+ 0x88,0xe1,0x1f,0x74,0x77,0x2,0x4,0x10,0xc1,0x26,0x20,0xc9,0xd5,0xe,0x5a,0x2b,
+ 0x8,0x1e,0xa2,0xc0,0x6,0xfc,0xc1,0x83,0xfb,0x19,0x76,0xec,0xba,0xcc,0xf0,0x8f,
+ 0x59,0x98,0x41,0x54,0xe0,0x1f,0x83,0x97,0x8b,0x31,0x30,0x26,0x7f,0x31,0xbc,0x7f,
+ 0xfb,0x19,0x18,0x93,0x3f,0x81,0x31,0xfe,0xb,0x4c,0x43,0x4a,0xa8,0x7f,0xc,0x1c,
+ 0xff,0xbf,0x31,0xf0,0x73,0x31,0x33,0x4c,0xda,0x7a,0xf7,0x55,0xd7,0xf6,0x57,0xab,
+ 0x80,0xa2,0xcf,0xa1,0x31,0xf9,0x11,0xea,0xb9,0xf,0x50,0x36,0x72,0x72,0xfd,0x83,
+ 0x2d,0xa2,0x0,0x2,0x88,0x85,0x98,0x26,0x1e,0xbe,0xa4,0x4d,0x6c,0x77,0xee,0xe7,
+ 0x4f,0x60,0xb2,0xfd,0xf8,0x99,0x21,0x33,0xbb,0xc,0xd8,0x80,0xbf,0xc8,0xd0,0x3f,
+ 0x79,0xe,0xc3,0xc9,0x53,0x57,0x18,0xb2,0xe3,0xbd,0x81,0x1d,0xe6,0xf,0xc,0xa0,
+ 0x7e,0xe6,0x1f,0x60,0xc7,0x3,0x98,0x8d,0xc1,0xad,0x1d,0xd0,0xcc,0x3a,0xf,0xe3,
+ 0x67,0xa6,0x39,0x3b,0xee,0x3e,0xef,0xd9,0xf9,0x1a,0x34,0xc5,0xf8,0xc,0x9a,0x2c,
+ 0x61,0x1e,0x7c,0x8f,0x14,0x8b,0x58,0x93,0x2b,0x32,0x0,0x8,0x20,0xa2,0xa6,0xd,
+ 0x89,0x2d,0xa4,0x70,0x75,0xd0,0x41,0x62,0x1f,0x3f,0x7e,0x62,0x10,0x14,0x4,0xd6,
+ 0x95,0x9f,0x3e,0x31,0xcc,0x9b,0x3b,0x8d,0xe1,0xc1,0x83,0x7,0xc,0x7d,0xd3,0x6e,
+ 0x31,0x88,0xf1,0xf3,0x32,0x38,0x98,0xeb,0x82,0x9b,0x78,0xdc,0xc0,0x1e,0x8,0x68,
+ 0xdc,0xf7,0xcd,0x87,0x4f,0xc0,0xce,0xf6,0xf3,0xff,0x3b,0x37,0xdd,0x7c,0xb3,0xe1,
+ 0xd4,0xeb,0x5d,0x40,0x23,0xde,0x22,0x79,0x12,0x96,0x4c,0x91,0xab,0x90,0x5f,0x84,
+ 0x16,0x80,0x0,0x4,0x10,0xee,0xa4,0xfb,0x1f,0xd6,0x4f,0xf9,0x4f,0x46,0x2c,0xff,
+ 0x47,0x69,0xdc,0x83,0x46,0xea,0x1f,0x3d,0x7a,0xc8,0x70,0xf7,0xee,0x1d,0x86,0x5,
+ 0xb,0xe6,0x2,0x3d,0x79,0x1f,0x2e,0xb7,0xf3,0xe0,0x19,0x6,0xb,0x43,0x35,0x60,
+ 0x57,0xed,0x37,0xc3,0xe5,0x5b,0x8f,0x18,0xae,0xdf,0x7b,0xc1,0xf0,0xe2,0xfd,0xcf,
+ 0xff,0x5b,0x77,0xec,0xba,0x4,0x2c,0xbc,0xae,0x40,0x4b,0xd7,0xaf,0xd0,0xbc,0xf8,
+ 0xa,0x1a,0x9b,0x5f,0x91,0x92,0xeb,0x6f,0xf8,0x38,0xc,0x1e,0x0,0x10,0x40,0x2c,
+ 0x38,0xbb,0x67,0xf0,0x61,0x5c,0xc4,0x58,0xd1,0x7f,0x9c,0xb1,0xfc,0x1f,0xad,0xd7,
+ 0xc2,0x8,0xed,0xc9,0xfc,0x87,0x77,0xbc,0x57,0xac,0x58,0xc9,0x30,0x69,0x52,0x1f,
+ 0x46,0xef,0xe6,0xed,0xa7,0x5f,0xc,0x7,0x2e,0xbc,0x60,0xf8,0xf9,0x7,0x58,0x2a,
+ 0xff,0x62,0x66,0xe0,0x93,0x54,0x67,0x10,0x55,0x60,0x3,0x7a,0x74,0xf7,0x7,0x68,
+ 0x8c,0x7d,0x46,0xf2,0xe4,0x5b,0x28,0xff,0x27,0x52,0x63,0xe0,0x1f,0x31,0x29,0x12,
+ 0x20,0x80,0x58,0x88,0x99,0xe1,0x46,0xef,0x83,0xc1,0xbc,0x8c,0x28,0x6e,0x18,0x71,
+ 0xc6,0x3c,0xa8,0x83,0xd,0x9a,0x0,0xde,0xb3,0x67,0xf,0xd8,0xe3,0xa0,0xb6,0xae,
+ 0x9c,0x9c,0x1c,0x83,0xbe,0xbe,0x3e,0x83,0x8e,0x8e,0xe,0x3,0x1f,0x3f,0x3f,0x50,
+ 0x1d,0x33,0xb8,0xf0,0x1,0x99,0xcb,0xa,0x8c,0x7d,0xd0,0x32,0x0,0x68,0x72,0xfc,
+ 0x2,0x8d,0xc1,0xb7,0xd0,0x3c,0xf9,0x19,0x29,0x3f,0xfe,0x26,0x65,0xf2,0x9,0x20,
+ 0x80,0x48,0xea,0x78,0xc3,0xeb,0x44,0x6,0xfc,0x3d,0x1c,0xf4,0x85,0x55,0xa0,0xa4,
+ 0xdb,0xdc,0xdc,0xc,0x4c,0xbe,0x8f,0xc0,0xbd,0xd,0xd0,0x1c,0xc,0x68,0xfc,0x16,
+ 0x34,0xd5,0xff,0xf5,0xeb,0x57,0xf0,0xf8,0xf,0x6c,0xc2,0x18,0x34,0xa6,0xfb,0xe3,
+ 0xc7,0xf,0x60,0xff,0x9c,0xf1,0x3b,0x52,0xe9,0x8a,0xdc,0x18,0xf8,0x4d,0xce,0xc,
+ 0x1b,0x40,0x0,0x91,0x5c,0xbd,0x90,0x53,0x22,0x83,0xb0,0xb3,0xb3,0x33,0x78,0xf6,
+ 0xc,0x34,0x91,0xf4,0xfe,0xfd,0x7b,0xb0,0x7,0x41,0xe3,0x3e,0xa0,0x64,0xd,0x9b,
+ 0x88,0x2,0xf1,0x41,0x13,0x50,0x20,0x39,0xa8,0x47,0xbf,0x40,0xf1,0x57,0xa4,0x46,
+ 0xfa,0x7f,0x72,0xa6,0x11,0x1,0x2,0x88,0x85,0x50,0x4c,0x22,0xba,0x65,0x98,0xa3,
+ 0xf4,0xc4,0x96,0xc8,0xa0,0xd8,0x2,0x25,0x47,0xd8,0x72,0x1c,0xd0,0x82,0xd,0x50,
+ 0x12,0x6,0xd1,0xb0,0x11,0x42,0xf0,0xba,0x24,0xa0,0x67,0x79,0x78,0x78,0x40,0x1,
+ 0x1,0x8b,0xd1,0x6f,0x68,0x25,0xeb,0x3f,0x6,0x32,0x1,0x40,0x0,0x11,0x5f,0xbd,
+ 0x20,0xd,0x62,0x13,0x8a,0x65,0x74,0x79,0xd8,0xd4,0x3e,0x6c,0x1a,0x2,0x36,0xf5,
+ 0x0,0x9b,0x6c,0x82,0x8d,0x6,0x82,0x68,0x50,0x8c,0x82,0xe6,0x60,0x80,0xe6,0xfc,
+ 0x46,0xca,0x8b,0x14,0xaf,0x1f,0x4,0x8,0x20,0x16,0x72,0x34,0xe1,0x8b,0x41,0x6c,
+ 0xf2,0xb0,0xfc,0x7,0x8b,0x39,0xd8,0x5a,0x6,0xf4,0xa9,0xa,0x10,0x6,0xc5,0x38,
+ 0x74,0xee,0xe5,0x1f,0xd2,0x98,0xf,0xc5,0x33,0xde,0x0,0x1,0xc4,0x82,0xbe,0xa2,
+ 0x84,0xd8,0x55,0x29,0xc4,0x8d,0x1a,0x92,0x7,0x90,0x3c,0x4a,0xb5,0xc5,0x1a,0x0,
+ 0x1,0x4,0xf7,0x28,0xb0,0xa0,0x0,0x97,0xe9,0x1f,0x3f,0x7e,0xfc,0xf5,0x1f,0x32,
+ 0x27,0x41,0x96,0xf,0xf0,0x25,0x6b,0x6c,0x72,0xe8,0x62,0xc0,0x18,0x67,0x2,0xe6,
+ 0x51,0xe4,0x64,0x4b,0x95,0x25,0xaf,0x0,0x1,0x4,0x5b,0x30,0xcc,0xf,0xec,0xa,
+ 0xa9,0x0,0xb1,0x36,0x90,0xad,0x6,0x9d,0x80,0xe5,0x21,0x66,0xb8,0x93,0x6,0x0,
+ 0x68,0xed,0xff,0x2f,0xc0,0xba,0xf7,0x21,0x90,0xbe,0xa,0xe4,0xdf,0x81,0xce,0x66,
+ 0x7f,0xa1,0xc4,0xd3,0x0,0x1,0x4,0x9b,0x5a,0xfb,0x3,0xac,0xbb,0xde,0x0,0xf1,
+ 0x1d,0x68,0x28,0xa,0x2,0x31,0x17,0x3,0x95,0x56,0x4c,0x93,0xea,0x51,0x68,0x75,
+ 0xf2,0x1e,0xda,0x22,0xfa,0x42,0x6a,0xe3,0x0,0x1b,0x0,0x8,0x20,0x58,0xd2,0xfd,
+ 0xd,0x35,0xf0,0x15,0x34,0xd4,0xb8,0xa0,0x23,0xdd,0x3,0xe5,0xd1,0x9f,0x50,0xf7,
+ 0xbc,0x85,0xd2,0x7f,0x28,0xf5,0x28,0x40,0x0,0xc1,0x3c,0xc2,0xc,0x9d,0x61,0x6,
+ 0x95,0x2,0x1c,0x50,0x36,0x13,0xc3,0xc0,0x81,0xbf,0xd0,0xc0,0x47,0x19,0x84,0xa6,
+ 0xc4,0x40,0x80,0x0,0x42,0x6e,0xac,0xc2,0xf2,0x2b,0x13,0x12,0x7f,0xa0,0x0,0xf2,
+ 0x94,0xc2,0x7f,0x72,0x5b,0x43,0xc8,0x0,0x20,0xc0,0x0,0x52,0x5e,0x46,0x1a,0x84,
+ 0xdb,0x12,0x48,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/icon.png
+ 0x0,0x0,0x3f,0xe2,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x80,0x0,0x0,0x0,0x80,0x8,0x6,0x0,0x0,0x0,0xc3,0x3e,0x61,0xcb,
+ 0x0,0x0,0x20,0x0,0x49,0x44,0x41,0x54,0x78,0x9c,0xec,0xbd,0x77,0x98,0x64,0x57,
+ 0x79,0xee,0xfb,0x5b,0x6b,0x87,0xca,0x9d,0xa7,0xd3,0x48,0x33,0x23,0x8d,0x46,0xa3,
+ 0x8c,0x22,0x20,0x21,0x40,0x20,0x93,0xc4,0x91,0x0,0xdb,0xd8,0x17,0xdb,0xd7,0xf8,
+ 0x98,0x63,0xb0,0xf1,0x1,0x1e,0xc,0x18,0x9b,0x73,0x6c,0x9f,0x63,0xf9,0x1a,0xec,
+ 0x8b,0xed,0x6b,0xc,0x38,0x1d,0xdb,0x38,0xe0,0x84,0x49,0x26,0x9,0x81,0x84,0x50,
+ 0x40,0x81,0x91,0x18,0x8d,0x34,0x39,0x87,0xe,0xd3,0xb9,0xbb,0xe2,0xe,0x6b,0xad,
+ 0xfb,0xc7,0xda,0xd5,0xbd,0x67,0x4f,0xf5,0x68,0x94,0x50,0x40,0xdf,0xf3,0xec,0xa9,
+ 0xae,0x5d,0x53,0x55,0xbb,0xf6,0x97,0xde,0xef,0x5d,0xdf,0x5a,0xb,0x5e,0x90,0x17,
+ 0xe4,0x5,0x79,0x41,0x5e,0x90,0x17,0xe4,0x5,0x79,0x41,0x5e,0x90,0x1f,0x39,0x11,
+ 0xcf,0xf4,0x5,0x3c,0xc7,0xa4,0x1f,0xe8,0x3,0xba,0x81,0x2e,0xc0,0x3,0x24,0x60,
+ 0x80,0x10,0x68,0x0,0xb5,0xe4,0x58,0x4a,0x8e,0xf8,0x19,0xb9,0xd2,0xd3,0x94,0x17,
+ 0xc,0xe0,0xb1,0x65,0x3d,0xb0,0x9,0x38,0x7,0xb8,0x4,0x38,0x77,0x4d,0xa9,0xbc,
+ 0xb1,0xb7,0x50,0x5a,0xef,0x3b,0x9e,0x90,0x42,0xa0,0xd1,0x44,0x4a,0x51,0x6b,0xb5,
+ 0xa6,0xe6,0x5b,0xf5,0xa3,0x8d,0x28,0x3a,0x6,0x8c,0x3,0x87,0x80,0x83,0xc0,0x4,
+ 0x70,0x24,0x39,0x9e,0x55,0xf2,0x82,0x1,0xac,0x2e,0x9b,0x81,0x57,0x2,0xaf,0x1b,
+ 0x2e,0x57,0xae,0x3b,0xab,0x7f,0xa8,0xef,0x8c,0xee,0x5e,0xd6,0xf7,0xf4,0xb1,0x71,
+ 0x60,0x90,0x75,0x3d,0x3,0x54,0x72,0x5,0x3c,0x29,0x89,0xb4,0xa2,0x1a,0xb4,0x98,
+ 0xaa,0x55,0x19,0x5f,0x9c,0x67,0xbc,0xba,0xc0,0x4c,0xbd,0xc6,0x5c,0xa3,0xc6,0x54,
+ 0x6d,0x89,0xb1,0xc5,0xf9,0xa3,0x33,0x8d,0xda,0x7d,0xc0,0xfd,0xc0,0xb7,0x80,0x6d,
+ 0xcf,0xe8,0x2f,0x4b,0xc9,0xb,0x6,0x70,0xb2,0x9c,0xd,0xfc,0x1a,0xf0,0x63,0x6f,
+ 0xd8,0x7c,0xc9,0xe6,0x9f,0xbc,0xe4,0x4a,0x2e,0x19,0x39,0x93,0xd,0xbd,0x3,0xc,
+ 0x54,0xba,0xc0,0xf3,0x41,0x6b,0x30,0x1a,0x8c,0x59,0x79,0x97,0x10,0x80,0x0,0x29,
+ 0xec,0xdf,0x4a,0xd3,0x68,0xd6,0x99,0xa9,0x55,0x19,0xaf,0x2e,0xb0,0x77,0xe6,0x38,
+ 0xb7,0xef,0xdb,0xc9,0x3f,0x6c,0xb9,0xe7,0x98,0xc6,0xdc,0xb,0x7c,0x12,0xb8,0xf3,
+ 0x19,0xf9,0x85,0x29,0x79,0xc1,0x0,0x4e,0x94,0x5f,0x7,0xde,0xba,0x79,0x60,0xe8,
+ 0xf2,0xf,0xbc,0xf2,0x6,0x79,0xfd,0x39,0xe7,0x73,0xf6,0x9a,0x61,0x90,0x12,0xb4,
+ 0xb2,0xa,0x4f,0x2b,0xfd,0xb1,0x44,0x48,0x6b,0x10,0x52,0x82,0x36,0x4c,0x2f,0xce,
+ 0xf3,0xdd,0x3,0xbb,0xf8,0xe4,0xf7,0x6e,0xe3,0xbb,0x7,0x76,0x1f,0x4,0xfe,0xe,
+ 0xf8,0x38,0xd0,0x7c,0x7a,0x7e,0xce,0x69,0x5c,0xe2,0x33,0xf5,0xc5,0xcf,0x42,0x79,
+ 0x7,0xf0,0xb1,0x37,0x5f,0x78,0xf9,0xc0,0xff,0xbc,0xfe,0x46,0xae,0x58,0xbb,0x1e,
+ 0x5c,0x17,0x94,0x7a,0xea,0xbe,0x41,0x3a,0x60,0x34,0x47,0xe7,0x67,0xf9,0x97,0xad,
+ 0xf7,0xf3,0xbb,0xdf,0xfe,0x52,0xad,0x1e,0x86,0x77,0x1,0xef,0x3,0xf6,0x3e,0x75,
+ 0x5f,0x74,0xfa,0xe2,0x3c,0x13,0x5f,0xfa,0x2c,0x94,0x5f,0x5,0x7e,0xfb,0xc3,0xd7,
+ 0xdd,0x30,0xf4,0xbf,0x5e,0xfb,0x66,0xce,0x1b,0x5a,0x6b,0xc3,0xb8,0xd6,0x4f,0xed,
+ 0xb7,0x24,0xd1,0xa3,0xbb,0x54,0xe1,0xaa,0xb5,0xeb,0x79,0xd5,0x39,0xe7,0xfb,0x5b,
+ 0x8e,0x1e,0xdc,0x38,0x55,0xab,0xbe,0xe,0x78,0x98,0x67,0x0,0x24,0xbe,0x60,0x0,
+ 0xf0,0x21,0xe0,0x23,0xbf,0xfd,0x63,0x6f,0x1a,0xfe,0xf5,0xeb,0x6e,0x60,0xb0,0xab,
+ 0x3b,0x51,0xd4,0xe3,0x8,0xf5,0x8f,0x57,0x8c,0xc6,0x71,0x1c,0xd6,0xf5,0xf4,0x73,
+ 0xd3,0x85,0x97,0x89,0x43,0x73,0xd3,0x3,0x3b,0xa7,0x26,0xde,0x0,0xec,0x6,0xf6,
+ 0x3c,0x7d,0x5f,0x7c,0xb2,0xfc,0x28,0x1b,0x80,0x4,0x7e,0xe,0xf8,0xc3,0xf7,0x5d,
+ 0xfb,0xda,0xde,0xb7,0x5d,0x76,0x35,0x78,0xe,0xb5,0x38,0xa2,0x66,0x62,0x5a,0x5a,
+ 0x81,0x14,0x78,0x8e,0x83,0x30,0x10,0x3b,0x12,0xed,0x48,0xe4,0x53,0x1c,0x14,0xba,
+ 0xf2,0x45,0xde,0x78,0xde,0x8b,0x98,0x6b,0xd6,0xca,0xf,0x1d,0x3b,0xf4,0x1a,0x60,
+ 0x3b,0x3f,0xc4,0x74,0xf0,0xa3,0x8a,0x1,0x9c,0x75,0xeb,0xd6,0xfd,0xd7,0x4a,0xa5,
+ 0xf2,0x17,0xeb,0xd7,0xaf,0x77,0x6,0x7a,0x7b,0xa9,0x94,0x2b,0x14,0xa,0x79,0x7c,
+ 0x3f,0x7,0x80,0xd6,0x8a,0x30,0x8,0x59,0x9c,0x99,0xd1,0xf9,0x7a,0xc8,0xe6,0xde,
+ 0x35,0xf2,0xe2,0x8d,0x9b,0xd8,0x54,0xe9,0x65,0x20,0x32,0xb8,0xc6,0xe0,0x8,0xf9,
+ 0x14,0x5d,0x8e,0xa0,0x15,0x87,0xfc,0xea,0x17,0xfe,0x91,0xbf,0xdd,0x72,0xd7,0x18,
+ 0xf0,0x66,0x60,0xcb,0x53,0xf4,0xe1,0x8f,0xf1,0xcd,0x3f,0x62,0x32,0x34,0x34,0x54,
+ 0x7a,0xfd,0xeb,0x5f,0xff,0x9e,0xd,0x1b,0x36,0x7c,0x74,0xd3,0xa6,0x4d,0xc,0xf,
+ 0x8f,0x20,0x4,0x48,0x29,0x69,0xdf,0xe,0x63,0x74,0xf2,0x8,0x6,0xc3,0xdc,0xec,
+ 0x1c,0xfb,0xf7,0xef,0x33,0x8f,0x6e,0x7f,0x54,0x84,0xcd,0xc0,0x8c,0x16,0x2b,0x5c,
+ 0xe1,0x96,0xc4,0x35,0x43,0xeb,0x18,0x29,0x77,0x51,0xf0,0x7d,0xc4,0x32,0x21,0xf8,
+ 0xc4,0xa5,0x16,0xb4,0xf8,0xf1,0x7f,0xf8,0x33,0xf3,0xad,0xbd,0x3b,0x76,0x0,0x3f,
+ 0x6,0x4c,0x72,0xfa,0x3a,0x7a,0x42,0x5f,0xfe,0xa3,0x96,0x2,0xa,0xc5,0x62,0xf1,
+ 0x17,0x87,0x87,0x87,0xff,0xe8,0xea,0xab,0xaf,0xe5,0xfc,0xf3,0x2f,0xc0,0x71,0x1c,
+ 0x3c,0xcf,0xc7,0xf3,0x7c,0xa4,0x74,0x10,0x42,0xe0,0xba,0xe,0x8e,0xe3,0x92,0xcf,
+ 0xe7,0x29,0x97,0x4b,0xc,0xe,0xe,0xb1,0x79,0xf3,0x66,0xf1,0x92,0x97,0x5c,0xcd,
+ 0xe6,0xf3,0xce,0x13,0x3a,0xe7,0xf3,0xc0,0xec,0x4,0x7f,0x7e,0xdf,0xed,0xfa,0xbe,
+ 0x3d,0x3b,0x45,0x6f,0xb9,0x2c,0x7a,0xcb,0x15,0xf2,0xae,0xb,0xe6,0x89,0xfb,0x94,
+ 0xef,0xba,0xbc,0x62,0xe3,0x79,0xe2,0xf3,0xf,0x6f,0xe9,0x5b,0xa,0x9a,0x1b,0x81,
+ 0x7f,0x4f,0x5e,0x6a,0x5b,0x67,0xf6,0x48,0xcb,0x6a,0xe7,0x4f,0x29,0x3f,0x4a,0x6,
+ 0x50,0x4,0x7e,0xc5,0x75,0xbd,0xff,0xef,0x9a,0x6b,0x5e,0xa1,0xdf,0xfa,0xd6,0xb7,
+ 0x89,0x7c,0xbe,0x48,0x2e,0x57,0xa0,0x50,0x28,0x27,0x47,0x29,0x79,0x5e,0xa4,0x58,
+ 0x2c,0xd0,0xd5,0xd5,0xcd,0xc0,0xc0,0x1a,0x2a,0x95,0xa,0xbe,0xef,0xe2,0xfb,0x39,
+ 0x7a,0x7b,0x7b,0xd9,0xb8,0x71,0x93,0xb8,0xe8,0xc2,0x8b,0xc4,0xa5,0x97,0x5e,0x26,
+ 0x8f,0x34,0x6b,0xfc,0xf5,0xf7,0x6e,0xd7,0x7,0x83,0x9a,0x18,0xed,0x5f,0x23,0xfa,
+ 0xfc,0x3c,0xce,0x93,0x8,0xac,0xdd,0xf9,0x22,0x9b,0xd7,0x8c,0xc8,0x7f,0xde,0x7a,
+ 0xdf,0x5a,0xa0,0xa,0x7c,0x9f,0xce,0x6,0xc0,0x2a,0xe7,0xb2,0xe7,0x4f,0x29,0x3f,
+ 0x2a,0x6,0x50,0x2,0x7e,0xb5,0xbb,0xbb,0xf7,0xe3,0xef,0x78,0xc7,0x3b,0xcd,0x87,
+ 0x3f,0xfc,0x3f,0xa4,0xd6,0x6,0x21,0x4,0x8e,0xe3,0xe1,0x38,0xe,0xae,0xeb,0x51,
+ 0x28,0x14,0x28,0x95,0xca,0x74,0x77,0x77,0xd1,0xdf,0xdf,0x4f,0x4f,0x4f,0x37,0xc5,
+ 0x62,0x91,0x7c,0x3e,0x47,0xa1,0x50,0xa2,0x50,0xc8,0xe3,0x38,0xf6,0x96,0x69,0xd,
+ 0xe5,0x72,0x85,0x2b,0xaf,0xb8,0x42,0x5c,0x7a,0xc9,0x8b,0xe4,0x3d,0x8f,0x6e,0x13,
+ 0x77,0x8d,0x1d,0xd4,0xc5,0x4a,0x59,0xc,0xba,0x79,0xa,0xae,0xf7,0xf8,0x48,0xa3,
+ 0x44,0x84,0x10,0xc,0x16,0xcb,0xec,0x38,0x3a,0x9e,0xdf,0x33,0x3f,0x79,0x2e,0xf0,
+ 0x1d,0xe0,0x38,0x56,0x57,0xa7,0x63,0x0,0x9d,0x8c,0x61,0x55,0xf9,0x51,0x30,0x80,
+ 0x12,0xf0,0xde,0x9e,0x9e,0xbe,0x8f,0xbd,0xf3,0x9d,0xbf,0x6c,0xde,0xff,0xfe,0xdf,
+ 0x10,0x41,0xd0,0xc2,0xa4,0x94,0xe3,0x38,0x82,0x7c,0xde,0x23,0x9f,0xf7,0xf1,0x7d,
+ 0xf,0xcf,0x73,0x70,0x1c,0x89,0xe3,0x38,0x38,0x8e,0x40,0x4a,0x89,0x94,0x2,0xd7,
+ 0x75,0xc9,0xe5,0xf2,0x88,0x4,0xfc,0x9,0xe1,0x10,0x45,0x11,0xe5,0x72,0x99,0x6b,
+ 0x5f,0x76,0x2d,0xcd,0xa0,0xc5,0x96,0xa9,0x31,0xe6,0x5a,0x75,0x31,0xec,0xe5,0xe9,
+ 0xca,0x15,0x1e,0xbf,0x11,0x8,0x70,0x84,0x83,0x8f,0xcb,0x1d,0xfb,0x77,0xf5,0x35,
+ 0x54,0xd8,0xb,0x7c,0x15,0x9b,0xe3,0x1f,0xaf,0x1,0x64,0x1f,0x4f,0x92,0xe7,0xbb,
+ 0x1,0x14,0x81,0xf7,0xf7,0xf4,0xf4,0xfd,0x3f,0xef,0x7a,0xd7,0xbb,0xf5,0x7b,0xde,
+ 0xf3,0x1,0x19,0x86,0x27,0x2a,0x1f,0xc0,0xf7,0x6d,0x14,0x10,0x2,0x8c,0x31,0x48,
+ 0x29,0xf1,0x3c,0x7,0x29,0x25,0x42,0x48,0x84,0xb0,0x9e,0x9,0x24,0x18,0xc1,0x43,
+ 0x4a,0x7,0x63,0x24,0x52,0xba,0x18,0x3,0x51,0x14,0xb0,0x71,0xe3,0x39,0xa2,0xab,
+ 0x5c,0x12,0x7b,0x97,0xe6,0xd9,0x39,0x7e,0x94,0x11,0xe9,0xd1,0x57,0xee,0x7a,0xdc,
+ 0x84,0x92,0x10,0xd0,0x6c,0xc5,0x1c,0x9c,0x98,0x61,0xcf,0xd2,0xc4,0x10,0x76,0x34,
+ 0xf1,0x7,0x80,0xcb,0xea,0xca,0x3f,0x95,0x1,0x64,0xcf,0x2f,0xcb,0xf3,0xd9,0x0,
+ 0xa,0xc0,0x7,0xba,0xbb,0x7b,0x6e,0xfe,0x95,0x5f,0xf9,0xef,0xbc,0xfb,0xdd,0xef,
+ 0x95,0x61,0x18,0x9e,0xf4,0x9f,0x1c,0x47,0xe2,0xba,0x2e,0xae,0xeb,0x26,0x29,0x41,
+ 0xe2,0xba,0x4e,0xe2,0xf5,0xd6,0xd3,0x8d,0x1,0xad,0xd,0x5a,0x1b,0x94,0xd2,0x80,
+ 0xc1,0x18,0x43,0x14,0x29,0xb4,0x36,0xb8,0xae,0x8f,0xe3,0x38,0x28,0x15,0xd3,0xdb,
+ 0xdb,0x4b,0x7f,0x7f,0x2f,0x63,0xf5,0x2a,0x77,0x6c,0x7f,0xd8,0xac,0x75,0x72,0xc,
+ 0x75,0xf7,0x8a,0xc7,0x6b,0x4,0xb,0xf5,0x6,0x7,0xc6,0x66,0x68,0xea,0xa8,0x74,
+ 0xbc,0xb9,0x58,0x6,0xbe,0x88,0xed,0x2d,0x68,0xd7,0x9e,0xa7,0xa3,0xfc,0x4e,0xa9,
+ 0xe0,0x4,0x23,0x78,0xbe,0x1a,0xc0,0x30,0xf0,0x97,0xeb,0xd7,0x6f,0x78,0xcf,0x1f,
+ 0xfc,0xc1,0x1f,0x8b,0x9f,0xfc,0xc9,0xb7,0x89,0x38,0x8e,0x96,0x5f,0x6c,0x23,0x7d,
+ 0xcf,0x73,0xc9,0xe7,0x73,0x14,0x8b,0x79,0xa,0x85,0x1c,0xb9,0x9c,0x87,0xe7,0xb9,
+ 0xcb,0x5e,0x6f,0xef,0x95,0x55,0x7c,0x18,0xc6,0xd4,0x6a,0xd,0x9a,0xcd,0x90,0x38,
+ 0x56,0x44,0x91,0x22,0xc,0x43,0x94,0xd2,0xc9,0xe7,0xf9,0xb8,0xae,0xf,0x40,0xb1,
+ 0x58,0x64,0x64,0x64,0x84,0x30,0xef,0x89,0x7f,0xbc,0xfb,0x36,0xe3,0x36,0x5a,0x9c,
+ 0x3f,0xba,0x5e,0x18,0xad,0x4e,0xb,0x1e,0x1a,0x63,0x98,0x98,0x5f,0xe2,0xc0,0xf8,
+ 0x34,0x95,0x5c,0x81,0x3,0x4b,0x53,0xa3,0x81,0x8e,0x1f,0x0,0x76,0x1,0x3e,0x9d,
+ 0xbd,0xff,0x54,0x55,0xc2,0xaa,0x86,0xf0,0x7c,0x34,0x80,0x33,0x80,0x4f,0xac,0x5b,
+ 0xb7,0xe1,0xad,0x37,0xdf,0xfc,0x51,0x5e,0xf9,0xca,0x57,0xa3,0xd4,0x4a,0x53,0x8e,
+ 0x94,0x92,0x42,0xc1,0xa7,0x5c,0xce,0x53,0x28,0x58,0xc5,0x7b,0x9e,0x9b,0xe4,0x7c,
+ 0x89,0x10,0x2,0x21,0x4,0xc6,0x68,0xb4,0x36,0xcb,0x3,0x80,0x61,0x18,0x53,0xaf,
+ 0xb7,0x68,0xb5,0x62,0xa2,0x28,0x26,0x8e,0x63,0xb4,0x56,0x27,0xa4,0xf8,0x76,0x19,
+ 0xe9,0x38,0xe,0xbe,0xe7,0xd3,0xd7,0xdb,0x8b,0xf2,0x5c,0xf1,0x95,0x7b,0xef,0xa4,
+ 0x47,0xc3,0xa6,0xd1,0x75,0xe2,0x74,0x6,0x97,0x62,0x6d,0x38,0x30,0x39,0xcd,0xfe,
+ 0xc9,0x29,0xa,0xae,0x4f,0x35,0x6e,0xb9,0x63,0xf5,0xf9,0x3d,0xc0,0x43,0x80,0xe2,
+ 0xc4,0xaa,0x80,0x55,0x1e,0x3b,0x95,0x89,0x64,0xce,0x8b,0xe7,0x9b,0x1,0x9c,0x5,
+ 0xfc,0xd9,0xc6,0x8d,0xe7,0xbc,0xe5,0xe6,0x9b,0x3f,0xc6,0xb5,0xd7,0xbe,0x72,0xf9,
+ 0x5,0x21,0x2c,0xd8,0x2b,0x16,0xf3,0xcb,0x1e,0xef,0xfb,0x6e,0x12,0xee,0x5,0x52,
+ 0x8a,0x65,0xe5,0xb7,0xff,0xd6,0xda,0x10,0xc7,0xa,0x63,0x6c,0xe8,0xf,0x82,0x8,
+ 0xa5,0xec,0xf3,0xb6,0x71,0x64,0x45,0x8,0x89,0x52,0xa,0x10,0x48,0xe9,0xb0,0x66,
+ 0x70,0xd,0x75,0x94,0xb8,0xf5,0xbe,0xef,0x89,0xf3,0x2b,0xbd,0xc,0xf5,0xf4,0xdb,
+ 0x5e,0x82,0xd5,0x44,0x8,0xc2,0x30,0xe2,0xa1,0x3,0x47,0x98,0x5a,0xac,0x52,0xf4,
+ 0x7c,0x9a,0x71,0xc4,0x8e,0x85,0xf1,0x1a,0xb6,0x24,0x9c,0x63,0x5,0xb,0x3c,0x96,
+ 0xc7,0x3f,0x56,0x14,0x78,0x5e,0x45,0x80,0xf3,0x80,0x3f,0xbb,0xf0,0xc2,0x8b,0xde,
+ 0xf8,0x7b,0xbf,0xf7,0x7,0x5c,0x7b,0xed,0x2b,0xc8,0xe7,0xbd,0x4,0xd5,0xbb,0x78,
+ 0x9e,0xbb,0xc,0xea,0x40,0xe0,0x38,0x16,0xd5,0xaf,0x48,0x1b,0x64,0xaf,0x0,0x41,
+ 0x63,0x4,0x41,0x10,0x12,0x4,0x11,0x51,0x14,0xa3,0x54,0x8c,0xd6,0x8f,0x8d,0xea,
+ 0xa5,0x74,0xf0,0x3c,0xf,0x29,0x5d,0x1c,0xc7,0x61,0x68,0x70,0x90,0x23,0x8b,0x73,
+ 0xdc,0xbf,0xf5,0x41,0x5e,0x77,0xd6,0x79,0x38,0xae,0xbb,0x7a,0x75,0x20,0x4,0xd5,
+ 0x66,0x8b,0x5b,0x7f,0xb0,0x1d,0xd,0x38,0x8,0x2,0x15,0xb1,0x67,0x71,0xa2,0x1c,
+ 0x6a,0x75,0x7,0x70,0x18,0xdb,0x8b,0xd8,0x56,0x7a,0x1b,0x13,0x64,0xb9,0x2,0x58,
+ 0x3d,0xa,0x2c,0xff,0xfd,0x7c,0x31,0x80,0x21,0xe0,0x33,0x97,0x5e,0x7a,0xf9,0x8f,
+ 0xdd,0x7c,0xf3,0x47,0x79,0xd9,0xcb,0xae,0xa5,0x5c,0x6e,0x7b,0xba,0x4f,0x3e,0xef,
+ 0x93,0xcb,0x59,0x63,0xb0,0xc0,0xce,0xa0,0x94,0x41,0x6b,0x8d,0xe3,0xb4,0x81,0x9e,
+ 0x7d,0xde,0x6,0x7c,0xf6,0x51,0xd1,0x68,0x4,0x34,0x9b,0x21,0x4a,0xa9,0xd3,0x52,
+ 0xbe,0x8d,0x20,0xd6,0xd0,0xda,0x2c,0xa3,0xef,0xfb,0xf4,0xf4,0x74,0xb3,0x65,0xff,
+ 0x1e,0xdd,0xdd,0xc,0xd9,0x34,0x34,0xba,0x2a,0x28,0x8c,0xb5,0xe6,0xde,0x5d,0xfb,
+ 0xd9,0x37,0x39,0x8d,0x93,0x44,0xa4,0x48,0x2b,0xf6,0x2e,0x1d,0xaf,0xd4,0xe2,0xe0,
+ 0x56,0x60,0x7,0x90,0xe3,0x44,0x85,0x9f,0x8a,0x29,0x34,0xac,0x1e,0x9,0x9e,0x17,
+ 0x6,0xb0,0xe,0xf8,0xf8,0xd5,0x57,0x5f,0x7b,0xe3,0x6f,0xff,0xf6,0xcd,0x5c,0x7e,
+ 0xf9,0xe5,0x9,0xaa,0x77,0x70,0x5d,0xb9,0x5c,0xc3,0x5b,0xb2,0xc7,0x49,0x50,0xbe,
+ 0x5c,0xfe,0x5b,0x6b,0x9d,0x1c,0x56,0xb9,0x5a,0x2b,0xa2,0x28,0x26,0x8,0x22,0x5a,
+ 0xad,0x88,0x56,0x2b,0x40,0x29,0x7d,0x5a,0xca,0xcf,0x4a,0xdb,0x18,0x1c,0xc7,0xa5,
+ 0x5c,0x2a,0x22,0x7c,0x57,0xdc,0xb3,0xe5,0x1,0x71,0x7e,0xa5,0xd7,0x96,0x87,0x99,
+ 0x28,0x60,0x8c,0x61,0xff,0xe4,0x34,0xdf,0x78,0x68,0x3b,0x52,0xb4,0x3f,0xc3,0x3e,
+ 0xee,0x5c,0x98,0x60,0x31,0x6c,0xdc,0x87,0x35,0x80,0xd3,0x51,0x3c,0x9c,0x1c,0x1,
+ 0x4e,0x3a,0xff,0x5c,0x37,0x80,0x73,0x81,0x4f,0x9c,0x7d,0xf6,0x39,0x3f,0xfe,0xd1,
+ 0x8f,0xfe,0xbf,0x9c,0x7b,0xee,0x79,0x4,0x41,0x48,0xab,0x15,0xd0,0x68,0x34,0x59,
+ 0x5a,0xaa,0xb2,0xb0,0xb0,0x48,0xad,0xd6,0x20,0x8a,0x62,0x60,0x5,0xdc,0xb5,0xf3,
+ 0xbd,0x25,0x7b,0x64,0xe2,0xb5,0xed,0x92,0x8f,0xc4,0x0,0x2,0xe2,0x58,0x9f,0xc4,
+ 0x1b,0x3c,0x5e,0x69,0x33,0x8d,0x3d,0x5d,0x15,0xee,0xde,0xf9,0x88,0x71,0xab,0xd,
+ 0x71,0x61,0xdf,0xd0,0x32,0xab,0xd8,0x96,0x89,0xb9,0x5,0x3e,0xf7,0xbd,0x7,0x89,
+ 0xe2,0x74,0x27,0xb9,0xc0,0x95,0x92,0x5d,0xb,0x13,0xcc,0x6,0xb5,0x1d,0xd8,0x86,
+ 0xd2,0x90,0x15,0xdd,0x9d,0x8a,0xf,0x78,0x2c,0x11,0xee,0x63,0xff,0x9f,0x67,0xad,
+ 0x5c,0x5,0xfc,0x47,0xa1,0xe0,0xac,0xab,0xd5,0xc6,0xd4,0x2f,0xfd,0xd2,0x5b,0x8c,
+ 0x52,0x4a,0x28,0x15,0x8b,0x28,0xd2,0xc2,0x18,0x3b,0x2a,0xe3,0x79,0xe,0x5d,0x5d,
+ 0x5d,0xf4,0xf7,0xf,0x70,0xc6,0x19,0xeb,0xf4,0xe6,0xcd,0x97,0x8a,0x4b,0x2f,0x7d,
+ 0xb1,0xb8,0xf0,0xc2,0xb,0xe9,0xef,0xef,0xa3,0x54,0x2a,0xe2,0xfb,0x3e,0xae,0xeb,
+ 0x20,0x84,0xc4,0x96,0xfe,0x3a,0x1,0x7e,0xe6,0x49,0x2b,0x1f,0xac,0x67,0xbb,0xae,
+ 0x47,0x5f,0xdf,0x10,0x2f,0xbb,0xe6,0x1a,0xbe,0xf6,0x85,0x2f,0xeb,0x8b,0x7b,0x7,
+ 0xc5,0x15,0xeb,0x37,0xa,0xb4,0x46,0x29,0xc5,0xec,0x52,0x9d,0x7f,0xff,0xde,0x83,
+ 0x34,0x82,0xe0,0xc4,0xf7,0x62,0xf0,0xa4,0x43,0xce,0x71,0x1,0x6,0x81,0xa,0x76,
+ 0xfe,0x81,0x4,0x2c,0x29,0x71,0xf2,0xa3,0x60,0xa5,0x5a,0x20,0x39,0xf,0x2b,0x23,
+ 0x86,0xcb,0xe9,0xe1,0xb9,0x6a,0x0,0x97,0x1,0x9f,0xbe,0xe0,0x2,0xd6,0xdd,0x74,
+ 0x93,0x62,0xdd,0xba,0xa6,0x23,0x25,0x38,0xe,0x78,0x1e,0xf8,0x3e,0xe4,0xf3,0xed,
+ 0x43,0xe3,0x38,0xb3,0xd4,0xeb,0xb3,0xec,0xd8,0xb1,0x5b,0xde,0x79,0xe7,0x6d,0xfa,
+ 0xb,0x5f,0xf0,0xf1,0xbc,0x2e,0x36,0x6d,0xba,0xd4,0xbc,0xf5,0x2d,0x3f,0x23,0xcf,
+ 0xbf,0xf0,0x62,0x6,0x6,0x87,0xe8,0xee,0xee,0xc6,0x71,0x1c,0xb4,0xd6,0xf8,0xbe,
+ 0x47,0x1c,0x2b,0x82,0x20,0x7a,0xca,0x8c,0xc0,0xf3,0x7c,0xae,0xb8,0xec,0xc5,0xe2,
+ 0x8e,0xbb,0xef,0x16,0xdf,0x3a,0xb4,0x87,0xd,0x3d,0x3,0x38,0x38,0xec,0x38,0x36,
+ 0xce,0xf7,0x76,0xef,0xa7,0xde,0x6c,0x75,0x7c,0xaf,0x40,0x90,0x77,0x7c,0xb0,0x13,
+ 0x53,0x8a,0x58,0xef,0x77,0x58,0x51,0x7a,0xfb,0x10,0xac,0x18,0x81,0x49,0x9d,0x6b,
+ 0x1b,0x4b,0xda,0x68,0xe0,0x39,0x1a,0x1,0x5e,0xc,0xfc,0xed,0xab,0x5f,0xcd,0x85,
+ 0x7f,0xfd,0xd7,0x70,0xf6,0xd9,0xa7,0xff,0xc6,0x37,0xbc,0x1,0x3e,0xf0,0x1,0x2d,
+ 0x1b,0xcd,0x16,0x77,0xdc,0xd6,0xe2,0x96,0x2f,0xdd,0xaa,0x3f,0xff,0xa9,0xbb,0xe3,
+ 0x79,0xb3,0x56,0x8c,0x6e,0xbe,0x46,0xbe,0xfe,0x75,0x37,0x70,0xf1,0xc5,0x17,0x89,
+ 0xd1,0xd1,0x51,0x72,0x39,0x8f,0x62,0x31,0xf,0x18,0x5a,0xad,0xe8,0x31,0x3f,0xfb,
+ 0x74,0x44,0x8,0xc1,0xe0,0xe0,0x8,0x97,0x5f,0x72,0xb9,0xf9,0xc7,0xbf,0xf8,0xb4,
+ 0xd1,0xb,0xa1,0x94,0x2d,0x87,0x7a,0xd0,0xc2,0x91,0x72,0x99,0x6e,0xee,0x24,0x39,
+ 0xc7,0x45,0x40,0xc5,0x58,0x86,0xd3,0xc1,0x96,0x82,0x59,0x3,0xd0,0x58,0xcf,0x4f,
+ 0x2b,0x19,0x56,0xc,0x1,0x4e,0x4c,0xd,0xe6,0xb9,0x86,0x1,0xae,0x6,0x3e,0xf3,
+ 0xda,0xd7,0x72,0xc1,0xdf,0xfd,0x1d,0xac,0x5f,0xff,0xc4,0x3e,0xc4,0xf3,0x60,0xd3,
+ 0x28,0xbc,0xe1,0xa2,0x35,0xf2,0x35,0x3f,0xf6,0xb,0x8d,0x73,0xcf,0x7b,0x49,0xfe,
+ 0x8e,0xdb,0xbf,0xc1,0x5f,0xfd,0xd5,0x5f,0x98,0xed,0xbb,0xf6,0xd3,0xdd,0xdd,0x43,
+ 0x7f,0xff,0x80,0x28,0x97,0x4b,0xf8,0xbe,0x4b,0x1c,0xeb,0x84,0x2,0x7e,0xf2,0x22,
+ 0xa5,0xcb,0x40,0xff,0x80,0xf9,0xca,0xb7,0xbf,0x21,0xe,0xee,0x3b,0x24,0xd6,0x96,
+ 0xfb,0xf0,0x1c,0xf7,0x94,0xca,0x97,0x42,0x70,0xa4,0x36,0xc7,0x91,0xda,0xec,0xac,
+ 0xc6,0xdc,0x9,0xcc,0x73,0xe2,0xe8,0x60,0xba,0x14,0x6c,0x4b,0xa7,0xf,0x34,0x99,
+ 0xc7,0xe7,0x14,0x11,0xf4,0x32,0xe0,0x33,0x37,0xdc,0xc0,0xe6,0xbf,0xfd,0x5b,0x58,
+ 0xbb,0xf6,0x9,0x7e,0x4a,0x84,0x1d,0x5c,0x9d,0x38,0x23,0xa0,0xeb,0x17,0xe2,0xe2,
+ 0x39,0xef,0x2e,0x9e,0x3d,0x9a,0xe3,0x67,0x5f,0x9e,0x13,0x17,0x9e,0xd5,0x2d,0xee,
+ 0x7d,0xe0,0x41,0x3e,0xf3,0x4f,0xff,0xae,0x14,0xae,0x1c,0x19,0x1e,0x65,0x60,0xa0,
+ 0x1f,0xdf,0x77,0x96,0xc9,0xa0,0x93,0xab,0xaa,0xc7,0x27,0x42,0x8,0x7c,0xdf,0x9d,
+ 0xdb,0xf1,0xc8,0xc3,0xe6,0xc1,0x9d,0xdb,0xfc,0x8d,0xa5,0x41,0xca,0x7e,0xfe,0x94,
+ 0xef,0x71,0x84,0xe4,0x70,0x6d,0x96,0xc3,0xd5,0x99,0x39,0x8d,0xb9,0x83,0x15,0x32,
+ 0x28,0x3b,0x2e,0x90,0x95,0xf6,0xc5,0xae,0x9a,0xc3,0x9e,0x2b,0x6,0xf0,0xa,0xe0,
+ 0x6f,0xde,0xf8,0x46,0xce,0xfd,0x9b,0xbf,0x81,0x91,0x91,0x27,0xf8,0x29,0x2d,0xe0,
+ 0xa8,0x80,0xb9,0x33,0x43,0x86,0x7f,0x5,0x86,0x7f,0x39,0x4f,0xbd,0x5,0x87,0x6f,
+ 0x81,0xe6,0x4,0x9b,0x37,0xf,0xf1,0x7f,0xbd,0xe6,0x3c,0x11,0xab,0xd8,0x7c,0xe6,
+ 0xb3,0x5f,0x14,0xbb,0xf,0x8c,0x8b,0x73,0x36,0x9e,0xc3,0x99,0x67,0x9e,0x99,0x8c,
+ 0xe,0x8a,0x84,0x19,0x7c,0xe2,0x3f,0xc4,0x75,0x3d,0xe,0x1e,0xdc,0x77,0xa4,0x5e,
+ 0xaf,0x16,0xee,0xdb,0xfa,0x50,0xa1,0x2b,0x76,0x18,0x2e,0xf6,0x9c,0x32,0x2,0x38,
+ 0x42,0x72,0xa8,0x3e,0xc3,0xa1,0xda,0xcc,0x8c,0x36,0xe6,0xbb,0x9c,0xcc,0x6,0xb6,
+ 0xe5,0x84,0xf0,0x7e,0x3a,0x8f,0xcf,0x5,0x3,0x78,0x15,0xf0,0x97,0x37,0xde,0xc8,
+ 0xe6,0xbf,0xfc,0xcb,0x27,0xa1,0xfc,0x0,0x38,0x22,0x60,0x61,0x7d,0xc8,0xf0,0xbb,
+ 0x60,0xf0,0x1d,0x39,0x54,0x11,0x8e,0x7e,0x9,0xe6,0x1f,0xb5,0xf5,0x5f,0xac,0x70,
+ 0x1d,0xc1,0x2b,0xaf,0x3e,0x53,0x6e,0x5a,0xdb,0x23,0xbe,0x7a,0xeb,0x3d,0xdc,0x7a,
+ 0xe7,0x43,0xe6,0x82,0xf3,0xce,0xe3,0xac,0xb3,0xce,0x16,0x9e,0x67,0xcb,0xc5,0x28,
+ 0x52,0x49,0xdf,0xe0,0xe3,0x8f,0x4,0xae,0xeb,0xb1,0x7d,0xfb,0xf,0x9a,0xc6,0xa8,
+ 0xe2,0xc1,0x83,0x7,0x73,0xe3,0xc7,0x27,0xd9,0xdc,0x35,0x8c,0x2f,0x57,0x57,0x85,
+ 0x23,0x24,0x7,0xaa,0x53,0x1c,0xaa,0xce,0x1c,0xd7,0x98,0xbb,0xb0,0x29,0xa0,0x8d,
+ 0xdf,0x56,0x9a,0x19,0x3b,0x4b,0xb6,0x2,0x38,0xa1,0xe7,0xfd,0xa9,0x6a,0x6b,0x7d,
+ 0xba,0xe4,0x7d,0xc0,0xbf,0xfe,0xd6,0x6f,0xb1,0xf9,0x9f,0xff,0x19,0x46,0x47,0x9f,
+ 0xe0,0xa7,0xb4,0x80,0xbd,0x8e,0x21,0x7a,0x71,0x93,0x73,0xfe,0x8,0x46,0xdf,0xeb,
+ 0x13,0x49,0x38,0xf8,0x6f,0x30,0x71,0xf,0x84,0x4d,0x6b,0x0,0x51,0x0,0x61,0xb,
+ 0x6a,0x75,0x6e,0x7a,0xf9,0x19,0x7c,0xe5,0x4f,0x6e,0xe4,0xa5,0xeb,0x17,0xc4,0xdb,
+ 0x7e,0xf6,0x67,0xf4,0xdf,0xff,0xfd,0x67,0x8c,0xe7,0xf9,0x94,0xcb,0x5,0xba,0xbb,
+ 0x4b,0xa7,0xf4,0xd8,0xd5,0xc4,0x75,0x5d,0x26,0x27,0x8f,0x8d,0x1d,0x3f,0x3e,0x51,
+ 0x6e,0x34,0x1a,0x95,0xab,0x5f,0xf2,0x52,0xa6,0x69,0xb1,0x10,0x36,0x38,0x95,0xe,
+ 0x5,0x82,0x40,0xc5,0xc4,0x46,0x37,0x92,0x53,0x1e,0xd6,0x0,0xda,0x8f,0xed,0xc3,
+ 0xc1,0xea,0xf4,0x74,0x8e,0x67,0x3d,0x15,0xfc,0x6b,0xc0,0x47,0x7e,0xfb,0xb7,0x19,
+ 0xfc,0xd0,0x87,0xa0,0x52,0x79,0x12,0x9f,0x34,0xe5,0x41,0xf4,0xd2,0x26,0xc5,0xff,
+ 0xea,0x33,0xf2,0x56,0x8f,0x56,0x15,0x8e,0x7c,0x5,0x26,0xee,0x2,0x42,0x90,0x2e,
+ 0x84,0xc9,0xbd,0x55,0x31,0xb8,0x3e,0x20,0xa9,0xf4,0x55,0x78,0xe9,0x85,0xc3,0xd4,
+ 0x6a,0xb,0xfc,0xd9,0xdf,0xdf,0x62,0xfa,0x7a,0x7b,0xc5,0xe5,0x97,0x5f,0x29,0x1c,
+ 0x47,0x2c,0xf7,0x2,0x3c,0x9e,0x12,0x51,0x4a,0x87,0x47,0x1e,0x79,0xa8,0x7e,0xf8,
+ 0xf0,0xa1,0x2,0xe0,0xf7,0xf5,0xf5,0xf1,0xd0,0xb6,0x87,0xe9,0x8a,0x1d,0x86,0xa,
+ 0xdd,0xab,0x1a,0x95,0x23,0x25,0xdb,0xe6,0x8e,0x32,0xd1,0x58,0xd8,0xd,0x3c,0x80,
+ 0xe5,0x1,0xd2,0xba,0x4b,0xd3,0xbe,0xd9,0xb,0x32,0x99,0xf3,0xe9,0xe7,0xcf,0xda,
+ 0x2a,0xe0,0x37,0x81,0xdf,0xf8,0xdd,0xdf,0x65,0xe0,0x3,0x1f,0x78,0x92,0xca,0x9f,
+ 0xf5,0xa0,0x7a,0x79,0x93,0xfc,0x7f,0xf3,0x18,0xf9,0x69,0xf,0x1d,0xc3,0xe1,0x2f,
+ 0xc3,0xd1,0x6f,0x83,0x63,0xc0,0xf1,0x20,0x57,0x0,0x2f,0xf,0x5e,0xce,0x92,0x9,
+ 0x5a,0x81,0x8a,0x20,0x8a,0x28,0xb8,0x9a,0x97,0x9c,0xd3,0x2d,0xa2,0xb0,0xc5,0x9f,
+ 0x7c,0xe6,0x56,0xd3,0x55,0xa9,0x88,0xcb,0x2f,0xbf,0x42,0x48,0x69,0xec,0x24,0x60,
+ 0x75,0x7a,0x4c,0xa1,0xef,0xfb,0xcc,0xcd,0xcd,0x2c,0xde,0x7f,0xff,0x3d,0x5a,0x6b,
+ 0xd5,0x2b,0xa5,0x24,0x9f,0xcf,0x73,0xf4,0xc8,0x11,0xdd,0x9a,0x5b,0x14,0x67,0x95,
+ 0x7,0x90,0x1d,0xe6,0x19,0xb4,0xdb,0x12,0xb6,0xce,0x1e,0x61,0xba,0x55,0x7d,0x18,
+ 0x3b,0x24,0x1c,0x71,0x72,0xc8,0x68,0x73,0x0,0x70,0xa2,0x11,0x98,0xe,0xc7,0xb2,
+ 0x3c,0x1b,0xd,0xe0,0x7f,0x3,0x1f,0xfc,0xd8,0xc7,0xe8,0x79,0xdf,0xfb,0xa0,0x5c,
+ 0x7e,0x2,0x9f,0xd0,0xfe,0x99,0xaa,0x0,0x7,0xce,0x89,0xc8,0xbd,0xcb,0x61,0xed,
+ 0x4f,0x7b,0x38,0x12,0xc6,0xbf,0x3,0xd3,0x77,0x81,0x6a,0x1,0x32,0x9,0xfd,0x91,
+ 0x7d,0x43,0x1c,0xda,0x9,0x9c,0x60,0xd,0xc1,0x71,0x40,0xba,0xe4,0x8a,0x39,0xae,
+ 0xbc,0x60,0x48,0x34,0x9a,0x55,0xfe,0xe0,0xcf,0xbf,0x64,0x4a,0xc5,0x2,0x2f,0x7b,
+ 0xd9,0xcb,0x84,0x6d,0x16,0xd1,0xc4,0xf1,0xa9,0x4b,0x44,0xc7,0x71,0x68,0x36,0x1b,
+ 0xf5,0x87,0x1f,0x7e,0x70,0x66,0x6c,0xec,0xe8,0x88,0xeb,0xba,0xb2,0x3d,0x4e,0x10,
+ 0x4,0x1,0xe3,0x47,0x8e,0x8a,0x4d,0xa5,0x35,0xb8,0x1d,0x70,0x80,0x14,0x82,0x50,
+ 0xc5,0x6c,0x9d,0x3b,0xc2,0x7c,0x50,0xbf,0x7,0x3b,0x73,0x28,0x8d,0xee,0xd3,0xde,
+ 0x9f,0xbd,0x3,0x69,0x76,0xb0,0xe3,0xf1,0x6c,0x23,0x82,0x7e,0xd6,0x75,0xf9,0xc0,
+ 0xc7,0x3f,0x4e,0xe9,0x5d,0xef,0xb2,0x4c,0xde,0x69,0x4b,0xda,0xb6,0x5,0x20,0x8a,
+ 0xf0,0xe8,0x3a,0x45,0xf9,0x3d,0x92,0x33,0xde,0xea,0x60,0x2,0x38,0xf8,0x4d,0x98,
+ 0xbc,0x13,0x8,0x2d,0x5d,0x88,0x48,0xc2,0x3d,0x49,0xdf,0x9e,0x49,0xa6,0x72,0x6b,
+ 0x8b,0x5,0x54,0x13,0xc2,0x0,0x84,0xa0,0x9c,0x2f,0xf0,0x81,0xb7,0x9c,0x2d,0x6b,
+ 0x4b,0x4b,0xe6,0xf,0x3f,0xfe,0x47,0xe6,0xe5,0x2f,0x7f,0x39,0x17,0x5f,0x7c,0x9,
+ 0x4a,0xd9,0x9e,0x81,0x30,0xec,0xbc,0x12,0x8c,0x55,0x72,0x18,0xec,0xdc,0xf9,0xe8,
+ 0xfc,0xee,0xdd,0x3b,0x86,0x3d,0xcf,0x73,0xda,0xa1,0xde,0xf7,0x7d,0x6,0x7,0x7,
+ 0xc5,0x43,0x52,0x9f,0x62,0x56,0x87,0xa0,0xa9,0x22,0x9a,0x71,0x8,0x16,0xfd,0x87,
+ 0xd8,0x7c,0x9f,0x26,0x7b,0xd2,0xd,0xa3,0xa4,0xfe,0x4e,0xf,0x18,0x75,0x94,0x67,
+ 0x4b,0x4,0x70,0x80,0x5f,0xf4,0x3c,0x3e,0xf1,0xa9,0x4f,0x51,0x79,0xe7,0x3b,0x21,
+ 0x97,0x7b,0x9c,0x9f,0x10,0xb1,0x12,0x18,0x9d,0x3c,0x6c,0x3f,0x53,0x51,0xf9,0x75,
+ 0x38,0xf3,0xc7,0x1d,0x4c,0xb,0x26,0x6f,0x83,0xa5,0x87,0x41,0xc4,0xe0,0xe6,0x6c,
+ 0xde,0x47,0x40,0xd0,0x84,0xa0,0xb1,0x2,0x0,0xdb,0xd1,0xc0,0x68,0xf0,0xb,0x50,
+ 0xac,0x40,0xa1,0x2,0x7e,0x81,0x5c,0xb9,0xcc,0x8b,0x36,0xd,0x8a,0xfd,0xfb,0xe,
+ 0x8a,0x6d,0x87,0x9a,0xbc,0xf8,0xaa,0x2b,0xa8,0x54,0x4a,0x44,0x91,0x6d,0x11,0xcb,
+ 0x8a,0x10,0x82,0x28,0x8a,0xc2,0x1d,0x3b,0x1e,0x9d,0x7a,0xf0,0xc1,0x7b,0xfb,0x5d,
+ 0xd7,0x2d,0x4a,0x29,0x59,0x5c,0x5c,0xa4,0xd9,0x6c,0xe2,0xfb,0x3e,0xf3,0xf3,0xf3,
+ 0x3c,0xbc,0x6d,0x1b,0x97,0x56,0xd6,0xe2,0x75,0x88,0x0,0x8e,0x10,0xcc,0xb6,0x6a,
+ 0x6c,0x9d,0x3d,0x1c,0xb4,0x54,0x74,0x1b,0x30,0xc6,0x4a,0x5,0x0,0x27,0x33,0x7e,
+ 0xed,0x73,0x59,0x86,0xb0,0x63,0x44,0x78,0x36,0x44,0x80,0x1c,0xf0,0x8b,0xc5,0x22,
+ 0x7f,0xfa,0xee,0x77,0xe3,0xbd,0xf3,0x9d,0x4f,0xf0,0x53,0x7c,0x92,0x9f,0x94,0x83,
+ 0x47,0x37,0x28,0xba,0x7f,0x7,0x86,0x5f,0xe3,0x60,0x42,0x38,0x76,0xb,0x4c,0x3d,
+ 0x8,0x71,0xd,0x74,0x6c,0x15,0x1d,0x87,0x50,0xec,0x6,0x84,0xcd,0xfd,0xae,0x7,
+ 0xd2,0xb3,0xe3,0xaf,0x2,0x6b,0x10,0x2a,0x86,0xa8,0xe,0x71,0xf2,0x9e,0xb0,0xc9,
+ 0x70,0xa5,0xc4,0xfb,0xde,0x7c,0xe,0x6f,0xfb,0xc3,0xcf,0x9a,0x2b,0xaf,0xb8,0x9c,
+ 0x9f,0xfb,0xd9,0x9f,0x11,0xb9,0x9c,0xb7,0xdc,0x33,0x90,0x96,0x56,0xab,0xd9,0xdc,
+ 0xb2,0xe5,0xde,0x63,0x7b,0xf6,0xec,0x5a,0xef,0x38,0x8e,0x6f,0xfb,0xf,0x1c,0xe2,
+ 0x38,0x66,0xef,0xde,0xbd,0xec,0xdf,0xbf,0x1f,0xcf,0xf7,0xa9,0xb7,0x9a,0xab,0x46,
+ 0x0,0x21,0x4,0xd,0x15,0xb0,0x18,0x36,0x8f,0x0,0x8b,0xac,0x20,0x7d,0xc3,0xa,
+ 0xa2,0x6f,0xd7,0xa4,0xab,0x11,0x42,0xab,0x9d,0xe7,0x99,0x36,0x80,0x22,0xf0,0xae,
+ 0xae,0x2e,0xfe,0xf8,0xbd,0xef,0x45,0xdf,0x7c,0xf3,0x93,0xfc,0xb4,0xc0,0x81,0x3d,
+ 0x1b,0x34,0x6b,0x7e,0x4f,0xd0,0x7f,0x95,0xa4,0x39,0x5,0xe3,0x77,0xc2,0xd4,0x7d,
+ 0x20,0x94,0xf5,0x7a,0x37,0x7,0xf9,0x2e,0xab,0x68,0xad,0x20,0x8e,0xac,0x51,0x54,
+ 0x67,0xad,0xf7,0x4b,0x9,0x42,0xda,0xf3,0xe5,0x1e,0x9b,0x22,0xbc,0x2,0x14,0xbb,
+ 0xc0,0x71,0xc1,0x68,0x2e,0xbf,0xb4,0x9b,0xd7,0xbf,0xe8,0x80,0xf9,0x97,0x7f,0xfa,
+ 0x8c,0x39,0x63,0xed,0xa8,0xbc,0xf2,0xca,0x17,0x8b,0x54,0x6f,0x81,0x89,0xe3,0x38,
+ 0x9e,0x9b,0x9b,0xad,0xde,0x71,0xc7,0x37,0x8e,0x37,0x9b,0xc1,0xf9,0x52,0xda,0x12,
+ 0x70,0x7e,0x7e,0x9e,0x30,0xc,0x71,0x5d,0x17,0xad,0x35,0xe3,0xe3,0xe3,0x8c,0x8e,
+ 0x8e,0xa2,0x4d,0x96,0xba,0x5f,0x91,0xd8,0x68,0xe6,0x5a,0x35,0x34,0xe6,0x30,0x2b,
+ 0x6,0x70,0x2a,0x65,0xb7,0xe5,0xb1,0x5e,0x7,0x9e,0x59,0x3,0x28,0x3,0xbf,0xd2,
+ 0xdf,0xcf,0x1f,0xfe,0xda,0xaf,0xa1,0x3f,0xf2,0x91,0x27,0xc1,0x49,0x68,0x60,0x1a,
+ 0xc3,0xb1,0x61,0xcd,0xf0,0xaf,0x43,0xdf,0xc5,0xe,0x8d,0x19,0x98,0x7e,0x8,0x96,
+ 0xb6,0x41,0x3e,0x67,0xbd,0x58,0xc5,0x10,0x85,0x56,0xe1,0x51,0x8,0x71,0x13,0xdc,
+ 0x4,0xfd,0xe7,0xa,0x50,0xea,0x5,0x3f,0xbf,0x2,0x4,0x4d,0x92,0xa,0xb4,0xb6,
+ 0xc6,0xd2,0xaa,0x41,0xb3,0xa,0x39,0x9f,0xf7,0xbc,0xed,0x32,0xf9,0x73,0x37,0xdf,
+ 0xc9,0x6d,0xb7,0x7f,0xd7,0x6c,0xda,0x74,0xae,0x6a,0xb5,0x22,0xa3,0x35,0xaa,0xd5,
+ 0x6a,0xc5,0xf7,0xdd,0x77,0xd7,0xfe,0x89,0x89,0xa3,0xe7,0x68,0xad,0xcf,0x3f,0x7c,
+ 0xf8,0x30,0xf9,0x7c,0x9e,0xa1,0xa1,0x21,0xe2,0x38,0x66,0x6c,0x6c,0x8c,0xbe,0xbe,
+ 0x3e,0x84,0x10,0x84,0x61,0x68,0xdb,0xcf,0x56,0x29,0xff,0xa4,0x10,0x2c,0x85,0x4d,
+ 0x8e,0xd6,0xe7,0xc0,0xb6,0x82,0x2d,0xb2,0x92,0xff,0x57,0x6b,0x0,0x39,0x15,0x57,
+ 0x7d,0x92,0x51,0x3c,0x53,0x6,0x50,0x6,0xfe,0xfb,0xe0,0x20,0x1f,0xfd,0xe0,0x7,
+ 0x31,0x1f,0xfa,0xd0,0x93,0x24,0xa4,0x62,0xc,0x8b,0x7d,0x11,0x23,0xef,0x11,0x74,
+ 0x6d,0x70,0x99,0xdb,0xf,0xd3,0xdb,0x61,0xe6,0x7,0x50,0x9f,0x85,0x5c,0xd1,0x96,
+ 0x7b,0x9e,0x67,0x91,0xbd,0xeb,0x5a,0x45,0xd3,0x6d,0xdf,0xef,0xe7,0xec,0xeb,0x6,
+ 0x6b,0x1c,0x71,0xb8,0x42,0xc,0xc5,0x21,0xb4,0xea,0x36,0x62,0xe4,0x8a,0xd0,0x3b,
+ 0xc,0x6e,0x8e,0x73,0x86,0x5d,0x6e,0x7a,0xc5,0xd9,0xfa,0x4f,0xff,0xe6,0x13,0x71,
+ 0xd0,0x5a,0x5a,0xe8,0xee,0xee,0xd1,0xae,0xeb,0x4f,0xb7,0x5a,0xf5,0x75,0xb9,0x5c,
+ 0xee,0x92,0x5c,0x2e,0x47,0xb3,0xd9,0xa4,0xd5,0x6a,0x71,0xf4,0xe8,0x51,0x94,0x52,
+ 0x54,0x2a,0x15,0xea,0xf5,0x3a,0x9e,0xe7,0x21,0x84,0x20,0x8e,0x63,0x82,0x30,0xc0,
+ 0x93,0xe9,0xf9,0x1e,0x2b,0x22,0x80,0xe9,0x56,0x95,0x7d,0xd5,0xe3,0x75,0xe0,0x68,
+ 0x72,0xba,0x3d,0xc,0xc,0x27,0xc2,0xde,0x6c,0x15,0xd0,0x49,0x4e,0x3a,0xff,0x4c,
+ 0x80,0xc0,0x12,0xf0,0xde,0xc1,0x41,0x3e,0xfa,0xe1,0xf,0x63,0x3e,0xf8,0xc1,0x27,
+ 0x31,0xb2,0x2,0x16,0x13,0x8f,0x15,0x43,0xba,0x7f,0xf,0xa,0xeb,0x7c,0x66,0xc6,
+ 0x5,0x53,0x3b,0xa0,0xba,0xd7,0xae,0xe8,0xd5,0x35,0x0,0xa5,0x1e,0xab,0xbc,0x76,
+ 0x9d,0xad,0x23,0x7b,0x2b,0x72,0x25,0x1b,0xd6,0xb5,0xb6,0xd1,0x21,0xe,0xad,0x97,
+ 0x7,0xd,0x68,0x35,0xec,0xf3,0x42,0x19,0xca,0xbd,0x50,0xee,0xb3,0xff,0x5f,0x48,
+ 0x7b,0x3e,0x8e,0xd9,0xbc,0x61,0x40,0x7c,0xf5,0xce,0xdd,0xce,0xd1,0xe3,0xcd,0xd2,
+ 0x86,0xd,0xeb,0xca,0x13,0x13,0x63,0x43,0xbe,0xef,0xe7,0x95,0x52,0x4,0x41,0x80,
+ 0x31,0x86,0x20,0x8,0x98,0x9a,0x9a,0x22,0x8a,0x22,0x7c,0xdf,0x67,0x61,0x61,0x61,
+ 0x59,0xf9,0xb,0xb,0xb,0x4,0xad,0x90,0xd6,0x52,0x95,0xcb,0x7a,0xcf,0x3c,0x1,
+ 0x4,0x4a,0x4,0xd5,0xb8,0xc5,0x3d,0xc7,0xf7,0x70,0xb4,0x3e,0xbf,0x13,0xf8,0x26,
+ 0x27,0x36,0x7e,0xb4,0x87,0x7d,0xb3,0xc3,0xc0,0xd9,0xe7,0x8a,0x13,0xc1,0x5f,0x1a,
+ 0x14,0xfe,0xd0,0x23,0x40,0x1,0x78,0xcf,0x9a,0x35,0xfc,0xfe,0x6f,0xfc,0x6,0xe6,
+ 0xfd,0xef,0x7f,0x92,0xca,0x8f,0x31,0x8c,0x95,0x42,0xea,0x6f,0xd7,0xc,0xbd,0xb4,
+ 0x40,0x7d,0x11,0xe2,0x49,0x90,0x55,0x68,0x4f,0xc9,0x8a,0x93,0xd9,0x40,0x2a,0xb6,
+ 0x94,0xaf,0x74,0x2c,0xe9,0x3,0xf6,0xb5,0x20,0x51,0xb4,0x90,0x16,0x23,0x78,0x3e,
+ 0xe4,0x7a,0x2c,0x28,0xd4,0x1a,0x8c,0x6d,0xf1,0xc6,0xa8,0xc4,0x50,0x22,0x1b,0x11,
+ 0x1c,0x97,0xc1,0x33,0xfb,0xb9,0xe1,0x9a,0xb3,0xf4,0x5f,0xff,0xe7,0x6e,0xb1,0x6b,
+ 0xd7,0xa8,0xa8,0xd7,0xeb,0xcc,0xcf,0xcf,0x2f,0x7b,0xfa,0xfc,0xfc,0x3c,0x1b,0x36,
+ 0x6c,0xc0,0x71,0x1c,0xe6,0xe6,0xe6,0xc8,0xe7,0xf3,0xe8,0xa4,0x3,0x28,0x8a,0x22,
+ 0x5c,0xd7,0xa5,0x5a,0xaf,0x9a,0xa2,0xf0,0x85,0x4c,0xdd,0xa,0x81,0x20,0x34,0x31,
+ 0x3f,0x98,0x39,0xcc,0xc3,0x73,0x47,0x17,0x80,0xef,0x62,0x57,0x1f,0xed,0x34,0xdc,
+ 0x9b,0xad,0xed,0x4f,0x59,0xf7,0x67,0xdf,0xfb,0xc3,0x8c,0x0,0x39,0xe0,0x7d,0xbd,
+ 0xbd,0x7c,0xec,0xc3,0x1f,0xc6,0x7c,0xe0,0x3,0x4f,0x52,0xf9,0x1,0x86,0x23,0x6b,
+ 0x42,0xa2,0xf7,0x68,0xce,0x7e,0x7b,0x8e,0x56,0x4d,0x30,0xb3,0x1d,0xea,0x7,0x40,
+ 0x7,0x56,0xb1,0xcd,0x2a,0xd4,0xe7,0x92,0x25,0xde,0xb4,0xfd,0xf9,0xad,0xfa,0xa,
+ 0x16,0x40,0x5b,0x90,0x57,0xea,0x81,0x52,0x77,0x92,0xff,0x25,0xa8,0xd0,0x1a,0x8b,
+ 0x36,0x56,0xe1,0x18,0x9b,0x2,0x54,0x64,0xcf,0xe5,0x4b,0x36,0xa2,0x20,0x59,0x53,
+ 0x40,0x7c,0xe1,0xb6,0x9d,0xa2,0x1e,0xf9,0xa8,0x38,0xa2,0xd1,0x68,0xd0,0x68,0x34,
+ 0x28,0x97,0xcb,0x6c,0xdd,0xba,0x15,0xdf,0xf7,0x31,0xc6,0xb0,0xb4,0xb4,0x84,0xe7,
+ 0x79,0x44,0x51,0x44,0x2e,0x97,0x23,0x8,0x2,0xa,0x85,0x2,0xe3,0x13,0x13,0x66,
+ 0x80,0xbc,0xd8,0xdc,0x3d,0x82,0x93,0x98,0x81,0x32,0x9a,0x7,0x67,0xf,0x73,0xfb,
+ 0xd8,0x8e,0x50,0x63,0xbe,0x6,0xdc,0x86,0x8d,0xd6,0x59,0x2f,0xce,0x7a,0xba,0xca,
+ 0x3c,0x4f,0x47,0x80,0x4e,0x51,0xe0,0x87,0x16,0x1,0x7c,0xe0,0xbd,0x5d,0x5d,0xfc,
+ 0xde,0x87,0x3f,0xc,0x1f,0xfa,0xd0,0x93,0x54,0x7e,0xb,0xd8,0xd5,0x17,0x23,0xde,
+ 0xd,0xe7,0xbf,0x23,0x4f,0x38,0x23,0x38,0x72,0x7,0x2c,0xee,0x3,0xa1,0x6d,0x9b,
+ 0x43,0x7d,0xde,0x7a,0xac,0xe7,0x5b,0xe5,0x19,0x1,0x9e,0xb,0x5e,0x8f,0xad,0xef,
+ 0x65,0x42,0xf9,0xea,0x18,0xe2,0x0,0x9a,0x8b,0x2b,0x1d,0xa1,0x5a,0xd9,0xf7,0x14,
+ 0xbb,0x93,0xd2,0x10,0x40,0x82,0x5f,0xb4,0xdf,0xaf,0x63,0x10,0xd0,0x5c,0xa8,0xd1,
+ 0xed,0xeb,0xa5,0xcd,0xeb,0xfa,0x73,0xdb,0x27,0x26,0x7d,0xd3,0xbb,0x46,0x8,0x60,
+ 0x7e,0x7e,0x9e,0xbe,0xbe,0x3e,0xd6,0xad,0x5b,0xc7,0xe1,0xc3,0x87,0x19,0x19,0x19,
+ 0x21,0x8a,0x22,0xea,0xf5,0x3a,0x60,0xc9,0x21,0xdf,0xf7,0x29,0x14,0xa,0xd4,0x1b,
+ 0xd,0xd1,0x5f,0x1e,0xa0,0x1d,0x1,0x34,0xb0,0x75,0xee,0x28,0xb7,0x1f,0xdb,0x1e,
+ 0x47,0x46,0xdd,0xa,0xdc,0xc2,0x8a,0xf2,0xa1,0xb3,0x57,0x67,0xbd,0x3e,0xfd,0x9c,
+ 0x55,0xce,0x1,0x3f,0x1c,0x3,0xe8,0x5,0xfe,0xf8,0x8c,0x33,0xf8,0x85,0x4f,0x7d,
+ 0xa,0x6e,0xba,0xe9,0x49,0x7e,0xda,0x2,0xf0,0xc8,0x86,0x90,0xd2,0xfb,0x24,0x9b,
+ 0xdf,0x94,0x63,0xfa,0x7,0x70,0xf4,0xbb,0xd0,0x18,0x7,0x47,0x82,0xf0,0x6c,0x38,
+ 0xef,0x1a,0xb4,0x80,0x4f,0x24,0x94,0xae,0x31,0x9,0xf2,0xf,0xa1,0x36,0x6f,0x1,
+ 0x9e,0xe3,0x26,0xc6,0xa1,0xed,0xa3,0x97,0x87,0x9c,0x9f,0x70,0x2,0xed,0x8e,0xab,
+ 0xc4,0x56,0x83,0x3a,0xd4,0x17,0x2d,0x71,0x24,0xd,0x93,0x75,0x97,0xf1,0xc3,0x63,
+ 0xb5,0xfe,0x35,0xa3,0xc1,0x7f,0xbb,0xf1,0xa2,0xe2,0x5f,0xff,0xcb,0xdd,0x62,0x22,
+ 0x2e,0xd1,0x52,0xe,0x8d,0x66,0x93,0xc9,0xc9,0x49,0x86,0x86,0x86,0x38,0x7a,0xf4,
+ 0x28,0x71,0x1c,0x13,0x86,0x21,0xd5,0x6a,0x95,0xc1,0xc1,0x41,0x7a,0x7a,0x7a,0x58,
+ 0x5a,0x5a,0xa2,0xd9,0x6c,0x12,0xc5,0x91,0x58,0x5f,0xee,0xc7,0x91,0x96,0x96,0xbe,
+ 0x7d,0x62,0x7,0xf7,0x1e,0xdf,0x17,0xc4,0x46,0x7f,0x16,0xb8,0x9b,0x13,0x7b,0xfd,
+ 0xda,0xb2,0x5a,0x24,0xc8,0xe2,0x80,0xc7,0x24,0x83,0x9e,0x6e,0x3,0xe8,0x5,0xfe,
+ 0x68,0x68,0x88,0xb7,0x7f,0xf2,0x93,0x4f,0x81,0xf2,0x6b,0xc0,0x96,0xc1,0x80,0xfc,
+ 0x4f,0x3b,0x9c,0xff,0x16,0x97,0xf0,0x30,0xcc,0x6e,0x5,0x35,0xf,0xa5,0x2e,0xeb,
+ 0xd5,0xd2,0x59,0x1,0x7b,0xed,0xe5,0xde,0x1a,0x55,0xb,0xee,0xa4,0x9b,0x28,0x57,
+ 0x5a,0xe5,0x3b,0x9,0x1e,0x68,0x2b,0x5c,0xc8,0x95,0x46,0x7c,0x8c,0xa5,0x81,0x5b,
+ 0x55,0xcb,0x9,0xa8,0xc8,0x46,0x6,0x9,0x8d,0xf9,0x2a,0x3b,0x76,0xce,0xd4,0x87,
+ 0x7a,0xcb,0xda,0xcb,0xe5,0x7,0x5e,0x72,0x6e,0x49,0x7c,0xbd,0x1b,0x53,0x6d,0x68,
+ 0xd1,0xd2,0x36,0xab,0x2e,0x2e,0x2e,0x52,0x2e,0x97,0x29,0x95,0x4a,0x78,0x9e,0x5d,
+ 0x7c,0xc2,0xf7,0x7d,0xd6,0xae,0x5d,0x4b,0x77,0x77,0x37,0x4b,0x4b,0x4b,0xcc,0xce,
+ 0xcd,0x51,0x72,0x72,0xf4,0xe4,0x8a,0x38,0x42,0xf2,0x9d,0x89,0x9d,0xdc,0x37,0xb5,
+ 0x5f,0xc7,0x46,0xff,0x7,0x70,0x1f,0x2b,0x54,0x6e,0xbc,0x72,0x51,0x27,0x28,0xb1,
+ 0x93,0x62,0xb3,0x1d,0xc2,0xab,0xe1,0x2,0xe0,0xe9,0x8d,0x0,0xfd,0xc0,0xc7,0x87,
+ 0x87,0x79,0xfb,0xa7,0x3f,0x8d,0x78,0xd3,0x9b,0x9e,0xe4,0xa7,0xc5,0xc0,0x83,0xbd,
+ 0x1,0xfc,0xb8,0xc3,0xe5,0xff,0xcd,0x45,0x4c,0xc1,0xdc,0x2e,0x8,0xa7,0x21,0x5f,
+ 0x5e,0x19,0x36,0xb,0x1a,0x36,0xcf,0xc7,0x91,0x55,0xac,0xeb,0xdb,0xe5,0x5a,0xb,
+ 0x5d,0x36,0xb7,0x7,0x75,0xa8,0xf4,0x40,0xbe,0x68,0x7b,0x62,0x65,0x5b,0xe9,0x49,
+ 0x24,0x8,0x5b,0x2b,0xf8,0xc1,0x49,0x5e,0x77,0x3d,0x6b,0x0,0xc2,0xd0,0x58,0x6a,
+ 0xf0,0xc0,0xa3,0xe3,0x51,0x77,0xb9,0x5b,0xf7,0xc,0x8e,0x96,0xa5,0x57,0x10,0x45,
+ 0x47,0xb1,0x7e,0xb0,0x60,0x8e,0x1c,0x8b,0x85,0x8,0x3c,0x0,0x6a,0xb5,0x1a,0xb3,
+ 0xb3,0xb3,0xe4,0xf3,0x79,0x2a,0x95,0xa,0x71,0xd2,0xeb,0xdf,0xfe,0xdb,0x18,0xc3,
+ 0xd8,0xd8,0x98,0x19,0xf6,0x2a,0xa2,0xe8,0xe6,0xb8,0xeb,0xf8,0x6e,0xee,0x9d,0xda,
+ 0x4b,0xa4,0xd5,0xe7,0x80,0xef,0x25,0xbf,0xba,0xad,0xfc,0x4e,0x4a,0xcf,0xe6,0xfa,
+ 0x4e,0xff,0x27,0x6b,0x20,0x27,0xd,0xb,0x3f,0x5d,0x6,0x90,0x3,0xfe,0x64,0x64,
+ 0x84,0x9f,0xfb,0xd4,0xa7,0x10,0x6f,0x79,0xcb,0x53,0xf0,0x89,0x77,0x77,0x7,0x38,
+ 0x3f,0x2f,0x78,0xc9,0x3b,0x5d,0xfc,0x6,0x4c,0x6c,0x85,0xe9,0x6d,0x10,0xd6,0x57,
+ 0xe8,0xdd,0x76,0x5e,0xf7,0xf2,0x50,0x2a,0xae,0xb0,0x7a,0x52,0xda,0x54,0xa0,0x3c,
+ 0xcb,0x4,0xba,0x39,0x7b,0x5e,0x6b,0x88,0x5a,0x56,0xb9,0x61,0x62,0x1c,0x42,0x82,
+ 0x30,0xd6,0x60,0xa4,0x80,0xda,0x2,0xe4,0x4,0x14,0x2b,0x44,0x11,0x6c,0x3b,0x34,
+ 0x13,0x35,0x9b,0x34,0xce,0xdd,0x34,0x50,0xf1,0x3d,0x57,0x36,0xaa,0xb,0x78,0x39,
+ 0xc9,0xe5,0x6b,0x73,0xf2,0xe8,0x5c,0xdd,0x8c,0x37,0xa,0x22,0x19,0x3,0x20,0x8,
+ 0x2,0x72,0xb9,0x1c,0xb5,0x5a,0xd,0xcf,0xf3,0x70,0x5d,0x3b,0x57,0xb0,0x5a,0xad,
+ 0xd2,0x68,0x34,0x58,0xac,0x55,0xc5,0x35,0x3,0xe7,0xb1,0x65,0xe6,0x20,0xf7,0x4c,
+ 0xee,0xa1,0xa9,0xa2,0x2f,0x0,0xf7,0xb0,0xa2,0xf4,0x74,0x9,0x97,0x2d,0xe7,0xda,
+ 0xcf,0xe1,0x44,0x0,0x98,0x7d,0xdf,0x6a,0x11,0x2,0x78,0x7a,0x22,0x40,0x1,0xf8,
+ 0xb5,0x75,0xeb,0xf8,0xbf,0x3f,0xf1,0x9,0x78,0xd2,0x9e,0xf,0x70,0x4f,0xa5,0x45,
+ 0xfc,0xd3,0xe,0x97,0xbe,0xd3,0xc5,0xd,0xe0,0xe0,0xb7,0xe0,0xe0,0xfd,0x10,0x35,
+ 0xad,0x97,0x96,0x7a,0x2d,0x8a,0x97,0xc9,0xcf,0x69,0x2b,0xfe,0x4,0x7e,0xc4,0x24,
+ 0x58,0x40,0x27,0x11,0x22,0xc1,0x3,0x5e,0x61,0x5,0x7,0x14,0xba,0x2c,0x21,0x14,
+ 0xd6,0x93,0x70,0xef,0x42,0xa5,0x17,0x72,0x25,0x94,0x36,0xec,0xde,0x73,0x38,0x9e,
+ 0x5b,0x6c,0x35,0x2e,0x38,0x7b,0xa8,0x1c,0x23,0xa4,0x89,0x41,0xc6,0x2d,0x72,0xf1,
+ 0x3c,0xb9,0x9c,0xc3,0x70,0xae,0x49,0x18,0xb4,0x96,0xe7,0x16,0x14,0xa,0x5,0x46,
+ 0x47,0x47,0x99,0x9e,0x9e,0xc6,0x71,0x1c,0x72,0xb9,0x1c,0x4a,0x29,0x5a,0xad,0x16,
+ 0x73,0x73,0x73,0x14,0xa4,0xcb,0x58,0x7d,0x81,0xdd,0x4b,0x13,0xd4,0xe3,0xf0,0xab,
+ 0xac,0x28,0x3f,0xd,0x92,0xd3,0xa,0xcc,0x22,0xfb,0xd5,0x50,0x7f,0x36,0x32,0x74,
+ 0x2,0x80,0x4f,0x4b,0x4,0x28,0x3,0x1f,0xec,0xe9,0xe1,0x7f,0xfc,0xf9,0x9f,0xc3,
+ 0xd,0x37,0x74,0xa2,0xa3,0x4f,0x2,0xa2,0xa7,0x96,0xad,0xe5,0x3a,0x73,0xd7,0x79,
+ 0x5c,0xfd,0x4b,0x1e,0x6e,0x8,0x47,0xbf,0x1,0xc7,0xf7,0xda,0xd2,0xcd,0x5d,0x93,
+ 0x90,0x9b,0x4e,0x2a,0x77,0x67,0xbf,0x2b,0x91,0x38,0x86,0xc6,0x82,0xad,0x4,0x1c,
+ 0x3f,0x21,0x75,0x9c,0x24,0xcb,0x7a,0x90,0x73,0x20,0x6e,0x41,0x2b,0xe1,0xa,0xf2,
+ 0x85,0x64,0xd4,0xd0,0x7e,0xf6,0xec,0xd4,0x6c,0x74,0x7c,0x6a,0x61,0xf1,0xc2,0xb3,
+ 0x6,0x7b,0xca,0xf5,0x9,0xa7,0x11,0xf9,0x38,0x71,0x1d,0x27,0xa8,0x61,0xca,0x65,
+ 0xf2,0xbe,0x4f,0x8f,0x1b,0x81,0x8e,0xd0,0xc2,0xae,0x3a,0x52,0x2c,0x16,0xe9,0xea,
+ 0xea,0xe2,0xc8,0x91,0x23,0x74,0x77,0x77,0x93,0xcf,0xe7,0xa9,0xd5,0x6a,0xb4,0x5a,
+ 0x2d,0xc6,0xc7,0xc7,0x8d,0x13,0x1b,0xb1,0xbd,0x39,0x46,0x53,0x85,0xb7,0x60,0x6b,
+ 0xfd,0x30,0x75,0xe1,0x69,0xcf,0x4f,0x83,0x3b,0xd5,0xe1,0x58,0x8d,0x10,0x5a,0xad,
+ 0x22,0x58,0x7e,0xfe,0x54,0x1a,0x40,0xe,0x78,0xe7,0xc0,0x80,0xf8,0x9d,0xdf,0xfa,
+ 0x4d,0xc1,0xd,0x2f,0x91,0xb0,0xd7,0x45,0xb5,0x72,0x81,0x9,0xbb,0x1b,0x46,0x95,
+ 0x5b,0x26,0xca,0xc5,0x26,0x5f,0x88,0xc5,0x99,0xb1,0x70,0x7a,0xf,0xad,0x71,0xdc,
+ 0x5a,0x9,0x1d,0x1b,0xdb,0x96,0x85,0x38,0xc9,0x56,0x76,0xe7,0xaa,0x1c,0xbc,0xca,
+ 0xe3,0xca,0x5f,0xf2,0x91,0x4b,0x30,0x73,0x18,0xaa,0xc7,0x93,0xfc,0xdd,0xc9,0xb0,
+ 0x12,0x83,0x8b,0x2,0xb,0xfa,0x8c,0x59,0x51,0xb8,0x4c,0xe8,0xdf,0xa0,0x9,0xba,
+ 0x69,0x7,0x77,0x7c,0xdf,0x62,0x85,0xfa,0xbc,0x8d,0xe,0xf9,0x12,0xe4,0x2b,0xc9,
+ 0xa0,0x8f,0x80,0xa0,0x8a,0x9,0x9a,0x4c,0x4d,0x57,0xe3,0xfd,0x47,0x67,0x97,0x36,
+ 0xf4,0xe4,0x7b,0xbb,0xa3,0x19,0x67,0xc9,0x2d,0xd9,0x28,0x13,0x46,0x4,0xa1,0x41,
+ 0xe4,0xfa,0x29,0xe5,0xa7,0x28,0xf8,0x8a,0x82,0xef,0xd0,0x68,0x58,0xd6,0xaf,0x52,
+ 0xa9,0x50,0xab,0xd5,0x92,0xb9,0x81,0x2e,0xa5,0x52,0x89,0x7a,0xbd,0xce,0xe2,0xe2,
+ 0x22,0x8d,0x46,0x43,0xd4,0x5b,0x75,0x80,0x5b,0x81,0x3b,0xb0,0x6d,0xab,0x59,0xc5,
+ 0x67,0x15,0x1b,0xa7,0x8e,0x4e,0xde,0x9e,0x35,0x98,0x34,0x7,0x70,0x12,0x0,0xe4,
+ 0x29,0x8e,0x0,0x17,0x77,0x95,0xfc,0x8f,0xfc,0xd2,0x4d,0x97,0x2f,0xfc,0xf2,0xcb,
+ 0x5e,0x5e,0x5d,0x3c,0x38,0x50,0xa6,0x38,0x50,0x92,0xc5,0x42,0x4e,0x14,0x64,0x4e,
+ 0x48,0x89,0x31,0xda,0xe0,0xe6,0x31,0xd,0x10,0xc7,0x27,0x8c,0x69,0xcd,0xcc,0x99,
+ 0x4a,0x34,0xe9,0x15,0x76,0xc7,0xae,0xba,0x6b,0x9d,0x1c,0x9c,0xeb,0x76,0xfc,0xc0,
+ 0x52,0x61,0xb,0xde,0x2c,0x47,0x5f,0xe1,0x72,0xe5,0x3b,0x7d,0xa,0x2,0x26,0xef,
+ 0x85,0xe6,0x94,0xcd,0xf7,0x98,0xe4,0x67,0x8,0x4b,0xeb,0x36,0xdb,0xa0,0xcf,0xb1,
+ 0x21,0x5c,0xba,0x2b,0xa3,0x77,0x69,0x3,0x31,0x6,0xa,0x49,0x49,0x18,0x36,0x2d,
+ 0x6,0xc8,0x15,0xa0,0x67,0x30,0x19,0x0,0x4a,0x6,0x7f,0x82,0x6,0xb4,0x9a,0xe8,
+ 0xfa,0x22,0xb,0x2d,0x1d,0x1f,0x9d,0xa8,0xcf,0x8d,0x16,0xdc,0x81,0x1e,0x4f,0xcb,
+ 0x66,0x5d,0x63,0xa4,0xc1,0x15,0x2,0x15,0x47,0xe8,0x7c,0x85,0x5c,0x6d,0x82,0x30,
+ 0x56,0x2c,0x6,0x2,0x2f,0x5f,0xa4,0xe2,0x48,0xa,0x85,0x2,0xe7,0x9c,0x73,0xe,
+ 0xf,0x3f,0xfc,0x30,0x9e,0xe7,0x51,0x2a,0x95,0xe8,0xea,0xea,0xa2,0x56,0xab,0x71,
+ 0xf0,0xe0,0x41,0x1a,0x8d,0x6,0xc0,0xed,0xc9,0xd1,0xe0,0x44,0x6f,0xed,0xf4,0x98,
+ 0x55,0x6a,0xc4,0xc9,0x91,0xa0,0x6d,0x18,0xa7,0x62,0x3,0xe1,0x69,0x88,0x0,0x39,
+ 0xe0,0xe5,0x17,0x9f,0x7b,0x46,0xff,0xbb,0xde,0xf1,0x33,0x4,0xeb,0xce,0xed,0x91,
+ 0x46,0x80,0xe3,0xe0,0x8,0xf,0x21,0xbd,0x4,0x68,0x3b,0x2,0x69,0x10,0x4a,0xa0,
+ 0xbb,0x6,0x4,0x9a,0x3e,0x1d,0x35,0xfa,0x74,0x7c,0x29,0x35,0xe7,0xed,0x2d,0x39,
+ 0x7e,0xf0,0x50,0x41,0x7f,0xba,0x5b,0x6,0x47,0x5c,0x77,0xcf,0x19,0xe,0x83,0xe7,
+ 0x56,0xa8,0x1d,0x90,0x4c,0x4d,0x43,0x54,0x4d,0x50,0x7c,0x72,0xaf,0x84,0xb3,0x82,
+ 0xd2,0x73,0x79,0x3b,0x74,0xdb,0x49,0xda,0xa5,0xa0,0x8a,0xc1,0x24,0x8c,0xa0,0x4a,
+ 0x9c,0xad,0x4d,0x8,0xb5,0x7,0x7e,0x6a,0x73,0x89,0x91,0x94,0x89,0xf3,0x65,0x76,
+ 0x1d,0x9c,0x8f,0x66,0xe7,0x82,0xf9,0x91,0x81,0xc1,0xbe,0x35,0xd1,0x51,0x19,0xe1,
+ 0xd1,0xcc,0xf5,0x10,0x2f,0xcd,0xe1,0xba,0x3e,0x71,0x18,0x92,0x77,0x1c,0x5c,0x22,
+ 0x9a,0xca,0x21,0x88,0x5,0x95,0xae,0x1e,0xfa,0x4b,0x3d,0x78,0x9e,0x47,0x2e,0x97,
+ 0xa3,0x58,0x2c,0x32,0x38,0x38,0xc8,0xc0,0xc0,0x0,0x8d,0x46,0x83,0xc3,0x87,0xf,
+ 0x33,0x31,0x31,0x61,0x8c,0x31,0xdb,0x81,0xbb,0xb0,0xca,0x6f,0xd7,0xf9,0x69,0xa0,
+ 0xd6,0x56,0x68,0xa7,0x70,0x1f,0xa7,0x1e,0x3b,0x85,0xfc,0x4e,0x11,0xe4,0x24,0xe5,
+ 0xf3,0x14,0x46,0x80,0x7e,0x29,0xc5,0x4d,0x9b,0x2e,0x38,0x97,0x33,0x2e,0xb8,0x98,
+ 0x7a,0xa3,0x85,0x74,0x7c,0xa4,0xe3,0xe1,0x38,0x3e,0xc2,0xc9,0x21,0x1c,0x81,0x50,
+ 0xc2,0x32,0x75,0x8e,0xc4,0x11,0x5,0x4c,0x1c,0xa1,0xa4,0x44,0xb9,0x1e,0x9e,0x56,
+ 0x79,0xd1,0x73,0xc1,0x59,0xf5,0xd6,0x9f,0xd6,0xf3,0x87,0xfe,0xa3,0x21,0xa6,0xbe,
+ 0xdc,0xe5,0x1c,0xfd,0x27,0x49,0xdf,0x7a,0xe8,0x19,0x82,0xae,0x7e,0x3b,0x6c,0x9b,
+ 0x2f,0xd9,0xd2,0xce,0xc9,0x5c,0xba,0x59,0xfe,0xc7,0x2,0x38,0x95,0xb0,0x7c,0x6,
+ 0xab,0xf0,0x28,0x4a,0x46,0x4,0x7d,0x70,0xb,0xe0,0xbb,0xd6,0x20,0x1a,0x4b,0x36,
+ 0x12,0xf8,0x79,0xb,0xf8,0xfc,0x22,0x51,0xa4,0xd8,0xb7,0xf3,0x90,0x9a,0x99,0x6d,
+ 0x2c,0x74,0x77,0xf,0xf4,0xd,0xbb,0x8b,0xae,0xa9,0x55,0xa9,0x16,0xcf,0xc4,0xb,
+ 0x17,0xc8,0x17,0x72,0x78,0xba,0x89,0x32,0x1a,0x57,0x7,0x18,0x99,0xa3,0x4b,0x6,
+ 0xe4,0x3d,0x4d,0x77,0xa1,0x97,0x72,0xcf,0x1a,0xaa,0xd5,0x25,0xa6,0xa7,0xa7,0x19,
+ 0x1a,0x1a,0x62,0xdd,0xba,0x75,0x34,0x1a,0xd,0x76,0xef,0xde,0xcd,0x8e,0x1d,0x3b,
+ 0x8c,0x52,0xea,0xfb,0xd8,0xb5,0xff,0x16,0x58,0x41,0xaa,0xab,0x91,0x37,0xed,0x90,
+ 0x1f,0xa5,0xe,0x95,0x3c,0x66,0x53,0x43,0xa7,0xbc,0xdf,0x89,0x6,0x6e,0xdf,0xac,
+ 0xa7,0xcc,0x0,0xce,0x58,0xbf,0x6e,0xe4,0xba,0x1b,0x5e,0x77,0x35,0xb1,0x32,0x38,
+ 0x4e,0x21,0x31,0x0,0x89,0xe3,0xe6,0x92,0xb9,0xf8,0x8e,0x65,0xea,0x30,0x16,0xa1,
+ 0x1b,0x30,0x8e,0x0,0x21,0x10,0x42,0x62,0x54,0x84,0xc1,0x90,0xcb,0xcb,0x92,0xb8,
+ 0xfc,0xa7,0x4a,0x51,0x2e,0x5f,0x67,0xf7,0x2d,0xda,0x89,0x83,0x82,0x6d,0xd9,0xee,
+ 0xb3,0x23,0x73,0x90,0xa0,0x76,0xec,0x6f,0x69,0xaf,0xb4,0xb1,0xfc,0x18,0xdb,0xd2,
+ 0x2e,0x8e,0x6d,0x74,0xf0,0xfc,0xa4,0x9,0x24,0x69,0x2d,0x8e,0x2,0x68,0x2e,0x25,
+ 0x46,0x12,0x5b,0xe4,0x9f,0x2b,0x5b,0xac,0x60,0xac,0xf1,0xec,0x7d,0x78,0x97,0x3a,
+ 0x72,0x64,0x71,0xb1,0xd2,0x3f,0xd8,0x7b,0x46,0xaf,0xe3,0x7a,0x93,0x7,0xa9,0x77,
+ 0x9d,0x8d,0x68,0x45,0xc4,0x5a,0x51,0xec,0x2a,0x13,0x7,0x2d,0xb4,0xb1,0xb8,0xc3,
+ 0x89,0x5a,0x2c,0x34,0x41,0xa,0x17,0x4,0xc4,0x71,0x84,0xe3,0x38,0x14,0xa,0x5,
+ 0x3c,0xcf,0xc3,0x18,0xc3,0xb1,0x63,0xc7,0xd8,0xb6,0x6d,0x1b,0x41,0x10,0xdc,0xf,
+ 0x7c,0x1b,0xbb,0xc,0x6c,0x9b,0xe2,0x3d,0x15,0xaf,0xdf,0x29,0xcc,0xa7,0xcb,0xc4,
+ 0xd5,0xc6,0x0,0xb2,0x46,0x90,0xdc,0xb0,0xe5,0xc7,0xa7,0x2c,0x5,0xe4,0x80,0xeb,
+ 0xd6,0x8e,0xe,0x70,0xed,0xd5,0x97,0xa0,0x8c,0xb0,0x4a,0x97,0x12,0xc7,0xcf,0xe1,
+ 0x38,0x39,0x30,0x32,0xc1,0x67,0xae,0xbd,0xe9,0xed,0xe5,0x2f,0x1c,0x81,0x54,0x20,
+ 0xb4,0x41,0x9,0x81,0x8e,0x35,0x46,0x3a,0x28,0xc,0xf2,0xf2,0x5f,0x28,0x5,0x83,
+ 0x97,0xcc,0xbb,0x47,0xbe,0xad,0x9c,0x85,0x3,0x25,0xe7,0xc8,0xa3,0x82,0xe1,0x73,
+ 0x6d,0xa8,0xf7,0x7d,0x50,0xda,0xe6,0xff,0xf6,0x48,0x9e,0x8a,0x13,0xf0,0x66,0xc0,
+ 0xc9,0x59,0xa5,0x4a,0x61,0xcf,0x7,0x4d,0x4b,0xec,0xc4,0xc9,0xf8,0xbe,0x70,0xa0,
+ 0xd2,0x67,0x23,0x82,0xeb,0x63,0xa4,0x83,0xd0,0x6,0x24,0x8c,0xef,0x3b,0xa0,0xeb,
+ 0xe3,0x63,0x8d,0xae,0xee,0x33,0xba,0xfa,0xca,0xbe,0x5b,0x9c,0xdd,0x4e,0x24,0x8b,
+ 0xb4,0x44,0x1,0x5a,0x47,0xd0,0xc2,0x47,0x86,0x2d,0x82,0xd0,0xe0,0x17,0x4b,0xb8,
+ 0x32,0xc6,0x48,0x7,0xa9,0x62,0xf6,0x2d,0x78,0x26,0xee,0xd1,0x22,0xc,0x43,0xf2,
+ 0xf9,0x3c,0x3,0x3,0x3,0x0,0xec,0xd9,0xb3,0x87,0x5b,0x6e,0xb9,0x85,0xd9,0xd9,
+ 0xd9,0xed,0xc0,0xd7,0xb1,0xfb,0x9,0xa6,0x95,0x9f,0xf6,0xd2,0x74,0xd8,0x6f,0x7b,
+ 0x7e,0xa7,0x54,0x90,0x4d,0x11,0xe9,0xfa,0x3f,0xad,0xf0,0x8e,0x9e,0xdf,0x56,0xde,
+ 0x53,0x61,0x0,0x95,0xae,0xae,0xd2,0x9b,0x2f,0xbd,0x78,0x13,0x23,0xc3,0x83,0x34,
+ 0x9a,0xa,0xe1,0x48,0x1b,0xfe,0xdd,0x1c,0xa2,0x3d,0x3,0xdd,0x60,0x9,0x96,0xf6,
+ 0xf8,0xbb,0x2b,0x40,0xb,0x84,0x14,0x28,0xa5,0x6d,0x1b,0xbe,0xd6,0xf6,0x8a,0x55,
+ 0x84,0xd3,0x8a,0xf0,0x87,0x2f,0xee,0xd,0xf3,0x7d,0xb3,0xde,0xa3,0xff,0x82,0xb3,
+ 0xb4,0xa5,0xc4,0x91,0x47,0x4,0x7d,0x67,0xc0,0x9a,0x11,0xab,0x44,0xa3,0x6d,0xa8,
+ 0x77,0xb0,0xe4,0x8f,0x74,0xec,0x77,0x44,0x31,0x54,0x93,0xc1,0x1d,0x15,0xdb,0xba,
+ 0x3e,0x5f,0xb6,0xe9,0xc3,0x5f,0xb3,0x42,0xc,0x25,0x7b,0xf8,0x8,0x15,0x83,0xd4,
+ 0x2c,0x8e,0xcf,0xc5,0x87,0xf7,0x4c,0x34,0xf3,0x7d,0xeb,0x73,0xbd,0x7d,0x7d,0x6e,
+ 0x69,0x71,0x3f,0x26,0xc,0x58,0x2a,0x9d,0x85,0x5b,0x3f,0x4e,0x4b,0x1b,0xa,0x5,
+ 0x87,0x28,0x68,0x12,0x2a,0x9f,0x5c,0x4e,0x22,0x5a,0x55,0x54,0xec,0xb2,0xd4,0xc,
+ 0xd9,0x5f,0x2b,0xa,0x59,0xd6,0x88,0x28,0x62,0x78,0x78,0x18,0x29,0x25,0xbb,0x77,
+ 0xef,0xe6,0x9b,0xdf,0xfc,0x26,0xb3,0xb3,0xb3,0xdb,0x80,0xaf,0x61,0x3d,0xbf,0xdd,
+ 0xd5,0x93,0xf5,0xf8,0xec,0xb9,0xb8,0xc3,0xd1,0xe9,0x7c,0xa7,0xca,0x61,0x35,0x10,
+ 0xf8,0x94,0x57,0x1,0x6b,0x87,0x6,0x7b,0xaf,0x7e,0xfd,0x6b,0xae,0x26,0x8e,0xc1,
+ 0x71,0xf2,0x48,0xd7,0x43,0xb4,0x39,0x79,0x91,0xec,0xb8,0xd5,0x9e,0xce,0xde,0x66,
+ 0xb7,0xb5,0xc6,0x18,0x8d,0x41,0xa0,0x71,0xda,0x34,0x5a,0xd,0x0,0x0,0x1f,0x9d,
+ 0x49,0x44,0x41,0x54,0x51,0xc2,0x20,0xa4,0x83,0xd0,0xa,0x83,0x47,0x28,0x40,0x87,
+ 0x11,0x39,0x21,0xfa,0x83,0xb3,0xae,0xaf,0x92,0x2b,0x2e,0xe6,0xe,0x7e,0xa7,0xcc,
+ 0xfc,0x98,0x4b,0xa9,0x4,0xe5,0xfe,0x95,0xb1,0xfe,0x30,0x0,0xcf,0x24,0x7d,0xfd,
+ 0x22,0xb9,0x5,0x31,0x48,0xdf,0x32,0x82,0xbd,0x83,0x80,0x58,0x19,0x27,0x68,0xe3,
+ 0x85,0x76,0x8f,0x80,0x23,0x68,0xd4,0xa2,0x70,0xdb,0xa3,0x63,0x8d,0xc2,0x9a,0x8d,
+ 0xf9,0x35,0x43,0x3,0x7e,0xfd,0xd0,0x36,0x4a,0xde,0x12,0xb3,0xf4,0x60,0xb4,0xc4,
+ 0x8b,0x1a,0x48,0x2f,0x4f,0xde,0xb4,0xa8,0xb,0xf,0xd,0x48,0x15,0xd1,0x32,0x2e,
+ 0x25,0xcf,0x67,0xe7,0x64,0xcb,0xcc,0x45,0xbd,0x62,0xd0,0x71,0x28,0x95,0x4a,0xf4,
+ 0xf5,0xf5,0xb1,0x6b,0xd7,0x2e,0xbe,0xf9,0xcd,0x6f,0x32,0x33,0x33,0xf3,0x30,0xd6,
+ 0xf3,0xa7,0xe9,0xec,0xf9,0x59,0x14,0x9f,0xce,0xe9,0xd9,0x94,0xd0,0x89,0x1b,0x38,
+ 0xd5,0x78,0x40,0xd6,0xf3,0x9f,0xd2,0x8,0x90,0x13,0xe,0x3f,0x79,0xe6,0x19,0x43,
+ 0xbc,0xea,0xe5,0x97,0xa3,0x8c,0x44,0xba,0x39,0xa4,0x48,0xd6,0xd8,0x4d,0x6e,0xb4,
+ 0x11,0x58,0xc0,0xa5,0x59,0xe9,0x4a,0x53,0x86,0x28,0x56,0x8,0x34,0x46,0x82,0xe7,
+ 0x3b,0xc4,0x4a,0x11,0xb7,0xec,0x7f,0x95,0x52,0x13,0x2b,0x41,0xec,0xaf,0xc1,0xef,
+ 0xef,0xa9,0xd4,0x7a,0xcf,0x6e,0x44,0x5d,0xa3,0xb,0xe5,0xfd,0x5f,0xcd,0x33,0x37,
+ 0x59,0xa6,0xbe,0x94,0x74,0xea,0xf4,0xd8,0x10,0xef,0x7a,0xd6,0xc3,0xed,0x74,0x9d,
+ 0xe4,0x27,0x9b,0x14,0x19,0x98,0x94,0x81,0xed,0x21,0x60,0x1d,0x5b,0x2,0xa8,0x50,
+ 0xa0,0xb9,0xb0,0xd4,0x38,0xbc,0xfb,0x68,0x58,0x12,0x94,0xd6,0xac,0xe9,0xf2,0xbc,
+ 0xb9,0x3d,0x74,0xc5,0x53,0x34,0xfd,0x3e,0xe6,0x54,0x9e,0xe1,0x70,0x8e,0x7a,0x53,
+ 0x31,0x90,0x9f,0xa7,0x1e,0xe7,0x8,0xb,0xbd,0x14,0x1a,0xc7,0xf0,0xa5,0xa4,0x5a,
+ 0x1c,0xa6,0x2c,0xaa,0xdc,0xb2,0x33,0x10,0x4b,0xe4,0x38,0xb7,0xa7,0x97,0xb3,0xce,
+ 0x3a,0x8b,0xfb,0xef,0xbf,0x9f,0xbb,0xee,0xba,0x4b,0xb7,0x5a,0xad,0x6f,0x63,0x49,
+ 0x9e,0x66,0x46,0xf9,0xab,0xe5,0xf8,0x36,0xd0,0x8b,0xb1,0xc4,0x50,0xfb,0x79,0x98,
+ 0x3a,0xbf,0x9a,0x81,0xac,0x46,0x0,0x65,0x81,0xe0,0xb2,0x3c,0x59,0x3,0xf0,0x87,
+ 0x6,0xfa,0x7e,0xf2,0xda,0x6b,0x5e,0x44,0xb1,0x58,0x24,0x8c,0x9c,0x64,0xb5,0x4c,
+ 0x2c,0xe8,0x23,0xe1,0xdb,0x45,0xa2,0x85,0xf6,0xa3,0xb1,0x6,0xe2,0x39,0x1e,0xa0,
+ 0x31,0x18,0x74,0x72,0x8d,0xb1,0x54,0x18,0x7,0xb4,0x11,0x18,0xa3,0x90,0x42,0x12,
+ 0x69,0x70,0x4,0xc5,0x60,0xed,0x55,0x92,0x38,0xac,0x97,0x77,0x7d,0xde,0xc1,0x95,
+ 0x85,0xe5,0xd6,0x6d,0x2f,0x6f,0xc3,0xfe,0x9,0x1b,0x39,0x26,0xb3,0x7e,0x5c,0x2f,
+ 0xa9,0xf1,0x45,0xa2,0xf4,0xa4,0x33,0xd8,0x78,0xa0,0x23,0xe2,0xf9,0xe9,0xd6,0xf4,
+ 0xde,0x63,0x91,0x59,0x6a,0x94,0xf3,0xa5,0x5e,0x37,0x57,0x1b,0xa7,0x36,0x33,0x41,
+ 0x77,0xa9,0xc2,0x44,0xe0,0x33,0x50,0x92,0x44,0xf5,0x26,0x39,0x1f,0xb4,0x74,0x68,
+ 0x38,0x7d,0xc4,0x41,0x8b,0xbc,0x84,0xc8,0xb8,0xf8,0xc1,0x1c,0x33,0xcd,0x80,0x89,
+ 0x45,0x45,0x69,0xb4,0xc2,0xc0,0xc0,0x1a,0xb6,0x6c,0xd9,0xc2,0x9d,0x77,0xde,0x69,
+ 0x82,0x20,0xb8,0x15,0x3b,0xa4,0x9b,0x55,0x7e,0x9a,0xcf,0x6f,0x87,0xf5,0xac,0x72,
+ 0xd3,0x75,0x7e,0x3a,0xfc,0x9f,0xaa,0xf5,0xeb,0x54,0xe1,0xff,0x24,0xe5,0x3f,0x69,
+ 0x3,0xf0,0x3c,0xce,0xed,0xee,0x29,0x9f,0xf7,0xda,0x57,0xbe,0x98,0x58,0x9,0x84,
+ 0xe3,0x2d,0x3,0x3c,0x41,0xd2,0x84,0xb1,0x2c,0x49,0xfb,0xfa,0x32,0x61,0xe7,0x20,
+ 0xa5,0x2,0x1c,0xc,0x6,0x21,0xc,0x42,0xa,0x84,0x8c,0x97,0x37,0xe6,0x14,0xc2,
+ 0x49,0x6c,0xc6,0x1,0x62,0xa4,0x70,0xf2,0xc1,0xda,0xab,0x1c,0x13,0xb5,0x1a,0xc5,
+ 0xfd,0x5f,0x37,0x8e,0xd2,0x45,0x94,0x82,0xfe,0x11,0x8b,0xf6,0x9d,0x24,0xb7,0xa7,
+ 0x87,0x75,0xdb,0x83,0x41,0x8,0xd0,0x8e,0x1d,0x34,0x6a,0xd5,0x92,0xca,0xdb,0xc4,
+ 0x7b,0xf7,0xcf,0x37,0x1b,0x71,0x4f,0xa9,0x54,0xca,0xbb,0x79,0x19,0xe1,0x54,0x27,
+ 0xed,0x6c,0x1e,0x3c,0xc2,0xd8,0x50,0xe,0x26,0xa9,0xc5,0x31,0x95,0x92,0x4f,0xd5,
+ 0x5b,0x83,0x5b,0xab,0xd2,0x68,0x29,0xa,0x7d,0x25,0xaa,0x8d,0x98,0x62,0x63,0x8a,
+ 0x7,0x27,0x8b,0xd4,0x62,0xc7,0xbc,0xe8,0xfc,0xcd,0x62,0xeb,0xd6,0x1f,0xb0,0x65,
+ 0xcb,0x16,0x82,0x20,0xf8,0x6,0x76,0x54,0xaf,0x95,0xdc,0xe7,0x2c,0x7f,0x9f,0x5,
+ 0x7b,0x69,0xc5,0x77,0xca,0xfb,0xe9,0x3c,0xdf,0x9,0x2f,0xa4,0x3f,0x9f,0xd4,0xff,
+ 0x4f,0xa7,0x80,0x93,0xe4,0xc9,0x18,0x80,0x23,0x84,0xff,0x5f,0x6,0x7,0xfa,0xb9,
+ 0xf4,0xd2,0x73,0x51,0xc6,0xe0,0x3a,0x8e,0x55,0xbc,0x10,0x9,0x48,0x4b,0xea,0xfe,
+ 0x13,0xd6,0x28,0x52,0x36,0x2a,0x48,0x40,0x4a,0xc,0xa,0xad,0x34,0xc2,0x8,0xa4,
+ 0x90,0x76,0xa3,0x4d,0x40,0x9,0x8d,0x30,0x60,0x74,0x94,0x54,0xe,0x1,0x18,0x90,
+ 0x5e,0xde,0xb,0xd7,0xbf,0xac,0x28,0x9b,0xf3,0xad,0xd2,0xa1,0x3b,0x22,0x7a,0x46,
+ 0x3d,0xc,0xc9,0x54,0x22,0xb1,0xe2,0xf9,0x2a,0xf1,0x76,0x13,0x43,0x10,0xda,0x2a,
+ 0x40,0x1b,0xdb,0x22,0x9e,0xcf,0x11,0x45,0x44,0xfb,0xf,0xcf,0x2c,0x2e,0xc6,0xa5,
+ 0xae,0x91,0x35,0x5d,0x7e,0x3c,0xb5,0x97,0x92,0x6c,0xd1,0x52,0x39,0x8a,0x39,0xc3,
+ 0x9c,0xca,0x33,0x5a,0xa8,0xd3,0xa8,0xb6,0xe8,0x72,0x62,0x62,0xb7,0x87,0x38,0x68,
+ 0x11,0x87,0x4d,0xca,0x8e,0x44,0x84,0x11,0x2c,0xcd,0x91,0xeb,0xef,0xe1,0xf6,0x3d,
+ 0x75,0x9d,0xef,0x1e,0x92,0x3b,0x77,0xee,0x34,0x7b,0x76,0xef,0x16,0xad,0x56,0xeb,
+ 0x3f,0xb1,0xb3,0x78,0x5b,0x58,0xcf,0xef,0xe4,0xb5,0x69,0xaf,0x4f,0x2b,0x3d,0x8b,
+ 0xfe,0xd3,0x29,0x20,0x1b,0x9,0xb2,0xa3,0x80,0xed,0x24,0x9b,0x36,0x82,0x55,0x95,
+ 0xf,0x4f,0xce,0x0,0xdc,0xae,0xae,0xfc,0x4f,0xbf,0xf2,0x65,0x97,0x90,0xcb,0xe5,
+ 0xd1,0x26,0xf1,0xba,0xa4,0xae,0x47,0x26,0x91,0x47,0x1b,0x96,0x3b,0x6e,0x8c,0x6,
+ 0xe3,0x20,0x64,0x92,0x9b,0xb5,0xc6,0x88,0x8,0x15,0x6b,0x1c,0xd7,0xae,0xe2,0xe9,
+ 0xba,0x2e,0x4a,0x6b,0xb4,0xd1,0x48,0x21,0x10,0x46,0xa3,0x5b,0x8b,0xe0,0x4b,0x8c,
+ 0xb1,0x11,0x43,0xfa,0x45,0x2f,0x3c,0xfb,0xd5,0xc8,0xda,0x6c,0xcb,0x9f,0x1d,0xc7,
+ 0xc9,0xf9,0x1e,0xf5,0x5,0xdb,0xde,0x2d,0x9d,0x24,0xc4,0xc7,0xd0,0x4c,0xc6,0x3,
+ 0xfc,0x62,0x42,0x20,0xe5,0xc0,0x75,0x69,0x5,0x2a,0x3a,0x32,0x31,0xb3,0x38,0x33,
+ 0xb1,0x54,0xea,0x1b,0x1a,0xf2,0xb,0xad,0x49,0x22,0x5a,0x68,0xaf,0x9b,0x56,0xb3,
+ 0x1,0x7e,0x11,0x2f,0x6e,0x10,0xb5,0xea,0xb6,0x27,0xb4,0x67,0x90,0x7a,0xbd,0x41,
+ 0x1c,0x2a,0xa6,0xab,0x9a,0xf3,0x47,0xf3,0xcc,0xcd,0x4c,0x92,0xf3,0x40,0xe4,0x4a,
+ 0xec,0x9b,0x98,0x96,0xd3,0xf3,0xc2,0x34,0xc6,0xa7,0x44,0x14,0x86,0x5f,0x4,0x1e,
+ 0xc4,0x72,0xfb,0x6d,0x86,0x2f,0x1d,0xf2,0x3b,0x45,0x80,0xb4,0xd2,0xd3,0x18,0x20,
+ 0x4b,0xf7,0xae,0xc6,0xc,0x76,0x2,0x80,0x9d,0x98,0xbf,0xa7,0xd4,0x0,0x36,0x4b,
+ 0xe9,0x9c,0x7b,0xdd,0xcb,0x2f,0x43,0xa9,0xd8,0x96,0x7b,0x46,0x5b,0xcf,0x47,0x58,
+ 0xc5,0xb,0x48,0x90,0x60,0xe2,0x99,0x1a,0xa4,0x4e,0x2e,0x31,0xc6,0x8,0x41,0xd8,
+ 0x52,0x84,0x71,0x88,0xa7,0xc,0x52,0xba,0x68,0x65,0x30,0x49,0x9e,0x50,0x4a,0x21,
+ 0x85,0x87,0xeb,0xe7,0xd0,0x22,0xc2,0x15,0x12,0xa5,0x93,0xd7,0x4b,0x3,0x5e,0x6b,
+ 0xd3,0x6b,0x90,0x5b,0xff,0x29,0x70,0xc6,0xe,0x78,0xac,0xdd,0x68,0x7f,0x67,0xb3,
+ 0xe,0xa2,0x6e,0x39,0xfe,0x7c,0x19,0xfc,0xa4,0xf5,0x5b,0xa,0xb4,0x32,0x8c,0x1d,
+ 0x39,0xae,0xf6,0xef,0x9b,0x6c,0xce,0xcf,0xd4,0x2a,0x9b,0xd7,0xf5,0xe7,0x4a,0x8d,
+ 0x31,0x4c,0x54,0x25,0x14,0x25,0x5a,0xca,0xc3,0x29,0x94,0xa9,0x7,0x1,0x65,0x19,
+ 0x11,0x6,0x4d,0xba,0xfa,0x7a,0x51,0xcd,0x25,0x9c,0x46,0x93,0x86,0xe8,0xa6,0xab,
+ 0xbb,0x44,0xd8,0x9c,0xa7,0xa5,0x5c,0xca,0x3d,0xdd,0xec,0x99,0x85,0x43,0x73,0x11,
+ 0x8b,0x8b,0x2d,0x1,0xe6,0x3f,0xb0,0x1b,0x3b,0xa4,0x3b,0x78,0x56,0xf3,0xfa,0xb4,
+ 0x82,0xb3,0x8a,0xcf,0x46,0x80,0xec,0x0,0xd0,0x6a,0xde,0x7f,0x52,0x99,0xf7,0x58,
+ 0x4a,0x7c,0x32,0x13,0x32,0xde,0xd4,0x55,0x29,0x99,0x2b,0x2e,0xdb,0x94,0x4c,0x8f,
+ 0x36,0x2b,0x68,0x5b,0x62,0x15,0x2f,0xdb,0x91,0x48,0xda,0xcb,0x73,0x24,0x42,0xcb,
+ 0x64,0x95,0x3b,0xdb,0xa9,0xe3,0x78,0x12,0xe9,0xb8,0x4,0x41,0x8b,0x66,0xab,0x81,
+ 0xd2,0xb1,0x5,0xef,0x12,0x84,0x51,0x88,0x4,0x14,0xa,0x4,0xaa,0x1d,0xe0,0x74,
+ 0x6c,0x69,0xe4,0xee,0xf5,0x5e,0x63,0xf3,0x4d,0x6e,0xd0,0xc,0x97,0x98,0x1b,0x83,
+ 0x56,0xb,0xbc,0x3c,0xa6,0xd0,0x83,0x29,0xf5,0x42,0xa1,0xdb,0xd2,0xc6,0xc9,0xca,
+ 0xdf,0x47,0x8f,0x1d,0xd7,0x3b,0xb6,0x1d,0xa9,0x4f,0x4f,0x35,0xfc,0xde,0xa2,0x9b,
+ 0x13,0x3a,0xa0,0x1e,0x28,0xa6,0x54,0x11,0xb7,0xd2,0x8d,0xaf,0x2,0xb4,0x74,0x28,
+ 0x88,0x26,0xba,0xb9,0x40,0xb9,0x0,0x12,0xcd,0x54,0x2d,0x24,0xc8,0xf7,0x13,0x49,
+ 0x8f,0x61,0x67,0x81,0x86,0xf2,0x18,0xe8,0xaf,0xa0,0xa4,0xcf,0xef,0x7c,0x71,0xcc,
+ 0xec,0x9a,0x68,0x1,0xe6,0x5f,0xb1,0x9e,0x9f,0xa5,0x64,0x57,0xf3,0xf6,0xf6,0x11,
+ 0xb2,0x3a,0x6,0xc8,0x7a,0x7e,0x27,0x20,0x8,0x27,0x1a,0x40,0xfb,0x79,0xa7,0xba,
+ 0xff,0x24,0x79,0xa2,0x6,0x20,0x5c,0xd7,0xf9,0xa9,0xd7,0xbd,0xea,0x4a,0xd7,0x77,
+ 0xac,0x67,0x5b,0xbc,0x67,0x7,0x7a,0xac,0xd3,0xb,0x50,0x49,0x53,0x26,0xa,0xa4,
+ 0xb1,0x6c,0x1b,0xc6,0x62,0x3,0x1d,0x83,0x56,0xb8,0xd2,0x25,0xef,0x39,0x78,0xbe,
+ 0x40,0xa2,0x51,0x3a,0x46,0x45,0x11,0x52,0x1b,0x5c,0x5f,0x20,0x9,0x6c,0xa9,0xa8,
+ 0x35,0x32,0xac,0x5b,0x34,0x21,0x93,0xa5,0xdb,0xa2,0x98,0x66,0xff,0xf9,0xf9,0xea,
+ 0xc6,0x37,0x7a,0x6a,0x61,0xb6,0x49,0xd8,0x80,0xc6,0x22,0x22,0x58,0x80,0x85,0x69,
+ 0x4c,0x63,0xc9,0xb2,0x7f,0x18,0xa6,0x27,0x66,0xf4,0xf7,0xef,0xdd,0xdb,0x38,0x32,
+ 0xa3,0xfc,0xd1,0xe1,0xfe,0x7c,0xc1,0x33,0x84,0xad,0x88,0x16,0x39,0x44,0x65,0x10,
+ 0x15,0x2a,0x84,0x9f,0xa7,0xd6,0x8a,0x91,0x8d,0x5,0x14,0x1e,0xb9,0x52,0x17,0x8d,
+ 0x85,0x39,0xe6,0x55,0x17,0x33,0x2a,0x87,0xdf,0x5a,0x60,0x5e,0xe5,0x91,0x28,0xaa,
+ 0x2d,0xc3,0x2f,0xff,0xf3,0x24,0x5f,0xdb,0x3a,0xd7,0xc4,0x98,0xcf,0x0,0x5b,0x39,
+ 0x31,0xcf,0x67,0x3d,0x3f,0x4b,0xe2,0xac,0xe6,0xf1,0x9d,0x0,0x62,0xa7,0x32,0x6f,
+ 0xb5,0xb0,0xdf,0x11,0xed,0xaf,0x26,0x4f,0xd4,0x0,0x2e,0x10,0x70,0xce,0x1b,0x5e,
+ 0x73,0x15,0xda,0x8,0x4,0x89,0xd2,0xa5,0x44,0x38,0x9,0xfa,0xd7,0xc6,0x56,0x4,
+ 0xc6,0x7a,0xaf,0x68,0xa7,0x43,0x47,0x80,0x91,0x18,0x61,0x0,0x7,0xa3,0x5,0x2,
+ 0x89,0x27,0x4,0x92,0x10,0x54,0x84,0x90,0x2,0x88,0x91,0x3a,0x42,0x6a,0xdb,0x20,
+ 0x23,0x84,0x40,0x79,0x25,0x82,0x50,0x13,0x37,0x42,0xe2,0x30,0x20,0x8a,0x14,0x2a,
+ 0x8c,0x69,0xd,0x5f,0x59,0xa8,0xd,0x5c,0xa6,0xd5,0xf4,0xc1,0x8,0x1d,0x41,0x79,
+ 0xd,0xa2,0x6f,0x10,0x51,0xec,0x2,0x2f,0xc7,0xc2,0x62,0x55,0xdf,0x77,0xcf,0xae,
+ 0xc6,0x91,0x45,0xe1,0xd,0x9e,0x31,0x9a,0xef,0x96,0xd,0xf2,0x22,0x4,0xd7,0xa3,
+ 0x41,0x1,0xc7,0x28,0x4c,0x2e,0xc7,0x92,0xf2,0xe9,0x9,0x27,0x69,0x84,0x9a,0x58,
+ 0x78,0xa8,0x56,0x8b,0xfd,0xb,0x3e,0x3d,0x25,0x7,0x59,0x9f,0xc5,0x2d,0xf7,0x22,
+ 0xe2,0x26,0xca,0x18,0xde,0xfb,0xb9,0x59,0xbe,0xfc,0xfd,0xe9,0x79,0xa3,0xcd,0x67,
+ 0xb1,0x8b,0x36,0x64,0xf3,0xf1,0xa9,0x78,0xfc,0x53,0x1d,0xe9,0x1,0x9f,0xc7,0x93,
+ 0xef,0xb3,0x1e,0xff,0x98,0xde,0xf,0x4f,0x1c,0x3,0xfc,0xc4,0xc0,0x40,0xb7,0x78,
+ 0xe9,0x55,0xe7,0x63,0x10,0x8,0xd7,0xb5,0x43,0xbe,0xc8,0xa4,0xf4,0x4b,0x50,0xbe,
+ 0x6e,0xc7,0xf2,0xa4,0x57,0x4f,0xf8,0xa0,0x62,0x8c,0x89,0xed,0xb8,0x80,0xb6,0xa9,
+ 0x52,0xc7,0x21,0x46,0x47,0x48,0x5a,0x60,0x5c,0x5b,0x38,0x88,0x0,0x63,0x42,0x10,
+ 0xa,0x13,0x2b,0x8c,0xd6,0xc4,0x4a,0xa1,0x23,0x45,0x10,0xda,0xe,0x5d,0x69,0xc,
+ 0xa1,0x56,0x8,0x42,0xa6,0xcf,0x7c,0xa3,0xa1,0xb9,0x14,0x74,0x4f,0x3c,0xea,0xd0,
+ 0x33,0x22,0xc9,0x97,0x30,0xc6,0x30,0x37,0xb3,0x64,0x1e,0xb8,0x7b,0x7b,0xa3,0x6b,
+ 0x60,0x44,0xac,0x29,0xf9,0xb9,0x33,0xbb,0x5,0x5e,0x10,0xa3,0x9c,0x3c,0x5a,0x2b,
+ 0x7a,0x92,0x30,0xaf,0x73,0x7d,0xe4,0x6b,0x7,0x70,0xa2,0x0,0x17,0x43,0x8f,0x13,
+ 0x32,0x59,0x75,0xa8,0x14,0x1d,0xdc,0xe6,0x3c,0x6e,0xbe,0x9b,0xee,0xbc,0x61,0xb6,
+ 0xe5,0xf1,0x97,0x77,0x35,0xf9,0xda,0xd6,0xf9,0x9,0xec,0x3e,0x3e,0xfb,0x58,0x99,
+ 0x62,0x97,0xf5,0xfe,0x4e,0xf4,0x6d,0xc4,0xea,0x39,0x3f,0x8d,0x11,0xd2,0xde,0xdf,
+ 0x29,0xb2,0x74,0x1a,0xec,0x79,0x5c,0xca,0x87,0x27,0x1e,0x1,0xde,0xf4,0xe6,0x37,
+ 0x5e,0x93,0x73,0xbd,0x5c,0x52,0xab,0x3b,0x8,0xc7,0x45,0x38,0xa9,0x26,0x4c,0x92,
+ 0xe6,0x4a,0x1,0xe8,0xc4,0x30,0x4c,0xbc,0x4c,0xff,0x1a,0x63,0xd,0x41,0xab,0x10,
+ 0x6d,0x62,0xb4,0xa,0xec,0xd6,0x2e,0xba,0x1,0xba,0x86,0x34,0x4d,0x8b,0xe4,0x95,
+ 0x42,0x2b,0x45,0xac,0x63,0x62,0x15,0x13,0x84,0x11,0x2a,0x36,0x28,0x25,0x89,0x95,
+ 0x46,0x2b,0x43,0x1c,0x80,0xa,0x74,0xf9,0xd8,0xe8,0x7f,0x69,0xd6,0xdc,0xbe,0x16,
+ 0x73,0x63,0x10,0x47,0x2c,0x2d,0xd4,0xf4,0xf7,0xef,0xdd,0x55,0xf7,0x8a,0xbd,0x62,
+ 0xe4,0xac,0xf5,0xa5,0xa1,0x92,0x40,0x37,0xe6,0x88,0xb4,0x8b,0xa,0x43,0x1a,0xca,
+ 0xa3,0xec,0xc6,0x8,0xaf,0x88,0x99,0x9b,0xa0,0x10,0x54,0xa9,0xc6,0x6,0x2f,0xe7,
+ 0x12,0x79,0x45,0x26,0xe6,0xea,0x48,0xa3,0xa8,0xca,0x1e,0xba,0x4b,0x79,0xa6,0xeb,
+ 0x82,0x4f,0xdf,0xbd,0xc8,0x27,0xbf,0x35,0x3e,0x87,0xdd,0xd5,0x73,0xf,0x2b,0x73,
+ 0xf5,0xb3,0xf5,0xf9,0x6a,0x65,0xdd,0xa9,0x3c,0xbe,0x53,0x99,0xf7,0x58,0xca,0xcf,
+ 0xd2,0xbe,0xa7,0xad,0x7c,0x78,0x62,0x11,0x60,0x33,0x70,0xf6,0xd,0xaf,0xb9,0x6,
+ 0x84,0xc4,0x71,0x3d,0x1c,0xe9,0xdb,0xb0,0x2d,0x12,0xef,0x37,0x36,0xcc,0xdb,0xe5,
+ 0x56,0xc,0x8,0x8b,0xeb,0xd1,0xf1,0x9,0xfb,0xf2,0x6a,0xa3,0x31,0x3a,0x51,0xbe,
+ 0xb6,0x5e,0x8e,0x89,0x6c,0xe6,0xd0,0xd8,0x6d,0x5b,0x92,0x8d,0x1c,0x54,0xa8,0x6c,
+ 0x79,0x18,0xd9,0xf5,0xfd,0xd,0x6,0x69,0x4,0x26,0x32,0x28,0xc,0x2a,0x56,0x68,
+ 0x51,0x58,0x33,0x57,0xb9,0xa8,0xe5,0x85,0x87,0x75,0x30,0x3d,0x23,0x76,0xee,0x9e,
+ 0xa9,0xb9,0x95,0x5e,0x59,0xea,0x5e,0x53,0x9a,0x3c,0x7c,0x8c,0xd1,0xb2,0xa4,0xb1,
+ 0x64,0x68,0x35,0xeb,0xc4,0xc2,0xa3,0xcf,0x6b,0x11,0x16,0xd6,0x93,0x43,0xa3,0xab,
+ 0x13,0x48,0x11,0xe0,0x23,0x29,0x54,0xba,0x98,0x9c,0xf,0xe8,0x2e,0xdb,0x46,0x96,
+ 0x2e,0xdf,0xb0,0x18,0x39,0x7c,0xf4,0xeb,0x63,0xfc,0xdb,0xf7,0x66,0xa6,0x80,0x6f,
+ 0x0,0x87,0x58,0x59,0xaf,0x37,0xd,0xf8,0xd2,0xde,0xdf,0x7e,0xec,0x14,0xfe,0xb3,
+ 0x9e,0x7e,0xaa,0x1a,0x3f,0x9b,0x2,0xb2,0x86,0x90,0x5,0x80,0xa7,0x2d,0x4f,0x24,
+ 0x2,0xfc,0xc4,0x40,0x7f,0xb7,0x7f,0xd9,0x8b,0x36,0xd9,0x35,0xf6,0xa5,0x9b,0xc,
+ 0xe2,0x38,0x8,0x93,0x5a,0xbd,0xb4,0xed,0xfd,0x12,0xbb,0x46,0xbf,0x52,0x18,0xa1,
+ 0x31,0x46,0xa1,0x75,0x8c,0x56,0x31,0x5a,0x87,0x36,0x2,0xe8,0xd0,0xf6,0x3,0x24,
+ 0xe3,0xeb,0xb6,0xa0,0x30,0xcb,0x9b,0x39,0xa8,0xd8,0x92,0x45,0x71,0xb2,0x67,0x8f,
+ 0x1d,0xfb,0xd7,0x76,0xb,0x97,0x64,0x5c,0x1,0xa5,0x50,0x51,0xc8,0x6c,0xe5,0x62,
+ 0x8e,0x37,0x2a,0xfa,0xf0,0xfe,0xc9,0xa6,0x9,0x94,0xd8,0x70,0xe6,0x48,0x79,0x6e,
+ 0x72,0x9c,0x5e,0xe6,0x10,0xc6,0xd0,0x5f,0x72,0x70,0x45,0x8c,0x27,0x42,0x8a,0xbe,
+ 0x83,0x97,0xcb,0x23,0x6b,0xe3,0x98,0xa8,0xce,0x5c,0x20,0xf1,0xba,0xba,0xa9,0x51,
+ 0xa2,0x16,0xb9,0xf8,0x85,0x22,0x3,0x7d,0x5,0x16,0x42,0xc1,0xcd,0x5f,0x3e,0xc6,
+ 0xbf,0x7d,0xef,0xf8,0x38,0xf0,0x15,0xec,0x4a,0x5d,0xe9,0xc5,0x9a,0x3b,0xe5,0xfa,
+ 0x74,0x79,0x97,0xe6,0xf4,0xb3,0x47,0x96,0xe3,0x5f,0xcd,0xfb,0x4f,0x27,0xf7,0x3f,
+ 0x2e,0xe5,0xc3,0x13,0x33,0x80,0xd7,0xdf,0xf0,0xda,0x2b,0xb,0xb9,0xbc,0x97,0x84,
+ 0x7f,0x17,0x21,0x5d,0x90,0xe,0xa6,0x4d,0x44,0xb5,0xbb,0x6d,0xc1,0x7a,0xbd,0x8a,
+ 0xc0,0x28,0x8c,0x56,0xf6,0x2a,0xb5,0x46,0xeb,0x16,0x3a,0xa,0x88,0xa3,0x10,0x1d,
+ 0xb7,0xbd,0xdf,0x92,0x46,0x76,0x53,0x7,0x8d,0x8a,0x63,0xe2,0x28,0x22,0x8c,0x22,
+ 0x94,0xd2,0xc4,0x2a,0xb6,0xbc,0x12,0x22,0x9,0x34,0x6,0x6d,0x34,0xca,0x68,0x62,
+ 0xd,0x2a,0x8c,0x20,0xd7,0x9b,0x3f,0x56,0xcd,0xab,0xa9,0x5a,0x5e,0xf6,0x97,0x44,
+ 0x45,0x4d,0xee,0xa3,0xbb,0x35,0xe,0xf9,0x6e,0xa6,0xab,0x11,0x79,0x5a,0x20,0x5d,
+ 0x86,0xdd,0x45,0x1a,0x14,0x29,0x34,0xa7,0xf1,0x82,0x25,0x2,0x93,0xa3,0x91,0xef,
+ 0x45,0x96,0xfb,0x98,0x9f,0x6f,0xe0,0x9a,0x80,0xbe,0xee,0x22,0x7,0xea,0x5d,0xfc,
+ 0xfe,0x2d,0xf3,0x7c,0xfe,0xde,0x89,0xa3,0xc0,0x7f,0x2,0xf,0x63,0xe7,0x3a,0x76,
+ 0x42,0xfb,0x59,0x8f,0xef,0x54,0xcb,0x77,0xc2,0x1,0x59,0x3,0xe8,0x64,0x54,0x9d,
+ 0xbc,0xfe,0x9,0x85,0xfd,0xb4,0x3c,0xde,0x14,0x70,0x5,0x70,0xee,0xcf,0xfe,0xd4,
+ 0x6b,0x84,0xe7,0x5a,0xa5,0xb,0xe9,0x60,0x84,0x44,0xa,0x93,0x20,0xfd,0x84,0xf,
+ 0x90,0x22,0x9,0xef,0x2a,0x61,0xf0,0xc,0x46,0x1b,0x4b,0x6,0xaa,0x10,0x6d,0x14,
+ 0x5a,0x5,0xf6,0xf5,0x24,0x35,0xb4,0x15,0x6f,0x92,0x5,0x18,0xe3,0x24,0xec,0xab,
+ 0x28,0x46,0x69,0x83,0x30,0x22,0x31,0x1e,0xbb,0xb7,0x8f,0x94,0xa,0x69,0x4,0xb1,
+ 0x32,0xc4,0x51,0x44,0xac,0x14,0x46,0x40,0xd8,0x7f,0xae,0x3b,0x3d,0xb5,0x45,0xe,
+ 0xf5,0xaf,0xa1,0xb1,0xef,0x6e,0xba,0x2a,0xdd,0x2c,0x88,0x2e,0x7a,0xe5,0x18,0x73,
+ 0x75,0x45,0x45,0x34,0x9,0x8a,0x6b,0x71,0xba,0x6,0x70,0x66,0xb6,0x51,0xa3,0xc0,
+ 0x7c,0xae,0x87,0xb5,0x83,0x5d,0xcc,0x4d,0x4d,0xa2,0x9a,0x73,0x8c,0xc,0xf5,0xb1,
+ 0x65,0x5c,0xf0,0xe1,0xcf,0xee,0x62,0xd7,0xb1,0xa5,0x7,0xb1,0x93,0x34,0xa7,0xb1,
+ 0xca,0xcf,0x72,0xf3,0x9d,0xf2,0x7e,0x36,0xb7,0xa7,0x41,0x5e,0xb8,0xca,0xeb,0x9d,
+ 0xca,0xc6,0xd5,0xf2,0x7f,0x27,0x10,0xf8,0xb8,0xe5,0xf1,0x46,0x80,0x1b,0xcf,0x18,
+ 0x1d,0x28,0x6d,0xdc,0x30,0x6a,0xe9,0x5e,0x3,0x26,0x29,0xf9,0x8c,0xd1,0x98,0x36,
+ 0xb,0x88,0x46,0xeb,0x88,0x38,0x6e,0xa1,0xe3,0x96,0x55,0xb0,0x56,0x18,0x21,0x30,
+ 0x26,0x5a,0x51,0xbe,0x8e,0x13,0x30,0xa8,0xec,0x98,0x80,0xd1,0x68,0x65,0xe7,0xcf,
+ 0xc7,0x61,0x8c,0x8a,0x6d,0xf8,0x37,0xca,0x60,0x94,0xc0,0x44,0x76,0x30,0xc9,0x24,
+ 0x4b,0xba,0x29,0x65,0x8,0x22,0x1b,0x29,0xa2,0x38,0x1,0x84,0x51,0x84,0x5b,0x59,
+ 0xe3,0x34,0x63,0xc7,0xcc,0x44,0x3e,0xf3,0x81,0x24,0x72,0xbb,0x88,0x6b,0xb,0x94,
+ 0x8b,0x1e,0xc4,0x1,0x85,0x42,0x9e,0x46,0x7e,0x88,0xb2,0x5a,0x60,0x21,0x3f,0xca,
+ 0xd1,0x46,0x9e,0x72,0xe,0xba,0xd4,0x2,0xa6,0x59,0x65,0xa8,0xaf,0xcc,0xa3,0x93,
+ 0x8a,0xdf,0xfc,0xec,0x5e,0x76,0x1d,0x5b,0x7a,0x0,0xdb,0xc8,0x31,0xc3,0xc9,0x39,
+ 0x3f,0x8b,0xf6,0x3b,0xd5,0xf8,0x69,0x85,0x87,0x58,0x8a,0x78,0xb5,0xdc,0x7f,0x2a,
+ 0xc2,0xe7,0xb1,0xca,0xbe,0x27,0x24,0x8f,0x37,0x2,0x5c,0xff,0xba,0xeb,0xaf,0x2a,
+ 0x17,0xa,0x5,0x8c,0x31,0x89,0xf2,0x22,0xc,0xe,0xc6,0x38,0xa0,0x3,0x6b,0x8,
+ 0x3a,0x42,0xe9,0x8,0xad,0x24,0xc2,0x68,0x3b,0x49,0x47,0x3a,0x96,0xfb,0x37,0x76,
+ 0xf0,0x57,0xeb,0xd8,0x1a,0x40,0xdb,0xa3,0x93,0x23,0x8e,0xb5,0xdd,0x90,0x51,0x69,
+ 0xe2,0x28,0x6,0x21,0x91,0x8,0xb4,0x8a,0x2c,0xbf,0xda,0xfe,0x7f,0x6,0xb4,0x52,
+ 0x84,0xad,0x98,0x28,0x6,0x65,0xc,0x2,0x63,0xd,0x8,0x89,0x97,0x2b,0x30,0x3b,
+ 0xbf,0x48,0x8f,0x5f,0xa0,0x52,0x72,0x98,0x5b,0xa8,0xd3,0xca,0xfb,0xac,0x65,0x9a,
+ 0xaa,0x3c,0x83,0x2e,0x2f,0x20,0x88,0x34,0xb3,0xa1,0xb,0x51,0x44,0xbf,0xf,0xe1,
+ 0xc2,0x22,0xa3,0x3,0x45,0xbe,0x7b,0x50,0xf1,0x3b,0x9f,0x3f,0xcc,0x8e,0x63,0xf5,
+ 0xfb,0xb0,0x2b,0x73,0x2c,0x70,0xe2,0x88,0x5e,0xa7,0x90,0x1f,0x75,0x78,0xec,0x44,
+ 0xeb,0x66,0x43,0x7e,0x76,0xc4,0x2f,0x4b,0xf9,0xae,0x16,0xee,0x9f,0x94,0xe2,0xdb,
+ 0xf2,0x78,0xc,0xe0,0x12,0xe0,0x8c,0x37,0xbc,0xe6,0xc5,0xe4,0xf3,0x9e,0xf5,0x5a,
+ 0xa3,0x50,0x51,0x60,0x15,0x24,0xdd,0x95,0x1d,0x37,0x8d,0xdd,0x55,0x53,0x20,0x31,
+ 0xc2,0xa1,0x3d,0x40,0x6c,0x94,0xb6,0x91,0x40,0xdb,0xc5,0x91,0x8c,0x36,0x68,0x6d,
+ 0x1,0x9e,0xd6,0x6,0x15,0xc7,0x16,0xe9,0xc7,0x6,0x94,0x46,0x4a,0x89,0x36,0x9a,
+ 0x58,0x18,0x62,0x23,0x2c,0x79,0x14,0x6a,0x62,0x6d,0x8,0x83,0x98,0x48,0x87,0x98,
+ 0xc8,0xa0,0x71,0x31,0x5a,0xa1,0x8c,0xc5,0x11,0xc2,0x11,0x14,0xbb,0xfa,0x4d,0x6d,
+ 0x72,0x2f,0x83,0x9e,0x87,0xce,0x75,0xe1,0x78,0x31,0xb2,0x31,0x87,0x29,0xf6,0x13,
+ 0xf8,0x3d,0xb8,0xcd,0x2a,0x63,0x8d,0x2,0x85,0xc6,0x18,0xbd,0x65,0x97,0xa2,0x30,
+ 0xe4,0x4b,0xe,0xff,0xb1,0x23,0x34,0x37,0x7f,0x71,0x4c,0xec,0x9d,0xa8,0xdf,0x3,
+ 0x7c,0x8b,0x13,0xfb,0xf7,0x4e,0x5,0xfa,0xd2,0x61,0x3e,0x4b,0xf3,0xa6,0xd,0x62,
+ 0x35,0xf4,0x6f,0x52,0x8f,0x9d,0x40,0xdf,0xa9,0xea,0xfe,0x27,0x2c,0x8f,0xc7,0x0,
+ 0x6e,0x18,0x5a,0xd3,0xdb,0xbb,0x69,0xe3,0x5a,0x1c,0x29,0x2d,0x5e,0x53,0x1a,0x23,
+ 0x94,0x1d,0xc,0x42,0x22,0x64,0xe2,0xc9,0xca,0xd8,0xbc,0x2f,0x8d,0x1d,0xd2,0x95,
+ 0x2,0x62,0x85,0xc1,0x1a,0x80,0x8e,0x15,0x46,0xa9,0xc4,0xeb,0xc1,0x28,0x83,0x52,
+ 0xa,0x15,0x29,0x1b,0xf6,0x8d,0xc5,0x1,0xc2,0xd8,0x21,0x61,0x54,0xe2,0xd9,0x61,
+ 0x84,0x36,0x86,0x20,0x8a,0x51,0xb1,0x22,0xd6,0x1a,0x61,0x24,0x9a,0x38,0xb9,0x2b,
+ 0x76,0x1f,0x5f,0x29,0x40,0x78,0x39,0x93,0xcf,0xfb,0xc6,0x31,0x52,0x4c,0xcd,0x7,
+ 0x2c,0x34,0xc,0x9b,0x7b,0x2,0x76,0x7,0x43,0x9c,0x51,0x76,0x99,0xd7,0x3d,0x14,
+ 0xcc,0x71,0x3c,0xd5,0xa2,0xc7,0x71,0xa9,0xe4,0x8a,0xfc,0x9f,0x7,0x8c,0xf9,0xd8,
+ 0x7f,0x1e,0x15,0x87,0xa7,0x9a,0x77,0x60,0x27,0x6c,0xd4,0x38,0xb1,0x67,0x3f,0x9b,
+ 0xef,0x3b,0xd1,0xbc,0x59,0xef,0xee,0x64,0x20,0x9d,0xc6,0x7,0xb2,0xca,0x7e,0xac,
+ 0x70,0xff,0x43,0x8f,0x0,0xd7,0xbf,0xee,0xfa,0xab,0xba,0x7b,0xba,0xcb,0x49,0xe3,
+ 0x8d,0xbd,0x5e,0xad,0x63,0xcb,0xff,0x63,0x95,0x61,0xda,0xf5,0x3c,0x6,0xb4,0xb0,
+ 0xe5,0xa0,0x49,0x30,0x82,0x8e,0xd1,0x71,0x60,0xa3,0x87,0x56,0x18,0x15,0xa3,0xe3,
+ 0x44,0xf9,0x71,0xa2,0x7c,0x6d,0xa7,0x4e,0x6b,0xa5,0xd1,0xd8,0xf1,0x81,0x28,0x52,
+ 0xa8,0x18,0x94,0xb6,0xdb,0xb9,0xc5,0x5a,0x61,0x8c,0x40,0x47,0x0,0xc9,0x38,0x84,
+ 0x21,0xd9,0xf4,0xd9,0xe2,0x84,0x42,0xb1,0x18,0xfa,0xb4,0xf2,0x8e,0xef,0x8a,0xa3,
+ 0xb,0x1,0x1b,0x72,0xb,0x48,0xbf,0x88,0x14,0x15,0x8c,0xd0,0x4,0xb5,0x45,0x72,
+ 0xb5,0x49,0xfa,0x73,0x11,0x3d,0xdd,0x7d,0x7c,0xea,0xee,0x45,0xf3,0x87,0x5f,0x39,
+ 0x2a,0xc6,0xe7,0x5a,0xb7,0xb2,0x32,0x61,0x23,0x7b,0xf3,0x3b,0x81,0xb4,0xc7,0x42,
+ 0xfc,0xab,0xd5,0xfd,0xed,0xe7,0xab,0x11,0x3d,0xab,0xa1,0xfc,0xa7,0x2c,0xfc,0xc3,
+ 0xe9,0x1b,0xc0,0x65,0xc0,0x99,0xaf,0x7d,0xf5,0x15,0x94,0x4b,0x36,0xff,0x5b,0xc0,
+ 0xaf,0x41,0xc7,0x36,0xff,0xea,0x38,0x59,0xee,0xdc,0x2a,0xdb,0xb6,0x84,0x19,0x8c,
+ 0x6c,0xd7,0xed,0xa0,0x55,0x82,0xf6,0xe3,0x8,0xa3,0x94,0x55,0x7e,0x18,0xda,0x5d,
+ 0x3c,0x95,0x22,0x8e,0x92,0xdd,0x3b,0x25,0x18,0x63,0x49,0xa4,0x58,0x19,0xb,0xee,
+ 0x54,0x98,0x18,0x82,0x46,0xc5,0x7a,0x99,0x65,0xc6,0x8,0x84,0x1d,0x70,0xb0,0x97,
+ 0xa4,0x4,0xc6,0xd1,0x48,0x9a,0x81,0xa3,0x1b,0xf9,0x7a,0xb5,0x4e,0xec,0xf5,0xb2,
+ 0x6e,0xc0,0x67,0xbf,0x1a,0xe4,0xec,0x72,0x95,0xa6,0x29,0xe1,0x34,0xe6,0x88,0xeb,
+ 0x55,0x7a,0x47,0x46,0xf8,0xe8,0x2d,0xb3,0xe6,0x93,0xb7,0x8e,0x89,0xd9,0x6a,0xf8,
+ 0x15,0xe0,0x5e,0x2c,0x50,0x6b,0x4b,0x7b,0x48,0x33,0x5b,0xa2,0xa5,0x15,0x9a,0x55,
+ 0x7e,0x36,0xe7,0x77,0x62,0x6,0x3b,0x79,0x7d,0xfb,0xdc,0x93,0xe2,0xf7,0x1f,0x8f,
+ 0x3c,0xd6,0x22,0x51,0xed,0x6a,0xfe,0xe7,0x3d,0xcf,0x79,0xf5,0x45,0x17,0x6c,0x98,
+ 0x12,0x86,0xa5,0x28,0xd6,0x42,0xa,0x7c,0xad,0x6d,0xd2,0x75,0x1c,0x23,0xc1,0x24,
+ 0xbb,0x69,0xb7,0x97,0x4f,0x37,0x49,0xed,0xaf,0x2d,0xe5,0x9b,0x80,0x37,0x54,0x64,
+ 0x87,0x8f,0x95,0xb2,0x75,0xbe,0x36,0x44,0x4a,0x11,0x86,0x11,0xb1,0x8a,0x2c,0x16,
+ 0xd0,0x6,0xa1,0x41,0x2b,0xdb,0x2b,0xd8,0xc,0x62,0x74,0x64,0x88,0x82,0xe4,0xfe,
+ 0x6b,0xdb,0xf9,0x63,0x5b,0xc9,0x92,0x39,0xa5,0xed,0x49,0x1a,0x8,0x8c,0xe3,0x40,
+ 0x75,0x3c,0x10,0xb3,0xfb,0x73,0x85,0x62,0x51,0xf4,0xf,0xf4,0xe0,0x14,0x2a,0x2c,
+ 0x36,0xd,0x83,0x65,0x87,0xda,0xc2,0x22,0xb9,0xea,0x31,0xd6,0xac,0xe9,0xe7,0xe3,
+ 0x77,0xb5,0xf8,0xd3,0xaf,0x1f,0xd6,0xb,0xf5,0xf8,0xcb,0xd8,0x55,0x39,0x2,0x4e,
+ 0xe,0xbf,0xd9,0x7a,0xbc,0x53,0xed,0xde,0x7e,0xc,0x3b,0x9c,0xcb,0x62,0x5,0xbd,
+ 0xca,0xe7,0x66,0xa9,0xdd,0xa7,0x14,0xf1,0x77,0x92,0x4e,0x73,0xaa,0xb3,0xaf,0x19,
+ 0xe0,0x6b,0x42,0x88,0x1b,0xda,0xeb,0xe2,0x3b,0x8e,0x8b,0x10,0xcc,0x9c,0x73,0xd6,
+ 0xe8,0xa1,0xb7,0xfe,0xf8,0x2b,0xf3,0x37,0xbe,0xee,0xa5,0x1b,0x7,0x6,0x7a,0xdc,
+ 0x72,0xa9,0x28,0x73,0x39,0xcf,0xd1,0xda,0xd8,0xce,0xa0,0x84,0xd8,0xc3,0x88,0x24,
+ 0x5,0xd8,0x92,0x2e,0x8e,0x15,0x71,0x14,0x13,0x46,0x31,0x3a,0x8a,0x88,0x62,0x45,
+ 0x1c,0x2b,0xab,0xd8,0x84,0x1,0x14,0x52,0xd8,0xc1,0x9f,0x38,0xa6,0xd5,0x54,0xa0,
+ 0xd,0xca,0xa8,0x24,0xda,0x88,0x44,0xf9,0xd2,0x7a,0xbf,0x11,0x68,0xa3,0x93,0x76,
+ 0x34,0x10,0x8e,0x47,0x7c,0xec,0xde,0x60,0x69,0xc7,0x9d,0x7e,0xcf,0x99,0x1b,0xc5,
+ 0xb9,0x23,0x79,0xe,0xd4,0xcb,0x6c,0x2c,0x2e,0x5a,0x63,0x9a,0x3e,0x8,0xc5,0x1e,
+ 0x6e,0xd9,0xef,0xf2,0x81,0xbf,0xdd,0xd6,0xa,0x63,0xf3,0x65,0x56,0xc6,0xf2,0x3b,
+ 0xf1,0xeb,0x9d,0x14,0xba,0x1a,0xca,0xf,0x39,0x31,0xcc,0xa7,0x2b,0x83,0xf6,0xf9,
+ 0xb4,0xc7,0xa7,0xa3,0xa,0x1d,0xbe,0xfb,0x69,0x53,0x3e,0x74,0x8e,0x0,0xe9,0x49,
+ 0xfd,0x6,0xb8,0x12,0x78,0xbb,0x94,0x72,0xd0,0xf7,0x73,0x6c,0xd8,0x70,0x16,0x57,
+ 0x5f,0x7d,0xd,0xe7,0x9f,0x7f,0x41,0xb1,0xde,0x54,0xa3,0x5f,0xf9,0xfa,0x5d,0x83,
+ 0x9f,0xfe,0x3f,0x5f,0xa,0xbe,0xfa,0x8d,0x7b,0xf7,0xf6,0x74,0x97,0xa2,0xe1,0xc1,
+ 0x9e,0x62,0x3e,0xef,0x5b,0xc7,0x34,0xda,0x72,0x4,0x2a,0x41,0xfa,0xca,0xae,0xaa,
+ 0x1d,0x85,0x91,0xf5,0xf8,0x28,0x26,0x8c,0x22,0x4c,0x2c,0xc0,0xac,0x28,0x1e,0x3,
+ 0x2a,0x8a,0x9,0x82,0x98,0x38,0x88,0x8,0xe3,0xa4,0xb,0x48,0xd8,0xc6,0x4e,0x2d,
+ 0x4c,0xd2,0xf1,0x6d,0x68,0x9f,0xb6,0xca,0x37,0xd8,0x79,0x6,0xa8,0x70,0x72,0xbb,
+ 0x2b,0xea,0xc7,0x45,0xff,0xd0,0x10,0xf9,0x7c,0x9e,0xa8,0xd5,0xa2,0xdb,0x6b,0x12,
+ 0x2f,0xcd,0x80,0x90,0x7c,0x69,0x8f,0xcb,0x6f,0xfe,0xe3,0xf6,0x30,0x88,0xcc,0xe7,
+ 0xb0,0xca,0xd7,0xa9,0xdf,0x9c,0x2e,0xc7,0x3a,0x1,0xba,0x2c,0x8b,0x97,0xf6,0xfc,
+ 0xb4,0x11,0x9c,0x8a,0xe2,0xcd,0xd6,0xf9,0x59,0xc3,0x4b,0x5f,0xcb,0xd3,0xa2,0x7c,
+ 0x38,0xd9,0x0,0x44,0xe6,0x6f,0x3,0xfc,0x8c,0xeb,0xba,0x6f,0xec,0xee,0xee,0x29,
+ 0x9c,0x7f,0xfe,0x5,0xdc,0x78,0xe3,0x5b,0x78,0xe3,0x1b,0x6f,0xe2,0xf5,0xaf,0xbf,
+ 0x91,0x6b,0xae,0xb9,0x16,0x21,0xc,0x93,0x93,0x13,0xfe,0xe4,0xf1,0xd9,0xa1,0xaf,
+ 0x7c,0xe3,0x7b,0xde,0xdd,0xdf,0x7b,0xf4,0xe8,0x85,0xe7,0xaf,0x17,0x23,0x43,0x7d,
+ 0x79,0x29,0xa4,0xb0,0xbb,0x6e,0x2b,0x94,0x56,0xc4,0xa1,0x5d,0x57,0x5f,0xc5,0x9a,
+ 0x28,0xb0,0x84,0x8f,0x56,0x9a,0x38,0x6,0xa3,0x14,0x8,0x61,0x47,0xf8,0x22,0x4d,
+ 0x14,0x69,0x82,0x28,0x24,0x8a,0x6c,0xc7,0xb0,0x1d,0x60,0xb2,0xf7,0xc6,0x8,0x81,
+ 0xd3,0x6e,0xfe,0xd4,0xc9,0x85,0x4a,0x2c,0x67,0x20,0x25,0x61,0x10,0xb7,0xd4,0xdc,
+ 0x1,0x57,0x34,0xe6,0xc5,0xba,0xb3,0xd6,0x73,0x74,0x49,0x33,0xea,0xd7,0x9,0xeb,
+ 0x75,0x9c,0xb8,0xc1,0xbf,0x3d,0x1c,0xf2,0x9b,0xff,0x7a,0xa0,0x19,0xc5,0xdc,0x81,
+ 0x6d,0xdb,0x4e,0xdf,0xec,0x2c,0xd2,0x4f,0x47,0x80,0x2c,0xa2,0xcf,0x92,0x3e,0x59,
+ 0x10,0x98,0xc6,0x9,0x9d,0x3c,0x3e,0xfd,0x98,0x56,0x3c,0x9c,0xe8,0xfd,0x4f,0x9b,
+ 0x74,0xda,0x77,0xa6,0x1d,0x1,0xc,0x40,0x3e,0x9f,0xff,0x60,0x4f,0x4f,0xcf,0x65,
+ 0x1b,0x37,0x6e,0xe2,0xfa,0xeb,0x5f,0xc7,0x5,0x17,0x5c,0xc0,0x9a,0x35,0x83,0x78,
+ 0x9e,0x8b,0xeb,0xba,0x6c,0xd8,0x70,0x36,0x23,0x23,0xc3,0x80,0x60,0x69,0x69,0xc1,
+ 0x3b,0x78,0x78,0xac,0xff,0xb,0x5f,0xb9,0xbb,0x7e,0xd9,0x25,0x9b,0x96,0xd6,0x8e,
+ 0xf6,0x97,0x1c,0x21,0x44,0x14,0x2a,0xa2,0x38,0x26,0x8a,0x62,0xc2,0x20,0xb6,0xf5,
+ 0xbe,0xd2,0xa8,0x30,0x4e,0xf5,0x0,0xda,0x7c,0x11,0x5,0x31,0x51,0x18,0x11,0x4,
+ 0x16,0xf,0x8,0xec,0xa2,0xc9,0x3a,0x81,0xfa,0x32,0x69,0x30,0xb6,0x21,0x46,0x24,
+ 0x1d,0xe0,0x49,0x37,0x30,0x76,0xd,0xbe,0x46,0xad,0xda,0x5a,0x38,0xb8,0xc5,0xab,
+ 0x78,0x4a,0xae,0x19,0x5d,0xcb,0xd2,0xfc,0xc,0x43,0x65,0x41,0x63,0x6e,0x9a,0x7f,
+ 0xd8,0xd2,0xe2,0xb7,0xbe,0x38,0x51,0x33,0x86,0xdb,0xb1,0x93,0x34,0xdb,0x6c,0x68,
+ 0x96,0xd9,0xeb,0xc4,0xcc,0x75,0x52,0x7e,0x36,0xd4,0x77,0x6a,0xe6,0x48,0x2b,0x7a,
+ 0x35,0xe5,0x9f,0xa,0xfc,0x3d,0x6d,0x92,0xde,0x81,0x3a,0xfd,0x48,0xf2,0xe5,0x67,
+ 0xf6,0xf4,0xf4,0xbc,0x7b,0x70,0x70,0x68,0xf8,0xaa,0xab,0xae,0xe6,0xba,0xeb,0x5e,
+ 0xc5,0xf9,0xe7,0x5f,0x40,0x57,0x57,0x9f,0xd,0xc1,0x82,0x64,0xb7,0xc,0xbb,0x2e,
+ 0x4e,0xb9,0x5c,0x62,0x61,0x7e,0x9e,0x85,0xc5,0xa5,0xd2,0x2d,0xdf,0xba,0x6f,0x69,
+ 0xfd,0xba,0xa1,0xa5,0xd,0x67,0x8e,0x54,0x30,0x42,0x44,0x61,0x44,0x1c,0x29,0x54,
+ 0x18,0x12,0x29,0x8d,0x8a,0x14,0xda,0xa8,0x84,0x7,0x50,0x44,0x81,0x22,0x6c,0x85,
+ 0xc4,0x61,0x4c,0x9c,0x70,0xfd,0x42,0x1b,0x8b,0xf7,0x84,0x5c,0x9e,0x62,0x20,0xa4,
+ 0x44,0x63,0x27,0x8c,0x58,0xeb,0x38,0x91,0xcd,0x16,0x42,0xd0,0x68,0x34,0xea,0xea,
+ 0xf8,0x8e,0x5c,0xb9,0xab,0x24,0x73,0xa5,0x32,0x45,0x5d,0xc5,0xb4,0x1a,0xfc,0xf3,
+ 0xdd,0xe3,0xfc,0xaf,0xaf,0xcd,0x2d,0x62,0x15,0xff,0x1d,0x56,0xc6,0xf2,0xb3,0x48,
+ 0x3c,0xeb,0xed,0xab,0x29,0x3d,0xcd,0xe1,0xa7,0x23,0x41,0xd6,0x0,0x1e,0x4b,0xf9,
+ 0x9d,0x42,0xfe,0xd3,0xae,0x7c,0x38,0xf5,0xda,0xf3,0xa6,0x54,0x2a,0x5d,0x59,0xa9,
+ 0x54,0xde,0xb5,0x6e,0xdd,0x59,0xf9,0x57,0xbc,0xe2,0x95,0x5c,0x74,0xd1,0x25,0x54,
+ 0x2a,0x15,0x96,0x96,0x16,0x39,0x7e,0x7c,0x82,0xb1,0xb1,0x71,0x26,0x27,0x27,0xd8,
+ 0xb7,0x6f,0xf,0x7,0xe,0xec,0xe7,0xcc,0x33,0xcf,0x20,0xe7,0xe7,0x99,0x9e,0x3a,
+ 0x4e,0xb5,0xd6,0xe8,0xba,0xed,0x8e,0x87,0xea,0x17,0x9d,0xbf,0xa1,0xb1,0x76,0xa8,
+ 0xbf,0xa8,0xa2,0x58,0x44,0x61,0x44,0x14,0xda,0xdf,0x1c,0x5,0xc9,0x8,0x5f,0x14,
+ 0x11,0x5,0x11,0xb1,0xd2,0xc4,0x26,0x21,0x86,0x34,0xb6,0x92,0x30,0x22,0x59,0xbf,
+ 0xc1,0x24,0x17,0x68,0x43,0x3e,0x32,0x69,0x3d,0xef,0xb0,0x59,0x93,0x74,0x1c,0x96,
+ 0xe6,0xa6,0xab,0x7e,0x30,0x91,0xef,0xed,0x29,0x3b,0x7d,0x8d,0x43,0x38,0xd2,0xf0,
+ 0xd9,0xbb,0xa7,0xf9,0xdf,0x5f,0x9b,0x5b,0x34,0x76,0x49,0x96,0xbb,0xe8,0xbc,0xf7,
+ 0x6e,0x27,0xe5,0x77,0x2a,0xf3,0x56,0xb,0xfd,0x69,0xc0,0x97,0xf5,0xfa,0xd5,0x6,
+ 0x77,0x3a,0x95,0x79,0x3f,0x14,0xe5,0xc3,0xca,0xee,0x13,0x69,0x69,0x1b,0x83,0xe3,
+ 0x79,0xde,0x4f,0x74,0x75,0x75,0xdf,0x78,0xc1,0x5,0x17,0x71,0xdd,0x75,0xd7,0x33,
+ 0x32,0x32,0x8a,0xd6,0xb0,0xb8,0x38,0xc7,0x8e,0x1d,0xdb,0xd9,0xb2,0xe5,0x1,0x76,
+ 0xed,0xda,0xce,0xcc,0xcc,0x14,0x77,0xdd,0xf5,0x5d,0x16,0x17,0x17,0xe9,0x1f,0x58,
+ 0x3,0x8,0xa6,0xa6,0x8e,0x13,0xc5,0xaa,0xf2,0xcd,0xef,0x3c,0x18,0x5f,0x7d,0xc5,
+ 0xe6,0xb0,0xbb,0x52,0xca,0xa9,0x58,0x89,0x30,0x52,0xb6,0x15,0x3c,0x8a,0x21,0x82,
+ 0x58,0x29,0x3b,0xd3,0x3b,0x51,0x85,0x91,0x96,0xc8,0xc1,0x11,0x18,0x48,0x96,0x50,
+ 0x35,0x8,0x99,0x34,0x9f,0x62,0x12,0x8e,0x81,0x95,0xd9,0x3f,0x99,0xcb,0x9f,0xde,
+ 0xf7,0x50,0x60,0x6a,0x53,0xf9,0xd,0xc5,0x9a,0x74,0x54,0xc0,0xfb,0xff,0xed,0x38,
+ 0x7f,0xf1,0xdd,0xd9,0xa3,0x6,0xfe,0x15,0xdb,0xbc,0x99,0xde,0x73,0x27,0xcd,0xe9,
+ 0x77,0x2,0x78,0x9d,0xce,0x75,0xe2,0xf3,0x3b,0xf5,0xf3,0xa7,0xcb,0xbe,0x6c,0x4,
+ 0xe8,0xe4,0xf9,0xf0,0x43,0x54,0x3e,0xac,0xae,0x7c,0xd,0x9c,0x19,0x4,0xc1,0x65,
+ 0xc6,0x68,0x7a,0x7a,0xfa,0xa8,0x54,0xca,0x38,0x8e,0x24,0xc,0x5b,0x34,0x9b,0x41,
+ 0xb2,0xe8,0x3,0x1c,0x39,0x72,0x98,0x83,0x7,0xf7,0xb3,0xb0,0x30,0xcf,0xee,0xdd,
+ 0xbb,0xb8,0xff,0xfe,0x7b,0x39,0x7a,0xf4,0xc8,0xf2,0x7,0x36,0x1a,0xad,0x9e,0xff,
+ 0xf9,0xfb,0x9f,0x69,0xcc,0x2d,0xd4,0x95,0xd2,0xda,0xe,0xf1,0xc6,0x1a,0x13,0x1b,
+ 0x5b,0x6,0x1a,0x43,0x32,0x29,0xdc,0x4e,0xf,0x33,0x62,0x25,0xbf,0x63,0x73,0xff,
+ 0xf2,0xc8,0xa3,0x90,0xd6,0x10,0x56,0x13,0x21,0xd0,0x71,0x84,0x13,0xd7,0xf3,0xba,
+ 0x59,0x97,0x93,0x61,0x89,0x5f,0xfd,0xdc,0x2,0xff,0xb9,0x75,0xe9,0x28,0xf0,0x79,
+ 0xe0,0x0,0x27,0x4f,0xd0,0xec,0xa4,0xb0,0x4e,0x8a,0x5d,0x4d,0xe1,0xd9,0x68,0xb1,
+ 0x5a,0xce,0xef,0x94,0xef,0xe9,0xf0,0xf7,0xf,0x55,0xb2,0xcb,0x8f,0xa7,0x1,0xe0,
+ 0x59,0x4a,0xa9,0x97,0x7b,0x9e,0xc7,0xc8,0xc8,0x8,0xe5,0x72,0x17,0x61,0xa8,0x98,
+ 0x98,0x98,0xe0,0xf0,0xe1,0x83,0x4c,0x4e,0x8e,0x33,0x3e,0x3e,0xce,0x81,0x3,0xfb,
+ 0xd9,0xbb,0x77,0x2f,0x95,0x4a,0x85,0x4a,0xa5,0x8b,0xe9,0xe9,0x29,0x16,0x17,0x17,
+ 0x4e,0xf8,0x92,0x9d,0xfb,0x8e,0xf5,0x7f,0xe3,0x3b,0xdf,0x3f,0x5e,0xab,0x6,0x4a,
+ 0xa9,0x64,0x14,0xd0,0x28,0x8c,0x4,0xa5,0xad,0xc7,0x2f,0xbb,0x83,0x0,0x8c,0x41,
+ 0x6a,0x6d,0xa7,0xf1,0xa3,0x97,0xef,0x90,0xe8,0x98,0xa9,0x52,0x62,0x60,0xfe,0xf8,
+ 0x58,0xd8,0x57,0x11,0xbe,0xec,0x19,0x10,0x1f,0xf9,0xdc,0x11,0x6e,0x79,0x64,0xf1,
+ 0x28,0xb6,0x7f,0xef,0x20,0x2b,0x9b,0x2d,0x64,0x51,0x79,0x27,0xe5,0xa7,0x3b,0x76,
+ 0xd2,0xe5,0x5d,0x16,0xe8,0x65,0x4b,0xc4,0x4e,0x21,0xfe,0x54,0xb5,0xfd,0x33,0xa6,
+ 0x7c,0x38,0x71,0xff,0x59,0x58,0xb9,0xbb,0x2e,0x70,0x2e,0xb0,0x76,0xcd,0x9a,0x61,
+ 0xce,0x3a,0x6b,0x23,0xb9,0x5c,0x81,0xe9,0xe9,0x9,0x1e,0x79,0x64,0x2b,0xf,0x3d,
+ 0xf4,0x7d,0x8c,0x31,0xdc,0x7d,0xf7,0x9d,0x34,0x1a,0x75,0xba,0xba,0xba,0x51,0x2a,
+ 0x66,0x69,0x69,0x71,0xb5,0xef,0xf1,0x3f,0xf1,0x57,0x5f,0xa8,0xbc,0xf2,0xaa,0x4b,
+ 0x44,0xa9,0x98,0x43,0x25,0x3d,0x7d,0x16,0xe1,0x4b,0xdb,0x0,0x22,0x40,0x1a,0x83,
+ 0x14,0x12,0x9d,0x6c,0xa3,0xa6,0x21,0x69,0x11,0x3f,0x15,0x5f,0x65,0x81,0x9f,0xe7,
+ 0x3a,0xa0,0x23,0x82,0xda,0x4c,0xe3,0xd1,0x3d,0x53,0xa5,0xcf,0xdf,0x73,0x4c,0x3c,
+ 0x7c,0x60,0xfe,0x30,0xf0,0x5,0xec,0x6e,0x1b,0xc9,0xc4,0xc4,0x93,0xbc,0xb2,0xd3,
+ 0xa0,0x4d,0x7a,0x24,0x2f,0x5b,0xce,0xa9,0xd4,0xeb,0xd9,0x12,0x31,0x9b,0xe3,0xd3,
+ 0xcf,0xe1,0x19,0x42,0xfa,0xa7,0x92,0xec,0x16,0xe4,0x60,0x2f,0x68,0x4,0x78,0xa9,
+ 0xeb,0xba,0x6c,0xda,0xb4,0x89,0xb5,0x6b,0xd7,0x12,0x86,0x21,0xdb,0xb6,0xfd,0x80,
+ 0xfb,0xee,0xbb,0x87,0x66,0xb3,0xc5,0xfe,0xfd,0x7b,0x71,0x5d,0x8f,0xb5,0x6b,0xcf,
+ 0xe4,0xf0,0xe1,0x83,0x0,0x27,0xed,0x9a,0x95,0x96,0x46,0x2b,0xec,0xba,0xed,0xee,
+ 0x7,0xa7,0x5e,0xf7,0xf2,0x2b,0x6,0x96,0x37,0x4e,0x84,0xa4,0xb3,0x7,0x94,0x31,
+ 0x48,0xe1,0x2c,0x83,0x3f,0x8b,0xfe,0x57,0x57,0xbc,0x10,0x2,0x47,0x4a,0x5c,0xd7,
+ 0xa1,0x11,0x4,0xdc,0x7b,0xff,0xe,0xee,0xd9,0xf2,0x28,0xbb,0x76,0xee,0xed,0x99,
+ 0x5d,0xac,0x31,0x57,0x8b,0x16,0xb0,0x61,0xff,0x58,0xf2,0x96,0x6c,0x99,0xf7,0x58,
+ 0x24,0x4f,0x27,0xd0,0xd7,0x89,0xde,0x3d,0x55,0xb9,0x97,0xf5,0xf6,0xf4,0x39,0x78,
+ 0x86,0x95,0xf,0x2b,0x11,0xa0,0x7d,0xa7,0x25,0x96,0xb,0x5f,0x7,0xbc,0xaa,0xb7,
+ 0xb7,0x8f,0xf5,0xeb,0x37,0x52,0x28,0x94,0x19,0x1b,0x3b,0xc6,0xfd,0xf7,0xdf,0xc7,
+ 0x81,0x3,0xfb,0xf1,0x7d,0x9f,0x83,0x7,0xf,0x12,0x45,0x11,0xb,0xb,0xf3,0xa7,
+ 0x54,0x7c,0x5a,0xfe,0xf1,0xf3,0xb7,0x45,0xd7,0x5d,0x7d,0x9,0x8e,0xe7,0xda,0xe6,
+ 0x8d,0xf6,0x28,0x1e,0x2e,0x8e,0x54,0x16,0x8,0x26,0xdb,0xb6,0x75,0x84,0x77,0x49,
+ 0x49,0x28,0x85,0x60,0xa9,0xd6,0x60,0xcb,0xb6,0x3d,0xdc,0xb3,0x65,0x7,0x8f,0xee,
+ 0x39,0x44,0xb5,0xd6,0xa0,0xd1,0x6c,0x4d,0xc4,0xb1,0xde,0x5,0xec,0xc2,0x76,0xf0,
+ 0xb4,0x73,0x51,0xd6,0x23,0xd3,0x6,0x90,0xf5,0xee,0x4e,0xad,0x5a,0x9d,0xc6,0xf0,
+ 0xdb,0x7f,0xa7,0x39,0xfd,0x4e,0x83,0x3a,0xab,0x11,0x3a,0xcf,0xb8,0xf2,0x61,0x65,
+ 0xf,0x7a,0x52,0x8f,0x3e,0xb0,0xc9,0x71,0x9c,0x75,0x23,0x23,0x23,0x8c,0x8e,0xe,
+ 0x53,0xad,0x2e,0xb1,0x63,0xc7,0x23,0xec,0xde,0xbd,0x8b,0xae,0xae,0x5e,0xb6,0x6e,
+ 0x7d,0x90,0x56,0xab,0x9,0xc0,0x69,0xea,0x1e,0x80,0x85,0x6a,0x7d,0xb8,0x51,0x6f,
+ 0xc5,0xe5,0x42,0xd1,0x37,0xda,0x2e,0xce,0x69,0xef,0x94,0x5e,0xe6,0x15,0x56,0x13,
+ 0x63,0xc,0x53,0x33,0x8b,0xdc,0xf7,0x83,0x9d,0xdc,0xf5,0xc0,0x76,0xb3,0x73,0xef,
+ 0x11,0xe2,0x38,0x56,0x71,0xac,0x26,0x62,0xad,0x77,0x0,0x8f,0x60,0x9b,0x37,0xda,
+ 0xb4,0x6c,0xa7,0x9a,0x3b,0x8d,0xca,0x3b,0x1,0xb8,0x53,0x75,0xee,0xa4,0x73,0x7c,
+ 0xf6,0xef,0x4e,0xde,0x9f,0x36,0x0,0x52,0xe7,0xd2,0x6c,0xdf,0x33,0x2e,0xe9,0xe1,
+ 0xe0,0x36,0xfa,0x1f,0x2,0x5e,0x1,0x50,0x28,0x94,0x28,0x16,0x4b,0xcc,0xce,0x1e,
+ 0xe7,0xee,0xbb,0xef,0xa0,0x56,0xab,0xb3,0x77,0xef,0xee,0x53,0xe5,0xfa,0xc7,0x12,
+ 0xe7,0x1b,0xdf,0x7d,0x68,0xec,0xe7,0xde,0x72,0xfd,0x3a,0xe9,0x8,0x94,0x59,0x26,
+ 0xf0,0x96,0x27,0x8f,0xd9,0x89,0x9c,0xda,0x32,0x85,0x5a,0x33,0x36,0x39,0xc3,0x7d,
+ 0x3f,0xd8,0xc5,0x5d,0xf7,0x3d,0xa2,0xf6,0x1e,0x1a,0x37,0xda,0xe8,0x10,0xc3,0x41,
+ 0x6d,0xcc,0x4e,0x2c,0xaa,0x5f,0x64,0xc5,0xb,0xd3,0x37,0x5d,0xa5,0xce,0xa5,0x95,
+ 0xdf,0x49,0xe9,0x59,0x8f,0x4f,0x87,0xfc,0xd3,0x41,0xf9,0x59,0x3e,0x21,0x1d,0xe6,
+ 0x61,0xf5,0x28,0xf0,0x8c,0x4b,0x36,0x5,0x68,0x60,0x18,0x78,0xb5,0x52,0x8a,0x6a,
+ 0x75,0x91,0xd9,0xd9,0x59,0x76,0xec,0xd8,0xc6,0xd8,0xd8,0x31,0x8e,0x1f,0x9f,0x64,
+ 0x69,0x69,0x9,0xa5,0x9e,0x98,0x11,0x7,0x41,0xc4,0xad,0x77,0x6e,0xd1,0x3f,0xff,
+ 0x13,0xd7,0x5b,0x3c,0x2f,0xed,0x57,0xb,0x20,0x56,0x9a,0x20,0x8c,0x68,0xb4,0x2,
+ 0xf6,0x1f,0x9e,0x60,0xcb,0xc3,0xbb,0xb9,0xf3,0xfe,0x47,0xc2,0xc9,0xe9,0x79,0x85,
+ 0x4d,0x4b,0xfb,0xb0,0xa1,0x7d,0x3f,0x76,0xe1,0x85,0xf6,0x75,0x67,0x73,0x6c,0xf6,
+ 0xb1,0xad,0xa8,0x6c,0x18,0xef,0x14,0xe2,0xd3,0x0,0x30,0x4d,0xea,0x64,0x95,0xdf,
+ 0x29,0xd7,0x77,0xf2,0xfe,0x67,0x15,0xe0,0xeb,0x24,0xed,0x14,0xd0,0x3e,0x5c,0xe0,
+ 0x1c,0x60,0xbd,0x5d,0xe2,0x74,0x98,0x7b,0xef,0xbd,0x9b,0x9d,0x3b,0xb7,0x33,0x31,
+ 0x31,0xce,0xd2,0xd2,0xc2,0x69,0xe7,0xfb,0xd5,0x64,0x7a,0x76,0xa1,0x5f,0x6b,0xa3,
+ 0x7d,0xcf,0x91,0xad,0x20,0xa4,0xd1,0xa,0xa8,0xd6,0x9a,0x1c,0x38,0x32,0xc1,0xfd,
+ 0x5b,0x77,0x71,0xfb,0xdd,0x5b,0x5b,0xcd,0x20,0xc,0xb1,0xe1,0x7c,0x3f,0xb0,0x1b,
+ 0x3b,0xb,0x47,0xb1,0x3c,0xd5,0xa4,0xa3,0xe2,0x3b,0x29,0x27,0x8b,0xdc,0x57,0xcb,
+ 0xf7,0x9d,0x14,0x9f,0x8d,0x18,0x8f,0x35,0x88,0xd3,0x7e,0xe,0x27,0x1a,0x61,0xfb,
+ 0xf9,0xb3,0x4e,0xf9,0x70,0x62,0xa,0xd0,0xc0,0x0,0xf0,0x2a,0xb0,0x60,0x6b,0x7e,
+ 0x7e,0x8e,0x3,0x7,0xf6,0x51,0xad,0x56,0xa9,0xd5,0xaa,0x44,0x51,0xfc,0xa4,0xbf,
+ 0x50,0x6b,0x2a,0x5b,0x1e,0xd9,0x5b,0xaf,0x94,0xa,0xa5,0xed,0x7b,0xe,0xf1,0xc0,
+ 0xc3,0x7b,0xcc,0xf,0x1e,0xdd,0x57,0x8f,0x63,0xd5,0xc2,0x82,0xb6,0xed,0x58,0xa5,
+ 0x4f,0x91,0x70,0x82,0xc9,0x75,0xb6,0xc7,0x2d,0x3a,0x79,0xd5,0x6a,0x5c,0x7b,0x27,
+ 0x84,0xdf,0x29,0x2,0x74,0x1a,0xed,0xcb,0x1a,0x4e,0x56,0xd9,0xd9,0x94,0xd3,0xa9,
+ 0xdc,0xcb,0xfe,0xfd,0xac,0x13,0x81,0x5,0x7d,0xed,0x1a,0x79,0x33,0xf0,0x65,0xe0,
+ 0xec,0xa7,0xef,0x1b,0x5,0xe5,0x62,0xae,0x5e,0xab,0xb7,0x2,0x6c,0xd3,0xe5,0x34,
+ 0x36,0xbc,0xef,0x5,0x8e,0x63,0x95,0xdd,0x56,0xb8,0x61,0xc5,0xeb,0xd3,0x37,0x32,
+ 0xab,0x8c,0xb4,0x12,0xd2,0xde,0x9a,0xee,0xbb,0xcb,0x76,0xea,0x74,0x1a,0xe4,0x49,
+ 0x47,0x86,0x4e,0xde,0x9f,0xd,0xf9,0xa7,0x43,0xee,0x3c,0x6b,0x95,0xf,0x27,0x46,
+ 0x0,0x17,0xd8,0xc0,0xd3,0xa7,0xfc,0x26,0xb0,0x88,0x31,0xb,0xb5,0x7a,0x6b,0x1c,
+ 0xab,0xf0,0x3,0x58,0xaf,0xf7,0xb0,0xa,0x6f,0x1b,0xe3,0xf2,0x70,0x34,0x9d,0x1,
+ 0x54,0x27,0x2f,0xec,0x14,0xaa,0xd3,0x8a,0xd,0x39,0x51,0xc1,0x2a,0x73,0xbe,0x53,
+ 0xc8,0x5f,0x2d,0xcf,0x9f,0x2a,0xc7,0x3f,0x67,0x94,0xf,0x2b,0x18,0xc0,0x60,0x77,
+ 0xfb,0x78,0xc5,0x53,0xfc,0xf9,0xb,0xc0,0x5c,0x72,0x1c,0xc6,0x2a,0xfc,0x30,0xd6,
+ 0x18,0xfc,0xe4,0xfb,0xb,0x9c,0x48,0x42,0x69,0x4e,0x1c,0x93,0x80,0xce,0x6,0x91,
+ 0xd,0xf7,0x9d,0x8e,0x4e,0x25,0x5e,0xd6,0x0,0x56,0x53,0x7c,0xb6,0xd4,0xeb,0x84,
+ 0xf8,0x9f,0xd3,0xca,0x7,0x7b,0x63,0xf3,0xd8,0x8b,0xdd,0x80,0x6d,0x8a,0x5c,0x65,
+ 0xe1,0xfd,0xd3,0x92,0x18,0x3b,0x67,0xfe,0x20,0x56,0xd9,0x33,0xc0,0x2c,0x16,0xd0,
+ 0x9,0xac,0xa7,0x7b,0xb0,0xbc,0xef,0x7d,0x9a,0x80,0xca,0x5e,0x57,0x5b,0xb2,0x9e,
+ 0xdf,0xbe,0xf1,0x59,0x6,0xae,0x93,0xf2,0x3a,0xe5,0xfa,0x4e,0xf9,0xbd,0x13,0x9b,
+ 0x97,0x8e,0x26,0x9d,0xca,0xcc,0x4e,0x2c,0x5f,0xf6,0x7a,0x9f,0xf5,0x92,0x2e,0x3,
+ 0x5d,0x9e,0x98,0xf2,0x67,0x80,0x47,0xb1,0x88,0xfd,0x18,0xd6,0xdb,0x17,0x80,0x3a,
+ 0xc9,0x32,0xce,0xac,0x84,0xf8,0x74,0x2e,0xef,0xe4,0xe9,0x6d,0x69,0xdf,0xc4,0xf4,
+ 0xa4,0xc,0x38,0xf1,0xe6,0x77,0xf2,0xd2,0xf4,0xf3,0x34,0x78,0xeb,0x94,0xe7,0xb3,
+ 0x58,0x20,0xd,0x26,0xb3,0xe1,0x3f,0xcb,0xe8,0x65,0x8f,0x6c,0xdd,0xff,0x9c,0x91,
+ 0x76,0x53,0x84,0xc4,0x2,0xb2,0x3b,0x80,0xeb,0x4e,0xe3,0x7d,0x3b,0x80,0x6d,0xc0,
+ 0x4e,0x2c,0x5a,0x5f,0x4c,0xde,0x1f,0x62,0x43,0xbb,0xcf,0xc9,0x4a,0x87,0xce,0xca,
+ 0x87,0x13,0x79,0x88,0x74,0x3a,0x48,0x1b,0x40,0x3a,0xd7,0x77,0xca,0xf9,0x59,0xb6,
+ 0x2e,0xcd,0xfa,0x65,0xeb,0xfa,0xf4,0x7b,0x56,0x43,0xf8,0x59,0x52,0x27,0x8b,0xf0,
+ 0x4f,0x45,0xf3,0x3e,0x67,0x24,0x1d,0x1,0x16,0xb1,0xc3,0xa6,0xd7,0x75,0xf8,0x7f,
+ 0xb3,0xd8,0xce,0xd9,0x2d,0x58,0xc4,0x3e,0x8f,0x55,0x78,0x1d,0xab,0x60,0x1f,0xbb,
+ 0x6f,0x40,0x3b,0xaf,0x67,0xeb,0xf4,0xec,0xd1,0xe,0xff,0xe9,0xdc,0xde,0x56,0x38,
+ 0x9c,0x78,0x53,0xb3,0xb4,0x6a,0x3a,0xfc,0x67,0xa9,0xd9,0xd5,0xbc,0x3b,0xb,0xfe,
+ 0x56,0xb,0xf3,0xab,0x51,0xbb,0x9d,0x42,0x7d,0xba,0xec,0x7b,0xce,0x4a,0xba,0xa,
+ 0x88,0xb1,0xdb,0x98,0xe4,0x81,0x9b,0xb0,0x1e,0xbc,0x13,0xb8,0x13,0x5b,0x9e,0xd5,
+ 0x93,0x23,0x62,0x25,0xac,0xb7,0x3d,0x3d,0xdb,0x5b,0x7,0x9d,0xf3,0x78,0x5b,0xf1,
+ 0xd9,0x8,0xd0,0x9,0x3c,0xe9,0xd4,0xff,0x4d,0xe7,0x5f,0x43,0x67,0x5a,0xf6,0xb1,
+ 0x30,0x40,0x36,0x5a,0x64,0x15,0x7c,0x2a,0xd4,0x9f,0xbe,0xb6,0xac,0x21,0x3c,0xa7,
+ 0x45,0x60,0x3d,0xb7,0x1d,0xaa,0x25,0x50,0x4,0xba,0x58,0x69,0x9b,0x6a,0x2f,0x79,
+ 0xda,0xae,0xcd,0x3d,0x56,0x6a,0xf5,0x74,0xcd,0x9e,0x7e,0xad,0xfd,0x5c,0xa4,0x3e,
+ 0xbb,0x5d,0xcf,0xb7,0xbf,0x37,0x5b,0xdf,0x67,0x51,0x74,0xda,0xd3,0xb2,0x6,0x90,
+ 0x56,0x72,0x56,0xa9,0xd9,0xfa,0xbf,0x93,0x31,0x74,0x42,0xf6,0xe9,0xd4,0x92,0x36,
+ 0x80,0xf6,0xf5,0x64,0x8d,0xf4,0x39,0x1b,0xf6,0xd3,0xd2,0x69,0x6e,0x60,0x88,0x5,
+ 0x72,0x12,0xab,0xbc,0xb4,0x81,0x64,0x43,0x74,0x27,0xaf,0x48,0x87,0xd3,0x36,0x99,
+ 0xd3,0x36,0x2e,0xc5,0xc9,0x9d,0x47,0x69,0x10,0x98,0xbe,0xe1,0xd9,0x50,0x9b,0xfe,
+ 0x3f,0x9d,0x50,0x7b,0xfa,0x79,0x36,0xd4,0x9f,0x6e,0x6d,0xdf,0x89,0xdc,0x81,0x93,
+ 0x95,0xff,0xbc,0x91,0x4e,0x6,0x90,0x46,0xe0,0xe9,0xe7,0xed,0x90,0x9c,0xbe,0x9,
+ 0x59,0x85,0xb6,0xd1,0x74,0x7a,0xbe,0x41,0xda,0x6b,0xb3,0x2d,0x68,0xab,0x95,0x78,
+ 0x9d,0x8c,0x29,0xeb,0xfd,0x59,0x4f,0xcd,0x86,0xf6,0x2c,0xd8,0x4b,0x47,0x88,0xec,
+ 0x61,0x56,0xf9,0x2e,0xe8,0xac,0xfc,0xe7,0x8d,0x11,0xb4,0xd,0x40,0xb3,0x7a,0x38,
+ 0x6e,0xdf,0xa4,0xb6,0xc2,0xda,0x8a,0x8c,0x59,0x59,0xa,0xbd,0x53,0x64,0x68,0xbf,
+ 0xa7,0x1d,0x49,0xb2,0x39,0x3f,0xfb,0x9e,0xd5,0x6a,0xeb,0xf4,0x6b,0xe9,0x23,0x4e,
+ 0xbd,0xde,0x9,0xb8,0x65,0xd,0x61,0x35,0x32,0xa7,0xd3,0xb9,0xd5,0xc,0x20,0xfd,
+ 0xf8,0xbc,0x90,0xec,0x60,0x50,0x76,0xc0,0x25,0x7d,0x63,0xb2,0x9e,0x9e,0x6d,0x26,
+ 0x49,0xa3,0xfb,0xb6,0x41,0xb5,0x8f,0x34,0x60,0x4a,0x87,0xfe,0xec,0x77,0xa5,0xc3,
+ 0xee,0x6a,0xca,0x6a,0x8f,0x48,0xad,0x66,0x0,0x59,0xe5,0x77,0x2,0x74,0xab,0x29,
+ 0xbf,0x2d,0xcf,0xfb,0xd0,0xdf,0x96,0xcc,0xde,0xaa,0x27,0x28,0x3b,0x1d,0x72,0xf9,
+ 0xff,0xdb,0x39,0xa3,0xed,0x6,0x61,0x18,0x86,0xaa,0xdb,0xff,0xff,0xf1,0x46,0xf7,
+ 0xa4,0xb3,0x8b,0x90,0x43,0x9f,0x1,0xbd,0x24,0xd,0x9,0xd9,0xa9,0x6c,0xcb,0x31,
+ 0x65,0x3a,0xbe,0x40,0x62,0x22,0xfc,0x5,0x32,0x4f,0xd8,0xb4,0x4f,0x2c,0x73,0xbd,
+ 0xd7,0xb4,0x73,0x7e,0x1a,0x4,0x75,0xd9,0xfb,0x26,0xd1,0x53,0x94,0x68,0xc7,0x39,
+ 0x66,0xf5,0x8a,0xfe,0x99,0xf7,0x5f,0xe,0x2e,0x4,0x49,0xdd,0x23,0x3d,0x6e,0xaf,
+ 0x4f,0xfc,0x68,0xff,0x6e,0x5d,0x7a,0x3d,0xd,0x20,0x31,0x91,0x9f,0x7a,0xcf,0xb6,
+ 0x25,0x6a,0xa9,0xdd,0xf6,0x7c,0x69,0x1f,0x5,0x1a,0xc9,0xbc,0x8f,0x74,0x34,0x8e,
+ 0xcb,0x12,0x6f,0x64,0x4,0x60,0xe6,0xde,0xf4,0x3c,0x93,0x3e,0x66,0xed,0xdf,0x31,
+ 0xd7,0xfa,0xef,0xdc,0x22,0x43,0xbf,0xd7,0x49,0xeb,0xf3,0xb6,0x49,0x4c,0x92,0xf9,
+ 0x59,0x9a,0x13,0xbc,0x33,0x23,0xcb,0xeb,0xf9,0xb7,0x5d,0x1a,0x36,0x0,0x5a,0xfc,
+ 0x16,0x73,0xf2,0xa7,0x9a,0x94,0x87,0xcc,0x1,0x5e,0x3a,0x4a,0x45,0x4b,0xfe,0x58,
+ 0xc,0x5a,0x49,0x80,0xdb,0xf4,0xe8,0xc,0xe5,0x2d,0x61,0x9c,0x12,0x4b,0x2d,0xf6,
+ 0xbc,0x5,0xe9,0x84,0x25,0xc0,0x4,0x26,0xf9,0xc2,0xb5,0x1c,0xdb,0xa2,0x65,0x9d,
+ 0xa0,0x19,0x0,0x93,0xc4,0x46,0x9a,0xd1,0x12,0xbf,0xc,0xff,0x2b,0x63,0xc9,0x71,
+ 0xe9,0x33,0x3,0xb8,0x25,0x18,0x1,0xa6,0xfa,0x3d,0x43,0xba,0xe7,0xb2,0xc0,0x63,
+ 0xad,0x4f,0xef,0xcf,0x7,0x3d,0x44,0xca,0x47,0x23,0x27,0x8d,0x63,0x25,0x13,0x2b,
+ 0x23,0x78,0xc7,0x1a,0xee,0x21,0xdd,0x98,0x7c,0x69,0x2e,0x4,0xa5,0x57,0x7e,0x95,
+ 0x31,0x93,0xc8,0x9f,0x6e,0xbd,0x62,0x8d,0xef,0xe7,0xf9,0x9e,0xb7,0x95,0xf1,0x24,
+ 0x65,0x4a,0xd4,0xa6,0xd0,0x7d,0xa6,0xeb,0xd9,0x67,0x7b,0x5b,0xa4,0x4,0x90,0xc,
+ 0x97,0x6e,0x8d,0x4c,0xfe,0x48,0xf0,0xa4,0xfb,0xf9,0xb4,0x2f,0x49,0x17,0xae,0x71,
+ 0x4e,0x1a,0xdb,0xef,0x30,0x47,0x3a,0x92,0xfe,0x49,0x21,0xe7,0xf6,0xc4,0x1b,0x7e,
+ 0x58,0xd3,0x42,0x36,0x49,0x64,0x35,0x8f,0xff,0x55,0xa4,0xbd,0x5d,0xcc,0x7b,0xe4,
+ 0x5e,0xf4,0x62,0xe6,0xf,0x93,0xe7,0x4b,0x7b,0xa9,0xc8,0x39,0xfc,0xfc,0x69,0x5,
+ 0xef,0x21,0x1f,0x60,0x1d,0x40,0x3a,0x46,0x2,0xc3,0x5f,0x2e,0x8f,0x74,0xac,0xf8,
+ 0x79,0x2d,0x5b,0x62,0x45,0xc6,0x99,0x1,0x64,0xe8,0x9f,0xee,0x33,0xe9,0xfa,0x43,
+ 0xfc,0x2,0xed,0x11,0xed,0x14,0x9,0xd8,0xcf,0xa,0x1f,0xfb,0x34,0x90,0x49,0x83,
+ 0x85,0x31,0x62,0xca,0xda,0x57,0x72,0xe1,0x7e,0x2b,0xe5,0xb6,0x3d,0x1e,0x0,0x2b,
+ 0xed,0xe6,0x1c,0x95,0xf1,0x76,0xec,0xcb,0xba,0x80,0xf4,0x6f,0x10,0x52,0x27,0x23,
+ 0xbd,0x7e,0x3a,0x92,0x9e,0x69,0xfa,0x99,0x71,0x3d,0x28,0xf8,0x3,0xe9,0x4a,0x1,
+ 0xef,0xb4,0x3e,0x14,0xed,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,
+ 0x82,
+ // /home/matthew/pencil_dev/icons/prefstimeline.png
+ 0x0,0x0,0xd,0x38,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x4b,0x0,0x0,0x0,0x33,0x8,0x6,0x0,0x0,0x0,0xdf,0x3f,0xf5,0x46,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0xc,0xca,0x49,0x44,0x41,0x54,0x78,0xda,0xa4,
+ 0xcc,0x4b,0xa,0x80,0x30,0xc,0x4,0xd0,0x54,0xdd,0x28,0x2e,0x4,0x5,0xf5,0x44,
+ 0xde,0xff,0x1e,0x85,0x22,0x56,0xa9,0xdf,0x3a,0xc5,0x59,0x94,0x6e,0xd,0x3c,0x86,
+ 0x7c,0x88,0xd2,0x5a,0x4f,0x22,0x52,0x40,0x4d,0x1d,0x8c,0xd0,0xc3,0x0,0x2d,0x34,
+ 0x50,0x41,0x9,0x39,0x65,0xf2,0x95,0x4a,0xf2,0x6f,0x79,0xfe,0xf2,0xec,0x1f,0xba,
+ 0x23,0x61,0x77,0x71,0x2e,0xd1,0xad,0x4f,0x84,0x9b,0x3,0x76,0x70,0xb0,0xd0,0xa,
+ 0x6,0x36,0xb0,0x51,0x6,0x33,0xf7,0x96,0xe9,0xe8,0x7c,0x5,0x10,0xb,0x23,0x23,
+ 0xe3,0x67,0x68,0x60,0xfd,0x83,0x3a,0x92,0x17,0x6a,0x38,0xcc,0x1,0xb0,0x80,0x61,
+ 0x42,0x12,0xa3,0x76,0x0,0x21,0x3,0xf4,0x80,0x42,0xf,0x0,0x46,0x68,0x20,0xfc,
+ 0x47,0x52,0x87,0xc,0x98,0xa0,0x6a,0x90,0x3,0xf2,0x2f,0x54,0x1c,0xe4,0x4f,0x56,
+ 0xa8,0x9f,0xd8,0x41,0x1,0x0,0xe5,0xc3,0xe4,0x18,0xa1,0x34,0xc,0x33,0x23,0xf9,
+ 0xfb,0x3f,0x40,0x0,0xb1,0x30,0x33,0x33,0x7f,0x85,0x6a,0x4,0x49,0x70,0x43,0xd,
+ 0x80,0x39,0x84,0x9,0x29,0x40,0x90,0x3,0xd,0x5f,0x8a,0xa0,0x46,0xca,0x62,0x40,
+ 0xb,0x8,0x98,0x7b,0x90,0x53,0xd9,0x3f,0x2c,0x11,0xc7,0x8,0x75,0x27,0xb2,0xf8,
+ 0x5f,0x24,0x8f,0xb3,0x20,0xb9,0x1f,0xd9,0x1e,0x26,0x24,0x9a,0x9,0x29,0xc2,0x98,
+ 0x91,0xcc,0x65,0x4,0x8,0x20,0x96,0xff,0xff,0xff,0x7f,0x87,0x2a,0xf8,0x83,0x64,
+ 0x0,0x13,0x52,0x76,0x83,0xc5,0x6,0x23,0x5a,0xe0,0x61,0x4b,0x11,0xb4,0x0,0xc8,
+ 0x81,0x4,0x4b,0x55,0xc,0x68,0x1,0xc4,0x88,0xe6,0xd1,0x7f,0x50,0xf6,0x3f,0x34,
+ 0xcf,0xff,0x43,0x4b,0xb5,0xb0,0x6c,0xfd,0x1b,0x2d,0x25,0x32,0x22,0xa5,0x34,0x78,
+ 0x6a,0x5,0x8,0x20,0x96,0xbf,0x40,0x0,0x75,0xc0,0x5f,0xb4,0xd0,0x65,0x41,0xa,
+ 0x30,0x66,0xf4,0x50,0x46,0x8b,0xd1,0xff,0x54,0xc,0x18,0x5c,0x7c,0xe4,0x94,0xf4,
+ 0xf,0x2d,0xc0,0xd0,0xdd,0xc6,0xc,0xf5,0x13,0x23,0x9a,0xfb,0x60,0xfe,0xfc,0x5,
+ 0xd,0x20,0x58,0x79,0x6,0xa3,0x7f,0x23,0x5,0x20,0x72,0xc0,0x81,0x3,0x1e,0x20,
+ 0x80,0x58,0xbe,0x7f,0xff,0xfe,0x17,0x29,0xc9,0x21,0x63,0x56,0x2,0x81,0x4,0x6,
+ 0xac,0x5f,0xbf,0x91,0x1c,0x50,0xbf,0xb9,0xb9,0x8,0x65,0x63,0xf4,0x2,0x1b,0x39,
+ 0x52,0xd0,0x23,0x8a,0x9,0x2d,0x75,0xa1,0xa7,0xac,0xff,0x48,0x1,0xf0,0x7,0x2d,
+ 0x70,0xbe,0x23,0xf1,0x61,0x95,0xc1,0x5f,0xa4,0x54,0xc8,0x8c,0x64,0x26,0x33,0x40,
+ 0x0,0xb1,0x1c,0x39,0x72,0xe2,0x1f,0x5a,0x4c,0x21,0x2b,0x60,0x42,0x73,0xc,0x23,
+ 0x52,0xea,0x3,0x3,0xe5,0xc5,0xb,0x18,0x38,0x39,0x39,0x89,0xce,0x82,0xc0,0xc8,
+ 0x61,0xb8,0x1b,0x9b,0x40,0xa8,0x60,0x87,0x17,0xd6,0x6f,0xdf,0xbe,0xfd,0x23,0x2c,
+ 0x2c,0x8c,0x5e,0xc8,0xa3,0x97,0x31,0x70,0x37,0x2,0xd5,0x33,0x0,0xd5,0x23,0x97,
+ 0x57,0xff,0x91,0x2,0xea,0x1f,0x52,0x40,0x81,0x3,0x9,0xa8,0xfe,0x27,0x50,0xfd,
+ 0xf,0x28,0xff,0xf,0x52,0x96,0xff,0x8f,0x96,0x35,0xff,0x3,0x4,0x10,0x8b,0xa9,
+ 0xa9,0x21,0x7a,0x6a,0xf9,0x8f,0x56,0x13,0x30,0xa2,0xc5,0x38,0x4a,0xc0,0x1c,0xab,
+ 0x2e,0x67,0xf0,0xf6,0xf6,0x26,0xba,0x70,0xdf,0xba,0x75,0x2b,0x83,0x95,0xa9,0x21,
+ 0x31,0x35,0x21,0x38,0xeb,0x65,0x65,0x65,0x31,0x4c,0x9b,0x36,0xd,0x3d,0xa2,0xfe,
+ 0xa1,0x95,0x27,0xf0,0xf2,0xb,0xaa,0x1e,0xb9,0x7c,0xfa,0x83,0x14,0x60,0xbf,0xd1,
+ 0xb2,0xe2,0x4f,0xa0,0xfa,0x5f,0x40,0xf5,0xbf,0xd1,0xe4,0xfe,0xa3,0x95,0x89,0xe0,
+ 0x32,0x1c,0x20,0x80,0x98,0x90,0x6a,0x16,0x98,0x87,0x59,0xb1,0x14,0xe4,0xff,0x71,
+ 0xd4,0x4e,0xf8,0xca,0x1b,0x4a,0xdb,0x58,0xff,0xb1,0x54,0x1c,0x4c,0x68,0xf6,0x30,
+ 0xa3,0xd5,0x80,0xc,0x38,0xb2,0x31,0x72,0x61,0xfe,0xf,0xad,0x6c,0xfa,0x8b,0x14,
+ 0xa0,0xff,0x70,0xa4,0x2c,0x70,0xd6,0x6,0x8,0x20,0x64,0xcb,0xff,0xa2,0xd5,0x8a,
+ 0xff,0xd0,0xa,0xd6,0xff,0x44,0x4,0xca,0x7f,0x42,0x81,0x6,0xcc,0xb2,0x84,0xda,
+ 0x58,0xc8,0xa9,0x86,0x11,0x9a,0x5,0xd1,0xdb,0x51,0xe8,0xed,0x3e,0x78,0xd1,0x0,
+ 0x55,0xcf,0x84,0x23,0xc0,0xfe,0x23,0x5,0x18,0x38,0x5,0x41,0xd5,0x23,0xdb,0x8b,
+ 0x5e,0xc3,0xc2,0xcd,0x1,0x8,0x20,0xc6,0x3b,0x77,0xee,0x80,0x5a,0xe9,0xfc,0xd0,
+ 0x96,0x3a,0xa8,0xe5,0xae,0x0,0xc4,0x8a,0x40,0x2c,0xb,0xc4,0xd2,0x50,0x71,0x3e,
+ 0x68,0x5b,0x8c,0x5,0xad,0xf5,0xce,0x70,0xcc,0xcd,0xd,0x94,0xd,0x19,0x49,0x69,
+ 0x42,0xbc,0xcf,0xcf,0xc7,0x27,0xfd,0xf,0x29,0x75,0xfd,0xc5,0xe6,0x41,0x24,0x75,
+ 0x2c,0x68,0x45,0x7,0x72,0xcb,0xfd,0x2f,0x52,0xeb,0xfb,0x1b,0xb4,0x65,0xe,0x6a,
+ 0xb5,0xbf,0x85,0xd2,0x20,0xfc,0x9,0xda,0x52,0xff,0x8e,0x54,0x1b,0xc2,0xa,0xfb,
+ 0x1f,0x68,0xf8,0x1b,0x40,0x0,0x31,0x61,0x69,0x8d,0xff,0x47,0x6a,0x77,0xfc,0x45,
+ 0x2b,0x1c,0xd1,0x63,0x9,0x96,0x52,0xfe,0x53,0x29,0x3b,0xa2,0x67,0x43,0x26,0xb4,
+ 0xec,0xc7,0x84,0x25,0xd6,0x61,0x7a,0xfe,0xa2,0x55,0x2,0xff,0xd0,0xfc,0x84,0xdc,
+ 0x7e,0x62,0x42,0x6b,0xa8,0xb2,0x60,0x11,0x47,0xae,0xe4,0xc0,0x0,0x20,0x80,0x58,
+ 0xb0,0x78,0xf0,0x17,0x52,0xec,0xfc,0x41,0x8b,0x55,0x66,0x34,0x3,0xfe,0x3b,0x39,
+ 0x39,0xa1,0xb7,0x88,0xe1,0x55,0xfc,0x3f,0x3c,0xcd,0x7d,0x2,0xd9,0x10,0x3d,0xf0,
+ 0xfe,0x62,0x89,0xc,0x46,0x2c,0xcd,0xd,0xf4,0x86,0x27,0x7a,0x83,0x16,0x96,0x7d,
+ 0x41,0xb9,0x84,0xd,0x4a,0xa3,0xf7,0x31,0xd1,0xd5,0xc2,0xcd,0x4,0x8,0x20,0xe4,
+ 0x98,0xfa,0x83,0xd4,0x3a,0xfe,0x8d,0x94,0x24,0x7f,0x63,0xa9,0x52,0xff,0xe3,0x28,
+ 0x8c,0xe1,0x9e,0xf9,0xf5,0xe7,0x27,0xc3,0xc3,0x6f,0xbf,0x29,0xed,0x44,0xff,0xc7,
+ 0x92,0x45,0xff,0x63,0xc9,0xf2,0xff,0xd1,0xa,0x65,0x6c,0xdd,0x21,0x66,0xb4,0x9e,
+ 0x9,0x2c,0xb0,0x38,0xa0,0x98,0x1d,0x5a,0xb9,0xb1,0x21,0x25,0xa,0xe4,0xb2,0x9b,
+ 0x1,0x20,0x80,0x98,0x90,0xc,0x67,0x40,0xab,0x31,0x7e,0x21,0x5,0x20,0xae,0xc0,
+ 0xfa,0x87,0x19,0xe3,0xff,0x18,0xde,0xff,0xfc,0xc9,0x70,0xf6,0xde,0x3d,0x86,0x86,
+ 0x87,0xaf,0xc8,0xe9,0x44,0xa3,0x17,0xb4,0xff,0xb0,0x14,0xba,0xc,0x38,0x6a,0xad,
+ 0xbf,0x68,0x62,0xbf,0x91,0xfc,0xc6,0x88,0xd4,0xd8,0x66,0x45,0xa,0x2c,0x18,0x9b,
+ 0xd,0x29,0xc5,0xb1,0x60,0x69,0x8c,0x33,0x0,0x4,0x10,0xb,0x16,0x8f,0xc3,0x5a,
+ 0xb9,0xc8,0xdd,0xa0,0xbf,0x68,0xd5,0x2a,0x23,0x96,0x90,0x87,0x24,0xd9,0xdf,0x1f,
+ 0x19,0xb7,0x3c,0x7e,0xcb,0xf0,0xe8,0x3f,0xd3,0x7f,0x2e,0x46,0x46,0x46,0x32,0x52,
+ 0x16,0x13,0x96,0x54,0x84,0x6d,0xf4,0x1,0xbd,0xf6,0xfd,0x8b,0x14,0xb8,0xc8,0xfd,
+ 0xbd,0x7f,0x48,0xe2,0xff,0x90,0x2,0x81,0x15,0x1a,0x38,0xff,0x90,0x9a,0x1e,0x30,
+ 0x3f,0x33,0x21,0x5,0x2e,0xbc,0x46,0x4,0x8,0x20,0xf4,0xa6,0xc3,0x7f,0xb4,0xce,
+ 0xe5,0x5f,0x2c,0x4d,0x9,0x7c,0xfd,0x38,0x46,0x6,0x56,0x41,0x86,0x58,0x15,0x15,
+ 0x86,0x52,0x81,0xff,0xc,0xbf,0xfe,0xff,0x27,0x27,0x65,0x31,0xe0,0x18,0x96,0x61,
+ 0xc4,0x33,0x6e,0x85,0xdc,0xf7,0xfb,0x87,0x36,0x84,0xf3,0x17,0x69,0xc8,0x9,0x56,
+ 0x46,0x73,0x22,0xa5,0x26,0x18,0x66,0x45,0xc3,0xcc,0xe8,0x29,0x1e,0x20,0x80,0x98,
+ 0xd0,0x5a,0xc4,0xff,0xd0,0x6a,0x96,0x7f,0x78,0xca,0xb,0xbc,0x9e,0x4,0xf6,0x38,
+ 0x19,0xc9,0xac,0xd,0xd1,0x7b,0x3,0xb8,0x7a,0xf,0x8c,0x38,0x22,0xec,0x3f,0x52,
+ 0xb9,0xfb,0x7,0xa9,0x62,0xfa,0x8f,0x14,0x60,0xb0,0x5a,0xf,0x16,0x48,0x2c,0x48,
+ 0xd9,0x8f,0x9,0xcd,0x6c,0x58,0xae,0x62,0x4,0x8,0x20,0x26,0x2c,0xe,0xfa,0x8b,
+ 0x23,0x16,0x99,0xb0,0x38,0x96,0x11,0x4b,0xb6,0x20,0xaa,0x71,0x4a,0x42,0x8d,0x88,
+ 0xab,0x93,0xfd,0xf,0x8b,0xfd,0xcc,0x58,0xfa,0x8f,0xcc,0x58,0xb2,0x31,0x33,0x92,
+ 0x1e,0xf4,0xd1,0x15,0x6,0x2c,0x95,0x8,0x38,0xc0,0x0,0x2,0x8,0xbd,0x93,0xfc,
+ 0x17,0x87,0xe3,0x19,0xb1,0xb0,0xff,0x63,0x9,0x34,0x6a,0x8d,0x6d,0x31,0x12,0x18,
+ 0xc,0x64,0xc0,0xd2,0x77,0x63,0x44,0x1b,0x29,0x45,0x1f,0xd6,0x41,0xae,0x15,0xff,
+ 0x22,0x8d,0xd1,0x31,0xa3,0xe5,0xaa,0xff,0x58,0xc6,0xb9,0xc0,0xb9,0xc,0x20,0x80,
+ 0x98,0xd0,0x6a,0xf,0x6c,0x16,0xa2,0xd7,0x42,0xc,0xd8,0x86,0x6a,0xd0,0xf9,0x4c,
+ 0xcc,0xac,0xff,0x25,0x59,0x99,0xa9,0x31,0xae,0x85,0x2b,0x32,0xd0,0xdb,0x7c,0xc8,
+ 0x6d,0x23,0xf4,0x41,0xcb,0xff,0x48,0xa9,0xe6,0xf,0x5a,0x85,0xf0,0x1b,0x29,0xab,
+ 0xfd,0x44,0x1a,0xaa,0x81,0xb5,0x6,0xe0,0x23,0xc7,0x0,0x1,0xc4,0x82,0x54,0xe8,
+ 0x21,0x87,0xfa,0x3f,0x2c,0x13,0x12,0xb8,0x2,0x9,0x6b,0x60,0xf1,0x8a,0x2b,0x33,
+ 0xb6,0x88,0x93,0x3d,0xfe,0x8e,0xad,0x3c,0x42,0x1f,0x75,0x60,0x40,0x2b,0x1e,0xfe,
+ 0xa1,0x8d,0x65,0x31,0x62,0x69,0x87,0x31,0xa1,0x35,0x91,0x90,0x9b,0x49,0xbf,0x90,
+ 0x2,0xc,0xbd,0xe7,0x2,0xa6,0x1,0x2,0x8,0x34,0xac,0xfc,0xf,0xad,0x69,0x8f,
+ 0x2d,0x36,0x18,0x71,0x65,0xc7,0xff,0x90,0x1a,0xef,0x3f,0x5a,0x47,0x97,0x1,0xc7,
+ 0xa8,0x1,0x3,0x92,0x1e,0x7c,0x5,0xfc,0x7f,0xb4,0xb2,0xea,0x1f,0x8e,0x40,0x64,
+ 0xc2,0xd2,0x92,0x47,0x1e,0x4e,0x66,0x46,0xf2,0xd3,0x5f,0x2c,0x65,0xea,0x6f,0xa4,
+ 0x1,0xbf,0x9f,0xd0,0x3e,0xe4,0x6f,0xa4,0x14,0xf5,0xf,0x79,0xd8,0x6,0x20,0x80,
+ 0x58,0x1e,0x3f,0x7e,0xfc,0x1f,0x6d,0x22,0xe2,0x3f,0x9e,0xe1,0x63,0x8c,0x94,0xc0,
+ 0xfc,0xe9,0xf3,0x7f,0x1c,0xfd,0x4b,0x9c,0xa9,0x10,0x68,0x27,0x31,0x29,0xb,0xdb,
+ 0x64,0xc4,0x3f,0xb4,0xbe,0x22,0xae,0xda,0x11,0x39,0x57,0xb0,0x42,0x3b,0xc2,0xff,
+ 0xd1,0x52,0x27,0x72,0xfb,0xf2,0xf,0x52,0x0,0xfd,0x86,0xaa,0xff,0x85,0x14,0x50,
+ 0x60,0xbb,0x1,0x2,0x88,0xe5,0xde,0xbd,0x47,0xe8,0x35,0xb,0x3,0x5a,0xe0,0x31,
+ 0x61,0x29,0xaf,0xe0,0x16,0xb,0x7c,0xf8,0xc0,0x88,0xa3,0xd6,0xc2,0xd9,0x2d,0x84,
+ 0xda,0x49,0xcc,0x18,0x3c,0xfa,0xec,0xb,0xa1,0x9,0x12,0x74,0xfb,0x99,0xa1,0x9e,
+ 0x46,0x57,0xff,0x17,0x6d,0x84,0xe2,0x37,0x5a,0x63,0x16,0xbd,0xcd,0x9,0xce,0xae,
+ 0x0,0x1,0xc4,0x72,0xee,0xdc,0x29,0xe4,0xec,0xf2,0x87,0x40,0xd5,0x8f,0x32,0xac,
+ 0xfc,0xeb,0xd7,0x2f,0x6,0xd1,0xc7,0x8f,0x18,0x98,0x98,0x98,0x19,0xb0,0xa4,0x4,
+ 0x9c,0xa3,0xa7,0x67,0xcf,0x9e,0x26,0x76,0xde,0x10,0xd7,0x38,0x3c,0x3,0x52,0x56,
+ 0xfb,0x8f,0xa3,0xd6,0x44,0x6e,0x27,0x22,0x57,0x6,0xcc,0x48,0x33,0x37,0xff,0xb1,
+ 0x34,0x45,0xd0,0x87,0x83,0xe0,0x6d,0x3f,0x80,0x0,0x62,0x9,0xb,0xb,0x43,0x2e,
+ 0x20,0x59,0xb0,0xc4,0xd4,0x5f,0x1c,0x65,0x9,0xc3,0x92,0x25,0x4b,0xc0,0x16,0xaa,
+ 0xa8,0x98,0x33,0xfc,0xf9,0xf3,0x9b,0xe8,0x1,0x6,0x77,0xf7,0x1c,0x62,0x47,0x49,
+ 0x99,0xf0,0xa4,0x36,0x46,0x1c,0x1d,0xed,0x7f,0x38,0x3c,0xcc,0x80,0x36,0x1,0x83,
+ 0xdc,0xb1,0x66,0x40,0x4a,0x65,0x8c,0xb8,0x26,0x4e,0x0,0x2,0x88,0x5,0x4b,0x40,
+ 0x30,0xe0,0x18,0x59,0x60,0xc0,0x31,0xdc,0xb,0x56,0x73,0xe0,0xc0,0xda,0x7f,0xcc,
+ 0xcc,0x2c,0x4c,0x84,0xda,0x5a,0x7f,0xff,0xfe,0x61,0x90,0x8d,0x2d,0x24,0x94,0xa2,
+ 0x98,0xd0,0xa,0x75,0x6c,0xe5,0xe1,0x3f,0x34,0x36,0x3a,0xfe,0x8b,0x36,0x1a,0xc1,
+ 0x8c,0x36,0xb5,0x85,0x3e,0xd9,0x81,0x6d,0x28,0xfd,0x1f,0xf2,0x50,0xd,0x40,0x0,
+ 0xb1,0xa0,0x95,0x2f,0x7f,0xd1,0x1a,0x73,0xf8,0xc6,0x89,0x30,0x6a,0x3b,0x13,0x13,
+ 0x5b,0x6c,0xd9,0x5,0x25,0xd0,0x4e,0x9e,0xdc,0x4f,0x6c,0xdf,0x10,0x5f,0x63,0xf7,
+ 0x2f,0x16,0x77,0x21,0xf7,0x3e,0x90,0x1b,0x95,0xff,0xb1,0xe8,0x61,0xc2,0x32,0x91,
+ 0xcc,0x8c,0x96,0x45,0xd1,0x67,0xa7,0x19,0x1,0x2,0x88,0x5,0xad,0x96,0x61,0xc6,
+ 0xd2,0x17,0xfc,0x87,0xa3,0xd7,0xff,0x9f,0x40,0x4d,0x46,0xad,0xe9,0x7b,0xf4,0xd6,
+ 0x35,0x23,0x5a,0xb6,0x61,0xc0,0x32,0x3f,0xf8,0x17,0x6d,0x76,0xe7,0xf,0x96,0x1e,
+ 0x7,0x33,0x5a,0x80,0xb0,0x20,0xf9,0x9f,0x19,0xad,0x57,0x3,0xb6,0x1b,0x20,0x80,
+ 0x58,0xd0,0x52,0xd1,0x5f,0xb4,0x72,0x3,0x7d,0x78,0x86,0x50,0x60,0x61,0xab,0xbe,
+ 0xc9,0x6d,0x98,0xa2,0x67,0xc5,0xbf,0x68,0x5d,0x32,0xe4,0x45,0x22,0xff,0xd0,0x86,
+ 0x93,0x18,0xd0,0x86,0x98,0xfe,0xa3,0xd,0x2d,0x31,0x21,0x75,0xb0,0x61,0x2d,0x7d,
+ 0xf4,0x32,0x8d,0x5,0x3d,0xa5,0x3,0x4,0x10,0xb,0x96,0xae,0xc2,0x5f,0x2,0x43,
+ 0xb4,0xd8,0xca,0x33,0x6c,0x81,0x44,0x69,0x2a,0xfb,0x8f,0x67,0x6a,0xb,0x39,0x12,
+ 0xff,0x60,0x19,0x4a,0xfa,0x83,0xa5,0xa0,0x67,0x40,0x1b,0xbb,0x62,0xc1,0xd2,0x45,
+ 0x62,0x44,0x1b,0x6a,0x47,0x49,0xc9,0x0,0x1,0xc4,0x82,0x34,0x0,0xc8,0x80,0xd6,
+ 0x3f,0xc4,0x35,0x4c,0xfb,0x1f,0xcf,0xb4,0x3a,0x7a,0x8d,0xc6,0x48,0x41,0x20,0x31,
+ 0xe2,0x18,0x8d,0xf8,0x87,0xd6,0x97,0xfb,0x8f,0xa5,0x7b,0x82,0xdc,0x65,0xfb,0x8b,
+ 0xa3,0xe9,0xc1,0x88,0xa3,0x29,0x82,0xdc,0xc6,0x42,0x1,0x0,0x1,0xc4,0x82,0x56,
+ 0x83,0x30,0xa3,0xd,0x9e,0xa1,0x67,0xc1,0xbf,0x68,0xa3,0x87,0xff,0xb1,0xa4,0xa4,
+ 0xbf,0x68,0xd5,0x31,0x23,0x5,0x29,0xb,0xbd,0x88,0x40,0x6,0xbf,0xd1,0x5a,0xdf,
+ 0xff,0xd1,0xda,0x89,0xc,0x68,0x65,0x15,0xb6,0x9,0xc,0xe4,0x61,0x1d,0xe4,0x21,
+ 0x76,0x46,0x2c,0xb3,0x46,0xc,0x0,0x1,0xc4,0x84,0x96,0xf4,0xfe,0xa1,0x15,0x9e,
+ 0xe8,0xc9,0x1d,0xdb,0xfa,0x28,0xac,0xb3,0xb7,0x14,0xe,0xd5,0xa0,0x67,0xf3,0x7f,
+ 0x68,0x23,0xa1,0xff,0xb1,0x14,0x15,0x7f,0xd0,0x3c,0x87,0x3e,0x43,0x83,0xbc,0x4a,
+ 0x88,0x19,0x4b,0x99,0xf6,0x17,0xcb,0x3c,0x25,0xca,0xc4,0x2c,0x40,0x0,0xa1,0xf,
+ 0x6f,0xe0,0x2a,0x1f,0xfe,0xe0,0xa8,0xd,0xff,0xe1,0x69,0x30,0x52,0x12,0x50,0xd8,
+ 0x66,0x8d,0x90,0x9b,0xd,0xbf,0xb1,0x94,0x6b,0xcc,0x58,0x6,0xf3,0x18,0xb1,0xf8,
+ 0xef,0x1f,0x96,0x14,0xfb,0x7,0x6d,0x26,0xeb,0x17,0xda,0xfc,0x29,0xd8,0x2d,0x0,
+ 0x1,0xc4,0x82,0x94,0x4f,0x19,0xb0,0x4,0xd2,0x7f,0x2c,0xeb,0x5,0xfe,0x63,0xa9,
+ 0xca,0x19,0x19,0xb0,0x2f,0x9,0xa2,0xb4,0xd9,0x80,0xde,0xd9,0x45,0x5f,0x2f,0x8a,
+ 0x6d,0x1,0xc7,0x7f,0xb4,0x19,0x1d,0xf4,0x44,0xf0,0x1b,0x6d,0x7a,0xef,0x27,0x52,
+ 0x56,0xfe,0x85,0x96,0xbd,0x51,0x52,0x31,0x40,0x0,0xb1,0xe0,0x48,0x11,0x4c,0x68,
+ 0x33,0x25,0xe8,0x34,0x13,0x8e,0xd6,0x3d,0xae,0xb5,0xa7,0xe4,0x4c,0x58,0x30,0xa2,
+ 0xa5,0x2,0x6c,0xb3,0xcb,0x8c,0x58,0x46,0x20,0xfe,0xe3,0x18,0x28,0xfc,0x8d,0xe6,
+ 0x66,0xe4,0x41,0xbe,0x9f,0x48,0x1,0xf5,0x1b,0x6d,0xc4,0x1,0xde,0x22,0x0,0x8,
+ 0x20,0x16,0xa4,0x61,0xc,0xf4,0xb9,0xba,0xff,0x78,0xa6,0xa2,0xfe,0xe1,0x48,0x51,
+ 0x94,0xd6,0x82,0x8c,0x78,0x2,0xf0,0x1f,0xda,0x38,0x16,0xae,0x31,0xb4,0x7f,0x68,
+ 0x65,0xdd,0x3f,0x34,0xb1,0x3f,0x68,0x59,0xef,0x2f,0x8e,0x49,0xe5,0x3f,0x68,0xd9,
+ 0xfd,0x3f,0x40,0x0,0xb1,0xe0,0x18,0xb8,0x47,0x5e,0xd5,0xcb,0x84,0xa5,0x63,0x89,
+ 0x6f,0x8,0xe5,0x3f,0x9e,0x19,0x19,0x62,0xc7,0xdd,0xd1,0x1b,0xa8,0xc8,0x66,0x33,
+ 0xe3,0x19,0xc9,0xfd,0x8f,0x96,0x15,0xb1,0xad,0x35,0x65,0xc4,0xd2,0x3e,0x43,0xf,
+ 0xb4,0x3f,0x48,0x76,0xc0,0x52,0xe4,0x3f,0x80,0x0,0x62,0xc1,0xd2,0x4f,0x62,0x45,
+ 0x9b,0x47,0x63,0x66,0xc0,0xbe,0x52,0xf9,0x3f,0x96,0x89,0x0,0x26,0x34,0x4f,0x30,
+ 0x92,0x59,0xb,0x62,0x6b,0x14,0xa2,0xa7,0x5c,0x26,0x1c,0x53,0xfd,0xc8,0x4d,0x8,
+ 0xe4,0xb5,0xa5,0xc8,0xa9,0x1f,0x79,0xfc,0xea,0x17,0x96,0x31,0xad,0x7f,0xe8,0xa3,
+ 0xa4,0x20,0xbd,0x0,0x1,0x84,0xdc,0x74,0x60,0x42,0x9b,0xff,0x67,0xc7,0x32,0x1,
+ 0xc9,0x8c,0x36,0xb4,0xc1,0x88,0x63,0x26,0x86,0x92,0x96,0x3b,0x23,0xe,0x9a,0x81,
+ 0x1,0xfb,0xe2,0x35,0xf4,0x51,0x3,0xe4,0x7e,0x1f,0x3,0x5a,0xb1,0xf2,0xf,0xcb,
+ 0xdc,0x28,0xb6,0xc5,0x6e,0xd8,0x1a,0xa5,0xff,0x1,0x2,0x8,0x39,0x65,0xb1,0x20,
+ 0x5,0x10,0x7,0x74,0xd6,0x16,0x86,0x39,0xf0,0xa4,0x34,0x46,0x6,0x2c,0xcb,0x73,
+ 0xa8,0xd4,0xcd,0x61,0xc0,0x32,0xc,0xcc,0x88,0x23,0xe5,0xe2,0x5b,0x99,0xf8,0xf,
+ 0x4b,0xa0,0x30,0x60,0x69,0x58,0xff,0x43,0xb3,0x7,0xb9,0x6f,0xca,0x8,0x10,0x40,
+ 0x2c,0x48,0x31,0x6,0x9b,0x91,0x85,0xad,0x2a,0xe1,0x42,0xa,0x28,0x36,0xb4,0x80,
+ 0x62,0xc6,0x32,0x57,0x47,0x68,0xf8,0x85,0x94,0x2,0x1e,0x3d,0x85,0x32,0x21,0x65,
+ 0x2f,0x26,0xb4,0xde,0xc6,0x7f,0x1c,0xcd,0x1e,0xe4,0xd6,0x3d,0xfa,0xf2,0x47,0x6c,
+ 0x1,0xc5,0x80,0x63,0xfa,0xf,0xde,0xc8,0x6,0x8,0x20,0x16,0xb4,0x6c,0x85,0x1c,
+ 0x58,0x9c,0x58,0xb2,0x22,0xb,0x52,0xd,0x8a,0x32,0xa1,0xe1,0xe2,0x12,0xc1,0x4c,
+ 0xe4,0x94,0x19,0xc3,0x4d,0xc2,0xc3,0xc9,0x8c,0x68,0x65,0xd3,0x5f,0x2c,0x43,0x48,
+ 0xe8,0x23,0x13,0xc,0x68,0xd3,0xed,0xff,0x90,0xa,0xf0,0xdf,0x68,0xf3,0x83,0xff,
+ 0x71,0x44,0xe,0xbe,0x32,0x97,0x11,0x20,0x80,0x58,0xda,0xda,0xda,0xfe,0x23,0xe5,
+ 0x73,0x36,0xa4,0x6c,0xc8,0x8e,0x94,0xaa,0x90,0x57,0xc8,0xa1,0xcc,0x62,0x7f,0xfc,
+ 0xf8,0x91,0xe1,0xf4,0xe9,0xed,0x4c,0x38,0xa6,0xcc,0xb0,0x82,0x25,0xef,0x6f,0x13,
+ 0x33,0xfe,0xce,0x88,0xc5,0x4c,0xf4,0xd9,0x26,0xf4,0x94,0x82,0x9c,0xa2,0x90,0x97,
+ 0x4c,0xfd,0x45,0x6b,0xe,0xa0,0x77,0x9e,0x99,0xd0,0xc6,0xe9,0x19,0xb1,0x8c,0xc4,
+ 0x30,0x0,0x4,0x10,0xcb,0xcc,0x99,0x33,0x99,0xd0,0x62,0xa,0x79,0xc1,0x4,0x7a,
+ 0xe1,0x8e,0x5c,0x4e,0x31,0xa4,0xa7,0xa7,0x83,0xd,0x35,0xb,0x70,0x62,0x22,0xb2,
+ 0xcd,0x4,0x6,0xfc,0x25,0x69,0xa4,0x16,0xf8,0xd8,0xe6,0x22,0xff,0xa2,0xb5,0xad,
+ 0xfe,0xa2,0xa5,0x26,0xd8,0x5c,0xe0,0x6f,0xa4,0x56,0xfa,0x6f,0xb4,0xc6,0x26,0x13,
+ 0x5a,0xa,0x66,0x41,0xab,0x20,0x50,0x96,0x57,0x1,0x4,0x10,0xcb,0x8f,0x1f,0x3f,
+ 0x90,0x27,0x54,0x99,0xd0,0x42,0x9a,0x9,0x4b,0x20,0x61,0xc4,0xf0,0xb7,0xbf,0xbf,
+ 0xfe,0xbf,0x3d,0x73,0x97,0x91,0xd8,0xe6,0xc2,0xdb,0x9f,0x9f,0x89,0x2d,0xdc,0x19,
+ 0x71,0xb4,0xd6,0x99,0xb0,0xcc,0x44,0xfd,0x47,0xcb,0x76,0x28,0x9b,0x3,0x90,0xda,
+ 0x52,0x7f,0x70,0x8c,0xcb,0x31,0x62,0xa9,0xe5,0x99,0x91,0xec,0x61,0x4,0x8,0x20,
+ 0x96,0x9f,0x3f,0x7f,0xfe,0x63,0xc0,0xbd,0x73,0x1,0xbd,0x20,0x47,0xf,0x10,0xb0,
+ 0xfa,0xef,0x7f,0x7f,0x32,0x7d,0xfe,0xfc,0xf9,0xbf,0x82,0x82,0x2,0xc1,0x64,0xf2,
+ 0xe0,0xc1,0x3,0x86,0xb7,0xbf,0x3e,0x13,0x93,0xd,0x99,0x18,0x30,0x37,0x9,0x30,
+ 0x21,0xf5,0xef,0x98,0x91,0xd4,0xfd,0x65,0xc0,0x5c,0x7,0xfb,0x13,0x6d,0x76,0x19,
+ 0x79,0xf6,0xf9,0x17,0x5a,0xad,0xc8,0x80,0x66,0x1e,0xd6,0xb5,0x1d,0x0,0x1,0xc4,
+ 0xf2,0xfa,0xf5,0x6b,0xe4,0xc6,0xda,0x5f,0x6,0x2c,0x5b,0x4e,0x18,0xf0,0x2f,0x4,
+ 0x61,0xfa,0xfc,0xed,0x2b,0x3,0xb0,0xec,0x62,0xfc,0xf2,0xe5,0xb,0xc1,0xc0,0x2,
+ 0x95,0x71,0xcf,0xde,0xbe,0x24,0x76,0x68,0x19,0x5b,0x8d,0x8,0x6b,0x17,0xfe,0xc2,
+ 0xe2,0xa6,0xff,0x68,0x13,0xa5,0xbf,0xd0,0xba,0x31,0xbf,0xb0,0x94,0x59,0xc,0x48,
+ 0x1,0x87,0x6d,0x3d,0x5,0xbc,0x31,0xc,0x10,0x40,0x2c,0x6f,0xde,0xbc,0xc1,0xd7,
+ 0xdb,0xc7,0x36,0xc,0x83,0x91,0x15,0x3f,0x7f,0x7,0x7,0x16,0x3,0xf1,0x81,0xf5,
+ 0x8a,0xd8,0x46,0x29,0x7a,0x5f,0x8f,0x9,0x6d,0xe,0xf0,0x1f,0x8e,0x4a,0xe5,0x1f,
+ 0x3,0xee,0x35,0xf4,0xff,0xb1,0xc,0x49,0xa3,0x8f,0x64,0x60,0x1b,0xd1,0xf8,0xf,
+ 0x10,0x60,0x0,0xc4,0x34,0x3b,0x42,0xd5,0x78,0x67,0x8a,0x0,0x0,0x0,0x0,0x49,
+ 0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/aqua.png
+ 0x0,0x0,0x1,0x1e,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x4,0x0,0x0,0x0,0x13,0x8,0x2,0x0,0x0,0x0,0x38,0x40,0x3b,0xa,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x0,0xb0,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0xbc,0xf7,0xf0,0xcb,0xbf,0xff,0xff,0x19,0x19,0x19,0xff,0xff,0xff,0xf,0x10,0x40,
+ 0x2c,0xf7,0x3f,0xfd,0x66,0x64,0x64,0x80,0x0,0x80,0x0,0x62,0x79,0xf9,0xf5,0xf,
+ 0x3,0xc,0x0,0x4,0x10,0xcb,0x97,0x9f,0xff,0xe1,0x1c,0x80,0x0,0x62,0xf9,0x85,
+ 0x90,0x60,0x0,0x8,0x20,0x96,0x1f,0x7f,0xff,0x33,0x31,0x32,0x41,0x38,0x0,0x1,
+ 0xc4,0xc2,0xc0,0xc4,0xcc,0x0,0x33,0x0,0x20,0x80,0x58,0xfe,0xff,0x67,0xfa,0xb,
+ 0xd3,0x5,0x10,0x40,0x2c,0x37,0xdf,0xb2,0xc0,0xf5,0x0,0x4,0x10,0xb,0x3b,0x7,
+ 0x82,0x3,0x10,0x40,0x2c,0x1c,0xec,0xec,0x70,0xe,0x40,0x0,0xb1,0x70,0xb2,0x33,
+ 0xc1,0x39,0x0,0x1,0xc4,0xc2,0xc5,0x8d,0xb0,0x7,0x20,0x80,0x58,0x78,0x39,0x11,
+ 0x1c,0x80,0x0,0x62,0x61,0xe1,0x40,0x70,0x0,0x2,0x88,0x85,0x93,0xd,0xc1,0x1,
+ 0x8,0x20,0x14,0xe,0x40,0x0,0x31,0x6e,0xfc,0x8c,0x70,0x35,0x40,0x0,0x31,0x6e,
+ 0xff,0xff,0x1f,0x6e,0x2b,0x40,0x80,0x1,0x0,0x28,0x2a,0x22,0x2e,0x4,0xbe,0xb8,
+ 0x37,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/eyedropper.png
+ 0x0,0x0,0x2,0x44,
+ 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,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,0xd8,
+ 0xeb,0xf5,0x1c,0x14,0xaa,0x0,0x0,0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x6d,
+ 0x98,0x0,0x0,0x73,0x8e,0x0,0x0,0xea,0x48,0x0,0x0,0x86,0x0,0x0,0x0,0x77,
+ 0xef,0x0,0x0,0xd0,0xf0,0x0,0x0,0x32,0xf7,0x0,0x0,0x1c,0x74,0xb6,0xd2,0x6c,
+ 0xb,0x0,0x0,0x1,0xba,0x49,0x44,0x41,0x54,0x78,0xda,0x62,0x62,0x20,0x3,0x48,
+ 0xcb,0xa8,0xff,0x7,0x61,0x20,0x93,0xb,0x20,0x80,0x98,0x48,0xd5,0x2c,0x29,0xad,
+ 0xf9,0xbf,0xb8,0x7c,0x3e,0xc3,0xbf,0x7f,0xec,0xc,0x6a,0xea,0x16,0x5f,0x1,0x2,
+ 0x88,0x89,0x58,0x1b,0xe7,0x2f,0x3a,0xf8,0x5f,0x42,0x4a,0xeb,0x7f,0x51,0xe9,0x42,
+ 0x86,0xed,0x3b,0xef,0x33,0x8,0x8b,0xea,0x30,0xfc,0xfc,0xf9,0x9d,0x1,0x20,0x80,
+ 0x8,0x6a,0x56,0x52,0xb1,0xf8,0xdf,0x37,0xe9,0x38,0x50,0xb3,0xc9,0xff,0x8e,0xde,
+ 0xb3,0xff,0x9d,0xbc,0x56,0xfc,0x57,0xd3,0xc,0x5,0x1b,0xb6,0x62,0xd5,0xbe,0xff,
+ 0x0,0x1,0x84,0x57,0xb3,0xac,0xac,0xda,0xff,0x89,0x53,0xf,0xff,0x77,0xf1,0x59,
+ 0xf6,0x5f,0x55,0x2b,0xf5,0xbf,0x88,0xb8,0x5,0x90,0x8e,0xfd,0x2f,0x23,0x67,0xf2,
+ 0xbf,0xb1,0x79,0x9,0x28,0xc,0x4c,0x0,0x2,0x88,0x91,0x80,0x3,0xd8,0xa5,0xa4,
+ 0x35,0x7f,0xf0,0xf2,0x6b,0x33,0xbc,0x7e,0x7d,0x87,0x81,0x8d,0x5d,0x88,0x81,0x85,
+ 0xf9,0x37,0x43,0x64,0x54,0x16,0x43,0x77,0x7b,0xa4,0x29,0x50,0xfe,0x13,0x40,0x0,
+ 0xe1,0x35,0x60,0xf6,0xec,0xc5,0xff,0x3f,0x7e,0x66,0x66,0xe8,0xed,0x69,0x61,0xf8,
+ 0xf3,0x97,0x85,0xe1,0xff,0x7f,0x46,0x6,0x2e,0x2e,0x1e,0x86,0x7f,0x7f,0xdf,0x30,
+ 0x3c,0x79,0x7c,0x53,0xf,0xa8,0xe4,0x5,0x40,0x0,0xe1,0xc,0xc4,0xf9,0xf3,0xe7,
+ 0xff,0x4f,0x49,0x89,0x61,0x60,0x64,0xf8,0xcc,0xe0,0xec,0xe2,0xc7,0xc0,0xca,0xf2,
+ 0x9b,0x81,0x85,0xe5,0xf,0x3,0x2b,0xeb,0x1f,0x90,0x66,0x90,0xed,0xdf,0x80,0xf8,
+ 0x2b,0x40,0x0,0x61,0xd5,0xbc,0x68,0xd1,0xa2,0xff,0x20,0xf0,0xe5,0xcb,0x97,0xff,
+ 0x19,0x99,0x39,0xff,0xb9,0x79,0x78,0xc1,0xfe,0x95,0x95,0x53,0x5,0xd1,0x86,0x40,
+ 0xac,0x6,0xc4,0x82,0x40,0xcc,0xc,0x10,0x40,0x18,0x9a,0x17,0x2c,0x58,0x0,0xd6,
+ 0xfc,0xf5,0xeb,0xd7,0xff,0x9b,0x36,0x6d,0xfa,0xcf,0xcb,0xb,0xd1,0xc,0xd5,0x24,
+ 0x3,0xc5,0x70,0xcd,0x0,0x1,0x84,0xd5,0x66,0x98,0x66,0x3e,0x3e,0x3e,0x64,0xcd,
+ 0x20,0x4d,0xec,0x50,0xc,0xd7,0xc,0x10,0x40,0x58,0x9d,0xbd,0x71,0xe3,0x46,0x74,
+ 0x9b,0xb1,0xdb,0x8,0x4,0x0,0x1,0x4,0x46,0x25,0x25,0x25,0x28,0x36,0xf3,0xf0,
+ 0xf0,0x10,0xad,0x19,0x20,0x80,0xc0,0x8,0x64,0x23,0xc8,0x66,0x72,0x34,0x3,0x4,
+ 0x10,0xc3,0xe6,0xcd,0x9b,0xff,0x7f,0xfb,0xf6,0xd,0xec,0x64,0x92,0x9c,0xd,0x5,
+ 0x0,0x1,0x4,0x4a,0x48,0xec,0xc0,0xc0,0xfa,0xf1,0xe9,0xd3,0x27,0x3d,0xa8,0x18,
+ 0x28,0x7e,0xdf,0x81,0x52,0x19,0x10,0xff,0x25,0x64,0x0,0x40,0x80,0x1,0x0,0xe3,
+ 0x8e,0xc8,0xed,0xab,0x89,0x9e,0x95,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,
+ 0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/smudge.png
+ 0x0,0x0,0x2,0xd9,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x13,0x0,0x0,0x0,0x12,0x8,0x6,0x0,0x0,0x0,0xb9,0xc,0xe5,0x69,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x2,0x6b,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0xfc,0xff,0xff,0x3f,0x3,0xb5,0x0,0x40,0x0,0x31,0x11,0xa3,0xe8,0xcf,0x9f,0x3f,
+ 0x20,0x1b,0x51,0x30,0x8,0x98,0x9b,0x9b,0xa3,0xb8,0x4,0x20,0x80,0xf0,0x1a,0x36,
+ 0x69,0xd2,0xa4,0xff,0xbf,0x7e,0xfd,0xfa,0xcf,0xcc,0xcc,0xcc,0x80,0xee,0x83,0x7f,
+ 0xff,0xfe,0x31,0xb0,0xb2,0xb2,0xa2,0x88,0x1,0x4,0x10,0x58,0x11,0x2e,0xfc,0xe3,
+ 0xc7,0x8f,0xff,0xbf,0x7f,0xff,0xfe,0xf,0x72,0xd9,0xdf,0xbf,0x7f,0xff,0x3,0xd,
+ 0x80,0xe3,0xaf,0x5f,0xbf,0xfe,0x8f,0x8a,0x8a,0xfa,0x9f,0x91,0x91,0xf1,0x1f,0xa6,
+ 0x1e,0x20,0x80,0x70,0xba,0xec,0xe3,0xc7,0x8f,0xff,0x2f,0x5e,0xbc,0x8,0x37,0x18,
+ 0xe4,0x12,0x10,0xd,0x34,0x94,0xe1,0xe7,0xcf,0x9f,0x60,0xbe,0x92,0x92,0x12,0x3,
+ 0xd0,0x32,0xb8,0x1e,0x80,0x0,0x62,0xc2,0x15,0x46,0x2b,0x56,0xac,0x0,0x2b,0x3e,
+ 0x72,0xe4,0x8,0x58,0x23,0x50,0x8c,0xe1,0xdb,0xb7,0x6f,0xc,0x5f,0xbe,0x7c,0x61,
+ 0xf8,0xf4,0xe9,0x13,0xc8,0xd5,0xc,0xe2,0xe2,0xe2,0xc,0x6f,0xdf,0xbe,0x85,0xeb,
+ 0x3,0x8,0x20,0xac,0x86,0x75,0x76,0x76,0x32,0xc4,0xc4,0xc4,0x30,0x6c,0xd8,0xb0,
+ 0x81,0xc1,0xc4,0xc4,0x84,0x61,0xe7,0xce,0x9d,0xc,0xef,0xde,0xbd,0x63,0x0,0x7a,
+ 0xd,0x6c,0x10,0xc8,0x50,0x10,0x5f,0x4e,0x4e,0x8e,0xe1,0xc3,0x87,0xf,0x70,0x7d,
+ 0x0,0x1,0x84,0xd5,0x30,0xb,0xb,0xb,0x86,0xee,0xee,0x6e,0x6,0x3f,0x3f,0x3f,
+ 0xb0,0xc1,0x8a,0x8a,0x8a,0x60,0x43,0xce,0x9c,0x39,0xc3,0x50,0x50,0x50,0x0,0x76,
+ 0x29,0x88,0xcf,0xc9,0xc9,0xc9,0xf0,0xf2,0xe5,0x4b,0xb8,0x3e,0x80,0x0,0xc2,0x6a,
+ 0xd8,0xe1,0xc3,0x87,0x19,0x6c,0x6c,0x6c,0x18,0x6a,0x6b,0x6b,0x19,0x5c,0x5c,0x5c,
+ 0x18,0x58,0x58,0x58,0x18,0x1e,0x3f,0x7e,0xc,0xf6,0xf2,0xcd,0x9b,0x37,0xc1,0x2e,
+ 0x64,0x62,0x62,0x2,0x85,0x2b,0x3,0x23,0x23,0x23,0x5c,0x1f,0x40,0x0,0x61,0x35,
+ 0xac,0xa1,0xa1,0x81,0xf1,0xc1,0x83,0x7,0xc,0xd2,0xd2,0xd2,0xc,0x92,0x92,0x92,
+ 0xc,0xec,0xec,0xec,0xc,0xbb,0x76,0xed,0x62,0x78,0xf2,0xe4,0x9,0x83,0xa0,0xa0,
+ 0x20,0xd8,0x0,0x90,0x57,0xdf,0xbc,0x79,0x3,0x76,0x1d,0xc,0x0,0x4,0x10,0xce,
+ 0xd8,0x4,0x79,0x29,0x35,0x35,0x95,0x81,0x83,0x83,0x83,0x61,0xd3,0xa6,0x4d,0xc,
+ 0x3b,0x76,0xec,0x60,0xb8,0x77,0xef,0x1e,0x43,0x68,0x68,0x28,0xc3,0xf3,0xe7,0xcf,
+ 0x19,0xee,0xde,0xbd,0xcb,0xd0,0xdf,0xdf,0xcf,0xa0,0xa2,0xa2,0x2,0xd7,0x3,0x10,
+ 0x40,0x2c,0xb8,0xc,0x53,0x56,0x56,0x86,0x7b,0x6f,0xfe,0xfc,0xf9,0xc,0xad,0xad,
+ 0xad,0x60,0x17,0x81,0xc2,0xeb,0xd6,0xad,0x5b,0xc,0xd3,0xa6,0x4d,0x63,0x30,0x32,
+ 0x32,0x62,0x58,0xbe,0x7c,0x39,0xdc,0x9f,0x0,0x1,0xc4,0x88,0x2d,0x6f,0xe6,0xe6,
+ 0xe6,0xfe,0x6f,0x6c,0x6c,0x4,0xc7,0x58,0x7e,0x7e,0x3e,0x98,0x66,0x63,0x63,0x3,
+ 0x7b,0x17,0x64,0x1,0x28,0x49,0x80,0x92,0x6,0xb2,0x41,0x20,0x0,0x10,0x40,0x18,
+ 0x2e,0x3,0xba,0x0,0x94,0xe7,0xc0,0x2e,0xb8,0x7f,0xff,0x3e,0xd8,0x65,0x3a,0x3a,
+ 0x3a,0xc,0xcb,0x96,0x2d,0x63,0x24,0x94,0x87,0x1,0x2,0x8,0x23,0xb,0xf5,0xf4,
+ 0xf4,0xfc,0x7,0x6,0xec,0xff,0xed,0xdb,0xb7,0xff,0x7,0x7a,0xe3,0x7f,0x5c,0x5c,
+ 0xdc,0x7f,0x7c,0x59,0xe,0x19,0x3,0x4,0x10,0xa,0x27,0x3d,0x3d,0xfd,0x3f,0x30,
+ 0x60,0xff,0x9f,0x38,0x71,0xe2,0xbf,0x9d,0x9d,0xdd,0xff,0x84,0x84,0x4,0xa2,0xd,
+ 0x2,0x61,0x80,0x0,0x42,0x9,0xb3,0xca,0xca,0xca,0xff,0xa0,0xf0,0x1,0x79,0xf,
+ 0x94,0xba,0xe7,0xcc,0x99,0xc3,0x48,0x4a,0x79,0x6,0x10,0x40,0x8c,0xd4,0x2c,0x1c,
+ 0x1,0x2,0xc,0x0,0x22,0x6,0xa9,0x7,0xeb,0xc8,0x20,0x9,0x0,0x0,0x0,0x0,
+ 0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/layer-vector.png
+ 0x0,0x0,0x3,0x57,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x13,0x0,0x0,0x0,0x10,0x8,0x6,0x0,0x0,0x0,0xf4,0xc4,0x44,0x62,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x2,0xe9,0x49,0x44,0x41,0x54,0x78,0xda,0x6c,
+ 0xca,0xa1,0xd,0x0,0x30,0x8,0x4,0xc0,0xaf,0x24,0x81,0x45,0xd9,0x8c,0xed,0x48,
+ 0x40,0x20,0x48,0xbe,0xb6,0xa2,0xa7,0xef,0x44,0x4,0xbb,0x1b,0x33,0x3,0x92,0xf8,
+ 0xd9,0x5d,0x64,0x26,0xaa,0xa,0xaa,0xa,0x11,0x81,0x99,0xc1,0xdd,0xcf,0xfb,0xae,
+ 0x0,0x62,0x79,0xf9,0xf2,0x25,0x83,0xbb,0xbb,0x3b,0x3,0x13,0x13,0x13,0x3,0x2e,
+ 0xf0,0xfb,0xf7,0x6f,0x86,0x6f,0xdf,0xbe,0x31,0x7c,0xfd,0xfa,0x95,0xe1,0xe9,0xd3,
+ 0xa7,0xc,0x20,0x3d,0x5e,0x5e,0x5e,0xc,0xf5,0xf5,0xf5,0xff,0x1b,0x1b,0x1b,0xe1,
+ 0x6,0x2,0x4,0x10,0x13,0x33,0x33,0x33,0xd8,0x20,0x10,0x66,0x64,0x64,0xc4,0x8a,
+ 0xd9,0xd8,0xd8,0xc0,0x2e,0x2,0xb9,0x46,0x52,0x52,0x12,0x6c,0xa0,0x8c,0x8c,0xc,
+ 0x43,0x62,0x62,0x22,0x43,0x75,0x75,0x35,0xdc,0x3b,0x0,0x1,0x4,0x76,0xe,0xb,
+ 0xb,0xb,0x3,0xc8,0x50,0x7c,0x18,0x64,0x20,0x37,0x37,0x37,0xd8,0xc0,0xc7,0x8f,
+ 0x1f,0x83,0x35,0x83,0xc,0x4c,0x4d,0x4d,0x65,0xa8,0xab,0xab,0x3,0x1b,0x8,0x10,
+ 0x40,0x2c,0x20,0x2,0xa4,0x18,0xe4,0x2,0x18,0xa8,0x6f,0x6c,0x66,0xa8,0xab,0xa9,
+ 0x2,0x8b,0x83,0xc0,0xaf,0x5f,0xbf,0x18,0x16,0xce,0x9b,0xc3,0x70,0x68,0xf7,0x16,
+ 0x6,0xa0,0x57,0x18,0x78,0x44,0x65,0x19,0x62,0x62,0x62,0xc0,0xde,0x16,0x17,0x17,
+ 0x67,0xe0,0xe3,0xe3,0x63,0x58,0xb1,0x62,0xc5,0x7f,0x80,0x0,0x2,0x1b,0xc6,0xca,
+ 0xca,0xa,0x37,0xe8,0xe8,0xd1,0x63,0xc,0x17,0x9f,0xb,0x32,0x2c,0x5a,0xb2,0x82,
+ 0x21,0x35,0x39,0x1e,0x1c,0x29,0x19,0x89,0x91,0xc,0xee,0xbc,0x97,0x18,0xd6,0x39,
+ 0xfe,0x60,0xf8,0xf6,0x9b,0x81,0x21,0x6f,0xdf,0x7d,0x6,0x25,0xf7,0x34,0x6,0x73,
+ 0x4b,0x6b,0xb0,0xfc,0xb3,0x67,0xcf,0xc0,0xe1,0x8,0x10,0x40,0x70,0x6f,0xc2,0xc,
+ 0x9c,0x34,0x77,0x1d,0x83,0xb2,0x5b,0x1b,0xc3,0xee,0xe3,0xf7,0x18,0xfe,0xfe,0xfd,
+ 0xcb,0x70,0xfc,0xf8,0x71,0x6,0xe5,0xbf,0x37,0x19,0x8a,0x4d,0x7f,0x30,0x8,0x72,
+ 0x32,0x30,0x48,0xf3,0x31,0x30,0xac,0xf0,0xfd,0xc8,0xb0,0x63,0xed,0x62,0x6,0x45,
+ 0x45,0x45,0xb0,0xcb,0xa4,0xa4,0xa4,0xc0,0xae,0x7,0x8,0x20,0x14,0x6f,0xf6,0x4d,
+ 0x9c,0xc6,0xc0,0xa9,0x57,0x4,0x64,0x33,0x31,0xf0,0x19,0x15,0x31,0x4c,0x98,0x32,
+ 0x93,0x81,0x8b,0xe5,0xf,0x83,0x87,0xec,0x47,0x94,0xd8,0x65,0x5,0xfa,0x5e,0x49,
+ 0xf0,0x1f,0x38,0x86,0xf9,0xf9,0xf9,0xc1,0x62,0xd7,0xae,0x5d,0x63,0x0,0x8,0x20,
+ 0xb0,0x61,0xa0,0x98,0x7c,0x1,0x74,0xe6,0xc1,0xb,0xef,0x19,0x64,0x5c,0x8d,0x18,
+ 0xe,0xaf,0xf1,0x61,0xf8,0x2c,0x7a,0x9b,0x61,0xff,0x97,0x37,0xc,0xfc,0xdf,0xd9,
+ 0x18,0xa2,0xfe,0x33,0x31,0xf8,0x6b,0xfc,0x83,0x1b,0x6,0x4a,0x8e,0x4f,0x3e,0xfe,
+ 0x7,0xc7,0x2c,0xc8,0x11,0xff,0xfe,0xfd,0x3,0x27,0x1f,0x80,0x0,0x62,0x81,0x29,
+ 0xa8,0xae,0x6d,0x4,0xaa,0x12,0x60,0x78,0xb1,0xaf,0x80,0xe1,0xfb,0xb7,0x2b,0xc,
+ 0x9f,0xd7,0x3c,0x4,0x8b,0x7f,0xfb,0xc3,0xc0,0xb0,0xd8,0x9a,0x81,0xc1,0xf5,0x2e,
+ 0x3,0x83,0x9b,0x12,0x3,0xc3,0x57,0x60,0x98,0xd5,0x1c,0xe6,0x66,0xb0,0x72,0xb,
+ 0x1,0xc7,0x2c,0xc8,0x20,0x58,0xe4,0x1,0x4,0x10,0xd8,0x30,0x10,0x67,0xe1,0xbc,
+ 0x59,0xf0,0x84,0xeb,0x93,0x74,0x99,0x61,0x1f,0xc3,0x43,0x6,0x98,0x8a,0x57,0x5b,
+ 0x19,0x18,0x92,0x5d,0x38,0x19,0xa4,0xce,0x88,0x30,0x70,0x72,0xf3,0x30,0x4,0x47,
+ 0xa7,0x30,0xc4,0x27,0x26,0x33,0xc0,0x7c,0x5,0xca,0x11,0x20,0x0,0x10,0x40,0x60,
+ 0xc3,0x40,0x69,0x8,0x14,0x2b,0x8c,0xb0,0x5c,0xc0,0x88,0x96,0x5,0x44,0x80,0xd8,
+ 0x56,0x88,0x61,0x5d,0xf9,0x31,0x6,0x21,0x21,0x21,0xb0,0x5a,0x64,0xc,0x8a,0x40,
+ 0x10,0x0,0x8,0x20,0xb8,0xcb,0x60,0x69,0xa,0x62,0x16,0x23,0xd6,0x6c,0x5,0xcb,
+ 0x29,0x90,0x70,0x43,0x18,0x6,0x3,0x0,0x1,0xc4,0x82,0xae,0x8,0x4,0xf8,0x98,
+ 0xf8,0x18,0x8c,0xa3,0x8c,0x51,0xc,0xfa,0xf6,0xe4,0x1b,0x3,0x17,0x17,0x17,0xd8,
+ 0x52,0x98,0x1,0x70,0xc3,0xa0,0x7c,0x80,0x0,0x62,0x1,0x5,0x20,0xc8,0x20,0x64,
+ 0x1b,0x56,0x2d,0x58,0x85,0xd5,0x65,0xb8,0x4a,0x15,0x50,0xae,0x0,0x99,0x3,0x10,
+ 0x40,0x60,0xc3,0x5c,0x5c,0x5c,0x18,0xee,0xdd,0xbb,0xc7,0xc0,0xce,0xce,0xce,0x40,
+ 0x2a,0xf8,0xf9,0xf3,0x27,0x83,0x92,0x92,0x12,0x83,0xb7,0xb7,0x37,0x3,0x40,0x80,
+ 0x1,0x0,0x51,0x26,0xb,0x0,0xd5,0xe8,0x78,0xaa,0x0,0x0,0x0,0x0,0x49,0x45,
+ 0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/magnify.png
+ 0x0,0x0,0x2,0xf8,
+ 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,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,0xd8,
+ 0xeb,0xf5,0x1c,0x14,0xaa,0x0,0x0,0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x6d,
+ 0x98,0x0,0x0,0x73,0x8e,0x0,0x0,0xea,0x48,0x0,0x0,0x86,0x0,0x0,0x0,0x77,
+ 0xef,0x0,0x0,0xd0,0xf0,0x0,0x0,0x32,0xf7,0x0,0x0,0x1c,0x74,0xb6,0xd2,0x6c,
+ 0xb,0x0,0x0,0x2,0x6e,0x49,0x44,0x41,0x54,0x78,0xda,0x62,0xfc,0xff,0xff,0x3f,
+ 0x3,0x8,0x2c,0x5c,0xb8,0xf0,0xff,0xa3,0x47,0x8f,0x18,0x9e,0x3c,0x79,0xc2,0xf0,
+ 0xfe,0xfd,0x7b,0x6,0x5e,0x5e,0x5e,0x6,0x23,0x23,0x23,0x86,0xec,0xec,0x6c,0x46,
+ 0x6,0x3c,0x0,0x20,0x80,0x18,0x41,0x6,0xcc,0x9c,0x39,0xf3,0xbf,0xa8,0xa8,0x28,
+ 0x83,0x82,0xbc,0x3c,0x83,0x98,0xb8,0x38,0xc3,0xb7,0x6f,0xdf,0x18,0xae,0x5f,0xbf,
+ 0xce,0xb0,0x61,0xc3,0x6,0x6,0x6e,0x6e,0x6e,0x86,0x29,0x53,0xa6,0xe0,0x34,0x4,
+ 0x20,0x80,0x98,0xd5,0xd4,0xd4,0xfe,0xf3,0xf3,0xf3,0x33,0x38,0x3b,0x3b,0x83,0x6d,
+ 0xfd,0xf9,0xf3,0x27,0xc3,0xef,0xdf,0xbf,0x19,0xb8,0x38,0x39,0x19,0x74,0x75,0x75,
+ 0x19,0x36,0x6f,0xde,0xcc,0xf0,0xee,0xdd,0xbb,0x6,0x73,0x73,0xf3,0x46,0x6c,0x6,
+ 0x0,0x4,0x10,0xd3,0x83,0x7,0xf,0x18,0x94,0x95,0x95,0xc1,0x9a,0xbe,0x7c,0xf9,
+ 0x2,0xb6,0xfd,0xfb,0xf7,0xef,0xc,0xdf,0x7f,0xfc,0x60,0xf8,0xfc,0xf9,0x33,0x83,
+ 0x95,0x95,0x15,0xc3,0xca,0x95,0x2b,0x71,0x7a,0x1,0x20,0x80,0x98,0x5e,0xbc,0x78,
+ 0xc1,0x20,0x22,0x22,0xc2,0xf0,0x1d,0xa8,0xf1,0x7,0x50,0xd3,0x4f,0x10,0x6,0xba,
+ 0x2,0xc4,0x6,0x19,0x24,0x20,0x20,0xc0,0x70,0xef,0xde,0x3d,0x9c,0x6,0x0,0x4,
+ 0x10,0xd3,0xdb,0xb7,0x6f,0x19,0xbe,0x1,0x6d,0x6,0x29,0x6,0x69,0xfc,0xf9,0xeb,
+ 0x17,0xc3,0x2f,0x20,0x66,0x65,0x65,0x65,0x50,0x51,0x52,0x2,0xbb,0xe8,0xef,0xdf,
+ 0xbf,0xc,0x77,0xee,0xdc,0xf9,0x8f,0xcd,0x0,0x80,0x0,0x62,0xe2,0xe2,0xe2,0x62,
+ 0xb8,0xa,0xc,0xb0,0xaf,0x5f,0xbf,0x82,0x31,0x48,0x3,0x3b,0x3b,0x3b,0x83,0x96,
+ 0x96,0x16,0x3,0x3,0x13,0x13,0x3,0x28,0x66,0xa4,0xa5,0xa5,0x19,0xfe,0xfd,0xfb,
+ 0x87,0xd5,0x5,0x0,0x1,0xc4,0x64,0x66,0x66,0x6,0xe,0xa8,0xcf,0x40,0x57,0x80,
+ 0xfc,0xfc,0xf1,0xe3,0x47,0x6,0x29,0x29,0x29,0x86,0xd3,0xa7,0x4f,0x33,0x6c,0xdf,
+ 0xbe,0x9d,0x61,0xd5,0xaa,0x55,0xc,0x51,0x51,0x51,0x40,0xb3,0x98,0xb0,0x1a,0x0,
+ 0x10,0x40,0x8c,0xcf,0x9e,0x3d,0xfb,0xdf,0xda,0xda,0xca,0xf0,0xf0,0xe1,0x43,0x6,
+ 0x73,0xa0,0x61,0x42,0xc2,0xc2,0x60,0x57,0x80,0x2,0x77,0xf5,0xea,0xd5,0x60,0xaf,
+ 0x81,0xbc,0xb4,0x72,0xc5,0xa,0x6,0xff,0x80,0x0,0x8c,0xe8,0x4,0x8,0x20,0x6,
+ 0x50,0x3a,0x0,0xe1,0x89,0x13,0x27,0xfe,0xb7,0xb3,0xb5,0xfd,0xf,0xb4,0xfd,0xbf,
+ 0x98,0x98,0xd8,0x7f,0x60,0x22,0xfa,0x5f,0x5b,0x5b,0xfb,0x1f,0x18,0x7d,0xff,0x81,
+ 0x5e,0x2,0xe3,0x1d,0x3b,0x76,0xfc,0x87,0xa9,0x87,0x61,0x80,0x0,0x62,0x84,0xa5,
+ 0x44,0x64,0x70,0xeb,0xd6,0x2d,0xb0,0xc2,0x3f,0x7f,0xfe,0x30,0xac,0x5b,0xbb,0x96,
+ 0x61,0xd7,0xee,0xdd,0x60,0x2f,0x81,0xc0,0xd6,0xad,0x5b,0x41,0x69,0x6,0xee,0x12,
+ 0x80,0x0,0x62,0xc1,0xe6,0x2f,0x60,0xe2,0x42,0x28,0x60,0x61,0x81,0xdb,0x70,0xe6,
+ 0xcc,0x19,0x6,0x6f,0x6f,0x6f,0x86,0x6d,0xdb,0xb6,0xfd,0x77,0x72,0x72,0x2,0xab,
+ 0x1,0x8,0x20,0x6,0x74,0x27,0xa1,0xe3,0xe7,0xcf,0x9f,0xff,0x7,0x45,0x61,0x73,
+ 0x73,0xf3,0x7f,0x1b,0x1b,0x1b,0xb8,0x77,0xe,0x1c,0x38,0x0,0x76,0x25,0x40,0x0,
+ 0x11,0x34,0x0,0x84,0x5f,0xbe,0x7c,0xf9,0x1f,0x98,0x98,0xfe,0x37,0x37,0x35,0x81,
+ 0xd,0xe1,0xe0,0xe0,0x0,0x87,0xd5,0xe3,0xc7,0x8f,0xff,0x3,0x4,0x10,0xb,0x3,
+ 0x11,0x0,0x18,0xa8,0x8c,0xc0,0x1c,0xfa,0x3f,0x3e,0x3e,0x9e,0x81,0x91,0x91,0x11,
+ 0x9c,0x26,0x40,0x49,0x1c,0x94,0x5e,0x0,0x2,0x8,0x6b,0x20,0xe2,0x2,0xc0,0x34,
+ 0xf2,0x1f,0x94,0x56,0x80,0x81,0xcc,0xa0,0xa2,0xa2,0xc2,0x0,0x74,0x9,0x3,0x40,
+ 0x80,0x1,0x0,0x84,0xd,0x67,0x87,0x48,0xae,0x8b,0x35,0x0,0x0,0x0,0x0,0x49,
+ 0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/pencil2.png
+ 0x0,0x0,0x2,0xb7,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x11,0x0,0x0,0x0,0x11,0x8,0x6,0x0,0x0,0x0,0x3b,0x6d,0x47,0xfa,
+ 0x0,0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13,
+ 0x1,0x0,0x9a,0x9c,0x18,0x0,0x0,0x2,0x69,0x49,0x44,0x41,0x54,0x38,0x8d,0xad,
+ 0xd0,0x4f,0x48,0x93,0x61,0x1c,0x7,0xf0,0xef,0xf3,0xbe,0xef,0xf6,0xce,0x25,0xd3,
+ 0x66,0xa1,0x23,0x45,0xc2,0x18,0x89,0x18,0xb,0x16,0x93,0x5,0x1e,0x92,0xba,0x78,
+ 0x48,0xc2,0x45,0xd,0xf4,0x20,0x76,0x91,0x6e,0x11,0xe4,0xc5,0x77,0xbb,0xf5,0x47,
+ 0xf2,0x10,0x48,0xb2,0x8,0xca,0xb4,0x7a,0x27,0x78,0xe8,0x10,0x1d,0xd5,0x83,0x7,
+ 0xc5,0xb2,0x43,0x3a,0x22,0xa7,0xaf,0x30,0x4d,0xa7,0xd9,0x74,0xbe,0x6f,0x7b,0xf7,
+ 0x3c,0x4f,0x87,0x98,0xe4,0x4c,0x51,0xe8,0x77,0x7d,0xbe,0xbf,0xf,0xbf,0xe7,0xb,
+ 0xfc,0x87,0x21,0x47,0x9,0x2f,0xd4,0xd7,0x73,0x0,0xe0,0xd5,0xd5,0x1b,0x5,0xa2,
+ 0x58,0x51,0xda,0xdb,0xbb,0x5,0x0,0xc2,0x51,0x80,0xd2,0xee,0x6e,0x14,0x5,0x83,
+ 0xb0,0xd9,0x6c,0xc5,0xa6,0xc5,0xf2,0x3c,0xf7,0x76,0x28,0x24,0x12,0x89,0xf0,0xbb,
+ 0x65,0x65,0x30,0xa6,0xa6,0x76,0xce,0x7f,0xb4,0xb0,0x10,0x98,0x9c,0x9c,0xb4,0x1f,
+ 0xa,0x19,0x7b,0x73,0x9d,0x6b,0x9a,0x86,0xc6,0xc6,0x46,0x3c,0x4e,0x24,0xf0,0x6b,
+ 0x66,0x6,0x0,0x30,0x35,0x3d,0xd,0x87,0xc3,0xe1,0x4,0x0,0xe9,0x20,0x60,0x7c,
+ 0xa8,0x95,0xd7,0x9d,0x71,0xe3,0x9b,0x51,0x8e,0x4c,0x26,0x3,0x0,0xa8,0xec,0xeb,
+ 0xc3,0x5,0x97,0xb,0x4f,0x86,0x87,0xb,0xdd,0x6e,0x77,0xfa,0xc0,0x4b,0xc6,0x87,
+ 0x5a,0x79,0xdd,0xd9,0x73,0x80,0xb9,0x89,0x2b,0x45,0xef,0xc1,0x18,0xc3,0xec,0xec,
+ 0x2c,0x0,0xa0,0x27,0x1a,0xb5,0x7a,0x3c,0x9e,0x74,0x2e,0xfb,0x4f,0x64,0x7,0xd0,
+ 0x57,0x91,0xd5,0x93,0x38,0x59,0x52,0x88,0xa6,0xa2,0x67,0x58,0x9a,0x98,0xd8,0x1e,
+ 0x19,0x19,0x71,0x79,0xbd,0x5e,0xf3,0xef,0xfc,0x1e,0x24,0x1f,0x0,0x80,0xf5,0xc4,
+ 0x67,0x34,0x77,0x26,0xf1,0x70,0x70,0xd0,0xe3,0xf3,0xf9,0x96,0xf3,0x77,0x76,0x75,
+ 0xa2,0xbd,0xa8,0xe5,0x15,0xfb,0x0,0x3d,0xd1,0xa8,0x35,0xff,0x82,0x5d,0x8,0x7,
+ 0xc8,0xe8,0xeb,0x1b,0xac,0xa2,0xd6,0xb,0xe8,0xc9,0x3d,0xc0,0x83,0x81,0x1,0xfb,
+ 0x7e,0xc0,0xce,0x77,0xee,0x37,0xe0,0xf4,0xe2,0xda,0x22,0x66,0xd6,0x4d,0x6c,0xaf,
+ 0x7f,0x45,0x46,0xdf,0xf8,0x3,0xdc,0x5b,0x5d,0x19,0x8b,0xc7,0x89,0xdf,0xef,0xd7,
+ 0xf7,0x3,0x0,0x40,0x8,0x4,0x20,0x66,0x8b,0x5,0x5f,0x53,0xf0,0x25,0xe6,0x3e,
+ 0xbe,0xc5,0x9c,0x54,0x83,0xad,0x1f,0x1a,0x9a,0x3b,0x93,0x18,0x8d,0xc7,0x5d,0x9c,
+ 0x73,0xa2,0x28,0x8a,0xa0,0x28,0x8a,0xa0,0xaa,0xaa,0xc8,0x39,0x17,0x54,0x55,0x15,
+ 0x15,0x45,0x91,0x38,0xe7,0x4,0x0,0x48,0xf7,0x4d,0xd7,0x89,0xfa,0xab,0x1,0xad,
+ 0xe6,0xf2,0xed,0x82,0xb9,0x4f,0xaf,0xd0,0xd1,0xde,0xf,0x0,0xbc,0xad,0xab,0xeb,
+ 0x56,0x2c,0x16,0xfb,0x22,0xcb,0xb2,0x2e,0x8a,0x22,0xa1,0x94,0x9a,0x92,0x24,0xa5,
+ 0x75,0x5d,0xcf,0xd8,0xed,0x76,0x58,0xad,0x56,0x9a,0x4e,0xa7,0x53,0xa1,0x50,0x48,
+ 0x97,0x2a,0xfd,0xde,0x3b,0x97,0xda,0x9e,0x16,0x8c,0xbf,0x2b,0x46,0x47,0x7b,0x3f,
+ 0x1a,0x5a,0x5a,0x54,0x6,0x18,0x9a,0xa6,0x9d,0xb7,0xd9,0x6c,0xe5,0x94,0xd2,0x35,
+ 0x0,0x59,0x51,0x14,0x53,0x86,0x61,0x2c,0x73,0xce,0x57,0x4,0x41,0x30,0x18,0x63,
+ 0x46,0xae,0xe,0x52,0x55,0x5,0x7e,0xed,0x62,0x25,0x8e,0x9d,0xa,0x7e,0x80,0x2c,
+ 0xc7,0x8,0x21,0xab,0x84,0x90,0x4,0xa5,0x34,0x5,0x20,0x5,0x60,0x8b,0x31,0x46,
+ 0x5,0x41,0xd8,0xb4,0x58,0x2c,0x3f,0x4d,0xd3,0xdc,0x74,0x38,0x1c,0xe6,0xfc,0xfc,
+ 0x3c,0x73,0x3a,0x9d,0x66,0x38,0x1c,0x66,0x84,0x73,0x2e,0x86,0x42,0xa1,0xe3,0x94,
+ 0xd2,0x12,0x59,0x96,0x8d,0x6c,0x36,0xfb,0x3d,0x1c,0xe,0x1b,0x7,0x15,0x99,0x3f,
+ 0xbf,0x1,0x62,0x93,0x23,0x58,0x29,0xc1,0x80,0xb5,0x0,0x0,0x0,0x0,0x49,0x45,
+ 0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/thinlines5.png
+ 0x0,0x0,0x1,0x55,
+ 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,0x2,0x0,0x0,0x0,0x90,0x91,0x68,0x36,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x0,0xe7,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0x3c,0xfa,0xe0,0x1d,0x3,0x71,0xe0,0xd5,0xa7,0xaf,0x77,0x9f,0xbf,0x5,0x8,0x20,
+ 0x26,0xe2,0x55,0xdf,0x7b,0xfe,0x16,0xc8,0x0,0x8,0x20,0x26,0xe2,0x55,0xff,0x7,
+ 0xb3,0x1,0x2,0x88,0x89,0x24,0xd5,0x40,0x0,0x10,0x40,0x4c,0x24,0xa9,0x6,0x2,
+ 0x80,0x0,0x62,0x22,0x49,0x35,0x10,0x0,0x4,0x10,0x13,0x49,0xaa,0x81,0x0,0x20,
+ 0x80,0xb0,0x6b,0xd8,0xb4,0x7e,0xed,0x9c,0x9,0xdd,0xff,0xb1,0x49,0x1,0x4,0x10,
+ 0x16,0xd,0x4f,0x5e,0xbd,0xf9,0xcf,0x23,0xac,0x65,0xe9,0x80,0xd5,0x2c,0x80,0x0,
+ 0x42,0xd7,0x70,0xee,0xfc,0xf9,0x4c,0x3f,0x47,0x41,0x9,0x69,0x71,0x39,0x25,0xac,
+ 0x1a,0x0,0x2,0x8,0x45,0xc3,0xd1,0xa3,0x47,0x3e,0x33,0x71,0x25,0x35,0x4e,0x64,
+ 0x65,0x63,0xc7,0xe5,0x37,0x80,0x0,0x42,0x68,0xb8,0xf7,0xf8,0x69,0x47,0x71,0xe6,
+ 0xfb,0x57,0xcf,0x25,0x14,0x54,0xf0,0x4,0x1d,0x40,0x0,0x31,0x42,0xd2,0xd2,0xee,
+ 0x9d,0xdb,0xff,0xf0,0x88,0x70,0xf3,0x9,0xe0,0x31,0x1b,0x2,0x0,0x2,0x88,0x9,
+ 0xe2,0xcb,0x99,0xed,0xf5,0x5f,0xde,0xbf,0x25,0xa8,0x1a,0x8,0x0,0x2,0x88,0x5,
+ 0x68,0xf6,0xe7,0xff,0xac,0x85,0xd3,0x56,0x32,0x31,0x33,0x13,0x93,0xae,0x0,0x2,
+ 0x88,0x69,0xc1,0xc4,0xae,0xbf,0x7f,0xfe,0x10,0xa9,0x1a,0x8,0x0,0x2,0xc,0x0,
+ 0xab,0xfd,0x5f,0x5c,0x31,0x31,0xef,0xaa,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,
+ 0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/layer-bitmap.png
+ 0x0,0x0,0x3,0x88,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x13,0x0,0x0,0x0,0x10,0x8,0x6,0x0,0x0,0x0,0xf4,0xc4,0x44,0x62,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x3,0x1a,0x49,0x44,0x41,0x54,0x78,0xda,0x6c,
+ 0xca,0xa1,0xd,0x0,0x30,0x8,0x4,0xc0,0xaf,0x24,0x81,0x45,0xd9,0x8c,0xed,0x48,
+ 0x40,0x20,0x48,0xbe,0xb6,0xa2,0xa7,0xef,0x44,0x4,0xbb,0x1b,0x33,0x3,0x92,0xf8,
+ 0xd9,0x5d,0x64,0x26,0xaa,0xa,0xaa,0xa,0x11,0x81,0x99,0xc1,0xdd,0xcf,0xfb,0xae,
+ 0x0,0x62,0x79,0xf9,0xf2,0x25,0x83,0xbb,0xbb,0x3b,0x3,0x13,0x13,0x13,0x3,0x2e,
+ 0xf0,0xfb,0xf7,0x6f,0x86,0x6f,0xdf,0xbe,0x31,0x7c,0xfd,0xfa,0x95,0xe1,0xe9,0xd3,
+ 0xa7,0xc,0x20,0x3d,0x5e,0x5e,0x5e,0xc,0xf5,0xf5,0xf5,0xff,0x1b,0x1b,0x1b,0xe1,
+ 0x6,0x2,0x4,0x10,0x13,0x33,0x33,0x33,0xd8,0x20,0x10,0x66,0x64,0x64,0x4,0xe3,
+ 0xd7,0xaf,0x5f,0x83,0x5d,0x2,0xe3,0xb3,0xb1,0xb1,0x81,0x5d,0x4,0x72,0x8d,0xa4,
+ 0xa4,0x24,0xd8,0x40,0x19,0x19,0x19,0x86,0xc4,0xc4,0x44,0x86,0xea,0xea,0x6a,0xb8,
+ 0x77,0x0,0x2,0x8,0xec,0x1c,0x16,0x16,0x16,0x6,0x90,0xa1,0x30,0x7c,0xf0,0xe0,
+ 0x41,0x86,0x85,0xb,0x17,0xa2,0x88,0x81,0xc,0xe4,0xe6,0xe6,0x6,0x1b,0xf8,0xf8,
+ 0xf1,0x63,0xb0,0x66,0x90,0x81,0xa9,0xa9,0xa9,0xc,0x75,0x75,0x75,0x60,0x3,0x1,
+ 0x2,0x88,0x5,0x44,0x80,0x14,0x83,0x5c,0x0,0x2,0x30,0x17,0x7d,0xfa,0xf4,0x89,
+ 0xe1,0xf8,0xf1,0xe3,0xc,0xb6,0xb6,0xb6,0xe0,0xb0,0x4,0x61,0x50,0xd8,0x3e,0x7b,
+ 0xf6,0x8c,0x81,0x9d,0x9d,0x9d,0x21,0x2c,0x2c,0xc,0xec,0x7d,0x71,0x71,0x71,0x6,
+ 0x3e,0x3e,0x3e,0x86,0x15,0x2b,0x56,0xfc,0x7,0x8,0x20,0xb0,0x61,0xac,0xac,0xac,
+ 0xf0,0xf0,0xb9,0x7c,0xf9,0x32,0x83,0x8e,0x8e,0xe,0x83,0xae,0xae,0x2e,0xc3,0xfc,
+ 0xf9,0xf3,0x19,0x1c,0x1d,0x1d,0xc1,0x6,0xdd,0xbf,0x7f,0x9f,0x61,0xca,0x94,0x29,
+ 0x60,0x17,0x82,0x34,0x4b,0x48,0x48,0x30,0x48,0x49,0x49,0x31,0xc8,0xcb,0xcb,0x83,
+ 0x2d,0x0,0x85,0x23,0x40,0x0,0xc1,0xbd,0x9,0x32,0x10,0x16,0xb8,0xfa,0xfa,0xfa,
+ 0xc,0x46,0x46,0x46,0xc,0x42,0x42,0x42,0xc,0xeb,0xd7,0xaf,0x7,0x1b,0x76,0xe6,
+ 0xcc,0x19,0x86,0xb2,0xb2,0x32,0x86,0xa6,0xa6,0x26,0x6,0x4f,0x4f,0x4f,0x86,0x9f,
+ 0x3f,0x7f,0x32,0x3c,0x7c,0xf8,0x90,0x41,0x58,0x58,0x18,0x6c,0xe8,0xaf,0x5f,0xbf,
+ 0x18,0x0,0x2,0x8,0xee,0xcd,0x77,0xef,0xde,0x31,0xec,0xdd,0xb7,0x97,0xc1,0xd7,
+ 0xd7,0x97,0x81,0x9b,0x87,0x9b,0xe1,0xe3,0xc7,0x8f,0x60,0x45,0xbd,0xbd,0xbd,0xc,
+ 0x57,0xaf,0x5e,0x5,0xab,0x51,0x56,0x56,0x6,0xc7,0xaa,0xaa,0xaa,0x2a,0x38,0xec,
+ 0x56,0xad,0x5a,0xc5,0xf0,0xfd,0xfb,0x77,0xb0,0x57,0xaf,0x5d,0xbb,0xc6,0x0,0x10,
+ 0x40,0x60,0xc3,0x40,0x69,0x6c,0xef,0xde,0xbd,0xc,0x46,0x86,0x46,0xc,0x5c,0x9c,
+ 0x5c,0xc,0xbf,0x7e,0xfe,0x62,0x58,0xb5,0x72,0x15,0xd8,0x65,0x6e,0x6e,0x6e,0xe0,
+ 0x70,0x54,0x50,0x50,0x60,0xd8,0xbe,0x7d,0x3b,0xd8,0x30,0x90,0x37,0x43,0x42,0x42,
+ 0xc0,0x86,0xa,0xa,0xa,0x82,0xd3,0x1d,0x28,0xfc,0x0,0x2,0x70,0x48,0x6,0x35,
+ 0x0,0x0,0x20,0x8,0x24,0x85,0x9,0x7c,0xd8,0xcc,0x44,0x46,0x31,0x84,0x4f,0x3,
+ 0xe9,0x1c,0xf2,0x87,0xc1,0x8d,0xf,0xe3,0x2d,0xcc,0xc,0x55,0x85,0x88,0xc0,0xcc,
+ 0xa0,0xbb,0xa1,0xaa,0x10,0x91,0xe7,0xe7,0xee,0xd8,0x5d,0x64,0xe6,0x1b,0x79,0x1f,
+ 0xb6,0x22,0x33,0x4e,0xa6,0x4e,0x0,0x1,0x4,0x36,0xc,0x64,0xb2,0xb1,0xb1,0x31,
+ 0x83,0xa9,0xa9,0x29,0x43,0x4e,0x4e,0xe,0xc3,0xb1,0x63,0xc7,0x18,0x96,0x2f,0x5f,
+ 0xce,0x50,0x5b,0x5b,0xb,0xe,0xcf,0x3f,0x7f,0x7e,0x83,0xd5,0x80,0xc2,0xee,0xec,
+ 0xd9,0xb3,0x60,0xef,0x82,0x2c,0xce,0xcf,0xcf,0x7,0x47,0x8,0x2c,0xc1,0x3,0x4,
+ 0x10,0xd8,0x30,0x90,0x0,0x48,0x21,0x23,0x54,0x10,0x14,0xd8,0x7a,0xc0,0x48,0x10,
+ 0x7,0xc6,0x18,0x18,0x20,0x25,0xd,0x51,0x51,0x51,0x70,0x58,0x2a,0x29,0x29,0x31,
+ 0xc8,0xca,0xca,0x82,0xd,0x2,0x59,0x8,0x2,0x0,0x1,0x4,0x26,0x41,0xe9,0xa,
+ 0x14,0xc0,0x30,0x0,0xf2,0x22,0xc8,0xe9,0x8f,0x1f,0x3d,0x2,0x87,0xf,0x28,0x5c,
+ 0xf8,0xf9,0xf9,0xc1,0x69,0xf,0xe4,0x2a,0x50,0x6c,0x82,0xc,0x80,0xa5,0x3f,0x18,
+ 0x0,0x8,0x20,0x78,0x98,0x21,0xe7,0xcd,0x19,0x33,0x66,0x30,0x3c,0x79,0xf2,0x4,
+ 0x9c,0x4c,0xde,0xbc,0x79,0x3,0x8e,0xe9,0x17,0x2f,0x5e,0x80,0x2d,0x5,0x25,0x21,
+ 0x10,0x1b,0x14,0x56,0x70,0xc3,0xa0,0x6,0x2,0x4,0x10,0xb,0x28,0x50,0x41,0x6,
+ 0x21,0xdb,0xc0,0xc5,0xc5,0xc5,0xa0,0xa6,0xa6,0x6,0xc6,0xc8,0x0,0xa6,0x6,0xbd,
+ 0x74,0x1,0x66,0x70,0x70,0xe4,0x0,0x4,0x10,0xd8,0x30,0x17,0x17,0x17,0x86,0x7b,
+ 0xf7,0xee,0x81,0xb3,0x9,0xa9,0x0,0x14,0x1c,0xa0,0xf0,0xf3,0xf6,0xf6,0x66,0x0,
+ 0x8,0x30,0x0,0xe7,0x1c,0x4b,0xb1,0xf9,0xa8,0x4c,0x2c,0x0,0x0,0x0,0x0,0x49,
+ 0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/onionInbetween.png
+ 0x0,0x0,0x4,0xe1,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x18,0x0,0x0,0x0,0x15,0x8,0x6,0x0,0x0,0x0,0x5c,0xe9,0x2e,0x26,
+ 0x0,0x0,0x0,0x1,0x73,0x52,0x47,0x42,0x0,0xae,0xce,0x1c,0xe9,0x0,0x0,0x0,
+ 0x6,0x62,0x4b,0x47,0x44,0x0,0xff,0x0,0xff,0x0,0xff,0xa0,0xbd,0xa7,0x93,0x0,
+ 0x0,0x0,0x9,0x70,0x48,0x59,0x73,0x0,0x0,0xb,0x13,0x0,0x0,0xb,0x13,0x1,
+ 0x0,0x9a,0x9c,0x18,0x0,0x0,0x0,0x7,0x74,0x49,0x4d,0x45,0x7,0xd9,0x9,0x19,
+ 0x1,0xc,0x1,0x3,0x94,0x88,0x8e,0x0,0x0,0x4,0x61,0x49,0x44,0x41,0x54,0x38,
+ 0xcb,0x9d,0x55,0x6d,0x4c,0x5b,0x55,0x18,0x7e,0xef,0xb9,0x97,0x7e,0x42,0x4b,0xb9,
+ 0x77,0xed,0x44,0xbe,0x9,0x84,0xaf,0x4e,0x67,0xc8,0x4,0x29,0x3,0xf7,0xc3,0xe1,
+ 0x20,0x93,0xa0,0x21,0x31,0xe2,0x28,0xc1,0x55,0x9c,0x86,0x8c,0x18,0x13,0xd0,0x40,
+ 0x32,0x7f,0xf8,0x43,0x8d,0xcb,0x6c,0x50,0x54,0x74,0x45,0x92,0x89,0xa9,0x21,0xa4,
+ 0xf2,0x47,0x32,0xc,0x2b,0xd9,0xe6,0xf8,0x30,0xc6,0x40,0x50,0x2c,0x30,0xb,0x3,
+ 0x4a,0xf9,0x68,0x29,0xed,0xe5,0x72,0xef,0x3d,0xf5,0xc7,0x18,0x94,0x8f,0xcd,0xea,
+ 0xfb,0xeb,0x3d,0x1f,0xef,0xf3,0xbc,0xe7,0x7d,0xde,0x73,0xe,0x9,0xf,0xb1,0xc6,
+ 0xc6,0xc6,0x4,0xa7,0xd3,0x99,0x67,0x30,0x18,0xa4,0x3e,0x9f,0xaf,0x30,0x2e,0x2e,
+ 0xee,0x75,0xa3,0xb1,0xf6,0xfc,0xc2,0xc2,0x7c,0x16,0xcb,0xb2,0x4e,0x5d,0x7c,0xda,
+ 0x57,0xb2,0xc8,0xa8,0x37,0xea,0x2f,0xd4,0x8d,0x39,0x9d,0xce,0x1a,0x83,0xc1,0xa0,
+ 0xd4,0x68,0x34,0x17,0x48,0x92,0xd4,0x1a,0xc,0x6,0x39,0xc7,0x71,0xa7,0xbc,0x5e,
+ 0xef,0xef,0x68,0x3f,0xf0,0xc8,0xc8,0x8,0xdd,0xde,0xde,0x7e,0xd4,0x62,0xb1,0x1c,
+ 0xcf,0xce,0xce,0x9e,0x73,0x38,0x66,0xce,0x66,0x64,0x64,0xbf,0xd7,0xd1,0xf1,0x7d,
+ 0x54,0x75,0xf5,0xf9,0x15,0x96,0xf,0x9e,0x7a,0xf2,0x64,0xd9,0x37,0x4d,0x9f,0x74,
+ 0x46,0x67,0x66,0xe6,0x88,0x16,0x8b,0xe5,0xa5,0xf2,0xf2,0xf2,0xbb,0xe9,0xe9,0xe9,
+ 0x2a,0x87,0xc3,0x51,0xa8,0xd7,0xeb,0x27,0xd5,0x6a,0x35,0xb7,0xba,0xba,0x9a,0xa,
+ 0x0,0x40,0x85,0x82,0xd7,0xd5,0xd5,0x25,0x57,0x54,0x54,0xa4,0xeb,0xf5,0xfa,0x59,
+ 0x9a,0xa6,0xb1,0x54,0xaa,0xf8,0xbc,0xa1,0xe1,0xed,0x75,0x9d,0x2e,0xd6,0x77,0xc3,
+ 0x7e,0xe3,0xe8,0x4f,0x3f,0xf,0x3c,0x71,0xb6,0xe6,0x9d,0xcd,0xb8,0xf8,0x84,0x7b,
+ 0x7d,0xdd,0x96,0xd8,0xd,0x9f,0xd7,0x53,0x54,0x54,0x74,0x37,0x31,0x31,0xf1,0x9c,
+ 0xdd,0x6e,0xff,0x31,0x32,0x32,0xd2,0xd3,0xdb,0xdb,0x7b,0xa2,0xb2,0xb2,0xf2,0xd6,
+ 0x3,0x4c,0x12,0x0,0xa0,0xbb,0xbb,0x5b,0x3b,0x3c,0x3c,0x9c,0xb7,0xb8,0xb8,0x28,
+ 0x6d,0x6d,0x6d,0xbd,0x37,0x31,0xf1,0xc7,0x7,0x6,0x43,0x71,0x59,0x53,0x53,0xb3,
+ 0x9f,0x65,0xb9,0x4d,0x73,0xdb,0x67,0x4f,0x11,0xaa,0x58,0xed,0x99,0x4a,0x23,0x8c,
+ 0xc,0xf6,0xc9,0xd9,0x80,0x9f,0x7b,0xf1,0xe5,0xea,0xd,0x15,0xf2,0xa7,0x18,0xa,
+ 0x9e,0x91,0x9b,0x4c,0x26,0x77,0x4e,0x4e,0x8e,0x4a,0xa3,0xd1,0x64,0x15,0x14,0x14,
+ 0xfc,0x6a,0xb5,0x5a,0x67,0x27,0x27,0x27,0xf5,0x3c,0xcf,0xf7,0x53,0x9d,0x9d,0x9d,
+ 0x3a,0xa3,0xd1,0x58,0x32,0x35,0x35,0x25,0x65,0x59,0xd6,0x5f,0x55,0xf5,0xea,0x97,
+ 0x97,0x2f,0x9b,0x97,0x19,0x46,0xeb,0x6d,0xb9,0xd4,0x92,0xb6,0xba,0x21,0x2a,0x9e,
+ 0xaf,0x6a,0xa0,0x34,0xd1,0x51,0xfc,0xd5,0x2b,0xef,0xab,0x3f,0xfe,0xe8,0x43,0x90,
+ 0xc8,0x14,0x31,0x5f,0x7f,0xd1,0x1a,0xf5,0x9a,0xf1,0x15,0xe2,0x58,0x4e,0xb6,0x1a,
+ 0x0,0xd4,0x0,0x30,0x86,0x31,0x26,0x43,0xa,0x42,0x1,0x0,0xa0,0xf1,0xf1,0x71,
+ 0x69,0x72,0x72,0xf2,0x18,0xc3,0x30,0xab,0x6e,0xb7,0x5b,0x52,0x5c,0xfc,0x6c,0x80,
+ 0x61,0xb4,0x3c,0x0,0x80,0x9f,0xc3,0xca,0x17,0x8c,0x17,0x79,0x99,0x42,0x11,0x64,
+ 0xfd,0x1b,0xc4,0x89,0x93,0xa7,0xd9,0x20,0x92,0xf0,0x81,0x40,0x80,0xc8,0x2b,0x28,
+ 0xdc,0xa4,0xa8,0x8,0x11,0xfe,0xc5,0x10,0x0,0xc0,0x5e,0xe6,0x5d,0xdd,0x29,0xb4,
+ 0x47,0x22,0x10,0x45,0x81,0xd8,0xf1,0x5,0x91,0x80,0x30,0xc,0x1d,0x9c,0xa,0xee,
+ 0x4,0xe2,0x7d,0x2b,0x4,0x10,0xc1,0x1d,0x3f,0x2c,0xf8,0x6d,0x2,0x51,0xc,0x2f,
+ 0x9b,0xd0,0x7d,0x22,0xc6,0xe1,0x13,0x50,0x14,0x85,0xb7,0x1,0x1e,0xb9,0x99,0xa4,
+ 0xa8,0x9d,0x13,0x50,0x24,0x19,0xc,0x9b,0x0,0x63,0x8c,0x0,0x0,0x4,0x41,0x40,
+ 0x8,0xa1,0x87,0x6,0x62,0xbc,0x7b,0x2,0x8c,0xf1,0xff,0xd3,0x0,0x21,0x14,0xe2,
+ 0x1f,0x16,0x12,0x84,0xff,0x62,0xe8,0xbe,0x60,0x44,0xf0,0xf0,0x8c,0xf7,0x89,0xbc,
+ 0x47,0x59,0x22,0x7c,0x2,0x84,0x90,0x18,0x96,0x6,0xe4,0xae,0x6,0x24,0x75,0x50,
+ 0x3,0x8a,0xa2,0xf8,0x90,0x4a,0x6c,0x1d,0x28,0x91,0x20,0x8,0x88,0x20,0x76,0xa7,
+ 0xb8,0xad,0x2d,0xf6,0x40,0x81,0x82,0x87,0xa6,0xde,0x1f,0xe2,0x7f,0xf7,0x48,0xd,
+ 0x8,0xe2,0x7e,0xfb,0xf3,0xbc,0x38,0x87,0x83,0x62,0x4,0xb7,0x19,0x90,0x93,0x88,
+ 0x14,0x79,0x7e,0x8b,0x5c,0x72,0xb9,0x28,0x89,0x44,0xc2,0x2,0x0,0xac,0x7b,0xd6,
+ 0x90,0x28,0xf0,0x0,0x0,0xfd,0x3,0x3,0x3,0xb1,0x3d,0x3d,0x3d,0xcf,0x75,0x75,
+ 0x75,0xfd,0x52,0x58,0x58,0x98,0x65,0xb3,0xd9,0xce,0xc9,0xe5,0x72,0xd7,0x1,0x2,
+ 0x8c,0x31,0x10,0x4,0x81,0x78,0x5e,0x9c,0x5b,0x5e,0x76,0xab,0x82,0x38,0x88,0xa4,
+ 0x32,0x65,0x60,0x6d,0x6d,0x4d,0x74,0xb9,0x5c,0x9c,0x44,0xa6,0x9c,0x91,0x4a,0xa5,
+ 0xec,0xec,0xd4,0x84,0x64,0x6b,0x63,0x65,0x25,0x2b,0x33,0xc3,0x6c,0xb7,0xdb,0x53,
+ 0x3c,0x1e,0x8f,0x96,0x61,0x98,0xb7,0x24,0x12,0x89,0x75,0x69,0x69,0x49,0x6b,0x32,
+ 0x99,0xda,0xdc,0x6e,0xb7,0xf9,0xc0,0x73,0x2d,0x8,0x2,0x62,0x59,0x6e,0x75,0x69,
+ 0xc9,0xa5,0x96,0xc9,0x64,0x3c,0x16,0x4,0x71,0xca,0xf1,0x17,0x52,0x44,0x33,0x93,
+ 0xaa,0x18,0x2d,0x8c,0x8d,0xde,0xa2,0xff,0xfc,0xed,0x36,0xa4,0x25,0xc7,0xdf,0x1c,
+ 0xbd,0x73,0xb3,0x6f,0x70,0x70,0x30,0x9f,0x61,0x98,0x8d,0x8c,0x8c,0x8c,0x8e,0xb2,
+ 0xb2,0x32,0x2a,0x29,0x29,0xc9,0x6b,0x36,0x9b,0x27,0x72,0x73,0x73,0x17,0xe,0xeb,
+ 0xa2,0x3b,0x26,0x93,0x69,0xde,0xe3,0xf1,0x44,0x29,0x95,0x8a,0xcd,0xf6,0xf6,0xb6,
+ 0x88,0x99,0xbf,0x67,0x7c,0xf4,0xe3,0x29,0xa3,0x14,0x15,0xe1,0xbb,0xfe,0x43,0x7b,
+ 0xd4,0xf8,0xd0,0xf5,0xd1,0xb2,0x33,0xa7,0x2b,0x9b,0x9b,0x9b,0x6f,0xdb,0x6c,0xb6,
+ 0xe3,0x1e,0x8f,0xa7,0xb7,0xa6,0xa6,0xc6,0x96,0x9f,0x9f,0xff,0x58,0x5e,0x5e,0xde,
+ 0xbc,0xd5,0x6a,0x1d,0xd,0x5,0xdf,0x21,0xf0,0xf9,0x7c,0x91,0x9,0x9,0x9,0xd9,
+ 0x32,0x99,0x8c,0xe3,0xb8,0x4d,0x5f,0x6d,0x6d,0x75,0xc4,0xb5,0x6b,0xdf,0x5e,0x22,
+ 0x48,0x89,0x63,0x6c,0x68,0x40,0x61,0x7e,0xb7,0x5a,0x50,0x45,0xe0,0x16,0x2,0x8b,
+ 0x43,0xa9,0xa9,0xa9,0x25,0x1a,0x8d,0xc6,0xcb,0xf3,0x7c,0x5f,0x7d,0x7d,0xbd,0x52,
+ 0xa7,0xd3,0xad,0x4f,0x4f,0x4f,0x77,0x99,0xcd,0xe6,0x89,0x43,0x5b,0xaf,0xb4,0xb4,
+ 0x34,0x8b,0xa6,0xe9,0xca,0xed,0xe1,0xb1,0x23,0x47,0xb4,0x57,0x1e,0x7c,0x44,0x91,
+ 0xd1,0x31,0x23,0xb4,0x2e,0xf6,0x4d,0x0,0x20,0x4a,0x4b,0x4b,0x4b,0x68,0x9a,0xfe,
+ 0x74,0x3b,0xe6,0x69,0x9a,0xa6,0x2f,0x86,0x73,0xf,0xfe,0x1,0xbd,0xce,0xdd,0xde,
+ 0x81,0x4d,0xf3,0x69,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+
+ // /home/matthew/pencil_dev/icons/house.png
+ 0x0,0x0,0x0,0xb9,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x14,0x0,0x0,0x0,0x14,0x8,0x3,0x0,0x0,0x0,0xba,0x57,0xed,0x3f,
+ 0x0,0x0,0x0,0x18,0x50,0x4c,0x54,0x45,0xff,0xff,0xff,0x0,0x33,0x66,0xcc,0xcc,
+ 0xff,0x66,0x66,0x99,0x99,0x99,0xcc,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,0x0,
+ 0x3e,0x91,0x33,0xdf,0x0,0x0,0x0,0x5c,0x49,0x44,0x41,0x54,0x18,0x95,0x6d,0xd0,
+ 0x41,0x12,0x0,0x11,0xc,0x44,0x51,0x5f,0xdc,0xff,0xcc,0x83,0x4,0xd1,0x26,0x2b,
+ 0xf5,0xaa,0x91,0xea,0x52,0xf2,0x40,0xd1,0x81,0x5a,0x79,0x49,0xd0,0xe9,0xd2,0x4d,
+ 0x9,0xb1,0x83,0x4b,0x31,0x33,0x8d,0xe,0xd3,0xe8,0x34,0x89,0xf2,0xe0,0x54,0xbb,
+ 0x95,0xb8,0x9e,0x5e,0x85,0xb6,0x90,0x58,0xa0,0x53,0x13,0x1c,0xc4,0x46,0x73,0x1c,
+ 0xa9,0xc0,0xf3,0x93,0x63,0xd4,0x17,0x5b,0x39,0xe6,0x42,0x1c,0xa5,0xe4,0xce,0xfc,
+ 0xf6,0xbe,0x8f,0x1f,0x96,0xff,0x2,0x1c,0xb4,0x2d,0xab,0xd7,0x0,0x0,0x0,0x0,
+ 0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/hand.png
+ 0x0,0x0,0x3,0x86,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x11,0x0,0x0,0x0,0x11,0x8,0x6,0x0,0x0,0x0,0x3b,0x6d,0x47,0xfa,
+ 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,0xd8,
+ 0xeb,0xf5,0x1c,0x14,0xaa,0x0,0x0,0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x6d,
+ 0x98,0x0,0x0,0x73,0x8e,0x0,0x0,0xea,0x48,0x0,0x0,0x86,0x0,0x0,0x0,0x77,
+ 0xef,0x0,0x0,0xd0,0xf0,0x0,0x0,0x32,0xf7,0x0,0x0,0x1c,0x74,0xb6,0xd2,0x6c,
+ 0xb,0x0,0x0,0x2,0xfc,0x49,0x44,0x41,0x54,0x78,0xda,0x62,0x64,0x40,0x0,0xe,
+ 0x20,0x16,0x84,0xb2,0x7f,0x0,0xb1,0x54,0x75,0x75,0xf5,0x15,0x16,0x16,0x16,0x86,
+ 0xc6,0xc6,0x46,0x13,0x20,0xff,0x3d,0x10,0x7f,0x87,0xd2,0x3f,0x90,0xf4,0x31,0x0,
+ 0x4,0x10,0xb2,0x1,0xda,0xb5,0xb5,0xb5,0xff,0xfb,0xfb,0xfb,0xff,0x3,0xd9,0xae,
+ 0xb3,0x67,0xcf,0xfe,0xf,0x2,0xcf,0x9f,0x3f,0xff,0xdf,0xd1,0xd1,0xf1,0x7f,0xc1,
+ 0x82,0x5,0xff,0x81,0x86,0x82,0xe4,0xb4,0xa1,0xea,0xe1,0x0,0x20,0x80,0x60,0x48,
+ 0xb2,0xa6,0xa6,0x6,0xac,0xe9,0xc7,0x8f,0x1f,0xff,0xe7,0xcf,0x9f,0xff,0x3f,0x2f,
+ 0x2f,0xf,0xcc,0xff,0xfb,0xf7,0xef,0xff,0xb0,0xb0,0x30,0x30,0xfb,0xe2,0xc5,0x8b,
+ 0xff,0x83,0x83,0x83,0x41,0x6,0x19,0x83,0xf4,0xc0,0xc,0x3,0x8,0x20,0x26,0x98,
+ 0x29,0xf2,0xf2,0xf2,0x60,0x9a,0x9d,0x9d,0x9d,0x41,0x54,0x54,0x94,0xe1,0xd3,0xa7,
+ 0x4f,0x70,0x3b,0x5e,0xbc,0x78,0x1,0x57,0xf3,0xf6,0xed,0x5b,0x86,0xf6,0xf6,0xf6,
+ 0x33,0x4d,0x4d,0x4d,0xcf,0x80,0x42,0xca,0x20,0x83,0x0,0x2,0x8,0xd9,0x3b,0xc6,
+ 0x27,0x4f,0x9e,0x4,0xdb,0xf8,0xef,0xdf,0xbf,0xff,0xe,0xe,0xe,0x60,0xf6,0xaf,
+ 0x5f,0xbf,0xfe,0x5b,0x58,0x58,0x80,0xd9,0x6f,0xde,0xbc,0xf9,0x6f,0x63,0x63,0xf3,
+ 0x7f,0xc7,0x8e,0x1d,0xff,0x4f,0x9f,0x3e,0xfd,0xdf,0xcb,0xcb,0xb,0xe4,0x2a,0x49,
+ 0x80,0x0,0x62,0x41,0xa,0x50,0xce,0xa7,0x4f,0x9f,0x82,0x4d,0x64,0x64,0x64,0x64,
+ 0xf0,0xf6,0xf6,0x6,0xb3,0xff,0xfc,0xf9,0xc3,0x0,0xd4,0xcf,0x0,0xf4,0x16,0x3,
+ 0xd0,0x40,0x30,0x1b,0x68,0x10,0xc3,0x87,0xf,0x1f,0xc0,0x18,0xa4,0xf,0x20,0x80,
+ 0x40,0x86,0x28,0x3,0xfd,0x7c,0x85,0x95,0x95,0x95,0xe1,0xfd,0xfb,0xf7,0xc,0x87,
+ 0xf,0x1f,0x66,0xb0,0xb5,0xb5,0x65,0x8,0xc,0xc,0x4,0x6b,0x0,0xba,0x8a,0x21,
+ 0x20,0x20,0x0,0x4c,0x83,0x34,0x59,0x5b,0x5b,0x83,0xd9,0xbf,0x7f,0xff,0x6,0xcb,
+ 0x83,0x0,0x40,0x0,0x1e,0xc8,0xd0,0x6,0x60,0x28,0x84,0x82,0x9d,0xa5,0x8a,0xd,
+ 0x58,0xa,0xcb,0x4e,0xec,0xc0,0x26,0x68,0x34,0x8a,0x90,0xa0,0xde,0x6f,0x2b,0xea,
+ 0x2f,0x97,0xcb,0x5d,0x22,0xf2,0xa5,0x76,0x37,0x88,0x8,0xaa,0xfa,0xf,0x7d,0x40,
+ 0xec,0x2e,0x22,0x2,0x33,0x83,0xcc,0x84,0xbb,0xa3,0xaa,0x60,0x66,0x60,0xe6,0xd7,
+ 0x72,0x1f,0x1,0xc4,0x4,0x4a,0x7,0x20,0x93,0xb9,0xb9,0xb9,0x19,0xb6,0x6d,0xdb,
+ 0xc6,0x0,0x8c,0x1d,0xb0,0x17,0x40,0x4e,0x7,0xd1,0x20,0x2c,0x2e,0x2e,0xe,0x16,
+ 0x67,0x66,0x66,0x66,0x50,0x56,0x56,0x66,0xb8,0x72,0xe5,0xa,0xc3,0x99,0x33,0x67,
+ 0x18,0x2c,0x2d,0x2d,0x41,0xee,0xf8,0xe,0x10,0x40,0x20,0x42,0x1b,0x14,0xff,0x20,
+ 0x97,0x80,0x6c,0xfe,0xfe,0xfd,0x3b,0x18,0x83,0xf8,0xc0,0x18,0x2,0x7,0xe6,0xb3,
+ 0x67,0xcf,0xfe,0xdf,0xbb,0x77,0xef,0xff,0xd5,0xab,0x57,0xff,0x9f,0x3a,0x75,0xea,
+ 0xff,0xba,0x75,0xeb,0xfe,0x9b,0x99,0x99,0xc1,0xa2,0x9a,0x3,0x20,0x80,0x40,0x61,
+ 0x72,0xb7,0xb5,0xb5,0x55,0x87,0x83,0x83,0xe3,0x4a,0x51,0x51,0x11,0xd8,0xaf,0xa0,
+ 0x40,0x4,0xb9,0x0,0xc4,0x6,0x1a,0xc8,0x0,0xf4,0x12,0x18,0x83,0xf8,0xa0,0x28,
+ 0xbe,0x76,0xed,0x1a,0x98,0xf,0x4,0xa0,0x68,0xfe,0x1,0x10,0x40,0xcc,0xa0,0x8,
+ 0x0,0xe2,0xcf,0xfb,0xf7,0xef,0xdf,0xc0,0xc7,0xc7,0x97,0x6,0xc,0x17,0x6,0xa0,
+ 0xff,0xc1,0x9a,0x41,0xf4,0xd7,0xaf,0x5f,0xc1,0x5e,0x1,0x61,0x10,0xfb,0xfe,0xfd,
+ 0xfb,0xc,0x6b,0xd7,0xae,0x5,0x79,0x7,0x94,0x15,0x1e,0x81,0xf4,0x3,0x4,0x10,
+ 0xb,0x52,0x5e,0x79,0x6,0x74,0x32,0x3,0x30,0x10,0x19,0x84,0x85,0x85,0xc1,0xae,
+ 0x1,0xd9,0xc,0xa,0x1b,0x58,0xf8,0x80,0xc,0x6,0x66,0x3,0xb0,0x81,0x30,0x57,
+ 0x80,0x18,0x0,0x1,0xc4,0x8c,0x94,0xf4,0xff,0x9c,0x3d,0x7b,0x76,0x5,0x50,0x63,
+ 0x96,0x82,0x82,0x2,0x38,0xfa,0x60,0x86,0xc0,0x68,0x90,0x4b,0x66,0xce,0x9c,0xc9,
+ 0x70,0xe9,0xd2,0x25,0xb8,0x2b,0x40,0x1a,0x1,0x2,0x88,0x5,0xc9,0x10,0x90,0xa9,
+ 0x77,0x97,0x2d,0x5b,0x6,0x52,0x70,0x26,0x36,0x36,0x16,0x1c,0x6b,0xb0,0xf0,0x1,
+ 0x6,0x34,0xc3,0x83,0x7,0xf,0x18,0x5e,0xbf,0x7e,0xcd,0x80,0x9e,0x93,0x1,0x2,
+ 0x88,0x9,0x2d,0x23,0x82,0xbd,0x5,0xd2,0x0,0xb2,0x15,0xe4,0x7c,0x90,0xd3,0x41,
+ 0xae,0x0,0xc6,0x12,0xc3,0xb9,0x73,0xe7,0xc0,0x89,0xd,0x16,0xad,0x30,0x0,0x10,
+ 0x40,0x8c,0x38,0x8a,0x5,0x70,0x36,0x60,0xc0,0xe,0x30,0xca,0x14,0x80,0x0,0x3,
+ 0x0,0x2f,0x4f,0xf3,0xc6,0xbf,0xe7,0x77,0xeb,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,
+ 0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/bucket.png
+ 0x0,0x0,0x7,0x74,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x16,0x0,0x0,0x0,0x18,0x8,0x6,0x0,0x0,0x0,0xfe,0xbe,0xd,0x4b,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x7,0x6,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0xdc,0xb5,0x6b,0x17,0x3,0x3a,0x60,0x64,0x64,0x64,0xf8,0xfd,0xfb,0xb7,0xce,0xde,
+ 0xbd,0x7b,0x4f,0x99,0x99,0x99,0x95,0x2b,0x2b,0x2b,0x4f,0x7e,0xf5,0xea,0x15,0xc3,
+ 0xd3,0xa7,0x4f,0x19,0x78,0x79,0x79,0xc1,0xf2,0xcc,0xcc,0xcc,0xbc,0x77,0xef,0xde,
+ 0x5d,0x76,0xef,0xfe,0x7d,0x57,0x5d,0x1d,0x9d,0x3c,0x1d,0x1d,0x9d,0x59,0x7c,0x7c,
+ 0x7c,0x70,0x33,0x0,0x2,0x88,0x31,0x21,0x21,0x1,0xc3,0x60,0x26,0x26,0x26,0x86,
+ 0x77,0xef,0xde,0x55,0xea,0xe9,0xe9,0x59,0x5f,0xbe,0x7c,0x59,0xcc,0xd0,0xd0,0xb0,
+ 0x59,0x46,0x46,0x66,0x33,0x3b,0x3b,0x3b,0x3,0x23,0x13,0x93,0xd3,0xc9,0x13,0x27,
+ 0x52,0xdf,0xbf,0x7f,0xef,0x65,0x6c,0x6c,0xcc,0x27,0x2d,0x2b,0xcb,0xb0,0x7d,0xe7,
+ 0xce,0xff,0xca,0xf2,0xf2,0xb3,0x83,0x83,0x82,0x72,0x7f,0xfc,0xfc,0xf9,0xb,0x64,
+ 0x6,0x40,0x0,0xb1,0x58,0x5a,0x5a,0x62,0xb8,0x16,0x68,0x0,0xf3,0xe9,0xd3,0xa7,
+ 0xd,0x35,0x35,0x35,0x63,0x81,0x16,0xe4,0x9d,0x38,0x71,0x22,0xd6,0xd9,0xd9,0xf9,
+ 0xfa,0x9b,0x37,0x6f,0x13,0x5f,0xbf,0x7e,0x9d,0x2b,0x28,0x28,0xc0,0x5b,0x54,0x54,
+ 0xc4,0xa0,0xaf,0xaf,0xf,0xd6,0xa3,0xa3,0xab,0xcb,0x58,0x52,0x5a,0x96,0x26,0x21,
+ 0x21,0x71,0x8,0xe8,0xbb,0xa5,0xdf,0xbe,0x7d,0x63,0x0,0x8,0x20,0x96,0xf,0x1f,
+ 0x3e,0xa0,0x18,0xfc,0xf5,0xeb,0x57,0x86,0x2f,0x5f,0xbe,0x8,0x2,0x5d,0x6d,0xfa,
+ 0xf7,0xef,0x5f,0x36,0x75,0xd,0x8d,0xe3,0xe7,0xcf,0x9f,0x2f,0xb9,0x74,0xe9,0x72,
+ 0x80,0xa9,0xa9,0x9,0x6b,0x7a,0x7a,0x1a,0x83,0xbc,0xbc,0x3c,0x58,0x2d,0x50,0x1d,
+ 0xc3,0x9f,0x3f,0x7f,0x18,0xd4,0x55,0x54,0x18,0x7a,0x3a,0x3b,0x19,0x1a,0x1a,0x1b,
+ 0xa6,0xbb,0x31,0xfc,0xbf,0x26,0x2f,0xaf,0x70,0x1e,0x20,0x80,0x58,0x80,0xde,0x85,
+ 0x1b,0xfa,0xef,0xdf,0x3f,0x6,0x4e,0x4e,0x4e,0x86,0x4b,0x97,0x2e,0xfd,0x3b,0x7e,
+ 0xfc,0x38,0xe3,0x9e,0x3d,0x7b,0xd6,0x7e,0xfe,0xfc,0xd9,0x5a,0x5c,0x5c,0x9c,0x21,
+ 0x21,0x21,0x9e,0xc1,0xc1,0xc1,0x81,0xe1,0xff,0xff,0xff,0xc,0x40,0x31,0x86,0xef,
+ 0xdf,0xbf,0x83,0xd9,0xc0,0xb8,0x80,0x18,0xae,0xa6,0xca,0xa0,0xa5,0xa1,0xc1,0xbb,
+ 0x6b,0xd7,0x9e,0xf6,0x82,0xfc,0x3c,0xf,0x80,0x0,0x62,0x2,0x46,0x2,0x3,0xc,
+ 0x73,0x70,0x70,0x80,0xb0,0xeb,0xdd,0x7b,0xf7,0x16,0x3,0xbd,0x2c,0x6b,0x62,0x6a,
+ 0x6a,0x3d,0x63,0xc6,0xc,0x86,0xa4,0xa4,0x24,0x86,0x8b,0x17,0x2f,0x82,0xd,0x7a,
+ 0xf3,0xe6,0xd,0xd8,0x57,0x20,0xc3,0x7e,0xfe,0xfc,0xc9,0xf0,0xe3,0xc7,0xf,0x86,
+ 0xb7,0x6f,0xdf,0x32,0xdc,0xbe,0x7d,0x9b,0xc1,0xc7,0xc7,0x87,0x81,0x93,0x8b,0xd3,
+ 0xec,0xc8,0xd1,0xa3,0xa2,0x0,0x1,0xc4,0x2,0x92,0x4,0x7,0x36,0xb,0xb,0xc3,
+ 0xb3,0x67,0xcf,0x7c,0xe6,0xcd,0x9b,0xb7,0x56,0x5b,0x47,0x87,0x6d,0xfe,0xfc,0xf9,
+ 0xc,0x72,0x72,0x72,0x60,0x39,0x51,0x51,0x51,0x86,0x4d,0x9b,0x36,0x81,0xd,0x80,
+ 0xb9,0xf0,0xd7,0xaf,0x5f,0x60,0x1a,0xc4,0x87,0x61,0x50,0xe4,0xca,0xca,0xc8,0x8,
+ 0x2,0x23,0xb6,0x4,0x20,0x80,0x58,0xce,0x9e,0x3d,0xb,0xd6,0xc,0x74,0x29,0xef,
+ 0xee,0xdd,0xbb,0xe7,0x3e,0x7a,0xf4,0x88,0x4d,0x52,0x52,0x12,0x1c,0x7e,0x20,0x4b,
+ 0x41,0x34,0x28,0x89,0x81,0x0,0xc8,0x60,0x90,0xcf,0x40,0xe2,0x20,0x43,0x61,0x6,
+ 0xc3,0x68,0x50,0xa4,0x49,0xcb,0xc8,0x30,0x2c,0x5c,0xb0,0xd0,0x8,0x20,0x80,0x98,
+ 0x60,0xb6,0x1,0x5d,0xc0,0x4,0xd4,0xcb,0xe,0x4c,0xb7,0xc,0x2f,0x5f,0xbe,0x64,
+ 0x28,0x29,0x29,0x61,0x0,0x45,0x2c,0xc8,0xab,0x6c,0x6c,0x6c,0xc,0xfc,0xfc,0xfc,
+ 0x60,0x83,0x41,0x7c,0x90,0x1,0x20,0xc,0xa,0x12,0x18,0x6,0xf1,0x3f,0x7f,0xfe,
+ 0x4,0x56,0x27,0x26,0x2e,0x6e,0x8,0x10,0x40,0x4c,0x8e,0x8e,0x8e,0xc,0x20,0xec,
+ 0xea,0xea,0xfa,0x51,0x55,0x55,0xf5,0x4,0x30,0x79,0x81,0x93,0xd1,0xc7,0x8f,0x1f,
+ 0x19,0xa6,0x4e,0x9d,0xca,0x0,0x4c,0x19,0xc,0xcf,0x9f,0x3f,0x7,0x47,0xd8,0xb6,
+ 0x6d,0xdb,0xc0,0x96,0xc2,0xc,0x7,0x45,0x20,0x8,0xc3,0x2c,0xf9,0xf2,0xe5,0x2b,
+ 0x3,0x13,0x30,0xb9,0xb2,0xb2,0x30,0xb3,0x0,0x4,0x10,0xb3,0x82,0x82,0x2,0xc3,
+ 0xc3,0x87,0xf,0x19,0xee,0xdf,0xbf,0xf,0xd2,0xc0,0x2,0x34,0x38,0x0,0x14,0x14,
+ 0x5c,0x5c,0x5c,0x60,0x83,0xcc,0xcd,0xcd,0xc1,0xf2,0x82,0x82,0x82,0x60,0x3,0x40,
+ 0xbe,0x3,0xb9,0xa,0x64,0x20,0x28,0x48,0x60,0x18,0x14,0xe6,0x20,0xcc,0xc4,0xc4,
+ 0xc8,0x70,0xe3,0xfa,0xcd,0x9f,0x0,0x1,0xc4,0x4,0x72,0x9,0x8,0x83,0x5c,0x8,
+ 0x4c,0xbb,0xab,0x81,0x9a,0x1f,0x82,0xc2,0x53,0x49,0x49,0x89,0x41,0x57,0x57,0x97,
+ 0x61,0xeb,0xd6,0xad,0xc,0x62,0x62,0x62,0xa0,0x88,0x5,0x6b,0x4,0x65,0xdb,0x4f,
+ 0x9f,0x3e,0xc1,0x83,0x0,0x14,0x7,0x20,0xb,0x41,0x86,0x7f,0x5,0xd2,0xe7,0xce,
+ 0x5f,0x64,0x78,0xf7,0xe1,0xc3,0x4f,0x80,0x0,0x62,0xb1,0xb7,0xb7,0x87,0xa7,0x63,
+ 0x60,0x1a,0xfe,0xa,0x8c,0xd1,0x2b,0x40,0x2c,0xf,0x4a,0x11,0xa0,0xf0,0xde,0xb6,
+ 0x75,0x1b,0x83,0xa9,0xa9,0x29,0x98,0xd,0xd2,0xc,0x4a,0xeb,0xb0,0x8c,0x1,0xc2,
+ 0xc,0xc,0xff,0x19,0x80,0xd9,0x18,0x18,0x5c,0x2f,0x18,0xe,0x1e,0x3e,0xca,0xf0,
+ 0xf6,0xf5,0xcb,0xdb,0x9e,0x1e,0x1e,0x39,0x0,0x1,0xc4,0x2,0x72,0x19,0xc,0x80,
+ 0x22,0x29,0x28,0x28,0x68,0xda,0xbc,0xf9,0xf3,0x3c,0x39,0xd8,0xd9,0x99,0x40,0xae,
+ 0xe3,0x15,0xe0,0x3,0x7,0x49,0x68,0x68,0x28,0x38,0x6c,0x41,0xae,0x6,0x85,0x3b,
+ 0x28,0x4d,0x83,0xc,0xbe,0x70,0xf1,0x32,0xc3,0xdd,0x7b,0x77,0x19,0x7e,0xfe,0xf8,
+ 0xb1,0x4b,0x50,0x80,0x7f,0xa,0x37,0x7,0xdb,0x7e,0xe,0x76,0x8e,0x2f,0x0,0x1,
+ 0xc4,0x72,0xe3,0xc6,0xd,0xb0,0x2b,0x40,0xa,0x41,0x34,0x30,0x39,0x6d,0xfb,0xf6,
+ 0xf5,0xdb,0xba,0xcb,0x57,0xae,0x84,0xb8,0xbb,0xbb,0x33,0xd8,0xd9,0xdb,0x32,0x0,
+ 0x4b,0x39,0x70,0x8a,0x0,0xc9,0x83,0x30,0xc8,0xeb,0xf7,0x1f,0x3c,0x62,0xb8,0x77,
+ 0xff,0xee,0x2f,0x60,0x86,0x39,0x2f,0xc0,0xc7,0x3f,0x5b,0x4a,0x5e,0x6e,0xf1,0xbf,
+ 0xff,0xff,0x7f,0x1,0x33,0x16,0xc3,0xbf,0xff,0xff,0x18,0x0,0x2,0x88,0x59,0x5,
+ 0x98,0xcf,0x61,0xb1,0xa,0x8a,0x14,0x50,0xc9,0xa6,0xac,0xa2,0xf2,0x12,0x68,0x98,
+ 0x33,0xb0,0x10,0xe2,0xe7,0xe7,0xe5,0x63,0xb8,0x73,0xe7,0xe,0x83,0xa8,0x88,0x28,
+ 0xc3,0x77,0xa0,0x8b,0xaf,0x5c,0xb9,0x2,0xc,0xc7,0xb,0xdf,0x9e,0x3f,0x7b,0x76,
+ 0x94,0x91,0x81,0x21,0x4f,0x47,0x5b,0xbb,0x1c,0x68,0xd9,0xf9,0xdf,0x7f,0xfe,0xfc,
+ 0x5,0xf9,0x4,0x9c,0x96,0xa5,0xa5,0x19,0x0,0x2,0x88,0x19,0x58,0x22,0x81,0xbd,
+ 0x4,0x2a,0x6b,0x41,0xe9,0x56,0x44,0x44,0x84,0x1,0x58,0xbe,0x3e,0x14,0x13,0x15,
+ 0xfd,0x30,0x7b,0xd6,0xec,0x0,0x39,0x39,0x35,0x6,0x76,0x1e,0x7e,0x86,0x6b,0x97,
+ 0x2f,0x30,0x1c,0x3e,0x7c,0x84,0xe1,0xed,0x9b,0xb7,0x87,0x74,0x75,0xb4,0x93,0xa5,
+ 0xa4,0x24,0x9b,0x80,0x6,0xdd,0x6,0x15,0x3,0x20,0xc3,0x40,0x5,0x13,0xa8,0x4c,
+ 0x1,0x99,0x25,0x20,0x20,0xc0,0x0,0x10,0x40,0x2c,0xac,0xac,0xac,0x60,0x57,0x82,
+ 0xb2,0xf4,0x85,0xb,0x17,0xc0,0xe5,0x5,0x8,0xf0,0xf1,0xf1,0xae,0xe7,0x17,0xe0,
+ 0x9f,0x20,0x22,0x2d,0xc9,0x7f,0xf4,0xe4,0x61,0x86,0xdf,0x3f,0x7e,0x6c,0x30,0x32,
+ 0x34,0xe8,0xe5,0xe6,0xe6,0x3e,0x3,0xf4,0xd9,0xf,0x90,0x3,0x40,0xe5,0x3,0xc8,
+ 0x61,0x6,0x6,0x6,0xe0,0x8,0x15,0x12,0x12,0x2,0x27,0x4b,0x90,0x19,0x0,0x1,
+ 0xc4,0x4,0x2b,0x83,0x41,0x59,0x95,0x1d,0x18,0x79,0x1c,0x1c,0xec,0xdc,0x8f,0x1e,
+ 0x3e,0xe0,0xdc,0xbc,0x71,0x93,0xda,0xe7,0x2f,0x5f,0x39,0x6c,0x2c,0x4d,0x19,0xb4,
+ 0xb5,0x34,0xfe,0x88,0x8,0xb,0xb5,0x3f,0x7d,0xf2,0xe4,0xc8,0xef,0x5f,0x3f,0x59,
+ 0xb9,0xb9,0x38,0x5,0x24,0x25,0x24,0xf8,0xff,0xfe,0xf9,0xc3,0xf2,0xf,0xe8,0x7d,
+ 0x1e,0x6e,0x6e,0x70,0xfa,0x86,0x95,0x3b,0xa0,0xf8,0x2,0x8,0x20,0x16,0xa0,0xa1,
+ 0x8c,0xbf,0x7f,0xfd,0x30,0x7a,0x70,0xff,0xbe,0xf1,0xb7,0x1f,0x7f,0x64,0x2f,0x5f,
+ 0xbf,0xed,0x27,0x2c,0x2c,0xac,0xfc,0xfe,0xcb,0xf,0x86,0xc4,0xb4,0x6c,0x76,0x21,
+ 0x60,0xd8,0x9a,0x99,0x5b,0xb2,0x9c,0x3d,0x77,0xe1,0x0,0xaf,0xa0,0xe8,0xcf,0x2f,
+ 0x3f,0xff,0x31,0xde,0x7d,0xf8,0x82,0xf1,0xf1,0xcb,0x77,0xc,0x6f,0x3e,0x7c,0x59,
+ 0xc7,0xf5,0xfc,0xf9,0xfd,0x2f,0x5f,0x3e,0x7d,0x66,0x63,0x65,0xbd,0x22,0x2e,0x26,
+ 0x7a,0x6,0x58,0x5c,0xbe,0x7,0x19,0xe,0x10,0x40,0x8c,0xc0,0x34,0x17,0x70,0xef,
+ 0xf9,0xbb,0x35,0xca,0xfa,0xb6,0xcc,0x46,0x96,0xf6,0xc,0xc2,0xc0,0xe4,0x25,0xc0,
+ 0xcd,0xc6,0x20,0x2a,0xc4,0xc7,0x20,0x22,0xc0,0xcb,0xc0,0xcc,0xf0,0x17,0x18,0x4c,
+ 0xcc,0xc,0xdf,0x7f,0xfe,0x66,0xf8,0xf4,0xf5,0x27,0xc3,0x7,0xa0,0x85,0xef,0xbf,
+ 0x7c,0x67,0x78,0xff,0x19,0x98,0x95,0x7f,0xfe,0x63,0x78,0xf2,0xe4,0x9,0xc3,0xa3,
+ 0x7b,0x37,0x19,0xee,0x5d,0x3e,0xce,0xa0,0x28,0xc6,0xfd,0xc5,0xda,0xdc,0x24,0x2,
+ 0xe8,0xb0,0xad,0x0,0x1,0xc4,0xc,0xc,0xe8,0x5d,0x92,0xe6,0xc1,0x2,0x56,0x5e,
+ 0x31,0xc,0x3c,0x3c,0xbc,0xe0,0x82,0x1e,0x84,0x99,0x98,0x59,0x18,0x7e,0xff,0xf9,
+ 0xcb,0xf0,0xfb,0x1f,0x3,0xc3,0xaf,0x3f,0xc0,0x2,0xfd,0x3f,0x13,0xc3,0xdf,0xff,
+ 0xcc,0xc,0xff,0x99,0x58,0x19,0x18,0x59,0x39,0x18,0x58,0xd8,0xb8,0x19,0x18,0xd9,
+ 0xb8,0x18,0xd8,0xf9,0xc5,0x19,0x4,0xe5,0x74,0x19,0x78,0xe4,0xd,0x19,0x4e,0x1c,
+ 0xd8,0xcb,0xc6,0xf0,0xe5,0x39,0x8f,0xa6,0xb6,0xf6,0xa,0x80,0x0,0x62,0x91,0x91,
+ 0x96,0xca,0x7a,0x70,0x69,0xf7,0xac,0x13,0xbf,0x3f,0x4b,0xa,0xa,0x3,0x15,0x9,
+ 0x89,0x30,0x48,0x88,0x8b,0x32,0xf0,0xf3,0x72,0x31,0x70,0xb0,0x32,0x3,0xb,0x14,
+ 0x26,0x20,0x66,0x64,0xf8,0xf3,0xfb,0xf,0xc3,0x8f,0x5f,0x7f,0x80,0x49,0xee,0x27,
+ 0x30,0xcb,0x7e,0x62,0x78,0xf1,0xe2,0x25,0xc3,0x4f,0xa0,0xd8,0x97,0xcf,0x5f,0x18,
+ 0xde,0xbd,0x79,0xf1,0xf3,0xd7,0x87,0x67,0x5f,0xf5,0x65,0x39,0x2e,0x3b,0x3a,0x3b,
+ 0x4f,0x3,0x65,0x2c,0x80,0x0,0x62,0xe1,0xe0,0xe4,0xda,0x62,0xa2,0x29,0xac,0x23,
+ 0x2e,0xfe,0x37,0x7d,0xf2,0xd4,0x5a,0x1e,0x35,0x75,0xd,0x3,0xa0,0x26,0x96,0x2f,
+ 0xc0,0x0,0x57,0xd7,0xd0,0x92,0xff,0xf6,0xf5,0xcb,0x8f,0x67,0x4f,0x9f,0xbc,0x62,
+ 0x61,0x61,0x62,0x62,0x5,0x45,0x30,0x3b,0x1b,0xa8,0x58,0x64,0x94,0x96,0x92,0xfa,
+ 0xb3,0x6f,0xef,0xde,0x73,0x9e,0x1e,0x6e,0x2c,0xd2,0x4c,0xc,0x7,0x65,0xf4,0xe4,
+ 0xf7,0x9,0x89,0x98,0xfe,0x6,0x1a,0xfa,0x1f,0x14,0x91,0x0,0x1,0x6,0x0,0x5d,
+ 0x9a,0x7c,0x5d,0x8a,0xb1,0xc5,0x37,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,
+ 0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/prefspencil.png
+ 0x0,0x0,0x19,0x11,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x40,0x0,0x0,0x0,0x36,0x8,0x6,0x0,0x0,0x0,0x77,0x12,0x9f,0x2,
+ 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,0xd8,
+ 0xeb,0xf5,0x1c,0x14,0xaa,0x0,0x0,0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x6d,
+ 0x98,0x0,0x0,0x73,0x8e,0x0,0x0,0xea,0x48,0x0,0x0,0x86,0x0,0x0,0x0,0x77,
+ 0xef,0x0,0x0,0xd0,0xf0,0x0,0x0,0x32,0xf7,0x0,0x0,0x1c,0x74,0xb6,0xd2,0x6c,
+ 0xb,0x0,0x0,0x18,0x87,0x49,0x44,0x41,0x54,0x78,0xda,0xdc,0xc7,0xc9,0xd,0x0,
+ 0x20,0xc,0xc4,0xc0,0xd,0x2,0xd2,0x7f,0xb9,0x9c,0xc1,0x8f,0x54,0x81,0xa5,0x79,
+ 0xd8,0x24,0x55,0x34,0x38,0x7a,0x7e,0x81,0xe9,0x8f,0x2,0x17,0x1b,0x13,0x3,0xb,
+ 0x27,0xe8,0x9,0x20,0x98,0xe7,0xb9,0x81,0x98,0x17,0x88,0x79,0x80,0x98,0x3,0x2a,
+ 0x36,0x9c,0x0,0xc8,0xc3,0x3f,0x80,0xf8,0xb,0x10,0x7f,0x6,0xe2,0xaf,0xd0,0x40,
+ 0xf9,0xf,0x10,0x40,0x2c,0xd0,0x98,0x7,0x79,0x5e,0x2,0x88,0x85,0xa1,0x6c,0xf6,
+ 0x61,0x96,0x2,0x7e,0x42,0x3d,0xfe,0x16,0x2a,0xf6,0x7,0x8a,0xff,0x1,0x4,0x10,
+ 0xb,0x34,0xd9,0x83,0x62,0x5e,0x78,0xcf,0x99,0xdd,0x9b,0x1d,0xf,0x0,0x55,0xaa,
+ 0xbd,0x66,0x58,0x2f,0x74,0x9b,0x21,0xc1,0xba,0x8e,0x3c,0x2b,0x81,0xe1,0xbb,0xff,
+ 0xc4,0x79,0x6,0x2d,0x69,0x25,0x86,0xb7,0x1f,0xdf,0x30,0xb0,0xb2,0xb1,0x33,0xfc,
+ 0xff,0xfb,0x9b,0xe1,0xc7,0xa7,0x1f,0xc,0x7c,0x92,0xe2,0xc,0xef,0xdf,0xbe,0x60,
+ 0x10,0xe5,0x17,0x62,0xf8,0xf8,0xed,0x7,0x3,0x1b,0xcb,0x7f,0x86,0x9f,0xdf,0xff,
+ 0x30,0xf0,0xf1,0xf0,0x31,0xbc,0xff,0xf4,0x9e,0x81,0x9d,0x8b,0x8b,0x81,0x8d,0x95,
+ 0x9d,0xe1,0xc7,0x8f,0xaf,0xc,0xbf,0xff,0xfc,0x64,0x60,0xfa,0xc7,0xc1,0xa0,0x6b,
+ 0xab,0x48,0x71,0x28,0x7c,0xfd,0xfe,0x8b,0x81,0x87,0x8b,0xdd,0x17,0x9a,0xa,0x40,
+ 0x29,0xe0,0x3b,0x48,0x1c,0x20,0x0,0x1f,0x65,0xb0,0x82,0x20,0x10,0x84,0xe1,0x7f,
+ 0x51,0x56,0x4d,0xac,0xe,0x3d,0x42,0x27,0x4f,0xbd,0x43,0x11,0x79,0xed,0x89,0x85,
+ 0x20,0xba,0x18,0x74,0x8,0x25,0x8,0xec,0x50,0x1d,0x45,0xd1,0x55,0x58,0xdc,0x6d,
+ 0x8c,0x8d,0x3a,0x75,0x18,0x86,0x81,0x61,0x66,0xf8,0xe7,0x9b,0xb1,0x8d,0xd,0xd8,
+ 0x7,0xb2,0xd1,0xb8,0x6d,0xe7,0x38,0x5d,0x1d,0xcc,0xa,0x1f,0x71,0xbc,0x43,0x92,
+ 0x24,0xd8,0x44,0x2b,0x94,0x65,0x45,0x5a,0x6a,0x3,0x86,0xfe,0xb,0x8,0xb3,0x18,
+ 0x82,0xb1,0x85,0xbc,0xca,0xe8,0xd0,0x28,0x6e,0x25,0xb8,0xe7,0x43,0x4f,0x15,0x1e,
+ 0x65,0x6,0xee,0x3a,0xb8,0x8b,0x9c,0x84,0xe1,0x10,0x4a,0x41,0x3b,0x3d,0x84,0x2c,
+ 0xc0,0x27,0x36,0x6a,0x59,0xbf,0x81,0x55,0x8c,0x16,0xc4,0xa9,0x7,0x6b,0x70,0xd8,
+ 0x3f,0xd1,0x9b,0x8e,0x6a,0xa8,0xf7,0x19,0x1,0xdf,0x31,0x6,0xd7,0x76,0x1d,0x34,
+ 0x25,0x78,0x23,0x17,0x69,0x7a,0x86,0xa8,0x3b,0x84,0x8b,0x10,0xe9,0xf1,0x82,0xf5,
+ 0x32,0x82,0xa1,0xdb,0xfd,0xf9,0x73,0x78,0x9,0x40,0x48,0xb5,0xe3,0x20,0xc,0xc3,
+ 0xd0,0xa7,0xd8,0xb4,0x31,0x37,0x48,0xe,0xc0,0x8e,0x10,0x3,0x52,0x25,0x50,0x7,
+ 0x4e,0xcd,0x2d,0x38,0x42,0xc6,0x48,0x28,0x53,0xa1,0x9,0xa2,0xb4,0x69,0xa,0x1b,
+ 0x78,0xf1,0x93,0x7f,0xcf,0xb6,0x64,0x2f,0x20,0x3f,0x41,0xcd,0xa,0x21,0x4,0xdc,
+ 0xae,0x17,0x98,0xcd,0x19,0xac,0x12,0xda,0xf6,0x88,0xd8,0x27,0x88,0x96,0x4c,0xe4,
+ 0x9c,0x83,0x31,0x6,0xcc,0xfc,0x77,0xeb,0xf4,0x41,0x55,0xe9,0x52,0x41,0xea,0xb9,
+ 0xe,0x51,0x9d,0x35,0xab,0x31,0x4a,0xcd,0x91,0xc3,0x6b,0xb2,0x53,0xf1,0x7f,0xb3,
+ 0x21,0xf2,0x93,0x27,0xc6,0x8,0xef,0x3d,0xac,0xb5,0x78,0xa4,0x1e,0x52,0x69,0xec,
+ 0xb6,0x7b,0xdc,0x53,0x37,0xe2,0x35,0x9a,0xd3,0x1,0x4f,0xea,0x50,0x4e,0x7b,0xb5,
+ 0xc,0x3f,0xc9,0x5b,0x0,0xb1,0x20,0x45,0x25,0xa3,0xb0,0xb0,0x8,0x83,0xae,0x8a,
+ 0x2e,0x30,0xc4,0xf6,0x33,0xf0,0x8,0x71,0x31,0x88,0x8,0xb1,0x33,0x28,0xc8,0xab,
+ 0x30,0x70,0x70,0x30,0x41,0x95,0x32,0x30,0xbc,0x7c,0xf9,0x92,0x41,0x5b,0x5b,0x9b,
+ 0x81,0xb,0x98,0x54,0x7,0xb,0xf8,0xf4,0xe9,0x13,0xc3,0x97,0x2f,0x5f,0x18,0x14,
+ 0x95,0xe4,0x19,0xb8,0xfe,0x70,0x33,0x1c,0x7e,0xbc,0x9f,0xe1,0xd1,0xbf,0xcb,0xc,
+ 0x49,0x2a,0x65,0xc,0x5,0x67,0xa3,0x18,0x26,0x38,0x2c,0x63,0xf8,0xc3,0xf2,0x9b,
+ 0x1,0xd9,0xaf,0x30,0xbd,0x0,0x1,0x84,0x12,0x8d,0x3f,0xff,0x2,0xcb,0x9,0x66,
+ 0x26,0x6,0x69,0x2b,0x7f,0x6,0x71,0x60,0xd2,0xfb,0xfe,0xe3,0x27,0x30,0xd5,0xff,
+ 0x67,0xf8,0xf3,0x87,0x99,0x81,0x88,0x8,0x27,0xbe,0x54,0x2,0x26,0xdf,0x7f,0xff,
+ 0x6e,0x31,0x7c,0xfd,0xaa,0xc6,0xc0,0x4,0xc,0x5b,0x10,0xa6,0x46,0x78,0xfe,0xfe,
+ 0xfd,0x8f,0x81,0x5d,0x94,0x83,0xc1,0x45,0xc4,0x93,0xe1,0xce,0x57,0x15,0x70,0xdd,
+ 0x16,0xa6,0x9d,0x8,0x4e,0x80,0x2c,0xbf,0xfe,0x61,0xd5,0x3,0x10,0x40,0x4c,0xc8,
+ 0x1c,0x16,0x26,0x48,0xed,0xc7,0x7e,0xfd,0x3c,0x3,0xbf,0xb0,0x24,0x83,0x8c,0xbc,
+ 0x3c,0xb0,0x30,0xfa,0x2,0xf4,0x3c,0xf5,0x2a,0x84,0xef,0xc0,0x2c,0xfe,0xf5,0x9b,
+ 0x31,0x30,0x89,0xab,0x3,0x3d,0xce,0xc8,0xf0,0xea,0x15,0x23,0x30,0x20,0x18,0x19,
+ 0x2e,0x5f,0x5a,0xc4,0x70,0xff,0x21,0x42,0xdd,0xbf,0x7f,0x7f,0x48,0x36,0x5b,0x4c,
+ 0x54,0x94,0x61,0xfd,0xb9,0x73,0xc,0x86,0x1d,0x73,0x19,0xa4,0x1f,0xb1,0x30,0x2c,
+ 0x59,0xb1,0x88,0x41,0xf6,0x9d,0x1,0xc3,0xa3,0x1b,0xf7,0x81,0x81,0xc0,0x8e,0x55,
+ 0xf,0x40,0x0,0x31,0x61,0xd4,0x96,0xa0,0xfc,0x27,0x2e,0xc9,0xf0,0xfc,0xc9,0x73,
+ 0x86,0x7,0x77,0x1f,0x31,0x70,0x73,0xf3,0x3,0x1d,0xf3,0x8f,0x2a,0x9e,0x7,0x96,
+ 0xa7,0xc,0x6c,0x3c,0x66,0xc,0x3c,0xdc,0xe7,0xc0,0x7c,0x1e,0x60,0xdd,0xa3,0xa4,
+ 0xc4,0xc0,0x0,0x74,0x37,0x83,0xb2,0x5a,0x3c,0x30,0x50,0x98,0x18,0x6e,0xdd,0x89,
+ 0x6,0x17,0x78,0x4c,0x4c,0x2c,0xc0,0x82,0xf7,0x3d,0x49,0xc9,0xa,0xa4,0x4f,0xeb,
+ 0xd6,0xd,0x86,0xa2,0xca,0x14,0x86,0xd3,0x9a,0x8a,0xc,0x2,0x1c,0x42,0xc,0x32,
+ 0xba,0xa2,0xc,0x92,0x8a,0x32,0xc,0xff,0x7e,0x63,0xd7,0x6,0x10,0x40,0xa8,0x1,
+ 0xc0,0x9,0x89,0xe9,0xf3,0x57,0x2e,0x3,0x4b,0xe5,0xbf,0xc0,0x2,0x8b,0x1d,0x58,
+ 0xe2,0xfe,0xa5,0x4a,0x93,0xe0,0x17,0xb0,0xd2,0x31,0x36,0x96,0x61,0xb8,0x7d,0xe1,
+ 0x34,0x43,0x5b,0x2d,0x23,0xc3,0xb5,0xdb,0xc0,0x94,0x80,0x14,0xc9,0xc0,0x82,0x9b,
+ 0xe1,0xef,0x1b,0x35,0x86,0x53,0xdb,0x96,0x31,0xcc,0xea,0x17,0x3,0x8b,0xf1,0xf3,
+ 0xb,0x2,0x93,0xf5,0x6f,0xa2,0xed,0x0,0x79,0x46,0xf1,0xbd,0x30,0x83,0x3f,0x90,
+ 0xb6,0x2,0x62,0x4b,0x63,0x1d,0x86,0xfd,0xbb,0xf7,0x32,0xb0,0xb2,0xb3,0x2,0x2b,
+ 0xfd,0x9f,0x58,0xf5,0x0,0x4,0x10,0x4a,0x0,0x30,0xfd,0xfa,0xb,0xa6,0xa3,0x63,
+ 0xe3,0x18,0xbe,0x7e,0x78,0xc5,0xc0,0xc1,0xc5,0xe,0x76,0x0,0x23,0x15,0x72,0x0,
+ 0x1b,0xe7,0x3c,0x86,0x83,0x87,0x9e,0x32,0x5c,0x3f,0x71,0x88,0x21,0x31,0xea,0x3b,
+ 0xc3,0xd9,0x1d,0x33,0x19,0x56,0x4d,0x59,0xcf,0xd0,0x59,0x3d,0x97,0xe1,0x1d,0xb0,
+ 0x81,0xfa,0xeb,0xb3,0x14,0xc3,0x9e,0xed,0x9e,0xc,0x9a,0x7a,0xa9,0xc,0xf2,0xbc,
+ 0xaf,0x19,0xa6,0x4d,0xcb,0x4,0xeb,0x63,0x65,0x25,0xae,0x51,0xfa,0x1f,0x54,0x63,
+ 0x2,0x3,0x79,0x6e,0x1a,0xb,0x3,0x3f,0xb0,0x8c,0x61,0xf9,0xc8,0xc0,0x70,0x15,
+ 0x98,0xa7,0x9c,0x5c,0x9d,0x51,0x52,0x37,0x3a,0x0,0x8,0x20,0x94,0xa2,0x8d,0x83,
+ 0x9b,0x8b,0xe1,0x2f,0xd0,0x90,0x69,0xd3,0xa6,0x32,0x68,0x6a,0x68,0x32,0x7c,0xff,
+ 0xfe,0x1d,0x23,0x91,0x90,0x55,0x38,0x1,0x3d,0x78,0xe7,0x59,0x32,0x3,0x1f,0x53,
+ 0x1c,0x83,0x7d,0x8a,0x2d,0x30,0xaa,0x4f,0x32,0xc4,0xe6,0x6,0x43,0x1b,0x68,0x52,
+ 0xc,0xb7,0xae,0x31,0x33,0x5c,0x7b,0x97,0xc0,0xa0,0xac,0xf5,0x1c,0xd8,0xf8,0xf9,
+ 0xcc,0xc0,0x29,0x28,0xc1,0xa0,0xc5,0x2f,0x9,0x6d,0x6d,0x0,0xdb,0x9,0x40,0xdf,
+ 0x31,0x12,0x13,0xb,0xc0,0x6c,0x2e,0x71,0xfb,0x15,0x83,0x24,0x30,0x75,0x31,0xd8,
+ 0x0,0x3,0x9d,0x8d,0x85,0xe1,0x1a,0xb0,0x3d,0xc0,0xcd,0xc8,0xc9,0x20,0xaf,0xa1,
+ 0x84,0x55,0xb,0x40,0x0,0xa1,0x4,0x0,0x23,0xb,0x2b,0x3,0x33,0x50,0xe4,0xc3,
+ 0xfb,0x77,0xc,0xec,0xc0,0x64,0x23,0x2c,0x20,0x8,0xae,0xee,0x40,0xf5,0x2c,0x1b,
+ 0x1b,0x1b,0xd9,0x1,0xc0,0xa,0xd4,0xaa,0xa1,0x0,0x34,0x5f,0xc6,0x83,0xe1,0xe3,
+ 0xb3,0x7b,0xc,0xdf,0xbe,0x3d,0x63,0xe0,0x60,0x7f,0xcb,0xf0,0xed,0xeb,0x37,0x6,
+ 0x69,0x4d,0x60,0x3e,0xfd,0x1f,0xc7,0xb0,0x66,0xee,0x2,0x6,0x8f,0x8c,0x7b,0xc,
+ 0xbf,0x3e,0xca,0x2,0xb3,0x6,0x3b,0xc3,0xc7,0x7b,0x67,0xa1,0x19,0x8f,0x9,0x18,
+ 0x0,0xff,0x8,0x6,0x0,0x48,0xf6,0x27,0x30,0x4b,0x5,0x2a,0xf1,0x31,0x4,0xaa,
+ 0x73,0x32,0xbc,0x6,0x16,0x1f,0x6f,0x9e,0xbf,0x66,0x30,0xb3,0xb0,0x2,0x9a,0xc0,
+ 0xc8,0xf0,0xf3,0xf7,0x5f,0xac,0xfa,0x0,0x2,0x8,0x25,0x7a,0x5f,0xbf,0x7a,0x5,
+ 0x6e,0x26,0xf8,0x5,0x4,0x30,0xe8,0xea,0xe8,0x0,0xcb,0x81,0xef,0xc,0x5b,0x36,
+ 0x6d,0xa7,0xc8,0xf3,0xa0,0xee,0xd7,0xd3,0x1b,0x33,0x18,0x7a,0x7b,0x25,0x18,0xdc,
+ 0x22,0x22,0x81,0xb5,0xcb,0x35,0x6,0x49,0xd,0x51,0x60,0xaa,0xf8,0xc6,0x20,0x20,
+ 0x26,0xd,0x2c,0x71,0x75,0x18,0x6e,0xef,0x99,0xc2,0x20,0xa3,0xf9,0x1b,0x58,0xdd,
+ 0x72,0x2,0xdb,0x44,0xc0,0x18,0xf8,0xf6,0x90,0x41,0x58,0xae,0x10,0xe1,0x48,0x26,
+ 0x26,0x22,0xca,0x40,0x46,0x6,0x76,0xb6,0x77,0xc,0xad,0x3d,0xde,0xc0,0xc0,0xfa,
+ 0xc6,0x20,0x2a,0x78,0x88,0x41,0x43,0x5b,0x1f,0xec,0x79,0xb0,0xfc,0x4f,0xec,0x65,
+ 0x0,0x40,0x0,0xa1,0x98,0xcc,0xce,0xc2,0x1,0xa6,0xcd,0x4d,0x8d,0x19,0x5e,0x7d,
+ 0xe6,0x63,0x90,0x55,0x50,0x66,0xd0,0xd3,0x55,0xa0,0x28,0xf9,0x7f,0x78,0xf3,0x83,
+ 0xe1,0xda,0xa5,0xab,0xc,0xe9,0x81,0x67,0x19,0xea,0x13,0x97,0x0,0xeb,0xe6,0x1f,
+ 0xc,0xa2,0x52,0x8a,0xc,0xf,0x59,0x43,0x18,0xb8,0xc5,0x3e,0x33,0x5c,0x98,0x39,
+ 0x8b,0xe1,0xea,0x9d,0xab,0xc,0x32,0x96,0x5f,0x18,0xfe,0x7f,0x12,0x2,0xe6,0xf9,
+ 0xbf,0xc,0x77,0x6e,0x30,0x30,0x48,0x4a,0x9,0x90,0x61,0x9b,0x10,0x83,0xb3,0xdb,
+ 0x19,0x6,0xb,0x9b,0x2c,0x20,0xdb,0xe,0x58,0xf0,0x7e,0x62,0x58,0xb5,0x74,0x21,
+ 0xc3,0xd7,0xcf,0x7f,0xc1,0xd9,0x1b,0x1b,0x0,0x8,0x20,0x94,0x0,0x30,0xd6,0xb5,
+ 0x0,0x16,0x50,0x49,0xc,0xfd,0xd3,0x37,0x31,0xe8,0xa9,0x9d,0x67,0x38,0xb9,0x21,
+ 0x93,0x41,0x50,0x56,0x13,0x58,0x29,0xff,0x24,0x3b,0x0,0x9e,0xbf,0xff,0xc6,0x70,
+ 0xff,0x2e,0xb,0x3,0xa7,0xf0,0x1d,0x6,0x6b,0x6f,0x43,0x60,0x92,0x50,0x60,0x28,
+ 0x49,0xd9,0xc3,0xa0,0x23,0x71,0x89,0xe1,0xe2,0xdc,0x2d,0xc,0xef,0xee,0x2,0x3b,
+ 0x48,0x5e,0x97,0x19,0x78,0x5,0xdf,0x1,0xfb,0xa,0x1f,0x19,0x9e,0xdd,0xdf,0xcd,
+ 0x60,0xe0,0x36,0x95,0x41,0x5f,0xcf,0x80,0x24,0x7b,0x40,0x39,0xe4,0x1d,0xb0,0x8b,
+ 0x63,0xa1,0x25,0xcd,0x70,0xfc,0x70,0x2a,0xc3,0xb5,0x67,0xbf,0x19,0x3e,0x3,0x9b,
+ 0xf5,0xa6,0xb6,0xe,0xc,0xdc,0xbc,0xcc,0xc,0xdf,0xbf,0x7e,0xc3,0xaa,0xf,0x20,
+ 0x80,0x50,0x2,0xe0,0x27,0xc3,0x37,0x6,0x7b,0x2b,0x47,0x60,0x67,0xe6,0x1f,0xc3,
+ 0xa7,0x97,0xbf,0x19,0x44,0x25,0xcd,0x80,0x1a,0x19,0xc8,0x2e,0x8,0x3f,0x1,0xc3,
+ 0x8d,0xe5,0xe5,0x46,0x86,0xb4,0xe2,0x70,0x6,0x66,0x76,0x61,0x86,0xad,0xd5,0xdd,
+ 0xc,0x1f,0xee,0xbd,0x65,0x28,0x6f,0x52,0x6,0x76,0x58,0x98,0x19,0x98,0x45,0x35,
+ 0x18,0x78,0xe4,0x80,0x5,0xd5,0x85,0x97,0xc,0x6f,0xf7,0xa6,0x32,0x3c,0x39,0xfc,
+ 0x89,0xe1,0xf9,0xcf,0x4f,0xc,0xe,0xce,0x59,0x64,0xf5,0x7a,0x85,0x80,0x2d,0xbf,
+ 0x2b,0x57,0x4f,0x33,0xac,0x6d,0x32,0x62,0x50,0x91,0x2,0x95,0x67,0x8c,0xc0,0xf2,
+ 0x87,0x85,0xe1,0xf7,0xf7,0xff,0xc,0x6c,0x5c,0xd8,0xb3,0x31,0x40,0x0,0xa1,0x14,
+ 0x82,0x57,0x2f,0x9e,0x67,0x48,0xc8,0x89,0x85,0xf3,0x8f,0x5c,0xb9,0xc4,0x60,0xf8,
+ 0x19,0xd8,0x8a,0xe2,0x27,0xaf,0x3b,0xfa,0xfe,0xd5,0xb,0x86,0xff,0xcc,0xc0,0xd2,
+ 0x88,0x4d,0x85,0xe1,0xeb,0xc7,0x47,0xc,0xe,0x69,0x51,0xc,0x2f,0x3e,0x7f,0x67,
+ 0x60,0x79,0xcc,0xc9,0xc0,0x23,0xcb,0xc3,0xc0,0xfc,0xf7,0x2b,0xc3,0x7f,0xa6,0xaf,
+ 0xc,0x46,0x9c,0xe9,0xc,0x2,0x4c,0x7f,0x81,0x55,0xa1,0xd,0x43,0x6c,0xd9,0x19,
+ 0x32,0xd3,0x1a,0x23,0xc3,0xa7,0x8f,0xbf,0x19,0xc4,0x95,0xcd,0x18,0x74,0xea,0x2e,
+ 0x30,0x5c,0xb9,0xf4,0x94,0xe1,0xe9,0xab,0x97,0xc,0xa2,0x12,0x92,0xc,0x5f,0xd8,
+ 0x7f,0x31,0x8,0x72,0x60,0xaf,0x4e,0x1,0x2,0x8,0x25,0x0,0xd8,0x79,0xd8,0xc1,
+ 0x35,0xd3,0xd3,0x97,0xf7,0x18,0xa4,0xe5,0x94,0x18,0x54,0x25,0x99,0x18,0x58,0x58,
+ 0x79,0xc8,0x4e,0xfe,0xf2,0xb2,0x12,0xc,0x87,0x8e,0x8,0x30,0xcc,0x5d,0x12,0xc1,
+ 0xf0,0xe3,0x3,0x30,0x45,0x19,0x9b,0x33,0xd8,0x7,0x79,0x1,0x3d,0xaf,0xcc,0x70,
+ 0xeb,0xd0,0x5e,0x86,0x27,0xe7,0x2f,0x32,0x48,0xe8,0x6a,0x32,0xfc,0xfb,0xf2,0x89,
+ 0x81,0x99,0xed,0x3f,0xc3,0xa3,0x73,0x47,0x18,0xd8,0x29,0xa9,0x6e,0xff,0xbc,0x67,
+ 0xe0,0xe6,0x14,0x6,0x8f,0xed,0xe8,0x68,0xff,0x66,0x90,0x57,0xf2,0x4,0xb6,0x36,
+ 0xb9,0x80,0x41,0xc3,0xc4,0xf0,0xed,0xd3,0x17,0xac,0x7a,0x0,0x2,0x8,0x25,0x0,
+ 0xb4,0x95,0x64,0x18,0xaa,0x57,0xbd,0x60,0x50,0xfd,0x7f,0x81,0x41,0xe6,0xc6,0x25,
+ 0x6,0x79,0x65,0x23,0x86,0xbf,0x8c,0xff,0x18,0x7e,0x1,0x1b,0x43,0x6c,0xac,0xa4,
+ 0x8f,0x92,0x81,0xc6,0x2,0xe4,0xd,0x5,0x18,0x4c,0x8c,0x32,0x19,0xb8,0x94,0x80,
+ 0x9d,0x93,0x37,0xef,0x19,0x6e,0xbd,0x78,0xcf,0xf0,0x87,0xff,0x25,0x3,0x3,0x28,
+ 0x76,0x80,0x62,0x8f,0x5e,0x7e,0x66,0x50,0x94,0x95,0x64,0x78,0xba,0x77,0x21,0x83,
+ 0x96,0x53,0x4,0x65,0x83,0x1e,0x5f,0x41,0x8d,0xb6,0xf,0xc0,0xaa,0x1b,0xd8,0xb6,
+ 0x66,0x66,0x65,0xe0,0xe5,0x41,0xb8,0xf9,0x3f,0xf3,0x7f,0xac,0x7a,0x0,0x2,0x8,
+ 0x25,0x0,0x4e,0x5e,0xbe,0xc5,0xd0,0x1a,0x6e,0x7,0x64,0xf9,0x83,0x7b,0xf3,0x3f,
+ 0xbe,0x7d,0x65,0x78,0xfb,0xfe,0x3,0x3,0xb,0x72,0xdf,0x9c,0x4,0xf0,0xec,0xc9,
+ 0x63,0x6,0x96,0xef,0x1f,0x19,0xee,0x31,0xa,0x33,0xfc,0x38,0x7f,0x87,0xe1,0xf3,
+ 0xdb,0x77,0xc,0x4a,0x3a,0xda,0xc,0x42,0xdf,0x3e,0x33,0xdc,0xbd,0x74,0x84,0x81,
+ 0x89,0x87,0x97,0xe1,0xfb,0xcb,0x77,0xc,0xb7,0xaf,0xee,0x62,0xe0,0xb0,0x4b,0x62,
+ 0x70,0x8d,0xcc,0xa1,0x28,0x0,0x58,0x59,0x19,0xd1,0xbd,0x84,0xc8,0x20,0xff,0xb1,
+ 0x8b,0x3,0x4,0x10,0xb,0x6a,0x5d,0xa,0x9,0xa5,0x4d,0x5b,0xb6,0x33,0xc8,0x48,
+ 0x4a,0x32,0xf0,0xb,0x8a,0x32,0x5c,0xbf,0x76,0x89,0x41,0x5a,0x5a,0x9a,0x2c,0x7,
+ 0x7d,0xfe,0xf1,0x89,0x41,0x94,0x87,0x9b,0x41,0x43,0x48,0x9c,0xe1,0xdd,0xdb,0x37,
+ 0xc,0x62,0xc6,0xc0,0x56,0xe0,0xf7,0xcf,0xc,0x1b,0x92,0x92,0x18,0x5e,0x9b,0x47,
+ 0x32,0x68,0x1b,0x98,0x32,0x88,0xbd,0x7f,0xc9,0xa0,0xea,0x11,0xc7,0x20,0xc9,0xc3,
+ 0xcc,0x40,0x29,0x60,0x67,0xe7,0x2,0x76,0xa8,0xb0,0x37,0x78,0x58,0x58,0xb1,0x9b,
+ 0xf,0x10,0x40,0x28,0x1,0xf0,0xe4,0xc5,0x33,0x6,0x6,0x7d,0x6,0x6,0x75,0x75,
+ 0x75,0x60,0xd7,0x98,0x5,0xd8,0xbd,0xe4,0x63,0xe0,0x32,0x36,0x26,0xdb,0x41,0x2f,
+ 0x1e,0x3e,0x62,0x50,0x55,0x67,0x62,0xf8,0xc7,0xc8,0x2,0xec,0x55,0x2,0xcb,0x12,
+ 0x66,0x51,0x86,0x87,0xcb,0x26,0x33,0x3c,0x16,0x50,0x64,0xc8,0x28,0xae,0xa7,0xfa,
+ 0xd0,0xf3,0xff,0xff,0x7f,0x19,0xfe,0xff,0xc7,0x35,0x26,0xf8,0x11,0xab,0x38,0x40,
+ 0x0,0xa1,0xd4,0x6f,0x56,0x6,0xb6,0x90,0xc2,0x4b,0x4e,0x9e,0x41,0x59,0x59,0x11,
+ 0xd8,0x2a,0xe3,0x0,0xf6,0xc8,0xf8,0xe0,0x29,0x83,0x54,0xa0,0xaa,0x61,0xce,0xb0,
+ 0x6e,0xc7,0x21,0x6,0xb6,0xff,0x4f,0x19,0xb8,0xa5,0x6d,0x18,0x6e,0xef,0x5c,0xc1,
+ 0x30,0x7d,0xf1,0x7a,0x60,0x4b,0x2b,0x88,0x86,0xe3,0xee,0xd8,0x93,0x3a,0x37,0x27,
+ 0x3f,0x56,0x71,0x80,0x0,0x42,0x51,0xfd,0xf,0xda,0x65,0xfa,0xfe,0xfa,0xb,0xc3,
+ 0x1f,0x76,0x6e,0x60,0xb2,0xf9,0xcf,0xf0,0xfc,0xe3,0x6b,0x6,0x5,0x60,0x80,0x90,
+ 0x3,0x64,0x65,0x84,0x18,0x6c,0x2,0x27,0x31,0xec,0xbd,0x7c,0x9c,0xe1,0xd4,0xa,
+ 0x2f,0x6,0x55,0x59,0x25,0x6,0x43,0x2d,0x39,0x6,0xb3,0x80,0x78,0x86,0x2f,0xc0,
+ 0x9e,0x27,0xf,0x1b,0x33,0x3,0xbd,0xc0,0xcf,0x1f,0xd8,0xbb,0x83,0x0,0x1,0x84,
+ 0x92,0x2,0xc4,0xb8,0xc5,0x19,0xae,0xbe,0x3d,0xcf,0xb0,0xfa,0xde,0x62,0x86,0x73,
+ 0xaf,0xf7,0x33,0x4c,0xbd,0xdc,0xc6,0xa0,0xc8,0xd,0xea,0xc5,0xfc,0x25,0xdb,0x62,
+ 0x26,0xd6,0xcf,0xc,0xce,0xe,0x96,0xc,0xc6,0x5f,0xae,0x31,0x8,0xbf,0x3c,0xc2,
+ 0x20,0x1f,0x5a,0xce,0xa0,0x28,0xcc,0xc6,0xb0,0x61,0xf9,0x62,0x86,0x57,0xaf,0x5f,
+ 0xd2,0xc0,0xab,0x7f,0x71,0x8c,0x54,0x63,0x57,0xd,0x10,0x40,0x28,0x29,0xe0,0xd5,
+ 0xb7,0xf7,0xc,0xda,0x62,0x86,0xc,0x3c,0x8a,0x22,0xc,0x82,0xdc,0xfc,0xc,0x2a,
+ 0x22,0xfa,0xc,0x4f,0xbf,0x3c,0x65,0x90,0x16,0x21,0xaf,0x10,0x3c,0x75,0xea,0x14,
+ 0x3,0x13,0xb0,0x93,0x72,0x1a,0xd8,0xbb,0xfc,0x6e,0x95,0xc1,0x60,0xed,0xea,0xc7,
+ 0x20,0xa3,0xaa,0xcb,0xb0,0x7c,0xe9,0x52,0x86,0x98,0xf8,0x4,0x86,0x59,0xb3,0x66,
+ 0x31,0x24,0x27,0x27,0xa3,0x8e,0x0,0x53,0x8,0x1e,0x3d,0x7a,0xc6,0xb0,0x7b,0xcb,
+ 0xe,0x86,0xd7,0xc0,0xf2,0x87,0x85,0x83,0x9d,0x41,0x5c,0x5e,0x8e,0xc1,0xc0,0xd4,
+ 0x4,0xd8,0x39,0x12,0xc1,0xaa,0x1e,0x20,0x80,0x50,0x2,0xe0,0xfd,0xdb,0x67,0xc,
+ 0x32,0xc0,0x1e,0x1a,0x1b,0x30,0x87,0xfe,0xfe,0xf7,0x9b,0x81,0xf3,0x3f,0x17,0xc3,
+ 0x27,0x96,0xf,0x64,0xd6,0xc9,0x5f,0x19,0x64,0x64,0x64,0x18,0x78,0x79,0x79,0x19,
+ 0x4c,0x80,0xf8,0xd6,0x33,0x2b,0x6,0x19,0x29,0x5e,0x86,0x59,0x33,0xa6,0x33,0xa4,
+ 0x65,0x64,0x32,0xbc,0x2,0xf6,0x3c,0x13,0x13,0x13,0x19,0x2e,0x5d,0x2,0xb6,0x36,
+ 0xd,0xd,0xc9,0xb2,0x3,0x34,0x54,0x87,0xdc,0x53,0xdc,0xb7,0x7d,0x7,0x3,0xc7,
+ 0x91,0x8b,0xc,0x6e,0xd2,0x4a,0xc,0xfc,0x5c,0xd2,0xc0,0x86,0xd1,0x6f,0x86,0x77,
+ 0xd7,0x5e,0x32,0x1c,0x3b,0x34,0x93,0xe1,0xbb,0x89,0x36,0x56,0x33,0x0,0x2,0x8,
+ 0x75,0x44,0x88,0x15,0x32,0xfe,0x2e,0x22,0x23,0xc8,0x20,0x28,0x22,0xc0,0x20,0x28,
+ 0xce,0xcf,0x20,0x2c,0x20,0x4a,0x56,0x21,0xf8,0x13,0xd8,0xfd,0x4,0x8d,0xd3,0x83,
+ 0x2,0x0,0x4,0x84,0xd9,0x7e,0x30,0x2c,0x5e,0xbc,0x8,0xec,0xf9,0x77,0xef,0xde,
+ 0x81,0x87,0xd7,0x41,0xa3,0x3d,0xe2,0xe2,0xe2,0xc,0xd7,0xae,0x5d,0x23,0x2f,0x7b,
+ 0x21,0x79,0xfe,0xc2,0x85,0xb,0xc,0x8f,0x2e,0x5c,0x66,0x50,0x32,0xd0,0x65,0x78,
+ 0x8,0x6c,0x55,0x3e,0xfd,0xf4,0x9e,0x81,0x95,0x91,0x89,0x41,0x9c,0x97,0x8f,0x21,
+ 0x50,0xcd,0x80,0x41,0xeb,0xe2,0x7d,0x6,0x11,0x6e,0x1e,0x27,0x74,0x33,0x0,0x2,
+ 0x8,0x25,0x0,0x84,0xf8,0x79,0x18,0x3e,0xbf,0xf9,0xc6,0xb0,0x7e,0xd5,0x76,0x86,
+ 0xcb,0xa7,0x2f,0x33,0xac,0x5a,0xbd,0x8e,0xe1,0xdc,0xb9,0xd3,0xc4,0x8d,0xc6,0xa0,
+ 0x81,0xa7,0x4f,0x9f,0x32,0xfc,0xfd,0x8b,0xc8,0x8f,0xc2,0x22,0xa2,0xc,0xb1,0xb1,
+ 0x71,0xf0,0xc9,0x15,0x25,0x25,0xc8,0x8,0xd,0x28,0x90,0x40,0xc3,0x6e,0x94,0xc,
+ 0xbc,0xee,0xdf,0x7f,0x80,0x41,0x42,0x52,0x9e,0x21,0xbc,0xa8,0x84,0x81,0x2f,0xd0,
+ 0x9d,0x81,0x37,0xc6,0x97,0xe1,0xbc,0x81,0x2,0xc3,0xae,0x6f,0xaf,0x81,0x85,0xdf,
+ 0xf,0x6,0x6,0x20,0x36,0x50,0x52,0x67,0x98,0x1f,0x9a,0x12,0xc1,0xc4,0xc8,0xa8,
+ 0x7,0x9b,0xb7,0x1,0xfa,0x8b,0x9,0x20,0x80,0x50,0x2,0xe0,0xfd,0xe7,0xaf,0xc,
+ 0xbc,0x22,0x5c,0xc,0x66,0x66,0x46,0xc,0xb2,0x2a,0x72,0xc,0xe,0xf6,0xd6,0xc,
+ 0x3a,0x3a,0x7a,0x64,0x36,0x4a,0xd8,0xb1,0xa6,0x1c,0x90,0x47,0x41,0xd,0x2b,0xe,
+ 0xe,0xe,0xc4,0x78,0x21,0x1b,0x1b,0x78,0x66,0x87,0x1c,0x10,0x97,0x90,0x0,0x8c,
+ 0x20,0x76,0x6,0x1f,0x6f,0x1f,0x6,0x1,0x3e,0x1e,0x6,0x29,0x60,0x40,0x4b,0x2,
+ 0x1b,0x5e,0x46,0x56,0x76,0xc,0x3c,0x3e,0xae,0xc,0xbb,0xb9,0xff,0x31,0x3c,0x3,
+ 0xa6,0x6,0xd0,0xb8,0x9c,0xa3,0xa2,0x6,0x8b,0xb9,0x98,0x12,0x68,0xb0,0x91,0x1b,
+ 0x1a,0xf9,0x2c,0x0,0x1,0x84,0x12,0x0,0xff,0xfe,0x42,0x86,0x69,0xe5,0x14,0x24,
+ 0x18,0x84,0x4,0x85,0x18,0x4,0x5,0x84,0xc9,0x1e,0x11,0xfe,0xf8,0xf1,0x23,0xce,
+ 0xe9,0xb3,0xb7,0x6f,0xdf,0x82,0x53,0x8,0x28,0x2b,0x80,0xed,0x93,0x93,0x3,0x76,
+ 0x5a,0x48,0xef,0x74,0x25,0x24,0x26,0x30,0xb8,0xbb,0x6,0x30,0x68,0x6b,0xeb,0x1,
+ 0x23,0xf9,0xf,0x3,0x37,0xf,0x7,0xc3,0xb7,0x6f,0x3f,0x18,0x9e,0x3e,0x7b,0xcd,
+ 0xf0,0xed,0xf3,0x37,0x6,0x69,0x51,0x69,0x6,0x69,0x77,0x57,0x86,0x6b,0x2,0xc0,
+ 0xae,0xf0,0x9f,0x3f,0xc,0xe7,0xee,0x3c,0x64,0x50,0xe5,0x95,0xd4,0x64,0x64,0x60,
+ 0x54,0x80,0xce,0xd7,0xb1,0x3,0x4,0x10,0x8a,0xb,0x85,0x44,0x44,0xc0,0xb3,0xe8,
+ 0x37,0xee,0xdd,0x65,0xf8,0xfc,0xf9,0x33,0x83,0xac,0xbc,0x3c,0xb0,0xd,0xfd,0xf,
+ 0x98,0x94,0x79,0x49,0x2a,0xa9,0x41,0xf9,0x5f,0x48,0x48,0x8,0x67,0xbe,0xe5,0xe7,
+ 0xe7,0x7,0x7,0x2,0xac,0x89,0xcd,0xcd,0xcd,0x4d,0xb2,0xe7,0x33,0xb3,0x12,0x19,
+ 0xfc,0xfd,0x56,0x31,0x28,0x2a,0x6e,0x61,0xf8,0xf0,0xf1,0x2f,0xc3,0xad,0xab,0x6a,
+ 0xc,0xbf,0x7e,0xa4,0x33,0x28,0x69,0x3b,0x3,0x23,0x8e,0x97,0xe1,0xc7,0xf7,0xef,
+ 0x40,0x3f,0x3,0x7b,0xa0,0xbc,0x2,0xc,0x6f,0x55,0x55,0x18,0xe6,0x4e,0x5f,0xce,
+ 0xf0,0xf2,0xd5,0x67,0x60,0xdb,0x83,0x9d,0x9,0x98,0xd,0x24,0xfe,0xfe,0xff,0xf,
+ 0x1a,0x22,0x62,0x4,0x8,0x20,0x16,0xd4,0x2a,0x81,0x91,0xe1,0x3,0x30,0x1b,0x3c,
+ 0x7e,0xfa,0x88,0x41,0x5a,0x4a,0x8e,0x81,0x8b,0x93,0x8b,0xe1,0xdb,0xd7,0x8f,0x24,
+ 0x57,0x53,0xa0,0x9,0x56,0x7c,0xfd,0x7,0x9,0x9,0x9,0x30,0x26,0x17,0x4,0xfa,
+ 0xa7,0x32,0x74,0x76,0x2f,0x60,0x50,0x53,0x3,0x37,0xdb,0x80,0xb1,0xcb,0xc9,0xf0,
+ 0x5f,0xd1,0x9d,0xe1,0xd5,0xd9,0x73,0xc,0xbb,0xb6,0x1e,0x60,0x50,0x71,0x28,0x6,
+ 0x76,0xc5,0x15,0x80,0x6e,0xff,0x2,0x8c,0x40,0xa0,0x12,0x3e,0x2e,0x86,0xdd,0xcf,
+ 0xee,0x33,0xe8,0x31,0x9,0x3,0x33,0x3e,0x13,0xa8,0x48,0x3,0x36,0x6f,0x81,0x18,
+ 0x18,0x0,0x0,0x1,0x84,0x92,0x5,0xfe,0x0,0x5b,0x67,0x2c,0xcc,0x8c,0xe0,0xd2,
+ 0x59,0x59,0x59,0x9e,0x81,0x1d,0xd8,0x81,0x0,0x25,0x29,0x52,0x1,0xa8,0x64,0x47,
+ 0xce,0xe3,0xd4,0x4,0xfe,0x4e,0x89,0xc,0xdd,0x7d,0x73,0xa0,0x9e,0x7,0x82,0x1f,
+ 0xca,0xc,0xff,0x5f,0x76,0x31,0x30,0xde,0xe3,0x60,0x10,0xe7,0x78,0xcf,0x10,0x65,
+ 0xf1,0x9b,0xe1,0xdb,0x99,0x16,0x86,0x7,0x77,0x2e,0x31,0xf0,0xf2,0x9,0x0,0x23,
+ 0xe3,0x1d,0xc3,0x9d,0xdb,0x37,0x18,0xd8,0x80,0xfd,0x9a,0x3f,0xc0,0x2c,0xfe,0x15,
+ 0xe8,0xc9,0xbf,0xff,0xc0,0x65,0x13,0x78,0xaa,0x1c,0x20,0x80,0x50,0x52,0xc0,0xdb,
+ 0xf,0xaf,0x19,0xa4,0xd4,0x65,0x19,0x4c,0x8d,0x4d,0x19,0xbe,0x0,0x53,0xc2,0x8f,
+ 0x1f,0xdf,0x81,0x79,0x93,0x8f,0x61,0x30,0x0,0x50,0x8d,0x12,0xe6,0x1d,0xcb,0x30,
+ 0x6b,0xf9,0x72,0x60,0x0,0xc3,0x46,0x40,0x80,0xa9,0xf8,0x55,0x2a,0x3,0xe3,0xf3,
+ 0x17,0xc0,0x80,0xb8,0xb,0xcc,0x5f,0x6c,0xc,0xcc,0x2c,0x4c,0xc,0xce,0x6,0x3f,
+ 0x19,0x36,0x5f,0x5a,0x1,0x6c,0x6b,0x7c,0x61,0x38,0x7f,0xf9,0x14,0xc3,0xed,0x7b,
+ 0xb7,0xc1,0xad,0x4e,0x4d,0x16,0x19,0x86,0x27,0x6f,0xdf,0xbe,0xff,0xcf,0xf0,0x1f,
+ 0x34,0xe1,0x1,0x8a,0x21,0x66,0x80,0x0,0x42,0x9,0x0,0x36,0x66,0x48,0x17,0xe5,
+ 0xfd,0xfb,0x8f,0xc,0xe2,0x12,0x62,0xc,0xa2,0xa2,0xa2,0xc0,0x7c,0xf4,0xf,0x98,
+ 0xa7,0xbf,0x1,0xf3,0x2e,0x3b,0xd0,0x11,0xbf,0xc1,0x63,0xf4,0x6f,0xde,0xbc,0x63,
+ 0xe0,0xe4,0xfc,0x2,0x2e,0x20,0x99,0x18,0x40,0x73,0x72,0xc0,0x62,0x5,0x54,0xe0,
+ 0x81,0xa6,0xb1,0x80,0xe9,0xb,0x54,0xfa,0x33,0x82,0xdb,0x9e,0x90,0xde,0x19,0x82,
+ 0xfd,0x1f,0x3c,0xce,0x0,0xca,0x51,0x7f,0xfe,0x40,0xd6,0x2e,0x31,0x33,0xb3,0x1,
+ 0xb,0xdf,0x9f,0xe0,0x55,0x24,0xc8,0x65,0x8,0x68,0x6e,0x10,0x34,0x41,0xca,0x2,
+ 0x14,0xfe,0xff,0x87,0x99,0x21,0x23,0x36,0x89,0x61,0xf6,0xb2,0x2d,0xc,0xf0,0xa2,
+ 0xe5,0x7,0x30,0x2,0xdf,0xe5,0x0,0xbb,0x9c,0x6f,0x80,0x1a,0x9e,0x2,0x8d,0x65,
+ 0x87,0x24,0x68,0xa0,0x3e,0x60,0xf2,0x63,0x10,0x65,0x7a,0xc8,0x50,0xd2,0xdb,0xc8,
+ 0xc0,0xc2,0xc6,0xc9,0xf0,0xfd,0xf7,0xf,0x6,0xd1,0xbf,0x4c,0xc,0xf7,0xbe,0xbf,
+ 0xfe,0x77,0xe4,0xe5,0xed,0xc3,0xc,0x90,0xf5,0x42,0x20,0x7,0xfc,0x1,0x8,0x20,
+ 0x94,0x0,0xf8,0xb,0xad,0x8b,0xa5,0xa4,0xc4,0x18,0x6e,0x5e,0xbd,0xce,0xf0,0xfe,
+ 0xcd,0x17,0x86,0x2f,0x7f,0xbe,0x30,0x58,0x5a,0x59,0x1,0x25,0xbf,0x32,0xac,0x5c,
+ 0xb5,0x2,0x58,0x2d,0xea,0x30,0xdc,0xb8,0x71,0x1d,0x98,0x3a,0x7e,0x0,0x7b,0x8b,
+ 0x4c,0x20,0x4d,0xc,0x8c,0xc0,0x26,0xe7,0x7f,0x60,0xb6,0x61,0xfa,0xf4,0x99,0xe1,
+ 0x3f,0x33,0xb,0xb8,0xdd,0xfd,0xff,0x1f,0x64,0x9c,0x8e,0x11,0x98,0x9,0x61,0xd5,
+ 0x21,0xb,0xd0,0x37,0x7f,0xfe,0xfe,0x2,0xb7,0x2b,0xfe,0xfe,0x81,0x4,0x8,0x68,
+ 0xd0,0x92,0x5,0x18,0xf0,0xf,0xee,0x3d,0x0,0x7b,0x9c,0x95,0x9d,0xd,0x98,0xbc,
+ 0x55,0x80,0xe6,0xff,0x2,0x7,0xc,0x17,0x37,0x2f,0x43,0x6f,0x77,0x2b,0xc3,0xd2,
+ 0x15,0x7b,0x19,0xf8,0x61,0x23,0xe5,0x3f,0x80,0xa9,0xf2,0x59,0x1,0x30,0xa6,0x80,
+ 0x16,0xfd,0x7e,0xce,0xc0,0xc0,0xca,0xd,0xaa,0xc2,0x20,0x15,0x16,0xd0,0xfc,0x2f,
+ 0x8f,0x3f,0x32,0x8,0xfd,0xfe,0xc4,0x20,0xfc,0xef,0x19,0xc3,0xed,0x77,0xc2,0xc,
+ 0x52,0x12,0x22,0xc,0x1f,0x9f,0x3f,0x67,0x38,0xf8,0xe8,0xf6,0xf1,0x6f,0x7f,0x7f,
+ 0x5d,0x80,0x8f,0x1,0x33,0x30,0xfc,0x2,0x8,0x20,0x94,0x0,0xe0,0xe1,0x85,0x8c,
+ 0x9d,0xbf,0x7b,0xfb,0x81,0x41,0x5c,0x56,0x9a,0x81,0x5f,0xe8,0x7,0x83,0x0,0xb0,
+ 0x2a,0xfc,0xf6,0xf3,0xb,0x3,0x1f,0xf,0x2f,0x43,0x5a,0x5a,0x1a,0xc3,0xb4,0xa9,
+ 0x53,0x19,0xac,0xed,0x6c,0x18,0xd4,0x55,0xd5,0x19,0x3e,0xbd,0x7b,0xcb,0xf0,0x53,
+ 0x4c,0x9c,0xe1,0xdf,0x99,0x53,0xc,0x7c,0x93,0xfb,0x19,0xde,0x2c,0x5d,0xce,0xc0,
+ 0x74,0xff,0x2a,0xd0,0x43,0x4c,0xc,0x7f,0xfe,0xff,0x1,0x17,0xab,0xa0,0x99,0xf5,
+ 0xdf,0x40,0xc8,0xcb,0xc1,0xcf,0x70,0xe3,0xf6,0x75,0x6,0x69,0x49,0x29,0x70,0x19,
+ 0xf3,0xe7,0xdf,0x3f,0x70,0xe1,0xfa,0xef,0x17,0x50,0x1d,0x50,0x91,0xbe,0x81,0x34,
+ 0x30,0x70,0x18,0x19,0xd8,0x80,0xb1,0x77,0xe3,0xda,0x45,0x6,0x3e,0x1,0x1,0x6,
+ 0x63,0x43,0x77,0x6,0x4b,0x97,0x4,0x86,0x25,0x5d,0xea,0xc,0xfc,0xcc,0xe6,0xc,
+ 0xbf,0xde,0xbf,0x65,0x60,0xfc,0x7d,0x89,0x81,0xf5,0x89,0x18,0xa4,0x7a,0xfe,0xf9,
+ 0x90,0x1,0x9c,0x44,0x40,0x9e,0x87,0x6,0xc0,0xfb,0xf,0xdf,0x19,0x3e,0x3f,0xff,
+ 0xc0,0x20,0xf0,0xef,0xb,0x83,0x96,0x24,0x30,0xc0,0xff,0xab,0x82,0xe7,0x39,0xaf,
+ 0xbc,0x7c,0xc0,0xf0,0xe5,0xef,0xaf,0xeb,0xc,0x90,0xd5,0x61,0x5f,0x61,0x18,0x20,
+ 0x80,0x50,0x2,0xe0,0xf,0x74,0xa9,0xca,0xbb,0x8f,0x1f,0x18,0xd8,0x80,0x5,0xe0,
+ 0xd2,0x25,0x8b,0x18,0xac,0xed,0x9d,0x19,0xb4,0x80,0x25,0xe,0x2c,0x16,0x39,0x81,
+ 0xf5,0xf5,0xb1,0xa3,0x47,0x19,0xe,0xed,0x3b,0xc8,0xf0,0xe5,0xfd,0x67,0x6,0x79,
+ 0x67,0x5b,0x6,0xee,0x7,0xd7,0x19,0xb8,0xf6,0xbe,0x62,0x60,0xd8,0xcb,0xc2,0xc0,
+ 0x74,0x19,0x58,0x22,0x83,0xd7,0x19,0xfc,0x87,0x62,0xe8,0x92,0x43,0xa6,0xbf,0x40,
+ 0x37,0x6a,0x32,0xdc,0x7,0xcd,0xd5,0x30,0x43,0x9d,0x1,0x6e,0x8f,0xc1,0x3a,0x70,
+ 0xff,0xc0,0x4a,0x81,0x65,0x30,0xc3,0xcb,0x8f,0x92,0xc,0x9c,0x42,0xbf,0x18,0x36,
+ 0x2e,0x5b,0xc1,0xe0,0x6c,0xc4,0xc8,0xa0,0x6c,0x54,0xc5,0xf0,0xff,0x27,0x13,0x3,
+ 0x13,0xe3,0x6f,0x86,0xef,0xdf,0x5f,0x32,0xfc,0x7d,0xb3,0x84,0x81,0xe3,0xdf,0x19,
+ 0x60,0xe9,0xe,0xc,0x8,0x60,0xf6,0x4,0x27,0x37,0x60,0xa0,0x7e,0xfd,0xfe,0x97,
+ 0xe1,0xf5,0xfd,0x57,0xc,0xfc,0x4c,0x5f,0x19,0xfe,0x1,0x93,0x3d,0x33,0xb7,0x18,
+ 0xb0,0xa4,0xe3,0x66,0xb8,0x78,0xe8,0x3a,0x3,0x9b,0x20,0xb0,0xe5,0xf9,0xed,0x32,
+ 0xcc,0xf3,0xa0,0x15,0x63,0xa0,0x3c,0xfc,0x13,0x20,0x80,0x50,0x2,0x80,0x19,0x3a,
+ 0x7f,0xc6,0xcf,0xc3,0x5,0x8c,0x1,0x11,0x86,0xda,0xda,0x46,0x86,0x5f,0x3f,0xbf,
+ 0x33,0xec,0xda,0xb9,0x9b,0xc1,0xd3,0xdb,0x1b,0x32,0x6e,0x78,0xfc,0x38,0x83,0x9e,
+ 0x9e,0x31,0x3,0x3f,0xb0,0xaf,0xc0,0xca,0x8,0x8c,0x49,0xa0,0xa5,0xca,0xbc,0xb2,
+ 0xc,0xfb,0xa4,0xee,0x33,0xec,0x75,0xbe,0xc2,0x20,0x25,0x76,0x8e,0xe1,0x1f,0xb,
+ 0xf2,0xca,0x9b,0xff,0x70,0x8a,0x99,0x83,0x99,0xe1,0x3f,0xd0,0xe,0xec,0xad,0x5e,
+ 0x26,0xf8,0xa8,0x4,0xd3,0xf7,0x5f,0xc,0x22,0xf7,0xbf,0x31,0x1c,0xba,0x70,0x89,
+ 0x61,0x56,0x66,0x0,0xa8,0x10,0x0,0x77,0xc9,0x99,0x59,0x81,0xd9,0x8d,0xb,0xd8,
+ 0x5c,0xd7,0x8,0x61,0x60,0xb8,0xb5,0x94,0x81,0xe3,0x13,0x30,0xef,0xf3,0x89,0x83,
+ 0x3,0xf1,0xcf,0x6f,0x60,0xd9,0xf4,0xf0,0x5,0x3,0xc7,0xef,0x8f,0xc0,0xa2,0xe0,
+ 0x37,0xc3,0x87,0xef,0xff,0x18,0x8e,0xde,0xfd,0xc2,0x70,0xf3,0xde,0x76,0x86,0xef,
+ 0xb2,0x5c,0xc,0x13,0x8a,0x8a,0x19,0x12,0x12,0x12,0xbe,0x23,0x5,0x0,0x88,0xfd,
+ 0xb,0x20,0x80,0x58,0x10,0x2e,0x4,0x5a,0xc3,0x8,0x61,0xfe,0xf8,0xf9,0x83,0x81,
+ 0xe5,0xc7,0x4f,0x86,0x97,0x2f,0x9e,0x81,0xdb,0xec,0xaa,0x5a,0x9a,0xe0,0xde,0x1d,
+ 0x1f,0x1f,0x1f,0x83,0x9d,0x95,0x5,0xb0,0xe1,0xc2,0xa,0x2e,0xa4,0xa4,0xf9,0x84,
+ 0x18,0x5e,0x3,0x3d,0x75,0xef,0xd1,0x4b,0x6,0x7d,0x26,0x6e,0x86,0x9b,0x57,0x1e,
+ 0x31,0xc8,0x9c,0x7f,0xc3,0xf0,0x8f,0x95,0x9,0x69,0xba,0x2,0x65,0xee,0x2,0x3e,
+ 0x8b,0x83,0xbc,0xc8,0xb,0x99,0xd,0xac,0xa3,0x80,0x65,0x18,0x33,0xc3,0x9f,0xe7,
+ 0x7f,0x19,0x58,0x6f,0x5d,0x66,0x50,0x55,0xc9,0x4,0x9,0x2,0xe5,0xfe,0x43,0xfa,
+ 0xb,0xc0,0x5e,0x2a,0x68,0xdc,0xef,0x9b,0x92,0x1b,0xc3,0xff,0x5b,0x9b,0x18,0x38,
+ 0x7f,0x7d,0x64,0xf8,0xf2,0x9f,0x87,0xe1,0xd6,0xe5,0xc7,0xc,0x3c,0xff,0x80,0xb5,
+ 0xd6,0xbf,0x1f,0xc,0xac,0x4c,0xff,0x19,0xce,0x3d,0xfc,0xc6,0x70,0xe1,0xda,0x73,
+ 0x6,0x46,0x36,0x56,0x86,0xd8,0xf0,0x58,0x6,0x41,0x41,0x41,0x6,0x6,0xc4,0x42,
+ 0xc9,0x6f,0xd0,0x69,0xcb,0xdf,0x0,0x1,0xc4,0x2,0x4d,0x8c,0xa0,0xe1,0x92,0x9f,
+ 0x42,0x3c,0xc2,0xd0,0xc5,0xa,0x2,0xc,0xf7,0xaf,0x5c,0x63,0x78,0xf5,0xe9,0x2b,
+ 0x83,0xb8,0xa8,0x14,0x83,0xba,0x8a,0x2a,0x30,0x74,0xfe,0x43,0xcb,0x9,0x41,0x86,
+ 0x4f,0xef,0xbf,0x1,0x53,0x1c,0x13,0xc3,0x2f,0x60,0xb6,0x78,0xf7,0xed,0xd,0xc3,
+ 0x4f,0x60,0xc3,0x47,0xfd,0xb7,0x10,0x83,0xc1,0x1d,0x41,0x6,0xbe,0x77,0x62,0x40,
+ 0xa7,0x32,0x62,0xf6,0xb6,0x18,0x21,0x4b,0xdc,0x60,0x6c,0xa6,0xff,0xb0,0xf8,0x46,
+ 0x55,0xf3,0x1f,0xe8,0x49,0x46,0xa0,0xb9,0x6f,0x81,0xb1,0x6a,0x63,0xa6,0xce,0xc0,
+ 0x4,0x1a,0x4b,0xfc,0x5,0x5e,0x54,0x4,0x74,0xc3,0xf,0x60,0x99,0xf1,0xe,0x98,
+ 0x8a,0x3e,0x33,0x7c,0xff,0xfa,0x87,0xe1,0x13,0xaf,0x5,0x3,0xef,0xdb,0x43,0xc,
+ 0xf7,0x1e,0xbf,0x64,0xf8,0x7,0x8c,0x20,0x16,0x6e,0x60,0x30,0x1,0xcb,0x82,0xed,
+ 0x37,0xff,0x32,0x54,0xae,0x7b,0xcf,0xc0,0xcb,0x2f,0xc4,0x90,0x92,0x90,0xce,0xf0,
+ 0xff,0xc5,0x4f,0x6,0x11,0x7,0xf0,0x78,0x0,0x68,0xc9,0xc9,0x27,0xa4,0x0,0xf8,
+ 0x7,0x10,0x40,0xa0,0x0,0xf8,0x3,0xad,0x16,0x3e,0x3f,0x7f,0xf3,0x8a,0x81,0x87,
+ 0x95,0x87,0x81,0x1d,0x58,0x88,0x29,0x2a,0xa9,0x32,0x68,0x0,0xab,0xa6,0x9f,0xc0,
+ 0x4e,0xc4,0x6f,0xa0,0x87,0xff,0x3,0xab,0x18,0x41,0x1,0x56,0x6,0x61,0xd,0xf,
+ 0x86,0x55,0x67,0x58,0x18,0x4c,0x35,0x98,0x19,0x76,0x5d,0xf8,0xce,0xb0,0x38,0x94,
+ 0x93,0x41,0x8,0xd4,0x8b,0x2e,0x29,0x64,0x50,0x7,0xfb,0xc2,0x92,0x2a,0xf5,0xbe,
+ 0xbd,0x5b,0x20,0xc3,0xbc,0xde,0x68,0x60,0xec,0x3,0x3d,0xf5,0xe7,0x27,0xb0,0xda,
+ 0xfc,0x1,0xcc,0xee,0x6f,0x81,0x59,0xee,0x33,0xc3,0xb7,0x4f,0xdf,0x18,0xbe,0x7f,
+ 0xfe,0xce,0xf0,0xfd,0x27,0xb,0xc3,0xfd,0x67,0xbc,0xc,0x5c,0x6f,0x6f,0x30,0x88,
+ 0x8,0x72,0x32,0xb0,0x3,0xcb,0x99,0x79,0xa7,0x7f,0x33,0xf4,0xee,0x78,0xcf,0x60,
+ 0xa8,0x6f,0xc2,0x90,0x98,0x96,0x8,0x6e,0x76,0x83,0xaa,0x73,0xe8,0x32,0xbf,0x57,
+ 0xd0,0x40,0x0,0x7,0x0,0x68,0xad,0x30,0x40,0x0,0xb1,0x40,0x43,0x2,0x94,0x34,
+ 0xde,0x6a,0xab,0x68,0xf9,0x32,0x60,0x5f,0x2a,0xcb,0x8,0x2d,0xae,0xc0,0xeb,0x9,
+ 0xa7,0x2c,0x4f,0xec,0xfb,0x71,0xe5,0xf,0x83,0xf,0xf,0x13,0x83,0x30,0xd7,0xc2,
+ 0x22,0x6,0xa4,0x5,0xc8,0xe8,0xa9,0x9e,0xa8,0x39,0x2d,0xc4,0x62,0x4d,0x60,0x9f,
+ 0x88,0x47,0xb4,0xa2,0xbe,0x2c,0xf7,0xe3,0xfb,0x1b,0x8c,0x7c,0xdc,0xc0,0x56,0xcd,
+ 0xdf,0xf,0xc0,0x8e,0xdc,0x2f,0x60,0x1e,0xff,0xc9,0xf0,0xeb,0x1b,0xb0,0x5a,0x6,
+ 0xa6,0xca,0xef,0x5f,0x7f,0x32,0x7c,0xfa,0x8,0x6c,0xa8,0x1,0x6d,0xfd,0xf1,0x8f,
+ 0x8d,0x81,0x13,0xd8,0xbf,0xe0,0x62,0x63,0x66,0x58,0x73,0xec,0x5,0xc3,0xcc,0x43,
+ 0xbf,0x81,0x1d,0x39,0xc1,0x9f,0x6f,0xfe,0xbd,0x3a,0x1b,0x1f,0x1f,0x7f,0x19,0xea,
+ 0x61,0xd0,0x12,0xd9,0x17,0xa0,0xb9,0x5a,0x28,0xfb,0x1b,0xac,0x18,0x6,0x8,0x20,
+ 0x90,0xe5,0x9c,0xc,0x84,0x17,0x4b,0x33,0x42,0xc5,0xd8,0xa0,0xf2,0x1c,0xd0,0x94,
+ 0xfb,0xf,0x9a,0x7a,0x7e,0xc0,0xf2,0x14,0x99,0x1,0xc0,0x6,0xb5,0x5f,0xc8,0x2f,
+ 0xd1,0xd3,0x91,0xe3,0x7,0x8f,0xd5,0xf1,0xc3,0x47,0xa5,0x33,0x52,0x63,0x39,0xb9,
+ 0xd8,0xbf,0x33,0x44,0x4,0xd9,0x31,0x70,0x0,0x4b,0xf9,0x77,0xaf,0x3f,0x80,0x57,
+ 0x7f,0x7e,0xfd,0x2,0x8c,0x7d,0x60,0x41,0xc9,0x8,0x6c,0x44,0xfd,0x7d,0x71,0x89,
+ 0x41,0x85,0xe9,0x36,0xc3,0xce,0xd3,0x4f,0x19,0x9a,0xb7,0x7e,0x67,0xe0,0xe6,0xe3,
+ 0xfd,0xf5,0xfc,0xe3,0x8b,0xcd,0x1f,0x5f,0x7f,0xba,0xf,0x9a,0x9b,0x1,0xe2,0x37,
+ 0x50,0x4f,0xbf,0x85,0x6,0xc6,0x7,0x68,0x39,0xf0,0x13,0x98,0x0,0xfe,0x1,0x4,
+ 0x10,0xb,0xd4,0xd1,0x5f,0xa1,0x59,0xe1,0x2b,0x3,0xf6,0xe5,0xf2,0xc8,0x29,0x80,
+ 0xd,0x8a,0x61,0xe5,0xd7,0x2f,0x24,0xcf,0x93,0x9b,0x2,0x40,0x29,0xe,0xd4,0xe6,
+ 0xfe,0x75,0x66,0xff,0xf9,0xb3,0xef,0x5f,0xbf,0xff,0x9e,0x94,0x98,0x95,0xa2,0xa0,
+ 0x62,0xc1,0xd0,0xd8,0x54,0xcb,0x70,0xf8,0xc8,0x59,0x86,0xa6,0x92,0x78,0xb0,0xe7,
+ 0x7f,0xfd,0xfc,0x5,0x6e,0x9d,0xb2,0xb0,0x30,0x33,0xb0,0x1,0x1b,0x4d,0xdf,0x80,
+ 0x8d,0xa5,0xe9,0x3b,0xef,0x33,0x2c,0x3a,0xf2,0x9b,0x81,0x47,0x5c,0xf0,0xcf,0x87,
+ 0x1f,0xef,0x36,0x1,0x3d,0x7f,0x3,0x34,0x3c,0x8,0xc5,0xa0,0x3e,0xf7,0x47,0x68,
+ 0x2a,0xff,0xe,0x8d,0x2c,0x78,0x44,0x1,0x4,0x10,0xb,0xd4,0xd1,0xb0,0xf5,0xf4,
+ 0xb8,0x16,0x5,0x31,0x42,0xc5,0x61,0x81,0xc0,0x8c,0x14,0x0,0x7f,0x91,0x3c,0xff,
+ 0x8f,0x82,0x0,0x0,0x37,0x4f,0xa5,0x95,0xa4,0xa4,0xbf,0x7d,0xfa,0x21,0xaf,0xa4,
+ 0xa8,0xc4,0x3c,0x71,0x62,0x17,0xc3,0xad,0x5b,0x57,0x19,0x6e,0xdd,0xfc,0xcf,0xa0,
+ 0xad,0xac,0xc0,0x10,0xe0,0x6a,0xc1,0xc0,0xca,0xc2,0xa,0x5e,0xb4,0xf9,0xee,0xc3,
+ 0x67,0x86,0x1b,0x17,0x6f,0x31,0x6c,0xde,0x75,0x8e,0xe1,0xee,0x3d,0x66,0x6,0x6e,
+ 0x71,0xce,0x2f,0xbf,0x59,0x7e,0xec,0x79,0xf1,0xe0,0xd5,0x79,0xa8,0xc7,0x1f,0x43,
+ 0x53,0xc0,0x47,0x58,0x95,0x7,0x75,0xdf,0x5f,0xa4,0x46,0xa,0x3,0x40,0x0,0xb1,
+ 0x20,0x71,0xfe,0x11,0xe1,0x50,0x58,0x4a,0x60,0x42,0x99,0x4e,0x40,0x33,0x94,0x9c,
+ 0x89,0x5d,0x68,0x4,0x30,0x9d,0xde,0x77,0xee,0x9a,0xb8,0xb8,0xa4,0xc4,0x8e,0x1d,
+ 0x5b,0x19,0x4e,0x9d,0x3a,0xe,0x57,0x70,0xf8,0xd4,0x65,0x6,0xb,0x43,0xd,0x86,
+ 0xb,0x57,0xef,0x31,0x1c,0x39,0x73,0x9d,0xe1,0xce,0xc3,0x97,0xc,0x5f,0xbe,0xfc,
+ 0x64,0xf8,0xf1,0xe1,0x17,0x3,0xaf,0xc,0xf7,0xc3,0x77,0x1f,0xde,0xec,0x7b,0xfb,
+ 0xe2,0xfd,0x4d,0xa0,0xd2,0xfb,0xd0,0x0,0x78,0x9,0x4d,0xf6,0xb0,0xec,0x89,0x15,
+ 0x0,0x4,0xd0,0x60,0xd9,0x13,0x0,0x5b,0xb0,0xd,0x2a,0x8b,0x2c,0x80,0x4d,0xe4,
+ 0x4d,0xc0,0xde,0x1f,0x7c,0x10,0x82,0x99,0x89,0xe9,0x97,0x10,0x9f,0x10,0x1b,0x1f,
+ 0x2f,0x37,0xc3,0xd7,0x1f,0x3f,0xff,0x72,0x9,0x70,0xff,0xfe,0xf9,0xf1,0x37,0x8b,
+ 0xba,0xa5,0x3c,0xcb,0xbe,0x8d,0x87,0x17,0x40,0x4b,0xf7,0x67,0xd0,0x58,0x7f,0xc,
+ 0x2d,0xf0,0x60,0xd5,0xdd,0x6f,0xdc,0x53,0x69,0xff,0x19,0x0,0x2,0x88,0x65,0x90,
+ 0x4,0xc0,0x7f,0xa8,0x43,0x41,0x49,0xf5,0x37,0xd0,0xf3,0xb7,0xa0,0x85,0x15,0xa8,
+ 0xd4,0xfe,0x2a,0x29,0x27,0x29,0x5,0x54,0xc0,0xfd,0xfa,0xdd,0xbb,0x77,0x9f,0x3e,
+ 0x7d,0xfe,0xc0,0xfd,0x93,0x8b,0xe5,0xeb,0xa7,0x6f,0x1f,0x9f,0x6e,0x7c,0xf4,0x9,
+ 0x5a,0xc8,0x3d,0x87,0xe2,0x17,0xd0,0xc0,0xf8,0xa,0xf5,0x3c,0xc1,0x19,0x1d,0x80,
+ 0x0,0x1a,0x6c,0xbb,0x42,0x98,0xa0,0xb5,0x1,0xa8,0xd9,0x26,0xa,0x1a,0xa1,0x7,
+ 0x8d,0xaf,0x40,0x31,0xb7,0x98,0xac,0xa8,0xd0,0xab,0xc7,0xaf,0xdf,0x40,0x3,0xea,
+ 0x2b,0x34,0x7f,0xbf,0x43,0xaa,0xdf,0x3f,0x40,0xb,0xbb,0xdf,0xc4,0x78,0x1e,0x94,
+ 0x2,0x0,0x2,0x88,0x65,0x90,0x5,0x0,0x2c,0x25,0x7c,0x61,0x40,0xac,0xeb,0xff,
+ 0xb,0xad,0xb6,0xd8,0x81,0x9e,0x67,0x44,0xaa,0xb5,0xbe,0x20,0xb5,0xeb,0x3f,0x41,
+ 0x3,0xe5,0x1b,0xb4,0x2c,0x21,0x7a,0x8c,0x1d,0x20,0xc0,0x0,0x1c,0x2e,0x8a,0xb8,
+ 0xe2,0x1,0xb7,0x9d,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+
+ // /home/matthew/pencil_dev/icons/clear.png
+ 0x0,0x0,0xd,0x7d,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x28,0x0,0x0,0x0,0x25,0x8,0x6,0x0,0x0,0x0,0x30,0x60,0xab,0xb3,
+ 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,0xd8,
+ 0xeb,0xf5,0x1c,0x14,0xaa,0x0,0x0,0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x6d,
+ 0x98,0x0,0x0,0x73,0x8e,0x0,0x0,0xea,0x48,0x0,0x0,0x86,0x0,0x0,0x0,0x77,
+ 0xef,0x0,0x0,0xd0,0xf0,0x0,0x0,0x32,0xf7,0x0,0x0,0x1c,0x74,0xb6,0xd2,0x6c,
+ 0xb,0x0,0x0,0xc,0xf3,0x49,0x44,0x41,0x54,0x78,0xda,0x84,0xcd,0x31,0xa,0x80,
+ 0x30,0xc,0x85,0xe1,0x26,0xd2,0xe,0xa5,0x3d,0x80,0x63,0x67,0xef,0xe0,0x5,0x3c,
+ 0xbf,0x20,0x88,0x9b,0x93,0x74,0x29,0xa5,0x94,0xa6,0x60,0x8c,0x17,0xd0,0x6f,0x7a,
+ 0x43,0xf8,0x3,0xcc,0xac,0xbe,0x10,0x11,0x18,0x63,0x38,0xa5,0x84,0xce,0xb9,0x41,
+ 0xdc,0x42,0xd5,0x5a,0xd9,0x5a,0xcb,0xef,0x96,0x1b,0x4,0x0,0x8b,0x88,0x63,0x29,
+ 0x65,0x8e,0x31,0x2e,0xad,0xb5,0x49,0x6b,0x4d,0x39,0xe7,0xd3,0x7b,0x7f,0x84,0x10,
+ 0xd6,0xde,0xfb,0x26,0xff,0x76,0xe9,0x5c,0x92,0x6e,0xea,0x87,0xb4,0xe1,0x11,0x40,
+ 0x8c,0xd8,0x1c,0x8,0x34,0x9c,0x91,0x9d,0x9d,0x1d,0x24,0xc1,0x4,0xc4,0x2c,0x40,
+ 0xcc,0x9,0xc4,0x2,0x7f,0xfe,0xfc,0xe1,0x6,0x3a,0x4,0xa4,0xe7,0x27,0x90,0xfa,
+ 0x1,0x74,0xec,0x6f,0x90,0x9a,0x2f,0x5f,0xbe,0x8,0xbc,0x7b,0xf7,0x4e,0x1e,0xe4,
+ 0x28,0x20,0xdf,0x12,0x28,0x6e,0xc8,0xcd,0xcd,0x2d,0x9,0xc4,0xcc,0x2c,0x2c,0x2c,
+ 0x7f,0x5e,0xbf,0x7e,0xfd,0xe5,0xef,0xdf,0xbf,0x2f,0x81,0x8e,0xbd,0x9,0xf4,0xd4,
+ 0x41,0x9,0x9,0x89,0xfd,0x40,0x75,0xf7,0x81,0xf2,0xdf,0x81,0x34,0xde,0x10,0x2,
+ 0x8,0x40,0x7,0x19,0xa4,0x0,0x8,0xc3,0x40,0x90,0xaa,0x94,0x4,0x11,0x72,0x51,
+ 0x51,0xda,0x7b,0xff,0x8f,0xff,0xf1,0x13,0x12,0xf1,0xe6,0xe4,0xae,0x87,0x52,0x48,
+ 0xe8,0x76,0x76,0x86,0x8f,0x59,0x22,0x34,0x1,0x93,0xb9,0x47,0x4c,0x15,0x4c,0x34,
+ 0xda,0x37,0x2c,0x2e,0x40,0x74,0xc0,0x3f,0x7c,0x74,0x85,0x21,0xf6,0xbd,0xbb,0x4f,
+ 0x0,0x14,0xcc,0x54,0x33,0xdb,0x55,0x75,0xa6,0xbd,0x84,0x7d,0x11,0xc9,0x18,0x14,
+ 0xf2,0xc,0xf0,0x8d,0xf9,0x4a,0x4e,0x14,0x3d,0x78,0x7f,0x72,0xee,0xe8,0xfc,0x7,
+ 0xf8,0xa,0xc0,0x26,0x19,0xab,0x0,0x8,0x3,0x31,0xb4,0x2d,0x9c,0x8e,0x42,0xbb,
+ 0x3a,0x3a,0xb8,0xa8,0xff,0xbf,0xf6,0x43,0x5c,0x3b,0x15,0xa,0x2e,0x37,0xd8,0xea,
+ 0x2b,0x38,0x3a,0x1c,0x84,0x92,0x5e,0x42,0x2e,0x7f,0x6,0x47,0x12,0xf2,0x9c,0x6a,
+ 0x46,0x74,0x65,0xf9,0xe,0xde,0x54,0x75,0x61,0x26,0xf0,0x50,0x4a,0x69,0xf0,0x2a,
+ 0xa6,0x1b,0x9c,0x7,0x53,0x2e,0x84,0x20,0x18,0x13,0xde,0x5,0x5e,0xaf,0x82,0x45,
+ 0xdc,0xc0,0x31,0x24,0xe5,0xc0,0x82,0x39,0x9f,0x52,0x3a,0x72,0xce,0xae,0xff,0xa1,
+ 0x3a,0x11,0xfe,0x89,0xde,0xc5,0xdc,0x54,0xa4,0x7d,0x89,0xd6,0x7e,0x61,0x76,0xdb,
+ 0x57,0x0,0x1e,0xc9,0x18,0x85,0x42,0x18,0x8,0xa2,0xd3,0xb,0x29,0x82,0x49,0x67,
+ 0x95,0x52,0xfb,0x7f,0xff,0x3b,0x4,0xec,0x16,0x2,0x36,0x41,0x25,0x8d,0xad,0xf0,
+ 0xdf,0x36,0xb6,0x9,0x3b,0xf3,0x76,0x66,0xbf,0x8a,0x19,0xf6,0x3a,0x3,0x69,0x6c,
+ 0x6c,0xf8,0x63,0xfb,0x15,0x93,0x32,0xc6,0x58,0x7a,0xef,0x33,0x26,0x53,0x29,0xc5,
+ 0x85,0xe5,0xc6,0xfc,0x89,0x54,0x54,0x6b,0x55,0x8,0x41,0xc0,0xf9,0x5d,0xa,0x78,
+ 0xb9,0x26,0xc0,0xca,0x39,0xab,0xb5,0x26,0x92,0x55,0x4a,0x49,0xa4,0xe9,0x33,0xaf,
+ 0x99,0x3d,0xe8,0x1b,0x92,0x7b,0x8c,0xd1,0x78,0x3b,0xf1,0xbf,0x0,0xbe,0x69,0xa6,
+ 0xa3,0x7f,0xc0,0x32,0x1c,0xf4,0x2f,0x0,0x93,0x64,0x88,0x3,0x20,0xc,0x43,0xd1,
+ 0x6,0x83,0xc1,0x4c,0x70,0x81,0x25,0xdb,0x5,0x50,0x1c,0x87,0x5b,0x72,0x6,0x3c,
+ 0x72,0x17,0xa8,0x6c,0x46,0xc0,0x90,0xf0,0x5a,0x85,0xa8,0xd9,0xba,0xbf,0xbe,0xdf,
+ 0xff,0xcf,0xe0,0x68,0x66,0x2b,0x79,0xd9,0x58,0xe3,0xc2,0xa7,0x33,0xc3,0x4c,0xbe,
+ 0xea,0xd6,0xda,0xe0,0x2e,0xd4,0x5a,0x5,0x4a,0x87,0x9,0x67,0x80,0x11,0x44,0x85,
+ 0x37,0x82,0xb3,0x31,0xa4,0x17,0xe,0xc6,0x19,0x7a,0x42,0xde,0xa2,0xcf,0x61,0x72,
+ 0xce,0x92,0x52,0x12,0x80,0x5f,0xee,0x1f,0x55,0xed,0xa5,0x94,0xb,0x3d,0xcf,0xf2,
+ 0x8d,0x96,0x32,0xe0,0x49,0xed,0xc0,0x1c,0x44,0xcc,0x3e,0x1,0x38,0x26,0x43,0x24,
+ 0x0,0x61,0x18,0x8,0x1e,0x3,0xae,0x22,0xa6,0xa,0xc3,0x47,0x2a,0xe0,0xff,0x16,
+ 0x51,0x5f,0x53,0x85,0xc7,0x30,0xec,0x45,0x75,0x26,0x4d,0x2e,0xcd,0x5e,0x9a,0x16,
+ 0x53,0xbc,0x30,0x7d,0x40,0xeb,0x22,0xf9,0x64,0xaa,0x1d,0xa1,0x8d,0x5d,0x4b,0x71,
+ 0x6c,0x4e,0x4a,0x7e,0x9c,0x1b,0x81,0x5e,0xbe,0xf3,0x89,0x98,0xe6,0x9c,0x19,0xa7,
+ 0x4e,0x26,0xc,0x1d,0x61,0xa3,0xd0,0x53,0x6b,0x4d,0x63,0xc,0xf5,0xde,0x33,0x5e,
+ 0x6b,0x15,0x3b,0xb7,0xa2,0x5f,0x20,0x55,0x4c,0xd5,0x6e,0x78,0xf,0x19,0xfa,0xe5,
+ 0xc3,0x1d,0xe4,0x7d,0x11,0xf1,0xd0,0xf7,0xfe,0x5,0xe0,0x98,0x8c,0x91,0x0,0x4,
+ 0x42,0x18,0x48,0x67,0xa7,0x35,0x63,0x69,0xc9,0x13,0xf8,0xff,0x43,0xac,0xfc,0x86,
+ 0xbb,0xa1,0x3b,0xe6,0x20,0x21,0x99,0x84,0xa0,0x40,0xd8,0x7a,0x42,0xf2,0x1,0xe0,
+ 0xe2,0xea,0xf4,0xe9,0x15,0x1f,0x63,0x95,0x4,0x2d,0x92,0x18,0x8b,0x25,0xa8,0x5a,
+ 0xbe,0x2d,0x81,0x50,0x3e,0xca,0x49,0x4c,0x5b,0x77,0xb7,0x50,0x29,0xb3,0x33,0x93,
+ 0x43,0xc5,0x22,0xf1,0x12,0x2a,0x14,0xaa,0xee,0xe,0x41,0xc3,0x89,0xe2,0x7,0xf3,
+ 0x37,0x6e,0x2c,0xfb,0x5f,0x76,0x7c,0xbf,0x0,0x34,0x92,0xcb,0xd,0x0,0x21,0x8,
+ 0x5,0x17,0x2f,0xc6,0xbb,0xa7,0xf5,0x20,0x35,0xd8,0x7f,0x23,0x34,0x40,0x1d,0xbe,
+ 0x21,0x91,0x84,0x44,0x5,0xe4,0x37,0xad,0x2c,0x66,0x4d,0x1f,0x4d,0x4d,0xe8,0x17,
+ 0x3b,0x9d,0x44,0x8,0xc5,0x21,0x24,0x60,0x6d,0xe8,0x7b,0x23,0x9,0x77,0x26,0x4c,
+ 0xc1,0x8,0xc5,0x64,0xe6,0xa7,0x29,0x94,0x3d,0x22,0xaa,0x1,0xce,0x30,0x88,0xd2,
+ 0x14,0x38,0x10,0x3,0xb3,0xa0,0xf2,0x30,0xd3,0x36,0xcc,0xdd,0xe5,0x32,0xb6,0xd8,
+ 0x3d,0xf2,0x5b,0x57,0x0,0x1a,0xe9,0x20,0x5,0x40,0x28,0x4,0x2,0x68,0x44,0x74,
+ 0x80,0xbf,0x91,0x16,0xae,0x83,0xee,0x7f,0xc0,0xe6,0x49,0x2d,0x44,0xf8,0x8e,0x5f,
+ 0x67,0xc6,0x51,0x2a,0xa0,0xd8,0x7f,0x5e,0x89,0x15,0xab,0xe,0x56,0xb8,0x33,0xcc,
+ 0xb0,0x64,0x2d,0x2b,0x3f,0xec,0x28,0xe4,0xbe,0xc,0x91,0xa9,0x61,0x88,0x81,0x6a,
+ 0x16,0x54,0xcb,0xdd,0xce,0xd2,0xd4,0xd5,0xef,0xd,0xd9,0xee,0xde,0xaa,0x6a,0xea,
+ 0x7a,0xc5,0xef,0x64,0x94,0xdb,0x83,0x59,0xf9,0xf7,0x89,0x0,0xf7,0x2b,0x0,0x53,
+ 0xf5,0x92,0x3,0x20,0x8,0xc4,0x0,0x54,0x82,0x5e,0x40,0x16,0x26,0xb3,0xf4,0xfe,
+ 0x87,0xb4,0x8f,0x40,0xe2,0x8e,0x4f,0x68,0x4b,0xa7,0x3,0x67,0xba,0xae,0x7,0xf0,
+ 0x8e,0x13,0x6f,0x36,0xbd,0x55,0x4d,0x29,0x88,0x5a,0xf9,0x3c,0x96,0xcb,0x73,0xac,
+ 0x4b,0x9,0x51,0x62,0x64,0xc8,0x77,0x59,0x11,0x98,0x5b,0x97,0x35,0xd1,0x90,0x4f,
+ 0x8d,0xe4,0x2c,0x27,0xab,0x6a,0xe6,0x14,0xde,0xce,0xeb,0xef,0x83,0x80,0xdb,0x72,
+ 0x99,0x2b,0x3a,0x46,0xdc,0x7f,0x3e,0x1,0x68,0xaa,0x83,0x1c,0x0,0x20,0x20,0x86,
+ 0xa2,0x91,0xd8,0x59,0x3b,0x82,0x85,0xfb,0x5f,0x50,0x9f,0xa4,0x2b,0x62,0xa4,0xfe,
+ 0x74,0xc,0x33,0x9b,0x76,0xe0,0x4e,0x68,0x6f,0x40,0x57,0xc6,0xd1,0xfb,0xa6,0x84,
+ 0xc4,0x89,0x10,0x4,0xd0,0xc6,0xd0,0x8d,0x1c,0xe0,0x34,0x8,0x90,0xd6,0xf2,0x14,
+ 0x7d,0x77,0x80,0x72,0x5f,0xe3,0x70,0x57,0xbc,0xa5,0xa6,0x55,0xcd,0x9a,0x20,0x69,
+ 0xa5,0x97,0x78,0xe6,0x7e,0xa7,0x95,0xb3,0xf6,0x13,0x80,0x66,0x7a,0xb7,0x1,0x0,
+ 0x4,0x81,0x0,0x1a,0x6b,0x47,0xa0,0x73,0x2,0xd7,0x71,0xff,0x35,0x8c,0xf1,0x5e,
+ 0x81,0x95,0x31,0x8,0xf7,0x83,0xc5,0x27,0xcb,0xb0,0x2,0x66,0xe7,0x61,0x66,0xd8,
+ 0x60,0x2d,0x10,0x86,0xb4,0x7a,0x3e,0xf6,0x5d,0x73,0xc0,0xd,0xa6,0xb4,0x5c,0xb2,
+ 0x8d,0x3a,0x0,0xb6,0x1a,0xac,0xa6,0x92,0xc3,0x5e,0x84,0x5b,0x65,0x51,0x41,0x40,
+ 0x2f,0x75,0x16,0x12,0x48,0x84,0x11,0x49,0x34,0x5e,0x55,0xdd,0x2f,0x80,0x58,0x9e,
+ 0x3e,0x7d,0x1a,0xf,0x8c,0x6f,0x1e,0x60,0xb4,0xa,0x3,0xd,0x65,0x3,0x26,0x4e,
+ 0x46,0x90,0x6,0x58,0x14,0x81,0x1c,0xb,0xcb,0xa9,0x20,0x47,0x82,0x1c,0x8,0xb2,
+ 0xc,0x84,0x41,0x3e,0x7,0x59,0x2,0x4c,0xd8,0x60,0xc,0xf3,0x4,0x2c,0x74,0x40,
+ 0x8e,0x3,0x39,0xa,0xa4,0x16,0xe4,0x21,0x58,0x3a,0x3,0x1,0x68,0xd1,0x2,0x17,
+ 0x3,0x79,0x8,0x94,0x7c,0x80,0xf8,0x3f,0x30,0xb4,0xff,0x1,0xdd,0xf4,0x4e,0x4e,
+ 0x4e,0xee,0x39,0x40,0x0,0x9a,0xea,0xc0,0x4,0x0,0x10,0x4,0xa2,0x28,0x44,0xcb,
+ 0xb4,0xff,0x2e,0x2d,0xd2,0x0,0x75,0x2f,0xb8,0x20,0xc,0xc4,0xd0,0x6f,0x67,0x33,
+ 0x81,0x2b,0xad,0x19,0x76,0x1c,0xc3,0xbc,0xca,0x20,0xfd,0x64,0xb4,0xc7,0x8f,0xa0,
+ 0x32,0x84,0x52,0xd1,0x4f,0xaa,0xaa,0x95,0x5c,0x67,0xa2,0x85,0x28,0x55,0xa3,0x53,
+ 0x51,0x55,0x40,0xa8,0xb1,0x48,0xf5,0xdc,0x4,0x3d,0x15,0x71,0x40,0xc4,0x7f,0x63,
+ 0x4f,0xa,0xd8,0xb9,0x77,0x3f,0x1,0x98,0xac,0xa3,0x23,0x0,0x20,0x18,0x6,0xa0,
+ 0x7f,0xf6,0x1f,0xcb,0xe,0x36,0x30,0x83,0xf,0x79,0x3d,0xbd,0xe3,0x53,0xb5,0x24,
+ 0x95,0x40,0x24,0x43,0x10,0x5b,0x5a,0x45,0x20,0x18,0x50,0x8,0x2a,0x56,0xa1,0xa0,
+ 0x58,0xbe,0x4c,0x75,0xa8,0x1e,0xa,0x5a,0xff,0x9e,0xca,0x2,0x65,0xb3,0xbe,0x57,
+ 0x3a,0xc1,0xf,0x7f,0x11,0x68,0x9f,0x39,0x76,0xd3,0xa,0x6,0x50,0x1e,0xb6,0x23,
+ 0xb6,0xa4,0x9e,0x1d,0x1d,0xcc,0x90,0xb7,0xae,0x0,0x62,0x81,0x15,0xbc,0xb0,0xb4,
+ 0xa4,0xa1,0xa1,0x1,0x36,0x18,0x54,0x3c,0x80,0xc,0x4,0x39,0xa,0x58,0xc1,0xc3,
+ 0xa3,0x6,0x14,0x3a,0x20,0xcb,0x41,0x6,0x82,0x30,0x88,0xf,0xb3,0x8,0xa6,0x6,
+ 0xc4,0x6,0x45,0x21,0xcc,0x71,0xa0,0xc4,0xf,0xa,0x51,0x63,0x63,0x63,0x6,0x60,
+ 0x3d,0xc,0xf6,0x3c,0x28,0x23,0xc2,0xd2,0x32,0xac,0xa4,0x0,0xc5,0x10,0x28,0x4,
+ 0x81,0xd1,0xfb,0x16,0x98,0xc4,0xae,0x2,0x3d,0xf1,0x6,0x20,0x0,0x93,0xf5,0xae,
+ 0x2,0x0,0x8,0xc3,0x50,0x74,0xf1,0xff,0x7f,0x55,0x70,0x75,0xb1,0x67,0xb8,0xe0,
+ 0x28,0xf4,0x91,0x84,0x36,0x75,0x35,0x57,0x94,0x51,0x84,0xf4,0x5d,0x9,0xc9,0x40,
+ 0xb6,0xc,0x94,0x6,0x2,0x53,0x0,0x28,0x9b,0x1d,0x89,0xf9,0xff,0x96,0xff,0x5b,
+ 0x9d,0x96,0x2b,0x6f,0x45,0x8c,0x38,0xf5,0x41,0xc6,0x18,0xc9,0x19,0xb3,0x3f,0x43,
+ 0x7e,0xf,0x8e,0xfb,0x4,0xe0,0xb1,0xde,0x8d,0x0,0x0,0x41,0x18,0x80,0x36,0xee,
+ 0xbf,0x22,0x43,0x78,0xf6,0xf2,0x38,0x63,0x61,0x23,0x47,0x30,0xfc,0xe2,0xe2,0x28,
+ 0xb0,0x3e,0xf3,0x40,0x59,0x1,0x90,0x3d,0xc7,0xa6,0x2c,0xb4,0xb5,0xaa,0x66,0x95,
+ 0x28,0xa7,0x3,0x4c,0x80,0xff,0x91,0x7c,0x3d,0x15,0x3b,0x32,0x29,0x21,0x7c,0x2a,
+ 0x83,0xb0,0x1,0xc,0x41,0xb1,0x32,0x30,0xee,0xe1,0x35,0xe9,0xd3,0x49,0xd8,0x34,
+ 0xf9,0xa,0x20,0x16,0x60,0xf0,0xee,0x7,0xc6,0xbb,0x4,0xd0,0x10,0x49,0x20,0xe6,
+ 0x3,0xfa,0x84,0x9,0x39,0x7d,0x80,0x82,0x1f,0x44,0x83,0xca,0x3a,0x50,0xb4,0x3,
+ 0x5b,0x1f,0x60,0x47,0x82,0x2c,0x2,0x39,0x2,0x24,0xf,0xa,0x45,0x58,0xce,0x6,
+ 0xa9,0x85,0xb5,0x78,0x40,0x1e,0x0,0x25,0x17,0x98,0x3,0x41,0x85,0x39,0x2c,0x69,
+ 0x20,0xa7,0x57,0x90,0x3a,0x50,0xe8,0x82,0xec,0x5,0xda,0xcf,0x8,0xa4,0x7f,0x1,
+ 0xcd,0xff,0x3,0xf2,0x20,0x40,0x0,0x1e,0xeb,0x28,0x5,0x60,0x10,0x86,0x1,0x28,
+ 0x82,0x78,0x27,0x77,0xe5,0x5d,0xd2,0xbc,0xb1,0x28,0xf8,0x67,0xda,0x26,0x6d,0xa4,
+ 0x33,0x8f,0xde,0xc8,0xbd,0xc3,0xee,0x61,0xa8,0xc8,0xfc,0xed,0x7c,0x75,0x1c,0xa0,
+ 0x82,0x80,0xed,0x76,0x8e,0x56,0x30,0x47,0x99,0x6b,0x91,0x84,0x6e,0x93,0x19,0x3,
+ 0xc5,0xeb,0x0,0x7c,0x89,0xfc,0xa,0x5d,0x95,0x6b,0xba,0xfe,0xb9,0x21,0x34,0x32,
+ 0xb3,0x33,0xb1,0x97,0x15,0xef,0x8,0x40,0x53,0x19,0xe2,0x0,0x0,0xc2,0x30,0x50,
+ 0x0,0x1a,0x83,0x20,0x98,0xfd,0xff,0xb,0x3c,0x65,0x8e,0x8f,0x10,0x7a,0x24,0xb5,
+ 0x30,0xd1,0x75,0xeb,0xad,0x8a,0xfa,0x5b,0x58,0xb9,0x72,0x67,0x65,0xe6,0xd4,0x5e,
+ 0x34,0x82,0x41,0xc7,0x8c,0x36,0x22,0x3e,0xfd,0x79,0x63,0xcc,0xb8,0xc8,0xfe,0x70,
+ 0x2d,0x2c,0xca,0xa3,0xe5,0x2e,0xd3,0x14,0x4e,0x11,0xc,0xea,0x1c,0x3a,0xfe,0x70,
+ 0x1d,0xc1,0xd4,0x38,0xc9,0x66,0xa6,0xd1,0x25,0xa3,0x8a,0x70,0xd7,0x85,0xb7,0x21,
+ 0x91,0xe7,0x9,0x40,0x73,0xb9,0xe3,0x0,0x8,0xc3,0x30,0x54,0x48,0x4c,0x8c,0xdc,
+ 0xff,0x64,0x9d,0xa2,0x88,0x8d,0xb,0x30,0x94,0xcf,0x7b,0x48,0x9e,0x13,0xc5,0xb1,
+ 0xeb,0xa6,0xe9,0x8a,0xef,0x4e,0x56,0x9e,0x1,0xf3,0xa3,0xbb,0x27,0x4d,0xbc,0x80,
+ 0x2f,0x19,0x13,0x16,0xb5,0x80,0x5,0xbd,0x65,0xfa,0x28,0xd,0x48,0x40,0xb5,0xe3,
+ 0x25,0xc1,0xf9,0xd1,0xfd,0xf1,0x0,0xab,0x9e,0xc4,0x54,0x54,0x75,0x3d,0xb6,0x6c,
+ 0x33,0x7a,0xde,0x5c,0x9f,0x41,0x6c,0xf0,0x10,0xbf,0xab,0xea,0x52,0x59,0x26,0xca,
+ 0x4e,0xee,0xf6,0x9,0x40,0x73,0x1d,0xab,0x0,0x8,0xc3,0x40,0x0,0x15,0x5c,0xfd,
+ 0xff,0x8f,0x12,0x9a,0x2f,0x70,0xd2,0x4d,0x9c,0xdd,0x4,0xef,0x15,0x32,0x95,0x96,
+ 0x92,0x4b,0xd2,0x4b,0x2f,0xc1,0xc1,0x37,0xde,0x5e,0x79,0xa6,0x33,0x11,0x1b,0x84,
+ 0xb6,0x48,0xd6,0xda,0x95,0x2d,0x72,0x0,0xdd,0x90,0x2,0x88,0x91,0x25,0xa,0x34,
+ 0x57,0xa0,0x9c,0x7,0xe6,0x4e,0x67,0xe,0xef,0x9c,0x55,0xd5,0xe4,0x9a,0xce,0x9a,
+ 0x14,0x2a,0x3c,0xb6,0x5,0x2e,0x93,0xbe,0xb0,0x31,0x86,0xfd,0x17,0xa7,0x9e,0xd8,
+ 0x3b,0xd2,0x79,0xef,0x49,0xc6,0x8d,0x42,0xbf,0x0,0x62,0x1,0x49,0x0,0x1d,0xf2,
+ 0x1,0xe8,0xea,0x27,0x40,0x47,0x7e,0x2,0x62,0x31,0x50,0xa7,0x7,0xe4,0x73,0x50,
+ 0x5a,0x3,0xf9,0xe,0x54,0x1c,0xc0,0x5a,0x29,0xa0,0x2,0x1d,0xc4,0x6,0x61,0x58,
+ 0x28,0x82,0xc,0x82,0x15,0x21,0xa0,0xa8,0x7,0xd1,0xa0,0x74,0x9,0x52,0xf,0xab,
+ 0x8d,0x64,0x64,0x64,0xc0,0x51,0xa,0xa,0x61,0x10,0x6,0x95,0xb9,0x20,0x39,0x68,
+ 0xc3,0xe3,0x37,0x50,0xff,0x6b,0xa0,0x9a,0x73,0x40,0x3d,0x7b,0x80,0xe9,0xfb,0x8,
+ 0x30,0x20,0x1e,0x2,0x3d,0xf2,0x19,0x20,0x80,0x58,0xa0,0x89,0xf6,0x3b,0x10,0xbf,
+ 0x4,0x86,0xc0,0x1b,0x20,0xad,0x0,0x94,0x0,0xa5,0x5c,0x46,0x50,0x50,0x83,0xd2,
+ 0x1f,0x28,0x84,0x40,0x69,0xd,0xe4,0x28,0x50,0x54,0xc1,0x2a,0x75,0x58,0x63,0x0,
+ 0x14,0x5a,0x20,0x3e,0x8,0xc0,0xca,0x35,0x98,0x67,0x40,0x72,0xa0,0x56,0x33,0x88,
+ 0x6,0xf6,0x6d,0xc0,0x35,0x13,0x28,0x16,0x60,0xad,0x24,0x10,0x6,0xaa,0xfd,0xc,
+ 0x94,0x3f,0x7,0xc,0xe5,0xcd,0x40,0x7,0xef,0x5,0x9a,0xf1,0x8,0x48,0xff,0x1,
+ 0x6,0xdc,0x7f,0x80,0x0,0x62,0x81,0x16,0xb,0xbf,0x81,0xa,0x9e,0x3,0x1d,0xf8,
+ 0x8,0x18,0xec,0x3a,0x40,0x1f,0xb0,0x3,0xd,0x0,0x75,0xde,0xe1,0xa1,0x1,0xab,
+ 0x3b,0x41,0xe,0x1,0x85,0x8,0xac,0xfc,0x4,0xd5,0xdb,0xb0,0x86,0x0,0x28,0x49,
+ 0xc0,0x12,0x3f,0x28,0x74,0x40,0xe,0x3,0x45,0x25,0xc8,0x63,0xa0,0xb4,0x76,0xed,
+ 0xda,0x35,0x70,0xd2,0x50,0x51,0x51,0x1,0x87,0x34,0xd0,0x11,0xff,0x80,0x55,0xed,
+ 0x57,0xa0,0x9e,0xab,0x40,0xc7,0xed,0x0,0x6,0xc6,0x1e,0xa0,0x7d,0x4f,0x80,0xea,
+ 0x7f,0xc3,0xca,0x56,0x80,0x0,0x2,0x65,0x67,0x50,0x71,0xff,0x7,0x68,0xc9,0x33,
+ 0xa0,0x5,0xa7,0x80,0x69,0x42,0x1,0x98,0xe6,0xb4,0x80,0x96,0xf3,0x3,0xd,0x2,
+ 0x35,0x22,0xe0,0x5,0x31,0x28,0x8d,0xc1,0xa,0x67,0x58,0xd1,0x3,0xab,0x25,0xa0,
+ 0x4d,0x76,0x70,0xd4,0xc1,0xf8,0x20,0xc7,0x81,0x3c,0x8,0x4a,0xc3,0xe7,0xcf,0x9f,
+ 0x67,0xb8,0x7d,0xfb,0x36,0xbc,0xb,0xa,0x2,0xc0,0x34,0xfc,0x7,0xe8,0xf0,0x17,
+ 0xc0,0xa8,0x3d,0x8,0x8c,0x89,0x3,0x40,0xf3,0x9e,0x0,0x3,0xeb,0x17,0x72,0x27,
+ 0x1d,0x20,0x80,0x60,0x35,0xff,0x3f,0xa0,0xa1,0xef,0x81,0x86,0x9f,0x0,0x2a,0x10,
+ 0xbb,0x73,0xe7,0xe,0xa8,0x73,0xae,0x1,0x4c,0x7f,0xdc,0xc0,0xce,0xe,0x13,0x28,
+ 0x64,0x40,0x8e,0x1,0x25,0x76,0x50,0x68,0x80,0x42,0x16,0xe4,0x30,0x50,0x54,0x83,
+ 0xa2,0x12,0x94,0x29,0xa0,0x1d,0x74,0x78,0x3a,0x7b,0xf2,0xe4,0x9,0xd8,0x81,0xa0,
+ 0xa4,0x1,0xca,0x8,0xa0,0x32,0x14,0x14,0xfa,0xa0,0x8c,0x2,0xf2,0x4,0xa8,0xce,
+ 0x5,0x3a,0x10,0xd4,0x8e,0xbb,0x8,0xf4,0xd8,0x1e,0xa0,0xb9,0xf7,0xd0,0x1d,0x7,
+ 0x2,0x0,0x1,0xc4,0x82,0x54,0x4d,0x7d,0x3,0x56,0x35,0x57,0x80,0xe5,0xde,0x7f,
+ 0xa0,0x8f,0xbf,0x3,0x8b,0x93,0x6f,0xc0,0xc,0xa0,0x9,0xa4,0xf9,0x80,0x96,0xb2,
+ 0x3,0xa3,0x8b,0x11,0xd4,0x18,0x5,0x25,0x76,0x50,0xa8,0x80,0x1c,0x2,0x2a,0x2a,
+ 0x40,0x21,0xa,0x73,0x20,0x88,0xf,0x4a,0x5f,0xa0,0x76,0x1d,0x28,0xea,0x41,0x1e,
+ 0x0,0xa5,0x53,0x50,0x52,0x0,0x79,0xc,0x14,0xe5,0x20,0xc,0x4a,0x77,0xa0,0xd1,
+ 0x9,0x60,0x7a,0x7e,0x3,0x4c,0x2e,0x47,0x81,0xb1,0x71,0x1d,0xe8,0xe1,0x1f,0xd8,
+ 0x86,0x3e,0x0,0x2,0x8,0xee,0x40,0x60,0xd0,0x83,0x46,0xaa,0xbe,0x3,0x1b,0x89,
+ 0x97,0x81,0x3e,0x7f,0xf,0xf4,0xdd,0x3,0xa0,0x2f,0x6d,0x80,0x16,0x69,0x0,0xc5,
+ 0xe5,0x80,0xc5,0x8d,0x28,0x68,0xac,0x6,0x68,0x10,0x13,0xa8,0x16,0x1,0x85,0x2a,
+ 0x8,0xc3,0xea,0x5a,0x58,0x4e,0x6,0x45,0x27,0xc8,0x71,0x20,0x7,0x83,0x42,0xa,
+ 0x56,0x43,0x80,0x42,0x1c,0xc4,0x6,0x15,0x2d,0xc0,0x6a,0xf3,0x1f,0x30,0xb9,0xbc,
+ 0x3,0xea,0x39,0x5,0x4c,0x8b,0x87,0x81,0xe6,0xbd,0x7,0x86,0x1e,0xd6,0xf1,0x19,
+ 0x80,0x0,0x42,0x19,0x9b,0x1,0x46,0xd7,0x7f,0x20,0xfe,0x1,0xc,0x85,0xfb,0x40,
+ 0xc3,0x5f,0x2,0x43,0xf0,0xc,0x90,0xad,0x5,0x8c,0x6a,0x4b,0xa0,0xb4,0x35,0xb0,
+ 0x58,0xd1,0x6,0x3a,0x0,0xd4,0x6f,0x61,0x6,0x5a,0xc6,0x8,0x8a,0x52,0x50,0xe2,
+ 0x87,0xe5,0x48,0x50,0xd4,0x2,0x93,0x7,0x38,0xad,0x81,0x1c,0xe,0xaa,0x85,0x40,
+ 0xe9,0x16,0xe4,0x78,0xd0,0xb8,0xb,0xd0,0xac,0xef,0x40,0x75,0x1f,0x41,0xed,0x3c,
+ 0x60,0x39,0x7,0x2a,0xeb,0xb6,0x2,0x3,0xe6,0x3a,0x30,0x36,0x7e,0xe3,0x1a,0x3c,
+ 0x2,0x8,0x20,0x46,0x7c,0xe3,0x83,0xa0,0x21,0xf,0x60,0x14,0xb1,0x1,0x2d,0x16,
+ 0x7,0xa6,0x29,0x7d,0x60,0xb4,0x38,0x1,0x2d,0x32,0x4,0x26,0x68,0x65,0x60,0xd4,
+ 0x8,0x1,0xd,0x67,0x7,0x8d,0xd,0x2,0x1d,0xfd,0x1b,0x58,0x5,0xbe,0x3,0x46,
+ 0xe5,0x6b,0x60,0x34,0x7f,0x1,0x86,0xc8,0x5f,0x50,0x86,0x1,0x86,0x30,0x3b,0x68,
+ 0x54,0xb,0x68,0x87,0x18,0x68,0xe4,0x0,0x18,0xd2,0xf,0x80,0x1,0x70,0x9,0xa8,
+ 0x77,0x3f,0x10,0x9f,0x4,0xea,0x7f,0x0,0xa4,0xf1,0x8e,0x6e,0x1,0x4,0x10,0x23,
+ 0xa1,0x1,0x4c,0x10,0x0,0x96,0x5d,0x8c,0xc0,0x84,0xce,0xc,0xc4,0xa2,0xc0,0x50,
+ 0xd5,0x6,0x3a,0xda,0x5,0x98,0xc,0x2c,0x80,0x21,0x22,0x7,0x2a,0x4c,0x81,0x66,
+ 0x3c,0x4,0x3a,0xe6,0x32,0xd0,0xf2,0x8b,0xc0,0x1c,0xfa,0x1c,0x58,0xc4,0xfc,0x1,
+ 0x86,0x2e,0x1b,0x30,0xe4,0x40,0xdd,0x43,0x11,0xa0,0x3c,0xa8,0x4d,0xf6,0x1,0xa8,
+ 0xe6,0x1e,0xd0,0xe1,0x4f,0x81,0x1e,0x78,0x7,0x54,0xfb,0x1d,0xa8,0xee,0x1f,0x21,
+ 0xbb,0x1,0x2,0x88,0x28,0x7,0xc2,0xc0,0xe9,0xd3,0xa7,0x19,0x81,0xe5,0x18,0x2b,
+ 0xd0,0xa1,0xd2,0x40,0x87,0x82,0x8a,0x22,0x35,0x60,0x88,0x7d,0x3,0x5a,0xfa,0x8,
+ 0x68,0xd9,0x7d,0x60,0x59,0xf6,0x1c,0x98,0xa6,0xbe,0x1,0x43,0xf8,0x1f,0x28,0x9,
+ 0x0,0x43,0x9b,0x19,0x18,0x9d,0xa0,0x64,0xf4,0x17,0x3a,0xbc,0xf6,0x17,0x98,0x11,
+ 0x89,0xb7,0x10,0x8,0x0,0x2,0x88,0x11,0x98,0x98,0x41,0x3,0x96,0x24,0x69,0x3a,
+ 0x76,0xec,0x18,0x33,0x30,0x1d,0x72,0x2,0x33,0xf,0x2f,0xb4,0x43,0xf4,0x15,0x18,
+ 0x2a,0xdf,0x81,0xf8,0xf,0x30,0xa7,0x93,0x64,0x16,0x21,0x0,0x10,0x40,0xa0,0xea,
+ 0x8c,0x15,0x18,0x4d,0xbf,0x49,0xd5,0x8,0xec,0x5b,0x30,0x81,0xca,0x38,0xa0,0x7,
+ 0x41,0x3,0x91,0xff,0x81,0x8e,0xfc,0x7,0xc,0x3d,0x8a,0x1d,0x7,0xf4,0x30,0x23,
+ 0xb4,0xd8,0x3,0x9b,0x5,0x10,0x60,0x0,0xc6,0x55,0x8a,0x45,0xf5,0x12,0xb6,0x3d,
+ 0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/mirror.png
+ 0x0,0x0,0x1,0x2f,
+ 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,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x0,0xc1,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0xfc,0xff,0xff,0x3f,0x3,0x25,0x0,0x20,0x80,0x98,0x18,0x28,0x4,0x0,0x1,0x44,
+ 0xb1,0x1,0x0,0x1,0x44,0xb1,0x1,0x0,0x1,0x84,0x8e,0x84,0x80,0x98,0x8d,0x8,
+ 0x35,0x70,0x0,0x10,0x40,0xe8,0x12,0x67,0x80,0x98,0x9f,0x80,0x1,0x27,0x81,0x58,
+ 0x2,0xc6,0x1,0x8,0x20,0x16,0x24,0xcd,0xbb,0x80,0xd8,0x18,0x88,0x13,0x80,0xf8,
+ 0x3b,0x1e,0x3,0x74,0x81,0xf8,0x0,0x10,0x3b,0x0,0xf1,0xb,0x80,0x0,0x42,0xb6,
+ 0xf9,0x3f,0x89,0xf8,0x6,0xc8,0x25,0x0,0x1,0x4,0x32,0x60,0x3b,0x19,0x9a,0x61,
+ 0xf8,0x18,0x40,0x0,0x81,0xc,0x50,0x7,0xe2,0xe7,0x64,0x68,0x7e,0xb,0xf2,0x32,
+ 0x40,0x0,0x31,0x42,0xfd,0xa5,0xe,0xf5,0x17,0x28,0x70,0x16,0x0,0xf1,0x2f,0x3c,
+ 0x61,0x0,0xa,0xa3,0x2f,0x40,0xec,0x6,0xc4,0x67,0x1,0x2,0x8,0x59,0x2,0xe6,
+ 0x12,0x42,0xb1,0x70,0xf,0x1a,0xd8,0x60,0x0,0x10,0x40,0xe8,0x8,0x64,0x8,0x27,
+ 0x1,0x3,0xd4,0x91,0x39,0x0,0x1,0xc4,0x48,0x69,0x66,0x2,0x8,0x20,0x8a,0x93,
+ 0x32,0x40,0x0,0x51,0x6c,0x0,0x40,0x80,0x1,0x0,0x35,0x1a,0x3f,0x47,0x29,0x18,
+ 0x39,0xd8,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/layer-camera.png
+ 0x0,0x0,0x4,0x71,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x16,0x0,0x0,0x0,0x10,0x8,0x6,0x0,0x0,0x0,0x12,0xed,0x8f,0x26,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x4,0x3,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0x64,0x40,0x3,0xea,0xea,0xea,0x81,0xec,0xec,0xec,0xb3,0x98,0x98,0x98,0xb8,0xff,
+ 0x3,0x1,0x37,0x37,0x37,0xdb,0xcf,0x9f,0x3f,0x99,0x81,0xcc,0x47,0x1f,0x3e,0x7c,
+ 0x88,0xbd,0x77,0xef,0xde,0x61,0x6,0x22,0x0,0x40,0x0,0x31,0x22,0x73,0xb4,0xb5,
+ 0xb5,0x3,0x58,0x59,0x59,0x57,0x96,0x57,0x56,0xb2,0x99,0x5b,0x58,0x30,0x3c,0x78,
+ 0xf0,0x80,0xe1,0xe6,0xd5,0xab,0xc,0x26,0x86,0x86,0xc,0xfb,0xf,0x1e,0x64,0x58,
+ 0xbe,0x72,0xe5,0xaf,0x37,0x6f,0xde,0x68,0x3e,0x7e,0xfc,0xf8,0x1e,0x21,0x83,0x1,
+ 0x2,0x88,0x19,0x99,0x23,0x2e,0x2e,0xbe,0x39,0x35,0x3d,0x5d,0xd4,0xc9,0xd9,0x99,
+ 0xe1,0xd7,0xef,0xdf,0xc,0xa2,0xa2,0xa2,0xc,0xdf,0x7e,0xfc,0x60,0xb8,0x75,0xeb,
+ 0x16,0x83,0x2b,0x50,0xc,0xa4,0xfe,0xde,0xfd,0xfb,0x71,0x2f,0x5f,0xbe,0xec,0x24,
+ 0x64,0x30,0x40,0x0,0x31,0xc1,0x18,0x7a,0x7a,0x7a,0x9c,0x40,0xef,0x2b,0x7b,0x7b,
+ 0x7b,0x33,0x7c,0xff,0xf6,0x8d,0xe1,0xff,0xdf,0xbf,0xc,0x3f,0x80,0x86,0xaa,0xa9,
+ 0xa9,0x31,0xfc,0x7,0xca,0xbf,0x7d,0xfb,0x96,0x21,0x2c,0x34,0x94,0x81,0x85,0x85,
+ 0x85,0x4f,0x45,0x45,0x45,0x9a,0x90,0xc1,0x0,0x1,0x4,0x37,0xf8,0xcb,0x97,0x2f,
+ 0x9e,0xc0,0x60,0xf8,0xcb,0xca,0xc2,0xc2,0x0,0xe,0x1f,0x46,0x46,0x6,0x60,0xb8,
+ 0x32,0x70,0x70,0x70,0x30,0xb0,0x1,0xf1,0x8f,0x9f,0x3f,0x19,0xfe,0x1,0x2d,0x13,
+ 0x11,0x11,0x61,0xfc,0xfb,0xf7,0xaf,0x1b,0x21,0x83,0x1,0x2,0x88,0x5,0x18,0xae,
+ 0x5a,0x40,0x3,0x77,0x32,0x33,0x33,0xcb,0xb8,0xbb,0xbb,0x33,0x3c,0x7a,0xf4,0x88,
+ 0x1,0xc8,0x67,0x60,0x7,0x19,0xc8,0xce,0xce,0xc0,0x2,0x62,0x3,0x69,0x60,0x4,
+ 0x32,0x7c,0xfc,0xf4,0x89,0x81,0x9b,0x8b,0x8b,0xe9,0xcf,0x9f,0x3f,0x5a,0x40,0xbd,
+ 0xac,0x50,0x87,0xfd,0xc4,0x66,0x30,0x40,0x0,0x31,0xea,0xea,0xea,0xbe,0xe,0xe,
+ 0xa,0x12,0x9,0x9,0xa,0x62,0xd8,0xbd,0x6f,0x1f,0x3,0xbf,0x80,0x0,0x3,0x23,
+ 0x13,0x13,0xd8,0xb5,0x20,0x0,0xb2,0xe4,0xee,0xdd,0xbb,0xc,0x77,0x6f,0xdf,0x66,
+ 0x60,0x63,0x63,0x83,0xb8,0xfc,0xff,0xff,0x9f,0x7f,0x7e,0xfd,0x62,0xb8,0x7e,0xfd,
+ 0xfa,0xed,0x2b,0x57,0xae,0xe8,0x62,0x33,0x18,0x20,0x80,0x58,0x80,0x5e,0xe7,0x89,
+ 0x8,0xb,0x63,0x78,0xf1,0xe2,0x5,0x83,0xa0,0x90,0x10,0x83,0xa3,0x8b,0xb,0xc3,
+ 0xa7,0x8f,0x1f,0x19,0x40,0x1a,0xc1,0x61,0x5,0xc,0x1a,0x3,0x60,0xaa,0x0,0x7a,
+ 0x9f,0x1,0x98,0xd4,0x18,0x7e,0x2,0xc3,0xdd,0xd0,0xc8,0x88,0xfd,0x1e,0x30,0x42,
+ 0xeb,0xea,0xeb,0xc5,0x71,0x5,0x5,0x40,0x0,0xb1,0x0,0x83,0x80,0x85,0x11,0x18,
+ 0x9e,0x40,0x9a,0xe1,0xdd,0xbb,0x77,0xc,0x9d,0x6d,0x6d,0xc,0x40,0xe7,0x32,0x8,
+ 0xa,0xa,0x32,0x8,0x0,0x31,0x2b,0xd0,0x95,0x20,0x43,0x9d,0x81,0x16,0xf2,0xf0,
+ 0xf0,0x80,0x5d,0xd,0xd4,0xc4,0xf0,0x12,0xe8,0x90,0x7f,0xff,0xfe,0x21,0xbc,0xce,
+ 0xc8,0xc8,0x2,0xf2,0x20,0xd4,0xa7,0xff,0x0,0x2,0x88,0x5,0xe8,0xed,0xbf,0x40,
+ 0x83,0x58,0x40,0x5e,0xbe,0x77,0xe7,0xe,0x83,0xa6,0xba,0x3a,0x83,0xb2,0xa2,0x22,
+ 0xc3,0x3b,0xa0,0xab,0xbf,0x3,0xbd,0x7d,0xe5,0xf2,0x65,0x70,0x38,0xdf,0x1,0xca,
+ 0x9,0xb,0xb,0x33,0xbc,0x7c,0xfe,0x9c,0x61,0xef,0x9e,0x3d,0xc,0x9f,0x3f,0x7f,
+ 0x6,0x59,0xce,0x2d,0x26,0x26,0x36,0x57,0x42,0x42,0x22,0x9,0x25,0x45,0x30,0x31,
+ 0xfd,0x0,0x8,0x20,0x96,0x5f,0xbf,0x7e,0xfd,0x7d,0xf4,0xf8,0x31,0xd8,0x85,0xa0,
+ 0x64,0xa6,0xac,0xa4,0xc4,0x20,0x2d,0x25,0xc5,0x20,0xf,0x34,0x9c,0x17,0x28,0xa6,
+ 0xa4,0xac,0xcc,0xf0,0xe8,0xe1,0x43,0x86,0xbf,0x7f,0xfe,0x80,0x35,0x9d,0x3b,0x77,
+ 0x8e,0xc1,0xd7,0xd7,0x97,0x41,0xd,0xe8,0x0,0x20,0xe6,0x3a,0x76,0xf4,0x68,0x12,
+ 0xc8,0xf5,0x3c,0xbc,0xbc,0xc,0x9e,0xc0,0xa4,0x6a,0x66,0x66,0xc6,0xe0,0xe1,0xea,
+ 0xca,0xe,0x10,0x40,0x4c,0x3f,0xbe,0x7f,0xdf,0xb5,0x61,0xd3,0x26,0x6,0x2e,0x2e,
+ 0x2e,0x6,0x26,0x66,0x48,0x7e,0x1,0xc6,0x3a,0x3,0x50,0x9c,0xe1,0x2b,0xd0,0x55,
+ 0x9c,0x9c,0x9c,0xc,0x1f,0x81,0xae,0x7,0xc9,0x7d,0x1,0xf2,0x99,0x81,0x11,0x2b,
+ 0xc4,0xcf,0xcf,0xf0,0xe1,0xcd,0x1b,0x86,0x2f,0x40,0x71,0x3b,0x7b,0x7b,0xb0,0xa1,
+ 0xff,0x81,0xc1,0xc2,0xe,0xc,0xa6,0xdf,0xc0,0x8c,0x5,0xa,0xe,0x80,0x0,0x62,
+ 0x1,0x26,0xa9,0x9c,0xc3,0x47,0x8e,0x80,0xd2,0x30,0xfb,0x43,0x60,0x52,0x83,0xe5,
+ 0x71,0x50,0x9a,0x5,0x59,0x0,0x32,0x8,0x98,0xa,0x18,0xfe,0x1,0xd9,0xff,0x80,
+ 0xec,0x5f,0xc0,0xc8,0xfb,0xd,0xc,0x22,0x56,0xa0,0x45,0xa0,0x4c,0x4,0x4a,0x86,
+ 0x8c,0x50,0xc7,0x7c,0x5,0xfa,0x98,0x5,0x94,0xf,0x80,0x71,0x6,0x10,0x40,0x4c,
+ 0x97,0x2e,0x5d,0x7a,0xa,0xb4,0xc5,0x7a,0xcf,0xde,0xbd,0xd7,0x81,0xe5,0xc0,0x4f,
+ 0x60,0xb6,0x6,0x47,0x10,0x48,0xf2,0x3f,0xc8,0x30,0xa0,0x66,0x26,0x20,0x1b,0x94,
+ 0x4a,0x40,0x6,0x0,0xc3,0x94,0xe1,0xf8,0xc9,0x93,0xc,0x4f,0x81,0x61,0xfd,0xd,
+ 0x68,0x10,0x48,0xed,0x1b,0x60,0xae,0xe4,0x0,0xfa,0xf8,0xf5,0xab,0x57,0xc,0x27,
+ 0x8e,0x1f,0x7,0x47,0x2a,0x40,0x0,0x31,0x22,0x65,0x69,0x15,0xa0,0x17,0xce,0xf2,
+ 0xf3,0xf3,0x33,0x2b,0x29,0x2a,0x72,0xc9,0xcb,0xc9,0x31,0xa,0x1,0x23,0x4b,0x52,
+ 0x5a,0x9a,0xe1,0xfe,0xfd,0xfb,0xe0,0x8,0xfd,0xf8,0xfe,0x3d,0xc3,0x4b,0xa0,0xe6,
+ 0xa7,0x4f,0x9f,0x32,0x1c,0x3b,0x71,0x2,0xe8,0x91,0xff,0x4c,0xb2,0x72,0x72,0xbf,
+ 0xc2,0x22,0x22,0xd8,0xec,0x81,0x41,0x72,0xf,0x98,0xde,0x37,0x6d,0xdc,0xf8,0x60,
+ 0xfb,0xf6,0xed,0x2f,0x0,0x2,0x8,0xa5,0x74,0x3,0x1a,0xae,0xe,0xb4,0x4d,0xb,
+ 0x58,0x46,0x98,0x2,0x5d,0x62,0x21,0x20,0x20,0x20,0xd,0xf4,0xa2,0x24,0x10,0x33,
+ 0x3,0x31,0x17,0xd0,0x9b,0x3f,0x80,0x18,0x18,0xd4,0x9f,0xf,0x3,0xf9,0x93,0x80,
+ 0xe1,0x7f,0xc,0x98,0x14,0x2f,0xc9,0xc8,0xca,0x8a,0x3,0xc5,0x57,0x1f,0x3a,0x78,
+ 0x70,0x3d,0x50,0xee,0x10,0xd0,0xa8,0xaf,0x0,0x1,0x6,0x0,0x60,0xbe,0xac,0x25,
+ 0x5b,0xa4,0x27,0x14,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+
+ // /home/matthew/pencil_dev/icons/eraser.png
+ 0x0,0x0,0x4,0x88,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x16,0x0,0x0,0x0,0x11,0x8,0x6,0x0,0x0,0x0,0xd9,0xb1,0x5c,0x83,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x4,0x1a,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0x60,0x60,0x64,0x61,0x20,0xb,0x33,0x30,0xd8,0xca,0xa,0x9,0x57,0xfb,0x1b,0x18,
+ 0x9d,0x60,0x65,0x66,0x71,0x67,0x60,0x40,0x95,0x7,0x8,0x20,0x66,0x6,0x46,0x26,
+ 0x6,0xa2,0xc1,0xff,0xbf,0x40,0xe2,0x9f,0x12,0x10,0x77,0x15,0xbb,0xba,0xf9,0xd7,
+ 0x5,0x4,0x78,0x97,0x86,0x87,0xde,0xfb,0xf6,0xe9,0x93,0xe5,0x91,0x3b,0x37,0x9f,
+ 0x33,0x30,0x32,0xde,0x7,0x9a,0xa,0x56,0xa,0x10,0x40,0xc4,0x1a,0xcc,0xca,0xf0,
+ 0xff,0x8f,0xaa,0x8,0xf,0x5f,0x85,0xaf,0x9e,0x41,0xf5,0x9e,0x82,0x2,0x59,0x1f,
+ 0xb,0x73,0x4d,0x5,0x11,0x11,0x61,0x86,0x2f,0x5f,0xd4,0x5c,0x8c,0x8d,0xbe,0xff,
+ 0xfd,0xf1,0x4b,0xf3,0xd0,0xed,0x9b,0x6f,0x81,0x6,0xdf,0x5,0x5a,0xc0,0x0,0x10,
+ 0x40,0xf8,0xd,0xfe,0xff,0x7,0xe4,0x42,0x6b,0x4e,0x36,0x96,0xc4,0x54,0x1b,0xbb,
+ 0xa6,0x49,0x31,0xd1,0xf2,0x39,0x5e,0x1e,0xca,0x3c,0x6c,0x6c,0x32,0xcc,0x7f,0xfe,
+ 0x70,0x30,0xfc,0xf9,0x3,0x71,0xde,0x9f,0x3f,0xe2,0x4e,0x46,0x86,0xbf,0xff,0xfe,
+ 0xfa,0xad,0x7a,0xe8,0xd6,0x8d,0xf7,0x40,0x33,0xef,0x0,0x4,0x10,0xe,0x83,0xff,
+ 0x73,0x3,0xbd,0x2d,0xc0,0xc4,0xcc,0x36,0x31,0x2a,0x21,0x5e,0x67,0x56,0x62,0x82,
+ 0x6b,0xaa,0xb9,0xa9,0x90,0x4,0x2f,0x9f,0x2a,0xc3,0x8f,0xef,0x6c,0xc,0xff,0xff,
+ 0x63,0x6a,0xf9,0xf3,0x47,0xcc,0xc9,0xd0,0xf0,0xe7,0x8f,0xaf,0xdf,0xd4,0x8f,0xde,
+ 0xb9,0xf5,0x4,0x20,0x80,0x18,0xa1,0x11,0x81,0xec,0x4a,0x17,0x9,0x9,0x49,0x15,
+ 0x4b,0x4b,0xab,0xfc,0xc6,0xc6,0xfa,0xd3,0x12,0x52,0x52,0x61,0x8c,0xdf,0xbf,0x33,
+ 0xf2,0x1e,0x3e,0xcc,0xc6,0xfe,0xfe,0x3d,0x30,0x8e,0x58,0xb0,0xfb,0xee,0x2f,0x30,
+ 0xfc,0x39,0x38,0x18,0x18,0x24,0x25,0xaf,0x79,0x97,0x96,0x33,0x2,0x4,0x10,0xb,
+ 0x52,0xc4,0x28,0x0,0x89,0xe6,0x9c,0xdc,0xbc,0x8f,0x81,0x1,0x1,0x76,0x76,0x76,
+ 0xb6,0xbf,0x9f,0x3e,0x7d,0x1a,0xfb,0xe9,0xc3,0x7,0x6,0x6,0x66,0x66,0x86,0xcf,
+ 0xa6,0xa6,0xc,0xd2,0xa7,0x4e,0x31,0xb0,0x81,0xc,0x67,0x65,0x85,0xea,0x81,0xba,
+ 0x9c,0x9,0xe8,0x6b,0x71,0x71,0x86,0x3f,0x5f,0xbe,0x30,0x7c,0xba,0x7a,0x55,0xe8,
+ 0xc7,0xf7,0xef,0xbf,0x1,0x2,0x8,0xe2,0xe2,0xff,0x7f,0xb4,0xdd,0xdc,0x3d,0x62,
+ 0xa7,0x4d,0x9d,0xa2,0xc1,0xcb,0xcb,0xeb,0xc0,0xc8,0xc8,0xc8,0xf3,0xf1,0xe3,0x47,
+ 0x66,0x26,0x26,0x44,0x30,0xfd,0x7,0x1a,0xce,0xf4,0xe7,0xf,0x83,0xd4,0xc9,0x93,
+ 0xc,0xec,0x20,0xcb,0x40,0x80,0x87,0x7,0xec,0x83,0x1f,0x40,0xb9,0x57,0xd7,0xae,
+ 0x31,0xfc,0xfd,0xfc,0xf9,0xd7,0xaa,0xf3,0x17,0x58,0x2a,0xe,0xec,0x4f,0x0,0x8,
+ 0x20,0x16,0xa0,0xa1,0xea,0x5e,0x5e,0xde,0xd1,0x6b,0xd7,0xae,0xe1,0xfb,0xf6,0xed,
+ 0x9b,0xff,0x7b,0xa0,0x8b,0x80,0x6,0x33,0x20,0x1b,0xa,0x2,0x8c,0x40,0xaf,0xfe,
+ 0x5,0x1a,0xf2,0xdc,0xcc,0x8c,0x41,0xf2,0xcc,0x19,0x6,0x76,0xa0,0xab,0xbf,0x7f,
+ 0xfe,0xcc,0xf0,0xf6,0xf1,0x63,0x86,0x97,0xb7,0x6f,0x33,0xb0,0x2,0xe5,0xfe,0xfc,
+ 0xff,0xff,0x78,0xd3,0xbd,0x7b,0xf7,0x80,0xca,0xf,0x3,0x4,0x10,0x28,0x28,0x8c,
+ 0x23,0x22,0x23,0x82,0x39,0x38,0x38,0x24,0xff,0xfd,0xfb,0x7,0x74,0x0,0xb,0xc3,
+ 0xef,0xdf,0xbf,0x31,0xc,0xfe,0xf,0xf4,0x36,0x7,0xd0,0x65,0x7f,0xb8,0xb8,0x18,
+ 0xfe,0xc9,0xc9,0x31,0x3c,0xdc,0xb6,0x8d,0xe1,0xfd,0xdb,0xb7,0xc,0xcc,0x7f,0xff,
+ 0xfe,0x67,0x63,0x63,0xfb,0xf5,0xe6,0xeb,0xb7,0x77,0x75,0x7,0xf,0xde,0x39,0xf6,
+ 0xe8,0x61,0x26,0x30,0x14,0x1e,0x0,0x4,0x10,0xa3,0xbb,0xbb,0xe7,0x91,0xed,0xdb,
+ 0xb7,0xfe,0xfd,0xf5,0xeb,0xb7,0x1d,0x3b,0x3b,0x1b,0xc3,0xf7,0xef,0xdf,0x19,0xde,
+ 0x2,0x35,0xfc,0x1,0x7a,0x1b,0x64,0x11,0xc8,0x40,0xa0,0x46,0xb0,0x45,0x5f,0xbf,
+ 0x7e,0x65,0xb8,0xd,0x74,0x21,0x3b,0x30,0x38,0x44,0x6e,0xde,0x64,0x10,0x10,0x14,
+ 0x7c,0x7b,0xec,0xf1,0x53,0x96,0xed,0x77,0xee,0xde,0x5e,0x72,0xe9,0xfc,0xd,0xa0,
+ 0xbf,0xaa,0x18,0x18,0x99,0x1f,0x83,0x1c,0x2,0x10,0x40,0x2c,0x7f,0xfe,0xfe,0x5,
+ 0xfa,0x9c,0xf1,0xd7,0x8f,0x1f,0xdf,0x41,0xee,0x62,0xe0,0xe4,0xe4,0x64,0x10,0x15,
+ 0x15,0x65,0xf8,0xc,0xf4,0x26,0xc8,0x20,0x10,0xff,0xd5,0xab,0x57,0x60,0xfc,0xe2,
+ 0xc5,0xb,0x6,0x2e,0x21,0xc1,0x3f,0xbc,0xec,0xec,0xff,0x5e,0xff,0xf8,0xf9,0xb8,
+ 0x74,0xf3,0x36,0xd1,0xb,0x2f,0x9e,0x75,0xbd,0xf9,0xf6,0x75,0x3f,0xd0,0x95,0xc7,
+ 0x90,0x7d,0x8,0x10,0x40,0xcc,0xf7,0xef,0xdd,0xbd,0xf3,0xf1,0xd3,0x67,0x3e,0x3f,
+ 0x3f,0xdf,0x77,0x5f,0xbe,0x7c,0x51,0x7,0x85,0x2f,0x3b,0x3b,0x3b,0xd8,0xc0,0x4f,
+ 0x9f,0x3e,0x31,0x9c,0x3f,0x7f,0x9e,0xe1,0xd9,0xb3,0x67,0x60,0x9f,0x8,0x8,0x8,
+ 0x3c,0xbc,0x75,0xfd,0xe6,0xa7,0x39,0x9b,0xb7,0x1e,0x69,0xdd,0xba,0xe5,0xde,0xdd,
+ 0xf7,0xef,0x3c,0xbe,0xfd,0xf9,0x77,0x8,0xe8,0xca,0xfb,0xe8,0xa9,0xf,0x20,0x80,
+ 0x80,0x19,0x84,0xf9,0xe1,0x89,0xe3,0xc7,0xd8,0xbe,0x7d,0xff,0xc1,0xed,0xeb,0xeb,
+ 0xf3,0x19,0x68,0xb8,0xa,0x2b,0x30,0x62,0x9e,0x3f,0x7f,0xce,0x70,0xec,0xd8,0x31,
+ 0x70,0x50,0x70,0x73,0x73,0x7f,0xbe,0x7f,0xff,0xfe,0xa5,0x45,0x8b,0x97,0xfc,0x9d,
+ 0x3b,0x67,0xf6,0xf2,0x3b,0x77,0xef,0x2c,0xfe,0xcf,0xc0,0x34,0x11,0xa8,0x17,0xe8,
+ 0x4d,0xc6,0x3f,0xd8,0x92,0x35,0x40,0x0,0xb1,0x40,0xa,0xd,0xa6,0xad,0xdd,0x5d,
+ 0x9d,0xc,0xff,0xfe,0xfe,0x63,0xe8,0xe9,0xe9,0xfa,0xf7,0xf0,0xe1,0x43,0xaf,0x8b,
+ 0x17,0x2f,0x82,0x22,0xe5,0xe3,0xeb,0xd7,0xaf,0xef,0x2d,0x58,0xb8,0x84,0xe1,0xca,
+ 0xe5,0x4b,0xfb,0x3f,0x7f,0xfe,0xb8,0x0,0xe8,0xe5,0x3b,0x40,0xfc,0x9b,0x50,0xe1,
+ 0x2,0x10,0x40,0x90,0x2c,0xd,0xf4,0x3e,0x10,0xdf,0x3e,0x7e,0xec,0x8,0xe3,0xc7,
+ 0x8f,0x9f,0x45,0x75,0x74,0xb4,0x1f,0x1e,0x3e,0x7c,0x44,0x60,0xcb,0x96,0x2d,0xa7,
+ 0x7b,0x7b,0x7b,0x6f,0x3f,0x79,0xfc,0x28,0xef,0xd7,0xaf,0x5f,0xab,0x81,0x6,0xbe,
+ 0x1,0x15,0x1e,0xc4,0x94,0x5a,0x0,0x1,0x84,0x56,0xc6,0x32,0x3,0x33,0x19,0x8b,
+ 0x8f,0x91,0xb1,0xe9,0x61,0x11,0x11,0xd1,0x4a,0xa0,0x80,0x1d,0xb9,0xe5,0x35,0x40,
+ 0x80,0x1,0x0,0x27,0xac,0xb4,0xd7,0x6c,0x4d,0xce,0x70,0x0,0x0,0x0,0x0,0x49,
+ 0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/outlines5.png
+ 0x0,0x0,0x1,0xd6,
+ 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,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x1,0x68,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0xb9,0xf2,0xfe,0xef,0x37,0x6,0x6,0x86,0x20,0x6d,0x1,0xa6,0x1d,0xc,0x44,0x2,
+ 0x2d,0x15,0x63,0x9,0x20,0x75,0x0,0x88,0xa7,0x3,0x4,0x10,0x13,0x90,0xe0,0x4,
+ 0xe2,0x75,0x57,0x3f,0xfc,0xf3,0x20,0x55,0xf3,0xb5,0x3b,0x67,0x27,0x2,0x4,0x10,
+ 0x13,0x54,0x9c,0x28,0x43,0xd0,0x35,0x83,0xc4,0x0,0x2,0x88,0x9,0x49,0x1e,0xaf,
+ 0x21,0xd8,0x34,0x83,0x0,0x40,0x0,0x31,0xa1,0xa9,0xc3,0x6a,0x8,0x2e,0xcd,0x20,
+ 0x0,0x10,0x40,0x4c,0x58,0x2c,0x43,0x31,0x4,0x9f,0x66,0x10,0x0,0x8,0x20,0x26,
+ 0x1c,0xde,0xe5,0xfc,0xf7,0xef,0xdf,0xba,0xec,0xa2,0xc6,0x6,0x7c,0x9a,0x41,0x0,
+ 0x20,0x80,0x18,0x81,0xd1,0xf8,0x1f,0x5d,0x10,0xa8,0x99,0xa1,0xb7,0xac,0x9c,0xe1,
+ 0xf4,0xc1,0x83,0xbf,0x99,0xd9,0xd9,0x4e,0x5d,0xba,0x72,0xcc,0x6,0x57,0xc0,0x2,
+ 0x4,0x10,0x13,0x2e,0xcd,0x67,0xe,0x1f,0xfe,0xc1,0xc4,0xc2,0xca,0xea,0x96,0x9e,
+ 0x63,0x3c,0xf3,0xd8,0x5d,0x9c,0xb1,0x3,0x10,0x40,0x28,0x6,0xfc,0xf9,0xfd,0x1b,
+ 0xae,0xf9,0xef,0xdf,0x3f,0x1c,0x21,0xd5,0xf5,0xc,0xaa,0xc6,0xe6,0x1c,0xa0,0x30,
+ 0xc1,0x65,0x8,0x40,0x0,0x31,0x21,0x6b,0xee,0xaf,0xac,0x62,0x38,0x73,0xe8,0xd0,
+ 0xf,0x46,0x26,0x26,0xe,0x87,0xf8,0x64,0x6,0x9,0x25,0x55,0x94,0x80,0xc5,0x66,
+ 0x8,0x40,0x0,0x31,0xa1,0x68,0x3e,0x72,0xe4,0xdb,0xdf,0x7f,0x7f,0x39,0x2c,0x43,
+ 0x23,0x18,0xc,0x9c,0x3d,0xb0,0xc6,0xe,0xba,0x21,0x0,0x1,0xc4,0x84,0x6c,0x33,
+ 0x13,0x33,0x33,0x97,0x63,0x6c,0x12,0x83,0xb1,0x87,0x2f,0x2e,0x2f,0x63,0x18,0x2,
+ 0x10,0x40,0xcc,0xdf,0xdf,0x7d,0x6b,0x38,0x7b,0xe4,0xc8,0x57,0xa0,0x9f,0xb9,0xb4,
+ 0xec,0x1c,0x18,0xac,0x82,0x23,0x8,0x65,0x7,0x56,0x20,0xe,0x3e,0xfb,0xf8,0xfd,
+ 0x59,0x13,0x59,0xa1,0x3b,0x0,0x1,0xc4,0xa8,0xa3,0x61,0xfe,0x91,0x95,0x9d,0x9d,
+ 0x4f,0xcd,0xdc,0x9a,0xc1,0x11,0xe8,0x6f,0x12,0xc0,0x77,0x50,0x2e,0x6,0x8,0x20,
+ 0xa6,0x5f,0xff,0x7e,0xf1,0x89,0xca,0x2b,0x90,0xaa,0x19,0xee,0x1d,0x80,0x0,0x3,
+ 0x0,0xd9,0xe1,0xa9,0xc9,0xc2,0xff,0x8,0x6,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,
+ 0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/remove.png
+ 0x0,0x0,0x2,0x9c,
+ 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,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x2,0x2e,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0xfc,0xff,0xff,0x3f,0x3,0x32,0x90,0x97,0x97,0x77,0x63,0x65,0x65,0x75,0x67,0x61,
+ 0x61,0xb1,0x2,0x62,0x4d,0x26,0x26,0x26,0x90,0xf0,0xf5,0x7f,0xff,0xfe,0x1d,0xfb,
+ 0xf3,0xe7,0xcf,0xce,0x1b,0x37,0x6e,0xec,0x42,0x56,0xf,0x10,0x40,0x8c,0x30,0x3,
+ 0x64,0x64,0x64,0x14,0xd8,0xd8,0xd8,0x72,0x38,0x38,0x38,0xd2,0xb9,0xb8,0xb8,0x78,
+ 0x80,0x34,0x3,0xd0,0x20,0x6,0x66,0x66,0x66,0xb0,0xfc,0xdf,0xbf,0x7f,0x19,0x7e,
+ 0xff,0xfe,0xfd,0xe5,0xc7,0x8f,0x1f,0x33,0xbf,0x7d,0xfb,0x36,0xe5,0xda,0xb5,0x6b,
+ 0xf,0x40,0xe2,0x0,0x1,0x4,0x36,0x0,0xa4,0x99,0x9d,0x9d,0xbd,0x99,0x87,0x87,
+ 0x27,0x6,0x88,0x19,0x40,0x18,0xc8,0x7,0x1b,0x0,0x75,0x1,0x3,0xd0,0x5,0x20,
+ 0x3,0x18,0x7e,0xfe,0xfc,0xc9,0xf0,0xe5,0xcb,0x97,0x25,0x40,0x5c,0x7b,0xf1,0xe2,
+ 0xc5,0x7,0x0,0x1,0xc4,0x2,0x92,0x4,0xd9,0xc,0xd2,0xcc,0xcf,0xcf,0xcf,0xc0,
+ 0xc7,0xc7,0xc7,0xc0,0xc9,0xc9,0x9,0x12,0x3,0x6b,0x66,0x64,0x64,0x4,0x1b,0x0,
+ 0xb2,0x8,0x64,0x8,0xd4,0xe0,0x18,0xa0,0xcb,0x5e,0x2,0x85,0x4b,0x0,0x2,0x88,
+ 0x51,0x4e,0x4e,0xce,0x8d,0x9b,0x9b,0x7b,0xad,0xa0,0xa0,0x20,0xf,0x10,0x83,0x6d,
+ 0x47,0xb6,0x19,0x1d,0xc0,0x5c,0x2,0x74,0xc1,0x97,0xf7,0xef,0xdf,0x7,0x3,0x4,
+ 0x10,0xb,0x28,0xc0,0x40,0x7e,0x6,0x69,0x4,0xd9,0x8c,0x4f,0x33,0x8,0x80,0xe4,
+ 0x40,0x6a,0x80,0x6a,0x79,0x80,0x6,0xb9,0x3,0x4,0x10,0xb,0x28,0xb4,0x41,0x1,
+ 0x6,0xc,0x7,0x50,0xc,0x30,0x0,0xf9,0x60,0x67,0x83,0x2,0xf,0xe4,0xd,0x10,
+ 0x1b,0xa4,0x1,0x64,0x33,0x48,0xec,0xeb,0xd7,0xaf,0xc,0xb7,0x6e,0xdd,0x82,0x79,
+ 0xc7,0xa,0x20,0x80,0x40,0x6,0x68,0xc2,0x6c,0xcd,0xcb,0xcb,0x63,0xe0,0xe5,0xe5,
+ 0x5,0x3b,0x11,0x14,0xea,0xb0,0x18,0x2,0xc9,0x81,0xc,0x6,0x19,0xf0,0xf6,0xed,
+ 0x5b,0x86,0xa2,0xa2,0x22,0x98,0x4b,0x34,0x1,0x2,0x88,0x9,0xc4,0x0,0x49,0x80,
+ 0x14,0x80,0x42,0x18,0x4,0x80,0xf1,0xd,0xd6,0xc,0x12,0x3,0x79,0xb,0x14,0x70,
+ 0xb0,0x0,0x5,0x89,0x83,0x30,0x88,0xd,0x12,0x3,0x8,0x20,0x50,0x2c,0x5c,0x7,
+ 0x62,0xb,0x90,0x21,0xf3,0xe6,0xcd,0x83,0x2b,0x86,0x45,0xd9,0xaf,0x5f,0xbf,0xe0,
+ 0x9a,0x41,0x34,0x30,0x1d,0xc0,0x63,0x6,0xa4,0x17,0x20,0x80,0x58,0x40,0x29,0xc,
+ 0xe8,0x5c,0x8b,0xe7,0xcf,0x9f,0x33,0x7c,0xfc,0xf8,0x11,0x6f,0x0,0xc2,0x0,0xc8,
+ 0x32,0x50,0x18,0x80,0xf4,0x2,0x4,0x10,0x13,0x28,0x79,0x82,0x52,0x18,0xc8,0x46,
+ 0x90,0x20,0xb1,0x0,0xa8,0x16,0xa4,0x67,0x27,0x40,0x0,0x31,0x81,0xd2,0x36,0x28,
+ 0x79,0xc2,0x9c,0x4b,0x8c,0x21,0x20,0x35,0x40,0xb5,0x33,0x37,0x6d,0xda,0xb4,0xb,
+ 0x20,0x80,0xc0,0xee,0x5,0xa5,0x6d,0x50,0xf2,0xfc,0xfe,0xfd,0x3b,0x3,0x21,0x97,
+ 0x40,0x13,0x12,0x48,0xed,0x14,0x10,0x1f,0x20,0x80,0xe0,0x99,0x49,0x5f,0x5f,0x5f,
+ 0x1,0x98,0x94,0x73,0x80,0x49,0x39,0x1d,0x94,0x48,0x70,0x24,0xe5,0x2f,0x20,0x9b,
+ 0x41,0x9a,0xb7,0x6c,0xd9,0x2,0xce,0x4c,0x0,0x1,0xc4,0x88,0x9e,0x9d,0xad,0xad,
+ 0xad,0xdd,0x80,0xa9,0xd2,0x1d,0x94,0x48,0xa0,0xf1,0xc,0xcf,0xce,0x20,0x3f,0x83,
+ 0x9c,0x8d,0xac,0x1e,0x20,0xc0,0x0,0xba,0x65,0x16,0xd6,0xb7,0xe7,0xf0,0xe6,0x0,
+ 0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/controls/separator.png
+ 0x0,0x0,0x5,0x21,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0x25,0x0,0x0,0x0,0x1f,0x8,0x6,0x0,0x0,0x0,0x60,0x7f,0x4,0xc8,
+ 0x0,0x0,0x0,0x4,0x67,0x41,0x4d,0x41,0x0,0x0,0xd6,0xd8,0xd4,0x4f,0x58,0x32,
+ 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,0x4,0xb3,0x49,0x44,0x41,0x54,0x78,0xda,0x62,
+ 0x64,0x60,0x60,0xe0,0x68,0x6c,0x6c,0xb4,0xe3,0xe0,0xe0,0x30,0x62,0x65,0x65,0x8d,
+ 0x60,0x64,0x64,0xd4,0xfc,0xff,0xff,0xff,0x85,0x3f,0x7f,0xfe,0x6c,0x7f,0xfc,0xf8,
+ 0xf1,0xaa,0x3b,0x77,0xee,0x3c,0xfc,0xf0,0xe1,0xc3,0xef,0x47,0x8f,0x1e,0xfd,0x7d,
+ 0xfa,0xf4,0xe9,0x7f,0xa0,0x7a,0x18,0xa6,0x19,0x0,0x8,0x20,0x66,0x20,0x66,0x3a,
+ 0x70,0xe0,0xc0,0x93,0x3d,0x7b,0xf6,0x9c,0x15,0x17,0x17,0xdf,0x5,0x74,0xd8,0x3e,
+ 0x20,0x16,0x62,0x63,0x63,0x8b,0x14,0x14,0x14,0x4c,0x95,0x97,0x97,0x57,0xe2,0xe3,
+ 0xe3,0x7b,0xf2,0xec,0xd9,0xb3,0xb7,0x4c,0x4c,0x4c,0x7f,0xbf,0x7e,0xfd,0xa,0xd2,
+ 0xc7,0x48,0x4b,0x47,0x1,0x4,0x10,0xc8,0x70,0x16,0x90,0xc3,0xa0,0x34,0x33,0x8c,
+ 0xb6,0xb5,0xb5,0x15,0xf4,0xf4,0xf4,0xc,0xe3,0xe4,0xe4,0xf4,0x7,0xf2,0x75,0xff,
+ 0xfd,0xfb,0xb7,0x6b,0xe5,0xca,0x95,0x71,0x9f,0x3e,0x7d,0xfa,0x6,0xe4,0xff,0xbd,
+ 0x71,0xe3,0x6,0xcd,0x42,0xc,0x20,0x80,0x98,0x91,0xc,0xfe,0x7,0x65,0x83,0xe8,
+ 0x7f,0xc0,0xe8,0xfa,0x71,0xfa,0xf4,0xe9,0x8b,0xef,0xdf,0xbf,0xdf,0xaa,0xa0,0xa0,
+ 0x70,0xf,0x18,0x72,0x9,0x9a,0x9a,0x9a,0xdc,0x40,0x70,0xfe,0xfb,0xf7,0xef,0x3f,
+ 0x25,0x24,0x24,0xfe,0x1,0xa3,0x93,0x26,0x21,0x5,0x10,0x40,0xcc,0x50,0xfa,0x3f,
+ 0xb2,0x83,0x60,0xe,0xfc,0xf9,0xf3,0xe7,0x7f,0xa0,0xe3,0x7e,0x9e,0x3a,0x75,0xea,
+ 0xa6,0x95,0x95,0xd5,0x5b,0xa0,0xc3,0x4a,0x81,0x51,0xfa,0xa,0x28,0x76,0x5,0x98,
+ 0x6,0xff,0x2,0x43,0xf2,0x3f,0xd0,0xe1,0x54,0x77,0x14,0x40,0x0,0x31,0xe2,0x10,
+ 0x63,0x44,0x8a,0x52,0x56,0x10,0xcd,0xcf,0xcf,0xcf,0x52,0x59,0x59,0x19,0xc7,0xce,
+ 0xce,0x5e,0x7,0xc,0x3d,0xcf,0x43,0x87,0xe,0x9d,0x7f,0xf1,0xe2,0xc5,0xcf,0xeb,
+ 0xd7,0xaf,0xff,0x3,0x66,0xe,0xaa,0x3a,0xa,0x20,0x80,0x18,0x9,0xc8,0x31,0x21,
+ 0xa5,0x33,0x16,0x60,0x28,0xb1,0x2,0x1d,0x96,0x7,0xcc,0x8,0x29,0xef,0xde,0xbd,
+ 0xf3,0x3e,0x7c,0xf8,0xf0,0xd,0xa8,0xc3,0xfe,0x53,0xd3,0x61,0x0,0x1,0xc4,0x84,
+ 0x47,0xe,0x16,0x9d,0x7f,0x81,0xf8,0x37,0x8,0x3,0x43,0xe8,0xd7,0xde,0xbd,0x7b,
+ 0x67,0x0,0x8b,0x8b,0x8d,0x42,0x42,0x42,0x5b,0x8c,0x8d,0x8d,0xe5,0x40,0x8e,0x6,
+ 0xa6,0x35,0x46,0x60,0x31,0x42,0x35,0x47,0x1,0x4,0x10,0x33,0x91,0xea,0x60,0x69,
+ 0x8e,0xf1,0xee,0xdd,0xbb,0x7f,0xbf,0x7d,0xfb,0x76,0x52,0x43,0x43,0xc3,0xc,0x58,
+ 0x54,0x38,0x7e,0xfc,0xf8,0x71,0x17,0x30,0xad,0xfd,0x4c,0x4c,0x4c,0xa4,0x5a,0x51,
+ 0x1,0x10,0x40,0xcc,0x64,0x44,0x35,0xd3,0xeb,0xd7,0xaf,0x19,0x74,0x74,0x74,0x1e,
+ 0xf1,0xf2,0xf2,0x96,0x8b,0x8a,0x8a,0x5e,0x6,0xe6,0xc6,0x47,0x5f,0xbe,0x7c,0xf9,
+ 0xd,0x2c,0x64,0xa9,0x12,0x52,0x0,0x1,0xc4,0x44,0x42,0x48,0xc1,0x72,0xe5,0xdf,
+ 0x1f,0x3f,0x7e,0xfc,0xed,0xea,0xea,0xba,0xf0,0xfb,0xf7,0xef,0x4d,0x40,0x87,0x35,
+ 0xab,0xa9,0xa9,0x69,0x2,0xc5,0xd9,0x49,0x30,0xf,0x2f,0x0,0x8,0x20,0x66,0x32,
+ 0x33,0x7,0x38,0x3,0x0,0xb,0xd2,0xd3,0xc0,0x10,0xcb,0x1,0x16,0xb0,0x6c,0x40,
+ 0xf6,0x51,0x60,0x95,0xf4,0x93,0x1a,0x5,0x2a,0x40,0x0,0x91,0xea,0xb3,0xff,0xd0,
+ 0x84,0xf,0xc6,0x27,0x4f,0x9e,0xfc,0xc,0x8c,0xba,0x59,0x40,0x76,0x38,0xd0,0x71,
+ 0xca,0x2,0x2,0x2,0x4c,0x48,0x45,0xa,0xd9,0x0,0x20,0x80,0x98,0x29,0x28,0x4a,
+ 0x40,0xe,0x0,0x56,0x87,0x4c,0xf7,0x81,0xd1,0xe7,0xcf,0xc3,0xc3,0xa3,0x2,0xcc,
+ 0x91,0x87,0x2e,0x5c,0xb8,0xf0,0x99,0xd2,0x90,0x2,0x8,0x20,0x66,0xa,0xca,0x36,
+ 0xb0,0xc3,0x9e,0x3c,0x79,0xf2,0x1b,0x58,0x24,0xdc,0x2,0xe6,0xc4,0x62,0x20,0x3e,
+ 0xb,0x2c,0xbf,0xee,0x2,0xcb,0xae,0xbf,0x94,0x84,0x16,0x40,0x0,0x91,0x93,0x30,
+ 0x61,0x89,0xfe,0xf,0xa8,0xec,0xfa,0x5,0x4,0xf3,0xe6,0xcd,0x3b,0xe,0x4c,0xf4,
+ 0x3b,0x80,0xf5,0x62,0xd,0xb0,0x4e,0xe4,0x2,0x39,0xe8,0x3f,0x5,0x5,0x17,0x40,
+ 0x0,0x91,0x9b,0x5b,0xfe,0x23,0x17,0xaa,0xc0,0xd0,0x1,0xd5,0x8f,0x2d,0xc0,0x96,
+ 0x84,0x8c,0xd,0x10,0x0,0xd3,0x16,0xb,0xb0,0x84,0x67,0x22,0x37,0xb4,0x0,0x2,
+ 0x88,0x99,0xa,0x39,0x18,0x1c,0x8d,0xaf,0x5e,0xbd,0xfa,0x69,0x6d,0x6d,0xed,0x8,
+ 0xac,0x1b,0xf5,0x84,0x85,0x85,0xf7,0x9e,0x3f,0x7f,0xfe,0x3b,0xb9,0xd,0x42,0x80,
+ 0x0,0x62,0x66,0xa0,0xe,0x60,0x2,0xd6,0x87,0x4c,0xc0,0x52,0xfe,0x1,0xb0,0xdc,
+ 0x2a,0x1,0x56,0xde,0xd7,0x81,0x85,0xea,0xc3,0x2b,0x57,0xae,0xfc,0x24,0xc7,0x30,
+ 0x80,0x0,0xa2,0x56,0x48,0x31,0x2,0x9b,0x39,0xc,0x40,0x47,0xbc,0x2,0xc6,0x9e,
+ 0x8,0x30,0xb4,0x12,0x80,0x8e,0xdb,0x5,0x4c,0xf0,0xef,0xde,0xbc,0x79,0xf3,0x8f,
+ 0xd4,0xd0,0x2,0x8,0x20,0x4a,0x4b,0x60,0xe4,0x4a,0xfb,0x2f,0xb0,0x0,0xfd,0x75,
+ 0xe9,0xd2,0xa5,0xc9,0x20,0xcf,0x72,0x71,0x71,0x85,0x2,0x9b,0xd2,0x1c,0xe4,0x94,
+ 0x5b,0x0,0x1,0x44,0x8d,0x6a,0x1,0x96,0xe8,0x41,0xb9,0xf1,0xcf,0xe6,0xcd,0x9b,
+ 0x5f,0x0,0xeb,0xc1,0x36,0x60,0x74,0xe6,0x2,0x1b,0x86,0xba,0xd0,0x66,0xf,0x49,
+ 0xe,0x3,0x8,0x20,0x6a,0x39,0xa,0x56,0x44,0xfc,0x1,0xb6,0x1a,0x7e,0x4d,0x9e,
+ 0x3c,0x79,0xe3,0xdf,0xbf,0x7f,0x77,0x3,0xcb,0xad,0x6e,0x60,0x34,0xb2,0x21,0x25,
+ 0x13,0xa2,0x1c,0x6,0x10,0x40,0xd4,0x4a,0xe8,0x28,0xe9,0xb,0xd4,0xe3,0x1,0x46,
+ 0xe5,0x1,0x60,0xd5,0x53,0xb,0xc,0xad,0x4f,0xc0,0x9e,0xd2,0x79,0xa4,0x3e,0x0,
+ 0x41,0x0,0x10,0x40,0xd4,0x76,0x14,0x3c,0x6,0x80,0x25,0xfd,0x5f,0xa0,0x83,0xde,
+ 0x1,0xab,0x9f,0x4c,0x20,0x7d,0x7e,0xff,0xfe,0xfd,0xcf,0x89,0x75,0x14,0x40,0x0,
+ 0x31,0x51,0xd1,0x21,0x28,0x89,0x1e,0x84,0xeb,0xeb,0xeb,0x97,0x1,0x2b,0xec,0xf9,
+ 0xc0,0x22,0x62,0x22,0xb0,0x11,0x28,0x8d,0xd4,0x9d,0xc3,0xdb,0x52,0x5,0x8,0x20,
+ 0x26,0x2a,0x87,0x10,0x4a,0xfa,0x2,0x39,0x6c,0xdb,0xb6,0x6d,0x6b,0x81,0x25,0x3d,
+ 0x83,0x9e,0x9e,0xde,0xc1,0xec,0xec,0x6c,0x6d,0x68,0x47,0x84,0x19,0xa9,0xc4,0xc7,
+ 0x48,0x67,0x0,0x1,0x44,0xab,0xe8,0x83,0xa7,0x31,0x60,0x77,0xec,0x37,0xb0,0x98,
+ 0x58,0x69,0x69,0x69,0xa9,0xe,0x2c,0xe9,0xdb,0xcc,0xcd,0xcd,0x9f,0x1e,0x3c,0x78,
+ 0xf0,0x26,0x5a,0x1a,0x43,0xae,0x92,0x18,0x1,0x2,0x88,0x96,0x8e,0x82,0xc7,0xf,
+ 0xb0,0x88,0x60,0x0,0xd6,0x8f,0xc7,0xb4,0xb5,0xb5,0x19,0x81,0xe5,0x57,0xb5,0xab,
+ 0xab,0xab,0x11,0xb0,0xf4,0x7f,0x2,0x6c,0x8f,0xbd,0xc4,0x92,0x1,0x98,0x0,0x2,
+ 0x88,0x96,0x63,0x2,0xb0,0x36,0x17,0x2b,0x14,0xb3,0x69,0x69,0x69,0xf1,0x44,0x46,
+ 0x46,0x7a,0x1,0x13,0x7f,0x38,0x90,0x6f,0x0,0x4c,0x57,0xf7,0x81,0x69,0xae,0xfe,
+ 0xe2,0xc5,0x8b,0x7,0x56,0xad,0x5a,0xf5,0x19,0xd4,0xb2,0x0,0x46,0x2b,0x23,0x40,
+ 0x0,0x31,0xd2,0x3a,0xfa,0xd0,0x1d,0xa6,0xaf,0xaf,0xcf,0x3,0xac,0x8a,0x94,0x80,
+ 0x4d,0x1c,0x75,0x60,0x19,0xe6,0xc,0x14,0xd3,0x3,0xba,0x45,0x11,0x98,0xee,0x8e,
+ 0x2,0x8b,0x92,0x36,0x60,0x4b,0xe8,0x6,0x40,0x80,0x1,0x0,0x44,0xee,0xf0,0x97,
+ 0xfd,0x3e,0x4d,0x44,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+
+ // /home/matthew/pencil_dev/icons/controls/play.png
+ 0x0,0x0,0x1,0x30,
+ 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,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,0xd8,
+ 0xeb,0xf5,0x1c,0x14,0xaa,0x0,0x0,0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x6d,
+ 0x98,0x0,0x0,0x73,0x8e,0x0,0x0,0xea,0x48,0x0,0x0,0x86,0x0,0x0,0x0,0x77,
+ 0xef,0x0,0x0,0xd0,0xf0,0x0,0x0,0x32,0xf7,0x0,0x0,0x1c,0x74,0xb6,0xd2,0x6c,
+ 0xb,0x0,0x0,0x0,0xa6,0x49,0x44,0x41,0x54,0x78,0xda,0x62,0xfc,0xff,0xff,0x3f,
+ 0x3,0x25,0x0,0x20,0x80,0x18,0x29,0x35,0x0,0x20,0x80,0x28,0x36,0x0,0x20,0x80,
+ 0x30,0xc,0x48,0x4f,0x4f,0x7,0xb,0xcc,0x9c,0x39,0x93,0x91,0x18,0x3,0x0,0x2,
+ 0x8,0xc3,0x0,0x46,0x46,0xc6,0xff,0x8e,0x8e,0x8e,0xc,0xaa,0xaa,0xaa,0xc,0xc4,
+ 0x18,0x4,0x10,0x40,0x58,0xd,0x80,0xb1,0x89,0x31,0x8,0x20,0x80,0xf0,0x1a,0x40,
+ 0x8c,0x41,0x0,0x1,0x44,0x94,0x1,0xf8,0xc,0x2,0x8,0x20,0x92,0xc,0xc0,0x66,
+ 0x10,0x40,0x0,0x31,0x91,0x13,0x75,0xfb,0xf7,0xef,0x87,0xb3,0x1,0x2,0x88,0x1,
+ 0xe4,0x2,0x64,0xc,0x4,0xff,0xf1,0x61,0xa0,0xed,0xff,0xd3,0xd2,0xd2,0xfe,0xc3,
+ 0xd4,0x3,0x4,0x10,0xd1,0x5e,0x0,0x6a,0xc2,0x1a,0x88,0x0,0x1,0x44,0xd0,0x5,
+ 0xe8,0x36,0xa2,0x63,0x80,0x0,0xc2,0xe9,0x2,0x9c,0x36,0xa2,0x1,0x80,0x0,0xa2,
+ 0x38,0x29,0x3,0x4,0x10,0xc5,0x99,0x9,0x20,0xc0,0x0,0xd,0xfc,0x8f,0x4,0x89,
+ 0x14,0xb4,0x97,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/controls/sound.png
+ 0x0,0x0,0x1,0x7,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0xe,0x0,0x0,0x0,0xd,0x8,0x6,0x0,0x0,0x0,0x99,0xdc,0x5f,0x7f,
+ 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,0xd8,
+ 0xeb,0xf5,0x1c,0x14,0xaa,0x0,0x0,0x0,0x20,0x63,0x48,0x52,0x4d,0x0,0x0,0x6d,
+ 0x98,0x0,0x0,0x73,0x8e,0x0,0x0,0xea,0x48,0x0,0x0,0x86,0x0,0x0,0x0,0x77,
+ 0xef,0x0,0x0,0xd0,0xf0,0x0,0x0,0x32,0xf7,0x0,0x0,0x1c,0x74,0xb6,0xd2,0x6c,
+ 0xb,0x0,0x0,0x0,0x7d,0x49,0x44,0x41,0x54,0x78,0xda,0x62,0xfc,0xff,0xff,0x3f,
+ 0x3,0x36,0xc0,0xc8,0xc8,0x8,0x96,0x0,0xca,0x33,0xa2,0x8b,0x83,0xc4,0x0,0x2,
+ 0x88,0x9,0x9f,0x26,0x6c,0xe2,0x30,0x83,0x0,0x2,0x88,0x89,0x1c,0x4d,0x20,0x0,
+ 0x10,0x40,0x4c,0xc4,0x68,0xc2,0xe6,0x64,0x80,0x0,0x62,0xc1,0xa7,0x18,0x1f,0x0,
+ 0x8,0x20,0x26,0x6,0x32,0x1,0x40,0x0,0xb1,0x90,0xa2,0x18,0xd9,0x75,0x0,0x1,
+ 0x44,0x92,0x46,0x64,0x7f,0x2,0x4,0x10,0xd9,0x4e,0x5,0x8,0x20,0x16,0x64,0x53,
+ 0x48,0x9,0x28,0x80,0x0,0x62,0xc2,0x17,0xe4,0xf8,0xa2,0xa,0x20,0x80,0x98,0x8,
+ 0xc5,0x17,0xb2,0x38,0xb2,0x66,0x80,0x0,0x62,0x22,0x26,0xb2,0xb1,0x69,0x6,0x8,
+ 0x30,0x0,0x70,0x5d,0x34,0x21,0xfa,0xec,0x43,0xcb,0x0,0x0,0x0,0x0,0x49,0x45,
+ 0x4e,0x44,0xae,0x42,0x60,0x82,
+ // /home/matthew/pencil_dev/icons/controls/loop.png
+ 0x0,0x0,0x0,0x96,
+ 0x89,
+ 0x50,0x4e,0x47,0xd,0xa,0x1a,0xa,0x0,0x0,0x0,0xd,0x49,0x48,0x44,0x52,0x0,
+ 0x0,0x0,0xc,0x0,0x0,0x0,0xc,0x8,0x6,0x0,0x0,0x0,0x56,0x75,0x5c,0xe7,
+ 0x0,0x0,0x0,0x5d,0x49,0x44,0x41,0x54,0x28,0x91,0x9d,0x91,0x51,0xa,0xc0,0x20,
+ 0xc,0x43,0x5b,0xd9,0x21,0x73,0x35,0x6f,0x90,0x5b,0xf4,0x68,0xee,0xc7,0x4a,0x99,
+ 0x43,0xb2,0x3d,0x28,0x58,0x4c,0x9b,0x88,0x66,0x5,0x0,0xc3,0x54,0xa6,0x58,0x1b,
+ 0x28,0xe2,0x63,0x1,0x18,0xb2,0x38,0xcb,0xd3,0x81,0x64,0xba,0x6d,0x9,0xf2,0x4e,
+ 0x7e,0x43,0xef,0x7d,0x39,0xb4,0xb2,0xc5,0xdf,0xb6,0x3f,0x69,0xb5,0x21,0xe9,0x9f,
+ 0x6,0x14,0xae,0x99,0xef,0x48,0x44,0xac,0xb3,0x9b,0xfa,0x59,0x7f,0x22,0x1,0xb0,
+ 0x1b,0x39,0x41,0x39,0xf2,0xf,0x61,0x19,0x1f,0x0,0x0,0x0,0x0,0x49,0x45,0x4e,
+ 0x44,0xae,0x42,0x60,0x82,
+
+};
+
+static const unsigned char qt_resource_name[] = {
+ // icons
+ 0x0,0x5,
+ 0x0,0x6f,0xa6,0x53,
+ 0x0,0x69,
+ 0x0,0x63,0x0,0x6f,0x0,0x6e,0x0,0x73,
+ // background
+ 0x0,0xa,
+ 0x1,0xe4,0x67,0x4,
+ 0x0,0x62,
+ 0x0,0x61,0x0,0x63,0x0,0x6b,0x0,0x67,0x0,0x72,0x0,0x6f,0x0,0x75,0x0,0x6e,0x0,0x64,
+ // weave.jpg
+ 0x0,0x9,
+ 0x8,0xc8,0xaa,0x7,
+ 0x0,0x77,
+ 0x0,0x65,0x0,0x61,0x0,0x76,0x0,0x65,0x0,0x2e,0x0,0x6a,0x0,0x70,0x0,0x67,
+ // dots.png
+ 0x0,0x8,
+ 0x6,0xb6,0x5a,0x27,
+ 0x0,0x64,
+ 0x0,0x6f,0x0,0x74,0x0,0x73,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // select.png
+ 0x0,0xa,
+ 0xb,0xa8,0x6f,0x7,
+ 0x0,0x73,
+ 0x0,0x65,0x0,0x6c,0x0,0x65,0x0,0x63,0x0,0x74,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // pen.png
+ 0x0,0x7,
+ 0x6,0xc1,0x57,0xa7,
+ 0x0,0x70,
+ 0x0,0x65,0x0,0x6e,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // brush.png
+ 0x0,0x9,
+ 0xc,0x9b,0x84,0x67,
+ 0x0,0x62,
+ 0x0,0x72,0x0,0x75,0x0,0x73,0x0,0x68,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // bucketTool.png
+ 0x0,0xe,
+ 0x5,0x1c,0xde,0x47,
+ 0x0,0x62,
+ 0x0,0x75,0x0,0x63,0x0,0x6b,0x0,0x65,0x0,0x74,0x0,0x54,0x0,0x6f,0x0,0x6f,0x0,0x6c,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // add.png
+ 0x0,0x7,
+ 0x7,0xa7,0x57,0x87,
+ 0x0,0x61,
+ 0x0,0x64,0x0,0x64,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // polyline.png
+ 0x0,0xc,
+ 0x2,0xac,0xd7,0x7,
+ 0x0,0x70,
+ 0x0,0x6f,0x0,0x6c,0x0,0x79,0x0,0x6c,0x0,0x69,0x0,0x6e,0x0,0x65,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // arrow.png
+ 0x0,0x9,
+ 0x9,0x6a,0x86,0x67,
+ 0x0,0x61,
+ 0x0,0x72,0x0,0x72,0x0,0x6f,0x0,0x77,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // logo.png
+ 0x0,0x8,
+ 0x5,0xe2,0x59,0x27,
+ 0x0,0x6c,
+ 0x0,0x6f,0x0,0x67,0x0,0x6f,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // layer-sound.png
+ 0x0,0xf,
+ 0x7,0xcc,0x9,0xa7,
+ 0x0,0x6c,
+ 0x0,0x61,0x0,0x79,0x0,0x65,0x0,0x72,0x0,0x2d,0x0,0x73,0x0,0x6f,0x0,0x75,0x0,0x6e,0x0,0x64,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // controls
+ 0x0,0x8,
+ 0x6,0x5b,0x9b,0x73,
+ 0x0,0x63,
+ 0x0,0x6f,0x0,0x6e,0x0,0x74,0x0,0x72,0x0,0x6f,0x0,0x6c,0x0,0x73,
+ // eraser2.png
+ 0x0,0xb,
+ 0xc,0x8c,0x46,0x67,
+ 0x0,0x65,
+ 0x0,0x72,0x0,0x61,0x0,0x73,0x0,0x65,0x0,0x72,0x0,0x32,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // move.png
+ 0x0,0x8,
+ 0x6,0xc8,0x59,0xc7,
+ 0x0,0x6d,
+ 0x0,0x6f,0x0,0x76,0x0,0x65,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // onionStraightAhead.png
+ 0x0,0x16,
+ 0xc,0x19,0x91,0x47,
+ 0x0,0x6f,
+ 0x0,0x6e,0x0,0x69,0x0,0x6f,0x0,0x6e,0x0,0x53,0x0,0x74,0x0,0x72,0x0,0x61,0x0,0x69,0x0,0x67,0x0,0x68,0x0,0x74,0x0,0x41,0x0,0x68,0x0,0x65,0x0,0x61,
+ 0x0,0x64,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // prefs-files.png
+ 0x0,0xf,
+ 0x5,0x6b,0xff,0x67,
+ 0x0,0x70,
+ 0x0,0x72,0x0,0x65,0x0,0x66,0x0,0x73,0x0,0x2d,0x0,0x66,0x0,0x69,0x0,0x6c,0x0,0x65,0x0,0x73,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // icon.png
+ 0x0,0x8,
+ 0xa,0x61,0x5a,0xa7,
+ 0x0,0x69,
+ 0x0,0x63,0x0,0x6f,0x0,0x6e,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // prefstimeline.png
+ 0x0,0x11,
+ 0xc,0xc2,0x8,0x67,
+ 0x0,0x70,
+ 0x0,0x72,0x0,0x65,0x0,0x66,0x0,0x73,0x0,0x74,0x0,0x69,0x0,0x6d,0x0,0x65,0x0,0x6c,0x0,0x69,0x0,0x6e,0x0,0x65,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+
+ // aqua.png
+ 0x0,0x8,
+ 0x8,0xb4,0x5a,0x47,
+ 0x0,0x61,
+ 0x0,0x71,0x0,0x75,0x0,0x61,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // eyedropper.png
+ 0x0,0xe,
+ 0x9,0xb2,0x60,0x87,
+ 0x0,0x65,
+ 0x0,0x79,0x0,0x65,0x0,0x64,0x0,0x72,0x0,0x6f,0x0,0x70,0x0,0x70,0x0,0x65,0x0,0x72,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // smudge.png
+ 0x0,0xa,
+ 0xa,0xdb,0x1e,0x27,
+ 0x0,0x73,
+ 0x0,0x6d,0x0,0x75,0x0,0x64,0x0,0x67,0x0,0x65,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // layer-vector.png
+ 0x0,0x10,
+ 0x3,0xd0,0x63,0xe7,
+ 0x0,0x6c,
+ 0x0,0x61,0x0,0x79,0x0,0x65,0x0,0x72,0x0,0x2d,0x0,0x76,0x0,0x65,0x0,0x63,0x0,0x74,0x0,0x6f,0x0,0x72,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // magnify.png
+ 0x0,0xb,
+ 0xf,0x3e,0xab,0xc7,
+ 0x0,0x6d,
+ 0x0,0x61,0x0,0x67,0x0,0x6e,0x0,0x69,0x0,0x66,0x0,0x79,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // pencil2.png
+ 0x0,0xb,
+ 0xf,0x18,0xde,0x67,
+ 0x0,0x70,
+ 0x0,0x65,0x0,0x6e,0x0,0x63,0x0,0x69,0x0,0x6c,0x0,0x32,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // thinlines5.png
+ 0x0,0xe,
+ 0x2,0x6e,0x11,0x67,
+ 0x0,0x74,
+ 0x0,0x68,0x0,0x69,0x0,0x6e,0x0,0x6c,0x0,0x69,0x0,0x6e,0x0,0x65,0x0,0x73,0x0,0x35,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // layer-bitmap.png
+ 0x0,0x10,
+ 0xb,0x38,0xd5,0xc7,
+ 0x0,0x6c,
+ 0x0,0x61,0x0,0x79,0x0,0x65,0x0,0x72,0x0,0x2d,0x0,0x62,0x0,0x69,0x0,0x74,0x0,0x6d,0x0,0x61,0x0,0x70,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // onionInbetween.png
+ 0x0,0x12,
+ 0xe,0xc4,0xd8,0x67,
+ 0x0,0x6f,
+ 0x0,0x6e,0x0,0x69,0x0,0x6f,0x0,0x6e,0x0,0x49,0x0,0x6e,0x0,0x62,0x0,0x65,0x0,0x74,0x0,0x77,0x0,0x65,0x0,0x65,0x0,0x6e,0x0,0x2e,0x0,0x70,0x0,0x6e,
+ 0x0,0x67,
+ // house.png
+ 0x0,0x9,
+ 0xc,0x98,0x89,0x87,
+ 0x0,0x68,
+ 0x0,0x6f,0x0,0x75,0x0,0x73,0x0,0x65,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // hand.png
+ 0x0,0x8,
+ 0x8,0x47,0x5a,0x87,
+ 0x0,0x68,
+ 0x0,0x61,0x0,0x6e,0x0,0x64,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // bucket.png
+ 0x0,0xa,
+ 0x1,0xca,0x60,0x7,
+ 0x0,0x62,
+ 0x0,0x75,0x0,0x63,0x0,0x6b,0x0,0x65,0x0,0x74,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // prefspencil.png
+ 0x0,0xf,
+ 0xe,0x4a,0x59,0xe7,
+ 0x0,0x70,
+ 0x0,0x72,0x0,0x65,0x0,0x66,0x0,0x73,0x0,0x70,0x0,0x65,0x0,0x6e,0x0,0x63,0x0,0x69,0x0,0x6c,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // clear.png
+ 0x0,0x9,
+ 0xb,0x85,0x83,0x7,
+ 0x0,0x63,
+ 0x0,0x6c,0x0,0x65,0x0,0x61,0x0,0x72,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // mirror.png
+ 0x0,0xa,
+ 0x9,0x6b,0xd6,0x67,
+ 0x0,0x6d,
+ 0x0,0x69,0x0,0x72,0x0,0x72,0x0,0x6f,0x0,0x72,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // layer-camera.png
+ 0x0,0x10,
+ 0x4,0x3b,0xc4,0xc7,
+ 0x0,0x6c,
+ 0x0,0x61,0x0,0x79,0x0,0x65,0x0,0x72,0x0,0x2d,0x0,0x63,0x0,0x61,0x0,0x6d,0x0,0x65,0x0,0x72,0x0,0x61,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // eraser.png
+ 0x0,0xa,
+ 0x9,0xc8,0xc6,0x47,
+ 0x0,0x65,
+ 0x0,0x72,0x0,0x61,0x0,0x73,0x0,0x65,0x0,0x72,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // outlines5.png
+ 0x0,0xd,
+ 0x1,0xf2,0x36,0x7,
+ 0x0,0x6f,
+ 0x0,0x75,0x0,0x74,0x0,0x6c,0x0,0x69,0x0,0x6e,0x0,0x65,0x0,0x73,0x0,0x35,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // remove.png
+ 0x0,0xa,
+ 0x6,0xcb,0x4f,0xc7,
+ 0x0,0x72,
+ 0x0,0x65,0x0,0x6d,0x0,0x6f,0x0,0x76,0x0,0x65,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // separator.png
+ 0x0,0xd,
+ 0x8,0xe8,0x47,0xa7,
+ 0x0,0x73,
+ 0x0,0x65,0x0,0x70,0x0,0x61,0x0,0x72,0x0,0x61,0x0,0x74,0x0,0x6f,0x0,0x72,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,
+ // sound.png
+ 0x0,0x9,
+ 0xc,0x47,0xa3,0x87,
+ 0x0,0x73,
+ 0x0,0x6f,0x0,0x75,0x0,0x6e,0x0,0x64,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+ // loop.png
+ 0x0,0x8,
+ 0x6,0x63,0x59,0x27,
+ 0x0,0x6c,
+ 0x0,0x6f,0x0,0x6f,0x0,0x70,0x0,0x2e,0x0,0x70,0x0,0x6e,0x0,0x67,
+
+};
+
+static const unsigned char qt_resource_struct[] = {
+ // :
+ 0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x1,
+ // :/icons
+ 0x0,0x0,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x23,0x0,0x0,0x0,0x5,
+ // :/background
+ 0x0,0x0,0x0,0x10,0x0,0x2,0x0,0x0,0x0,0x2,0x0,0x0,0x0,0x3,
+ // :/background/dots.png
+ 0x0,0x0,0x0,0x42,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x11,0x4,
+ // :/background/weave.jpg
+ 0x0,0x0,0x0,0x2a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x0,0x0,
+ // :/icons/bucket.png
+ 0x0,0x0,0x3,0x70,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0xf,0x2e,
+ // :/icons/outlines5.png
+ 0x0,0x0,0x4,0x20,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x47,0x70,
+ // :/icons/thinlines5.png
+ 0x0,0x0,0x2,0xd0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x1,0x1d,
+ // :/icons/polyline.png
+ 0x0,0x0,0x0,0xd4,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x21,0xe9,
+ // :/icons/layer-vector.png
+ 0x0,0x0,0x2,0x72,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xf8,0xb,
+ // :/icons/layer-camera.png
+ 0x0,0x0,0x3,0xe0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x3e,0x6f,
+ // :/icons/bucketTool.png
+ 0x0,0x0,0x0,0x9e,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x19,0x69,
+ // :/icons/prefs-files.png
+ 0x0,0x0,0x1,0xbe,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x93,0xbe,
+ // :/icons/logo.png
+ 0x0,0x0,0x1,0xa,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x25,0x82,
+ // :/icons/controls
+ 0x0,0x0,0x1,0x44,0x0,0x2,0x0,0x0,0x0,0x4,0x0,0x0,0x0,0x28,
+ // :/icons/pen.png
+ 0x0,0x0,0x0,0x72,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x13,0xb4,
+ // :/icons/move.png
+ 0x0,0x0,0x1,0x76,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x8e,0x8b,
+ // :/icons/remove.png
+ 0x0,0x0,0x4,0x40,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x49,0x4a,
+ // :/icons/add.png
+ 0x0,0x0,0x0,0xc0,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x1e,0xe2,
+ // :/icons/layer-sound.png
+ 0x0,0x0,0x1,0x20,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x88,0xac,
+ // :/icons/hand.png
+ 0x0,0x0,0x3,0x5a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0xb,0xa4,
+ // :/icons/aqua.png
+ 0x0,0x0,0x2,0x20,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xf1,0xc4,
+ // :/icons/arrow.png
+ 0x0,0x0,0x0,0xf2,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x23,0x9b,
+ // :/icons/mirror.png
+ 0x0,0x0,0x3,0xc6,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x3d,0x3c,
+ // :/icons/eyedropper.png
+ 0x0,0x0,0x2,0x36,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xf2,0xe6,
+ // :/icons/eraser.png
+ 0x0,0x0,0x4,0x6,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x42,0xe4,
+ // :/icons/icon.png
+ 0x0,0x0,0x1,0xe2,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xa4,0xa2,
+ // :/icons/smudge.png
+ 0x0,0x0,0x2,0x58,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xf5,0x2e,
+ // :/icons/layer-bitmap.png
+ 0x0,0x0,0x2,0xf2,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x2,0x76,
+ // :/icons/clear.png
+ 0x0,0x0,0x3,0xae,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x2f,0xbb,
+ // :/icons/select.png
+ 0x0,0x0,0x0,0x58,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x11,0xb4,
+ // :/icons/onionStraightAhead.png
+ 0x0,0x0,0x1,0x8c,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x8f,0xb5,
+ // :/icons/eraser2.png
+ 0x0,0x0,0x1,0x5a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x8c,0x22,
+ // :/icons/house.png
+ 0x0,0x0,0x3,0x42,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0xa,0xe7,
+ // :/icons/brush.png
+ 0x0,0x0,0x0,0x86,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0x16,0x7f,
+ // :/icons/prefstimeline.png
+ 0x0,0x0,0x1,0xf8,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xe4,0x88,
+ // :/icons/prefspencil.png
+ 0x0,0x0,0x3,0x8a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x16,0xa6,
+ // :/icons/onionInbetween.png
+ 0x0,0x0,0x3,0x18,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x6,0x2,
+ // :/icons/pencil2.png
+ 0x0,0x0,0x2,0xb4,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xfe,0x62,
+ // :/icons/magnify.png
+ 0x0,0x0,0x2,0x98,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x0,0xfb,0x66,
+ // :/icons/controls/play.png
+ 0x0,0x0,0x4,0x7a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x51,0xf,
+ // :/icons/controls/loop.png
+ 0x0,0x0,0x4,0xa8,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x53,0x4e,
+ // :/icons/controls/separator.png
+ 0x0,0x0,0x4,0x5a,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x4b,0xea,
+ // :/icons/controls/sound.png
+ 0x0,0x0,0x4,0x90,0x0,0x0,0x0,0x0,0x0,0x1,0x0,0x1,0x52,0x43,
+
+};
+
+QT_BEGIN_NAMESPACE
+
+extern bool qRegisterResourceData
+ (int, const unsigned char *, const unsigned char *, const unsigned char *);
+
+extern bool qUnregisterResourceData
+ (int, const unsigned char *, const unsigned char *, const unsigned char *);
+
+QT_END_NAMESPACE
+
+
+int QT_MANGLE_NAMESPACE(qInitResources_pencil)()
+{
+ QT_PREPEND_NAMESPACE(qRegisterResourceData)
+ (0x01, qt_resource_struct, qt_resource_name, qt_resource_data);
+ return 1;
+}
+
+Q_CONSTRUCTOR_FUNCTION(QT_MANGLE_NAMESPACE(qInitResources_pencil))
+
+int QT_MANGLE_NAMESPACE(qCleanupResources_pencil)()
+{
+ QT_PREPEND_NAMESPACE(qUnregisterResourceData)
+ (0x01, qt_resource_struct, qt_resource_name, qt_resource_data);
+ return 1;
+}
+
+Q_DESTRUCTOR_FUNCTION(QT_MANGLE_NAMESPACE(qCleanupResources_pencil))
+
Binary files pencil_backup/qrc_pencil.o and pencil_dev/qrc_pencil.o differ
Binary files pencil_backup/scribblearea.o and pencil_dev/scribblearea.o differ
diff -rupN pencil_backup/src/external/flash/flash.cpp~ pencil_dev/src/external/flash/flash.cpp~
--- pencil_backup/src/external/flash/flash.cpp~ 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/external/flash/flash.cpp~ 2009-09-22 20:27:34.000000000 -0500
@@ -0,0 +1,234 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+*/
+#include <QtCore>
+#include <QtGui>
+#include <QtDebug>
+
+#include "flash.h"
+
+#include "object.h"
+#include "beziercurve.h"
+#include "colourref.h"
+
+void Flash::exportFlash(Object* object, int startFrame, int endFrame, QMatrix view, QSize exportSize, QString filePath, int fps, int compression) {
+ qDebug() << "------Flash------" << compression;
+
+ // ************* Requires the MING Library ***************
+ Ming_init();
+
+ SWFMovie *movie = new SWFMovie();
+ movie->setDimension(exportSize.width(), exportSize.height());
+ movie->setRate(fps); // 12 frames per seconds
+
+ //SWFShape *shape = new SWFShape();
+ SWFSprite *objectSprite = new SWFSprite();
+
+ for(int i=0; i < object->getLayerCount(); i++) {
+ Layer* layer = object->getLayer(i);
+ if(layer->visible) {
+ // paints the bitmap images
+ if(layer->type == Layer::BITMAP) {
+ LayerBitmap* layerBitmap = (LayerBitmap*)layer;
+ SWFSprite *layerSprite = new SWFSprite();
+ SWFDisplayItem *previousItem = NULL;
+ for(int frameNumber = startFrame; frameNumber <= endFrame; frameNumber++) {
+ BitmapImage* bitmapImage = layerBitmap->getBitmapImageAtFrame(frameNumber);
+ if(bitmapImage != NULL) {
+ if(previousItem != NULL) layerSprite->remove( previousItem );
+ SWFSprite *imageSprite = new SWFSprite();
+ convertToSWFSprite( bitmapImage, object, view, imageSprite);
+ previousItem = layerSprite->add( imageSprite );
+ }
+ layerSprite->nextFrame();
+ }
+ //layerSprite->add( new SWFAction("stop();") );
+ //layerSprite->nextFrame();
+ objectSprite->add(layerSprite);
+ }
+ // paints the vector images
+ if(layer->type == Layer::VECTOR) {
+ LayerVector* layerVector = (LayerVector*)layer;
+ SWFSprite *layerSprite = new SWFSprite();
+ SWFDisplayItem *previousItem = NULL;
+ for(int frameNumber = startFrame; frameNumber <= endFrame; frameNumber++) {
+ VectorImage* vectorImage = layerVector->getVectorImageAtFrame(frameNumber);
+ if(vectorImage != NULL) {
+ if(previousItem != NULL) layerSprite->remove( previousItem );
+ SWFSprite *sprite = new SWFSprite();
+ convertToSWFSprite( vectorImage, object, view, sprite);
+ previousItem = layerSprite->add( sprite );
+ }
+ layerSprite->nextFrame();
+ }
+ //layerSprite->add( new SWFAction("stop();") );
+ //layerSprite->nextFrame();
+
+ objectSprite->add(layerSprite);
+ }
+ }
+ }
+
+ objectSprite->nextFrame();
+ //objectSprite->add( new SWFAction("stop();") );
+ //objectSprite->nextFrame();
+
+ movie->add(objectSprite);
+ movie->nextFrame();
+ movie->add( new SWFAction("gotoFrame(0);") );
+ movie->nextFrame();
+
+
+ QByteArray byteArray(filePath.toLatin1()); // is there any problem with accented characters?
+ movie->save(byteArray.data(), compression);
+
+ qDebug() << "done.";
+}
+
+
+void Flash::convertToSWFSprite( BitmapImage* bitmapImage, QMatrix view, SWFSprite* sprite ) {
+ QString tempPath = QDir::tempPath()+"penciltemp.png";
+ QByteArray tempPath2( tempPath.toLatin1());
+ bitmapImage->image->save( tempPath , "PNG");
+ SWFShape *shape = new SWFShape();
+ SWFFill* fill = shape->addBitmapFill( new SWFBitmap( tempPath2.data() ) );
+ fill->moveTo(static_cast<float>(bitmapImage->topLeft().x()), static_cast<float>(bitmapImage->topLeft().y()));
+ shape->setRightFill(fill);
+ shape->movePenTo(bitmapImage->left(), bitmapImage->top());
+ shape->drawLineTo(bitmapImage->right(), bitmapImage->top());
+ shape->drawLineTo(bitmapImage->right(), bitmapImage->bottom());
+ shape->drawLineTo(bitmapImage->left(), bitmapImage->bottom());
+ shape->drawLineTo(bitmapImage->left(), bitmapImage->top());
+ SWFDisplayItem *item = sprite->add( shape );
+ //item->setMatrix( view.m11(), view.m12(), view.m21(), view.m22(), view.dx(), view.dy() ); // this C++ method is not defined in mingpp.h version 0.3
+ SWFDisplayItem_setMatrix( item->item, view.m11(), view.m12(), view.m21(), view.m22(), view.dx(), view.dy() ); // we use the C function instead
+ sprite->nextFrame();
+}
+
+
+void Flash::convertToSWFSprite( VectorImage* vectorImage, Object* object, QMatrix view, SWFSprite* sprite ) {
+
+ // add filled areas
+ for(int i=0; i< vectorImage->area.size(); i++) {
+ QColor colour = object->getColour(vectorImage->area[i].getColourNumber()).colour;
+ QPainterPath path = view.map( vectorImage->area[i].path );
+ addShape(sprite, path, colour, colour, 0, true);
+ }
+ // add curves
+ for(int i=0; i< vectorImage->curve.size(); i++) {
+ if(!vectorImage->curve[i].isInvisible()) {
+ QColor colour = object->getColour(vectorImage->curve[i].getColourNumber()).colour;
+ if(vectorImage->curve[i].getVariableWidth()) {
+ QPainterPath path = view.map( vectorImage->curve[i].getStrokedPath() );
+ addShape(sprite, path, colour, colour, 0, true);
+ } else {
+ QPainterPath path = view.map( vectorImage->curve[i].getSimplePath() );
+ qreal width = vectorImage->curve[i].getWidth();
+ addShape(sprite, path, colour, colour, width, false);
+ }
+ }
+ }
+ sprite->nextFrame();
+}
+
+
+
+
+void Flash::addShape( SWFSprite* sprite, QPainterPath path, QColor fillColour, QColor borderColour, qreal width, bool fill ) {
+ SWFShape* shape = new SWFShape();
+ //float widthf = static_cast< float >(width);
+ if(width == 0.0) {
+ shape->setLine( static_cast<unsigned short>(width), borderColour.red(), borderColour.green(), borderColour.blue(), 0);
+ } else {
+ shape->setLine(static_cast<unsigned short>(width), borderColour.red(), borderColour.green(), borderColour.blue() );
+ }
+ if(fill) {
+ SWFFill* fill = shape->addSolidFill( fillColour.red(), fillColour.green(), fillColour.blue() );
+ shape->setRightFill(fill);
+ }
+
+ qreal memoP0x = 0.0;
+ qreal memoP0y = 0.0;
+ qreal memoP1x = 0.0;
+ qreal memoP1y = 0.0;
+ qreal memoP2x = 0.0;
+ qreal memoP2y = 0.0;
+ qreal memoP3x = 0.0;
+ qreal memoP3y = 0.0;
+ qreal memo = 0.0;
+ for(int i=0; i < path.elementCount() ; i++) {
+ QPainterPath::Element element = path.elementAt(i);
+ if( element.type == QPainterPath::CurveToDataElement ) {
+ memo++;
+ if(memo == 1) {
+ memoP2x = element.x;
+ memoP2y = element.y;
+ }
+ if(memo == 2) {
+ memoP3x = element.x;
+ memoP3y = element.y;
+ }
+ }
+ if( (element.type != QPainterPath::CurveToDataElement) || ((element.type == QPainterPath::CurveToDataElement) && (i==path.elementCount()-1)) ) {
+ if(memo == 1) {
+ shape->drawCurveTo( static_cast<float>(memoP1x), static_cast<float>(memoP1y), static_cast<float>(memoP2x), static_cast<float>(memoP2y) );
+ //---
+ memo = 0;
+ memoP0x = memoP2x;
+ memoP0y = memoP2y;
+ }
+ if(memo == 2) {
+ // now we need to approximate a cubic Bezier curve by 4 quadratic Bezier curves (Flash API uses only quadratic Bezier curves)
+ // we use the fixed midpoint method
+ // Excellent explanations here: http://timotheegroleau.com/Flash/articles/cubic_bezier_in_flash.htm
+ QPointF P0(memoP0x, memoP0y);
+ QPointF P1(memoP1x, memoP1y);
+ QPointF P2(memoP2x, memoP2y);
+ QPointF P3(memoP3x, memoP3y);
+
+ QPointF M2 = (P0+3*P1+3*P2+P3)/8;
+ QPointF C1 = (5*P0+3*P1)/8;
+ QPointF C4 = (5*P3+3*P2)/8;
+ QPointF C2 = (3*(P0+2*P1+P2)/4+M2)/4;
+ QPointF C3 = (3*(P1+2*P2+P3)/4+M2)/4;
+ QPointF M1 = 0.5*(C1+C2);
+ QPointF M3 = 0.5*(C3+C4);
+ shape->drawCurveTo( static_cast<float>(C1.x()), static_cast<float>(C1.y()), static_cast<float>(M1.x()), static_cast<float>(M1.y()) );
+ shape->drawCurveTo( static_cast<float>(C2.x()), static_cast<float>(C2.y()), static_cast<float>(M2.x()), static_cast<float>(M2.y()) );
+ shape->drawCurveTo( static_cast<float>(C3.x()), static_cast<float>(C3.y()), static_cast<float>(M3.x()), static_cast<float>(M3.y()) );
+ shape->drawCurveTo( static_cast<float>(C4.x()), static_cast<float>(C4.y()), static_cast<float>(P3.x()), static_cast<float>(P3.y()) );
+ //---
+ memo = 0;
+ memoP0x = memoP3x;
+ memoP0y = memoP3y;
+ }
+ }
+ if( element.type == QPainterPath::MoveToElement ) {
+ shape->movePenTo( static_cast<float>(element.x), static_cast<float>(element.y) );
+ memoP0x = element.x;
+ memoP0y = element.y;
+ }
+ if( element.type == QPainterPath::LineToElement ) {
+ shape->drawLineTo( static_cast<float>(element.x), static_cast<float>(element.y) );
+ memoP0x = element.x;
+ memoP0y = element.y;
+ }
+ if( element.type == QPainterPath::CurveToElement ) {
+ memoP1x = element.x;
+ memoP1y = element.y;
+ }
+ }
+ sprite->add( shape );
+}
diff -rupN pencil_backup/src/interface/editor.cpp pencil_dev/src/interface/editor.cpp
--- pencil_backup/src/interface/editor.cpp 2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/editor.cpp 2009-10-01 20:52:36.000000000 -0500
@@ -126,9 +126,11 @@ Editor::Editor(QMainWindow* parent)
connect(scribbleArea, SIGNAL(thinLinesChanged(bool)), toolSet, SLOT(changeThinLinesButton(bool)));
connect(scribbleArea, SIGNAL(outlinesChanged(bool)), toolSet, SLOT(changeOutlinesButton(bool)));
connect(toolSet, SIGNAL(mirrorClick()), this, SLOT(toggleMirror()));
- connect(toolSet, SIGNAL(prevClick()), scribbleArea, SLOT(onionPrevSlot()));
- connect(toolSet, SIGNAL(nextClick()), scribbleArea, SLOT(onionNextSlot()));
-
+
+ connect(toolSet, SIGNAL(onionStraightAheadClick()), scribbleArea, SLOT(onionChangeSlot1()));
+ connect(toolSet, SIGNAL(onionInbetweenClick()), scribbleArea, SLOT(onionChangeSlot2()));
+ connect(timeLine, SIGNAL(onionType(int)), scribbleArea, SLOT(onionChangeSlot(int)));
+
connect(this, SIGNAL(selectAll()), scribbleArea, SLOT(selectAll()));
connect(scribbleArea, SIGNAL(modification()), this, SLOT(modification()));
@@ -138,6 +140,13 @@ Editor::Editor(QMainWindow* parent)
connect(timeLine, SIGNAL(addKeyClick()), this, SLOT(addKey()));
connect(timeLine, SIGNAL(removeKeyClick()), this, SLOT(removeKey()));
+ connect(scribbleArea, SIGNAL(flipPrevious()), this, SLOT(getPrevKeyFlip()));
+ connect(scribbleArea, SIGNAL(flipNext()), this, SLOT(getNextKeyFlip()));
+
+ connect(scribbleArea, SIGNAL(onionShortCut()), timeLine, SIGNAL(onionKey()));
+ connect(scribbleArea, SIGNAL(straightAheadShortCut()), timeLine, SIGNAL(straightAheadKey()));
+ connect(scribbleArea, SIGNAL(inbetweenShortCut()), timeLine, SIGNAL(inbetweenKey()));
+
connect(timeLine, SIGNAL(newBitmapLayer()), this, SLOT(newBitmapLayer()));
connect(timeLine, SIGNAL(newVectorLayer()), this, SLOT(newVectorLayer()));
connect(timeLine, SIGNAL(newSoundLayer()), this, SLOT(newSoundLayer()));
@@ -148,9 +157,9 @@ Editor::Editor(QMainWindow* parent)
connect(timeLine, SIGNAL(loopClick()), this, SLOT(setLoop()));
connect(timeLine, SIGNAL(soundClick()), this, SLOT(setSound()));
connect(timeLine, SIGNAL(fpsClick(int)), this, SLOT(changeFps(int)));
-
- connect(timeLine, SIGNAL(onionPrevClick()), scribbleArea, SLOT(onionPrevSlot()));
- connect(timeLine, SIGNAL(onionNextClick()), scribbleArea, SLOT(onionNextSlot()));
+
+ connect(timeLine, SIGNAL(onionChecked()), scribbleArea, SLOT(onionIsOn()));
+ connect(timeLine, SIGNAL(onionType(int)), scribbleArea, SLOT(onionChangeSlot(int)));
connect(preferences, SIGNAL(windowOpacityChange(int)), mainWindow, SLOT(setOpacity(int)));
connect(preferences, SIGNAL(curveOpacityChange(int)), scribbleArea, SLOT(setCurveOpacity(int)));
@@ -171,7 +180,14 @@ Editor::Editor(QMainWindow* parent)
connect(preferences, SIGNAL(frameSizeChange(int)), timeLine, SIGNAL(frameSizeChange(int)));
connect(preferences, SIGNAL(labelChange(int)), timeLine, SIGNAL(labelChange(int)));
connect(preferences, SIGNAL(scrubChange(int)), timeLine, SIGNAL(scrubChange(int)));
-
+
+ connect(preferences, SIGNAL(onionOpacityChange(int)), scribbleArea, SLOT(onionOpacityLevel(int)));
+ connect(preferences, SIGNAL(onionStraightAheadChange(int)), scribbleArea, SLOT(StraightAheadLevel(int)));
+ connect(preferences, SIGNAL(onionPreviousPreviousChange(int)), scribbleArea, SLOT(onionPreviousPreviousLevel(int)));
+ connect(preferences, SIGNAL(onionPreviousChange(int)), scribbleArea, SLOT(onionPreviousLevel(int)));
+ connect(preferences, SIGNAL(onionNextChange(int)), scribbleArea, SLOT(onionNextLevel(int)));
+ connect(preferences, SIGNAL(onionNextNextChange(int)), scribbleArea, SLOT(onionNextNextLevel(int)));
+
connect(QApplication::clipboard(), SIGNAL(dataChanged()), this, SLOT(clipboardChanged()) );
framelay->addWidget(scribbleArea);
@@ -291,6 +307,7 @@ void Editor::applyWidth(qreal width)
setWidth(width);
Layer* layer = getCurrentLayer(); if(layer == NULL) return;
if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyWidthToSelection(width);
+ scribbleArea->setFocus();
}
void Editor::setFeather(qreal feather)
@@ -304,6 +321,7 @@ void Editor::applyFeather(qreal feather)
setFeather(feather);
Layer* layer = getCurrentLayer(); if(layer == NULL) return;
if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyFeatherToSelection(feather);
+ scribbleArea->setFocus();
}
void Editor::setOpacity(qreal opacity)
@@ -317,6 +335,7 @@ void Editor::applyOpacity(qreal opacity)
setOpacity(opacity);
Layer* layer = getCurrentLayer(); if(layer == NULL) return;
if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyOpacityToSelection(opacity);
+ scribbleArea->setFocus();
}
void Editor::setInvisibility(int invisibility)
@@ -330,6 +349,7 @@ void Editor::applyInvisibility(int invis
setInvisibility(invisibility);
Layer* layer = getCurrentLayer(); if(layer == NULL) return;
if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyInvisibilityToSelection(invisibility>0);
+ scribbleArea->setFocus();
}
void Editor::setPreserveAlpha(int preserveAlpha)
@@ -341,6 +361,7 @@ void Editor::setPreserveAlpha(int preser
void Editor::applyPreserveAlpha(int preserveAlpha)
{
setPreserveAlpha(preserveAlpha);
+ scribbleArea->setFocus();
}
void Editor::setFollowContour(int followContour)
@@ -352,6 +373,7 @@ void Editor::setFollowContour(int follow
void Editor::applyFollowContour(int followContour)
{
setFollowContour(followContour);
+ scribbleArea->setFocus();
}
void Editor::setPressure(int pressure)
@@ -365,6 +387,7 @@ void Editor::applyPressure(int pressure)
setPressure(pressure);
Layer* layer = getCurrentLayer(); if(layer == NULL) return;
if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyVariableWidthToSelection(pressure>0);
+ scribbleArea->setFocus();
}
void Editor::selectColour(int i)
@@ -685,6 +708,7 @@ void Editor::newBitmapLayer() {
timeLine->updateLayerNumber( object->getLayerCount() );
setCurrentLayer( object->getLayerCount()-1 );
}
+ scribbleArea->setFocus();
}
void Editor::newVectorLayer() {
@@ -693,6 +717,7 @@ void Editor::newVectorLayer() {
timeLine->updateLayerNumber( object->getLayerCount() );
setCurrentLayer( object->getLayerCount()-1 );
}
+ scribbleArea->setFocus();
}
void Editor::newSoundLayer() {
@@ -701,6 +726,7 @@ void Editor::newSoundLayer() {
timeLine->updateLayerNumber( object->getLayerCount() );
setCurrentLayer( object->getLayerCount()-1 );
}
+ scribbleArea->setFocus();
}
void Editor::newCameraLayer() {
@@ -709,11 +735,12 @@ void Editor::newCameraLayer() {
timeLine->updateLayerNumber( object->getLayerCount() );
setCurrentLayer( object->getLayerCount()-1 );
}
+ scribbleArea->setFocus();
}
void Editor::deleteCurrentLayer() {
int ret = QMessageBox::warning(this, tr("Warning"),
- tr("Are yo sure you want to delete the selected layer?"),
+ tr("Are you sure you want to delete the selected layer?"),
QMessageBox::Ok | QMessageBox::Cancel,
QMessageBox::Ok);
if(ret == QMessageBox::Ok) {
@@ -723,12 +750,14 @@ void Editor::deleteCurrentLayer() {
//timeLine->update();
scribbleArea->updateAllFrames();
}
+ scribbleArea->setFocus();
}
void Editor::toggleMirror() {
object->toggleMirror();
scribbleArea->toggleMirror();
+ scribbleArea->setFocus();
}
void Editor::toggleShowAllLayers() {
@@ -747,6 +776,7 @@ void Editor::showPalette() {
} else {
palette->show();
}
+ scribbleArea->setFocus();
}
void Editor::saveLength(QString x) {
@@ -1430,6 +1460,7 @@ void Editor::nextLayer() {
void Editor::addKey() {
addKey(currentLayer, currentFrame);
+ scribbleArea->setFocus();
}
void Editor::addKey(int layerNumber, int &frameNumber) {
@@ -1459,6 +1490,7 @@ void Editor::removeKey() {
if(layer->type == Layer::CAMERA) ((LayerCamera*)layer)->removeImageAtFrame(currentFrame);
timeLine->updateContent();
scribbleArea->updateFrame();
+ scribbleArea->setFocus();
}
}
@@ -1483,7 +1515,68 @@ void Editor::removeFrame(int frameNumber
scribbleArea->updateFrame();
timeLine->update();
}
+///*
+void Editor::getPrevKeyFlip() {
+ currentFrame = getPrevKey(currentFrame);
+ timeLine->update();
+ scribbleArea->updateFrame();
+}
+
+int Editor::getPrevKey(int frameNumber) {
+ int keyInQuestion = frameNumber;
+ bool nothingFound = true;
+ Layer* layer;
+ if(object->getLayer(currentLayer) != NULL) layer = object->getLayer(currentLayer);
+ else return NULL;
+ while(nothingFound) {
+ --keyInQuestion;
+ if(keyInQuestion == 0) keyInQuestion = object->getLayer(currentLayer)->getMaxFrame();
+ switch(layer->type) {
+ case Layer::BITMAP:
+ if(((LayerBitmap*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;
+ break;
+ case Layer::VECTOR:
+ if(((LayerVector*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;
+ break;
+ case Layer::CAMERA:
+ if(((LayerCamera*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;
+ break;
+ }
+ }
+ return keyInQuestion;
+}
+
+void Editor::getNextKeyFlip() {
+ currentFrame = getNextKey(currentFrame);
+ timeLine->update();
+ scribbleArea->updateFrame();
+}
+
+int Editor::getNextKey(int frameNumber) {
+ int keyInQuestion = frameNumber;
+ bool nothingFound = true;
+ Layer* layer;
+ if(object->getLayer(currentLayer) != NULL) layer = object->getLayer(currentLayer);
+ else return NULL;
+ while(nothingFound) {
+ ++keyInQuestion;
+ if(keyInQuestion > object->getLayer(currentLayer)->getMaxFrame()) keyInQuestion = 1;
+ switch(layer->type) {
+ case Layer::BITMAP:
+ if(((LayerBitmap*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;
+ break;
+ case Layer::VECTOR:
+ if(((LayerVector*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;
+ break;
+ case Layer::CAMERA:
+ if(((LayerCamera*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;
+ break;
+ }
+ }
+ return keyInQuestion;
+}
+//*/
int Editor::getLastIndexAtFrame(int frameNumber) {
int position = -1;
int index = -1;
@@ -1521,6 +1614,7 @@ void Editor::play() {
startOrStop();
}
}
+ scribbleArea->setFocus();
}
void Editor::startOrStop() {
@@ -1541,6 +1635,7 @@ void Editor::playNextFrame() {
} else {
play();
}
+ scribbleArea->setFocus();
}
void Editor::changeFps(int x) {
@@ -1548,6 +1643,7 @@ void Editor::changeFps(int x) {
QSettings settings("Pencil","Pencil");
settings.setValue("fps", x);
timer->setInterval(1000/fps);
+ scribbleArea->setFocus();
}
int Editor::getFps() {
@@ -1557,6 +1653,7 @@ int Editor::getFps() {
void Editor::setLoop() {
if (looping) looping=false;
else looping=true;
+ scribbleArea->setFocus();
}
void Editor::setSound() {
diff -rupN pencil_backup/src/interface/editor.cpp~ pencil_dev/src/interface/editor.cpp~
--- pencil_backup/src/interface/editor.cpp~ 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/editor.cpp~ 2009-10-01 19:40:58.000000000 -0500
@@ -0,0 +1,1819 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+*/
+#include <QtGui>
+#include <QBoxLayout>
+#include <QLabel>
+#include <QSlider>
+#include <QTableWidget>
+#include <QListWidget>
+#include <QMainWindow>
+#include <QTimer>
+
+#include "editor.h"
+#include "layerbitmap.h"
+#include "layervector.h"
+#include "layersound.h"
+#include "layercamera.h"
+
+
+Editor::Editor(QMainWindow* parent)
+{
+ mainWindow = parent;
+
+ QSettings settings("Pencil","Pencil");
+
+ object = NULL; // the editor is initialized with no object
+ savedName = "";
+ altpress=false;
+ modified=false;
+ numberOfModifications = 0;
+ autosave=settings.value("autosave").toBool();
+ autosaveNumber=settings.value("autosaveNumber").toInt();
+ if (autosaveNumber==0) { autosaveNumber=20; settings.setValue("autosaveNumber", 20); }
+ backupIndex = -1;
+ clipboardBitmapOk = false;
+ clipboardVectorOk = false;
+
+
+ fps = settings.value("fps").toInt();
+ if (fps==0) { fps=12; settings.setValue("fps", 12); }
+ maxFrame = 1;
+ timer = new QTimer(this);
+ timer->setInterval(1000/fps);
+ connect(timer, SIGNAL(timeout()), this, SLOT(playNextFrame()));
+ playing = false;
+ looping = false;
+ sound = true;
+
+ frameList << 1;
+ currentFrame = 1;
+ currentLayer = 0;
+
+ QHBoxLayout *lay = new QHBoxLayout();
+ QVBoxLayout *framelay = new QVBoxLayout();
+
+ scribbleArea = new ScribbleArea(this, this);
+ timeLine = new TimeLine(this, this);
+
+ toolSet = new ToolSet();
+ palette = new Palette(this);
+ preferences = new Preferences();
+ exportFramesDialog = NULL; // will be created when needed
+ exportMovieDialog = NULL;
+ exportFlashDialog = NULL;
+ newDocumentDialog = NULL;
+ exportFramesDialog_hBox = NULL;
+ exportFramesDialog_vBox = NULL;
+ exportFramesDialog_format = NULL;
+ exportMovieDialog_hBox = NULL;
+ exportMovieDialog_vBox = NULL;
+ exportMovieDialog_format = NULL;
+
+ exportFlashDialog_compression = NULL;
+
+ // FOCUS POLICY
+ scribbleArea->setFocusPolicy(Qt::StrongFocus);
+ timeLine->setFocusPolicy(Qt::NoFocus);
+ toolSet->setFocusPolicy(Qt::NoFocus);
+ palette->setFocusPolicy(Qt::NoFocus);
+
+ // CONNECTIONS
+ connect(toolSet, SIGNAL(addClick()), this, SLOT(addKey()));
+ connect(toolSet, SIGNAL(rmClick()), this, SLOT(removeKey()));
+ connect(toolSet, SIGNAL(playClick()), this, SLOT(play()));
+ connect(toolSet, SIGNAL(fpsClick(int)), this, SLOT(changeFps(int)));
+ connect(toolSet, SIGNAL(loopClick()), this, SLOT(setLoop()));
+
+ connect(toolSet, SIGNAL(pencilClick()), scribbleArea, SLOT(pencilOn()));
+ connect(toolSet, SIGNAL(eraserClick()), scribbleArea, SLOT(eraserOn()));
+ connect(toolSet, SIGNAL(selectClick()), scribbleArea, SLOT(selectOn()));
+ connect(toolSet, SIGNAL(moveClick()), scribbleArea, SLOT(moveOn()));
+ connect(toolSet, SIGNAL(handClick()), scribbleArea, SLOT(handOn()));
+ connect(toolSet, SIGNAL(penClick()), scribbleArea, SLOT(penOn()));
+ connect(toolSet, SIGNAL(polylineClick()), scribbleArea, SLOT(polylineOn()));
+ connect(toolSet, SIGNAL(bucketClick()), scribbleArea, SLOT(bucketOn()));
+ connect(toolSet, SIGNAL(eyedropperClick()), scribbleArea, SLOT(eyedropperOn()));
+ connect(toolSet, SIGNAL(colouringClick()), scribbleArea, SLOT(colouringOn()));
+ connect(toolSet, SIGNAL(smudgeClick()), scribbleArea, SLOT(smudgeOn()));
+
+ connect(toolSet, SIGNAL(pressureClick(int)), this, SLOT(applyPressure(int)));
+ connect(toolSet, SIGNAL(invisibleClick(int)), this, SLOT(applyInvisibility(int)));
+ connect(toolSet, SIGNAL(preserveAlphaClick(int)), this, SLOT(applyPreserveAlpha(int)));
+ connect(toolSet, SIGNAL(followContourClick(int)), this, SLOT(applyFollowContour(int)));
+
+ connect(toolSet, SIGNAL(widthClick(qreal)), this, SLOT(applyWidth(qreal)));
+ connect(toolSet, SIGNAL(featherClick(qreal)), this, SLOT(applyFeather(qreal)));
+ connect(toolSet, SIGNAL(opacityClick(qreal)), this, SLOT(applyOpacity(qreal)));
+
+ connect(toolSet, SIGNAL(colourClick()), this, SLOT(showPalette()));
+
+ connect(toolSet,SIGNAL(clearClick()), scribbleArea, SLOT(clearImage()));
+ connect(toolSet, SIGNAL(thinLinesClick()), scribbleArea, SLOT(toggleThinLines()));
+ connect(toolSet, SIGNAL(outlinesClick()), scribbleArea, SLOT(toggleOutlines()));
+ connect(scribbleArea, SIGNAL(thinLinesChanged(bool)), toolSet, SLOT(changeThinLinesButton(bool)));
+ connect(scribbleArea, SIGNAL(outlinesChanged(bool)), toolSet, SLOT(changeOutlinesButton(bool)));
+ connect(toolSet, SIGNAL(mirrorClick()), this, SLOT(toggleMirror()));
+
+ connect(toolSet, SIGNAL(onionStraightAheadClick()), scribbleArea, SLOT(onionChangeSlot1()));
+ connect(toolSet, SIGNAL(onionInbetweenClick()), scribbleArea, SLOT(onionChangeSlot2()));
+ connect(timeLine, SIGNAL(onionType(int)), scribbleArea, SLOT(onionChangeSlot(int)));
+
+ connect(this, SIGNAL(selectAll()), scribbleArea, SLOT(selectAll()));
+
+ connect(scribbleArea, SIGNAL(modification()), this, SLOT(modification()));
+ connect(scribbleArea, SIGNAL(modification(int)), this, SLOT(modification(int)));
+ connect(timeLine, SIGNAL(modification()), this, SLOT(modification()));
+
+ connect(timeLine, SIGNAL(addKeyClick()), this, SLOT(addKey()));
+ connect(timeLine, SIGNAL(removeKeyClick()), this, SLOT(removeKey()));
+
+ connect(scribbleArea, SIGNAL(flipPrevious()), this, SLOT(getPrevKeyFlip()));
+ connect(scribbleArea, SIGNAL(flipNext()), this, SLOT(getNextKeyFlip()));
+
+ connect(scribbleArea, SIGNAL(onionShortCut()), timeLine, SIGNAL(onionKey()));
+ connect(scribbleArea, SIGNAL(straightAheadShortCut()), timeLine, SIGNAL(straightAheadKey()));
+ connect(scribbleArea, SIGNAL(inbetweenShortCut()), timeLine, SIGNAL(inbetweenKey()));
+
+ connect(timeLine, SIGNAL(newBitmapLayer()), this, SLOT(newBitmapLayer()));
+ connect(timeLine, SIGNAL(newVectorLayer()), this, SLOT(newVectorLayer()));
+ connect(timeLine, SIGNAL(newSoundLayer()), this, SLOT(newSoundLayer()));
+ connect(timeLine, SIGNAL(newCameraLayer()), this, SLOT(newCameraLayer()));
+ connect(timeLine, SIGNAL(deleteCurrentLayer()), this, SLOT(deleteCurrentLayer()));
+
+ connect(timeLine, SIGNAL(playClick()), this, SLOT(play()));
+ connect(timeLine, SIGNAL(loopClick()), this, SLOT(setLoop()));
+ connect(timeLine, SIGNAL(soundClick()), this, SLOT(setSound()));
+ connect(timeLine, SIGNAL(fpsClick(int)), this, SLOT(changeFps(int)));
+
+ connect(timeLine, SIGNAL(onionChecked()), scribbleArea, SLOT(onionIsOn()));
+ connect(timeLine, SIGNAL(onionType(int)), scribbleArea, SLOT(onionChangeSlot(int)));
+
+ connect(preferences, SIGNAL(windowOpacityChange(int)), mainWindow, SLOT(setOpacity(int)));
+ connect(preferences, SIGNAL(curveOpacityChange(int)), scribbleArea, SLOT(setCurveOpacity(int)));
+ connect(preferences, SIGNAL(curveSmoothingChange(int)), scribbleArea, SLOT(setCurveSmoothing(int)));
+ connect(preferences, SIGNAL(highResPositionChange(int)), scribbleArea, SLOT(setHighResPosition(int)));
+ connect(preferences, SIGNAL(antialiasingChange(int)), scribbleArea, SLOT(setAntialiasing(int)));
+ connect(preferences, SIGNAL(gradientsChange(int)), scribbleArea, SLOT(setGradients(int)));
+ connect(preferences, SIGNAL(backgroundChange(int)), scribbleArea, SLOT(setBackground(int)));
+ connect(preferences, SIGNAL(shadowsChange(int)), scribbleArea, SLOT(setShadows(int)));
+ connect(preferences, SIGNAL(toolCursorsChange(int)), scribbleArea, SLOT(setToolCursors(int)));
+ connect(preferences, SIGNAL(styleChange(int)), scribbleArea, SLOT(setStyle(int)));
+
+ connect(preferences, SIGNAL(autosaveChange(int)), this, SLOT(changeAutosave(int)));
+ connect(preferences, SIGNAL(autosaveNumberChange(int)), this, SLOT(changeAutosaveNumber(int)));
+
+ connect(preferences, SIGNAL(lengthSizeChange(QString)), timeLine, SIGNAL(lengthChange(QString)));
+ connect(preferences, SIGNAL(fontSizeChange(int)), timeLine, SIGNAL(fontSizeChange(int)));
+ connect(preferences, SIGNAL(frameSizeChange(int)), timeLine, SIGNAL(frameSizeChange(int)));
+ connect(preferences, SIGNAL(labelChange(int)), timeLine, SIGNAL(labelChange(int)));
+ connect(preferences, SIGNAL(scrubChange(int)), timeLine, SIGNAL(scrubChange(int)));
+
+ connect(preferences, SIGNAL(onionOpacityChange(int)), scribbleArea, SLOT(onionOpacityLevel(int)));
+ connect(preferences, SIGNAL(onionStraightAheadChange(int)), scribbleArea, SLOT(StraightAheadLevel(int)));
+ connect(preferences, SIGNAL(onionPreviousPreviousChange(int)), scribbleArea, SLOT(onionPreviousPreviousLevel(int)));
+ connect(preferences, SIGNAL(onionPreviousChange(int)), scribbleArea, SLOT(onionPreviousLevel(int)));
+ connect(preferences, SIGNAL(onionNextChange(int)), scribbleArea, SLOT(onionNextLevel(int)));
+ connect(preferences, SIGNAL(onionNextNextChange(int)), scribbleArea, SLOT(onionNextNextLevel(int)));
+
+ connect(QApplication::clipboard(), SIGNAL(dataChanged()), this, SLOT(clipboardChanged()) );
+
+ framelay->addWidget(scribbleArea);
+ lay->addWidget(toolSet);
+ lay->addLayout(framelay);
+
+ framelay->setMargin(0);
+ framelay->setSpacing(0);
+ lay->setMargin(0);
+ lay->setSpacing(0);
+
+ setLayout(lay);
+
+ qDebug() << "Hello";
+ qDebug() << QLibraryInfo::location(QLibraryInfo::PluginsPath);
+ qDebug() << QLibraryInfo::location(QLibraryInfo::BinariesPath);
+ qDebug() << QLibraryInfo::location(QLibraryInfo::LibrariesPath);
+
+ setAcceptDrops(true);
+}
+
+Editor::~Editor() {
+ // a lot more probably needs to be cleaned here...
+ if (object) delete object;
+ clearBackup();
+}
+
+void Editor::dragEnterEvent(QDragEnterEvent *event)
+{
+ //if (event->mimeData()->hasFormat("text/plain"))
+ event->acceptProposedAction();
+}
+
+void Editor::dropEvent(QDropEvent *event)
+{
+ if( event->mimeData()->hasUrls() ) {
+ for(int i=0; i < event->mimeData()->urls().size(); i++) {
+ if(i>0) scrubForward();
+ QUrl url = event->mimeData()->urls()[i];
+ QString filePath = url.toLocalFile();
+ if(filePath.endsWith(".png") || filePath.endsWith(".jpg") || filePath.endsWith(".jpeg"))
+ importImage( filePath );
+ if(filePath.endsWith(".aif") || filePath.endsWith(".mp3") || filePath.endsWith(".wav"))
+ importSound( filePath );
+ }
+ }
+}
+
+
+void Editor::showCounter(int n) {
+ toolSet->setCounter(n);
+}
+
+void Editor::newDocument() {
+ if (maybeSave()) {
+ //if (!exportFramesDialog) createNewDocumentDialog();
+ //newDocumentDialog->exec();
+ //if(newDocumentDialog->result() == QDialog::Rejected) return;
+ //QSize documentSize = QSize(newDocumentDialog_hBox->value(), newDocumentDialog_vBox->value());
+ //newObject(documentSize);
+ newObject(); // default size
+ }
+}
+
+void Editor::openDocument()
+{
+ if (maybeSave()) {
+ QSettings settings("Pencil","Pencil");
+ QString myPath = settings.value("lastFilePath", QVariant(QDir::homePath())).toString();
+ QString fileName = QFileDialog::getOpenFileName(this, tr("Open File"), myPath);
+ if (!fileName.isEmpty()) {
+ bool ok = openObject(fileName);
+ if(!ok) {
+ QMessageBox::warning(this, "Warning", "Pencil cannot read this file. If you want to import images, use the command import.");
+ newObject();
+ }
+ }
+ }
+}
+
+void Editor::openRecent() {
+ QSettings settings("Pencil","Pencil");
+ QString myPath = settings.value("lastFilePath", QVariant(QDir::homePath())).toString();
+ bool ok = openObject(myPath);
+ if(!ok) {
+ QMessageBox::warning(this, "Warning", "Pencil cannot read this file. If you want to import images, use the command import.");
+ newObject();
+ }
+}
+
+bool Editor::saveDocument()
+{
+ //QAction *action = qobject_cast<QAction *>(sender()); // ? old code from Patrick?
+ //QByteArray fileFormat = action->data().toByteArray(); // ? old code from Patrick?
+ QSettings settings("Pencil","Pencil");
+ QString myPath = settings.value("lastFilePath", QVariant(QDir::homePath())).toString();
+
+ QString fileName = QFileDialog::getSaveFileName(this, tr("Save As"), myPath);
+
+ if (fileName.isEmpty()) {
+ return false;
+ } else {
+ QSettings settings("Pencil","Pencil");
+ settings.setValue("lastFilePath", QVariant(fileName));
+ return saveObject(fileName);
+ }
+}
+
+void Editor::setWidth(qreal width)
+{
+ scribbleArea->setWidth(width);
+ toolSet->setWidth(width);
+}
+
+void Editor::applyWidth(qreal width)
+{
+ setWidth(width);
+ Layer* layer = getCurrentLayer(); if(layer == NULL) return;
+ if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyWidthToSelection(width);
+ scribbleArea->setFocus();
+}
+
+void Editor::setFeather(qreal feather)
+{
+ scribbleArea->setFeather(feather);
+ toolSet->setFeather(feather);
+}
+
+void Editor::applyFeather(qreal feather)
+{
+ setFeather(feather);
+ Layer* layer = getCurrentLayer(); if(layer == NULL) return;
+ if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyFeatherToSelection(feather);
+ scribbleArea->setFocus();
+}
+
+void Editor::setOpacity(qreal opacity)
+{
+ scribbleArea->setOpacity(opacity);
+ toolSet->setOpacity(opacity);
+}
+
+void Editor::applyOpacity(qreal opacity)
+{
+ setOpacity(opacity);
+ Layer* layer = getCurrentLayer(); if(layer == NULL) return;
+ if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyOpacityToSelection(opacity);
+ scribbleArea->setFocus();
+}
+
+void Editor::setInvisibility(int invisibility)
+{
+ if(invisibility>=0) scribbleArea->setInvisibility(invisibility>0);
+ toolSet->setInvisibility(invisibility);
+}
+
+void Editor::applyInvisibility(int invisibility)
+{
+ setInvisibility(invisibility);
+ Layer* layer = getCurrentLayer(); if(layer == NULL) return;
+ if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyInvisibilityToSelection(invisibility>0);
+ scribbleArea->setFocus();
+}
+
+void Editor::setPreserveAlpha(int preserveAlpha)
+{
+ if(preserveAlpha>=0) scribbleArea->setPreserveAlpha(preserveAlpha>0);
+ toolSet->setPreserveAlpha(preserveAlpha);
+}
+
+void Editor::applyPreserveAlpha(int preserveAlpha)
+{
+ setPreserveAlpha(preserveAlpha);
+ scribbleArea->setFocus();
+}
+
+void Editor::setFollowContour(int followContour)
+{
+ if(followContour>=0) scribbleArea->setFollowContour(followContour>0);
+ toolSet->setFollowContour(followContour);
+}
+
+void Editor::applyFollowContour(int followContour)
+{
+ setFollowContour(followContour);
+ scribbleArea->setFocus();
+}
+
+void Editor::setPressure(int pressure)
+{
+ if(pressure>=0) scribbleArea->setPressure(pressure>0);
+ toolSet->setPressure(pressure);
+}
+
+void Editor::applyPressure(int pressure)
+{
+ setPressure(pressure);
+ Layer* layer = getCurrentLayer(); if(layer == NULL) return;
+ if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyVariableWidthToSelection(pressure>0);
+ scribbleArea->setFocus();
+}
+
+void Editor::selectColour(int i)
+{
+ if(i > -1) {
+ scribbleArea->setColour(i);
+ toolSet->setColour(object->getColour(i).colour);
+ palette->selectColour(i);
+ palette->setColour(object->getColour(i).colour);
+ }
+}
+
+void Editor::selectAndApplyColour(int i)
+{
+ selectColour(i);
+ Layer* layer = getCurrentLayer(); if(layer == NULL) return;
+ if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0)->applyColourToSelection(i);
+}
+
+void Editor::setColour(QColor colour)
+{
+ scribbleArea->setColour(colour);
+ toolSet->setColour(colour);
+ palette->setColour(colour);
+}
+
+void Editor::changeColour(int i)
+{
+ //QColor newColour = QColorDialog::getColor(object->getColour(i).colour);
+ if(i>-1) {
+ bool *ok;
+ ok = new bool;
+ QRgb qrgba = QColorDialog::getRgba( object->getColour(i).colour.rgba(), ok, this );
+ if(*ok) {
+ changeColour(i, QColor::fromRgba(qrgba) );
+ }
+ delete ok;
+ }
+}
+
+void Editor::changeColourName(int i)
+{
+ if (i>-1) {
+ bool ok;
+ QString text = QInputDialog::getText(this, tr("Colour name"),
+ tr("Colour name:"), QLineEdit::Normal,
+ object->getColour(i).name, &ok);
+ if (ok && !text.isEmpty()) {
+ object->renameColour(i, text);
+ palette->updateList();
+ }
+ }
+}
+
+void Editor::changeColour(int i, QColor newColour)
+{
+ if (newColour.isValid() && i>-1) {
+ /*object->setColour(i, newColour);
+ Layer* layer = object->getLayer(currentLayer);
+ if(layer != NULL) {
+ if(layer->type == Layer::VECTOR) scribbleArea->setModified(layer, currentFrame);
+ }*/
+ updateColour(i, newColour);
+ palette->updateList();
+ selectColour(i);
+ }
+}
+
+void Editor::updateColour(int i, QColor newColour)
+{
+ if( newColour.isValid() && i>-1) {
+ object->setColour(i, newColour);
+ Layer* layer = object->getLayer(currentLayer);
+ if(layer != NULL) {
+ if(layer->type == Layer::VECTOR) scribbleArea->setModified(currentLayer, currentFrame);
+ }
+ toolSet->setColour(object->getColour(i).colour);
+ palette->updateSwatch(object->getColour(i).colour);
+ scribbleArea->setColour(i);
+ }
+}
+
+void Editor::addColour() {
+ QColor initialColour = Qt::white;
+ int currentColourIndex = palette->currentColour();
+ if( currentColourIndex > -1 ) {
+ initialColour = object->getColour(currentColourIndex).colour;
+ }
+ bool *ok;
+ ok = new bool;
+ QRgb qrgba = QColorDialog::getRgba( initialColour.rgba(), ok, this );
+ if(*ok) {
+ object->addColour( QColor::fromRgba(qrgba) );
+ palette->updateList();
+ selectColour(object->getColourCount()-1);
+ }
+ delete ok;
+
+ /*QColor newColour = QColorDialog::getColor( initialColour );
+ if (newColour.isValid()) {
+ object->addColour(newColour);
+ palette->updateList();
+ //selectColour(object->getColourCount());
+ }*/
+}
+
+
+void Editor::removeColour(int i) {
+ if(object->removeColour(i)) {
+ palette->updateList();
+ } else {
+ QMessageBox::warning(this, tr("Warning"),
+ tr("You cannot remove this colour because it is used!"),
+ QMessageBox::Ok,
+ QMessageBox::Ok);
+ }
+}
+
+void Editor::changeAutosave(int x) {
+ QSettings settings("Pencil","Pencil");
+ if (x==0) { autosave=false; settings.setValue("autosave","false"); }
+ else { autosave=true; settings.setValue("autosave","true"); }
+}
+
+void Editor::changeAutosaveNumber(int number) {
+ autosaveNumber = number;
+ QSettings settings("Pencil","Pencil");
+ settings.setValue("autosaveNumber", number);
+}
+
+void Editor::modification() {
+ modification(currentLayer);
+}
+
+void Editor::modification(int layerNumber) {
+ modified = true;
+ if(object != NULL) object->modification();
+ lastModifiedFrame = currentFrame;
+ lastModifiedLayer = layerNumber;
+ scribbleArea->update();
+ timeLine->updateContent();
+ numberOfModifications++;
+ if(autosave && numberOfModifications > autosaveNumber) {
+ numberOfModifications = 0;
+ //saveForce();
+ if (savedName!="") saveObject(savedName);
+ }
+}
+
+void Editor::backup() {
+ if(lastModifiedLayer>-1 && lastModifiedFrame > 0) {
+ backup(lastModifiedLayer, lastModifiedFrame);
+ }
+ if( lastModifiedLayer != currentLayer || lastModifiedFrame != currentFrame ) {
+ backup(currentLayer, currentFrame);
+ }
+}
+
+void Editor::backup(int backupLayer, int backupFrame) {
+ while(backupList.size()-1 > backupIndex && backupList.size() > 0) {
+ delete backupList.takeLast();
+ }
+ while(backupList.size() > 19) { // we authorize only 20 levels of cancellation
+ delete backupList.takeFirst();
+ backupIndex--;
+ }
+ Layer* layer = object->getLayer(backupLayer);
+ if(layer != NULL) {
+ if(layer->type == Layer::BITMAP) {
+ BackupBitmapElement* element = new BackupBitmapElement();
+ element->layer = backupLayer;
+ element->frame = backupFrame;
+ BitmapImage* bitmapImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(backupFrame, 0);
+ if(bitmapImage != NULL) {
+ element->bitmapImage = bitmapImage->copy(); // copy the image
+ backupList.append(element);
+ backupIndex++;
+ }
+ }
+ if(layer->type == Layer::VECTOR) {
+ BackupVectorElement* element = new BackupVectorElement();
+ element->layer = backupLayer;
+ element->frame = backupFrame;
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(backupFrame, 0);
+ if(vectorImage != NULL) {
+ element->vectorImage = *vectorImage; // copy the image (that works but I should also provide a copy() method)
+ backupList.append(element);
+ backupIndex++;
+ }
+ }
+ }
+}
+
+void BackupBitmapElement::restore(Editor* editor) {
+ Layer* layer = editor->object->getLayer(this->layer);
+ if(layer != NULL) {
+ if(layer->type == Layer::BITMAP) {
+ *( ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(this->frame, 0) ) = this->bitmapImage; // restore the image
+ }
+ }
+ editor->updateFrame(this->frame);
+ editor->scrubTo(this->frame);
+}
+
+void BackupVectorElement::restore(Editor* editor) {
+ Layer* layer = editor->object->getLayer(this->layer);
+ if(layer != NULL) {
+ if(layer->type == Layer::VECTOR) {
+ *( ((LayerVector*)layer)->getLastVectorImageAtFrame(this->frame, 0) ) = this->vectorImage; // restore the image
+ //((LayerVector*)layer)->getLastVectorImageAtFrame(this->frame, 0)->setModified(true); // why?
+ //editor->scribbleArea->setModified(layer, this->frame);
+ }
+ }
+ editor->updateFrameAndVector(this->frame);
+ editor->scrubTo(this->frame);
+}
+
+void Editor::undo() {
+ if( backupList.size() > 0 && backupIndex > -1) {
+ if(backupIndex == backupList.size()-1) {
+ BackupElement* lastBackupElement = backupList[backupIndex];
+ if(lastBackupElement->type() == BackupElement::BITMAP_MODIF) {
+ BackupBitmapElement* lastBackupBitmapElement = (BackupBitmapElement*)lastBackupElement;
+ backup( lastBackupBitmapElement->layer, lastBackupBitmapElement->frame );
+ backupIndex--;
+ }
+ if(lastBackupElement->type() == BackupElement::VECTOR_MODIF) {
+ BackupVectorElement* lastBackupVectorElement = (BackupVectorElement*)lastBackupElement;
+ backup( lastBackupVectorElement->layer, lastBackupVectorElement->frame );
+ backupIndex--;
+ }
+ }
+ //
+ backupList[backupIndex]->restore(this);
+ backupIndex--;
+ scribbleArea->calculateSelectionRect(); // really ugly -- to improve
+ }
+}
+
+void Editor::redo() {
+ if( backupList.size() > 0 && backupIndex < backupList.size()-2) {
+ backupIndex++;
+ backupList[backupIndex+1]->restore(this);
+ }
+}
+
+void Editor::clearBackup() {
+ backupIndex = -1;
+ while( !backupList.isEmpty() ) {
+ delete backupList.takeLast();
+ }
+ lastModifiedLayer = -1;
+ lastModifiedFrame = -1;
+}
+
+void Editor::copy() {
+ Layer* layer = object->getLayer(currentLayer);
+ if(layer != NULL) {
+ if(layer->type == Layer::BITMAP) {
+ if(scribbleArea->somethingSelected) {
+ clipboardBitmapImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(currentFrame, 0)->copy( scribbleArea->getSelection().toRect() ); // copy part of the image
+ } else {
+ clipboardBitmapImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(currentFrame, 0)->copy(); // copy the whole image
+ }
+ clipboardBitmapOk = true;
+ if( clipboardBitmapImage.image != NULL ) QApplication::clipboard()->setImage( *(clipboardBitmapImage.image) );
+ }
+ if(layer->type == Layer::VECTOR) {
+ clipboardVectorOk = true;
+ clipboardVectorImage = *( ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0) ); // copy the image (that works but I should also provide a copy() method)
+ }
+ }
+}
+
+void Editor::paste() {
+ Layer* layer = object->getLayer(currentLayer);
+ if(layer != NULL) {
+ if(layer->type == Layer::BITMAP && clipboardBitmapImage.image != NULL) { // clipboardBitmapOk
+ backup();
+ BitmapImage tobePasted = clipboardBitmapImage.copy();
+ qDebug() << "to be pasted --->" << tobePasted.image->size();
+ if(scribbleArea->somethingSelected) {
+ QRectF selection = scribbleArea->getSelection();
+ if( clipboardBitmapImage.width() <= selection.width() && clipboardBitmapImage.height() <= selection.height() ) {
+ tobePasted.moveTopLeft( selection.topLeft() );
+ } else {
+ tobePasted.transform( selection, true );
+ }
+ }
+ ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(currentFrame, 0)->paste( &tobePasted ); // paste the clipboard
+ }
+ if(layer->type == Layer::VECTOR && clipboardVectorOk) {
+ backup();
+ scribbleArea->deselectAll();
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(currentFrame, 0);
+ vectorImage->paste( clipboardVectorImage ); // paste the clipboard
+ scribbleArea->setSelection( vectorImage->getSelectionRect(), true );
+ //((LayerVector*)layer)->getLastVectorImageAtFrame(backupFrame, 0)->modification(); ????
+ }
+ }
+ scribbleArea->updateFrame();
+}
+
+void Editor::clipboardChanged() {
+ if(clipboardBitmapOk == false) {
+ clipboardBitmapImage.image = new QImage( QApplication::clipboard()->image() );
+ clipboardBitmapImage.boundaries = QRect( clipboardBitmapImage.topLeft(), clipboardBitmapImage.image->size() );
+ qDebug() << "New clipboard image" << clipboardBitmapImage.image->size();
+ } else {
+ clipboardBitmapOk = false;
+ qDebug() << "The image has been saved in the clipboard";
+ }
+}
+
+void Editor::newBitmapLayer() {
+ if(object != NULL) {
+ object->addNewBitmapLayer();
+ timeLine->updateLayerNumber( object->getLayerCount() );
+ setCurrentLayer( object->getLayerCount()-1 );
+ }
+ scribbleArea->setFocus();
+}
+
+void Editor::newVectorLayer() {
+ if(object != NULL) {
+ object->addNewVectorLayer();
+ timeLine->updateLayerNumber( object->getLayerCount() );
+ setCurrentLayer( object->getLayerCount()-1 );
+ }
+ scribbleArea->setFocus();
+}
+
+void Editor::newSoundLayer() {
+ if(object != NULL) {
+ object->addNewSoundLayer();
+ timeLine->updateLayerNumber( object->getLayerCount() );
+ setCurrentLayer( object->getLayerCount()-1 );
+ }
+ scribbleArea->setFocus();
+}
+
+void Editor::newCameraLayer() {
+ if(object != NULL) {
+ object->addNewCameraLayer();
+ timeLine->updateLayerNumber( object->getLayerCount() );
+ setCurrentLayer( object->getLayerCount()-1 );
+ }
+ scribbleArea->setFocus();
+}
+
+void Editor::deleteCurrentLayer() {
+ int ret = QMessageBox::warning(this, tr("Warning"),
+ tr("Are you sure you want to delete the selected layer?"),
+ QMessageBox::Ok | QMessageBox::Cancel,
+ QMessageBox::Ok);
+ if(ret == QMessageBox::Ok) {
+ object->deleteLayer(currentLayer);
+ if(currentLayer == object->getLayerCount()) setCurrentLayer( currentLayer-1 );
+ timeLine->updateLayerNumber( object->getLayerCount() );
+ //timeLine->update();
+ scribbleArea->updateAllFrames();
+ }
+ scribbleArea->setFocus();
+}
+
+
+void Editor::toggleMirror() {
+ object->toggleMirror();
+ scribbleArea->toggleMirror();
+ scribbleArea->setFocus();
+}
+
+void Editor::toggleShowAllLayers() {
+ scribbleArea->toggleShowAllLayers();
+ timeLine->updateContent();
+}
+
+void Editor::resetMirror() {
+ object->resetMirror();
+ toolSet->resetMirror();
+}
+
+void Editor::showPalette() {
+ if(palette->isVisible()) {
+ palette->close();
+ } else {
+ palette->show();
+ }
+ scribbleArea->setFocus();
+}
+
+void Editor::saveLength(QString x) {
+ bool ok;
+ int dec = x.toInt(&ok, 10);
+ QSettings settings("Pencil","Pencil");
+ settings.setValue("length", dec);
+}
+
+void Editor::about()
+{
+ QMessageBox::about(this, tr("Pencil 0.4.4b"),
+ tr("<div style='background-color: #DDDDDD; text-align: center'>"
+ "<img src=':icons/logo.png' width='100%'><br>"
+ "<table style='background-color: #DDDDDD'><tr><td width='160px'>"
+ "Developed by: <i>Pascal Naidon</i> & <i>Patrick Corrieri</i><br>"
+ "Version: <b>0.4.4b</b> (21st January, 2008)<br><br>"
+ "<b>Thanks to:</b><br>"
+ "Trolltech for the Qt libraries<br>"
+ "Roland for the Movie export functions<br>"
+ "Axel for his help with Qt<br>"
+ "Mark for his help with Qt and SVN<br><br>"
+ "<a href='http://www.les-stooges.org/pascal/pencil'>http://www.les-stooges.org/pascal/pencil/</a><br><br>"
+ "Distributed under the GPL License."
+ "</td></tr></table>"
+ "</div>"));
+}
+
+void Editor::helpBox() {
+ QMessageBox::about(this, tr("Help"), tr("Some documentation is available online.<br><br>"
+ "Please visit:<br>"
+ "<a href='http://www.les-stooges.org/pascal/pencil'>http://www.les-stooges.org/pascal/pencil/</a>."));
+ }
+
+
+bool Editor::maybeSave()
+{
+ if (object->modified) {
+ int ret = QMessageBox::warning(this, tr("Warning"),
+ tr("This animation has been modified.\n"
+ "Do you want to save your changes?"),
+ QMessageBox::Yes | QMessageBox::Default,
+ QMessageBox::No,
+ QMessageBox::Cancel | QMessageBox::Escape);
+ if (ret == QMessageBox::Yes) {
+ saveForce();
+ return true;
+ } else if (ret == QMessageBox::Cancel) {
+ return false;
+ }
+ }
+ return true;
+}
+
+bool Editor::saveObject(QString filePath)
+{
+ QFileInfo fileInfo(filePath);
+ if(fileInfo.isDir()) return false;
+
+ QFileInfo dataInfo(filePath+".data");
+ if(!dataInfo.exists()) {
+ QDir dir(fileInfo.absolutePath()); // the directory where filePath is or will be saved
+ dir.mkpath(filePath+".data"); // creates a directory with the same name +".data"
+ }
+
+ savedName=filePath;
+ mainWindow->setWindowTitle(savedName);
+
+ QProgressDialog progress("Saving document...", "Abort", 0, 100, mainWindow);
+ progress.setWindowModality(Qt::WindowModal);
+ progress.show();
+ int progressValue = 0;
+
+ // save data
+ int nLayers = object->getLayerCount();
+ for(int i=0; i < nLayers; i++) {
+ qDebug() << "Saving Layer " << i;
+ progressValue = (i*100)/nLayers;
+ progress.setValue(progressValue);
+ Layer* layer = object->getLayer(i);
+ if(layer->type == Layer::BITMAP) ((LayerBitmap*)layer)->saveImages(filePath+".data", i);
+ if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->saveImages(filePath+".data", i);
+ if(layer->type == Layer::SOUND) ((LayerSound*)layer)->saveImages(filePath+".data", i);
+ }
+
+ // save palette
+ object->savePalette(filePath+".data");
+
+ // -------- save main XML file -----------
+ QFile* file = new QFile(filePath);
+ if (!file->open(QFile::WriteOnly | QFile::Text)) {
+ //QMessageBox::warning(this, "Warning", "Cannot write file");
+ return false;
+ }
+ QTextStream out(file);
+ QDomDocument doc("PencilDocument");
+ QDomElement root = doc.createElement("document");
+ doc.appendChild(root);
+
+ // save editor information
+ QDomElement editorElement = createDomElement(doc);
+ root.appendChild(editorElement);
+ // save object
+ QDomElement objectElement = object->createDomElement(doc);
+ root.appendChild(objectElement);
+
+ int IndentSize = 2;
+ doc.save(out, IndentSize);
+ // -----------------------------------
+
+ progress.setValue(100);
+
+ object->modified = false;
+ timeLine->updateContent();
+ return true;
+}
+
+void Editor::newObject() {
+ //if(object != NULL) delete object;
+ Object *newObject = new Object();
+ newObject->defaultInitialisation();
+
+ setObject(newObject);
+ updateObject();
+ savedName = "";
+ mainWindow->setWindowTitle(tr("Pencil v0.4.4b"));
+}
+
+void Editor::setObject(Object *object) {
+ if ((this->object)&&(object!=this->object)) {
+ disconnect( this->object, 0, 0, 0); // disconnect the current object from everything
+ delete this->object;
+ }
+ this->object = object;
+ if(object) {
+ connect( object, SIGNAL(imageAdded(int)), this, SLOT(addFrame(int)) );
+ connect( object, SIGNAL(imageAdded(int,int)), this, SLOT(addFrame(int,int)) );
+ connect( object, SIGNAL(imageRemoved(int)), this, SLOT(removeFrame(int)) );
+
+ //currentLayer = object->getLayerCount()-1; // the default selected layer is the last one
+ currentLayer = 0; // the default selected layer is the first one
+ currentFrame = 1;
+ frameList.clear(); frameList << 1;
+ }
+}
+
+void Editor::updateObject() {
+ scribbleArea->resetColours();
+ palette->selectColour(0);
+
+ //scribbleArea->resize(object->size);
+ //scribbleArea->updateAllFrames();
+ //scribbleArea->resetView();
+ timeLine->updateLayerNumber(object->getLayerCount());
+ palette->updateList();
+ clearBackup();
+ scribbleArea->resetColours();
+ palette->selectColour(0);
+ scribbleArea->updateAllFrames();
+}
+
+bool Editor::openObject(QString filePath) {
+ // ---- test before opening ----
+ QFileInfo fileInfo(filePath);
+ if( fileInfo.isDir() ) return false;
+ QFile* file = new QFile(filePath);
+ if (!file->open(QFile::ReadOnly)) return false;
+ QDomDocument doc;
+ if (!doc.setContent(file)) return false; // this is not a XML file
+ QDomDocumentType type = doc.doctype();
+ if(type.name() != "PencilDocument" && type.name() != "MyObject") return false; // this is not a Pencil document
+ // -----------------------------
+
+ QProgressDialog progress("Opening document...", "Abort", 0, 100, mainWindow);
+ progress.setWindowModality(Qt::WindowModal);
+ progress.show();
+
+ savedName = filePath;
+ QSettings settings("Pencil","Pencil");
+ settings.setValue("lastFilePath", QVariant(savedName) );
+ mainWindow->setWindowTitle(savedName);
+
+ Object* newObject = new Object();
+ if(!newObject->loadPalette(savedName+".data")) newObject->loadDefaultPalette();
+ setObject(newObject);
+
+ // ------- reads the XML file -------
+ bool ok = true;
+ QDomElement docElem = doc.documentElement();
+ if(docElem.isNull()) return false;
+ if(docElem.tagName() == "document") {
+ QDomNode tag = docElem.firstChild();
+ while(!tag.isNull()) {
+ QDomElement element = tag.toElement(); // try to convert the node to an element.
+ if(!element.isNull()) {
+ if(element.tagName() == "editor") {
+ loadDomElement(element, filePath);
+ }
+ if(element.tagName() == "object") {
+ ok = newObject->loadDomElement(element, filePath);
+ }
+ }
+ tag = tag.nextSibling();
+ }
+ } else {
+ if(docElem.tagName() == "object" || docElem.tagName() == "MyOject") { // old Pencil format (<=0.4.3)
+ ok = newObject->loadDomElement(docElem, filePath);
+ }
+ }
+ // ------------------------------
+ if(ok) updateObject();
+
+ progress.setValue(100);
+ return ok;
+}
+
+void Editor::saveForce() {
+ if (savedName!="")
+ saveObject(savedName);
+ else saveDocument();
+}
+
+void Editor::createNewDocumentDialog() {
+ /*newDocumentDialog = new QDialog(this, Qt::Dialog);
+ QGridLayout *mainLayout = new QGridLayout;
+
+ QGroupBox *resolutionBox = new QGroupBox(tr("Resolution"));
+ newDocumentDialog_hBox = new QSpinBox(this);
+ newDocumentDialog_hBox->setMinimum(1);
+ newDocumentDialog_hBox->setMaximum(10000);
+ int defaultWidth = 720; int defaultHeight = 540;
+ //if(object != NULL) {
+ // defaultWidth = object->size.width(); defaultHeight = object->size.height();
+ //}
+ newDocumentDialog_hBox->setValue(defaultWidth);
+ newDocumentDialog_hBox->setFixedWidth(80);
+ newDocumentDialog_vBox = new QSpinBox(this);
+ newDocumentDialog_vBox->setMinimum(1);
+ newDocumentDialog_vBox->setMaximum(10000);
+ newDocumentDialog_vBox->setValue(defaultHeight);
+ newDocumentDialog_vBox->setFixedWidth(80);
+ QGridLayout *resolutionLayout = new QGridLayout;
+ resolutionLayout->addWidget(newDocumentDialog_hBox,0,0);
+ resolutionLayout->addWidget(newDocumentDialog_vBox,0,1);
+ resolutionBox->setLayout(resolutionLayout);
+
+ QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
+ connect(buttonBox, SIGNAL(accepted()), newDocumentDialog, SLOT(accept()));
+ connect(buttonBox, SIGNAL(rejected()), newDocumentDialog, SLOT(reject()));
+
+ mainLayout->addWidget(resolutionBox, 0, 0);
+ mainLayout->addWidget(buttonBox, 1, 0);
+ newDocumentDialog->setLayout(mainLayout);
+ newDocumentDialog->setWindowTitle(tr("Options"));
+ newDocumentDialog->setModal(true);*/
+}
+
+void Editor::createExportFramesSizeBox() {
+ int defaultWidth = 720; int defaultHeight = 540;
+ exportFramesDialog_hBox = new QSpinBox(this);
+ exportFramesDialog_hBox->setMinimum(1);
+ exportFramesDialog_hBox->setMaximum(10000);
+ exportFramesDialog_hBox->setValue(defaultWidth);
+ exportFramesDialog_hBox->setFixedWidth(80);
+ exportFramesDialog_vBox = new QSpinBox(this);
+ exportFramesDialog_vBox->setMinimum(1);
+ exportFramesDialog_vBox->setMaximum(10000);
+ exportFramesDialog_vBox->setValue(defaultHeight);
+ exportFramesDialog_vBox->setFixedWidth(80);
+}
+
+void Editor::createExportMovieSizeBox() {
+ int defaultWidth = 720; int defaultHeight = 540;
+ exportMovieDialog_hBox = new QSpinBox(this);
+ exportMovieDialog_hBox->setMinimum(1);
+ exportMovieDialog_hBox->setMaximum(10000);
+ exportMovieDialog_hBox->setValue(defaultWidth);
+ exportMovieDialog_hBox->setFixedWidth(80);
+ exportMovieDialog_vBox = new QSpinBox(this);
+ exportMovieDialog_vBox->setMinimum(1);
+ exportMovieDialog_vBox->setMaximum(10000);
+ exportMovieDialog_vBox->setValue(defaultHeight);
+ exportMovieDialog_vBox->setFixedWidth(80);
+
+}
+
+void Editor::createExportFramesDialog() {
+ exportFramesDialog = new QDialog(this, Qt::Dialog);
+ QGridLayout *mainLayout = new QGridLayout;
+
+ QGroupBox *resolutionBox = new QGroupBox(tr("Resolution"));
+ if(exportFramesDialog_hBox == NULL || exportFramesDialog_vBox == NULL) {
+ createExportFramesSizeBox();
+ }
+ QGridLayout *resolutionLayout = new QGridLayout;
+ resolutionLayout->addWidget(exportFramesDialog_hBox,0,0);
+ resolutionLayout->addWidget(exportFramesDialog_vBox,0,1);
+ resolutionBox->setLayout(resolutionLayout);
+
+ QGroupBox *formatBox = new QGroupBox(tr("Format"));
+ exportFramesDialog_format = new QComboBox();
+ exportFramesDialog_format->addItem("PNG");
+ exportFramesDialog_format->addItem("JPEG");
+ QGridLayout *formatLayout = new QGridLayout;
+ formatLayout->addWidget(exportFramesDialog_format,0,0);
+ formatBox->setLayout(formatLayout);
+
+ QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
+ connect(buttonBox, SIGNAL(accepted()), exportFramesDialog, SLOT(accept()));
+ connect(buttonBox, SIGNAL(rejected()), exportFramesDialog, SLOT(reject()));
+
+ mainLayout->addWidget(resolutionBox, 0, 0);
+ mainLayout->addWidget(formatBox, 1, 0);
+ mainLayout->addWidget(buttonBox, 2, 0);
+ exportFramesDialog->setLayout(mainLayout);
+ exportFramesDialog->setWindowTitle(tr("Options"));
+ exportFramesDialog->setModal(true);
+}
+
+void Editor::createExportMovieDialog() {
+ exportMovieDialog = new QDialog(this, Qt::Dialog);
+ QGridLayout *mainLayout = new QGridLayout;
+
+ QGroupBox *resolutionBox = new QGroupBox(tr("Resolution"));
+ if(!exportMovieDialog_hBox || !exportMovieDialog_vBox) {
+ createExportMovieSizeBox();
+ }
+ QGridLayout *resolutionLayout = new QGridLayout;
+ resolutionLayout->addWidget(exportMovieDialog_hBox,0,0);
+ resolutionLayout->addWidget(exportMovieDialog_vBox,0,1);
+ resolutionBox->setLayout(resolutionLayout);
+
+ QGroupBox *formatBox = new QGroupBox(tr("Format"));
+ exportMovieDialog_format = new QComboBox();
+ exportMovieDialog_format->addItem("MOV");
+ //exportFramesDialog_format->addItem("JPEG");
+ QGridLayout *formatLayout = new QGridLayout;
+ formatLayout->addWidget(exportMovieDialog_format,0,0);
+ formatBox->setLayout(formatLayout);
+
+ QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel);
+ connect(buttonBox, SIGNAL(accepted()), exportMovieDialog, SLOT(accept()));
+ connect(buttonBox, SIGNAL(rejected()), exportMovieDialog, SLOT(reject()));
+
+ mainLayout->addWidget(resolutionBox, 0, 0);
+ mainLayout->addWidget(formatBox, 1, 0);
+ mainLayout->addWidget(buttonBox, 2, 0);
+ exportMovieDialog->setLayout(mainLayout);
+ exportMovieDialog->setWindowTitle(tr("Options"));
+ exportMovieDialog->setModal(true);
+}
+
+
+void Editor::createExportFlashDialog() {
+ exportFlashDialog = new QDialog(this, Qt::Dialog);
+ QGridLayout *mainLayout = new QGridLayout;
+
+ QSettings settings("Pencil","Pencil");
+
+
+ exportFlashDialog_compression = new QSlider(Qt::Horizontal);
+ exportFlashDialog_compression->setTickPosition(QSlider::TicksBelow);
+ exportFlashDialog_compression->setMinimum(0);
+ exportFlashDialog_compression->setMaximum(10);
+ exportFlashDialog_compression->setValue( 10 - settings.value("flashCompressionLevel").toInt() );
+ QLabel* label1 = new QLabel("Large file");
+ QLabel* label2 = new QLabel("Small file");
+
+ QGroupBox *compressionBox = new QGroupBox(tr("Compression"));
+ QGridLayout *compressionLayout = new QGridLayout;
+ compressionLayout->addWidget(label1,0,0);
+ compressionLayout->addWidget(exportFlashDialog_compression,0,1);
+ compressionLayout->addWidget(label2,0,2);
+ compressionBox->setLayout(compressionLayout);
+
+ QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Cancel | QDialogButtonBox::Ok);
+ connect(buttonBox, SIGNAL(accepted()), exportFlashDialog, SLOT(accept()));
+ connect(buttonBox, SIGNAL(rejected()), exportFlashDialog, SLOT(reject()));
+
+ mainLayout->addWidget(compressionBox, 0, 0);
+ mainLayout->addWidget(buttonBox, 1, 0);
+ exportFlashDialog->setLayout(mainLayout);
+ exportFlashDialog->setWindowTitle(tr("Options"));
+ exportFlashDialog->setModal(true);
+}
+
+QMatrix Editor::map(QRectF source, QRectF target) { // this method should be put somewhere else...
+ qreal x1 = source.left(); qreal y1 = source.top(); qreal x2 = source.right(); qreal y2 = source.bottom();
+ qreal x1P = target.left(); qreal y1P = target.top(); qreal x2P = target.right(); qreal y2P = target.bottom();
+ QMatrix matrix;
+ bool mirror = false;
+ if( (x1 != x2) && (y1 != y2) ) {
+ if( !mirror) {
+ matrix = QMatrix ( (x2P-x1P)/(x2-x1), 0, 0, (y2P-y1P)/(y2-y1), (x1P*x2-x2P*x1)/(x2-x1), (y1P*y2-y2P*y1)/(y2-y1) );
+ } else {
+ matrix = QMatrix ( (x2P-x1P)/(x1-x2), 0, 0, (y2P-y1P)/(y2-y1), (x1P*x1-x2P*x2)/(x1-x2), (y1P*y2-y2P*y1)/(y2-y1) );
+ }
+ } else {
+ matrix.reset();
+ }
+ return matrix;
+}
+
+bool Editor::exportSeq() {
+ QSettings settings("Pencil","Pencil");
+ QString initialPath = settings.value("lastExportPath", QVariant(QDir::homePath())).toString();
+ if(initialPath.isEmpty()) initialPath = QDir::homePath() + "/untitled";
+ QString filePath = QFileDialog::getSaveFileName(this, tr("Export As"),initialPath);
+ if (filePath.isEmpty()) {
+ return false;
+ } else {
+ settings.setValue("lastExportPath", QVariant(filePath));
+
+ if (!exportFramesDialog) createExportFramesDialog();
+ exportFramesDialog_hBox->setValue( scribbleArea->getViewRect().toRect().width() );
+ exportFramesDialog_vBox->setValue( scribbleArea->getViewRect().toRect().height() );
+ exportFramesDialog->exec();
+ if(exportFramesDialog->result() == QDialog::Rejected) return false;
+
+ QSize exportSize = QSize(exportFramesDialog_hBox->value(), exportFramesDialog_vBox->value());
+ //QMatrix view = map( QRectF(QPointF(0,0), scribbleArea->size() ), QRectF(QPointF(0,0), exportSize) );
+ QMatrix view = map( scribbleArea->getViewRect(), QRectF(QPointF(0,0), exportSize) );
+ view = scribbleArea->getView() * view;
+
+ QByteArray exportFormat(exportFramesDialog_format->currentText().toLatin1());
+ updateMaxFrame();
+ object->exportFrames(1, maxFrame, view, getCurrentLayer(), exportSize, filePath, exportFormat, -1, false, true, 2);
+ return true;
+ }
+}
+
+bool Editor::exportX() {
+ QSettings settings("Pencil","Pencil");
+ QString initialPath = settings.value("lastExportPath", QVariant(QDir::homePath())).toString();
+ if(initialPath.isEmpty()) initialPath = QDir::homePath() + "/untitled";
+ QString filePath = QFileDialog::getSaveFileName(this, tr("Save As"),initialPath);
+ if (filePath.isEmpty()) {
+ qDebug() << "empty file";
+ return false;
+ } else {
+ settings.setValue("lastExportPath", QVariant(filePath));
+
+ QSize exportSize = scribbleArea->getViewRect().toRect().size();
+ QMatrix view = map( scribbleArea->getViewRect(), QRectF(QPointF(0,0), exportSize) );
+ view = scribbleArea->getView() * view;
+
+ updateMaxFrame();
+ object->exportX(1, maxFrame, view, exportSize, filePath, true, 2);
+ return true;
+ }
+}
+
+
+bool Editor::exportMov() {
+ QSettings settings("Pencil","Pencil");
+ QString initialPath = settings.value("lastExportPath", QVariant(QDir::homePath())).toString();
+ if(initialPath.isEmpty()) initialPath = QDir::homePath() + "/untitled";
+ QString filePath = QFileDialog::getSaveFileName(this, tr("Export As"),initialPath);
+ if (filePath.isEmpty()) {
+ return false;
+ } else {
+ settings.setValue("lastExportPath", QVariant(filePath));
+ if (!exportMovieDialog) createExportMovieDialog();
+ exportMovieDialog_hBox->setValue( scribbleArea->getViewRect().toRect().width() );
+ exportMovieDialog_vBox->setValue( scribbleArea->getViewRect().toRect().height() );
+ exportMovieDialog->exec();
+ if(exportMovieDialog->result() == QDialog::Rejected) return false;
+
+ QSize exportSize = QSize(exportMovieDialog_hBox->value(), exportMovieDialog_vBox->value());
+ QMatrix view = map( scribbleArea->getViewRect(), QRectF(QPointF(0,0), exportSize) );
+ view = scribbleArea->getView() * view;
+
+ updateMaxFrame();
+ object->exportMovie(1, maxFrame, view, getCurrentLayer(), exportSize, filePath, fps);
+ return true;
+ }
+}
+
+bool Editor::exportFlash() {
+ QSettings settings("Pencil","Pencil");
+ QString initialPath = settings.value("lastExportPath", QVariant(QDir::homePath())).toString();
+ if(initialPath.isEmpty()) initialPath = QDir::homePath() + "/untitled";
+ QString filePath = QFileDialog::getSaveFileName(this, tr("Export As"),initialPath);
+ if (filePath.isEmpty()) {
+ return false;
+ } else {
+ settings.setValue("lastExportPath", QVariant(filePath));
+ if (!exportFlashDialog) createExportFlashDialog();
+ exportFlashDialog->exec();
+ if(exportFlashDialog->result() == QDialog::Rejected) return false;
+
+ settings.setValue("flashCompressionLevel", 10-exportFlashDialog_compression->value() );
+
+ QSize exportSize = scribbleArea->getViewRect().toRect().size();
+ QMatrix view = map( scribbleArea->getViewRect(), QRectF(QPointF(0,0), exportSize) );
+ view = scribbleArea->getView() * view;
+
+ updateMaxFrame();
+ object->exportFlash(1, maxFrame, view, exportSize, filePath, fps, exportFlashDialog_compression->value());
+ return true;
+ }
+}
+
+void Editor::exportPalette()
+{
+ QSettings settings("Pencil","Pencil");
+ QString initialPath = settings.value("lastFilePath", QVariant(QDir::homePath())).toString();
+ if(initialPath.isEmpty()) initialPath = QDir::homePath() + "/untitled.xml";
+ QString filePath = QFileDialog::getSaveFileName(this, tr("Export As"),initialPath);
+ if (!filePath.isEmpty()) object->exportPalette(filePath);
+}
+
+void Editor::importPalette()
+{
+ QSettings settings("Pencil","Pencil");
+ QString initialPath = settings.value("lastFilePath", QVariant(QDir::homePath())).toString();
+ if(initialPath.isEmpty()) initialPath = QDir::homePath() + "/untitled.xml";
+ QString filePath = QFileDialog::getOpenFileName(this, tr("Import"),initialPath);
+ if (!filePath.isEmpty()) {
+ object->importPalette(filePath);
+ palette->updateList();
+ }
+}
+
+void Editor::importImage()
+{
+ importImage("fromDialog");
+}
+
+void Editor::importImage(QString filePath)
+{
+ Layer* layer = object->getLayer(currentLayer);
+ if(layer != NULL) {
+ if( layer->type == Layer::BITMAP || layer->type == Layer::VECTOR ) {
+ if(filePath == "fromDialog") {
+ QSettings settings("Pencil","Pencil");
+ QString initialPath = settings.value("lastImportPath", QVariant(QDir::homePath())).toString();
+ if(initialPath.isEmpty()) initialPath = QDir::homePath() + "/untitled";
+ filePath = QFileDialog::getOpenFileName(this, tr("Import image..."),initialPath);
+ if (!filePath.isEmpty()) settings.setValue("lastImportPath", QVariant(filePath));
+ }
+ if (!filePath.isEmpty()) {
+ backup();
+ // --- option 1
+ //((LayerBitmap*)layer)->loadImageAtFrame(filePath, currentFrame);
+ // --- option 2
+ // TO BE IMPROVED
+ if(layer->type == Layer::BITMAP) {
+ BitmapImage* bitmapImage = ((LayerBitmap*)layer)->getBitmapImageAtFrame(currentFrame);
+ if(bitmapImage == NULL) { addKey(); bitmapImage = ((LayerBitmap*)layer)->getBitmapImageAtFrame(currentFrame); }
+ QImage* importedImage = new QImage(filePath);
+ if(!importedImage->isNull()) {
+ QRect boundaries = importedImage->rect();
+ //boundaries.moveTopLeft( scribbleArea->getView().inverted().map(QPoint(0,0)) );
+ boundaries.moveTopLeft( scribbleArea->getCentralPoint().toPoint() - QPoint(boundaries.width()/2, boundaries.height()/2) );
+ BitmapImage* importedBitmapImage = new BitmapImage(NULL, boundaries, *importedImage);
+ if(scribbleArea->somethingSelected) {
+ QRectF selection = scribbleArea->getSelection();
+ if( importedImage->width() <= selection.width() && importedImage->height() <= selection.height() ) {
+ importedBitmapImage->boundaries.moveTopLeft( selection.topLeft().toPoint() );
+ } else {
+ importedBitmapImage->transform( selection.toRect(), true );
+ }
+ }
+ bitmapImage->paste( importedBitmapImage );
+ } else {
+ QMessageBox::warning(this, tr("Warning"),
+ tr("This is not a bitmap image that Pencil can read."),
+ QMessageBox::Ok,
+ QMessageBox::Ok);
+ }
+ }
+ if(layer->type == Layer::VECTOR) {
+ VectorImage* vectorImage = ((LayerVector*)layer)->getVectorImageAtFrame(currentFrame);
+ if(vectorImage == NULL) { addKey(); vectorImage = ((LayerVector*)layer)->getVectorImageAtFrame(currentFrame); }
+ VectorImage* importedVectorImage = new VectorImage(NULL);
+ bool ok = importedVectorImage->read(filePath);
+ if(ok) {
+ importedVectorImage->selectAll();
+ vectorImage->paste( *importedVectorImage );
+ } else {
+ QMessageBox::warning(this, tr("Warning"),
+ tr("This is not a vector image that Pencil can read."),
+ QMessageBox::Ok,
+ QMessageBox::Ok);
+ }
+ }
+ scribbleArea->updateFrame();
+ timeLine->updateContent();
+ }
+ } else {
+ // create a new Bitmap layer ?
+ QMessageBox::warning(this, tr("Warning"),
+ tr("Please select a bitmap or vector layer in order to import images."),
+ QMessageBox::Ok,
+ QMessageBox::Ok);
+ }
+ }
+}
+
+void Editor::importSound()
+{
+ importSound("fromDialog");
+}
+
+void Editor::importSound(QString filePath)
+{
+ Layer* layer = object->getLayer(currentLayer);
+ if(layer != NULL) {
+ if( layer->type == Layer::SOUND) {
+ if(filePath == "fromDialog") {
+ QSettings settings("Pencil","Pencil");
+ QString initialPath = settings.value("lastImportPath", QVariant(QDir::homePath())).toString();
+ if(initialPath.isEmpty()) initialPath = QDir::homePath() + "/untitled";
+ filePath = QFileDialog::getOpenFileName(this, tr("Import sound..."),initialPath);
+ if (!filePath.isEmpty()) settings.setValue("lastImportPath", QVariant(filePath));
+ }
+ if (!filePath.isEmpty()) {
+ ((LayerSound*)layer)->loadSoundAtFrame(filePath, currentFrame);
+ timeLine->updateContent();
+ }
+ } else {
+ // create a new Sound layer ?
+ QMessageBox::warning(this, tr("Warning"),
+ tr("Please select a sound layer in order to import sounds."),
+ QMessageBox::Ok,
+ QMessageBox::Ok);
+ }
+ }
+}
+
+void Editor::updateFrame(int frameNumber) {
+ scribbleArea->updateFrame(frameNumber);
+}
+
+void Editor::updateFrameAndVector(int frameNumber) {
+ scribbleArea->updateAllVectorLayersAt(frameNumber);
+}
+
+void Editor::scrubTo(int frameNumber) {
+ int oldFrame = currentFrame;
+ if(frameNumber < 1) frameNumber = 1;
+ currentFrame = frameNumber;
+ //toolSet->setCounter(frameNumber);
+ //timeLine->setCurrentFrame(currentFrame);
+ timeLine->updateFrame(oldFrame);
+ timeLine->updateFrame(currentFrame);
+ scribbleArea->readCanvasFromCache = true;
+ scribbleArea->update();
+}
+
+void Editor::scrubForward() {
+ scrubTo(currentFrame+1);
+}
+
+void Editor::scrubBackward() {
+ if(currentFrame > 1) scrubTo(currentFrame-1);
+}
+
+/*void Editor::scrubKF() {
+ //timeLine->scrubKF();
+}
+
+void Editor::scrubKB() {
+ //timeLine->scrubKB();
+}*/
+
+void Editor::previousLayer() {
+ currentLayer--;
+ if(currentLayer<0) currentLayer = 0;
+ timeLine->updateContent();
+ scribbleArea->updateAllFrames();
+}
+
+void Editor::nextLayer() {
+ currentLayer++;
+ if(currentLayer == object->getLayerCount()) currentLayer = object->getLayerCount()-1;
+ timeLine->updateContent();
+ scribbleArea->updateAllFrames();
+}
+
+void Editor::addKey() {
+ addKey(currentLayer, currentFrame);
+ scribbleArea->setFocus();
+}
+
+void Editor::addKey(int layerNumber, int &frameNumber) {
+ Layer* layer = object->getLayer(layerNumber);
+ if(layer != NULL) {
+ if(layer->type == Layer::BITMAP || layer->type == Layer::VECTOR || layer->type == Layer::CAMERA) {
+ bool success = false;
+ if(layer->type == Layer::BITMAP) success = ((LayerBitmap*)layer)->addImageAtFrame(frameNumber);
+ if(layer->type == Layer::VECTOR) success = ((LayerVector*)layer)->addImageAtFrame(frameNumber);
+ if(layer->type == Layer::CAMERA) success = ((LayerCamera*)layer)->addImageAtFrame(frameNumber);
+ if(success) {
+ timeLine->updateContent();
+ //scribbleArea->addFrame(frameNumber);
+ } else {
+ frameNumber++;
+ addKey();
+ }
+ }
+ }
+}
+
+void Editor::removeKey() {
+ Layer* layer = object->getLayer(currentLayer);
+ if(layer != NULL) {
+ if(layer->type == Layer::BITMAP) ((LayerBitmap*)layer)->removeImageAtFrame(currentFrame);
+ if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->removeImageAtFrame(currentFrame);
+ if(layer->type == Layer::CAMERA) ((LayerCamera*)layer)->removeImageAtFrame(currentFrame);
+ timeLine->updateContent();
+ scribbleArea->updateFrame();
+ scribbleArea->setFocus();
+ }
+}
+
+void Editor::addFrame(int frameNumber) { // adding a frame to the cache
+ frameList << frameNumber;
+ qSort(frameList);
+ scribbleArea->updateFrame();
+ timeLine->update();
+}
+
+void Editor::addFrame(int frameNumber1, int frameNumber2) { // adding a range of frames to the cache
+ for(int i=frameNumber1; i<=frameNumber2; i++) {
+ frameList << i;
+ }
+ qSort(frameList);
+ scribbleArea->updateFrame();
+ timeLine->update();
+}
+
+void Editor::removeFrame(int frameNumber) {
+ frameList.removeAt( getLastIndexAtFrame(frameNumber) );
+ scribbleArea->updateFrame();
+ timeLine->update();
+}
+///*
+void Editor::getPrevKeyFlip() {
+ currentFrame = getPrevKey(currentFrame);
+ timeLine->update();
+ scribbleArea->updateFrame();
+ printf("Previous key flipped \n");
+}
+
+int Editor::getPrevKey(int frameNumber) {
+ int keyInQuestion = frameNumber;
+ bool nothingFound = true;
+ Layer* layer;
+ if(object->getLayer(currentLayer) != NULL) layer = object->getLayer(currentLayer);
+ else return NULL;
+ while(nothingFound) {
+ --keyInQuestion;
+ if(keyInQuestion == 0) keyInQuestion = object->getLayer(currentLayer)->getMaxFrame();
+ switch(layer->type) {
+ case Layer::BITMAP:
+ if(((LayerBitmap*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;
+ break;
+ case Layer::VECTOR:
+ if(((LayerVector*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;
+ break;
+ case Layer::CAMERA:
+ if(((LayerCamera*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;
+ break;
+ }
+ }
+ return keyInQuestion;
+}
+
+void Editor::getNextKeyFlip() {
+ currentFrame = getNextKey(currentFrame);
+ timeLine->update();
+ scribbleArea->updateFrame();
+ printf("Next key flipped \n");
+}
+
+int Editor::getNextKey(int frameNumber) {
+ int keyInQuestion = frameNumber;
+ bool nothingFound = true;
+ Layer* layer;
+ if(object->getLayer(currentLayer) != NULL) layer = object->getLayer(currentLayer);
+ else return NULL;
+ while(nothingFound) {
+ ++keyInQuestion;
+ if(keyInQuestion > object->getLayer(currentLayer)->getMaxFrame()) keyInQuestion = 1;
+ switch(layer->type) {
+ case Layer::BITMAP:
+ if(((LayerBitmap*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;
+ break;
+ case Layer::VECTOR:
+ if(((LayerVector*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;
+ break;
+ case Layer::CAMERA:
+ if(((LayerCamera*)layer)->getIndexAtFrame(keyInQuestion) != -1) nothingFound = false;
+ break;
+ }
+ }
+ return keyInQuestion;
+}
+
+//*/
+int Editor::getLastIndexAtFrame(int frameNumber) {
+ int position = -1;
+ int index = -1;
+ for(int i=0; i < frameList.size(); i++) {
+ if(frameList.at(i) > position && frameList.at(i) <= frameNumber) {
+ position = frameList.at(i);
+ index = i;
+ }
+ }
+ return index;
+}
+
+int Editor::getLastFrameAtFrame(int frameNumber) {
+ return frameList.at( getLastIndexAtFrame(frameNumber) );
+}
+
+
+
+void Editor::showPreferences() {
+ preferences->show();
+}
+
+void Editor::play() {
+ updateMaxFrame();
+ if(currentFrame > maxFrame) {
+ scrubTo(maxFrame);
+ } else {
+ if(currentFrame == maxFrame) {
+ if( !playing ) {
+ scrubTo(0);
+ } else {
+ if( looping ) { scrubTo(0); } else { startOrStop(); }
+ }
+ } else {
+ startOrStop();
+ }
+ }
+ scribbleArea->setFocus();
+}
+
+void Editor::startOrStop() {
+ if(!playing) {
+ playing = true;
+ timer->start();
+ } else {
+ playing = false;
+ timer->stop();
+ object->stopSoundIfAny();
+ }
+}
+
+void Editor::playNextFrame() {
+ if(currentFrame < maxFrame) {
+ if(sound) object->playSoundIfAny(currentFrame);
+ scrubForward();
+ } else {
+ play();
+ }
+ scribbleArea->setFocus();
+}
+
+void Editor::changeFps(int x) {
+ fps=x;
+ QSettings settings("Pencil","Pencil");
+ settings.setValue("fps", x);
+ timer->setInterval(1000/fps);
+ scribbleArea->setFocus();
+}
+
+int Editor::getFps() {
+ return fps;
+}
+
+void Editor::setLoop() {
+ if (looping) looping=false;
+ else looping=true;
+ scribbleArea->setFocus();
+}
+
+void Editor::setSound() {
+ if(sound) sound = false;
+ else sound = true;
+}
+
+void Editor::setCurrentLayer(int layerNumber) {
+ currentLayer = layerNumber;
+ timeLine->updateContent();
+ scribbleArea->updateAllFrames();
+}
+
+void Editor::switchVisibilityOfLayer(int layerNumber) {
+ Layer* layer = object->getLayer(layerNumber);
+ if(layer != NULL) layer->switchVisibility();
+ scribbleArea->updateAllFrames();
+ timeLine->updateContent();
+}
+
+void Editor::moveLayer(int i, int j) {
+ object->moveLayer(i, j);
+ if(j<i) { currentLayer = j; } else { currentLayer = j-1; }
+ timeLine->updateContent();
+ scribbleArea->updateAllFrames();
+}
+
+void Editor::updateMaxFrame() {
+ maxFrame = -1;
+ for(int i=0; i < object->getLayerCount(); i++) {
+ int frameNumber = object->getLayer(i)->getMaxFrame();
+ if( frameNumber > maxFrame) maxFrame = frameNumber;
+ }
+}
+
+void Editor::dockAllPalettes() {
+ getToolSet()->drawPalette->setFloating(false);
+ getToolSet()->optionPalette->setFloating(false);
+ getToolSet()->displayPalette->setFloating(false);
+ getToolSet()->onionPalette->setFloating(false);
+ getTimeLine()->setFloating(false);
+ getPalette()->setFloating(false);
+}
+
+void Editor::detachAllPalettes() {
+ getToolSet()->drawPalette->setFloating(true);
+ getToolSet()->optionPalette->setFloating(true);
+ getToolSet()->displayPalette->setFloating(true);
+ getToolSet()->onionPalette->setFloating(true);
+ getTimeLine()->setFloating(true);
+ getPalette()->setFloating(true);
+ restorePalettesSettings(false, true, true);
+}
+
+void Editor::restorePalettesSettings(bool restoreFloating, bool restorePosition, bool restoreSize) {
+ QSettings settings("Pencil", "Pencil");
+
+ Palette* colourPalette = getPalette();
+ if(colourPalette != NULL) {
+ QPoint pos = settings.value("colourPalettePosition", QPoint(100, 100)).toPoint();
+ QSize size = settings.value("colourPaletteSize", QSize(400, 300)).toSize();
+ bool floating = settings.value("colourPaletteFloating", false).toBool();
+ if(restoreFloating) colourPalette->setFloating(floating);
+ if(restorePosition) colourPalette->move(pos);
+ if(restoreSize) colourPalette->resize(size);
+ colourPalette->show();
+ }
+
+ TimeLine* timelinePalette = getTimeLine();
+ if(timelinePalette != NULL) {
+ QPoint pos = settings.value("timelinePalettePosition", QPoint(100, 100)).toPoint();
+ QSize size = settings.value("timelinePaletteSize", QSize(400, 300)).toSize();
+ bool floating = settings.value("timelinePaletteFloating", false).toBool();
+ if(restoreFloating) timelinePalette->setFloating(floating);
+ if(restorePosition) timelinePalette->move(pos);
+ if(restoreSize) timelinePalette->resize(size);
+ timelinePalette->show();
+ }
+
+ QDockWidget* drawPalette = getToolSet()->drawPalette;
+ if(drawPalette != NULL) {
+ QPoint pos = settings.value("drawPalettePosition", QPoint(100, 100)).toPoint();
+ QSize size = settings.value("drawPaletteSize", QSize(400, 300)).toSize();
+ bool floating = settings.value("drawPaletteFloating", false).toBool();
+ if(restoreFloating) drawPalette->setFloating(floating);
+ if(restorePosition) drawPalette->move(pos);
+ if(restoreSize) drawPalette->resize(size);
+ drawPalette->show();
+ }
+
+ QDockWidget* optionPalette = getToolSet()->optionPalette;
+ if(optionPalette != NULL) {
+ QPoint pos = settings.value("optionPalettePosition", QPoint(100, 100)).toPoint();
+ QSize size = settings.value("optionPaletteSize", QSize(400, 300)).toSize();
+ bool floating = settings.value("optionPaletteFloating", false).toBool();
+ if(restoreFloating) optionPalette->setFloating(floating);
+ if(restorePosition) optionPalette->move(pos);
+ if(restoreSize) optionPalette->resize(size);
+ optionPalette->show();
+ }
+
+ QDockWidget* displayPalette = getToolSet()->displayPalette;
+ if(optionPalette != NULL) {
+ QPoint pos = settings.value("displayPalettePosition", QPoint(100, 100)).toPoint();
+ QSize size = settings.value("displayPaletteSize", QSize(400, 300)).toSize();
+ bool floating = settings.value("displayPaletteFloating", false).toBool();
+ if(restoreFloating) displayPalette->setFloating(floating);
+ if(restorePosition) displayPalette->move(pos);
+ if(restoreSize) displayPalette->resize(size);
+ displayPalette->show();
+ }
+}
+
+QDomElement Editor::createDomElement(QDomDocument &doc) {
+ QDomElement tag = doc.createElement("editor");
+
+ QDomElement tag1 = doc.createElement("currentLayer");
+ tag1.setAttribute("value", currentLayer);
+ tag.appendChild(tag1);
+ QDomElement tag2 = doc.createElement("currentFrame");
+ tag2.setAttribute("value", currentFrame);
+ tag.appendChild(tag2);
+ QDomElement tag3 = doc.createElement("currentView");
+ QMatrix myView = scribbleArea->getMyView();
+ tag3.setAttribute("m11", myView.m11());
+ tag3.setAttribute("m12", myView.m12());
+ tag3.setAttribute("m21", myView.m21());
+ tag3.setAttribute("m22", myView.m22());
+ tag3.setAttribute("dx", myView.dx());
+ tag3.setAttribute("dy", myView.dy());
+ tag.appendChild(tag3);
+
+ return tag;
+}
+
+bool Editor::loadDomElement(QDomElement docElem, QString filePath) {
+ if(docElem.isNull()) return false;
+ QDomNode tag = docElem.firstChild();
+ while(!tag.isNull()) {
+ QDomElement element = tag.toElement(); // try to convert the node to an element.
+ if(!element.isNull()) {
+ if(element.tagName() == "currentLayer") {
+ currentLayer = element.attribute("value").toInt();
+ }
+ if(element.tagName() == "currentFrame") {
+ currentFrame = element.attribute("value").toInt();
+ }
+ if(element.tagName() == "currentView") {
+ qreal m11 = element.attribute("m11").toDouble();
+ qreal m12 = element.attribute("m12").toDouble();
+ qreal m21 = element.attribute("m21").toDouble();
+ qreal m22 = element.attribute("m22").toDouble();
+ qreal dx = element.attribute("dx").toDouble();
+ qreal dy = element.attribute("dy").toDouble();
+ scribbleArea->setMyView( QMatrix(m11,m12,m21,m22,dx,dy) );
+ }
+ }
+ tag = tag.nextSibling();
+ }
+ return true;
+}
diff -rupN pencil_backup/src/interface/editor.h pencil_dev/src/interface/editor.h
--- pencil_backup/src/interface/editor.h 2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/editor.h 2009-10-01 19:35:38.000000000 -0500
@@ -97,6 +97,7 @@ public:
bool isModified() { return modified; }
int allLayers() { return scribbleArea->allLayers(); }
static QMatrix map(QRectF, QRectF);
+
protected:
void dragEnterEvent(QDragEnterEvent *event);
@@ -208,6 +209,12 @@ public slots:
void detachAllPalettes();
void restorePalettesSettings(bool, bool, bool);
+ void getPrevKeyFlip();
+ void getNextKeyFlip();
+
+ int getPrevKey(int);
+ int getNextKey(int);
+
private slots:
void newDocument();
void openDocument();
diff -rupN pencil_backup/src/interface/editor.h~ pencil_dev/src/interface/editor.h~
--- pencil_backup/src/interface/editor.h~ 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/editor.h~ 2009-09-30 16:31:52.000000000 -0500
@@ -0,0 +1,288 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+*/
+#ifndef EDITOR_H
+#define EDITOR_H
+
+
+#include <QList>
+#include <QMainWindow>
+#include <QLabel>
+#include <QToolButton>
+#include "timeline.h"
+#include "scribblearea.h"
+#include "toolset.h"
+#include "preferences.h"
+#include "palette.h"
+#include "object.h"
+#include "vectorimage.h"
+#include "bitmapimage.h"
+
+class Editor;
+
+class BackupElement : public QObject
+{
+ Q_OBJECT
+ public:
+ enum types { UNDEFINED, BITMAP_MODIF, VECTOR_MODIF };
+ //int type;
+ //BackupElement() { type = UNDEFINED; }
+ virtual int type() { return UNDEFINED; }
+ virtual void restore(Editor*) { qDebug() << "Wrong"; };
+};
+
+class BackupBitmapElement : public BackupElement
+{
+ Q_OBJECT
+ public:
+ int layer, frame;
+ BitmapImage bitmapImage;
+ //BackupBitmapElement() { type = BackupElement::BITMAP_MODIF; }
+ int type() { return BackupElement::BITMAP_MODIF; }
+ void restore(Editor*);
+};
+
+class BackupVectorElement : public BackupElement
+{
+ Q_OBJECT
+ public:
+ int layer, frame;
+ VectorImage vectorImage;
+ //BackupVectorElement() { type = BackupElement::VECTOR_MODIF; }
+ int type() { return BackupElement::VECTOR_MODIF; }
+ void restore(Editor*);
+};
+
+
+class Editor : public QWidget
+{
+ Q_OBJECT
+
+public:
+ Editor(QMainWindow* parent);
+ virtual ~Editor();
+
+ //Object* getObject() { return object; }
+ //bool somethingSelected();
+ Object* object; // the object to be edited by the editor
+ //int currentPenColour, currentFillColour;
+ int currentLayer; // the current layer to be edited/displayed by the editor
+ int currentFrame; // the current frame to be edited/displayed by the editor
+ int maxFrame; // the number of the last frame for the current object
+ QList<int> frameList; // the frames that are to be cached -- should we use a QMap, or a QHash?
+
+ int fps; // the number of frames per second used by the editor
+ QTimer* timer; // the timer used for animation in the editor
+ bool playing;
+ bool looping;
+ bool sound;
+
+ Palette* getPalette() { return palette; }
+ TimeLine* getTimeLine() { return timeLine; }
+ ToolSet* getToolSet() { return toolSet; }
+ Layer* getCurrentLayer(int incr) { if(object != NULL) { return object->getLayer(currentLayer+incr); } else { return NULL; } }
+ Layer* getCurrentLayer() { return getCurrentLayer(0); }
+ bool isModified() { return modified; }
+ int allLayers() { return scribbleArea->allLayers(); }
+ static QMatrix map(QRectF, QRectF);
+
+
+protected:
+ void dragEnterEvent(QDragEnterEvent *event);
+ void dropEvent(QDropEvent *event);
+
+signals:
+ void selectAll();
+
+public slots:
+ void showCounter(int);
+ bool maybeSave();
+ void importImage();
+ void importImage(QString filePath);
+ void importSound();
+ void importSound(QString filePath);
+ void importPalette();
+ void exportPalette();
+ void updateFrame(int frameNumber);
+ void updateFrameAndVector(int frameNumber);
+ void scrubTo(int frameNumber);
+ void scrubForward();
+ void scrubBackward();
+ void play();
+ void startOrStop();
+ void playNextFrame();
+ void changeFps(int);
+ int getFps();
+ void setLoop();
+ void setSound();
+
+ //void scrubKF();
+ //void scrubKB();
+ void previousLayer();
+ void nextLayer();
+
+ void addKey();
+ void addKey(int layerNumber, int &frameNumber);
+ void removeKey();
+
+ void addFrame(int frameNumber);
+ void addFrame(int frameNumber1, int frameNumber2);
+ void removeFrame(int frameNumber);
+ int getLastIndexAtFrame(int frameNumber);
+ int getLastFrameAtFrame(int frameNumber);
+
+ //void altPress();
+ //void altRelease();
+ void showPreferences();
+
+ void newObject();
+ void setObject(Object *object);
+ void updateObject();
+
+ void setCurrentLayer(int layerNumber);
+ void switchVisibilityOfLayer(int layerNumber);
+ void moveLayer(int i, int j);
+ void updateMaxFrame();
+
+ void setWidth(qreal);
+ void applyWidth(qreal);
+ void setFeather(qreal);
+ void applyFeather(qreal);
+ void setOpacity(qreal);
+ void applyOpacity(qreal);
+ void setInvisibility(int);
+ void applyInvisibility(int);
+ void setPressure(int);
+ void applyPressure(int);
+ void setPreserveAlpha(int);
+ void applyPreserveAlpha(int);
+ void setFollowContour(int);
+ void applyFollowContour(int);
+ void selectColour(int);
+ void selectAndApplyColour(int);
+ void setColour(QColor);
+ void changeColour(int);
+ void changeColourName(int);
+ void changeColour(int,QColor);
+ void updateColour(int, QColor);
+ void addColour();
+ void removeColour(int);
+
+ void changeAutosave(int);
+ void changeAutosaveNumber(int);
+
+ void modification();
+ void modification(int);
+ void backup();
+ void backup(int layerNumber, int frameNumber);
+ void undo();
+ void redo();
+ void copy();
+ void paste();
+ void clipboardChanged();
+
+ void newBitmapLayer();
+ void newVectorLayer();
+ void newSoundLayer();
+ void newCameraLayer();
+ void deleteCurrentLayer();
+
+ void toggleMirror();
+ void toggleShowAllLayers();
+ void resetMirror();
+
+ void openRecent();
+
+ void dockAllPalettes();
+ void detachAllPalettes();
+ void restorePalettesSettings(bool, bool, bool);
+///*
+ void getPrevKeyFlip();
+ void getNextKeyFlip();
+
+ int getPrevKey(int);
+ int getNextKey(int);
+//*/
+
+private slots:
+ void newDocument();
+ void openDocument();
+ bool saveDocument();
+ void saveForce();
+ bool exportX();
+ bool exportSeq();
+ bool exportMov();
+ bool exportFlash();
+
+ void showPalette();
+ void about();
+ void helpBox();
+ void saveLength(QString);
+
+private:
+ bool openObject(QString);
+ bool saveObject(QString);
+
+ ScribbleArea *scribbleArea;
+ TimeLine *timeLine;
+ ToolSet *toolSet;
+ Palette *palette;
+ Preferences *preferences;
+ QMainWindow *mainWindow;
+
+ QString savedName;
+ bool altpress;
+ bool modified;
+ int numberOfModifications;
+
+ bool autosave;
+ int autosaveNumber;
+
+ // backup
+ int backupIndex;
+ QList<BackupElement*> backupList;
+ void clearBackup();
+ int lastModifiedFrame, lastModifiedLayer;
+
+ // clipboard
+ bool clipboardBitmapOk, clipboardVectorOk;
+ BitmapImage clipboardBitmapImage;
+ VectorImage clipboardVectorImage;
+
+ // dialogs
+ void createExportFramesSizeBox();
+ void createExportMovieSizeBox();
+ void createExportFramesDialog();
+ void createExportMovieDialog();
+ void createExportFlashDialog();
+ void createNewDocumentDialog();
+ QDialog *newDocumentDialog;
+ QDialog *exportFramesDialog;
+ QDialog *exportMovieDialog;
+ QDialog *exportFlashDialog;
+ QSpinBox *exportFramesDialog_hBox;
+ QSpinBox *exportFramesDialog_vBox;
+ QSpinBox *exportMovieDialog_hBox;
+ QSpinBox *exportMovieDialog_vBox;
+ QComboBox *exportFramesDialog_format;
+ QComboBox *exportMovieDialog_format;
+ QSlider* exportFlashDialog_compression;
+
+ // saving (XML)
+ QDomElement createDomElement(QDomDocument &doc);
+ bool loadDomElement(QDomElement element, QString filePath);
+};
+
+#endif
diff -rupN pencil_backup/src/interface/mainwindow.cpp pencil_dev/src/interface/mainwindow.cpp
--- pencil_backup/src/interface/mainwindow.cpp 2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/mainwindow.cpp 2009-09-30 15:41:11.000000000 -0500
@@ -324,53 +324,6 @@ void MainWindow::closeEvent(QCloseEvent
}
}
-void MainWindow::keyPressEvent( QKeyEvent *e ) {
- switch (e->key()) {
- case Qt::Key_H:
- editor->switchVisibilityOfLayer(editor->currentLayer);
- break;
- case Qt::Key_D:
- editor->scrubForward();
- break;
- case Qt::Key_Right:
- //editor->scrubForward();
- break;
- case Qt::Key_S:
- editor->scrubBackward();
- break;
- case Qt::Key_Left:
- //editor->scrubBackward();
- break;
- case Qt::Key_Up:
- //editor->previousLayer();
- break;
- case Qt::Key_Down:
- //editor->nextLayer();
- break;
- case Qt::Key_Space:
- editor->play();
- break;
- case Qt::Key_Alt:
- //editor->altPress();
- break;
- case Qt::Key_Return:
- editor->addKey();
- break;
- default:
- QWidget::keyPressEvent(e);
- }
-}
-
-void MainWindow::keyReleaseEvent( QKeyEvent *e ) {
- switch (e->key()) {
- case Qt::Key_Alt:
- //editor->altRelease();
- break;
- default:
- QWidget::keyPressEvent(e);
- }
-}
-
void MainWindow::readSettings() {
QSettings settings("Pencil", "Pencil");
QRect desktopRect = QApplication::desktop()->screenGeometry();
diff -rupN pencil_backup/src/interface/mainwindow.cpp~ pencil_dev/src/interface/mainwindow.cpp~
--- pencil_backup/src/interface/mainwindow.cpp~ 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/mainwindow.cpp~ 2009-09-29 21:16:45.000000000 -0500
@@ -0,0 +1,395 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+*/
+#include <QtGui>
+#include "editor.h"
+#include "mainwindow.h"
+#include "object.h"
+#include <interfaces.h>
+
+MainWindow::MainWindow() {
+ editor = new Editor(this);
+ //Object* object = new Object();
+ //object->defaultInitialisation();
+ //editor->setObject( object );
+ editor->newObject();
+
+ arrangePalettes();
+
+ //editor->getTimeLine()->close();
+
+ createMenus();
+ loadPlugins();
+ readSettings();
+}
+
+void MainWindow::arrangePalettes() {
+ setCentralWidget(editor);
+ addDockWidget(Qt::RightDockWidgetArea, editor->getPalette());
+ //editor->getPalette()->close();
+ addDockWidget(Qt::LeftDockWidgetArea, editor->getToolSet()->drawPalette);
+ addDockWidget(Qt::LeftDockWidgetArea, editor->getToolSet()->optionPalette);
+ addDockWidget(Qt::LeftDockWidgetArea, editor->getToolSet()->displayPalette);
+ //addDockWidget(Qt::LeftDockWidgetArea, editor->getToolSet()->onionPalette);
+ //addDockWidget(Qt::LeftDockWidgetArea, editor->getToolSet()->keyPalette);
+
+ //addDockWidget(Qt::BottomDockWidgetArea, editor->getToolSet()->timePalette);
+ addDockWidget(Qt::BottomDockWidgetArea, editor->getTimeLine());
+
+ editor->getToolSet()->drawPalette->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
+ editor->getToolSet()->optionPalette->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
+ //editor->getToolSet()->keyPalette->setFeatures(QDockWidget::NoDockWidgetFeatures);
+ //editor->getToolSet()->onionPalette->setFeatures(QDockWidget::NoDockWidgetFeatures);
+ editor->getToolSet()->displayPalette->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
+ editor->getToolSet()->keyPalette->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
+ editor->getToolSet()->onionPalette->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
+ editor->getToolSet()->timePalette->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
+ editor->getTimeLine()->setFeatures(QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable);
+}
+
+void MainWindow::createMenus() {
+ // ---------- Actions -------------
+ exitAct = new QAction(tr("E&xit"), this);
+ exitAct->setShortcut(tr("Ctrl+Q"));
+ connect(exitAct, SIGNAL(triggered()), editor, SLOT(close()));
+
+ newAct = new QAction(tr("&New"), this);
+ newAct->setShortcut(tr("Ctrl+N"));
+ connect(newAct, SIGNAL(triggered()), editor, SLOT(newDocument()));
+
+ openAct = new QAction(tr("&Open..."), this);
+ openAct->setShortcut(tr("Ctrl+O"));
+ connect(openAct, SIGNAL(triggered()), editor, SLOT(openDocument()));
+
+ saveAct = new QAction(tr("Save &As..."), this);
+ saveAct->setShortcut(tr("Ctrl+Shift+S"));
+ connect(saveAct, SIGNAL(triggered()), editor, SLOT(saveDocument()));
+
+ savAct = new QAction(tr("&Save"), this);
+ savAct->setShortcut(tr("Ctrl+S"));
+ connect(savAct, SIGNAL(triggered()), editor, SLOT(saveForce()));
+
+ exportXAct = new QAction(tr("&X-Sheet..."), this);
+ exportXAct->setShortcut(tr("Ctrl+Alt+X"));
+ connect(exportXAct, SIGNAL(triggered()), editor, SLOT(exportX()));
+
+ exportAct = new QAction(tr("&Image Sequence..."), this);
+ exportAct->setShortcut(tr("Ctrl+Alt+S"));
+ connect(exportAct, SIGNAL(triggered()), editor, SLOT(exportSeq()));
+
+ exportMovAct = new QAction(tr("&Movie..."), this);
+ exportMovAct->setShortcut(tr("Ctrl+Alt+M"));
+ connect(exportMovAct, SIGNAL(triggered()), editor, SLOT(exportMov()));
+
+ exportFlashAct = new QAction(tr("&Flash/SWF..."), this);
+ exportFlashAct->setShortcut(tr("Ctrl+Alt+F"));
+ connect(exportFlashAct, SIGNAL(triggered()), editor, SLOT(exportFlash()));
+
+ exportFlashAct = new QAction(tr("&Flash/SWF..."), this);
+ exportFlashAct->setShortcut(tr("Ctrl+Alt+F"));
+ connect(exportFlashAct, SIGNAL(triggered()), editor, SLOT(exportFlash()));
+
+ exportPaletteAct = new QAction(tr("Palette..."), this);
+ connect(exportPaletteAct, SIGNAL(triggered()), editor, SLOT(exportPalette()));
+
+ importPaletteAct = new QAction(tr("Palette..."), this);
+ connect(importPaletteAct, SIGNAL(triggered()), editor, SLOT(importPalette()));
+
+ importAct = new QAction(tr("&Import image..."), this);
+ importAct->setShortcut(tr("Ctrl+I"));
+ connect(importAct, SIGNAL(triggered()), editor, SLOT(importImage()));
+
+ importSndAct = new QAction(tr("&Import sound..."), this);
+// importAct->setShortcut(tr("Ctrl+I"));
+ connect(importSndAct, SIGNAL(triggered()), editor, SLOT(importSound()));
+
+ aboutAct = new QAction(tr("&About"), this);
+ connect(aboutAct, SIGNAL(triggered()), editor, SLOT(about()));
+
+ helpMe = new QAction(tr("&Help"), this);
+ helpMe->setShortcut(tr("Ctrl+?"));
+ connect(helpMe, SIGNAL(triggered()), editor, SLOT(helpBox()));
+
+ aboutQtAct = new QAction(tr("About &Qt"), this);
+ connect(aboutQtAct, SIGNAL(triggered()), qApp, SLOT(aboutQt()));
+
+ undoAct = new QAction(tr("Undo"), this);
+ undoAct->setShortcut(tr("Ctrl+Z"));
+ connect(undoAct, SIGNAL(triggered()), editor, SLOT(undo()));
+
+ redoAct = new QAction(tr("Redo"), this);
+ redoAct->setShortcut(tr("Ctrl+Shift+Z"));
+ connect(redoAct, SIGNAL(triggered()), editor, SLOT(redo()));
+
+ copyAct = new QAction(tr("Copy"), this);
+ copyAct->setShortcut(tr("Ctrl+C"));
+ connect(copyAct, SIGNAL(triggered()), editor, SLOT(copy()));
+
+ pasteAct = new QAction(tr("Paste"), this);
+ pasteAct->setShortcut(tr("Ctrl+V"));
+ connect(pasteAct, SIGNAL(triggered()), editor, SLOT(paste()));
+
+ selectAllAct = new QAction(tr("Select All"), this);
+ selectAllAct->setShortcut(tr("Ctrl+A"));
+ connect(selectAllAct, SIGNAL(triggered()), editor, SIGNAL(selectAll()));
+
+ preferencesAct = new QAction(tr("Preferences"), this);
+ connect(preferencesAct, SIGNAL(triggered()), editor, SLOT(showPreferences()));
+
+
+ newBitmapLayerAct = new QAction(tr("New Bitmap Layer"), this);
+ connect(newBitmapLayerAct, SIGNAL(triggered()), editor, SLOT(newBitmapLayer()));
+
+ newVectorLayerAct = new QAction(tr("New Vector Layer"), this);
+ connect(newVectorLayerAct, SIGNAL(triggered()), editor, SLOT(newVectorLayer()));
+
+ newSoundLayerAct = new QAction(tr("New Sound Layer"), this);
+ connect(newSoundLayerAct, SIGNAL(triggered()), editor, SLOT(newSoundLayer()));
+
+ newCameraLayerAct = new QAction(tr("New Camera Layer"), this);
+ connect(newCameraLayerAct, SIGNAL(triggered()), editor, SLOT(newCameraLayer()));
+
+ deleteLayerAct = new QAction(tr("Delete Current Layer"), this);
+ connect(deleteLayerAct, SIGNAL(triggered()), editor, SLOT(deleteCurrentLayer()));
+
+
+ dockAllPalettesAct = new QAction(tr("Dock All Palettes"), this);
+ connect(dockAllPalettesAct, SIGNAL(triggered()), editor, SLOT(dockAllPalettes()));
+
+ detachAllPalettesAct = new QAction(tr("Detach All Palettes"), this);
+ connect(detachAllPalettesAct, SIGNAL(triggered()), editor, SLOT(detachAllPalettes()));
+
+ // --------------- Menus ------------------
+
+ importMenu = new QMenu(tr("Import"), this);
+ importMenu->addAction(importPaletteAct);
+
+ exportMenu = new QMenu(tr("Export"), this);
+ exportMenu->addAction(exportXAct);
+ exportMenu->addAction(exportAct);
+ exportMenu->addAction(exportMovAct);
+ exportMenu->addAction(exportFlashAct);
+ exportMenu->addSeparator();
+ exportMenu->addAction(exportPaletteAct);
+
+ openRecentMenu = new QMenu(tr("Open recent..."), this);
+
+ fileMenu = new QMenu(tr("&File"), this);
+ fileMenu->addAction(newAct);
+ fileMenu->addAction(openAct);
+ fileMenu->addMenu(openRecentMenu);
+ fileMenu->addAction(savAct);
+ fileMenu->addAction(saveAct);
+ fileMenu->addSeparator();
+ fileMenu->addMenu(importMenu);
+ fileMenu->addMenu(exportMenu);
+
+ editMenu = new QMenu(tr("&Edit"), this);
+ editMenu->addAction(undoAct);
+ editMenu->addAction(redoAct);
+ editMenu->addSeparator();
+ editMenu->addAction(copyAct);
+ editMenu->addAction(pasteAct);
+ editMenu->addSeparator();
+ editMenu->addAction(selectAllAct);
+ editMenu->addSeparator();
+ editMenu->addAction(importAct);
+ editMenu->addAction(importSndAct);
+ editMenu->addSeparator();
+ editMenu->addAction(preferencesAct);
+
+ layerMenu = new QMenu(tr("&Layer"), this);
+ layerMenu->addAction(newBitmapLayerAct);
+ layerMenu->addAction(newVectorLayerAct);
+ layerMenu->addAction(newSoundLayerAct);
+ layerMenu->addAction(newCameraLayerAct);
+ layerMenu->addSeparator();
+ layerMenu->addAction(deleteLayerAct);
+
+ helpMenu = new QMenu(tr("&Help"), this);
+ helpMenu->addAction(helpMe);
+ helpMenu->addAction(aboutAct);
+ helpMenu->addAction(aboutQtAct);
+
+ windowsMenu = new QMenu(tr("Windows"), this);
+ windowsMenu->addAction(dockAllPalettesAct);
+ windowsMenu->addAction(detachAllPalettesAct);
+
+ menuBar()->addMenu(fileMenu);
+ menuBar()->addMenu(editMenu);
+ menuBar()->addMenu(layerMenu);
+ menuBar()->addMenu(helpMenu);
+ menuBar()->addMenu(windowsMenu);
+}
+
+void MainWindow::loadPlugins() {
+ qDebug() << "MainWindow loadplugins" << this << this->thread();
+ // foreach (QObject *plugin, QPluginLoader::staticInstances()) populateMenus(plugin); // static plugins
+ QDir pluginsDir = QDir(qApp->applicationDirPath());
+ #if defined(Q_OS_WIN)
+ if (pluginsDir.dirName().toLower() == "debug" || pluginsDir.dirName().toLower() == "release")
+ pluginsDir.cdUp();
+ #elif defined(Q_OS_MAC)
+ if (pluginsDir.dirName() == "MacOS") {
+ pluginsDir.cdUp();
+ }
+ #endif
+ pluginsDir.cd("plugins");
+
+ qDebug() << "Plugin dir = " << pluginsDir.dirName();
+ /*foreach (QString fileName, pluginsDir.entryList(QDir::Files)) {
+ QPluginLoader loader(pluginsDir.absoluteFilePath(fileName));
+ QObject *plugin = loader.instance();
+ qDebug() << "loader " << loader.thread();
+ qDebug() << "plugin " << fileName << plugin << plugin->thread();
+ if (plugin) {
+ plugin->moveToThread(this->thread());
+ populateMenus(plugin);
+ //pluginFileNames += fileName;
+ }
+ }*/
+
+ //brushMenu->setEnabled(!brushActionGroup->actions().isEmpty());
+ //shapesMenu->setEnabled(!shapesMenu->actions().isEmpty());
+ //filterMenu->setEnabled(!filterMenu->actions().isEmpty());
+}
+
+void MainWindow::populateMenus(QObject *plugin) {
+ qDebug() << "MainWindow populateMenus" << this << this->thread();
+ qDebug() << "MainWindow populateMenus" << plugin << plugin->thread();
+ /*BrushInterface *iBrush = qobject_cast<BrushInterface *>(plugin);
+ if (iBrush) addToMenu(plugin, iBrush->brushes(), brushMenu, SLOT(changeBrush()), brushActionGroup);
+
+ ShapeInterface *iShape = qobject_cast<ShapeInterface *>(plugin);
+ if (iShape) addToMenu(plugin, iShape->shapes(), shapesMenu, SLOT(insertShape()));
+
+ FilterInterface *iFilter = qobject_cast<FilterInterface *>(plugin);
+ if (iFilter) addToMenu(plugin, iFilter->filters(), filterMenu, SLOT(applyFilter()));*/
+
+ ExportInterface *exportPlugin = qobject_cast<ExportInterface *>(plugin);
+ if (exportPlugin) addToMenu(plugin, exportPlugin->name(), exportMenu, SLOT(exportFile()));
+}
+
+void MainWindow::addToMenu(QObject *plugin, const QString text, QMenu *menu, const char *member, QActionGroup *actionGroup) {
+ qDebug() << "MainWindow populateMenus" << this << this->thread();
+ qDebug() << "MainWindow populateMenus" << plugin << plugin->thread();
+ qDebug() << "addToMenu 1";
+ QAction *action = new QAction(text, plugin);
+ qDebug() << "addToMenu 2";
+ connect(action, SIGNAL(triggered()), this, member);
+ menu->addAction(action);
+ if (actionGroup) {
+ action->setCheckable(true);
+ actionGroup->addAction(action);
+ }
+}
+
+void MainWindow::exportFile() {
+ QAction *action = qobject_cast<QAction *>(sender());
+ ExportInterface *exportPlugin = qobject_cast<ExportInterface *>(action->parent());
+ if(exportPlugin) {
+ //exportPlugin->exportFile();
+ } else {
+ qDebug() << "exportPlugin is null";
+ }
+ //const QImage image = iFilter->filterImage(action->text(), paintArea->image(), this);
+ //paintArea->setImage(image);
+}
+
+void MainWindow::setOpacity(int opacity) {
+ QSettings settings("Pencil","Pencil");
+ settings.setValue("windowOpacity", 100-opacity);
+ setWindowOpacity(opacity/100.0);
+}
+
+void Main
+
+void MainWindow::closeEvent(QCloseEvent *event)
+{
+ if (editor->maybeSave()) {
+ writeSettings();
+ event->accept();
+ } else {
+ event->ignore();
+ }
+}
+
+void MainWindow::readSettings() {
+ QSettings settings("Pencil", "Pencil");
+ QRect desktopRect = QApplication::desktop()->screenGeometry();
+ desktopRect.adjust(80,80,-80,-80);
+ //QPoint pos = settings.value("editorPosition", QPoint( qMax(0, (desktopRect.width()-800)/2), qMax(0, (desktopRect.height()-600)/2) )).toPoint();
+ QPoint pos = settings.value("editorPosition", desktopRect.topLeft() ).toPoint();
+ //QSize size = settings.value("editorSize", QSize(800, 600)).toSize();
+ QSize size = settings.value("editorSize", desktopRect.size() ).toSize();
+ move(pos);
+ resize(size);
+
+ editor->restorePalettesSettings(true, true, true);
+
+ QString myPath = settings.value("lastFilePath", QVariant(QDir::homePath())).toString();
+ addRecentFile(myPath);
+
+ setOpacity(100-settings.value("windowOpacity").toInt());
+ //initialiseStyle();
+}
+
+void MainWindow::writeSettings() {
+ QSettings settings("Pencil", "Pencil");
+ settings.setValue("editorPosition", pos());
+ settings.setValue("editorSize", size());
+
+ Palette* colourPalette = editor->getPalette();
+ if(colourPalette != NULL) {
+ settings.setValue("colourPalettePosition", colourPalette->pos());
+ settings.setValue("colourPaletteSize", colourPalette->size());
+ settings.setValue("colourPaletteFloating", colourPalette->isFloating());
+ }
+
+ TimeLine* timelinePalette = editor->getTimeLine();
+ if(timelinePalette != NULL) {
+ settings.setValue("timelinePalettePosition", timelinePalette->pos());
+ settings.setValue("timelinePaletteSize", timelinePalette->size());
+ settings.setValue("timelinePaletteFloating", timelinePalette->isFloating());
+ }
+
+ QDockWidget* drawPalette = editor->getToolSet()->drawPalette;
+ if(drawPalette != NULL) {
+ settings.setValue("drawPalettePosition", drawPalette->pos());
+ settings.setValue("drawPaletteSize", drawPalette->size());
+ settings.setValue("drawPaletteFloating", drawPalette->isFloating());
+ }
+
+ QDockWidget* optionPalette = editor->getToolSet()->optionPalette;
+ if(optionPalette != NULL) {
+ settings.setValue("optionPalettePosition", optionPalette->pos());
+ settings.setValue("optionPaletteSize", optionPalette->size());
+ settings.setValue("optionPaletteFloating", optionPalette->isFloating());
+ }
+
+ QDockWidget* displayPalette = editor->getToolSet()->displayPalette;
+ if(optionPalette != NULL) {
+ settings.setValue("displayPalettePosition", displayPalette->pos());
+ settings.setValue("displayPaletteSize", displayPalette->size());
+ settings.setValue("displayPaletteFloating", displayPalette->isFloating());
+ }
+
+}
+
+void MainWindow::addRecentFile(QString filePath) {
+ QAction* openThisFileAct = new QAction(filePath, this);
+ connect(openThisFileAct, SIGNAL(triggered()), editor, SLOT(openRecent()));
+ openRecentMenu->addAction(openThisFileAct);
+}
diff -rupN pencil_backup/src/interface/mainwindow.h pencil_dev/src/interface/mainwindow.h
--- pencil_backup/src/interface/mainwindow.h 2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/mainwindow.h 2009-09-29 20:59:42.000000000 -0500
@@ -39,8 +39,6 @@ private:
void addToMenu(QObject *plugin, const QString text, QMenu *menu, const char *member, QActionGroup *actionGroup = 0);
void closeEvent(QCloseEvent *);
- void keyPressEvent( QKeyEvent *e);
- void keyReleaseEvent( QKeyEvent *e);
void readSettings();
void writeSettings();
diff -rupN pencil_backup/src/interface/mainwindow.h~ pencil_dev/src/interface/mainwindow.h~
--- pencil_backup/src/interface/mainwindow.h~ 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/mainwindow.h~ 2009-09-29 20:57:57.000000000 -0500
@@ -0,0 +1,89 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+*/
+#include <QtGui>
+#include <QObject>
+#include "editor.h"
+class MainWindow : public QMainWindow
+{
+ Q_OBJECT
+
+public:
+ MainWindow();
+ //void initialiseStyle();
+ void addRecentFile(QString filePath);
+
+public slots:
+ void setOpacity(int opacity);
+
+private slots:
+ void exportFile();
+
+private:
+ void arrangePalettes();
+ void createMenus();
+ void loadPlugins();
+ void populateMenus(QObject *plugin);
+ void addToMenu(QObject *plugin, const QString text, QMenu *menu, const char *member, QActionGroup *actionGroup = 0);
+
+ void closeEvent(QCloseEvent *);
+ void readSettings();
+ void writeSettings();
+
+ Editor *editor;
+
+ QMenu *fileMenu;
+ QMenu *openRecentMenu;
+ QMenu *importMenu;
+ QMenu *exportMenu;
+ QMenu *editMenu;
+ QMenu *layerMenu;
+ QMenu *helpMenu;
+ QMenu *windowsMenu;
+
+ QAction *newAct;
+ QAction *openAct;
+ QAction *saveAct;
+ QAction *exitAct;
+ QAction *helpMe;
+ QAction *aboutAct;
+ QAction *aboutQtAct;
+ QAction *exportXAct;
+ QAction *exportAct;
+ QAction *exportMovAct;
+ QAction *exportFlashAct;
+ QAction *exportPaletteAct;
+ QAction *importPaletteAct;
+ QAction *savAct;
+ QAction *importAct;
+ QAction *undoAct;
+ QAction *redoAct;
+ QAction *copyAct;
+ QAction *pasteAct;
+ QAction *selectAllAct;
+ QAction *importSndAct;
+ QAction *preferencesAct;
+
+ QAction *newBitmapLayerAct;
+ QAction *newVectorLayerAct;
+ QAction *newSoundLayerAct;
+ QAction *newCameraLayerAct;
+ QAction *deleteLayerAct;
+
+ QAction *dockAllPalettesAct;
+ QAction *detachAllPalettesAct;
+};
+
+
diff -rupN pencil_backup/src/interface/preferences.cpp pencil_dev/src/interface/preferences.cpp
--- pencil_backup/src/interface/preferences.cpp 2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/preferences.cpp 2009-10-01 20:24:03.000000000 -0500
@@ -15,7 +15,7 @@ GNU General Public License for more deta
*/
#include <QtGui>
#include "preferences.h"
-#include "scribblearea.h";
+#include "scribblearea.h"
Preferences::Preferences()
{
@@ -310,10 +310,14 @@ GeneralPage::GeneralPage(QWidget *parent
TimelinePage::TimelinePage(QWidget *parent) : QWidget(parent) {
QSettings settings("Pencil","Pencil");
-
- QVBoxLayout *lay = new QVBoxLayout();
+ QVBoxLayout *generalLay = new QVBoxLayout();
+ QGridLayout *onionLay = new QGridLayout();
QGroupBox* timeLineBox = new QGroupBox(tr("Time Line"));
+ QGroupBox* onionSkinBox = new QGroupBox(tr("Onion Skin"));
+
+ // General timeline buttons
+
QCheckBox *drawLabel = new QCheckBox(tr("Draw timeline labels"));
QLabel *fontSizeLabel = new QLabel(tr("Labels font size"));
QSpinBox *fontSize = new QSpinBox();
@@ -354,17 +358,75 @@ TimelinePage::TimelinePage(QWidget *pare
//lay->addWidget(drawLabel);
//lay->addWidget(fontSizeLabel);
//lay->addWidget(fontSize);
- lay->addWidget(frameSizeLabel);
- lay->addWidget(frameSize);
- lay->addWidget(lengthSizeLabel);
- lay->addWidget(lengthSize);
- lay->addWidget(scrubBox);
- timeLineBox->setLayout(lay);
-
- QVBoxLayout *lay2 = new QVBoxLayout();
- lay2->addWidget(timeLineBox);
- lay2->addStretch(1);
- setLayout(lay2);
+ generalLay->addWidget(frameSizeLabel);
+ generalLay->addWidget(frameSize);
+ generalLay->addWidget(lengthSizeLabel);
+ generalLay->addWidget(lengthSize);
+ generalLay->addWidget(scrubBox);
+ timeLineBox->setLayout(generalLay);
+
+ // Onion skin buttons
+
+ QLabel *onionOpacityLabel = new QLabel(tr("Opacity"));
+ QLabel *onionFrameLabel = new QLabel(tr("Straight ahead"));
+ QLabel *onionInbetweenLabel = new QLabel(tr("Inbetween"));
+ QLabel *onionCurrentFrameLabel = new QLabel(tr("*current frame*"));
+
+ QSlider *onionOpacity = new QSlider(Qt::Horizontal);
+ onionOpacity->setToolTip(tr("Opacity of onion skin frames"));
+ QSpinBox *onionFrameNumber = new QSpinBox();
+ onionFrameNumber->setToolTip(tr("Number of frames to show in straight ahead mode"));
+ QCheckBox *previousprevious = new QCheckBox();
+ previousprevious->setToolTip(tr("Frame before previous"));
+ QCheckBox *previous = new QCheckBox();
+ previous->setToolTip(tr("Previous frame"));
+ QCheckBox *next = new QCheckBox();
+ next->setToolTip(tr("Next frame"));
+ QCheckBox *nextnext = new QCheckBox();
+ nextnext->setToolTip(tr("Frame after next"));
+
+ onionOpacity->setMinimum(0);
+ onionOpacity->setMaximum(100);
+ onionOpacity->setSliderPosition(30);
+ onionFrameNumber->setMinimum(1);
+ onionFrameNumber->setMaximum(20);
+ onionFrameNumber->setValue(5);
+ previousprevious->setChecked(false);
+ previous->setChecked(true);
+ next->setChecked(true);
+ nextnext->setChecked(false);
+
+ connect(onionOpacity, SIGNAL(valueChanged(int)), parent, SIGNAL(onionOpacityChange(int)));
+ connect(onionFrameNumber, SIGNAL(valueChanged(int)), parent, SIGNAL(onionStraightAheadChange(int)));
+ connect(previousprevious, SIGNAL(stateChanged(int)), parent, SIGNAL(onionPreviousPreviousChange(int)));
+ connect(previous, SIGNAL(stateChanged(int)), parent, SIGNAL(onionPreviousChange(int)));
+ connect(next, SIGNAL(stateChanged(int)), parent, SIGNAL(onionNextChange(int)));
+ connect(nextnext, SIGNAL(stateChanged(int)), parent, SIGNAL(onionNextNextChange(int)));
+
+ QGroupBox *onionInbetweenBox = new QGroupBox();
+ QGridLayout *onionInbetweenBoxLayout = new QGridLayout();
+ onionInbetweenBox->setLayout(onionInbetweenBoxLayout);
+ onionInbetweenBoxLayout->addWidget(previousprevious, 0, 0);
+ onionInbetweenBoxLayout->addWidget(previous, 0, 1);
+ onionInbetweenBoxLayout->addWidget(onionCurrentFrameLabel, 0, 2);
+ onionInbetweenBoxLayout->addWidget(next, 0, 3);
+ onionInbetweenBoxLayout->addWidget(nextnext, 0, 4);
+
+ onionSkinBox->setLayout(onionLay);
+ onionLay->addWidget(onionOpacityLabel, 0, 0);
+ onionLay->addWidget(onionOpacity, 0, 1);
+ onionLay->addWidget(onionFrameLabel, 1, 0);
+ onionLay->addWidget(onionInbetweenLabel, 1, 1);
+ onionLay->addWidget(onionFrameNumber, 2, 0);
+ onionLay->addWidget(onionInbetweenBox, 2, 1);
+
+ // Generic timeline settings
+
+ QVBoxLayout *fullLay = new QVBoxLayout();
+ fullLay->addWidget(timeLineBox);
+ fullLay->addWidget(onionSkinBox);
+ fullLay->addStretch(1);
+ setLayout(fullLay);
}
FilesPage::FilesPage(QWidget *parent) : QWidget(parent) {
diff -rupN pencil_backup/src/interface/preferences.cpp~ pencil_dev/src/interface/preferences.cpp~
--- pencil_backup/src/interface/preferences.cpp~ 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/preferences.cpp~ 2009-10-01 20:17:25.000000000 -0500
@@ -0,0 +1,465 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+*/
+#include <QtGui>
+#include "preferences.h"
+#include "scribblearea.h"
+
+Preferences::Preferences()
+ {
+ contentsWidget = new QListWidget;
+ contentsWidget->setViewMode(QListView::IconMode);
+ contentsWidget->setIconSize(QSize(96, 84));
+ contentsWidget->setMovement(QListView::Static);
+ contentsWidget->setMaximumWidth(128);
+ contentsWidget->setSpacing(12);
+
+ pagesWidget = new QStackedWidget;
+ pagesWidget->addWidget(new GeneralPage(this));
+ pagesWidget->addWidget(new FilesPage(this));
+ pagesWidget->addWidget(new TimelinePage(this));
+ //pagesWidget->addWidget(new QueryPage);
+
+ QPushButton *closeButton = new QPushButton(tr("Close"));
+
+ createIcons();
+ contentsWidget->setCurrentRow(0);
+
+ connect(closeButton, SIGNAL(clicked()), this, SLOT(close()));
+
+ QHBoxLayout *horizontalLayout = new QHBoxLayout;
+ horizontalLayout->addWidget(contentsWidget);
+ horizontalLayout->addWidget(pagesWidget, 1);
+
+ QHBoxLayout *buttonsLayout = new QHBoxLayout;
+ buttonsLayout->addStretch(1);
+ buttonsLayout->addWidget(closeButton);
+
+ QVBoxLayout *mainLayout = new QVBoxLayout;
+ mainLayout->addLayout(horizontalLayout);
+ mainLayout->addStretch(1);
+ mainLayout->addSpacing(12);
+ mainLayout->addLayout(buttonsLayout);
+ setLayout(mainLayout);
+
+ setWindowTitle(tr("Preferences"));
+ }
+
+ void Preferences::createIcons()
+ {
+ QListWidgetItem *generalButton = new QListWidgetItem(contentsWidget);
+ generalButton->setIcon(QIcon(":icons/prefspencil.png"));
+ generalButton->setText(tr("General"));
+ generalButton->setTextAlignment(Qt::AlignHCenter);
+ generalButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
+
+ QListWidgetItem *filesButton = new QListWidgetItem(contentsWidget);
+ filesButton->setIcon(QIcon(":icons/prefs-files.png"));
+ filesButton->setText(tr("Files"));
+ filesButton->setTextAlignment(Qt::AlignHCenter);
+ filesButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
+
+ QListWidgetItem *timelineButton = new QListWidgetItem(contentsWidget);
+ timelineButton->setIcon(QIcon(":icons/prefstimeline.png"));
+ timelineButton->setText(tr("Time Line"));
+ timelineButton->setTextAlignment(Qt::AlignHCenter);
+ timelineButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);
+
+ /*QListWidgetItem *queryButton = new QListWidgetItem(contentsWidget);
+ queryButton->setIcon(QIcon(":/images/query.png"));
+ queryButton->setText(tr("Query"));
+ queryButton->setTextAlignment(Qt::AlignHCenter);
+ queryButton->setFlags(Qt::ItemIsSelectable | Qt::ItemIsEnabled);*/
+
+ connect(contentsWidget,
+ SIGNAL(currentItemChanged(QListWidgetItem *, QListWidgetItem *)),
+ this, SLOT(changePage(QListWidgetItem *, QListWidgetItem*)));
+ }
+
+ void Preferences::changePage(QListWidgetItem *current, QListWidgetItem *previous)
+ {
+ if (!current)
+ current = previous;
+
+ pagesWidget->setCurrentIndex(contentsWidget->row(current));
+ }
+
+
+
+GeneralPage::GeneralPage(QWidget *parent) : QWidget(parent) {
+ QSettings settings("Pencil","Pencil");
+ QVBoxLayout *lay = new QVBoxLayout();
+
+ QGroupBox* windowOpacityBox = new QGroupBox(tr("Window opacity"));
+ QGroupBox* backgroundBox = new QGroupBox(tr("Background"));
+ QGroupBox* appearanceBox = new QGroupBox(tr("Appearance"));
+ QGroupBox* displayBox = new QGroupBox(tr("Rendering"));
+ QGroupBox* editingBox = new QGroupBox(tr("Editing"));
+
+ QLabel *windowOpacityLabel = new QLabel(tr("Opacity"));
+ QSlider *windowOpacityLevel = new QSlider(Qt::Horizontal);
+ windowOpacityLevel->setMinimum(30);
+ windowOpacityLevel->setMaximum(100);
+ int value = settings.value("windowOpacity").toInt();
+ windowOpacityLevel->setValue( 100 - value );
+
+ QButtonGroup* backgroundButtons = new QButtonGroup();
+ QRadioButton* checkerBackgroundButton = new QRadioButton();
+ QRadioButton* whiteBackgroundButton = new QRadioButton();
+ QRadioButton* greyBackgroundButton = new QRadioButton();
+ QRadioButton* dotsBackgroundButton = new QRadioButton();
+ QRadioButton* weaveBackgroundButton = new QRadioButton();
+ QPixmap previewCheckerboard(32,32);
+ QPixmap previewWhite(32,32);
+ QPixmap previewGrey(32,32);
+ QPixmap previewDots(32,32);
+ QPixmap previewWeave(32,32);
+ QPainter painter(&previewCheckerboard);
+ painter.fillRect( QRect(0,0,32,32), ScribbleArea::getBackgroundBrush("checkerboard") );
+ painter.end();
+ painter.begin(&previewDots);
+ painter.fillRect( QRect(0,0,32,32), ScribbleArea::getBackgroundBrush("dots") );
+ painter.end();
+ painter.begin(&previewWeave);
+ painter.fillRect( QRect(0,0,32,32), ScribbleArea::getBackgroundBrush("weave") );
+ painter.end();
+ previewWhite.fill( Qt::white );
+ previewGrey.fill( Qt:: lightGray );
+ checkerBackgroundButton->setIcon( previewCheckerboard );
+ whiteBackgroundButton->setIcon( previewWhite );
+ greyBackgroundButton->setIcon( previewGrey );
+ dotsBackgroundButton->setIcon( previewDots );
+ dotsBackgroundButton->setIcon( previewWeave );
+ backgroundButtons->addButton(checkerBackgroundButton);
+ backgroundButtons->addButton(whiteBackgroundButton);
+ backgroundButtons->addButton(greyBackgroundButton);
+ backgroundButtons->addButton(dotsBackgroundButton);
+ backgroundButtons->addButton(weaveBackgroundButton);
+ backgroundButtons->setId(checkerBackgroundButton, 1);
+ backgroundButtons->setId(whiteBackgroundButton, 2);
+ backgroundButtons->setId(greyBackgroundButton, 3);
+ backgroundButtons->setId(dotsBackgroundButton, 4);
+ backgroundButtons->setId(weaveBackgroundButton, 5);
+ QHBoxLayout *backgroundLayout = new QHBoxLayout();
+ backgroundBox->setLayout(backgroundLayout);
+ backgroundLayout->addWidget(checkerBackgroundButton);
+ backgroundLayout->addWidget(whiteBackgroundButton);
+ backgroundLayout->addWidget(greyBackgroundButton);
+ backgroundLayout->addWidget(dotsBackgroundButton);
+ backgroundLayout->addWidget(weaveBackgroundButton);
+ if( settings.value("background").toString() == "checkerboard" ) checkerBackgroundButton->setChecked(true);
+ if( settings.value("background").toString() == "white" ) whiteBackgroundButton->setChecked(true);
+ if( settings.value("background").toString() == "grey" ) greyBackgroundButton->setChecked(true);
+ if( settings.value("background").toString() == "dots" ) dotsBackgroundButton->setChecked(true);
+ if( settings.value("background").toString() == "weave" ) weaveBackgroundButton->setChecked(true);
+
+ QCheckBox *shadowsBox = new QCheckBox(tr("Shadows"));
+ shadowsBox->setChecked(false); // default
+ if (settings.value("shadows").toString()=="true") shadowsBox->setChecked(true);
+
+ QCheckBox *toolCursorsBox = new QCheckBox(tr("Tool Cursors"));
+ toolCursorsBox->setChecked(true); // default
+ if (settings.value("toolCursors").toString()=="false") toolCursorsBox->setChecked(false);
+
+ QCheckBox *aquaBox = new QCheckBox(tr("Aqua Style"));
+ aquaBox->setChecked(false); // default
+ if (settings.value("style").toString()=="aqua") aquaBox->setChecked(true);
+
+ QCheckBox *antialiasingBox = new QCheckBox(tr("Antialiasing"));
+ antialiasingBox->setChecked(true); // default
+ if (settings.value("antialiasing").toString()=="false") antialiasingBox->setChecked(false);
+
+ QButtonGroup *gradientsButtons = new QButtonGroup();
+ QRadioButton* gradient1Button = new QRadioButton(tr("None"));
+ QRadioButton* gradient2Button = new QRadioButton(tr("Quick"));
+ QRadioButton* gradient3Button = new QRadioButton(tr("Gradient1"));
+ QRadioButton* gradient4Button = new QRadioButton(tr("Gradient2"));
+ gradientsButtons->addButton(gradient1Button);
+ gradientsButtons->addButton(gradient2Button);
+ gradientsButtons->addButton(gradient3Button);
+ gradientsButtons->addButton(gradient4Button);
+ gradientsButtons->setId(gradient1Button, 1);
+ gradientsButtons->setId(gradient2Button, 2);
+ gradientsButtons->setId(gradient3Button, 3);
+ gradientsButtons->setId(gradient4Button, 4);
+ QGroupBox* gradientsBox = new QGroupBox(tr("Gradients"));
+ QHBoxLayout *gradientsLayout = new QHBoxLayout();
+ gradientsBox->setLayout(gradientsLayout);
+ gradientsLayout->addWidget(gradient1Button);
+ gradientsLayout->addWidget(gradient2Button);
+ gradientsLayout->addWidget(gradient3Button);
+ gradientsLayout->addWidget(gradient4Button);
+ if( settings.value("gradients").toString() == "1" ) gradient1Button->setChecked(true);
+ if( settings.value("gradients").toString() == "2" ) gradient2Button->setChecked(true);
+ if( settings.value("gradients").toString() == "" ) gradient2Button->setChecked(true); // default
+ if( settings.value("gradients").toString() == "3" ) gradient3Button->setChecked(true);
+ if( settings.value("gradients").toString() == "4" ) gradient4Button->setChecked(true);
+
+
+ /*QCheckBox *gradientsBox = new QCheckBox(tr("Gradients"));
+ gradientsBox->setChecked(true); // default
+ if (settings.value("gradients").toString()=="0") gradientsBox->setChecked(false);*/
+
+ QLabel *curveOpacityLabel = new QLabel(tr("Vector curve opacity"));
+ QSlider *curveOpacityLevel = new QSlider(Qt::Horizontal);
+ curveOpacityLevel->setMinimum(0);
+ curveOpacityLevel->setMaximum(100);
+ curveOpacityLevel->setValue( 100 - settings.value("curveOpacity").toInt() );
+
+ QGridLayout *windowOpacityLayout = new QGridLayout();
+ windowOpacityBox->setLayout(windowOpacityLayout);
+ windowOpacityLayout->addWidget(windowOpacityLabel, 0, 0);
+ windowOpacityLayout->addWidget(windowOpacityLevel, 0, 1);
+
+ QVBoxLayout *appearanceLayout = new QVBoxLayout();
+ appearanceBox->setLayout(appearanceLayout);
+ appearanceLayout->addWidget(shadowsBox);
+ appearanceLayout->addWidget(toolCursorsBox);
+#ifdef Q_WS_MAC
+ appearanceLayout->addWidget(aquaBox);
+#endif
+
+ QGridLayout *displayLayout = new QGridLayout();
+ displayBox->setLayout(displayLayout);
+ displayLayout->addWidget(antialiasingBox, 0, 0);
+ displayLayout->addWidget(gradientsBox, 1, 0);
+ displayLayout->addWidget(curveOpacityLabel, 2, 0);
+ displayLayout->addWidget(curveOpacityLevel, 3, 0);
+
+ QLabel *curveSmoothingLabel = new QLabel(tr("Vector curve smoothing"));
+ QSlider *curveSmoothingLevel = new QSlider(Qt::Horizontal);
+ curveSmoothingLevel->setMinimum(1);
+ curveSmoothingLevel->setMaximum(100);
+ value = settings.value("curveSmoothing").toInt();
+ curveSmoothingLevel->setValue( value );
+
+ QCheckBox *highResBox = new QCheckBox(tr("Tablet high-resolution position"));
+ if (settings.value("highResPosition")=="true") highResBox->setChecked(true);
+ else highResBox->setChecked(false);
+
+ QGridLayout *editingLayout = new QGridLayout();
+ editingBox->setLayout(editingLayout);
+ editingLayout->addWidget(curveSmoothingLabel, 0, 0);
+ editingLayout->addWidget(curveSmoothingLevel, 1, 0);
+ editingLayout->addWidget(highResBox, 2, 0);
+
+ //QLabel *fontSizeLabel = new QLabel(tr("Labels font size"));
+ //QDoubleSpinBox *fontSize = new QDoubleSpinBox();
+
+ /*fontSize->setMinimum(4);
+ fontSize->setMaximum(20);
+ frameSize->setMinimum(4);
+ frameSize->setMaximum(20);
+
+ fontSize->setFixedWidth(50);
+ frameSize->setFixedWidth(50);
+ lengthSize->setFixedWidth(50);
+
+ if (settings.value("drawLabel")=="false") drawLabel->setChecked(false);
+ else drawLabel->setChecked(true);
+ fontSize->setValue(settings.value("labelFontSize").toInt());
+ frameSize->setValue(settings.value("frameSize").toInt());
+ if (settings.value("labelFontSize").toInt()==0) fontSize->setValue(12);
+ if (settings.value("frameSize").toInt()==0) frameSize->setValue(6);
+ lengthSize->setText(settings.value("length").toString());
+ if (settings.value("length").toInt()==0) lengthSize->setText("240");
+
+ connect(fontSize, SIGNAL(valueChanged(int)), this, SIGNAL(fontSizeChange(int)));
+ connect(frameSize, SIGNAL(valueChanged(int)), this, SIGNAL(frameSizeChange(int)));
+ connect(lengthSize, SIGNAL(textChanged(QString)), this, SIGNAL(lengthSizeChange(QString)));
+ connect(drawLabel, SIGNAL(stateChanged(int)), this, SIGNAL(labelChange(int)));*/
+
+ lay->addWidget(windowOpacityBox);
+ lay->addWidget(appearanceBox);
+ lay->addWidget(backgroundBox);
+ lay->addWidget(displayBox);
+ lay->addWidget(editingBox);
+
+ connect(windowOpacityLevel, SIGNAL(valueChanged(int)), parent, SIGNAL(windowOpacityChange(int)));
+ connect(backgroundButtons, SIGNAL(buttonClicked(int)), parent, SIGNAL(backgroundChange(int)));
+ connect(gradientsButtons, SIGNAL(buttonClicked(int)), parent, SIGNAL(gradientsChange(int)));
+ connect(shadowsBox, SIGNAL(stateChanged(int)), parent, SIGNAL(shadowsChange(int)));
+ connect(toolCursorsBox, SIGNAL(stateChanged(int)), parent, SIGNAL(toolCursorsChange(int)));
+ connect(aquaBox, SIGNAL(stateChanged(int)), parent, SIGNAL(styleChange(int)));
+ connect(antialiasingBox, SIGNAL(stateChanged(int)), parent, SIGNAL(antialiasingChange(int)));
+ connect(curveOpacityLevel, SIGNAL(valueChanged(int)), parent, SIGNAL(curveOpacityChange(int)));
+ connect(curveSmoothingLevel, SIGNAL(valueChanged(int)), parent, SIGNAL(curveSmoothingChange(int)));
+ connect(highResBox, SIGNAL(stateChanged(int)), parent, SIGNAL(highResPositionChange(int)));
+
+ /*lay->addWidget(fontSizeLabel);
+ lay->addWidget(fontSize);
+ lay->addWidget(frameSizeLabel);
+ lay->addWidget(frameSize);
+ lay->addWidget(lengthSizeLabel);
+ lay->addWidget(lengthSize);*/
+ setLayout(lay);
+}
+
+
+TimelinePage::TimelinePage(QWidget *parent) : QWidget(parent) {
+ QSettings settings("Pencil","Pencil");
+ QVBoxLayout *generalLay = new QVBoxLayout();
+ QGridLayout *onionLay = new QGridLayout();
+
+ QGroupBox* timeLineBox = new QGroupBox(tr("Time Line"));
+ QGroupBox* onionSkinBox = new QGroupBox(tr("Onion Skin"));
+
+ // General timeline buttons
+
+ QCheckBox *drawLabel = new QCheckBox(tr("Draw timeline labels"));
+ QLabel *fontSizeLabel = new QLabel(tr("Labels font size"));
+ QSpinBox *fontSize = new QSpinBox();
+ QLabel *frameSizeLabel = new QLabel(tr("Frame size in Pixels"));
+ QSpinBox *frameSize = new QSpinBox(this);
+ QLabel *lengthSizeLabel = new QLabel(tr("Timeline size in Frames"));
+ QLineEdit *lengthSize = new QLineEdit(this);
+ lengthSize->setInputMask("9999");
+
+ QCheckBox *scrubBox = new QCheckBox(tr("Short scrub"));
+ scrubBox->setChecked(false); // default
+ if (settings.value("shortScrub").toBool()) scrubBox->setChecked(true);
+
+ fontSize->setMinimum(4);
+ fontSize->setMaximum(20);
+ frameSize->setMinimum(4);
+ frameSize->setMaximum(20);
+
+ fontSize->setFixedWidth(50);
+ frameSize->setFixedWidth(50);
+ lengthSize->setFixedWidth(50);
+
+ if (settings.value("drawLabel")=="false") drawLabel->setChecked(false);
+ else drawLabel->setChecked(true);
+ fontSize->setValue(settings.value("labelFontSize").toInt());
+ frameSize->setValue(settings.value("frameSize").toInt());
+ if (settings.value("labelFontSize").toInt()==0) fontSize->setValue(12);
+ if (settings.value("frameSize").toInt()==0) frameSize->setValue(6);
+ lengthSize->setText(settings.value("length").toString());
+ if (settings.value("length").toInt()==0) lengthSize->setText("240");
+
+ connect(fontSize, SIGNAL(valueChanged(int)), parent, SIGNAL(fontSizeChange(int)));
+ connect(frameSize, SIGNAL(valueChanged(int)), parent, SIGNAL(frameSizeChange(int)));
+ connect(lengthSize, SIGNAL(textChanged(QString)), parent, SIGNAL(lengthSizeChange(QString)));
+ connect(drawLabel, SIGNAL(stateChanged(int)), parent, SIGNAL(labelChange(int)));
+ connect(scrubBox, SIGNAL(stateChanged(int)), parent, SIGNAL(scrubChange(int)));
+
+ //lay->addWidget(drawLabel);
+ //lay->addWidget(fontSizeLabel);
+ //lay->addWidget(fontSize);
+ generalLay->addWidget(frameSizeLabel);
+ generalLay->addWidget(frameSize);
+ generalLay->addWidget(lengthSizeLabel);
+ generalLay->addWidget(lengthSize);
+ generalLay->addWidget(scrubBox);
+ timeLineBox->setLayout(generalLay);
+
+ // Onion skin buttons
+
+ QLabel *onionOpacityLabel = new QLabel(tr("Opacity"));
+ QLabel *onionFrameLabel = new QLabel(tr("Straight ahead"));
+ QLabel *onionInbetweenLabel = new QLabel(tr("Inbetween"));
+ QLabel *onionCurrentFrameLabel = new QLabel(tr("*current frame*"));
+
+ QSlider *onionOpacity = new QSlider(Qt::Horizontal);
+ onionOpacity->setToolTip(tr("Opacity of onion skin frames"));
+ QSpinBox *onionFrameNumber = new QSpinBox();
+ onionFrameNumber->setToolTip(tr("Number of frames to show in straight ahead mode"));
+ QCheckBox *previousprevious = new QCheckBox();
+ previousprevious->setToolTip(tr("Frame before previous"));
+ QCheckBox *previous = new QCheckBox();
+ previous->setToolTip(tr("Previous frame"));
+ QCheckBox *next = new QCheckBox();
+ next->setToolTip(tr("Next frame"));
+ QCheckBox *nextnext = new QCheckBox();
+ nextnext->setToolTip(tr("Frame after next"));
+
+ onionOpacity->setMinimum(0);
+ onionOpacity->setMaximum(100);
+ onionOpacity->setSliderPosition(30);
+ onionFrameNumber->setMinimum(1);
+ onionFrameNumber->setMaximum(20);
+ previousprevious->setChecked(false);
+ previous->setChecked(true);
+ next->setChecked(true);
+ nextnext->setChecked(false);
+
+ connect(onionOpacity, SIGNAL(valueChanged(int)), parent, SIGNAL(onionOpacityChange(int)));
+ connect(onionFrameNumber, SIGNAL(valueChanged(int)), parent, SIGNAL(onionStraightAheadChange(int)));
+ connect(previousprevious, SIGNAL(stateChanged(int)), parent, SIGNAL(onionPreviousPreviousChange(int)));
+ connect(previous, SIGNAL(stateChanged(int)), parent, SIGNAL(onionPreviousChange(int)));
+ connect(next, SIGNAL(stateChanged(int)), parent, SIGNAL(onionNextChange(int)));
+ connect(nextnext, SIGNAL(stateChanged(int)), parent, SIGNAL(onionNextNextChange(int)));
+
+ QGroupBox *onionInbetweenBox = new QGroupBox();
+ QGridLayout *onionInbetweenBoxLayout = new QGridLayout();
+ onionInbetweenBox->setLayout(onionInbetweenBoxLayout);
+ onionInbetweenBoxLayout->addWidget(previousprevious, 0, 0);
+ onionInbetweenBoxLayout->addWidget(previous, 0, 1);
+ onionInbetweenBoxLayout->addWidget(onionCurrentFrameLabel, 0, 2);
+ onionInbetweenBoxLayout->addWidget(next, 0, 3);
+ onionInbetweenBoxLayout->addWidget(nextnext, 0, 4);
+
+ onionSkinBox->setLayout(onionLay);
+ onionLay->addWidget(onionOpacityLabel, 0, 0);
+ onionLay->addWidget(onionOpacity, 0, 1);
+ onionLay->addWidget(onionFrameLabel, 1, 0);
+ onionLay->addWidget(onionInbetweenLabel, 1, 1);
+ onionLay->addWidget(onionFrameNumber, 2, 0);
+ onionLay->addWidget(onionInbetweenBox, 2, 1);
+
+ // Generic timeline settings
+
+ QVBoxLayout *fullLay = new QVBoxLayout();
+ fullLay->addWidget(timeLineBox);
+ fullLay->addWidget(onionSkinBox);
+ fullLay->addStretch(1);
+ setLayout(fullLay);
+}
+
+FilesPage::FilesPage(QWidget *parent) : QWidget(parent) {
+ QSettings settings("Pencil","Pencil");
+
+ QVBoxLayout *lay = new QVBoxLayout();
+
+ QGroupBox* autosaveBox = new QGroupBox(tr("Autosave documents"));
+ QCheckBox *autosaveCheckBox = new QCheckBox(tr("Enable autosave"));
+ QLabel *autosaveNumberLabel = new QLabel(tr("Number of modifications before autosaving:"));
+ QSpinBox *autosaveNumberBox = new QSpinBox();
+
+ autosaveNumberBox->setMinimum(5);
+ autosaveNumberBox->setMaximum(200);
+ autosaveNumberBox->setFixedWidth(50);
+
+ autosaveCheckBox->setChecked(false);
+ if (settings.value("autosave")=="true") autosaveCheckBox->setChecked(true);
+
+ autosaveNumberBox->setValue(settings.value("autosaveNumber").toInt());
+ if (settings.value("autosaveNumber").toInt()==0) autosaveNumberBox->setValue(20);
+
+ connect(autosaveNumberBox, SIGNAL(valueChanged(int)), parent, SIGNAL(autosaveNumberChange(int)));
+ connect(autosaveCheckBox, SIGNAL(stateChanged(int)), parent, SIGNAL(autosaveChange(int)));
+
+ lay->addWidget(autosaveCheckBox);
+ lay->addWidget(autosaveNumberLabel);
+ lay->addWidget(autosaveNumberBox);
+ autosaveBox->setLayout(lay);
+
+ QVBoxLayout *lay2 = new QVBoxLayout();
+ lay2->addWidget(autosaveBox);
+ lay2->addStretch(1);
+ setLayout(lay2);
+}
+
+
diff -rupN pencil_backup/src/interface/preferences.h pencil_dev/src/interface/preferences.h
--- pencil_backup/src/interface/preferences.h 2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/preferences.h 2009-10-01 19:41:14.000000000 -0500
@@ -39,6 +39,13 @@ class Preferences : public QDialog {
void shadowsChange(int);
void toolCursorsChange(int);
void styleChange(int);
+
+ void onionOpacityChange(int);
+ void onionStraightAheadChange(int);
+ void onionPreviousPreviousChange(int);
+ void onionPreviousChange(int);
+ void onionNextChange(int);
+ void onionNextNextChange(int);
void autosaveChange(int);
void autosaveNumberChange(int);
@@ -85,4 +92,4 @@ class FilesPage : public QWidget
public:
FilesPage(QWidget *parent = 0);
-};
\ No newline at end of file
+};
diff -rupN pencil_backup/src/interface/preferences.h~ pencil_dev/src/interface/preferences.h~
--- pencil_backup/src/interface/preferences.h~ 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/preferences.h~ 2009-10-01 18:24:29.000000000 -0500
@@ -0,0 +1,95 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+*/
+#include <QtGui>
+
+class QListWidget;
+class QListWidgetItem;
+class QStackedWidget;
+
+class Preferences : public QDialog {
+ Q_OBJECT
+
+ public:
+ Preferences();
+
+ public slots:
+ void changePage(QListWidgetItem *current, QListWidgetItem *previous);
+
+ signals:
+ void windowOpacityChange(int);
+ void curveOpacityChange(int);
+ void curveSmoothingChange(int);
+ void highResPositionChange(int);
+ void antialiasingChange(int);
+ void gradientsChange(int);
+ void backgroundChange(int);
+ void shadowsChange(int);
+ void toolCursorsChange(int);
+ void styleChange(int);
+/*
+ void onionOpacityChange(int);
+ void onionStraightAheadChange(int);
+ void onionPreviousPreviousChange(int);
+ void onionPreviousChange(int);
+ void onionNextChange(int);
+ void onionNextNextChange(int);
+*/
+ void autosaveChange(int);
+ void autosaveNumberChange(int);
+
+ void lengthSizeChange(QString);
+ void fontSizeChange(int);
+ void frameSizeChange(int);
+ void labelChange(int);
+ void scrubChange(int);
+
+ private:
+ void createIcons();
+
+ QListWidget *contentsWidget;
+ QStackedWidget *pagesWidget;
+ };
+
+
+class GeneralPage : public QWidget
+{
+ Q_OBJECT
+
+ public:
+ GeneralPage(QWidget *parent = 0);
+
+};
+
+
+
+class TimelinePage : public QWidget
+{
+ Q_OBJECT
+
+ public:
+ TimelinePage(QWidget *parent = 0);
+
+};
+
+
+class FilesPage : public QWidget
+{
+ Q_OBJECT
+
+ public:
+ FilesPage(QWidget *parent = 0);
+
+};
diff -rupN pencil_backup/src/interface/scribblearea.cpp pencil_dev/src/interface/scribblearea.cpp
--- pencil_backup/src/interface/scribblearea.cpp 2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/scribblearea.cpp 2009-10-03 09:10:22.000000000 -0500
@@ -15,6 +15,7 @@ GNU General Public License for more deta
*/
#include <QtGui>
#include <math.h>
+#include <stdio.h>
#include "scribblearea.h"
#include "beziercurve.h"
#include "editor.h"
@@ -134,8 +135,15 @@ ScribbleArea::ScribbleArea(QWidget *pare
makeInvisible = false;
somethingSelected = false;
setCursor(Qt::CrossCursor);
- onionPrev = true;
- onionNext = false;
+ onion = false;
+ onionOpacity = 0.2;
+ onionStraightAheadFrames = 5;
+ onionStraightAhead = true;
+ onionInbetween = false;
+ onionPreviousPrevious = false;
+ onionPrevious = true;
+ onionNext = true;
+ onionNextNext = false;
showThinLines = false;
showAllLayers = 1;
myView = QMatrix(); // identity matrix
@@ -510,9 +518,11 @@ void ScribbleArea::keyPressEvent( QKeyEv
switch (event->key()) {
case Qt::Key_Right:
if(somethingSelected) { myTempTransformedSelection.translate(1,0); myTransformedSelection = myTempTransformedSelection; calculateSelectionTransformation(); update(); } else { editor->scrubForward(); event->ignore(); }
+ printf("Key right clicked \n");
break;
case Qt::Key_Left:
if(somethingSelected) { myTempTransformedSelection.translate(-1,0); myTransformedSelection = myTempTransformedSelection; calculateSelectionTransformation(); update(); } else { editor->scrubBackward(); event->ignore(); }
+ printf("Key left clicked \n");
break;
case Qt::Key_Up:
if(somethingSelected) { myTempTransformedSelection.translate(0,-1); myTransformedSelection = myTempTransformedSelection; calculateSelectionTransformation(); update(); } else { editor->previousLayer(); event->ignore(); }
@@ -549,6 +559,33 @@ void ScribbleArea::keyPressEvent( QKeyEv
gradients = 2;
updateAllVectorLayersAtCurrentFrame();
break;
+ case Qt::Key_A:
+ flipPrevious();
+ break;
+ case Qt::Key_D:
+ flipNext();
+ break;
+ case Qt::Key_W:
+ editor->addKey();
+ break;
+ case Qt::Key_S:
+ editor->removeKey();
+ break;
+ case Qt::Key_Q:
+ editor->scrubBackward();
+ break;
+ case Qt::Key_E:
+ editor->scrubForward();
+ break;
+ case Qt::Key_Z:
+ onionShortCut();
+ break;
+ case Qt::Key_X:
+ straightAheadShortCut();
+ break;
+ case Qt::Key_C:
+ inbetweenShortCut();
+ break;
default:
event->ignore();
//QWidget::keyPressEvent(e);
@@ -1210,6 +1247,8 @@ void ScribbleArea::paintBitmapBuffer() {
case PENCIL:
if(pencil.preserveAlpha) cm = QPainter::CompositionMode_SourceAtop;
break;
+ default:
+ break;
}
targetImage->paste(bufferImg, cm);
}
@@ -1464,6 +1503,8 @@ void ScribbleArea::updateCanvas(int fram
//painter.drawLine( QPoint(mySize.width()/3, 0), QPoint(mySize.width()/3, mySize.height()) );
//painter.drawLine( QPoint(mySize.width()*2/3, 0), QPoint(mySize.width()*2/3, mySize.height()) );
}
+
+ int tempFrame = frame;
Object* object = editor->object;
qreal opacity;
@@ -1480,14 +1521,48 @@ void ScribbleArea::updateCanvas(int fram
if(bitmapImage != NULL) {
painter.setWorldMatrixEnabled(true);
- // previous frame (onion skin)
- BitmapImage* previousImage = layerBitmap->getLastBitmapImageAtFrame(frame, -1);
- if(previousImage != NULL && onionPrev) { painter.setOpacity(opacity*0.5); previousImage->paintImage(painter); }
+ // straight ahead (onion skin)
+ BitmapImage* straightAheadImage = layerBitmap->getLastBitmapImageAtFrame(frame, 0);
+ tempFrame = frame;
+ if(onionStraightAhead && onion) {
+ for(int frames = 1; frames < onionStraightAheadFrames; frames++) {
+ tempFrame = editor->getPrevKey(tempFrame);
+ straightAheadImage = layerBitmap->getLastBitmapImageAtFrame(tempFrame, 0);
+ if(tempFrame == layerBitmap->getMaxFrame()) {
+ frames = onionStraightAheadFrames;
+ straightAheadImage = NULL;
+ }
+ if(straightAheadImage != NULL) {
+ painter.setOpacity(opacity*onionOpacity);
+ straightAheadImage->paintImage(painter);
+ }
+ }
+ }
+
//painter.drawImage(previousImage->topLeft(), *(previousImage->image) );
- // next frame (onion skin)
- BitmapImage* nextImage = layerBitmap->getLastBitmapImageAtFrame(frame, 1);
- if(nextImage != NULL && onionNext) { painter.setOpacity(opacity*0.5); nextImage->paintImage(painter); }
+ // inbetween frame (onion skin)
+ BitmapImage* inbetweenImage = layerBitmap->getLastBitmapImageAtFrame(frame, 0);
+
+ if(onionInbetween && onion) {
+ painter.setOpacity(opacity*onionOpacity);
+ if(onionPreviousPrevious) {
+ inbetweenImage = layerBitmap->getLastBitmapImageAtFrame(editor->getPrevKey(editor->getPrevKey(frame)), 0);
+ inbetweenImage->paintImage(painter);
+ }
+ if(onionPrevious) {
+ inbetweenImage = layerBitmap->getLastBitmapImageAtFrame(editor->getPrevKey(frame), 0);
+ inbetweenImage->paintImage(painter);
+ }
+ if(onionNext) {
+ inbetweenImage = layerBitmap->getLastBitmapImageAtFrame(editor->getNextKey(frame), 0);
+ inbetweenImage->paintImage(painter);
+ }
+ if(onionNextNext) {
+ inbetweenImage = layerBitmap->getLastBitmapImageAtFrame(editor->getNextKey(editor->getNextKey(frame)), 0);
+ inbetweenImage->paintImage(painter);
+ }
+ }
// current frame
painter.setOpacity(opacity);
@@ -1531,13 +1606,45 @@ void ScribbleArea::updateCanvas(int fram
if(image != NULL) {
painter.setWorldMatrixEnabled(false);
- // previous frame (onion skin)
- QImage* previousImage = layerVector->getLastImageAtFrame(frame, -1, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
- if(previousImage != NULL && onionPrev) { painter.setOpacity(opacity*0.5); painter.drawImage(QPoint(0, 0), *previousImage ); }
+ // straight ahead (onion skin)
+ QImage* straightAheadImage = layerVector->getLastImageAtFrame(frame, 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+ tempFrame = frame;
+ if(onionStraightAhead && onion) {
+ for(int frames = 1; frames < onionStraightAheadFrames; frames++) {
+ tempFrame = editor->getPrevKey(tempFrame);
+ straightAheadImage = layerVector->getLastImageAtFrame(tempFrame, 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+ if(tempFrame == layerVector->getMaxFrame()) {
+ frames = onionStraightAheadFrames;
+ straightAheadImage = NULL;
+ }
+ if(straightAheadImage != NULL) {
+ painter.setOpacity(onionOpacity*opacity);
+ painter.drawImage(QPoint(0, 0), *straightAheadImage);
+ }
+ }
+ }
- // next frame (onion skin)
- QImage* nextImage = layerVector->getLastImageAtFrame(frame, 1, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
- if(nextImage != NULL && onionNext) { painter.setOpacity(opacity*0.5); painter.drawImage(QPoint(0, 0), *nextImage ); }
+ // inbetween (onion skin)
+ QImage* inbetweenImage = layerVector->getLastImageAtFrame(frame, 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+ if(onionInbetween && onion) {
+ painter.setOpacity(onionOpacity*opacity);
+ if(onionPreviousPrevious) {
+ inbetweenImage = layerVector->getLastImageAtFrame(editor->getPrevKey(editor->getPrevKey(frame)), 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+ painter.drawImage(QPoint(0, 0), *inbetweenImage);
+ }
+ if(onionPrevious) {
+ inbetweenImage = layerVector->getLastImageAtFrame(editor->getPrevKey(frame), 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+ painter.drawImage(QPoint(0, 0), *inbetweenImage);
+ }
+ if(onionNext) {
+ inbetweenImage = layerVector->getLastImageAtFrame(editor->getNextKey(frame), 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+ painter.drawImage(QPoint(0, 0), *inbetweenImage);
+ }
+ if(onionNextNext) {
+ inbetweenImage = layerVector->getLastImageAtFrame(editor->getNextKey(editor->getNextKey(frame)), 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+ painter.drawImage(QPoint(0, 0), *inbetweenImage);
+ }
+ }
// current frame
painter.setOpacity(opacity);
@@ -1936,18 +2043,69 @@ void ScribbleArea::deselectAll() {
updateFrame();
}
-void ScribbleArea::onionNextSlot() {
- onionNext = !onionNext;
+void ScribbleArea::onionChangeSlot1() {
+ onionChangeSlot(1);
+}
+
+void ScribbleArea::onionChangeSlot2() {
+ onionChangeSlot(2);
+}
+
+void ScribbleArea::onionIsOn() {
+ onion = !onion;
+ updateAllFrames();
+ ScribbleArea::setFocus();
+}
+
+void ScribbleArea::onionChangeSlot(int onionIndex) {
+ switch(onionIndex){
+ case 1 :{
+ ScribbleArea::onionStraightAhead = true;
+ ScribbleArea::onionInbetween = false;
+ break;
+ }
+ case 2 :{
+ ScribbleArea::onionStraightAhead = false;
+ ScribbleArea::onionInbetween = true;
+ break;
+ }
+ }
+ updateAllFrames();
+}
+
+void ScribbleArea::onionOpacityLevel(int opacityInteger) {
+ onionOpacity = (opacityInteger/100);
+ updateAllFrames();
+}
+
+void ScribbleArea::onionStraightAheadLevel(int numberOfFrames) {
+ onionStraightAheadFrames = numberOfFrames;
updateAllFrames();
}
-void ScribbleArea::onionPrevSlot() {
- onionPrev = !onionPrev;
+void ScribbleArea::onionPreviousPreviousLevel(int boolean) {
+ if(boolean) onionPreviousPrevious = true;
+ else onionPreviousPrevious = false;
updateAllFrames();
}
+void ScribbleArea::onionPreviousLevel(int boolean) {
+ if(boolean) onionPrevious = true;
+ else onionPrevious = false;
+ updateAllFrames();
+}
+void ScribbleArea::onionNextLevel(int boolean) {
+ if(boolean) onionNext = true;
+ else onionNext = false;
+ updateAllFrames();
+}
+void ScribbleArea::onionNextNextLevel(int boolean) {
+ if(boolean) onionNextNext = true;
+ else onionNextNext = false;
+ updateAllFrames();
+}
void ScribbleArea::floodFill(VectorImage* vectorImage, QPoint point, QRgb targetColour, QRgb replacementColour, int tolerance) {
bool invertible;
diff -rupN pencil_backup/src/interface/scribblearea.cpp~ pencil_dev/src/interface/scribblearea.cpp~
--- pencil_backup/src/interface/scribblearea.cpp~ 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/scribblearea.cpp~ 2009-10-03 09:08:34.000000000 -0500
@@ -0,0 +1,2756 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+*/
+#include <QtGui>
+#include <math.h>
+#include <stdio.h>
+#include "scribblearea.h"
+#include "beziercurve.h"
+#include "editor.h"
+#include "layerbitmap.h"
+#include "layervector.h"
+#include "layercamera.h"
+
+#include "bitmapimage.h"
+
+void VectorSelection::clear() {
+ vertex.clear();
+ curve.clear();
+}
+
+void VectorSelection::add(int curveNumber) {
+ curve << curveNumber;
+}
+
+void VectorSelection::add(QList<int> list) {
+ if(list.size() > 0) add(list[0]);
+ /*for(int i=0; i<list.size(); i++) {
+ add(list[i]);
+ }*/
+}
+
+void VectorSelection::add(VertexRef point) {
+ vertex << point;
+ add(point.curveNumber);
+}
+
+void VectorSelection::add(QList<VertexRef> list) {
+ if(list.size() > 0) add(list[0]);
+ /*for(int i=0; i<list.size(); i++) {
+ add(list[i]);
+ }*/
+}
+
+ScribbleArea::ScribbleArea(QWidget *parent, Editor* editor)
+ : QWidget(parent)
+//ScribbleArea::ScribbleArea(QWidget *parent, Editor* editor)
+// : QGLWidget(QGLFormat(QGL::SampleBuffers), parent)
+{
+ this->editor = editor;
+ QSettings settings("Pencil","Pencil");
+
+ pencil.width = settings.value("pencilWidth").toDouble();
+ if (pencil.width == 0) { pencil.width = 1; settings.setValue("pencilWidth", pencil.width); }
+ pen.width = settings.value("penWidth").toDouble();
+ if (pen.width == 0) { pen.width = 2; settings.setValue("penWidth", pen.width); }
+ brush.width = settings.value("brushWidth").toDouble();
+ if (brush.width == 0) { brush.width = 48; settings.setValue("brushWidth", brush.width); }
+ eraser.width = settings.value("eraserWidth").toDouble();
+ if (eraser.width == 0) { eraser.width = 24; settings.setValue("eraserWidth", brush.width); }
+ currentWidth = pencil.width;
+
+ pencil.colour = Qt::black;
+ pen.colour = Qt::black;
+ brush.colour = Qt::blue;
+ currentColour = pencil.colour;
+
+ pencil.colourNumber = 0;
+ pen.colourNumber = 0;
+ brush.colourNumber = 1;
+
+ pencil.feather = 0;
+ pen.feather = 0;
+ brush.feather = settings.value("brushFeather").toDouble();
+ if (brush.feather == 0) { brush.feather = 70; settings.setValue("brushFeather", brush.feather); }
+ eraser.feather = 0;
+
+ pencil.opacity = 0.8;
+ pen.opacity = 1;
+ brush.opacity = 0.5;
+ eraser.opacity = 0.5;
+
+ pencil.pressure = 1;
+ pen.pressure = 1;
+ brush.pressure = 1;
+ eraser.pressure = 1;
+
+ pencil.invisibility = 1;
+ pen.invisibility = 0;
+ brush.invisibility = -1;
+ eraser.invisibility = -1;
+
+ pencil.preserveAlpha = 0;
+ pen.preserveAlpha = 0;
+ brush.preserveAlpha = 0;
+ eraser.preserveAlpha = 0;
+
+ followContour = 0;
+
+ curveOpacity = (100-settings.value("curveOpacity").toInt())/100.0; // default value is 1.0
+ int curveSmoothingLevel = settings.value("curveSmoothing").toInt();
+ if(curveSmoothingLevel == 0) { curveSmoothingLevel = 20; settings.setValue("curveSmoothing", curveSmoothingLevel); } // default
+ curveSmoothing = curveSmoothingLevel/20.0; // default value is 1.0
+
+ highResPosition = false; // default is false (because it does not work on Windows)
+ if( settings.value("highResPosition").toString() == "true") highResPosition = true;
+ antialiasing = true; // default value is true (because it's prettier)
+ if( settings.value("antialiasing").toString() == "false") antialiasing = false;
+ shadows = false; // default value is false
+ if( settings.value("shadows").toString() == "true") shadows = true;
+ toolCursors = true; // default value is true
+ if( settings.value("toolCursors").toString() == "false") toolCursors = false;
+ gradients = 2;
+ if( settings.value("gradients").toString() != "") gradients = settings.value("gradients").toInt();;
+
+ toolMode = PENCIL;
+ tabletEraserBackupToolMode=-1;
+ tabletInUse=false;
+ tabletPressure=1.0;
+ setAttribute(Qt::WA_StaticContents); // ?
+ modified = false;
+ simplified = false;
+ usePressure = true;
+ makeInvisible = false;
+ somethingSelected = false;
+ setCursor(Qt::CrossCursor);
+ onion = false;
+ onionOpacity = 0.2;
+ onionStraightAheadFrames = 5;
+ onionStraightAhead = true;
+ onionInbetween = false;
+ onionPreviousPrevious = false;
+ onionPrevious = true;
+ onionNext = true;
+ onionNextNext = false;
+ showThinLines = false;
+ showAllLayers = 1;
+ myView = QMatrix(); // identity matrix
+ myTempView = QMatrix();
+ transMatrix = QMatrix();
+ centralView = QMatrix();
+
+ QString background = settings.value("background").toString();
+ if(background == "") background = "white";
+ setBackgroundBrush(background);
+ bufferImg = new BitmapImage(NULL);
+ eyedropperCursor = NULL;
+
+ QRect newSelection(QPoint(0,0), QSize(0,0));
+ mySelection = newSelection;
+ myTransformedSelection = newSelection;
+ myTempTransformedSelection = newSelection;
+ offset.setX(0);
+ offset.setY(0);
+ selectionTransformation.reset();
+
+ tol = 7.0;
+
+ readCanvasFromCache = true;
+ mouseInUse = false;
+ setMouseTracking(true); // reacts to mouse move events, even if the button is not pressed
+
+ debugRect = QRectF(0,0,0,0);
+
+ setSizePolicy( QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding) );
+ QPixmapCache::setCacheLimit(30*2*1024);
+ //setAutoFillBackground (false);
+ //setAttribute(Qt::WA_OpaquePaintEvent, false);
+ //setAttribute(Qt::WA_NoSystemBackground, true);
+}
+
+void ScribbleArea::setColour(const int i)
+{
+ if(toolMode == PENCIL) {
+ pencil.colourNumber = i;
+ pencil.colour = editor->object->getColour(i).colour;
+ }
+ if(toolMode == PEN || toolMode == POLYLINE) {
+ pen.colourNumber = i;
+ pen.colour = editor->object->getColour(i).colour;
+ }
+ if(toolMode == BUCKET || toolMode == COLOURING || toolMode == EYEDROPPER) {
+ brush.colourNumber = i;
+ brush.colour = editor->object->getColour(i).colour;
+ }
+ updateCursor();
+ updateFrame();
+}
+
+void ScribbleArea::setColour(const QColor colour)
+{
+ if(toolMode == PENCIL || toolMode == EYEDROPPER) {
+ pencil.colour = colour;
+ }
+ if(toolMode == PEN || toolMode == EYEDROPPER) {
+ pen.colour = colour;
+ }
+ if(toolMode == COLOURING || toolMode == BUCKET || toolMode == EYEDROPPER) {
+ brush.colour = colour;
+ }
+ currentColour = colour;
+ updateCursor();
+}
+
+void ScribbleArea::resetColours()
+{
+ pen.colourNumber = 0;
+ pencil.colourNumber = 0;
+ brush.colourNumber = 1;
+}
+
+void ScribbleArea::setWidth(const qreal newWidth)
+{
+ QSettings settings("Pencil","Pencil");
+ if(toolMode == PENCIL) {
+ pencil.width = newWidth;
+ settings.setValue("pencilWidth", newWidth);
+ }
+ if(toolMode == ERASER) {
+ eraser.width = newWidth;
+ settings.setValue("eraserWidth", newWidth);
+ }
+ if(toolMode == PEN || toolMode == POLYLINE) {
+ pen.width = newWidth;
+ settings.setValue("penWidth", newWidth);
+ }
+ if(toolMode == COLOURING) {
+ brush.width = newWidth;
+ settings.setValue("brushWidth", newWidth);
+ }
+ currentWidth = newWidth;
+ updateAllFrames();
+ updateCursor();
+}
+
+void ScribbleArea::setFeather(const qreal newFeather)
+{
+ QSettings settings("Pencil","Pencil");
+ if(toolMode == PENCIL) {
+ pencil.feather = newFeather;
+ settings.setValue("pencilOpacity", newFeather);
+ }
+ if(toolMode == PEN || toolMode == POLYLINE) {
+ pen.feather = newFeather;
+ settings.setValue("penOpacity", newFeather);
+ }
+ if(toolMode == COLOURING) {
+ brush.feather = newFeather;
+ settings.setValue("brushOpacity", newFeather);
+ }
+ //currentWidth = newWidth;
+ updateAllFrames();
+ updateCursor();
+}
+
+void ScribbleArea::setOpacity(const qreal newOpacity)
+{
+ QSettings settings("Pencil","Pencil");
+ if(toolMode == PENCIL) {
+ pencil.opacity = newOpacity;
+ settings.setValue("pencilOpacity", newOpacity);
+ }
+ if(toolMode == PEN || toolMode == POLYLINE) {
+ pen.opacity = newOpacity;
+ settings.setValue("penOpacity", newOpacity);
+ }
+ if(toolMode == COLOURING) {
+ brush.opacity = newOpacity;
+ settings.setValue("brushOpacity", newOpacity);
+ }
+ //currentWidth = newWidth;
+ updateAllFrames();
+}
+
+void ScribbleArea::setInvisibility(const bool invisibility)
+{
+ QSettings settings("Pencil","Pencil");
+ if(toolMode == PENCIL) {
+ pencil.invisibility = invisibility;
+ settings.setValue("pencilOpacity", invisibility);
+ }
+ if(toolMode == PEN || toolMode == POLYLINE) {
+ pen.invisibility = invisibility;
+ settings.setValue("penOpacity", invisibility);
+ }
+ makeInvisible = invisibility;
+ updateAllFrames();
+}
+
+void ScribbleArea::setPressure(const bool pressure)
+{
+ QSettings settings("Pencil","Pencil");
+ if(toolMode == PENCIL) {
+ pencil.pressure = pressure;
+ settings.setValue("pencilOpacity", pressure);
+ }
+ if(toolMode == PEN || toolMode == POLYLINE) {
+ pen.pressure = pressure;
+ settings.setValue("penOpacity", pressure);
+ }
+ if(toolMode == COLOURING) {
+ brush.pressure = pressure;
+ settings.setValue("brushOpacity", pressure);
+ }
+ usePressure = pressure;
+ updateAllFrames();
+}
+
+void ScribbleArea::setPreserveAlpha(const bool preserveAlpha)
+{
+ QSettings settings("Pencil","Pencil");
+ if(toolMode == PENCIL) {
+ pencil.preserveAlpha = preserveAlpha;
+ //settings.setValue("pencilCompositionMode", preserveAlpha);
+ }
+ if(toolMode == PEN || toolMode == POLYLINE) {
+ pen.preserveAlpha = preserveAlpha;
+ //settings.setValue("penCompositionMode", preserveAlpha);
+ }
+ if(toolMode == COLOURING) {
+ brush.preserveAlpha = preserveAlpha;
+ //settings.setValue("brushCompositionMode", preserveAlpha);
+ }
+ //this->preserveAlpha = preserveAlpha;
+ //updateAllFrames();
+}
+
+void ScribbleArea::setFollowContour(const bool followContour)
+{
+ this->followContour = followContour;
+}
+
+void ScribbleArea::setCurveOpacity(int newOpacity)
+{
+ curveOpacity = newOpacity/100.0;
+ QSettings settings("Pencil","Pencil");
+ settings.setValue("curveOpacity", 100-newOpacity);
+ updateAllVectorLayers();
+}
+
+void ScribbleArea::setCurveSmoothing(int newSmoothingLevel)
+{
+ curveSmoothing = newSmoothingLevel/20.0;
+ QSettings settings("Pencil","Pencil");
+ settings.setValue("curveSmoothing", newSmoothingLevel);
+}
+
+void ScribbleArea::setHighResPosition(int x)
+{
+ QSettings settings("Pencil","Pencil");
+ if (x==0) { highResPosition=false; settings.setValue("highResPosition","false"); }
+ else { highResPosition=true; settings.setValue("highResPosition","true"); }
+}
+
+void ScribbleArea::setAntialiasing(int x)
+{
+ QSettings settings("Pencil","Pencil");
+ if (x==0) { antialiasing=false; settings.setValue("antialiasing","false"); }
+ else { antialiasing=true; settings.setValue("antialiasing","true"); }
+ updateAllVectorLayers();
+}
+
+void ScribbleArea::setGradients(int x)
+{
+ //if(x==0) { gradients = x; } else { gradients = x; }
+ QSettings settings("Pencil","Pencil");
+ if(x > 0) {
+ gradients = x;
+ settings.setValue("gradients", gradients);
+ } else {
+ gradients = 2;
+ gradients = settings.value("gradients").toInt();
+ }
+ //if (x==0) { antialiasing=false; settings.setValue("antialiasing","false"); }
+ //else { antialiasing=true; settings.setValue("antialiasing","true"); }
+ updateAllVectorLayers();
+}
+
+void ScribbleArea::setShadows(int x)
+{
+ QSettings settings("Pencil","Pencil");
+ if (x==0) { shadows=false; settings.setValue("shadows","false"); }
+ else { shadows=true; settings.setValue("shadows","true"); }
+ update();
+}
+
+void ScribbleArea::setToolCursors(int x)
+{
+ QSettings settings("Pencil","Pencil");
+ if (x==0) { toolCursors=false; settings.setValue("toolCursors","false"); }
+ else { toolCursors=true; settings.setValue("toolCursors","true"); }
+}
+
+void ScribbleArea::setStyle(int x)
+{
+ QSettings settings("Pencil","Pencil");
+ if (x==0) { settings.setValue("style","default"); }
+ else { settings.setValue("style","aqua"); }
+ update();
+}
+
+void ScribbleArea::setBackground(int number)
+{
+ if(number == 1) setBackgroundBrush("checkerboard");
+ if(number == 2) setBackgroundBrush("white");
+ if(number == 3) setBackgroundBrush("grey");
+ if(number == 4) setBackgroundBrush("dots");
+ if(number == 5) setBackgroundBrush("weave");
+ updateAllFrames();
+}
+
+void ScribbleArea::setBackgroundBrush(QString brushName)
+{
+ QSettings settings("Pencil","Pencil");
+ settings.setValue("background", brushName);
+ backgroundBrush = getBackgroundBrush(brushName);
+}
+
+QBrush ScribbleArea::getBackgroundBrush(QString brushName)
+{
+ QBrush brush = QBrush(Qt::white);
+ if(brushName == "white") {
+ brush = QBrush(Qt::white);
+ }
+ if(brushName == "grey") {
+ brush = QBrush(Qt::lightGray);
+ }
+ if(brushName == "checkerboard") {
+ QPixmap pattern(16,16);
+ pattern.fill( QColor(255,255,255) );
+ QPainter painter(&pattern);
+ painter.fillRect( QRect(0,0,8,8), QColor(220,220,220) );
+ painter.fillRect( QRect(8,8,8,8), QColor(220,220,220) );
+ painter.end();
+ brush.setTexture(pattern);
+ }
+ if(brushName == "dots") {
+ QPixmap pattern(":background/dots.png");
+ brush.setTexture(pattern);
+ }
+ if(brushName == "weave") {
+ QPixmap pattern(":background/weave.jpg");
+ brush.setTexture(pattern);
+ }
+ return brush;
+}
+
+void ScribbleArea::updateFrame() {
+ updateFrame(editor->currentFrame);
+}
+
+void ScribbleArea::updateFrame(int frame) {
+ //qDebug() << "updateFrame";
+ //paintCanvas(frame);
+ setView();
+ int frameNumber = editor->getLastFrameAtFrame( frame );
+ QPixmapCache::remove("frame"+QString::number(frameNumber));
+ readCanvasFromCache = true;
+ update();
+}
+
+void ScribbleArea::updateAllFrames() {
+ //qDebug() << "updateAllFrames";
+ //frameList.clear();
+ setView();
+ QPixmapCache::clear();
+ readCanvasFromCache = true;
+ update();
+}
+
+void ScribbleArea::updateAllVectorLayersAtCurrentFrame() {
+ updateAllVectorLayersAt(editor->currentFrame);
+}
+
+void ScribbleArea::updateAllVectorLayersAt(int frameNumber) {
+ for(int i=0; i< editor->object->getLayerCount(); i++) {
+ Layer* layer = editor->object->getLayer(i);
+ if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(frameNumber, 0)->setModified(true);
+ }
+ updateFrame(editor->currentFrame);
+}
+
+
+void ScribbleArea::updateAllVectorLayers() {
+ for(int i=0; i< editor->object->getLayerCount(); i++) {
+ Layer* layer = editor->object->getLayer(i);
+ if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->setModified(true);
+ }
+ updateAllFrames();
+}
+
+void ScribbleArea::setModified(int layerNumber, int frameNumber) {
+ Layer* layer = editor->object->getLayer(layerNumber);
+ //if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(frameNumber, 0)->setModified(true);
+ if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->setModified(frameNumber, true);
+ if(layer->type == Layer::BITMAP) ((LayerImage*)layer)->setModified(frameNumber, true);
+ emit modification(layerNumber);
+ //updateFrame(frame);
+ updateAllFrames();
+}
+
+void ScribbleArea::escape() {
+ deselectAll();
+}
+
+void ScribbleArea::keyPressEvent( QKeyEvent *event ) {
+ switch (event->key()) {
+ case Qt::Key_Right:
+ if(somethingSelected) { myTempTransformedSelection.translate(1,0); myTransformedSelection = myTempTransformedSelection; calculateSelectionTransformation(); update(); } else { editor->scrubForward(); event->ignore(); }
+ printf("Key right clicked \n");
+ break;
+ case Qt::Key_Left:
+ if(somethingSelected) { myTempTransformedSelection.translate(-1,0); myTransformedSelection = myTempTransformedSelection; calculateSelectionTransformation(); update(); } else { editor->scrubBackward(); event->ignore(); }
+ printf("Key left clicked \n");
+ break;
+ case Qt::Key_Up:
+ if(somethingSelected) { myTempTransformedSelection.translate(0,-1); myTransformedSelection = myTempTransformedSelection; calculateSelectionTransformation(); update(); } else { editor->previousLayer(); event->ignore(); }
+ break;
+ case Qt::Key_Down:
+ if(somethingSelected) { myTempTransformedSelection.translate(0,1); myTransformedSelection = myTempTransformedSelection; calculateSelectionTransformation(); update(); } else { editor->nextLayer(); event->ignore(); }
+ break;
+ case Qt::Key_Return:
+ if(somethingSelected) { paintTransformedSelection(); deselectAll(); } else {
+ if(toolMode == POLYLINE) {
+ endPolyline();
+ } else {
+ event->ignore();
+ }
+ }
+ break;
+ case Qt::Key_Escape:
+ if(somethingSelected || toolMode == POLYLINE) { escape(); }
+ break;
+ case Qt::Key_Backspace:
+ if(somethingSelected) deleteSelection();
+ break;
+ case Qt::Key_F1:
+ simplified = true;
+ emit outlinesChanged(simplified);
+ gradients = 0;
+ updateAllVectorLayersAtCurrentFrame();
+ break;
+ case Qt::Key_F2:
+ gradients = 1;
+ updateAllVectorLayersAtCurrentFrame();
+ break;
+ case Qt::Key_F3:
+ gradients = 2;
+ updateAllVectorLayersAtCurrentFrame();
+ break;
+ case Qt::Key_A:
+ flipPrevious();
+ break;
+ case Qt::Key_D:
+ flipNext();
+ break;
+ case Qt::Key_W:
+ editor->addKey();
+ break;
+ case Qt::Key_S:
+ editor->removeKey();
+ break;
+ case Qt::Key_Q:
+ editor->scrubBackward();
+ break;
+ case Qt::Key_E:
+ editor->scrubForward();
+ break;
+ case Qt::Key_Z:
+ onionShortCut();
+ break;
+ case Qt::Key_X:
+ straightAheadShortCut();
+ break;
+ case Qt::Key_C:
+ inbetweenShortCut();
+ break;
+ default:
+ event->ignore();
+ //QWidget::keyPressEvent(e);
+ }
+}
+
+void ScribbleArea::keyReleaseEvent( QKeyEvent *event ) {
+ switch (event->key()) {
+ case Qt::Key_F1:
+ simplified = false;
+ emit outlinesChanged(simplified);
+ setGradients(-1);
+ updateAllVectorLayersAtCurrentFrame();
+ break;
+ case Qt::Key_F2:
+ setGradients(-1);
+ updateAllVectorLayersAtCurrentFrame();
+ break;
+ case Qt::Key_F3:
+ setGradients(-1);
+ updateAllVectorLayersAtCurrentFrame();
+ break;
+ default:
+ event->ignore();
+ //QWidget::keyPressEvent(e);
+ }
+}
+
+void ScribbleArea::tabletEvent(QTabletEvent *event)
+{
+ //qDebug() << "Device" << event->device() << "Pointer type" << event->pointerType();
+ tabletInUse = true;
+ tabletPosition = event->hiResGlobalPos();
+ tabletPressure = event->pressure();
+ if(event->pointerType() == QTabletEvent::Cursor) tabletPressure = 0.5*tabletPressure; // "normal" pressure is chosen to be 0.5 instead of 1.0
+ mousePressure.append(tabletPressure);
+ if(toolMode==ScribbleArea::ERASER) {
+ //myPenWidth = static_cast<int>(10.0*tabletPressure);
+ currentWidth = (eraser.width*tabletPressure);
+ }
+ if(toolMode==ScribbleArea::PENCIL) {
+ currentColour = pencil.colour;
+ if(usePressure) {currentColour.setAlphaF(pencil.colour.alphaF()*tabletPressure); } else { currentColour.setAlphaF(pencil.colour.alphaF()); }
+ currentWidth = pencil.width;
+ }
+ if(toolMode==ScribbleArea::PEN) {
+ currentColour = pen.colour;
+ currentColour.setAlphaF(pen.colour.alphaF());
+ if(usePressure) { currentWidth = 2.0*pen.width*tabletPressure; } else { currentWidth = pen.width; }
+ }
+ if(event->pointerType() == QTabletEvent::Eraser) {
+ //if(tabletEraser == false) eraserOn();
+ //tabletEraser = true;
+ if(tabletEraserBackupToolMode == -1) {
+ tabletEraserBackupToolMode = toolMode; // memorise which tool was being used before switching to the eraser
+ eraserOn();
+ }
+ } else {
+ //if(tabletEraser == true) pencilOn();
+ //tabletEraser = false;
+ if(tabletEraserBackupToolMode != -1) { // restore the tool in use
+ switch(tabletEraserBackupToolMode) {
+ case ScribbleArea::PENCIL:
+ pencilOn();
+ break;
+ case ScribbleArea::PEN:
+ penOn();
+ break;
+ default:
+ pencilOn();
+ }
+ tabletEraserBackupToolMode = -1;
+ }
+ }
+ event->ignore(); // indicates that the tablet event is not accepted yet, so that it is propagated as a mouse event)
+}
+
+void ScribbleArea::mousePressEvent(QMouseEvent *event)
+{
+ mouseInUse = true;
+
+ Layer* layer = editor->getCurrentLayer();
+ // ---- checks ------
+ if(layer==NULL) return;
+ if(!layer->visible && toolMode != HAND && (event->button() != Qt::RightButton)) {
+ QMessageBox::warning(this, tr("Warning"),
+ tr("You are drawing on a hidden layer! Please select another layer (or make the current layer visible)."),
+ QMessageBox::Ok,
+ QMessageBox::Ok);
+ mouseInUse = false;
+ return;
+ }
+ if(layer->type == Layer::VECTOR) {
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ if (vectorImage == NULL) return;
+ if(toolMode == ScribbleArea::PENCIL) editor->selectColour(pencil.colourNumber);
+ if(toolMode == ScribbleArea::PEN) editor->selectColour(pen.colourNumber);
+ if(toolMode == ScribbleArea::COLOURING || toolMode == ScribbleArea::BUCKET) editor->selectColour(brush.colourNumber);
+ }
+ if(layer->type == Layer::BITMAP) {
+ BitmapImage* bitmapImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+ if (bitmapImage == NULL) return;
+ }
+ // --- end checks ----
+
+ while(!mousePath.isEmpty()) mousePath.removeAt(0); // empty the mousePath
+ while(!mousePressure.isEmpty()) mousePressure.removeAt(0); // empty the mousePressure
+ if (event->button() == Qt::LeftButton || event->button() == Qt::RightButton) { // if the user is pressing the left or right button
+ if(tabletInUse && highResPosition) { lastPixel = QPointF(event->pos()) + tabletPosition - QPointF(event->globalPos()); } else { lastPixel = QPointF(event->pos()); }
+ bool invertible = true;
+ lastPoint = myTempView.inverted(&invertible).map(QPointF(lastPixel));
+ lastBrushPoint = lastPoint;
+ }
+
+ if (event->button() == Qt::LeftButton) {
+ if(toolMode == ScribbleArea::PENCIL || toolMode == ScribbleArea::ERASER || toolMode == ScribbleArea::PEN || toolMode == ScribbleArea::BUCKET || toolMode == ScribbleArea::COLOURING) {
+
+ editor->backup();
+
+ if(layer->type == Layer::VECTOR) {
+ if(toolMode == ScribbleArea::PENCIL && !showThinLines) toggleThinLines();
+ }
+ mousePath.append(lastPoint);
+ }
+ // ----------------------------------------------------------------------
+ if(toolMode == COLOURING) {
+ if(layer->type == Layer::BITMAP) {
+ qreal opacity = 1.0;
+ qreal brushWidth = brush.width + 0.5*brush.feather;
+ qreal offset = qMax(0.0,brush.width-0.5*brush.feather)/brushWidth;
+ if(tabletInUse) opacity = tabletPressure;
+ if(usePressure) brushWidth = brushWidth*tabletPressure;
+ drawBrush( lastPoint, brushWidth, offset, brush.colour, opacity);
+ int rad = qRound(brushWidth / 2) + 3;
+ update(myTempView.mapRect(QRect(lastPoint.toPoint(), lastPoint.toPoint()).normalized().adjusted(-rad, -rad, +rad, +rad)));
+ }
+ }
+ // ----------------------------------------------------------------------
+ if(toolMode == POLYLINE && (layer->type == Layer::BITMAP || layer->type == Layer::VECTOR) ) {
+ if(mousePoints.size() == 0) editor->backup();
+ if(layer->type == Layer::VECTOR) {
+ ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->deselectAll();
+ if(makeInvisible && !showThinLines) toggleThinLines();
+ }
+ mousePoints << lastPoint;
+ //qDebug() << "--------- " << mousePoints;
+ }
+ // ----------------------------------------------------------------------
+ if(toolMode == ScribbleArea::SELECT && (layer->type == Layer::BITMAP || layer->type == Layer::VECTOR)) {
+ if(layer->type == Layer::VECTOR) {
+ ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->deselectAll();
+ }
+ moveMode = ScribbleArea::MIDDLE;
+ if( somethingSelected ) { // there is something selected
+ if( BezierCurve::mLength(lastPoint - myTransformedSelection.topLeft()) < 6) moveMode = ScribbleArea::TOPLEFT;
+ if( BezierCurve::mLength(lastPoint - myTransformedSelection.topRight()) < 6) moveMode = ScribbleArea::TOPRIGHT;
+ if( BezierCurve::mLength(lastPoint - myTransformedSelection.bottomLeft()) < 6) moveMode = ScribbleArea::BOTTOMLEFT;
+ if( BezierCurve::mLength(lastPoint - myTransformedSelection.bottomRight()) < 6) moveMode = ScribbleArea::BOTTOMRIGHT;
+ if( moveMode == ScribbleArea::MIDDLE ) { paintTransformedSelection(); deselectAll(); } // the user did not click on one of the corners
+ } else { // there is nothing selected
+ mySelection.setTopLeft( lastPoint );
+ mySelection.setBottomRight( lastPoint );
+ setSelection(mySelection, true);
+ }
+ update();
+ }
+ // ----------------------------------------------------------------------
+ if(toolMode == ScribbleArea::EDIT) {
+ if(layer->type == Layer::VECTOR) {
+ closestCurves = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->getCurvesCloseTo(currentPoint, tol/myTempView.m11());
+ closestVertices = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->getVerticesCloseTo(currentPoint, tol/myTempView.m11());
+ if( closestVertices.size() > 0 || closestCurves.size() > 0 ) { // the user clicks near a vertex or a curve
+ editor->backup();
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ if(event->modifiers() != Qt::ShiftModifier && !vectorImage->isSelected(closestVertices)) { paintTransformedSelection(); deselectAll(); }
+ vectorImage->setSelected(closestVertices, true);
+ vectorSelection.add(closestCurves);
+ vectorSelection.add(closestVertices);
+ /*calculateSelectionRect();
+ moveMode == ScribbleArea::MIDDLE;
+ if( somethingSelected ) { // there is an area selection
+ if( BezierCurve::mLength(lastPoint - myTransformedSelection.topLeft()) < 6) moveMode = ScribbleArea::TOPLEFT;
+ if( BezierCurve::mLength(lastPoint - myTransformedSelection.topRight()) < 6) moveMode = ScribbleArea::TOPRIGHT;
+ if( BezierCurve::mLength(lastPoint - myTransformedSelection.bottomLeft()) < 6) moveMode = ScribbleArea::BOTTOMLEFT;
+ if( BezierCurve::mLength(lastPoint - myTransformedSelection.bottomRight()) < 6) moveMode = ScribbleArea::BOTTOMRIGHT;
+ }*/
+ update();
+ } else {
+ deselectAll();
+ }
+ }
+ }
+ // ----------------------------------------------------------------------
+ if(toolMode == ScribbleArea::MOVE && (layer->type == Layer::BITMAP || layer->type == Layer::VECTOR)) {
+ editor->backup();
+ moveMode = ScribbleArea::MIDDLE;
+ if( somethingSelected ) { // there is an area selection
+ if( BezierCurve::mLength(lastPoint - myTransformedSelection.topLeft()) < 6) moveMode = ScribbleArea::TOPLEFT;
+ if( BezierCurve::mLength(lastPoint - myTransformedSelection.topRight()) < 6) moveMode = ScribbleArea::TOPRIGHT;
+ if( BezierCurve::mLength(lastPoint - myTransformedSelection.bottomLeft()) < 6) moveMode = ScribbleArea::BOTTOMLEFT;
+ if( BezierCurve::mLength(lastPoint - myTransformedSelection.bottomRight()) < 6) moveMode = ScribbleArea::BOTTOMRIGHT;
+ }
+ // ---
+ if(moveMode == ScribbleArea::MIDDLE) {
+ if(layer->type == Layer::BITMAP) {
+ if(!(myTransformedSelection.contains(lastPoint))) { // click is outside the transformed selection with the MOVE tool
+ paintTransformedSelection(); deselectAll();
+ }
+ }
+ if(layer->type == Layer::VECTOR) {
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ if(closestCurves.size() > 0) { // the user clicks near a curve
+ // editor->backup();
+ if(!vectorImage->isSelected(closestCurves)) {
+ paintTransformedSelection();
+ if(event->modifiers() != Qt::ShiftModifier) { deselectAll(); }
+ vectorImage->setSelected(closestCurves, true);
+ setSelection( vectorImage->getSelectionRect(), true );
+ update();
+ }
+ } else {
+ int areaNumber = vectorImage->getLastAreaNumber(lastPoint);
+ if(areaNumber != -1) { // the user clicks on an area
+ if(!vectorImage->isAreaSelected(areaNumber)) {
+ if(event->modifiers() != Qt::ShiftModifier) { deselectAll(); }
+ vectorImage->setAreaSelected(areaNumber, true);
+ //setSelection( vectorImage->getSelectionRect() );
+ setSelection( QRectF(0,0,0,0), true );
+ update();
+ }
+ } else { // the user doesn't click near a curve or an area
+ if(!(myTransformedSelection.contains(lastPoint))) { // click is outside the transformed selection with the MOVE tool
+ paintTransformedSelection(); deselectAll();
+ }
+ }
+ }
+ }
+ }
+ // ---
+
+ }
+ }
+}
+
+void ScribbleArea::mouseMoveEvent(QMouseEvent *event)
+{
+ Layer* layer = editor->getCurrentLayer();
+ // ---- checks ------
+ if(layer==NULL) return;
+ if(layer->type == Layer::VECTOR) {
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ if (vectorImage == NULL) return;
+ }
+ if(layer->type == Layer::BITMAP) {
+ BitmapImage* bitmapImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+ if (bitmapImage == NULL) return;
+ }
+ // ---- end checks ------
+
+ if(tabletInUse && highResPosition) { currentPixel = QPointF(event->pos()) + tabletPosition - QPointF(event->globalPos()); } else { currentPixel = event->pos(); }
+ bool invertible = true;
+ currentPoint = myTempView.inverted(&invertible).map(QPointF(currentPixel));
+ if(event->buttons() & Qt::LeftButton || event->buttons() & Qt::RightButton) { // the user is also pressing the mouse (dragging)
+ offset = currentPoint - lastPoint;
+ mousePath.append(currentPoint);
+ }
+
+ // ----------------------------------------------------------------------
+ if(layer->type == Layer::BITMAP || layer->type == Layer::VECTOR) {
+ if ((event->buttons() & Qt::LeftButton) && (toolMode == ScribbleArea::PENCIL || toolMode == ScribbleArea::ERASER || toolMode == ScribbleArea::PEN || toolMode == ScribbleArea::COLOURING))
+ drawLineTo(currentPixel, currentPoint);
+ if(toolMode == ScribbleArea::POLYLINE)
+ drawPolyline();
+ }
+ // ----------------------------------------------------------------------
+ if (toolMode == ScribbleArea::SELECT && (event->buttons() & Qt::LeftButton) && somethingSelected && (layer->type == Layer::BITMAP || layer->type == Layer::VECTOR)) {
+ if(moveMode == ScribbleArea::MIDDLE) mySelection.setBottomRight(currentPoint);
+ if(moveMode == ScribbleArea::TOPLEFT) mySelection.setTopLeft(currentPoint);
+ if(moveMode == ScribbleArea::TOPRIGHT) mySelection.setTopRight(currentPoint);
+ if(moveMode == ScribbleArea::BOTTOMLEFT) mySelection.setBottomLeft(currentPoint);
+ if(moveMode == ScribbleArea::BOTTOMRIGHT) mySelection.setBottomRight(currentPoint);
+ myTransformedSelection = mySelection.adjusted(0,0,0,0);
+ myTempTransformedSelection = mySelection.adjusted(0,0,0,0);
+ if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->select(mySelection);
+ update();
+ }
+ // ----------------------------------------------------------------------
+ if (toolMode == ScribbleArea::ERASER && (layer->type == Layer::BITMAP || layer->type == Layer::VECTOR)) {
+ if(event->buttons() & Qt::LeftButton) { // the user is also pressing the mouse (dragging)
+ if(layer->type == Layer::VECTOR) {
+ qreal radius = (eraser.width/2)/myTempView.m11();
+ QList<VertexRef> nearbyVertices = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->getVerticesCloseTo(currentPoint, radius);
+ for(int i=0; i< nearbyVertices.size(); i++) {
+ ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->setSelected(nearbyVertices.at(i), true);
+ }
+ //update();
+ }
+ }
+ }
+ // ----------------------------------------------------------------------
+ if (toolMode == ScribbleArea::EDIT && (layer->type == Layer::BITMAP || layer->type == Layer::VECTOR)) {
+ if(event->buttons() & Qt::LeftButton) { // the user is also pressing the mouse (dragging) {
+ if( layer->type == Layer::VECTOR) {
+ if( event->modifiers() != Qt::ShiftModifier) { // (and the user doesn't press shift)
+ // transforms the selection
+ selectionTransformation = QMatrix().translate(offset.x(), offset.y());
+ ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->setSelectionTransformation(selectionTransformation);
+ /*if(moveMode == ScribbleArea::MIDDLE) {
+ if(QLineF(lastPixel,currentPixel).length()>4) myTempTransformedSelection = myTransformedSelection.translated(offset);
+ }
+ if(moveMode == ScribbleArea::TOPLEFT) myTempTransformedSelection = myTransformedSelection.adjusted(offset.x(), offset.y(), 0, 0);
+ if(moveMode == ScribbleArea::TOPRIGHT) myTempTransformedSelection = myTransformedSelection.adjusted(0, offset.y(), offset.x(), 0);
+ if(moveMode == ScribbleArea::BOTTOMLEFT) myTempTransformedSelection = myTransformedSelection.adjusted(offset.x(), 0, 0, offset.y());
+ if(moveMode == ScribbleArea::BOTTOMRIGHT) myTempTransformedSelection = myTransformedSelection.adjusted(0, 0, offset.x(), offset.y());
+ calculateSelectionTransformation();*/
+ //update();
+ }
+ }
+ } else { // the user is moving the mouse without pressing it
+ if(layer->type == Layer::VECTOR) {
+ closestVertices = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->getVerticesCloseTo(currentPoint, tol/myTempView.m11());
+ }
+ //update();
+ }
+ update();
+ }
+ // ----------------------------------------------------------------------
+ if (toolMode == ScribbleArea::MOVE && (layer->type == Layer::BITMAP || layer->type == Layer::VECTOR)) {
+ if(event->buttons() & Qt::LeftButton) { // the user is also pressing the mouse (dragging)
+ if( somethingSelected) { // there is something selected
+ if( event->modifiers() != Qt::ShiftModifier) { // (and the user doesn't press shift)
+ // transforms the selection
+ if(moveMode == ScribbleArea::MIDDLE) {
+ if(QLineF(lastPixel,currentPixel).length()>4) myTempTransformedSelection = myTransformedSelection.translated(offset);
+ }
+ if(moveMode == ScribbleArea::TOPLEFT) myTempTransformedSelection = myTransformedSelection.adjusted(offset.x(), offset.y(), 0, 0);
+ if(moveMode == ScribbleArea::TOPRIGHT) myTempTransformedSelection = myTransformedSelection.adjusted(0, offset.y(), offset.x(), 0);
+ if(moveMode == ScribbleArea::BOTTOMLEFT) myTempTransformedSelection = myTransformedSelection.adjusted(offset.x(), 0, 0, offset.y());
+ if(moveMode == ScribbleArea::BOTTOMRIGHT) myTempTransformedSelection = myTransformedSelection.adjusted(0, 0, offset.x(), offset.y());
+ calculateSelectionTransformation();
+ update();
+ }
+ } else { // there is nothing selected
+ //selectionTransformation = selectionTransformation.translate(offset.x(), offset.y());
+ //if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->setSelectionTransformation(selectionTransformation);
+
+ //VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ //setSelection( vectorImage->getSelectionRect() );
+
+ // we switch to the select tool
+ editor->getToolSet()->changeSelectButton();
+ selectOn();
+ moveMode = ScribbleArea::MIDDLE;
+ mySelection.setTopLeft( lastPoint );
+ mySelection.setBottomRight( lastPoint );
+ setSelection(mySelection, true);
+ }
+ } else { // the user is moving the mouse without pressing it
+ if(layer->type == Layer::VECTOR) {
+ closestCurves = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->getCurvesCloseTo(currentPoint, tol/myTempView.m11());
+ }
+ update();
+ }
+ }
+ // ----------------------------------------------------------------------
+ if ( toolMode == ScribbleArea::HAND && (event->buttons() != Qt::NoButton || event->buttons() & Qt::RightButton) ) {
+ if(event->modifiers() & Qt::ControlModifier || event->modifiers() & Qt::AltModifier || event->buttons() & Qt::RightButton) {
+ QPoint centralPixel(width()/2, height()/2);
+ if(lastPixel.x() != centralPixel.x()) {
+ qreal scale = 1.0;
+ qreal cosine = 1.0;
+ qreal sine = 0.0;
+ if( event->modifiers() & Qt::AltModifier) { // rotation
+ QPointF V1 = lastPixel-centralPixel;
+ QPointF V2 = currentPixel-centralPixel;
+ cosine = ( V1.x()*V2.x() + V1.y()*V2.y() )/(BezierCurve::eLength(V1)*BezierCurve::eLength(V2));
+ sine = ( -V1.x()*V2.y() + V1.y()*V2.x() )/(BezierCurve::eLength(V1)*BezierCurve::eLength(V2));
+
+ }
+ if( event->modifiers() & Qt::ControlModifier || event->buttons() & Qt::RightButton) { // scale
+ scale = exp( 0.01*( currentPixel.y()-lastPixel.y() ) );
+ }
+ transMatrix = QMatrix(
+ scale*cosine, -scale*sine,
+ scale*sine, scale*cosine,
+ 0.0,
+ 0.0
+ );
+ }
+ } else { // translation
+ transMatrix.setMatrix(1.0,0.0,0.0,1.0, currentPixel.x()-lastPixel.x(), currentPixel.y()-lastPixel.y());
+ }
+ update();
+ }
+ // ----------------------------------------------------------------------
+ if( toolMode == EYEDROPPER ) {
+ if(layer->type == Layer::BITMAP) {
+ BitmapImage* targetImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+ if( targetImage->contains(currentPoint) ) {
+ QColor pickedColour = targetImage->pixel(currentPoint.x(), currentPoint.y());
+ if(pickedColour.alpha() != 0) drawEyedropperPreview(pickedColour);
+ }
+ }
+ if(layer->type == Layer::VECTOR) {
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ int colourNumber = vectorImage->getColourNumber(currentPoint);
+ if( colourNumber != -1) {
+ drawEyedropperPreview( editor->object->getColour(colourNumber).colour );
+ }
+ }
+ }
+
+}
+
+void ScribbleArea::mouseReleaseEvent(QMouseEvent *event)
+{
+ mouseInUse = false;
+
+ Layer* layer = editor->getCurrentLayer();
+ // ---- checks ------
+ if(layer==NULL) return;
+ if(layer->type == Layer::VECTOR) {
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ if (vectorImage == NULL) return;
+ }
+ if(layer->type == Layer::BITMAP) {
+ BitmapImage* bitmapImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+ if (bitmapImage == NULL) return;
+ }
+ // ---- end checks ------
+
+ //currentWidth = myPenWidth;
+ if(layer->type == Layer::BITMAP || layer->type == Layer::VECTOR) {
+ if ((event->button() == Qt::LeftButton) && (toolMode == ScribbleArea::PENCIL || toolMode == ScribbleArea::ERASER || toolMode == ScribbleArea::PEN)) {
+ drawLineTo(currentPixel, currentPoint);
+ }
+ }
+
+ if(event->button() == Qt::LeftButton) {
+ // ======================================================================
+ if(layer->type == Layer::BITMAP) {
+ // ----------------------------------------------------------------------
+ if( toolMode == BUCKET) {
+ BitmapImage* sourceImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+ Layer* targetLayer = layer; // by default
+ int layerNumber = editor->currentLayer; // by default
+ if( editor->currentLayer > 0) {
+ Layer* layer2 = editor->getCurrentLayer(-1);
+ if(layer2->type == Layer::BITMAP) {
+ targetLayer = layer2;
+ layerNumber = layerNumber - 1;
+ }
+ }
+ BitmapImage* targetImage = ((LayerBitmap*)targetLayer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+ BitmapImage::floodFill( sourceImage, targetImage, lastPoint.toPoint(), qRgba(0,0,0,0), brush.colour.rgba(), 10*10, true);
+ setModified(layerNumber, editor->currentFrame);
+ }
+ // ----------------------------------------------------------------------
+ if( toolMode == EYEDROPPER) {
+ BitmapImage* targetImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+ QColor pickedColour = targetImage->pixel(lastPoint.x(), lastPoint.y());
+ if(pickedColour.alpha() != 0) editor->setColour( pickedColour );
+ }
+ // ----------------------------------------------------------------------
+ if( toolMode == PENCIL || toolMode == PEN || toolMode == ERASER || toolMode == COLOURING ) {
+ paintBitmapBuffer();
+ }
+ }
+
+ // ======================================================================
+ if(layer->type == Layer::VECTOR) {
+ // ----------------------------------------------------------------------
+ if( toolMode == BUCKET) {
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ if(event->modifiers() == Qt::AltModifier) {
+ vectorImage->removeArea(lastPoint);
+ } else {
+ floodFill(vectorImage, lastPixel.toPoint(), qRgba(0,0,0,0), qRgb(200,200,200), 100*100);
+ }
+ setModified(editor->currentLayer, editor->currentFrame);
+ }
+ // ----------------------------------------------------------------------
+ if( toolMode == EYEDROPPER) {
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ int colourNumber = vectorImage->getColourNumber(lastPoint);
+ if( colourNumber != -1) {
+ editor->selectColour( colourNumber );
+ }
+ }
+ // ----------------------------------------------------------------------
+ if( toolMode == COLOURING) {
+ // Clear the temporary pixel path
+ bufferImg->clear();
+ ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->colour(mousePath, brush.colourNumber);
+ //((LayerImage*)layer)->setModified(editor->currentFrame, true);
+ //update();
+ setModified(editor->currentLayer, editor->currentFrame);
+ }
+ // ----------------------------------------------------------------------
+ if( (toolMode == ScribbleArea::PENCIL || toolMode == ScribbleArea::PEN) && mousePath.size() > -1 ) {
+ // Clear the temporary pixel path
+ bufferImg->clear();
+ qreal tol = curveSmoothing/qAbs( myView.m11() );
+ BezierCurve curve(mousePath, mousePressure, tol);
+ if(toolMode == PEN) {
+ curve.setWidth(pen.width);
+ curve.setFeather(0);
+ curve.setInvisibility(false);
+ curve.setVariableWidth(usePressure);
+ curve.setColourNumber(pen.colourNumber);
+ } else {
+ curve.setWidth(0);
+ curve.setFeather(0);
+ curve.setInvisibility(true);
+ curve.setVariableWidth(false);
+ curve.setColourNumber(pencil.colourNumber);
+ }
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+
+ //curve.setSelected(true);
+ //qDebug() << "this curve has " << curve.getVertexSize() << "vertices";
+
+ vectorImage->addCurve(curve, qAbs(myView.m11()) );
+
+ //if(layer->type == Layer::BITMAP || layer->type == Layer::VECTOR) ((LayerImage*)layer)->setModified(editor->currentFrame, true);
+ //update();
+ setModified(editor->currentLayer, editor->currentFrame);
+ }
+ // ----------------------------------------------------------------------
+ if( toolMode == ScribbleArea::ERASER ) {
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ // Clear the area containing the last point
+ //vectorImage->removeArea(lastPoint);
+ // Clear the temporary pixel path
+ bufferImg->clear();
+ vectorImage->deleteSelectedPoints();
+ //update();
+ setModified(editor->currentLayer, editor->currentFrame);
+ }
+ }
+ }
+
+ // ====================== for all kinds of layers =======================
+ // ----------------------------------------------------------------------
+ if ((toolMode == ScribbleArea::EDIT) && (event->button() == Qt::LeftButton)) {
+ if(layer->type == Layer::VECTOR) {
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ vectorImage->applySelectionTransformation();
+ selectionTransformation.reset();
+ for(int k=0; k<vectorSelection.curve.size(); k++) {
+ int curveNumber = vectorSelection.curve.at(k);
+ vectorImage->curve[curveNumber].smoothCurve();
+ }
+ setModified(editor->currentLayer, editor->currentFrame);
+ }
+ }
+ if ((toolMode == ScribbleArea::MOVE) && (event->button() == Qt::LeftButton) && (layer->type == Layer::BITMAP || layer->type == Layer::VECTOR)) {
+ offset.setX(0);
+ offset.setY(0);
+ calculateSelectionTransformation();
+ //if(layer->type == Layer::VECTOR) {
+ // closestCurves = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->getCurvesCloseTo(currentPoint, tol/myView.m11());
+ // closestVertices = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->getVerticesCloseTo(currentPoint, tol/myView.m11());
+ //}
+ //if(somethingSelected && layer->type == Layer::VECTOR) {
+ //editor->backup();
+ //((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->applySelectionTransformation();
+ //}
+ //if( (mySelection.width() > 1) || (mySelection.height() > 1) ) {
+ myTransformedSelection = myTempTransformedSelection;
+ // update();
+ //}
+ //if(layer->type == Layer::BITMAP || layer->type == Layer::VECTOR) ((LayerImage*)layer)->setModified(editor->currentFrame, true);
+
+ if(layer->type == Layer::VECTOR) {
+ if(somethingSelected) {
+ //VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ //-- we should recalculate the intersections, once the curved are moved!
+ //vectorImage->reinsertSelection();
+ }
+ }
+
+ setModified(editor->currentLayer, editor->currentFrame);
+ }
+ // ----------------------------------------------------------------------
+ if( toolMode == ScribbleArea::HAND || (event->button() == Qt::RightButton) ) {
+ bufferImg->clear();
+ if(layer->type == Layer::CAMERA) {
+ LayerCamera* layerCamera = (LayerCamera*)layer;
+ QMatrix view = layerCamera->getViewAtFrame(editor->currentFrame);
+ layerCamera->loadImageAtFrame(editor->currentFrame, view * transMatrix);
+ //Camera* camera = ((LayerCamera*)layer)->getLastCameraAtFrame(editor->currentFrame, 0);
+ //camera->view = camera->view * transMatrix;
+ } else {
+ myView = myView * transMatrix;
+ }
+ transMatrix.reset();
+ updateAllVectorLayers();
+ //update();
+ }
+ // ----------------------------------------------------------------------
+ if( toolMode == ScribbleArea::SELECT && (event->button() == Qt::LeftButton) && (layer->type == Layer::BITMAP || layer->type == Layer::VECTOR)) {
+ if(layer->type == Layer::VECTOR) {
+ if(somethingSelected) {
+ editor->getToolSet()->changeMoveButton();
+ moveOn();
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ setSelection( vectorImage->getSelectionRect(), true );
+ if(mySelection.size() == QSizeF(0,0)) somethingSelected = false;
+ }
+ }
+ updateFrame();
+ }
+ // ----------------------------------------------------------------------
+ //update();
+ tabletInUse = false;
+}
+
+void ScribbleArea::mouseDoubleClickEvent(QMouseEvent *event)
+{
+ if( toolMode == ScribbleArea::HAND || event->button() == Qt::RightButton ) {
+ resetView();
+ } else {
+ if( toolMode == ScribbleArea::POLYLINE && BezierCurve::eLength(lastPixel.toPoint() - event->pos()) < 2.0 ) {
+ endPolyline();
+ } else {
+ mousePressEvent(event);
+ }
+ }
+}
+
+void ScribbleArea::paintBitmapBuffer() {
+ Layer* layer = editor->getCurrentLayer();
+ // ---- checks ------
+ if(layer==NULL) return;
+ // Clear the temporary pixel path
+ BitmapImage* targetImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+ if(targetImage!=NULL) {
+ QPainter::CompositionMode cm = QPainter::CompositionMode_SourceOver;
+ switch(toolMode) {
+ case ERASER:
+ cm = QPainter::CompositionMode_DestinationOut;
+ break;
+ case COLOURING:
+ if(brush.preserveAlpha) cm = QPainter::CompositionMode_SourceAtop;
+ if(followContour) {
+ // writes on the layer below
+ if( editor->currentLayer > 0) {
+ Layer* layer2 = editor->getCurrentLayer(-1);
+ if(layer2->type == Layer::BITMAP) {
+ targetImage = ((LayerBitmap*)layer2)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+ }
+ }
+ }
+ break;
+ case PEN:
+ if(pen.preserveAlpha) cm = QPainter::CompositionMode_SourceAtop;
+ break;
+ case PENCIL:
+ if(pencil.preserveAlpha) cm = QPainter::CompositionMode_SourceAtop;
+ break;
+ default:
+ break;
+ }
+ targetImage->paste(bufferImg, cm);
+ }
+ QRect rect = myTempView.mapRect(bufferImg->boundaries);
+ // Clear the buffer
+ bufferImg->clear();
+
+ //setModified(layer, editor->currentFrame);
+ ((LayerImage*)layer)->setModified(editor->currentFrame, true);
+ emit modification();
+ QPixmapCache::remove("frame"+QString::number(editor->currentFrame));
+ readCanvasFromCache = false;
+ updateCanvas(editor->currentFrame, rect.adjusted(-1,-1,1,1) );
+ update(rect);
+}
+
+void ScribbleArea::paintEvent(QPaintEvent* event)
+{
+ //qDebug() << "paint event!" << QDateTime::currentDateTime() << event->rect(); //readCanvasFromCache << mouseInUse << editor->currentFrame;
+ QPainter painter(this);
+
+ // draws the background (if necessary)
+ if(mouseInUse && toolMode == HAND) {
+ painter.setWorldMatrix(myTempView);
+ painter.setWorldMatrixEnabled(true);
+ painter.setPen(Qt::NoPen);
+ painter.setBrush(backgroundBrush);
+ painter.drawRect( (myTempView).inverted().mapRect( QRect(-2,-2, width()+3, height()+3) ) ); // this is necessary to have the background move with the view
+ }
+
+ // process the canvas (or not)
+ if(!mouseInUse && readCanvasFromCache) {
+ // --- we retrieve the canvas from the cache; we create it if it doesn't exist
+ int frameNumber = editor->getLastFrameAtFrame( editor->currentFrame );
+ if(!QPixmapCache::find("frame"+QString::number(frameNumber), canvas)) {
+ updateCanvas(editor->currentFrame, event->rect());
+ QPixmapCache::insert("frame"+QString::number(frameNumber), canvas);
+ }
+ }
+ if(toolMode == MOVE) {
+ Layer* layer = editor->getCurrentLayer();
+ if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->setModified(true);
+ updateCanvas(editor->currentFrame, event->rect());
+ }
+ // paints the canvas
+ painter.setWorldMatrixEnabled(true);
+ painter.setWorldMatrix( centralView.inverted() * transMatrix * centralView );
+ painter.drawPixmap( QPoint(0,0), canvas );
+
+ Layer* layer = editor->getCurrentLayer();
+ if(!layer) return;
+
+ if(!editor->playing) { // we don't need to display the following when the animation is playing
+ painter.setWorldMatrix(myTempView);
+
+ if(layer->type == Layer::VECTOR) {
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+
+ if(toolMode == EDIT || toolMode == HAND) {
+ //bufferImg->clear();
+ painter.save();
+ painter.setWorldMatrixEnabled(false);
+ painter.setRenderHint(QPainter::Antialiasing, false);
+ // ----- paints the edited elements
+ QPen pen2(Qt::black, 0.5, Qt::SolidLine, Qt::RoundCap,Qt::RoundJoin);
+ painter.setPen( pen2 );
+ QColor colour;
+ // ------------ vertices of the edited curves
+ colour = QColor(200,200,200);
+ painter.setBrush( colour );
+ for(int k=0; k<vectorSelection.curve.size(); k++) {
+ int curveNumber = vectorSelection.curve.at(k);
+ //QPainterPath path = vectorImage->curve[curveNumber].getStrokedPath();
+ //bufferImg->drawPath( myTempView.map(path), pen2, colour, QPainter::CompositionMode_SourceOver, false);
+ for(int vertexNumber=-1; vertexNumber<vectorImage->getCurveSize(curveNumber); vertexNumber++) {
+ QPointF vertexPoint = vectorImage->getVertex(curveNumber, vertexNumber);
+ QRectF rectangle = QRectF( (myView*transMatrix*centralView).map(vertexPoint)-QPointF(3.0,3.0), QSizeF(7,7) );
+ if(rect().contains( (myView*transMatrix*centralView).map(vertexPoint).toPoint())) {
+
+ painter.drawRect( rectangle.toRect() );
+ //bufferImg->drawRect( rectangle.toRect(), pen2, colour, QPainter::CompositionMode_SourceOver, false);
+ }
+ }
+
+ }
+ // ------------ selected vertices of the edited curves
+ colour = QColor(100,100,255);
+ painter.setBrush( colour );
+ for(int k=0; k<vectorSelection.vertex.size(); k++) {
+ VertexRef vertexRef = vectorSelection.vertex.at(k);
+ QPointF vertexPoint = vectorImage->getVertex(vertexRef);
+ QRectF rectangle0 = QRectF( (myView*transMatrix*centralView).map(vertexPoint)-QPointF(3.0,3.0), QSizeF(7,7) );
+ painter.drawRect( rectangle0.toRect() );
+ //bufferImg->drawRect( rectangle0, pen2, colour, QPainter::CompositionMode_SourceOver, false);
+
+ /* --- draws the control points -- maybe editable in a future version (although not recommended)
+ QPointF c1Point = vectorImage->getC1(vertexRef.nextVertex());
+ QPointF c2Point = vectorImage->getC2(vertexRef);
+ QRectF rectangle1 = QRectF( myTempView.map(c1Point)-QPointF(3.0,3.0), QSize(7,7) );
+ QRectF rectangle2 = QRectF( myTempView.map(c2Point)-QPointF(3.0,3.0), QSize(7,7) );
+ bufferImg->drawLine( myTempView.map(vertexPoint), myTempView.map(c1Point), colour, QPainter::CompositionMode_SourceOver, antialiasing);
+ bufferImg->drawLine( myTempView.map(vertexPoint), myTempView.map(c2Point), colour, QPainter::CompositionMode_SourceOver, antialiasing);
+ bufferImg->drawRect( rectangle0, pen2, colour, QPainter::CompositionMode_SourceOver, false);
+ bufferImg->drawEllipse( rectangle1, pen2, Qt::white, QPainter::CompositionMode_SourceOver, false);
+ bufferImg->drawEllipse( rectangle2, pen2, Qt::white, QPainter::CompositionMode_SourceOver, false);*/
+ }
+ // ----- paints the closest vertices
+ colour = QColor(255,0,0);
+ painter.setBrush( colour );
+ if( vectorSelection.curve.size() > 0 ) {
+ for(int k=0; k<closestVertices.size(); k++) {
+ VertexRef vertexRef = closestVertices.at(k);
+ QPointF vertexPoint = vectorImage->getVertex(vertexRef);
+ //if( vectorImage->isSelected(vertexRef) ) vertexPoint = selectionTransformation.map( vertexPoint );
+ QRectF rectangle = QRectF( (myView*transMatrix*centralView).map(vertexPoint)-QPointF(3.0,3.0), QSizeF(7,7) );
+ painter.drawRect( rectangle.toRect() );
+ //bufferImg->drawRect( rectangle.toRect(), pen2, colour, QPainter::CompositionMode_SourceOver, false);
+ }
+ }
+ painter.restore();
+ }
+
+ if(toolMode == MOVE) {
+ // ----- paints the closest curves
+ bufferImg->clear();
+ QPen pen2(Qt::black, 0.5, Qt::SolidLine, Qt::RoundCap,Qt::RoundJoin);
+ QColor colour = QColor(100,100,255);
+ for(int k=0; k<closestCurves.size(); k++) {
+ qreal scale = myTempView.det();
+ BezierCurve myCurve = vectorImage->curve[closestCurves[k]];
+ if(myCurve.isPartlySelected()) myCurve.transform( selectionTransformation );
+ QPainterPath path = myCurve.getStrokedPath(1.2/scale, false);
+ bufferImg->drawPath( (myView*transMatrix*centralView).map(path), pen2, colour, QPainter::CompositionMode_SourceOver, antialiasing);
+ }
+ }
+
+ }
+
+ // paints the buffer image
+ if(editor->getCurrentLayer() != NULL) {
+ painter.setOpacity(1.0);
+ if(editor->getCurrentLayer()->type == Layer::BITMAP) painter.setWorldMatrixEnabled(true);
+ if(editor->getCurrentLayer()->type == Layer::VECTOR) painter.setWorldMatrixEnabled(false);
+ bufferImg->paintImage(painter);
+ }
+
+ // paints the selection outline
+ if( somethingSelected && myTempTransformedSelection.isValid() ) {
+ // outline of the transformed selection
+ painter.setWorldMatrixEnabled(false);
+ painter.setOpacity(1.0);
+ QPolygon tempRect = (myView*transMatrix*centralView).mapToPolygon( myTempTransformedSelection.normalized().toRect() );
+
+ Layer* layer = editor->getCurrentLayer();
+ if(layer != NULL) {
+ if(layer->type == Layer::BITMAP) {
+ painter.setBrush(Qt::NoBrush);
+ painter.setPen(Qt::DashLine);
+ }
+ if(layer->type == Layer::VECTOR) {
+ painter.setBrush(QColor(0,0,0,20));
+ painter.setPen(Qt::gray);
+ }
+ painter.drawPolygon( tempRect );
+
+ if(layer->type != Layer::VECTOR || toolMode != SELECT) {
+ painter.setPen(Qt::SolidLine);
+ painter.setBrush(QBrush(Qt::gray));
+ painter.drawRect( tempRect.point(0).x()-3, tempRect.point(0).y()-3, 6, 6 );
+ painter.drawRect( tempRect.point(1).x()-3, tempRect.point(1).y()-3, 6, 6 );
+ painter.drawRect( tempRect.point(2).x()-3, tempRect.point(2).y()-3, 6, 6 );
+ painter.drawRect( tempRect.point(3).x()-3, tempRect.point(3).y()-3, 6, 6 );
+ }
+ }
+ }
+
+ }
+ // clips to the frame of the camera
+ if(layer->type == Layer::CAMERA) {
+ QRect rect = ((LayerCamera*)layer)->getViewRect();
+ rect.translate( width()/2, height()/2 );
+ painter.setWorldMatrixEnabled(false);
+ painter.setPen(Qt::NoPen);
+ painter.setBrush(QColor(0,0,0,160));
+ painter.drawRect( QRect(0, 0, width(), (height() - rect.height())/2) );
+ painter.drawRect( QRect(0, rect.bottom(), width(), (height() - rect.height())/2) );
+ painter.drawRect( QRect(0, rect.top(), (width() - rect.width())/2, rect.height()-1) );
+ painter.drawRect( QRect((width() + rect.width())/2, rect.top(), (width() - rect.width())/2, rect.height()-1) );
+ painter.setPen(Qt::black);
+ painter.setBrush(Qt::NoBrush);
+ painter.drawRect(rect);
+ }
+ // outlines the frame of the viewport
+ painter.setWorldMatrixEnabled(false);
+ painter.setPen( QPen(Qt::gray, 2) );
+ painter.setBrush(Qt::NoBrush);
+ painter.drawRect(QRect(0,0, width(), height()));
+ // shadow
+ if(shadows && !editor->playing && (!mouseInUse || toolMode == HAND)) {
+ int radius1 = 12;
+ int radius2 = 8;
+ QLinearGradient shadow = QLinearGradient( 0, 0, 0, radius1);
+ setGaussianGradient(shadow, Qt::black, 0.15, 0.0);
+ painter.setPen(Qt::NoPen);
+ painter.setBrush(shadow);
+ painter.drawRect(QRect(0,0, width(), radius1));
+ shadow.setFinalStop(radius1, 0);
+ painter.setBrush(shadow);
+ painter.drawRect(QRect(0,0, radius1, height()));
+ shadow.setStart(0, height());
+ shadow.setFinalStop(0, height()-radius2);
+ painter.setBrush(shadow);
+ painter.drawRect(QRect(0,height()-radius2, width(), height()));
+ shadow.setStart(width(), 0);
+ shadow.setFinalStop(width()-radius2, 0);
+ painter.setBrush(shadow);
+ painter.drawRect(QRect(width()-radius2,0, width(), height()));
+ }
+ event->accept();
+}
+
+void ScribbleArea::updateCanvas(int frame, QRect rect)
+{
+ //qDebug() << "paint canvas!" << QDateTime::currentDateTime();
+ // merge the different layers into the ScribbleArea
+ QPainter painter(&canvas);
+ if(myTempView.det() == 1.0) {
+ painter.setRenderHint(QPainter::SmoothPixmapTransform, false);
+ } else {
+ painter.setRenderHint(QPainter::SmoothPixmapTransform, antialiasing);
+ }
+ painter.setClipRect(rect);
+ painter.setClipping(true);
+ setView();
+ painter.setWorldMatrix(myTempView);
+ painter.setWorldMatrixEnabled(true);
+
+ // background
+ painter.setPen(Qt::NoPen);
+ painter.setBrush(backgroundBrush);
+ painter.drawRect( myTempView.inverted().mapRect( QRect(-2,-2, width()+3, height()+3) ) ); // this is necessary to have the background move with the view
+
+ // grid
+ bool drawGrid = false;
+ if(drawGrid) {
+ painter.setOpacity(1.0);
+ painter.setPen(Qt::gray);
+ painter.setBrush(Qt::NoBrush);
+ // What kind of grid do we want?
+ //painter.drawRect(QRect(0,0, mySize.width(), mySize.height()));
+ //painter.drawLine( QPoint(0,mySize.height()/2), QPoint(mySize.width(), mySize.height()/2) );
+ //painter.drawLine( QPoint(mySize.width()/3, 0), QPoint(mySize.width()/3, mySize.height()) );
+ //painter.drawLine( QPoint(mySize.width()*2/3, 0), QPoint(mySize.width()*2/3, mySize.height()) );
+ }
+
+ int tempFrame = frame;
+
+ Object* object = editor->object;
+ qreal opacity;
+ for(int i=0; i < object->getLayerCount(); i++) {
+ opacity = 1.0;
+ if(i != editor->currentLayer && (showAllLayers == 1)) { opacity = 0.4; }
+ if(editor->getCurrentLayer()->type == Layer::CAMERA) opacity = 1.0;
+ Layer* layer = (object->getLayer(i));
+ if(layer->visible && (showAllLayers>0 || i == editor->currentLayer)) {
+ // paints the bitmap images
+ if(layer->type == Layer::BITMAP) {
+ LayerBitmap* layerBitmap = (LayerBitmap*)layer;
+ BitmapImage* bitmapImage = layerBitmap->getLastBitmapImageAtFrame(frame, 0);
+ if(bitmapImage != NULL) {
+ painter.setWorldMatrixEnabled(true);
+
+ // straight ahead (onion skin)
+ BitmapImage* straightAheadImage = layerBitmap->getLastBitmapImageAtFrame(frame, 0);
+ tempFrame = frame;
+ if(onionStraightAhead && onion) {
+ for(int frames = 1; frames < onionStraightAheadFrames; frames++) {
+ tempFrame = editor->getPrevKey(tempFrame);
+ straightAheadImage = layerBitmap->getLastBitmapImageAtFrame(tempFrame, 0);
+ if(tempFrame == 1 || tempFrame == layerBitmap->getMaxFrame()) {
+ frames = onionStraightAheadFrames;
+ straightAheadImage = NULL;
+ }
+ if(straightAheadImage != NULL) {
+ painter.setOpacity(opacity*onionOpacity);
+ straightAheadImage->paintImage(painter);
+ }
+ }
+ }
+
+ //painter.drawImage(previousImage->topLeft(), *(previousImage->image) );
+
+ // inbetween frame (onion skin)
+ BitmapImage* inbetweenImage = layerBitmap->getLastBitmapImageAtFrame(frame, 0);
+
+ if(onionInbetween && onion) {
+ painter.setOpacity(opacity*onionOpacity);
+ if(onionPreviousPrevious) {
+ inbetweenImage = layerBitmap->getLastBitmapImageAtFrame(editor->getPrevKey(editor->getPrevKey(frame)), 0);
+ inbetweenImage->paintImage(painter);
+ }
+ if(onionPrevious) {
+ inbetweenImage = layerBitmap->getLastBitmapImageAtFrame(editor->getPrevKey(frame), 0);
+ inbetweenImage->paintImage(painter);
+ }
+ if(onionNext) {
+ inbetweenImage = layerBitmap->getLastBitmapImageAtFrame(editor->getNextKey(frame), 0);
+ inbetweenImage->paintImage(painter);
+ }
+ if(onionNextNext) {
+ inbetweenImage = layerBitmap->getLastBitmapImageAtFrame(editor->getNextKey(editor->getNextKey(frame)), 0);
+ inbetweenImage->paintImage(painter);
+ }
+ }
+
+ // current frame
+ painter.setOpacity(opacity);
+ if(i==editor->currentLayer && somethingSelected && (myTempTransformedSelection != mySelection) ) {
+ // hole in the original selection -- might support arbitrary shapes in the future
+ painter.setClipping(true);
+ QRegion clip = QRegion(mySelection.toRect());
+ QRegion totalImage = QRegion( myTempView.inverted().mapRect( QRect(-2,-2, width()+3, height()+3) ) );
+ QRegion ImageWithHole = totalImage-=clip;
+ painter.setClipRegion(ImageWithHole, Qt::ReplaceClip);
+ //painter.drawImage(bitmapImage->topLeft(), *(bitmapImage->image) );
+ bitmapImage->paintImage(painter);
+ painter.setClipping(false);
+ // transforms the bitmap selection
+ bool smoothTransform = false;
+ if(myTempTransformedSelection.width() != mySelection.width() || myTempTransformedSelection.height() != mySelection.height() ) smoothTransform = true;
+ BitmapImage selectionClip = bitmapImage->copy(mySelection.toRect());
+ selectionClip.transform(myTempTransformedSelection, smoothTransform);
+ selectionClip.paintImage(painter);
+ //painter.drawImage(selectionClip.topLeft(), *(selectionClip.image));
+ } else {
+ //painter.drawImage(bitmapImage->topLeft(), *(bitmapImage->image) );
+ bitmapImage->paintImage(painter);
+ }
+ //painter.setPen(Qt::red);
+ //painter.setBrush(Qt::NoBrush);
+ //painter.drawRect(bitmapImage->boundaries);
+ }
+ }
+ // paints the vector images
+ if(layer->type == Layer::VECTOR) {
+ LayerVector* layerVector = (LayerVector*)layer;
+ VectorImage* vectorImage = layerVector->getLastVectorImageAtFrame(frame, 0);
+ if( somethingSelected ) {
+ // transforms the vector selection
+ //calculateSelectionTransformation();
+ vectorImage->setSelectionTransformation(selectionTransformation);
+ //vectorImage->setTransformedSelection(myTempTransformedSelection);
+ }
+ QImage* image = layerVector->getLastImageAtFrame(frame, 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+ if(image != NULL) {
+ painter.setWorldMatrixEnabled(false);
+
+ // straight ahead (onion skin)
+ QImage* straightAheadImage = layerVector->getLastImageAtFrame(frame, 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+ tempFrame = frame;
+ if(onionStraightAhead && onion) {
+ for(int frames = 1; frames < onionStraightAheadFrames; frames++) {
+ tempFrame = editor->getPrevKey(tempFrame);
+ straightAheadImage = layerVector->getLastImageAtFrame(tempFrame, 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+ if(tempFrame == 1 || tempFrame == layerVector->getMaxFrame()) {
+ frames = onionStraightAheadFrames;
+ straightAheadImage = NULL;
+ }
+ if(straightAheadImage != NULL) {
+ painter.setOpacity(onionOpacity*opacity);
+ painter.drawImage(QPoint(0, 0), *straightAheadImage);
+ }
+ }
+ }
+
+ // inbetween (onion skin)
+ QImage* inbetweenImage = layerVector->getLastImageAtFrame(frame, 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+ if(onionInbetween && onion) {
+ painter.setOpacity(onionOpacity*opacity);
+ if(onionPreviousPrevious) {
+ inbetweenImage = layerVector->getLastImageAtFrame(editor->getPrevKey(editor->getPrevKey(frame)), 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+ painter.drawImage(QPoint(0, 0), *inbetweenImage);
+ }
+ if(onionPrevious) {
+ inbetweenImage = layerVector->getLastImageAtFrame(editor->getPrevKey(frame), 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+ painter.drawImage(QPoint(0, 0), *inbetweenImage);
+ }
+ if(onionNext) {
+ inbetweenImage = layerVector->getLastImageAtFrame(editor->getNextKey(frame), 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+ painter.drawImage(QPoint(0, 0), *inbetweenImage);
+ }
+ if(onionNextNext) {
+ inbetweenImage = layerVector->getLastImageAtFrame(editor->getNextKey(editor->getNextKey(frame)), 0, size(), simplified, showThinLines, curveOpacity, antialiasing, gradients);
+ painter.drawImage(QPoint(0, 0), *inbetweenImage);
+ }
+ }
+
+ // current frame
+ painter.setOpacity(opacity);
+ painter.drawImage(QPoint(0, 0), *image);
+ }
+ }
+ }
+ }
+ painter.end();
+}
+
+void ScribbleArea::setGaussianGradient(QGradient &gradient, QColor colour, qreal opacity, qreal offset) {
+ int r = colour.red();
+ int g = colour.green();
+ int b = colour.blue();
+ qreal a = colour.alphaF();
+ gradient.setColorAt(0.0, QColor(r, g, b, qRound(a*255*opacity)) );
+ gradient.setColorAt(offset+0.0*(1.0-offset), QColor(r, g, b, qRound(a*255*opacity)) );
+ gradient.setColorAt(offset+0.1*(1.0-offset), QColor(r, g, b, qRound(a*245*opacity)) );
+ gradient.setColorAt(offset+0.2*(1.0-offset), QColor(r, g, b, qRound(a*217*opacity)) );
+ gradient.setColorAt(offset+0.3*(1.0-offset), QColor(r, g, b, qRound(a*178*opacity)) );
+ gradient.setColorAt(offset+0.4*(1.0-offset), QColor(r, g, b, qRound(a*134*opacity)) );
+ gradient.setColorAt(offset+0.5*(1.0-offset), QColor(r, g, b, qRound(a*94*opacity)) );
+ gradient.setColorAt(offset+0.6*(1.0-offset), QColor(r, g, b, qRound(a*60*opacity)) );
+ gradient.setColorAt(offset+0.7*(1.0-offset), QColor(r, g, b, qRound(a*36*opacity)) );
+ gradient.setColorAt(offset+0.8*(1.0-offset), QColor(r, g, b, qRound(a*20*opacity)) );
+ gradient.setColorAt(offset+0.9*(1.0-offset), QColor(r, g, b, qRound(a*10*opacity)) );
+ gradient.setColorAt(offset+1.0*(1.0-offset), QColor(r, g, b, 0) );
+}
+
+void ScribbleArea::drawBrush(QPointF thePoint, qreal brushWidth, qreal offset, QColor fillColour, qreal opacity) {
+ QRadialGradient radialGrad(thePoint, 0.5*brushWidth);
+ setGaussianGradient(radialGrad, fillColour, opacity, offset);
+
+ //radialGrad.setCenter( thePoint );
+ //radialGrad.setFocalPoint( thePoint );
+
+ QRectF rectangle(thePoint.x()-0.5*brushWidth, thePoint.y()-0.5*brushWidth, brushWidth, brushWidth);
+
+ BitmapImage* tempBitmapImage = new BitmapImage(NULL);
+ if(followContour) {
+ tempBitmapImage = new BitmapImage(NULL, rectangle.toRect(), QColor(0,0,0,0));
+ //tempBitmapImage->drawRect( rectangle, Qt::NoPen, QColor(0,0,0,0), QPainter::CompositionMode_Source, antialiasing);
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return;
+ int index = ((LayerImage*)layer)->getLastIndexAtFrame(editor->currentFrame);
+ if(index == -1) return;
+ BitmapImage* bitmapImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+ if(bitmapImage == NULL) { qDebug() << "NULL image pointer!" << editor->currentLayer << editor->currentFrame; return; }
+ BitmapImage::floodFill(bitmapImage, tempBitmapImage, thePoint.toPoint(), qRgba(255,255,255,0), fillColour.rgb(), 20*20, false);
+ tempBitmapImage->drawRect( rectangle.toRect(), Qt::NoPen, radialGrad, QPainter::CompositionMode_SourceIn, antialiasing);
+ } else {
+ tempBitmapImage = new BitmapImage(NULL);
+ tempBitmapImage->drawRect( rectangle, Qt::NoPen, radialGrad, QPainter::CompositionMode_Source, antialiasing);
+ }
+
+ bufferImg->paste(tempBitmapImage);
+ delete tempBitmapImage;
+}
+
+void ScribbleArea::drawLineTo(const QPointF &endPixel, const QPointF &endPoint)
+{
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return;
+
+ if(layer->type == Layer::BITMAP) {
+ //int index = ((LayerImage*)layer)->getLastIndexAtFrame(editor->currentFrame);
+ //if(index == -1) return;
+ //BitmapImage* bitmapImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+ //if(bitmapImage == NULL) { qDebug() << "NULL image pointer!" << editor->currentLayer << editor->currentFrame; return; }
+
+ if (toolMode == ScribbleArea::ERASER) {
+ QPen pen2 = QPen ( QBrush(QColor(255,255,255,255)), currentWidth, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin );
+ bufferImg->drawLine(lastPoint, endPoint, pen2, QPainter::CompositionMode_SourceOver, antialiasing);
+ int rad = qRound(currentWidth / 2) + 2;
+ update(myTempView.mapRect(QRect(lastPoint.toPoint(), endPoint.toPoint()).normalized().adjusted(-rad, -rad, +rad, +rad)));
+ }
+ if(toolMode == ScribbleArea::PENCIL) {
+ QPen pen2 = QPen ( QBrush(currentColour), currentWidth, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin );
+ bufferImg->drawLine(lastPoint, endPoint, pen2, QPainter::CompositionMode_SourceOver, antialiasing);
+ int rad = qRound(currentWidth / 2) + 3;
+ update(myTempView.mapRect(QRect(lastPoint.toPoint(), endPoint.toPoint()).normalized().adjusted(-rad, -rad, +rad, +rad)));
+ }
+ if(toolMode == ScribbleArea::PEN) {
+ QPen pen2 = QPen ( QBrush(pen.colour), currentWidth, Qt::SolidLine, Qt::RoundCap, Qt::RoundJoin );
+ bufferImg->drawLine(lastPoint, endPoint, pen2, QPainter::CompositionMode_SourceOver, antialiasing);
+ int rad = qRound(currentWidth / 2) + 3;
+ update(myTempView.mapRect(QRect(lastPoint.toPoint(), endPoint.toPoint()).normalized().adjusted(-rad, -rad, +rad, +rad)));
+ }
+ if(toolMode == ScribbleArea::COLOURING) {
+ qreal opacity = 1.0;
+ qreal brushWidth = brush.width + 0.5*brush.feather;
+ qreal offset = qMax(0.0,brush.width-0.5*brush.feather)/brushWidth;
+ if(tabletInUse) opacity = tabletPressure;
+ if(usePressure) brushWidth = brushWidth*tabletPressure;
+
+ qreal distance = 4*QLineF(endPoint, lastBrushPoint).length();
+ qreal brushStep = 0.5*brush.width + 0.5*brush.feather;
+ if(usePressure) brushStep = brushStep*tabletPressure;
+ brushStep = qMax(1.0, brushStep);
+ int steps = qRound( distance)/brushStep ;
+
+ for(int i=0; i<steps; i++) {
+ QPointF thePoint = lastBrushPoint + (i+1)*(brushStep)*(endPoint -lastBrushPoint)/distance;
+ drawBrush( thePoint, brushWidth, offset, brush.colour, opacity);
+ if(i==steps-1) lastBrushPoint = thePoint;
+ }
+
+ int rad = qRound(brushWidth / 2) + 3;
+ update(myTempView.mapRect(QRect(lastPoint.toPoint(), endPoint.toPoint()).normalized().adjusted(-rad, -rad, +rad, +rad)));
+ }
+ }
+ if(layer->type == Layer::VECTOR) {
+ if (toolMode == ScribbleArea::ERASER) {
+ bufferImg->drawLine(lastPixel, currentPixel, QPen(Qt::white, currentWidth, Qt::SolidLine, Qt::RoundCap,Qt::RoundJoin), QPainter::CompositionMode_SourceOver, antialiasing);
+ int rad = qRound( (currentWidth/2 + 2)*qAbs( myTempView.m11() ) );
+ update(QRect(lastPixel.toPoint(), endPixel.toPoint()).normalized().adjusted(-rad, -rad, +rad, +rad));
+ }
+ if(toolMode == ScribbleArea::PENCIL) {
+ bufferImg->drawLine(lastPixel, currentPixel, QPen(currentColour, 1, Qt::DotLine, Qt::RoundCap,Qt::RoundJoin), QPainter::CompositionMode_SourceOver, antialiasing);
+ int rad = qRound( ( currentWidth/2 + 2)*qAbs( myTempView.m11() ) );
+ update(QRect(lastPixel.toPoint(), endPixel.toPoint()).normalized().adjusted(-rad, -rad, +rad, +rad));
+ }
+ if(toolMode == ScribbleArea::PEN) {
+ bufferImg->drawLine(lastPixel, currentPixel, QPen(pen.colour, currentWidth*myTempView.m11(), Qt::SolidLine, Qt::RoundCap,Qt::RoundJoin), QPainter::CompositionMode_SourceOver, antialiasing);
+ int rad = qRound( (currentWidth/2 + 2)* (qAbs(myTempView.m11())+qAbs(myTempView.m22())) );
+ update(QRect(lastPixel.toPoint(), endPixel.toPoint()).normalized().adjusted(-rad, -rad, +rad, +rad));
+ }
+ if(toolMode == ScribbleArea::COLOURING) {
+ bufferImg->drawLine(lastPixel, currentPixel, QPen(Qt::gray, 1, Qt::DashLine, Qt::RoundCap,Qt::RoundJoin), QPainter::CompositionMode_SourceOver, antialiasing);
+ int rad = qRound( (currentWidth/2 + 2)*qAbs( myTempView.m11() ) );
+ update(QRect(lastPixel.toPoint(), endPixel.toPoint()).normalized().adjusted(-rad, -rad, +rad, +rad));
+ }
+ }
+
+ //emit modification();
+
+ lastPixel = endPixel;
+ lastPoint = endPoint;
+}
+
+void ScribbleArea::drawEyedropperPreview(const QColor colour) {
+ QPainter painter( eyedropperCursor );
+ painter.setPen(QPen(Qt::black, 1, Qt::SolidLine, Qt::RoundCap,Qt::RoundJoin));
+ painter.setBrush(colour);
+ painter.drawRect( 10, 10, 20, 20);
+ painter.end();
+ setCursor( QCursor(*eyedropperCursor, 5, 5) );
+}
+
+void ScribbleArea::drawPolyline() {
+ if(toolMode == POLYLINE) {
+ if(mousePoints.size()>0) {
+ QPen pen2(pen.colour, pen.width, Qt::SolidLine, Qt::RoundCap,Qt::RoundJoin);
+ QPainterPath tempPath = BezierCurve(mousePoints).getSimplePath();
+ tempPath.lineTo(currentPoint);
+ QRect updateRect = myTempView.mapRect(tempPath.boundingRect().toRect()).adjusted(-10,-10,10,10);
+ if(editor->getCurrentLayer()->type == Layer::VECTOR) {
+ tempPath = myTempView.map( tempPath );
+ if(makeInvisible) { pen2.setWidth(0); pen2.setStyle(Qt::DotLine);} else pen2.setWidth(pen.width*myTempView.m11());
+ }
+ bufferImg->clear();
+ bufferImg->drawPath( tempPath, pen2, Qt::NoBrush, QPainter::CompositionMode_SourceOver, antialiasing);
+ update( updateRect );
+ //update( QRect(lastPixel.toPoint(), currentPixel.toPoint()).normalized() );
+ //bufferImg->drawRect(tempPath.boundingRect().toRect());
+ //update( QRect(lastPixel.toPoint()-QPoint(10,10), lastPixel.toPoint()+QPoint(10,10)) );
+ //update();
+ }
+ }
+}
+
+void ScribbleArea::endPolyline()
+{
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return;
+ if(layer->type == Layer::VECTOR) {
+ BezierCurve curve = BezierCurve(mousePoints);
+ if(makeInvisible) curve.setWidth(0); else curve.setWidth(pen.width);
+ curve.setColourNumber( pen.colourNumber );
+ curve.setVariableWidth(false);
+ curve.setInvisibility(makeInvisible);
+ //curve.setSelected(true);
+ ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->addCurve(curve, qAbs(myTempView.m11()) );
+ }
+ if(layer->type == Layer::BITMAP) {
+ drawPolyline();
+ BitmapImage* bitmapImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+ bitmapImage->paste(bufferImg);
+ }
+ bufferImg->clear();
+ while(!mousePoints.isEmpty()) mousePoints.removeAt(0); // empty the mousePoints
+ setModified(editor->currentLayer, editor->currentFrame);
+}
+
+
+void ScribbleArea::resizeEvent(QResizeEvent *event)
+{
+ //resize( size() );
+ QWidget::resizeEvent(event);
+ canvas = QPixmap(size());
+ recentre();
+ updateAllFrames();
+}
+
+void ScribbleArea::recentre() {
+ centralView = QMatrix(1,0,0,1, 0.5*width(), 0.5*height());
+ setView();
+ QPixmapCache::clear();
+ update();
+}
+
+void ScribbleArea::setMyView(QMatrix view) {
+ myView = view;
+}
+
+QMatrix ScribbleArea::getMyView() {
+ return myView;
+}
+
+void ScribbleArea::setView() {
+ setView(getView());
+}
+
+void ScribbleArea::setView(QMatrix view) {
+ for(int i=0; i < editor->object->getLayerCount() ; i++) {
+ Layer* layer = editor->object->getLayer(i);
+ if(layer->type == Layer::VECTOR) {
+ ((LayerVector*)layer)->setView(view * centralView);
+ }
+ }
+ myTempView = view * centralView;
+}
+
+void ScribbleArea::resetView() {
+ editor->resetMirror();
+ myView.reset();
+ myTempView = myView * centralView;
+ recentre();
+}
+
+QMatrix ScribbleArea::getView() {
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return QMatrix(); // error
+ if(layer->type == Layer::CAMERA) {
+ return ((LayerCamera*)layer)->getViewAtFrame(editor->currentFrame);
+ qDebug() << "viewCamera" << ((LayerCamera*)layer)->getViewAtFrame(editor->currentFrame);
+ } else {
+ return myView;
+ }
+}
+
+QRectF ScribbleArea::getViewRect() {
+ QRectF rect = QRectF( -width()/2, -height()/2, width(), height() );
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return rect;
+ if(layer->type == Layer::CAMERA) {
+ return ((LayerCamera*)layer)->getViewRect();
+ } else {
+ return rect;
+ }
+}
+
+QPointF ScribbleArea::getCentralPoint() {
+ return myTempView.inverted().map( QPoint(width()/2, height()/2) );
+}
+
+void ScribbleArea::calculateSelectionRect() {
+ selectionTransformation.reset();
+ Layer* layer = editor->getCurrentLayer();
+ if(layer==NULL) return;
+ if(layer->type == Layer::VECTOR) {
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ vectorImage->calculateSelectionRect();
+ setSelection( vectorImage->getSelectionRect(), true );
+ }
+}
+
+void ScribbleArea::calculateSelectionTransformation() {
+ qreal c1x, c1y , c2x, c2y, scaleX, scaleY;
+ c1x = 0.5*(myTempTransformedSelection.left()+myTempTransformedSelection.right());
+ c1y = 0.5*(myTempTransformedSelection.top()+myTempTransformedSelection.bottom());
+ c2x = 0.5*(mySelection.left()+mySelection.right());
+ c2y = 0.5*(mySelection.top()+mySelection.bottom());
+ if(mySelection.width() == 0) { scaleX = 1.0; } else { scaleX = myTempTransformedSelection.width()/mySelection.width(); }
+ if(mySelection.height() == 0) { scaleY = 1.0; } else { scaleY = myTempTransformedSelection.height()/mySelection.height(); }
+ selectionTransformation.reset();
+ selectionTransformation.translate(c1x,c1y);
+ selectionTransformation.scale(scaleX, scaleY);
+ selectionTransformation.translate(-c2x,-c2y);
+ //modification();
+}
+
+void ScribbleArea::paintTransformedSelection() {
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return;
+
+ if(somethingSelected) { // there is something selected
+ if(layer->type == Layer::BITMAP && (myTransformedSelection != mySelection) ) {
+ //backup();
+ BitmapImage* bitmapImage = ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0);
+ if(bitmapImage == NULL) { qDebug() << "NULL image pointer!" << editor->currentLayer << editor->currentFrame; return; }
+
+ bool smoothTransform = false;
+ if(myTransformedSelection.width() != mySelection.width() || myTransformedSelection.height() != mySelection.height() ) smoothTransform = true;
+ BitmapImage selectionClip = bitmapImage->copy(mySelection.toRect());
+ selectionClip.transform( myTransformedSelection, smoothTransform );
+ bitmapImage->clear(mySelection.toRect());
+ bitmapImage->paste(&selectionClip);
+ }
+ if(layer->type == Layer::VECTOR) {
+ // vector transformation
+ LayerVector* layerVector = (LayerVector*)layer;
+ VectorImage* vectorImage = layerVector->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ vectorImage->applySelectionTransformation();
+ selectionTransformation.reset();
+ }
+ //deselectAll();
+ //emit modification();
+ setModified(editor->currentLayer, editor->currentFrame);
+ }
+}
+
+void ScribbleArea::setSelection(QRectF rect, bool trueOrFalse) {
+ mySelection = rect;
+ myTransformedSelection = rect;
+ myTempTransformedSelection = rect;
+ somethingSelected = trueOrFalse;
+ displaySelectionProperties();
+}
+
+void ScribbleArea::displaySelectionProperties() {
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return;
+ if(layer->type == Layer::VECTOR) {
+ LayerVector* layerVector = (LayerVector*)layer;
+ VectorImage* vectorImage = layerVector->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ //vectorImage->applySelectionTransformation();
+ if(toolMode == MOVE) {
+ //if(closestCurves.size()>0) {
+ int selectedCurve = vectorImage->getFirstSelectedCurve();
+ if(selectedCurve != -1) {
+ editor->setWidth(vectorImage->curve[selectedCurve].getWidth());
+ editor->setFeather(vectorImage->curve[selectedCurve].getFeather());
+ editor->setOpacity(0);
+ editor->setInvisibility(vectorImage->curve[selectedCurve].isInvisible());
+ editor->setPressure(vectorImage->curve[selectedCurve].getVariableWidth());
+ editor->selectColour(vectorImage->curve[selectedCurve].getColourNumber());
+ }
+
+ int selectedArea = vectorImage->getFirstSelectedArea();
+ if(selectedArea != -1) {
+ editor->selectColour(vectorImage->area[selectedArea].colourNumber);
+ //editor->setFeather(vectorImage->area[selectedArea].getFeather());
+ }
+ }
+ }
+}
+
+void ScribbleArea::selectAll() {
+ offset.setX(0); offset.setY(0);
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return;
+ if(layer->type == Layer::BITMAP) {
+ setSelection( myTempView.inverted().mapRect( QRect(-2,-2, width()+3, height()+3) ), true ); // TO BE IMPROVED
+ }
+ if(layer->type == Layer::VECTOR) {
+ VectorImage* vectorImage = ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0);
+ vectorImage->selectAll();
+ setSelection( vectorImage->getSelectionRect(), true );
+ }
+ updateFrame();
+}
+
+void ScribbleArea::deselectAll() {
+ offset.setX(0); offset.setY(0);
+ selectionTransformation.reset();
+ mySelection.setRect(10,10,20,20);
+ myTransformedSelection.setRect(10,10,20,20);
+ myTempTransformedSelection.setRect(10,10,20,20);
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return;
+ if(layer->type == Layer::VECTOR) {
+ ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->deselectAll();
+ if(toolMode == MOVE) {
+ editor->setWidth(-1);
+ editor->setOpacity(-1);
+ editor->setInvisibility(-1);
+ editor->setPressure(-1);
+ }
+ }
+ somethingSelected = false;
+ bufferImg->clear();
+ vectorSelection.clear();
+ while(!mousePoints.isEmpty()) mousePoints.removeAt(0); // empty the mousePoints
+ updateFrame();
+}
+
+void ScribbleArea::onionChangeSlot1() {
+ onionChangeSlot(1);
+}
+
+void ScribbleArea::onionChangeSlot2() {
+ onionChangeSlot(2);
+}
+
+void ScribbleArea::onionIsOn() {
+ onion = !onion;
+ updateAllFrames();
+ ScribbleArea::setFocus();
+}
+
+void ScribbleArea::onionChangeSlot(int onionIndex) {
+ switch(onionIndex){
+ case 1 :{
+ ScribbleArea::onionStraightAhead = true;
+ ScribbleArea::onionInbetween = false;
+ break;
+ }
+ case 2 :{
+ ScribbleArea::onionStraightAhead = false;
+ ScribbleArea::onionInbetween = true;
+ break;
+ }
+ }
+ updateAllFrames();
+}
+
+void ScribbleArea::onionOpacityLevel(int opacityInteger) {
+ onionOpacity = (opacityInteger/100);
+ updateAllFrames();
+}
+
+void ScribbleArea::onionStraightAheadLevel(int numberOfFrames) {
+ onionStraightAheadFrames = numberOfFrames;
+ updateAllFrames();
+}
+
+void ScribbleArea::onionPreviousPreviousLevel(int boolean) {
+ if(boolean) onionPreviousPrevious = true;
+ else onionPreviousPrevious = false;
+ updateAllFrames();
+}
+
+void ScribbleArea::onionPreviousLevel(int boolean) {
+ if(boolean) onionPrevious = true;
+ else onionPrevious = false;
+ updateAllFrames();
+}
+
+void ScribbleArea::onionNextLevel(int boolean) {
+ if(boolean) onionNext = true;
+ else onionNext = false;
+ updateAllFrames();
+}
+
+void ScribbleArea::onionNextNextLevel(int boolean) {
+ if(boolean) onionNextNext = true;
+ else onionNextNext = false;
+ updateAllFrames();
+}
+
+void ScribbleArea::floodFill(VectorImage* vectorImage, QPoint point, QRgb targetColour, QRgb replacementColour, int tolerance) {
+ bool invertible;
+ QPointF initialPoint = myTempView.inverted(&invertible).map(QPointF(point));
+ // Step 1: peforms a standard (pixel-based) flood fill, and finds the vertices on the contour of the filled area
+ qreal tol = 8.0/qAbs(myTempView.m11()); // tolerance for finding vertices along the contour of the flood-filled area
+ qreal tol2 = 1.5/qAbs(myTempView.m11()); // tolerance for connecting contour vertices from different curves // should be small as close points of different curves are supposed to coincide
+ QList<QPoint> queue; // queue all the pixels of the filled area (as they are found)
+ QList<QPoint> contourPixels; // list of the pixels near the contour of the filled area
+ int j, k; bool condition;
+ //vectorImage->update(true, showThinLines); // update the vector image with simplified curves (all width=1)
+ QImage* targetImage = new QImage(size(), QImage::Format_ARGB32_Premultiplied);
+ vectorImage->outputImage(targetImage, size(), myTempView, true, showThinLines, 1.0, true, false); // the target image is the vector image with simplified curves (all width=1)
+ //QImage* replaceImage = &bufferImg;
+ QImage* replaceImage = new QImage( size(), QImage::Format_ARGB32_Premultiplied);
+ QList<VertexRef> points = vectorImage->getAllVertices(); // refs of all the points
+ QList<VertexRef> boxPoints; // refs of points inside the bounding box
+ QList<VertexRef> contourPoints; // refs of points near the contour pixels
+ QList<VertexRef> vertices;
+ if( BitmapImage::rgbDistance(targetImage->pixel(point.x(), point.y()), targetColour) > tolerance ) return;
+ queue.append( point );
+ int boxLeft = point.x();
+ int boxRight = point.x();
+ int boxTop = point.y();
+ int boxBottom = point.y();
+ // ----- flood fill and remember the contour pixels -> contourPixels
+ // ----- from the standard flood fill algorithm
+ // ----- http://en.wikipedia.org/wiki/Flood_fill
+ j = -1; k = 1;
+ for(int i=0; i< queue.size(); i++ ) {
+ point = queue.at(i);
+ if( replaceImage->pixel(point.x(), point.y()) != replacementColour && BitmapImage::rgbDistance(targetImage->pixel(point.x(), point.y()), targetColour) < tolerance ) {
+ //image.setPixel( point.x(), point.y(), replacementColour);
+ j = -1; condition = (point.x() + j > 0);
+ while( replaceImage->pixel(point.x()+j, point.y()) != replacementColour && BitmapImage::rgbDistance(targetImage->pixel( point.x()+j, point.y() ), targetColour) < tolerance && condition) {
+ j = j - 1;
+ condition = (point.x() + j > 0);
+ }
+ if(!condition) { floodFillError(1); return; }
+ if( BitmapImage::rgbDistance(targetImage->pixel( point.x()+j, point.y() ), targetColour) >= tolerance ) { // bumps into the contour
+ contourPixels.append( point+QPoint(j,0) );
+ }
+
+ k = 1; condition = ( point.x() + k < targetImage->width()-1);
+ while( replaceImage->pixel(point.x()+k, point.y()) != replacementColour && BitmapImage::rgbDistance(targetImage->pixel( point.x()+k, point.y() ), targetColour) < tolerance && condition) {
+ k = k + 1;
+ condition = ( point.x() + k < targetImage->width()-1);
+ }
+ if(!condition) { floodFillError(1); return; }
+ if( BitmapImage::rgbDistance(targetImage->pixel( point.x()+k, point.y() ), targetColour) >= tolerance ) { // bumps into the contour
+ contourPixels.append( point + QPoint(k,0) );
+ }
+ if(point.x()+k > boxRight) boxRight = point.x()+k;
+ if(point.x()+j < boxLeft) boxLeft = point.x()+j;
+ for(int x = j+1; x < k; x++) {
+ replaceImage->setPixel( point.x()+x, point.y(), replacementColour);
+ if(point.y() - 1 > 0 && queue.size() < targetImage->height() * targetImage->width() ) {
+ if( replaceImage->pixel(point.x()+x, point.y()-1) != replacementColour) {
+ if(BitmapImage::rgbDistance(targetImage->pixel( point.x()+x, point.y() - 1), targetColour) < tolerance) {
+ queue.append( point + QPoint(x,-1) );
+ if(point.y()-1< boxBottom) boxBottom = point.y()-1;
+ }
+ else { // bumps into the contour
+ contourPixels.append(point+QPoint(x,-1));
+ }
+ }
+ } else { floodFillError(1); return; }
+ if(point.y() + 1 < targetImage->height() && queue.size() < targetImage->height() * targetImage->width() ) {
+ if( replaceImage->pixel(point.x()+x, point.y()+1) != replacementColour) {
+ if(BitmapImage::rgbDistance(targetImage->pixel( point.x()+x, point.y() + 1), targetColour) < tolerance) {
+ queue.append( point + QPoint(x, 1) );
+ if(point.y()+1> boxTop) boxTop = point.y()+1;
+ }
+ else { // bumps into the contour
+ contourPixels.append(point+QPoint(x,1));
+ }
+ }
+ } else { floodFillError(1); return; }
+ }
+ }
+ }
+ // --- finds the bounding box of the filled area, and all the points contained inside (+ 1*tol) -> boxPoints
+ QPointF mBoxTopRight = myTempView.inverted(&invertible).map( QPointF(qMax(boxLeft,boxRight)+1*tol, qMax(boxTop,boxBottom)+1*tol) );
+ QPointF mBoxBottomLeft = myTempView.inverted(&invertible).map( QPointF(qMin(boxLeft,boxRight)-1*tol, qMin(boxTop,boxBottom)-1*tol) );
+ QRectF boundingBox = QRectF( mBoxBottomLeft.x()-1, mBoxBottomLeft.y()-1, qAbs(mBoxBottomLeft.x()-mBoxTopRight.x())+2, qAbs(mBoxBottomLeft.y()-mBoxTopRight.y())+2 );
+ debugRect = QRectF(0,0,0,0);
+ debugRect = boundingBox;
+ for(int l=0; l<points.size(); l++) {
+ QPointF mPoint = vectorImage->getVertex(points.at(l));
+ if( boundingBox.contains( mPoint ) ) {
+ // -----
+ //vectorImage->setSelected(points.at(l), true);
+ boxPoints.append( points.at(l) );
+ }
+ }
+ // ---- finds the points near the contourPixels -> contourPoints
+ for(int i=0; i< contourPixels.size(); i++ ) {
+ QPointF mPoint = myTempView.inverted(&invertible).map( QPointF( contourPixels.at(i) ) );
+ vertices = vectorImage->getAndRemoveVerticesCloseTo(mPoint, tol, &boxPoints);
+ //contourPoints << vertices;
+ for(int m=0; m<vertices.size(); m++) { // for each ?
+ contourPoints.append( vertices.at(m) );
+ }
+ }
+ // ---- points of sharp peaks may be missing in contourPoints ---> we correct for that
+ for(int i=0; i< contourPoints.size(); i++) {
+ VertexRef theNextVertex = contourPoints[i].nextVertex();
+ if( ! contourPoints.contains(theNextVertex) ) { // if the next vertex is not in the list of contour points
+ if( contourPoints.contains( theNextVertex.nextVertex() ) ) { // but the next-next vertex is...
+ contourPoints.append( theNextVertex );
+ //qDebug() << "----- found SHARP point (type 1a) ------";
+ }
+ QList<VertexRef> closePoints = vectorImage->getVerticesCloseTo( theNextVertex, tol2 );
+ for( int j=0; j<closePoints.size(); j++ ) {
+ if( closePoints[j] != theNextVertex ) { // ...or a point connected to the next vertex is
+ if( contourPoints.contains(closePoints[j].nextVertex()) || contourPoints.contains(closePoints[j].prevVertex()) ) {
+ contourPoints.append( theNextVertex );
+ contourPoints.append( closePoints[j] );
+ //qDebug() << "----- found SHARP point (type 2a) ------";
+ }
+ }
+ }
+ }
+ VertexRef thePreviousVertex = contourPoints[i].prevVertex();
+ if( ! contourPoints.contains(thePreviousVertex) ) { // if the previous vertex is not in the list of contour points
+ if( contourPoints.contains( thePreviousVertex.prevVertex() ) ) { // but the prev-prev vertex is...
+ contourPoints.append( thePreviousVertex );
+ //qDebug() << "----- found SHARP point (type 1b) ------";
+ }
+ QList<VertexRef> closePoints = vectorImage->getVerticesCloseTo( thePreviousVertex, tol2 );
+ for( int j=0; j<closePoints.size(); j++ ) {
+ if( closePoints[j] != thePreviousVertex ) { // ...or a point connected to the previous vertex is
+ if( contourPoints.contains(closePoints[j].nextVertex()) || contourPoints.contains(closePoints[j].prevVertex()) ) {
+ contourPoints.append( thePreviousVertex );
+ contourPoints.append( closePoints[j] );
+ //qDebug() << "----- found SHARP point (type 2b) ------";
+ }
+ }
+ }
+ }
+ }
+
+ // 1 --- stop here (for debugging purpose)
+ /*qDebug() << "CONTOUR POINTS:";
+ for(int i=0; i < contourPoints.size(); i++) {
+ qDebug() << "(" << contourPoints.at(i).curveNumber << "," << contourPoints.at(i).vertexNumber << ")";
+ }*/
+ // -----
+ vectorImage->setSelected( contourPoints, true);
+ update();
+ //replaceImage->fill(qRgba(0,0,0,0));
+ //QMessageBox::warning(this, tr("My Application"), tr("all the contour points"), QMessageBox::Ok, QMessageBox::Ok);
+ //vectorImage->deselectAll();
+ //return;
+ // 2 --- or continue
+
+ // Step 2: finds closed paths among the selected vertices: we start from a vertex and build a tree of connected vertices
+ //while(contourPoints.size() > 0) {
+ QList<VertexRef> tree;
+ QList<int> fatherNode; // given the index in tree (of a vertex), return the index (in tree) of its father vertex; this will define the tree structure
+ QList<int> leaves; // list of indices in tree which correspond to end of branches (leaves)
+
+ // Step 2.1: build tree
+ int rootIndex = -1; bool rootIndexFound = false;
+ while(!rootIndexFound && rootIndex < contourPoints.size()-1) {
+ rootIndex++;
+ if( vectorImage->getVerticesCloseTo( vectorImage->getVertex(contourPoints.at(rootIndex)), tol2, &contourPoints).size() > 1) {
+ // this point is connected!
+ rootIndexFound = true;
+ }
+ }
+ if(!rootIndexFound) { floodFillError(3); return; }
+ tree << contourPoints.at(rootIndex);
+ fatherNode.append(-1);
+ //leaves << 0;
+ contourPoints.removeAt(rootIndex);
+ VertexRef vertex0 = tree.at(0);
+ //qDebug() << "ROOT = " << vertex0.curveNumber << "," << vertex0.vertexNumber;
+ j=0;
+ bool success = false;
+ int counter = 0;
+ while(!success && j>-1 && counter<1000) {
+ counter++;
+ //qDebug() << "------";
+ VertexRef vertex = tree.at(j);
+ //qDebug() << j << "/" << tree.size() << " " << vertex.curveNumber << "," << vertex.vertexNumber << "->" << fatherNode.at(j);
+ int index1 = contourPoints.indexOf(vertex.nextVertex());
+ if( index1 != -1) {
+ //qDebug() << "next vertex";
+ tree.append(vertex.nextVertex());
+ fatherNode.append(j);
+ contourPoints.removeAt(index1);
+ j = tree.size()-1;
+ } else {
+ int index2 = contourPoints.indexOf(vertex.prevVertex());
+ if( index2 != -1 ) {
+ // qDebug() << "previous vertex";
+ tree.append(vertex.prevVertex());
+ fatherNode.append(j);
+ contourPoints.removeAt(index2);
+ j = tree.size()-1;
+ } else {
+ QList<VertexRef> pointsNearby = vectorImage->getVerticesCloseTo( vectorImage->getVertex(vertex), tol2, &contourPoints);
+ if(pointsNearby.size() > 0) {
+ //qDebug() << "close vertex";
+ tree << pointsNearby.at(0);
+ fatherNode.append(j);
+ contourPoints.removeAt( contourPoints.indexOf(pointsNearby.at(0)) );
+ j = tree.size()-1;
+ } else {
+ qreal dist = vectorImage->getDistance(vertex, vertex0);
+ //qDebug() << "is it a leave ? " << j << "dist = " << dist << "-" << tol2;
+ if( ((vertex.curveNumber == vertex0.curveNumber) && (qAbs(vertex.vertexNumber-vertex0.vertexNumber)==1)) || (dist < tol2) ) {
+ // we found a leaf close to the root of the tree - does the closed path contain the initial point?
+ QList<VertexRef> closedPath;
+ int pathIndex = j;
+ if(dist > 0) closedPath.prepend(vertex0);
+ closedPath.prepend(tree.at(pathIndex));
+ while( (pathIndex = fatherNode.at(pathIndex)) != -1) {
+ closedPath.prepend(tree.at(pathIndex));
+ }
+ BezierArea newArea = BezierArea( closedPath, brush.colourNumber );
+ vectorImage->updateArea(newArea);
+ if( newArea.path.contains(initialPoint) ) {
+ vectorImage->addArea( newArea );
+ //qDebug() << "Yes!";
+ success = true;
+ } else {
+ //qDebug() << "No! almost";
+ j = fatherNode.at(j);
+ }
+ } else {
+ //qDebug() << "No!";
+ leaves << j;
+ j = fatherNode.at(j);
+ }
+ }
+ }
+ }
+
+ //
+ }
+
+ if(!success) { floodFillError(2); return; }
+ //qDebug() << "failure!" << contourPoints.size();
+ replaceImage->fill(qRgba(0,0,0,0));
+ deselectAll();
+
+ // -- debug --- (display tree)
+ /*for(int indexm=0; indexm < tree.size(); indexm++) {
+ qDebug() << indexm << ") " << tree.at(indexm).curveNumber << "," << tree.at(indexm).vertexNumber << " -> " << fatherNode.at(indexm);
+ //if(leaves.contains(indexm)) vectorImage->setSelected( tree.at(indexm), true);
+ vectorImage->setSelected( tree.at(indexm), true);
+ update();
+ //sleep( 1 );
+ QMessageBox::warning(this, tr("My Application"), tr("all the tree points"), QMessageBox::Ok, QMessageBox::Ok);
+ }*/
+ delete targetImage;
+ update();
+}
+
+void ScribbleArea::floodFillError(int errorType) {
+ QString message, error;
+ if(errorType == 1) message = "There is a gap in your drawing (or maybe you have zoomed too much).";
+ if(errorType == 2 || errorType == 3) message = "Sorry! This doesn't always work."
+ "Please try again (zoom a bit, click at another location... )<br>"
+ "if it doesn't work, zoom a bit and check that your paths are connected by pressing F1.).";
+
+ if(errorType == 1) error = "Out of bound.";
+ if(errorType == 2) error = "Could not find a closed path.";
+ if(errorType == 3) error = "Could not find the root index.";
+ QMessageBox::warning(this, tr("Flood fill error"), message+"<br><br>Error: "+error, QMessageBox::Ok, QMessageBox::Ok);
+ bufferImg->clear();
+ deselectAll();
+}
+
+
+void ScribbleArea::switchTool() {
+ if(toolMode == ScribbleArea::MOVE) { paintTransformedSelection(); deselectAll(); }
+ if(toolMode == ScribbleArea::POLYLINE) escape();
+}
+
+void ScribbleArea::updateCursor() {
+ if(toolMode == PENCIL) {
+ if(toolCursors) {
+ QCursor cursor(QPixmap(":icons/pencil2.png"),0,16);
+ setCursor(cursor);
+ } else {
+ setCursor(Qt::CrossCursor);
+ }
+ }
+ if(toolMode == PEN) {
+ if(toolCursors) {
+ QCursor cursor(QPixmap(":icons/pen.png"),7,0);
+ setCursor(cursor);
+ } else {
+ setCursor(Qt::CrossCursor);
+ }
+ }
+ if(toolMode == ERASER) {
+ QPixmap pixmap(eraser.width,eraser.width);
+ pixmap.fill( QColor(255,255,255,0) );
+ QPainter painter(&pixmap);
+ painter.setPen( QColor(0,0,0,190) );
+ painter.setBrush( QColor(255,255,255,100) );
+ painter.drawLine( QPointF(eraser.width/2-2,eraser.width/2), QPointF(eraser.width/2+2,eraser.width/2) );
+ painter.drawLine( QPointF(eraser.width/2,eraser.width/2-2), QPointF(eraser.width/2,eraser.width/2+2) );
+ painter.setRenderHints(QPainter::Antialiasing, true);
+ painter.setPen( QColor(0,0,0,100) );
+ painter.drawEllipse( QRectF(1,1,eraser.width-2,eraser.width-2) );
+ painter.end();
+ setCursor(pixmap); //setCursor(Qt::CrossCursor);
+ }
+ if(toolMode == BUCKET) {
+ if(toolCursors) {
+ QPixmap pixmap(":icons/bucketTool.png");
+ QPainter painter(&pixmap);
+ painter.setPen( brush.colour );
+ painter.drawLine( QPoint(5,16), QPoint(5,18) );
+ painter.end();
+ QCursor cursor(pixmap,4,20);
+ setCursor(cursor);
+ } else {
+ setCursor(Qt::CrossCursor);
+ }
+ }
+ if(toolMode == EYEDROPPER) {
+ if(eyedropperCursor == NULL) {
+ eyedropperCursor = new QPixmap(32,32);
+ eyedropperCursor->fill(Qt::white);
+ QPixmap* mask = new QPixmap(32,32);
+ mask->fill(Qt::color0);
+ QPainter painter(eyedropperCursor);
+ painter.drawLine(5,0,5,10);
+ painter.drawLine(0,5,10,5);
+ painter.end();
+ painter.begin(mask);
+ painter.setBrush(Qt::color1);
+ painter.setPen(Qt::color1);
+ painter.drawLine(5,0,5,10);
+ painter.drawLine(0,5,10,5);
+ painter.drawRect(10,10,20,20);
+ painter.end();
+ eyedropperCursor->setMask(*mask);
+ }
+ setCursor( QCursor(*eyedropperCursor, 5, 5) );
+ }
+ if(toolMode == SELECT) {
+ Layer* layer = editor->getCurrentLayer();
+ if(layer->type == Layer::VECTOR) setCursor(Qt::ArrowCursor);
+ if(layer->type == Layer::BITMAP) setCursor(Qt::CrossCursor);
+ }
+ if(toolMode == MOVE) {
+ setCursor(Qt::ArrowCursor);
+ }
+ if(toolMode == HAND) {
+ QPixmap pixmap(":icons/hand.png");
+ setCursor(pixmap); //setCursor(Qt::PointingHandCursor);
+ }
+ if(toolMode == POLYLINE) {
+ setCursor(Qt::CrossCursor);
+ }
+ if(toolMode == COLOURING) {
+ Layer* layer = editor->getCurrentLayer();
+ if(layer->type == Layer::VECTOR) {
+ setCursor(Qt::CrossCursor);
+ }
+ if(layer->type == Layer::BITMAP) {
+ //qreal width = brush.width*0.66;
+ qreal width = brush.width + 0.5*brush.feather;
+ QPixmap pixmap(width,width);
+ if(!pixmap.isNull()) {
+ pixmap.fill( QColor(255,255,255,0) );
+ QPainter painter(&pixmap);
+ painter.setPen( QColor(0,0,0,190) );
+ painter.setBrush( Qt::NoBrush );
+ painter.drawLine( QPointF(width/2-2,width/2), QPointF(width/2+2,width/2) );
+ painter.drawLine( QPointF(width/2,width/2-2), QPointF(width/2,width/2+2) );
+ painter.setRenderHints(QPainter::Antialiasing, true);
+ painter.setPen( QColor(0,0,0,100) );
+ painter.drawEllipse( QRectF(1+brush.feather/2,1+brush.feather/2,qMax(0.0,brush.width-brush.feather/2-2),qMax(0.0,brush.width-brush.feather/2-2)) );
+ painter.setPen( QColor(0,0,0,50) );
+ painter.drawEllipse( QRectF(1+brush.feather/8,1+brush.feather/8,qMax(0.0,width-brush.feather/4-2),qMax(0.0,width-brush.feather/4-2)) );
+ painter.end();
+ }
+ setCursor(pixmap);
+ }
+ }
+ if(toolMode == EDIT) {
+ QCursor cursor(QPixmap(":icons/smudge.png"),3,16);
+ setCursor(cursor); //setCursor(Qt::ArrowCursor);
+ }
+}
+
+void ScribbleArea::pencilOn() {
+ switchTool();
+ toolMode = ScribbleArea::PENCIL;
+ // --- change properties ---
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return;
+ if(layer->type == Layer::VECTOR) editor->selectColour(pencil.colourNumber);
+ if(layer->type == Layer::BITMAP) editor->setColour(pencil.colour);
+ editor->setWidth(pencil.width);
+ editor->setFeather(pencil.feather);
+ editor->setFeather(-1); // by definition the pencil has no feather
+ editor->setOpacity(pencil.opacity);
+ editor->setPressure(pencil.pressure);
+ editor->setInvisibility(pencil.invisibility);
+ editor->setPreserveAlpha(pencil.preserveAlpha);
+ editor->setFollowContour(-1);
+ editor->setInvisibility(-1); // by definition the pencil is invisible in vector mode
+ // --- change cursor ---
+ updateCursor();
+}
+
+void ScribbleArea::penOn() {
+ switchTool();
+ toolMode = ScribbleArea::PEN;
+ // --- change properties ---
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return;
+ if(layer->type == Layer::VECTOR) editor->selectColour(pen.colourNumber);
+ if(layer->type == Layer::BITMAP) editor->setColour(pen.colour);
+ if(pen.width<0) pen.width = 1.0; editor->setWidth(pen.width);
+ if(pen.feather<0) pen.feather = 0.0; editor->setFeather(pen.feather); editor->setFeather(-1);
+ if(pen.opacity<0) pen.opacity = 1.0; editor->setOpacity(pen.opacity);
+ editor->setPressure(pen.pressure);
+ editor->setInvisibility(pen.invisibility);
+ editor->setPreserveAlpha(pen.preserveAlpha);
+ editor->setFollowContour(-1);
+ editor->setInvisibility(-1); // by definition the pen is visible in vector mode
+ // --- change cursor ---
+ updateCursor();
+}
+
+void ScribbleArea::eraserOn() {
+ switchTool();
+ toolMode = ScribbleArea::ERASER;
+ // --- change properties ---
+ editor->setWidth(eraser.width);
+ editor->setFeather(eraser.feather); editor->setFeather(-1);
+ editor->setOpacity(eraser.opacity);
+ editor->setPressure(eraser.pressure);
+ editor->setPreserveAlpha(0);
+ editor->setPreserveAlpha(-1);
+ editor->setFollowContour(-1);
+ editor->setInvisibility(0);
+ editor->setInvisibility(-1);
+ // --- change cursor ---
+ updateCursor();
+}
+
+void ScribbleArea::selectOn() {
+ switchTool();
+ toolMode = ScribbleArea::SELECT;
+ // --- change properties ---
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return;
+ editor->setWidth(-1);
+ editor->setFeather(-1);
+ editor->setOpacity(-1);
+ editor->setPressure(-1);
+ editor->setInvisibility(-1);
+ editor->setPreserveAlpha(-1);
+ editor->setFollowContour(-1);
+ // --- change cursor ---
+ updateCursor();
+}
+
+void ScribbleArea::moveOn() {
+ toolMode = ScribbleArea::MOVE;
+ // --- change properties ---
+ editor->setWidth(-1);
+ editor->setFeather(-1);
+ editor->setOpacity(-1);
+ editor->setPressure(-1);
+ editor->setInvisibility(-1);
+ editor->setPreserveAlpha(-1);
+ editor->setFollowContour(-1);
+ // --- change cursor ---
+ updateCursor();
+}
+
+void ScribbleArea::handOn() {
+ if(toolMode == ScribbleArea::HAND) resetView();
+ toolMode = ScribbleArea::HAND;
+ // --- change properties ---
+ editor->setWidth(-1);
+ editor->setFeather(-1);
+ editor->setOpacity(-1);
+ editor->setPressure(-1);
+ editor->setInvisibility(-1);
+ editor->setPreserveAlpha(-1);
+ editor->setFollowContour(-1);
+ // --- change cursor ---
+ updateCursor();
+}
+
+void ScribbleArea::polylineOn() {
+ switchTool();
+ toolMode = ScribbleArea::POLYLINE;
+ // --- change properties ---
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return;
+ if(layer->type == Layer::VECTOR) editor->selectColour(pen.colourNumber);
+ if(layer->type == Layer::BITMAP) editor->setColour(pen.colour);
+ editor->setWidth(pen.width);
+ editor->setFeather(pen.feather); editor->setFeather(-1);
+ editor->setOpacity(pen.opacity);
+ editor->setPressure(pen.pressure);
+ editor->setInvisibility(pen.invisibility);
+ editor->setPreserveAlpha(pen.preserveAlpha);
+ editor->setFollowContour(-1);
+ // --- change cursor ---
+ updateCursor();
+}
+
+void ScribbleArea::bucketOn() {
+ switchTool();
+ toolMode = ScribbleArea::BUCKET;
+ // --- change properties ---
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return;
+ if(layer->type == Layer::VECTOR) editor->selectColour(brush.colourNumber);
+ if(layer->type == Layer::BITMAP) editor->setColour(brush.colour);
+ editor->setWidth(-1);
+ editor->setFeather(brush.feather); editor->setFeather(-1);
+ editor->setOpacity(1); // the bucket has full opacity (but one should be able to use it with translucent colours)
+ editor->setOpacity(-1); // disable the button
+ editor->setPressure(0);
+ editor->setPressure(-1); // disable the button
+ editor->setInvisibility(0);
+ editor->setInvisibility(-1); // disable the button
+ editor->setPreserveAlpha(0);
+ editor->setPreserveAlpha(-1); // disable the button
+ editor->setFollowContour(-1);
+ // --- change cursor ---
+ updateCursor();
+}
+
+void ScribbleArea::eyedropperOn() {
+ switchTool();
+ toolMode = ScribbleArea::EYEDROPPER;
+ // --- change properties ---
+ editor->setWidth(-1);
+ editor->setFeather(-1);
+ editor->setOpacity(-1);
+ editor->setPressure(-1);
+ editor->setInvisibility(0);
+ editor->setInvisibility(-1);
+ editor->setPreserveAlpha(0);
+ editor->setPreserveAlpha(-1);
+ editor->setFollowContour(-1);
+ // --- change cursor ---
+ updateCursor();
+}
+
+void ScribbleArea::colouringOn() {
+ switchTool();
+ toolMode = ScribbleArea::COLOURING;
+ // --- change properties ---
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return;
+ if(layer->type == Layer::VECTOR) editor->selectColour(brush.colourNumber);
+ if(layer->type == Layer::BITMAP) editor->setColour(brush.colour);
+ editor->setWidth(brush.width);
+ editor->setFeather(brush.feather);
+ editor->setOpacity(brush.opacity);
+ editor->setPressure(brush.pressure);
+ editor->setPreserveAlpha(brush.preserveAlpha);
+ editor->setFollowContour(followContour);
+ editor->setInvisibility(0);
+ editor->setInvisibility(-1);
+ // --- change cursor ---
+ updateCursor();
+}
+
+void ScribbleArea::smudgeOn() {
+ switchTool();
+ toolMode = EDIT;
+ // --- change properties ---
+ editor->setWidth(-1);
+ editor->setFeather(-1);
+ editor->setOpacity(-1);
+ editor->setPressure(-1);
+ editor->setInvisibility(0);
+ editor->setInvisibility(-1);
+ editor->setPreserveAlpha(0);
+ editor->setPreserveAlpha(-1);
+ editor->setFollowContour(-1);
+ // --- change cursor ---
+ updateCursor();
+}
+
+
+
+void ScribbleArea::deleteSelection() {
+ if( somethingSelected ) { // there is something selected
+ editor->backup();
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return;
+ closestCurves.clear();
+ if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->deleteSelection();
+ if(layer->type == Layer::BITMAP) ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0)->clear(mySelection);
+ updateAllFrames();
+ }
+}
+
+void ScribbleArea::clearImage() {
+ editor->backup();
+ Layer* layer = editor->getCurrentLayer();
+ if(layer == NULL) return;
+ if(layer->type == Layer::VECTOR) ((LayerVector*)layer)->getLastVectorImageAtFrame(editor->currentFrame, 0)->clear();
+ if(layer->type == Layer::BITMAP) ((LayerBitmap*)layer)->getLastBitmapImageAtFrame(editor->currentFrame, 0)->clear();
+ //emit modification();
+ //update();
+ setModified(editor->currentLayer, editor->currentFrame);
+}
+
+void ScribbleArea::toggleThinLines() {
+ showThinLines = !showThinLines;
+ emit thinLinesChanged(showThinLines);
+ setView(myView);
+ updateAllFrames();
+}
+
+void ScribbleArea::toggleOutlines() {
+ simplified = !simplified;
+ emit outlinesChanged(simplified);
+ setView(myView);
+ updateAllFrames();
+}
+
+void ScribbleArea::toggleMirror() {
+ myView = myView * QMatrix(-1, 0, 0, 1, 0, 0);
+ myTempView = myView * centralView;
+ setView(myView);
+ updateAllFrames();
+}
+
+void ScribbleArea::toggleShowAllLayers() {
+ showAllLayers++;
+ if(showAllLayers==3) showAllLayers = 0;
+ //emit showAllLayersChanged(showAllLayers);
+ setView(myView);
+ updateAllFrames();
+}
+
diff -rupN pencil_backup/src/interface/scribblearea.h pencil_dev/src/interface/scribblearea.h
--- pencil_backup/src/interface/scribblearea.h 2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/scribblearea.h 2009-10-01 19:47:12.000000000 -0500
@@ -106,6 +106,14 @@ signals:
void modification(int);
void thinLinesChanged(bool);
void outlinesChanged(bool);
+
+ void flipPrevious();
+ void flipNext();
+
+ void onionShortCut();
+ void straightAheadShortCut();
+ void inbetweenShortCut();
+
//void showAllLayersChanged(bool);
public slots:
@@ -118,9 +126,20 @@ public slots:
void selectAll();
void deselectAll();
- void onionPrevSlot();
- void onionNextSlot();
-
+ void onionIsOn();
+
+ void onionChangeSlot1();
+ void onionChangeSlot2();
+
+ void onionChangeSlot(int);
+
+ void onionOpacityLevel(int);
+ void onionStraightAheadLevel(int);
+ void onionPreviousPreviousLevel(int);
+ void onionPreviousLevel(int);
+ void onionNextLevel(int);
+ void onionNextNextLevel(int);
+
//void pressureSlot(int);
//void invisibleSlot(int);
@@ -219,7 +238,11 @@ private:
int gradients;
qreal curveOpacity;
qreal curveSmoothing;
- bool onionPrev, onionNext;
+ bool onion, onionStraightAhead, onionInbetween;
+
+ float onionOpacity;
+ int onionStraightAheadFrames;
+ bool onionPreviousPrevious, onionPrevious, onionNext, onionNextNext;
Properties pencil;
Properties pen;
diff -rupN pencil_backup/src/interface/scribblearea.h~ pencil_dev/src/interface/scribblearea.h~
--- pencil_backup/src/interface/scribblearea.h~ 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/scribblearea.h~ 2009-10-01 19:46:18.000000000 -0500
@@ -0,0 +1,298 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+*/
+#ifndef SCRIBBLEAREA_H
+#define SCRIBBLEAREA_H
+
+#include <QColor>
+#include <QImage>
+#include <QPoint>
+#include <QWidget>
+#include <QGLWidget>
+#include <QFrame>
+#include "vectorimage.h"
+#include "bitmapimage.h"
+#include "colourref.h"
+
+class Editor;
+class Layer;
+
+class Properties
+{
+ public:
+ qreal width;
+ qreal feather;
+ qreal opacity;
+ QColor colour;
+ int colourNumber;
+ bool pressure;
+ bool invisibility;
+ bool preserveAlpha;
+};
+
+class VectorSelection
+{
+ public:
+ QList<VertexRef> vertex;
+ QList<int> curve;
+ //QList<int> area;
+ void clear();
+ void add(int curveNumber);
+ void add(QList<int> curveNumbers);
+ void add(VertexRef point);
+ void add(QList<VertexRef> points);
+};
+
+/*struct Buffer {
+ QList<QPoint> points;
+ QList<QColor> colours;
+};*/
+
+//class ScribbleArea : public QGLWidget
+class ScribbleArea : public QWidget
+{
+ Q_OBJECT
+
+public:
+ ScribbleArea(QWidget *parent = 0, Editor* editor = 0);
+
+ void next(const int &i);
+
+ void setColour(const int);
+ void setColour(const QColor);
+ void resetColours();
+
+ void deleteSelection();
+ void setSelection(QRectF rect, bool);
+ void displaySelectionProperties();
+ QRectF getSelection() { return mySelection; }
+ bool somethingSelected;
+ bool readCanvasFromCache;
+
+ bool isModified() const { return modified; }
+
+ static QBrush getBackgroundBrush(QString);
+ //QColor penColour() const { return myPenColour; }
+ //double pencilWidth() const { return myPencilWidth; }
+ //double penWidth() const { return myPenWidth; }
+ //double brushWidth() const { return myBrushWidth; }
+ bool thinLines() const { return showThinLines; }
+ int allLayers() const { return showAllLayers; }
+ QMatrix getView();
+ QRectF getViewRect();
+ QPointF getCentralPoint();
+
+ void updateFrame();
+ void updateFrame(int frame);
+ void updateAllFrames();
+ void updateAllVectorLayersAtCurrentFrame();
+ void updateAllVectorLayersAt(int frame);
+ void updateAllVectorLayers();
+
+signals:
+ void modification();
+ void modification(int);
+ void thinLinesChanged(bool);
+ void outlinesChanged(bool);
+
+ void flipPrevious();
+ void flipNext();
+
+ void onionShortCut();
+ void straightAheadShortCut();
+ void inbetweenShortCut();
+
+ //void showAllLayersChanged(bool);
+
+public slots:
+ void clearImage();
+ void calculateSelectionRect();
+ void calculateSelectionTransformation();
+ void paintTransformedSelection();
+ void setModified(int layerNumber, int frameNumber);
+
+ void selectAll();
+ void deselectAll();
+
+ void onionIsOn();
+
+ void onionChangeSlot1();
+ void onionChangeSlot2();
+
+ void onionChangeSlot(int);
+
+ void onionOpacityLevel(int);
+ void onionStraightAheadLevel(int);
+ void onionPreviousPreviousLevel(int);
+ void onionPreviousLevel(int);
+ void onionNextLevel(int);
+ void onionNextNextLevel(int);
+
+ //void pressureSlot(int);
+ //void invisibleSlot(int);
+
+ void pencilOn();
+ void eraserOn();
+ void selectOn();
+ void moveOn();
+ void handOn();
+ void resetView();
+ void setMyView(QMatrix view);
+ QMatrix getMyView();
+ void penOn();
+ void polylineOn();
+ void bucketOn();
+ void eyedropperOn();
+ void colouringOn();
+ void smudgeOn();
+
+ void setWidth(const qreal);
+ void setFeather(const qreal);
+ void setOpacity(const qreal);
+ void setPressure(const bool);
+ void setInvisibility(const bool);
+ void setPreserveAlpha(const bool);
+ void setFollowContour(const bool);
+
+ void setCurveOpacity(int);
+ void setCurveSmoothing(int);
+ void setHighResPosition(int);
+ void setAntialiasing(int);
+ void setGradients(int);
+ void setBackground(int);
+ void setBackgroundBrush(QString);
+ void setShadows(int);
+ void setToolCursors(int);
+ void setStyle(int);
+ void toggleThinLines();
+ void toggleOutlines();
+ void toggleMirror();
+ void toggleShowAllLayers();
+
+ void escape();
+ //void undo();
+ //void redo();
+ //void copy();
+ //void paste();
+
+protected:
+ void tabletEvent(QTabletEvent *event);
+ void mousePressEvent(QMouseEvent *event);
+ void mouseMoveEvent(QMouseEvent *event);
+ void mouseReleaseEvent(QMouseEvent *event);
+ void mouseDoubleClickEvent(QMouseEvent *event);
+ void keyPressEvent(QKeyEvent *event);
+ void keyReleaseEvent(QKeyEvent *event);
+ void paintEvent(QPaintEvent *event);
+ void resizeEvent(QResizeEvent *event);
+ void recentre();
+ void setView();
+ void setView(QMatrix);
+
+private:
+ void paintBitmapBuffer();
+ void updateCanvas(int frame, QRect rect);
+ void setGaussianGradient(QGradient &gradient, QColor coulour, qreal opacity, qreal offset);
+ void drawBrush(QPointF thePoint, qreal brushWidth, qreal offset, QColor fillColour, qreal opacity);
+ void drawLineTo(const QPointF &endPixel, const QPointF &endPoint);
+ void drawEyedropperPreview(const QColor colour);
+ void drawPolyline();
+ void endPolyline();
+ void updateCursor();
+
+ void floodFill(VectorImage* vectorImage, QPoint point, QRgb targetColour, QRgb replacementColour, int tolerance);
+ void floodFillError(int errorType);
+
+ enum myToolModes { PENCIL, ERASER, SELECT, MOVE, EDIT, HAND, SMUDGE, PEN, POLYLINE, BUCKET, EYEDROPPER, COLOURING };
+ enum myMoveModes { MIDDLE, TOPLEFT, TOPRIGHT, BOTTOMLEFT, BOTTOMRIGHT };
+ myToolModes toolMode;
+ myMoveModes moveMode;
+
+ void switchTool();
+
+ Editor* editor;
+
+ int tabletEraserBackupToolMode;
+ bool modified;
+ bool simplified;
+
+ bool showThinLines;
+ int showAllLayers;
+ bool usePressure, makeInvisible;
+ bool highResPosition;
+ bool antialiasing;
+ bool shadows;
+ bool toolCursors;
+ int gradients;
+ qreal curveOpacity;
+ qreal curveSmoothing;
+ bool onion, onionStraightAhead, onionInbetween;
+
+ int onionOpacity, onionStraightAheadFrames;
+ bool onionPreviousPrevious, onionPrevious, onionNext, onionNextNext;
+
+ Properties pencil;
+ Properties pen;
+ Properties brush;
+ Properties eraser;
+
+ qreal currentWidth;
+ QColor currentColour;
+ /*qreal myPencilWidth, currentPencilWidth;
+ qreal myPenWidth, currentPenWidth;
+ qreal myBrushWidth, currentBrushWidth;*/
+ //QColor myPenColour, myFillColour;
+ //int penColourNumber, fillColourNumber;
+ bool followContour;
+
+ QBrush backgroundBrush;
+ BitmapImage* bufferImg; // used to pre-draw vector modifications
+ //Buffer buffer; // used to pre-draw bitmap modifications, such as lines, brushes, etc.
+ QPixmap* eyedropperCursor;
+
+ bool mouseInUse;
+ QList<QPointF> mousePoints; // copy of points clicked using polyline tool
+ QList<QPointF> mousePath; // copy of points drawn using pencil, pen, eraser, etc, tools
+ QList<qreal> mousePressure;
+ QPointF lastPixel, currentPixel;
+ QPointF lastPoint, currentPoint;
+ QPointF lastBrushPoint;
+ //QBrush brush; // the current brush
+
+ qreal tol;
+ QList<int> closestCurves;
+ QList<VertexRef> closestVertices;
+ QPointF offset;
+
+ VectorSelection vectorSelection;
+ //bool selectionChanged;
+ QMatrix selectionTransformation;
+ QRectF mySelection, myTransformedSelection, myTempTransformedSelection;
+
+ bool tabletInUse;
+ qreal tabletPressure;
+ QPointF tabletPosition;
+
+ QMatrix myView, myTempView, centralView, transMatrix;
+
+ QPixmap canvas;
+
+ // debug
+ QRectF debugRect;
+};
+
+#endif
+
+
diff -rupN pencil_backup/src/interface/timeline.cpp pencil_dev/src/interface/timeline.cpp
--- pencil_backup/src/interface/timeline.cpp 2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/timeline.cpp 2009-10-01 18:19:28.000000000 -0500
@@ -126,22 +126,28 @@ TimeLine::TimeLine(QWidget *parent, Edit
// --------- Onion skin buttons ---------
//QFrame* onionButtons = new QFrame(this);
QToolBar* onionButtons = new QToolBar(this);
+ QButtonGroup* onionRadio = new QButtonGroup();
//onionButtons->setFixedWidth(90);
//QHBoxLayout* onionButtonsLayout = new QHBoxLayout();
QLabel* onionLabel = new QLabel(tr("Onion skin:"));
onionLabel->setFont( QFont("Helvetica", 10) );
onionLabel->setIndent(5);
- QToolButton* onionPrevButton = new QToolButton(this);
- onionPrevButton->setIcon(QIcon(":icons/onionPrev.png"));
- onionPrevButton->setToolTip("Show previous frame");
- onionPrevButton->setFixedSize(24,24);
- onionPrevButton->setCheckable(true);
- onionPrevButton->setChecked(true);
- QToolButton* onionNextButton = new QToolButton(this);
- onionNextButton->setIcon(QIcon(":icons/onionNext.png"));
- onionNextButton->setToolTip("Show next frame");
- onionNextButton->setFixedSize(24,24);
- onionNextButton->setCheckable(true);
+ QCheckBox* onionCheck = new QCheckBox(this);
+ onionCheck->setToolTip("Enable or disable onion skin");
+ onionCheck->setCheckable(true);
+ QToolButton* onionStraightAheadButton = new QToolButton(this);
+ onionStraightAheadButton->setIcon(QIcon(":icons/onionStraightAhead.png"));
+ onionStraightAheadButton->setToolTip("Show frames for straight ahead");
+ onionStraightAheadButton->setFixedSize(24,25);
+ onionStraightAheadButton->setCheckable(true);
+ onionStraightAheadButton->setChecked(true);
+ onionStraightAheadButton->setAutoExclusive(true);
+ QToolButton* onionInbetweenButton = new QToolButton(this);
+ onionInbetweenButton->setIcon(QIcon(":icons/onionInbetween.png"));
+ onionInbetweenButton->setToolTip("Show frames for inbetweening");
+ onionInbetweenButton->setFixedSize(28,25);
+ onionInbetweenButton->setCheckable(true);
+ onionInbetweenButton->setAutoExclusive(true);
/*onionButtonsLayout->addWidget(onionLabel);
onionButtonsLayout->addWidget(onionPrevButton);
onionButtonsLayout->addWidget(onionNextButton);
@@ -151,8 +157,13 @@ TimeLine::TimeLine(QWidget *parent, Edit
onionButtons->setLayout(onionButtonsLayout);*/
onionButtons->addSeparator();
onionButtons->addWidget(onionLabel);
- onionButtons->addWidget(onionPrevButton);
- onionButtons->addWidget(onionNextButton);
+ onionButtons->addWidget(onionCheck);
+ onionRadio->addButton(onionStraightAheadButton);
+ onionRadio->addButton(onionInbetweenButton);
+ onionRadio->setId(onionStraightAheadButton, 1);
+ onionRadio->setId(onionInbetweenButton, 2);
+ onionButtons->addWidget(onionStraightAheadButton);
+ onionButtons->addWidget(onionInbetweenButton);
// --------- Time controls ---------
@@ -217,8 +228,12 @@ TimeLine::TimeLine(QWidget *parent, Edit
connect(addKeyButton, SIGNAL(clicked()), this, SIGNAL(addKeyClick()));
connect(removeKeyButton, SIGNAL(clicked()), this, SIGNAL(removeKeyClick()));
- connect(onionPrevButton, SIGNAL(clicked()), this, SIGNAL(onionPrevClick()));
- connect(onionNextButton, SIGNAL(clicked()), this, SIGNAL(onionNextClick()));
+ connect(this, SIGNAL(onionKey()), onionCheck, SLOT(click()));
+ connect(this, SIGNAL(straightAheadKey()), onionStraightAheadButton, SLOT(click()));
+ connect(this, SIGNAL(inbetweenKey()), onionInbetweenButton, SLOT(click()));
+
+ connect(onionCheck, SIGNAL(clicked()), this, SIGNAL(onionChecked()));
+ connect(onionRadio, SIGNAL(buttonClicked(int)), this, SIGNAL(onionType(int)));
connect(timeControls, SIGNAL(playClick()), this, SIGNAL(playClick()));
connect(timeControls, SIGNAL(loopClick()), this, SIGNAL(loopClick()));
@@ -276,6 +291,20 @@ void TimeLine::updateContent() {
update();
}
+/*
+void TimeLine::onionKey() {
+ onionclick();
+}
+
+void TimeLine::straightAheadKey() {
+ onionStraightAheadButton->click();
+}
+
+void TimeLine::inbetweenKey() {
+ onionInbetweenButton->click();
+}
+*/
+
/*void TimeLine::mousePressEvent(QMouseEvent *event) {
//int frameNumber = getFrameNumber(event->pos().x());
int layerNumber = getLayerNumber(event->pos().y());
diff -rupN pencil_backup/src/interface/timeline.cpp~ pencil_dev/src/interface/timeline.cpp~
--- pencil_backup/src/interface/timeline.cpp~ 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/timeline.cpp~ 2009-10-01 18:16:41.000000000 -0500
@@ -0,0 +1,747 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+*/
+#include <QtGui>
+#include "timeline.h"
+#include "editor.h"
+#include "toolset.h"
+#include "timecontrols.h"
+
+TimeLine::TimeLine(QWidget *parent, Editor *editor) : QDockWidget(parent, Qt::Tool) // DockPalette("")
+{
+ QWidget* timeLineContent = new QWidget(this);
+
+ list = new TimeLineCells(this, editor, "layers");
+ cells = new TimeLineCells(this, editor, "tracks");
+ connect(list, SIGNAL(mouseMovedY(int)), list, SLOT(setMouseMoveY(int)));
+ connect(list, SIGNAL(mouseMovedY(int)), cells, SLOT(setMouseMoveY(int)));
+
+ numberOfLayers = 0;
+ hScrollBar = new QScrollBar(Qt::Horizontal);
+ vScrollBar = new QScrollBar(Qt::Vertical);
+ vScrollBar->setMinimum(0);
+ vScrollBar->setMaximum(1);
+ vScrollBar->setPageStep(1);
+
+ QWidget* leftWidget = new QWidget();
+ leftWidget->setMinimumWidth(120);
+ QWidget* rightWidget = new QWidget();
+
+ QWidget* leftToolBar = new QWidget();
+ leftToolBar->setFixedHeight(31);
+ QWidget* rightToolBar = new QWidget();
+ rightToolBar->setFixedHeight(31);
+
+ // --- left widget ---
+ // --------- layer buttons ---------
+ //QFrame* layerButtons = new QFrame(this);
+ QToolBar* layerButtons = new QToolBar(this);
+ //QHBoxLayout* layerButtonLayout = new QHBoxLayout();
+ QLabel* layerLabel = new QLabel(tr("Layers:"));
+ layerLabel->setIndent(5);
+ layerLabel->setFont( QFont("Helvetica", 10) );
+ QToolButton* addLayerButton = new QToolButton(this);
+ addLayerButton->setIcon(QIcon(":icons/add.png"));
+ addLayerButton->setToolTip("Add Layer");
+ addLayerButton->setFixedSize(24,24);
+ QToolButton* removeLayerButton = new QToolButton(this);
+ removeLayerButton->setIcon(QIcon(":icons/remove.png"));
+ removeLayerButton->setToolTip("Remove Layer");
+ removeLayerButton->setFixedSize(24,24);
+ /*layerButtonLayout->addWidget(layerLabel);
+ layerButtonLayout->addWidget(addLayerButton);
+ layerButtonLayout->addWidget(removeLayerButton);
+ layerButtonLayout->setMargin(0);
+ layerButtonLayout->setSpacing(5);
+ layerButtons->setLayout(layerButtonLayout);*/
+ layerButtons->addWidget(layerLabel);
+ layerButtons->addWidget(addLayerButton);
+ layerButtons->addWidget(removeLayerButton);
+
+ QHBoxLayout* leftToolBarLayout = new QHBoxLayout();
+ leftToolBarLayout->setAlignment(Qt::AlignLeft);
+ leftToolBarLayout->setMargin(0);
+ leftToolBarLayout->addWidget(layerButtons);
+ leftToolBar->setLayout(leftToolBarLayout);
+
+ QAction* newBitmapLayerAct = new QAction(QIcon(":icons/layer-bitmap.png"), tr("New Bitmap Layer"), this);
+ QAction* newVectorLayerAct = new QAction(QIcon(":icons/layer-vector.png"), tr("New Vector Layer"), this);
+ QAction* newSoundLayerAct = new QAction(QIcon(":icons/layer-sound.png"), tr("New Sound Layer"), this);
+ QAction* newCameraLayerAct = new QAction(QIcon(":icons/layer-camera.png"), tr("New Camera Layer"), this);
+ QMenu* layerMenu = new QMenu(tr("&Layer"), this);
+ layerMenu->addAction(newBitmapLayerAct);
+ layerMenu->addAction(newVectorLayerAct);
+ layerMenu->addAction(newSoundLayerAct);
+ layerMenu->addAction(newCameraLayerAct);
+ addLayerButton->setMenu(layerMenu);
+ addLayerButton->setPopupMode(QToolButton::InstantPopup);
+
+ QGridLayout *leftLayout = new QGridLayout();
+ leftLayout->addWidget(leftToolBar,0,0);
+ leftLayout->addWidget(list,1,0);
+ leftLayout->setMargin(0);
+ leftLayout->setSpacing(0);
+ leftWidget->setLayout(leftLayout);
+
+ // --- right widget ---
+ // --------- key buttons ---------
+ //QFrame* keyButtons = new QFrame(this);
+ QToolBar* keyButtons = new QToolBar(this);
+ //keyButtons->setFixedWidth(90);
+ //QHBoxLayout* keyButtonsLayout = new QHBoxLayout();
+ QLabel* keyLabel = new QLabel(tr("Keys:"));
+ keyLabel->setFont( QFont("Helvetica", 10) );
+ keyLabel->setIndent(5);
+ QToolButton* addKeyButton = new QToolButton(this);
+ addKeyButton->setIcon(QIcon(":icons/add.png"));
+ addKeyButton->setToolTip("Add Key");
+ addKeyButton->setFixedSize(24,24);
+ QToolButton* removeKeyButton = new QToolButton(this);
+ removeKeyButton->setIcon(QIcon(":icons/remove.png"));
+ removeKeyButton->setToolTip("Remove Key");
+ removeKeyButton->setFixedSize(24,24);
+ /*keyButtonsLayout->addWidget(keyLabel);
+ keyButtonsLayout->addWidget(addKeyButton);
+ keyButtonsLayout->addWidget(removeKeyButton);
+ keyButtonsLayout->setMargin(0);
+ keyButtonsLayout->setSpacing(0);
+ //keyButtonLayout->setSizeConstraint(QLayout::SetMinimumSize);
+ keyButtons->setLayout(keyButtonsLayout);*/
+ keyButtons->addWidget(keyLabel);
+ keyButtons->addWidget(addKeyButton);
+ keyButtons->addWidget(removeKeyButton);
+
+ // --------- Onion skin buttons ---------
+ //QFrame* onionButtons = new QFrame(this);
+ QToolBar* onionButtons = new QToolBar(this);
+ QButtonGroup* onionRadio = new QButtonGroup();
+ //onionButtons->setFixedWidth(90);
+ //QHBoxLayout* onionButtonsLayout = new QHBoxLayout();
+ QLabel* onionLabel = new QLabel(tr("Onion skin:"));
+ onionLabel->setFont( QFont("Helvetica", 10) );
+ onionLabel->setIndent(5);
+ QCheckBox* onionCheck = new QCheckBox(this);
+ onionCheck->setToolTip("Enable or disable onion skin");
+ onionCheck->setCheckable(true);
+ QToolButton* onionStraightAheadButton = new QToolButton(this);
+ onionStraightAheadButton->setIcon(QIcon(":icons/onionStraightAhead.png"));
+ onionStraightAheadButton->setToolTip("Show frames for straight ahead");
+ onionStraightAheadButton->setFixedSize(24,25);
+ onionStraightAheadButton->setCheckable(true);
+ onionStraightAheadButton->setChecked(true);
+ onionStraightAheadButton->setAutoExclusive(true);
+ QToolButton* onionInbetweenButton = new QToolButton(this);
+ onionInbetweenButton->setIcon(QIcon(":icons/onionInbetween.png"));
+ onionInbetweenButton->setToolTip("Show frames for inbetweening");
+ onionInbetweenButton->setFixedSize(28,25);
+ onionInbetweenButton->setCheckable(true);
+ onionInbetweenButton->setAutoExclusive(true);
+ /*onionButtonsLayout->addWidget(onionLabel);
+ onionButtonsLayout->addWidget(onionPrevButton);
+ onionButtonsLayout->addWidget(onionNextButton);
+ onionButtonsLayout->setMargin(0);
+ onionButtonsLayout->setSpacing(0);
+ //keyButtonLayout->setSizeConstraint(QLayout::SetMinimumSize);
+ onionButtons->setLayout(onionButtonsLayout);*/
+ onionButtons->addSeparator();
+ onionButtons->addWidget(onionLabel);
+ onionButtons->addWidget(onionCheck);
+ onionRadio->addButton(onionStraightAheadButton);
+ onionRadio->addButton(onionInbetweenButton);
+ onionRadio->setId(onionStraightAheadButton, 1);
+ onionRadio->setId(onionInbetweenButton, 2);
+ onionButtons->addWidget(onionStraightAheadButton);
+ onionButtons->addWidget(onionInbetweenButton);
+
+
+ // --------- Time controls ---------
+ TimeControls* timeControls = new TimeControls(this);
+
+ QHBoxLayout* rightToolBarLayout = new QHBoxLayout();
+ //rightToolBarLayout->setAlignment(Qt::AlignLeft);
+ rightToolBarLayout->addWidget(keyButtons);
+ rightToolBarLayout->addWidget(onionButtons);
+ rightToolBarLayout->addStretch(1);
+ rightToolBarLayout->addWidget(timeControls);
+ rightToolBarLayout->setMargin(0);
+ rightToolBarLayout->setSpacing(0);
+ rightToolBar->setLayout(rightToolBarLayout);
+
+ QGridLayout *rightLayout = new QGridLayout();
+ rightLayout->addWidget(rightToolBar,0,0);
+ rightLayout->addWidget(cells,1,0);
+ rightLayout->setMargin(0);
+ rightLayout->setSpacing(0);
+ rightWidget->setLayout(rightLayout);
+
+ // --- Splitter ---
+ QSplitter *splitter = new QSplitter(parent);
+ splitter->addWidget(leftWidget);
+ splitter->addWidget(rightWidget);
+ splitter->setSizes( QList<int>() << 100 << 600 );
+ //splitter->addWidget(cells);
+
+
+ QGridLayout *lay = new QGridLayout();
+ //lay->addWidget(cells,0,0);
+ //lay->addWidget(toolBar,0,0);
+ lay->addWidget(splitter,0,0);
+ lay->addWidget(vScrollBar,0,1);
+ lay->addWidget(hScrollBar,1,0);
+ //lay->addWidget(vScrollBar,1,1);
+ lay->setMargin(0);
+ lay->setSpacing(0);
+ timeLineContent->setLayout(lay);
+ //timeLineContent->setBackgroundRole(QPalette::Dark);
+ //timeLineContent->setForegroundRole(QPalette::Dark);
+ setWidget(timeLineContent);
+
+ setWindowFlags(Qt::WindowStaysOnTopHint);
+ setWindowTitle("Time Line");
+ //setWindowFlags(Qt::SubWindow);
+ setFloating(true);
+ //setMinimumSize(100, 300);
+ //setGeometry(10,60,100, 300);
+
+ connect(this,SIGNAL(lengthChange(QString)), cells, SLOT(lengthChange(QString)));
+ connect(this,SIGNAL(fontSizeChange(int)), cells, SLOT(fontSizeChange(int)));
+ connect(this,SIGNAL(frameSizeChange(int)), cells, SLOT(frameSizeChange(int)));
+ connect(this,SIGNAL(labelChange(int)), cells, SLOT(labelChange(int)));
+ connect(this,SIGNAL(scrubChange(int)), cells, SLOT(scrubChange(int)));
+
+ connect(hScrollBar,SIGNAL(valueChanged(int)), cells, SLOT(hScrollChange(int)));
+ connect(vScrollBar,SIGNAL(valueChanged(int)), cells, SLOT(vScrollChange(int)));
+ connect(vScrollBar,SIGNAL(valueChanged(int)), list, SLOT(vScrollChange(int)));
+
+ connect(addKeyButton, SIGNAL(clicked()), this, SIGNAL(addKeyClick()));
+ connect(removeKeyButton, SIGNAL(clicked()), this, SIGNAL(removeKeyClick()));
+
+ connect(onionCheck, SIGNAL(clicked()), this, SIGNAL(onionChecked()));
+ connect(onionRadio, SIGNAL(buttonClicked(int)), this, SIGNAL(onionType(int)));
+
+ connect(timeControls, SIGNAL(playClick()), this, SIGNAL(playClick()));
+ connect(timeControls, SIGNAL(loopClick()), this, SIGNAL(loopClick()));
+ connect(timeControls, SIGNAL(soundClick()), this, SIGNAL(soundClick()));
+ connect(timeControls, SIGNAL(fpsClick(int)), this, SIGNAL(fpsClick(int)));
+ //connect(this, SIGNAL(topLevelChanged(bool)), timeControls, SLOT(updateButtons(bool))); // when the windows is docked or made floatable
+
+ connect(newBitmapLayerAct, SIGNAL(triggered()), this, SIGNAL(newBitmapLayer()));
+ connect(newVectorLayerAct, SIGNAL(triggered()), this, SIGNAL(newVectorLayer()));
+ connect(newSoundLayerAct, SIGNAL(triggered()), this, SIGNAL(newSoundLayer()));
+ connect(newCameraLayerAct, SIGNAL(triggered()), this, SIGNAL(newCameraLayer()));
+ connect(removeLayerButton, SIGNAL(clicked()), this, SIGNAL(deleteCurrentLayer()));
+
+ scrubbing = false;
+ //QSettings settings("Pencil","Pencil");
+ //layerHeight = (settings.value("layerHeight").toInt());
+ //if(layerHeight==0) { layerHeight=20; settings.setValue("layerHeight", layerHeight); }
+ //startY = 0;
+ //endY = 0;
+ //startLayerNumber = -1;
+ //offsetY = 15;
+}
+
+
+void TimeLine::resizeEvent(QResizeEvent *event) {
+ //QWidget::resizeEvent(event);
+ updateLayerView();
+ //event->accept();
+}
+
+void TimeLine::updateFrame(int frameNumber) {
+ if(cells) cells->updateFrame(frameNumber);
+}
+
+void TimeLine::updateLayerView() {
+ vScrollBar->setPageStep( (height()-cells->getOffsetY()-hScrollBar->height())/cells->getLayerHeight() -2 );
+ vScrollBar->setMinimum( 0 );
+ vScrollBar->setMaximum( qMax(0, numberOfLayers - vScrollBar->pageStep()) );
+ update();
+ updateContent();
+}
+
+void TimeLine::updateLayerNumber(int numberOfLayers) {
+ this->numberOfLayers = numberOfLayers;
+ updateLayerView();
+}
+
+void TimeLine::updateLength(int frameLength) {
+ hScrollBar->setMaximum( frameLength );
+}
+
+void TimeLine::updateContent() {
+ list->updateContent();
+ cells->updateContent();
+ update();
+}
+
+/*
+void TimeLine::onionKey() {
+ onionclick();
+}
+
+void TimeLine::straightAheadKey() {
+ onionStraightAheadButton->click();
+}
+
+void TimeLine::inbetweenKey() {
+ onionInbetweenButton->click();
+}
+*/
+
+/*void TimeLine::mousePressEvent(QMouseEvent *event) {
+ //int frameNumber = getFrameNumber(event->pos().x());
+ int layerNumber = getLayerNumber(event->pos().y());
+ startY = event->pos().y();
+ startLayerNumber = layerNumber;
+ endY = event->pos().y();
+
+ //if(frameNumber == editor->currentFrame) {
+ // scrubbing = true;
+ //} else {
+ if( (layerNumber != -1) && layerNumber < editor->object->getLayerCount()) {
+ //editor->object->getLayer(layerNumber)->mousePress(event, frameNumber);
+ editor->setCurrentLayer(layerNumber);
+ //} else {
+ //editor->scrubTo(frameNumber);
+ //scrubbing = true;
+ }
+ //}
+}
+
+void TimeLine::mouseMoveEvent(QMouseEvent *event) {
+ endY = event->pos().y();
+ //int frameNumber = getFrameNumber(event->pos().x());
+ int layerNumber = getLayerNumber(event->pos().y());
+ //if(scrubbing) {
+ // editor->scrubTo(frameNumber);
+ //} else {
+ //if(layerNumber != -1 && layerNumber < editor->object->getLayerCount()) {
+ // editor->object->getLayer(layerNumber)->mouseMove(event, frameNumber);
+ //}
+ //}
+ update();
+}
+
+void TimeLine::mouseReleaseEvent(QMouseEvent *event) {
+ endY = startY;
+ //scrubbing = false;
+ //int frameNumber = getFrameNumber(event->pos().x());
+ int layerNumber = getLayerNumber(event->pos().y());
+ //if(layerNumber != -1 && layerNumber < editor->object->getLayerCount() ) {
+ // editor->object->getLayer(layerNumber)->mouseRelease(event, frameNumber);
+ //}
+ if(layerNumber != startLayerNumber && startLayerNumber != -1 && layerNumber != -1) {
+ editor->moveLayer(startLayerNumber, layerNumber);
+ }
+ update();
+}
+
+void TimeLine::mouseDoubleClickEvent(QMouseEvent *event) {
+ int layerNumber = getLayerNumber(event->pos().y());
+ if(layerNumber != -1 && layerNumber < editor->object->getLayerCount() ) {
+ editor->switchVisibilityOfLayer(layerNumber);
+ }
+}*/
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+TimeLineCells::TimeLineCells(TimeLine *parent, Editor *editor, QString type) : QWidget(parent)
+{
+ this->timeLine = parent;
+ this->editor = editor;
+ this->type = type;
+
+ cache = NULL;
+ QSettings settings("Pencil","Pencil");
+
+ frameLength = settings.value("length").toInt();
+ if (frameLength==0) { frameLength=240; settings.setValue("length", frameLength); }
+
+ shortScrub = settings.value("shortScrub").toBool();
+
+ fps = editor->fps;
+
+ //playing = false;
+ //scrubbing = false;
+ startY = 0;
+ endY = 0;
+ mouseMoveY = 0;
+ startLayerNumber = -1;
+ offsetX = 0;
+ offsetY = 20;
+ frameOffset = 0;
+ layerOffset = 0;
+
+ frameSize = (settings.value("frameSize").toInt());
+ if (frameSize==0) { frameSize=12; settings.setValue("frameSize", frameSize); }
+
+ fontSize = (settings.value("labelFontSize").toInt());
+ if (fontSize==0) { fontSize=12; settings.setValue("labelFontSize", fontSize); }
+
+ layerHeight = (settings.value("layerHeight").toInt());
+ if(layerHeight==0) { layerHeight=20; settings.setValue("layerHeight", layerHeight); }
+
+ //setMinimumSize(frameLength*frameSize, 3*layerHeight);
+ //setMinimumWidth(500);
+ setMinimumSize(500, 4*layerHeight);
+ setSizePolicy( QSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::MinimumExpanding) );
+ setAttribute(Qt::WA_OpaquePaintEvent, false);
+}
+
+int TimeLineCells::getFrameNumber(int x) {
+ int frameNumber = frameOffset+1+(x-offsetX)/frameSize;
+ return frameNumber;
+}
+
+int TimeLineCells::getFrameX(int frameNumber) {
+ int x = offsetX + (frameNumber-frameOffset)*frameSize;
+ return x;
+}
+
+int TimeLineCells::getLayerNumber(int y) {
+ int layerNumber = layerOffset + (y-offsetY)/layerHeight;
+ if (y < offsetY) layerNumber = -1;
+ if (layerNumber >= editor->object->getLayerCount()) layerNumber = editor->object->getLayerCount();
+ return layerNumber;
+}
+
+int TimeLineCells::getLayerY(int layerNumber) {
+ return offsetY + (layerNumber-layerOffset)*layerHeight;
+}
+
+void TimeLineCells::updateFrame(int frameNumber) {
+ int x = getFrameX(frameNumber);
+ update(x-frameSize,0,frameSize+1,height());
+}
+
+void TimeLineCells::updateContent() {
+ drawContent();
+ update();
+}
+
+void TimeLineCells::drawContent() {
+ //qDebug() << "draw content" << QDateTime::currentDateTime() << timeLine->scrubbing;
+ if(cache == NULL) { cache = new QPixmap(size()); }
+ if(cache->isNull()) return;
+ QPainter painter( cache );
+ Object* object = editor->object;
+ if(object == NULL) return;
+ Layer* layer = object->getLayer(editor->currentLayer);
+ if(layer == NULL) return;
+
+ // grey background of the view
+ painter.setPen(Qt::NoPen);
+ painter.setBrush(Qt::lightGray);
+ painter.drawRect(QRect(0,0, width(), height()));
+
+ // --- updates the offsetX
+ /*painter.setPen(Qt::black);
+ painter.setFont(QFont("helvetica", getLayerHeight()/2));
+ for(int i=0; i< object->getLayerCount(); i++) {
+ Layer* layeri = object->getLayer(i);
+ if(layeri != NULL) {
+ int rightmost = 20 + painter.boundingRect(QRect(0,0,300,100), Qt::AlignLeft, layeri->name).width() + 5;
+ if( rightmost > offsetX) offsetX = rightmost;
+ }
+ }*/
+
+ // --- draw layers of the current object
+ for(int i=0; i< object->getLayerCount(); i++) {
+ if(i != editor->currentLayer) {
+ Layer* layeri = object->getLayer(i);
+ if(layeri != NULL) {
+ if(type == "tracks") layeri->paintTrack(painter, this, offsetX, getLayerY(i), width()-offsetX, getLayerHeight(), false, frameSize);
+ if(type == "layers") layeri->paintLabel(painter, this, 0, getLayerY(i), width()-1, getLayerHeight(), false, editor->allLayers());
+ }
+ }
+ }
+ //if(timeLine->scrubbing == false && abs(getMouseMoveY()) > 5) {
+ if( abs(getMouseMoveY()) > 5 ) {
+ if(type == "tracks") layer->paintTrack(painter, this, offsetX, getLayerY(editor->currentLayer)+getMouseMoveY(), width()-offsetX, getLayerHeight(), true, frameSize);
+ if(type == "layers") layer->paintLabel(painter, this, 0, getLayerY(editor->currentLayer)+getMouseMoveY(), width()-1, getLayerHeight(), true, editor->allLayers());
+ painter.setPen( Qt::black );
+ painter.drawRect(0, getLayerY( getLayerNumber(endY) ) -1, width(), 2);
+ } else {
+ if(type == "tracks") layer->paintTrack(painter, this, offsetX, getLayerY(editor->currentLayer), width()-offsetX, getLayerHeight(), true, frameSize);
+ if(type == "layers") layer->paintLabel(painter, this, 0, getLayerY(editor->currentLayer), width()-1, getLayerHeight(), true, editor->allLayers());
+ }
+ // --- draw top
+ painter.setPen(Qt::NoPen);
+ painter.setBrush(QColor(220,220,220));
+ painter.drawRect(QRect(0,0, width()-1, offsetY-1));
+ painter.setPen( Qt::gray );
+ painter.drawLine(0,0, width()-1, 0);
+ painter.drawLine(0,offsetY-2, width()-1, offsetY-2);
+ painter.setPen( Qt::lightGray );
+ painter.drawLine(0,offsetY-3, width()-1, offsetY-3);
+ painter.drawLine(0,0, 0, offsetY-3);
+
+ if(type == "layers") {
+ // --- draw circle
+ painter.setPen(Qt::black);
+ if(editor->allLayers() == 0) { painter.setBrush(Qt::NoBrush); }
+ if(editor->allLayers() == 1) { painter.setBrush(Qt::darkGray); }
+ if(editor->allLayers() == 2) { painter.setBrush(Qt::black); }
+ painter.setRenderHint(QPainter::Antialiasing, true);
+ painter.drawEllipse(6, 4, 9, 9);
+ painter.setRenderHint(QPainter::Antialiasing, false);
+ // --- draw right border line
+ //painter.setPen( Qt::lightGray );
+ //painter.drawLine(width()/2-1,0, width()/2-1, height());
+ }
+
+ if(type == "tracks") {
+ // --- draw ticks
+ painter.setPen( QColor(70,70,70,255) );
+ painter.setBrush(Qt::darkGray);
+ painter.setFont(QFont("helvetica", 10));
+ int incr = 0;
+ for(int i=frameOffset; i<frameOffset+(width()-offsetX)/frameSize; i++) {
+ if(i < 10) { incr = 4; } else { incr = 0; }
+ if (i%fps==0) painter.drawLine( getFrameX(i), 1, getFrameX(i), 5 );
+ else if (i%fps==fps/2) painter.drawLine( getFrameX(i), 1, getFrameX(i), 5);
+ else painter.drawLine( getFrameX(i), 1, getFrameX(i), 3);
+ if(i==0 || i%fps==fps-1) painter.drawText(QPoint(getFrameX(i)+incr, 15), QString::number(i+1));
+ }
+ // --- indicates the cached images by a line ---
+ /*painter.setPen( Qt::red );
+ QList<int> frameList = editor->frameList;
+ for(int i=0; i<frameList.size(); i++) {
+ //painter.setBrush( Qt::red );
+ int j = frameList.at(i);
+ if( j > frameOffset ) {
+ painter.drawLine( getFrameX(j-1-frameOffset), 1, getFrameX(j-frameOffset), 1);
+ }
+ }*/
+ // --- draw left border line
+ painter.setPen( Qt::darkGray );
+ painter.drawLine(0,0, 0, height());
+ }
+}
+
+void TimeLineCells::paintEvent(QPaintEvent *event) {
+ Object* object = editor->object;
+ Layer* layer = object->getLayer(editor->currentLayer);
+ if(layer == NULL) return;
+
+ QPainter painter( this );
+ if( (!editor->playing && !timeLine->scrubbing) || cache == NULL) drawContent();
+ if(cache) painter.drawPixmap(QPoint(0,0), *cache);
+
+ if(type == "tracks") {
+ // --- draw the position of the current frame
+ if(editor->currentFrame > frameOffset) {
+ painter.setBrush(QColor(255,0,0,128));
+ painter.setPen(Qt::NoPen);
+ painter.setFont(QFont("helvetica", 10));
+ //painter.setCompositionMode(QPainter::CompositionMode_Source); // this causes the message: QPainter::setCompositionMode: PorterDuff modes not supported on device
+ QRect scrubRect;
+ scrubRect.setTopLeft(QPoint( getFrameX(editor->currentFrame-1), 0));
+ scrubRect.setBottomRight(QPoint( getFrameX(editor->currentFrame), height()));
+ if(shortScrub) scrubRect.setBottomRight(QPoint( getFrameX(editor->currentFrame), 19));
+ painter.drawRect(scrubRect);
+ painter.setPen( QColor(70,70,70,255) );
+ int incr = 0;
+ if(editor->currentFrame < 10) { incr = 4; } else { incr = 0; }
+ painter.drawText(QPoint(getFrameX(editor->currentFrame-1)+incr, 15), QString::number(editor->currentFrame));
+ }
+ }
+ //event->accept();
+}
+
+void TimeLineCells::resizeEvent(QResizeEvent *event) {
+ //QWidget::resizeEvent(event);
+ if(cache) delete cache;
+ cache = new QPixmap(size());
+ updateContent();
+ event->accept();
+}
+
+void TimeLineCells::mousePressEvent(QMouseEvent *event) {
+ int frameNumber = getFrameNumber(event->pos().x());
+ int layerNumber = getLayerNumber(event->pos().y());
+ startY = event->pos().y();
+ startLayerNumber = layerNumber;
+ endY = event->pos().y();
+
+ if(type == "layers") {
+ if(layerNumber != -1 && layerNumber < editor->object->getLayerCount() ) {
+ if(event->pos().x() < 15) {
+ editor->switchVisibilityOfLayer(layerNumber);
+ } else {
+ editor->setCurrentLayer(layerNumber);
+ update();
+ }
+ }
+ if(layerNumber == -1) {
+ if(event->pos().x() < 15) {
+ editor->toggleShowAllLayers();
+ }
+ }
+ }
+
+ if(type == "tracks") {
+ if(frameNumber == editor->currentFrame && (!shortScrub || (shortScrub && startY < 20)) ) {
+ timeLine->scrubbing = true;
+ } else {
+ if( (layerNumber != -1) && layerNumber < editor->object->getLayerCount()) {
+ editor->object->getLayer(layerNumber)->mousePress(event, frameNumber);
+ //if(event->pos().x() > 15) editor->setCurrentLayer(layerNumber);
+ editor->setCurrentLayer(layerNumber);
+ update();
+ } else {
+ if(frameNumber > 0) {
+ editor->scrubTo(frameNumber);
+ timeLine->scrubbing = true;
+ }
+ }
+ }
+ }
+}
+
+
+void TimeLineCells::mouseMoveEvent(QMouseEvent *event) {
+ //if(event->pos().x() < offsetX) endY = event->pos().y();
+ if(type == "layers") {
+ endY = event->pos().y();
+ emit mouseMovedY(endY-startY);
+ }
+ int frameNumber = getFrameNumber(event->pos().x());
+ int layerNumber = getLayerNumber(event->pos().y());
+ if(timeLine->scrubbing && type == "tracks") {
+ editor->scrubTo(frameNumber);
+ } else {
+ if(layerNumber != -1 && layerNumber < editor->object->getLayerCount()) {
+ editor->object->getLayer(layerNumber)->mouseMove(event, frameNumber);
+ }
+ }
+ timeLine->update();
+}
+
+void TimeLineCells::mouseReleaseEvent(QMouseEvent *event) {
+ endY = startY;
+ emit mouseMovedY(0);
+ timeLine->scrubbing = false;
+ int frameNumber = getFrameNumber(event->pos().x());
+ if(frameNumber < 1) frameNumber = -1;
+ int layerNumber = getLayerNumber(event->pos().y());
+ if(type == "tracks" && layerNumber != -1 && layerNumber < editor->object->getLayerCount() ) {
+ editor->object->getLayer(layerNumber)->mouseRelease(event, frameNumber);
+ }
+ //if(event->pos().x() < offsetX && layerNumber != startLayerNumber && startLayerNumber != -1 && layerNumber != -1) {
+ if(type == "layers" && layerNumber != startLayerNumber && startLayerNumber != -1 && layerNumber != -1) {
+ editor->moveLayer(startLayerNumber, layerNumber);
+ }
+ update();
+}
+
+void TimeLineCells::mouseDoubleClickEvent(QMouseEvent *event) {
+ int frameNumber = getFrameNumber(event->pos().x());
+ int layerNumber = getLayerNumber(event->pos().y());
+
+ // -- short scrub --
+ if(event->pos().y() < 20) {
+ if(shortScrub) scrubChange(0); else scrubChange(1);
+ }
+
+ // -- layer --
+ Layer* layer = editor->object->getLayer( layerNumber );
+ //if(layerNumber != -1 && layerNumber < editor->object->getLayerCount() ) {
+ if(layer) {
+ if(type == "tracks" && (layerNumber != -1) && (frameNumber > 0) && layerNumber < editor->object->getLayerCount()) {
+ editor->object->getLayer(layerNumber)->mouseDoubleClick(event, frameNumber);
+ }
+ if(type == "layers") {
+ layer->editProperties();
+ }
+ }
+}
+
+// --- changes ---
+
+void TimeLineCells::fontSizeChange(int x) {
+ fontSize=x;
+ QSettings settings("Pencil","Pencil");
+ settings.setValue("labelFontSize", x);
+ updateContent();
+}
+
+void TimeLineCells::frameSizeChange(int x) {
+ //int old;
+ //old=frameSize;
+ frameSize = x;
+ QSettings settings("Pencil","Pencil");
+ settings.setValue("frameSize", x);
+ /*int i;
+ for(i=0;i<frame.size();i++) {
+ frame[i].moveTopLeft(QPoint((frame[i].x()/old)*frameSize,0));
+ frame[i].setWidth(frameSize);
+ }*/
+ updateContent();
+}
+
+void TimeLineCells::scrubChange(int x) {
+ QSettings settings("Pencil","Pencil");
+ if (x==0) { shortScrub=false; settings.setValue("shortScrub","false"); }
+ else { shortScrub=true; settings.setValue("shortScrub","true"); }
+ update();
+}
+
+void TimeLineCells::labelChange(int x) {
+ QSettings settings("Pencil","Pencil");
+ if (x==0) { drawFrameNumber=false; settings.setValue("drawLabel","false"); }
+ else { drawFrameNumber=true; settings.setValue("drawLabel","true"); }
+ updateContent();
+}
+
+void TimeLineCells::lengthChange(QString x) {
+ bool ok;
+ int dec = x.toInt(&ok, 10);
+ frameLength=dec;
+ timeLine->updateLength(frameLength);
+ //setMinimumSize(dec*frameSize,40);
+ //setFixedWidth(dec*frameSize);
+ updateContent();
+ QSettings settings("Pencil","Pencil");
+ settings.setValue("length", dec);
+}
+
+void TimeLineCells::hScrollChange(int x) {
+ frameOffset = x;
+ update();
+}
+
+void TimeLineCells::vScrollChange(int x) {
+ layerOffset = x;
+ update();
+}
+
diff -rupN pencil_backup/src/interface/timeline.h pencil_dev/src/interface/timeline.h
--- pencil_backup/src/interface/timeline.h 2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/timeline.h 2009-10-01 18:16:36.000000000 -0500
@@ -113,9 +113,13 @@ signals:
void loopClick();
void soundClick();
void fpsClick(int);
- void onionPrevClick();
- void onionNextClick();
-
+
+ void onionChecked();
+ void onionType(int);
+
+ void onionKey();
+ void straightAheadKey();
+ void inbetweenKey();
public slots:
void updateFrame(int frameNumber);
@@ -124,6 +128,8 @@ public slots:
void updateLength(int frameLength);
void updateContent();
+
+
public:
TimeLine(QWidget *parent = 0, Editor *editor = 0);
QScrollBar *hScrollBar, *vScrollBar;
@@ -131,6 +137,11 @@ public:
//int currentLayer;
bool scrubbing;
+ QCheckBox* onionCheck;
+ QToolButton* onionStraightAheadButton;
+ QToolButton* onionInbetweenButton;
+
+
protected:
void resizeEvent(QResizeEvent *event);
//void mousePressEvent(QMouseEvent *event);
diff -rupN pencil_backup/src/interface/timeline.h~ pencil_dev/src/interface/timeline.h~
--- pencil_backup/src/interface/timeline.h~ 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/timeline.h~ 2009-10-01 18:16:16.000000000 -0500
@@ -0,0 +1,159 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+*/
+#ifndef TIMELINE_H
+#define TIMELINE_H
+
+#include <QColor>
+#include <QImage>
+#include <QPoint>
+#include <QWidget>
+#include <QDockWidget>
+#include <QScrollBar>
+#include <QSound>
+#include "toolset.h"
+
+class Editor;
+
+class TimeLine;
+
+class TimeLineCells : public QWidget
+{
+ Q_OBJECT
+
+public:
+ TimeLineCells(TimeLine *parent = 0, Editor *editor = 0, QString type = "");
+ //int currentFrame;
+ //int currentLayer;
+ int getFps() { return fps; }
+ int getLayerNumber(int y);
+ int getLayerY(int layerNumber);
+ int getFrameNumber(int x);
+ int getFrameX(int frameNumber);
+ int getMouseMoveY() { return mouseMoveY; }
+ int getOffsetY() { return offsetY; }
+ int getLayerHeight() { return layerHeight; }
+
+signals:
+ void mouseMovedY(int);
+
+public slots:
+ void updateContent();
+ void updateFrame(int frameNumber);
+ void lengthChange(QString);
+ void frameSizeChange(int);
+ void fontSizeChange(int);
+ void scrubChange(int);
+ void labelChange(int);
+ void hScrollChange(int);
+ void vScrollChange(int);
+ void setMouseMoveY(int x) { mouseMoveY = x;}
+
+protected:
+ void drawContent();
+ void paintEvent(QPaintEvent *event);
+ void resizeEvent(QResizeEvent *event);
+ void mousePressEvent(QMouseEvent *event);
+ void mouseMoveEvent(QMouseEvent *event);
+ void mouseReleaseEvent(QMouseEvent *event);
+ void mouseDoubleClickEvent(QMouseEvent *event);
+
+private:
+ TimeLine *timeLine;
+ Editor* editor; // the editor for which this timeLine operates
+
+ QString type;
+ QPixmap* cache;
+ bool drawFrameNumber;
+ bool shortScrub;
+ int frameLength;
+ int frameSize;
+ int fontSize;
+ int fps;
+ bool scrubbing;
+ int layerHeight;
+ int offsetX, offsetY;
+ int startY, endY, startLayerNumber;
+ int mouseMoveY;
+ int frameOffset, layerOffset;
+};
+
+class TimeLine : public QDockWidget //DockPalette
+{
+ Q_OBJECT
+
+signals:
+ void modification();
+ void lengthChange(QString);
+ void frameSizeChange(int);
+ void fontSizeChange(int);
+ void labelChange(int);
+ void scrubChange(int);
+ void addKeyClick();
+ void removeKeyClick();
+ void newBitmapLayer();
+ void newVectorLayer();
+ void newSoundLayer();
+ void newCameraLayer();
+ void deleteCurrentLayer();
+
+ void playClick();
+ void loopClick();
+ void soundClick();
+ void fpsClick(int);
+
+ void onionChecked();
+ void onionType(int);
+
+public slots:
+ void updateFrame(int frameNumber);
+ void updateLayerNumber(int number);
+ void updateLayerView();
+ void updateLength(int frameLength);
+ void updateContent();
+
+ void onionKey();
+ void straightAheadKey();
+ void inbetweenKey();
+
+public:
+ TimeLine(QWidget *parent = 0, Editor *editor = 0);
+ QScrollBar *hScrollBar, *vScrollBar;
+ //int currentFrame;
+ //int currentLayer;
+ bool scrubbing;
+
+ QCheckBox* onionCheck;
+ QToolButton* onionStraightAheadButton;
+ QToolButton* onionInbetweenButton;
+
+
+protected:
+ void resizeEvent(QResizeEvent *event);
+ //void mousePressEvent(QMouseEvent *event);
+ //void mouseMoveEvent(QMouseEvent *event);
+ //void mouseReleaseEvent(QMouseEvent *event);
+ //void mouseDoubleClickEvent(QMouseEvent *event);
+
+private:
+ Editor* editor; // the editor for which this timeLine operates
+ //TimeLineCells* list;
+ TimeLineCells* cells;
+ TimeLineCells* list;
+ int numberOfLayers;
+
+};
+
+#endif
diff -rupN pencil_backup/src/interface/toolset.cpp pencil_dev/src/interface/toolset.cpp
--- pencil_backup/src/interface/toolset.cpp 2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/toolset.cpp 2009-09-27 14:50:43.000000000 -0500
@@ -164,6 +164,8 @@ ToolSet::ToolSet() {
newToolButton(clearButton); // = new QToolButton(this);
newToolButton(magnifyButton);
newToolButton(smudgeButton);
+ newToolButton(onionStraightAheadButton);
+ newToolButton(onionInbetweenButton);
add = new QToolButton(this);
rm = new QToolButton(this);
@@ -181,23 +183,25 @@ ToolSet::ToolSet() {
polylineButton->setWhatsThis("Polyline");
bucketButton->setWhatsThis("Paint bucket");
colouringButton->setWhatsThis("Brush");
+
usePressureBox = new QCheckBox("Size with pressure");
usePressureBox->setFont( QFont("Helvetica", 10) );
- usePressureBox->setChecked(true);
+ usePressureBox->setChecked(true);
+
makeInvisibleBox = new QCheckBox("Invisible");
makeInvisibleBox->setFont( QFont("Helvetica", 10) );
- makeInvisibleBox->setChecked(false);
+ makeInvisibleBox->setChecked(false);
+
preserveAlphaBox = new QCheckBox("Preserve Alpha");
preserveAlphaBox->setFont( QFont("Helvetica", 10) );
- preserveAlphaBox->setChecked(false);
+ preserveAlphaBox->setChecked(false);
+
followContourBox = new QCheckBox("Stop at contours");
followContourBox->setFont( QFont("Helvetica", 10) );
- followContourBox->setChecked(false);
- onionPrevBox = new QCheckBox("Previous");
- onionNextBox = new QCheckBox("Next");
- onionPrevBox->setFont( QFont("Helvetica", 10) );
- onionNextBox->setFont( QFont("Helvetica", 10) );
- onionPrevBox->setChecked(true);
+ followContourBox->setChecked(false);
+
+ onionStraightAheadButton->setFont( QFont("Helvetica", 10) );
+ onionInbetweenButton->setFont( QFont("Helvetica", 10) );
/*sizeSlider = new QDoubleSpinBox(this);
sizeSlider->setFocusPolicy(Qt::NoFocus);
@@ -244,8 +248,6 @@ ToolSet::ToolSet() {
framecounter->setToolTip("Frame Counter!");
framecounter->setFont( QFont("Helvetica", 40, QFont::Bold) );*/
- onionNextBox->setToolTip("Onion skin next frame");
- onionPrevBox->setToolTip("Onion skin previous frame");
sizeSlider->setToolTip("Set Pen Width");
pencilButton->setIcon(QIcon(":icons/pencil2.png"));
pencilButton->setToolTip("Sketch");
@@ -375,8 +377,8 @@ ToolSet::ToolSet() {
onionLay->setMargin(4);
onionLay->setSpacing(0);
- onionLay->addWidget(onionPrevBox, 0,0);
- onionLay->addWidget(onionNextBox, 1,0);
+ onionLay->addWidget(onionStraightAheadButton, 0,0);
+ onionLay->addWidget(onionInbetweenButton, 1,0);
timeLay->setMargin(4);
timeLay->setSpacing(0);
@@ -448,8 +450,8 @@ ToolSet::ToolSet() {
connect(featherSlider, SIGNAL(valueChanged(qreal)), this, SIGNAL(featherClick(qreal)));
connect(opacitySlider, SIGNAL(valueChanged(qreal)), this, SIGNAL(opacityClick(qreal)));
- connect(onionPrevBox, SIGNAL(stateChanged(int)), this, SIGNAL(prevClick()));
- connect(onionNextBox, SIGNAL(stateChanged(int)), this, SIGNAL(nextClick()));
+ connect(onionStraightAheadButton, SIGNAL(clicked()), this, SIGNAL(onionStraightAheadClick()));
+ connect(onionInbetweenButton, SIGNAL(clicked()), this, SIGNAL(onionInbetweenClick()));
connect(choseColour, SIGNAL(clicked()), this, SIGNAL(colourClick()));
connect(clearButton, SIGNAL(clicked()), this, SIGNAL(clearClick()));
diff -rupN pencil_backup/src/interface/toolset.cpp~ pencil_dev/src/interface/toolset.cpp~
--- pencil_backup/src/interface/toolset.cpp~ 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/toolset.cpp~ 2009-09-26 20:56:53.000000000 -0500
@@ -0,0 +1,668 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+*/
+#include <QtGui>
+#include "toolset.h"
+#include <math.h>
+
+SpinSlider::SpinSlider(QString text, QString type, QString dataType, qreal min, qreal max, QWidget* parent) : QWidget(parent) {
+ value = 1.0;
+ this->type = type;
+ this->dataType = dataType;
+ this->min = min;
+ this->max = max;
+ QLabel* label = new QLabel(text+": ");
+ label->setFont( QFont("Helvetica", 10) );
+ valueLabel = new QLabel("--");
+ valueLabel->setFont( QFont("Helvetica", 10) );
+ //valueLabel->setFixedWidth(30);
+ valueLabel->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
+ slider = new QSlider(Qt::Horizontal, this);
+ slider->setMinimum(0);
+ slider->setMaximum(100);
+ //slider->setFixedHeight(16);
+ QGridLayout *lay = new QGridLayout();
+ lay->setMargin(2);
+ lay->setSpacing(2);
+ //lay->setColumnStretch(0,1);
+ lay->addWidget(label,0,0,1,1);
+ lay->addWidget(valueLabel,0,1,1,1);
+ lay->addWidget(slider,1,0,1,2);
+ setLayout(lay);
+ setSizePolicy(QSizePolicy::Preferred,QSizePolicy::Fixed);
+
+ connect(slider, SIGNAL(valueChanged(int)), this, SLOT(changeValue(int)));
+ connect(slider, SIGNAL(sliderReleased()), this, SLOT(sliderReleased()));
+ connect(slider, SIGNAL(sliderMoved(int)), this, SLOT(sliderMoved(int)));
+}
+
+void SpinSlider::changeValue(qreal value) {
+ this->value = value;
+ if(dataType == "integer") {
+ valueLabel->setText( QString::number(qRound(value)) );
+ } else {
+ valueLabel->setText( QLocale::system().toString(value,'f',1) );
+ }
+}
+
+void SpinSlider::changeValue(int value) {
+ qreal value2 = 0.0;
+ if(type=="linear") value2 = min + value*(max-min)/100;
+ if(type=="log") value2 = min*exp( value*log(max/min)/100 );
+ changeValue(value2);
+}
+
+void SpinSlider::setValue(qreal value) {
+ qreal value2 = 0.0;
+ if(type=="linear") value2 = qRound( 100*(value-min)/(max-min) );
+ if(type=="log") value2 = qRound( 100.0*log(value/0.2)/log(1000.0) );
+ slider->setSliderPosition(value2);
+ changeValue(value);
+}
+
+void SpinSlider::sliderReleased() {
+ //qDebug() << "sliderReleased";
+ emit valueChanged(this->value);
+}
+
+void SpinSlider::sliderMoved(int value) {
+ changeValue(value);
+ emit valueChanged(this->value);
+}
+
+// ----------------------------------------------------------------------------------
+
+ToolSet::ToolSet() {
+
+ drawPalette = new QDockWidget(tr("Tools"));
+ optionPalette = new QDockWidget(tr("Options"));
+ displayPalette = new QDockWidget(tr("Display"));
+ keyPalette = new QDockWidget(tr("Keys"));
+ onionPalette = new QDockWidget(tr("Onion skin"));
+ timePalette = new QDockWidget(tr("Controls"));
+
+#ifdef Q_WS_MAC
+ //drawPalette->setTitleBarWidget(new TitleBar(drawPalette));
+#endif
+ //drawPalette->setAutoFillBackground(false);
+ //drawPalette->setAttribute(Qt::WA_NoSystemBackground, true);
+
+ /*QPalette optionPalettePalette(optionPalette->palette());
+ optionPalettePalette.setColor(QPalette::Light, Qt::red);
+ optionPalettePalette.setColor(QPalette::Midlight, Qt::red);
+ optionPalettePalette.setColor(QPalette::Dark, Qt::red);
+ optionPalettePalette.setColor(QPalette::Shadow, Qt::red);
+ optionPalette->setPalette(optionPalettePalette);*/
+
+ //optionPalette->setWindowFlags(Qt::Tool);
+ //optionPalette->setWindowIconText(tr("Coucou"));
+ //optionPalette->setFont( QFont("Helvetica", 14, QFont::Bold) );
+
+ //QGroupBox *drawGroup = new QGroupBox(tr("Draw"));
+ QFrame *drawGroup = new QFrame();
+ QFrame *optionGroup = new QFrame();
+ QFrame *displayGroup = new QFrame();
+ QFrame *keyGroup = new QFrame();
+ QFrame *onionGroup = new QFrame();
+ QFrame * timeGroup = new QFrame();
+
+ //QFrame *line = new QFrame();
+ //line->setFrameStyle(QFrame::HLine | QFrame::Raised);
+
+ //drawGroup->setMaximumHeight( 100 );
+ //optionGroup->setFrameStyle(QFrame::Panel | QFrame::Raised);
+ //keyGroup->setFrameStyle(QFrame::Panel | QFrame::Raised);
+ //onionGroup->setFrameStyle(QFrame::Panel | QFrame::Raised);
+ //timeGroup->setFrameStyle(QFrame::Panel | QFrame::Raised);
+
+ //optionGroup->setLineWidth(2);
+ //keyGroup->setLineWidth(2);
+ //displayGroup->setLineWidth(2);
+ //onionGroup->setLineWidth(2);
+ //timeGroup->setLineWidth(2);
+
+ drawPalette->setWidget(drawGroup);
+ optionPalette->setWidget(optionGroup);
+ displayPalette->setWidget(displayGroup);
+ keyPalette->setWidget(keyGroup);
+ onionPalette->setWidget(onionGroup);
+ timePalette->setWidget(timeGroup);
+
+ QVBoxLayout *framelay = new QVBoxLayout();
+ QGridLayout *drawLay = new QGridLayout();
+ QGridLayout *optionLay = new QGridLayout();
+ QGridLayout *displayLay = new QGridLayout();
+ QGridLayout *keyLay = new QGridLayout();
+ QGridLayout *onionLay = new QGridLayout();
+ QGridLayout *timeLay = new QGridLayout();
+ QVBoxLayout *butlay = new QVBoxLayout();
+
+ QSettings settings("Pencil","Pencil");
+
+ newToolButton(pencilButton); // = new QToolButton(this);
+ newToolButton(selectButton); // = new QToolButton(this);
+ newToolButton(moveButton); // = new QToolButton(this);
+ newToolButton(handButton); // = new QToolButton(this);
+ newToolButton(penButton); // = new QToolButton(this);
+ newToolButton(eraserButton); // = new QToolButton(this);
+ newToolButton(polylineButton); // = new QToolButton(this);
+ newToolButton(bucketButton); // = new QToolButton(this);
+ newToolButton(colouringButton); // = new QToolButton(this);
+ newToolButton(eyedropperButton); // = new QToolButton(this);
+ newToolButton(clearButton); // = new QToolButton(this);
+ newToolButton(magnifyButton);
+ newToolButton(smudgeButton);
+ newToolButton(onionStraightAheadButton);
+ newToolButton(onionInbetweenButton);
+
+ add = new QToolButton(this);
+ rm = new QToolButton(this);
+ thinLinesButton = new QToolButton(this);
+ outlinesButton = new QToolButton(this);
+ mirrorButton = new QToolButton(this); // = new QToolButton(this);
+
+ choseColour = new QToolButton(this);
+ play = new QPushButton(tr("Play"),this);
+
+ play->setFixedWidth(80);
+
+ pencilButton->setWhatsThis("Draw");
+ penButton->setWhatsThis("Pen");
+ polylineButton->setWhatsThis("Polyline");
+ bucketButton->setWhatsThis("Paint bucket");
+ colouringButton->setWhatsThis("Brush");
+
+ usePressureBox = new QCheckBox("Size with pressure");
+ usePressureBox->setFont( QFont("Helvetica", 10) );
+ usePressureBox->setChecked(true);
+
+ makeInvisibleBox = new QCheckBox("Invisible");
+ makeInvisibleBox->setFont( QFont("Helvetica", 10) );
+ makeInvisibleBox->setChecked(false);
+
+ preserveAlphaBox = new QCheckBox("Preserve Alpha");
+ preserveAlphaBox->setFont( QFont("Helvetica", 10) );
+ preserveAlphaBox->setChecked(false);
+
+ followContourBox = new QCheckBox("Stop at contours");
+ followContourBox->setFont( QFont("Helvetica", 10) );
+ followContourBox->setChecked(false);
+
+ onionStraightAheadButton->setFont( QFont("Helvetica", 10) );
+ onionInbetweenButton->setFont( QFont("Helvetica", 10) );
+
+ /*sizeSlider = new QDoubleSpinBox(this);
+ sizeSlider->setFocusPolicy(Qt::NoFocus);
+ sizeSlider->setFont( QFont("Helvetica", 10) );
+ sizeSlider->setDecimals(1);
+ sizeSlider->setMinimum(0);
+ sizeSlider->setMaximum(200);
+ sizeSlider->setValue(settings.value("width").toInt());
+ sizeSlider->setFixedWidth(50);
+ sizeSlider->setFixedHeight(22);*/
+
+ sizeSlider = new SpinSlider("Size", "log", "real", 0.2, 200.0, this);
+ sizeSlider->setValue(settings.value("pencilWidth").toDouble());
+
+ featherSlider = new SpinSlider("Feather", "log", "real", 0.2, 200.0, this);
+ featherSlider->setValue(settings.value("pencilFeather").toDouble());
+
+ opacitySlider = new SpinSlider("Opacity", "linear", "real", 0.0, 1.0, this);
+ opacitySlider->setValue(settings.value("pencilOpacity").toDouble());
+
+ /*featherSlider = new QSlider(Qt::Horizontal, this);
+ featherSlider->setMinimum(0);
+ featherSlider->setMaximum(100);
+ featherSlider->setFixedHeight(22);*/
+
+ soundBox = new QCheckBox("Sound");
+ soundBox->setFont( QFont("Helvetica", 10) );
+ loopBox = new QCheckBox(tr("Loop"), this);
+ loopBox->setFont( QFont("Helvetica", 10) );
+
+ fpsBox = new QSpinBox(this);
+ //fpsBox->setFixedWidth(50);
+ fpsBox->setFont( QFont("Helvetica", 10) );
+ fpsBox->setFixedHeight(22);
+ fpsBox->setValue(settings.value("fps").toInt());
+ fpsBox->setMinimum(1);
+ fpsBox->setMaximum(50);
+ fpsBox->setToolTip("FPS");
+ fpsBox->setFocusPolicy(Qt::NoFocus);
+
+ /*framecounter = new QLabel;
+ framecounter->setText("1");
+ framecounter->setAlignment(Qt::AlignCenter);
+ framecounter->setToolTip("Frame Counter!");
+ framecounter->setFont( QFont("Helvetica", 40, QFont::Bold) );*/
+
+ sizeSlider->setToolTip("Set Pen Width");
+ pencilButton->setIcon(QIcon(":icons/pencil2.png"));
+ pencilButton->setToolTip("Sketch");
+ penButton->setIcon(QIcon(":icons/pen.png"));
+ penButton->setToolTip("Draw");
+ polylineButton->setIcon(QIcon(":icons/polyline.png"));
+ polylineButton->setToolTip("Polyline");
+ bucketButton->setIcon(QIcon(":icons/bucket.png"));
+ bucketButton->setToolTip("Fill");
+ colouringButton->setIcon(QIcon(":icons/brush.png"));
+ colouringButton->setToolTip("Colouring tool");
+ eyedropperButton->setIcon(QIcon(":icons/eyedropper.png"));
+ eyedropperButton->setToolTip("Pick colour");
+ selectButton->setIcon(QIcon(":icons/select.png"));
+ selectButton->setToolTip("Select");
+ moveButton->setIcon(QIcon(":icons/arrow.png"));
+ moveButton->setToolTip("Select/Move object");
+ handButton->setIcon(QIcon(":icons/hand.png"));
+ handButton->setToolTip("Move/Zoom canvas");
+ magnifyButton->setIcon(QIcon(":icons/magnify.png"));
+ magnifyButton->setToolTip("Magnify canvas");
+ magnifyButton->setEnabled(false);
+ smudgeButton->setIcon(QIcon(":icons/smudge.png"));
+ smudgeButton->setToolTip("Modify curve");
+ smudgeButton->setEnabled(true);
+ eraserButton->setIcon(QIcon(":icons/eraser.png"));
+ eraserButton->setToolTip("Erase");
+ add->setIcon(QIcon(":icons/add.png"));
+ add->setToolTip("Add Frame");
+ rm->setIcon(QIcon(":icons/remove.png"));
+ rm->setToolTip("Remove Frame");
+
+ QPixmap colourSwatch(30,30);
+ colourSwatch.fill(Qt::black);
+ QLabel* colourLabel = new QLabel();
+ colourLabel->setText(tr("Colour:"));
+ colourLabel->setFont( QFont("Helvetica", 10) );
+ choseColour->setIcon(colourSwatch);
+ choseColour->setToolTip("Display Colours");
+
+ thinLinesButton->setIcon(QIcon(":icons/thinlines5.png"));
+ thinLinesButton->setToolTip("Show invisible lines");
+ outlinesButton->setIcon(QIcon(":icons/outlines5.png"));
+ outlinesButton->setToolTip("Show outlines only");
+
+ mirrorButton->setIcon(QIcon(":icons/mirror.png"));
+ mirrorButton->setToolTip("Horizontal flip");
+ clearButton->setIcon(QIcon(":icons/clear.png"));
+ clearButton->setToolTip("Clear");
+ thinLinesButton->setCheckable(true);
+ thinLinesButton->setChecked(false);
+ outlinesButton->setCheckable(true);
+ outlinesButton->setChecked(false);
+ mirrorButton->setCheckable(true);
+ mirrorButton->setChecked(false);
+ pencilButton->setCheckable(true);
+ penButton->setCheckable(true);
+ polylineButton->setCheckable(true);
+ bucketButton->setCheckable(true);
+ colouringButton->setCheckable(true);
+ smudgeButton->setCheckable(true);
+ eyedropperButton->setCheckable(true);
+ selectButton->setCheckable(true);
+ moveButton->setCheckable(true);
+ handButton->setCheckable(true);
+ eraserButton->setCheckable(true);
+ pencilButton->setChecked(true);
+
+ drawLay->setMargin(2);
+ drawLay->setSpacing(0);
+
+ drawLay->addWidget(pencilButton,0,0); drawLay->setAlignment(pencilButton, Qt::AlignRight);
+ drawLay->addWidget(colouringButton,0,1); drawLay->setAlignment(colouringButton, Qt::AlignLeft);
+
+ drawLay->addWidget(penButton,1,0); drawLay->setAlignment(penButton, Qt::AlignRight);
+ drawLay->addWidget(polylineButton,1,1); drawLay->setAlignment(polylineButton, Qt::AlignLeft);
+
+ drawLay->addWidget(eraserButton,2,0); drawLay->setAlignment(eraserButton, Qt::AlignRight);
+ drawLay->addWidget(clearButton,2,1); drawLay->setAlignment(clearButton, Qt::AlignLeft);
+
+ drawLay->addWidget(bucketButton,3,0); drawLay->setAlignment(bucketButton, Qt::AlignRight);
+ drawLay->addWidget(eyedropperButton,3,1); drawLay->setAlignment(eyedropperButton, Qt::AlignLeft);
+
+ drawLay->addWidget(selectButton,4,0); drawLay->setAlignment(selectButton, Qt::AlignRight);
+ drawLay->addWidget(moveButton,4,1); drawLay->setAlignment(moveButton, Qt::AlignLeft);
+
+ drawLay->addWidget(handButton,5,0); drawLay->setAlignment(handButton, Qt::AlignRight);
+ drawLay->addWidget(smudgeButton,5,1); drawLay->setAlignment(smudgeButton, Qt::AlignLeft);
+ //drawLay->addWidget(mirrorButton,5,1); drawLay->setAlignment(mirrorButton, Qt::AlignLeft);
+
+ optionLay->setMargin(8);
+ optionLay->setSpacing(8);
+ optionLay->addWidget(colourLabel,6,0);
+ optionLay->addWidget(choseColour,6,1);
+ //optionLay->addWidget(thinLinesButton,6,2);
+
+ //optionLay->addWidget(sizeSlider,7,0,1,2);
+
+
+ /*QGroupBox* sizeBox = new QGroupBox("Size");
+ QHBoxLayout* sizeBoxLay = new QHBoxLayout();
+ sizeBoxLay->addWidget(sizeSlider2);
+ sizeBoxLay->setMargin(0);
+ sizeBoxLay->setSpacing(0);
+ sizeBox->setLayout(sizeBoxLay);*/
+
+ optionLay->addWidget(sizeSlider,8,0,1,2);
+ optionLay->addWidget(featherSlider,9,0,1,2);
+ //optionLay->addWidget(opacitySlider,10,0,1,2);
+
+ optionLay->addWidget(usePressureBox,11,0,1,2);
+ optionLay->addWidget(preserveAlphaBox,12,0,1,2);
+ optionLay->addWidget(followContourBox,13,0,1,2);
+ optionLay->addWidget(makeInvisibleBox,14,0,1,2);
+ optionLay->setRowStretch(15,1);
+
+ displayLay->setMargin(4);
+ displayLay->setSpacing(0);
+ displayLay->addWidget(mirrorButton,0,0);
+ displayLay->addWidget(thinLinesButton,0,1);
+ displayLay->addWidget(outlinesButton,0,2);
+
+ keyLay->setMargin(4);
+ keyLay->setSpacing(0);
+ keyLay->addWidget(add,0,0);
+ keyLay->addWidget(rm,0,1);
+
+ onionLay->setMargin(4);
+ onionLay->setSpacing(0);
+ onionLay->addWidget(onionStraightAheadButton, 0,0);
+ onionLay->addWidget(onionInbetweenButton, 1,0);
+
+ timeLay->setMargin(4);
+ timeLay->setSpacing(0);
+ timeLay->addWidget(play,0,0);
+ timeLay->addWidget(fpsBox,1,0);
+ timeLay->addWidget(loopBox,2,0,1,-1);
+ timeLay->addWidget(soundBox,3,0,1,-1);
+
+ drawGroup->setLayout(drawLay);
+ optionGroup->setLayout(optionLay);
+ displayGroup->setLayout(displayLay);
+ keyGroup->setLayout(keyLay);
+ onionGroup->setLayout(onionLay);
+ timeGroup->setLayout(timeLay);
+
+ //keyGroup->setFlat(true);
+ //onionGroup->setFlat(true);
+ //timeGroup->setFlat(true);
+
+ //drawGroup->setMaximumSize( QSize(3*32,6*32+1) );
+ drawGroup->setMaximumHeight(6*32+1);
+
+ drawPalette->setMaximumHeight(200);
+ //drawPalette->setFeatures(drawPalette->features() | QDockWidget::DockWidgetVerticalTitleBar);
+ //optionPalette->setMaximumHeight(300);
+ //optionGroup->setMaximumHeight(160);
+ displayPalette->setMaximumHeight(60);
+ keyGroup->setMaximumHeight(60);
+ onionGroup->setMaximumHeight(60);
+
+ /*butlay->setMargin(0);
+ butlay->setSpacing(2);
+ butlay->addWidget(drawGroup);
+ butlay->addWidget(optionGroup);
+ butlay->addWidget(keyGroup);
+ butlay->addWidget(onionGroup);
+ butlay->addWidget(timeGroup);
+
+ framelay->addLayout(butlay);
+ //framelay->addWidget(framecounter);
+
+ setLayout(framelay);*/
+
+ connect(add, SIGNAL(clicked()), this, SIGNAL(addClick()));
+ connect(rm, SIGNAL(clicked()), this, SIGNAL(rmClick()));
+
+ connect(pencilButton, SIGNAL(clicked()), this, SIGNAL(pencilClick()));
+ connect(selectButton, SIGNAL(clicked()), this, SIGNAL(selectClick()));
+ connect(moveButton, SIGNAL(clicked()), this, SIGNAL(moveClick()));
+ connect(handButton, SIGNAL(clicked()), this, SIGNAL(handClick()));
+ connect(eraserButton, SIGNAL(clicked()), this, SIGNAL(eraserClick()));
+ connect(penButton, SIGNAL(clicked()), this, SIGNAL(penClick()));
+ connect(polylineButton, SIGNAL(clicked()), this, SIGNAL(polylineClick()));
+ connect(bucketButton, SIGNAL(clicked()), this, SIGNAL(bucketClick()));
+ connect(eyedropperButton, SIGNAL(clicked()), this, SIGNAL(eyedropperClick()));
+ connect(colouringButton, SIGNAL(clicked()), this, SIGNAL(colouringClick()));
+ connect(smudgeButton, SIGNAL(clicked()), this, SIGNAL(smudgeClick()));
+
+ connect(thinLinesButton, SIGNAL(clicked()), this, SIGNAL(thinLinesClick()));
+ connect(outlinesButton, SIGNAL(clicked()), this, SIGNAL(outlinesClick()));
+ //connect(outlinesButton, SIGNAL(pressed()), this, SIGNAL(outlinesPressed()));
+ //connect(outlinesButton, SIGNAL(released()), this, SIGNAL(outlinesReleased()));
+
+ connect(usePressureBox, SIGNAL(clicked(bool)), this, SLOT(pressureClick(bool)));
+ connect(makeInvisibleBox, SIGNAL(clicked(bool)), this, SLOT(invisibleClick(bool)));
+ connect(preserveAlphaBox, SIGNAL(clicked(bool)), this, SLOT(preserveAlphaClick(bool)));
+ connect(followContourBox, SIGNAL(clicked(bool)), this, SLOT(followContourClick(bool)));
+ connect(sizeSlider, SIGNAL(valueChanged(qreal)), this, SIGNAL(widthClick(qreal)));
+ connect(featherSlider, SIGNAL(valueChanged(qreal)), this, SIGNAL(featherClick(qreal)));
+ connect(opacitySlider, SIGNAL(valueChanged(qreal)), this, SIGNAL(opacityClick(qreal)));
+
+ connect(onionStraightAheadButton, SIGNAL(clicked()), this SIGNAL(onionStraightAheadClick()));
+ connect(onionInbetweenButton, SIGNAL(clicked()), this SIGNAL(onionInbetweenClick()));
+
+ connect(choseColour, SIGNAL(clicked()), this, SIGNAL(colourClick()));
+ connect(clearButton, SIGNAL(clicked()), this, SIGNAL(clearClick()));
+ connect(mirrorButton, SIGNAL(clicked()), this, SIGNAL(mirrorClick()));
+
+ connect(play, SIGNAL(clicked()), this, SIGNAL(playClick()));
+ connect(loopBox, SIGNAL(stateChanged(int)), this, SIGNAL(loopClick()));
+ connect(soundBox, SIGNAL(stateChanged(int)), this, SIGNAL(soundClick()));
+
+ connect(fpsBox,SIGNAL(valueChanged(int)), this, SIGNAL(fpsClick(int)));
+
+ connect(pencilButton, SIGNAL(clicked()), this, SLOT(changePencilButton()));
+ connect(selectButton, SIGNAL(clicked()), this, SLOT(changeSelectButton()));
+ connect(moveButton, SIGNAL(clicked()), this, SLOT(changeMoveButton()));
+ connect(handButton, SIGNAL(clicked()), this, SLOT(changeHandButton()));
+ connect(eraserButton, SIGNAL(clicked()), this, SLOT(changeEraserButton()));
+ connect(penButton, SIGNAL(clicked()), this, SLOT(changePenButton()));
+ connect(polylineButton, SIGNAL(clicked()), this, SLOT(changePolylineButton()));
+ connect(bucketButton, SIGNAL(clicked()), this, SLOT(changeBucketButton()));
+ connect(eyedropperButton, SIGNAL(clicked()), this, SLOT(changeEyedropperButton()));
+ connect(colouringButton, SIGNAL(clicked()), this, SLOT(changeColouringButton()));
+ connect(smudgeButton, SIGNAL(clicked()), this, SLOT(changeSmudgeButton()));
+
+ //connect(thinLinesButton, SIGNAL(clicked()), this, SLOT(changeThinLinesButton()));
+}
+
+void ToolSet::newToolButton(QToolButton* &toolButton) {
+ toolButton = new QToolButton(this);
+ toolButton->setAutoRaise(true);
+ toolButton->setIconSize( QSize(24,24) );
+ toolButton->setFixedSize(32,32);
+}
+
+void ToolSet::setCounter(int x) {
+ //framecounter->setText(QString::number(x));
+}
+
+void ToolSet::setWidth(qreal x) {
+ if(x < 0) {
+ sizeSlider->setEnabled(false);
+ } else {
+ sizeSlider->setEnabled(true);
+ sizeSlider->setValue(x);
+ }
+}
+
+void ToolSet::setFeather(qreal x) {
+ if(x < 0) {
+ featherSlider->setEnabled(false);
+ } else {
+ featherSlider->setEnabled(true);
+ featherSlider->setValue(x);
+ }
+}
+
+void ToolSet::setOpacity(qreal x) {
+ if(x < 0) {
+ opacitySlider->setEnabled(false);
+ } else {
+ opacitySlider->setEnabled(true);
+ opacitySlider->setValue(x);
+ }
+}
+
+void ToolSet::setPressure(int x) { // x = -1, 0, 1
+ if(x<0) {
+ usePressureBox->setEnabled(false);
+ } else {
+ usePressureBox->setEnabled(true);
+ usePressureBox->setChecked(x>0);
+ }
+}
+
+void ToolSet::pressureClick(bool x) {
+ int y = 0;
+ if(x) y = 1;
+ emit pressureClick(y);
+}
+
+void ToolSet::setInvisibility(int x) { // x = -1, 0, 1
+ if(x<0) {
+ makeInvisibleBox->setEnabled(false);
+ } else {
+ makeInvisibleBox->setEnabled(true);
+ makeInvisibleBox->setChecked(x>0);
+ }
+}
+
+void ToolSet::invisibleClick(bool x) {
+ int y = 0;
+ if(x) y = 1;
+ emit invisibleClick(y);
+}
+
+void ToolSet::setPreserveAlpha(int x) { // x = -1, 0, 1
+ if(x<0) {
+ preserveAlphaBox->setEnabled(false);
+ } else {
+ preserveAlphaBox->setEnabled(true);
+ preserveAlphaBox->setChecked(x>0);
+ }
+}
+
+void ToolSet::preserveAlphaClick(bool x) {
+ int y = 0;
+ if(x) y = 1;
+ emit preserveAlphaClick(y);
+}
+
+void ToolSet::setFollowContour(int x) { // x = -1, 0, 1
+ if(x<0) {
+ followContourBox->setEnabled(false);
+ } else {
+ followContourBox->setEnabled(true);
+ followContourBox->setChecked(x>0);
+ }
+}
+
+void ToolSet::followContourClick(bool x) {
+ int y = 0;
+ if(x) y = 1;
+ emit followContourClick(y);
+}
+
+void ToolSet::setColour(QColor x) {
+ QPixmap colourSwatch(30,30);
+ colourSwatch.fill(x);
+ choseColour->setIcon(colourSwatch);
+}
+
+void ToolSet::changePencilButton() {
+ deselectAllTools();
+ pencilButton->setChecked(true);
+}
+
+void ToolSet::changeEraserButton() {
+ deselectAllTools();
+ eraserButton->setChecked(true);
+}
+
+void ToolSet::changeSelectButton() {
+ deselectAllTools();
+ selectButton->setChecked(true);
+}
+
+void ToolSet::changeMoveButton() {
+ deselectAllTools();
+ moveButton->setChecked(true);
+}
+
+void ToolSet::changeHandButton() {
+ deselectAllTools();
+ handButton->setChecked(true);
+}
+
+void ToolSet::changePenButton() {
+ deselectAllTools();
+ penButton->setChecked(true);
+}
+
+void ToolSet::changePolylineButton() {
+ deselectAllTools();
+ polylineButton->setChecked(true);
+}
+
+void ToolSet::changeBucketButton() {
+ deselectAllTools();
+ bucketButton->setChecked(true);
+}
+
+void ToolSet::changeEyedropperButton() {
+ deselectAllTools();
+ eyedropperButton->setChecked(true);
+}
+
+void ToolSet::changeColouringButton() {
+ deselectAllTools();
+ colouringButton->setChecked(true);
+}
+
+void ToolSet::changeSmudgeButton() {
+ deselectAllTools();
+ smudgeButton->setChecked(true);
+}
+
+void ToolSet::changeOutlinesButton(bool trueOrFalse) {
+ outlinesButton->setChecked(trueOrFalse);
+}
+
+
+void ToolSet::changeThinLinesButton(bool trueOrFalse) {
+ thinLinesButton->setChecked(trueOrFalse);
+}
+
+
+void ToolSet::resetMirror() {
+ mirrorButton->setChecked(false);
+}
+
+void ToolSet::deselectAllTools() {
+ pencilButton->setChecked(false);
+ eraserButton->setChecked(false);
+ selectButton->setChecked(false);
+ moveButton->setChecked(false);
+ handButton->setChecked(false);
+ penButton->setChecked(false);
+ polylineButton->setChecked(false);
+ bucketButton->setChecked(false);
+ eyedropperButton->setChecked(false);
+ colouringButton->setChecked(false);
+ smudgeButton->setChecked(false);
+}
+
+
diff -rupN pencil_backup/src/interface/toolset.h pencil_dev/src/interface/toolset.h
--- pencil_backup/src/interface/toolset.h 2008-01-21 11:43:53.000000000 -0600
+++ pencil_dev/src/interface/toolset.h 2009-09-27 15:47:04.000000000 -0500
@@ -104,14 +104,16 @@ signals:
void colouringClick();
void smudgeClick();
+ void onionStraightAheadClick();
+ void onionInbetweenClick();
+
void lengthClick(QString);
void fpsClick(int);
void clearClick();
void thinLinesClick();
void outlinesClick();
void mirrorClick();
- void prevClick();
- void nextClick();
+ void onionRadio(int);
void widthClick(qreal);
void featherClick(qreal);
void opacityClick(qreal);
@@ -145,6 +147,9 @@ private:
QToolButton *add;
QToolButton *rm;
+
+ QToolButton *onionStraightAheadButton;
+ QToolButton *onionInbetweenButton;
QSpinBox *fpsBox;
//QDoubleSpinBox *sizeSlider;
@@ -160,8 +165,6 @@ private:
QCheckBox *preserveAlphaBox;
QCheckBox *followContourBox;
- QCheckBox *onionPrevBox;
- QCheckBox *onionNextBox;
QCheckBox *loopBox;
QCheckBox *soundBox;
int fps;
diff -rupN pencil_backup/src/interface/toolset.h~ pencil_dev/src/interface/toolset.h~
--- pencil_backup/src/interface/toolset.h~ 1969-12-31 18:00:00.000000000 -0600
+++ pencil_dev/src/interface/toolset.h~ 2009-09-26 20:49:53.000000000 -0500
@@ -0,0 +1,174 @@
+/*
+
+Pencil - Traditional Animation Software
+Copyright (C) 2005-2007 Patrick Corrieri & Pascal Naidon
+
+This program is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License
+as published by the Free Software Foundation;
+
+This program is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+*/
+#ifndef TOOLSET_H
+#define TOOLSET_H
+
+#include <QtGui>
+
+class SpinSlider : public QWidget
+{
+ Q_OBJECT
+ public:
+ SpinSlider(QString text, QString type, QString dataType, qreal min, qreal max, QWidget *parent = 0);
+ public slots:
+ void changeValue(qreal);
+ void changeValue(int);
+ void setValue(qreal);
+ void sliderReleased();
+ void sliderMoved(int);
+ signals:
+ void valueChanged(qreal);
+ private:
+ QLabel* valueLabel;
+ QSlider* slider;
+ qreal value, min, max;
+ QString type, dataType;
+};
+
+
+class ToolSet : public QWidget
+{
+ Q_OBJECT
+
+public:
+ ToolSet();
+
+ QDockWidget *drawPalette;
+ QDockWidget *optionPalette;
+ QDockWidget *displayPalette;
+ QDockWidget *keyPalette;
+ QDockWidget *onionPalette;
+ QDockWidget *timePalette;
+
+public slots:
+ void setCounter(int);
+ void setWidth(qreal);
+ void setFeather(qreal);
+ void setOpacity(qreal);
+ void setInvisibility(int);
+ void setPressure(int);
+ void setPreserveAlpha(int);
+ void setFollowContour(int);
+ void setColour(QColor);
+ //void playStart();
+ void changePencilButton();
+ void changeEraserButton();
+ void changeSelectButton();
+ void changeMoveButton();
+ void changeHandButton();
+ void changePenButton();
+ void changePolylineButton();
+ void changeBucketButton();
+ void changeEyedropperButton();
+ void changeColouringButton();
+ void changeThinLinesButton(bool);
+ void changeOutlinesButton(bool);
+ void changeSmudgeButton();
+
+ void resetMirror();
+ void pressureClick(bool);
+ void invisibleClick(bool);
+ void preserveAlphaClick(bool);
+ void followContourClick(bool);
+
+signals:
+ void rmClick();
+ void playClick();
+ void addClick();
+ void pencilClick();
+ void eraserClick();
+ void selectClick();
+ void moveClick();
+ void handClick();
+ void penClick();
+ void pressureClick(int);
+ void invisibleClick(int);
+ void preserveAlphaClick(int);
+ void followContourClick(int);
+ void polylineClick();
+ void bucketClick();
+ void eyedropperClick();
+ void colouringClick();
+ void smudgeClick();
+
+ void lengthClick(QString);
+ void fpsClick(int);
+ void clearClick();
+ void thinLinesClick();
+ void outlinesClick();
+ void mirrorClick();
+ void onionRadio(int);
+ void widthClick(qreal);
+ void featherClick(qreal);
+ void opacityClick(qreal);
+ void colourClick();
+ void loopClick();
+ void soundClick();
+
+private:
+ void newToolButton(QToolButton* &toolButton);
+
+ QToolButton *choseColour;
+ QPixmap *colourSwatch;
+ QToolButton *pencilButton;
+ QToolButton *selectButton;
+ QToolButton *moveButton;
+ QToolButton *handButton;
+ QToolButton *eraserButton;
+ QToolButton *penButton;
+ QToolButton *polylineButton;
+ QToolButton *bucketButton;
+ QToolButton *colouringButton;
+ QToolButton *eyedropperButton;
+ QToolButton *magnifyButton;
+ QToolButton *smudgeButton;
+
+ QToolButton *thinLinesButton;
+ QToolButton *outlinesButton;
+
+ QToolButton *mirrorButton;
+ QToolButton *clearButton;
+
+ QToolButton *add;
+ QToolButton *rm;
+
+ QToolButton *onionStraightAheadButton;
+ QToolButton *onionInbetweenButton;
+
+ QSpinBox *fpsBox;
+ //QDoubleSpinBox *sizeSlider;
+ SpinSlider *sizeSlider;
+ SpinSlider *featherSlider;
+ SpinSlider *opacitySlider;
+ //QSlider *featherSlider;
+ QLabel *framecounter;
+ QPushButton *play;
+
+ QCheckBox *usePressureBox;
+ QCheckBox *makeInvisibleBox;
+ QCheckBox *preserveAlphaBox;
+ QCheckBox *followContourBox;
+
+ QCheckBox *loopBox;
+ QCheckBox *soundBox;
+ int fps;
+
+ void deselectAllTools();
+
+
+};
+
+#endif
Binary files pencil_backup/timecontrols.o and pencil_dev/timecontrols.o differ
Binary files pencil_backup/timeline.o and pencil_dev/timeline.o differ
Binary files pencil_backup/toolset.o and pencil_dev/toolset.o differ
Binary files pencil_backup/vectorimage.o and pencil_dev/vectorimage.o differ
Binary files pencil_backup/vertexref.o and pencil_dev/vertexref.o differ