Upstream merge.

This commit is contained in:
Maciej Suminski 2013-08-02 15:57:24 +02:00
commit 2fd2c1dc03
170 changed files with 26970 additions and 2790 deletions

View File

@ -29,17 +29,17 @@ Igor Plyatov <plyatov[at]gmail.com>
Fabrizio Tappero <fabrizio-dot-tappero[at]gmail-dot-com>
== Translators
Czech (CZ) Martin Kratoška <martin[at]ok1rr-dot-com>
Czech (CZ) Martin Kratoška <martin[at]ok1rr-dot-com>
Dutch (NL) Jerry Jacobs <xor.gate.engineering[at]gmail-dot-com>
Finnish (FI) Vesa Solonen <vesa.solonen[at]hut-dot-fi>
French (FR) Jean-Pierre Charras <jean-pierre.charras[at]inpg-dot-fr>
Polish (PL) Mateusz Skowro¿ski <skowri[at]gmail-dot-com>
Polish (PL) Mateusz Skowro¿ski <skowri[at]gmail-dot-com>
Polish (PL) Kerusey Karyu <keruseykaryu@o2.pl>
Portuguese (PT) Renie Marquet <reniemarquet[at]uol-dot-com-dot-br>"
Russian (RU) Igor Plyatov <plyatov[at]gmail-dot-com>
Russian (RU) Andrey Fedorushkov <andrf@mail.ru>
Spanish (ES) Pedro Martin del Valle <pkicad[at]yahoo-dot-es>
Spanish (ES) Iñigo Zuluaga <inigo_zuluaga[at]yahoo-dot-es>
Spanish (ES) Iñigo Zuluaga <inigo_zuluaga[at]yahoo-dot-es>
German (DE) Rafael Sokolowski <Rafael.Sokolowski[at]web-dot-de
Japanese (JA) Kenta Yonekura <midpika@hotmail.com>
Japanese (JA) yoneken <midpika@hotmail.com>
@ -47,7 +47,7 @@ Japanese (JA) yoneken <midpika@hotmail.com>
Remy Halvick, David Briscoe, Dominique Laigle, Paul Burke
== Programm credits for icons and others
Icons by Iñigo Zuluagaz <inigo_zuluaga[at]yahoo-dot-es>
Icons by Iñigo Zuluagaz <inigo_zuluaga[at]yahoo-dot-es>
New Icons by Fabrizio Tappero <fabrizio-dot-tappero[at]gmail-dot-com>
3D modules by Renie Marquet <reniemarquet[at]uol.com-dot-br>
3D modules by Christophe Boschat <nox454[at]hotmail-dot-fr>

View File

@ -390,6 +390,7 @@ add_subdirectory(kicad)
add_subdirectory(pcbnew)
add_subdirectory(pcbnew/pcad2kicadpcb_plugin)
add_subdirectory(polygon)
add_subdirectory(pagelayout_editor)
add_subdirectory(potrace)
add_subdirectory(bitmap2component)
add_subdirectory(pcb_calculator)
@ -407,6 +408,7 @@ add_dependencies( pcbcommon boost )
add_dependencies( 3d-viewer boost )
add_dependencies( pcad2kicadpcb boost )
add_dependencies( polygon boost )
add_dependencies( pl_editor boost )
#############

View File

@ -668,6 +668,7 @@ INPUT = kicad \
3d-viewer \
common \
gerbview \
pagelayout_editor \
include \
polygon \
potrace
@ -703,8 +704,8 @@ RECURSIVE = YES
# Note that relative paths are relative to the directory from which doxygen is
# run.
EXCLUDE = include/boost \
polygon/kbool
EXCLUDE = include/boost
# The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
# directories that are symbolic links (a Unix file system feature) are excluded

View File

@ -43,9 +43,6 @@
#
# 1) inkscape - command line mode is used, must be on your PATH
# 2) pngcrush - this program must be on your PATH
# 3) Under Windows only:
# dos2unix - to convert End Of Lines to unix EOL (CRLF to LF)
# this program must be on your PATH
#
# lower case is used for local variables, uppercase for global variables
@ -71,21 +68,8 @@ option( MAINTAIN_PNGS
"Set to true if you are a PNG maintainer and have the required tools given in the bitmaps_png/CMakeLists.txt file (default OFF)."
OFF)
# Used Only to maintain PNG files (and therefore to recreate .cpp files)
# The png2cpp creates files with native End of Line format.
# To avoid mixed EOF formats in these .cpp files, it is good to
# convert them in Unix EOL format (LF)
# Under Windows, the well known dos2unix.exe does the conversion
# It is installed with MinGW and MSYS.
# It is very easy to install (just an executable to copy in a known path) if it is missing
if( WIN32 )
set( CONVERT_EOL true )
set( eol2unix_converter dos2unix )
else()
set( CONVERT_EOL false )
endif( WIN32 )
include_directories(BEFORE ${INC_BEFORE})
include_directories(
@ -431,6 +415,12 @@ set( BMAPS_MID
pad
pad_dimensions
pads_mask_layers
pagelayout_load
pagelayout_load_default
pagelayout_new
pagelayout_recent
pagelayout_normal_view_mode
pagelayout_special_view_mode
palette
part_properties
paste
@ -555,6 +545,7 @@ set( BMAPS_BIG
icon_pcbcalculator
libedit_icon
viewlibs_icon
icon_pagelayout_editor
)
@ -596,25 +587,6 @@ endfunction()
# Function png2cpp
# converts a single *.png to *.cpp
if( CONVERT_EOL )
function( png2cpp inputFile outFile )
add_custom_command(
OUTPUT ${outFile}
COMMAND rm -f ${outFile}.tmp
COMMAND ${CMAKE_COMMAND} -DinputFile=${inputFile} -DoutCppFile=${outFile}
-P ${CMAKE_MODULE_PATH}/PNG2cpp.cmake
DEPENDS ${inputFile} ${CMAKE_MODULE_PATH}/PNG2cpp.cmake
POST_BUILD
COMMAND ${eol2unix_EXECUTABLE} ${outFile}
COMMENT "Creating (with unix eol) ${outFile}"
)
endfunction()
else( CONVERT_EOL )
function( png2cpp inputFile outFile )
add_custom_command(
OUTPUT ${outFile}
@ -627,8 +599,6 @@ function( png2cpp inputFile outFile )
)
endfunction()
endif(CONVERT_EOL)
# Function bitmap_dir
# converts all the basenames in bmapList found in hardcoded 'sources' dir

View File

@ -8,124 +8,124 @@
static const unsigned char png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
0xce, 0x00, 0x00, 0x07, 0x39, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xbd, 0x96, 0x7b, 0x4c, 0x53,
0x79, 0x16, 0xc7, 0xbb, 0x8e, 0x3b, 0x31, 0x71, 0xb2, 0xf3, 0xcf, 0x26, 0xbb, 0x26, 0x33, 0x09,
0x4e, 0x8c, 0xbb, 0x59, 0x35, 0xbe, 0xe2, 0x38, 0x31, 0x71, 0xc6, 0xa8, 0x19, 0x75, 0x13, 0xcd,
0x4e, 0x5c, 0x8d, 0x6f, 0x0d, 0xa2, 0x46, 0xa3, 0x6b, 0xcc, 0xaa, 0xa3, 0xa2, 0xc0, 0xaa, 0xa8,
0xc4, 0xc0, 0x28, 0x3b, 0xc8, 0x5b, 0x1e, 0x03, 0x15, 0x28, 0xef, 0x37, 0x7d, 0xd9, 0x22, 0x2d,
0x85, 0x02, 0xad, 0xa5, 0x2f, 0x4a, 0x29, 0xa5, 0x2d, 0x8f, 0xb6, 0x20, 0xb4, 0xe5, 0xd2, 0xc7,
0xbd, 0xf7, 0x77, 0xf6, 0x5c, 0x22, 0x04, 0xd6, 0xcd, 0x66, 0x77, 0x27, 0xd9, 0x9b, 0x7c, 0x93,
0x7b, 0xfb, 0xbb, 0xf9, 0x7d, 0x7a, 0xce, 0xf9, 0x9e, 0x73, 0x7f, 0x3c, 0x00, 0xe0, 0xfd, 0x3f,
0xf4, 0xc1, 0x0f, 0xe7, 0xcf, 0x9f, 0x4f, 0xba, 0x75, 0xeb, 0x56, 0xfd, 0xb1, 0x63, 0xc7, 0x12,
0xf6, 0xec, 0xd9, 0xf3, 0xe5, 0xe6, 0xcd, 0x9b, 0x7f, 0xb9, 0x63, 0xc7, 0x8e, 0xa5, 0x97, 0x2f,
0x5f, 0xe6, 0x9f, 0x39, 0x73, 0xe6, 0xd9, 0xee, 0xdd, 0xbb, 0x3f, 0xfd, 0xd9, 0x20, 0xdc, 0xf0,
0x93, 0xba, 0xba, 0x3a, 0x13, 0xde, 0x77, 0xf8, 0xfd, 0x7e, 0xbd, 0xd1, 0x68, 0xb4, 0x94, 0x95,
0x95, 0xf5, 0xde, 0xbb, 0x77, 0xaf, 0xef, 0xf9, 0xf3, 0xe7, 0x53, 0x62, 0xb1, 0xd8, 0x5e, 0x5a,
0x5d, 0x6b, 0xaf, 0x94, 0x76, 0x9a, 0xa4, 0xbd, 0x76, 0x91, 0x50, 0x67, 0x7f, 0x29, 0xd6, 0x5a,
0x2f, 0xe0, 0x3b, 0x1f, 0xfd, 0x57, 0xa0, 0xfd, 0xfb, 0xf7, 0x7f, 0xdb, 0xdf, 0xdf, 0x6f, 0xc1,
0xfb, 0x82, 0x98, 0x98, 0x18, 0xcd, 0xb9, 0x73, 0xe7, 0xb4, 0xe5, 0xe5, 0xe5, 0x8a, 0x91, 0x91,
0x91, 0x69, 0xa7, 0x7b, 0x22, 0xa8, 0x32, 0x0f, 0x91, 0x26, 0xfd, 0x28, 0xe1, 0xab, 0x47, 0x49,
0xa6, 0x6c, 0x80, 0xc9, 0x91, 0x5b, 0x7d, 0x95, 0x5d, 0x4e, 0xb7, 0xa4, 0xbb, 0xcf, 0x53, 0xad,
0x32, 0xfd, 0xed, 0x3f, 0x06, 0x61, 0xba, 0x52, 0x28, 0x8a, 0x7a, 0xdb, 0xd3, 0xd3, 0x53, 0x81,
0xd1, 0xd9, 0xe2, 0xe2, 0xe2, 0x94, 0xf1, 0xf1, 0xf1, 0x43, 0xb9, 0x7c, 0x01, 0x23, 0x33, 0x0d,
0xb3, 0xf9, 0xea, 0x71, 0xba, 0x54, 0xe7, 0x8b, 0x54, 0x19, 0x02, 0xb4, 0x64, 0x90, 0xa5, 0x9b,
0xfb, 0x29, 0x36, 0xff, 0x8d, 0x83, 0x49, 0x69, 0xd0, 0x4f, 0x0b, 0xde, 0x18, 0x83, 0x3f, 0xd5,
0xbe, 0x36, 0xec, 0xda, 0xb5, 0x6b, 0xf5, 0xbf, 0x04, 0x9d, 0x3d, 0x7b, 0xf6, 0xfb, 0xac, 0xac,
0xac, 0xae, 0x9c, 0x9c, 0x1c, 0x75, 0x7a, 0x7a, 0xba, 0x0f, 0x23, 0xf0, 0xa7, 0xa6, 0xa6, 0x52,
0xb1, 0xb1, 0xb1, 0x70, 0xf7, 0xee, 0x5d, 0x48, 0x4e, 0x79, 0x46, 0x5a, 0xd4, 0x66, 0x48, 0x93,
0x39, 0xc9, 0x0b, 0xa1, 0x09, 0x32, 0xa5, 0x56, 0x92, 0x21, 0x34, 0x92, 0x7c, 0x59, 0x1f, 0xe1,
0x2b, 0x6c, 0x4c, 0x49, 0xbb, 0x8d, 0xcd, 0x68, 0xe9, 0x25, 0xf5, 0x86, 0x49, 0xba, 0x56, 0xd5,
0xc7, 0xd4, 0x8a, 0x94, 0xfe, 0xc3, 0x87, 0x0f, 0xff, 0xe5, 0x03, 0xd0, 0x93, 0x27, 0x4f, 0xc4,
0x78, 0x63, 0xf4, 0xf9, 0x7c, 0x7a, 0x93, 0xc9, 0x14, 0x72, 0xb9, 0x5c, 0x81, 0xae, 0xae, 0x2e,
0x5a, 0xab, 0xd5, 0x02, 0x27, 0x91, 0xb2, 0x07, 0x2a, 0x7b, 0xfd, 0xa4, 0xc6, 0x18, 0x80, 0xe6,
0x81, 0x10, 0x34, 0x9b, 0x7d, 0xf0, 0xc6, 0x1e, 0x84, 0x56, 0xab, 0x1f, 0xba, 0xdd, 0xc0, 0x74,
0x0d, 0x87, 0x48, 0xbd, 0xc6, 0xc5, 0x0a, 0x4d, 0xef, 0x82, 0x52, 0x2b, 0x15, 0xa9, 0x14, 0x2a,
0xc9, 0xd1, 0xa3, 0x47, 0x0b, 0x3e, 0x00, 0x3d, 0x7e, 0xfc, 0x58, 0x82, 0x37, 0x3a, 0x04, 0xd8,
0x3b, 0x3a, 0x3a, 0xe8, 0xce, 0xce, 0x4e, 0x4a, 0x20, 0x10, 0x90, 0xfa, 0xfa, 0x7a, 0x68, 0x6b,
0x6b, 0x83, 0x86, 0xd6, 0x6e, 0x28, 0x33, 0x04, 0x49, 0xae, 0x6c, 0x00, 0x64, 0x03, 0x14, 0x08,
0x4d, 0x93, 0x20, 0x34, 0x78, 0xa0, 0x45, 0x37, 0x02, 0x6f, 0x3d, 0x84, 0xe9, 0x1c, 0x0a, 0x80,
0x58, 0x3f, 0xca, 0x56, 0xa9, 0x2c, 0xc1, 0x1e, 0x37, 0xf8, 0x6a, 0x5a, 0x7b, 0xc9, 0x4f, 0x82,
0xba, 0xc9, 0xab, 0x57, 0xaf, 0xd6, 0xed, 0xdb, 0xb7, 0xef, 0x0f, 0xf3, 0xa0, 0x47, 0x8f, 0x1e,
0xcd, 0x82, 0x6a, 0x6b, 0x6b, 0xa7, 0xd1, 0x59, 0x04, 0xc5, 0x66, 0x67, 0x67, 0x43, 0x55, 0x55,
0x15, 0xe0, 0x6f, 0x50, 0x27, 0xeb, 0x82, 0x97, 0x8a, 0x61, 0x68, 0x30, 0xf9, 0xa1, 0x50, 0xa2,
0x07, 0x85, 0xcd, 0x0f, 0x62, 0x83, 0x9b, 0x08, 0x75, 0x2e, 0xe8, 0x9f, 0x04, 0xa6, 0x7b, 0xc8,
0x07, 0x9d, 0x03, 0xe3, 0x6c, 0x73, 0xa7, 0x25, 0x82, 0xcf, 0xfe, 0x06, 0x95, 0x89, 0x29, 0x6f,
0x90, 0x8f, 0xd1, 0x34, 0xdd, 0xd9, 0xda, 0xda, 0x6a, 0xbe, 0x78, 0xf1, 0x62, 0x09, 0xd6, 0xfb,
0xb3, 0x79, 0x10, 0x5a, 0x34, 0xf2, 0xf0, 0xe1, 0x43, 0xe0, 0x94, 0x98, 0x98, 0x38, 0x0b, 0xca,
0xcf, 0xcf, 0x87, 0x1a, 0x71, 0x3b, 0xe4, 0xb5, 0x39, 0xa0, 0xc9, 0xe4, 0x83, 0xa2, 0xd7, 0x06,
0x50, 0x0c, 0x06, 0xc8, 0x6b, 0xc3, 0x28, 0x51, 0xf4, 0xb9, 0xc9, 0xe0, 0x14, 0x30, 0xc6, 0x11,
0x3f, 0x18, 0x9c, 0x93, 0x6c, 0xbb, 0xc1, 0x11, 0x71, 0x06, 0xd8, 0x99, 0xc6, 0x36, 0x2d, 0x9d,
0xf8, 0x34, 0xdd, 0xcf, 0x39, 0x17, 0x55, 0x16, 0x0a, 0x85, 0x74, 0x0f, 0x1e, 0x3c, 0xe8, 0xe4,
0xe1, 0xc6, 0xb3, 0xa0, 0x8a, 0x8a, 0x0a, 0x66, 0x0e, 0xc4, 0x09, 0xd3, 0x07, 0xc5, 0xc5, 0xc5,
0x50, 0x51, 0x2f, 0x81, 0x32, 0x95, 0x1d, 0xe4, 0x83, 0x41, 0xe0, 0xcb, 0xf4, 0xa0, 0xb4, 0x4e,
0x82, 0x54, 0x37, 0x04, 0x6a, 0xeb, 0x18, 0x0c, 0x78, 0x67, 0xc8, 0xd0, 0xc4, 0x0c, 0xb1, 0xb9,
0xfd, 0xac, 0x6e, 0xc0, 0x45, 0x7b, 0x28, 0x36, 0x5c, 0x23, 0x52, 0x30, 0x99, 0xb9, 0xfc, 0x81,
0xf7, 0xa0, 0x82, 0x70, 0x38, 0xdc, 0x75, 0xe1, 0xc2, 0x85, 0xea, 0x59, 0x50, 0x24, 0x12, 0x31,
0x57, 0x56, 0x56, 0xb2, 0xff, 0x0c, 0xe2, 0xf3, 0xf9, 0x50, 0x5b, 0xd7, 0x08, 0xaf, 0x1a, 0xda,
0x40, 0xd2, 0xef, 0x07, 0xfe, 0xeb, 0x5e, 0xd0, 0x38, 0xfd, 0xd0, 0xa6, 0x1f, 0x02, 0xf3, 0xc8,
0x14, 0xb1, 0x7b, 0xa7, 0xc1, 0x35, 0x49, 0x81, 0x6b, 0x22, 0x40, 0x5c, 0x13, 0xfe, 0xf0, 0xd8,
0xd4, 0x0c, 0x93, 0x96, 0x51, 0x44, 0x02, 0x81, 0x00, 0xff, 0x3d, 0x48, 0x20, 0x12, 0x89, 0x4c,
0x98, 0xba, 0xdf, 0xcf, 0x82, 0x70, 0xc1, 0x59, 0x5d, 0x5d, 0xcd, 0x5e, 0xb9, 0x72, 0x05, 0x4e,
0x9f, 0x3e, 0x0d, 0xd8, 0x4f, 0x70, 0xff, 0xfe, 0x7d, 0x48, 0x4b, 0x4b, 0x03, 0xce, 0x14, 0x29,
0xa9, 0x59, 0x50, 0x2e, 0x52, 0x43, 0x99, 0xdc, 0x08, 0x72, 0x1d, 0x46, 0xa7, 0xb1, 0x80, 0xda,
0x38, 0x08, 0x0e, 0xaf, 0x1f, 0xbc, 0x81, 0x10, 0xb8, 0x7d, 0xd3, 0x30, 0x1e, 0x98, 0xa1, 0x6b,
0x9a, 0x64, 0xe4, 0xc7, 0xb4, 0x3c, 0xc7, 0x5c, 0x34, 0xd8, 0x93, 0x1a, 0x1c, 0x5b, 0x25, 0xb3,
0x66, 0xe0, 0x40, 0xd8, 0xf9, 0xe3, 0x38, 0xcb, 0xc2, 0x3c, 0xec, 0xdf, 0x39, 0xad, 0x5c, 0xb9,
0x12, 0x56, 0xaf, 0x5e, 0x0d, 0x68, 0x79, 0xc0, 0x26, 0x84, 0xd2, 0x8a, 0x06, 0xc8, 0x7b, 0x55,
0x0f, 0x0a, 0xa3, 0x8b, 0x74, 0x5b, 0x5c, 0xa0, 0xb7, 0x0d, 0x23, 0x68, 0x12, 0x26, 0xa8, 0x10,
0xd8, 0x47, 0x3c, 0x50, 0x58, 0x54, 0x85, 0x99, 0x48, 0x26, 0x2c, 0xcb, 0x16, 0xbc, 0x07, 0x55,
0xe2, 0x38, 0x33, 0x62, 0x34, 0x51, 0xf3, 0xa0, 0xe1, 0xe1, 0x61, 0xdf, 0xc9, 0x93, 0x27, 0xa9,
0x85, 0x20, 0x0e, 0xb2, 0x71, 0xe3, 0x46, 0x28, 0x2a, 0x2a, 0x82, 0xa8, 0xa8, 0x28, 0x68, 0x69,
0x69, 0x61, 0xf6, 0xee, 0xfd, 0x23, 0x9b, 0x95, 0xfb, 0x8a, 0x49, 0xcf, 0x29, 0x21, 0x99, 0x39,
0xa5, 0x50, 0x50, 0x54, 0x4d, 0x5e, 0x64, 0x14, 0x43, 0x56, 0xf6, 0x2b, 0x68, 0x12, 0xca, 0x21,
0xe5, 0x59, 0x26, 0x6b, 0xb3, 0xd9, 0xca, 0x38, 0x10, 0x66, 0x49, 0x87, 0xfd, 0x94, 0x3f, 0x6f,
0x6f, 0x4c, 0x91, 0x6c, 0x62, 0x62, 0x82, 0x3a, 0x71, 0xe2, 0xc4, 0x22, 0xd0, 0xa6, 0x4d, 0x9b,
0x00, 0xd3, 0x39, 0x2b, 0x8c, 0x8a, 0x14, 0x16, 0x16, 0xc2, 0xd4, 0xd4, 0x54, 0x10, 0xdd, 0xc9,
0xea, 0x74, 0xba, 0x10, 0x1a, 0x25, 0x14, 0x77, 0x37, 0x3e, 0x52, 0xdf, 0xd0, 0x1c, 0x91, 0x29,
0xd4, 0xd0, 0xdd, 0x6b, 0x80, 0x94, 0x1f, 0xb2, 0xd9, 0x7e, 0x7d, 0x47, 0x53, 0xc8, 0xab, 0x11,
0x97, 0x96, 0x96, 0x1a, 0xb6, 0x6f, 0xdf, 0xbe, 0x62, 0x1e, 0x84, 0xf3, 0x4c, 0x33, 0x83, 0xd7,
0xf1, 0xe3, 0xc7, 0xe9, 0x85, 0xa0, 0x2d, 0x5b, 0xb6, 0x90, 0xcc, 0xcc, 0x4c, 0x22, 0x14, 0x0a,
0x09, 0x3a, 0x92, 0x6d, 0x6c, 0x6c, 0x24, 0x16, 0x8b, 0x85, 0xca, 0xcb, 0xcb, 0x03, 0xb3, 0xd9,
0x1c, 0x4e, 0x4a, 0x4a, 0x62, 0xef, 0xdc, 0xb9, 0xc3, 0xda, 0xed, 0x76, 0x0a, 0x1b, 0x3b, 0x52,
0x5c, 0x54, 0x0c, 0x4a, 0xfe, 0x25, 0x70, 0xe6, 0x7c, 0x0e, 0x7d, 0xcf, 0x7e, 0xc3, 0x1c, 0xfa,
0xf3, 0x9f, 0x32, 0x17, 0x4d, 0x06, 0x7c, 0xd9, 0x89, 0x79, 0x0d, 0x20, 0x28, 0xb2, 0x10, 0xb4,
0x76, 0xed, 0x5a, 0xc2, 0xa5, 0xaf, 0xaf, 0xaf, 0x2f, 0xbc, 0x64, 0xc9, 0x12, 0x2e, 0x32, 0x76,
0xd5, 0xaa, 0x55, 0xdc, 0xfc, 0x23, 0x18, 0x3d, 0xa6, 0x71, 0x2f, 0x5c, 0xbb, 0x76, 0x8d, 0x60,
0xc1, 0x29, 0x95, 0xbc, 0x81, 0xd1, 0x65, 0x6f, 0x04, 0x26, 0x60, 0x07, 0xd0, 0x46, 0xc3, 0xbb,
0x8c, 0x5f, 0x83, 0x2a, 0x61, 0xe9, 0xfd, 0x45, 0x20, 0xfc, 0xd6, 0x78, 0x11, 0x44, 0x61, 0x8d,
0x66, 0x16, 0x82, 0xd6, 0xad, 0x5b, 0x47, 0xb6, 0x6e, 0xdd, 0xca, 0x4c, 0xe3, 0xb5, 0x62, 0xc5,
0x0a, 0xce, 0xb2, 0x01, 0xac, 0x19, 0x41, 0x27, 0x72, 0xee, 0x64, 0xd7, 0xaf, 0x5f, 0x4f, 0xb0,
0xbe, 0x8c, 0x5a, 0xad, 0x26, 0x4a, 0xa5, 0x92, 0x54, 0xc4, 0x7e, 0xc1, 0x86, 0x1c, 0x02, 0x00,
0x4f, 0x0b, 0xd0, 0x92, 0x1d, 0x60, 0x4b, 0xe4, 0x45, 0xde, 0x26, 0xf1, 0x3e, 0x9b, 0x07, 0x25,
0x24, 0x24, 0xb4, 0x39, 0x9d, 0x4e, 0xc7, 0x81, 0x03, 0x07, 0xe6, 0x6b, 0xb4, 0x6c, 0xd9, 0x32,
0x72, 0xf0, 0xe0, 0x41, 0x16, 0xeb, 0x44, 0x70, 0x53, 0x1a, 0x37, 0x65, 0x38, 0x57, 0x6e, 0xd8,
0xb0, 0x81, 0x3d, 0x72, 0xe4, 0x08, 0x83, 0x6b, 0x04, 0xdd, 0x44, 0xf0, 0xcf, 0x31, 0xed, 0xed,
0xed, 0xac, 0x46, 0xa3, 0x21, 0x37, 0xaf, 0x9e, 0xb5, 0x99, 0x5f, 0xae, 0x65, 0xd9, 0x90, 0x07,
0xa0, 0x3f, 0x11, 0x66, 0x4a, 0x7e, 0x07, 0x9a, 0x04, 0x9e, 0x7c, 0xa1, 0x19, 0xb8, 0xc9, 0x20,
0x91, 0xc9, 0x64, 0x35, 0x38, 0x97, 0x7a, 0xb0, 0x8b, 0xcd, 0x37, 0x6e, 0xdc, 0x70, 0xe2, 0xe7,
0xc3, 0x57, 0x50, 0x50, 0x10, 0x72, 0xbb, 0xdd, 0xcc, 0xa5, 0x4b, 0x97, 0x08, 0xbe, 0x13, 0x96,
0x48, 0x24, 0x21, 0x4c, 0x5d, 0x18, 0xeb, 0x12, 0xe2, 0x0c, 0x81, 0xb3, 0x2c, 0x6c, 0xb5, 0x5a,
0x69, 0x9c, 0xf6, 0x04, 0xc7, 0xd5, 0x9b, 0xa6, 0x8c, 0x98, 0xf1, 0x77, 0xaa, 0xeb, 0x00, 0x14,
0x0e, 0x06, 0xf5, 0x77, 0x30, 0x9a, 0xb2, 0x1c, 0x94, 0x71, 0xbc, 0xef, 0x16, 0x81, 0x0c, 0x06,
0x83, 0x20, 0x3a, 0x3a, 0x5a, 0x3b, 0x27, 0x74, 0x4d, 0x33, 0x67, 0x53, 0xaf, 0xd7, 0x5b, 0x87,
0x73, 0x6f, 0x0c, 0x37, 0xe3, 0x36, 0x65, 0xb0, 0x56, 0xcc, 0xed, 0xdb, 0xb7, 0x59, 0x3c, 0x57,
0x10, 0x14, 0x67, 0x86, 0xa0, 0x4a, 0xa5, 0x62, 0x71, 0xbd, 0x23, 0x3e, 0x2e, 0xae, 0x57, 0x7c,
0x6f, 0xb9, 0x9d, 0xf6, 0x60, 0x20, 0xc3, 0x25, 0x10, 0x6e, 0xdc, 0x0a, 0xbd, 0x71, 0xbf, 0xf0,
0xb5, 0x5c, 0xe7, 0x2d, 0xe7, 0x6a, 0x24, 0xc5, 0x0d, 0x35, 0x1c, 0xec, 0xdf, 0x09, 0xa7, 0xb1,
0x1c, 0x53, 0xec, 0x1c, 0x1b, 0x1b, 0xa3, 0x10, 0x1e, 0x74, 0x38, 0x1c, 0x41, 0x7c, 0x8c, 0x8c,
0x8e, 0x8e, 0x12, 0x74, 0x1d, 0x2d, 0x95, 0x4a, 0xed, 0x68, 0x90, 0x5b, 0xe7, 0xbe, 0xe1, 0xed,
0xeb, 0x2f, 0xf9, 0x9a, 0xcb, 0x00, 0x80, 0xe1, 0xaf, 0x30, 0xf2, 0xe2, 0xb7, 0x50, 0x75, 0xf3,
0xd3, 0x47, 0x3c, 0xcc, 0x77, 0x34, 0x46, 0x25, 0xc2, 0x89, 0x2d, 0xe4, 0x84, 0x05, 0x5e, 0x24,
0x5c, 0x5b, 0x24, 0x6c, 0x07, 0x19, 0x46, 0x34, 0x9c, 0x9c, 0x9c, 0x3c, 0x9d, 0x9b, 0x9b, 0xeb,
0xc3, 0xaf, 0xb2, 0xfb, 0xe9, 0xd3, 0xa7, 0x1e, 0xfc, 0x22, 0x6b, 0xd7, 0xac, 0x59, 0xf3, 0x31,
0xd6, 0xf8, 0xe3, 0x97, 0x31, 0xbc, 0xd2, 0x31, 0x45, 0x2c, 0xa8, 0x0b, 0x4f, 0x42, 0xc9, 0xdf,
0x6f, 0x42, 0xec, 0xcd, 0xd8, 0xf3, 0xff, 0xf3, 0x39, 0x0d, 0xfb, 0xec, 0x8b, 0x53, 0xa7, 0x4e,
0x09, 0xe4, 0x72, 0xb9, 0x09, 0xeb, 0x65, 0xc5, 0x63, 0xd8, 0xe5, 0xb9, 0xb5, 0xaf, 0xa2, 0x78,
0x51, 0x3f, 0x5e, 0xff, 0xba, 0xbc, 0x49, 0x28, 0x9c, 0xf8, 0x21, 0x35, 0xad, 0x1b, 0x0d, 0xb7,
0xec, 0x67, 0x1f, 0x0c, 0xb7, 0x6d, 0xdb, 0xb6, 0x61, 0xe7, 0xce, 0x9d, 0x31, 0x87, 0x0e, 0x1d,
0x5a, 0x74, 0xe4, 0xc2, 0xeb, 0x23, 0xd4, 0xaf, 0x50, 0x4b, 0xb9, 0xe7, 0x7f, 0x00, 0x20, 0xc3,
0x6d, 0x47, 0xb5, 0x30, 0xbb, 0xf2, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42,
0x60, 0x82,
0xce, 0x00, 0x00, 0x07, 0x3f, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0xbd, 0x96, 0x7d, 0x4c, 0x53,
0xfb, 0x19, 0xc7, 0x3b, 0xaf, 0xbb, 0x31, 0xbb, 0xcb, 0xee, 0x3f, 0xcb, 0x32, 0x93, 0xbb, 0x04,
0x17, 0xe3, 0x96, 0xa9, 0xf1, 0x2d, 0xce, 0xc5, 0xc4, 0x3b, 0xa3, 0x66, 0x4a, 0x16, 0xcd, 0x6e,
0x8c, 0xc6, 0x77, 0x0d, 0xa2, 0x46, 0xa3, 0x33, 0x66, 0xea, 0x54, 0x04, 0x99, 0x8a, 0x4a, 0x9c,
0x78, 0xf5, 0x5e, 0x94, 0x37, 0x11, 0xb8, 0x50, 0x0b, 0xe5, 0xbd, 0x50, 0x69, 0x69, 0xa1, 0x45,
0xda, 0x02, 0x05, 0x5a, 0x5a, 0xfa, 0x42, 0x29, 0xd0, 0x17, 0x0a, 0x6d, 0x01, 0x69, 0x4f, 0x5b,
0xfa, 0x76, 0xce, 0xef, 0xd9, 0x73, 0x88, 0x10, 0x98, 0xcb, 0xb2, 0xed, 0x26, 0x3b, 0xc9, 0x37,
0x39, 0xa7, 0xe7, 0xe4, 0xf7, 0xe9, 0xf3, 0x3c, 0xdf, 0xe7, 0xf9, 0xfd, 0x38, 0x00, 0xc0, 0xf9,
0x7f, 0xe8, 0xa3, 0x1f, 0xce, 0x9e, 0x3d, 0x9b, 0x79, 0xe3, 0xc6, 0x8d, 0x86, 0x23, 0x47, 0x8e,
0xa4, 0xef, 0xde, 0xbd, 0xfb, 0xb7, 0x9b, 0x36, 0x6d, 0xfa, 0xe1, 0xf6, 0xed, 0xdb, 0x97, 0x5e,
0xbc, 0x78, 0x91, 0x7b, 0xea, 0xd4, 0xa9, 0xaf, 0x77, 0xed, 0xda, 0xf5, 0xf9, 0xf7, 0x06, 0xe1,
0x82, 0x3f, 0x16, 0x08, 0x04, 0x26, 0xbc, 0xef, 0xa4, 0x28, 0xaa, 0xdf, 0x68, 0x34, 0x5a, 0x2a,
0x2a, 0x2a, 0xf4, 0xa9, 0xa9, 0xa9, 0x03, 0xcf, 0x9e, 0x3d, 0xf3, 0x49, 0x24, 0x12, 0x5b, 0x45,
0x8d, 0xc0, 0x56, 0xd5, 0xda, 0x65, 0x6a, 0xd5, 0xdb, 0x9b, 0xc5, 0x3a, 0x5b, 0xa1, 0x44, 0x6b,
0x3d, 0x87, 0xdf, 0x7c, 0xf2, 0x5f, 0x81, 0xf6, 0xee, 0xdd, 0xfb, 0x87, 0xc1, 0xc1, 0x41, 0x0b,
0xde, 0x17, 0x27, 0x27, 0x27, 0x6b, 0xce, 0x9c, 0x39, 0xa3, 0xad, 0xac, 0xac, 0x54, 0x8c, 0x8d,
0x8d, 0x05, 0x9d, 0x9e, 0xc9, 0x70, 0x87, 0x69, 0x84, 0x34, 0xe9, 0xdd, 0x84, 0xdb, 0xed, 0x66,
0xf2, 0xe4, 0x43, 0xf1, 0x7c, 0xd9, 0x20, 0x55, 0xdd, 0x3d, 0xea, 0x91, 0xf6, 0x0c, 0x78, 0x6b,
0x3b, 0x4c, 0x7f, 0xfb, 0x8f, 0x41, 0x98, 0xae, 0xac, 0x50, 0x28, 0xd4, 0xd7, 0xdb, 0xdb, 0x5b,
0x85, 0xd1, 0x0d, 0xa7, 0xa5, 0xa5, 0x29, 0xef, 0xdc, 0xb9, 0x63, 0x2f, 0x7c, 0x53, 0x49, 0xcb,
0x8c, 0xa3, 0x4c, 0x89, 0x7a, 0x2a, 0xce, 0xd7, 0xf9, 0x63, 0x75, 0x86, 0x60, 0x5c, 0x62, 0xa3,
0xe3, 0x4d, 0xd6, 0x10, 0x5d, 0xd4, 0xee, 0xa0, 0xb3, 0x1a, 0xfb, 0x83, 0xfc, 0x77, 0xa6, 0x70,
0x49, 0x6d, 0xab, 0x71, 0xe7, 0xce, 0x9d, 0xab, 0xfe, 0x25, 0xe8, 0xf4, 0xe9, 0xd3, 0x7f, 0xcd,
0xcb, 0xcb, 0xeb, 0x2e, 0x28, 0x28, 0x50, 0xbf, 0x7c, 0xf9, 0xd2, 0x8f, 0x11, 0x50, 0xcf, 0x9f,
0x3f, 0x0f, 0xa5, 0xa4, 0xa4, 0xc0, 0xed, 0xdb, 0xb7, 0xe1, 0xef, 0x59, 0x59, 0x44, 0xdc, 0x6d,
0x86, 0x17, 0xf2, 0x51, 0x92, 0x2d, 0x36, 0x43, 0x5e, 0xcb, 0x10, 0xc9, 0x11, 0x1b, 0x49, 0x91,
0xcc, 0x42, 0xde, 0x28, 0x46, 0xe8, 0x72, 0xd5, 0x30, 0x93, 0xd3, 0xa4, 0x27, 0x0d, 0x06, 0x5f,
0xac, 0x5e, 0x65, 0xa1, 0xeb, 0x9a, 0x95, 0xd4, 0xc1, 0x83, 0x07, 0xff, 0xfc, 0x11, 0xe8, 0xd1,
0xa3, 0x47, 0x12, 0xbc, 0x31, 0xfa, 0xfd, 0xfe, 0x7e, 0x93, 0xc9, 0x14, 0x19, 0x1d, 0x1d, 0x0d,
0x74, 0x77, 0x77, 0xc7, 0xb5, 0x5a, 0x2d, 0xb0, 0x6a, 0x56, 0xf6, 0x42, 0xb5, 0x9e, 0x22, 0xf5,
0xc6, 0x20, 0x11, 0x0d, 0x85, 0xa1, 0xc9, 0xe4, 0x83, 0x76, 0x7b, 0x98, 0xb4, 0x59, 0x29, 0xd2,
0xeb, 0x01, 0xba, 0x67, 0x2c, 0xca, 0x08, 0xb4, 0x2e, 0x46, 0x64, 0x7a, 0x1f, 0x6e, 0xb5, 0x86,
0x62, 0xd5, 0x62, 0x15, 0x39, 0x7c, 0xf8, 0x70, 0xd1, 0x47, 0xa0, 0x87, 0x0f, 0x1f, 0x4a, 0xf1,
0x46, 0x87, 0x00, 0x5b, 0x67, 0x67, 0x67, 0xbc, 0xab, 0xab, 0x2b, 0xc4, 0xe7, 0xf3, 0x49, 0x43,
0x43, 0x03, 0xb4, 0xb7, 0xb7, 0x43, 0x63, 0x5b, 0x0f, 0xf0, 0x8d, 0x11, 0x52, 0x20, 0xb3, 0x82,
0x6c, 0x38, 0x04, 0x62, 0xf3, 0x34, 0x88, 0x0d, 0x5e, 0x10, 0xe9, 0xc7, 0x49, 0x9f, 0x97, 0xd0,
0x6a, 0x47, 0x90, 0x48, 0xfa, 0xdd, 0x4c, 0xb5, 0xca, 0x12, 0xd6, 0x78, 0xc1, 0x57, 0xf7, 0x4e,
0x4f, 0xbe, 0xe3, 0x0b, 0xa6, 0x2f, 0x5f, 0xbe, 0x2c, 0x48, 0x4c, 0x4c, 0xfc, 0xcd, 0x3c, 0xe8,
0xc1, 0x83, 0x07, 0xb3, 0xa0, 0xfa, 0xfa, 0xfa, 0x20, 0x3a, 0x8b, 0xa0, 0x98, 0xfc, 0xfc, 0x7c,
0xa8, 0xa9, 0xa9, 0x01, 0x74, 0x20, 0x08, 0x64, 0x3d, 0x50, 0xa8, 0x74, 0x41, 0xa3, 0x89, 0x82,
0x12, 0x69, 0x3f, 0x28, 0x47, 0x28, 0x90, 0x1a, 0x3d, 0xa4, 0x59, 0x37, 0x0a, 0xd6, 0x69, 0xa0,
0x7b, 0x1d, 0x7e, 0xa2, 0x1e, 0x9a, 0x62, 0x44, 0x5d, 0x03, 0xb1, 0xc1, 0x69, 0xa0, 0x1a, 0x55,
0x26, 0x9a, 0xdf, 0x20, 0x77, 0xc7, 0xe3, 0xf1, 0xae, 0xb6, 0xb6, 0x36, 0xf3, 0xf9, 0xf3, 0xe7,
0x79, 0x58, 0xef, 0x2f, 0xe6, 0x41, 0x68, 0xd1, 0xd8, 0xfd, 0xfb, 0xf7, 0x81, 0x55, 0x46, 0x46,
0xc6, 0x2c, 0xa8, 0xa8, 0xa8, 0x08, 0xea, 0x24, 0x1d, 0x50, 0xd8, 0xee, 0x80, 0x26, 0x33, 0x05,
0xa5, 0xad, 0x06, 0x50, 0xd9, 0x82, 0xa4, 0xc5, 0x30, 0x4e, 0x14, 0x03, 0x1e, 0x62, 0xf3, 0x03,
0x6d, 0x1a, 0xa7, 0x88, 0x71, 0xd4, 0xc7, 0xa8, 0x8c, 0xf6, 0x98, 0x93, 0x62, 0xc2, 0xc2, 0xf6,
0xbe, 0x78, 0xc6, 0xe3, 0x97, 0x14, 0xeb, 0x5c, 0x54, 0x45, 0x24, 0x12, 0xd1, 0xdd, 0xbb, 0x77,
0xaf, 0x8b, 0x83, 0x0b, 0xcf, 0x82, 0xaa, 0xaa, 0xaa, 0xe8, 0x39, 0x10, 0x2b, 0x4c, 0x1f, 0x94,
0x95, 0x95, 0x01, 0x5f, 0x20, 0x81, 0x8a, 0x0e, 0x1b, 0xc8, 0x46, 0xc2, 0xc0, 0x95, 0xf5, 0x83,
0x62, 0xe8, 0x3d, 0xb4, 0xea, 0xec, 0xd0, 0x6d, 0x75, 0x93, 0xa1, 0x89, 0x19, 0x62, 0x9f, 0x9a,
0x21, 0x23, 0x5e, 0x8a, 0xe9, 0x1b, 0x72, 0xc5, 0x27, 0x66, 0x98, 0x68, 0xad, 0x48, 0xc1, 0xe4,
0x16, 0x94, 0x0d, 0x7f, 0x00, 0x15, 0x47, 0xa3, 0xd1, 0xee, 0x73, 0xe7, 0xce, 0xd5, 0xce, 0x82,
0x62, 0xb1, 0x98, 0xb9, 0xba, 0xba, 0x9a, 0xf9, 0x67, 0x10, 0x97, 0xcb, 0x05, 0x41, 0xc3, 0x5b,
0xe0, 0x09, 0x15, 0x20, 0xb5, 0x04, 0x80, 0xdb, 0xaa, 0x03, 0x8d, 0x93, 0x22, 0xed, 0xfd, 0x76,
0x30, 0x8f, 0xf9, 0x88, 0x7d, 0x32, 0x08, 0xae, 0xe9, 0x10, 0x19, 0x9d, 0x0a, 0xa0, 0xa8, 0xa8,
0xdb, 0x3f, 0x43, 0x67, 0xe7, 0x96, 0x31, 0x7e, 0x7f, 0x80, 0xfb, 0x01, 0xc4, 0x6f, 0x6e, 0x6e,
0x36, 0x61, 0xea, 0x7e, 0x3d, 0x0b, 0x0a, 0x04, 0x02, 0xce, 0xda, 0xda, 0x5a, 0xe6, 0xd2, 0xa5,
0x4b, 0x70, 0xf2, 0xe4, 0x49, 0xc0, 0x7e, 0x82, 0xbb, 0x77, 0xef, 0x42, 0x76, 0x76, 0x36, 0xb0,
0xa6, 0x78, 0xfa, 0x4d, 0x3e, 0x54, 0x36, 0xab, 0xa1, 0x42, 0x6e, 0x00, 0x99, 0xce, 0x06, 0x72,
0x8d, 0x05, 0xba, 0x8c, 0x23, 0xe0, 0x98, 0xa4, 0x60, 0x22, 0x10, 0x06, 0x8f, 0x2f, 0x00, 0x93,
0x81, 0x99, 0xb8, 0xa0, 0x49, 0x46, 0xbe, 0xcd, 0x2e, 0x72, 0xce, 0x45, 0x83, 0x3d, 0xa9, 0xc1,
0xb1, 0xc5, 0x9b, 0x35, 0x03, 0x0b, 0xc2, 0xce, 0x9f, 0xc4, 0x59, 0x16, 0xe5, 0x60, 0xff, 0xce,
0x69, 0xc5, 0x8a, 0x15, 0xb0, 0x6a, 0xd5, 0x2a, 0x40, 0xcb, 0x03, 0x36, 0x21, 0x54, 0x54, 0x09,
0xc9, 0x2b, 0x6e, 0x03, 0x28, 0xb1, 0x71, 0x7b, 0x2c, 0x2e, 0xd2, 0x3f, 0xe2, 0x02, 0x87, 0x77,
0x1a, 0xa6, 0x42, 0x61, 0x18, 0x19, 0xf3, 0x92, 0xef, 0x4a, 0x6b, 0xe0, 0x7e, 0x46, 0x16, 0x83,
0x57, 0xf1, 0x07, 0x50, 0x35, 0x9a, 0xc9, 0x88, 0xd1, 0x24, 0xcc, 0x83, 0x5c, 0x2e, 0x97, 0xff,
0xf8, 0xf1, 0xe3, 0xa1, 0x85, 0x20, 0x16, 0xb2, 0x61, 0xc3, 0x06, 0x28, 0x2d, 0x2d, 0x85, 0x84,
0x84, 0x04, 0x10, 0x89, 0x44, 0x74, 0x62, 0xe2, 0x1f, 0xe9, 0xbc, 0x02, 0x1e, 0x9d, 0x53, 0xc0,
0x23, 0xb9, 0x05, 0xe5, 0x50, 0x54, 0x5a, 0x0b, 0x2f, 0x72, 0xcb, 0x20, 0x2f, 0xff, 0x0d, 0x08,
0x45, 0x72, 0x78, 0xfa, 0x75, 0x0e, 0x33, 0x3c, 0x3c, 0x5c, 0xc1, 0x82, 0x30, 0x4b, 0xba, 0x85,
0xfd, 0xc4, 0xc1, 0x14, 0xc9, 0xa6, 0xa6, 0xa6, 0x42, 0xc7, 0x8e, 0x1d, 0x5b, 0x04, 0xda, 0xb8,
0x71, 0x23, 0x60, 0x3a, 0x67, 0x85, 0x51, 0x91, 0x92, 0x92, 0x12, 0xf0, 0xf9, 0x7c, 0x61, 0x74,
0x27, 0xd3, 0xd7, 0xd7, 0x17, 0xe1, 0x72, 0xdf, 0x44, 0x52, 0x53, 0xd3, 0x62, 0x8d, 0x42, 0x51,
0x4c, 0xae, 0x54, 0x93, 0x1e, 0xbd, 0x11, 0x41, 0x79, 0xcc, 0x60, 0x7f, 0xd7, 0xdb, 0x88, 0x47,
0x2b, 0x29, 0x2f, 0x2f, 0x37, 0x6c, 0xdb, 0xb6, 0x6d, 0xf9, 0x3c, 0x08, 0xe7, 0x99, 0x66, 0x06,
0xaf, 0xa3, 0x47, 0x8f, 0xc6, 0x17, 0x82, 0x36, 0x6f, 0xde, 0x4c, 0x72, 0x73, 0x73, 0x89, 0x58,
0x2c, 0x26, 0xe8, 0x48, 0x46, 0x28, 0x14, 0x12, 0x8b, 0xc5, 0x12, 0x7a, 0xfd, 0xfa, 0x35, 0x98,
0xcd, 0xe6, 0x68, 0x66, 0x66, 0x26, 0x73, 0xeb, 0xd6, 0x2d, 0xc6, 0x6e, 0xb7, 0x87, 0x14, 0x0a,
0x45, 0xac, 0xb4, 0xb4, 0x8c, 0x28, 0xb9, 0x17, 0xc0, 0x59, 0xf0, 0x0b, 0x18, 0xc8, 0xfa, 0x19,
0x7d, 0x60, 0xff, 0x9f, 0x72, 0x17, 0x4d, 0x06, 0xfc, 0xd8, 0x89, 0x79, 0x0d, 0x20, 0x28, 0xb6,
0x10, 0xb4, 0x66, 0xcd, 0x1a, 0xc2, 0xa6, 0x6f, 0x60, 0x60, 0x20, 0xba, 0x64, 0xc9, 0x12, 0x36,
0x32, 0x66, 0xe5, 0xca, 0x95, 0xec, 0xfc, 0x23, 0x18, 0x3d, 0xbd, 0x67, 0xcf, 0x1e, 0xb8, 0x72,
0xe5, 0x0a, 0xc1, 0x82, 0x87, 0x3a, 0xdb, 0x84, 0xb4, 0x2e, 0x7f, 0x03, 0xd0, 0x01, 0x1b, 0x80,
0x36, 0x09, 0xde, 0xe7, 0xfc, 0x14, 0x94, 0xe9, 0x4b, 0xef, 0x2e, 0x02, 0xe1, 0x5e, 0x33, 0x81,
0xa0, 0x10, 0xd6, 0x68, 0x66, 0x21, 0x68, 0xed, 0xda, 0xb5, 0x64, 0xcb, 0x96, 0x2d, 0x74, 0x10,
0xaf, 0xe5, 0xcb, 0x97, 0x13, 0xcc, 0x79, 0x00, 0x6b, 0x46, 0xd0, 0x89, 0xac, 0x3b, 0x99, 0x75,
0xeb, 0xd6, 0x11, 0xac, 0x2f, 0xad, 0x56, 0xab, 0x89, 0x52, 0xa9, 0x24, 0x95, 0x29, 0x2b, 0x98,
0x88, 0x83, 0x0f, 0xe0, 0x15, 0x41, 0x5c, 0xba, 0x1d, 0x86, 0x33, 0x38, 0xb1, 0xbe, 0x4c, 0xce,
0x17, 0xf3, 0xa0, 0xf4, 0xf4, 0xf4, 0x76, 0xa7, 0xd3, 0xe9, 0xd8, 0xb7, 0x6f, 0xdf, 0x7c, 0x8d,
0x96, 0x2d, 0x5b, 0x46, 0xf6, 0xef, 0xdf, 0xcf, 0x60, 0x9d, 0x08, 0x2e, 0x1a, 0xc7, 0x45, 0x69,
0xd6, 0x95, 0xeb, 0xd7, 0xaf, 0x67, 0x0e, 0x1d, 0x3a, 0x44, 0xe3, 0x3b, 0x82, 0x6e, 0x22, 0xf8,
0xe7, 0x68, 0x95, 0x4a, 0xc5, 0x68, 0x34, 0x1a, 0x72, 0xf5, 0xd2, 0xe9, 0x61, 0x73, 0xe1, 0x6a,
0x86, 0x89, 0x78, 0x01, 0x06, 0x33, 0x60, 0x86, 0xf7, 0x2b, 0xd0, 0xa4, 0x73, 0xe4, 0x0b, 0xcd,
0xc0, 0x4e, 0x06, 0xa9, 0x4c, 0x26, 0xab, 0xc3, 0xb9, 0xd4, 0x8b, 0x5d, 0x6c, 0xbe, 0x76, 0xed,
0x9a, 0x13, 0xb7, 0x0f, 0x7f, 0x71, 0x71, 0x71, 0xc4, 0xe3, 0xf1, 0xd0, 0x17, 0x2e, 0x5c, 0x20,
0xf8, 0x4d, 0x54, 0x2a, 0x95, 0x46, 0x30, 0x75, 0x51, 0x9b, 0xcd, 0x16, 0xd1, 0xe9, 0x74, 0x11,
0x9c, 0x65, 0x51, 0xab, 0xd5, 0x1a, 0xc7, 0x69, 0x4f, 0xf0, 0xdb, 0x77, 0x4d, 0x39, 0xc9, 0x93,
0xef, 0x3b, 0xae, 0x02, 0x84, 0x86, 0x00, 0xd4, 0x5f, 0xc1, 0x78, 0xd6, 0x67, 0xa0, 0x4c, 0xe3,
0x7c, 0xb5, 0x08, 0x64, 0x30, 0x18, 0xf8, 0x49, 0x49, 0x49, 0xda, 0x39, 0xa1, 0x6b, 0x9a, 0x58,
0x9b, 0x4e, 0x4c, 0x4c, 0x08, 0x70, 0xee, 0xb9, 0x71, 0x31, 0x76, 0x51, 0x1a, 0x6b, 0x45, 0xdf,
0xbc, 0x79, 0x93, 0xc1, 0x73, 0x05, 0x41, 0x31, 0x08, 0x0d, 0x77, 0x74, 0x74, 0x30, 0xf8, 0xbe,
0x13, 0x37, 0x49, 0xbd, 0x24, 0xf5, 0x47, 0xb6, 0xb8, 0x17, 0x03, 0x71, 0xf1, 0x20, 0x2a, 0xdc,
0x02, 0xfa, 0xb4, 0x1f, 0xf8, 0x45, 0x57, 0x39, 0x9f, 0xb1, 0x35, 0x6a, 0xc1, 0x05, 0x35, 0x2c,
0xec, 0xdf, 0x09, 0xa7, 0xb1, 0x1c, 0x53, 0xec, 0x74, 0xbb, 0xdd, 0x21, 0x84, 0x87, 0x1d, 0x0e,
0x47, 0x18, 0x1f, 0x63, 0xe3, 0xe3, 0xe3, 0x04, 0xb7, 0x93, 0x78, 0x4b, 0x4b, 0x8b, 0x0d, 0x0d,
0x72, 0xe3, 0xcc, 0xef, 0x39, 0x89, 0x83, 0xbc, 0x2f, 0xd9, 0x0c, 0x00, 0x18, 0xfe, 0x02, 0x63,
0x2f, 0x7e, 0x0e, 0x35, 0xd7, 0x3f, 0x7f, 0xc0, 0xc1, 0x7c, 0x27, 0x61, 0x54, 0xcd, 0x38, 0xb1,
0xc5, 0xac, 0xb0, 0xc0, 0x8b, 0x84, 0xef, 0x16, 0x09, 0xdb, 0x41, 0x86, 0x11, 0xb9, 0x9e, 0x3c,
0x79, 0x12, 0x7c, 0xf5, 0xea, 0x95, 0x1f, 0x77, 0x65, 0xcf, 0xe3, 0xc7, 0x8f, 0xbd, 0xb8, 0x23,
0x6b, 0x57, 0xaf, 0x5e, 0xfd, 0x29, 0xd6, 0xf8, 0xd3, 0xc2, 0x64, 0x4e, 0xb9, 0x5b, 0x91, 0x02,
0xea, 0x92, 0xe3, 0xc0, 0xfb, 0xe6, 0x3a, 0xa4, 0x5c, 0x4f, 0x39, 0xfb, 0x3f, 0x9f, 0xd3, 0xb0,
0xcf, 0x7e, 0x79, 0xe2, 0xc4, 0x09, 0xbe, 0x5c, 0x2e, 0x37, 0x61, 0xbd, 0xac, 0x78, 0x0c, 0xbb,
0x38, 0xf7, 0xee, 0x77, 0x09, 0x9c, 0x84, 0x6f, 0xaf, 0x7e, 0x59, 0xf9, 0x56, 0x2c, 0x9e, 0x7a,
0xfa, 0x3c, 0xbb, 0x07, 0x0d, 0xb7, 0xec, 0x7b, 0x1f, 0x0c, 0xb7, 0x6e, 0xdd, 0xba, 0x7e, 0xc7,
0x8e, 0x1d, 0xc9, 0x07, 0x0e, 0x1c, 0x58, 0x74, 0xe4, 0xc2, 0xeb, 0x13, 0xd4, 0x4f, 0x50, 0x4b,
0xd9, 0xe7, 0x7f, 0x00, 0xb6, 0xba, 0x6d, 0x7f, 0x53, 0x45, 0x95, 0x9a, 0x00, 0x00, 0x00, 0x00,
0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
};
const BITMAP_OPAQUE icon_gerbview_small_xpm[1] = {{ png, sizeof( png ), "icon_gerbview_small_xpm" }};

View File

@ -0,0 +1,74 @@
/* Do not modify this file, it was automatically generated by the
* PNG2cpp CMake script, using a *.png file as input.
*/
#include <bitmaps.h>
static const unsigned char png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
0xce, 0x00, 0x00, 0x03, 0x96, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0x9d, 0x56, 0xdf, 0x6b, 0x1c,
0x55, 0x14, 0xfe, 0xce, 0x99, 0x99, 0xed, 0x6e, 0x36, 0xd3, 0x75, 0xd7, 0x92, 0x44, 0x30, 0xa5,
0xd5, 0x56, 0x93, 0x56, 0xa1, 0x6d, 0x04, 0x45, 0x14, 0x8b, 0x10, 0x1a, 0x29, 0x52, 0x91, 0xa2,
0xf5, 0x4d, 0xf0, 0x55, 0xec, 0x8f, 0x07, 0x97, 0x40, 0xeb, 0x8f, 0x8a, 0xa4, 0x55, 0x5f, 0x7c,
0x12, 0x14, 0x91, 0x42, 0x44, 0x7d, 0x51, 0xf0, 0x49, 0xa1, 0xfe, 0x07, 0x62, 0x25, 0x8a, 0x68,
0x43, 0x5b, 0xb6, 0x94, 0x40, 0xd2, 0x26, 0x99, 0x6d, 0x76, 0x76, 0x67, 0x33, 0xb3, 0xf7, 0xf8,
0xb0, 0x33, 0xb3, 0x77, 0x67, 0x67, 0xd7, 0xd4, 0x0b, 0x97, 0x33, 0x73, 0xb9, 0xdc, 0xef, 0x7e,
0xdf, 0xf9, 0xce, 0xbd, 0x97, 0x00, 0xcc, 0x00, 0x98, 0x04, 0xc0, 0x00, 0x14, 0xee, 0xad, 0x51,
0xd8, 0x97, 0x00, 0x5c, 0x16, 0x91, 0xdb, 0x83, 0x26, 0x9f, 0x9a, 0x9f, 0x9f, 0xbf, 0xe6, 0x54,
0xab, 0xea, 0xee, 0xc6, 0x46, 0xab, 0x56, 0xab, 0xa9, 0x9a, 0xeb, 0xaa, 0x7a, 0xbd, 0xae, 0x3c,
0xcf, 0x53, 0x9e, 0xe7, 0xa9, 0x66, 0xb3, 0x19, 0xf7, 0xcd, 0xcd, 0x4d, 0xe5, 0xfb, 0xbe, 0xf2,
0x7d, 0x5f, 0x05, 0x41, 0xa0, 0x1a, 0x8d, 0x86, 0xba, 0xb5, 0xb4, 0xe4, 0x1f, 0x7f, 0xe5, 0xc4,
0x1c, 0x80, 0xed, 0x22, 0x82, 0xb4, 0x6e, 0x02, 0xe0, 0x62, 0xa9, 0x94, 0x63, 0x8a, 0x1b, 0x88,
0x19, 0x4c, 0x04, 0x66, 0x06, 0x11, 0xb5, 0xb7, 0xae, 0xc5, 0xe8, 0x3b, 0xfa, 0x37, 0x88, 0xcc,
0xd9, 0xd9, 0x72, 0xf9, 0x7a, 0xa5, 0x72, 0x83, 0x88, 0x2e, 0x89, 0x48, 0x33, 0xc9, 0x86, 0x01,
0x28, 0x22, 0x92, 0x2d, 0xe9, 0xa4, 0x01, 0xe8, 0x4d, 0x29, 0x05, 0x06, 0xd1, 0x85, 0xb9, 0x0f,
0x3f, 0xdb, 0x3d, 0xb1, 0x7f, 0x9a, 0x88, 0x8c, 0x34, 0xa0, 0x2d, 0x37, 0x91, 0xf4, 0xfd, 0x30,
0x33, 0x36, 0x6a, 0x1b, 0x78, 0x72, 0xea, 0x10, 0xbf, 0xfb, 0xce, 0xb9, 0xef, 0xef, 0x1f, 0x7d,
0x70, 0x2a, 0x1d, 0x48, 0x04, 0x72, 0x8f, 0x8b, 0x47, 0x0c, 0x99, 0x19, 0x99, 0x4c, 0x06, 0x96,
0x69, 0xa1, 0xd1, 0xf0, 0xf0, 0xe2, 0x91, 0x69, 0xeb, 0xf4, 0xec, 0xdb, 0x97, 0xb3, 0x85, 0xc2,
0x5e, 0x7d, 0xae, 0x99, 0x58, 0x15, 0x20, 0x8a, 0xa3, 0x88, 0xf4, 0x95, 0x4b, 0x07, 0x33, 0x4d,
0x13, 0x85, 0xc2, 0x76, 0xdc, 0x59, 0x5d, 0xc5, 0xe4, 0xc4, 0x04, 0x5e, 0x3f, 0xfe, 0xb2, 0xed,
0xf9, 0xf4, 0x13, 0x11, 0x3d, 0x2d, 0x22, 0xcb, 0xbd, 0x40, 0x00, 0x24, 0xf4, 0x6b, 0x14, 0xfb,
0xb1, 0x8c, 0x36, 0xc0, 0xcc, 0xb0, 0x2c, 0x0b, 0xa5, 0x52, 0x09, 0x57, 0xaf, 0x2e, 0x62, 0x61,
0xe1, 0x0f, 0x8c, 0x8e, 0x8e, 0xe0, 0xb5, 0xa3, 0xcf, 0x3f, 0x94, 0xcd, 0x7d, 0xf1, 0x2d, 0x11,
0x1d, 0x13, 0x91, 0xbb, 0xac, 0xb3, 0x91, 0x88, 0x95, 0x1e, 0x07, 0x48, 0x28, 0x22, 0x31, 0xd0,
0xd0, 0xd0, 0x10, 0xc6, 0x77, 0x8e, 0xa3, 0xd9, 0xf4, 0xf0, 0xdb, 0x95, 0xdf, 0xb1, 0xbe, 0xe6,
0xe0, 0xf0, 0x13, 0x8f, 0x1f, 0xfe, 0xf4, 0xf3, 0x4b, 0x1f, 0x13, 0x51, 0xde, 0x4c, 0xdd, 0xf1,
0x00, 0x56, 0x69, 0x72, 0x32, 0x33, 0xb2, 0xd9, 0x2c, 0x4a, 0xc5, 0x22, 0x2c, 0xd3, 0x84, 0x6d,
0xdb, 0x68, 0x34, 0x3c, 0x10, 0x11, 0xa6, 0x1e, 0x7b, 0xf4, 0x55, 0x00, 0x73, 0x66, 0xd7, 0xe2,
0x22, 0x10, 0xa2, 0xae, 0xd8, 0x2f, 0x57, 0xd1, 0x58, 0xc4, 0x0a, 0x00, 0x72, 0xb9, 0x1c, 0x0c,
0xc3, 0x40, 0x3e, 0x9f, 0x47, 0x10, 0x04, 0x50, 0x4a, 0xa1, 0x5e, 0x6f, 0x58, 0x00, 0xb2, 0x66,
0x0f, 0x93, 0x04, 0x98, 0x0e, 0xa2, 0x2f, 0x9e, 0x8c, 0x51, 0x71, 0x47, 0x2e, 0x6c, 0xb5, 0x5a,
0xba, 0xe4, 0x62, 0xf6, 0xec, 0x30, 0x09, 0x36, 0xa0, 0x50, 0xd3, 0x18, 0x1a, 0x86, 0x01, 0x66,
0x86, 0x61, 0xb4, 0x6b, 0xd6, 0xb2, 0xac, 0x4e, 0x1d, 0x89, 0x9e, 0x70, 0xcd, 0x14, 0xfa, 0x78,
0x64, 0x86, 0x7e, 0x51, 0x9f, 0x17, 0x31, 0xd3, 0x8f, 0x30, 0x4e, 0xba, 0x4a, 0x12, 0x0e, 0x94,
0x04, 0x60, 0xbf, 0x98, 0x06, 0xa8, 0x8f, 0xb3, 0x6e, 0xe5, 0x1e, 0x46, 0x89, 0xef, 0xff, 0x3a,
0x39, 0x64, 0xc0, 0xbc, 0xee, 0x1c, 0x01, 0x90, 0xf0, 0x64, 0x90, 0x76, 0xd9, 0xc7, 0x79, 0x4a,
0x9e, 0x06, 0xd1, 0x82, 0xc9, 0xef, 0x7e, 0x35, 0x67, 0x76, 0xc9, 0x15, 0x82, 0xe8, 0x80, 0x3f,
0x5c, 0xfc, 0x04, 0x37, 0x17, 0xfe, 0xfc, 0x5f, 0xa7, 0x3a, 0x00, 0xec, 0x3a, 0x74, 0x20, 0xd3,
0x61, 0xa4, 0x49, 0xa4, 0x83, 0x10, 0x80, 0xea, 0xf2, 0x6d, 0xec, 0xd8, 0x39, 0x8e, 0xc9, 0x67,
0x9f, 0x01, 0x31, 0xb7, 0xaf, 0xd4, 0xc4, 0x1d, 0x35, 0xa8, 0x59, 0xf6, 0x70, 0x10, 0x03, 0xa9,
0x14, 0xe9, 0x74, 0x37, 0x8e, 0xed, 0xdd, 0x83, 0x83, 0x47, 0x67, 0xe2, 0x4b, 0x8f, 0x88, 0xb6,
0x0c, 0xe8, 0x38, 0x8e, 0xea, 0x30, 0x52, 0x61, 0x22, 0x35, 0x90, 0xe8, 0x08, 0x8a, 0xbb, 0x08,
0xbe, 0x39, 0x5f, 0xc6, 0xf5, 0x2b, 0xbf, 0xf6, 0xbe, 0x05, 0xbe, 0xfc, 0x0e, 0xf7, 0x8d, 0x8c,
0x81, 0x88, 0xf0, 0xd5, 0xc9, 0x37, 0xb0, 0x76, 0xeb, 0x26, 0x00, 0xe0, 0x58, 0xf9, 0x7d, 0xec,
0x78, 0x64, 0x9f, 0x9e, 0x23, 0xd5, 0x6b, 0xd1, 0xd0, 0x0c, 0x88, 0x9c, 0x28, 0x82, 0x6d, 0x43,
0x79, 0xe4, 0x6c, 0xbb, 0x27, 0x3f, 0xba, 0x09, 0x46, 0x76, 0xef, 0x41, 0x36, 0xdf, 0x9e, 0x93,
0x1d, 0x1e, 0xee, 0x36, 0xc3, 0xda, 0xea, 0x7a, 0x53, 0x07, 0x4a, 0x93, 0x50, 0x44, 0xf0, 0xd2,
0x99, 0xb3, 0x5d, 0xb2, 0xe9, 0xd2, 0xa9, 0x50, 0xfa, 0x17, 0xde, 0x2a, 0x77, 0xc9, 0x59, 0xa9,
0x54, 0xbc, 0x08, 0x88, 0x16, 0x17, 0xff, 0x71, 0x67, 0xe4, 0x48, 0xa7, 0x00, 0x35, 0x10, 0x68,
0x75, 0xf4, 0xf3, 0x8f, 0x1f, 0x60, 0x75, 0xe5, 0x5a, 0x6a, 0x5e, 0x76, 0x3d, 0xfc, 0x14, 0x9e,
0x9b, 0x7e, 0x13, 0xbf, 0x7c, 0xf4, 0x1e, 0x56, 0xfe, 0xfe, 0x2b, 0x1e, 0x0f, 0x0a, 0x45, 0x8e,
0x80, 0x0c, 0xc7, 0x71, 0x94, 0xeb, 0xba, 0x01, 0x11, 0x83, 0xb9, 0xf3, 0xfa, 0x21, 0x22, 0x14,
0x1e, 0x18, 0xe3, 0x6d, 0xb6, 0x0d, 0xd7, 0x75, 0x55, 0xd5, 0x59, 0xe6, 0xf5, 0xf5, 0x25, 0xd2,
0x5f, 0x75, 0x21, 0x27, 0x14, 0xab, 0x2b, 0x52, 0xab, 0xd5, 0x54, 0x4b, 0x84, 0x61, 0x18, 0xf1,
0x9c, 0xa6, 0x1f, 0x04, 0x61, 0x12, 0x70, 0x02, 0xc0, 0x41, 0x00, 0x46, 0xca, 0x03, 0xb2, 0xef,
0x53, 0x62, 0x8b, 0x63, 0x19, 0x00, 0x77, 0x00, 0x7c, 0xfd, 0x2f, 0xaa, 0x54, 0x34, 0x60, 0xb0,
0x2e, 0xe7, 0xea, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
};
const BITMAP_OPAQUE pagelayout_load_xpm[1] = {{ png, sizeof( png ), "pagelayout_load_xpm" }};
//EOF

View File

@ -0,0 +1,100 @@
/* Do not modify this file, it was automatically generated by the
* PNG2cpp CMake script, using a *.png file as input.
*/
#include <bitmaps.h>
static const unsigned char png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
0xce, 0x00, 0x00, 0x05, 0x29, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0x95, 0x95, 0x6b, 0x6c, 0x53,
0x65, 0x18, 0xc7, 0x97, 0x60, 0x42, 0x22, 0x09, 0x5f, 0x8c, 0xf2, 0xc5, 0x20, 0x7e, 0x30, 0x92,
0x18, 0x82, 0xd1, 0xc8, 0x18, 0x06, 0x37, 0x25, 0x8c, 0x99, 0x2c, 0x30, 0x22, 0x43, 0x40, 0x81,
0xc4, 0x08, 0x04, 0x50, 0x23, 0x53, 0x26, 0x0c, 0xd8, 0x64, 0x1d, 0xdb, 0xb8, 0x18, 0xd8, 0xd8,
0x50, 0xdc, 0x8d, 0x4b, 0x51, 0xe2, 0x94, 0x4b, 0x69, 0x3b, 0x04, 0xc5, 0xb0, 0x8d, 0x51, 0x75,
0x63, 0x12, 0xd8, 0x00, 0xa1, 0xeb, 0x2e, 0xbd, 0xad, 0xf7, 0x7b, 0xd7, 0x9d, 0xf6, 0xfc, 0x7d,
0xde, 0xd7, 0x9d, 0xae, 0xa7, 0xeb, 0x88, 0x9e, 0xe4, 0x97, 0x73, 0xd2, 0xad, 0xcf, 0xef, 0x3c,
0xff, 0xf7, 0x79, 0xdf, 0xa6, 0xa5, 0xa5, 0xa5, 0xe5, 0x10, 0xdb, 0x88, 0xcf, 0xc6, 0xee, 0xff,
0x87, 0x82, 0xb1, 0xef, 0xad, 0x26, 0x9e, 0x06, 0x90, 0x36, 0x19, 0xec, 0xfa, 0x54, 0xa9, 0x54,
0xea, 0x3d, 0x5e, 0xaf, 0xe8, 0xf3, 0xfb, 0x63, 0x81, 0x40, 0x40, 0x0c, 0x04, 0x83, 0x62, 0x28,
0x14, 0x12, 0x47, 0x46, 0x46, 0x38, 0x91, 0x48, 0x84, 0xee, 0x03, 0xfc, 0x3e, 0x3a, 0x3a, 0x2a,
0x0a, 0x82, 0xc0, 0x89, 0x46, 0xa3, 0x62, 0x38, 0x1c, 0x16, 0x8d, 0x66, 0xb3, 0xb0, 0x62, 0xe5,
0xaa, 0x0a, 0xaa, 0x35, 0xfd, 0x71, 0xa2, 0x02, 0x8d, 0x56, 0x6b, 0xf6, 0xf9, 0x7c, 0xf0, 0x07,
0x02, 0x08, 0x06, 0x83, 0x08, 0x85, 0xc3, 0x20, 0x01, 0xa8, 0x28, 0xa8, 0x20, 0x3d, 0xff, 0x09,
0x97, 0x2b, 0x1d, 0x54, 0x18, 0xb1, 0x58, 0x0c, 0xa2, 0x28, 0xc6, 0x61, 0xff, 0x67, 0xb1, 0x58,
0xd0, 0xd5, 0xdd, 0x2d, 0xbe, 0x92, 0x9e, 0xb1, 0x91, 0xea, 0x4d, 0x9d, 0xb4, 0x23, 0x6d, 0x4b,
0x8b, 0xe9, 0x71, 0x22, 0x8f, 0x67, 0x09, 0xec, 0xf6, 0x34, 0xfa, 0x4c, 0x9d, 0x52, 0x64, 0x32,
0x99, 0xd0, 0xdd, 0xfd, 0x17, 0xae, 0x5c, 0xbb, 0x16, 0x7b, 0x7e, 0xf6, 0x4b, 0xb9, 0x54, 0x73,
0xca, 0x7f, 0x12, 0x05, 0x43, 0x2e, 0x6c, 0x58, 0x37, 0x17, 0xfd, 0xf7, 0xca, 0xe1, 0xf7, 0x2b,
0xb8, 0x84, 0xe1, 0x72, 0xcd, 0xa1, 0xc2, 0xe7, 0x49, 0x7e, 0x97, 0x84, 0x21, 0x59, 0x47, 0xad,
0x6d, 0x6d, 0xf0, 0x7a, 0x3d, 0x38, 0xf1, 0xdd, 0xd9, 0xd1, 0xa7, 0x66, 0x3c, 0x3b, 0x2f, 0xb5,
0x48, 0xab, 0x35, 0x79, 0x13, 0x44, 0xfe, 0x80, 0x16, 0x16, 0xf3, 0x13, 0x71, 0x41, 0x2a, 0xdc,
0xee, 0xf9, 0x24, 0xf2, 0xf1, 0xae, 0x9d, 0x4e, 0x27, 0x6e, 0xde, 0xd4, 0xc1, 0x6a, 0xb5, 0xf2,
0xe7, 0xb2, 0x23, 0xd5, 0xbe, 0xa9, 0xd3, 0xa7, 0xbf, 0x30, 0xb9, 0xc8, 0xef, 0xff, 0x37, 0xba,
0x50, 0x08, 0xd6, 0x8e, 0x8d, 0xb0, 0xdb, 0xa6, 0xa5, 0x94, 0x78, 0x3c, 0xd9, 0xd4, 0x91, 0x0f,
0xec, 0x62, 0xd1, 0x7a, 0xbd, 0x5e, 0xf4, 0xf6, 0xf6, 0xe2, 0x6e, 0x4f, 0x0f, 0x8f, 0xd6, 0x68,
0x34, 0x62, 0xf7, 0xc1, 0xa3, 0x7a, 0xaa, 0x3d, 0x63, 0x52, 0x51, 0x60, 0x4c, 0x64, 0xff, 0xbd,
0x09, 0xb6, 0x3f, 0xde, 0x9e, 0x20, 0x71, 0x3a, 0x9f, 0xa3, 0x62, 0x23, 0x3c, 0x36, 0x76, 0xb1,
0xc2, 0xfc, 0xc5, 0xa8, 0x9b, 0xd6, 0xd6, 0x36, 0xbe, 0x56, 0x66, 0xb3, 0x19, 0x3d, 0xbd, 0x3d,
0x28, 0xab, 0xa9, 0xfb, 0x4d, 0x9a, 0xc4, 0x71, 0x11, 0xbd, 0x95, 0x8f, 0x89, 0x28, 0x3e, 0xf6,
0x45, 0x9f, 0xf9, 0x01, 0x06, 0xd5, 0x33, 0x27, 0x88, 0x1c, 0x8e, 0x27, 0xa9, 0xb8, 0x10, 0x1f,
0x06, 0xa9, 0x2b, 0xb6, 0xc6, 0x86, 0xfe, 0x7e, 0xe8, 0x74, 0x3a, 0xa8, 0x35, 0x5a, 0xb4, 0xb7,
0xdf, 0x40, 0x3b, 0x3d, 0x57, 0x7d, 0x7b, 0xf2, 0x38, 0x39, 0xa6, 0xa5, 0x14, 0x05, 0x49, 0x44,
0xfb, 0x03, 0xf6, 0xfe, 0xd7, 0x61, 0x33, 0x4e, 0x81, 0xa3, 0x7d, 0x16, 0x42, 0xd7, 0xe7, 0xc2,
0xa9, 0x7f, 0x86, 0xcb, 0x46, 0x47, 0xff, 0x96, 0x89, 0x58, 0x57, 0x6c, 0xad, 0x58, 0x0d, 0x16,
0x5b, 0x0f, 0x45, 0xd8, 0xd9, 0xd9, 0x85, 0xae, 0xae, 0x5b, 0x68, 0xef, 0xd0, 0x79, 0xc8, 0x31,
0x2b, 0x2e, 0xf2, 0x30, 0x51, 0xd2, 0x88, 0xfb, 0xfd, 0xa7, 0x60, 0x3a, 0x57, 0x08, 0xc3, 0xc1,
0x2c, 0xb8, 0x1a, 0x32, 0x10, 0xbd, 0x94, 0x03, 0xcf, 0xd5, 0x37, 0x61, 0xd1, 0x7c, 0x20, 0x1b,
0xf3, 0x44, 0x19, 0x7b, 0x51, 0xb7, 0xdb, 0x4d, 0x2f, 0x64, 0xc7, 0xf0, 0xf0, 0x30, 0x0c, 0x86,
0xfe, 0x20, 0x39, 0x66, 0xcb, 0x44, 0xc9, 0xeb, 0x14, 0xa6, 0xd1, 0xa5, 0xd3, 0x00, 0x8f, 0x0e,
0xe7, 0x61, 0xa8, 0x6a, 0x11, 0xbc, 0x8d, 0xf3, 0x10, 0x6d, 0xc9, 0xc3, 0x70, 0x43, 0x2e, 0xdc,
0xba, 0xef, 0x27, 0xc8, 0xd8, 0x9d, 0x6d, 0x6a, 0x26, 0x64, 0x89, 0x30, 0x68, 0xed, 0x98, 0xe8,
0xc5, 0xb8, 0xc8, 0xed, 0xf1, 0x70, 0x51, 0x72, 0x7c, 0x6c, 0x9f, 0x44, 0x42, 0x01, 0xdc, 0x2f,
0x49, 0x87, 0xf9, 0x58, 0x36, 0xfc, 0x27, 0x5e, 0x43, 0xf4, 0xca, 0x1a, 0x0c, 0x1d, 0xc9, 0x44,
0xd0, 0x70, 0x4b, 0xb6, 0x79, 0xa5, 0x8b, 0x3d, 0xb3, 0x97, 0x60, 0xd0, 0xb8, 0x8f, 0x8b, 0x34,
0x63, 0xa2, 0x54, 0xf1, 0x8d, 0x8c, 0x75, 0x15, 0x72, 0x9a, 0xd0, 0xbb, 0x73, 0x0e, 0x86, 0xeb,
0x72, 0x10, 0x52, 0xa6, 0x43, 0xb8, 0xba, 0x1e, 0x7d, 0x95, 0xf3, 0x11, 0xf1, 0x58, 0x65, 0xb2,
0x44, 0x21, 0xbb, 0x5c, 0x2e, 0x97, 0x5c, 0xe4, 0xa2, 0x5c, 0x53, 0xc6, 0xc7, 0x64, 0x24, 0x62,
0x71, 0xf8, 0xf4, 0x9d, 0x78, 0xb0, 0xe7, 0x65, 0x38, 0x1a, 0x16, 0x23, 0xd2, 0xbc, 0x10, 0x91,
0xcb, 0xeb, 0x60, 0x38, 0x90, 0x89, 0x68, 0x24, 0x3c, 0xe1, 0x68, 0x92, 0x90, 0x77, 0xa4, 0xd1,
0x70, 0x11, 0x8f, 0x2f, 0x71, 0xfa, 0x92, 0xba, 0x62, 0x32, 0x5b, 0xdb, 0x69, 0x3c, 0x2a, 0x4b,
0x87, 0xb3, 0x81, 0x04, 0xaa, 0xc5, 0x08, 0x5c, 0x58, 0x83, 0xdb, 0xb5, 0xeb, 0xf8, 0xdf, 0xa4,
0xb8, 0x1e, 0x2b, 0x72, 0xba, 0x5c, 0x7c, 0x5a, 0x26, 0xed, 0x2a, 0x41, 0x36, 0xa8, 0x2c, 0xa0,
0x49, 0x7c, 0x03, 0xee, 0x86, 0x05, 0x88, 0x6a, 0x72, 0xf1, 0x6b, 0x63, 0x21, 0x9a, 0xeb, 0x0f,
0xc6, 0x45, 0x89, 0xc8, 0x44, 0x6a, 0x26, 0xa2, 0x33, 0x2a, 0xb9, 0x2b, 0xb6, 0x56, 0x67, 0x8a,
0xf7, 0xa2, 0x22, 0x2f, 0x7f, 0x02, 0x8a, 0xcc, 0x05, 0x28, 0xcb, 0xca, 0xc0, 0xbe, 0xb7, 0xe6,
0x63, 0xd7, 0xa2, 0xc5, 0x28, 0xc9, 0xc9, 0x45, 0x49, 0xd6, 0x22, 0x54, 0x2e, 0x5f, 0x29, 0xe3,
0xac, 0xa2, 0x5c, 0x18, 0x17, 0xa9, 0xd5, 0x26, 0x07, 0x89, 0x52, 0x75, 0x75, 0x6c, 0xd3, 0x47,
0xa8, 0xfb, 0xa4, 0x00, 0xed, 0xcd, 0xe7, 0x70, 0xe3, 0xa7, 0x0b, 0xe8, 0x20, 0x6e, 0x9e, 0xbb,
0x88, 0x8e, 0xe6, 0x1f, 0x51, 0xb5, 0x69, 0x35, 0xca, 0x37, 0x6f, 0x40, 0xcd, 0xae, 0x3d, 0x68,
0x69, 0x68, 0x42, 0x63, 0x7e, 0x3e, 0x5a, 0x4b, 0x8b, 0xa1, 0x3b, 0xaf, 0x8a, 0xd3, 0xf5, 0xcb,
0xb5, 0x70, 0x5c, 0xa4, 0x22, 0x91, 0xdd, 0xe1, 0x40, 0x62, 0x57, 0xd2, 0x04, 0x32, 0xd1, 0xa5,
0xa3, 0xc7, 0xf8, 0xb8, 0xb3, 0xf5, 0x62, 0x7b, 0x8b, 0x0d, 0x07, 0x8b, 0xd1, 0x36, 0x70, 0x1f,
0xf5, 0x87, 0x15, 0x50, 0x94, 0x7e, 0x89, 0xc6, 0x8a, 0x52, 0xdc, 0xd9, 0xb7, 0x0f, 0xf6, 0x77,
0x97, 0xf1, 0x23, 0x49, 0x82, 0x36, 0xee, 0x78, 0x74, 0x2a, 0x95, 0xda, 0x64, 0xa3, 0x9d, 0x2c,
0x75, 0xc5, 0x27, 0x70, 0x2c, 0xc2, 0x5a, 0x12, 0xa9, 0x48, 0xc4, 0xd6, 0xab, 0x7e, 0xc7, 0xc7,
0x28, 0x5a, 0x92, 0x21, 0xa3, 0x70, 0xe1, 0x1c, 0x68, 0x56, 0x2d, 0x43, 0x67, 0x49, 0x31, 0x1c,
0xd5, 0xd5, 0xf8, 0x3a, 0xf3, 0x55, 0x54, 0x2e, 0xcd, 0xe2, 0xdc, 0xbb, 0x71, 0x5d, 0x2e, 0xba,
0xa8, 0x52, 0x99, 0x86, 0x6d, 0x36, 0xb0, 0xae, 0x92, 0x23, 0xac, 0xdd, 0xb8, 0x15, 0xaa, 0xea,
0x5a, 0xbe, 0x5e, 0xa7, 0x4b, 0x77, 0x40, 0xb1, 0x22, 0x5b, 0x46, 0x59, 0xfe, 0x12, 0xe8, 0x8f,
0xee, 0x86, 0x75, 0x69, 0x36, 0xdc, 0x6b, 0xdf, 0xc7, 0xf9, 0xe2, 0xed, 0x38, 0xb5, 0x7d, 0x2b,
0xc7, 0x70, 0xbb, 0x4b, 0x2e, 0x6a, 0x6a, 0x3a, 0xd9, 0x67, 0xa5, 0x73, 0x89, 0x75, 0x95, 0x1c,
0x21, 0x13, 0x5d, 0x24, 0x91, 0x34, 0x1c, 0xac, 0xb3, 0x60, 0xc2, 0x34, 0x4a, 0x13, 0x29, 0xc5,
0x29, 0xc1, 0xa6, 0x93, 0xf1, 0xf0, 0xe1, 0x43, 0xa7, 0x24, 0xda, 0x56, 0x54, 0x54, 0x74, 0xc7,
0x42, 0xbf, 0x27, 0xac, 0xab, 0xe4, 0x08, 0xb9, 0xa8, 0xaa, 0x86, 0x0f, 0x47, 0xf3, 0x99, 0x42,
0x7c, 0x73, 0xf8, 0x1d, 0xce, 0xf1, 0x23, 0x2b, 0x64, 0xfc, 0x7c, 0xe9, 0x10, 0x17, 0x6a, 0xa8,
0xeb, 0xa6, 0x35, 0x4b, 0xe3, 0xd4, 0x6d, 0x5e, 0xef, 0x96, 0x44, 0x9f, 0x6f, 0xd9, 0xb2, 0xe5,
0xf6, 0x23, 0xbd, 0x5e, 0xd0, 0xf7, 0x19, 0x04, 0xfa, 0x4d, 0x11, 0x06, 0x06, 0x07, 0x85, 0xc1,
0xa1, 0x21, 0x61, 0xc8, 0x68, 0x14, 0x94, 0x25, 0x8a, 0xd8, 0xe5, 0xc6, 0x93, 0x31, 0xb3, 0xc5,
0x22, 0xd4, 0xd7, 0xae, 0x8f, 0x55, 0x14, 0x67, 0x88, 0x71, 0x4a, 0x32, 0xc4, 0x4a, 0xce, 0x02,
0xf1, 0x07, 0x65, 0x61, 0xcc, 0xe1, 0x70, 0x08, 0xaa, 0xbd, 0x5f, 0xc4, 0x9a, 0xd6, 0x2e, 0x17,
0x25, 0x6a, 0x3e, 0x7c, 0xcf, 0x2e, 0x9d, 0xde, 0xab, 0x88, 0xfd, 0xc4, 0x21, 0xe2, 0x40, 0x12,
0xfb, 0x27, 0xa1, 0x32, 0x05, 0x15, 0x29, 0xf8, 0x8a, 0xd8, 0x49, 0xcc, 0xfc, 0x07, 0x82, 0xed,
0xc0, 0x33, 0xfd, 0xb3, 0x30, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42,
0x60, 0x82,
};
const BITMAP_OPAQUE pagelayout_load_default_xpm[1] = {{ png, sizeof( png ), "pagelayout_load_default_xpm" }};
//EOF

View File

@ -0,0 +1,103 @@
/* Do not modify this file, it was automatically generated by the
* PNG2cpp CMake script, using a *.png file as input.
*/
#include <bitmaps.h>
static const unsigned char png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
0xce, 0x00, 0x00, 0x05, 0x5c, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0x95, 0x96, 0x69, 0x6c, 0x54,
0x55, 0x14, 0xc7, 0x6f, 0xd0, 0x04, 0x0d, 0x8a, 0x46, 0x6d, 0x48, 0xd4, 0xa0, 0xc6, 0x18, 0x30,
0x24, 0x7c, 0xe0, 0x83, 0x58, 0x3f, 0x99, 0x98, 0x88, 0x26, 0x86, 0xb4, 0x61, 0x09, 0x4a, 0x94,
0x2f, 0x04, 0x63, 0x11, 0x43, 0x51, 0x11, 0x1b, 0xc3, 0xd2, 0x36, 0xb6, 0x6c, 0x11, 0x68, 0xcb,
0x1e, 0x4b, 0xb5, 0x28, 0x29, 0xd2, 0xe5, 0x75, 0x96, 0xce, 0x14, 0x5a, 0xec, 0x46, 0x93, 0x52,
0x4b, 0x29, 0x5d, 0xa0, 0x33, 0x5d, 0xa6, 0xb3, 0xb4, 0x9d, 0xe9, 0x74, 0x66, 0x3a, 0xfb, 0x9b,
0x79, 0xc7, 0x73, 0xee, 0xeb, 0x7b, 0x74, 0xa6, 0x33, 0x26, 0xbe, 0xe4, 0x9f, 0xf7, 0xfa, 0xfa,
0xee, 0xfd, 0xdd, 0xf3, 0x3f, 0xe7, 0x9e, 0x3b, 0x8c, 0x31, 0xf6, 0x11, 0x2a, 0x17, 0xf5, 0xed,
0xfc, 0x3d, 0xa5, 0x32, 0x32, 0xd8, 0x8f, 0x29, 0xde, 0xef, 0x9b, 0x1f, 0xf7, 0x29, 0x2a, 0x03,
0x00, 0x58, 0x3a, 0xd1, 0xb5, 0xb7, 0xb2, 0xb2, 0xd2, 0xec, 0xf1, 0x7a, 0x25, 0xdf, 0xdc, 0x5c,
0xdc, 0xef, 0xf7, 0x4b, 0xfe, 0x40, 0x40, 0x0a, 0x06, 0x83, 0x52, 0x38, 0x1c, 0xe6, 0x0a, 0x85,
0xfc, 0xd2, 0xed, 0xdb, 0xeb, 0x21, 0x18, 0xf4, 0x4a, 0xd1, 0x68, 0x54, 0x12, 0x45, 0x91, 0x2b,
0x16, 0x8b, 0xe1, 0xff, 0x42, 0x92, 0xd5, 0x6e, 0x17, 0x37, 0x6f, 0xdd, 0x56, 0x84, 0x73, 0x2d,
0xff, 0x2f, 0xd0, 0x3e, 0xad, 0x4e, 0x67, 0xf7, 0xf9, 0x7c, 0x30, 0xe7, 0xf7, 0x43, 0x20, 0x10,
0x80, 0x60, 0x28, 0x04, 0x08, 0x00, 0x9c, 0x14, 0x70, 0x42, 0x30, 0x9b, 0xcf, 0x41, 0x4d, 0x0d,
0x03, 0x93, 0xa9, 0x04, 0xe2, 0xf1, 0x38, 0x48, 0x92, 0xa4, 0x8a, 0xbe, 0x73, 0x38, 0x1c, 0xd0,
0xdd, 0xd3, 0x23, 0xad, 0x5b, 0x9f, 0xb9, 0x0b, 0xe7, 0x5b, 0x9a, 0x36, 0x22, 0x9d, 0x5e, 0x6f,
0x4b, 0x07, 0x8a, 0x44, 0x02, 0xd0, 0xd0, 0xb0, 0x12, 0x9a, 0x9a, 0x18, 0x18, 0x0c, 0xaf, 0x41,
0x2c, 0x16, 0x59, 0x04, 0xb2, 0xd9, 0x6c, 0xd0, 0xd3, 0x73, 0x0f, 0x8c, 0x4d, 0x4d, 0xf1, 0x37,
0x56, 0xaf, 0xf9, 0x04, 0xe7, 0x7c, 0xe2, 0x7f, 0x83, 0x4c, 0xa6, 0x52, 0xd0, 0xeb, 0x19, 0x4c,
0x4d, 0x31, 0xd0, 0xe9, 0x18, 0x8c, 0x8d, 0x95, 0xa7, 0x8c, 0xa8, 0xa5, 0xb5, 0x15, 0xbc, 0x5e,
0x0f, 0x5c, 0xf9, 0xe3, 0x5a, 0xf4, 0xc5, 0x15, 0xaf, 0xbe, 0x93, 0x1a, 0xa4, 0xd3, 0xd9, 0xbc,
0x29, 0x40, 0xe1, 0xf0, 0x1c, 0x42, 0x5e, 0x81, 0x07, 0x0f, 0x18, 0x38, 0x9d, 0x0c, 0xee, 0xdf,
0x67, 0xd0, 0xd8, 0xb8, 0x0a, 0xed, 0x8b, 0x71, 0x08, 0x5d, 0xb4, 0x98, 0x99, 0x99, 0x19, 0xb8,
0x73, 0xa7, 0x13, 0x26, 0x27, 0x27, 0xf9, 0x73, 0xe1, 0xa9, 0x33, 0xbe, 0xa5, 0xcb, 0x97, 0xbf,
0x95, 0x1e, 0x34, 0x37, 0xc7, 0x41, 0x3e, 0x9f, 0x1d, 0x23, 0x68, 0x87, 0x7b, 0xf7, 0x72, 0x79,
0x34, 0xd3, 0xd3, 0x0c, 0x2d, 0x94, 0xa3, 0xd2, 0x6a, 0x19, 0x3c, 0x7a, 0x74, 0x02, 0xbf, 0x1b,
0xc3, 0xf1, 0x12, 0xcf, 0xa1, 0xd7, 0xeb, 0x85, 0x81, 0x81, 0x01, 0x78, 0xd0, 0xdf, 0xcf, 0x73,
0x68, 0xb5, 0x5a, 0xe1, 0xa7, 0xe3, 0x25, 0x66, 0x9c, 0x7b, 0x85, 0x0a, 0x5a, 0xb2, 0x84, 0xe5,
0x0a, 0xc2, 0x76, 0x6f, 0x7b, 0xc7, 0x26, 0xb8, 0x75, 0x6b, 0x1d, 0xd4, 0xd7, 0x3f, 0x0f, 0x82,
0xc0, 0xc0, 0x68, 0x64, 0xd0, 0xd2, 0x42, 0x93, 0x32, 0x04, 0xcb, 0x0b, 0xf3, 0x7a, 0x19, 0x0c,
0x0e, 0x32, 0x68, 0x6e, 0x96, 0x81, 0x82, 0xf0, 0x34, 0x8e, 0x59, 0x0b, 0x1d, 0x1d, 0xd9, 0xd0,
0xd5, 0xb5, 0x17, 0x6e, 0xde, 0x3c, 0xcc, 0x73, 0x65, 0xb7, 0xdb, 0xa1, 0x7f, 0xa0, 0x1f, 0x0a,
0x4b, 0x2f, 0x35, 0x2b, 0x95, 0xc8, 0x23, 0xd2, 0x68, 0x8a, 0x9d, 0x82, 0xb0, 0x0c, 0x34, 0x1a,
0xca, 0x81, 0x6c, 0x93, 0xdb, 0x2d, 0x03, 0xfc, 0x7e, 0x86, 0xab, 0x94, 0x41, 0xb1, 0x18, 0xc3,
0xa8, 0x19, 0x78, 0x3c, 0x0c, 0x2d, 0x62, 0x68, 0x95, 0xbc, 0x10, 0x5a, 0x98, 0x20, 0x3c, 0x05,
0xbd, 0xf7, 0x2b, 0xa0, 0xb3, 0xb3, 0x13, 0x34, 0x5a, 0x1d, 0xb4, 0xb5, 0xb5, 0x43, 0x1b, 0x3e,
0x9f, 0xbe, 0x58, 0x71, 0x01, 0x19, 0xcb, 0x54, 0xeb, 0xc6, 0xc7, 0x1b, 0x80, 0x60, 0x06, 0x03,
0xc3, 0x15, 0x31, 0x98, 0x9d, 0x65, 0x98, 0x87, 0xd4, 0xfb, 0x8f, 0xc0, 0xb4, 0x10, 0xfa, 0x8e,
0x22, 0xa7, 0x71, 0x0e, 0x87, 0x91, 0x5b, 0x48, 0xb6, 0xf5, 0xa3, 0x85, 0x77, 0xef, 0x76, 0x43,
0x77, 0xf7, 0x3f, 0xd0, 0xd6, 0xd1, 0xe9, 0x41, 0xc6, 0xeb, 0x2a, 0x08, 0x37, 0x2c, 0x58, 0x2c,
0x86, 0x45, 0x30, 0x25, 0x9a, 0x64, 0x88, 0xcd, 0xc6, 0xb0, 0xec, 0x19, 0xba, 0xf0, 0x1c, 0x46,
0xd7, 0xce, 0x73, 0x43, 0x85, 0x81, 0x1b, 0x1e, 0xc7, 0xcd, 0xa2, 0x2b, 0x4e, 0xcc, 0xe9, 0x14,
0x8c, 0x8e, 0x8e, 0x05, 0x90, 0xb1, 0x3a, 0x01, 0x44, 0x05, 0x31, 0x31, 0x61, 0x04, 0xa1, 0xfe,
0x19, 0x0e, 0x23, 0x0b, 0xa3, 0xd1, 0x44, 0x50, 0x38, 0x2c, 0x5b, 0x46, 0x45, 0xa2, 0xd5, 0xbe,
0x80, 0xd0, 0x2e, 0xb5, 0x02, 0xe9, 0x8e, 0xdd, 0x82, 0x03, 0xb1, 0x63, 0x70, 0x61, 0x25, 0x12,
0x68, 0x95, 0x0a, 0x9a, 0xf5, 0x78, 0x38, 0x08, 0xdb, 0x10, 0x96, 0x73, 0x3e, 0x9f, 0x88, 0x40,
0x64, 0x1f, 0x89, 0x00, 0x74, 0x17, 0x45, 0xb9, 0xfa, 0x6a, 0x6b, 0x19, 0xda, 0xf4, 0x57, 0xc2,
0x9e, 0x52, 0x2e, 0x7a, 0xa6, 0x08, 0x49, 0x58, 0xee, 0x8f, 0x41, 0xda, 0x79, 0x10, 0x45, 0x45,
0x1b, 0xb7, 0xab, 0x6b, 0x27, 0xaf, 0x38, 0x4a, 0x78, 0x20, 0xc0, 0xc0, 0xe5, 0x92, 0xa1, 0xf4,
0x77, 0x28, 0x24, 0x3f, 0x93, 0x6d, 0x23, 0x23, 0xe7, 0x16, 0xb5, 0xa4, 0x85, 0x40, 0xba, 0xdc,
0x6e, 0x77, 0x22, 0xc8, 0x8d, 0xbe, 0x2a, 0xf6, 0x35, 0x37, 0xbf, 0x8b, 0x89, 0x94, 0x27, 0xa4,
0x3d, 0xd4, 0xd7, 0x27, 0x97, 0x34, 0x55, 0x18, 0xbd, 0x23, 0xd1, 0x42, 0x7a, 0x7b, 0xf7, 0xa8,
0x2b, 0x4f, 0x05, 0x24, 0x25, 0x46, 0xa4, 0xd5, 0x72, 0x10, 0xb7, 0x0f, 0x61, 0x82, 0xf0, 0x2c,
0x0c, 0x0d, 0x31, 0xde, 0x11, 0xc8, 0x42, 0x6a, 0xa8, 0x54, 0x24, 0x74, 0xa7, 0x9e, 0x67, 0x36,
0x33, 0xac, 0x2a, 0x06, 0xad, 0xad, 0x1f, 0xf0, 0x9c, 0x2c, 0x84, 0x25, 0x03, 0x17, 0x81, 0x66,
0xdc, 0x6e, 0x5e, 0x2d, 0x93, 0x53, 0x7d, 0x7c, 0x42, 0xda, 0x53, 0x74, 0x6f, 0x6c, 0x5c, 0x03,
0xe3, 0xe3, 0x55, 0x74, 0x44, 0xc0, 0xc3, 0x87, 0x27, 0xb1, 0x00, 0x5e, 0xe2, 0xef, 0xa9, 0xef,
0xe9, 0xf5, 0x2f, 0x73, 0x90, 0xa2, 0x64, 0xe0, 0xa2, 0x1c, 0x69, 0x08, 0x84, 0x3d, 0x8a, 0xa2,
0x32, 0x99, 0xff, 0xe4, 0x13, 0x19, 0x0c, 0x6f, 0xc2, 0xb0, 0xa9, 0x1c, 0xae, 0x1e, 0x3c, 0x0c,
0x45, 0x59, 0x5b, 0x54, 0x1d, 0xdb, 0x9a, 0x05, 0x97, 0x8f, 0xbc, 0x0d, 0x37, 0xaa, 0x9e, 0xe4,
0xdf, 0x1d, 0xdd, 0x92, 0x05, 0xc5, 0xd9, 0x5b, 0xd3, 0xea, 0x5a, 0xc1, 0xcf, 0xe2, 0x63, 0x90,
0x46, 0x63, 0x73, 0x21, 0x88, 0xa2, 0x1a, 0x1a, 0x3a, 0x8f, 0x6d, 0xa6, 0x04, 0xf3, 0xe5, 0xe6,
0xbd, 0xef, 0xec, 0x97, 0x5f, 0xc3, 0xa5, 0x6f, 0xf6, 0x41, 0xdb, 0xf5, 0x6a, 0x68, 0xbf, 0x51,
0x0b, 0x1d, 0xa8, 0x3b, 0xd5, 0x75, 0xd0, 0x56, 0x7d, 0x05, 0x8c, 0x35, 0x1f, 0x43, 0x4b, 0xcd,
0x49, 0xe8, 0xac, 0x11, 0xd2, 0xaa, 0xfb, 0x66, 0x53, 0x48, 0x05, 0x09, 0x08, 0x72, 0xba, 0x5c,
0xa0, 0x44, 0xb5, 0xb0, 0x02, 0x09, 0x54, 0x5f, 0x72, 0x16, 0x02, 0xc1, 0x20, 0xef, 0xea, 0x21,
0xea, 0xea, 0x91, 0x08, 0x36, 0xd9, 0x08, 0xdf, 0x2f, 0xca, 0xe1, 0x98, 0x4e, 0xb8, 0x71, 0x1f,
0x5b, 0x27, 0x08, 0x1a, 0xdb, 0x34, 0xee, 0x64, 0x25, 0x2a, 0x5e, 0x81, 0xf3, 0x85, 0x51, 0x86,
0x20, 0x01, 0x41, 0x78, 0xbc, 0xc3, 0xe5, 0x03, 0x7b, 0x20, 0x6f, 0x43, 0xe6, 0x22, 0x4d, 0x5b,
0x2d, 0x2a, 0xf0, 0x62, 0xce, 0x17, 0x50, 0xbc, 0xf1, 0x7d, 0xae, 0xc1, 0xf6, 0xbf, 0x13, 0x41,
0x75, 0x82, 0x60, 0x9b, 0x9a, 0x9e, 0x06, 0x8a, 0x4a, 0x81, 0xcd, 0xce, 0x97, 0x7b, 0xd9, 0xae,
0xdd, 0x20, 0x9c, 0x29, 0xe3, 0x67, 0xd5, 0xef, 0xf9, 0x07, 0xa0, 0x60, 0xf3, 0x87, 0x09, 0x2a,
0xdc, 0xb2, 0x01, 0x9c, 0xb6, 0x09, 0x35, 0xba, 0xda, 0xe3, 0xf9, 0xf0, 0xdb, 0xf7, 0xbb, 0xb9,
0x46, 0x7b, 0xbb, 0x13, 0x41, 0xe5, 0xe5, 0x15, 0x23, 0x93, 0xd8, 0x97, 0x28, 0xaa, 0x64, 0x0b,
0x09, 0x54, 0x87, 0x20, 0xea, 0x18, 0x04, 0xa3, 0xc8, 0xf8, 0xe1, 0x88, 0x56, 0x2a, 0x6d, 0x26,
0xbc, 0xc0, 0xce, 0x48, 0x92, 0xad, 0xc3, 0xc3, 0xc3, 0x33, 0x0a, 0x28, 0x37, 0x2f, 0x2f, 0xaf,
0xcf, 0x81, 0xa7, 0x23, 0x45, 0x95, 0x6c, 0x21, 0x07, 0x9d, 0x2e, 0xe5, 0x1b, 0xf9, 0xfa, 0xd5,
0xfd, 0x70, 0xfe, 0x97, 0x4d, 0x5c, 0x17, 0x4e, 0x6d, 0x4e, 0x90, 0xa1, 0xfe, 0x04, 0x07, 0x6a,
0x31, 0xea, 0xf2, 0xcf, 0x36, 0xaa, 0xba, 0xf4, 0xd5, 0x8e, 0x59, 0x05, 0xf4, 0x5d, 0x4e, 0x4e,
0x4e, 0xaf, 0xc9, 0x6c, 0x16, 0xcd, 0x23, 0xa3, 0xe2, 0xe8, 0xd8, 0x98, 0x38, 0x6e, 0xb1, 0x88,
0x96, 0x89, 0x09, 0x71, 0xc2, 0x6a, 0x15, 0x2b, 0x0f, 0x15, 0xc4, 0x1b, 0x7e, 0xad, 0x88, 0xdb,
0x1d, 0x0e, 0xf1, 0x72, 0xd9, 0x8e, 0x78, 0xd1, 0xc1, 0x4c, 0x49, 0xd5, 0xa1, 0x4c, 0xa9, 0x98,
0xeb, 0x3d, 0xa9, 0xaa, 0x72, 0x7f, 0xdc, 0xe5, 0x72, 0x89, 0xc2, 0x91, 0x1f, 0xe2, 0xe5, 0x9f,
0x67, 0x4b, 0x8a, 0x4a, 0x77, 0x6e, 0x77, 0x2a, 0xdd, 0x7b, 0x1b, 0xea, 0x28, 0xea, 0x04, 0xea,
0x58, 0x92, 0x8e, 0xa6, 0x51, 0x71, 0x0a, 0x15, 0xa5, 0xd0, 0x49, 0x14, 0xfd, 0xf0, 0x5c, 0xf9,
0x2f, 0xb1, 0x1e, 0x76, 0x45, 0x80, 0x57, 0x13, 0x05, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e,
0x44, 0xae, 0x42, 0x60, 0x82,
};
const BITMAP_OPAQUE pagelayout_new_xpm[1] = {{ png, sizeof( png ), "pagelayout_new_xpm" }};
//EOF

View File

@ -0,0 +1,98 @@
/* Do not modify this file, it was automatically generated by the
* PNG2cpp CMake script, using a *.png file as input.
*/
#include <bitmaps.h>
static const unsigned char png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
0xce, 0x00, 0x00, 0x05, 0x17, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0x9d, 0x95, 0x6d, 0x4c, 0x53,
0x57, 0x18, 0xc7, 0xc1, 0x99, 0x98, 0x48, 0xe2, 0x07, 0x01, 0x35, 0xb0, 0xe0, 0x46, 0xf6, 0x62,
0x34, 0x86, 0x6c, 0x99, 0x53, 0x98, 0x1f, 0x4c, 0x36, 0xc7, 0x88, 0x44, 0x66, 0xa8, 0x46, 0x24,
0x9b, 0x7c, 0x58, 0x5c, 0x28, 0x1b, 0x99, 0x6e, 0x38, 0x25, 0x46, 0xa3, 0x25, 0xf2, 0xe6, 0xa2,
0x22, 0xb0, 0x09, 0x0c, 0x86, 0x56, 0x34, 0x12, 0x1c, 0x56, 0x8a, 0x83, 0x38, 0xb6, 0x55, 0x2a,
0x5d, 0x02, 0x43, 0x44, 0x98, 0x0b, 0x50, 0x2a, 0xf4, 0x05, 0xda, 0x52, 0x5a, 0x68, 0x29, 0x70,
0xe9, 0xfd, 0xef, 0x9c, 0x03, 0xf7, 0x42, 0x4b, 0x61, 0x2f, 0x27, 0xf9, 0xa5, 0xcd, 0xbd, 0xe7,
0x9c, 0x5f, 0x9f, 0xe7, 0x3c, 0xe7, 0x69, 0x40, 0x40, 0x40, 0xc0, 0x07, 0x84, 0xa3, 0x84, 0x2f,
0xe7, 0x3e, 0xff, 0x0b, 0xc7, 0xe6, 0xd6, 0x25, 0x11, 0x42, 0x01, 0x04, 0x2c, 0x05, 0x1d, 0x5f,
0xc8, 0xe5, 0xf2, 0x3e, 0xbb, 0xc3, 0xc1, 0x8f, 0x8d, 0x8f, 0x7b, 0x9c, 0x4e, 0x27, 0xef, 0x74,
0xb9, 0xf8, 0x89, 0x89, 0x09, 0x7e, 0x72, 0x72, 0x92, 0x31, 0x35, 0x35, 0x25, 0x32, 0x3d, 0x3d,
0xcd, 0x73, 0x1c, 0xc7, 0x98, 0x99, 0x99, 0xe1, 0xdd, 0x6e, 0x37, 0xaf, 0x37, 0x1a, 0x39, 0xc9,
0x81, 0x83, 0xd9, 0x64, 0xaf, 0x35, 0xcb, 0x89, 0x8e, 0x29, 0xeb, 0xeb, 0x8d, 0x63, 0x63, 0x63,
0x18, 0x77, 0x3a, 0xe1, 0x72, 0xb9, 0x30, 0xe1, 0x76, 0x83, 0x08, 0x40, 0x36, 0x05, 0xd9, 0x90,
0x41, 0x36, 0x65, 0x78, 0x3c, 0x1e, 0xf0, 0x3c, 0x2f, 0x42, 0xe7, 0x99, 0x4c, 0x26, 0xb4, 0xb5,
0xb7, 0xf3, 0x6f, 0x6e, 0x8f, 0x3e, 0x42, 0xf6, 0x5b, 0xb5, 0x64, 0x44, 0xf5, 0xf7, 0xef, 0x1b,
0xfe, 0x8d, 0x88, 0x4a, 0xfc, 0x89, 0x0c, 0x06, 0x03, 0xda, 0xdb, 0x1f, 0xa3, 0xb1, 0xa9, 0xc9,
0xf3, 0xf2, 0xa6, 0x2d, 0xf1, 0x64, 0xcf, 0x17, 0xfe, 0x97, 0xc8, 0x62, 0xb1, 0x80, 0xa4, 0x17,
0xa9, 0xa9, 0xa9, 0xc8, 0xc8, 0xc8, 0x40, 0x5e, 0x5e, 0x1e, 0x6a, 0x6a, 0x6a, 0x98, 0x5c, 0x88,
0x48, 0xf5, 0xf0, 0x21, 0x1c, 0x0e, 0x3b, 0x7e, 0xa8, 0xba, 0x35, 0x1d, 0xbc, 0xfe, 0xc5, 0xb7,
0xfd, 0x8b, 0xea, 0xeb, 0x0d, 0x0e, 0x3f, 0xa2, 0xde, 0xde, 0x5e, 0x24, 0x24, 0x24, 0x60, 0xe5,
0xca, 0x95, 0x74, 0xe6, 0x22, 0x36, 0x6f, 0xde, 0x8c, 0xea, 0xea, 0x6a, 0x8c, 0x8c, 0x8c, 0xa0,
0xa5, 0x45, 0x83, 0xa1, 0xa1, 0x21, 0xf6, 0x3d, 0xeb, 0x52, 0xc1, 0xd8, 0xaa, 0x35, 0x6b, 0x5e,
0x5d, 0x5a, 0x34, 0x3e, 0x3e, 0x2b, 0x9a, 0x98, 0x40, 0x6e, 0x6e, 0x2e, 0x56, 0xaf, 0x5e, 0xcd,
0x36, 0x8c, 0x8c, 0x8c, 0x44, 0xee, 0xf9, 0x1a, 0xdc, 0xbe, 0x6e, 0xc1, 0xad, 0x6b, 0x66, 0x54,
0x7e, 0xdf, 0x82, 0xe8, 0xe8, 0x18, 0x51, 0xb8, 0x6d, 0xdb, 0x36, 0xa8, 0xd5, 0x6a, 0x3c, 0xed,
0xea, 0x62, 0xa9, 0xd5, 0xeb, 0xf5, 0x38, 0x95, 0x7f, 0xa5, 0x8f, 0xbc, 0x5b, 0xbf, 0xa4, 0xc8,
0x36, 0x3a, 0x8a, 0xa4, 0xa4, 0x24, 0xb6, 0x41, 0x60, 0x60, 0x20, 0xd2, 0xd3, 0xd3, 0xa1, 0xfa,
0x79, 0x06, 0xd7, 0x4b, 0xe0, 0x85, 0xea, 0x01, 0xa0, 0x54, 0x2a, 0x11, 0x1e, 0x1e, 0xce, 0xe6,
0x46, 0x45, 0x45, 0xa1, 0xa1, 0xa1, 0x91, 0x9d, 0x95, 0xd1, 0x68, 0x44, 0x57, 0x77, 0x17, 0xb2,
0x0a, 0x4b, 0x7f, 0x11, 0x2a, 0x71, 0x5e, 0xe4, 0x70, 0x30, 0xc9, 0xee, 0xdd, 0xbb, 0xd9, 0xc2,
0x0d, 0x1b, 0x36, 0xa0, 0xb1, 0xb1, 0x11, 0xfa, 0xe7, 0xb3, 0x1b, 0xe7, 0xcb, 0xfe, 0xc2, 0x96,
0x4d, 0xef, 0xe2, 0xb5, 0x57, 0x76, 0xe2, 0xfc, 0xe9, 0x0e, 0xf6, 0xec, 0xb9, 0x16, 0x78, 0xf6,
0xec, 0x19, 0xd6, 0xad, 0x5b, 0xc7, 0xd6, 0xbc, 0xb3, 0x73, 0x27, 0x1e, 0x92, 0xb3, 0xaa, 0x53,
0xd6, 0xa3, 0xb9, 0x59, 0x8d, 0x66, 0x8d, 0x06, 0x97, 0x4b, 0x2a, 0xaf, 0x92, 0x77, 0x41, 0x5e,
0xa2, 0x94, 0x94, 0x14, 0xb6, 0x20, 0x38, 0x38, 0x18, 0xdd, 0xdd, 0xdd, 0xa0, 0xa3, 0x55, 0x33,
0x2b, 0x8a, 0xd9, 0x9e, 0x2c, 0xa6, 0xea, 0xad, 0x37, 0xf6, 0xb1, 0x67, 0x1a, 0x15, 0x9b, 0x82,
0x27, 0x4f, 0x9e, 0x60, 0xed, 0xda, 0xb5, 0xec, 0x5d, 0x7c, 0x7c, 0x3c, 0x3a, 0x3b, 0x3b, 0xd1,
0xda, 0xda, 0x86, 0xb6, 0xb6, 0x3f, 0xd0, 0xfc, 0x48, 0x63, 0x27, 0xcf, 0x5f, 0x12, 0x45, 0xe4,
0xc2, 0x8a, 0x29, 0xa3, 0x22, 0x3a, 0x99, 0x8e, 0x8e, 0xd6, 0x59, 0xd1, 0x9e, 0xd8, 0xe3, 0xa2,
0xe8, 0xbd, 0x5d, 0x52, 0xf6, 0x8c, 0xfe, 0x08, 0x3a, 0x68, 0xd1, 0x44, 0x44, 0x44, 0xb0, 0x77,
0x3b, 0x76, 0xec, 0x60, 0xa9, 0xa3, 0x95, 0x3a, 0x3c, 0x3c, 0x8c, 0xfe, 0x7e, 0x9d, 0x8b, 0x3c,
0xdf, 0xe4, 0x25, 0x1a, 0xb1, 0xd9, 0x10, 0x17, 0x17, 0xc7, 0x16, 0x84, 0x84, 0x84, 0xb0, 0x8a,
0xb2, 0x59, 0x01, 0x79, 0x19, 0x50, 0x52, 0xe0, 0x80, 0x24, 0x41, 0x86, 0x84, 0x3d, 0xa7, 0xf0,
0xed, 0x45, 0x2b, 0xe4, 0xa5, 0x80, 0xd5, 0x0c, 0x16, 0x79, 0x58, 0x58, 0x18, 0x5b, 0x13, 0x13,
0x13, 0x83, 0x51, 0x92, 0x7e, 0x7a, 0x2d, 0x48, 0xc7, 0x60, 0x90, 0x4a, 0xa4, 0xa2, 0xd7, 0x45,
0xd1, 0xa8, 0xdd, 0x0e, 0x5a, 0x10, 0xf4, 0x33, 0x2d, 0x2d, 0x4d, 0xfc, 0xf5, 0x89, 0x89, 0x89,
0x68, 0xfd, 0xdd, 0x81, 0x1b, 0x65, 0xf3, 0x85, 0x40, 0xc5, 0x4f, 0x1f, 0xcf, 0xa0, 0xbc, 0xbc,
0x1c, 0xa1, 0xa1, 0xa1, 0x62, 0x24, 0x34, 0xfd, 0x74, 0xd0, 0x8b, 0x2c, 0x5c, 0x6e, 0x52, 0xee,
0xf3, 0x22, 0xe5, 0x9c, 0x88, 0x46, 0x25, 0x5c, 0xdc, 0x9b, 0x37, 0x6f, 0x62, 0xe3, 0xc6, 0x8d,
0x6c, 0x93, 0xa0, 0xa0, 0x20, 0x24, 0x1f, 0x92, 0xa2, 0xb8, 0xe0, 0x57, 0x14, 0x5e, 0x6c, 0xc2,
0xc9, 0x13, 0x79, 0x62, 0x14, 0xb4, 0x32, 0xe9, 0x8f, 0xb1, 0x93, 0xf5, 0x42, 0xb7, 0x58, 0x38,
0x6c, 0x36, 0x9b, 0xb7, 0x88, 0x56, 0x1c, 0x15, 0x09, 0x65, 0x4e, 0x1a, 0x2b, 0x9d, 0x04, 0x99,
0x4c, 0x86, 0xad, 0x5b, 0xb7, 0x2e, 0xba, 0xac, 0x2b, 0x56, 0xac, 0x80, 0x44, 0x22, 0x21, 0xe5,
0xdc, 0xee, 0xb7, 0x35, 0x09, 0x78, 0x47, 0xa4, 0x54, 0x32, 0x11, 0x4b, 0x1f, 0x8d, 0x8a, 0x8a,
0x7c, 0xba, 0x84, 0x56, 0xab, 0x45, 0x55, 0x55, 0x15, 0x6a, 0x6b, 0x6b, 0xa1, 0x52, 0xa9, 0xa0,
0xd3, 0xe9, 0xbc, 0x1a, 0xed, 0x42, 0x96, 0x15, 0xd1, 0x42, 0x18, 0xf5, 0x13, 0x15, 0xed, 0x12,
0xee, 0x39, 0x19, 0xf9, 0x9b, 0xf0, 0x6a, 0xb4, 0x0b, 0xbb, 0xba, 0x3f, 0xe1, 0xa2, 0x33, 0xaa,
0xa3, 0x22, 0xd2, 0xa3, 0x7c, 0xa3, 0xa2, 0x67, 0x75, 0xe3, 0xf4, 0x59, 0x64, 0x7f, 0xb8, 0x7f,
0x59, 0x72, 0xf6, 0x1d, 0x58, 0x92, 0x5b, 0xb2, 0xf3, 0xdc, 0xbc, 0xa8, 0xae, 0xce, 0x60, 0x25,
0x22, 0x7f, 0x51, 0x15, 0x7f, 0xfa, 0x19, 0x4a, 0xd3, 0x8f, 0xa1, 0xb9, 0xfa, 0x0e, 0xd4, 0x35,
0xb5, 0x78, 0x44, 0x68, 0xb9, 0x73, 0x97, 0xa1, 0xf9, 0x51, 0xf1, 0x8f, 0xb4, 0x3d, 0x68, 0x72,
0x8b, 0x22, 0x05, 0x11, 0x59, 0xac, 0x56, 0x2c, 0x8c, 0x4a, 0xa8, 0x40, 0x2a, 0xba, 0x77, 0xa5,
0x18, 0x2e, 0x92, 0x42, 0x7a, 0x5e, 0x6e, 0x92, 0xc2, 0x49, 0x92, 0x42, 0x21, 0x8d, 0xbe, 0xa9,
0xf4, 0x85, 0x5c, 0xdc, 0xf9, 0xd4, 0x29, 0x14, 0x75, 0x06, 0x33, 0xb9, 0xc9, 0x42, 0x54, 0xac,
0x02, 0xe7, 0x52, 0x58, 0x44, 0x44, 0x0a, 0x22, 0xa2, 0xe7, 0x55, 0x76, 0xe2, 0x73, 0x64, 0xc6,
0x46, 0x2f, 0xc2, 0xac, 0x1f, 0x10, 0x85, 0x25, 0xd2, 0x8f, 0x91, 0xb3, 0x77, 0x17, 0xe3, 0x4f,
0xf5, 0x6f, 0xde, 0xa2, 0xbb, 0x0a, 0x85, 0x61, 0xd8, 0x6c, 0x06, 0x8d, 0xca, 0x37, 0x85, 0x45,
0x47, 0xd2, 0xa0, 0x28, 0x28, 0x62, 0xe7, 0x75, 0xfd, 0xdc, 0x09, 0xc8, 0x24, 0xef, 0x7b, 0x91,
0xb5, 0x3f, 0x16, 0x16, 0xc3, 0xa0, 0x18, 0x5d, 0x6d, 0xfe, 0x39, 0x5c, 0xcb, 0x48, 0x63, 0xf4,
0x77, 0xb4, 0x79, 0x8b, 0x2a, 0x2a, 0x2a, 0xb5, 0x43, 0xa4, 0x2f, 0xd1, 0xa8, 0x7c, 0x53, 0x48,
0x45, 0x77, 0x89, 0x48, 0x28, 0x0e, 0x1a, 0x99, 0x6b, 0x41, 0x35, 0x0a, 0x15, 0x29, 0xa4, 0x73,
0xca, 0x27, 0xad, 0x3d, 0x3d, 0x3d, 0x23, 0x82, 0xe8, 0x68, 0x66, 0x66, 0x66, 0xa7, 0x89, 0xfc,
0x3b, 0xd2, 0xa8, 0x7c, 0x53, 0xc8, 0x44, 0x97, 0x0b, 0x59, 0x71, 0x54, 0xdf, 0x38, 0x8e, 0xef,
0x2e, 0x26, 0x32, 0xae, 0x5e, 0x92, 0x78, 0xd1, 0x70, 0xef, 0x02, 0x13, 0x2a, 0x49, 0xd4, 0x15,
0x87, 0xf6, 0x8a, 0x94, 0xa6, 0x1e, 0x1e, 0x15, 0x44, 0x5f, 0x49, 0xa5, 0xd2, 0x8e, 0xde, 0xbe,
0x3e, 0xae, 0x4f, 0xdb, 0xcf, 0xf5, 0xeb, 0x74, 0xdc, 0xf3, 0x81, 0x01, 0x6e, 0x60, 0x70, 0x90,
0x1b, 0xd4, 0xeb, 0x39, 0xf9, 0x19, 0x99, 0xe7, 0xa7, 0xf2, 0x4a, 0x8f, 0xd1, 0x64, 0xe2, 0xca,
0x8a, 0x0e, 0x7b, 0xb2, 0x4f, 0x47, 0xf3, 0x22, 0x67, 0xa2, 0xf9, 0x1c, 0x46, 0x0c, 0x7f, 0x5b,
0x7e, 0xdc, 0x63, 0xb5, 0x5a, 0x39, 0xc5, 0xd9, 0xaf, 0x3d, 0x15, 0x1f, 0xed, 0xe3, 0x05, 0x0a,
0x3f, 0x49, 0xb6, 0x08, 0xdd, 0xfb, 0x20, 0x21, 0x97, 0x70, 0x81, 0x90, 0xe7, 0x43, 0xee, 0x12,
0xe4, 0xf8, 0x21, 0xdb, 0x0f, 0xdf, 0x10, 0x4e, 0x12, 0x22, 0xfe, 0x06, 0x07, 0xf6, 0x34, 0x4a,
0xcd, 0xd3, 0x93, 0xba, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
};
const BITMAP_OPAQUE pagelayout_normal_view_mode_xpm[1] = {{ png, sizeof( png ), "pagelayout_normal_view_mode_xpm" }};
//EOF

View File

@ -0,0 +1,105 @@
/* Do not modify this file, it was automatically generated by the
* PNG2cpp CMake script, using a *.png file as input.
*/
#include <bitmaps.h>
static const unsigned char png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
0xce, 0x00, 0x00, 0x05, 0x80, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0x95, 0x96, 0x5b, 0x6c, 0x1c,
0x57, 0x19, 0xc7, 0x7f, 0xdf, 0x99, 0xcb, 0xce, 0x78, 0x77, 0xbc, 0xf6, 0xc6, 0xf1, 0x26, 0xce,
0x85, 0x86, 0x5c, 0x6a, 0xb7, 0x05, 0xd1, 0x1a, 0x91, 0x10, 0x40, 0xa4, 0x0d, 0x26, 0xa9, 0x42,
0x14, 0x54, 0x2a, 0x01, 0x12, 0x0f, 0xa8, 0xf0, 0x02, 0x4a, 0x21, 0x44, 0x04, 0x2b, 0x08, 0x08,
0xb4, 0x42, 0xe1, 0xd2, 0x17, 0x44, 0xa1, 0x15, 0x08, 0x55, 0x95, 0x82, 0x80, 0x17, 0x90, 0x40,
0xa2, 0xa9, 0x48, 0xc5, 0x43, 0xda, 0xaa, 0x95, 0x22, 0x92, 0x86, 0x16, 0x99, 0x24, 0x4d, 0xf1,
0xd2, 0x38, 0x5e, 0x5f, 0x76, 0xd7, 0xeb, 0xbd, 0xef, 0xcc, 0x1c, 0x1e, 0x66, 0x3d, 0xd9, 0x4d,
0x9d, 0xa8, 0x7c, 0xd2, 0x48, 0x33, 0x73, 0x8e, 0xce, 0xef, 0x7c, 0xff, 0xef, 0x7f, 0xbe, 0x19,
0x01, 0xf6, 0x03, 0x63, 0x80, 0x02, 0x42, 0xfe, 0xbf, 0x90, 0xce, 0x35, 0x03, 0x9c, 0xd1, 0x5a,
0xcf, 0xdf, 0x6a, 0xa2, 0x09, 0x8c, 0x9e, 0x3a, 0x75, 0xea, 0xf0, 0xa7, 0x0e, 0x1e, 0xdc, 0xa2,
0x94, 0xd2, 0x4a, 0x44, 0x10, 0x81, 0x5a, 0x89, 0xe6, 0xa5, 0x33, 0x50, 0xf9, 0xaf, 0x88, 0x32,
0x08, 0x13, 0x6b, 0xb4, 0xbb, 0x63, 0x2f, 0x56, 0x66, 0x13, 0x22, 0x12, 0x51, 0x44, 0x68, 0xb7,
0xdb, 0x2c, 0x16, 0x8b, 0xc1, 0x91, 0x23, 0x47, 0x9f, 0x10, 0x91, 0x93, 0x5a, 0xeb, 0xf2, 0xad,
0x40, 0x6a, 0x30, 0x93, 0x71, 0x95, 0x44, 0x41, 0x18, 0x50, 0x7b, 0xe9, 0x49, 0xdc, 0xfa, 0x14,
0x9e, 0x59, 0xa5, 0x55, 0x2e, 0x42, 0x18, 0x62, 0x0f, 0xac, 0x91, 0xd6, 0xcb, 0x7f, 0x67, 0xd9,
0xde, 0x46, 0xfa, 0x81, 0x6f, 0xa2, 0x1c, 0x2f, 0x86, 0x19, 0x22, 0xe6, 0xf1, 0xe3, 0x93, 0x93,
0x57, 0xa7, 0xa7, 0xdf, 0x12, 0x91, 0x67, 0xb5, 0xd6, 0xcd, 0x9b, 0x41, 0x0a, 0x08, 0x45, 0x44,
0x03, 0x84, 0xf5, 0x12, 0xcd, 0x33, 0xdf, 0x26, 0x5d, 0x7d, 0x91, 0xb9, 0x6b, 0xd7, 0xb9, 0x90,
0x5f, 0xc7, 0xc5, 0xc1, 0x2f, 0xf0, 0xda, 0xd0, 0x23, 0xbc, 0xb6, 0xb0, 0x99, 0xd9, 0xd9, 0x65,
0x92, 0xb5, 0x57, 0x59, 0x3e, 0x7d, 0x8c, 0xe6, 0xec, 0x54, 0xbc, 0x48, 0x18, 0x86, 0x28, 0x44,
0x7e, 0x74, 0xf2, 0x87, 0x4f, 0x6d, 0x19, 0xbd, 0x7b, 0x42, 0x44, 0x8c, 0xd5, 0x40, 0x71, 0x34,
0x5f, 0x7e, 0x92, 0xdc, 0x7c, 0x9e, 0x73, 0xd7, 0x86, 0x98, 0xda, 0xfa, 0x28, 0xd9, 0x4f, 0x1e,
0x23, 0x57, 0x4b, 0x42, 0x66, 0x2b, 0x03, 0xf7, 0x7f, 0x85, 0xda, 0x9e, 0xc7, 0x79, 0xa3, 0x76,
0x37, 0x56, 0xed, 0x0a, 0xb5, 0x57, 0x9f, 0x06, 0x1d, 0x95, 0x54, 0x29, 0xc5, 0x72, 0x65, 0x99,
0x9d, 0xe3, 0xf7, 0xa9, 0x13, 0xdf, 0xfb, 0xee, 0x1f, 0xd7, 0x64, 0x37, 0x8e, 0xaf, 0x0e, 0xd2,
0x9a, 0xd6, 0xd4, 0x69, 0x3c, 0xfe, 0x43, 0x65, 0xf8, 0x13, 0xf4, 0xef, 0x3d, 0xc6, 0xae, 0x9d,
0xbb, 0x99, 0x9d, 0xcb, 0x33, 0x3f, 0xbf, 0x40, 0xb1, 0x58, 0xa2, 0xcf, 0xe9, 0x23, 0x95, 0xf4,
0x70, 0x77, 0x3f, 0x42, 0xae, 0xbe, 0x91, 0xa4, 0xbc, 0xcd, 0xd2, 0xd9, 0x5f, 0xa2, 0x94, 0xc2,
0xb6, 0x6d, 0x2c, 0xd3, 0xa2, 0x5e, 0x6f, 0x70, 0x70, 0xdf, 0x84, 0xf5, 0x8d, 0xe3, 0xdf, 0x3a,
0xe3, 0xa4, 0xd3, 0xdb, 0x6f, 0xae, 0x51, 0x14, 0x85, 0x29, 0xda, 0x0b, 0x6f, 0x91, 0xb8, 0xeb,
0xab, 0x6c, 0x18, 0x19, 0x61, 0x66, 0xe6, 0x3a, 0x6b, 0x87, 0x86, 0x10, 0x51, 0x94, 0x4a, 0x65,
0x9c, 0x84, 0x83, 0x46, 0x13, 0x04, 0x3e, 0xe5, 0xf1, 0x2f, 0x53, 0x39, 0xff, 0x18, 0xa6, 0x93,
0x47, 0x44, 0x30, 0x4d, 0x93, 0x74, 0xba, 0x9f, 0x85, 0xc5, 0x45, 0xc6, 0x46, 0x47, 0xf9, 0xe2,
0xc3, 0x0f, 0x79, 0x8d, 0xb6, 0x9c, 0x16, 0x91, 0xdd, 0x5a, 0xeb, 0x7c, 0x0f, 0x48, 0x5a, 0x45,
0xca, 0x75, 0x93, 0xf9, 0x52, 0x19, 0x79, 0xf3, 0x0a, 0x7e, 0x10, 0xd0, 0x68, 0x35, 0x68, 0x34,
0x1a, 0x34, 0x9b, 0x4d, 0x4c, 0xd3, 0xc4, 0x68, 0x1b, 0x51, 0x06, 0xae, 0x47, 0xd3, 0xca, 0x62,
0xd6, 0xae, 0xa3, 0x94, 0xc2, 0xb2, 0x2c, 0x32, 0x99, 0x0c, 0x97, 0x2e, 0x5d, 0xe6, 0xe2, 0xc5,
0x7f, 0x92, 0xcd, 0x0e, 0xf3, 0xf9, 0x03, 0x0f, 0xbc, 0xd7, 0x71, 0x7f, 0xfd, 0x7b, 0x11, 0x39,
0xa4, 0xb5, 0x2e, 0x77, 0x81, 0xca, 0x68, 0xcb, 0x63, 0x28, 0x9b, 0x21, 0xe5, 0xa5, 0xf0, 0x92,
0xfd, 0xb8, 0xae, 0xcb, 0xcf, 0x7f, 0xf1, 0x14, 0x85, 0x42, 0x01, 0x1d, 0x86, 0x8c, 0x6c, 0x58,
0xcf, 0xfa, 0x0d, 0x59, 0x0c, 0x25, 0xf8, 0x76, 0x1a, 0x69, 0xcf, 0x43, 0xab, 0x86, 0x65, 0x39,
0xf4, 0xf5, 0xf5, 0xb1, 0x69, 0xf3, 0x26, 0xf2, 0xb3, 0xb3, 0xfc, 0xe3, 0xfc, 0x05, 0x06, 0xd2,
0x69, 0xf6, 0x7c, 0xf0, 0x7d, 0x7b, 0x7e, 0xf6, 0xab, 0x67, 0x7f, 0x2a, 0x22, 0x47, 0x63, 0x50,
0x68, 0x0f, 0x60, 0x07, 0x6f, 0x60, 0x2a, 0xd0, 0x5a, 0xd3, 0xf6, 0x5b, 0x48, 0x43, 0x50, 0xa2,
0xb0, 0xed, 0x04, 0x73, 0xf3, 0x73, 0xe4, 0x17, 0xe6, 0x28, 0x2e, 0x6d, 0x66, 0x6c, 0x6c, 0x3b,
0x2e, 0x35, 0xb4, 0x95, 0x46, 0x39, 0x29, 0x08, 0x43, 0x1c, 0xc7, 0x21, 0x33, 0x38, 0x88, 0x65,
0x9a, 0x78, 0x9e, 0x47, 0xbd, 0xde, 0x40, 0x44, 0x18, 0xbf, 0xe7, 0xce, 0xcf, 0x02, 0x27, 0x63,
0x90, 0xb6, 0x06, 0xf0, 0x06, 0x2c, 0xb8, 0x7a, 0x96, 0xd6, 0x9d, 0x7b, 0x11, 0x11, 0xc2, 0x30,
0xe4, 0xc4, 0x89, 0xe3, 0x80, 0x10, 0x84, 0x01, 0xed, 0x76, 0x8b, 0x66, 0xab, 0x41, 0x6b, 0xf6,
0x12, 0xae, 0xd9, 0xc0, 0x4f, 0xbc, 0x07, 0xad, 0x35, 0x4a, 0x45, 0x9e, 0x72, 0x5d, 0x17, 0xc3,
0x30, 0x48, 0x26, 0x93, 0xf8, 0xbe, 0x4f, 0x18, 0x86, 0xd4, 0x6a, 0x75, 0x0b, 0x70, 0x6e, 0x48,
0xb7, 0x75, 0x1f, 0xed, 0xf3, 0x17, 0x18, 0x29, 0x9e, 0x25, 0x57, 0x19, 0x47, 0xf7, 0xa5, 0xf1,
0x7d, 0x1f, 0xc3, 0x50, 0xf1, 0x59, 0x69, 0xfb, 0x6d, 0xda, 0xad, 0x06, 0x23, 0x33, 0x7f, 0xc3,
0x70, 0x5a, 0xe8, 0x8d, 0x1f, 0xe9, 0x98, 0x36, 0x82, 0x89, 0x48, 0xec, 0xc2, 0x20, 0x08, 0xe2,
0x31, 0x40, 0xc7, 0x20, 0x63, 0x78, 0x07, 0x8d, 0xcc, 0x6e, 0x32, 0xd6, 0x0b, 0xb4, 0x5e, 0x7f,
0x9a, 0xd9, 0x0d, 0x0f, 0xd2, 0x1a, 0x1e, 0x8d, 0x77, 0xab, 0x75, 0x48, 0x58, 0xbe, 0x4e, 0x36,
0xf7, 0x1c, 0x6b, 0xbd, 0x02, 0x65, 0xbd, 0x8d, 0xcc, 0x3d, 0x07, 0x62, 0xd3, 0x6a, 0xad, 0xa3,
0x2e, 0x61, 0x44, 0x86, 0x31, 0x8c, 0xe8, 0xcc, 0x5a, 0x96, 0x75, 0xc3, 0xde, 0xba, 0x33, 0xb9,
0xb1, 0xe3, 0x61, 0x72, 0x2f, 0xe6, 0x58, 0x9b, 0x98, 0xa2, 0xbf, 0xf0, 0x17, 0x16, 0x17, 0x5e,
0xa1, 0x11, 0x24, 0x08, 0x34, 0xa4, 0xac, 0x80, 0x7e, 0x29, 0xd0, 0x97, 0x58, 0x26, 0xbf, 0x3c,
0x82, 0x7d, 0xff, 0xa3, 0x51, 0x47, 0xe8, 0x64, 0xd2, 0xb5, 0x7b, 0xa2, 0x76, 0x79, 0xa3, 0x1f,
0xf6, 0xd8, 0x5b, 0x6b, 0x4d, 0x22, 0x91, 0xa0, 0xf9, 0xa1, 0xc3, 0xe4, 0xae, 0x9c, 0x25, 0x75,
0xed, 0xaf, 0x24, 0x83, 0xcb, 0x8c, 0x0c, 0x26, 0x50, 0xa6, 0x49, 0x79, 0xb1, 0x42, 0x55, 0x06,
0x59, 0x1c, 0x9e, 0xc0, 0xdd, 0xf9, 0x10, 0x4e, 0x2a, 0xbd, 0x2a, 0xa0, 0xfb, 0xb9, 0xfb, 0xde,
0x5c, 0xe9, 0x0c, 0x00, 0x09, 0xc7, 0x21, 0xeb, 0xba, 0xe8, 0xe1, 0xcf, 0x10, 0xf8, 0x87, 0xf0,
0x5b, 0x0d, 0x16, 0xa6, 0xcf, 0x41, 0xd0, 0xc4, 0xd9, 0xf5, 0x61, 0x32, 0xa9, 0x34, 0xb6, 0x6d,
0x63, 0x18, 0x46, 0xcf, 0xa2, 0xb7, 0x02, 0xae, 0xda, 0x19, 0xb4, 0xd6, 0x08, 0xa0, 0x3b, 0x69,
0xdb, 0xb6, 0x4d, 0xc2, 0x71, 0xf0, 0xde, 0x3f, 0x11, 0x4b, 0xd1, 0x2d, 0x49, 0xf7, 0xa2, 0xb7,
0xcb, 0xa8, 0x07, 0xa4, 0x3b, 0x59, 0x69, 0x11, 0xe8, 0x02, 0xa2, 0x35, 0x7f, 0xfa, 0xf1, 0x13,
0xe4, 0x2e, 0xbe, 0x7e, 0xfb, 0xaf, 0xdf, 0x2a, 0x19, 0xac, 0xc4, 0x1d, 0xf7, 0x7d, 0xc0, 0xee,
0x91, 0x6e, 0x05, 0xd6, 0x0d, 0x11, 0x60, 0x29, 0x3f, 0xcf, 0xd0, 0xe6, 0x4d, 0x8c, 0x7d, 0xec,
0xa3, 0x88, 0x52, 0xd1, 0x27, 0xf5, 0xa6, 0x42, 0xdf, 0x2e, 0x2c, 0x2f, 0xe5, 0xc7, 0xa0, 0xf0,
0x26, 0xe9, 0x56, 0x6a, 0xb6, 0x22, 0xc0, 0xba, 0xed, 0xdb, 0xb8, 0xf7, 0xc0, 0xfe, 0x5e, 0x09,
0xdf, 0x25, 0xb0, 0x54, 0x2a, 0x85, 0x37, 0x32, 0x0a, 0x23, 0x50, 0x37, 0x44, 0x3a, 0xa0, 0xf8,
0xd2, 0x9a, 0xdf, 0x3d, 0x36, 0xc9, 0xd5, 0xf3, 0xe7, 0xde, 0xb1, 0xd8, 0x91, 0xdf, 0xfc, 0x81,
0x81, 0xe1, 0x75, 0x88, 0x08, 0xcf, 0x7c, 0xfd, 0x4b, 0x14, 0xde, 0xce, 0x01, 0x70, 0x68, 0xf2,
0x07, 0x0c, 0xed, 0xb8, 0xab, 0xbb, 0x46, 0x61, 0x04, 0xea, 0xb6, 0x65, 0xb4, 0xd5, 0x08, 0xdc,
0x19, 0x4b, 0xf4, 0x25, 0x71, 0x3d, 0xef, 0x1d, 0xf5, 0xe9, 0x36, 0xc1, 0xf0, 0x96, 0x6d, 0x38,
0xc9, 0x68, 0x8e, 0x93, 0x4a, 0xf5, 0x9a, 0xa1, 0xb0, 0x58, 0x6c, 0x76, 0x83, 0x56, 0x93, 0x50,
0x6b, 0xcd, 0xa7, 0x8f, 0x7e, 0xa7, 0x47, 0xb6, 0x6e, 0xe9, 0xc2, 0x8e, 0xf4, 0x0f, 0x7e, 0x6d,
0xb2, 0x47, 0xce, 0xe9, 0xe9, 0xe9, 0xc6, 0x0a, 0x48, 0x2e, 0x5f, 0xfe, 0x77, 0x75, 0xbf, 0xde,
0x17, 0x83, 0xba, 0x21, 0xb1, 0x59, 0xb4, 0xe6, 0xf9, 0x3f, 0x3f, 0xce, 0xe2, 0xdc, 0x9b, 0xab,
0xd6, 0xe5, 0x8e, 0xad, 0xbb, 0xf8, 0xf8, 0xc4, 0x61, 0x5e, 0xf8, 0xc9, 0xf7, 0x99, 0x9b, 0xfa,
0x57, 0xfc, 0xde, 0x4f, 0x0f, 0xaa, 0x15, 0x90, 0x51, 0x2a, 0x95, 0xc2, 0x6a, 0xb5, 0xea, 0x8b,
0x28, 0x94, 0x92, 0xb8, 0xad, 0x88, 0x08, 0xe9, 0xf5, 0xeb, 0x54, 0xc2, 0xf3, 0xa8, 0x56, 0xab,
0xe1, 0x52, 0x29, 0xaf, 0x8a, 0xc5, 0x19, 0xe9, 0xfe, 0xab, 0xeb, 0xe4, 0xc4, 0xe0, 0xd2, 0x9c,
0xae, 0x54, 0x2a, 0x61, 0xa0, 0xb5, 0xc2, 0x30, 0xe2, 0x39, 0xcd, 0xb6, 0xef, 0x77, 0x8a, 0xc0,
0xe7, 0x80, 0x7b, 0x01, 0x63, 0x95, 0x1f, 0x48, 0x7d, 0x0b, 0x33, 0xe9, 0x77, 0xf9, 0xce, 0x06,
0x16, 0x80, 0xdf, 0xfe, 0x0f, 0x57, 0x06, 0x6f, 0x93, 0x73, 0x44, 0x23, 0x29, 0x00, 0x00, 0x00,
0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
};
const BITMAP_OPAQUE pagelayout_recent_xpm[1] = {{ png, sizeof( png ), "pagelayout_recent_xpm" }};
//EOF

View File

@ -0,0 +1,98 @@
/* Do not modify this file, it was automatically generated by the
* PNG2cpp CMake script, using a *.png file as input.
*/
#include <bitmaps.h>
static const unsigned char png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
0x00, 0x00, 0x00, 0x1a, 0x00, 0x00, 0x00, 0x1a, 0x08, 0x06, 0x00, 0x00, 0x00, 0xa9, 0x4a, 0x4c,
0xce, 0x00, 0x00, 0x05, 0x09, 0x49, 0x44, 0x41, 0x54, 0x48, 0xc7, 0x95, 0x96, 0x6b, 0x4c, 0x53,
0x67, 0x18, 0xc7, 0x49, 0xf6, 0xc1, 0x98, 0x25, 0x7c, 0x99, 0x06, 0x63, 0xa6, 0x32, 0xaf, 0x78,
0xd7, 0x29, 0x20, 0x68, 0x70, 0x6a, 0x82, 0xc4, 0x2c, 0x64, 0x64, 0x60, 0x74, 0xc6, 0x19, 0x93,
0x21, 0x19, 0x6c, 0x66, 0xa0, 0x20, 0xa0, 0xc1, 0x4d, 0xae, 0x4e, 0x88, 0x20, 0xe0, 0x54, 0xc8,
0x3a, 0x26, 0x1a, 0x33, 0x23, 0x8c, 0x03, 0x2d, 0xbb, 0x18, 0xb6, 0x21, 0x1d, 0x24, 0x6b, 0xc7,
0xe4, 0xb6, 0x0f, 0x8a, 0x38, 0x68, 0xcb, 0xbd, 0x14, 0x68, 0x29, 0x70, 0xe8, 0xf9, 0xef, 0x79,
0xdf, 0xd0, 0x03, 0xa7, 0x58, 0xc6, 0x4e, 0xf2, 0x4b, 0x0f, 0x70, 0xfa, 0xfe, 0xce, 0x73, 0x79,
0x9f, 0x17, 0x0f, 0x0f, 0x0f, 0x8f, 0x10, 0x22, 0x96, 0x38, 0x37, 0xfd, 0xf9, 0x7f, 0x88, 0x9b,
0xfe, 0xde, 0x71, 0x62, 0x29, 0x00, 0x0f, 0x77, 0xb0, 0xeb, 0xb3, 0xd2, 0xd2, 0xd2, 0x76, 0xcb,
0xf0, 0xb0, 0x34, 0x32, 0x3a, 0xea, 0xb0, 0x5a, 0xad, 0x92, 0xd5, 0x66, 0x93, 0xc6, 0xc6, 0xc6,
0xa4, 0xf1, 0xf1, 0x71, 0x49, 0xa7, 0xd3, 0x49, 0x17, 0x63, 0x62, 0x10, 0x1b, 0x12, 0x82, 0x73,
0xc4, 0xd9, 0xd3, 0xa7, 0x51, 0x59, 0x59, 0x29, 0x89, 0xa2, 0x28, 0x4d, 0x4d, 0x4d, 0x49, 0x76,
0xbb, 0x5d, 0x32, 0x98, 0x4c, 0x62, 0xf8, 0xd1, 0x63, 0x99, 0xb4, 0x96, 0xe7, 0x7c, 0xa2, 0x38,
0xb5, 0x46, 0x63, 0x1a, 0x19, 0x19, 0xc1, 0xa8, 0xd5, 0x0a, 0x9b, 0xcd, 0x86, 0x31, 0xbb, 0x1d,
0x24, 0x41, 0x7a, 0x62, 0x22, 0x72, 0x03, 0x03, 0x31, 0xb6, 0x69, 0x13, 0x30, 0x8d, 0x44, 0x94,
0xed, 0xde, 0x8d, 0xf8, 0xa8, 0x28, 0x38, 0x1c, 0x0e, 0xfe, 0x5c, 0x77, 0x77, 0x37, 0xf4, 0x8d,
0x8d, 0xd2, 0xdb, 0xfe, 0x01, 0x67, 0x68, 0xbd, 0x45, 0x6e, 0x23, 0xd2, 0x54, 0x57, 0x1b, 0x5d,
0x45, 0x79, 0x19, 0x19, 0xf8, 0xd5, 0xdf, 0x5f, 0x16, 0xb8, 0xa2, 0xdd, 0xb7, 0x0f, 0xf9, 0x39,
0x39, 0x5c, 0x64, 0x34, 0x1a, 0xd1, 0xd8, 0xf8, 0x17, 0x7e, 0xaa, 0xa9, 0x71, 0xbc, 0xe5, 0xb3,
0xf9, 0x5d, 0x5a, 0xf3, 0xb5, 0x05, 0x89, 0x3a, 0x5e, 0xbe, 0x44, 0xfa, 0xfe, 0xfd, 0x6e, 0x25,
0x4e, 0x92, 0x82, 0x82, 0x30, 0x30, 0x30, 0xc0, 0x23, 0xaa, 0x7d, 0xf2, 0x04, 0xc3, 0xc3, 0x16,
0x7c, 0x73, 0xff, 0xc1, 0xe4, 0x1b, 0x5e, 0x6f, 0xfa, 0xbd, 0x5a, 0xa4, 0xd1, 0x18, 0x87, 0x67,
0x89, 0xd2, 0x2e, 0x5d, 0xc2, 0xc0, 0xd6, 0xad, 0x8a, 0x45, 0x9f, 0xaf, 0x5d, 0x8b, 0x3d, 0x8b,
0x17, 0xa3, 0x65, 0xcd, 0x1a, 0xd8, 0x7c, 0x7c, 0x50, 0xb5, 0x72, 0x25, 0x9a, 0x7d, 0x7d, 0xa1,
0x52, 0xa9, 0x30, 0x38, 0x38, 0x88, 0xfa, 0xfa, 0x06, 0xf4, 0xf4, 0xf4, 0xf0, 0xfb, 0xb4, 0xdc,
0x1b, 0x23, 0x8b, 0x3c, 0x3d, 0xd7, 0xb9, 0x17, 0x8d, 0x8e, 0x72, 0x51, 0xc2, 0x91, 0x23, 0x73,
0xde, 0x9e, 0x2d, 0x4c, 0xcf, 0xe2, 0xc6, 0xb2, 0x65, 0x78, 0xb1, 0x6e, 0x1d, 0x92, 0x97, 0x2c,
0xe1, 0xbf, 0x8f, 0x8f, 0x8c, 0xa4, 0x48, 0x86, 0xd1, 0xd6, 0xd6, 0x86, 0x96, 0xd6, 0x56, 0x5e,
0x37, 0x83, 0xc1, 0x80, 0x4b, 0xd7, 0xf2, 0xdb, 0xe9, 0x79, 0x2f, 0xb7, 0xa2, 0xa6, 0xa6, 0x26,
0x14, 0xed, 0xd9, 0x33, 0x47, 0x34, 0xb9, 0x71, 0x23, 0xae, 0x7a, 0x79, 0xa1, 0x6f, 0xc3, 0x06,
0x65, 0xfa, 0x42, 0x43, 0x41, 0x1d, 0xca, 0xa3, 0xa9, 0xad, 0x7d, 0xc2, 0x6b, 0x65, 0x32, 0x99,
0xd0, 0xda, 0xd6, 0x8a, 0xb4, 0x82, 0xa2, 0x5f, 0x9c, 0x9d, 0x38, 0x23, 0xa2, 0xb7, 0xa2, 0xf6,
0x46, 0x5e, 0x6e, 0x2e, 0x3a, 0x5c, 0xd2, 0x36, 0x1f, 0x19, 0x7b, 0xf7, 0xf2, 0x74, 0xb1, 0x1a,
0xb3, 0xda, 0x36, 0x34, 0x34, 0xa0, 0x4a, 0xad, 0x41, 0x5d, 0x9d, 0x16, 0x75, 0x74, 0x9f, 0x77,
0xa7, 0xe4, 0x36, 0x39, 0x5e, 0x9f, 0x23, 0x4a, 0xa0, 0xb6, 0x5d, 0xa8, 0x84, 0x71, 0x8f, 0x5e,
0xaa, 0xb9, 0xb9, 0x19, 0x93, 0x93, 0x93, 0x3c, 0x85, 0x2c, 0x6d, 0xad, 0x94, 0x42, 0x9d, 0x4e,
0x0f, 0xbd, 0xfe, 0x4f, 0xd4, 0xfd, 0xde, 0x60, 0x21, 0x87, 0xb7, 0x2c, 0xb2, 0x30, 0x11, 0xbd,
0x55, 0x62, 0x44, 0x84, 0x62, 0x21, 0xc3, 0xfa, 0xf5, 0x73, 0xd2, 0x35, 0x9b, 0x7a, 0x6a, 0x0e,
0xa1, 0xbc, 0x9c, 0xd7, 0x86, 0xc9, 0x68, 0xc3, 0x63, 0x68, 0x68, 0x08, 0xfd, 0xfd, 0xfd, 0xe8,
0xed, 0xed, 0x45, 0x47, 0xc7, 0x4b, 0x1b, 0x39, 0x7c, 0x14, 0x22, 0x56, 0xa7, 0x0b, 0x07, 0x0e,
0xc8, 0x8b, 0xa4, 0x2c, 0x5d, 0x8a, 0xf2, 0x15, 0x2b, 0xa0, 0x5f, 0xbd, 0xda, 0xad, 0xc8, 0x4c,
0x2f, 0x71, 0x2d, 0x29, 0x09, 0xec, 0x92, 0x24, 0x09, 0x34, 0x2d, 0xb8, 0x90, 0x26, 0x06, 0x87,
0x6a, 0xc7, 0x44, 0x1b, 0x64, 0xd1, 0x90, 0xc5, 0x82, 0x6e, 0x2a, 0x68, 0x3a, 0xb5, 0xac, 0x73,
0x91, 0xe2, 0xe5, 0xcb, 0x11, 0xee, 0xe9, 0xc9, 0x17, 0x9b, 0x77, 0x3f, 0x85, 0x87, 0x73, 0x89,
0xf3, 0x62, 0xf7, 0x2c, 0x42, 0x06, 0xd5, 0x6f, 0x46, 0xa4, 0x9e, 0x16, 0xb5, 0x52, 0x8b, 0xde,
0xda, 0xb9, 0x53, 0x31, 0x6e, 0x74, 0xf3, 0x44, 0x23, 0x8b, 0xa8, 0x21, 0x68, 0xf6, 0x71, 0xc1,
0x6c, 0x21, 0xbb, 0xcc, 0x66, 0xb3, 0x52, 0x64, 0xa6, 0xbc, 0xaa, 0xd5, 0x6a, 0x68, 0x16, 0xd8,
0x04, 0x0e, 0xf6, 0x39, 0xdd, 0x9d, 0x15, 0x3b, 0x76, 0x40, 0xab, 0xd5, 0xca, 0xa2, 0xd9, 0x28,
0x23, 0x52, 0xab, 0xb9, 0x28, 0x3b, 0x25, 0x05, 0x5d, 0xb4, 0x19, 0x17, 0x22, 0xaa, 0xf6, 0xf6,
0x46, 0x6f, 0x70, 0x30, 0xbf, 0x67, 0x1b, 0xb8, 0x38, 0x3f, 0x5f, 0x4e, 0xd7, 0xbc, 0x22, 0x56,
0x9f, 0xa8, 0x83, 0x07, 0x15, 0x8b, 0xb1, 0xd4, 0xb5, 0x6c, 0xdf, 0x8e, 0xec, 0xcd, 0x9b, 0x61,
0xdd, 0xb5, 0x4b, 0xf1, 0xb7, 0x9a, 0x55, 0xab, 0xa0, 0xa5, 0xc6, 0x99, 0xda, 0xb6, 0x0d, 0x3f,
0xb3, 0xa8, 0x1e, 0x3d, 0x92, 0x45, 0xb3, 0x51, 0x88, 0xaa, 0x48, 0x74, 0xf2, 0xf8, 0x71, 0x5c,
0xf7, 0xf3, 0x83, 0x69, 0xcb, 0x16, 0xb4, 0xd3, 0xd1, 0x90, 0x4f, 0x63, 0x28, 0x32, 0x2c, 0x0c,
0x9f, 0x1f, 0x3b, 0x81, 0x8b, 0x87, 0xe8, 0x2c, 0x0a, 0x08, 0xc2, 0x79, 0xbf, 0xbd, 0x48, 0xf2,
0x0d, 0x44, 0x1c, 0xc1, 0x7e, 0xbe, 0x10, 0x74, 0x08, 0xe7, 0x02, 0xf7, 0x23, 0x9e, 0x3e, 0x33,
0xdf, 0x8b, 0x40, 0x56, 0xd8, 0xd1, 0x39, 0x3c, 0x48, 0xcd, 0x10, 0x67, 0x44, 0x55, 0x55, 0xc6,
0xde, 0xbe, 0x3e, 0x08, 0x82, 0x80, 0xf4, 0xf4, 0x74, 0x5c, 0xa7, 0xe9, 0xf0, 0x87, 0x4e, 0xc7,
0x47, 0xd2, 0xcd, 0xa8, 0x4f, 0x50, 0x74, 0x36, 0x0e, 0x75, 0x0f, 0xcb, 0xf0, 0xf8, 0xee, 0x7d,
0x3c, 0x2a, 0xf8, 0x8a, 0xdf, 0xd7, 0x97, 0x55, 0xa0, 0xa1, 0x5c, 0xf8, 0x4f, 0xf4, 0x8f, 0x6b,
0xec, 0xb2, 0x48, 0x20, 0x51, 0x3f, 0x8d, 0x7b, 0x36, 0x4a, 0x58, 0xad, 0x58, 0x07, 0x3a, 0x37,
0x30, 0x13, 0x55, 0xe6, 0xdf, 0x84, 0x8d, 0xe6, 0x19, 0x3b, 0xa7, 0xec, 0x74, 0xfe, 0x8c, 0x4f,
0x4c, 0x60, 0x82, 0x60, 0xfb, 0x85, 0xc1, 0x3a, 0xce, 0x1d, 0xb4, 0x71, 0x67, 0x52, 0x27, 0x08,
0x55, 0xc6, 0x3e, 0xda, 0xc9, 0x03, 0x24, 0x1a, 0x34, 0x9b, 0xb9, 0xcc, 0x42, 0x32, 0x36, 0x52,
0x0a, 0x49, 0x24, 0x90, 0x88, 0x8e, 0x77, 0x14, 0x27, 0x7e, 0x8a, 0xe4, 0xc3, 0x01, 0x73, 0xe8,
0x33, 0x74, 0xca, 0xc2, 0x3b, 0xd1, 0x1f, 0x22, 0x2b, 0xf4, 0x1d, 0xce, 0xdf, 0xda, 0xdf, 0x94,
0xa2, 0x0a, 0x41, 0xe0, 0xa9, 0x63, 0x51, 0x39, 0x65, 0x6c, 0x8c, 0xb0, 0xa8, 0x0a, 0xcf, 0xc4,
0x40, 0xb8, 0x51, 0xc8, 0xcf, 0xaa, 0xbb, 0x57, 0x12, 0x91, 0x1a, 0x1e, 0xac, 0x20, 0x2d, 0xe2,
0x30, 0xfa, 0x8d, 0x5d, 0x72, 0x74, 0xdf, 0x5f, 0xbb, 0x82, 0x6f, 0xe3, 0x63, 0x38, 0x1d, 0x4f,
0xf5, 0x4a, 0x91, 0x4a, 0x55, 0xf2, 0xa2, 0x87, 0xe6, 0x12, 0x8b, 0xca, 0x35, 0x85, 0x4c, 0x54,
0x41, 0x22, 0x36, 0x70, 0x99, 0x8c, 0x45, 0xc6, 0x8f, 0x7b, 0x4a, 0xa5, 0x73, 0xcc, 0x8c, 0xcf,
0x4a, 0xe7, 0x84, 0x4b, 0x5a, 0x9f, 0x3d, 0x7b, 0x36, 0xe8, 0x14, 0xc5, 0x26, 0x27, 0x27, 0x37,
0xb3, 0xf6, 0x66, 0x51, 0xb9, 0xa6, 0x90, 0x8b, 0xf2, 0x0a, 0xf8, 0x1c, 0x7c, 0x78, 0x2f, 0x01,
0xb7, 0xae, 0xbf, 0xcf, 0xb9, 0x9d, 0x1b, 0xae, 0xe0, 0xc7, 0xca, 0x6c, 0x2e, 0x54, 0x53, 0xd4,
0xaa, 0x0f, 0x42, 0x65, 0x8a, 0x3e, 0x3e, 0x35, 0xe4, 0x14, 0x9d, 0x8f, 0x8e, 0x8e, 0x7e, 0xfa,
0xbc, 0xbd, 0x5d, 0x6c, 0x7f, 0xd1, 0x21, 0xd2, 0x99, 0x22, 0xfe, 0xd3, 0xd9, 0x29, 0x76, 0x76,
0x75, 0x89, 0x5d, 0x06, 0x83, 0x58, 0x7a, 0x39, 0xd5, 0xf1, 0xc3, 0xd7, 0x25, 0x0e, 0x53, 0x77,
0xb7, 0x58, 0x5c, 0x78, 0xca, 0x91, 0x99, 0x12, 0x20, 0xc9, 0x5c, 0x0e, 0x90, 0xb2, 0x38, 0x81,
0xd2, 0x77, 0xa5, 0x09, 0x0e, 0xfa, 0xff, 0x41, 0x14, 0xbe, 0xb8, 0xe0, 0x50, 0x9d, 0x0c, 0x93,
0x9c, 0x14, 0x7c, 0x74, 0xa2, 0xdf, 0x39, 0xbd, 0x8f, 0x11, 0x57, 0x89, 0x6c, 0xe2, 0x4b, 0x17,
0xae, 0xba, 0x21, 0xeb, 0x15, 0x64, 0xbe, 0x82, 0x1c, 0x22, 0x89, 0x58, 0xf9, 0x2f, 0xfa, 0x67,
0xd2, 0x81, 0xc6, 0xe4, 0x27, 0x77, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42,
0x60, 0x82,
};
const BITMAP_OPAQUE pagelayout_special_view_mode_xpm[1] = {{ png, sizeof( png ), "pagelayout_special_view_mode_xpm" }};
//EOF

View File

@ -8,320 +8,320 @@
static const unsigned char png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x08, 0x06, 0x00, 0x00, 0x00, 0x57, 0x02, 0xf9,
0x87, 0x00, 0x00, 0x13, 0x83, 0x49, 0x44, 0x41, 0x54, 0x68, 0xde, 0xdd, 0x5a, 0x09, 0x78, 0x5b,
0xe5, 0x95, 0x15, 0x5b, 0x18, 0x42, 0xf9, 0x12, 0xca, 0xb4, 0x53, 0x92, 0xf6, 0xa3, 0x30, 0xe9,
0x74, 0x01, 0x66, 0x4a, 0x42, 0x58, 0xcb, 0xd0, 0x00, 0x01, 0x12, 0x48, 0x3e, 0x48, 0x87, 0xad,
0xd0, 0x0e, 0x6b, 0xd8, 0x97, 0x00, 0x49, 0x48, 0x08, 0xd9, 0x57, 0x92, 0x38, 0x31, 0x59, 0xec,
0x90, 0x85, 0x24, 0x76, 0xbc, 0xc6, 0xf1, 0xbe, 0xc4, 0x96, 0x77, 0xcb, 0x96, 0x37, 0xc9, 0xbb,
0x56, 0x4b, 0xb6, 0x24, 0x5b, 0x96, 0x2c, 0x5b, 0xd6, 0xbe, 0xbc, 0xf7, 0xfe, 0x33, 0xf7, 0xd7,
0x34, 0x69, 0x42, 0xec, 0x94, 0xce, 0xd0, 0x65, 0x46, 0xdf, 0x77, 0xad, 0xf7, 0xac, 0x27, 0xe9,
0x9e, 0xff, 0xbf, 0xf7, 0x9c, 0x73, 0x25, 0xc9, 0x00, 0xc8, 0xfe, 0x2f, 0x87, 0xec, 0xff, 0x35,
0x80, 0x59, 0xb3, 0x66, 0x5d, 0xb1, 0x70, 0xe1, 0xc2, 0xa3, 0x4f, 0x3c, 0xf1, 0x44, 0xf9, 0xa3,
0x8f, 0x3e, 0xba, 0x6a, 0xde, 0xbc, 0x79, 0xf7, 0x3f, 0xf5, 0xd4, 0x53, 0x57, 0x8d, 0x77, 0x2d,
0x3d, 0xf6, 0x43, 0xba, 0x36, 0x77, 0xc1, 0x82, 0x05, 0x47, 0x1e, 0x7a, 0xe8, 0xa1, 0x9b, 0xfe,
0x2e, 0x00, 0x3c, 0xfc, 0xf0, 0xc3, 0x8b, 0x57, 0xad, 0x5a, 0x65, 0xd7, 0xeb, 0xf5, 0xfd, 0xd9,
0xd9, 0xd9, 0x96, 0x25, 0x4b, 0x96, 0x38, 0x29, 0xd1, 0x08, 0x25, 0xaa, 0x9e, 0x3f, 0x7f, 0xfe,
0x4e, 0x7a, 0x7c, 0xc1, 0x23, 0x8f, 0x3c, 0xf2, 0x5d, 0x7e, 0x2d, 0x25, 0x2e, 0x4f, 0x4f, 0x4f,
0xb7, 0x14, 0x15, 0x15, 0x59, 0x08, 0x70, 0x90, 0xce, 0x0f, 0xd0, 0x35, 0x3f, 0xf8, 0x9b, 0x02,
0xa0, 0x44, 0xb3, 0xd4, 0x6a, 0x75, 0x3f, 0x1d, 0x77, 0x53, 0xb4, 0x53, 0x58, 0x44, 0x51, 0x74,
0x0c, 0x0c, 0x0c, 0x58, 0xca, 0xca, 0xca, 0x2c, 0x6b, 0xd7, 0xae, 0x1d, 0xa4, 0x44, 0x23, 0x8f,
0x3f, 0xfe, 0xb8, 0x6d, 0xd1, 0xa2, 0x45, 0x91, 0x92, 0x92, 0x92, 0x31, 0x9b, 0xcd, 0x66, 0x88,
0x44, 0x22, 0x83, 0x19, 0x19, 0x19, 0xd6, 0x27, 0x17, 0x2d, 0x0a, 0x6c, 0xdb, 0xb5, 0x3b, 0xbb,
0xae, 0x4b, 0x7f, 0x5c, 0xa9, 0x31, 0x6d, 0x6f, 0xd0, 0x9a, 0xdf, 0x53, 0x75, 0x1b, 0x16, 0xaa,
0x3a, 0xb5, 0xb7, 0xd7, 0x77, 0x77, 0x7f, 0xf7, 0x2f, 0x0e, 0xe0, 0xb1, 0xc7, 0x1e, 0x1b, 0xf2,
0x7a, 0xbd, 0x56, 0x3a, 0xce, 0xa7, 0x38, 0xe6, 0xf3, 0xf9, 0x92, 0xe9, 0x3e, 0x9d, 0xa2, 0x8c,
0xa2, 0x95, 0xc2, 0xc4, 0x18, 0x73, 0x9a, 0x4c, 0xa6, 0x48, 0x43, 0x43, 0x83, 0x78, 0xe0, 0xc0,
0x81, 0xe8, 0x2b, 0xaf, 0xbc, 0x22, 0xec, 0xda, 0x97, 0x28, 0x94, 0x2b, 0x5b, 0xa5, 0x36, 0xad,
0x0e, 0x6d, 0x06, 0x13, 0x6a, 0xbb, 0xcd, 0xa8, 0xd3, 0x58, 0x04, 0xa5, 0xc6, 0x1c, 0x6d, 0xd6,
0x18, 0x85, 0x16, 0x8d, 0x5e, 0x6c, 0x6a, 0xef, 0x16, 0xcb, 0x5b, 0xb5, 0x45, 0xd5, 0x8d, 0xed,
0x37, 0xfe, 0x45, 0x00, 0xf0, 0x9a, 0x7e, 0xf2, 0xc9, 0x27, 0x43, 0x74, 0xec, 0xa0, 0x48, 0x1e,
0x1d, 0x1d, 0x3d, 0x31, 0x79, 0xf2, 0xe4, 0xc8, 0xb4, 0x69, 0xd3, 0x3c, 0x04, 0x4c, 0xb7, 0x6d,
0xdb, 0xb6, 0x1a, 0x8d, 0x46, 0x93, 0x69, 0xb7, 0xdb, 0x2b, 0xba, 0xbb, 0xbb, 0xa3, 0x74, 0x4d,
0x34, 0x10, 0x0c, 0x05, 0xda, 0x74, 0x46, 0xa8, 0x8d, 0xfd, 0xa8, 0xd5, 0xd9, 0x51, 0xd4, 0xe5,
0xc2, 0x81, 0x06, 0x27, 0xb6, 0x9f, 0x36, 0x62, 0x5b, 0x81, 0x96, 0xad, 0x3d, 0xd5, 0x21, 0x6d,
0x2c, 0xb1, 0x38, 0xe3, 0x14, 0x5e, 0x7d, 0x86, 0x6a, 0x78, 0xb8, 0xba, 0xa3, 0x37, 0x5c, 0xd7,
0xa4, 0x62, 0xa7, 0x95, 0x1d, 0xd5, 0x65, 0xd5, 0x0d, 0x3f, 0xff, 0x56, 0x01, 0x50, 0x7d, 0x3f,
0xbb, 0x75, 0xeb, 0x56, 0x1b, 0x1d, 0x1b, 0xf8, 0xea, 0xf3, 0xa0, 0xd2, 0x38, 0x9e, 0x9f, 0x9f,
0x5f, 0xf8, 0xde, 0x7b, 0xef, 0xb5, 0xdc, 0x79, 0xe7, 0x9d, 0xd6, 0xab, 0xaf, 0xbe, 0x3a, 0x32,
0x7d, 0xfa, 0x74, 0xa9, 0xa6, 0xa6, 0x26, 0x38, 0xe0, 0x1c, 0x09, 0xa8, 0x7b, 0x74, 0x68, 0x30,
0xda, 0x59, 0x52, 0x47, 0x88, 0x25, 0xa9, 0x3d, 0xc8, 0xd5, 0x85, 0xa5, 0xb2, 0x3e, 0x26, 0xc9,
0xfb, 0x24, 0xa9, 0x48, 0x1f, 0x60, 0x69, 0xcd, 0x83, 0x6c, 0x47, 0x76, 0x33, 0xfb, 0x60, 0x6f,
0x3e, 0x96, 0x1c, 0x28, 0xf1, 0xae, 0xc9, 0xee, 0xee, 0x4f, 0x6d, 0x1e, 0x1c, 0xad, 0x68, 0xd5,
0x85, 0xca, 0xeb, 0x1a, 0xa5, 0xc2, 0xca, 0xe6, 0xd7, 0xbf, 0x35, 0x00, 0xd4, 0x80, 0x09, 0x55,
0x55, 0x55, 0x16, 0x3a, 0x6e, 0xe2, 0xc9, 0x53, 0x4d, 0x17, 0x5f, 0x7b, 0xed, 0xb5, 0x81, 0xd9,
0xb3, 0x67, 0x5b, 0x97, 0x2e, 0x5d, 0xda, 0x48, 0xf5, 0x9e, 0x6f, 0x30, 0x18, 0xaa, 0x3f, 0xf8,
0xe0, 0x03, 0x61, 0xef, 0xa1, 0xa3, 0x4c, 0xd5, 0xa3, 0x45, 0xb9, 0xd6, 0x29, 0xed, 0xa9, 0x73,
0x48, 0xc7, 0x9a, 0x9c, 0x91, 0x42, 0xa3, 0x10, 0x48, 0x6e, 0x71, 0x0a, 0x5f, 0x56, 0xf7, 0xb1,
0x8c, 0x0e, 0x4f, 0xa4, 0xd4, 0xcc, 0x42, 0x55, 0x36, 0x08, 0x8a, 0x41, 0xb0, 0x1a, 0xab, 0xc4,
0x4e, 0xb5, 0xbb, 0xd9, 0xe1, 0x6a, 0x93, 0xb4, 0x29, 0x43, 0x19, 0x5e, 0x95, 0x54, 0x27, 0x65,
0xd5, 0x6b, 0xa4, 0x92, 0xf2, 0x5a, 0xb6, 0xe1, 0xf3, 0x7d, 0x5f, 0x3c, 0xf0, 0xc0, 0x03, 0xd3,
0xbf, 0x31, 0x00, 0xa2, 0xc5, 0xcb, 0x88, 0x49, 0x5e, 0xa2, 0xd8, 0x7a, 0x26, 0xe6, 0xce, 0x9d,
0xbb, 0x95, 0x68, 0xd3, 0xb5, 0x73, 0xe7, 0x4e, 0x4f, 0x5c, 0x5c, 0x9c, 0x69, 0xcb, 0x96, 0x2d,
0x9d, 0x54, 0x36, 0xae, 0x9f, 0xfc, 0xe4, 0x27, 0x98, 0x31, 0x63, 0x06, 0x7e, 0xfa, 0xd3, 0x9f,
0xb2, 0x9f, 0xfd, 0xec, 0x67, 0xd2, 0xcc, 0x99, 0x33, 0x59, 0x4a, 0xc6, 0x49, 0x51, 0xa9, 0xee,
0xc4, 0x49, 0xd5, 0x00, 0xdb, 0x53, 0x37, 0x2c, 0xae, 0x4f, 0x53, 0x60, 0xe5, 0x57, 0x72, 0x6c,
0xcb, 0x51, 0xb3, 0x3d, 0xa5, 0xda, 0xe8, 0xda, 0x13, 0x35, 0xd2, 0xe6, 0x4c, 0x25, 0xdb, 0x9d,
0xa7, 0x66, 0x07, 0xcb, 0xf5, 0x91, 0xc3, 0x15, 0x86, 0x48, 0x52, 0x8d, 0x41, 0x3c, 0x52, 0xa1,
0x65, 0xfb, 0x4a, 0xba, 0xd8, 0xe1, 0x4a, 0x03, 0xca, 0x7a, 0xc3, 0x12, 0x95, 0x54, 0xb8, 0xb8,
0x59, 0x2f, 0xe5, 0x16, 0x57, 0x62, 0xf1, 0x5b, 0xef, 0x86, 0x29, 0x87, 0x81, 0x39, 0x73, 0xe6,
0x3c, 0xf6, 0x27, 0x01, 0x50, 0xa2, 0x2f, 0x2e, 0x5e, 0xbc, 0xd8, 0x79, 0xfa, 0xf4, 0x69, 0x6b,
0x69, 0x69, 0xa9, 0x95, 0xdf, 0x53, 0x0c, 0x9c, 0x3a, 0x75, 0x8a, 0xd1, 0x0e, 0x88, 0x15, 0x15,
0x15, 0xc1, 0xf2, 0xf2, 0xf2, 0x00, 0x51, 0xa4, 0x74, 0xe2, 0xc4, 0x09, 0x9c, 0x1b, 0x29, 0xa9,
0xa9, 0xa8, 0x6b, 0x56, 0xa1, 0xaa, 0xab, 0x0f, 0x7b, 0x1b, 0xc6, 0x70, 0xb4, 0xde, 0x86, 0x13,
0x8d, 0x03, 0x38, 0x5c, 0xdb, 0x8f, 0xa3, 0x75, 0x16, 0x24, 0x2b, 0x07, 0x70, 0xa2, 0xc1, 0x8a,
0xa4, 0x5a, 0x23, 0x52, 0xeb, 0xcd, 0x38, 0xd9, 0x64, 0x61, 0xa7, 0x9a, 0xad, 0x52, 0x56, 0x93,
0x45, 0xca, 0x57, 0x0f, 0x48, 0x69, 0x4a, 0x0b, 0xfb, 0x3c, 0xa3, 0x0e, 0x5f, 0x55, 0x52, 0xe2,
0xed, 0xc3, 0x52, 0xa6, 0xca, 0x11, 0x2d, 0x69, 0xd4, 0xb0, 0x53, 0xf9, 0x72, 0xa6, 0x52, 0xb5,
0x59, 0x69, 0x31, 0xbb, 0xfe, 0x24, 0x00, 0xbe, 0xe2, 0x3c, 0x69, 0x3a, 0xe9, 0xa3, 0xd0, 0xf0,
0x08, 0x06, 0x83, 0x96, 0xe1, 0xe1, 0x61, 0x91, 0x37, 0x26, 0xc5, 0x18, 0x31, 0x8d, 0x47, 0xab,
0xd5, 0x82, 0x9a, 0xf6, 0xbc, 0xa8, 0x56, 0x28, 0x51, 0xdb, 0xac, 0x46, 0x6e, 0x8f, 0x17, 0x29,
0x9d, 0x41, 0x56, 0xa0, 0x0d, 0xa0, 0xdc, 0x1c, 0x45, 0xa1, 0x3e, 0x8c, 0xdc, 0x2e, 0x0f, 0x2a,
0x4c, 0x21, 0x54, 0xf7, 0x85, 0x51, 0x61, 0xf0, 0xb1, 0x6a, 0x93, 0x1f, 0x4d, 0x83, 0x22, 0x53,
0x39, 0x20, 0x29, 0x6d, 0x02, 0x6b, 0x77, 0x8a, 0xac, 0xca, 0xe8, 0x65, 0xa7, 0x9a, 0xfa, 0x58,
0x62, 0x91, 0x5a, 0xac, 0x1f, 0x64, 0x62, 0x45, 0x6f, 0x50, 0x48, 0x56, 0x98, 0x59, 0xbe, 0xbc,
0x1e, 0xc5, 0x15, 0x0d, 0x01, 0xca, 0xad, 0xf2, 0xcf, 0x01, 0xc0, 0x93, 0xef, 0xe8, 0xeb, 0xeb,
0x33, 0xd2, 0x8a, 0x7b, 0xa9, 0x31, 0xc5, 0xa6, 0xa6, 0xa6, 0x28, 0x45, 0xa0, 0xb6, 0xb6, 0x36,
0x4c, 0x3b, 0x81, 0x8e, 0x8e, 0x8e, 0xb3, 0x41, 0x3a, 0x00, 0x6a, 0x3c, 0x54, 0xb4, 0x9b, 0x71,
0xa2, 0x47, 0x62, 0x47, 0x95, 0x76, 0x14, 0xeb, 0x02, 0xa8, 0x30, 0x47, 0x70, 0xda, 0x10, 0x46,
0x89, 0x76, 0x0c, 0xe5, 0x7a, 0x2f, 0x14, 0x96, 0x30, 0xaa, 0x0c, 0x1e, 0x56, 0xda, 0xed, 0x84,
0xd2, 0x1a, 0x82, 0xda, 0x09, 0xb1, 0x65, 0x50, 0x94, 0xda, 0x06, 0x23, 0x28, 0xa3, 0xff, 0xe5,
0xb5, 0x5a, 0xa4, 0x7d, 0x39, 0x8a, 0x70, 0x93, 0x1d, 0x9e, 0xe6, 0x21, 0x84, 0xeb, 0xad, 0x82,
0x50, 0xa8, 0xe8, 0xc2, 0xf1, 0xb4, 0x3c, 0x3c, 0xf8, 0xe0, 0x83, 0x4d, 0x14, 0xff, 0x74, 0x51,
0x00, 0xbc, 0xde, 0xcf, 0x05, 0xd0, 0xda, 0xda, 0x6a, 0x49, 0x4d, 0x4d, 0x15, 0xa8, 0x84, 0x24,
0x52, 0x5f, 0x7e, 0x1f, 0x49, 0x49, 0x49, 0x11, 0xb7, 0x6f, 0xdf, 0x8e, 0xbc, 0xbc, 0xbc, 0x58,
0xf2, 0xed, 0xed, 0xed, 0xd8, 0x19, 0xb7, 0x0b, 0x65, 0x55, 0x0a, 0x14, 0x76, 0x39, 0x91, 0x63,
0x90, 0x58, 0x7c, 0x51, 0x37, 0x0e, 0x55, 0x1a, 0x51, 0xd3, 0x1f, 0x41, 0xa5, 0x39, 0x44, 0xff,
0x77, 0xa1, 0xd2, 0xe8, 0x43, 0x7d, 0x7f, 0x08, 0xa9, 0x35, 0x3d, 0x28, 0x69, 0x1f, 0x40, 0x8d,
0x61, 0x2c, 0x06, 0xa0, 0xcd, 0xc9, 0xc4, 0x56, 0x9b, 0x1f, 0xd5, 0xba, 0x11, 0x56, 0xa4, 0xb6,
0x48, 0x5b, 0x8f, 0x15, 0xb0, 0x46, 0x6b, 0x78, 0xac, 0xd5, 0x81, 0xb1, 0x96, 0x21, 0xf8, 0xca,
0x34, 0x2e, 0xea, 0xad, 0x7c, 0xec, 0xda, 0xbd, 0xd7, 0x4d, 0x0b, 0xec, 0xa7, 0x1c, 0x37, 0x91,
0x3d, 0x99, 0xf2, 0x8d, 0x00, 0x48, 0x92, 0xd4, 0x59, 0x57, 0x57, 0xc7, 0xa8, 0x64, 0xc4, 0x9e,
0x9e, 0x9e, 0x00, 0x95, 0x8a, 0xaf, 0xb9, 0xb9, 0x59, 0x54, 0x28, 0x14, 0x38, 0x17, 0x44, 0x61,
0x51, 0x09, 0x8a, 0xe5, 0xd5, 0xc8, 0x69, 0xb3, 0x23, 0xbb, 0x27, 0x84, 0x74, 0x95, 0x0b, 0x09,
0x65, 0x1a, 0xa4, 0x29, 0x8c, 0xa8, 0xb7, 0x84, 0x90, 0xdf, 0x36, 0x84, 0x1a, 0x53, 0x20, 0x06,
0xe0, 0x58, 0x59, 0x3b, 0xcb, 0x69, 0x34, 0x41, 0x61, 0xf6, 0xb1, 0x8e, 0x61, 0x88, 0x9a, 0x51,
0x88, 0x8d, 0x66, 0x0f, 0x94, 0x66, 0x2f, 0x2b, 0x6b, 0xb7, 0x4a, 0x7b, 0xd2, 0x4a, 0xa5, 0xaa,
0x1e, 0x47, 0xb0, 0x67, 0x04, 0xa3, 0x6d, 0x4e, 0xf8, 0x94, 0xfd, 0x01, 0x31, 0x2d, 0xaf, 0x12,
0xd9, 0x05, 0x95, 0xc1, 0x40, 0x20, 0x60, 0x23, 0x81, 0xec, 0x27, 0x00, 0x63, 0xd4, 0xd4, 0x4b,
0x7f, 0xfd, 0xeb, 0x5f, 0xff, 0xc3, 0x45, 0x01, 0x50, 0xb2, 0x76, 0x62, 0x9d, 0x58, 0xb2, 0x14,
0x8c, 0x07, 0x3f, 0xa7, 0x06, 0xc7, 0xb9, 0x20, 0x0a, 0x0a, 0x8b, 0x91, 0x5f, 0x5c, 0x81, 0x53,
0x2a, 0x3b, 0x0e, 0xd5, 0xf4, 0x23, 0x87, 0x6a, 0xbe, 0xc4, 0x10, 0x44, 0x62, 0x51, 0x2b, 0x32,
0x6b, 0xb5, 0xa8, 0xd4, 0xb9, 0x28, 0xf9, 0x20, 0x94, 0x04, 0xe6, 0xb8, 0x9c, 0x00, 0x28, 0x8d,
0x68, 0x1b, 0x12, 0x24, 0x9d, 0x1b, 0xa2, 0x81, 0xa2, 0xc9, 0x34, 0x8a, 0x8e, 0xc1, 0x20, 0xab,
0xe9, 0x19, 0x90, 0x92, 0x8a, 0x14, 0x51, 0xb9, 0xaa, 0x57, 0x30, 0xba, 0xe1, 0xa6, 0xc7, 0x02,
0xaa, 0x81, 0x80, 0x90, 0x56, 0x50, 0xc5, 0xbe, 0x3c, 0x92, 0x19, 0xa6, 0x9c, 0x8a, 0xb9, 0xe2,
0x8f, 0x8d, 0x8d, 0x59, 0x28, 0x0f, 0x2b, 0xe5, 0xeb, 0xb8, 0xff, 0xfe, 0xfb, 0x5f, 0x23, 0x20,
0x97, 0x8f, 0x0b, 0x80, 0x56, 0xdf, 0x4d, 0x02, 0x86, 0x8d, 0x1b, 0x37, 0x9e, 0x17, 0x9b, 0x37,
0x6f, 0x8e, 0x81, 0x20, 0x66, 0xc2, 0x8e, 0x1d, 0x3b, 0x90, 0x9b, 0x57, 0x88, 0xdc, 0x42, 0x39,
0xf2, 0x7a, 0x3c, 0xd8, 0x99, 0xa3, 0x46, 0x3e, 0x35, 0x72, 0xb9, 0x89, 0xea, 0xdd, 0xe8, 0x47,
0xfc, 0xa9, 0x3a, 0x94, 0x76, 0xda, 0xd1, 0x66, 0x0f, 0xa3, 0x6b, 0x58, 0x94, 0xb2, 0xea, 0xba,
0x21, 0xef, 0xb0, 0xa0, 0x77, 0x0c, 0xa2, 0xc9, 0x0b, 0x91, 0x12, 0x15, 0x9b, 0x8d, 0xc3, 0x30,
0x8e, 0x08, 0xac, 0x51, 0x6f, 0x97, 0x72, 0xaa, 0x55, 0x91, 0xb2, 0x56, 0x1d, 0x7a, 0xdd, 0xa2,
0xa7, 0xcf, 0x8b, 0x70, 0x83, 0xc1, 0x29, 0x64, 0xe4, 0x57, 0x4b, 0xbb, 0xf7, 0x1c, 0x15, 0x89,
0xed, 0x4e, 0x53, 0x5e, 0xc7, 0x29, 0xe4, 0xdc, 0x8b, 0x39, 0x1c, 0x8e, 0xfe, 0xe5, 0xcb, 0x97,
0x0f, 0x52, 0xde, 0xe6, 0x7f, 0xa7, 0xdb, 0x05, 0x00, 0xaa, 0xab, 0xab, 0x83, 0x64, 0x13, 0x2e,
0x00, 0xc0, 0x83, 0x74, 0x01, 0x4a, 0xa5, 0x32, 0xb6, 0x0b, 0x39, 0xb9, 0xf9, 0x38, 0x99, 0x5d,
0x82, 0xfc, 0xce, 0x61, 0xec, 0xca, 0x53, 0x21, 0xbb, 0xdd, 0x85, 0x12, 0x8d, 0x07, 0x95, 0x06,
0x2f, 0xf6, 0xe7, 0x36, 0xa0, 0xa4, 0xc3, 0x8e, 0x26, 0x6a, 0xda, 0xce, 0x61, 0x26, 0xa6, 0x57,
0xb6, 0xa1, 0xb2, 0xd3, 0x1a, 0x03, 0x60, 0xa6, 0x30, 0xb8, 0x22, 0xac, 0xc3, 0x32, 0x0a, 0x9b,
0x0f, 0x92, 0xba, 0xd7, 0x21, 0x9d, 0x6e, 0xe8, 0x8c, 0x34, 0x6a, 0x2c, 0xa2, 0x6e, 0xc8, 0x17,
0x1c, 0xf4, 0x23, 0x2a, 0x6f, 0xd1, 0x8b, 0xe9, 0xb9, 0x15, 0xd2, 0x96, 0x6d, 0xfb, 0xc1, 0x05,
0xf3, 0x8c, 0x13, 0xf8, 0x03, 0x90, 0x2a, 0x0a, 0x1b, 0xd9, 0x17, 0x13, 0x95, 0x95, 0x43, 0x46,
0x7f, 0xce, 0x03, 0x20, 0x97, 0xcb, 0xa5, 0x89, 0x00, 0xf0, 0x95, 0x3f, 0x03, 0x80, 0x5e, 0x18,
0xe9, 0x59, 0x85, 0x28, 0x68, 0xd0, 0x60, 0x7f, 0x99, 0x0e, 0xc5, 0x5a, 0x2f, 0x4a, 0xb5, 0x1e,
0x94, 0x76, 0x0f, 0x23, 0x21, 0xb7, 0x1e, 0x85, 0x2a, 0x0b, 0xea, 0x8c, 0x63, 0xac, 0xc5, 0xe2,
0x47, 0x56, 0x75, 0x3b, 0x1a, 0x74, 0x43, 0xac, 0x9f, 0x56, 0xdf, 0xea, 0x87, 0xa4, 0x1f, 0xf2,
0xc3, 0xe0, 0xf0, 0x61, 0x28, 0x00, 0xa9, 0xdb, 0x32, 0xcc, 0xaa, 0x5a, 0xba, 0x85, 0x66, 0x6d,
0x3f, 0xb3, 0xfb, 0x25, 0xff, 0x70, 0x10, 0x62, 0x5e, 0x55, 0x13, 0x3b, 0x91, 0x59, 0xcc, 0xd6,
0x6e, 0xd8, 0x1d, 0x3d, 0x27, 0xf9, 0x73, 0xa3, 0x81, 0x5c, 0x00, 0xef, 0x8b, 0xee, 0xf3, 0x00,
0x44, 0xa3, 0x51, 0x0d, 0xd1, 0x25, 0xfb, 0x26, 0x00, 0xea, 0xeb, 0xeb, 0x91, 0x71, 0x32, 0x07,
0x99, 0x05, 0x15, 0x48, 0x6a, 0xb0, 0xa1, 0x54, 0xef, 0x8f, 0x71, 0x7e, 0x6d, 0xaf, 0x17, 0x89,
0x79, 0xf5, 0xa8, 0xe8, 0x71, 0x80, 0x37, 0x2a, 0xaf, 0xf5, 0xbc, 0xda, 0x0e, 0xd4, 0xf7, 0x58,
0xa1, 0xb5, 0xfb, 0x98, 0xc9, 0x15, 0x62, 0x46, 0x87, 0x17, 0xd6, 0xb1, 0x30, 0xa3, 0x64, 0x25,
0xfd, 0xe0, 0x08, 0xab, 0x6e, 0xee, 0x64, 0x66, 0x87, 0x27, 0x32, 0x12, 0x46, 0x70, 0xc8, 0x17,
0x15, 0xe5, 0xca, 0x0e, 0xe9, 0xe0, 0x91, 0x0c, 0x24, 0x24, 0x26, 0xf5, 0x8f, 0x93, 0x7c, 0x2a,
0xe9, 0x92, 0xfd, 0xe5, 0x97, 0x5f, 0x76, 0x51, 0x05, 0x2d, 0x3a, 0x0f, 0x80, 0xc7, 0xe3, 0xb1,
0x50, 0x0f, 0x88, 0xdf, 0x04, 0x00, 0xa7, 0xd2, 0xc2, 0xc2, 0x22, 0x1c, 0xfe, 0x2a, 0x1d, 0xd9,
0x0a, 0x3d, 0xca, 0x8d, 0x41, 0xd4, 0x10, 0x00, 0xce, 0xed, 0x5f, 0xe6, 0xd7, 0x43, 0x61, 0x70,
0xb3, 0xae, 0x21, 0xea, 0x81, 0xc1, 0x00, 0x8a, 0x1b, 0xba, 0xd0, 0x66, 0x72, 0xa2, 0x77, 0x38,
0x00, 0x93, 0xd3, 0x87, 0xde, 0xa1, 0x31, 0x58, 0x47, 0x03, 0x6c, 0x34, 0xc4, 0x24, 0xd3, 0xd0,
0x28, 0xab, 0x6f, 0xeb, 0xc6, 0x68, 0x84, 0x05, 0xdd, 0x11, 0x44, 0xac, 0x23, 0x5e, 0x31, 0xb7,
0xa4, 0x86, 0xad, 0x5b, 0xb7, 0x9b, 0xc4, 0xd2, 0x58, 0x30, 0x0e, 0x80, 0x26, 0x2a, 0x9f, 0x3e,
0xf2, 0x4b, 0x9d, 0xb1, 0x26, 0x3e, 0x17, 0x00, 0x35, 0xc8, 0x08, 0x09, 0xd7, 0x37, 0x02, 0xc0,
0xa9, 0xb4, 0xa5, 0xa5, 0x05, 0xc7, 0x92, 0x4e, 0x22, 0x25, 0xbb, 0x8c, 0xca, 0x67, 0x0c, 0xb5,
0x7d, 0xa1, 0x58, 0x09, 0x1d, 0x22, 0x00, 0x8d, 0xbd, 0x6e, 0x74, 0x0f, 0x91, 0x70, 0xf5, 0x8d,
0x40, 0xde, 0x4c, 0xca, 0x3d, 0xe0, 0x66, 0x83, 0x5e, 0x81, 0xd9, 0xdc, 0x21, 0xf4, 0x0f, 0x7b,
0x31, 0x30, 0x1a, 0xc0, 0xb0, 0x3f, 0xca, 0xfa, 0x9d, 0x6e, 0x74, 0xe8, 0xcd, 0x92, 0x57, 0x40,
0x90, 0x42, 0xd4, 0xf6, 0x0f, 0x48, 0xfb, 0x12, 0x92, 0xb1, 0x79, 0xcb, 0xbe, 0xc0, 0x38, 0xc9,
0xa7, 0xf3, 0xd5, 0xff, 0xed, 0x6f, 0x7f, 0xeb, 0xbe, 0xef, 0xbe, 0xfb, 0x1e, 0xb9, 0x00, 0x80,
0xc5, 0x62, 0x09, 0x93, 0x90, 0x4d, 0x08, 0xe0, 0xf3, 0xcf, 0x3f, 0xc7, 0xc1, 0x83, 0x07, 0xcf,
0x9e, 0xd3, 0x44, 0x86, 0xf7, 0xdf, 0xff, 0x00, 0xf1, 0x7b, 0x8e, 0xe0, 0x44, 0x4e, 0x39, 0x52,
0x6b, 0xf5, 0x38, 0x54, 0xd4, 0x82, 0xc3, 0x05, 0xf5, 0x38, 0x5e, 0xa4, 0x40, 0x46, 0x59, 0x23,
0x72, 0xaa, 0x5b, 0x50, 0xac, 0x68, 0x83, 0xa2, 0x4d, 0x0f, 0xd3, 0x90, 0x07, 0x16, 0x4a, 0x9e,
0x56, 0x19, 0x0e, 0x6f, 0x08, 0x2e, 0x7f, 0x18, 0x03, 0x23, 0x1e, 0x18, 0x6d, 0x76, 0xd1, 0x2f,
0x22, 0xec, 0x13, 0x20, 0xe5, 0x14, 0x56, 0x60, 0xe5, 0x8a, 0xcf, 0xd1, 0xd8, 0xd8, 0x7a, 0x7a,
0x1c, 0x00, 0xad, 0x44, 0xf3, 0xbc, 0xf6, 0x95, 0x67, 0x75, 0x80, 0x03, 0xa0, 0x86, 0xb4, 0x12,
0x32, 0x9d, 0xd9, 0x6c, 0x66, 0x6d, 0x6d, 0x6d, 0xd2, 0xba, 0x75, 0xeb, 0xd8, 0x6f, 0x7e, 0xf3,
0x1b, 0x90, 0x0a, 0x82, 0xf8, 0x16, 0x77, 0xdd, 0x75, 0x17, 0xee, 0xb8, 0xe3, 0x0e, 0xd0, 0xe8,
0x08, 0xae, 0x09, 0x2b, 0x57, 0xae, 0x8c, 0x95, 0x10, 0xf9, 0x25, 0xe8, 0x74, 0x3a, 0x2c, 0x59,
0xf2, 0x11, 0xf6, 0x25, 0x24, 0x21, 0xb3, 0x58, 0x81, 0x6a, 0x83, 0x07, 0x19, 0xd5, 0x9d, 0xb4,
0x03, 0x2e, 0xe8, 0x1c, 0x41, 0xd6, 0xd1, 0xe7, 0x42, 0x8d, 0x5a, 0x0b, 0xb5, 0xde, 0x8a, 0xe6,
0x6e, 0x63, 0x2c, 0x79, 0xbb, 0xdb, 0x8f, 0x91, 0x60, 0x94, 0x8d, 0x06, 0x23, 0x18, 0x72, 0x7b,
0xd1, 0x3b, 0x60, 0x67, 0xbe, 0x88, 0x28, 0x94, 0x56, 0x2a, 0xb1, 0x66, 0x75, 0x1c, 0xe2, 0xe3,
0x0f, 0xe9, 0xc7, 0x49, 0x3e, 0x93, 0x44, 0x76, 0x88, 0x86, 0x2c, 0xcf, 0xaf, 0xe8, 0x76, 0x16,
0x00, 0xd5, 0x52, 0x0c, 0x00, 0x37, 0x70, 0xfd, 0xfd, 0xfd, 0x51, 0xb2, 0x0f, 0x91, 0x6b, 0xae,
0xb9, 0x86, 0xc9, 0x68, 0x54, 0xf8, 0x7a, 0x5c, 0x72, 0xc9, 0x25, 0xa0, 0xad, 0x8b, 0x1d, 0xd3,
0xb0, 0x0f, 0xab, 0xd5, 0x0a, 0xb2, 0x1d, 0xa0, 0x99, 0x00, 0xfb, 0xf7, 0x27, 0x92, 0xf4, 0x1f,
0x41, 0x4a, 0x4e, 0x05, 0xb2, 0x89, 0x75, 0x2a, 0x3a, 0xfb, 0x39, 0xeb, 0x48, 0x3a, 0xbb, 0x87,
0x55, 0x36, 0x77, 0xa1, 0xa5, 0xc7, 0x84, 0x4e, 0xa3, 0x05, 0xe6, 0xa1, 0x11, 0x0c, 0xfb, 0xf8,
0xea, 0x87, 0xe0, 0x0e, 0x45, 0x31, 0xe2, 0x0f, 0x32, 0x93, 0xd5, 0xce, 0xd2, 0x4f, 0x16, 0x63,
0xc5, 0xf2, 0x6d, 0x58, 0xb4, 0xe8, 0xb9, 0x08, 0x1f, 0x9c, 0xc6, 0x01, 0xd0, 0x46, 0xfd, 0xc9,
0x6b, 0xbf, 0xfc, 0x3c, 0x25, 0x3e, 0x03, 0x80, 0xea, 0x7f, 0x90, 0x06, 0x72, 0x3f, 0x95, 0x88,
0xff, 0xaa, 0xab, 0xae, 0x1a, 0x17, 0xc0, 0xa5, 0x97, 0x5e, 0x0a, 0x0e, 0x9e, 0x1f, 0x7f, 0xf8,
0xe1, 0x87, 0xa0, 0x81, 0x1f, 0x34, 0x9d, 0xc5, 0x80, 0xbd, 0xfe, 0xfa, 0xeb, 0x44, 0xad, 0xa5,
0x6c, 0xef, 0xde, 0xaf, 0xd8, 0xa6, 0x4d, 0x7b, 0x90, 0x94, 0x59, 0x02, 0x45, 0x67, 0x1f, 0x33,
0x38, 0xfd, 0x4c, 0xd1, 0xa6, 0x43, 0xab, 0xd6, 0x04, 0xad, 0x65, 0x08, 0x36, 0x97, 0x07, 0x63,
0x61, 0x91, 0x39, 0xbd, 0x7e, 0x98, 0x07, 0x9d, 0xa8, 0x52, 0xb4, 0x20, 0xf1, 0xc0, 0x09, 0xac,
0xfa, 0x74, 0x3b, 0x8e, 0x1e, 0xcf, 0xc0, 0x33, 0xcf, 0x3c, 0xef, 0x1d, 0x27, 0xf9, 0x2c, 0x51,
0x14, 0xed, 0x34, 0x93, 0xf8, 0x69, 0x01, 0x67, 0x8e, 0x0b, 0x80, 0x56, 0xdf, 0xe7, 0xa7, 0x1b,
0xf9, 0x8e, 0xb1, 0x8b, 0x01, 0xe0, 0x25, 0xc5, 0x8f, 0xdf, 0x7d, 0xf7, 0x5d, 0x1c, 0x3b, 0x76,
0x0c, 0x6f, 0xbc, 0xf1, 0x46, 0xec, 0x9c, 0x68, 0x0d, 0x54, 0x9f, 0x91, 0xf5, 0xeb, 0xd7, 0x0b,
0x3f, 0xfe, 0xf1, 0x4d, 0xf8, 0x78, 0xe9, 0x1a, 0xb6, 0x76, 0xcd, 0x2e, 0x1c, 0x3e, 0x9e, 0x8d,
0xa3, 0x29, 0x05, 0x48, 0xcf, 0x2e, 0x45, 0x5e, 0x71, 0x0d, 0x4a, 0xab, 0x9b, 0x50, 0x78, 0xba,
0x16, 0x07, 0x8f, 0xa4, 0xc7, 0x92, 0x5e, 0xbe, 0x6c, 0x33, 0xf6, 0xee, 0x3b, 0x86, 0xfa, 0x46,
0x15, 0x4e, 0xcb, 0x6b, 0xb0, 0xf2, 0xd3, 0x8d, 0xac, 0xb3, 0xb3, 0x33, 0xeb, 0x6b, 0x00, 0xba,
0xc8, 0xfd, 0xf6, 0xd1, 0x7b, 0xe7, 0x5d, 0x60, 0xe6, 0x38, 0x80, 0xe2, 0xe2, 0x62, 0x9b, 0x5e,
0xaf, 0xa7, 0x12, 0x93, 0x82, 0x09, 0x09, 0x09, 0xae, 0x8b, 0x01, 0xd8, 0xb4, 0x69, 0x53, 0xac,
0x37, 0x78, 0xf2, 0x3c, 0x72, 0x73, 0x73, 0xf1, 0xfc, 0xf3, 0xcf, 0x23, 0x2d, 0x2d, 0x8d, 0xf1,
0x73, 0x22, 0x04, 0xbc, 0xf8, 0xe2, 0x8b, 0x02, 0x9d, 0x87, 0xb2, 0xb3, 0x73, 0x23, 0xa9, 0x29,
0xd9, 0xd1, 0xf7, 0xdf, 0x5f, 0x29, 0x6d, 0x58, 0x1f, 0x27, 0x2d, 0x59, 0xb2, 0x9a, 0xad, 0xf8,
0x64, 0x2b, 0x5b, 0xb3, 0x7a, 0x27, 0xb6, 0x6e, 0x89, 0x87, 0xba, 0x5b, 0x87, 0x01, 0x17, 0x79,
0x22, 0x8d, 0x11, 0xb9, 0x45, 0xe5, 0x48, 0x3c, 0x98, 0x8c, 0x6b, 0xae, 0x99, 0xc2, 0xf8, 0x07,
0x08, 0xe7, 0x24, 0x9f, 0x23, 0x08, 0x82, 0x9d, 0xbb, 0x52, 0xea, 0xc5, 0x9f, 0x8f, 0x0b, 0xa0,
0xb0, 0xb0, 0xd0, 0x41, 0x73, 0x00, 0x1f, 0x60, 0x82, 0xfb, 0xf7, 0xef, 0x77, 0x4c, 0x9e, 0x3c,
0x19, 0x13, 0x01, 0x38, 0x7e, 0xfc, 0x38, 0xc8, 0x62, 0x23, 0x29, 0x29, 0x29, 0x06, 0x80, 0x38,
0x19, 0x46, 0xa3, 0x11, 0x34, 0xec, 0xc7, 0x00, 0x34, 0x34, 0x34, 0x80, 0x16, 0xc2, 0x47, 0x64,
0x10, 0x4e, 0x4c, 0x4c, 0x04, 0xcd, 0x16, 0x51, 0xea, 0x15, 0x1f, 0x5d, 0xe3, 0x27, 0x13, 0x26,
0x12, 0x73, 0x45, 0xb2, 0xb2, 0xb2, 0x84, 0xc2, 0xc2, 0xe2, 0x68, 0xa3, 0xaa, 0x8b, 0x4a, 0xa8,
0x19, 0xca, 0xb6, 0x0e, 0xa8, 0x7b, 0x34, 0x31, 0x6f, 0xf5, 0xd4, 0x7f, 0xbc, 0xe0, 0xff, 0xef,
0xc4, 0xa5, 0x63, 0x52, 0x64, 0x8c, 0x03, 0xd1, 0xe4, 0xe4, 0xe4, 0xf4, 0xd1, 0x73, 0x53, 0xc6,
0xb5, 0xd3, 0xb4, 0x2d, 0x5b, 0xc9, 0x5d, 0xba, 0x47, 0x46, 0x46, 0x22, 0x7c, 0xfa, 0xda, 0xbb,
0x77, 0xaf, 0x9b, 0x76, 0x60, 0x42, 0x00, 0x3c, 0x71, 0x1a, 0x2f, 0x41, 0x43, 0x3e, 0x0a, 0x0a,
0x0a, 0xd0, 0xdb, 0xdb, 0x1b, 0x03, 0xc0, 0x47, 0x4c, 0x0e, 0x80, 0x92, 0xe5, 0xaf, 0xe3, 0xa5,
0x5d, 0x15, 0xf9, 0x39, 0xe9, 0x06, 0xe3, 0xe7, 0xd4, 0x2f, 0x91, 0x3b, 0xef, 0xbc, 0x13, 0xc4,
0x70, 0x02, 0x11, 0x85, 0x44, 0x00, 0x83, 0xa7, 0x4b, 0x2b, 0x84, 0xaf, 0xbe, 0x3a, 0x2e, 0x66,
0x9c, 0xca, 0x87, 0xd6, 0x6c, 0xc6, 0xa9, 0xdc, 0x92, 0x18, 0x9b, 0x1d, 0xdd, 0xfe, 0xb6, 0xd0,
0x1e, 0xff, 0xc3, 0x80, 0x35, 0x6b, 0xee, 0x40, 0x38, 0x1c, 0x1e, 0xa4, 0x45, 0x0e, 0x90, 0xea,
0xde, 0x38, 0x21, 0x00, 0x7a, 0xc1, 0x60, 0x28, 0x14, 0xe2, 0x6f, 0xec, 0xd8, 0xbd, 0x7b, 0xb7,
0x70, 0xb1, 0x1d, 0xa0, 0xc4, 0x59, 0x51, 0x51, 0x91, 0xc8, 0x77, 0x82, 0x97, 0x0b, 0xe9, 0x06,
0xeb, 0xea, 0xea, 0x92, 0x68, 0x55, 0xb9, 0x5b, 0x95, 0x78, 0xb2, 0x3e, 0xba, 0xd1, 0x10, 0x14,
0x03, 0x64, 0x32, 0x99, 0x04, 0x7e, 0xce, 0x01, 0x9d, 0x01, 0x40, 0x60, 0x19, 0x95, 0x85, 0xd7,
0xed, 0x76, 0x87, 0x69, 0x87, 0x84, 0x55, 0x9f, 0x6e, 0x90, 0x72, 0x0a, 0xe4, 0x50, 0x57, 0x1d,
0x46, 0x53, 0xfc, 0x2f, 0x60, 0x3e, 0xf0, 0x7d, 0xb8, 0x29, 0xcc, 0xdb, 0x64, 0x28, 0x38, 0xfc,
0x91, 0x83, 0x1a, 0xf7, 0xcb, 0x09, 0x27, 0x32, 0x0e, 0x20, 0x33, 0x93, 0x53, 0xac, 0x14, 0x21,
0x2d, 0xb0, 0xc5, 0xc5, 0xc5, 0x61, 0xa2, 0x1d, 0xb8, 0xec, 0xb2, 0xcb, 0xf0, 0xe9, 0xa7, 0x9f,
0x32, 0xce, 0x3a, 0xab, 0x57, 0xaf, 0x66, 0xa4, 0xc4, 0x51, 0xa2, 0x53, 0xe9, 0x8f, 0x2c, 0x54,
0xc2, 0x88, 0x56, 0xa3, 0x57, 0x5c, 0x71, 0x05, 0x9e, 0x7e, 0xfa, 0x69, 0x50, 0xd2, 0x7c, 0x77,
0x02, 0x53, 0xa6, 0x4c, 0x61, 0x9c, 0xbd, 0x38, 0x00, 0x7a, 0x9e, 0x44, 0xd7, 0xf1, 0x72, 0xe5,
0x6c, 0x13, 0x22, 0x4f, 0x25, 0x1c, 0xdc, 0xf1, 0x31, 0x53, 0x7d, 0x79, 0x2f, 0x74, 0x69, 0x4f,
0x20, 0xd4, 0xb5, 0x8d, 0xe4, 0xea, 0x19, 0x84, 0xb3, 0xff, 0x0d, 0xa3, 0xf1, 0x93, 0x51, 0xb7,
0xee, 0x4a, 0xf6, 0xfa, 0x93, 0x37, 0x4f, 0xf8, 0x61, 0xb1, 0x8c, 0xb6, 0x26, 0xe1, 0xe4, 0xc9,
0x93, 0x7c, 0x9b, 0x05, 0x8a, 0xde, 0x2f, 0xbe, 0xf8, 0x22, 0x74, 0x31, 0x00, 0x34, 0xa3, 0xc6,
0x1a, 0x7c, 0xe9, 0xd2, 0xa5, 0xcc, 0xe9, 0x74, 0x52, 0x83, 0xbe, 0x1f, 0x7b, 0xec, 0xd1, 0x47,
0x1f, 0xe5, 0x2c, 0x24, 0x2c, 0x59, 0xb2, 0x24, 0x76, 0x7e, 0xeb, 0xad, 0xb7, 0xf2, 0x1d, 0xe2,
0x65, 0x14, 0xe1, 0xe7, 0x37, 0xdc, 0x70, 0x43, 0x4c, 0x10, 0xdf, 0x7a, 0xeb, 0x2d, 0x46, 0x4e,
0x32, 0x44, 0xa5, 0x11, 0x20, 0xd2, 0x13, 0xab, 0x8a, 0xd3, 0xc5, 0xca, 0xcf, 0xae, 0x80, 0xab,
0xee, 0x6d, 0x88, 0x3e, 0x23, 0xe0, 0xe9, 0x00, 0x0c, 0x9b, 0x21, 0xd5, 0x3c, 0x8c, 0x40, 0xf2,
0x4d, 0xb0, 0x6e, 0x96, 0xa1, 0x6d, 0xb3, 0x6c, 0xcb, 0x84, 0x00, 0xa8, 0x39, 0xa8, 0xff, 0xf2,
0xf9, 0x8a, 0xf0, 0xe9, 0xa7, 0x97, 0x37, 0xf1, 0x44, 0x2c, 0xc4, 0x01, 0x90, 0x1a, 0x8b, 0xfc,
0x98, 0x86, 0x9e, 0x28, 0x2f, 0x81, 0x15, 0x2b, 0x56, 0x44, 0xf9, 0x39, 0x29, 0x77, 0xac, 0x7c,
0x0e, 0x1d, 0x3a, 0x14, 0xe2, 0xe7, 0xb7, 0xdc, 0x72, 0x0b, 0x07, 0x24, 0xc6, 0xc7, 0xc7, 0xc7,
0xae, 0xff, 0xde, 0xf7, 0xbe, 0x17, 0xdb, 0x01, 0xa2, 0x5d, 0x46, 0x7a, 0x13, 0xa4, 0xde, 0x61,
0x5c, 0xc9, 0xa9, 0x41, 0xa5, 0x9d, 0x6f, 0xfe, 0x2b, 0xcc, 0x69, 0x33, 0x11, 0xe9, 0x4b, 0x06,
0x18, 0xbd, 0x8c, 0xa3, 0x10, 0xe8, 0x7c, 0x13, 0xd1, 0xe2, 0xbb, 0xe0, 0x4d, 0xfc, 0x47, 0xf4,
0x6c, 0x92, 0x89, 0xed, 0x9b, 0x64, 0xb7, 0x4c, 0xb4, 0x03, 0x72, 0xa2, 0x42, 0x91, 0xca, 0x87,
0xf7, 0x40, 0x88, 0x84, 0x2c, 0x48, 0x3d, 0x30, 0xa1, 0x12, 0x13, 0x8b, 0x08, 0x1c, 0x08, 0xff,
0xb4, 0x82, 0x27, 0x5c, 0x5b, 0x5b, 0x1b, 0xe0, 0xff, 0x27, 0x83, 0xc7, 0xbd, 0xbb, 0x97, 0x66,
0xe8, 0xe0, 0xe5, 0x97, 0x5f, 0x4e, 0x82, 0xf4, 0x8c, 0xc4, 0x3f, 0xf0, 0xa5, 0xfe, 0x60, 0xd7,
0x5f, 0x7f, 0x3d, 0xe3, 0x7d, 0x45, 0x20, 0x18, 0x11, 0x40, 0x84, 0x7a, 0x8e, 0x25, 0x27, 0x27,
0xc3, 0xe5, 0x72, 0xb1, 0x9a, 0x9a, 0x1a, 0xf6, 0xf8, 0xfc, 0x87, 0xa5, 0xc2, 0x95, 0x53, 0x05,
0xaf, 0xf2, 0x75, 0x08, 0xc3, 0xf5, 0x94, 0x85, 0x0d, 0xe8, 0x4f, 0x24, 0xdf, 0xb9, 0x10, 0xa1,
0xcc, 0x5f, 0xc0, 0xb9, 0x63, 0x12, 0x5a, 0xd6, 0xcb, 0xc8, 0xff, 0xc8, 0x2e, 0xb9, 0x00, 0x00,
0x35, 0xc8, 0x2e, 0xa2, 0xc5, 0x20, 0xe9, 0x80, 0x48, 0xc9, 0x44, 0x68, 0x74, 0x0c, 0x4f, 0xd4,
0xc4, 0x57, 0x5f, 0x7d, 0x35, 0xa6, 0x4f, 0x9f, 0x1e, 0xbb, 0x27, 0x3d, 0x88, 0x92, 0xa1, 0x0b,
0xf3, 0xe0, 0x80, 0xc8, 0x1f, 0x45, 0xf8, 0x31, 0xed, 0x88, 0x74, 0xdd, 0x75, 0xd7, 0xb1, 0x57,
0x5f, 0x7d, 0x35, 0xfa, 0xec, 0xb3, 0xcf, 0xb2, 0x65, 0xcb, 0x96, 0x09, 0xdc, 0x6a, 0x4c, 0x9b,
0x36, 0x0d, 0x57, 0x5e, 0x79, 0x25, 0x36, 0x6c, 0xd8, 0x10, 0xa1, 0x3e, 0x12, 0xf9, 0x68, 0x4a,
0xf6, 0x45, 0xa0, 0xf7, 0xe4, 0xf6, 0x44, 0x4a, 0x8d, 0x7f, 0x47, 0xad, 0xda, 0xf5, 0x7d, 0x84,
0xb4, 0xbb, 0x20, 0x85, 0xec, 0x80, 0x9b, 0xf2, 0xd5, 0xae, 0x82, 0x58, 0x31, 0x07, 0xfe, 0xa3,
0x3f, 0x82, 0x71, 0x83, 0x0c, 0x8d, 0xeb, 0x65, 0x6f, 0x8c, 0xb7, 0x03, 0x5c, 0xc8, 0xb8, 0x1b,
0x6d, 0x26, 0x01, 0xc9, 0xa5, 0x44, 0x8c, 0xb4, 0x82, 0x17, 0xec, 0x00, 0xef, 0x0b, 0x52, 0x5b,
0x89, 0x9a, 0x34, 0xb6, 0x9a, 0x64, 0x21, 0x18, 0x85, 0x44, 0x8a, 0x1c, 0xdb, 0x91, 0xd7, 0x5e,
0x7b, 0x2d, 0xfa, 0xce, 0x3b, 0xef, 0x44, 0xa8, 0x44, 0x84, 0xa9, 0x53, 0xa7, 0x32, 0xda, 0x81,
0xe8, 0x0b, 0x2f, 0xbc, 0x20, 0x52, 0xc9, 0xb1, 0x79, 0xf3, 0xe6, 0x61, 0xcd, 0x9a, 0x35, 0x31,
0x93, 0xf8, 0xdc, 0x73, 0xcf, 0xf1, 0x6b, 0x45, 0x62, 0x2c, 0x46, 0x83, 0x3a, 0x23, 0x00, 0x8c,
0x00, 0x88, 0x2a, 0x95, 0x2a, 0xab, 0x60, 0xe3, 0x6c, 0xdb, 0x40, 0xde, 0x43, 0x88, 0xd8, 0x72,
0x48, 0x06, 0x42, 0xc0, 0x60, 0x26, 0x39, 0xa0, 0xff, 0x44, 0x24, 0x7f, 0x16, 0xdc, 0x7b, 0xa7,
0xa0, 0x75, 0xad, 0xcc, 0xdb, 0xb4, 0x56, 0xf6, 0x83, 0x09, 0x01, 0x70, 0x01, 0x21, 0x61, 0xca,
0x9c, 0x33, 0x67, 0x8e, 0x89, 0xfe, 0xcf, 0x87, 0x66, 0x2b, 0xc5, 0x30, 0x85, 0xf7, 0x77, 0xbf,
0xfb, 0x5d, 0x98, 0x7a, 0x45, 0xba, 0xe7, 0x9e, 0x7b, 0x44, 0x4a, 0x48, 0x22, 0xb0, 0x9c, 0x0a,
0x79, 0xf3, 0x33, 0xbe, 0xb2, 0xbc, 0x1f, 0xe8, 0x98, 0x8b, 0x90, 0x97, 0x83, 0xb9, 0xf7, 0xde,
0x7b, 0x45, 0x4e, 0x9f, 0xfc, 0x9c, 0xea, 0x5d, 0x22, 0x36, 0x0a, 0x73, 0xab, 0xc1, 0x5f, 0x83,
0x6b, 0x09, 0xe9, 0x02, 0x0b, 0x04, 0x02, 0x8c, 0x66, 0x70, 0x46, 0x1e, 0xc7, 0x47, 0xbb, 0x91,
0x54, 0x27, 0xcf, 0x55, 0xcb, 0x3f, 0x9b, 0xca, 0x02, 0xea, 0xe5, 0x10, 0xdd, 0xed, 0xf4, 0x6a,
0x64, 0x4a, 0x4d, 0xbb, 0xc0, 0xea, 0xe7, 0x23, 0x98, 0xfa, 0x2f, 0xb0, 0x6d, 0xbe, 0x14, 0xb5,
0xab, 0x64, 0xe9, 0x17, 0x05, 0x40, 0xa6, 0x2e, 0x85, 0x86, 0xf7, 0x6a, 0xaa, 0xe9, 0x0b, 0x62,
0xf6, 0xec, 0xd9, 0x03, 0x33, 0x67, 0xce, 0x74, 0x35, 0x36, 0x36, 0x76, 0xd3, 0x1b, 0x8f, 0xd2,
0xf3, 0x18, 0x39, 0x44, 0x4c, 0x9a, 0x34, 0x89, 0x0b, 0x18, 0x23, 0xc3, 0xc5, 0x01, 0xd1, 0x9d,
0x18, 0xa1, 0x95, 0x16, 0xe9, 0xb5, 0x45, 0xaa, 0xf5, 0x20, 0xf9, 0x2b, 0x81, 0x2c, 0x8a, 0x48,
0x89, 0x87, 0xf8, 0x39, 0xdd, 0x07, 0x07, 0x07, 0x07, 0x03, 0xc4, 0x44, 0x8c, 0xcf, 0xd6, 0x0b,
0x16, 0x2c, 0x18, 0xa5, 0xe7, 0x25, 0x0d, 0x0d, 0x0d, 0x0d, 0xae, 0x7e, 0xe5, 0x2e, 0x6f, 0xc7,
0xfe, 0x9b, 0x10, 0x36, 0x1e, 0x00, 0x13, 0x88, 0x69, 0x5d, 0x15, 0x40, 0xf7, 0x47, 0x10, 0x4a,
0x7f, 0x05, 0xdf, 0xa1, 0xeb, 0xd1, 0xb1, 0x46, 0x86, 0xaa, 0x95, 0xb2, 0x79, 0x13, 0x02, 0xa0,
0xc4, 0x72, 0x69, 0x95, 0x2d, 0xe3, 0x05, 0x79, 0x71, 0x0d, 0x51, 0x5f, 0xf2, 0x19, 0x9f, 0x42,
0x89, 0x26, 0xd3, 0x0c, 0x51, 0x45, 0x13, 0x52, 0x90, 0x83, 0xe1, 0xc9, 0xf0, 0x0f, 0xc5, 0xf8,
0x8a, 0x53, 0x83, 0x0a, 0x1f, 0x7f, 0xfc, 0xb1, 0xb4, 0x70, 0xe1, 0x42, 0x46, 0x09, 0xb2, 0xf9,
0xf3, 0xe7, 0x33, 0xee, 0xa1, 0xf8, 0xee, 0xd1, 0xb9, 0x40, 0xfc, 0xcf, 0x49, 0x40, 0xe2, 0x16,
0x84, 0x7a, 0x65, 0x90, 0x8e, 0x6b, 0x89, 0x9d, 0xfa, 0x67, 0xde, 0x76, 0x9b, 0x23, 0xe9, 0x35,
0x59, 0x9b, 0x53, 0xfe, 0x14, 0xa2, 0xf6, 0x32, 0x20, 0x4a, 0xd8, 0xac, 0xe4, 0xae, 0x5b, 0x9f,
0x8e, 0x69, 0x83, 0x2b, 0x6e, 0x32, 0x6a, 0x57, 0xc8, 0xfa, 0xf3, 0xd7, 0xca, 0x26, 0xc7, 0x00,
0x90, 0xc0, 0x6c, 0x25, 0x65, 0x3d, 0x0b, 0xe0, 0x7f, 0x1a, 0x54, 0x52, 0x39, 0xc4, 0x3a, 0x56,
0xae, 0xac, 0x54, 0x86, 0x61, 0xaa, 0x69, 0x51, 0x2e, 0x97, 0x33, 0x3a, 0x67, 0xc4, 0x4c, 0x02,
0x51, 0xa6, 0x40, 0x65, 0x22, 0x92, 0xd7, 0x67, 0xb4, 0x08, 0xa0, 0x7b, 0x81, 0x98, 0x8f, 0x7f,
0x7c, 0xc9, 0x96, 0x2f, 0x5f, 0xae, 0xa3, 0xd7, 0x18, 0x78, 0xfb, 0xed, 0xb7, 0xed, 0xbf, 0xfc,
0xe5, 0x2f, 0x17, 0x3f, 0x3d, 0x4b, 0xf6, 0x84, 0xfc, 0xb3, 0xef, 0x08, 0xc1, 0xae, 0x8d, 0x90,
0x62, 0xda, 0x40, 0xe5, 0x64, 0xd8, 0x44, 0xda, 0x30, 0x17, 0x81, 0xa4, 0x1b, 0x61, 0x58, 0x27,
0x43, 0xe9, 0x52, 0xd9, 0xb6, 0xaf, 0x03, 0x20, 0x05, 0x41, 0xee, 0xff, 0x36, 0x08, 0x48, 0x0d,
0x25, 0x3f, 0x42, 0x16, 0x23, 0x4a, 0x2d, 0x10, 0xb3, 0x28, 0x54, 0x1a, 0x7e, 0xad, 0x56, 0xeb,
0xe7, 0x42, 0xa7, 0x50, 0x28, 0x38, 0x20, 0x89, 0x56, 0x9b, 0x0b, 0x21, 0xff, 0x94, 0x4f, 0xa2,
0x06, 0xb7, 0x93, 0xe5, 0xe8, 0xa3, 0xbe, 0xe9, 0xe5, 0xdf, 0x57, 0x10, 0x69, 0x4c, 0xdf, 0xf9,
0xb4, 0xec, 0x4b, 0xcd, 0xb1, 0xdb, 0x48, 0x1b, 0xb8, 0x9f, 0xa3, 0xca, 0x74, 0xd0, 0x7c, 0xdf,
0x41, 0xda, 0x50, 0x74, 0x17, 0x46, 0xf7, 0x5f, 0x87, 0x8a, 0x65, 0x97, 0x88, 0x65, 0xcb, 0x65,
0xb7, 0xca, 0xe8, 0x49, 0x2b, 0xa8, 0xbe, 0x6d, 0xfc, 0xcb, 0x3c, 0x7a, 0xc3, 0x6f, 0x2d, 0xa8,
0x84, 0x9c, 0x7c, 0xc2, 0xa3, 0x44, 0x25, 0x8f, 0xc7, 0x23, 0x72, 0xd5, 0xa5, 0x08, 0xd3, 0x63,
0x01, 0x7a, 0x2c, 0x4c, 0xa0, 0xf8, 0x63, 0x22, 0x99, 0xc7, 0x10, 0xf9, 0x2f, 0xdf, 0x4b, 0x2f,
0xbd, 0xe4, 0x98, 0x35, 0x6b, 0xd6, 0x53, 0xb1, 0x55, 0x95, 0xc9, 0x2e, 0x9b, 0x36, 0x55, 0x76,
0x5b, 0xfa, 0x9b, 0x97, 0xda, 0xc6, 0xea, 0xff, 0xa8, 0x0d, 0xa2, 0xe1, 0x0b, 0xe8, 0x8f, 0xfc,
0x02, 0xf9, 0xcb, 0xbe, 0x8b, 0x7d, 0xcb, 0x1e, 0xb6, 0x67, 0xac, 0x95, 0x4d, 0xe2, 0x3a, 0x70,
0x3d, 0xd9, 0x83, 0x5a, 0x62, 0x1e, 0x3b, 0x0f, 0xf2, 0x46, 0x67, 0x83, 0x54, 0xfa, 0xbc, 0xa0,
0x7e, 0x39, 0x2f, 0xe8, 0xb9, 0xe7, 0x05, 0xed, 0xe6, 0xd9, 0xa0, 0x85, 0x39, 0x13, 0x6e, 0xce,
0x48, 0x74, 0xbd, 0x44, 0xf5, 0x2f, 0x12, 0xe3, 0x88, 0x64, 0x3b, 0x22, 0x73, 0xe7, 0xce, 0x0d,
0xf2, 0xf8, 0xfd, 0xef, 0x7f, 0xef, 0x23, 0x4d, 0xb0, 0xd1, 0x35, 0xdd, 0x94, 0xf8, 0x59, 0xa1,
0xa2, 0xdb, 0x94, 0xf7, 0x1e, 0x92, 0x2d, 0xae, 0xdb, 0xf2, 0x7d, 0xf8, 0xbb, 0xb6, 0x43, 0x53,
0xbc, 0x1e, 0xf9, 0x2b, 0x6f, 0x42, 0x5e, 0xc2, 0xdb, 0x38, 0x7a, 0x2c, 0x85, 0x4c, 0xe1, 0x16,
0xc3, 0x5f, 0xed, 0xa7, 0x06, 0xbc, 0x2c, 0xee, 0xb8, 0xe3, 0x8e, 0x57, 0xee, 0xbe, 0xfb, 0xee,
0x21, 0x52, 0xf2, 0x01, 0xa2, 0x5c, 0xdb, 0x1f, 0xbe, 0x50, 0x21, 0x8a, 0x81, 0x9d, 0x8c, 0x9f,
0xeb, 0xf6, 0xdb, 0x6f, 0x9f, 0x7f, 0x81, 0x48, 0xc9, 0x64, 0x37, 0x26, 0x3c, 0x2f, 0xcb, 0xcf,
0xfa, 0xf0, 0x5a, 0x51, 0x5d, 0xb8, 0x1e, 0x5a, 0xa3, 0x06, 0x55, 0xf5, 0x4d, 0x38, 0x9a, 0x94,
0x81, 0x4f, 0x3e, 0x59, 0xb9, 0xe4, 0xaf, 0xfe, 0x5b, 0x89, 0x19, 0x33, 0x66, 0x5c, 0x49, 0x54,
0xfc, 0x11, 0x01, 0x71, 0x93, 0x47, 0xb2, 0x52, 0x49, 0xd9, 0x88, 0x92, 0x4d, 0xc4, 0x70, 0x4d,
0xe3, 0xfa, 0x1c, 0x99, 0x6c, 0xd2, 0x2d, 0xd3, 0x64, 0xf7, 0xcc, 0x9e, 0xf1, 0x9d, 0xfb, 0x77,
0xc4, 0xc5, 0xa5, 0xa7, 0x66, 0x64, 0xda, 0x13, 0x0e, 0x1c, 0x32, 0xbf, 0xf3, 0xce, 0x7b, 0x6b,
0xce, 0xec, 0xd6, 0xdf, 0xe4, 0x07, 0x1a, 0x54, 0x2e, 0xd7, 0x90, 0xb1, 0xdb, 0x40, 0xbb, 0x12,
0xa0, 0x7b, 0x1f, 0x81, 0x9a, 0x3d, 0xa1, 0xdb, 0x94, 0xc9, 0xae, 0xa0, 0xb8, 0x92, 0xe2, 0x47,
0x14, 0xff, 0xcc, 0x1b, 0x9c, 0xe2, 0xf2, 0xbf, 0x8b, 0x5f, 0xab, 0xdc, 0x7c, 0xf3, 0xcd, 0x93,
0xbe, 0xfe, 0x85, 0xc5, 0x9f, 0x1b, 0xff, 0x05, 0x15, 0x63, 0xa5, 0xc9, 0x16, 0xbd, 0x27, 0x50,
0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
0x87, 0x00, 0x00, 0x13, 0x81, 0x49, 0x44, 0x41, 0x54, 0x68, 0xde, 0xdd, 0x5a, 0x07, 0x74, 0x5b,
0x65, 0x96, 0x16, 0x25, 0xc9, 0x12, 0x86, 0x13, 0xca, 0xc2, 0x0e, 0xc9, 0x72, 0x58, 0xd8, 0xb0,
0x30, 0x94, 0xb3, 0x90, 0x90, 0x02, 0x0c, 0x0b, 0x01, 0x02, 0x24, 0x90, 0x1c, 0xca, 0x10, 0x3a,
0x2c, 0x2d, 0x94, 0x84, 0x34, 0x52, 0x48, 0x99, 0xf4, 0x4a, 0x48, 0x2f, 0x8e, 0x49, 0x21, 0x8e,
0xed, 0x38, 0xb6, 0xe3, 0xb8, 0x97, 0xd8, 0xb2, 0xe3, 0x26, 0x17, 0xd9, 0x96, 0x6d, 0xb9, 0x48,
0x96, 0x25, 0xd9, 0x2a, 0xb6, 0x2c, 0xb9, 0xc8, 0x92, 0xd5, 0xdf, 0x7b, 0xff, 0xdd, 0xef, 0xd7,
0x4e, 0x32, 0x09, 0xb1, 0x33, 0xcc, 0x2e, 0x53, 0x76, 0x75, 0xce, 0xf5, 0x7b, 0xbf, 0xf5, 0xf4,
0x74, 0xbf, 0xff, 0xde, 0xfb, 0xdd, 0xef, 0x4a, 0x92, 0x11, 0x91, 0xec, 0xff, 0xb2, 0xc9, 0xfe,
0x5f, 0x03, 0x18, 0x3f, 0x7e, 0xfc, 0xb0, 0x99, 0x33, 0x67, 0x1e, 0x7f, 0xe5, 0x95, 0x57, 0xf2,
0x5f, 0x7c, 0xf1, 0xc5, 0x55, 0xd3, 0xa6, 0x4d, 0x7b, 0xea, 0x8d, 0x37, 0xde, 0xb8, 0x6e, 0xb0,
0x6b, 0xf1, 0xdc, 0x3f, 0xe3, 0xda, 0xd4, 0x19, 0x33, 0x66, 0x1c, 0x7b, 0xee, 0xb9, 0xe7, 0xee,
0xfe, 0xbb, 0x00, 0xf0, 0xfc, 0xf3, 0xcf, 0xcf, 0x5e, 0xb5, 0x6a, 0x95, 0x4d, 0xa7, 0xd3, 0x99,
0x92, 0x93, 0x93, 0xcd, 0x0b, 0x17, 0x2e, 0x74, 0xc0, 0xd1, 0x20, 0x1c, 0xad, 0x9d, 0x3e, 0x7d,
0xfa, 0x0e, 0x3c, 0x3f, 0xe3, 0x85, 0x17, 0x5e, 0xb8, 0x99, 0x5f, 0x0b, 0xc7, 0xe5, 0xf1, 0xf1,
0xf1, 0xe6, 0xac, 0xac, 0x2c, 0x33, 0x00, 0xfb, 0xb0, 0x8e, 0xc4, 0x35, 0xbf, 0xfe, 0x9b, 0x02,
0x80, 0xa3, 0x49, 0xb5, 0xb5, 0xb5, 0x26, 0x9c, 0x37, 0xc1, 0xea, 0x61, 0x66, 0x51, 0x14, 0xed,
0x1d, 0x1d, 0x1d, 0xe6, 0xbc, 0xbc, 0x3c, 0xf3, 0xda, 0xb5, 0x6b, 0x3b, 0xe1, 0x68, 0xf0, 0xe5,
0x97, 0x5f, 0xb6, 0xbe, 0xf6, 0xda, 0x6b, 0xc1, 0x9c, 0x9c, 0x9c, 0x7e, 0xab, 0xd5, 0xda, 0x1a,
0x0c, 0x06, 0x3b, 0x13, 0x12, 0x12, 0x2c, 0xaf, 0xbe, 0xfa, 0xaa, 0x77, 0xdb, 0xae, 0xdd, 0xc9,
0x8a, 0x86, 0xd6, 0x13, 0x15, 0x1a, 0xe3, 0xf6, 0x72, 0x6d, 0xdb, 0x3c, 0x55, 0x53, 0xeb, 0x4c,
0x55, 0x83, 0xf6, 0xd1, 0xb2, 0xa6, 0xa6, 0x9b, 0xff, 0xe2, 0x00, 0x5e, 0x7a, 0xe9, 0xa5, 0x2e,
0xb7, 0xdb, 0x6d, 0xc1, 0x79, 0x3a, 0x2c, 0x6a, 0x60, 0x60, 0x20, 0x06, 0xc7, 0x78, 0x58, 0x1e,
0xac, 0x06, 0x66, 0x64, 0x8c, 0x39, 0x8c, 0x46, 0x63, 0xb0, 0xbc, 0xbc, 0x5c, 0x8c, 0x8c, 0x8c,
0x0c, 0x7d, 0xf2, 0xe9, 0xa7, 0xc2, 0xae, 0x03, 0x91, 0xa2, 0xbc, 0x52, 0x25, 0xd5, 0x69, 0x75,
0x54, 0xa7, 0x33, 0x50, 0x49, 0x53, 0x3b, 0x2b, 0x6d, 0x36, 0x09, 0x15, 0x9a, 0xb6, 0x50, 0x95,
0x46, 0x2f, 0x54, 0x6b, 0x74, 0xa2, 0xb2, 0xbe, 0x49, 0xcc, 0xaf, 0xd1, 0x66, 0x15, 0x55, 0xd6,
0xdf, 0xf5, 0x17, 0x01, 0xc0, 0x73, 0x1a, 0x3b, 0xe8, 0xc7, 0xb9, 0x1d, 0x16, 0xd3, 0xd7, 0xd7,
0x17, 0x3b, 0x72, 0xe4, 0xc8, 0xe0, 0xe8, 0xd1, 0xa3, 0x5d, 0x00, 0xd6, 0xb2, 0x6d, 0xdb, 0xb6,
0x62, 0x8d, 0x46, 0x93, 0x68, 0xb3, 0xd9, 0x0a, 0x9a, 0x9a, 0x9a, 0x42, 0xb8, 0x26, 0xe4, 0xf1,
0xfb, 0xbd, 0xb5, 0xda, 0x56, 0xaa, 0xd5, 0x9b, 0xa8, 0x54, 0x67, 0x67, 0xd9, 0x9a, 0x5e, 0x16,
0x59, 0xde, 0x4d, 0x3b, 0x72, 0x0d, 0x6c, 0x5b, 0x86, 0x86, 0xad, 0x49, 0x6a, 0x90, 0x36, 0x64,
0x9b, 0x1d, 0x3b, 0xcb, 0xdc, 0xba, 0x04, 0x55, 0x77, 0x77, 0x91, 0xda, 0x10, 0x28, 0x55, 0xaa,
0xd8, 0xd9, 0x0a, 0x75, 0x51, 0x5e, 0x51, 0xf9, 0x6f, 0x7e, 0x51, 0x00, 0xc8, 0xef, 0xb7, 0xb6,
0x6e, 0xdd, 0x6a, 0xc5, 0x79, 0x2b, 0xdf, 0x7d, 0x6e, 0x48, 0x8d, 0x13, 0xe9, 0xe9, 0xe9, 0x99,
0xf3, 0xe6, 0xcd, 0xab, 0x9e, 0x34, 0x69, 0x92, 0xe5, 0xfa, 0xeb, 0xaf, 0x0f, 0x8e, 0x19, 0x33,
0x46, 0x2a, 0x2e, 0x2e, 0xf6, 0x75, 0x76, 0xf7, 0x7a, 0x6a, 0x9b, 0xb5, 0x54, 0xae, 0xb7, 0xb1,
0xe8, 0x06, 0xbf, 0x14, 0x5b, 0x3f, 0xc0, 0xd2, 0x5a, 0x43, 0xa2, 0xdc, 0x4c, 0xa2, 0xdc, 0xc4,
0xc4, 0xec, 0x16, 0x2f, 0x8b, 0xaf, 0xee, 0x64, 0xdb, 0x93, 0x95, 0x6c, 0xc1, 0xc1, 0x0c, 0xb6,
0x20, 0x32, 0xc7, 0xbd, 0x26, 0xb9, 0xd1, 0x14, 0x57, 0xd9, 0xd9, 0x97, 0xaf, 0x6a, 0x09, 0xe4,
0x97, 0x56, 0x4a, 0x99, 0xe7, 0xaa, 0x3e, 0xff, 0xc5, 0x00, 0xa0, 0x00, 0x23, 0x0a, 0x0b, 0x0b,
0xcd, 0x38, 0x57, 0x72, 0xe7, 0x91, 0xd3, 0xd9, 0x37, 0xdd, 0x74, 0x93, 0x77, 0xc2, 0x84, 0x09,
0x96, 0x25, 0x4b, 0x96, 0x54, 0x22, 0xdf, 0xd3, 0x5b, 0x5b, 0x5b, 0x8b, 0xe6, 0xcf, 0x9f, 0x2f,
0x1c, 0x3c, 0x1a, 0xc5, 0x6a, 0x1a, 0x35, 0x24, 0xd7, 0x76, 0x4b, 0xfb, 0x14, 0x0e, 0xe9, 0x44,
0x55, 0x77, 0x30, 0xd3, 0x20, 0x78, 0xa3, 0x95, 0x0e, 0xe1, 0x87, 0xa2, 0x76, 0x96, 0xa8, 0x76,
0x05, 0xcf, 0xb6, 0x31, 0xff, 0x39, 0x0b, 0x09, 0x8a, 0x4e, 0x62, 0xc5, 0x56, 0x89, 0x25, 0xab,
0x9d, 0xec, 0x68, 0xb1, 0x51, 0xda, 0x94, 0x50, 0x19, 0x58, 0x15, 0x53, 0x2a, 0x25, 0x29, 0xb4,
0x52, 0x4e, 0x7e, 0x09, 0x5b, 0xbf, 0x6d, 0xdf, 0xbe, 0x67, 0x9e, 0x79, 0x66, 0xcc, 0xcf, 0x06,
0x00, 0x5a, 0xbc, 0x06, 0x4c, 0xf2, 0x11, 0x6c, 0xeb, 0x79, 0x9b, 0x3a, 0x75, 0xea, 0x56, 0xd0,
0x66, 0xcf, 0x8e, 0x1d, 0x3b, 0x5c, 0x3b, 0x77, 0xee, 0x34, 0x6e, 0xd9, 0xb2, 0xa5, 0x01, 0x69,
0xd3, 0x73, 0xcf, 0x3d, 0xf7, 0xd0, 0xd8, 0xb1, 0x63, 0xe9, 0xde, 0x7b, 0xef, 0x65, 0xf7, 0xdd,
0x77, 0x9f, 0x34, 0x6e, 0xdc, 0x38, 0x76, 0x32, 0xe1, 0xb4, 0x58, 0x59, 0xd7, 0x40, 0x49, 0xaa,
0x4e, 0xb6, 0xbf, 0xa4, 0x5b, 0x5c, 0x1f, 0xa7, 0xa0, 0x15, 0x3f, 0xe6, 0xd1, 0xb6, 0x94, 0x3a,
0x69, 0x5f, 0xae, 0x36, 0xb4, 0x2e, 0xb6, 0x44, 0xdc, 0x92, 0x58, 0xc1, 0x76, 0xa7, 0xd7, 0x49,
0x87, 0x0b, 0x74, 0xc1, 0x63, 0x85, 0xad, 0xc1, 0xe8, 0x62, 0x9d, 0x78, 0xac, 0x40, 0xcb, 0x0e,
0xe6, 0x34, 0xb0, 0x63, 0x85, 0x7a, 0x96, 0x6b, 0x08, 0x48, 0xf1, 0x2a, 0x47, 0x20, 0x4b, 0xd9,
0xc2, 0x52, 0xb3, 0x0a, 0x68, 0xf6, 0x97, 0x73, 0xfd, 0xf0, 0xa1, 0x63, 0xca, 0x94, 0x29, 0x2f,
0xfd, 0x49, 0x00, 0x70, 0xf4, 0x3f, 0x67, 0xcf, 0x9e, 0xed, 0x38, 0x7b, 0xf6, 0xac, 0x25, 0x37,
0x37, 0xd7, 0xc2, 0x8f, 0xb0, 0x8e, 0x33, 0x67, 0xce, 0x30, 0x44, 0x40, 0x2c, 0x28, 0x28, 0xf0,
0xe5, 0xe7, 0xe7, 0x7b, 0x41, 0x91, 0x52, 0x6c, 0x6c, 0x2c, 0x5d, 0x6c, 0x71, 0x71, 0xa7, 0xa8,
0xb4, 0x4a, 0x45, 0x85, 0x8d, 0xed, 0x74, 0xa0, 0xbc, 0x9f, 0xa2, 0xca, 0x3b, 0x58, 0xac, 0xb2,
0x83, 0x8e, 0x96, 0x98, 0xe8, 0x47, 0x85, 0x99, 0x62, 0x2a, 0x3b, 0x28, 0xb6, 0xc2, 0xc2, 0x4e,
0x94, 0x18, 0xd8, 0xa9, 0xb2, 0x36, 0x4a, 0xaa, 0xb2, 0x48, 0x49, 0xd5, 0x56, 0x29, 0xa9, 0xca,
0x2c, 0x65, 0xd4, 0x75, 0x48, 0xf1, 0x15, 0x66, 0xb6, 0x3d, 0x51, 0xc1, 0x8e, 0x9f, 0x6b, 0x15,
0x53, 0xd5, 0x3d, 0x52, 0x42, 0x8d, 0x3d, 0x94, 0x53, 0xd1, 0xcc, 0xce, 0xa4, 0xe7, 0x33, 0x95,
0xaa, 0xd6, 0x82, 0xcd, 0x6c, 0xfc, 0x93, 0x00, 0xf8, 0x8e, 0x73, 0xa7, 0xb1, 0x68, 0x87, 0x69,
0xb8, 0xf9, 0x7c, 0x3e, 0x73, 0x77, 0x77, 0xb7, 0xc8, 0x0b, 0x13, 0xd6, 0x0f, 0xa6, 0x71, 0x69,
0xb5, 0x5a, 0x42, 0xd1, 0x5e, 0x62, 0x45, 0x8a, 0x0a, 0x2a, 0xa9, 0xaa, 0xa5, 0x34, 0xcd, 0x00,
0x3b, 0xd9, 0xe0, 0x67, 0x99, 0x2d, 0x5e, 0xca, 0x33, 0x86, 0x28, 0x53, 0x17, 0xa0, 0xb4, 0xa6,
0x7e, 0x2a, 0x30, 0xfa, 0xa9, 0xb8, 0x3d, 0x40, 0x05, 0x7a, 0x37, 0x2b, 0x36, 0x78, 0x59, 0x95,
0x4d, 0x92, 0x54, 0x0e, 0x12, 0x2b, 0xac, 0x02, 0x53, 0x77, 0x4b, 0x52, 0x91, 0x7e, 0x80, 0x25,
0x29, 0x4d, 0x52, 0x64, 0x4e, 0xad, 0x50, 0xd6, 0xc9, 0xc4, 0x02, 0x83, 0x2f, 0x14, 0x5b, 0xd6,
0xc6, 0x32, 0xf2, 0xcb, 0x59, 0x76, 0x7e, 0xb9, 0x17, 0xbe, 0x9d, 0xfb, 0x73, 0x00, 0x70, 0xe7,
0xd5, 0xed, 0xed, 0xed, 0x7a, 0xec, 0xb8, 0x1b, 0x85, 0x29, 0x2a, 0x95, 0xca, 0x10, 0xcc, 0x5b,
0x52, 0x52, 0x12, 0x40, 0x24, 0x48, 0xad, 0x56, 0x5f, 0x30, 0xf4, 0x01, 0x42, 0xe1, 0x51, 0x41,
0xbd, 0x91, 0x62, 0x9b, 0x25, 0x76, 0xbc, 0xc2, 0x46, 0x59, 0x00, 0x50, 0xd0, 0x16, 0xa4, 0x9c,
0xd6, 0x00, 0xe5, 0x68, 0xfb, 0x49, 0xae, 0x73, 0x91, 0xc2, 0x1c, 0xa0, 0xc2, 0x56, 0x17, 0xcb,
0x6d, 0x72, 0x90, 0xd2, 0x1a, 0x60, 0xb5, 0x00, 0x50, 0xdd, 0x29, 0x4a, 0xf5, 0x5d, 0x41, 0x96,
0x87, 0xff, 0xa5, 0xd5, 0x98, 0xa5, 0xfd, 0xc9, 0xa5, 0x01, 0x65, 0x17, 0xb9, 0xaa, 0xba, 0x28,
0x50, 0x66, 0x11, 0x84, 0xac, 0xb2, 0x26, 0x76, 0x22, 0x2e, 0x95, 0x9e, 0x7d, 0xf6, 0x59, 0x25,
0xec, 0x9f, 0xae, 0x08, 0x80, 0xe7, 0xfb, 0xc5, 0x00, 0x6a, 0x6a, 0x6a, 0xcc, 0x71, 0x71, 0x71,
0x02, 0x52, 0x48, 0x42, 0xf7, 0xe5, 0xc7, 0xe0, 0xc9, 0x93, 0x27, 0xc5, 0xed, 0xdb, 0xb7, 0x53,
0x5a, 0x5a, 0x5a, 0xd8, 0xf9, 0xfa, 0xfa, 0x7a, 0xda, 0xb1, 0x73, 0x27, 0xe5, 0x15, 0x2a, 0x28,
0xa3, 0xc1, 0x41, 0x29, 0x7a, 0x26, 0xed, 0xc9, 0x6e, 0xa6, 0xa3, 0x85, 0x06, 0x2a, 0x6a, 0x0f,
0xd2, 0x39, 0xa3, 0x8f, 0xb2, 0x1a, 0x7b, 0xa8, 0xd0, 0xe0, 0xa1, 0x32, 0xb3, 0x9f, 0xe2, 0x8a,
0x9b, 0xe9, 0xac, 0xba, 0x83, 0x15, 0xeb, 0xfb, 0x89, 0x03, 0xa8, 0x73, 0x30, 0xb1, 0xc6, 0xea,
0xa5, 0x62, 0x5d, 0x1f, 0xcb, 0xac, 0x35, 0x4b, 0xdb, 0xa2, 0x32, 0x58, 0x95, 0x35, 0xe8, 0xac,
0x71, 0x90, 0xb3, 0xda, 0x4e, 0x03, 0xf2, 0xe6, 0x6e, 0x76, 0x32, 0x31, 0x9d, 0x76, 0xed, 0x39,
0xe0, 0xc4, 0x06, 0x7b, 0xe0, 0xe3, 0x26, 0xc8, 0x93, 0x51, 0x3f, 0x0b, 0x80, 0x24, 0x49, 0x0d,
0xa5, 0xa5, 0xa5, 0x0c, 0x29, 0x23, 0x36, 0x37, 0x37, 0x7b, 0x91, 0x2a, 0x03, 0x55, 0x55, 0x55,
0xa2, 0x42, 0xa1, 0xa0, 0x8b, 0x41, 0x64, 0x66, 0xe5, 0x50, 0xb6, 0xbc, 0x88, 0x52, 0xeb, 0xbb,
0x28, 0x55, 0x1b, 0x60, 0x09, 0xb5, 0x3d, 0x74, 0x30, 0x57, 0x43, 0x71, 0x0a, 0x43, 0xd8, 0xe9,
0x0c, 0xfc, 0xbf, 0xc4, 0xe8, 0xa5, 0x32, 0x93, 0x9f, 0xa2, 0xe5, 0xf5, 0x2c, 0x45, 0x69, 0xa4,
0xb2, 0x76, 0x0f, 0x52, 0x87, 0x44, 0xad, 0x93, 0x44, 0x65, 0xbb, 0x9b, 0x55, 0xb6, 0xbb, 0x58,
0x9e, 0xda, 0x22, 0xed, 0x8b, 0xcf, 0x13, 0x8b, 0x34, 0x76, 0x2f, 0x30, 0xf7, 0xe1, 0x79, 0x77,
0xb9, 0xc9, 0x2b, 0xc6, 0xa7, 0x9f, 0xa3, 0xe4, 0xf4, 0x42, 0x9f, 0xd7, 0xeb, 0xb5, 0xa2, 0x41,
0x9a, 0x00, 0xa0, 0x1f, 0x45, 0xbd, 0xe4, 0xe9, 0xa7, 0x9f, 0xfe, 0x87, 0x2b, 0x02, 0x80, 0xb3,
0x36, 0xb0, 0x4e, 0xd8, 0x59, 0x18, 0xe3, 0xc6, 0xd7, 0x28, 0x70, 0xba, 0x18, 0x44, 0x06, 0x00,
0xa4, 0x67, 0x17, 0xd0, 0x99, 0x5a, 0x5b, 0xb8, 0x68, 0x53, 0x1a, 0x5d, 0x94, 0xa3, 0xf3, 0xd1,
0xa1, 0x2c, 0x15, 0x25, 0x96, 0x6a, 0xe9, 0x5c, 0x4b, 0x0f, 0x80, 0xf8, 0xa8, 0xc2, 0x02, 0x00,
0xf9, 0x00, 0x50, 0xa1, 0xa7, 0xba, 0x2e, 0x41, 0xd2, 0xc1, 0x79, 0x04, 0x42, 0x54, 0x1a, 0xfb,
0x58, 0x7d, 0xa7, 0x8f, 0x95, 0x68, 0x3a, 0xa4, 0xe8, 0x2c, 0x85, 0x20, 0x57, 0x19, 0x05, 0xbd,
0x93, 0x9c, 0xba, 0x3e, 0xf2, 0xaa, 0xac, 0xbe, 0xd0, 0xa9, 0x8c, 0x22, 0xf6, 0xc3, 0xb1, 0xc4,
0x00, 0x7c, 0xca, 0xe6, 0x1d, 0xbf, 0xbf, 0xbf, 0xdf, 0x0c, 0x3f, 0x2c, 0xf0, 0xd7, 0xfe, 0xd4,
0x53, 0x4f, 0x7d, 0x06, 0x20, 0xd7, 0x0e, 0x0a, 0x00, 0xbb, 0xef, 0x44, 0x03, 0xa3, 0x8d, 0x1b,
0x37, 0x5e, 0x62, 0x9b, 0x37, 0x6f, 0x0e, 0x83, 0x00, 0x33, 0xd1, 0xf7, 0xdf, 0x7f, 0x4f, 0xa9,
0x69, 0x19, 0x94, 0x9a, 0x29, 0x0f, 0x17, 0xeb, 0x8e, 0xd4, 0x5a, 0x4a, 0x6f, 0x76, 0x53, 0xbe,
0x11, 0xf9, 0xae, 0xf7, 0xd0, 0xde, 0x33, 0xa5, 0x74, 0xb6, 0xd1, 0x46, 0x75, 0xb6, 0x00, 0x35,
0xa1, 0x58, 0xcf, 0x94, 0x36, 0x31, 0xb9, 0xda, 0x44, 0x06, 0x17, 0x89, 0x46, 0x98, 0xa1, 0x9f,
0x89, 0x55, 0x86, 0x6e, 0xd2, 0xf7, 0x09, 0x92, 0xb2, 0xd5, 0x26, 0xa5, 0x14, 0xab, 0x82, 0xf2,
0xea, 0x16, 0x66, 0x74, 0x4a, 0xae, 0x36, 0x17, 0x05, 0x2a, 0x5b, 0xbb, 0x85, 0x84, 0xf4, 0x42,
0x69, 0xcf, 0xbe, 0xe3, 0x22, 0xd8, 0xee, 0x2c, 0xfc, 0x3a, 0x01, 0x93, 0x73, 0x2d, 0x66, 0xb7,
0xdb, 0x4d, 0xcb, 0x96, 0x2d, 0xeb, 0x84, 0xdf, 0x6d, 0xff, 0x81, 0xc7, 0x65, 0x00, 0x8a, 0x8a,
0x8a, 0x7c, 0x90, 0x09, 0x97, 0x01, 0xe0, 0x86, 0xbe, 0x40, 0x15, 0x15, 0x15, 0xe1, 0x28, 0x70,
0x00, 0xa7, 0x93, 0xb3, 0x29, 0x1d, 0x31, 0xdf, 0x95, 0xa6, 0xa2, 0x14, 0x75, 0x0f, 0xe5, 0x68,
0x5c, 0x28, 0x58, 0x37, 0x1d, 0x4c, 0x2d, 0xa7, 0x1c, 0xb5, 0x8d, 0x94, 0xd8, 0xfd, 0x86, 0x6e,
0x26, 0x26, 0x14, 0xd6, 0x51, 0x61, 0x83, 0x85, 0x19, 0xb1, 0xf3, 0xed, 0x00, 0xa0, 0xef, 0x0d,
0x49, 0x6a, 0x73, 0x2f, 0x59, 0x07, 0x48, 0xaa, 0x33, 0xda, 0xa5, 0xb3, 0x95, 0x0d, 0xc1, 0x4a,
0xad, 0x45, 0x6c, 0xe9, 0xf2, 0xf8, 0x3a, 0x3d, 0x14, 0xca, 0xaf, 0xd1, 0x89, 0x09, 0x69, 0x05,
0xe2, 0xe6, 0x6d, 0x07, 0x89, 0x37, 0xcc, 0xf3, 0x4a, 0xe0, 0x0f, 0x40, 0x0a, 0x61, 0x56, 0xc8,
0x17, 0x23, 0xd2, 0xca, 0x2e, 0xc3, 0x9f, 0x4b, 0x00, 0xc8, 0xe5, 0x72, 0x69, 0x28, 0x00, 0x7c,
0xe7, 0xcf, 0x03, 0xc0, 0x8d, 0x29, 0x3e, 0x29, 0x93, 0x32, 0x2b, 0xb4, 0x74, 0x20, 0x57, 0x4b,
0xd9, 0x1a, 0x37, 0x9d, 0xd5, 0xba, 0x28, 0xb7, 0xa9, 0x9b, 0x22, 0x52, 0x15, 0x94, 0xa9, 0x32,
0x93, 0x02, 0x5b, 0x5d, 0x63, 0xf6, 0xb2, 0xa4, 0xa2, 0x7a, 0xaa, 0x68, 0xe9, 0x62, 0x70, 0x5e,
0x32, 0xc3, 0x69, 0x5d, 0x97, 0x87, 0x5a, 0xed, 0x1e, 0xd6, 0xe5, 0x25, 0xa9, 0xc9, 0xe4, 0x60,
0xe7, 0xaa, 0x1a, 0x85, 0x2a, 0xad, 0x89, 0xd9, 0x3c, 0x92, 0xc7, 0xe1, 0x23, 0x31, 0xbd, 0xa8,
0x8a, 0xc5, 0x9e, 0xce, 0x66, 0x6b, 0x37, 0xec, 0x0e, 0x5d, 0xe4, 0xfc, 0xc5, 0x56, 0x0e, 0x15,
0xc0, 0xeb, 0xa2, 0xe9, 0x12, 0x00, 0xa1, 0x50, 0x48, 0x03, 0xba, 0x64, 0x3f, 0x07, 0x40, 0x59,
0x59, 0x19, 0x25, 0x24, 0xa6, 0xd0, 0xe9, 0xcc, 0x73, 0x14, 0x5d, 0x61, 0xa1, 0x3c, 0x9d, 0x87,
0x8a, 0xda, 0x02, 0x54, 0x62, 0x70, 0xd3, 0x21, 0x00, 0x28, 0x68, 0xb6, 0x53, 0x25, 0xf2, 0xa5,
0xd2, 0xd8, 0x47, 0xa9, 0x25, 0x6a, 0x2a, 0x6b, 0x32, 0x13, 0x76, 0x98, 0x19, 0x7b, 0xfc, 0xac,
0xb5, 0xcb, 0x4d, 0x16, 0x67, 0x80, 0xf5, 0xf8, 0x49, 0x6a, 0xe9, 0xe8, 0x65, 0x85, 0x55, 0x6a,
0x66, 0xb4, 0xbb, 0x42, 0xbd, 0x01, 0xf2, 0xd9, 0x3d, 0x82, 0x90, 0x5f, 0x59, 0x2f, 0x1e, 0x3e,
0x96, 0x40, 0x87, 0x22, 0xa3, 0x4d, 0x83, 0x38, 0x1f, 0x87, 0xbe, 0x64, 0xfb, 0xf8, 0xe3, 0x8f,
0x7b, 0x90, 0x41, 0xaf, 0x5d, 0x02, 0xc0, 0xe5, 0x72, 0x99, 0x51, 0x03, 0xe2, 0xcf, 0x01, 0xc0,
0xa9, 0x34, 0x33, 0x33, 0x9b, 0x8e, 0xfe, 0x18, 0x4f, 0xc9, 0x65, 0x3a, 0x92, 0xeb, 0x7d, 0xe1,
0xa6, 0xc5, 0xb9, 0x3d, 0x32, 0x4d, 0x41, 0x65, 0xfa, 0x3e, 0xd6, 0xd8, 0x85, 0x1a, 0xe8, 0xf2,
0xb1, 0xec, 0x8a, 0x26, 0xaa, 0x33, 0x3a, 0xc8, 0xd0, 0xed, 0x25, 0x83, 0x7d, 0x80, 0xf4, 0x5d,
0xfd, 0x64, 0xe9, 0xf3, 0xb2, 0xbe, 0x00, 0x49, 0x6d, 0x5d, 0x7d, 0xac, 0xbc, 0xbe, 0x19, 0xe7,
0xcc, 0xe7, 0x0c, 0x52, 0xc8, 0xdc, 0xe3, 0x16, 0x53, 0x73, 0x8a, 0xd9, 0xba, 0x75, 0xbb, 0xa9,
0x45, 0x63, 0xc8, 0x18, 0x04, 0x80, 0x12, 0xe9, 0xd3, 0x0e, 0xbd, 0xd4, 0x10, 0x2e, 0xe2, 0x8b,
0x01, 0xa0, 0x40, 0x7a, 0xd1, 0xb8, 0x7e, 0x16, 0x00, 0x4e, 0xa5, 0xd5, 0xd5, 0xd5, 0x14, 0x15,
0x73, 0x9a, 0x4e, 0x9e, 0xc9, 0xa3, 0xdc, 0x16, 0x17, 0x95, 0xb4, 0xf9, 0xc3, 0x29, 0x74, 0x38,
0x5d, 0x41, 0x4a, 0xa3, 0x93, 0x35, 0xd9, 0xfd, 0x54, 0xdb, 0xde, 0x4b, 0x72, 0x25, 0x3a, 0x77,
0x87, 0x93, 0xd9, 0x06, 0x04, 0x66, 0x75, 0xfa, 0xc9, 0xe4, 0x70, 0x51, 0x67, 0xbf, 0x8f, 0x75,
0x7b, 0x43, 0xcc, 0x64, 0xef, 0x23, 0xb5, 0xae, 0x4d, 0x72, 0x87, 0xc8, 0x0f, 0x13, 0x5b, 0xda,
0x3b, 0xa5, 0x03, 0x11, 0x31, 0xb4, 0x65, 0xcb, 0x01, 0xcf, 0x20, 0xce, 0xc7, 0xf3, 0xdd, 0x7f,
0xe7, 0x9d, 0x77, 0x9c, 0x4f, 0x3e, 0xf9, 0xe4, 0x0b, 0x97, 0x01, 0x30, 0x9b, 0xcd, 0x01, 0x34,
0xb2, 0x21, 0x01, 0x7c, 0xf7, 0xdd, 0x77, 0x74, 0xf8, 0xf0, 0xe1, 0x0b, 0x6b, 0x4c, 0x64, 0x34,
0x7f, 0xfe, 0x02, 0xda, 0xbb, 0xef, 0x18, 0xc5, 0xa6, 0xe4, 0x53, 0x5c, 0xa9, 0x8e, 0x8e, 0x64,
0x57, 0xd3, 0xb1, 0x8c, 0x32, 0x02, 0x35, 0x52, 0x42, 0x5e, 0x25, 0xa5, 0x16, 0x56, 0x53, 0xb6,
0xa2, 0x8e, 0x14, 0xf5, 0x3a, 0x42, 0x9a, 0x90, 0xa9, 0x07, 0xe9, 0xd3, 0x3b, 0x40, 0x0e, 0xb7,
0x9f, 0xba, 0x07, 0xfc, 0x64, 0xed, 0xe9, 0x27, 0xbd, 0xd5, 0x26, 0x7a, 0x44, 0x0a, 0xc0, 0xa4,
0x94, 0xac, 0x73, 0xb4, 0x62, 0xf9, 0x77, 0x54, 0x59, 0x59, 0x93, 0x33, 0x08, 0x80, 0x1a, 0xd0,
0x3c, 0xcf, 0xfd, 0x8a, 0x0b, 0x7d, 0x80, 0x03, 0x40, 0x41, 0x5a, 0x80, 0xac, 0xa5, 0xad, 0xad,
0x8d, 0xd5, 0xd5, 0xd5, 0x49, 0xeb, 0xd6, 0xad, 0x63, 0xaf, 0xbf, 0xfe, 0x3a, 0xa1, 0x0b, 0x12,
0xf8, 0x96, 0x26, 0x4f, 0x9e, 0x4c, 0x13, 0x27, 0x4e, 0x24, 0x8c, 0x8e, 0xc4, 0x7b, 0xc2, 0x8a,
0x15, 0x2b, 0xc2, 0x29, 0x04, 0xbd, 0x44, 0x2d, 0x2d, 0x2d, 0xb4, 0x68, 0xd1, 0x37, 0x74, 0x20,
0x22, 0x9a, 0x12, 0xb2, 0x4a, 0xa9, 0x08, 0x24, 0x1f, 0x5f, 0xd4, 0x88, 0x08, 0xf4, 0xb2, 0x16,
0xbb, 0x8f, 0x35, 0x98, 0x7a, 0xa8, 0xb8, 0x56, 0x4b, 0xb5, 0xad, 0x16, 0xc4, 0xbe, 0x95, 0x90,
0x22, 0x64, 0x73, 0x7a, 0xa8, 0xcf, 0x17, 0x62, 0x7d, 0xde, 0x20, 0x75, 0xf5, 0xbb, 0xc9, 0xd0,
0x61, 0x63, 0xee, 0x90, 0x28, 0xe4, 0x15, 0x56, 0xb2, 0xb5, 0xab, 0x77, 0xd2, 0x9e, 0x3d, 0x47,
0x74, 0x83, 0x38, 0x9f, 0x88, 0x26, 0xdb, 0x85, 0x21, 0xcb, 0xf5, 0x5b, 0x3c, 0x2e, 0x00, 0x40,
0x2e, 0x85, 0x01, 0x70, 0x01, 0x67, 0x32, 0x99, 0x42, 0x90, 0x0f, 0xc1, 0x1b, 0x6e, 0xb8, 0x81,
0xc9, 0x30, 0x2a, 0xfc, 0xd4, 0xae, 0xba, 0xea, 0x2a, 0x42, 0xe8, 0xc2, 0xe7, 0x18, 0xf6, 0xc9,
0x62, 0xb1, 0x40, 0x91, 0xc6, 0xd1, 0x82, 0x05, 0x0b, 0x28, 0x22, 0x22, 0x92, 0x76, 0xef, 0x46,
0x24, 0x92, 0xf3, 0x29, 0x19, 0xac, 0x73, 0xae, 0xc1, 0xc4, 0x4c, 0x6e, 0x92, 0xb4, 0x9d, 0x2e,
0xce, 0x32, 0x54, 0xdd, 0x6c, 0xa4, 0x06, 0xbd, 0x85, 0xda, 0x6c, 0xbd, 0xe1, 0xdd, 0xef, 0xf1,
0xf8, 0xa9, 0x3f, 0x10, 0xa2, 0x5e, 0x8f, 0x8f, 0x19, 0xac, 0x9d, 0x2c, 0xfe, 0x74, 0x16, 0x7d,
0xbb, 0x6c, 0x2b, 0xbd, 0xfe, 0xfa, 0xdb, 0x41, 0x90, 0xc9, 0x89, 0x41, 0x00, 0xd4, 0xa1, 0x3e,
0x79, 0xee, 0xe7, 0x5f, 0xd2, 0x89, 0xcf, 0x03, 0x40, 0xfe, 0x77, 0x62, 0x20, 0xf7, 0x20, 0x45,
0x3c, 0xd7, 0x5d, 0x77, 0xdd, 0xa0, 0x00, 0xae, 0xbe, 0xfa, 0x6a, 0xe2, 0xe0, 0xf9, 0xf9, 0xa2,
0x45, 0x8b, 0x08, 0x03, 0x3f, 0x61, 0x3a, 0x0b, 0x03, 0xfb, 0xfc, 0xf3, 0xcf, 0x41, 0xad, 0xb9,
0x6c, 0xff, 0x81, 0xe3, 0xd2, 0xa6, 0xcd, 0xfb, 0x29, 0x26, 0x21, 0x87, 0x14, 0xea, 0x76, 0xc6,
0xe9, 0xb2, 0xb4, 0xbe, 0x85, 0x6a, 0x34, 0x46, 0xd2, 0x59, 0xec, 0x8c, 0xa7, 0x8c, 0x3b, 0x28,
0x31, 0x87, 0xcb, 0x43, 0xed, 0x36, 0x07, 0x14, 0x6d, 0x0d, 0x8b, 0x38, 0x14, 0x43, 0x2b, 0x57,
0x7c, 0x47, 0xc7, 0x4f, 0x24, 0xd0, 0x9b, 0x6f, 0xbe, 0xeb, 0x1e, 0xc4, 0xf9, 0x24, 0x51, 0x14,
0x6d, 0x98, 0x49, 0x3c, 0xd8, 0xc0, 0x71, 0x83, 0x02, 0xc0, 0xee, 0x0f, 0x78, 0xf0, 0x80, 0xee,
0xe8, 0xbf, 0x12, 0x00, 0x9e, 0x52, 0xfc, 0xfc, 0xeb, 0xaf, 0xbf, 0xa6, 0xa8, 0xa8, 0x28, 0xfa,
0xe2, 0x8b, 0x2f, 0xc2, 0x6b, 0xd0, 0x1a, 0x2f, 0xea, 0xe0, 0xfa, 0xf5, 0xeb, 0x85, 0x7f, 0xb9,
0xf3, 0x6e, 0x5a, 0xbc, 0x78, 0x35, 0x5b, 0xb3, 0x66, 0x17, 0x1d, 0x3d, 0x91, 0x4c, 0x51, 0x71,
0xe9, 0x94, 0x90, 0x22, 0x67, 0x69, 0x60, 0x17, 0x79, 0x71, 0x15, 0xcb, 0xcc, 0x2d, 0xa1, 0x23,
0xc7, 0xe2, 0x69, 0xd5, 0x8a, 0xed, 0xb4, 0x6c, 0xe9, 0x16, 0xda, 0xbf, 0xff, 0x38, 0x29, 0x2a,
0x55, 0x74, 0x36, 0xaf, 0x98, 0x56, 0xac, 0xdc, 0xcc, 0x1a, 0x1a, 0x1a, 0x92, 0x7e, 0x02, 0xa0,
0x11, 0xea, 0xb7, 0x1d, 0xef, 0x9d, 0x76, 0x99, 0x98, 0xe3, 0x00, 0xb2, 0xb3, 0xb3, 0xad, 0x3a,
0x9d, 0x0e, 0x29, 0x26, 0xf9, 0x22, 0x22, 0x22, 0x7a, 0xae, 0x04, 0x60, 0xd3, 0xa6, 0x4d, 0xe1,
0xda, 0xe0, 0xce, 0x73, 0x4b, 0x4d, 0x4d, 0xa5, 0x77, 0xdf, 0x7d, 0x97, 0x4e, 0x9d, 0x3a, 0xc5,
0xf8, 0x9a, 0xcb, 0x8d, 0x0f, 0x3f, 0xfc, 0x50, 0x40, 0x6a, 0xf9, 0xcf, 0x24, 0xa5, 0x04, 0x4f,
0xc5, 0x25, 0x07, 0x17, 0xcc, 0x5f, 0x2e, 0x6d, 0xdc, 0xb8, 0x4b, 0x5c, 0xb8, 0x70, 0x35, 0x43,
0x9a, 0xf0, 0x3c, 0x87, 0xbe, 0xda, 0x43, 0xaa, 0x06, 0x2d, 0x59, 0xbb, 0x7b, 0x49, 0xad, 0xd1,
0x53, 0x4a, 0x66, 0x3e, 0x1d, 0x3a, 0x1c, 0x4b, 0x37, 0xdc, 0x30, 0x8a, 0xf1, 0x0f, 0x10, 0x2e,
0x72, 0x3e, 0x45, 0x10, 0x04, 0x1b, 0x57, 0xa5, 0xa8, 0xc5, 0xdf, 0x0c, 0x0a, 0x20, 0x33, 0x33,
0xd3, 0x8e, 0x39, 0x80, 0x0f, 0x30, 0xbe, 0x83, 0x07, 0x0f, 0xda, 0x47, 0x8e, 0x1c, 0x49, 0x43,
0x01, 0x38, 0x71, 0xe2, 0x04, 0x41, 0x62, 0x53, 0x74, 0x74, 0x74, 0x18, 0x00, 0x38, 0x99, 0xf4,
0x7a, 0x3d, 0x61, 0xd8, 0x0f, 0x03, 0x28, 0x2f, 0x2f, 0x27, 0x6c, 0xc4, 0x00, 0xc8, 0x20, 0x70,
0xe8, 0xd0, 0x21, 0xc2, 0x6c, 0x11, 0x42, 0x6a, 0x0e, 0xa0, 0x73, 0x7a, 0x20, 0xc2, 0x44, 0x30,
0x57, 0x30, 0x29, 0x29, 0x49, 0x40, 0x0f, 0x09, 0x55, 0xa8, 0x1a, 0xa8, 0x50, 0x51, 0x45, 0x7c,
0x24, 0xad, 0x6d, 0xd6, 0x50, 0x6a, 0x96, 0x9c, 0x7e, 0xf7, 0xbb, 0xf7, 0xbc, 0xff, 0xed, 0xb8,
0x14, 0x25, 0xfa, 0xfb, 0x39, 0x10, 0x4d, 0x4a, 0x4a, 0x4a, 0x3b, 0x5e, 0x7b, 0x72, 0x50, 0x39,
0x8d, 0xb0, 0x6c, 0x85, 0xba, 0x74, 0xf6, 0xf6, 0xf6, 0x06, 0xf9, 0xf4, 0xb5, 0x7f, 0xff, 0x7e,
0x27, 0x22, 0x30, 0x24, 0x00, 0xee, 0x38, 0xc6, 0x4b, 0xc2, 0x90, 0x4f, 0x19, 0x19, 0x19, 0x64,
0x30, 0x18, 0xc2, 0x00, 0xf8, 0x88, 0xc9, 0x01, 0xa0, 0xb0, 0xf9, 0x7d, 0xdc, 0x88, 0xaa, 0xc8,
0xd7, 0xe8, 0x1b, 0x8c, 0xaf, 0x51, 0x2f, 0xc1, 0x49, 0x93, 0x26, 0x11, 0x18, 0x4e, 0x00, 0x51,
0x48, 0x00, 0xe8, 0xcb, 0xcd, 0x2d, 0x08, 0xfd, 0xf8, 0x63, 0x94, 0x98, 0x90, 0x94, 0x46, 0xda,
0xb6, 0x36, 0x3a, 0x93, 0x7a, 0x36, 0xcc, 0x66, 0xc7, 0xb7, 0xcf, 0x11, 0xea, 0xf7, 0xde, 0xe1,
0xb5, 0x9c, 0x7e, 0xce, 0x1a, 0x08, 0x04, 0x3a, 0xb1, 0xc9, 0x5e, 0x74, 0xdd, 0xbb, 0x86, 0x04,
0x80, 0x1b, 0xfa, 0xfc, 0x7e, 0x3f, 0x7f, 0x63, 0xfb, 0xee, 0xdd, 0xbb, 0x85, 0x2b, 0x45, 0x00,
0x8e, 0xb3, 0xac, 0xac, 0x2c, 0x91, 0x47, 0x02, 0xfd, 0x83, 0xd0, 0x37, 0x58, 0x63, 0x63, 0xa3,
0x84, 0x5d, 0xe5, 0xe9, 0x23, 0x71, 0x67, 0x07, 0xf0, 0xc0, 0x10, 0x14, 0x06, 0x64, 0x34, 0x1a,
0x05, 0xbe, 0xe6, 0x80, 0xce, 0x03, 0x00, 0x58, 0x86, 0xb4, 0x70, 0x43, 0x22, 0xfb, 0x11, 0x21,
0x61, 0xe5, 0xca, 0x0d, 0x52, 0x4a, 0x86, 0x9c, 0x6a, 0x0b, 0x8f, 0x92, 0x72, 0xcf, 0xfd, 0xd4,
0x16, 0x79, 0x1b, 0x39, 0x61, 0x6d, 0xdb, 0x64, 0x94, 0x79, 0x6c, 0xb1, 0x1d, 0x85, 0xfb, 0xc3,
0x90, 0x13, 0x19, 0x07, 0x90, 0x98, 0xc8, 0x29, 0x56, 0x0a, 0xa2, 0x17, 0x58, 0x77, 0x62, 0xd2,
0x1a, 0x2a, 0x02, 0xd7, 0x5c, 0x73, 0x0d, 0xad, 0x5c, 0xb9, 0x92, 0x71, 0xd6, 0x59, 0xbd, 0x7a,
0x35, 0x43, 0xd1, 0x86, 0x40, 0xa7, 0xd2, 0x1f, 0x59, 0x28, 0x87, 0x21, 0xf7, 0x43, 0xc3, 0x86,
0x0d, 0xa3, 0x59, 0xb3, 0x66, 0x11, 0x9c, 0xe6, 0xd1, 0xf1, 0x8e, 0x1a, 0x35, 0x8a, 0x71, 0xf6,
0xe2, 0x00, 0xf0, 0x3a, 0x09, 0xd7, 0xf1, 0x74, 0xe5, 0x6c, 0xe3, 0x87, 0xa6, 0x12, 0x8e, 0xec,
0xf8, 0x86, 0xa9, 0x7e, 0x78, 0x82, 0x5a, 0x4e, 0xbd, 0x42, 0xfe, 0xc6, 0x6d, 0x68, 0x57, 0x6f,
0x52, 0x20, 0xf9, 0xdf, 0xa9, 0x6f, 0xcf, 0x48, 0x2a, 0x5d, 0x37, 0x82, 0x7d, 0xfc, 0xfa, 0x43,
0x43, 0x7e, 0x58, 0x2c, 0x43, 0x68, 0x22, 0x4e, 0x9f, 0x3e, 0xcd, 0xc3, 0x2c, 0xc0, 0x0c, 0x7b,
0xf7, 0xee, 0xf5, 0x5f, 0x09, 0x00, 0x66, 0xd4, 0x70, 0x81, 0x2f, 0x59, 0xb2, 0x84, 0x39, 0x1c,
0x8e, 0xd0, 0xfc, 0xf9, 0xf3, 0xc3, 0xcf, 0xbd, 0xf8, 0xe2, 0x8b, 0x84, 0x2e, 0x29, 0x2c, 0x5c,
0xb8, 0x30, 0xbc, 0x7e, 0xe8, 0xa1, 0x87, 0x78, 0x84, 0x78, 0x1a, 0x05, 0xf9, 0xfa, 0xce, 0x3b,
0xef, 0x0c, 0x37, 0xc4, 0xaf, 0xbe, 0xfa, 0x8a, 0xa1, 0x1e, 0xfc, 0x48, 0x0d, 0x2f, 0x48, 0x4f,
0x2c, 0xcc, 0x8e, 0x17, 0xcf, 0xad, 0x1a, 0x46, 0x3d, 0xa5, 0x73, 0x48, 0x1c, 0xd0, 0x13, 0xb9,
0xd4, 0x44, 0xad, 0x9b, 0x49, 0x2a, 0x7e, 0x9e, 0xbc, 0x31, 0x77, 0x93, 0x65, 0xb3, 0x8c, 0xea,
0x36, 0xcb, 0xb6, 0x0c, 0x09, 0x00, 0xc5, 0x81, 0xfa, 0x4b, 0xe7, 0x3b, 0xc2, 0xa7, 0x1f, 0x03,
0x2f, 0xe2, 0xa1, 0x58, 0x88, 0x03, 0x40, 0x37, 0x16, 0xf9, 0x39, 0x86, 0x9e, 0x90, 0xd3, 0xe9,
0x0c, 0x2c, 0x5f, 0xbe, 0x3c, 0xc4, 0xd7, 0xe8, 0xdc, 0xe1, 0xf4, 0x39, 0x72, 0xe4, 0x88, 0x9f,
0xaf, 0x1f, 0x7c, 0xf0, 0x41, 0x0e, 0x48, 0xdc, 0xb3, 0x67, 0x4f, 0xf8, 0xfa, 0x5b, 0x6f, 0xbd,
0x35, 0x1c, 0x01, 0xd0, 0x2e, 0x43, 0x51, 0xfb, 0x50, 0x3b, 0x8c, 0x77, 0x72, 0x14, 0xa8, 0xf4,
0xfd, 0x97, 0x0f, 0x51, 0xdb, 0xa9, 0x71, 0x14, 0x6c, 0x8f, 0x21, 0x62, 0xb8, 0x8d, 0x3d, 0x93,
0xa8, 0xe1, 0x4b, 0x0a, 0x65, 0x4f, 0x26, 0xf7, 0xa1, 0x7f, 0xa4, 0xe6, 0x4d, 0x32, 0xb1, 0x7e,
0x93, 0xec, 0xc1, 0xa1, 0x22, 0x20, 0x07, 0x15, 0x8a, 0x48, 0x1f, 0x5e, 0x03, 0x7e, 0x34, 0x32,
0x1f, 0x6a, 0x60, 0xc8, 0x4e, 0x0c, 0x16, 0x11, 0x38, 0x10, 0xfe, 0x69, 0x05, 0x77, 0xb8, 0xa4,
0xa4, 0xc4, 0xcb, 0xff, 0x0f, 0x81, 0xc7, 0xb5, 0xbb, 0x1b, 0x33, 0xb4, 0xef, 0xda, 0x6b, 0xaf,
0x45, 0x43, 0x7a, 0x53, 0xe2, 0x1f, 0xf8, 0xa2, 0x3e, 0xd8, 0xed, 0xb7, 0xdf, 0xce, 0x78, 0x5d,
0x01, 0x04, 0x03, 0x01, 0x04, 0x51, 0x73, 0x2c, 0x26, 0x26, 0x86, 0x7a, 0x7a, 0x7a, 0x58, 0x71,
0x71, 0x31, 0x7b, 0x79, 0xfa, 0x0b, 0x52, 0xd6, 0x8a, 0x1b, 0x43, 0xee, 0x8a, 0xcf, 0x49, 0xe8,
0x2e, 0x83, 0x17, 0x56, 0x22, 0xd3, 0x21, 0xe8, 0xce, 0x99, 0xe4, 0x4f, 0xbc, 0x9f, 0x1c, 0xdf,
0x0f, 0xa7, 0xea, 0xf5, 0x32, 0xe8, 0x1f, 0xd9, 0x55, 0x97, 0x01, 0x40, 0x81, 0xec, 0x02, 0x2d,
0xfa, 0xd0, 0x07, 0x44, 0x38, 0x13, 0xc4, 0xe8, 0x18, 0x18, 0xaa, 0x88, 0xaf, 0xbf, 0xfe, 0x7a,
0x1a, 0x33, 0x66, 0x4c, 0xf8, 0x88, 0x7e, 0x10, 0x82, 0xa0, 0x0b, 0x70, 0xe3, 0x80, 0xa0, 0x8f,
0x82, 0xfc, 0x1c, 0x11, 0x91, 0x6e, 0xb9, 0xe5, 0x16, 0xf6, 0xe9, 0xa7, 0x9f, 0x86, 0xde, 0x7a,
0xeb, 0x2d, 0xb6, 0x74, 0xe9, 0x52, 0x81, 0x4b, 0x8d, 0xd1, 0xa3, 0x47, 0xd3, 0x88, 0x11, 0x23,
0x68, 0xc3, 0x86, 0x0d, 0x41, 0xd4, 0x91, 0xc8, 0x47, 0x53, 0xc8, 0x17, 0x01, 0xef, 0xc9, 0xbb,
0xbb, 0x74, 0x6a, 0xcf, 0xdc, 0x5a, 0xd5, 0xae, 0xdb, 0xc8, 0xaf, 0xdd, 0x45, 0x92, 0xdf, 0x46,
0xe4, 0x84, 0xbf, 0xda, 0x55, 0x24, 0x16, 0x4c, 0x21, 0xcf, 0xf1, 0x3b, 0x48, 0xbf, 0x41, 0x46,
0x95, 0xeb, 0x65, 0x5f, 0x0c, 0x16, 0x01, 0xde, 0xc8, 0xb8, 0x1a, 0xad, 0x42, 0x03, 0x49, 0x85,
0x23, 0x7a, 0xec, 0xe0, 0x65, 0x11, 0xe0, 0x75, 0x81, 0x6e, 0x2b, 0xa1, 0x48, 0xc3, 0xbb, 0x09,
0x09, 0xc1, 0x60, 0x12, 0x3a, 0x72, 0x38, 0x22, 0x9f, 0x7d, 0xf6, 0x59, 0x68, 0xee, 0xdc, 0xb9,
0x41, 0xa4, 0x88, 0x70, 0xe3, 0x8d, 0x37, 0x32, 0x44, 0x20, 0xf4, 0xde, 0x7b, 0xef, 0x89, 0x48,
0x39, 0x36, 0x6d, 0xda, 0x34, 0x5a, 0xb3, 0x66, 0x4d, 0x58, 0x24, 0xbe, 0xfd, 0xf6, 0xdb, 0xfc,
0x5a, 0x11, 0x8c, 0xc5, 0xc0, 0x42, 0x0c, 0x00, 0x18, 0x36, 0x51, 0x54, 0xa9, 0x54, 0x49, 0x19,
0x1b, 0x27, 0x58, 0x3b, 0xd2, 0x9e, 0xa3, 0xa0, 0x35, 0x05, 0x6d, 0xc0, 0x4f, 0xd4, 0x99, 0x08,
0x05, 0xf4, 0x21, 0x05, 0xd3, 0xc7, 0x93, 0x73, 0xff, 0x28, 0xaa, 0x59, 0x2b, 0x73, 0x2b, 0xd7,
0xca, 0x7e, 0x3d, 0x24, 0x00, 0xde, 0x40, 0xd0, 0x98, 0x12, 0xa7, 0x4c, 0x99, 0x62, 0xc4, 0xff,
0xf9, 0xd0, 0x6c, 0x81, 0x75, 0xc3, 0xdc, 0xef, 0xbf, 0xff, 0x7e, 0x00, 0xb5, 0x22, 0x3d, 0xfe,
0xf8, 0xe3, 0x22, 0x1c, 0x92, 0x00, 0x96, 0x53, 0x21, 0x2f, 0x7e, 0xc6, 0x77, 0x96, 0xd7, 0x03,
0xce, 0xb9, 0x86, 0x77, 0x73, 0x30, 0x4f, 0x3c, 0xf1, 0x84, 0xc8, 0xe9, 0x93, 0xaf, 0x91, 0xef,
0x12, 0xd8, 0x28, 0x80, 0x9a, 0x08, 0xf2, 0x7b, 0xf0, 0x5e, 0x82, 0xbe, 0xc0, 0xbc, 0x5e, 0x2f,
0xc3, 0x0c, 0xce, 0xa0, 0x71, 0x06, 0x10, 0x8d, 0xe8, 0x12, 0x79, 0x4a, 0xad, 0xfc, 0xf7, 0xa3,
0x24, 0x6f, 0xed, 0x32, 0x12, 0x9d, 0xf5, 0xb8, 0x1b, 0x44, 0xa9, 0x71, 0x17, 0xb1, 0xb2, 0xe9,
0xe4, 0x8b, 0xfb, 0x37, 0xb2, 0x6e, 0xbe, 0x9a, 0x4a, 0x56, 0xc9, 0xe2, 0xaf, 0x08, 0x00, 0xa2,
0xee, 0x24, 0x86, 0xf7, 0x22, 0xe4, 0xf4, 0x65, 0x36, 0x61, 0xc2, 0x84, 0x8e, 0x71, 0xe3, 0xc6,
0xf5, 0x54, 0x56, 0x56, 0x36, 0xe1, 0x8d, 0xfb, 0xf0, 0x3a, 0x06, 0x85, 0x48, 0xc3, 0x87, 0x0f,
0xe7, 0x0d, 0x8c, 0x41, 0x70, 0x71, 0x40, 0x38, 0x88, 0x41, 0xec, 0xb4, 0x88, 0x7b, 0x8b, 0xc8,
0x75, 0x1f, 0xf4, 0x95, 0x00, 0x89, 0x22, 0xc2, 0x71, 0x3f, 0x5f, 0xe3, 0xe8, 0xeb, 0xec, 0xec,
0xf4, 0x82, 0x89, 0x18, 0x9f, 0xad, 0x67, 0xcc, 0x98, 0xd1, 0x87, 0xd7, 0x45, 0x77, 0x75, 0x75,
0x75, 0xae, 0xfe, 0x64, 0xb2, 0x5b, 0x7d, 0xf0, 0x6e, 0x0a, 0xe8, 0x23, 0x89, 0x09, 0x60, 0xda,
0x9e, 0x02, 0xa2, 0xa6, 0x6f, 0x48, 0xc8, 0xfd, 0x2d, 0x0d, 0x1c, 0xb9, 0x9d, 0xd4, 0x6b, 0x64,
0x54, 0xb8, 0x42, 0x36, 0x6d, 0x48, 0x00, 0x70, 0x2c, 0x15, 0xbb, 0x6c, 0x1e, 0xcc, 0xa0, 0xc5,
0x35, 0xa0, 0xbe, 0x98, 0xf3, 0x3a, 0x05, 0x8e, 0xc6, 0x60, 0x86, 0x28, 0xc4, 0x84, 0xe4, 0xe3,
0x60, 0xb8, 0x33, 0xfc, 0x43, 0x31, 0xbe, 0xe3, 0x28, 0x50, 0x61, 0xf1, 0xe2, 0xc5, 0xd2, 0xcc,
0x99, 0x33, 0x19, 0x1c, 0x64, 0xd3, 0xa7, 0x4f, 0x67, 0x5c, 0x43, 0xf1, 0xe8, 0x61, 0x2d, 0x80,
0xff, 0x39, 0x09, 0x48, 0x5c, 0x82, 0xa0, 0x56, 0x3a, 0x71, 0x5e, 0x02, 0x76, 0x32, 0x3d, 0xf2,
0xc8, 0x23, 0xf6, 0x98, 0xcf, 0x64, 0x75, 0x0e, 0xf9, 0x1b, 0x14, 0xb2, 0xe5, 0x11, 0x85, 0x80,
0xcd, 0x02, 0x75, 0x5d, 0x33, 0x2b, 0xdc, 0x1b, 0x7a, 0x76, 0x8e, 0xa4, 0x92, 0xe5, 0x32, 0x53,
0xfa, 0x5a, 0xd9, 0xc8, 0x30, 0x00, 0x14, 0xd0, 0x56, 0x74, 0xd6, 0x0b, 0x00, 0xfe, 0xa7, 0x86,
0x94, 0x4a, 0x01, 0xeb, 0x58, 0x78, 0x67, 0x45, 0x1a, 0x06, 0x90, 0xd3, 0xa2, 0x5c, 0x2e, 0x67,
0x58, 0x33, 0x30, 0x93, 0x00, 0xca, 0x14, 0x90, 0x26, 0x62, 0x30, 0x18, 0x64, 0xd8, 0x04, 0xc2,
0x51, 0x00, 0xf3, 0xf1, 0x8f, 0x2f, 0xd9, 0xb2, 0x65, 0xcb, 0x5a, 0x70, 0x8f, 0x8e, 0x39, 0x73,
0xe6, 0xd8, 0x1e, 0x7e, 0xf8, 0xe1, 0xd9, 0xb3, 0xc6, 0xcb, 0x5e, 0x91, 0xff, 0xfe, 0x57, 0x82,
0xaf, 0x71, 0x23, 0x49, 0xe1, 0xde, 0x80, 0x74, 0x6a, 0xdd, 0x84, 0xde, 0x30, 0x95, 0xbc, 0xd1,
0x77, 0x51, 0xeb, 0x3a, 0x19, 0xe5, 0x2e, 0x91, 0x6d, 0xfb, 0x29, 0x00, 0x74, 0x10, 0x4a, 0xfd,
0xdf, 0x1a, 0x80, 0x14, 0xc3, 0xf9, 0x5e, 0x48, 0x8c, 0x10, 0x4a, 0x20, 0x2c, 0x51, 0x90, 0x1a,
0x1e, 0xad, 0x56, 0xeb, 0xe1, 0x8d, 0x4e, 0xa1, 0x50, 0x70, 0x40, 0x12, 0x76, 0x9b, 0x37, 0x42,
0xfe, 0x29, 0x9f, 0x84, 0x02, 0xb7, 0x41, 0x72, 0xb4, 0xa3, 0x6e, 0x0c, 0xfc, 0xfb, 0x0a, 0x90,
0xc6, 0x98, 0x1d, 0xb3, 0x64, 0x3f, 0x68, 0xa2, 0x1e, 0x41, 0x6f, 0xe0, 0x7a, 0x0e, 0x99, 0x69,
0xc7, 0x7c, 0xaf, 0x46, 0x6f, 0xc8, 0x9a, 0x4c, 0x7d, 0x07, 0x6f, 0xa1, 0x82, 0xa5, 0x57, 0x89,
0x79, 0xcb, 0x64, 0x0f, 0xc9, 0xf0, 0xa2, 0xe5, 0xc8, 0x6f, 0x2b, 0xff, 0x32, 0x0f, 0x6f, 0xf8,
0x8b, 0x19, 0x52, 0xc8, 0xc1, 0x27, 0x3c, 0x38, 0x2a, 0xb9, 0x5c, 0x2e, 0x91, 0x77, 0x5d, 0x58,
0x00, 0xcf, 0x79, 0xf1, 0x5c, 0x00, 0xa0, 0xf8, 0x73, 0x22, 0xc4, 0xa3, 0x1f, 0xfa, 0x6b, 0xe0,
0xa3, 0x8f, 0x3e, 0xb2, 0x8f, 0x1f, 0x3f, 0xfe, 0x8d, 0xf0, 0xae, 0xca, 0x64, 0xd7, 0x8c, 0xbe,
0x51, 0xf6, 0x48, 0xfc, 0x97, 0x57, 0x5b, 0xfb, 0xcb, 0xfe, 0xd8, 0x1b, 0xc4, 0xd6, 0xbd, 0xa4,
0x3b, 0x76, 0x3f, 0xa5, 0x2f, 0xbd, 0x99, 0x0e, 0x2c, 0x7d, 0xde, 0x96, 0xb0, 0x56, 0x36, 0x9c,
0xf7, 0x81, 0xdb, 0x21, 0x0f, 0x4a, 0xc0, 0x3c, 0x36, 0x6e, 0xd0, 0x46, 0x17, 0x0c, 0x5d, 0xfa,
0x12, 0x43, 0xbd, 0x5c, 0x62, 0x78, 0xed, 0x25, 0x86, 0x68, 0x5e, 0x30, 0x6c, 0xcc, 0x79, 0x73,
0x72, 0x46, 0xc2, 0xf5, 0x12, 0xf2, 0x5f, 0x04, 0xe3, 0x88, 0x90, 0x1d, 0xc1, 0xa9, 0x53, 0xa7,
0xfa, 0xb8, 0x7d, 0xf0, 0xc1, 0x07, 0x03, 0xe8, 0x09, 0x56, 0x5c, 0xd3, 0x04, 0xc7, 0x2f, 0x34,
0x2a, 0x3c, 0x46, 0xcd, 0x7b, 0x4e, 0x36, 0xbb, 0x74, 0xcb, 0x6d, 0xe4, 0x69, 0xdc, 0x4e, 0x9a,
0xec, 0xf5, 0x94, 0xbe, 0xe2, 0x6e, 0x4a, 0x8b, 0x98, 0x43, 0xc7, 0xa3, 0x4e, 0x42, 0x14, 0x6e,
0x69, 0xfd, 0xab, 0xfd, 0xd4, 0x80, 0xa7, 0xc5, 0xc4, 0x89, 0x13, 0x3f, 0x79, 0xec, 0xb1, 0xc7,
0xba, 0xd0, 0xc9, 0x3b, 0x40, 0xb9, 0xd6, 0x3f, 0x7c, 0xa1, 0x02, 0x8a, 0x21, 0x1b, 0x84, 0x5f,
0xcf, 0xa3, 0x8f, 0x3e, 0x3a, 0xfd, 0xb2, 0x26, 0x25, 0x93, 0xdd, 0x15, 0xf1, 0xae, 0x2c, 0x3d,
0x69, 0xd1, 0x4d, 0x62, 0x6d, 0xe6, 0x7a, 0xd2, 0xea, 0x35, 0x54, 0x58, 0xa6, 0xa4, 0xe3, 0xd1,
0x09, 0xf4, 0xed, 0xb7, 0x2b, 0x16, 0xfe, 0xd5, 0x7f, 0x2b, 0x31, 0x76, 0xec, 0xd8, 0x11, 0xa0,
0xe2, 0x6f, 0x00, 0xc4, 0x09, 0x8d, 0x64, 0x41, 0x4a, 0x59, 0x41, 0xc9, 0x46, 0x30, 0x9c, 0x72,
0x50, 0x9d, 0x23, 0x93, 0x0d, 0x7f, 0x70, 0xb4, 0xec, 0xf1, 0x09, 0x63, 0x7f, 0xf5, 0xd4, 0xf7,
0x3b, 0x77, 0xc6, 0xc7, 0x25, 0x24, 0xda, 0x22, 0x22, 0x8f, 0xb4, 0xcd, 0x9d, 0x3b, 0x6f, 0xcd,
0xf9, 0x68, 0xfd, 0x4d, 0x7e, 0xa0, 0x81, 0x74, 0xb9, 0x01, 0xc2, 0x6e, 0x03, 0xa2, 0xe2, 0xc5,
0x71, 0x00, 0xa0, 0x26, 0x0c, 0xa9, 0x36, 0x65, 0xb2, 0x61, 0xb0, 0x11, 0xb0, 0x3b, 0x60, 0xff,
0xca, 0x0b, 0x1c, 0x76, 0xed, 0xdf, 0xc5, 0xaf, 0x55, 0x1e, 0x78, 0xe0, 0x81, 0xe1, 0x3f, 0xfd,
0xc2, 0xe2, 0xcf, 0xb5, 0xff, 0x02, 0x32, 0xee, 0xa6, 0x45, 0xe4, 0x1e, 0x1c, 0xf3, 0x00, 0x00,
0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
};
const BITMAP_OPAQUE icon_gerbview_xpm[1] = {{ png, sizeof( png ), "icon_gerbview_xpm" }};

View File

@ -8,150 +8,148 @@
static const unsigned char png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x08, 0x06, 0x00, 0x00, 0x00, 0x57, 0x02, 0xf9,
0x87, 0x00, 0x00, 0x08, 0xdd, 0x49, 0x44, 0x41, 0x54, 0x68, 0xde, 0xd5, 0x9a, 0x7b, 0x70, 0xd4,
0xd5, 0x15, 0xc7, 0x3f, 0xf7, 0xb7, 0xef, 0x4d, 0x36, 0x4f, 0x76, 0x09, 0x81, 0x54, 0xe3, 0x23,
0x8a, 0xbc, 0x44, 0x50, 0x08, 0x19, 0x2b, 0x38, 0x88, 0xa2, 0x62, 0xa7, 0xce, 0xd8, 0xd1, 0x3a,
0x32, 0x2a, 0x15, 0xa8, 0x0f, 0xd4, 0x76, 0x6a, 0xa5, 0x76, 0xb4, 0x0c, 0x8f, 0x8e, 0xa3, 0x08,
0x3e, 0x80, 0x16, 0x14, 0xa8, 0x4a, 0x9d, 0x5a, 0xc5, 0xb1, 0x38, 0x6a, 0xb4, 0x88, 0x55, 0x29,
0xa9, 0x42, 0x19, 0x14, 0x2d, 0x6d, 0xa4, 0x80, 0x26, 0x46, 0x24, 0xca, 0xee, 0x66, 0xf3, 0xd8,
0xec, 0xee, 0x3d, 0xfd, 0x23, 0x6c, 0xf2, 0xdb, 0xf7, 0x2e, 0x4d, 0xa6, 0xf6, 0x37, 0x73, 0x66,
0x7e, 0x7b, 0x9f, 0xe7, 0x75, 0xbf, 0xe7, 0x9c, 0xfb, 0x5b, 0x25, 0x22, 0xfc, 0x3f, 0x3f, 0xd6,
0xe4, 0x86, 0xf7, 0xd6, 0xa9, 0x72, 0x97, 0x85, 0xe1, 0x83, 0xb9, 0x49, 0xd4, 0x20, 0x34, 0xe5,
0x47, 0xd2, 0x92, 0x6d, 0xcc, 0xfb, 0x1b, 0x54, 0x9d, 0x45, 0x30, 0x72, 0xad, 0x15, 0xb1, 0xd3,
0x33, 0xf5, 0x46, 0x39, 0x1c, 0xff, 0xad, 0xe2, 0x16, 0xd8, 0xb9, 0x51, 0x79, 0xac, 0x31, 0x16,
0xa3, 0x58, 0x04, 0x14, 0x0d, 0x81, 0xb2, 0x3e, 0x14, 0x78, 0xbe, 0xc7, 0xca, 0xca, 0xe9, 0x37,
0x4a, 0x8f, 0xb9, 0xa3, 0x69, 0x83, 0x7a, 0x44, 0x29, 0xee, 0x2e, 0x60, 0xad, 0x9d, 0xdd, 0xad,
0x4c, 0x9f, 0xfe, 0x80, 0x44, 0xfb, 0x25, 0x56, 0x31, 0xee, 0xd4, 0xb0, 0x58, 0x0b, 0x45, 0x5a,
0x60, 0x08, 0x68, 0xbc, 0x08, 0xcb, 0x9c, 0x11, 0x76, 0xbc, 0xbb, 0x49, 0x79, 0x93, 0x18, 0xaa,
0x2f, 0x70, 0xad, 0x06, 0xfb, 0x48, 0xbe, 0x9b, 0xe8, 0x42, 0xc2, 0xbc, 0xf8, 0x69, 0x70, 0x94,
0x4d, 0xc0, 0xe2, 0x1c, 0x31, 0xa8, 0xea, 0xef, 0x69, 0x7f, 0x17, 0x1d, 0xed, 0x44, 0x60, 0xaa,
0x35, 0xc2, 0xdf, 0x76, 0xad, 0x57, 0x97, 0xd7, 0xcf, 0x97, 0x03, 0x00, 0xa2, 0x59, 0x22, 0x8a,
0x17, 0x01, 0x77, 0xbe, 0xeb, 0x29, 0x8d, 0x3d, 0x41, 0x00, 0x2d, 0xf4, 0x73, 0xec, 0x39, 0x6d,
0x21, 0xc5, 0xd5, 0x57, 0x0d, 0xaa, 0x00, 0xe1, 0xc0, 0x7e, 0xbe, 0x7c, 0x7f, 0x2e, 0xb1, 0x9e,
0xa3, 0x00, 0xb5, 0xc0, 0xae, 0x9d, 0xeb, 0xd5, 0xd5, 0x0d, 0xf3, 0x65, 0x47, 0xfd, 0x02, 0x79,
0xfd, 0xaf, 0x1b, 0xd4, 0x74, 0xad, 0xd9, 0x06, 0x85, 0x9d, 0xbf, 0x7e, 0x17, 0x12, 0x6d, 0x26,
0x41, 0x44, 0xb0, 0x58, 0x2c, 0xb8, 0x5c, 0xae, 0xbc, 0x48, 0x02, 0x47, 0x39, 0xbe, 0xfb, 0x75,
0x08, 0x7d, 0x9d, 0xd2, 0x67, 0xb5, 0x5a, 0xb1, 0x97, 0x8c, 0xa1, 0xba, 0xe1, 0x15, 0x6c, 0xc5,
0xa3, 0xe3, 0xfb, 0x94, 0xe9, 0x18, 0x8d, 0xef, 0xae, 0x55, 0x37, 0x02, 0x4c, 0xbb, 0x45, 0x3e,
0x88, 0x0a, 0x53, 0x45, 0xf8, 0x44, 0x04, 0x72, 0x51, 0x8a, 0x00, 0x89, 0x3e, 0x26, 0x68, 0xad,
0xb1, 0xd9, 0x6c, 0x78, 0x3c, 0x9e, 0xbc, 0xa8, 0xe3, 0x40, 0x13, 0x7b, 0x57, 0xce, 0xa7, 0xe7,
0xc8, 0x47, 0x29, 0x7d, 0xe5, 0xe5, 0xe5, 0x38, 0x9d, 0x4e, 0x2c, 0xce, 0x2a, 0x46, 0x34, 0x6c,
0xc5, 0xe9, 0xbd, 0x28, 0xbe, 0x97, 0x4d, 0xc3, 0xa6, 0xb7, 0xd7, 0xaa, 0x65, 0xa0, 0xd4, 0xf4,
0x85, 0x72, 0x38, 0x6c, 0x30, 0x4d, 0x60, 0x7b, 0x2e, 0x01, 0xa2, 0xb1, 0x64, 0x0b, 0x24, 0x0c,
0x90, 0x82, 0x29, 0xae, 0x96, 0x74, 0xf3, 0x01, 0x4a, 0x4a, 0x4a, 0x28, 0x2a, 0x2a, 0x02, 0xc3,
0x8d, 0xef, 0xfc, 0x8d, 0x78, 0xbe, 0xf3, 0xc3, 0x01, 0x6d, 0x0a, 0xf7, 0xbd, 0xbd, 0x86, 0xdf,
0xbf, 0xf6, 0xb8, 0x72, 0xcc, 0x9c, 0x2f, 0x81, 0x22, 0x83, 0xd9, 0x31, 0xcd, 0x26, 0xad, 0x21,
0x13, 0x65, 0xb5, 0x80, 0x99, 0x89, 0xc1, 0x7c, 0x8a, 0x8b, 0x8b, 0x29, 0x2d, 0x2d, 0x45, 0x29,
0x2b, 0x95, 0xe3, 0x56, 0x50, 0x7e, 0xf6, 0xbd, 0x68, 0x51, 0xf1, 0x7d, 0xaf, 0x75, 0x28, 0xb6,
0xbf, 0xbd, 0x5e, 0x0d, 0x9b, 0x34, 0x5f, 0x22, 0x33, 0x6e, 0x93, 0x9b, 0x11, 0x7e, 0x69, 0xd6,
0x4f, 0x56, 0x17, 0x32, 0x77, 0x6a, 0xad, 0xd1, 0x5a, 0x17, 0x66, 0x85, 0xfe, 0x75, 0xb2, 0x8f,
0x73, 0xb9, 0x5c, 0x54, 0x54, 0x54, 0xa0, 0x94, 0xa2, 0xf4, 0xf4, 0x05, 0xf8, 0xce, 0x7b, 0x02,
0x94, 0x23, 0xbe, 0x77, 0x43, 0x2c, 0x4c, 0xd3, 0xf6, 0x35, 0xaa, 0x0e, 0x60, 0xfa, 0xed, 0xb2,
0x5c, 0x84, 0xeb, 0xb5, 0x10, 0x4e, 0x86, 0xd2, 0x58, 0x34, 0x4f, 0x0b, 0x14, 0xe4, 0x46, 0x27,
0xf0, 0x38, 0xd7, 0x38, 0x9b, 0xcd, 0x46, 0x65, 0x65, 0x25, 0x86, 0x61, 0xe0, 0xae, 0xba, 0x8c,
0xaa, 0xa9, 0x5b, 0x50, 0xb6, 0x8a, 0xf8, 0xfe, 0xa7, 0xeb, 0x18, 0xbb, 0xde, 0x7c, 0x5c, 0x5d,
0x04, 0x70, 0xf1, 0x1d, 0xf2, 0x9c, 0x08, 0x33, 0x45, 0xf8, 0x3a, 0xc9, 0x0a, 0x92, 0x19, 0x85,
0x52, 0x98, 0x1a, 0x82, 0x1c, 0xc6, 0x6a, 0xc5, 0xeb, 0xf5, 0x62, 0xb7, 0xdb, 0x71, 0x94, 0x9d,
0x4b, 0x75, 0xc3, 0x8b, 0x58, 0xdd, 0xa7, 0xc5, 0x79, 0xa8, 0x90, 0x18, 0x6f, 0x34, 0xae, 0x56,
0x37, 0x00, 0xcc, 0x5c, 0x24, 0xef, 0x49, 0x5f, 0xb0, 0xdb, 0xaf, 0x05, 0xd1, 0xc2, 0xc1, 0x88,
0xc1, 0xae, 0xcc, 0x28, 0xa4, 0x25, 0x6f, 0x17, 0xea, 0x68, 0x3d, 0x48, 0xd3, 0xf2, 0xb9, 0x1c,
0x7a, 0x6d, 0x33, 0x00, 0xcd, 0x2f, 0xad, 0xa5, 0x69, 0xf9, 0x5c, 0xba, 0xda, 0xbf, 0xc8, 0x39,
0x57, 0x29, 0x45, 0x65, 0x65, 0x65, 0x1f, 0xd4, 0xba, 0x46, 0x51, 0xdd, 0xf0, 0x3c, 0x8e, 0x8a,
0xf3, 0xe3, 0x7c, 0xd8, 0x45, 0x78, 0xba, 0x71, 0x95, 0x5a, 0x02, 0x70, 0xc9, 0x22, 0x69, 0x9e,
0x75, 0xa7, 0x8c, 0x0b, 0xf8, 0x71, 0x56, 0xba, 0x18, 0x3d, 0xfb, 0x0e, 0x09, 0x26, 0xe4, 0x42,
0xaf, 0x3d, 0xa2, 0x7a, 0x00, 0x07, 0xc0, 0xf0, 0xf3, 0x56, 0x51, 0x5c, 0x7d, 0x39, 0x1e, 0x8f,
0x87, 0xb2, 0xb2, 0xb2, 0xac, 0x9a, 0xfc, 0xe6, 0xc0, 0x07, 0xec, 0xb8, 0xeb, 0xe2, 0x94, 0xf6,
0x59, 0x1b, 0xf6, 0xe0, 0xa9, 0xa9, 0xcb, 0xdb, 0x22, 0x81, 0x40, 0x80, 0x60, 0x30, 0x88, 0xe8,
0x08, 0x5f, 0xed, 0x5b, 0x4c, 0xa8, 0x75, 0x9b, 0xb9, 0x7b, 0x4b, 0xa8, 0x83, 0x9b, 0xaf, 0x79,
0x40, 0x7a, 0x33, 0x06, 0xb2, 0xc4, 0x33, 0x50, 0xb8, 0xef, 0xd7, 0x5e, 0x31, 0x8f, 0xcb, 0x36,
0xef, 0xa7, 0x66, 0xc6, 0x35, 0x79, 0x1d, 0xe6, 0x64, 0x2a, 0x29, 0x29, 0xa1, 0xbc, 0xbc, 0x1c,
0x65, 0xd8, 0xf0, 0x9d, 0xfb, 0x10, 0x65, 0x67, 0xdc, 0x6a, 0xe6, 0xe9, 0x7a, 0xb7, 0x87, 0x3f,
0x37, 0xae, 0x52, 0x15, 0x99, 0x23, 0x71, 0x02, 0x0a, 0x49, 0x41, 0x48, 0x04, 0x60, 0x73, 0x7b,
0x70, 0xf9, 0x6a, 0xb0, 0xba, 0x8a, 0x4f, 0x4a, 0x00, 0x11, 0xc1, 0xed, 0x76, 0x33, 0x6c, 0xd8,
0x30, 0x94, 0x52, 0x94, 0xd7, 0xdd, 0x81, 0x6f, 0xc2, 0xaf, 0x01, 0x6b, 0x1f, 0x5f, 0x9a, 0x0b,
0x23, 0x31, 0x9a, 0xfe, 0xb4, 0x4a, 0x9d, 0x31, 0x24, 0x16, 0x18, 0x40, 0xae, 0x7e, 0x2c, 0x3a,
0x29, 0x21, 0xec, 0x76, 0x3b, 0x3e, 0x9f, 0x0f, 0xc3, 0x30, 0x28, 0xaa, 0xbe, 0x8a, 0xaa, 0x0b,
0xd6, 0x83, 0xd5, 0x13, 0xe7, 0xed, 0x4c, 0xa2, 0x34, 0xbd, 0xf2, 0x90, 0x3a, 0x2f, 0xab, 0x05,
0x86, 0x2a, 0x90, 0x15, 0x82, 0x50, 0xc3, 0x87, 0x0f, 0xc7, 0x6e, 0xb7, 0xe3, 0xac, 0xb8, 0x80,
0x91, 0xf5, 0x5b, 0xb0, 0x3a, 0x47, 0xc6, 0x79, 0xab, 0x8c, 0x69, 0x1e, 0x4c, 0xb5, 0x40, 0x42,
0xa8, 0x2e, 0xc0, 0x7d, 0x4c, 0x32, 0x26, 0x08, 0x7c, 0x92, 0xb1, 0x24, 0x4e, 0x86, 0x61, 0xe0,
0xf3, 0xf9, 0x70, 0xb9, 0x5c, 0xd8, 0x8a, 0x6a, 0x19, 0x31, 0xe5, 0xa9, 0x01, 0xfe, 0x84, 0x99,
0x2f, 0xad, 0x50, 0x63, 0x13, 0xd2, 0xe9, 0x84, 0xbd, 0x25, 0xff, 0x58, 0x10, 0x8f, 0xc1, 0x47,
0xde, 0x7c, 0x96, 0xd6, 0x77, 0xb6, 0x12, 0xed, 0x0e, 0x25, 0x9c, 0x81, 0xc1, 0x48, 0x3f, 0x42,
0xa1, 0x10, 0xca, 0xea, 0x49, 0xe0, 0x51, 0x19, 0x8c, 0x02, 0xf6, 0x9b, 0xeb, 0x01, 0x06, 0xde,
0xa5, 0x80, 0x60, 0xa6, 0x30, 0x6c, 0x0e, 0x22, 0x21, 0x3f, 0xbd, 0x81, 0x76, 0x0c, 0xab, 0x0d,
0xc3, 0xe6, 0x00, 0xd4, 0xa0, 0x08, 0x60, 0xe6, 0xc3, 0xcc, 0xa3, 0xa8, 0xa4, 0xa2, 0x5e, 0x92,
0x5c, 0xc1, 0xec, 0x46, 0xd9, 0x9e, 0xd2, 0x33, 0x27, 0x72, 0xf9, 0x0b, 0xad, 0x7c, 0xfa, 0xe2,
0xa3, 0x1c, 0x78, 0x7a, 0x29, 0xf5, 0x2b, 0xb6, 0x51, 0x7e, 0xd6, 0xe4, 0x54, 0x97, 0x32, 0x17,
0xc7, 0x4f, 0xdc, 0xcd, 0x37, 0x9f, 0xec, 0x3a, 0xd1, 0x7f, 0x22, 0x2f, 0xe8, 0x7f, 0xef, 0x63,
0xa6, 0xaa, 0xfe, 0x4a, 0xce, 0xb9, 0x69, 0x49, 0x92, 0x6b, 0x99, 0x6f, 0x0a, 0x92, 0x04, 0x38,
0x79, 0x0b, 0x24, 0x69, 0x20, 0x8f, 0x39, 0xdd, 0xed, 0x2d, 0x84, 0x5a, 0x3f, 0x3d, 0x61, 0x40,
0x85, 0x52, 0x06, 0x28, 0x05, 0x28, 0x94, 0x52, 0x88, 0x8e, 0xf1, 0xef, 0x97, 0xd7, 0x12, 0xf6,
0x7f, 0xc5, 0x59, 0xf3, 0x1f, 0xea, 0x57, 0x66, 0x02, 0x8f, 0xe4, 0xb0, 0x40, 0xa1, 0x02, 0xc4,
0x47, 0xfd, 0xfd, 0xe1, 0x5b, 0x30, 0xec, 0xce, 0xac, 0x63, 0x2d, 0x76, 0x17, 0x00, 0x33, 0x7e,
0xbb, 0x07, 0x97, 0xaf, 0x26, 0xa5, 0xbf, 0xeb, 0xe8, 0x67, 0x34, 0xdd, 0x77, 0x15, 0xad, 0x7f,
0x79, 0x81, 0x9e, 0xc0, 0x37, 0x78, 0xaf, 0x5f, 0x9a, 0x6a, 0x81, 0x6c, 0x2e, 0x64, 0xce, 0x85,
0xb4, 0xb9, 0x7a, 0x48, 0xd2, 0xb8, 0x8e, 0xf6, 0xa2, 0x0c, 0x03, 0x65, 0xb1, 0xf5, 0x0b, 0x1a,
0xed, 0x0e, 0x61, 0x44, 0xc2, 0xd9, 0xeb, 0x58, 0x9b, 0x03, 0x80, 0xb6, 0x5d, 0xdb, 0x70, 0x94,
0x7a, 0x51, 0x86, 0x05, 0x0c, 0xa3, 0x6f, 0x2d, 0x65, 0xd0, 0x75, 0xf4, 0x08, 0x61, 0xff, 0x57,
0xa0, 0x14, 0xe5, 0x63, 0xa6, 0x81, 0x61, 0x41, 0xa2, 0x92, 0x50, 0xc8, 0xa8, 0x64, 0x0b, 0xc4,
0x04, 0x94, 0xe4, 0x6f, 0x81, 0xce, 0xd6, 0x4f, 0x79, 0xef, 0xce, 0x0b, 0xa9, 0x6a, 0xf8, 0x1e,
0x13, 0xee, 0xfe, 0x0d, 0xdd, 0x47, 0x8f, 0x00, 0x30, 0xf6, 0xf6, 0xc7, 0xf0, 0x4d, 0xbe, 0x24,
0xab, 0x00, 0x7b, 0x96, 0x5d, 0x47, 0x07, 0x70, 0x60, 0xf3, 0xaf, 0xb2, 0x0a, 0x39, 0xfe, 0xae,
0xb5, 0x94, 0x4d, 0xbc, 0x84, 0xb6, 0xb6, 0xb6, 0x13, 0x0a, 0x35, 0x29, 0x39, 0xc5, 0x02, 0x1a,
0x53, 0x51, 0x92, 0x1b, 0x46, 0xc5, 0xe4, 0xf3, 0x6d, 0x3b, 0x5f, 0xa6, 0x75, 0xc7, 0x1f, 0x50,
0x16, 0x1b, 0x45, 0xd5, 0xa7, 0xe5, 0x74, 0xbb, 0xea, 0x19, 0xd7, 0xf6, 0x69, 0x56, 0x6b, 0x44,
0xfa, 0x88, 0x98, 0xe9, 0x5d, 0x6b, 0xbc, 0xe7, 0x5f, 0x4a, 0x59, 0xdd, 0x24, 0x7a, 0x7a, 0x7a,
0xd2, 0xa2, 0x90, 0xca, 0xee, 0x42, 0x3a, 0x27, 0x0a, 0xc5, 0xdb, 0xbb, 0x8e, 0x1e, 0xe6, 0xa3,
0xd5, 0xb7, 0x62, 0x71, 0x15, 0x71, 0xee, 0xcf, 0x7f, 0x87, 0xab, 0xaa, 0x36, 0xa7, 0x00, 0xc3,
0xeb, 0xe7, 0x14, 0x0c, 0xa1, 0xc9, 0x67, 0x20, 0x16, 0xcd, 0x7a, 0x88, 0x07, 0x26, 0x7f, 0xfe,
0xc6, 0xd3, 0x69, 0x17, 0xef, 0xf5, 0x1f, 0x03, 0x20, 0x78, 0xf0, 0x43, 0xec, 0xa5, 0x5e, 0x26,
0xfe, 0xe2, 0x59, 0x3c, 0xa7, 0x8e, 0x19, 0xf4, 0xf4, 0xc3, 0x0c, 0xe9, 0x5a, 0xb2, 0x5c, 0xee,
0xea, 0x0c, 0x28, 0x74, 0xe0, 0xc9, 0xc5, 0x39, 0xe2, 0x98, 0x62, 0xf2, 0x92, 0xad, 0xb8, 0x47,
0xd4, 0x0e, 0x49, 0x5e, 0x94, 0xc9, 0x02, 0x2a, 0x5f, 0x14, 0x1a, 0xbb, 0x68, 0x4d, 0xfa, 0x9b,
0xb6, 0xe3, 0x5f, 0xd2, 0xfc, 0xcc, 0x52, 0x10, 0xe1, 0xd0, 0xd6, 0x47, 0x19, 0xbd, 0xf0, 0xe1,
0x3e, 0x34, 0x19, 0x32, 0x21, 0x12, 0x95, 0x4c, 0x2c, 0x4f, 0x0b, 0xf8, 0x32, 0xf8, 0x6b, 0xd7,
0x17, 0x07, 0x69, 0x7e, 0x66, 0x29, 0xb6, 0xe2, 0x32, 0xda, 0xde, 0x79, 0x81, 0x48, 0x57, 0x90,
0xb1, 0x8b, 0xd6, 0x62, 0xd8, 0xec, 0x83, 0xca, 0x7c, 0xc2, 0x79, 0xcc, 0x06, 0xa3, 0xe6, 0xce,
0x42, 0x82, 0x58, 0xf9, 0x98, 0x69, 0x44, 0xbb, 0x43, 0xb4, 0xef, 0x7e, 0x83, 0x7d, 0x0f, 0xce,
0x65, 0xfc, 0xcf, 0x36, 0x62, 0x71, 0xa4, 0xbf, 0xa3, 0xed, 0x6c, 0x69, 0xa6, 0xe5, 0xf5, 0x8d,
0x85, 0xa5, 0xd6, 0x15, 0xd5, 0xc8, 0xb8, 0xcb, 0xfa, 0xad, 0x20, 0x99, 0x72, 0x21, 0x9d, 0xc1,
0x85, 0xcc, 0x42, 0xa8, 0xb8, 0xe3, 0x99, 0x8f, 0x80, 0x61, 0x61, 0xc2, 0x3d, 0x9b, 0xd9, 0xbf,
0xfa, 0xc7, 0x1c, 0xdb, 0xdd, 0x88, 0xff, 0x93, 0x26, 0x2a, 0x27, 0x5e, 0x9c, 0xfe, 0x86, 0xfa,
0xeb, 0x56, 0xda, 0xf7, 0x6e, 0xa7, 0x7a, 0xc6, 0x75, 0x79, 0x0b, 0xa0, 0xdc, 0x25, 0xc4, 0xd2,
0xc0, 0x68, 0x3c, 0x97, 0xc8, 0x89, 0x42, 0x69, 0xb1, 0x1f, 0x70, 0x56, 0x9d, 0xca, 0x85, 0x4f,
0x7e, 0x84, 0xb2, 0xd8, 0xc0, 0xb0, 0xe0, 0xab, 0x9f, 0xc3, 0xb1, 0xdd, 0x8d, 0xe8, 0x58, 0x24,
0xb3, 0xe5, 0x44, 0x70, 0x54, 0x8c, 0x60, 0xd4, 0xec, 0x9b, 0xf9, 0xc7, 0xba, 0x9f, 0xf6, 0x37,
0x9f, 0x39, 0xf7, 0x7e, 0x9c, 0xde, 0x1a, 0x3e, 0x7f, 0x75, 0x03, 0x5d, 0x6d, 0x87, 0x12, 0x93,
0xc5, 0xda, 0xf1, 0xf4, 0xa4, 0x41, 0x21, 0xc9, 0x17, 0x85, 0x32, 0xbb, 0x91, 0xc2, 0xe2, 0xf2,
0xa4, 0xe4, 0xfe, 0xf1, 0x9b, 0xed, 0xcc, 0xf9, 0x9e, 0x29, 0xf3, 0x4c, 0xda, 0xaf, 0xeb, 0xcb,
0xc3, 0x84, 0x8e, 0x7c, 0x9c, 0x30, 0xc7, 0x7d, 0xc6, 0x24, 0xc4, 0x5d, 0x5d, 0x60, 0x2e, 0x24,
0x92, 0x57, 0x2a, 0x7d, 0xd2, 0x25, 0xa3, 0xbb, 0x84, 0xb1, 0x3f, 0xd9, 0x90, 0xd2, 0x5e, 0x77,
0xd3, 0xb2, 0x54, 0xb0, 0xe8, 0xea, 0x22, 0xf4, 0xd9, 0x67, 0xa9, 0x30, 0x1a, 0xfb, 0xaf, 0x2d,
0x70, 0x62, 0x6c, 0x34, 0x42, 0xa0, 0x79, 0x0f, 0x9d, 0x2d, 0xff, 0x02, 0x20, 0xd4, 0xf2, 0x4f,
0x2c, 0x6e, 0x0f, 0xc5, 0xa7, 0x9c, 0x83, 0xd5, 0x5d, 0x92, 0x5a, 0xbd, 0x09, 0xf4, 0x06, 0xda,
0x89, 0x84, 0xfc, 0xfd, 0xed, 0x8e, 0x8a, 0x2a, 0x2c, 0xce, 0x81, 0xcf, 0x72, 0xc1, 0xe6, 0x3d,
0xe8, 0x68, 0xa4, 0x6f, 0x8e, 0xbb, 0x22, 0x6d, 0x20, 0x93, 0xac, 0x28, 0xa4, 0xf3, 0x47, 0xa1,
0x48, 0xa7, 0x9f, 0x7d, 0xcb, 0x07, 0x0e, 0xe5, 0xe1, 0x3f, 0xae, 0x04, 0x60, 0xc2, 0x7d, 0xcf,
0x51, 0x36, 0x7a, 0x6a, 0xda, 0x39, 0x47, 0x5e, 0x5e, 0x43, 0x6b, 0xe3, 0xa6, 0xfe, 0xdf, 0xa3,
0x6f, 0x7b, 0x2c, 0x01, 0xae, 0x3f, 0x5e, 0xbd, 0x90, 0xde, 0x40, 0x3b, 0x00, 0x55, 0x97, 0xce,
0x43, 0x26, 0x5d, 0xdd, 0xc7, 0x8f, 0xce, 0xe2, 0x42, 0x3a, 0x83, 0x0b, 0xe5, 0x12, 0xc2, 0x70,
0xb8, 0xa9, 0xfd, 0xc1, 0x3d, 0x29, 0xed, 0x4e, 0x6f, 0x4d, 0xca, 0x5c, 0xc3, 0xe1, 0xc6, 0xe1,
0x1d, 0xc5, 0xb0, 0xc9, 0xb3, 0x70, 0x0e, 0x1b, 0x39, 0x50, 0xf7, 0x26, 0xa5, 0x20, 0xde, 0x29,
0x57, 0x12, 0xed, 0xee, 0x00, 0xa0, 0xe8, 0x94, 0x73, 0x08, 0xa4, 0x2b, 0x29, 0x75, 0x9e, 0x05,
0x4d, 0xae, 0xc7, 0xe2, 0x70, 0x53, 0x33, 0x67, 0x61, 0x5e, 0xbe, 0x5f, 0x5a, 0x37, 0x99, 0xd2,
0xba, 0xbe, 0x72, 0xb3, 0xf4, 0xec, 0x29, 0x19, 0xc7, 0x9d, 0x7e, 0xc3, 0xfd, 0x03, 0xb1, 0xa3,
0xb3, 0x93, 0xe3, 0x87, 0x0e, 0xa5, 0xa4, 0xd3, 0x59, 0x73, 0xa1, 0xf8, 0xe5, 0x56, 0x38, 0x1c,
0xc6, 0xef, 0xf7, 0xff, 0x4f, 0xbf, 0xc4, 0x87, 0xc3, 0xe1, 0xb4, 0xe9, 0xb4, 0xa1, 0xf2, 0xb0,
0x40, 0x30, 0x18, 0x24, 0x18, 0x0c, 0x7e, 0x2b, 0xfe, 0x52, 0x90, 0x8c, 0x42, 0xd1, 0x34, 0x28,
0xd4, 0x1b, 0xbf, 0x9d, 0xee, 0x38, 0xb6, 0x9b, 0x68, 0xf8, 0xf8, 0xb7, 0xea, 0x3f, 0x11, 0x3a,
0xd6, 0x9b, 0x9c, 0x4e, 0x87, 0x93, 0x2d, 0xf0, 0x0e, 0x70, 0x05, 0x80, 0xbf, 0xe5, 0x2d, 0xfc,
0xbc, 0x35, 0xc8, 0x2a, 0x1c, 0xd4, 0xd5, 0x82, 0x2a, 0xcc, 0xee, 0x84, 0xab, 0xc5, 0x58, 0x94,
0x5b, 0x04, 0x5e, 0x15, 0x21, 0x96, 0xcf, 0x77, 0xda, 0x82, 0x89, 0x41, 0xa3, 0x7d, 0x22, 0x7c,
0xff, 0x9e, 0xa7, 0xa4, 0x23, 0xe1, 0x03, 0x47, 0xfc, 0x59, 0xb1, 0x40, 0x8d, 0x30, 0x0c, 0x66,
0xa3, 0xb0, 0x7f, 0x9b, 0x5c, 0x48, 0xf5, 0x1d, 0x81, 0xf7, 0xef, 0x5d, 0x27, 0x7b, 0xcd, 0xed,
0xff, 0x01, 0xf0, 0x3e, 0x79, 0xb4, 0x19, 0x63, 0x64, 0xed, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45,
0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
0x87, 0x00, 0x00, 0x08, 0xbc, 0x49, 0x44, 0x41, 0x54, 0x68, 0xde, 0xd5, 0x99, 0x7b, 0x70, 0xd4,
0xd5, 0x15, 0xc7, 0x3f, 0xf7, 0xb7, 0xbf, 0xdd, 0x6c, 0x36, 0x64, 0xf3, 0xd8, 0x6c, 0xb2, 0x1b,
0x90, 0xa7, 0xad, 0x0f, 0x94, 0x42, 0x29, 0xcf, 0x58, 0x8c, 0xc5, 0x16, 0x33, 0x36, 0x8e, 0x7d,
0x30, 0x2a, 0xf8, 0xb6, 0x2d, 0x6a, 0xc5, 0x3a, 0x5a, 0x9d, 0x0a, 0xad, 0x1d, 0x75, 0x98, 0xc1,
0x57, 0x1d, 0xa5, 0xc2, 0x48, 0xc8, 0xd0, 0x51, 0x74, 0xb4, 0xa0, 0xd5, 0x82, 0x40, 0x3b, 0xd2,
0x32, 0x45, 0x41, 0xa8, 0x5a, 0xed, 0xd4, 0xf0, 0xe8, 0x50, 0x12, 0xa1, 0x96, 0x24, 0xc0, 0xc2,
0x86, 0x25, 0xcb, 0x3e, 0xee, 0xe9, 0x1f, 0x9b, 0x7d, 0xb1, 0xbb, 0xd9, 0x07, 0x30, 0x83, 0x67,
0xe6, 0x37, 0x49, 0xee, 0xef, 0xfe, 0xee, 0x39, 0xe7, 0x9e, 0xf3, 0x3d, 0xe7, 0x7b, 0x6f, 0x94,
0x88, 0xf0, 0xf7, 0x36, 0x35, 0x49, 0x1b, 0x3c, 0x8a, 0xd0, 0xc2, 0xd9, 0x91, 0x00, 0x8a, 0x8d,
0xa2, 0xf9, 0x83, 0xb3, 0x9a, 0xd5, 0x17, 0xcf, 0x96, 0x50, 0xea, 0xcb, 0x8e, 0xd5, 0xca, 0xd6,
0xe7, 0x67, 0x35, 0xc2, 0x35, 0x45, 0xac, 0xf9, 0x1f, 0x25, 0xfc, 0x5c, 0x6d, 0x7b, 0x91, 0x29,
0x28, 0x3e, 0x28, 0xd5, 0x32, 0x29, 0xfe, 0x93, 0xf7, 0x25, 0xca, 0xf7, 0xa7, 0xdf, 0x29, 0x3d,
0xf1, 0x81, 0xad, 0x6d, 0x6a, 0x92, 0x01, 0x3b, 0x4a, 0x50, 0xdf, 0x69, 0x68, 0x61, 0xbe, 0x16,
0x28, 0xf5, 0x91, 0xe2, 0x9f, 0x26, 0x0c, 0x76, 0x6c, 0x5b, 0xae, 0x2e, 0x8d, 0x5b, 0x31, 0xfd,
0xc7, 0x7c, 0xa8, 0x61, 0x47, 0x09, 0xfa, 0x6b, 0x4c, 0x81, 0x6f, 0xc4, 0xb7, 0xb1, 0xbc, 0xfe,
0x0a, 0x3c, 0x53, 0x56, 0xe5, 0x74, 0x57, 0x29, 0x55, 0x72, 0x0e, 0xf5, 0xed, 0x7f, 0x9d, 0x43,
0x9f, 0x3e, 0x84, 0xe8, 0x30, 0xc0, 0x08, 0x81, 0xad, 0xef, 0xbd, 0xa8, 0xe6, 0x5c, 0x36, 0x4f,
0xd6, 0x82, 0x48, 0x99, 0xa8, 0x2b, 0x82, 0xc2, 0x2a, 0xe0, 0x7b, 0xc5, 0xac, 0x6b, 0xa4, 0xef,
0xa6, 0x24, 0x9e, 0xac, 0xe9, 0x92, 0xf2, 0xbe, 0x98, 0x47, 0x6b, 0x4d, 0xc5, 0xd0, 0xd9, 0x34,
0x4c, 0x7d, 0x1d, 0x65, 0xad, 0x8d, 0xeb, 0x1b, 0x22, 0xc2, 0x5b, 0x5b, 0x96, 0xa9, 0x07, 0x01,
0x26, 0xfe, 0x44, 0x4e, 0x34, 0xcd, 0xe3, 0x07, 0x22, 0x2c, 0x2e, 0x34, 0x9a, 0x08, 0xa8, 0xcd,
0x4b, 0xd9, 0xa5, 0xe0, 0x02, 0x00, 0x47, 0x7d, 0x33, 0x9e, 0x29, 0x2f, 0x03, 0xe0, 0x76, 0xbb,
0xb1, 0x58, 0x2c, 0x05, 0xef, 0xc4, 0x5b, 0x3f, 0x1c, 0x8e, 0xc5, 0x66, 0xa7, 0xf5, 0xd5, 0x3d,
0x19, 0xef, 0xc2, 0xe1, 0x30, 0x3e, 0x9f, 0x0f, 0xad, 0x35, 0x91, 0x13, 0xfb, 0x39, 0xb8, 0xe3,
0x16, 0x42, 0x7d, 0xff, 0x4e, 0x6e, 0x8c, 0xe2, 0x77, 0x6e, 0x17, 0xf3, 0xe2, 0xe0, 0xfe, 0xdb,
0x52, 0x75, 0x33, 0x8a, 0x36, 0xc0, 0x96, 0x47, 0xed, 0x31, 0x43, 0x32, 0x72, 0xba, 0xb4, 0x5d,
0x8e, 0x86, 0x4e, 0x12, 0x0d, 0x05, 0xb3, 0xbe, 0x33, 0x4d, 0x13, 0x97, 0xcb, 0x85, 0x69, 0x9a,
0x58, 0xca, 0x87, 0xe1, 0x6d, 0x7a, 0x1b, 0x7b, 0xdd, 0xe5, 0x49, 0x9d, 0x9a, 0x5b, 0x7b, 0x7a,
0xd9, 0xb4, 0x65, 0x89, 0x72, 0x03, 0xcc, 0xb8, 0x5b, 0x5e, 0xd2, 0xc2, 0x4c, 0x11, 0x0e, 0xe5,
0x8b, 0x82, 0x91, 0x36, 0xa0, 0x63, 0xe1, 0xd6, 0x5a, 0x9f, 0xf1, 0x3a, 0x6a, 0x18, 0x06, 0xb5,
0xb5, 0xb5, 0x94, 0x95, 0x95, 0xa1, 0x2c, 0x15, 0x78, 0x26, 0xaf, 0xc4, 0x39, 0xe2, 0x56, 0x44,
0x13, 0x7f, 0x2e, 0x8b, 0x28, 0xb6, 0x6f, 0x7e, 0x5e, 0x5d, 0x02, 0xd0, 0x7c, 0xb7, 0xbc, 0xa7,
0x34, 0x93, 0xb5, 0xd0, 0x31, 0x18, 0x90, 0x8d, 0x94, 0x05, 0x06, 0x1c, 0x29, 0x2d, 0x02, 0xf1,
0x82, 0x3a, 0xf8, 0x1c, 0xa8, 0xae, 0xae, 0xc6, 0xe1, 0x70, 0xa0, 0x45, 0x51, 0x3b, 0xf6, 0xd7,
0xb8, 0x2e, 0x79, 0x1c, 0xb0, 0xc4, 0x37, 0x71, 0x94, 0x56, 0x6c, 0xfd, 0xeb, 0x12, 0x75, 0x35,
0xc0, 0x8c, 0x7b, 0x64, 0x5f, 0x50, 0x33, 0x0d, 0xcd, 0xc6, 0x9c, 0x11, 0xd0, 0x83, 0xa4, 0xd0,
0xd9, 0x12, 0xa7, 0xd3, 0x49, 0x75, 0x75, 0x35, 0x00, 0x95, 0x23, 0xe6, 0xd2, 0x30, 0x79, 0x25,
0x98, 0xce, 0xb8, 0x0d, 0x95, 0x51, 0xe1, 0x8f, 0x9b, 0x9e, 0x57, 0xf7, 0x03, 0xb4, 0xcc, 0x17,
0xff, 0x21, 0x0f, 0xdf, 0x05, 0x96, 0x64, 0x75, 0x80, 0xb4, 0x81, 0x74, 0xe3, 0x8b, 0x8b, 0x40,
0x71, 0x95, 0xaa, 0xbc, 0xbc, 0x1c, 0x97, 0xcb, 0x85, 0x52, 0x0a, 0x7b, 0x5d, 0x13, 0x43, 0x9b,
0xd6, 0x60, 0x3a, 0x86, 0xc7, 0x6d, 0x31, 0xb4, 0xf0, 0xcc, 0xbb, 0xcf, 0xab, 0xf6, 0x8f, 0x96,
0x2b, 0xeb, 0xec, 0xd9, 0x12, 0xfd, 0xd6, 0x3d, 0x72, 0xaf, 0xc0, 0xdd, 0x5a, 0x88, 0xa4, 0x6c,
0x78, 0xc0, 0x88, 0xa6, 0x46, 0x40, 0x93, 0xc0, 0x40, 0xf1, 0x29, 0x54, 0x7c, 0xa9, 0xb5, 0x5a,
0xad, 0x89, 0x6a, 0x67, 0x71, 0x8c, 0xc2, 0x3b, 0xfd, 0x0d, 0xca, 0x6a, 0x27, 0x27, 0xec, 0x89,
0x6a, 0x6e, 0x3f, 0x74, 0x82, 0x77, 0xd7, 0x3d, 0xa3, 0xea, 0x00, 0xae, 0x9c, 0x2f, 0xcb, 0xb4,
0xa6, 0x45, 0x84, 0x4f, 0x44, 0xd8, 0x29, 0x9a, 0x9f, 0xa9, 0x0d, 0xbf, 0x61, 0x17, 0xf1, 0x32,
0xea, 0x9e, 0x81, 0x77, 0xca, 0x0a, 0x00, 0xbc, 0x5e, 0x2f, 0xa6, 0x69, 0xe6, 0x4d, 0x87, 0x3f,
0xdd, 0x31, 0x9e, 0xa0, 0xaf, 0x87, 0xf0, 0x89, 0x3e, 0x00, 0xac, 0x8e, 0x4a, 0xec, 0x35, 0xf5,
0xcc, 0x6a, 0xff, 0xa4, 0xe0, 0x94, 0xd2, 0x5a, 0x73, 0xe4, 0xc8, 0x11, 0xfa, 0xfb, 0xfb, 0x11,
0x89, 0xd0, 0xfb, 0xcf, 0x47, 0xe8, 0xdb, 0xbf, 0x26, 0x8d, 0xf7, 0x88, 0xa6, 0xb5, 0xe5, 0x01,
0xe9, 0xc8, 0x28, 0x0e, 0x49, 0xf0, 0x96, 0x06, 0xe0, 0x50, 0xc0, 0x4f, 0x38, 0xe0, 0xc7, 0xb0,
0x98, 0x18, 0x16, 0x93, 0x70, 0xc0, 0x4f, 0x28, 0xe0, 0x2f, 0x6a, 0x0d, 0xa5, 0x14, 0x2e, 0x97,
0x8b, 0x21, 0x43, 0x86, 0x00, 0x16, 0xdc, 0xe3, 0x16, 0x51, 0x7b, 0xe1, 0x43, 0x68, 0x8c, 0x78,
0x34, 0x46, 0x8b, 0x62, 0xdb, 0x86, 0x67, 0x54, 0x06, 0xd9, 0x34, 0xa2, 0x64, 0x07, 0x71, 0xa1,
0xe9, 0x00, 0x60, 0x58, 0xcb, 0xb8, 0x76, 0xed, 0x61, 0xae, 0x5d, 0x7b, 0x18, 0xc3, 0x5a, 0x56,
0x72, 0xd7, 0xae, 0xaa, 0xaa, 0xa2, 0xa6, 0xa6, 0x06, 0x80, 0xaa, 0xd1, 0xb7, 0xe3, 0x99, 0xf8,
0x5b, 0x94, 0xc5, 0x11, 0xdf, 0x60, 0xa7, 0x86, 0xb5, 0xef, 0x3c, 0xad, 0xee, 0x4b, 0x73, 0xe0,
0x54, 0x10, 0x17, 0x8b, 0x81, 0x38, 0x8f, 0x4a, 0xc3, 0xc2, 0x69, 0x94, 0x63, 0x87, 0xc3, 0x41,
0x5d, 0x5d, 0x5d, 0x8c, 0x9b, 0xb9, 0x9b, 0x69, 0x9c, 0xfa, 0x0a, 0x16, 0xbb, 0x27, 0x6e, 0xa3,
0x45, 0xe0, 0xd9, 0x75, 0x4f, 0xa9, 0xb6, 0x8f, 0x96, 0x2b, 0x6b, 0x06, 0x17, 0x2a, 0xa5, 0x13,
0x9f, 0x0a, 0xde, 0xd3, 0xe5, 0x4d, 0x22, 0x82, 0xcd, 0x66, 0xc3, 0xe3, 0xf1, 0x60, 0x9a, 0x26,
0xd6, 0xca, 0xaf, 0x32, 0x74, 0xfa, 0xef, 0xb1, 0x55, 0x8d, 0x4b, 0xda, 0x09, 0x3f, 0xfa, 0xe2,
0x18, 0x7f, 0x5e, 0xf7, 0xa8, 0x72, 0x18, 0x99, 0xb5, 0xf5, 0xec, 0xf7, 0x81, 0x42, 0xc4, 0x62,
0xb1, 0xd0, 0xd0, 0xd0, 0x80, 0xdd, 0x6e, 0xc7, 0xb0, 0xd5, 0xd2, 0x38, 0x75, 0x25, 0x15, 0xde,
0x96, 0x84, 0x9d, 0x5a, 0x68, 0x8e, 0xda, 0x59, 0x6c, 0xea, 0x14, 0x3b, 0xf5, 0x40, 0x0a, 0x65,
0xdb, 0xd1, 0xbc, 0x07, 0x9b, 0x53, 0xe6, 0x9e, 0x89, 0x0d, 0x50, 0x4a, 0xe1, 0x76, 0xbb, 0xf1,
0xf9, 0x7c, 0xf8, 0xfd, 0x42, 0xc3, 0xf8, 0x27, 0x89, 0x86, 0x8e, 0x13, 0xe8, 0xd9, 0x12, 0x9f,
0x72, 0x8d, 0x19, 0xc7, 0x00, 0xc4, 0xe9, 0x84, 0x14, 0xe9, 0x80, 0x20, 0x91, 0x30, 0x5b, 0x1e,
0x6a, 0x41, 0x59, 0x4c, 0x24, 0x12, 0x8e, 0x8d, 0x9d, 0xc1, 0x08, 0x56, 0x55, 0x55, 0x71, 0xf4,
0xe8, 0xd1, 0x81, 0x82, 0x51, 0x4b, 0xca, 0xd2, 0xd5, 0x66, 0x2a, 0x6f, 0x8b, 0xa7, 0x50, 0xb1,
0x11, 0x10, 0xd1, 0x1c, 0xe9, 0xf8, 0xe0, 0x8c, 0x47, 0x20, 0x1b, 0xbe, 0x62, 0xbf, 0x27, 0xdf,
0x65, 0xa4, 0x50, 0xb1, 0x0e, 0x4c, 0x5f, 0xbc, 0x1e, 0x89, 0x46, 0xd8, 0xfc, 0xd3, 0x69, 0x54,
0x8e, 0x1c, 0xcb, 0xc4, 0x07, 0x57, 0xc4, 0x22, 0x31, 0xc8, 0xb7, 0xbd, 0xff, 0xf8, 0x0b, 0x5d,
0x1b, 0x56, 0x26, 0x1d, 0x1d, 0x20, 0x83, 0xc9, 0xdf, 0x63, 0xe3, 0xde, 0xa9, 0x57, 0x33, 0x7c,
0xd6, 0xcd, 0x69, 0xb6, 0xc4, 0x81, 0x9c, 0x70, 0x20, 0x55, 0x8f, 0x08, 0x45, 0x63, 0xc0, 0xe1,
0x19, 0x99, 0x04, 0x9e, 0xcd, 0x4e, 0xc5, 0xd0, 0xf3, 0xf3, 0x46, 0x20, 0x70, 0xb0, 0x8b, 0x83,
0xdb, 0x37, 0xe4, 0x5d, 0xbb, 0xf7, 0xe3, 0x4d, 0x04, 0xba, 0xbb, 0xb8, 0x60, 0xee, 0x82, 0x94,
0x8d, 0x25, 0x3d, 0x02, 0x51, 0x01, 0x95, 0x88, 0x40, 0x69, 0x29, 0x14, 0x97, 0xfe, 0xde, 0xfd,
0x7c, 0xb6, 0x62, 0x61, 0xde, 0x79, 0xe1, 0x3e, 0x1f, 0x00, 0x0d, 0x53, 0x5a, 0x18, 0x71, 0xd5,
0x6d, 0xa0, 0x14, 0xa0, 0x62, 0x67, 0x6e, 0x05, 0xa0, 0x08, 0x7c, 0xb1, 0x97, 0x8e, 0xf6, 0x85,
0xec, 0x7d, 0xe3, 0x39, 0xfa, 0x7b, 0x0f, 0xe0, 0x6c, 0xbd, 0x1f, 0x65, 0x31, 0x63, 0x85, 0x26,
0xd5, 0x01, 0x92, 0xbd, 0x28, 0x6b, 0x17, 0x2e, 0x46, 0x4e, 0xfa, 0x7a, 0xe8, 0x5c, 0xb7, 0x3c,
0x3f, 0x9d, 0x1e, 0x39, 0x16, 0x00, 0xbb, 0xab, 0x91, 0xda, 0x4b, 0xa6, 0x83, 0x32, 0x50, 0xca,
0x18, 0x70, 0x64, 0xe0, 0x82, 0xc1, 0x7d, 0x1e, 0xf6, 0x5a, 0x2f, 0x27, 0xba, 0xbb, 0x38, 0xf2,
0xd9, 0x56, 0xec, 0x4d, 0x37, 0x60, 0xab, 0x1b, 0x96, 0x89, 0x81, 0x53, 0x53, 0xa8, 0x50, 0x07,
0x3e, 0x7e, 0xe2, 0x56, 0x0c, 0xd3, 0xca, 0xf8, 0x07, 0xda, 0x52, 0x94, 0x0e, 0x63, 0xec, 0xbc,
0x27, 0xf3, 0x3a, 0x70, 0x64, 0xe7, 0x76, 0xfc, 0x9d, 0x9f, 0xd1, 0xb5, 0xbe, 0x9d, 0xae, 0xf5,
0xed, 0xa9, 0x75, 0x73, 0xc0, 0x11, 0x03, 0x44, 0x23, 0x3a, 0x8a, 0x73, 0xf4, 0xa5, 0x7c, 0xfd,
0x17, 0x2f, 0xf1, 0x3f, 0x7f, 0xec, 0xb8, 0x9a, 0x81, 0x01, 0x9d, 0x72, 0x3b, 0x55, 0x4c, 0x1f,
0xe8, 0xd9, 0xb1, 0x11, 0xc3, 0x6a, 0x43, 0x44, 0xf8, 0x7c, 0x63, 0x0c, 0x90, 0x91, 0x60, 0x00,
0xd7, 0xf8, 0x2b, 0xf2, 0x3a, 0x10, 0xf4, 0x75, 0x63, 0x3a, 0x9c, 0x20, 0x82, 0x0c, 0x1c, 0x07,
0x45, 0x0f, 0xfc, 0x14, 0x01, 0x1d, 0x45, 0x44, 0x53, 0x3f, 0xe9, 0x2a, 0xc6, 0xdd, 0xb7, 0x14,
0xc3, 0x66, 0x47, 0x8e, 0x75, 0x66, 0x62, 0x40, 0x81, 0x29, 0xa7, 0x59, 0x46, 0x77, 0xbf, 0xfc,
0x38, 0x9d, 0x6f, 0x2f, 0xc5, 0x52, 0xe6, 0x60, 0xdc, 0xbd, 0x2f, 0x14, 0xf4, 0x4d, 0x63, 0xf3,
0x75, 0x34, 0x36, 0x5f, 0x57, 0x54, 0x19, 0x4d, 0x6c, 0xac, 0x4e, 0x49, 0x21, 0x19, 0x48, 0x21,
0xc9, 0xe2, 0x40, 0x9c, 0xd0, 0x0d, 0xba, 0x70, 0x34, 0x42, 0xe7, 0xdb, 0x4b, 0xb1, 0x39, 0x5d,
0x4c, 0x78, 0xf8, 0x25, 0x9c, 0x63, 0xc6, 0x9f, 0x15, 0x0a, 0x92, 0x51, 0x46, 0x75, 0x6a, 0x0a,
0xa5, 0x46, 0x20, 0xa5, 0x13, 0x77, 0xbf, 0xff, 0x16, 0xfb, 0x56, 0x3f, 0x3d, 0xf8, 0xc2, 0x5a,
0x53, 0x5e, 0x7f, 0x1e, 0x13, 0x16, 0xbc, 0x8a, 0xc3, 0x3b, 0xea, 0xac, 0xf1, 0xa7, 0x41, 0x1b,
0x99, 0xe4, 0xe0, 0x42, 0x91, 0xfe, 0xe3, 0x04, 0x7b, 0x0f, 0xe4, 0x5d, 0x7c, 0xe4, 0xb5, 0xf3,
0x29, 0xf7, 0x8c, 0xcc, 0x69, 0xfc, 0xbe, 0x35, 0xcf, 0x12, 0x0d, 0x05, 0x4b, 0xe0, 0x41, 0xe9,
0xa9, 0x1d, 0x74, 0x36, 0xe2, 0xb8, 0xf8, 0x9b, 0x71, 0x22, 0x77, 0x4a, 0x04, 0x54, 0x66, 0x0a,
0x35, 0xce, 0x9c, 0xcb, 0xf0, 0x59, 0xb7, 0xe4, 0x54, 0xb0, 0xe9, 0xfa, 0xf3, 0x00, 0xd8, 0xb5,
0xe2, 0x61, 0x24, 0x1a, 0x61, 0xe8, 0xb7, 0x6f, 0xca, 0x3a, 0xef, 0xf3, 0xf5, 0x6d, 0x44, 0x06,
0x8e, 0x9b, 0xa7, 0x23, 0x95, 0x93, 0x5a, 0xb1, 0x5f, 0xd8, 0x84, 0xd6, 0xa7, 0x46, 0x20, 0xa5,
0x0a, 0x15, 0xdb, 0x07, 0x94, 0xc5, 0xc4, 0x30, 0xad, 0xec, 0x6a, 0x5f, 0x40, 0xd0, 0xd7, 0xcd,
0xe8, 0xd9, 0x0f, 0x64, 0x9d, 0xe7, 0x9e, 0xdc, 0xc2, 0x45, 0xf3, 0x9e, 0x3a, 0xad, 0x14, 0xea,
0xfc, 0xfc, 0x40, 0x22, 0x7d, 0x72, 0x73, 0x21, 0x4d, 0x51, 0xb7, 0x72, 0xca, 0x30, 0x98, 0xf0,
0xcb, 0xd7, 0xf8, 0xf4, 0xc9, 0xdb, 0xe8, 0x7c, 0xf3, 0x39, 0xa2, 0xc1, 0x00, 0x5f, 0xb9, 0xe9,
0x91, 0xcc, 0x5b, 0x39, 0x8b, 0x89, 0xe9, 0x70, 0x72, 0x60, 0xe3, 0x4a, 0x4e, 0xfa, 0x0e, 0x26,
0x95, 0x57, 0x54, 0x33, 0xe2, 0x9a, 0xbb, 0x00, 0x08, 0xf9, 0x0f, 0xd3, 0xbb, 0x63, 0x43, 0x6e,
0x0c, 0x78, 0xc7, 0x81, 0x69, 0x4b, 0xf4, 0x82, 0xd3, 0x6e, 0x64, 0xb6, 0xaa, 0x3a, 0x0c, 0x6b,
0x19, 0x95, 0x63, 0xc6, 0x33, 0xf1, 0xd1, 0x37, 0xf9, 0x70, 0x61, 0x2b, 0x3d, 0x1f, 0xac, 0xe3,
0xfc, 0x1b, 0x7f, 0x95, 0xf5, 0x9f, 0x20, 0x22, 0xc2, 0x17, 0x9b, 0x5f, 0xe3, 0x78, 0xd7, 0xce,
0xc4, 0xb8, 0xbd, 0x6e, 0x28, 0xc3, 0x5b, 0xef, 0x8c, 0xd1, 0x90, 0xee, 0x2e, 0x76, 0xb7, 0x2f,
0xc8, 0xa9, 0xcf, 0x73, 0xdf, 0x2a, 0x2c, 0x56, 0x7b, 0xe2, 0x7f, 0x12, 0x05, 0xb1, 0xd1, 0xc1,
0xa4, 0x69, 0xd9, 0x47, 0xc9, 0x0e, 0xec, 0x19, 0x85, 0x59, 0xe1, 0xcc, 0x5f, 0xff, 0x67, 0xde,
0x48, 0xe8, 0x58, 0x6f, 0x52, 0xb9, 0x23, 0xf9, 0x8d, 0xb5, 0xb2, 0x86, 0xfa, 0x69, 0xad, 0xb9,
0x72, 0x08, 0xac, 0x65, 0xc9, 0xeb, 0xfa, 0x42, 0x22, 0x50, 0x2a, 0xa7, 0xcf, 0xfa, 0xcd, 0x80,
0xe2, 0xc6, 0x99, 0x73, 0x73, 0xce, 0xb7, 0xd7, 0x8f, 0xe0, 0xe2, 0x7b, 0x96, 0xe4, 0x5c, 0x73,
0xcf, 0x9e, 0x3d, 0xd9, 0x31, 0x30, 0x18, 0x9d, 0x3e, 0x97, 0x24, 0xd9, 0xc8, 0x64, 0x70, 0x2e,
0x54, 0x2c, 0x95, 0x38, 0xde, 0xd5, 0x41, 0xe4, 0x84, 0x1f, 0x1d, 0x3e, 0x09, 0x80, 0xaf, 0x63,
0x5b, 0xec, 0xac, 0x77, 0xd1, 0xd4, 0x0c, 0x0c, 0x14, 0x2a, 0xe1, 0x3e, 0x1f, 0xd1, 0x60, 0x20,
0xf5, 0xd0, 0x4a, 0x34, 0x14, 0x44, 0x99, 0xb6, 0x2c, 0x11, 0xd0, 0xb9, 0x53, 0xa8, 0x10, 0xd9,
0xbb, 0xea, 0x31, 0x8e, 0xee, 0xdc, 0x9e, 0xf8, 0xfb, 0xd3, 0x45, 0x37, 0x00, 0x70, 0xf9, 0xaa,
0x7d, 0x69, 0xf3, 0xf6, 0xbf, 0xd3, 0x46, 0xe7, 0x9a, 0xcc, 0xce, 0x3e, 0xed, 0x85, 0x0f, 0x31,
0x1d, 0x95, 0xe9, 0x6b, 0xbe, 0xba, 0x88, 0xee, 0x2d, 0x6f, 0xa4, 0x9f, 0x8b, 0xaf, 0x7f, 0x0c,
0xdb, 0xe8, 0x89, 0x31, 0x2e, 0x94, 0x8b, 0x4a, 0xe8, 0x12, 0x0e, 0xf5, 0xb5, 0x13, 0xae, 0xa4,
0xdc, 0x3b, 0x26, 0xff, 0x2d, 0x45, 0x34, 0x82, 0x0e, 0x87, 0xb2, 0x9e, 0xa7, 0x0b, 0xd1, 0x93,
0x0a, 0xe0, 0x41, 0x40, 0x2c, 0x45, 0x63, 0x60, 0x58, 0xcb, 0x1d, 0x05, 0xcd, 0xab, 0x19, 0x37,
0x03, 0xb3, 0xa2, 0x32, 0xf3, 0xfe, 0xc7, 0x56, 0x9e, 0x31, 0x36, 0x64, 0xe4, 0x58, 0x22, 0x01,
0x7f, 0x5a, 0x21, 0x8e, 0x38, 0xaa, 0x33, 0x41, 0xac, 0x32, 0xca, 0x68, 0xd2, 0xf0, 0x70, 0x38,
0x7c, 0x46, 0xc0, 0xf7, 0xb5, 0x45, 0xb1, 0x73, 0x83, 0xa5, 0xbc, 0x12, 0x97, 0xf7, 0xfc, 0xcc,
0x7c, 0xd7, 0x02, 0xa1, 0xf4, 0xc8, 0xb8, 0x9b, 0xe7, 0xe0, 0x6e, 0x9e, 0x93, 0x51, 0x85, 0xb4,
0xd6, 0xe9, 0x20, 0x96, 0x38, 0x06, 0xb2, 0x70, 0xa1, 0xbd, 0x7b, 0xf7, 0x72, 0x2e, 0x4a, 0x26,
0x1b, 0x8d, 0x81, 0x3c, 0x16, 0x81, 0xe8, 0x49, 0xc2, 0xfd, 0x3d, 0x9c, 0xcb, 0xa2, 0x23, 0xc1,
0x54, 0x07, 0xc4, 0xd4, 0xc2, 0x6e, 0xe0, 0x42, 0x80, 0xe3, 0x87, 0xff, 0xc5, 0x9e, 0xcd, 0x77,
0xf0, 0x25, 0x92, 0xdd, 0x66, 0x54, 0xf1, 0x98, 0xa1, 0xf9, 0x0e, 0x50, 0xce, 0x97, 0x4b, 0xc2,
0x5a, 0xf1, 0xb0, 0x12, 0x11, 0x9e, 0xbe, 0x4b, 0xd5, 0x87, 0xe1, 0x7a, 0xa5, 0x98, 0x03, 0x78,
0xce, 0x65, 0xab, 0x95, 0x70, 0x58, 0x1b, 0xbc, 0xae, 0x35, 0xaf, 0x2c, 0x5c, 0x26, 0xff, 0xfd,
0x3f, 0x14, 0xf4, 0x82, 0x81, 0xaa, 0xdf, 0xbd, 0x01, 0x00, 0x00, 0x00, 0x00, 0x49, 0x45, 0x4e,
0x44, 0xae, 0x42, 0x60, 0x82,
};
const BITMAP_OPAQUE icon_kicad_xpm[1] = {{ png, sizeof( png ), "icon_kicad_xpm" }};

View File

@ -0,0 +1,198 @@
/* Do not modify this file, it was automatically generated by the
* PNG2cpp CMake script, using a *.png file as input.
*/
#include <bitmaps.h>
static const unsigned char png[] = {
0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a, 0x00, 0x00, 0x00, 0x0d, 0x49, 0x48, 0x44, 0x52,
0x00, 0x00, 0x00, 0x30, 0x00, 0x00, 0x00, 0x30, 0x08, 0x06, 0x00, 0x00, 0x00, 0x57, 0x02, 0xf9,
0x87, 0x00, 0x00, 0x0b, 0x52, 0x49, 0x44, 0x41, 0x54, 0x68, 0xde, 0xd5, 0x99, 0x09, 0x54, 0x94,
0xe5, 0x1a, 0xc7, 0xa9, 0xe3, 0xed, 0xda, 0x4d, 0xd3, 0xf2, 0xea, 0xb5, 0xa3, 0xa6, 0xe6, 0x92,
0x27, 0xcb, 0x15, 0x17, 0xd4, 0xb2, 0xcc, 0xad, 0x3c, 0x79, 0x5d, 0x50, 0x49, 0x73, 0x89, 0xbc,
0x75, 0xbb, 0x5a, 0x9d, 0xec, 0x5e, 0x0d, 0x2d, 0xbd, 0x5a, 0x89, 0x4b, 0x79, 0x2c, 0x20, 0x05,
0x52, 0x13, 0x50, 0x60, 0x40, 0x16, 0x95, 0x65, 0x58, 0x4c, 0xf6, 0x7d, 0x90, 0xd8, 0x84, 0x61,
0x0b, 0x66, 0x61, 0x16, 0xd6, 0x11, 0x44, 0x41, 0xff, 0xf7, 0x7d, 0xde, 0xf8, 0xc6, 0xcf, 0xd9,
0x00, 0xeb, 0x66, 0xcd, 0x39, 0xff, 0x33, 0xce, 0x30, 0xdf, 0x7c, 0xcf, 0xef, 0x7d, 0xfe, 0xcf,
0xf3, 0x3e, 0xef, 0x68, 0x67, 0x67, 0x67, 0xd7, 0x9b, 0x69, 0x38, 0xd3, 0x18, 0xa6, 0x51, 0xbf,
0xb1, 0xc6, 0x74, 0xde, 0xfb, 0x11, 0x00, 0x76, 0xf7, 0x22, 0x7a, 0x8c, 0x60, 0x7a, 0x8f, 0xe9,
0x33, 0xa6, 0x3d, 0xbf, 0xb1, 0xf6, 0x32, 0xfd, 0x9b, 0x69, 0xee, 0xbd, 0x42, 0xd0, 0xe3, 0x39,
0xa6, 0x63, 0x4c, 0x91, 0x3b, 0x77, 0xee, 0xbc, 0xe2, 0xe7, 0xe7, 0x57, 0x2e, 0xe8, 0xcc, 0x99,
0x33, 0x66, 0x3a, 0x7b, 0xf6, 0xec, 0x5d, 0x0a, 0x08, 0x08, 0xa8, 0x91, 0x48, 0x24, 0x6a, 0x5b,
0x0a, 0x0a, 0x0a, 0x52, 0xb1, 0xcf, 0x55, 0x30, 0x95, 0x0b, 0x3a, 0xc3, 0xae, 0xf5, 0xf1, 0xf5,
0xab, 0xf0, 0x3e, 0x79, 0xb2, 0xcc, 0xde, 0x7e, 0xba, 0x17, 0xbb, 0xbf, 0x03, 0xd3, 0x43, 0xf7,
0x0a, 0xe0, 0xc9, 0x24, 0xd5, 0x68, 0xb5, 0xed, 0x4d, 0xcd, 0xcd, 0x68, 0x66, 0x32, 0x18, 0x0c,
0xb8, 0x76, 0xed, 0x1a, 0x5a, 0x5a, 0x5a, 0xd0, 0xd2, 0xda, 0x8a, 0xd6, 0xeb, 0xd7, 0x71, 0x9d,
0xa9, 0xad, 0xad, 0x0d, 0x37, 0x6e, 0xdc, 0xc0, 0xcd, 0x9b, 0x37, 0xb9, 0xda, 0xdb, 0xdb, 0x8d,
0xea, 0xe8, 0xe8, 0x30, 0xea, 0xd6, 0xad, 0x5b, 0x46, 0xdd, 0xbe, 0x7d, 0x9b, 0xab, 0xa5, 0xc9,
0x80, 0xca, 0xe2, 0x0a, 0xdc, 0xbc, 0xf1, 0xf3, 0x75, 0xad, 0xec, 0x7b, 0xeb, 0xeb, 0xeb, 0x71,
0xb5, 0x44, 0x7e, 0x6b, 0xd2, 0xe4, 0xa9, 0xdf, 0xb0, 0x18, 0x26, 0x32, 0xf5, 0xba, 0x57, 0x80,
0x68, 0x23, 0x00, 0x0b, 0xfe, 0xd7, 0x06, 0xc8, 0x94, 0xa6, 0x22, 0xd8, 0xd9, 0x1b, 0xd2, 0x0f,
0x03, 0x11, 0xf2, 0xce, 0x09, 0x44, 0x7c, 0x1b, 0x02, 0x43, 0xb3, 0x01, 0x75, 0x75, 0x75, 0x28,
0x2f, 0xaf, 0x40, 0x4a, 0x5a, 0xfa, 0xad, 0xa1, 0x23, 0x46, 0xee, 0x63, 0x71, 0x8c, 0x65, 0x7a,
0xf0, 0x57, 0x05, 0x68, 0xfd, 0x85, 0x00, 0x9a, 0x6a, 0x35, 0x24, 0xce, 0x9e, 0x50, 0x78, 0xfc,
0x08, 0x8d, 0x77, 0x31, 0x5a, 0xce, 0x56, 0x23, 0x75, 0xe7, 0x45, 0xf8, 0xbd, 0xe5, 0x81, 0x4a,
0x79, 0x25, 0x8a, 0x8b, 0x8b, 0x59, 0x16, 0x4a, 0x10, 0x21, 0x95, 0x76, 0xfc, 0x75, 0xd0, 0xe0,
0x8f, 0x58, 0x2c, 0xc3, 0x98, 0x1e, 0xf8, 0x5d, 0x00, 0x74, 0xb4, 0x77, 0xc0, 0xc7, 0xd9, 0x0d,
0x05, 0x5f, 0x24, 0x40, 0x77, 0xa2, 0x04, 0x1d, 0x21, 0x5a, 0xe8, 0x4f, 0x96, 0x42, 0xf1, 0xed,
0x8f, 0x28, 0x3a, 0x98, 0x8c, 0x80, 0x7f, 0x1c, 0x87, 0x2c, 0x53, 0x86, 0xb4, 0xf4, 0x74, 0x96,
0x89, 0x72, 0xf8, 0x49, 0x82, 0x6f, 0xf4, 0xed, 0xdf, 0xdf, 0x99, 0xc5, 0x33, 0xe8, 0x77, 0x01,
0xf0, 0xf1, 0xb6, 0xed, 0x38, 0xf5, 0xe6, 0x51, 0x5c, 0x39, 0x92, 0x00, 0xed, 0xa9, 0xab, 0xd0,
0x33, 0x08, 0x85, 0x47, 0x1e, 0x94, 0xc7, 0xf2, 0x51, 0x77, 0x4a, 0xce, 0xc0, 0x12, 0xe1, 0xf9,
0xce, 0x57, 0x48, 0x4c, 0x4a, 0x82, 0x5c, 0x2e, 0x67, 0x2a, 0xc5, 0xd7, 0xdf, 0x9d, 0xba, 0xf6,
0xd0, 0xc3, 0x7d, 0x1c, 0x59, 0x4c, 0xfd, 0xee, 0x6b, 0x0d, 0x84, 0x87, 0x87, 0xe3, 0xb5, 0xd7,
0x5e, 0x83, 0xaf, 0xaf, 0x2f, 0xce, 0x9f, 0x3f, 0x8f, 0x8c, 0x98, 0x14, 0xc4, 0xec, 0x94, 0x20,
0xdf, 0x35, 0x91, 0x83, 0x50, 0x46, 0xca, 0x8e, 0x64, 0xc2, 0x6f, 0xa3, 0x3b, 0x92, 0x53, 0x52,
0x90, 0x92, 0x92, 0x8a, 0xc6, 0xc6, 0x06, 0xe4, 0xe7, 0xff, 0x88, 0x3d, 0x5f, 0x7d, 0x53, 0xd7,
0xab, 0x57, 0xaf, 0x85, 0x2c, 0xae, 0xbf, 0xdc, 0x17, 0x80, 0x8a, 0x8a, 0x0a, 0xbc, 0xf4, 0xd2,
0x4b, 0x38, 0x7a, 0xf4, 0x28, 0xdc, 0xdc, 0xdc, 0x90, 0x9d, 0x9d, 0x8d, 0xd3, 0xa7, 0x4f, 0x83,
0xb5, 0x6a, 0x5c, 0x72, 0x0d, 0x47, 0xa5, 0x5b, 0x0e, 0xaa, 0xbe, 0x91, 0x21, 0xe6, 0x83, 0x00,
0x78, 0x7f, 0xf8, 0x35, 0xd2, 0xd3, 0x33, 0x70, 0xe1, 0xe2, 0x45, 0x0e, 0x40, 0x85, 0x9d, 0x95,
0x9d, 0x89, 0x0f, 0xf6, 0x1e, 0x50, 0x76, 0xd5, 0x5e, 0x2d, 0x03, 0xfc, 0xc2, 0x36, 0x4a, 0xd7,
0xcc, 0x9d, 0x3b, 0x17, 0x3b, 0x76, 0xec, 0xc0, 0xe1, 0xc3, 0x87, 0x51, 0x54, 0x54, 0xc4, 0xb3,
0xe1, 0xe1, 0xe1, 0x01, 0xb6, 0x77, 0x20, 0x48, 0x12, 0x84, 0x28, 0x97, 0x40, 0xa4, 0xee, 0xb8,
0xc0, 0xed, 0x55, 0x59, 0x59, 0x85, 0x9c, 0x1c, 0x19, 0x22, 0x22, 0xa3, 0x50, 0x5a, 0x2a, 0x67,
0xdf, 0xdf, 0x06, 0xad, 0x56, 0xc3, 0xb2, 0x92, 0x84, 0xb7, 0x77, 0x7d, 0x5e, 0x64, 0xab, 0xbd,
0x76, 0x09, 0x70, 0x4d, 0x00, 0x60, 0xea, 0x2e, 0xc0, 0xea, 0xd5, 0xab, 0x31, 0x6b, 0xd6, 0x2c,
0xb0, 0x8d, 0x8f, 0xad, 0x68, 0x23, 0x62, 0x63, 0x63, 0x79, 0x26, 0xc2, 0xc2, 0xc2, 0xe0, 0xe3,
0xe3, 0x83, 0xfd, 0xfb, 0xf7, 0xe3, 0x9d, 0x25, 0x9b, 0x20, 0x79, 0xd3, 0x13, 0x55, 0xac, 0x0b,
0xa9, 0x54, 0x2a, 0xe4, 0x17, 0x14, 0xb0, 0xcf, 0xc5, 0x41, 0x96, 0x2b, 0xe3, 0xf6, 0x6b, 0x6b,
0xbb, 0x0e, 0xa5, 0x52, 0x81, 0x8b, 0x51, 0x51, 0xd8, 0xb0, 0x7d, 0xef, 0xe5, 0xce, 0xb1, 0xe3,
0xc1, 0xae, 0x01, 0x9a, 0x9a, 0x8c, 0x00, 0x86, 0x7b, 0x00, 0x38, 0x76, 0xec, 0x18, 0x1e, 0x7f,
0xfc, 0x71, 0x2c, 0x59, 0xb2, 0x04, 0x9b, 0x37, 0x6f, 0xe6, 0x81, 0x6f, 0xdf, 0xbe, 0x1d, 0x81,
0x81, 0x81, 0xfc, 0x6f, 0x5e, 0x5e, 0x5e, 0xfc, 0xfd, 0x27, 0x9f, 0x7c, 0x12, 0x69, 0x49, 0x69,
0x7c, 0x91, 0xc8, 0x32, 0x72, 0x79, 0x19, 0x92, 0x93, 0x53, 0x90, 0x94, 0x9c, 0xc4, 0xf7, 0x0d,
0x82, 0x68, 0x6d, 0x6d, 0x41, 0x55, 0x55, 0x25, 0x02, 0xce, 0x9d, 0xc3, 0xc6, 0xff, 0x7c, 0x16,
0x64, 0xa9, 0xbd, 0x5a, 0x05, 0x68, 0x16, 0x03, 0x74, 0x76, 0x22, 0x31, 0x80, 0x25, 0x88, 0xbc,
0xbc, 0x3c, 0xf4, 0xef, 0xdf, 0x1f, 0x2f, 0xbf, 0xfc, 0x32, 0x16, 0x2d, 0x5a, 0x84, 0x95, 0x2b,
0x57, 0x62, 0xea, 0xd4, 0xa9, 0xbc, 0x16, 0xdc, 0xdd, 0xdd, 0xe1, 0xef, 0xef, 0x8f, 0x2d, 0x5b,
0xb6, 0x60, 0xf6, 0xec, 0xd9, 0xdc, 0x5a, 0xc2, 0x6e, 0xdc, 0xd0, 0xd0, 0x00, 0x85, 0x42, 0x81,
0xdc, 0x2b, 0xb9, 0x90, 0xc6, 0x48, 0xf9, 0x7b, 0x04, 0x41, 0x0b, 0x62, 0x30, 0x34, 0xf3, 0xce,
0xf4, 0x7d, 0x50, 0x28, 0xde, 0xfe, 0x78, 0x9f, 0xb7, 0x69, 0x7b, 0xbd, 0x1b, 0x40, 0xa3, 0xe9,
0x16, 0x40, 0x9b, 0x05, 0x00, 0x1a, 0x09, 0x9e, 0x78, 0xe2, 0x09, 0x4c, 0x9e, 0x3c, 0x19, 0x0e,
0x0e, 0x0e, 0x58, 0xb7, 0x6e, 0x1d, 0xb7, 0xd1, 0xa4, 0x49, 0x93, 0xf8, 0xeb, 0x8d, 0x1b, 0x37,
0x62, 0xeb, 0xd6, 0xad, 0x78, 0xe5, 0x95, 0x57, 0x38, 0x98, 0x10, 0x20, 0x5d, 0x4f, 0xd9, 0xa6,
0x2c, 0x94, 0x95, 0x95, 0xe3, 0xf2, 0xe5, 0x04, 0x84, 0x84, 0x86, 0x22, 0x22, 0x22, 0x12, 0x29,
0xa9, 0xa9, 0xcc, 0x5e, 0x4a, 0x6e, 0xc3, 0x82, 0x82, 0x7c, 0x04, 0x46, 0x5f, 0xba, 0xfd, 0xc1,
0xee, 0x2f, 0x0e, 0x89, 0xdb, 0xab, 0x45, 0x80, 0x26, 0x31, 0x80, 0x68, 0x2f, 0x20, 0x80, 0xeb,
0x04, 0x60, 0xc1, 0x46, 0x14, 0xe4, 0x88, 0x11, 0x23, 0xf0, 0xe2, 0x8b, 0x2f, 0xc2, 0xd9, 0xd9,
0x19, 0xf3, 0xe6, 0xcd, 0xe3, 0xc1, 0x4f, 0x9f, 0x3e, 0x1d, 0x0b, 0x17, 0x2e, 0xe4, 0x99, 0x18,
0x3d, 0x7a, 0x34, 0xc6, 0x8f, 0x1f, 0xcf, 0xbf, 0x8f, 0x1e, 0x64, 0x13, 0xba, 0x96, 0xbe, 0x97,
0xee, 0xcb, 0xee, 0x8f, 0x92, 0x92, 0x52, 0x64, 0x64, 0x64, 0x22, 0x2e, 0x2e, 0x9e, 0x77, 0x25,
0x82, 0x49, 0x4c, 0x4c, 0x62, 0x56, 0xaa, 0x42, 0x46, 0x66, 0x3a, 0x62, 0xb3, 0xf2, 0x3b, 0x5c,
0x3e, 0x3f, 0xf0, 0x31, 0x8b, 0xf7, 0x61, 0x8b, 0x00, 0x8d, 0x62, 0x80, 0x6e, 0x6e, 0x66, 0xbb,
0x76, 0xed, 0xc2, 0xc0, 0x81, 0x03, 0xb1, 0x78, 0xf1, 0x62, 0x6c, 0xd8, 0xb0, 0x81, 0xaf, 0xf2,
0xc4, 0x89, 0x13, 0x31, 0x65, 0xca, 0x14, 0x0e, 0x42, 0x70, 0x43, 0x87, 0x0e, 0xe5, 0xf6, 0x2a,
0x61, 0x23, 0x03, 0xad, 0x3e, 0x3d, 0xc4, 0x59, 0xa0, 0x7b, 0x90, 0x95, 0xd4, 0x6a, 0x35, 0xaf,
0x87, 0xdc, 0xdc, 0x2b, 0x2c, 0x03, 0x69, 0x88, 0x8f, 0xbf, 0x84, 0xa8, 0x68, 0x29, 0xa2, 0xa5,
0x31, 0xc8, 0xcd, 0x63, 0xef, 0xa5, 0xa5, 0x22, 0xaf, 0x4c, 0x71, 0x73, 0xda, 0x34, 0x87, 0xf9,
0x2c, 0xe6, 0x3f, 0xdd, 0x05, 0x50, 0x2b, 0x06, 0xe8, 0x66, 0x27, 0x8a, 0x8f, 0x8f, 0xe7, 0x81,
0xbd, 0xfa, 0xea, 0xab, 0x58, 0xba, 0x74, 0x29, 0x96, 0x2d, 0x5b, 0xc6, 0x57, 0x9e, 0xac, 0xf4,
0xc2, 0x0b, 0x2f, 0xf0, 0x76, 0x4a, 0x2b, 0xdf, 0xa7, 0x4f, 0x1f, 0xde, 0x95, 0x84, 0xc9, 0x54,
0x78, 0x88, 0x21, 0xe8, 0x5e, 0x04, 0x41, 0x99, 0xa8, 0xa8, 0xa8, 0xe4, 0xed, 0x57, 0x26, 0xcb,
0xe5, 0x19, 0x21, 0x98, 0x64, 0xb6, 0xd1, 0xe5, 0xc8, 0x64, 0xc8, 0xc9, 0xcd, 0xc3, 0xbc, 0xf9,
0x0b, 0x0f, 0x53, 0x3d, 0x74, 0x09, 0x60, 0xab, 0x0e, 0xa8, 0xf0, 0x06, 0x0c, 0x18, 0x80, 0x99,
0x33, 0x67, 0xe2, 0xf9, 0xe7, 0x9f, 0x87, 0x93, 0x93, 0x13, 0xff, 0x37, 0x05, 0x4f, 0x85, 0x4a,
0xd6, 0x79, 0xe6, 0x99, 0x67, 0x78, 0xf0, 0xeb, 0xd7, 0xaf, 0x37, 0x06, 0x6f, 0x0a, 0x21, 0x58,
0x89, 0x16, 0x85, 0xee, 0x43, 0x76, 0xa2, 0x9a, 0xa0, 0xf6, 0x5a, 0xc9, 0xac, 0x43, 0x7b, 0x03,
0x0d, 0x7c, 0x04, 0x44, 0xcf, 0xf4, 0x7a, 0xd9, 0xf2, 0x95, 0x41, 0x9d, 0x87, 0x31, 0x0b, 0x00,
0xa6, 0x85, 0x6c, 0xa1, 0x0e, 0xe8, 0x35, 0x05, 0x37, 0x76, 0xec, 0x58, 0x1e, 0xfc, 0xa6, 0x4d,
0x9b, 0xf8, 0x6a, 0xd3, 0xea, 0xcf, 0x98, 0x31, 0x83, 0x77, 0x21, 0x02, 0x79, 0xec, 0xb1, 0xc7,
0x30, 0x6e, 0xdc, 0x38, 0x1e, 0x9c, 0xf8, 0x6c, 0x20, 0x06, 0x10, 0x20, 0x84, 0x4c, 0xd0, 0x7d,
0x68, 0xf1, 0xa8, 0x78, 0x09, 0x44, 0xa7, 0xd3, 0xa1, 0xb6, 0xb6, 0x96, 0xdb, 0x8b, 0x9e, 0xe9,
0xb5, 0xa3, 0xa3, 0xe3, 0x39, 0x16, 0xf3, 0x48, 0x73, 0x00, 0x76, 0x91, 0xb5, 0x3a, 0x10, 0xef,
0xc8, 0xd4, 0x55, 0x06, 0x0f, 0x1e, 0x8c, 0x05, 0x0b, 0x16, 0xf0, 0xbe, 0x4e, 0xab, 0x4d, 0xc1,
0x53, 0xb1, 0xce, 0x9f, 0x3f, 0x9f, 0x43, 0x50, 0x57, 0x22, 0x00, 0xa5, 0x52, 0x69, 0x76, 0xb8,
0xb1, 0x05, 0x21, 0x64, 0x83, 0x40, 0xe8, 0xde, 0xb4, 0x98, 0x4d, 0x9d, 0x0b, 0x2b, 0x2c, 0xee,
0x9a, 0x35, 0x6b, 0xce, 0x99, 0x67, 0xa0, 0xb6, 0xb6, 0xbd, 0x41, 0x0c, 0x60, 0xa5, 0x0e, 0x68,
0x1c, 0xa0, 0xc0, 0x68, 0x50, 0x63, 0x2b, 0xc1, 0xbd, 0x2f, 0x14, 0x2d, 0x75, 0x21, 0xca, 0xc8,
0x53, 0x4f, 0x3d, 0x85, 0xbe, 0x7d, 0xfb, 0xb2, 0x6e, 0x12, 0x67, 0xf5, 0x84, 0x66, 0x09, 0x42,
0xd8, 0xc4, 0x04, 0x10, 0xca, 0x48, 0x5b, 0x67, 0xe7, 0x33, 0xda, 0x97, 0xe9, 0xf5, 0xd7, 0x5f,
0xef, 0x02, 0xc0, 0xca, 0x7e, 0x50, 0x58, 0x58, 0xc8, 0x8b, 0x96, 0xec, 0x42, 0x1b, 0x16, 0x8d,
0x0d, 0xf6, 0xf6, 0xf6, 0xdc, 0x2e, 0x73, 0xe6, 0xcc, 0xe1, 0xef, 0x91, 0x65, 0x28, 0x78, 0x17,
0x17, 0x17, 0x8b, 0x07, 0x9c, 0xae, 0x20, 0x4c, 0x41, 0x04, 0x18, 0xf1, 0x8e, 0x6f, 0x1b, 0x80,
0xa9, 0xc9, 0x82, 0x8d, 0xc8, 0x8f, 0xc3, 0x86, 0x0d, 0xc3, 0xb3, 0xcf, 0x3e, 0xcb, 0x37, 0x29,
0x2a, 0x4c, 0x0a, 0x9a, 0xac, 0x43, 0xc5, 0x4b, 0x6d, 0x74, 0xc2, 0x84, 0x09, 0xe8, 0xd7, 0xaf,
0x1f, 0xb7, 0x90, 0x78, 0x3a, 0xed, 0x0e, 0x84, 0x35, 0x10, 0x41, 0xe2, 0x6b, 0xac, 0x03, 0xb0,
0x36, 0xd6, 0x68, 0xc5, 0x46, 0xe4, 0x73, 0x02, 0xa0, 0xde, 0x4e, 0xbe, 0x27, 0xaf, 0x53, 0xf0,
0xd3, 0xa6, 0x4d, 0xe3, 0xb5, 0x40, 0x99, 0x18, 0x34, 0x68, 0x10, 0x97, 0x5e, 0xaf, 0x37, 0x1b,
0xb1, 0xbb, 0x0b, 0x61, 0x09, 0xc4, 0xf4, 0x61, 0x15, 0xa0, 0x9e, 0x01, 0x58, 0xb2, 0xd1, 0xc1,
0x43, 0x87, 0x78, 0xcb, 0xa4, 0x7e, 0xbf, 0x76, 0xed, 0x5a, 0x3e, 0xac, 0x09, 0xbe, 0xa7, 0x59,
0x87, 0xda, 0x26, 0x0d, 0x68, 0x64, 0x1d, 0x19, 0xeb, 0xd5, 0xd6, 0xce, 0x09, 0x3d, 0x81, 0xb0,
0x05, 0x63, 0x11, 0x40, 0x2d, 0x06, 0x10, 0xd9, 0x88, 0x4e, 0x4b, 0x64, 0x0b, 0xca, 0x00, 0x01,
0xac, 0x58, 0xb1, 0x82, 0x07, 0x2e, 0x6c, 0x56, 0x04, 0x40, 0xed, 0x94, 0xfa, 0x3d, 0x1d, 0x5e,
0x6c, 0x1d, 0x74, 0xac, 0x41, 0x74, 0x07, 0x44, 0x2c, 0xdb, 0x00, 0xa2, 0x2c, 0xd4, 0xb0, 0xcd,
0x8a, 0xc6, 0x04, 0x6a, 0x8f, 0x34, 0x12, 0xd0, 0xea, 0x93, 0xff, 0x29, 0x78, 0x7a, 0xa6, 0x7e,
0x4f, 0x35, 0x41, 0x2b, 0x4f, 0x5d, 0xc9, 0xd2, 0x98, 0xfd, 0xff, 0x80, 0xb0, 0x0a, 0x50, 0xc7,
0xa6, 0x4a, 0xb1, 0x8d, 0x7c, 0xbc, 0xe6, 0xc3, 0xd7, 0x73, 0x32, 0xf6, 0xef, 0x9e, 0x08, 0xe7,
0x37, 0x9d, 0xf8, 0x6a, 0x8b, 0x87, 0x34, 0xca, 0x04, 0xcd, 0xff, 0xc3, 0x87, 0x0f, 0xe7, 0x76,
0xb3, 0x76, 0x56, 0xe8, 0x09, 0x44, 0x77, 0x60, 0x2c, 0x02, 0xa8, 0xd4, 0xea, 0x3b, 0x00, 0x4c,
0x3a, 0x4d, 0x11, 0x0a, 0xb3, 0x9c, 0xd0, 0xa0, 0x8d, 0xc0, 0x4f, 0xa5, 0x07, 0x11, 0x21, 0xb1,
0xc7, 0xbf, 0x36, 0x3f, 0x6d, 0x1c, 0xd2, 0xa8, 0xf3, 0x0c, 0x19, 0x32, 0x84, 0xdb, 0x8b, 0x86,
0x34, 0xd3, 0x21, 0xef, 0xd7, 0x80, 0xb0, 0x26, 0xdb, 0x00, 0x9d, 0x10, 0x95, 0xa5, 0x9e, 0x50,
0x96, 0x7f, 0x09, 0x43, 0x43, 0x12, 0x1a, 0x75, 0x91, 0xd0, 0xab, 0xfc, 0xf1, 0x43, 0xc4, 0x72,
0xbc, 0xff, 0xee, 0xd3, 0x7c, 0x1f, 0x18, 0x35, 0x6a, 0x14, 0xf7, 0xbd, 0x44, 0x22, 0xb1, 0x7a,
0xd8, 0xe9, 0x2e, 0x44, 0x4f, 0x41, 0xac, 0x02, 0xe8, 0x59, 0xaf, 0x17, 0xb2, 0x50, 0x98, 0xb5,
0x16, 0x8d, 0xfa, 0x68, 0x34, 0xe9, 0xa5, 0xa8, 0xaf, 0x0d, 0x86, 0x4e, 0x79, 0x12, 0x9a, 0x9f,
0xbe, 0xc6, 0xf9, 0x80, 0x05, 0x78, 0x63, 0xf5, 0x48, 0xf4, 0x65, 0xc1, 0x2f, 0x5f, 0xb8, 0x18,
0xc9, 0x41, 0x21, 0x48, 0x09, 0x0e, 0x45, 0xca, 0xb9, 0x30, 0xa4, 0x8a, 0x94, 0x16, 0x12, 0x6e,
0x54, 0x7a, 0xe8, 0xf9, 0x1e, 0x29, 0x23, 0xec, 0x82, 0x4d, 0xad, 0x5d, 0xb3, 0x26, 0xcc, 0x0c,
0x40, 0xa9, 0x52, 0x19, 0x01, 0xf4, 0xba, 0x1a, 0x14, 0x64, 0xae, 0x40, 0x53, 0x5d, 0x1c, 0x1a,
0x34, 0xa1, 0xd0, 0x2b, 0x4f, 0x43, 0x53, 0xed, 0x0e, 0x55, 0x85, 0x2b, 0x6a, 0x4a, 0x77, 0xe2,
0xa8, 0xeb, 0x68, 0x8c, 0x61, 0xe3, 0xc2, 0x87, 0x93, 0x67, 0x60, 0xdb, 0x7d, 0xd0, 0x7a, 0x47,
0xc7, 0x08, 0xeb, 0x00, 0x4c, 0xd5, 0x15, 0xc1, 0x28, 0xcb, 0xdf, 0xc1, 0xfc, 0x7f, 0x1e, 0x75,
0x2a, 0x3f, 0x68, 0x6b, 0x8e, 0x41, 0x5d, 0x79, 0x88, 0x05, 0xbf, 0x0b, 0xa9, 0xf1, 0x4e, 0x38,
0xe1, 0xf6, 0x1c, 0x2e, 0xb1, 0xc3, 0x36, 0x7d, 0xd9, 0x47, 0x53, 0x1d, 0xe0, 0xba, 0x6c, 0xd5,
0x2f, 0xd2, 0x81, 0xe5, 0xab, 0x7b, 0xa4, 0x37, 0x56, 0xad, 0xba, 0x60, 0x0e, 0xa0, 0x54, 0xb5,
0xeb, 0xd8, 0x0e, 0x4a, 0x10, 0x85, 0xd9, 0x5b, 0xa0, 0xfe, 0xc9, 0x1b, 0x75, 0x6a, 0x7f, 0x16,
0xbc, 0x17, 0x6a, 0xab, 0xbe, 0x62, 0x96, 0x7a, 0x17, 0xc1, 0xbe, 0xb3, 0x91, 0x7c, 0x69, 0x37,
0x2b, 0x72, 0x2d, 0x64, 0xf1, 0x3f, 0x70, 0x00, 0x97, 0x39, 0xf3, 0x8c, 0x83, 0x9e, 0xf8, 0xd4,
0xd6, 0xdd, 0x9a, 0xe8, 0x4e, 0x7d, 0x98, 0xca, 0x62, 0x0d, 0xb0, 0xb1, 0x97, 0x03, 0x68, 0xb4,
0xb5, 0xf8, 0xce, 0x7d, 0x26, 0xf3, 0xbd, 0x04, 0x3a, 0xc5, 0x09, 0x54, 0xcb, 0x5d, 0x11, 0x1d,
0xb2, 0x04, 0x17, 0x83, 0x57, 0x41, 0xa5, 0x28, 0x34, 0xce, 0x48, 0xb2, 0xb8, 0x4b, 0x77, 0x00,
0x4c, 0x4e, 0x6d, 0x5d, 0x41, 0x74, 0x05, 0xd2, 0x15, 0x90, 0x45, 0x00, 0x05, 0x03, 0xd0, 0xb2,
0xc3, 0x42, 0x68, 0xb0, 0x1b, 0x7a, 0xf7, 0xee, 0x05, 0xc7, 0x15, 0x0e, 0xc8, 0x48, 0xd8, 0x8c,
0x73, 0xbe, 0x73, 0x51, 0x5c, 0x10, 0x6e, 0x36, 0x23, 0x89, 0x01, 0x84, 0x69, 0xb5, 0xa7, 0x10,
0xdd, 0x05, 0x31, 0x95, 0x4d, 0x80, 0x55, 0xcb, 0xa7, 0xe0, 0x81, 0x07, 0xec, 0xf0, 0xc8, 0x23,
0xbd, 0xf0, 0xad, 0xdb, 0xdb, 0x6c, 0x30, 0xd3, 0x42, 0x3c, 0x62, 0x08, 0x10, 0x77, 0x01, 0x88,
0x46, 0xee, 0x23, 0x9b, 0x9d, 0xb0, 0x65, 0xea, 0x28, 0x6c, 0xb1, 0x1f, 0x8d, 0xad, 0x5d, 0xa8,
0x4e, 0xad, 0x32, 0x03, 0x91, 0x67, 0xa5, 0x61, 0xd7, 0xac, 0xf1, 0x66, 0x0a, 0x3d, 0xf8, 0x5f,
0xdb, 0x00, 0x35, 0x0a, 0x65, 0xbb, 0x46, 0xab, 0xc5, 0xdf, 0x06, 0xf6, 0xc6, 0x74, 0xfb, 0x21,
0xc8, 0xcd, 0x49, 0xe4, 0x05, 0x2d, 0xde, 0xdc, 0xc4, 0x83, 0x5e, 0x8e, 0x08, 0x40, 0x38, 0x7a,
0x12, 0xc4, 0x81, 0xb5, 0x4b, 0xf1, 0xd6, 0xd3, 0x83, 0xba, 0x25, 0x9d, 0x4a, 0x61, 0x96, 0x91,
0xe2, 0x94, 0x04, 0xbc, 0xcf, 0xfe, 0x66, 0x2a, 0xff, 0x4f, 0xb6, 0x75, 0x05, 0xa0, 0x68, 0x2f,
0x2b, 0x2b, 0xc2, 0xa9, 0x13, 0xfb, 0x41, 0xb5, 0x20, 0x14, 0x34, 0x01, 0x88, 0x47, 0x0c, 0x01,
0x22, 0x27, 0x36, 0xfe, 0x0e, 0x80, 0xe8, 0xfc, 0xec, 0xda, 0x43, 0x00, 0x53, 0x6b, 0x55, 0xe6,
0xe5, 0xe0, 0xcb, 0x55, 0x8b, 0xcc, 0x24, 0x3d, 0x7e, 0xd4, 0xf8, 0x19, 0x8b, 0x00, 0xd5, 0x35,
0x8a, 0x76, 0x76, 0x2e, 0x06, 0x65, 0x81, 0xac, 0x24, 0x00, 0x18, 0x37, 0x37, 0xf1, 0x9c, 0xc4,
0x94, 0x2d, 0x02, 0x10, 0x0e, 0x3e, 0x04, 0xd1, 0x48, 0x9f, 0x61, 0x9f, 0x6d, 0xec, 0x54, 0x13,
0x7b, 0x4d, 0x6a, 0x66, 0xd7, 0x70, 0x31, 0x78, 0x43, 0xa7, 0xc4, 0xf5, 0x61, 0xab, 0x4e, 0x4c,
0x65, 0x11, 0xa0, 0xa8, 0xb8, 0xb8, 0x55, 0x5d, 0xab, 0x41, 0xad, 0x46, 0xcb, 0x20, 0x74, 0x96,
0x21, 0x58, 0x20, 0x02, 0x44, 0x76, 0x4c, 0x9c, 0x11, 0x40, 0x28, 0x6c, 0xf1, 0x09, 0xce, 0xf8,
0x63, 0x80, 0xa8, 0xb8, 0x85, 0x36, 0x2b, 0xfe, 0x95, 0xcf, 0x28, 0x13, 0x10, 0x5b, 0x62, 0x07,
0x28, 0x7f, 0x33, 0x80, 0x84, 0xc4, 0xc4, 0x7a, 0x36, 0x91, 0xc2, 0x34, 0x0b, 0x46, 0x2b, 0x99,
0x40, 0xdc, 0x05, 0x20, 0xea, 0x4e, 0x65, 0xf2, 0x1c, 0x94, 0x14, 0xa5, 0xa0, 0xa4, 0x38, 0x15,
0xa5, 0xa4, 0xab, 0x69, 0x90, 0x93, 0x4a, 0xd2, 0x51, 0x26, 0xa8, 0x34, 0x03, 0xe5, 0x22, 0x55,
0xc8, 0xb3, 0x8c, 0x20, 0xd7, 0xd8, 0x77, 0xe5, 0x86, 0x4a, 0x90, 0x1b, 0x16, 0x84, 0x2b, 0x56,
0xf4, 0xdc, 0x98, 0xd1, 0x3e, 0xe6, 0x00, 0x09, 0x89, 0xf5, 0x2a, 0x75, 0x2d, 0x7e, 0xce, 0x82,
0x15, 0x08, 0x51, 0x3d, 0x88, 0x01, 0x84, 0xc2, 0x26, 0x88, 0x4f, 0xb7, 0x8d, 0xc1, 0x3f, 0xd7,
0xd9, 0xf5, 0x48, 0x5b, 0x37, 0xfd, 0xd9, 0x98, 0x19, 0xbd, 0xb2, 0x06, 0xfb, 0x58, 0x7d, 0xd8,
0xd2, 0xac, 0x31, 0x23, 0x83, 0x2d, 0x00, 0x24, 0x30, 0x00, 0x35, 0x28, 0x0b, 0x77, 0xac, 0x64,
0xb9, 0x1e, 0x48, 0x59, 0x62, 0x00, 0x51, 0x77, 0xba, 0x57, 0x00, 0xc1, 0x5e, 0x7a, 0x45, 0x75,
0x8f, 0x00, 0x26, 0x30, 0xd1, 0xef, 0xee, 0xb1, 0x7b, 0xf6, 0xee, 0xbd, 0x7a, 0x31, 0x22, 0x52,
0x1b, 0x11, 0x19, 0xa9, 0x8d, 0x24, 0x45, 0x45, 0x31, 0x45, 0x6b, 0xa3, 0xa2, 0xa5, 0xda, 0x68,
0xa9, 0x54, 0x2b, 0x25, 0xc5, 0xc4, 0x70, 0xc5, 0xc4, 0xc6, 0x6a, 0xc3, 0x03, 0x25, 0x75, 0x9e,
0x9f, 0xec, 0x36, 0x78, 0xef, 0xd9, 0x67, 0x88, 0x8d, 0x8b, 0xd3, 0xc6, 0x91, 0xe2, 0xe3, 0xb5,
0x27, 0xbd, 0x5c, 0x9a, 0x8e, 0xbb, 0xbd, 0x67, 0xf0, 0x34, 0x95, 0xbb, 0x48, 0x1e, 0xef, 0x1b,
0xbc, 0x44, 0xfa, 0xee, 0xf8, 0xb6, 0xe6, 0xc4, 0xc4, 0x44, 0x2d, 0xe9, 0x72, 0x5c, 0x9c, 0x2e,
0xf0, 0x8b, 0x4f, 0x9b, 0xad, 0xe9, 0xf4, 0xa7, 0xdb, 0x9b, 0x06, 0x3f, 0xda, 0xe7, 0x94, 0xf0,
0xcb, 0xdc, 0x38, 0xa6, 0x83, 0x4c, 0x67, 0x98, 0xe8, 0xcd, 0xef, 0xff, 0x00, 0xa2, 0x58, 0x3f,
0xef, 0xfc, 0x1f, 0x1b, 0xbb, 0x01, 0x4c, 0xf4, 0x53, 0xf5, 0x72, 0xa6, 0xbf, 0xff, 0x41, 0xb4,
0x82, 0x69, 0x1e, 0xd3, 0xa3, 0xff, 0x03, 0xc7, 0x89, 0x1e, 0x3b, 0x7a, 0xe5, 0x3e, 0x77, 0x00,
0x00, 0x00, 0x00, 0x49, 0x45, 0x4e, 0x44, 0xae, 0x42, 0x60, 0x82,
};
const BITMAP_OPAQUE icon_pagelayout_editor_xpm[1] = {{ png, sizeof( png ), "icon_pagelayout_editor_xpm" }};
//EOF

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.2 KiB

View File

@ -17,6 +17,7 @@ ICON_FILES="icon_3d.svg
icon_kicad.svg
icon_bitmap2component.svg
icon_pcbcalculator.svg
icon_pl_editor.svg
icon_cvpcb.svg
icon_pcbnew.svg
icon_eeschema.svg"

View File

@ -1,109 +1,761 @@
<svg xmlns="http://www.w3.org/2000/svg" height="48" width="48" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<linearGradient id="ab" y2="4.2193" gradientUnits="userSpaceOnUse" x2="7.5955" gradientTransform="matrix(.88924 0 0 .78227 .62292 7.6472)" y1="43.994" x1="40.752">
<stop stop-color="#333" offset="0"/>
<stop stop-color="#474747" offset="1"/>
</linearGradient>
<linearGradient id="a" y2="19500" gradientUnits="userSpaceOnUse" x2="15000" y1="14100" x1="10100">
<stop stop-color="#f5fffa" offset="0"/>
<stop stop-color="#6f6d7f" offset="1.2"/>
</linearGradient>
<linearGradient id="b" y2="19500" gradientUnits="userSpaceOnUse" x2="15000" y1="14100" x1="10100">
<stop stop-color="#fff" stop-opacity="0.698" offset="0"/>
<stop stop-color="#5db7ff" stop-opacity="0.698" offset="1.2"/>
</linearGradient>
<linearGradient id="x" y2="19500" gradientUnits="userSpaceOnUse" x2="15000" y1="14100" x1="10100">
<stop stop-color="#f5ffff" offset="0"/>
<stop stop-color="#fff" stop-opacity="0" offset="1.2"/>
</linearGradient>
<radialGradient id="ac" xlink:href="#b" gradientUnits="userSpaceOnUse" cy="17526" cx="18632" gradientTransform="matrix(.001928 0 0 .001928 33.623 -11.394)" r="40170"/>
<radialGradient id="ad" xlink:href="#b" gradientUnits="userSpaceOnUse" cy="17831" cx="18969" r="23166"/>
<radialGradient id="ae" xlink:href="#a" gradientUnits="userSpaceOnUse" cy="27370" cx="25538" gradientTransform="translate(-1.2031e-5,1.3252e-4)" r="3682.2"/>
<radialGradient id="af" xlink:href="#x" gradientUnits="userSpaceOnUse" cy="17398" cx="18401" gradientTransform="translate(-7.3214e-5,-4.3295e-5)" r="11888"/>
<radialGradient id="ag" xlink:href="#a" gradientUnits="userSpaceOnUse" cy="15674" cx="16467" gradientTransform="matrix(.0019151 0 0 .0019411 33.623 -11.394)" r="3055.2"/>
<radialGradient id="ah" xlink:href="#b" gradientUnits="userSpaceOnUse" cy="17753" cx="18300" gradientTransform="matrix(.001928 0 0 .001928 33.623 -11.394)" r="28430"/>
<radialGradient id="ai" xlink:href="#a" gradientUnits="userSpaceOnUse" cy="33086" cx="-2182.7" gradientTransform="matrix(.0032733 0 0 .0011356 31.832 15.718)" r="11540"/>
<radialGradient id="aj" xlink:href="#a" gradientUnits="userSpaceOnUse" cy="18596" cx="17070" gradientTransform="matrix(.0019519 0 0 .0019044 33.623 -11.394)" r="3734.6"/>
<linearGradient id="ao" y2="39368" xlink:href="#x" gradientUnits="userSpaceOnUse" x2="2312.5" gradientTransform="matrix(.0032733 0 0 .0011356 31.832 15.718)" y1="39560" x1="-1083.8"/>
<radialGradient id="ak" xlink:href="#b" gradientUnits="userSpaceOnUse" cy="11246" cx="13190" gradientTransform="translate(-9.4474e-5,4.0964e-5)" r="16248"/>
<linearGradient id="ap" y2="18951" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="12508" gradientTransform="matrix(.001928 0 0 .001928 33.623 -11.394)" y1="-85.143" x1="-1308.3"/>
<radialGradient id="al" xlink:href="#a" gradientUnits="userSpaceOnUse" cy="29167" cx="26631" gradientTransform="translate(-1.1897e-4,-1.2562e-4)" r="4284.2"/>
<linearGradient id="y" y2="20482" gradientUnits="userSpaceOnUse" x2="6753.4" gradientTransform="matrix(.0013312 0 0 .0027924 31.832 15.718)" y1="27356" x1="850.32">
<stop stop-color="#a66500" offset="0"/>
<stop stop-color="#da8f00" offset="1"/>
</linearGradient>
<linearGradient id="z" y2="21261" gradientUnits="userSpaceOnUse" x2="3741.1" gradientTransform="matrix(.00126 0 0 .0029504 31.832 15.718)" y1="21261" x1="-3478.9">
<stop stop-color="#eda700" offset="0"/>
<stop stop-color="#fff" offset=".38824"/>
<stop stop-color="#ffcb50" offset="0.7"/>
<stop stop-color="#ed8700" offset="1"/>
</linearGradient>
<linearGradient id="aa" y2="29618" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="24590" gradientTransform="matrix(.001928 0 0 .001928 33.623 -11.394)" y1="405.03" x1="389.4"/>
<radialGradient id="am" gradientUnits="userSpaceOnUse" cy="10444" cx="11715" gradientTransform="matrix(.001928 0 0 .001928 33.623 -11.394)" r="15132">
<stop stop-color="#f5ffff" stop-opacity=".49020" offset="0"/>
<stop stop-color="#fff" stop-opacity="0" offset="1.2"/>
</radialGradient>
</defs>
<g id="w" stroke-linejoin="round" stroke-linecap="round" transform="translate(-40.995 -.010729)">
<rect style="color:#000000" fill-opacity=".63253" ry=".89887" height="32.011" width="31.012" stroke="url(#ab)" display="block" y="10.5" x="6.495" fill="#fff"/>
<rect opacity=".79121" style="color:#000000" display="block" rx=".13187" ry=".11482" height="30.004" width="28.998" stroke="#fff" y="11.496" x="7.5" fill="none"/>
<path style="color:#000000" d="m10.184 13.468 5.316 0.032 3 3v8" stroke="#000" display="block" fill="none"/>
<path style="color:#000000" d="m22.5 24.5v-8l-3-3" stroke="#000" display="block" fill="none"/>
<path style="color:#000000" d="m26.5 24.5v-8l-3-3" stroke="#000" display="block" fill="none"/>
<path style="color:#000000" d="m30.5 24.5v-11" stroke="#000" display="block" fill="none"/>
<path style="color:#000000" d="m18.5 24.5v2" stroke="#000" stroke-width="2" display="block" fill="none"/>
<path style="color:#000000" d="m22.5 24.5v2" stroke="#000" stroke-width="2" display="block" fill="none"/>
<path style="color:#000000" d="m26.5 24.5v2" stroke="#000" stroke-width="2" display="block" fill="none"/>
<path style="color:#000000" d="m30.5 24.5v2" stroke="#000" stroke-width="2" display="block" fill="none"/>
<path style="color:#000000" d="m30.5 31.5v2" stroke="#000" stroke-width="2" display="block" fill="none"/>
<path style="color:#000000" d="m26.5 31.5v2" stroke="#000" stroke-width="2" display="block" fill="none"/>
<path style="color:#000000" d="m22.5 31.5v2" stroke="#000" stroke-width="2" display="block" fill="none"/>
<path style="color:#000000" d="m18.5 31.5v2" stroke="#000" stroke-width="2" display="block" fill="none"/>
<path style="color:#000000" d="m18.5 33.5v3l-2 2h-6" stroke="#000" display="block" fill="none"/>
<path style="color:#000000" d="m22.5 33.5v5" stroke="#000" display="block" fill="none"/>
<path style="color:#000000" d="m26.5 33.5v3l2 2h6" stroke="#000" display="block" fill="none"/>
<path style="color:#000000" d="m30.5 33.5 2 2h2" stroke="#000" display="block" fill="none"/>
<path style="color:#000000" display="block" d="m10.5 15.5h4l2 2v18l-1 1h-5v-21z" stroke="#000"/>
<rect style="color:#000000" display="block" ry="2.028" height="13" width="16" stroke="#000" y="22.5" x="16.5" fill="none"/>
</g>
<g transform="matrix(1.0331,0,0,1.042,-1.5828,-1.9714)">
<use xlink:href="#w" transform="matrix(.88516 .46528 -.46528 .88516 55.782 10.953)" height="48" width="48" y="0" x="0"/>
<use xlink:href="#an" transform="matrix(.97367 .22797 -.22797 .97367 9.8015 -7.4372)" height="48" width="48" y="0" x="0"/>
<use id="an" xlink:href="#w" transform="translate(37,1)" height="48" width="48" y="0" x="0"/>
<path d="m4 26v-13h28v13c-7 6-18-6-28 0z" fill-opacity=".51807" fill-rule="evenodd" fill="#fff"/>
</g>
<g fill-rule="evenodd" transform="translate(-6,53)" stroke="#000">
<path style="color:#000000" d="m31 31a10 10 0 1 1 -20 0 10 10 0 1 1 20 0z" fill-opacity=".3012" transform="translate(-47,-29)" stroke-width="1.5" fill="#72a0cf"/>
<rect style="color:#000000" stroke-width="1.0006" transform="matrix(.3824 -.924 .90415 .42722 0 0)" ry="1.1087" width="3.1174" y="-13.376" x="-14.434" height="17.268" fill="#2e3436"/>
</g>
<g transform="matrix(.69611 .19209 -.17663 .64009 -8.9202 1.1447)">
<g opacity=".18470" transform="matrix(.001928 0 0 .001928 33.342 -9.8361)">
<path fill-rule="evenodd" d="m29524 27524a2285.7 2285.7 0 1 1 -4571.4 0 2285.7 2285.7 0 1 1 4571.4 0z" transform="matrix(1.0366,0,0,1.0366,-8223.8,-8828.8)"/>
<path fill-rule="evenodd" d="m19683 17385c-463.92-572.08-642.91-183.34-885.67-376.28-186.31-167 126.72-430.52-278.63-868.94l-1977.9 1967.3c337.99 333.5 523.59 91.68 730.6 375.12 155.23 225.6-17.11 519.24 482.71 842.41l1928.9-1939.6z"/>
<rect fill-rule="evenodd" transform="rotate(-45)" height="1619" width="4666.7" y="23097" x="-2064"/>
<path fill-rule="evenodd" d="m19649 9700.3c0 5058-4100.3 9158.4-9158.4 9158.4-5058 0-9158.4-4100.3-9158.4-9158.4 0-5058 4100.3-9158.4 9158.4-9158.4 5058 0 9158.4 4100.3 9158.4 9158.4zm-907.21-0.01c0 4557-3694.2 8251.2-8251.2 8251.2s-8251.1-3694.2-8251.1-8251.2 3694.2-8251.2 8251.1-8251.2c4557 0 8251.2 3694.2 8251.2 8251.2z"/>
<path fill-rule="evenodd" d="m29524 27524a2285.7 2285.7 0 1 1 -4571.4 0 2285.7 2285.7 0 1 1 4571.4 0z" transform="matrix(.95833 0 0 .95833 944.44 99.204)"/>
<rect transform="rotate(-45)" height="11583" width="5522.2" y="26814" x="-2375"/>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="48"
width="48"
version="1.1"
id="svg2"
inkscape:version="0.48.2 r9819"
sodipodi:docname="icon_gerbview.svg">
<metadata
id="metadata172">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1175"
inkscape:window-height="644"
id="namedview170"
showgrid="false"
inkscape:zoom="4.9166667"
inkscape:cx="24"
inkscape:cy="24"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="svg2" />
<defs
id="defs4">
<linearGradient
id="ab"
y2="4.2193"
gradientUnits="userSpaceOnUse"
x2="7.5955"
gradientTransform="matrix(.88924 0 0 .78227 .62292 7.6472)"
y1="43.994"
x1="40.752">
<stop
stop-color="#333"
offset="0"
id="stop7" />
<stop
stop-color="#474747"
offset="1"
id="stop9" />
</linearGradient>
<linearGradient
id="a"
y2="19500"
gradientUnits="userSpaceOnUse"
x2="15000"
y1="14100"
x1="10100">
<stop
stop-color="#f5fffa"
offset="0"
id="stop12" />
<stop
stop-color="#6f6d7f"
offset="1.2"
id="stop14" />
</linearGradient>
<linearGradient
id="b"
y2="19500"
gradientUnits="userSpaceOnUse"
x2="15000"
y1="14100"
x1="10100">
<stop
stop-color="#fff"
stop-opacity="0.698"
offset="0"
id="stop17" />
<stop
stop-color="#5db7ff"
stop-opacity="0.698"
offset="1.2"
id="stop19" />
</linearGradient>
<linearGradient
id="x"
y2="19500"
gradientUnits="userSpaceOnUse"
x2="15000"
y1="14100"
x1="10100">
<stop
stop-color="#f5ffff"
offset="0"
id="stop22" />
<stop
stop-color="#fff"
stop-opacity="0"
offset="1.2"
id="stop24" />
</linearGradient>
<radialGradient
id="ac"
xlink:href="#b"
gradientUnits="userSpaceOnUse"
cy="17526"
cx="18632"
gradientTransform="matrix(.001928 0 0 .001928 33.623 -11.394)"
r="40170" />
<radialGradient
id="ad"
xlink:href="#b"
gradientUnits="userSpaceOnUse"
cy="17831"
cx="18969"
r="23166" />
<radialGradient
id="ae"
xlink:href="#a"
gradientUnits="userSpaceOnUse"
cy="27370"
cx="25538"
gradientTransform="translate(-1.2031e-5,1.3252e-4)"
r="3682.2" />
<radialGradient
id="af"
xlink:href="#x"
gradientUnits="userSpaceOnUse"
cy="17398"
cx="18401"
gradientTransform="translate(-7.3214e-5,-4.3295e-5)"
r="11888" />
<radialGradient
id="ag"
xlink:href="#a"
gradientUnits="userSpaceOnUse"
cy="15674"
cx="16467"
gradientTransform="matrix(.0019151 0 0 .0019411 33.623 -11.394)"
r="3055.2" />
<radialGradient
id="ah"
xlink:href="#b"
gradientUnits="userSpaceOnUse"
cy="17753"
cx="18300"
gradientTransform="matrix(.001928 0 0 .001928 33.623 -11.394)"
r="28430" />
<radialGradient
id="ai"
xlink:href="#a"
gradientUnits="userSpaceOnUse"
cy="33086"
cx="-2182.7"
gradientTransform="matrix(.0032733 0 0 .0011356 31.832 15.718)"
r="11540" />
<radialGradient
id="aj"
xlink:href="#a"
gradientUnits="userSpaceOnUse"
cy="18596"
cx="17070"
gradientTransform="matrix(.0019519 0 0 .0019044 33.623 -11.394)"
r="3734.6" />
<linearGradient
id="ao"
y2="39368"
xlink:href="#x"
gradientUnits="userSpaceOnUse"
x2="2312.5"
gradientTransform="matrix(.0032733 0 0 .0011356 31.832 15.718)"
y1="39560"
x1="-1083.8" />
<radialGradient
id="ak"
xlink:href="#b"
gradientUnits="userSpaceOnUse"
cy="11246"
cx="13190"
gradientTransform="translate(-9.4474e-5,4.0964e-5)"
r="16248" />
<linearGradient
id="ap"
y2="18951"
xlink:href="#a"
gradientUnits="userSpaceOnUse"
x2="12508"
gradientTransform="matrix(.001928 0 0 .001928 33.623 -11.394)"
y1="-85.143"
x1="-1308.3" />
<radialGradient
id="al"
xlink:href="#a"
gradientUnits="userSpaceOnUse"
cy="29167"
cx="26631"
gradientTransform="translate(-1.1897e-4,-1.2562e-4)"
r="4284.2" />
<linearGradient
id="y"
y2="20482"
gradientUnits="userSpaceOnUse"
x2="6753.4"
gradientTransform="matrix(.0013312 0 0 .0027924 31.832 15.718)"
y1="27356"
x1="850.32">
<stop
stop-color="#a66500"
offset="0"
id="stop39" />
<stop
stop-color="#da8f00"
offset="1"
id="stop41" />
</linearGradient>
<linearGradient
id="z"
y2="21261"
gradientUnits="userSpaceOnUse"
x2="3741.1"
gradientTransform="matrix(.00126 0 0 .0029504 31.832 15.718)"
y1="21261"
x1="-3478.9">
<stop
stop-color="#eda700"
offset="0"
id="stop44" />
<stop
stop-color="#fff"
offset=".38824"
id="stop46" />
<stop
stop-color="#ffcb50"
offset="0.7"
id="stop48" />
<stop
stop-color="#ed8700"
offset="1"
id="stop50" />
</linearGradient>
<linearGradient
id="aa"
y2="29618"
xlink:href="#a"
gradientUnits="userSpaceOnUse"
x2="24590"
gradientTransform="matrix(.001928 0 0 .001928 33.623 -11.394)"
y1="405.03"
x1="389.4" />
<radialGradient
id="am"
gradientUnits="userSpaceOnUse"
cy="10444"
cx="11715"
gradientTransform="matrix(.001928 0 0 .001928 33.623 -11.394)"
r="15132">
<stop
stop-color="#f5ffff"
stop-opacity=".49020"
offset="0"
id="stop54" />
<stop
stop-color="#fff"
stop-opacity="0"
offset="1.2"
id="stop56" />
</radialGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#ab"
id="linearGradient3191"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.88924,0,0,0.78227,0.62292,7.6472)"
x1="40.752"
y1="43.994"
x2="7.5955"
y2="4.2193" />
<linearGradient
inkscape:collect="always"
xlink:href="#ab"
id="linearGradient3235"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.88924,0,0,0.78227,0.62292,7.6472)"
x1="40.752"
y1="43.994"
x2="7.5955"
y2="4.2193" />
</defs>
<g
transform="matrix(1.0331,0,0,1.042,-1.5828,-1.9714)"
id="g99">
<g
transform="matrix(0.88516,0.46528,-0.46528,0.88516,19.499858,-8.1306505)"
id="use101"
style="stroke-linecap:round;stroke-linejoin:round">
<rect
id="rect3151"
x="6.4949999"
y="10.5"
display="block"
width="31.011999"
height="32.011002"
ry="0.89886999"
style="color:#000000;fill:#ffffff;fill-opacity:0.63253;stroke:url(#linearGradient3191);display:block" />
<rect
id="rect3153"
x="7.5"
y="11.496"
width="28.997999"
height="30.004"
ry="0.11482"
rx="0.13187"
display="block"
style="opacity:0.79120998;color:#000000;fill:none;stroke:#ffffff;display:block" />
<path
id="path3155"
display="block"
d="m 10.184,13.468 5.316,0.032 3,3 v 8"
style="color:#000000;fill:none;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<path
id="path3157"
display="block"
d="m 22.5,24.5 v -8 l -3,-3"
style="color:#000000;fill:none;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<path
id="path3159"
display="block"
d="m 26.5,24.5 v -8 l -3,-3"
style="color:#000000;fill:none;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<path
id="path3161"
display="block"
d="m 30.5,24.5 v -11"
style="color:#000000;fill:none;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<path
id="path3163"
display="block"
d="m 18.5,24.5 v 2"
style="color:#000000;fill:none;stroke:#000000;stroke-width:2;display:block"
inkscape:connector-curvature="0" />
<path
id="path3165"
display="block"
d="m 22.5,24.5 v 2"
style="color:#000000;fill:none;stroke:#000000;stroke-width:2;display:block"
inkscape:connector-curvature="0" />
<path
id="path3167"
display="block"
d="m 26.5,24.5 v 2"
style="color:#000000;fill:none;stroke:#000000;stroke-width:2;display:block"
inkscape:connector-curvature="0" />
<path
id="path3169"
display="block"
d="m 30.5,24.5 v 2"
style="color:#000000;fill:none;stroke:#000000;stroke-width:2;display:block"
inkscape:connector-curvature="0" />
<path
id="path3171"
display="block"
d="m 30.5,31.5 v 2"
style="color:#000000;fill:none;stroke:#000000;stroke-width:2;display:block"
inkscape:connector-curvature="0" />
<path
id="path3173"
display="block"
d="m 26.5,31.5 v 2"
style="color:#000000;fill:none;stroke:#000000;stroke-width:2;display:block"
inkscape:connector-curvature="0" />
<path
id="path3175"
display="block"
d="m 22.5,31.5 v 2"
style="color:#000000;fill:none;stroke:#000000;stroke-width:2;display:block"
inkscape:connector-curvature="0" />
<path
id="path3177"
display="block"
d="m 18.5,31.5 v 2"
style="color:#000000;fill:none;stroke:#000000;stroke-width:2;display:block"
inkscape:connector-curvature="0" />
<path
id="path3179"
display="block"
d="m 18.5,33.5 v 3 l -2,2 h -6"
style="color:#000000;fill:none;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<path
id="path3181"
display="block"
d="m 22.5,33.5 v 5"
style="color:#000000;fill:none;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<path
id="path3183"
display="block"
d="m 26.5,33.5 v 3 l 2,2 h 6"
style="color:#000000;fill:none;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<path
id="path3185"
display="block"
d="m 30.5,33.5 2,2 h 2"
style="color:#000000;fill:none;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<path
id="path3187"
d="m 10.5,15.5 h 4 l 2,2 v 18 l -1,1 h -5 v -21 z"
display="block"
style="color:#000000;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<rect
id="rect3189"
x="16.5"
y="22.5"
width="16"
height="13"
ry="2.0280001"
display="block"
style="color:#000000;fill:none;stroke:#000000;display:block" />
</g>
<use
xlink:href="#an"
transform="matrix(.97367 .22797 -.22797 .97367 9.8015 -7.4372)"
height="48"
width="48"
y="0"
x="0"
id="use103" />
<g
transform="translate(-3.995,0.989271)"
id="an"
style="stroke-linecap:round;stroke-linejoin:round">
<rect
id="rect3195"
x="6.4949999"
y="10.5"
display="block"
width="31.011999"
height="32.011002"
ry="0.89886999"
style="color:#000000;fill:#ffffff;fill-opacity:0.63253;stroke:url(#linearGradient3235);display:block" />
<rect
id="rect3197"
x="7.5"
y="11.496"
width="28.997999"
height="30.004"
ry="0.11482"
rx="0.13187"
display="block"
style="opacity:0.79120998;color:#000000;fill:none;stroke:#ffffff;display:block" />
<path
id="path3199"
display="block"
d="m 10.184,13.468 5.316,0.032 3,3 v 8"
style="color:#000000;fill:none;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<path
id="path3201"
display="block"
d="m 22.5,24.5 v -8 l -3,-3"
style="color:#000000;fill:none;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<path
id="path3203"
display="block"
d="m 26.5,24.5 v -8 l -3,-3"
style="color:#000000;fill:none;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<path
id="path3205"
display="block"
d="m 30.5,24.5 v -11"
style="color:#000000;fill:none;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<path
id="path3207"
display="block"
d="m 18.5,24.5 v 2"
style="color:#000000;fill:none;stroke:#000000;stroke-width:2;display:block"
inkscape:connector-curvature="0" />
<path
id="path3209"
display="block"
d="m 22.5,24.5 v 2"
style="color:#000000;fill:none;stroke:#000000;stroke-width:2;display:block"
inkscape:connector-curvature="0" />
<path
id="path3211"
display="block"
d="m 26.5,24.5 v 2"
style="color:#000000;fill:none;stroke:#000000;stroke-width:2;display:block"
inkscape:connector-curvature="0" />
<path
id="path3213"
display="block"
d="m 30.5,24.5 v 2"
style="color:#000000;fill:none;stroke:#000000;stroke-width:2;display:block"
inkscape:connector-curvature="0" />
<path
id="path3215"
display="block"
d="m 30.5,31.5 v 2"
style="color:#000000;fill:none;stroke:#000000;stroke-width:2;display:block"
inkscape:connector-curvature="0" />
<path
id="path3217"
display="block"
d="m 26.5,31.5 v 2"
style="color:#000000;fill:none;stroke:#000000;stroke-width:2;display:block"
inkscape:connector-curvature="0" />
<path
id="path3219"
display="block"
d="m 22.5,31.5 v 2"
style="color:#000000;fill:none;stroke:#000000;stroke-width:2;display:block"
inkscape:connector-curvature="0" />
<path
id="path3221"
display="block"
d="m 18.5,31.5 v 2"
style="color:#000000;fill:none;stroke:#000000;stroke-width:2;display:block"
inkscape:connector-curvature="0" />
<path
id="path3223"
display="block"
d="m 18.5,33.5 v 3 l -2,2 h -6"
style="color:#000000;fill:none;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<path
id="path3225"
display="block"
d="m 22.5,33.5 v 5"
style="color:#000000;fill:none;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<path
id="path3227"
display="block"
d="m 26.5,33.5 v 3 l 2,2 h 6"
style="color:#000000;fill:none;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<path
id="path3229"
display="block"
d="m 30.5,33.5 2,2 h 2"
style="color:#000000;fill:none;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<path
id="path3231"
d="m 10.5,15.5 h 4 l 2,2 v 18 l -1,1 h -5 v -21 z"
display="block"
style="color:#000000;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<rect
id="rect3233"
x="16.5"
y="22.5"
width="16"
height="13"
ry="2.0280001"
display="block"
style="color:#000000;fill:none;stroke:#000000;display:block" />
</g>
<path
d="m4 26v-13h28v13c-7 6-18-6-28 0z"
fill-opacity=".51807"
fill-rule="evenodd"
fill="#fff"
id="path106" />
</g>
<g
transform="matrix(.69611 .19209 -.17663 .64009 -8.9202 1.1447)"
id="g114">
<g
opacity=".18470"
transform="matrix(.001928 0 0 .001928 33.342 -9.8361)"
id="g116">
<path
fill-rule="evenodd"
d="m29524 27524a2285.7 2285.7 0 1 1 -4571.4 0 2285.7 2285.7 0 1 1 4571.4 0z"
transform="matrix(1.0366,0,0,1.0366,-8223.8,-8828.8)"
id="path118" />
<path
fill-rule="evenodd"
d="m19683 17385c-463.92-572.08-642.91-183.34-885.67-376.28-186.31-167 126.72-430.52-278.63-868.94l-1977.9 1967.3c337.99 333.5 523.59 91.68 730.6 375.12 155.23 225.6-17.11 519.24 482.71 842.41l1928.9-1939.6z"
id="path120" />
<rect
fill-rule="evenodd"
transform="rotate(-45)"
height="1619"
width="4666.7"
y="23097"
x="-2064"
id="rect122" />
<path
fill-rule="evenodd"
d="m19649 9700.3c0 5058-4100.3 9158.4-9158.4 9158.4-5058 0-9158.4-4100.3-9158.4-9158.4 0-5058 4100.3-9158.4 9158.4-9158.4 5058 0 9158.4 4100.3 9158.4 9158.4zm-907.21-0.01c0 4557-3694.2 8251.2-8251.2 8251.2s-8251.1-3694.2-8251.1-8251.2 3694.2-8251.2 8251.1-8251.2c4557 0 8251.2 3694.2 8251.2 8251.2z"
id="path124" />
<path
fill-rule="evenodd"
d="m29524 27524a2285.7 2285.7 0 1 1 -4571.4 0 2285.7 2285.7 0 1 1 4571.4 0z"
transform="matrix(.95833 0 0 .95833 944.44 99.204)"
id="path126" />
<rect
transform="rotate(-45)"
height="11583"
width="5522.2"
y="26814"
x="-2375"
id="rect128" />
</g>
<path
opacity="0.293"
d="m68.252 9.6924c0 6.7349-5.4597 12.195-12.195 12.195-6.7348 0-12.194-5.4597-12.194-12.195 0-6.7348 5.4597-12.195 12.194-12.195 6.7349 0 12.195 5.4597 12.195 12.195zm1.8483-2.402c0 8.9894-7.2873 16.277-16.277 16.277-8.9894 0-16.277-7.2874-16.277-16.277 0-8.9894 7.2874-16.277 16.277-16.277 8.9894 0 16.277 7.2874 16.277 16.277z"
fill-rule="evenodd"
fill="url(#ac)"
id="path130" />
<path
opacity=".68790"
d="m19395 9325.5a9226.1 9226.1 0 1 1 -18452 0 9226.1 9226.1 0 1 1 18452 0z"
fill-rule="evenodd"
transform="matrix(.0017972 0 0 .0017972 36.035 -9.712)"
fill="url(#ad)"
id="path132" />
<path
d="m29524 27524a2285.7 2285.7 0 1 1 -4571.4 0 2285.7 2285.7 0 1 1 4571.4 0z"
fill-rule="evenodd"
transform="matrix(.0019986 0 0 .0019986 17.768 -28.417)"
fill="#717386"
id="path134" />
<path
d="m29524 27524a2285.7 2285.7 0 1 1 -4571.4 0 2285.7 2285.7 0 1 1 4571.4 0z"
fill-rule="evenodd"
transform="matrix(.0018239 0 0 .0018239 22.527 -23.608)"
fill="url(#ae)"
id="path136" />
<path
d="m19395 9325.5a9226.1 9226.1 0 1 1 -18452 0 9226.1 9226.1 0 1 1 18452 0z"
fill-rule="evenodd"
transform="matrix(.0017972 0 0 .0017972 35.852 -9.712)"
fill="url(#af)"
id="path138" />
<path
fill-rule="evenodd"
fill="url(#ag)"
d="m71.572 22.125c-0.89446-1.103-1.2396-0.35349-1.7076-0.72548-0.35921-0.32198 0.24432-0.83006-0.53721-1.6754l-3.8136 3.793c0.65166 0.643 1.0095 0.17676 1.4086 0.72325 0.29929 0.43497-0.03299 1.0011 0.93068 1.6242l3.7191-3.7396z"
id="path140" />
<path
fill-rule="evenodd"
fill="url(#ah)"
d="m69.601 7.6645c0 8.3692-6.7354 15.154-15.044 15.154-8.3085 0-15.044-6.7846-15.044-15.154 0-8.3692 6.7354-15.154 15.044-15.154 8.3085 0 15.044 6.7845 15.044 15.154zm1.2321-0.61426c0 9.3909-7.6128 17.004-17.004 17.004-9.3909 0-17.004-7.6128-17.004-17.004 0-9.3909 7.6128-17.004 17.004-17.004 9.3909 0 17.004 7.6128 17.004 17.004z"
id="path142" />
<rect
opacity=".9554"
fill-rule="evenodd"
transform="rotate(-45)"
height="3.1216"
width="8.9976"
y="60.251"
x="27.853"
fill="url(#ai)"
id="rect144" />
<path
fill-rule="evenodd"
fill="url(#aj)"
d="m71.343 22.447c-0.89446-1.103-1.2396-0.35349-1.7076-0.72548-0.35921-0.32198 0.19842-1.1055-0.81263-2.0885l-3.5381 3.4717c0.78938 0.78072 1.5604 0.26858 1.9595 0.81506 0.29929 0.43497-0.03299 1.0011 0.93068 1.6242l3.1682-3.0969z"
id="path146" />
<rect
fill-rule="evenodd"
transform="rotate(-45)"
height="2.5865"
width="7.4552"
y="60"
x="28.624"
fill="url(#ao)"
id="rect148" />
<path
opacity=".21020"
d="m13469 7844a3569.2 3569.2 0 1 1 -7138.4 0 3569.2 3569.2 0 1 1 7138.4 0z"
fill-rule="evenodd"
transform="matrix(.0016277 0 0 .0016277 32.568 -13.102)"
fill="url(#ak)"
id="path150" />
<path
fill-rule="evenodd"
fill="url(#ap)"
d="m71.507 7.3083c0 9.7521-7.9056 17.658-17.658 17.658-9.7521 0-17.658-7.9056-17.658-17.658 0-9.7521 7.9056-17.658 17.658-17.658 9.7521 0 17.658 7.9056 17.658 17.658zm-1.7491-0.000017c0 8.7861-7.1225 15.909-15.909 15.909-8.786 0-15.909-7.1225-15.909-15.909 0-8.7861 7.1225-15.909 15.909-15.909 8.7861 0 15.909 7.1225 15.909 15.909z"
id="path152" />
<path
d="m29524 27524a2285.7 2285.7 0 1 1 -4571.4 0 2285.7 2285.7 0 1 1 4571.4 0z"
fill-rule="evenodd"
transform="matrix(.0018477 0 0 .0018477 35.444 -11.203)"
fill="#808080"
id="path154" />
<path
d="m29524 27524a2285.7 2285.7 0 1 1 -4571.4 0 2285.7 2285.7 0 1 1 4571.4 0z"
fill-rule="evenodd"
transform="matrix(.0016773 0 0 .0016773 39.925 -6.5347)"
fill="url(#al)"
id="path156" />
<rect
transform="rotate(-45)"
height="22.333"
width="10.647"
y="67.417"
x="27.253"
fill="url(#y)"
id="rect158" />
<rect
transform="rotate(-45)"
height="19.934"
width="8.513"
y="68.617"
x="28.321"
fill="url(#z)"
id="rect160" />
<path
fill-rule="evenodd"
fill="url(#aa)"
d="m70.103 7.1705c0 8.9219-7.2327 16.155-16.155 16.155-8.9219 0-16.155-7.2327-16.155-16.155 0-8.9219 7.2327-16.155 16.155-16.155 8.9219 0 16.155 7.2327 16.155 16.155zm-0.48222 0.000006c0 8.6556-7.0168 15.672-15.672 15.672-8.6556 0-15.672-7.0168-15.672-15.672 0-8.6556 7.0168-15.672 15.672-15.672 8.6556 0 15.672 7.0168 15.672 15.672z"
id="path162" />
<path
opacity=".54140"
d="m56.503 2.2283c0 3.6148-2.9304 6.5452-6.5451 6.5452-3.6148 0-6.5451-2.9304-6.5451-6.5452s2.9304-6.5451 6.5451-6.5451c3.6148 0 6.5451 2.9304 6.5451 6.5451zm1.1483-0.68894c0 4.6295-3.7529 8.3824-8.3824 8.3824s-8.3824-3.7529-8.3824-8.3824 3.7529-8.3824 8.3824-8.3824 8.3824 3.7529 8.3824 8.3824z"
fill-rule="evenodd"
fill="url(#am)"
id="path164" />
<path
fill-rule="evenodd"
fill="#9a9ba9"
d="m67.861 25.319 0.29067 0.23655 3.2223-3.1012-0.17592-0.28246-3.337 3.1471z"
id="path166" />
<path
fill-rule="evenodd"
fill="#8a92a0"
d="m65.338 23.174 0.2678 0.19753 3.4914-3.4229-0.20844-0.32179-3.5507 3.5472z"
id="path168" />
</g>
<path opacity="0.293" d="m68.252 9.6924c0 6.7349-5.4597 12.195-12.195 12.195-6.7348 0-12.194-5.4597-12.194-12.195 0-6.7348 5.4597-12.195 12.194-12.195 6.7349 0 12.195 5.4597 12.195 12.195zm1.8483-2.402c0 8.9894-7.2873 16.277-16.277 16.277-8.9894 0-16.277-7.2874-16.277-16.277 0-8.9894 7.2874-16.277 16.277-16.277 8.9894 0 16.277 7.2874 16.277 16.277z" fill-rule="evenodd" fill="url(#ac)"/>
<path opacity=".68790" d="m19395 9325.5a9226.1 9226.1 0 1 1 -18452 0 9226.1 9226.1 0 1 1 18452 0z" fill-rule="evenodd" transform="matrix(.0017972 0 0 .0017972 36.035 -9.712)" fill="url(#ad)"/>
<path d="m29524 27524a2285.7 2285.7 0 1 1 -4571.4 0 2285.7 2285.7 0 1 1 4571.4 0z" fill-rule="evenodd" transform="matrix(.0019986 0 0 .0019986 17.768 -28.417)" fill="#717386"/>
<path d="m29524 27524a2285.7 2285.7 0 1 1 -4571.4 0 2285.7 2285.7 0 1 1 4571.4 0z" fill-rule="evenodd" transform="matrix(.0018239 0 0 .0018239 22.527 -23.608)" fill="url(#ae)"/>
<path d="m19395 9325.5a9226.1 9226.1 0 1 1 -18452 0 9226.1 9226.1 0 1 1 18452 0z" fill-rule="evenodd" transform="matrix(.0017972 0 0 .0017972 35.852 -9.712)" fill="url(#af)"/>
<path fill-rule="evenodd" fill="url(#ag)" d="m71.572 22.125c-0.89446-1.103-1.2396-0.35349-1.7076-0.72548-0.35921-0.32198 0.24432-0.83006-0.53721-1.6754l-3.8136 3.793c0.65166 0.643 1.0095 0.17676 1.4086 0.72325 0.29929 0.43497-0.03299 1.0011 0.93068 1.6242l3.7191-3.7396z"/>
<path fill-rule="evenodd" fill="url(#ah)" d="m69.601 7.6645c0 8.3692-6.7354 15.154-15.044 15.154-8.3085 0-15.044-6.7846-15.044-15.154 0-8.3692 6.7354-15.154 15.044-15.154 8.3085 0 15.044 6.7845 15.044 15.154zm1.2321-0.61426c0 9.3909-7.6128 17.004-17.004 17.004-9.3909 0-17.004-7.6128-17.004-17.004 0-9.3909 7.6128-17.004 17.004-17.004 9.3909 0 17.004 7.6128 17.004 17.004z"/>
<rect opacity=".9554" fill-rule="evenodd" transform="rotate(-45)" height="3.1216" width="8.9976" y="60.251" x="27.853" fill="url(#ai)"/>
<path fill-rule="evenodd" fill="url(#aj)" d="m71.343 22.447c-0.89446-1.103-1.2396-0.35349-1.7076-0.72548-0.35921-0.32198 0.19842-1.1055-0.81263-2.0885l-3.5381 3.4717c0.78938 0.78072 1.5604 0.26858 1.9595 0.81506 0.29929 0.43497-0.03299 1.0011 0.93068 1.6242l3.1682-3.0969z"/>
<rect fill-rule="evenodd" transform="rotate(-45)" height="2.5865" width="7.4552" y="60" x="28.624" fill="url(#ao)"/>
<path opacity=".21020" d="m13469 7844a3569.2 3569.2 0 1 1 -7138.4 0 3569.2 3569.2 0 1 1 7138.4 0z" fill-rule="evenodd" transform="matrix(.0016277 0 0 .0016277 32.568 -13.102)" fill="url(#ak)"/>
<path fill-rule="evenodd" fill="url(#ap)" d="m71.507 7.3083c0 9.7521-7.9056 17.658-17.658 17.658-9.7521 0-17.658-7.9056-17.658-17.658 0-9.7521 7.9056-17.658 17.658-17.658 9.7521 0 17.658 7.9056 17.658 17.658zm-1.7491-0.000017c0 8.7861-7.1225 15.909-15.909 15.909-8.786 0-15.909-7.1225-15.909-15.909 0-8.7861 7.1225-15.909 15.909-15.909 8.7861 0 15.909 7.1225 15.909 15.909z"/>
<path d="m29524 27524a2285.7 2285.7 0 1 1 -4571.4 0 2285.7 2285.7 0 1 1 4571.4 0z" fill-rule="evenodd" transform="matrix(.0018477 0 0 .0018477 35.444 -11.203)" fill="#808080"/>
<path d="m29524 27524a2285.7 2285.7 0 1 1 -4571.4 0 2285.7 2285.7 0 1 1 4571.4 0z" fill-rule="evenodd" transform="matrix(.0016773 0 0 .0016773 39.925 -6.5347)" fill="url(#al)"/>
<rect transform="rotate(-45)" height="22.333" width="10.647" y="67.417" x="27.253" fill="url(#y)"/>
<rect transform="rotate(-45)" height="19.934" width="8.513" y="68.617" x="28.321" fill="url(#z)"/>
<path fill-rule="evenodd" fill="url(#aa)" d="m70.103 7.1705c0 8.9219-7.2327 16.155-16.155 16.155-8.9219 0-16.155-7.2327-16.155-16.155 0-8.9219 7.2327-16.155 16.155-16.155 8.9219 0 16.155 7.2327 16.155 16.155zm-0.48222 0.000006c0 8.6556-7.0168 15.672-15.672 15.672-8.6556 0-15.672-7.0168-15.672-15.672 0-8.6556 7.0168-15.672 15.672-15.672 8.6556 0 15.672 7.0168 15.672 15.672z"/>
<path opacity=".54140" d="m56.503 2.2283c0 3.6148-2.9304 6.5452-6.5451 6.5452-3.6148 0-6.5451-2.9304-6.5451-6.5452s2.9304-6.5451 6.5451-6.5451c3.6148 0 6.5451 2.9304 6.5451 6.5451zm1.1483-0.68894c0 4.6295-3.7529 8.3824-8.3824 8.3824s-8.3824-3.7529-8.3824-8.3824 3.7529-8.3824 8.3824-8.3824 8.3824 3.7529 8.3824 8.3824z" fill-rule="evenodd" fill="url(#am)"/>
<path fill-rule="evenodd" fill="#9a9ba9" d="m67.861 25.319 0.29067 0.23655 3.2223-3.1012-0.17592-0.28246-3.337 3.1471z"/>
<path fill-rule="evenodd" fill="#8a92a0" d="m65.338 23.174 0.2678 0.19753 3.4914-3.4229-0.20844-0.32179-3.5507 3.5472z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

@ -1,109 +1,761 @@
<svg xmlns="http://www.w3.org/2000/svg" height="48" width="48" version="1.1" xmlns:xlink="http://www.w3.org/1999/xlink">
<defs>
<linearGradient id="ab" y2="4.2193" gradientUnits="userSpaceOnUse" x2="7.5955" gradientTransform="matrix(.88924 0 0 .78227 .62292 7.6472)" y1="43.994" x1="40.752">
<stop stop-color="#333" offset="0"/>
<stop stop-color="#474747" offset="1"/>
</linearGradient>
<linearGradient id="a" y2="19500" gradientUnits="userSpaceOnUse" x2="15000" y1="14100" x1="10100">
<stop stop-color="#f5fffa" offset="0"/>
<stop stop-color="#6f6d7f" offset="1.2"/>
</linearGradient>
<linearGradient id="b" y2="19500" gradientUnits="userSpaceOnUse" x2="15000" y1="14100" x1="10100">
<stop stop-color="#fff" stop-opacity="0.698" offset="0"/>
<stop stop-color="#5db7ff" stop-opacity="0.698" offset="1.2"/>
</linearGradient>
<linearGradient id="x" y2="19500" gradientUnits="userSpaceOnUse" x2="15000" y1="14100" x1="10100">
<stop stop-color="#f5ffff" offset="0"/>
<stop stop-color="#fff" stop-opacity="0" offset="1.2"/>
</linearGradient>
<radialGradient id="ac" xlink:href="#b" gradientUnits="userSpaceOnUse" cy="17526" cx="18632" gradientTransform="matrix(.001928 0 0 .001928 33.623 -11.394)" r="40170"/>
<radialGradient id="ad" xlink:href="#b" gradientUnits="userSpaceOnUse" cy="17831" cx="18969" r="23166"/>
<radialGradient id="ae" xlink:href="#a" gradientUnits="userSpaceOnUse" cy="27370" cx="25538" gradientTransform="translate(-1.2031e-5,1.3252e-4)" r="3682.2"/>
<radialGradient id="af" xlink:href="#x" gradientUnits="userSpaceOnUse" cy="17398" cx="18401" gradientTransform="translate(-7.3214e-5,-4.3295e-5)" r="11888"/>
<radialGradient id="ag" xlink:href="#a" gradientUnits="userSpaceOnUse" cy="15674" cx="16467" gradientTransform="matrix(.0019151 0 0 .0019411 33.623 -11.394)" r="3055.2"/>
<radialGradient id="ah" xlink:href="#b" gradientUnits="userSpaceOnUse" cy="17753" cx="18300" gradientTransform="matrix(.001928 0 0 .001928 33.623 -11.394)" r="28430"/>
<radialGradient id="ai" xlink:href="#a" gradientUnits="userSpaceOnUse" cy="33086" cx="-2182.7" gradientTransform="matrix(.0032733 0 0 .0011356 31.832 15.718)" r="11540"/>
<radialGradient id="aj" xlink:href="#a" gradientUnits="userSpaceOnUse" cy="18596" cx="17070" gradientTransform="matrix(.0019519 0 0 .0019044 33.623 -11.394)" r="3734.6"/>
<linearGradient id="ao" y2="39368" xlink:href="#x" gradientUnits="userSpaceOnUse" x2="2312.5" gradientTransform="matrix(.0032733 0 0 .0011356 31.832 15.718)" y1="39560" x1="-1083.8"/>
<radialGradient id="ak" xlink:href="#b" gradientUnits="userSpaceOnUse" cy="11246" cx="13190" gradientTransform="translate(-9.4474e-5,4.0964e-5)" r="16248"/>
<linearGradient id="ap" y2="18951" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="12508" gradientTransform="matrix(.001928 0 0 .001928 33.623 -11.394)" y1="-85.143" x1="-1308.3"/>
<radialGradient id="al" xlink:href="#a" gradientUnits="userSpaceOnUse" cy="29167" cx="26631" gradientTransform="translate(-1.1897e-4,-1.2562e-4)" r="4284.2"/>
<linearGradient id="y" y2="20482" gradientUnits="userSpaceOnUse" x2="6753.4" gradientTransform="matrix(.0013312 0 0 .0027924 31.832 15.718)" y1="27356" x1="850.32">
<stop stop-color="#a66500" offset="0"/>
<stop stop-color="#da8f00" offset="1"/>
</linearGradient>
<linearGradient id="z" y2="21261" gradientUnits="userSpaceOnUse" x2="3741.1" gradientTransform="matrix(.00126 0 0 .0029504 31.832 15.718)" y1="21261" x1="-3478.9">
<stop stop-color="#eda700" offset="0"/>
<stop stop-color="#fff" offset=".38824"/>
<stop stop-color="#ffcb50" offset="0.7"/>
<stop stop-color="#ed8700" offset="1"/>
</linearGradient>
<linearGradient id="aa" y2="29618" xlink:href="#a" gradientUnits="userSpaceOnUse" x2="24590" gradientTransform="matrix(.001928 0 0 .001928 33.623 -11.394)" y1="405.03" x1="389.4"/>
<radialGradient id="am" gradientUnits="userSpaceOnUse" cy="10444" cx="11715" gradientTransform="matrix(.001928 0 0 .001928 33.623 -11.394)" r="15132">
<stop stop-color="#f5ffff" stop-opacity=".49020" offset="0"/>
<stop stop-color="#fff" stop-opacity="0" offset="1.2"/>
</radialGradient>
</defs>
<g id="w" stroke-linejoin="round" stroke-linecap="round" transform="translate(-40.995 -.010729)">
<rect style="color:#000000" fill-opacity=".63253" ry=".89887" height="32.011" width="31.012" stroke="url(#ab)" display="block" y="10.5" x="6.495" fill="#fff"/>
<rect opacity=".79121" style="color:#000000" display="block" rx=".13187" ry=".11482" height="30.004" width="28.998" stroke="#fff" y="11.496" x="7.5" fill="none"/>
<path style="color:#000000" d="m10.184 13.468 5.316 0.032 3 3v8" stroke="#000" display="block" fill="none"/>
<path style="color:#000000" d="m22.5 24.5v-8l-3-3" stroke="#000" display="block" fill="none"/>
<path style="color:#000000" d="m26.5 24.5v-8l-3-3" stroke="#000" display="block" fill="none"/>
<path style="color:#000000" d="m30.5 24.5v-11" stroke="#000" display="block" fill="none"/>
<path style="color:#000000" d="m18.5 24.5v2" stroke="#000" stroke-width="2" display="block" fill="none"/>
<path style="color:#000000" d="m22.5 24.5v2" stroke="#000" stroke-width="2" display="block" fill="none"/>
<path style="color:#000000" d="m26.5 24.5v2" stroke="#000" stroke-width="2" display="block" fill="none"/>
<path style="color:#000000" d="m30.5 24.5v2" stroke="#000" stroke-width="2" display="block" fill="none"/>
<path style="color:#000000" d="m30.5 31.5v2" stroke="#000" stroke-width="2" display="block" fill="none"/>
<path style="color:#000000" d="m26.5 31.5v2" stroke="#000" stroke-width="2" display="block" fill="none"/>
<path style="color:#000000" d="m22.5 31.5v2" stroke="#000" stroke-width="2" display="block" fill="none"/>
<path style="color:#000000" d="m18.5 31.5v2" stroke="#000" stroke-width="2" display="block" fill="none"/>
<path style="color:#000000" d="m18.5 33.5v3l-2 2h-6" stroke="#000" display="block" fill="none"/>
<path style="color:#000000" d="m22.5 33.5v5" stroke="#000" display="block" fill="none"/>
<path style="color:#000000" d="m26.5 33.5v3l2 2h6" stroke="#000" display="block" fill="none"/>
<path style="color:#000000" d="m30.5 33.5 2 2h2" stroke="#000" display="block" fill="none"/>
<path style="color:#000000" display="block" d="m10.5 15.5h4l2 2v18l-1 1h-5v-21z" stroke="#000"/>
<rect style="color:#000000" display="block" ry="2.028" height="13" width="16" stroke="#000" y="22.5" x="16.5" fill="none"/>
</g>
<g transform="matrix(1.0331,0,0,1.042,-1.5828,-1.9714)">
<use xlink:href="#w" transform="matrix(.88516 .46528 -.46528 .88516 55.782 10.953)" height="48" width="48" y="0" x="0"/>
<use xlink:href="#an" transform="matrix(.97367 .22797 -.22797 .97367 9.8015 -7.4372)" height="48" width="48" y="0" x="0"/>
<use id="an" xlink:href="#w" transform="translate(37,1)" height="48" width="48" y="0" x="0"/>
<path d="m4 26v-13h28v13c-7 6-18-6-28 0z" fill-opacity=".51807" fill-rule="evenodd" fill="#fff"/>
</g>
<g fill-rule="evenodd" transform="translate(-6,53)" stroke="#000">
<path style="color:#000000" d="m31 31a10 10 0 1 1 -20 0 10 10 0 1 1 20 0z" fill-opacity=".3012" transform="translate(-47,-29)" stroke-width="1.5" fill="#72a0cf"/>
<rect style="color:#000000" stroke-width="1.0006" transform="matrix(.3824 -.924 .90415 .42722 0 0)" ry="1.1087" width="3.1174" y="-13.376" x="-14.434" height="17.268" fill="#2e3436"/>
</g>
<g transform="matrix(.69611 .19209 -.17663 .64009 -8.9202 1.1447)">
<g opacity=".18470" transform="matrix(.001928 0 0 .001928 33.342 -9.8361)">
<path fill-rule="evenodd" d="m29524 27524a2285.7 2285.7 0 1 1 -4571.4 0 2285.7 2285.7 0 1 1 4571.4 0z" transform="matrix(1.0366,0,0,1.0366,-8223.8,-8828.8)"/>
<path fill-rule="evenodd" d="m19683 17385c-463.92-572.08-642.91-183.34-885.67-376.28-186.31-167 126.72-430.52-278.63-868.94l-1977.9 1967.3c337.99 333.5 523.59 91.68 730.6 375.12 155.23 225.6-17.11 519.24 482.71 842.41l1928.9-1939.6z"/>
<rect fill-rule="evenodd" transform="rotate(-45)" height="1619" width="4666.7" y="23097" x="-2064"/>
<path fill-rule="evenodd" d="m19649 9700.3c0 5058-4100.3 9158.4-9158.4 9158.4-5058 0-9158.4-4100.3-9158.4-9158.4 0-5058 4100.3-9158.4 9158.4-9158.4 5058 0 9158.4 4100.3 9158.4 9158.4zm-907.21-0.01c0 4557-3694.2 8251.2-8251.2 8251.2s-8251.1-3694.2-8251.1-8251.2 3694.2-8251.2 8251.1-8251.2c4557 0 8251.2 3694.2 8251.2 8251.2z"/>
<path fill-rule="evenodd" d="m29524 27524a2285.7 2285.7 0 1 1 -4571.4 0 2285.7 2285.7 0 1 1 4571.4 0z" transform="matrix(.95833 0 0 .95833 944.44 99.204)"/>
<rect transform="rotate(-45)" height="11583" width="5522.2" y="26814" x="-2375"/>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="48"
width="48"
version="1.1"
id="svg2"
inkscape:version="0.48.2 r9819"
sodipodi:docname="icon_gerbview_small.svg">
<metadata
id="metadata172">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1200"
inkscape:window-height="713"
id="namedview170"
showgrid="false"
inkscape:zoom="4.9166667"
inkscape:cx="24"
inkscape:cy="24"
inkscape:window-x="0"
inkscape:window-y="0"
inkscape:window-maximized="0"
inkscape:current-layer="svg2" />
<defs
id="defs4">
<linearGradient
id="ab"
y2="4.2193"
gradientUnits="userSpaceOnUse"
x2="7.5955"
gradientTransform="matrix(.88924 0 0 .78227 .62292 7.6472)"
y1="43.994"
x1="40.752">
<stop
stop-color="#333"
offset="0"
id="stop7" />
<stop
stop-color="#474747"
offset="1"
id="stop9" />
</linearGradient>
<linearGradient
id="a"
y2="19500"
gradientUnits="userSpaceOnUse"
x2="15000"
y1="14100"
x1="10100">
<stop
stop-color="#f5fffa"
offset="0"
id="stop12" />
<stop
stop-color="#6f6d7f"
offset="1.2"
id="stop14" />
</linearGradient>
<linearGradient
id="b"
y2="19500"
gradientUnits="userSpaceOnUse"
x2="15000"
y1="14100"
x1="10100">
<stop
stop-color="#fff"
stop-opacity="0.698"
offset="0"
id="stop17" />
<stop
stop-color="#5db7ff"
stop-opacity="0.698"
offset="1.2"
id="stop19" />
</linearGradient>
<linearGradient
id="x"
y2="19500"
gradientUnits="userSpaceOnUse"
x2="15000"
y1="14100"
x1="10100">
<stop
stop-color="#f5ffff"
offset="0"
id="stop22" />
<stop
stop-color="#fff"
stop-opacity="0"
offset="1.2"
id="stop24" />
</linearGradient>
<radialGradient
id="ac"
xlink:href="#b"
gradientUnits="userSpaceOnUse"
cy="17526"
cx="18632"
gradientTransform="matrix(.001928 0 0 .001928 33.623 -11.394)"
r="40170" />
<radialGradient
id="ad"
xlink:href="#b"
gradientUnits="userSpaceOnUse"
cy="17831"
cx="18969"
r="23166" />
<radialGradient
id="ae"
xlink:href="#a"
gradientUnits="userSpaceOnUse"
cy="27370"
cx="25538"
gradientTransform="translate(-1.2031e-5,1.3252e-4)"
r="3682.2" />
<radialGradient
id="af"
xlink:href="#x"
gradientUnits="userSpaceOnUse"
cy="17398"
cx="18401"
gradientTransform="translate(-7.3214e-5,-4.3295e-5)"
r="11888" />
<radialGradient
id="ag"
xlink:href="#a"
gradientUnits="userSpaceOnUse"
cy="15674"
cx="16467"
gradientTransform="matrix(.0019151 0 0 .0019411 33.623 -11.394)"
r="3055.2" />
<radialGradient
id="ah"
xlink:href="#b"
gradientUnits="userSpaceOnUse"
cy="17753"
cx="18300"
gradientTransform="matrix(.001928 0 0 .001928 33.623 -11.394)"
r="28430" />
<radialGradient
id="ai"
xlink:href="#a"
gradientUnits="userSpaceOnUse"
cy="33086"
cx="-2182.7"
gradientTransform="matrix(.0032733 0 0 .0011356 31.832 15.718)"
r="11540" />
<radialGradient
id="aj"
xlink:href="#a"
gradientUnits="userSpaceOnUse"
cy="18596"
cx="17070"
gradientTransform="matrix(.0019519 0 0 .0019044 33.623 -11.394)"
r="3734.6" />
<linearGradient
id="ao"
y2="39368"
xlink:href="#x"
gradientUnits="userSpaceOnUse"
x2="2312.5"
gradientTransform="matrix(.0032733 0 0 .0011356 31.832 15.718)"
y1="39560"
x1="-1083.8" />
<radialGradient
id="ak"
xlink:href="#b"
gradientUnits="userSpaceOnUse"
cy="11246"
cx="13190"
gradientTransform="translate(-9.4474e-5,4.0964e-5)"
r="16248" />
<linearGradient
id="ap"
y2="18951"
xlink:href="#a"
gradientUnits="userSpaceOnUse"
x2="12508"
gradientTransform="matrix(.001928 0 0 .001928 33.623 -11.394)"
y1="-85.143"
x1="-1308.3" />
<radialGradient
id="al"
xlink:href="#a"
gradientUnits="userSpaceOnUse"
cy="29167"
cx="26631"
gradientTransform="translate(-1.1897e-4,-1.2562e-4)"
r="4284.2" />
<linearGradient
id="y"
y2="20482"
gradientUnits="userSpaceOnUse"
x2="6753.4"
gradientTransform="matrix(.0013312 0 0 .0027924 31.832 15.718)"
y1="27356"
x1="850.32">
<stop
stop-color="#a66500"
offset="0"
id="stop39" />
<stop
stop-color="#da8f00"
offset="1"
id="stop41" />
</linearGradient>
<linearGradient
id="z"
y2="21261"
gradientUnits="userSpaceOnUse"
x2="3741.1"
gradientTransform="matrix(.00126 0 0 .0029504 31.832 15.718)"
y1="21261"
x1="-3478.9">
<stop
stop-color="#eda700"
offset="0"
id="stop44" />
<stop
stop-color="#fff"
offset=".38824"
id="stop46" />
<stop
stop-color="#ffcb50"
offset="0.7"
id="stop48" />
<stop
stop-color="#ed8700"
offset="1"
id="stop50" />
</linearGradient>
<linearGradient
id="aa"
y2="29618"
xlink:href="#a"
gradientUnits="userSpaceOnUse"
x2="24590"
gradientTransform="matrix(.001928 0 0 .001928 33.623 -11.394)"
y1="405.03"
x1="389.4" />
<radialGradient
id="am"
gradientUnits="userSpaceOnUse"
cy="10444"
cx="11715"
gradientTransform="matrix(.001928 0 0 .001928 33.623 -11.394)"
r="15132">
<stop
stop-color="#f5ffff"
stop-opacity=".49020"
offset="0"
id="stop54" />
<stop
stop-color="#fff"
stop-opacity="0"
offset="1.2"
id="stop56" />
</radialGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#ab"
id="linearGradient3191"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.88924,0,0,0.78227,0.62292,7.6472)"
x1="40.752"
y1="43.994"
x2="7.5955"
y2="4.2193" />
<linearGradient
inkscape:collect="always"
xlink:href="#ab"
id="linearGradient3235"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.88924,0,0,0.78227,0.62292,7.6472)"
x1="40.752"
y1="43.994"
x2="7.5955"
y2="4.2193" />
</defs>
<g
transform="matrix(1.0331,0,0,1.042,-1.5828,-1.9714)"
id="g99">
<g
transform="matrix(0.88516,0.46528,-0.46528,0.88516,19.499858,-8.1306505)"
id="use101"
style="stroke-linecap:round;stroke-linejoin:round">
<rect
id="rect3151"
x="6.4949999"
y="10.5"
display="block"
width="31.011999"
height="32.011002"
ry="0.89886999"
style="color:#000000;fill:#ffffff;fill-opacity:0.63253;stroke:url(#linearGradient3191);display:block" />
<rect
id="rect3153"
x="7.5"
y="11.496"
width="28.997999"
height="30.004"
ry="0.11482"
rx="0.13187"
display="block"
style="opacity:0.79120998;color:#000000;fill:none;stroke:#ffffff;display:block" />
<path
id="path3155"
display="block"
d="m 10.184,13.468 5.316,0.032 3,3 v 8"
style="color:#000000;fill:none;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<path
id="path3157"
display="block"
d="m 22.5,24.5 v -8 l -3,-3"
style="color:#000000;fill:none;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<path
id="path3159"
display="block"
d="m 26.5,24.5 v -8 l -3,-3"
style="color:#000000;fill:none;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<path
id="path3161"
display="block"
d="m 30.5,24.5 v -11"
style="color:#000000;fill:none;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<path
id="path3163"
display="block"
d="m 18.5,24.5 v 2"
style="color:#000000;fill:none;stroke:#000000;stroke-width:2;display:block"
inkscape:connector-curvature="0" />
<path
id="path3165"
display="block"
d="m 22.5,24.5 v 2"
style="color:#000000;fill:none;stroke:#000000;stroke-width:2;display:block"
inkscape:connector-curvature="0" />
<path
id="path3167"
display="block"
d="m 26.5,24.5 v 2"
style="color:#000000;fill:none;stroke:#000000;stroke-width:2;display:block"
inkscape:connector-curvature="0" />
<path
id="path3169"
display="block"
d="m 30.5,24.5 v 2"
style="color:#000000;fill:none;stroke:#000000;stroke-width:2;display:block"
inkscape:connector-curvature="0" />
<path
id="path3171"
display="block"
d="m 30.5,31.5 v 2"
style="color:#000000;fill:none;stroke:#000000;stroke-width:2;display:block"
inkscape:connector-curvature="0" />
<path
id="path3173"
display="block"
d="m 26.5,31.5 v 2"
style="color:#000000;fill:none;stroke:#000000;stroke-width:2;display:block"
inkscape:connector-curvature="0" />
<path
id="path3175"
display="block"
d="m 22.5,31.5 v 2"
style="color:#000000;fill:none;stroke:#000000;stroke-width:2;display:block"
inkscape:connector-curvature="0" />
<path
id="path3177"
display="block"
d="m 18.5,31.5 v 2"
style="color:#000000;fill:none;stroke:#000000;stroke-width:2;display:block"
inkscape:connector-curvature="0" />
<path
id="path3179"
display="block"
d="m 18.5,33.5 v 3 l -2,2 h -6"
style="color:#000000;fill:none;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<path
id="path3181"
display="block"
d="m 22.5,33.5 v 5"
style="color:#000000;fill:none;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<path
id="path3183"
display="block"
d="m 26.5,33.5 v 3 l 2,2 h 6"
style="color:#000000;fill:none;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<path
id="path3185"
display="block"
d="m 30.5,33.5 2,2 h 2"
style="color:#000000;fill:none;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<path
id="path3187"
d="m 10.5,15.5 h 4 l 2,2 v 18 l -1,1 h -5 v -21 z"
display="block"
style="color:#000000;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<rect
id="rect3189"
x="16.5"
y="22.5"
width="16"
height="13"
ry="2.0280001"
display="block"
style="color:#000000;fill:none;stroke:#000000;display:block" />
</g>
<use
xlink:href="#an"
transform="matrix(.97367 .22797 -.22797 .97367 9.8015 -7.4372)"
height="48"
width="48"
y="0"
x="0"
id="use103" />
<g
transform="translate(-3.995,0.989271)"
id="an"
style="stroke-linecap:round;stroke-linejoin:round">
<rect
id="rect3195"
x="6.4949999"
y="10.5"
display="block"
width="31.011999"
height="32.011002"
ry="0.89886999"
style="color:#000000;fill:#ffffff;fill-opacity:0.63253;stroke:url(#linearGradient3235);display:block" />
<rect
id="rect3197"
x="7.5"
y="11.496"
width="28.997999"
height="30.004"
ry="0.11482"
rx="0.13187"
display="block"
style="opacity:0.79120998;color:#000000;fill:none;stroke:#ffffff;display:block" />
<path
id="path3199"
display="block"
d="m 10.184,13.468 5.316,0.032 3,3 v 8"
style="color:#000000;fill:none;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<path
id="path3201"
display="block"
d="m 22.5,24.5 v -8 l -3,-3"
style="color:#000000;fill:none;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<path
id="path3203"
display="block"
d="m 26.5,24.5 v -8 l -3,-3"
style="color:#000000;fill:none;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<path
id="path3205"
display="block"
d="m 30.5,24.5 v -11"
style="color:#000000;fill:none;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<path
id="path3207"
display="block"
d="m 18.5,24.5 v 2"
style="color:#000000;fill:none;stroke:#000000;stroke-width:2;display:block"
inkscape:connector-curvature="0" />
<path
id="path3209"
display="block"
d="m 22.5,24.5 v 2"
style="color:#000000;fill:none;stroke:#000000;stroke-width:2;display:block"
inkscape:connector-curvature="0" />
<path
id="path3211"
display="block"
d="m 26.5,24.5 v 2"
style="color:#000000;fill:none;stroke:#000000;stroke-width:2;display:block"
inkscape:connector-curvature="0" />
<path
id="path3213"
display="block"
d="m 30.5,24.5 v 2"
style="color:#000000;fill:none;stroke:#000000;stroke-width:2;display:block"
inkscape:connector-curvature="0" />
<path
id="path3215"
display="block"
d="m 30.5,31.5 v 2"
style="color:#000000;fill:none;stroke:#000000;stroke-width:2;display:block"
inkscape:connector-curvature="0" />
<path
id="path3217"
display="block"
d="m 26.5,31.5 v 2"
style="color:#000000;fill:none;stroke:#000000;stroke-width:2;display:block"
inkscape:connector-curvature="0" />
<path
id="path3219"
display="block"
d="m 22.5,31.5 v 2"
style="color:#000000;fill:none;stroke:#000000;stroke-width:2;display:block"
inkscape:connector-curvature="0" />
<path
id="path3221"
display="block"
d="m 18.5,31.5 v 2"
style="color:#000000;fill:none;stroke:#000000;stroke-width:2;display:block"
inkscape:connector-curvature="0" />
<path
id="path3223"
display="block"
d="m 18.5,33.5 v 3 l -2,2 h -6"
style="color:#000000;fill:none;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<path
id="path3225"
display="block"
d="m 22.5,33.5 v 5"
style="color:#000000;fill:none;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<path
id="path3227"
display="block"
d="m 26.5,33.5 v 3 l 2,2 h 6"
style="color:#000000;fill:none;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<path
id="path3229"
display="block"
d="m 30.5,33.5 2,2 h 2"
style="color:#000000;fill:none;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<path
id="path3231"
d="m 10.5,15.5 h 4 l 2,2 v 18 l -1,1 h -5 v -21 z"
display="block"
style="color:#000000;stroke:#000000;display:block"
inkscape:connector-curvature="0" />
<rect
id="rect3233"
x="16.5"
y="22.5"
width="16"
height="13"
ry="2.0280001"
display="block"
style="color:#000000;fill:none;stroke:#000000;display:block" />
</g>
<path
d="m4 26v-13h28v13c-7 6-18-6-28 0z"
fill-opacity=".51807"
fill-rule="evenodd"
fill="#fff"
id="path106" />
</g>
<g
transform="matrix(.69611 .19209 -.17663 .64009 -8.9202 1.1447)"
id="g114">
<g
opacity=".18470"
transform="matrix(.001928 0 0 .001928 33.342 -9.8361)"
id="g116">
<path
fill-rule="evenodd"
d="m29524 27524a2285.7 2285.7 0 1 1 -4571.4 0 2285.7 2285.7 0 1 1 4571.4 0z"
transform="matrix(1.0366,0,0,1.0366,-8223.8,-8828.8)"
id="path118" />
<path
fill-rule="evenodd"
d="m19683 17385c-463.92-572.08-642.91-183.34-885.67-376.28-186.31-167 126.72-430.52-278.63-868.94l-1977.9 1967.3c337.99 333.5 523.59 91.68 730.6 375.12 155.23 225.6-17.11 519.24 482.71 842.41l1928.9-1939.6z"
id="path120" />
<rect
fill-rule="evenodd"
transform="rotate(-45)"
height="1619"
width="4666.7"
y="23097"
x="-2064"
id="rect122" />
<path
fill-rule="evenodd"
d="m19649 9700.3c0 5058-4100.3 9158.4-9158.4 9158.4-5058 0-9158.4-4100.3-9158.4-9158.4 0-5058 4100.3-9158.4 9158.4-9158.4 5058 0 9158.4 4100.3 9158.4 9158.4zm-907.21-0.01c0 4557-3694.2 8251.2-8251.2 8251.2s-8251.1-3694.2-8251.1-8251.2 3694.2-8251.2 8251.1-8251.2c4557 0 8251.2 3694.2 8251.2 8251.2z"
id="path124" />
<path
fill-rule="evenodd"
d="m29524 27524a2285.7 2285.7 0 1 1 -4571.4 0 2285.7 2285.7 0 1 1 4571.4 0z"
transform="matrix(.95833 0 0 .95833 944.44 99.204)"
id="path126" />
<rect
transform="rotate(-45)"
height="11583"
width="5522.2"
y="26814"
x="-2375"
id="rect128" />
</g>
<path
opacity="0.293"
d="m68.252 9.6924c0 6.7349-5.4597 12.195-12.195 12.195-6.7348 0-12.194-5.4597-12.194-12.195 0-6.7348 5.4597-12.195 12.194-12.195 6.7349 0 12.195 5.4597 12.195 12.195zm1.8483-2.402c0 8.9894-7.2873 16.277-16.277 16.277-8.9894 0-16.277-7.2874-16.277-16.277 0-8.9894 7.2874-16.277 16.277-16.277 8.9894 0 16.277 7.2874 16.277 16.277z"
fill-rule="evenodd"
fill="url(#ac)"
id="path130" />
<path
opacity=".68790"
d="m19395 9325.5a9226.1 9226.1 0 1 1 -18452 0 9226.1 9226.1 0 1 1 18452 0z"
fill-rule="evenodd"
transform="matrix(.0017972 0 0 .0017972 36.035 -9.712)"
fill="url(#ad)"
id="path132" />
<path
d="m29524 27524a2285.7 2285.7 0 1 1 -4571.4 0 2285.7 2285.7 0 1 1 4571.4 0z"
fill-rule="evenodd"
transform="matrix(.0019986 0 0 .0019986 17.768 -28.417)"
fill="#717386"
id="path134" />
<path
d="m29524 27524a2285.7 2285.7 0 1 1 -4571.4 0 2285.7 2285.7 0 1 1 4571.4 0z"
fill-rule="evenodd"
transform="matrix(.0018239 0 0 .0018239 22.527 -23.608)"
fill="url(#ae)"
id="path136" />
<path
d="m19395 9325.5a9226.1 9226.1 0 1 1 -18452 0 9226.1 9226.1 0 1 1 18452 0z"
fill-rule="evenodd"
transform="matrix(.0017972 0 0 .0017972 35.852 -9.712)"
fill="url(#af)"
id="path138" />
<path
fill-rule="evenodd"
fill="url(#ag)"
d="m71.572 22.125c-0.89446-1.103-1.2396-0.35349-1.7076-0.72548-0.35921-0.32198 0.24432-0.83006-0.53721-1.6754l-3.8136 3.793c0.65166 0.643 1.0095 0.17676 1.4086 0.72325 0.29929 0.43497-0.03299 1.0011 0.93068 1.6242l3.7191-3.7396z"
id="path140" />
<path
fill-rule="evenodd"
fill="url(#ah)"
d="m69.601 7.6645c0 8.3692-6.7354 15.154-15.044 15.154-8.3085 0-15.044-6.7846-15.044-15.154 0-8.3692 6.7354-15.154 15.044-15.154 8.3085 0 15.044 6.7845 15.044 15.154zm1.2321-0.61426c0 9.3909-7.6128 17.004-17.004 17.004-9.3909 0-17.004-7.6128-17.004-17.004 0-9.3909 7.6128-17.004 17.004-17.004 9.3909 0 17.004 7.6128 17.004 17.004z"
id="path142" />
<rect
opacity=".9554"
fill-rule="evenodd"
transform="rotate(-45)"
height="3.1216"
width="8.9976"
y="60.251"
x="27.853"
fill="url(#ai)"
id="rect144" />
<path
fill-rule="evenodd"
fill="url(#aj)"
d="m71.343 22.447c-0.89446-1.103-1.2396-0.35349-1.7076-0.72548-0.35921-0.32198 0.19842-1.1055-0.81263-2.0885l-3.5381 3.4717c0.78938 0.78072 1.5604 0.26858 1.9595 0.81506 0.29929 0.43497-0.03299 1.0011 0.93068 1.6242l3.1682-3.0969z"
id="path146" />
<rect
fill-rule="evenodd"
transform="rotate(-45)"
height="2.5865"
width="7.4552"
y="60"
x="28.624"
fill="url(#ao)"
id="rect148" />
<path
opacity=".21020"
d="m13469 7844a3569.2 3569.2 0 1 1 -7138.4 0 3569.2 3569.2 0 1 1 7138.4 0z"
fill-rule="evenodd"
transform="matrix(.0016277 0 0 .0016277 32.568 -13.102)"
fill="url(#ak)"
id="path150" />
<path
fill-rule="evenodd"
fill="url(#ap)"
d="m71.507 7.3083c0 9.7521-7.9056 17.658-17.658 17.658-9.7521 0-17.658-7.9056-17.658-17.658 0-9.7521 7.9056-17.658 17.658-17.658 9.7521 0 17.658 7.9056 17.658 17.658zm-1.7491-0.000017c0 8.7861-7.1225 15.909-15.909 15.909-8.786 0-15.909-7.1225-15.909-15.909 0-8.7861 7.1225-15.909 15.909-15.909 8.7861 0 15.909 7.1225 15.909 15.909z"
id="path152" />
<path
d="m29524 27524a2285.7 2285.7 0 1 1 -4571.4 0 2285.7 2285.7 0 1 1 4571.4 0z"
fill-rule="evenodd"
transform="matrix(.0018477 0 0 .0018477 35.444 -11.203)"
fill="#808080"
id="path154" />
<path
d="m29524 27524a2285.7 2285.7 0 1 1 -4571.4 0 2285.7 2285.7 0 1 1 4571.4 0z"
fill-rule="evenodd"
transform="matrix(.0016773 0 0 .0016773 39.925 -6.5347)"
fill="url(#al)"
id="path156" />
<rect
transform="rotate(-45)"
height="22.333"
width="10.647"
y="67.417"
x="27.253"
fill="url(#y)"
id="rect158" />
<rect
transform="rotate(-45)"
height="19.934"
width="8.513"
y="68.617"
x="28.321"
fill="url(#z)"
id="rect160" />
<path
fill-rule="evenodd"
fill="url(#aa)"
d="m70.103 7.1705c0 8.9219-7.2327 16.155-16.155 16.155-8.9219 0-16.155-7.2327-16.155-16.155 0-8.9219 7.2327-16.155 16.155-16.155 8.9219 0 16.155 7.2327 16.155 16.155zm-0.48222 0.000006c0 8.6556-7.0168 15.672-15.672 15.672-8.6556 0-15.672-7.0168-15.672-15.672 0-8.6556 7.0168-15.672 15.672-15.672 8.6556 0 15.672 7.0168 15.672 15.672z"
id="path162" />
<path
opacity=".54140"
d="m56.503 2.2283c0 3.6148-2.9304 6.5452-6.5451 6.5452-3.6148 0-6.5451-2.9304-6.5451-6.5452s2.9304-6.5451 6.5451-6.5451c3.6148 0 6.5451 2.9304 6.5451 6.5451zm1.1483-0.68894c0 4.6295-3.7529 8.3824-8.3824 8.3824s-8.3824-3.7529-8.3824-8.3824 3.7529-8.3824 8.3824-8.3824 8.3824 3.7529 8.3824 8.3824z"
fill-rule="evenodd"
fill="url(#am)"
id="path164" />
<path
fill-rule="evenodd"
fill="#9a9ba9"
d="m67.861 25.319 0.29067 0.23655 3.2223-3.1012-0.17592-0.28246-3.337 3.1471z"
id="path166" />
<path
fill-rule="evenodd"
fill="#8a92a0"
d="m65.338 23.174 0.2678 0.19753 3.4914-3.4229-0.20844-0.32179-3.5507 3.5472z"
id="path168" />
</g>
<path opacity="0.293" d="m68.252 9.6924c0 6.7349-5.4597 12.195-12.195 12.195-6.7348 0-12.194-5.4597-12.194-12.195 0-6.7348 5.4597-12.195 12.194-12.195 6.7349 0 12.195 5.4597 12.195 12.195zm1.8483-2.402c0 8.9894-7.2873 16.277-16.277 16.277-8.9894 0-16.277-7.2874-16.277-16.277 0-8.9894 7.2874-16.277 16.277-16.277 8.9894 0 16.277 7.2874 16.277 16.277z" fill-rule="evenodd" fill="url(#ac)"/>
<path opacity=".68790" d="m19395 9325.5a9226.1 9226.1 0 1 1 -18452 0 9226.1 9226.1 0 1 1 18452 0z" fill-rule="evenodd" transform="matrix(.0017972 0 0 .0017972 36.035 -9.712)" fill="url(#ad)"/>
<path d="m29524 27524a2285.7 2285.7 0 1 1 -4571.4 0 2285.7 2285.7 0 1 1 4571.4 0z" fill-rule="evenodd" transform="matrix(.0019986 0 0 .0019986 17.768 -28.417)" fill="#717386"/>
<path d="m29524 27524a2285.7 2285.7 0 1 1 -4571.4 0 2285.7 2285.7 0 1 1 4571.4 0z" fill-rule="evenodd" transform="matrix(.0018239 0 0 .0018239 22.527 -23.608)" fill="url(#ae)"/>
<path d="m19395 9325.5a9226.1 9226.1 0 1 1 -18452 0 9226.1 9226.1 0 1 1 18452 0z" fill-rule="evenodd" transform="matrix(.0017972 0 0 .0017972 35.852 -9.712)" fill="url(#af)"/>
<path fill-rule="evenodd" fill="url(#ag)" d="m71.572 22.125c-0.89446-1.103-1.2396-0.35349-1.7076-0.72548-0.35921-0.32198 0.24432-0.83006-0.53721-1.6754l-3.8136 3.793c0.65166 0.643 1.0095 0.17676 1.4086 0.72325 0.29929 0.43497-0.03299 1.0011 0.93068 1.6242l3.7191-3.7396z"/>
<path fill-rule="evenodd" fill="url(#ah)" d="m69.601 7.6645c0 8.3692-6.7354 15.154-15.044 15.154-8.3085 0-15.044-6.7846-15.044-15.154 0-8.3692 6.7354-15.154 15.044-15.154 8.3085 0 15.044 6.7845 15.044 15.154zm1.2321-0.61426c0 9.3909-7.6128 17.004-17.004 17.004-9.3909 0-17.004-7.6128-17.004-17.004 0-9.3909 7.6128-17.004 17.004-17.004 9.3909 0 17.004 7.6128 17.004 17.004z"/>
<rect opacity=".9554" fill-rule="evenodd" transform="rotate(-45)" height="3.1216" width="8.9976" y="60.251" x="27.853" fill="url(#ai)"/>
<path fill-rule="evenodd" fill="url(#aj)" d="m71.343 22.447c-0.89446-1.103-1.2396-0.35349-1.7076-0.72548-0.35921-0.32198 0.19842-1.1055-0.81263-2.0885l-3.5381 3.4717c0.78938 0.78072 1.5604 0.26858 1.9595 0.81506 0.29929 0.43497-0.03299 1.0011 0.93068 1.6242l3.1682-3.0969z"/>
<rect fill-rule="evenodd" transform="rotate(-45)" height="2.5865" width="7.4552" y="60" x="28.624" fill="url(#ao)"/>
<path opacity=".21020" d="m13469 7844a3569.2 3569.2 0 1 1 -7138.4 0 3569.2 3569.2 0 1 1 7138.4 0z" fill-rule="evenodd" transform="matrix(.0016277 0 0 .0016277 32.568 -13.102)" fill="url(#ak)"/>
<path fill-rule="evenodd" fill="url(#ap)" d="m71.507 7.3083c0 9.7521-7.9056 17.658-17.658 17.658-9.7521 0-17.658-7.9056-17.658-17.658 0-9.7521 7.9056-17.658 17.658-17.658 9.7521 0 17.658 7.9056 17.658 17.658zm-1.7491-0.000017c0 8.7861-7.1225 15.909-15.909 15.909-8.786 0-15.909-7.1225-15.909-15.909 0-8.7861 7.1225-15.909 15.909-15.909 8.7861 0 15.909 7.1225 15.909 15.909z"/>
<path d="m29524 27524a2285.7 2285.7 0 1 1 -4571.4 0 2285.7 2285.7 0 1 1 4571.4 0z" fill-rule="evenodd" transform="matrix(.0018477 0 0 .0018477 35.444 -11.203)" fill="#808080"/>
<path d="m29524 27524a2285.7 2285.7 0 1 1 -4571.4 0 2285.7 2285.7 0 1 1 4571.4 0z" fill-rule="evenodd" transform="matrix(.0016773 0 0 .0016773 39.925 -6.5347)" fill="url(#al)"/>
<rect transform="rotate(-45)" height="22.333" width="10.647" y="67.417" x="27.253" fill="url(#y)"/>
<rect transform="rotate(-45)" height="19.934" width="8.513" y="68.617" x="28.321" fill="url(#z)"/>
<path fill-rule="evenodd" fill="url(#aa)" d="m70.103 7.1705c0 8.9219-7.2327 16.155-16.155 16.155-8.9219 0-16.155-7.2327-16.155-16.155 0-8.9219 7.2327-16.155 16.155-16.155 8.9219 0 16.155 7.2327 16.155 16.155zm-0.48222 0.000006c0 8.6556-7.0168 15.672-15.672 15.672-8.6556 0-15.672-7.0168-15.672-15.672 0-8.6556 7.0168-15.672 15.672-15.672 8.6556 0 15.672 7.0168 15.672 15.672z"/>
<path opacity=".54140" d="m56.503 2.2283c0 3.6148-2.9304 6.5452-6.5451 6.5452-3.6148 0-6.5451-2.9304-6.5451-6.5452s2.9304-6.5451 6.5451-6.5451c3.6148 0 6.5451 2.9304 6.5451 6.5451zm1.1483-0.68894c0 4.6295-3.7529 8.3824-8.3824 8.3824s-8.3824-3.7529-8.3824-8.3824 3.7529-8.3824 8.3824-8.3824 8.3824 3.7529 8.3824 8.3824z" fill-rule="evenodd" fill="url(#am)"/>
<path fill-rule="evenodd" fill="#9a9ba9" d="m67.861 25.319 0.29067 0.23655 3.2223-3.1012-0.17592-0.28246-3.337 3.1471z"/>
<path fill-rule="evenodd" fill="#8a92a0" d="m65.338 23.174 0.2678 0.19753 3.4914-3.4229-0.20844-0.32179-3.5507 3.5472z"/>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 24 KiB

View File

@ -8,11 +8,11 @@
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="26"
width="26"
height="48"
width="48"
version="1.1"
id="svg2"
inkscape:version="0.48.1 r9760"
inkscape:version="0.48.2 r9819"
sodipodi:docname="icon_kicad.svg"
inkscape:export-filename="F:\kicad-launchpad\testing\bitmaps_png\sources\icon_kicad.png"
inkscape:export-xdpi="60"
@ -25,7 +25,7 @@
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
@ -38,15 +38,15 @@
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1600"
inkscape:window-height="876"
inkscape:window-width="1280"
inkscape:window-height="977"
id="namedview579"
showgrid="true"
inkscape:zoom="22.774716"
inkscape:cx="23.593222"
inkscape:cy="12.172521"
inkscape:window-x="0"
inkscape:window-y="24"
inkscape:zoom="15.729167"
inkscape:cx="13.637086"
inkscape:cy="24"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1"
inkscape:current-layer="svg2"
inkscape:snap-grids="false"
@ -155,36 +155,85 @@
id="linearGradient8673"
xlink:href="#linearGradient15606-1"
inkscape:collect="always" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient10125-12"
id="linearGradient3045"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1,0,0,1.00011,0,-0.10551)"
x1="110.96875"
y1="976.29968"
x2="110.99982"
y2="991.87488" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient10125-12"
id="linearGradient3047"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.00399,0,0,1.00959,-1.1658,-9.36636)"
x1="110.96875"
y1="976.29968"
x2="110.96875"
y2="992.375" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient10292-9-2-6-6"
id="linearGradient3049"
gradientUnits="userSpaceOnUse"
x1="110.96875"
y1="976.29968"
x2="110.96875"
y2="992.375" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient10286-3"
id="linearGradient3051"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(2.99213,0,0,3.00466,-933.712,-1623.08)"
x1="294.3429"
y1="256.58133"
x2="294.41818"
y2="243.13852" />
<linearGradient
inkscape:collect="always"
xlink:href="#linearGradient15606-1"
id="linearGradient3053"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(1.5,0,0,1.5,-368,281.32)"
x1="209.0625"
y1="-765.46082"
x2="209.0625"
y2="-781.62268" />
</defs>
<g
style="display:inline"
id="g10552"
transform="matrix(0.59915384,0,0,0.51444411,36.445696,461.74209)">
transform="matrix(1.1951831,0,0,0.99788751,70.658084,893.71693)">
<g
transform="matrix(2.9999,0,0,2.99884,-391.989,-3823.61)"
id="g10554"
style="fill:url(#linearGradient10600-2);fill-opacity:1;display:inline">
style="fill:url(#linearGradient3049);fill-opacity:1;display:inline">
<path
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccccccc"
id="path10556"
d="m 111.8125,976.3733 c -0.4584,0.0875 -0.82072,0.53346 -0.8125,1.00011 l 0,14.00148 c 5e-5,0.52364 0.47642,1.00006 1,1.00011 l 11.33333,0 c 0.52358,-5e-5 0.99995,-0.47647 1,-1.00011 l 0,-8.73078 c 0.006,-0.26409 -0.0975,-0.52903 -0.28125,-0.71883 l -5.27042,-5.2707 c -0.18978,-0.18372 -0.45469,-0.2874 -0.71875,-0.28128 l -6.06291,0 c -0.0623,-0.006 -0.12518,-0.006 -0.1875,0 z"
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0pt;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;text-anchor:start;color:#000000;fill:url(#linearGradient10596-0);fill-opacity:1;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;font-family:Andale Mono" />
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0pt;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;text-anchor:start;color:#000000;fill:url(#linearGradient3045);fill-opacity:1;stroke:none;stroke-width:2;marker:none;visibility:visible;display:inline;overflow:visible;font-family:Andale Mono" />
<path
inkscape:connector-curvature="0"
sodipodi:nodetypes="cccccccc"
id="path10558"
d="m 120.66272,976.3765 c -0.33282,0.10664 -0.44483,0.61349 -0.18825,0.85184 l 3.01199,3.02879 c 0.27825,0.26531 0.83246,0.0383 0.84712,-0.34705 l 0,-3.02878 c -3e-5,-0.26431 -0.23916,-0.50477 -0.502,-0.5048 l -3.01199,0 c -0.0519,-0.008 -0.105,-0.008 -0.15687,0 z"
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0pt;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;text-anchor:start;color:#000000;fill:url(#linearGradient10598-1);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;font-family:Andale Mono" />
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0pt;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;text-anchor:start;color:#000000;fill:url(#linearGradient3047);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;font-family:Andale Mono" />
</g>
<path
sodipodi:nodetypes="cccccccccccccccc"
id="path10560"
d="m -55.9999,-892.61507 0,0.75 0,40.50004 0,0.72723 0.74999,0 32.49943,0 0.74998,0 0,-0.72723 0,-25.50003 0,-0.3282 -0.23436,-0.2343 -14.90598,-15.00001 -0.18748,-0.1875 -0.32813,0 -17.59346,0 -0.74999,0 z"
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0pt;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;text-anchor:start;color:#000000;fill:url(#linearGradient10602-2);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;font-family:Andale Mono"
style="font-size:medium;font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;text-indent:0pt;text-align:start;text-decoration:none;line-height:normal;letter-spacing:normal;word-spacing:normal;text-transform:none;direction:ltr;text-anchor:start;color:#000000;fill:url(#linearGradient3051);fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1;marker:none;visibility:visible;display:inline;overflow:visible;font-family:Andale Mono"
inkscape:connector-curvature="0" />
<path
style="fill:url(#linearGradient8673);fill-opacity:1;stroke:none;display:inline"
style="fill:url(#linearGradient3053);fill-opacity:1;stroke:none;display:inline"
d="m -54,-890.6378 16,0 14,14 0,24 -30,0 0,-38 z"
id="path10562"
inkscape:connector-curvature="0"
@ -193,84 +242,88 @@
inkscape:export-xdpi="90"
inkscape:export-ydpi="90" />
</g>
<g
id="g3097"
transform="matrix(1.3110676,0,0,1.4950823,-12.487894,-19.157197)">
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#a33e03;stroke-width:1.14215171px;stroke-opacity:1"
d="m 28.476644,40.959114 0,-7.225004 13.547219,0"
id="path303-2" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#a33e03;stroke-width:1.4473021px;stroke-opacity:1"
d="m 30.271516,35.884055 3.560877,0"
id="path305-2" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#a33e03;stroke-width:1.47046161px;stroke-opacity:1"
d="m 36.056584,35.969225 5.590307,0"
id="path307-0" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#a33e03;stroke-width:1.69749784px;stroke-opacity:1"
d="m 29.76794,39.711656 4.218376,0"
id="path309-5" />
<path
inkscape:connector-curvature="0"
style="fill:none;stroke:#a33e03;stroke-width:1.99703228px;stroke-opacity:1"
d="m 38.035221,39.754241 3.728056,0"
id="path311-5" />
</g>
<path
id="path303-2"
d="m 15.299838,22.117153 0,-3.724729 6.791318,0"
style="fill:none;stroke:#a33e03;stroke-width:0.58063614px;stroke-opacity:1"
inkscape:connector-curvature="0" />
<path
id="path305-2"
d="m 16.19962,19.500792 1.785093,0"
style="fill:none;stroke:#a33e03;stroke-width:0.73576558px;stroke-opacity:1"
inkscape:connector-curvature="0" />
<path
id="path307-0"
d="m 19.099716,19.5447 2.802461,0"
style="fill:none;stroke:#a33e03;stroke-width:0.74753916px;stroke-opacity:1"
inkscape:connector-curvature="0" />
<path
id="path309-5"
d="m 15.947174,21.474047 2.114702,0"
style="fill:none;stroke:#a33e03;stroke-width:0.86295766px;stroke-opacity:1"
inkscape:connector-curvature="0" />
<path
id="path311-5"
d="m 20.091621,21.496001 1.868901,0"
style="fill:none;stroke:#a33e03;stroke-width:1.01523209px;stroke-opacity:1"
inkscape:connector-curvature="0" />
<path
style="color:#000000;fill:none;stroke:#a33e03;stroke-width:0.9867416;stroke-linecap:square;stroke-opacity:1"
d="m 8.5368289,14.555249 0,3.93792"
style="color:#000000;fill:none;stroke:#a33e03;stroke-width:1.94098949;stroke-linecap:square;stroke-opacity:1"
d="m 14.985895,26.290991 0,7.638538"
id="path315-9"
inkscape:connector-curvature="0" />
<path
style="color:#000000;fill:none;stroke:#a33e03;stroke-width:0.94667083;stroke-linecap:round;stroke-opacity:1"
d="m 10.555193,14.642423 -1.9744558,1.81556"
style="color:#000000;fill:none;stroke:#a33e03;stroke-width:1.86216748;stroke-linecap:round;stroke-opacity:1"
d="m 19.012097,26.460086 -3.938614,3.521713"
id="path317-0"
inkscape:connector-curvature="0" />
<path
style="color:#000000;fill:none;stroke:#a33e03;stroke-width:0.94667083;stroke-linecap:round;stroke-opacity:1"
d="M 10.555193,18.62481 8.5807372,16.80925"
style="color:#000000;fill:none;stroke:#a33e03;stroke-width:1.86216748;stroke-linecap:round;stroke-opacity:1"
d="M 19.012097,34.184879 15.073483,30.663165"
id="path319-2"
inkscape:connector-curvature="0" />
<path
style="color:#000000;fill:none;stroke:#a33e03;stroke-width:0.94667083;stroke-linecap:square;stroke-opacity:1"
d="m 8.5954516,16.501892 -3.7958892,0"
style="color:#000000;fill:none;stroke:#a33e03;stroke-width:1.86216748;stroke-linecap:square;stroke-opacity:1"
d="m 15.102835,30.066971 -7.5719831,0"
id="path321-8"
inkscape:connector-curvature="0" />
<path
style="color:#000000;fill:none;stroke:#a33e03;stroke-width:0.88937062;stroke-linecap:round;stroke-opacity:1"
d="m 10.555193,18.98439 0,2.135555"
style="color:#000000;fill:none;stroke:#a33e03;stroke-width:1.74945402;stroke-linecap:round;stroke-opacity:1"
d="m 19.012097,34.88237 0,4.14242"
id="path323-3"
inkscape:connector-curvature="0" />
<path
style="color:#000000;fill:none;stroke:#a33e03;stroke-width:0.94667083;stroke-linecap:square;stroke-opacity:1"
d="m 11.586328,21.454457 -1.9527374,0"
style="color:#000000;fill:none;stroke:#a33e03;stroke-width:1.86216748;stroke-linecap:square;stroke-opacity:1"
d="m 21.06899,39.673656 -3.895291,0"
id="path325-8"
inkscape:connector-curvature="0" />
<path
style="color:#000000;fill:none;stroke:#a33e03;stroke-width:0.90969408;stroke-linecap:round;stroke-opacity:1"
d="m 10.496239,14.485005 0,-2.89048"
style="color:#000000;fill:none;stroke:#a33e03;stroke-width:1.78943157;stroke-linecap:round;stroke-opacity:1"
d="m 18.894497,26.154736 0,-5.606778"
id="path327-0"
inkscape:connector-curvature="0" />
<path
style="color:#000000;fill:none;stroke:#a33e03;stroke-width:0.95496774;stroke-linecap:square;stroke-opacity:1"
d="m 11.530374,11.420821 -1.9661595,0 0,-3.7106413 1.9661595,0 0,3.7106413"
style="color:#000000;fill:none;stroke:#a33e03;stroke-width:1.87848806;stroke-linecap:square;stroke-opacity:1"
d="m 20.957374,20.211017 -3.922066,0 0,-7.197676 3.922066,0 0,7.197676"
id="path329-4"
inkscape:connector-curvature="0" />
<path
style="color:#000000;fill:none;stroke:#a33e03;stroke-width:0.95042706;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 10.965511,13.559011 4.47239,0"
style="color:#000000;fill:none;stroke:#a33e03;stroke-width:1.86955619;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 19.830594,24.358549 8.921456,0"
id="path331-0"
inkscape:connector-curvature="0" />
<path
style="color:#000000;fill:#a33e03;fill-opacity:1;stroke:#a33e03;stroke-width:0.94674802;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 10.539398,4.0749115 0,3.5088427"
style="color:#000000;fill:#a33e03;fill-opacity:1;stroke:#a33e03;stroke-width:1.86231935;stroke-linecap:square;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
d="m 18.98059,5.9618662 0,6.8062408"
id="path333-9"
inkscape:connector-curvature="0" />
<path
style="fill:none;stroke:#a33e03;stroke-width:1.00222099px;stroke-opacity:1"
d="m 16.356524,12.501212 4.102533,-0.02269 1.085413,0.990712 -1.075141,0.937806 -4.112805,-0.03024 0,-1.875614 z"
style="fill:none;stroke:#a33e03;stroke-width:1.97143853px;stroke-opacity:1"
d="m 30.584506,22.306694 8.183671,-0.04401 2.165165,1.921723 -2.144675,1.819099 -8.204161,-0.05866 0,-3.638202 z"
id="path361-0"
inkscape:connector-curvature="0" />
</svg>

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -0,0 +1,833 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="48"
width="48"
version="1.0"
id="svg2"
inkscape:version="0.48.2 r9819"
sodipodi:docname="icon_pagelayout_editor.svg">
<metadata
id="metadata133">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title />
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1280"
inkscape:window-height="977"
id="namedview131"
showgrid="true"
inkscape:snap-to-guides="false"
inkscape:snap-grids="false"
inkscape:zoom="13.333333"
inkscape:cx="7.6914467"
inkscape:cy="24.519273"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1"
inkscape:current-layer="svg2">
<inkscape:grid
type="xygrid"
id="grid3110"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" />
</sodipodi:namedview>
<defs
id="defs4">
<filter
id="n"
color-interpolation-filters="sRGB">
<feGaussianBlur
stdDeviation="1.0394514"
id="feGaussianBlur7" />
</filter>
<marker
id="l"
refY="0"
refX="0"
overflow="visible"
orient="auto"
style="overflow:visible">
<path
d="M 5.77,0 -2.88,5 V -5 l 8.65,5 z"
transform="scale(-0.4,-0.4)"
id="path10"
inkscape:connector-curvature="0"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" />
</marker>
<marker
id="m"
refY="0"
refX="0"
overflow="visible"
orient="auto"
style="overflow:visible">
<path
d="M 5.77,0 -2.88,5 V -5 l 8.65,5 z"
transform="scale(0.4,0.4)"
id="path13"
inkscape:connector-curvature="0"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" />
</marker>
<linearGradient
id="o"
y2="94.537003"
gradientUnits="userSpaceOnUse"
x2="86.536003"
y1="102.34"
x1="94.344002">
<stop
stop-color="#fff"
offset="0"
id="stop16" />
<stop
stop-color="#555753"
offset="1"
id="stop18" />
</linearGradient>
<linearGradient
id="p"
y2="94.586998"
gradientUnits="userSpaceOnUse"
x2="86.586998"
y1="103"
x1="95">
<stop
stop-color="#fff"
offset="0"
id="stop21" />
<stop
stop-color="#555753"
offset="1"
id="stop23" />
</linearGradient>
<linearGradient
id="q"
y2="95.292999"
gradientUnits="userSpaceOnUse"
x2="87.292999"
y1="103"
x1="95">
<stop
stop-color="#fff"
offset="0"
id="stop26" />
<stop
stop-color="#393b38"
offset="1"
id="stop28" />
</linearGradient>
<linearGradient
id="r"
y2="96"
gradientUnits="userSpaceOnUse"
x2="88"
y1="104"
x1="96">
<stop
stop-color="#888a85"
offset="0"
id="stop31" />
<stop
stop-color="#8c8e89"
offset=".0072"
id="stop33" />
<stop
stop-color="#abaca9"
offset=".0673"
id="stop35" />
<stop
stop-color="#c5c6c4"
offset=".1347"
id="stop37" />
<stop
stop-color="#dbdbda"
offset=".2115"
id="stop39" />
<stop
stop-color="#ebebeb"
offset=".3012"
id="stop41" />
<stop
stop-color="#f7f7f6"
offset=".4122"
id="stop43" />
<stop
stop-color="#fdfdfd"
offset=".5679"
id="stop45" />
<stop
stop-color="#fff"
offset="1"
id="stop47" />
</linearGradient>
<radialGradient
id="t"
gradientUnits="userSpaceOnUse"
cy="112.3"
cx="102"
gradientTransform="matrix(0,-0.25288808,0.20993589,0,-0.32737717,51.222083)"
r="139.56">
<stop
stop-color="#535557"
offset="0"
id="stop50" />
<stop
stop-color="#898a8c"
offset=".11366"
id="stop52" />
<stop
stop-color="#ececec"
offset=".20297"
id="stop54" />
<stop
stop-color="#fafafa"
offset=".23630"
id="stop56" />
<stop
stop-color="#fff"
offset=".27220"
id="stop58" />
<stop
stop-color="#fafafa"
offset=".53130"
id="stop60" />
<stop
stop-color="#ebecec"
offset=".84490"
id="stop62" />
<stop
stop-color="#e1e2e3"
offset="1"
id="stop64" />
</radialGradient>
<radialGradient
id="u"
gradientUnits="userSpaceOnUse"
cy="112.3"
cx="102"
gradientTransform="matrix(0,-0.22456181,0.20619923,0,-0.06831569,48.261372)"
r="139.56">
<stop
stop-color="#00537d"
offset="0"
id="stop67" />
<stop
stop-color="#186389"
offset=".0151"
id="stop69" />
<stop
stop-color="#558ca8"
offset=".0558"
id="stop71" />
<stop
stop-color="#89afc3"
offset=".0964"
id="stop73" />
<stop
stop-color="#b3ccd8"
offset=".1357"
id="stop75" />
<stop
stop-color="#d4e2e9"
offset=".1737"
id="stop77" />
<stop
stop-color="#ecf2f5"
offset=".20990"
id="stop79" />
<stop
stop-color="#fafcfd"
offset=".24350"
id="stop81" />
<stop
stop-color="#fff"
offset=".27220"
id="stop83" />
</radialGradient>
<linearGradient
id="s"
y2="9.6875"
gradientUnits="userSpaceOnUse"
x2="-24.75"
gradientTransform="matrix(0,-0.25415316,0.20725536,0,4.9020693,18.325122)"
y1="11.566"
x1="-26.754">
<stop
stop-color="#fff"
offset="0"
id="stop86" />
<stop
stop-color="#fff"
stop-opacity="0"
offset="1"
id="stop88" />
</linearGradient>
<radialGradient
id="v"
gradientUnits="userSpaceOnUse"
cy="5.3000002"
cx="4"
gradientTransform="matrix(0,-0.47934299,0.24383045,0,4.0242988,34.475354)"
r="17">
<stop
stop-color="#fff"
offset="0"
id="stop91" />
<stop
stop-color="#fff"
stop-opacity="0"
offset="1"
id="stop93" />
</radialGradient>
<linearGradient
id="be"
y2="31.211"
gradientUnits="userSpaceOnUse"
x2="23.576"
gradientTransform="matrix(0.64407,-0.64045,0.66092,0.65072,61.423,86.661)"
y1="25.357"
x1="23.576">
<stop
offset="0"
id="stop3926" />
<stop
stop-color="#c3c3c3"
offset=".13483"
id="stop3928" />
<stop
stop-color="#8c8c8c"
offset=".20224"
id="stop3930" />
<stop
stop-color="#fff"
offset=".26966"
id="stop3932" />
<stop
stop-color="#757575"
offset=".4465"
id="stop3934" />
<stop
stop-color="#7d7d7d"
offset=".57114"
id="stop3936" />
<stop
stop-color="#b6b6b6"
offset=".72038"
id="stop3938" />
<stop
offset="1"
id="stop3940" />
</linearGradient>
<linearGradient
id="bf"
y2="30"
xlink:href="#ar"
gradientUnits="userSpaceOnUse"
x2="30.038"
gradientTransform="matrix(0.62586,-0.62234,0.77349,0.76155,59.298,83.616)"
y1="24.99"
x1="30.038" />
<linearGradient
id="ar">
<stop
stop-color="#3e3e3e"
offset="0"
id="stop3912" />
<stop
stop-color="#828282"
offset=".5"
id="stop3914" />
<stop
stop-color="#3c3c3c"
offset="1"
id="stop3916" />
</linearGradient>
<linearGradient
id="bg"
y2="30"
xlink:href="#aq"
gradientUnits="userSpaceOnUse"
x2="30.038"
gradientTransform="matrix(0.62586,-0.62234,0.77349,0.76155,59.119,83.794)"
y1="24.99"
x1="30.038" />
<linearGradient
id="aq">
<stop
stop-color="#999"
offset="0"
id="stop3919" />
<stop
stop-color="#fff"
offset=".5"
id="stop3921" />
<stop
stop-color="#777"
offset="1"
id="stop3923" />
</linearGradient>
<linearGradient
id="bh"
y2="30"
xlink:href="#ar"
gradientUnits="userSpaceOnUse"
x2="30.038"
gradientTransform="matrix(0.62586,-0.62234,0.77349,0.76155,59.921,82.996)"
y1="24.99"
x1="30.038" />
<linearGradient
id="linearGradient4420">
<stop
stop-color="#3e3e3e"
offset="0"
id="stop4422" />
<stop
stop-color="#828282"
offset=".5"
id="stop4424" />
<stop
stop-color="#3c3c3c"
offset="1"
id="stop4426" />
</linearGradient>
<linearGradient
id="bi"
y2="30"
xlink:href="#aq"
gradientUnits="userSpaceOnUse"
x2="30.038"
gradientTransform="matrix(0.62586,-0.62234,0.77349,0.76155,59.742,83.175)"
y1="24.99"
x1="30.038" />
<linearGradient
id="linearGradient4429">
<stop
stop-color="#999"
offset="0"
id="stop4431" />
<stop
stop-color="#fff"
offset=".5"
id="stop4433" />
<stop
stop-color="#777"
offset="1"
id="stop4435" />
</linearGradient>
<linearGradient
id="bj"
y2="30"
xlink:href="#ar"
gradientUnits="userSpaceOnUse"
x2="30.038"
gradientTransform="matrix(0.62586,-0.62234,0.77349,0.76155,60.547,82.374)"
y1="24.99"
x1="30.038" />
<linearGradient
id="linearGradient4438">
<stop
stop-color="#3e3e3e"
offset="0"
id="stop4440" />
<stop
stop-color="#828282"
offset=".5"
id="stop4442" />
<stop
stop-color="#3c3c3c"
offset="1"
id="stop4444" />
</linearGradient>
<linearGradient
id="bk"
y2="30"
xlink:href="#aq"
gradientUnits="userSpaceOnUse"
x2="30.038"
gradientTransform="matrix(0.62586,-0.62234,0.77349,0.76155,60.367,82.552)"
y1="24.99"
x1="30.038" />
<linearGradient
id="linearGradient4447">
<stop
stop-color="#999"
offset="0"
id="stop4449" />
<stop
stop-color="#fff"
offset=".5"
id="stop4451" />
<stop
stop-color="#777"
offset="1"
id="stop4453" />
</linearGradient>
<linearGradient
id="bl"
y2="26.030001"
gradientUnits="userSpaceOnUse"
x2="9"
gradientTransform="matrix(0.62586,-0.62234,0.77349,0.76155,59.06,83.852)"
y1="29.056999"
x1="9">
<stop
stop-color="#e4db7b"
offset="0"
id="stop3949" />
<stop
stop-color="#f4f0c8"
offset="1"
id="stop3951" />
</linearGradient>
<linearGradient
id="bm"
y2="41.391998"
gradientUnits="userSpaceOnUse"
x2="9.5221004"
gradientTransform="matrix(0.52586,0,0,0.51993,81.027,79.545)"
y1="37.372002"
x1="5.5179">
<stop
stop-color="#cbbd27"
offset="0"
id="stop3954" />
<stop
stop-color="#9b901d"
offset="1"
id="stop3956" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#v"
id="radialGradient3776"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,-0.47934299,0.24383045,0,4.0242988,34.475354)"
cx="4"
cy="5.3000002"
r="17" />
<linearGradient
inkscape:collect="always"
xlink:href="#s"
id="linearGradient3778"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,-0.25415316,0.20725536,0,4.9020693,18.325122)"
x1="-26.754"
y1="11.566"
x2="-24.75"
y2="9.6875" />
<radialGradient
inkscape:collect="always"
xlink:href="#u"
id="radialGradient3780"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,-0.22456181,0.20619923,0,-0.06831569,48.261372)"
cx="102"
cy="112.3"
r="139.56" />
<radialGradient
inkscape:collect="always"
xlink:href="#t"
id="radialGradient3782"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0,-0.25288808,0.20993589,0,-0.32737717,51.222083)"
cx="102"
cy="112.3"
r="139.56" />
<linearGradient
inkscape:collect="always"
xlink:href="#o"
id="linearGradient3784"
gradientUnits="userSpaceOnUse"
x1="94.344002"
y1="102.34"
x2="86.536003"
y2="94.537003" />
<linearGradient
inkscape:collect="always"
xlink:href="#p"
id="linearGradient3786"
gradientUnits="userSpaceOnUse"
x1="95"
y1="103"
x2="86.586998"
y2="94.586998" />
<linearGradient
inkscape:collect="always"
xlink:href="#q"
id="linearGradient3788"
gradientUnits="userSpaceOnUse"
x1="95"
y1="103"
x2="87.292999"
y2="95.292999" />
<linearGradient
inkscape:collect="always"
xlink:href="#r"
id="linearGradient3790"
gradientUnits="userSpaceOnUse"
x1="96"
y1="104"
x2="88"
y2="96" />
<linearGradient
inkscape:collect="always"
xlink:href="#be"
id="linearGradient3792"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.64407,-0.64045,0.66092,0.65072,61.423,86.661)"
x1="23.576"
y1="25.357"
x2="23.576"
y2="31.211" />
<linearGradient
inkscape:collect="always"
xlink:href="#ar"
id="linearGradient3794"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.62586,-0.62234,0.77349,0.76155,59.298,83.616)"
x1="30.038"
y1="24.99"
x2="30.038"
y2="30" />
<linearGradient
inkscape:collect="always"
xlink:href="#aq"
id="linearGradient3796"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.62586,-0.62234,0.77349,0.76155,59.119,83.794)"
x1="30.038"
y1="24.99"
x2="30.038"
y2="30" />
<linearGradient
inkscape:collect="always"
xlink:href="#ar"
id="linearGradient3798"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.62586,-0.62234,0.77349,0.76155,59.921,82.996)"
x1="30.038"
y1="24.99"
x2="30.038"
y2="30" />
<linearGradient
inkscape:collect="always"
xlink:href="#aq"
id="linearGradient3800"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.62586,-0.62234,0.77349,0.76155,59.742,83.175)"
x1="30.038"
y1="24.99"
x2="30.038"
y2="30" />
<linearGradient
inkscape:collect="always"
xlink:href="#ar"
id="linearGradient3802"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.62586,-0.62234,0.77349,0.76155,60.547,82.374)"
x1="30.038"
y1="24.99"
x2="30.038"
y2="30" />
<linearGradient
inkscape:collect="always"
xlink:href="#aq"
id="linearGradient3804"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.62586,-0.62234,0.77349,0.76155,60.367,82.552)"
x1="30.038"
y1="24.99"
x2="30.038"
y2="30" />
<linearGradient
inkscape:collect="always"
xlink:href="#bl"
id="linearGradient3806"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.62586,-0.62234,0.77349,0.76155,59.06,83.852)"
x1="9"
y1="29.056999"
x2="9"
y2="26.030001" />
<linearGradient
inkscape:collect="always"
xlink:href="#bm"
id="linearGradient3808"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.52586,0,0,0.51993,81.027,79.545)"
x1="5.5179"
y1="37.372002"
x2="9.5221004"
y2="41.391998" />
</defs>
<rect
height="48"
width="48"
y="-42.449997"
x="-50.849998"
id="rect95"
style="opacity:0" />
<g
id="g3747"
transform="matrix(1.8574036,0,0,1.8098801,0.30839211,-39.214582)">
<path
style="opacity:0.68015998;fill:url(#radialGradient3776)"
inkscape:connector-curvature="0"
id="path97"
d="m 5.7311015,31.405978 c 0,0.218109 0.1394995,0.389179 0.3173568,0.389179 h 7.6555727 c 0.177857,0 0.317358,-0.17107 0.317358,-0.389179 v -7.86319 c 0,-0.218109 -0.139501,-0.389178 -0.317358,-0.389178 H 8.5292163 c -0.2884891,0 -0.8910636,0.123766 -1.2759287,0.595694 l -1.037127,1.271232 C 5.8315529,25.492469 5.7306224,26.23142 5.7306224,26.585178 v 4.82103 z" />
<path
style="fill:none;stroke:url(#linearGradient3778);stroke-width:0.2295121"
inkscape:connector-curvature="0"
id="path99"
d="m 5.8347112,31.405978 c 0,0.148217 0.092868,0.262098 0.2137317,0.262098 h 7.6555741 c 0.120865,0 0.213731,-0.113881 0.213731,-0.262098 v -7.86319 c 0,-0.148217 -0.09286,-0.262099 -0.213731,-0.262099 H 8.529201 c -0.2650831,0 -0.8508769,0.122113 -1.2046748,0.555993 l -1.0366116,1.271231 c -0.3539525,0.43382 -0.4535434,1.15218 -0.4535434,1.477244 v 4.821029 z" />
<path
style="opacity:0.7;fill:#000000;fill-opacity:1;filter:url(#n)"
inkscape:connector-curvature="0"
id="path101"
transform="matrix(0,-0.2662987,0.22165967,0,-1.6902875,53.992085)"
d="m 23,9 0.04082,112 h 61.131 c 0.53,0 1.039,-0.211 1.414,-0.586 l 32.824,-32.824 c 0.38,-0.375 0.59,-0.884 0.59,-1.414 V 9.016 h -96 z" />
<path
style="fill:url(#radialGradient3780)"
inkscape:connector-curvature="0"
id="path103"
d="M 1.5812474,44.668265 H 24.675438 V 30.931147 c 0,-0.119018 -0.04352,-0.233319 -0.120832,-0.317535 l -6.768739,-7.37201 c -0.0774,-0.084 -0.182485,-0.131366 -0.291664,-0.131366 H 1.5813858 v 21.558145 z" />
<path
style="fill:url(#radialGradient3782)"
inkscape:connector-curvature="0"
id="path105"
d="m 1.5620727,46.670276 c 0,0.139336 0.094258,0.252887 0.2099358,0.252887 H 24.4453 c 0.11589,0 0.209935,-0.113551 0.209935,-0.252887 V 31.706543 c 0,-0.06651 -0.02224,-0.131757 -0.06151,-0.178789 l -6.89155,-8.301926 c -0.03934,-0.04744 -0.09356,-0.07421 -0.148834,-0.07421 H 1.7721307 c -0.1156762,0 -0.2099358,0.113294 -0.2099358,0.252888 v 23.265659 z" />
<path
style="fill:none;stroke:#723137;stroke-width:1.21292329;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path107"
d="m 8.8893243,46.768584 v -7.00828 H 24.643157" />
<path
style="fill:none;stroke:#6e2716;stroke-width:1.45951974px;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path109"
d="M 23.303472,42.907878 H 20.154997" />
<path
style="fill:none;stroke:#632716;stroke-width:1.61190331px;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path111"
d="M 17.114466,42.966273 H 11.274947" />
<path
style="fill:none;stroke:#822716;stroke-width:1.47296751px;stroke-opacity:1"
inkscape:connector-curvature="0"
id="path113"
d="M 24.683227,45.990214 H 20.235589" />
<path
style="fill:none;stroke:#685b00;stroke-width:1.41400003;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
inkscape:connector-curvature="0"
id="path115"
d="M 18.660247,46.039958 H 11.218576" />
<g
id="g117"
transform="matrix(0,-0.25415314,0.20725537,0,-0.1950509,51.653459)">
<path
style="opacity:0.1;fill:url(#linearGradient3784)"
inkscape:connector-curvature="0"
id="path119"
d="M 111.41,86.586 C 111.66,86.336 93.035,93 88,93 c -1.654,0 -3,1.346 -3,3 0,5.035 -6.664,23.664 -6.414,23.414 l 32.828,-32.828 z" />
<path
style="opacity:0.1;fill:url(#linearGradient3786)"
inkscape:connector-curvature="0"
id="path121"
d="M 111.41,86.586 C 111.79,86.211 97.444,94 88,94 c -1.103,0 -2,0.897 -2,2 0,9.444 -7.789,23.789 -7.414,23.414 l 32.828,-32.828 z" />
<path
style="opacity:0.1;fill:url(#linearGradient3788)"
inkscape:connector-curvature="0"
id="path123"
d="M 111.41,86.586 C 111.65,86.347 97.807,95 88,95 c -0.553,0 -1,0.447 -1,1 0,9.807 -8.653,23.653 -8.414,23.414 l 32.828,-32.828 z" />
<path
style="fill:url(#linearGradient3790)"
inkscape:connector-curvature="0"
id="path125"
d="m 78.586,119.41 c 0,0 11.914,-9.914 17.414,-15.414 5.5,-5.5 15.414,-17.414 15.414,-17.414 0,0 -13.164,9.414 -23.414,9.414 0,10.25 -9.414,23.414 -9.414,23.414 z" />
</g>
<g
id="g4362"
transform="matrix(0.74600592,-0.10339331,0.10165527,0.75872862,-68.990862,-26.465794)">
<path
id="path4364"
d="m 85.365,96.011 c 0.43282,-0.32935 1.5837,0.20459 2.6183,1.2232 1.0321,1.0162 1.5508,2.1286 1.225,2.5608 -0.0012,0.0017 0.02544,0.02217 0.02417,0.0238 l 15.708,-15.618 c 0.39874,-0.3965 -0.14267,-1.5725 -1.2101,-2.6235 -1.0674,-1.0509 -2.2586,-1.5808 -2.6574,-1.1843 l -15.705,15.618 z"
inkscape:connector-curvature="0"
style="fill:url(#linearGradient3792);stroke:#000000;stroke-width:0.55532998;stroke-linejoin:round" />
<path
id="path4366"
d="m 99.153,82.3 c 0.43282,-0.32935 1.5837,0.20459 2.6183,1.2232 1.0321,1.0162 1.5508,2.1285 1.225,2.5608 -0.001,0.0017 0.0254,0.02217 0.0242,0.0238 l 1.9167,-1.9059 0.0391,-0.0389 c 0.001,-0.0017 -0.0254,-0.02215 -0.0242,-0.0238 0.32575,-0.43223 -0.19292,-1.5446 -1.225,-2.5608 -1.0346,-1.0186 -2.1854,-1.5525 -2.6183,-1.2232 l -0.04,0.039 -1.917,1.906 z"
inkscape:connector-curvature="0"
style="opacity:0.8;fill:#ff9de8;stroke:#dd78c5;stroke-width:0.55532998;stroke-linejoin:round" />
<path
id="path4368"
d="m 85.365,96.011 c 0.43282,-0.32935 1.5837,0.20459 2.6183,1.2232 1.0321,1.0162 1.5508,2.1286 1.225,2.5608 -0.0012,0.0017 0.02544,0.02217 0.02417,0.0238 l 10.816,-10.755 0.0391,-0.0389 c 0.001,-0.0017 -0.0254,-0.02216 -0.0242,-0.0238 0.32575,-0.43223 -0.19293,-1.5446 -1.225,-2.5608 -1.0346,-1.0186 -2.1854,-1.5525 -2.6183,-1.2232 l -0.03911,0.0389 -10.816,10.755 z"
inkscape:connector-curvature="0"
style="opacity:0.6" />
<path
id="path4370"
d="m 97.005,84.436 c 0.43282,-0.32935 1.5837,0.20459 2.6183,1.2232 1.0321,1.0162 1.5508,2.1286 1.225,2.5608 -10e-4,0.0017 0.0254,0.02217 0.0242,0.0238 l 0.19558,-0.19448 c 0.001,-0.0017 -0.0254,-0.02215 -0.0242,-0.0238 0.32575,-0.43222 -0.19292,-1.5446 -1.225,-2.5608 -1.0346,-1.0186 -2.1854,-1.5525 -2.6183,-1.2232 l -0.197,0.194 z"
inkscape:connector-curvature="0"
style="fill:url(#linearGradient3794)" />
<path
id="path4372"
d="m 96.826,84.614 c 0.43282,-0.32935 1.5837,0.20459 2.6183,1.2232 1.0321,1.0162 1.5508,2.1285 1.225,2.5608 -0.001,0.0017 0.0254,0.02217 0.0242,0.0238 l 0.19558,-0.19448 c 10e-4,-0.0017 -0.0254,-0.02215 -0.0242,-0.0238 0.32575,-0.43222 -0.19292,-1.5446 -1.225,-2.5608 -1.0346,-1.0186 -2.1854,-1.5525 -2.6183,-1.2232 l -0.196,0.194 z"
inkscape:connector-curvature="0"
style="fill:url(#linearGradient3796)" />
<path
id="path4374"
d="m 97.628,83.817 c 0.43282,-0.32935 1.5837,0.20459 2.6183,1.2232 1.0321,1.0162 1.5508,2.1286 1.225,2.5608 -0.001,0.0017 0.0254,0.02217 0.0242,0.0238 l 0.19558,-0.19448 c 0.001,-0.0017 -0.0254,-0.02215 -0.0242,-0.0238 0.32575,-0.43222 -0.19292,-1.5446 -1.225,-2.5608 -1.0346,-1.0186 -2.1854,-1.5525 -2.6183,-1.2232 l -0.204,0.194 z"
inkscape:connector-curvature="0"
style="fill:url(#linearGradient3798)" />
<path
id="path4376"
d="m 97.448,83.995 c 0.43282,-0.32935 1.5837,0.20459 2.6183,1.2232 1.0321,1.0162 1.5508,2.1286 1.225,2.5608 -0.001,0.0017 0.0254,0.02217 0.0242,0.0238 l 0.19558,-0.19448 c 10e-4,-0.0017 -0.0254,-0.02215 -0.0242,-0.0238 0.32575,-0.43222 -0.19292,-1.5446 -1.225,-2.5608 -1.0346,-1.0186 -2.1854,-1.5525 -2.6183,-1.2232 l -0.204,0.194 z"
inkscape:connector-curvature="0"
style="fill:url(#linearGradient3800)" />
<path
id="path4378"
d="m 98.254,83.194 c 0.43282,-0.32935 1.5837,0.20459 2.6183,1.2232 1.0321,1.0162 1.5508,2.1286 1.225,2.5608 -0.001,0.0017 0.0254,0.02217 0.0242,0.0238 l 0.19558,-0.19448 c 10e-4,-0.0017 -0.0254,-0.02216 -0.0242,-0.0238 0.32575,-0.43223 -0.19292,-1.5446 -1.225,-2.5608 -1.0346,-1.0186 -2.1854,-1.5525 -2.6183,-1.2232 l -0.198,0.194 z"
inkscape:connector-curvature="0"
style="fill:url(#linearGradient3802)" />
<path
id="path4380"
d="m 98.074,83.372 c 0.43282,-0.32935 1.5837,0.20459 2.6183,1.2232 1.0321,1.0162 1.5508,2.1286 1.225,2.5608 -10e-4,0.0017 0.0254,0.02217 0.0242,0.0238 l 0.19558,-0.19448 c 0.001,-0.0017 -0.0254,-0.02216 -0.0242,-0.0238 0.32575,-0.43223 -0.19292,-1.5446 -1.225,-2.5608 -1.0346,-1.0186 -2.1854,-1.5525 -2.6183,-1.2232 l -0.198,0.194 z"
inkscape:connector-curvature="0"
style="fill:url(#linearGradient3804)" />
<path
id="path4382"
d="m 82.185,102.91 7.0294,-3.0074 c 0.32575,-0.43222 -0.20033,-1.6548 -1.2324,-2.671 -1.0346,-1.0186 -2.2398,-1.5494 -2.6726,-1.22 l -3.124,6.898 z"
inkscape:connector-curvature="0"
style="fill:url(#linearGradient3806);fill-rule:evenodd;stroke:url(#linearGradient3808);stroke-width:0.55532998" />
<path
id="path4384"
d="m 83.046,101.04 -0.86146,1.8612 1.9008,-0.83782 c -0.14196,-0.17111 -0.2723,-0.3455 -0.44432,-0.51486 -0.19804,-0.19498 -0.39436,-0.35167 -0.59506,-0.50847 z"
inkscape:connector-curvature="0"
style="fill-rule:evenodd;stroke:#000000;stroke-width:0.55532998" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 27 KiB

View File

@ -0,0 +1,131 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Created with Inkscape (http://www.inkscape.org/) -->
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
width="400"
height="200"
id="svg3509"
version="1.1"
inkscape:version="0.48.2 r9819"
sodipodi:docname="kicad_logo_final.svg"
inkscape:export-filename="/home/fabrizio/Desktop/kicad_logo2.png"
inkscape:export-xdpi="130.52866"
inkscape:export-ydpi="130.52866">
<defs
id="defs3511" />
<sodipodi:namedview
id="base"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageopacity="0.0"
inkscape:pageshadow="2"
inkscape:zoom="1.4"
inkscape:cx="319.71301"
inkscape:cy="107.41472"
inkscape:document-units="px"
inkscape:current-layer="layer1"
showgrid="true"
inkscape:window-width="1280"
inkscape:window-height="941"
inkscape:window-x="0"
inkscape:window-y="30"
inkscape:window-maximized="1"
inkscape:snap-grids="false"
showguides="true"
inkscape:guide-bbox="true"
inkscape:snap-to-guides="false" />
<metadata
id="metadata3514">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<g
inkscape:label="Layer 1"
inkscape:groupmode="layer"
id="layer1"
transform="translate(0,-852.36218)">
<rect
style="fill:#ffffff;fill-opacity:1;fill-rule:nonzero;stroke:none;stroke-width:1.16592622000000001;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect3001"
width="335.33405"
height="136.76265"
x="40.547253"
y="883.62366"
rx="0.79142594"
ry="0.68401301"
inkscape:export-filename="/home/fabrizio/Desktop/kicad_logo_final.png"
inkscape:export-xdpi="130.52866"
inkscape:export-ydpi="130.52866" />
<rect
style="fill:#314cb0;fill-opacity:1;fill-rule:nonzero;stroke:#1d2d68;stroke-width:4.85048628;stroke-miterlimit:4;stroke-opacity:1;stroke-dasharray:none"
id="rect3438-4-1-6-9-8-4"
width="116.24297"
height="111.73183"
x="50.753147"
y="901.97614"
rx="0.92550105"
ry="0.96813995"
inkscape:export-filename="/home/fabrizio/Desktop/kicad_logo_final.png"
inkscape:export-xdpi="130.52866"
inkscape:export-ydpi="130.52866" />
<text
xml:space="preserve"
style="font-size:120.79350281px;font-style:normal;font-weight:normal;line-height:122.00000286%;letter-spacing:0px;word-spacing:0px;fill:#1b2b63;fill-opacity:1;stroke:none;font-family:Sans"
x="47.593891"
y="1002.9949"
id="text3428-5-7-3-3-5-7"
sodipodi:linespacing="122%"
inkscape:export-filename="/home/fabrizio/Desktop/kicad_logo_final.png"
inkscape:export-xdpi="130.52866"
inkscape:export-ydpi="130.52866"><tspan
sodipodi:role="line"
id="tspan3430-1-1-1-0-9-6"
x="47.593891"
y="1002.9949"
style="font-style:normal;font-variant:normal;font-weight:bold;font-stretch:normal;line-height:122.00000286%;letter-spacing:0px;fill:#1b2b63;fill-opacity:1;font-family:Tiresias LPfont;-inkscape-font-specification:Tiresias LPfont Bold"><tspan
id="tspan4498-9-7-2-7-3"
style="line-height:122.00000286%;letter-spacing:0px;fill:#ffffff;fill-opacity:1">Ki</tspan><tspan
id="tspan3647"
style="letter-spacing:-6.5999999px">Cad</tspan></tspan></text>
<rect
style="fill:#314cb0;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="rect4352-5-1"
width="28.315174"
height="27.030817"
x="135.29004"
y="906.65179"
rx="0"
ry="0"
inkscape:export-filename="/home/fabrizio/Desktop/kicad_logo_final.png"
inkscape:export-xdpi="130.52866"
inkscape:export-ydpi="130.52866" />
<path
sodipodi:type="arc"
style="fill:#ff7700;fill-opacity:1;fill-rule:nonzero;stroke:none"
id="path3552-6-3-7"
sodipodi:cx="504.82373"
sodipodi:cy="2430.9678"
sodipodi:rx="23.486046"
sodipodi:ry="14.142136"
d="m 528.30978,2430.9678 c 0,7.8105 -10.51506,14.1421 -23.48605,14.1421 -12.97098,0 -23.48605,-6.3316 -23.48605,-14.1421 0,-7.8105 10.51507,-14.1422 23.48605,-14.1422 12.97099,0 23.48605,6.3317 23.48605,14.1422 z"
transform="matrix(0.51052206,0,0,0.84532838,-108.54549,-1152.961)"
inkscape:export-filename="/home/fabrizio/Desktop/kicad_logo_final.png"
inkscape:export-xdpi="130.52866"
inkscape:export-ydpi="130.52866" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 5.0 KiB

View File

@ -0,0 +1,389 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="26"
width="26"
version="1.0"
id="svg2"
inkscape:version="0.48.2 r9819"
sodipodi:docname="pagelayout_load.svg">
<metadata
id="metadata133">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1280"
inkscape:window-height="977"
id="namedview131"
showgrid="true"
inkscape:snap-to-guides="false"
inkscape:snap-grids="false"
inkscape:zoom="13.333333"
inkscape:cx="7.6914467"
inkscape:cy="6.5192721"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1"
inkscape:current-layer="svg2">
<inkscape:grid
type="xygrid"
id="grid3110"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" />
</sodipodi:namedview>
<defs
id="defs4">
<filter
id="n"
color-interpolation-filters="sRGB">
<feGaussianBlur
stdDeviation="1.0394514"
id="feGaussianBlur7" />
</filter>
<marker
id="l"
refY="0"
refX="0"
overflow="visible"
orient="auto"
style="overflow:visible">
<path
d="M 5.77,0 -2.88,5 V -5 l 8.65,5 z"
transform="scale(-0.4,-0.4)"
id="path10"
inkscape:connector-curvature="0"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" />
</marker>
<marker
id="m"
refY="0"
refX="0"
overflow="visible"
orient="auto"
style="overflow:visible">
<path
d="M 5.77,0 -2.88,5 V -5 l 8.65,5 z"
transform="scale(0.4,0.4)"
id="path13"
inkscape:connector-curvature="0"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" />
</marker>
<linearGradient
id="o"
y2="94.537003"
gradientUnits="userSpaceOnUse"
x2="86.536003"
y1="102.34"
x1="94.344002">
<stop
stop-color="#fff"
offset="0"
id="stop16" />
<stop
stop-color="#555753"
offset="1"
id="stop18" />
</linearGradient>
<linearGradient
id="p"
y2="94.586998"
gradientUnits="userSpaceOnUse"
x2="86.586998"
y1="103"
x1="95">
<stop
stop-color="#fff"
offset="0"
id="stop21" />
<stop
stop-color="#555753"
offset="1"
id="stop23" />
</linearGradient>
<linearGradient
id="q"
y2="95.292999"
gradientUnits="userSpaceOnUse"
x2="87.292999"
y1="103"
x1="95">
<stop
stop-color="#fff"
offset="0"
id="stop26" />
<stop
stop-color="#393b38"
offset="1"
id="stop28" />
</linearGradient>
<linearGradient
id="r"
y2="96"
gradientUnits="userSpaceOnUse"
x2="88"
y1="104"
x1="96">
<stop
stop-color="#888a85"
offset="0"
id="stop31" />
<stop
stop-color="#8c8e89"
offset=".0072"
id="stop33" />
<stop
stop-color="#abaca9"
offset=".0673"
id="stop35" />
<stop
stop-color="#c5c6c4"
offset=".1347"
id="stop37" />
<stop
stop-color="#dbdbda"
offset=".2115"
id="stop39" />
<stop
stop-color="#ebebeb"
offset=".3012"
id="stop41" />
<stop
stop-color="#f7f7f6"
offset=".4122"
id="stop43" />
<stop
stop-color="#fdfdfd"
offset=".5679"
id="stop45" />
<stop
stop-color="#fff"
offset="1"
id="stop47" />
</linearGradient>
<radialGradient
id="t"
gradientUnits="userSpaceOnUse"
cy="112.3"
cx="102"
gradientTransform="matrix(0,-0.25288808,0.20993589,0,-0.32737717,29.222083)"
r="139.56">
<stop
stop-color="#535557"
offset="0"
id="stop50" />
<stop
stop-color="#898a8c"
offset=".11366"
id="stop52" />
<stop
stop-color="#ececec"
offset=".20297"
id="stop54" />
<stop
stop-color="#fafafa"
offset=".23630"
id="stop56" />
<stop
stop-color="#fff"
offset=".27220"
id="stop58" />
<stop
stop-color="#fafafa"
offset=".53130"
id="stop60" />
<stop
stop-color="#ebecec"
offset=".84490"
id="stop62" />
<stop
stop-color="#e1e2e3"
offset="1"
id="stop64" />
</radialGradient>
<radialGradient
id="u"
gradientUnits="userSpaceOnUse"
cy="112.3"
cx="102"
gradientTransform="matrix(0,-0.22456181,0.20619923,0,-0.06831569,26.261372)"
r="139.56">
<stop
stop-color="#00537d"
offset="0"
id="stop67" />
<stop
stop-color="#186389"
offset=".0151"
id="stop69" />
<stop
stop-color="#558ca8"
offset=".0558"
id="stop71" />
<stop
stop-color="#89afc3"
offset=".0964"
id="stop73" />
<stop
stop-color="#b3ccd8"
offset=".1357"
id="stop75" />
<stop
stop-color="#d4e2e9"
offset=".1737"
id="stop77" />
<stop
stop-color="#ecf2f5"
offset=".20990"
id="stop79" />
<stop
stop-color="#fafcfd"
offset=".24350"
id="stop81" />
<stop
stop-color="#fff"
offset=".27220"
id="stop83" />
</radialGradient>
<linearGradient
id="s"
y2="9.6875"
gradientUnits="userSpaceOnUse"
x2="-24.75"
gradientTransform="matrix(0,-0.25415316,0.20725536,0,4.9020693,-3.6748783)"
y1="11.566"
x1="-26.754">
<stop
stop-color="#fff"
offset="0"
id="stop86" />
<stop
stop-color="#fff"
stop-opacity="0"
offset="1"
id="stop88" />
</linearGradient>
<radialGradient
id="v"
gradientUnits="userSpaceOnUse"
cy="5.3000002"
cx="4"
gradientTransform="matrix(0,-0.47934299,0.24383045,0,4.0242988,12.475354)"
r="17">
<stop
stop-color="#fff"
offset="0"
id="stop91" />
<stop
stop-color="#fff"
stop-opacity="0"
offset="1"
id="stop93" />
</radialGradient>
</defs>
<rect
height="48"
width="48"
y="-64.449997"
x="-50.849998"
id="rect95"
style="opacity:0" />
<path
d="m 5.7311015,9.4059783 c 0,0.2181084 0.1394995,0.3891786 0.3173568,0.3891786 h 7.6555727 c 0.177857,0 0.317358,-0.1710702 0.317358,-0.3891786 V 1.5427882 c 0,-0.2181091 -0.139501,-0.3891784 -0.317358,-0.3891784 H 8.5292163 c -0.2884891,0 -0.8910636,0.1237663 -1.2759287,0.5956945 L 6.2161606,3.0205356 C 5.8315529,3.4924694 5.7306224,4.2314196 5.7306224,4.5851785 v 4.8210291 z"
id="path97"
inkscape:connector-curvature="0"
style="opacity:0.68015998;fill:url(#v)" />
<path
d="m 5.8347112,9.4059783 c 0,0.1482164 0.092868,0.2620982 0.2137317,0.2620982 h 7.6555741 c 0.120865,0 0.213731,-0.1138818 0.213731,-0.2620982 V 1.5427882 c 0,-0.1482173 -0.09286,-0.262099 -0.213731,-0.262099 H 8.529201 c -0.2650831,0 -0.8508769,0.1221125 -1.2046748,0.5559925 L 6.2879146,3.1079128 C 5.9339621,3.5417326 5.8343712,4.260093 5.8343712,4.5851566 v 4.8210292 z"
id="path99"
inkscape:connector-curvature="0"
style="fill:none;stroke:url(#s);stroke-width:0.2295121" />
<path
d="m 23,9 0.04082,112 h 61.131 c 0.53,0 1.039,-0.211 1.414,-0.586 l 32.824,-32.824 c 0.38,-0.375 0.59,-0.884 0.59,-1.414 V 9.016 h -96 z"
transform="matrix(0,-0.2662987,0.22165967,0,-1.6902875,31.992085)"
id="path101"
inkscape:connector-curvature="0"
style="opacity:0.7;fill:#000000;fill-opacity:1;filter:url(#n)" />
<path
d="M 1.5812474,22.668265 H 24.675438 V 8.9311466 c 0,-0.1190174 -0.04352,-0.2333188 -0.120832,-0.3175342 L 17.785867,1.2416023 C 17.70847,1.1576052 17.603382,1.1102357 17.494203,1.1102357 H 1.5813858 V 22.668381 z"
id="path103"
inkscape:connector-curvature="0"
style="fill:url(#u)" />
<path
d="m 1.5620727,24.670276 c 0,0.139336 0.094258,0.252887 0.2099358,0.252887 H 24.4453 c 0.11589,0 0.209935,-0.113551 0.209935,-0.252887 V 9.7065431 c 0,-0.066509 -0.02224,-0.1317571 -0.06151,-0.1787888 l -6.89155,-8.3019261 c -0.03934,-0.047436 -0.09356,-0.074212 -0.148834,-0.074212 H 1.7721307 c -0.1156762,0 -0.2099358,0.1132939 -0.2099358,0.2528881 V 24.670163 z"
id="path105"
inkscape:connector-curvature="0"
style="fill:url(#t)" />
<path
d="m 8.8893243,24.768584 v -7.00828 H 24.643157"
id="path107"
inkscape:connector-curvature="0"
style="fill:none;stroke:#723137;stroke-width:1.21292329;stroke-opacity:1" />
<path
d="M 23.303472,20.907878 H 20.154997"
id="path109"
inkscape:connector-curvature="0"
style="fill:none;stroke:#6e2716;stroke-width:1.45951974px;stroke-opacity:1" />
<path
d="M 17.114466,20.966273 H 11.274947"
id="path111"
inkscape:connector-curvature="0"
style="fill:none;stroke:#632716;stroke-width:1.61190331px;stroke-opacity:1" />
<path
d="M 24.683227,23.990214 H 20.235589"
id="path113"
inkscape:connector-curvature="0"
style="fill:none;stroke:#822716;stroke-width:1.47296751px;stroke-opacity:1" />
<path
d="M 18.660247,24.039958 H 11.218576"
id="path115"
inkscape:connector-curvature="0"
style="fill:none;stroke:#685b00;stroke-width:1.41399999999999990;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
<g
transform="matrix(0,-0.25415314,0.20725537,0,-0.1950509,29.653459)"
id="g117">
<path
d="M 111.41,86.586 C 111.66,86.336 93.035,93 88,93 c -1.654,0 -3,1.346 -3,3 0,5.035 -6.664,23.664 -6.414,23.414 l 32.828,-32.828 z"
id="path119"
inkscape:connector-curvature="0"
style="opacity:0.1;fill:url(#o)" />
<path
d="M 111.41,86.586 C 111.79,86.211 97.444,94 88,94 c -1.103,0 -2,0.897 -2,2 0,9.444 -7.789,23.789 -7.414,23.414 l 32.828,-32.828 z"
id="path121"
inkscape:connector-curvature="0"
style="opacity:0.1;fill:url(#p)" />
<path
d="M 111.41,86.586 C 111.65,86.347 97.807,95 88,95 c -0.553,0 -1,0.447 -1,1 0,9.807 -8.653,23.653 -8.414,23.414 l 32.828,-32.828 z"
id="path123"
inkscape:connector-curvature="0"
style="opacity:0.1;fill:url(#q)" />
<path
d="m 78.586,119.41 c 0,0 11.914,-9.914 17.414,-15.414 5.5,-5.5 15.414,-17.414 15.414,-17.414 0,0 -13.164,9.414 -23.414,9.414 0,10.25 -9.414,23.414 -9.414,23.414 z"
id="path125"
inkscape:connector-curvature="0"
style="fill:url(#r)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 12 KiB

View File

@ -0,0 +1,583 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="26"
width="26"
version="1.0"
id="svg2"
inkscape:version="0.48.2 r9819"
sodipodi:docname="pagelayout_load.svg">
<metadata
id="metadata133">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1280"
inkscape:window-height="977"
id="namedview131"
showgrid="true"
inkscape:snap-to-guides="false"
inkscape:snap-grids="false"
inkscape:zoom="13.333333"
inkscape:cx="7.6914467"
inkscape:cy="6.5192721"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1"
inkscape:current-layer="svg2">
<inkscape:grid
type="xygrid"
id="grid3110"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" />
</sodipodi:namedview>
<defs
id="defs4">
<filter
id="n"
color-interpolation-filters="sRGB">
<feGaussianBlur
stdDeviation="1.0394514"
id="feGaussianBlur7" />
</filter>
<marker
id="l"
refY="0"
refX="0"
overflow="visible"
orient="auto"
style="overflow:visible">
<path
d="M 5.77,0 -2.88,5 V -5 l 8.65,5 z"
transform="scale(-0.4,-0.4)"
id="path10"
inkscape:connector-curvature="0"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" />
</marker>
<marker
id="m"
refY="0"
refX="0"
overflow="visible"
orient="auto"
style="overflow:visible">
<path
d="M 5.77,0 -2.88,5 V -5 l 8.65,5 z"
transform="scale(0.4,0.4)"
id="path13"
inkscape:connector-curvature="0"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" />
</marker>
<linearGradient
id="o"
y2="94.537003"
gradientUnits="userSpaceOnUse"
x2="86.536003"
y1="102.34"
x1="94.344002">
<stop
stop-color="#fff"
offset="0"
id="stop16" />
<stop
stop-color="#555753"
offset="1"
id="stop18" />
</linearGradient>
<linearGradient
id="p"
y2="94.586998"
gradientUnits="userSpaceOnUse"
x2="86.586998"
y1="103"
x1="95">
<stop
stop-color="#fff"
offset="0"
id="stop21" />
<stop
stop-color="#555753"
offset="1"
id="stop23" />
</linearGradient>
<linearGradient
id="q"
y2="95.292999"
gradientUnits="userSpaceOnUse"
x2="87.292999"
y1="103"
x1="95">
<stop
stop-color="#fff"
offset="0"
id="stop26" />
<stop
stop-color="#393b38"
offset="1"
id="stop28" />
</linearGradient>
<linearGradient
id="r"
y2="96"
gradientUnits="userSpaceOnUse"
x2="88"
y1="104"
x1="96">
<stop
stop-color="#888a85"
offset="0"
id="stop31" />
<stop
stop-color="#8c8e89"
offset=".0072"
id="stop33" />
<stop
stop-color="#abaca9"
offset=".0673"
id="stop35" />
<stop
stop-color="#c5c6c4"
offset=".1347"
id="stop37" />
<stop
stop-color="#dbdbda"
offset=".2115"
id="stop39" />
<stop
stop-color="#ebebeb"
offset=".3012"
id="stop41" />
<stop
stop-color="#f7f7f6"
offset=".4122"
id="stop43" />
<stop
stop-color="#fdfdfd"
offset=".5679"
id="stop45" />
<stop
stop-color="#fff"
offset="1"
id="stop47" />
</linearGradient>
<radialGradient
id="t"
gradientUnits="userSpaceOnUse"
cy="112.3"
cx="102"
gradientTransform="matrix(0,-0.25288808,0.20993589,0,-0.32737717,29.222083)"
r="139.56">
<stop
stop-color="#535557"
offset="0"
id="stop50" />
<stop
stop-color="#898a8c"
offset=".11366"
id="stop52" />
<stop
stop-color="#ececec"
offset=".20297"
id="stop54" />
<stop
stop-color="#fafafa"
offset=".23630"
id="stop56" />
<stop
stop-color="#fff"
offset=".27220"
id="stop58" />
<stop
stop-color="#fafafa"
offset=".53130"
id="stop60" />
<stop
stop-color="#ebecec"
offset=".84490"
id="stop62" />
<stop
stop-color="#e1e2e3"
offset="1"
id="stop64" />
</radialGradient>
<radialGradient
id="u"
gradientUnits="userSpaceOnUse"
cy="112.3"
cx="102"
gradientTransform="matrix(0,-0.22456181,0.20619923,0,-0.06831569,26.261372)"
r="139.56">
<stop
stop-color="#00537d"
offset="0"
id="stop67" />
<stop
stop-color="#186389"
offset=".0151"
id="stop69" />
<stop
stop-color="#558ca8"
offset=".0558"
id="stop71" />
<stop
stop-color="#89afc3"
offset=".0964"
id="stop73" />
<stop
stop-color="#b3ccd8"
offset=".1357"
id="stop75" />
<stop
stop-color="#d4e2e9"
offset=".1737"
id="stop77" />
<stop
stop-color="#ecf2f5"
offset=".20990"
id="stop79" />
<stop
stop-color="#fafcfd"
offset=".24350"
id="stop81" />
<stop
stop-color="#fff"
offset=".27220"
id="stop83" />
</radialGradient>
<linearGradient
id="s"
y2="9.6875"
gradientUnits="userSpaceOnUse"
x2="-24.75"
gradientTransform="matrix(0,-0.25415316,0.20725536,0,4.9020693,-3.6748783)"
y1="11.566"
x1="-26.754">
<stop
stop-color="#fff"
offset="0"
id="stop86" />
<stop
stop-color="#fff"
stop-opacity="0"
offset="1"
id="stop88" />
</linearGradient>
<radialGradient
id="v"
gradientUnits="userSpaceOnUse"
cy="5.3000002"
cx="4"
gradientTransform="matrix(0,-0.47934299,0.24383045,0,4.0242988,12.475354)"
r="17">
<stop
stop-color="#fff"
offset="0"
id="stop91" />
<stop
stop-color="#fff"
stop-opacity="0"
offset="1"
id="stop93" />
</radialGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#i"
id="linearGradient3123"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(6.3922,12.185)"
x1="28.079"
y1="12.338"
x2="30.431999"
y2="14.691" />
<linearGradient
id="i"
y2="14.691"
gradientUnits="userSpaceOnUse"
x2="30.431999"
gradientTransform="translate(6.3922,12.185)"
y1="12.338"
x1="28.079">
<stop
stop-color="#fcaf3e"
offset="0"
id="stop7" />
<stop
stop-color="#ce5c00"
offset="1"
id="stop9" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#j"
id="linearGradient3125"
gradientUnits="userSpaceOnUse"
gradientTransform="translate(6.3922,12.185)"
x1="23.448"
y1="21.481001"
x2="22.809999"
y2="22.118999" />
<linearGradient
id="j"
y2="22.118999"
gradientUnits="userSpaceOnUse"
x2="22.809999"
gradientTransform="translate(6.3922,12.185)"
y1="21.481001"
x1="23.448">
<stop
stop-color="#ce5c00"
offset="0"
id="stop12" />
<stop
stop-color="#ce5c00"
offset="1"
id="stop14" />
</linearGradient>
<linearGradient
inkscape:collect="always"
xlink:href="#k"
id="linearGradient3127"
gradientUnits="userSpaceOnUse"
x1="26.379"
y1="34.389999"
x2="25.485001"
y2="32.714001" />
<linearGradient
id="k"
y2="32.714001"
gradientUnits="userSpaceOnUse"
x2="25.485001"
y1="34.389999"
x1="26.379">
<stop
stop-color="#e9b96e"
offset="0"
id="stop17" />
<stop
stop-color="#fff"
offset="1"
id="stop19" />
</linearGradient>
<radialGradient
inkscape:collect="always"
xlink:href="#n-1"
id="radialGradient3129"
gradientUnits="userSpaceOnUse"
gradientTransform="matrix(0.35473,-0.34328,0.35696,0.34544,130.15,-71.026)"
cx="-138.84"
cy="128"
r="9.1267004" />
<radialGradient
id="n-1"
gradientUnits="userSpaceOnUse"
cy="128"
cx="-138.84"
gradientTransform="matrix(0.35473,-0.34328,0.35696,0.34544,130.15,-71.026)"
r="9.1267004">
<stop
stop-color="#f9a9a9"
offset="0"
id="stop22" />
<stop
stop-color="#ab5f5f"
offset="1"
id="stop24" />
</radialGradient>
<linearGradient
y2="134.25"
x2="-158.75"
y1="115.94"
x1="-158.75"
gradientTransform="matrix(0.20949,-0.20274,0.20949,0.20274,129.28,-31.999)"
gradientUnits="userSpaceOnUse"
id="linearGradient6083"
xlink:href="#l-7"
inkscape:collect="always" />
<linearGradient
id="l-7"
y2="134.25"
gradientUnits="userSpaceOnUse"
x2="-158.75"
gradientTransform="matrix(0.20949,-0.20274,0.20949,0.20274,129.28,-31.999)"
y1="115.94"
x1="-158.75">
<stop
stop-color="#ddd"
offset="0"
id="stop27" />
<stop
stop-color="#fff"
offset=".34468"
id="stop29" />
<stop
stop-color="#737373"
offset=".72695"
id="stop31-4" />
<stop
stop-color="#bbb"
offset="1"
id="stop33-0" />
</linearGradient>
</defs>
<rect
height="48"
width="48"
y="-64.449997"
x="-50.849998"
id="rect95"
style="opacity:0" />
<path
d="m 5.7311015,9.4059783 c 0,0.2181084 0.1394995,0.3891786 0.3173568,0.3891786 h 7.6555727 c 0.177857,0 0.317358,-0.1710702 0.317358,-0.3891786 V 1.5427882 c 0,-0.2181091 -0.139501,-0.3891784 -0.317358,-0.3891784 H 8.5292163 c -0.2884891,0 -0.8910636,0.1237663 -1.2759287,0.5956945 L 6.2161606,3.0205356 C 5.8315529,3.4924694 5.7306224,4.2314196 5.7306224,4.5851785 v 4.8210291 z"
id="path97"
inkscape:connector-curvature="0"
style="opacity:0.68015998;fill:url(#v)" />
<path
d="m 5.8347112,9.4059783 c 0,0.1482164 0.092868,0.2620982 0.2137317,0.2620982 h 7.6555741 c 0.120865,0 0.213731,-0.1138818 0.213731,-0.2620982 V 1.5427882 c 0,-0.1482173 -0.09286,-0.262099 -0.213731,-0.262099 H 8.529201 c -0.2650831,0 -0.8508769,0.1221125 -1.2046748,0.5559925 L 6.2879146,3.1079128 C 5.9339621,3.5417326 5.8343712,4.260093 5.8343712,4.5851566 v 4.8210292 z"
id="path99"
inkscape:connector-curvature="0"
style="fill:none;stroke:url(#s);stroke-width:0.2295121" />
<path
d="m 23,9 0.04082,112 h 61.131 c 0.53,0 1.039,-0.211 1.414,-0.586 l 32.824,-32.824 c 0.38,-0.375 0.59,-0.884 0.59,-1.414 V 9.016 h -96 z"
transform="matrix(0,-0.2662987,0.22165967,0,-1.6902875,31.992085)"
id="path101"
inkscape:connector-curvature="0"
style="opacity:0.7;fill:#000000;fill-opacity:1;filter:url(#n)" />
<path
d="M 1.5812474,22.668265 H 24.675438 V 8.9311466 c 0,-0.1190174 -0.04352,-0.2333188 -0.120832,-0.3175342 L 17.785867,1.2416023 C 17.70847,1.1576052 17.603382,1.1102357 17.494203,1.1102357 H 1.5813858 V 22.668381 z"
id="path103"
inkscape:connector-curvature="0"
style="fill:url(#u)" />
<path
d="m 1.5620727,24.670276 c 0,0.139336 0.094258,0.252887 0.2099358,0.252887 H 24.4453 c 0.11589,0 0.209935,-0.113551 0.209935,-0.252887 V 9.7065431 c 0,-0.066509 -0.02224,-0.1317571 -0.06151,-0.1787888 l -6.89155,-8.3019261 c -0.03934,-0.047436 -0.09356,-0.074212 -0.148834,-0.074212 H 1.7721307 c -0.1156762,0 -0.2099358,0.1132939 -0.2099358,0.2528881 V 24.670163 z"
id="path105"
inkscape:connector-curvature="0"
style="fill:url(#t)" />
<g
transform="matrix(1.9949084,0,0,1.8969299,-12.850318,12.075556)"
id="g3116">
<g
id="g80"
transform="matrix(-0.01590305,0.31722884,-0.28308523,-0.01135621,24.312087,-35.376634)">
<g
id="g82"
transform="matrix(1.1072,0,0,1.0714,74.214,8.4286)">
<path
inkscape:connector-curvature="0"
style="fill:url(#linearGradient3123);fill-rule:evenodd;stroke:url(#linearGradient3125);stroke-linejoin:round"
id="path84-1"
d="m 25.892,30.185 19,-19 c 2.175,0.35996 3.0847,1.7322 3.5,3.5 l -19,19 -4.6161,0.7045 1.1161,-4.2045 z" />
<path
style="opacity:0.28235001;fill:none;stroke:#ffffff"
inkscape:connector-curvature="0"
id="path86"
d="M 26.792,30.685 45.29,12.287 c 1.0897,0.17844 1.5173,0.98794 2,2 l -18.398,18.498 -3.3,0.9 1.2,-3 z" />
<path
inkscape:connector-curvature="0"
style="fill:url(#linearGradient3127);fill-rule:evenodd"
id="path88"
d="m 24.55,34.633 1.6663,-4.1803 c 0,0 1.1995,0.24536 1.9322,0.97509 0.73264,0.72973 0.99839,1.9438 0.99839,1.9438 l -4.5969,1.2614 z" />
<path
style="fill:none;stroke:#e9b96e;stroke-linecap:round;stroke-linejoin:round"
inkscape:connector-curvature="0"
id="path90"
transform="translate(6.3922,12.185)"
d="m 23,21.5 -5.5,1.5 2,-5" />
<path
style="fill-rule:evenodd"
inkscape:connector-curvature="0"
id="path92"
d="m 23.955,33.685 -0.90625,2.25 2.3438,-0.65625 c 0.002,-0.03184 0,-0.06141 0,-0.09375 0,-0.80212 -0.64531,-1.4598 -1.4375,-1.5 z" />
</g>
<path
inkscape:connector-curvature="0"
id="path94"
d="m 121.62,22.515 c 2.0307,-0.53628 4.3014,1.7694 3.8196,3.6963 l 2.4306,-2.3522 c 1.1808,-2.6427 -1.2536,-4.7247 -3.8692,-3.7443 l -2.381,2.4002 z"
style="fill:url(#radialGradient3129);stroke:#ef2929;stroke-width:1.0891;enable-background:new" />
<path
inkscape:connector-curvature="0"
id="path96"
d="m 119.12,24.769 c 2.144,-0.56623 4.5413,1.8683 4.0326,3.9028 l 2.5662,-2.4836 c 0.8353,-1.7098 -2.2637,-4.6473 -4.085,-3.9535 l -2.52,2.535 z"
style="fill:url(#linearGradient6083);stroke:#888a85;stroke-width:1.0891;enable-background:new" />
</g>
<path
inkscape:connector-curvature="0"
id="path82"
transform="matrix(0.61624,0,0,0.61624,5.7296,-4.1188)"
d="M 12,5.5 9.4826,4.1505 6.9438,5.4592 7.4494,2.648 5.4202,0.6379 8.25,0.25 9.5347,-2.301 10.778,0.2704 13.601,0.70392 11.54,2.68102 z"
style="fill:#ebeb00" />
</g>
<path
d="m 8.8893243,24.768584 v -7.00828 H 24.643157"
id="path107"
inkscape:connector-curvature="0"
style="fill:none;stroke:#723137;stroke-width:1.21292329;stroke-opacity:1" />
<path
d="M 23.303472,20.907878 H 20.154997"
id="path109"
inkscape:connector-curvature="0"
style="fill:none;stroke:#6e2716;stroke-width:1.45951974px;stroke-opacity:1" />
<path
d="M 17.114466,20.966273 H 11.274947"
id="path111"
inkscape:connector-curvature="0"
style="fill:none;stroke:#632716;stroke-width:1.61190331px;stroke-opacity:1" />
<path
d="M 24.683227,23.990214 H 20.235589"
id="path113"
inkscape:connector-curvature="0"
style="fill:none;stroke:#822716;stroke-width:1.47296751px;stroke-opacity:1" />
<path
d="M 18.660247,24.039958 H 11.218576"
id="path115"
inkscape:connector-curvature="0"
style="fill:none;stroke:#685b00;stroke-width:1.41399999999999990;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
<g
transform="matrix(0,-0.25415314,0.20725537,0,-0.1950509,29.653459)"
id="g117">
<path
d="M 111.41,86.586 C 111.66,86.336 93.035,93 88,93 c -1.654,0 -3,1.346 -3,3 0,5.035 -6.664,23.664 -6.414,23.414 l 32.828,-32.828 z"
id="path119"
inkscape:connector-curvature="0"
style="opacity:0.1;fill:url(#o)" />
<path
d="M 111.41,86.586 C 111.79,86.211 97.444,94 88,94 c -1.103,0 -2,0.897 -2,2 0,9.444 -7.789,23.789 -7.414,23.414 l 32.828,-32.828 z"
id="path121"
inkscape:connector-curvature="0"
style="opacity:0.1;fill:url(#p)" />
<path
d="M 111.41,86.586 C 111.65,86.347 97.807,95 88,95 c -0.553,0 -1,0.447 -1,1 0,9.807 -8.653,23.653 -8.414,23.414 l 32.828,-32.828 z"
id="path123"
inkscape:connector-curvature="0"
style="opacity:0.1;fill:url(#q)" />
<path
d="m 78.586,119.41 c 0,0 11.914,-9.914 17.414,-15.414 5.5,-5.5 15.414,-17.414 15.414,-17.414 0,0 -13.164,9.414 -23.414,9.414 0,10.25 -9.414,23.414 -9.414,23.414 z"
id="path125"
inkscape:connector-curvature="0"
style="fill:url(#r)" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 18 KiB

View File

@ -0,0 +1,411 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="26"
width="26"
version="1.0"
id="svg2"
inkscape:version="0.48.2 r9819"
sodipodi:docname="pagelayout_new.svg">
<metadata
id="metadata133">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1280"
inkscape:window-height="977"
id="namedview131"
showgrid="true"
inkscape:snap-to-guides="false"
inkscape:snap-grids="false"
inkscape:zoom="13.333333"
inkscape:cx="7.6914467"
inkscape:cy="6.5192721"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1"
inkscape:current-layer="svg2">
<inkscape:grid
type="xygrid"
id="grid3110"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" />
</sodipodi:namedview>
<defs
id="defs4">
<filter
id="n"
color-interpolation-filters="sRGB">
<feGaussianBlur
stdDeviation="1.0394514"
id="feGaussianBlur7" />
</filter>
<marker
id="l"
refY="0"
refX="0"
overflow="visible"
orient="auto"
style="overflow:visible">
<path
d="M 5.77,0 -2.88,5 V -5 l 8.65,5 z"
transform="scale(-0.4,-0.4)"
id="path10"
inkscape:connector-curvature="0"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" />
</marker>
<marker
id="m"
refY="0"
refX="0"
overflow="visible"
orient="auto"
style="overflow:visible">
<path
d="M 5.77,0 -2.88,5 V -5 l 8.65,5 z"
transform="scale(0.4,0.4)"
id="path13"
inkscape:connector-curvature="0"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" />
</marker>
<linearGradient
id="o"
y2="94.537003"
gradientUnits="userSpaceOnUse"
x2="86.536003"
y1="102.34"
x1="94.344002">
<stop
stop-color="#fff"
offset="0"
id="stop16" />
<stop
stop-color="#555753"
offset="1"
id="stop18" />
</linearGradient>
<linearGradient
id="p"
y2="94.586998"
gradientUnits="userSpaceOnUse"
x2="86.586998"
y1="103"
x1="95">
<stop
stop-color="#fff"
offset="0"
id="stop21" />
<stop
stop-color="#555753"
offset="1"
id="stop23" />
</linearGradient>
<linearGradient
id="q"
y2="95.292999"
gradientUnits="userSpaceOnUse"
x2="87.292999"
y1="103"
x1="95">
<stop
stop-color="#fff"
offset="0"
id="stop26" />
<stop
stop-color="#393b38"
offset="1"
id="stop28" />
</linearGradient>
<linearGradient
id="r"
y2="96"
gradientUnits="userSpaceOnUse"
x2="88"
y1="104"
x1="96">
<stop
stop-color="#888a85"
offset="0"
id="stop31" />
<stop
stop-color="#8c8e89"
offset=".0072"
id="stop33" />
<stop
stop-color="#abaca9"
offset=".0673"
id="stop35" />
<stop
stop-color="#c5c6c4"
offset=".1347"
id="stop37" />
<stop
stop-color="#dbdbda"
offset=".2115"
id="stop39" />
<stop
stop-color="#ebebeb"
offset=".3012"
id="stop41" />
<stop
stop-color="#f7f7f6"
offset=".4122"
id="stop43" />
<stop
stop-color="#fdfdfd"
offset=".5679"
id="stop45" />
<stop
stop-color="#fff"
offset="1"
id="stop47" />
</linearGradient>
<radialGradient
id="t"
gradientUnits="userSpaceOnUse"
cy="112.3"
cx="102"
gradientTransform="matrix(0,-0.25288808,0.20993589,0,-0.32737717,29.222083)"
r="139.56">
<stop
stop-color="#535557"
offset="0"
id="stop50" />
<stop
stop-color="#898a8c"
offset=".11366"
id="stop52" />
<stop
stop-color="#ececec"
offset=".20297"
id="stop54" />
<stop
stop-color="#fafafa"
offset=".23630"
id="stop56" />
<stop
stop-color="#fff"
offset=".27220"
id="stop58" />
<stop
stop-color="#fafafa"
offset=".53130"
id="stop60" />
<stop
stop-color="#ebecec"
offset=".84490"
id="stop62" />
<stop
stop-color="#e1e2e3"
offset="1"
id="stop64" />
</radialGradient>
<radialGradient
id="u"
gradientUnits="userSpaceOnUse"
cy="112.3"
cx="102"
gradientTransform="matrix(0,-0.22456181,0.20619923,0,-0.06831569,26.261372)"
r="139.56">
<stop
stop-color="#00537d"
offset="0"
id="stop67" />
<stop
stop-color="#186389"
offset=".0151"
id="stop69" />
<stop
stop-color="#558ca8"
offset=".0558"
id="stop71" />
<stop
stop-color="#89afc3"
offset=".0964"
id="stop73" />
<stop
stop-color="#b3ccd8"
offset=".1357"
id="stop75" />
<stop
stop-color="#d4e2e9"
offset=".1737"
id="stop77" />
<stop
stop-color="#ecf2f5"
offset=".20990"
id="stop79" />
<stop
stop-color="#fafcfd"
offset=".24350"
id="stop81" />
<stop
stop-color="#fff"
offset=".27220"
id="stop83" />
</radialGradient>
<linearGradient
id="s"
y2="9.6875"
gradientUnits="userSpaceOnUse"
x2="-24.75"
gradientTransform="matrix(0,-0.25415316,0.20725536,0,4.9020693,-3.6748783)"
y1="11.566"
x1="-26.754">
<stop
stop-color="#fff"
offset="0"
id="stop86" />
<stop
stop-color="#fff"
stop-opacity="0"
offset="1"
id="stop88" />
</linearGradient>
<radialGradient
id="v"
gradientUnits="userSpaceOnUse"
cy="5.3000002"
cx="4"
gradientTransform="matrix(0,-0.47934299,0.24383045,0,4.0242988,12.475354)"
r="17">
<stop
stop-color="#fff"
offset="0"
id="stop91" />
<stop
stop-color="#fff"
stop-opacity="0"
offset="1"
id="stop93" />
</radialGradient>
</defs>
<rect
height="48"
width="48"
y="-64.449997"
x="-50.849998"
id="rect95"
style="opacity:0" />
<path
d="m 5.7311015,9.4059783 c 0,0.2181084 0.1394995,0.3891786 0.3173568,0.3891786 h 7.6555727 c 0.177857,0 0.317358,-0.1710702 0.317358,-0.3891786 V 1.5427882 c 0,-0.2181091 -0.139501,-0.3891784 -0.317358,-0.3891784 H 8.5292163 c -0.2884891,0 -0.8910636,0.1237663 -1.2759287,0.5956945 L 6.2161606,3.0205356 C 5.8315529,3.4924694 5.7306224,4.2314196 5.7306224,4.5851785 v 4.8210291 z"
id="path97"
inkscape:connector-curvature="0"
style="opacity:0.68015998;fill:url(#v)" />
<path
d="m 5.8347112,9.4059783 c 0,0.1482164 0.092868,0.2620982 0.2137317,0.2620982 h 7.6555741 c 0.120865,0 0.213731,-0.1138818 0.213731,-0.2620982 V 1.5427882 c 0,-0.1482173 -0.09286,-0.262099 -0.213731,-0.262099 H 8.529201 c -0.2650831,0 -0.8508769,0.1221125 -1.2046748,0.5559925 L 6.2879146,3.1079128 C 5.9339621,3.5417326 5.8343712,4.260093 5.8343712,4.5851566 v 4.8210292 z"
id="path99"
inkscape:connector-curvature="0"
style="fill:none;stroke:url(#s);stroke-width:0.2295121" />
<path
d="m 23,9 0.04082,112 h 61.131 c 0.53,0 1.039,-0.211 1.414,-0.586 l 32.824,-32.824 c 0.38,-0.375 0.59,-0.884 0.59,-1.414 V 9.016 h -96 z"
transform="matrix(0,-0.2662987,0.22165967,0,-1.6902875,31.992085)"
id="path101"
inkscape:connector-curvature="0"
style="opacity:0.7;fill:#000000;fill-opacity:1;filter:url(#n)" />
<path
d="M 1.5812474,22.668265 H 24.675438 V 8.9311466 c 0,-0.1190174 -0.04352,-0.2333188 -0.120832,-0.3175342 L 17.785867,1.2416023 C 17.70847,1.1576052 17.603382,1.1102357 17.494203,1.1102357 H 1.5813858 V 22.668381 z"
id="path103"
inkscape:connector-curvature="0"
style="fill:url(#u)" />
<path
d="m 1.5620727,24.670276 c 0,0.139336 0.094258,0.252887 0.2099358,0.252887 H 24.4453 c 0.11589,0 0.209935,-0.113551 0.209935,-0.252887 V 9.7065431 c 0,-0.066509 -0.02224,-0.1317571 -0.06151,-0.1787888 l -6.89155,-8.3019261 c -0.03934,-0.047436 -0.09356,-0.074212 -0.148834,-0.074212 H 1.7721307 c -0.1156762,0 -0.2099358,0.1132939 -0.2099358,0.2528881 V 24.670163 z"
id="path105"
inkscape:connector-curvature="0"
style="fill:url(#t)" />
<path
d="m 8.8893243,24.768584 v -7.00828 H 24.643157"
id="path107"
inkscape:connector-curvature="0"
style="fill:none;stroke:#723137;stroke-width:1.21292329;stroke-opacity:1" />
<path
d="M 23.303472,20.907878 H 20.154997"
id="path109"
inkscape:connector-curvature="0"
style="fill:none;stroke:#6e2716;stroke-width:1.45951974px;stroke-opacity:1" />
<path
d="M 17.114466,20.966273 H 11.274947"
id="path111"
inkscape:connector-curvature="0"
style="fill:none;stroke:#632716;stroke-width:1.61190331px;stroke-opacity:1" />
<path
d="M 24.683227,23.990214 H 20.235589"
id="path113"
inkscape:connector-curvature="0"
style="fill:none;stroke:#822716;stroke-width:1.47296751px;stroke-opacity:1" />
<path
d="M 18.660247,24.039958 H 11.218576"
id="path115"
inkscape:connector-curvature="0"
style="fill:none;stroke:#685b00;stroke-width:1.41399999999999990;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
<g
transform="matrix(0,-0.25415314,0.20725537,0,-0.1950509,29.653459)"
id="g117">
<path
d="M 111.41,86.586 C 111.66,86.336 93.035,93 88,93 c -1.654,0 -3,1.346 -3,3 0,5.035 -6.664,23.664 -6.414,23.414 l 32.828,-32.828 z"
id="path119"
inkscape:connector-curvature="0"
style="opacity:0.1;fill:url(#o)" />
<path
d="M 111.41,86.586 C 111.79,86.211 97.444,94 88,94 c -1.103,0 -2,0.897 -2,2 0,9.444 -7.789,23.789 -7.414,23.414 l 32.828,-32.828 z"
id="path121"
inkscape:connector-curvature="0"
style="opacity:0.1;fill:url(#p)" />
<path
d="M 111.41,86.586 C 111.65,86.347 97.807,95 88,95 c -0.553,0 -1,0.447 -1,1 0,9.807 -8.653,23.653 -8.414,23.414 l 32.828,-32.828 z"
id="path123"
inkscape:connector-curvature="0"
style="opacity:0.1;fill:url(#q)" />
<path
d="m 78.586,119.41 c 0,0 11.914,-9.914 17.414,-15.414 5.5,-5.5 15.414,-17.414 15.414,-17.414 0,0 -13.164,9.414 -23.414,9.414 0,10.25 -9.414,23.414 -9.414,23.414 z"
id="path125"
inkscape:connector-curvature="0"
style="fill:url(#r)" />
</g>
<g
transform="matrix(2.7131836,0,0,2.7245364,-20.984313,18.373877)"
id="g78">
<path
style="fill:#afaf00"
d="M 12,5.5 9.4826,4.1505 6.9438,5.4592 7.4494,2.648 5.4202,0.6379 8.25,0.25 9.5347,-2.301 10.778,0.2704 13.601,0.70392 11.54,2.68102 z"
transform="matrix(0.86499,0,0,0.86499,3.3638,-4.5167)"
id="path80"
inkscape:connector-curvature="0" />
<path
style="fill:#ebeb00"
d="M 12,5.5 9.4826,4.1505 6.9438,5.4592 7.4494,2.648 5.4202,0.6379 8.25,0.25 9.5347,-2.301 10.778,0.2704 13.601,0.70392 11.54,2.68102 z"
transform="matrix(0.61624,0,0,0.61624,5.7296,-4.1188)"
id="path82"
inkscape:connector-curvature="0" />
<path
style="fill:#ffff00"
d="M 12,5.5 9.4826,4.1505 6.9438,5.4592 7.4494,2.648 5.4202,0.6379 8.25,0.25 9.5347,-2.301 10.778,0.2704 13.601,0.70392 11.54,2.68102 z"
transform="matrix(0.3815,0,0,0.3815,7.9622,-3.7434)"
id="path84"
inkscape:connector-curvature="0" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -0,0 +1,414 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="26"
width="26"
version="1.0"
id="svg2"
inkscape:version="0.48.2 r9819"
sodipodi:docname="pagelayout_normal_viewload.svg">
<metadata
id="metadata133">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1280"
inkscape:window-height="977"
id="namedview131"
showgrid="true"
inkscape:snap-to-guides="false"
inkscape:snap-grids="false"
inkscape:zoom="13.333333"
inkscape:cx="7.6914467"
inkscape:cy="6.5192721"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1"
inkscape:current-layer="svg2">
<inkscape:grid
type="xygrid"
id="grid3110"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" />
</sodipodi:namedview>
<defs
id="defs4">
<filter
id="n"
color-interpolation-filters="sRGB">
<feGaussianBlur
stdDeviation="1.0394514"
id="feGaussianBlur7" />
</filter>
<marker
id="l"
refY="0"
refX="0"
overflow="visible"
orient="auto"
style="overflow:visible">
<path
d="M 5.77,0 -2.88,5 V -5 l 8.65,5 z"
transform="scale(-0.4,-0.4)"
id="path10"
inkscape:connector-curvature="0"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" />
</marker>
<marker
id="m"
refY="0"
refX="0"
overflow="visible"
orient="auto"
style="overflow:visible">
<path
d="M 5.77,0 -2.88,5 V -5 l 8.65,5 z"
transform="scale(0.4,0.4)"
id="path13"
inkscape:connector-curvature="0"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" />
</marker>
<linearGradient
id="o"
y2="94.537003"
gradientUnits="userSpaceOnUse"
x2="86.536003"
y1="102.34"
x1="94.344002">
<stop
stop-color="#fff"
offset="0"
id="stop16" />
<stop
stop-color="#555753"
offset="1"
id="stop18" />
</linearGradient>
<linearGradient
id="p"
y2="94.586998"
gradientUnits="userSpaceOnUse"
x2="86.586998"
y1="103"
x1="95">
<stop
stop-color="#fff"
offset="0"
id="stop21" />
<stop
stop-color="#555753"
offset="1"
id="stop23" />
</linearGradient>
<linearGradient
id="q"
y2="95.292999"
gradientUnits="userSpaceOnUse"
x2="87.292999"
y1="103"
x1="95">
<stop
stop-color="#fff"
offset="0"
id="stop26" />
<stop
stop-color="#393b38"
offset="1"
id="stop28" />
</linearGradient>
<linearGradient
id="r"
y2="96"
gradientUnits="userSpaceOnUse"
x2="88"
y1="104"
x1="96">
<stop
stop-color="#888a85"
offset="0"
id="stop31" />
<stop
stop-color="#8c8e89"
offset=".0072"
id="stop33" />
<stop
stop-color="#abaca9"
offset=".0673"
id="stop35" />
<stop
stop-color="#c5c6c4"
offset=".1347"
id="stop37" />
<stop
stop-color="#dbdbda"
offset=".2115"
id="stop39" />
<stop
stop-color="#ebebeb"
offset=".3012"
id="stop41" />
<stop
stop-color="#f7f7f6"
offset=".4122"
id="stop43" />
<stop
stop-color="#fdfdfd"
offset=".5679"
id="stop45" />
<stop
stop-color="#fff"
offset="1"
id="stop47" />
</linearGradient>
<radialGradient
id="t"
gradientUnits="userSpaceOnUse"
cy="112.3"
cx="102"
gradientTransform="matrix(0,-0.25288808,0.20993589,0,-0.32737717,29.222083)"
r="139.56">
<stop
stop-color="#535557"
offset="0"
id="stop50" />
<stop
stop-color="#898a8c"
offset=".11366"
id="stop52" />
<stop
stop-color="#ececec"
offset=".20297"
id="stop54" />
<stop
stop-color="#fafafa"
offset=".23630"
id="stop56" />
<stop
stop-color="#fff"
offset=".27220"
id="stop58" />
<stop
stop-color="#fafafa"
offset=".53130"
id="stop60" />
<stop
stop-color="#ebecec"
offset=".84490"
id="stop62" />
<stop
stop-color="#e1e2e3"
offset="1"
id="stop64" />
</radialGradient>
<radialGradient
id="u"
gradientUnits="userSpaceOnUse"
cy="112.3"
cx="102"
gradientTransform="matrix(0,-0.22456181,0.20619923,0,-0.06831569,26.261372)"
r="139.56">
<stop
stop-color="#00537d"
offset="0"
id="stop67" />
<stop
stop-color="#186389"
offset=".0151"
id="stop69" />
<stop
stop-color="#558ca8"
offset=".0558"
id="stop71" />
<stop
stop-color="#89afc3"
offset=".0964"
id="stop73" />
<stop
stop-color="#b3ccd8"
offset=".1357"
id="stop75" />
<stop
stop-color="#d4e2e9"
offset=".1737"
id="stop77" />
<stop
stop-color="#ecf2f5"
offset=".20990"
id="stop79" />
<stop
stop-color="#fafcfd"
offset=".24350"
id="stop81" />
<stop
stop-color="#fff"
offset=".27220"
id="stop83" />
</radialGradient>
<linearGradient
id="s"
y2="9.6875"
gradientUnits="userSpaceOnUse"
x2="-24.75"
gradientTransform="matrix(0,-0.25415316,0.20725536,0,4.9020693,-3.6748783)"
y1="11.566"
x1="-26.754">
<stop
stop-color="#fff"
offset="0"
id="stop86" />
<stop
stop-color="#fff"
stop-opacity="0"
offset="1"
id="stop88" />
</linearGradient>
<radialGradient
id="v"
gradientUnits="userSpaceOnUse"
cy="5.3000002"
cx="4"
gradientTransform="matrix(0,-0.47934299,0.24383045,0,4.0242988,12.475354)"
r="17">
<stop
stop-color="#fff"
offset="0"
id="stop91" />
<stop
stop-color="#fff"
stop-opacity="0"
offset="1"
id="stop93" />
</radialGradient>
</defs>
<rect
height="48"
width="48"
y="-64.449997"
x="-50.849998"
id="rect95"
style="opacity:0" />
<path
d="m 5.7311015,9.4059783 c 0,0.2181084 0.1394995,0.3891786 0.3173568,0.3891786 h 7.6555727 c 0.177857,0 0.317358,-0.1710702 0.317358,-0.3891786 V 1.5427882 c 0,-0.2181091 -0.139501,-0.3891784 -0.317358,-0.3891784 H 8.5292163 c -0.2884891,0 -0.8910636,0.1237663 -1.2759287,0.5956945 L 6.2161606,3.0205356 C 5.8315529,3.4924694 5.7306224,4.2314196 5.7306224,4.5851785 v 4.8210291 z"
id="path97"
inkscape:connector-curvature="0"
style="opacity:0.68015998;fill:url(#v)" />
<path
d="m 5.8347112,9.4059783 c 0,0.1482164 0.092868,0.2620982 0.2137317,0.2620982 h 7.6555741 c 0.120865,0 0.213731,-0.1138818 0.213731,-0.2620982 V 1.5427882 c 0,-0.1482173 -0.09286,-0.262099 -0.213731,-0.262099 H 8.529201 c -0.2650831,0 -0.8508769,0.1221125 -1.2046748,0.5559925 L 6.2879146,3.1079128 C 5.9339621,3.5417326 5.8343712,4.260093 5.8343712,4.5851566 v 4.8210292 z"
id="path99"
inkscape:connector-curvature="0"
style="fill:none;stroke:url(#s);stroke-width:0.2295121" />
<path
d="m 23,9 0.04082,112 h 61.131 c 0.53,0 1.039,-0.211 1.414,-0.586 l 32.824,-32.824 c 0.38,-0.375 0.59,-0.884 0.59,-1.414 V 9.016 h -96 z"
transform="matrix(0,-0.2662987,0.22165967,0,-1.6902875,31.992085)"
id="path101"
inkscape:connector-curvature="0"
style="opacity:0.7;fill:#000000;fill-opacity:1;filter:url(#n)" />
<path
d="M 1.5812474,22.668265 H 24.675438 V 8.9311466 c 0,-0.1190174 -0.04352,-0.2333188 -0.120832,-0.3175342 L 17.785867,1.2416023 C 17.70847,1.1576052 17.603382,1.1102357 17.494203,1.1102357 H 1.5813858 V 22.668381 z"
id="path103"
inkscape:connector-curvature="0"
style="fill:url(#u)" />
<path
d="m 1.5620727,24.670276 c 0,0.139336 0.094258,0.252887 0.2099358,0.252887 H 24.4453 c 0.11589,0 0.209935,-0.113551 0.209935,-0.252887 V 9.7065431 c 0,-0.066509 -0.02224,-0.1317571 -0.06151,-0.1787888 l -6.89155,-8.3019261 c -0.03934,-0.047436 -0.09356,-0.074212 -0.148834,-0.074212 H 1.7721307 c -0.1156762,0 -0.2099358,0.1132939 -0.2099358,0.2528881 V 24.670163 z"
id="path105"
inkscape:connector-curvature="0"
style="fill:url(#t)" />
<path
d="m 8.8893243,24.768584 v -7.00828 H 24.643157"
id="path107"
inkscape:connector-curvature="0"
style="fill:none;stroke:#723137;stroke-width:1.21292329;stroke-opacity:1" />
<path
d="M 23.303472,20.907878 H 20.154997"
id="path109"
inkscape:connector-curvature="0"
style="fill:none;stroke:#6e2716;stroke-width:1.45951974px;stroke-opacity:1" />
<path
d="M 17.114466,20.966273 H 11.274947"
id="path111"
inkscape:connector-curvature="0"
style="fill:none;stroke:#632716;stroke-width:1.61190331px;stroke-opacity:1" />
<path
d="M 24.683227,23.990214 H 20.235589"
id="path113"
inkscape:connector-curvature="0"
style="fill:none;stroke:#822716;stroke-width:1.47296751px;stroke-opacity:1" />
<path
d="M 18.660247,24.039958 H 11.218576"
id="path115"
inkscape:connector-curvature="0"
style="fill:none;stroke:#685b00;stroke-width:1.41399999999999990;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
<g
transform="matrix(0,-0.25415314,0.20725537,0,-0.1950509,29.653459)"
id="g117">
<path
d="M 111.41,86.586 C 111.66,86.336 93.035,93 88,93 c -1.654,0 -3,1.346 -3,3 0,5.035 -6.664,23.664 -6.414,23.414 l 32.828,-32.828 z"
id="path119"
inkscape:connector-curvature="0"
style="opacity:0.1;fill:url(#o)" />
<path
d="M 111.41,86.586 C 111.79,86.211 97.444,94 88,94 c -1.103,0 -2,0.897 -2,2 0,9.444 -7.789,23.789 -7.414,23.414 l 32.828,-32.828 z"
id="path121"
inkscape:connector-curvature="0"
style="opacity:0.1;fill:url(#p)" />
<path
d="M 111.41,86.586 C 111.65,86.347 97.807,95 88,95 c -0.553,0 -1,0.447 -1,1 0,9.807 -8.653,23.653 -8.414,23.414 l 32.828,-32.828 z"
id="path123"
inkscape:connector-curvature="0"
style="opacity:0.1;fill:url(#q)" />
<path
d="m 78.586,119.41 c 0,0 11.914,-9.914 17.414,-15.414 5.5,-5.5 15.414,-17.414 15.414,-17.414 0,0 -13.164,9.414 -23.414,9.414 0,10.25 -9.414,23.414 -9.414,23.414 z"
id="path125"
inkscape:connector-curvature="0"
style="fill:url(#r)" />
</g>
<g
transform="matrix(0.58781192,0,0,0.61915505,-0.51969366,-10.140459)"
id="g16">
<path
style="fill-rule:evenodd"
inkscape:connector-curvature="0"
d="m 5.8694,32.598 c 0,0 15.515,-20.825 31.114,0.08214 -15.599,19.414 -31.114,-0.082 -31.114,-0.082 z"
id="path18" />
<path
style="fill:#ffffff;fill-rule:evenodd"
inkscape:connector-curvature="0"
d="m 10.452,32.553 c 0,0 10.86,-13.986 21.78,0.05516 -10.92,13.038 -21.78,-0.05516 -21.78,-0.05516 z"
id="path20" />
<path
style="fill:#a39aff"
inkscape:connector-curvature="0"
d="m -6.5,3.5 a 1.75,1.5 0 1 1 -3.5,0 1.75,1.5 0 1 1 3.5,0 z"
transform="matrix(3.5559,0,0,3.9824,50.678,18.388)"
id="path22" />
<path
inkscape:connector-curvature="0"
d="m -6.5,3.5 a 1.75,1.5 0 1 1 -3.5,0 1.75,1.5 0 1 1 3.5,0 z"
transform="matrix(1.778,0,0,1.9912,36.01,25.358)"
id="path24" />
</g>
</svg>

After

Width:  |  Height:  |  Size: 13 KiB

View File

@ -0,0 +1,621 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<svg
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:cc="http://creativecommons.org/ns#"
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
xmlns:svg="http://www.w3.org/2000/svg"
xmlns="http://www.w3.org/2000/svg"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
height="26"
width="26"
version="1.0"
id="svg2"
inkscape:version="0.48.2 r9819"
sodipodi:docname="pagelayout_load.svg">
<metadata
id="metadata133">
<rdf:RDF>
<cc:Work
rdf:about="">
<dc:format>image/svg+xml</dc:format>
<dc:type
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
<dc:title></dc:title>
</cc:Work>
</rdf:RDF>
</metadata>
<sodipodi:namedview
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1"
objecttolerance="10"
gridtolerance="10"
guidetolerance="10"
inkscape:pageopacity="0"
inkscape:pageshadow="2"
inkscape:window-width="1280"
inkscape:window-height="977"
id="namedview131"
showgrid="true"
inkscape:snap-to-guides="false"
inkscape:snap-grids="false"
inkscape:zoom="13.333333"
inkscape:cx="7.6914467"
inkscape:cy="6.5192721"
inkscape:window-x="-4"
inkscape:window-y="-4"
inkscape:window-maximized="1"
inkscape:current-layer="svg2">
<inkscape:grid
type="xygrid"
id="grid3110"
empspacing="5"
visible="true"
enabled="true"
snapvisiblegridlinesonly="true" />
</sodipodi:namedview>
<defs
id="defs4">
<filter
id="n"
color-interpolation-filters="sRGB">
<feGaussianBlur
stdDeviation="1.0394514"
id="feGaussianBlur7" />
</filter>
<marker
id="l"
refY="0"
refX="0"
overflow="visible"
orient="auto"
style="overflow:visible">
<path
d="M 5.77,0 -2.88,5 V -5 l 8.65,5 z"
transform="scale(-0.4,-0.4)"
id="path10"
inkscape:connector-curvature="0"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" />
</marker>
<marker
id="m"
refY="0"
refX="0"
overflow="visible"
orient="auto"
style="overflow:visible">
<path
d="M 5.77,0 -2.88,5 V -5 l 8.65,5 z"
transform="scale(0.4,0.4)"
id="path13"
inkscape:connector-curvature="0"
style="fill-rule:evenodd;stroke:#000000;stroke-width:1pt" />
</marker>
<linearGradient
id="o"
y2="94.537003"
gradientUnits="userSpaceOnUse"
x2="86.536003"
y1="102.34"
x1="94.344002">
<stop
stop-color="#fff"
offset="0"
id="stop16" />
<stop
stop-color="#555753"
offset="1"
id="stop18" />
</linearGradient>
<linearGradient
id="p"
y2="94.586998"
gradientUnits="userSpaceOnUse"
x2="86.586998"
y1="103"
x1="95">
<stop
stop-color="#fff"
offset="0"
id="stop21" />
<stop
stop-color="#555753"
offset="1"
id="stop23" />
</linearGradient>
<linearGradient
id="q"
y2="95.292999"
gradientUnits="userSpaceOnUse"
x2="87.292999"
y1="103"
x1="95">
<stop
stop-color="#fff"
offset="0"
id="stop26" />
<stop
stop-color="#393b38"
offset="1"
id="stop28" />
</linearGradient>
<linearGradient
id="r"
y2="96"
gradientUnits="userSpaceOnUse"
x2="88"
y1="104"
x1="96">
<stop
stop-color="#888a85"
offset="0"
id="stop31" />
<stop
stop-color="#8c8e89"
offset=".0072"
id="stop33" />
<stop
stop-color="#abaca9"
offset=".0673"
id="stop35" />
<stop
stop-color="#c5c6c4"
offset=".1347"
id="stop37" />
<stop
stop-color="#dbdbda"
offset=".2115"
id="stop39" />
<stop
stop-color="#ebebeb"
offset=".3012"
id="stop41" />
<stop
stop-color="#f7f7f6"
offset=".4122"
id="stop43" />
<stop
stop-color="#fdfdfd"
offset=".5679"
id="stop45" />
<stop
stop-color="#fff"
offset="1"
id="stop47" />
</linearGradient>
<radialGradient
id="t"
gradientUnits="userSpaceOnUse"
cy="112.3"
cx="102"
gradientTransform="matrix(0,-0.25288808,0.20993589,0,-0.32737717,29.222083)"
r="139.56">
<stop
stop-color="#535557"
offset="0"
id="stop50" />
<stop
stop-color="#898a8c"
offset=".11366"
id="stop52" />
<stop
stop-color="#ececec"
offset=".20297"
id="stop54" />
<stop
stop-color="#fafafa"
offset=".23630"
id="stop56" />
<stop
stop-color="#fff"
offset=".27220"
id="stop58" />
<stop
stop-color="#fafafa"
offset=".53130"
id="stop60" />
<stop
stop-color="#ebecec"
offset=".84490"
id="stop62" />
<stop
stop-color="#e1e2e3"
offset="1"
id="stop64" />
</radialGradient>
<radialGradient
id="u"
gradientUnits="userSpaceOnUse"
cy="112.3"
cx="102"
gradientTransform="matrix(0,-0.22456181,0.20619923,0,-0.06831569,26.261372)"
r="139.56">
<stop
stop-color="#00537d"
offset="0"
id="stop67" />
<stop
stop-color="#186389"
offset=".0151"
id="stop69" />
<stop
stop-color="#558ca8"
offset=".0558"
id="stop71" />
<stop
stop-color="#89afc3"
offset=".0964"
id="stop73" />
<stop
stop-color="#b3ccd8"
offset=".1357"
id="stop75" />
<stop
stop-color="#d4e2e9"
offset=".1737"
id="stop77" />
<stop
stop-color="#ecf2f5"
offset=".20990"
id="stop79" />
<stop
stop-color="#fafcfd"
offset=".24350"
id="stop81" />
<stop
stop-color="#fff"
offset=".27220"
id="stop83" />
</radialGradient>
<linearGradient
id="s"
y2="9.6875"
gradientUnits="userSpaceOnUse"
x2="-24.75"
gradientTransform="matrix(0,-0.25415316,0.20725536,0,4.9020693,-3.6748783)"
y1="11.566"
x1="-26.754">
<stop
stop-color="#fff"
offset="0"
id="stop86" />
<stop
stop-color="#fff"
stop-opacity="0"
offset="1"
id="stop88" />
</linearGradient>
<radialGradient
id="v"
gradientUnits="userSpaceOnUse"
cy="5.3000002"
cx="4"
gradientTransform="matrix(0,-0.47934299,0.24383045,0,4.0242988,12.475354)"
r="17">
<stop
stop-color="#fff"
offset="0"
id="stop91" />
<stop
stop-color="#fff"
stop-opacity="0"
offset="1"
id="stop93" />
</radialGradient>
<radialGradient
id="p-1"
gradientUnits="userSpaceOnUse"
cy="27.875"
cx="16"
gradientTransform="matrix(1,0,0,0.28866,0,19.829)"
r="12.125">
<stop
offset="0"
id="stop3375" />
<stop
stop-opacity="0"
offset="1"
id="stop3377" />
</radialGradient>
<radialGradient
id="q-7"
gradientUnits="userSpaceOnUse"
cy="15.491"
cx="10.783"
gradientTransform="matrix(0.40447,0,0,0.42758,4.3012,2.4766)"
r="17.709">
<stop
stop-color="#fff"
offset="0"
id="stop3380" />
<stop
stop-color="#c1c7bc"
offset="1"
id="stop3382" />
</radialGradient>
<radialGradient
id="r-4"
gradientUnits="userSpaceOnUse"
cy="10.499"
cx="10.5"
gradientTransform="matrix(2.1471,4.6915e-7,-4.6925e-7,2.1471,1.4265,-49.569)"
r="10.496">
<stop
stop-color="#f57900"
offset="0"
id="stop3385" />
<stop
stop-color="#fcaf3e"
offset="1"
id="stop3387" />
</radialGradient>
<linearGradient
id="j"
y2="51.027"
gradientUnits="userSpaceOnUse"
x2="26.139999"
y1="20.927"
x1="25.594">
<stop
stop-color="#fff"
offset="0"
id="stop3390" />
<stop
stop-color="#fff"
stop-opacity="0"
offset="1"
id="stop3392" />
</linearGradient>
<linearGradient
id="k"
y2="-49.625"
gradientUnits="userSpaceOnUse"
x2="23.732"
y1="-40.465"
x1="25.865999">
<stop
stop-color="#fff"
offset="0"
id="stop3395" />
<stop
stop-color="#fff"
stop-opacity="0"
offset="1"
id="stop3397" />
</linearGradient>
<linearGradient
id="l-0"
y2="14.781"
gradientUnits="userSpaceOnUse"
x2="83.625"
y1="15.75"
x1="79.25">
<stop
offset="0"
id="stop3400" />
<stop
stop-opacity="0"
offset="1"
id="stop3402" />
</linearGradient>
<linearGradient
id="m-9"
y2="13.875"
gradientUnits="userSpaceOnUse"
x2="83.219002"
gradientTransform="translate(1,0)"
y1="14.062"
x1="80.625">
<stop
stop-color="#eeeeec"
offset="0"
id="stop3405" />
<stop
stop-color="#eeeeec"
stop-opacity="0"
offset="1"
id="stop3407" />
</linearGradient>
<linearGradient
id="n-4"
y2="12.093"
gradientUnits="userSpaceOnUse"
x2="83.203003"
gradientTransform="translate(1,0)"
y1="12.312"
x1="78.311996">
<stop
stop-color="#555753"
offset="0"
id="stop3410" />
<stop
stop-color="#888a85"
stop-opacity="0"
offset="1"
id="stop3412" />
</linearGradient>
<linearGradient
id="o-8"
y2="16.438"
gradientUnits="userSpaceOnUse"
x2="83.030998"
gradientTransform="translate(1,0)"
y1="16.406"
x1="78.5">
<stop
stop-color="#fff"
offset="0"
id="stop3415" />
<stop
stop-color="#fff"
stop-opacity="0"
offset="1"
id="stop3417" />
</linearGradient>
</defs>
<rect
height="48"
width="48"
y="-64.449997"
x="-50.849998"
id="rect95"
style="opacity:0" />
<path
d="m 5.7311015,9.4059783 c 0,0.2181084 0.1394995,0.3891786 0.3173568,0.3891786 h 7.6555727 c 0.177857,0 0.317358,-0.1710702 0.317358,-0.3891786 V 1.5427882 c 0,-0.2181091 -0.139501,-0.3891784 -0.317358,-0.3891784 H 8.5292163 c -0.2884891,0 -0.8910636,0.1237663 -1.2759287,0.5956945 L 6.2161606,3.0205356 C 5.8315529,3.4924694 5.7306224,4.2314196 5.7306224,4.5851785 v 4.8210291 z"
id="path97"
inkscape:connector-curvature="0"
style="opacity:0.68015998;fill:url(#v)" />
<path
d="m 5.8347112,9.4059783 c 0,0.1482164 0.092868,0.2620982 0.2137317,0.2620982 h 7.6555741 c 0.120865,0 0.213731,-0.1138818 0.213731,-0.2620982 V 1.5427882 c 0,-0.1482173 -0.09286,-0.262099 -0.213731,-0.262099 H 8.529201 c -0.2650831,0 -0.8508769,0.1221125 -1.2046748,0.5559925 L 6.2879146,3.1079128 C 5.9339621,3.5417326 5.8343712,4.260093 5.8343712,4.5851566 v 4.8210292 z"
id="path99"
inkscape:connector-curvature="0"
style="fill:none;stroke:url(#s);stroke-width:0.2295121" />
<path
d="m 23,9 0.04082,112 h 61.131 c 0.53,0 1.039,-0.211 1.414,-0.586 l 32.824,-32.824 c 0.38,-0.375 0.59,-0.884 0.59,-1.414 V 9.016 h -96 z"
transform="matrix(0,-0.2662987,0.22165967,0,-1.6902875,31.992085)"
id="path101"
inkscape:connector-curvature="0"
style="opacity:0.7;fill:#000000;fill-opacity:1;filter:url(#n)" />
<path
d="M 1.5812474,22.668265 H 24.675438 V 8.9311466 c 0,-0.1190174 -0.04352,-0.2333188 -0.120832,-0.3175342 L 17.785867,1.2416023 C 17.70847,1.1576052 17.603382,1.1102357 17.494203,1.1102357 H 1.5813858 V 22.668381 z"
id="path103"
inkscape:connector-curvature="0"
style="fill:url(#u)" />
<path
d="m 1.5620727,24.670276 c 0,0.139336 0.094258,0.252887 0.2099358,0.252887 H 24.4453 c 0.11589,0 0.209935,-0.113551 0.209935,-0.252887 V 9.7065431 c 0,-0.066509 -0.02224,-0.1317571 -0.06151,-0.1787888 l -6.89155,-8.3019261 c -0.03934,-0.047436 -0.09356,-0.074212 -0.148834,-0.074212 H 1.7721307 c -0.1156762,0 -0.2099358,0.1132939 -0.2099358,0.2528881 V 24.670163 z"
id="path105"
inkscape:connector-curvature="0"
style="fill:url(#t)" />
<path
d="m 8.8893243,24.768584 v -7.00828 H 24.643157"
id="path107"
inkscape:connector-curvature="0"
style="fill:none;stroke:#723137;stroke-width:1.21292329;stroke-opacity:1" />
<path
d="M 23.303472,20.907878 H 20.154997"
id="path109"
inkscape:connector-curvature="0"
style="fill:none;stroke:#6e2716;stroke-width:1.45951974px;stroke-opacity:1" />
<path
d="M 17.114466,20.966273 H 11.274947"
id="path111"
inkscape:connector-curvature="0"
style="fill:none;stroke:#632716;stroke-width:1.61190331px;stroke-opacity:1" />
<path
d="M 24.683227,23.990214 H 20.235589"
id="path113"
inkscape:connector-curvature="0"
style="fill:none;stroke:#822716;stroke-width:1.47296751px;stroke-opacity:1" />
<path
d="M 18.660247,24.039958 H 11.218576"
id="path115"
inkscape:connector-curvature="0"
style="fill:none;stroke:#685b00;stroke-width:1.41399999999999990;stroke-opacity:1;stroke-miterlimit:4;stroke-dasharray:none" />
<g
transform="matrix(0,-0.25415314,0.20725537,0,-0.1950509,29.653459)"
id="g117">
<path
d="M 111.41,86.586 C 111.66,86.336 93.035,93 88,93 c -1.654,0 -3,1.346 -3,3 0,5.035 -6.664,23.664 -6.414,23.414 l 32.828,-32.828 z"
id="path119"
inkscape:connector-curvature="0"
style="opacity:0.1;fill:url(#o)" />
<path
d="M 111.41,86.586 C 111.79,86.211 97.444,94 88,94 c -1.103,0 -2,0.897 -2,2 0,9.444 -7.789,23.789 -7.414,23.414 l 32.828,-32.828 z"
id="path121"
inkscape:connector-curvature="0"
style="opacity:0.1;fill:url(#p)" />
<path
d="M 111.41,86.586 C 111.65,86.347 97.807,95 88,95 c -0.553,0 -1,0.447 -1,1 0,9.807 -8.653,23.653 -8.414,23.414 l 32.828,-32.828 z"
id="path123"
inkscape:connector-curvature="0"
style="opacity:0.1;fill:url(#q)" />
<path
d="m 78.586,119.41 c 0,0 11.914,-9.914 17.414,-15.414 5.5,-5.5 15.414,-17.414 15.414,-17.414 0,0 -13.164,9.414 -23.414,9.414 0,10.25 -9.414,23.414 -9.414,23.414 z"
id="path125"
inkscape:connector-curvature="0"
style="fill:url(#r)" />
</g>
<g
transform="matrix(0.31955523,0,0,0.31627519,1.4149419,16.898872)"
id="g3419">
<path
inkscape:connector-curvature="0"
style="opacity:0.4;color:#000000;fill:url(#p-1)"
d="m 28.125,27.875 a 12.125,3.5 0 1 1 -24.25,0 12.125,3.5 0 1 1 24.25,0 z"
transform="matrix(1.732,0,0,2,-3.7113,-65.75)"
id="path3421" />
<path
style="fill:url(#q-7);stroke:#babdb6;stroke-width:0.38686001;stroke-linecap:round;stroke-linejoin:round"
inkscape:connector-curvature="0"
d="m 15.092,10.078 a 6.43,7.0998 0 1 1 -12.86,0 6.43,7.0998 0 1 1 12.86,0 z"
transform="matrix(2.7108,0,0,2.4649,0.44798,-51.842)"
id="path3423" />
<path
style="opacity:0.11856001"
inkscape:connector-curvature="0"
d="m 23.969,-44.661 c -9.5044,0 -17.219,7.6827 -17.219,17.188 0,0.38564 0.037527,0.77693 0.0625,1.1562 0.60042,-8.9602 8.0444,-16.031 17.156,-16.031 9.1119,0 16.556,7.0711 17.156,16.031 0.02497,-0.37932 0.0625,-0.77061 0.0625,-1.1562 0,-9.5048 -7.7144,-17.188 -17.219,-17.188 z"
id="path3425" />
<path
style="fill:url(#r-4);stroke:#ce5c00;stroke-linecap:round;stroke-linejoin:round"
inkscape:connector-curvature="0"
d="M 23.166,-48.493 C 11.703,-48.057 2.5,-38.592 2.5,-27.025 c 0,11.846 9.6239,21.468 21.471,21.468 11.8471,0 21.471,-9.6229 21.471,-21.468 0,-11.846 -9.6239,-21.468 -21.471,-21.468 -0.27766,0 -0.53004,-0.01047 -0.80516,0 z m -0.0671,4.2937 c 0.29278,-0.01484 0.57581,0 0.87225,0 9.4863,0 17.177,7.698 17.177,17.175 0,9.4768 -7.6904,17.175 -17.177,17.175 -9.4863,0 -17.177,-7.698 -17.177,-17.175 0,-9.1807 7.2284,-16.715 16.304,-17.175 z"
id="path3427" />
<path
inkscape:connector-curvature="0"
style="opacity:0.51030997;color:#000000;fill:none;stroke:url(#j);stroke-width:0.97099;stroke-linecap:round;stroke-linejoin:round"
d="m 43.375,24.75 a 19.875,19.875 0 1 1 -39.75,0 19.875,19.875 0 1 1 39.75,0 z"
transform="matrix(1.0299,0,0,1.0299,-0.23329,-52.458)"
id="path3429" />
<path
style="fill:#555753;fill-rule:evenodd;stroke:#2e3436;stroke-linecap:round;stroke-linejoin:round"
inkscape:connector-curvature="0"
d="m 23.205,-23.188 12.357,-1.375 -11.2,-1.6748 -1.1568,3.0498 z"
id="path3431" />
<path
style="fill:#555753;fill-rule:evenodd;stroke:#2e3436;stroke-linecap:round;stroke-linejoin:round"
inkscape:connector-curvature="0"
d="m 23.569,-40.703 -1.6232,16.549 3.0751,-1.0879 -1.4519,-15.461 z"
id="path3433" />
<path
inkscape:connector-curvature="0"
style="color:#000000;fill:#555753;fill-rule:evenodd;stroke:#2e3436;stroke-linecap:round;stroke-linejoin:round"
d="m 26.25,25.062 a 2.6875,2.6875 0 1 1 -5.375,0 2.6875,2.6875 0 1 1 5.375,0 z"
transform="translate(0,-50)"
id="path3435" />
<path
inkscape:connector-curvature="0"
style="opacity:0.47423;color:#000000;fill:#ffffff;fill-rule:evenodd"
d="m 23.5,23.656 a 1.25,1.25 0 1 1 -2.5,0 1.25,1.25 0 1 1 2.5,0 z"
transform="matrix(-0.6,0,0,-0.6,36.498,-11.335)"
id="path3437" />
<path
style="opacity:0.5;fill:none;stroke:url(#k);stroke-width:0.60857999;stroke-linecap:round;stroke-linejoin:round;stroke-dashoffset:0.7"
inkscape:connector-curvature="0"
d="m 40.835,-46.712 a 17.103,7.1153 0 1 1 -34.206,0 17.103,7.1153 0 1 1 34.206,0 z"
transform="matrix(1.0598,0,0,2.5476,-1.1523,92)"
id="path3439" />
<g
transform="translate(-62,-52)"
id="g3441">
<path
style="opacity:0.1;fill:url(#l-0);fill-rule:evenodd"
inkscape:connector-curvature="0"
d="m 85,9.9688 c -4.3134,0 -8.1444,1.9886 -10.719,5.0625 l -2.406,-2.406 a 0.5313,0.5313 0 0 0 -0.90625,0.28125 l -2,10.5 a 0.5313,0.5313 0 0 0 0.625,0.625 l 10.5,-2 a 0.5313,0.5313 0 0 0 0.281,-0.906 l -2.5,-2.5 c 1.635,-2.1625 4.2032,-3.5938 7.125,-3.5938 0.06101,0 0.66768,-0.0067 1.25,0 0.58232,0.0067 1.2312,0.0319 1.2188,0.03125 a 0.5313,0.5313 0 0 0 0.5625,-0.53125 v -4 a 0.5313,0.5313 0 0 0 -0.501,-0.531 c -0.283,-0.0105 -2.309,-0.0312 -2.531,-0.0312 z"
transform="translate(1,1)"
id="path3443" />
<path
style="fill:url(#m-9);fill-rule:evenodd;stroke:url(#n-4);stroke-linecap:round;stroke-miterlimit:10;stroke-dashoffset:0.7"
inkscape:connector-curvature="0"
d="m 86,10.5 c -4.3611,0 -8.252,2.0648 -10.719,5.2812 l -2.781,-2.781 -2,10.5 10.5,-2 -2.844,-2.844 c 1.708,-2.505 4.584,-5.156 7.844,-5.156 0.16914,0 2.333,0.02251 2.5,0.03125 v -3 c -0.168,-0.006 -2.331,-0.031 -2.5,-0.031 z"
stroke-miterlimit="10"
id="path3445" />
<path
style="fill:none;stroke:url(#o-8);stroke-linecap:round;stroke-miterlimit:10;stroke-dashoffset:0.7"
inkscape:connector-curvature="0"
d="m 86,11.5 c -4.0454,0 -7.654,1.8975 -9.9375,4.875 -0.17123,0.23202 -0.43428,0.37884 -0.72164,0.40279 -0.288,0.024 -0.571,-0.078 -0.779,-0.278 l -1.437,-1.438 -1.375,7.188 7.1875,-1.375 -1.5,-1.5 c -0.338,-0.348 -0.378,-0.888 -0.094,-1.281 1.886,-2.768 5.058,-5.594 8.656,-5.594 0.12892,0 1.6658,-0.0067 2.25,0 0.11122,0.0013 0.14936,-9.15e-4 0.25,0 v -0.96875 c -0.703,-0.009 -2.457,-0.031 -2.5,-0.031 z"
stroke-miterlimit="10"
id="path3447" />
</g>
</g>
</svg>

After

Width:  |  Height:  |  Size: 20 KiB

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 46 KiB

View File

@ -76,14 +76,19 @@ set(COMMON_ABOUT_DLG_SRCS
dialogs/dialog_page_settings_base.cpp
)
if(KICAD_GOST)
set( TITLE_BLOCK_SHAPES title_block_shapes_gost )
else()
set( TITLE_BLOCK_SHAPES title_block_shapes )
endif()
set(COMMON_PAGE_LAYOUT_SRCS
page_layout/title_block_shapes.cpp
page_layout/class_worksheet_dataitem.cpp
page_layout/class_worksheet_layout.cpp
page_layout/page_layout_default_description.cpp
page_layout/page_layout_graphic_items.cpp
page_layout/page_layout_reader_keywords.cpp
page_layout/page_layout_reader.cpp
)
set(COMMON_SRCS
${COMMON_ABOUT_DLG_SRCS}
${COMMON_PAGE_LAYOUT_SRCS}
base_struct.cpp
basicframe.cpp
bezier_curves.cpp
@ -126,16 +131,12 @@ set(COMMON_SRCS
msgpanel.cpp
netlist_keywords.cpp
newstroke_font.cpp
page_layout_default_description.cpp
page_layout_reader_keywords.cpp
page_layout_reader.cpp
projet_config.cpp
ptree.cpp
reporter.cpp
richio.cpp
selcolor.cpp
string.cpp
${TITLE_BLOCK_SHAPES}.cpp
trigo.cpp
wildcards_and_files_ext.cpp
worksheet.cpp
@ -257,9 +258,9 @@ make_lexer(
# auto-generate page layout reader s-expression page_layout_reader_lexer.h
# and title_block_reader_keywords.cpp.
make_lexer(
${CMAKE_CURRENT_SOURCE_DIR}/page_layout_reader.keywords
${CMAKE_CURRENT_SOURCE_DIR}/page_layout/page_layout_reader.keywords
${PROJECT_SOURCE_DIR}/include/page_layout_reader_lexer.h
${CMAKE_CURRENT_SOURCE_DIR}/page_layout_reader_keywords.cpp
${CMAKE_CURRENT_SOURCE_DIR}/page_layout/page_layout_reader_keywords.cpp
TB_READER_T
)

View File

@ -36,6 +36,8 @@
#include <id.h>
#include <base_units.h>
wxString BASE_SCREEN::m_PageLayoutDescrFileName; // the name of the page layout descr file.
BASE_SCREEN::BASE_SCREEN( KICAD_T aType ) :
EDA_ITEM( aType )
{

View File

@ -40,7 +40,7 @@
#include <base_units.h>
#if defined( PCBNEW ) || defined( CVPCB ) || defined( EESCHEMA ) || defined( GERBVIEW )
#if defined( PCBNEW ) || defined( CVPCB ) || defined( EESCHEMA ) || defined( GERBVIEW ) || defined( PL_EDITOR )
#define IU_TO_MM( x ) ( x / IU_PER_MM )
#define IU_TO_IN( x ) ( x / IU_PER_MILS / 1000 )
#define MM_TO_IU( x ) ( x * IU_PER_MM )
@ -50,6 +50,42 @@
#endif
// Helper function to print a float number without using scientific notation
// and no trailing 0
// So we cannot always just use the %g or the %f format to print a fp number
// this helper function uses the %f format when needed, or %g when %f is
// not well working and then removes trailing 0
std::string Double2Str( double aValue )
{
char buf[50];
int len;
if( aValue != 0.0 && fabs( aValue ) <= 0.0001 )
{
// For these small values, %f works fine,
// and %g gives an exponent
len = sprintf( buf, "%.16f", aValue );
while( --len > 0 && buf[len] == '0' )
buf[len] = '\0';
if( buf[len] == '.' )
buf[len] = '\0';
else
++len;
}
else
{
// For these values, %g works fine, and sometimes %f
// gives a bad value (try aValue = 1.222222222222, with %.16f format!)
len = sprintf( buf, "%.16g", aValue );
}
return std::string( buf, len );;
}
double To_User_Unit( EDA_UNITS_T aUnit, double aValue )
{
switch( aUnit )
@ -226,7 +262,6 @@ double From_User_Unit( EDA_UNITS_T aUnit, double aValue )
default:
case UNSCALED_UNITS:
value = aValue;
}
@ -243,8 +278,9 @@ int ReturnValueFromString( EDA_UNITS_T aUnits, const wxString& aTextValue )
// Acquire the 'right' decimal point separator
const struct lconv* lc = localeconv();
wxChar decimal_point = lc->decimal_point[0];
wxString buf( aTextValue.Strip( wxString::both ) );
wxChar decimal_point = lc->decimal_point[0];
wxString buf( aTextValue.Strip( wxString::both ) );
// Convert the period in decimal point
buf.Replace( wxT( "." ), wxString( decimal_point, 1 ) );
@ -270,7 +306,9 @@ int ReturnValueFromString( EDA_UNITS_T aUnits, const wxString& aTextValue )
}
// Extract the numeric part
buf.Left( brk_point ).ToDouble( &dtmp );
buf.Left( brk_point );
buf.ToDouble( &dtmp );
// Check the optional unit designator (2 ch significant)
wxString unit( buf.Mid( brk_point ).Strip( wxString::leading ).Left( 2 ).Lower() );

View File

@ -509,13 +509,6 @@ void EDA_BASE_FRAME::CopyVersionInfoToClipboard( wxCommandEvent& event )
tmp << wxT( "OFF\n" );
#endif
tmp << wxT( " KICAD_GOST=" );
#ifdef KICAD_GOST
tmp << wxT( "ON\n" );
#else
tmp << wxT( "OFF\n" );
#endif
tmp << wxT( " USE_WX_GRAPHICS_CONTEXT=" );
#ifdef USE_WX_GRAPHICS_CONTEXT
tmp << wxT( "ON\n" );

View File

@ -6,11 +6,7 @@
#endif
#ifndef KICAD_BUILD_VERSION
#if defined KICAD_GOST
# define KICAD_BUILD_VERSION "(2013-jun-18 GOST)"
#else
# define KICAD_BUILD_VERSION "(2013-jun-18)"
#endif
# define KICAD_BUILD_VERSION "(2013-jul-14)"
#endif

View File

@ -116,9 +116,6 @@ bool BITMAP_BASE::SaveData( FILE* aFile ) const
if( fprintf( aFile, "%2.2X ", *begin & 0xFF ) == EOF )
return false;
}
if( fprintf( aFile, "$EndBitmap" ) == EOF )
return false;
}
return true;

View File

@ -63,7 +63,6 @@ const wxString PAGE_INFO::Custom( wxT( "User" ) );
#define MMsize( x, y ) wxSize( Mm2mils( x ), Mm2mils( y ) )
// All MUST be defined as landscape.
// If IsGOST() is true, A4 is dynamically rotated later.
const PAGE_INFO PAGE_INFO::pageA4( MMsize( 297, 210 ), wxT( "A4" ), wxPAPER_A4 );
const PAGE_INFO PAGE_INFO::pageA3( MMsize( 420, 297 ), wxT( "A3" ), wxPAPER_A3 );
const PAGE_INFO PAGE_INFO::pageA2( MMsize( 594, 420 ), wxT( "A2" ), wxPAPER_A2 );
@ -126,38 +125,14 @@ inline void PAGE_INFO::updatePortrait()
}
void PAGE_INFO::setMargins()
{
if( IsGOST() )
{
m_left_margin = Mm2mils( 20 ); // 20mm
m_right_margin = // 5mm
m_top_margin = // 5mm
m_bottom_margin = Mm2mils( 5 ); // 5mm
}
else
{
m_left_margin =
m_right_margin =
m_top_margin =
m_bottom_margin = Mm2mils( 10 );
}
}
PAGE_INFO::PAGE_INFO( const wxSize& aSizeMils, const wxString& aType, wxPaperSize aPaperId ) :
m_type( aType ),
m_size( aSizeMils ),
m_paper_id( aPaperId )
m_type( aType ), m_size( aSizeMils ), m_paper_id( aPaperId )
{
updatePortrait();
setMargins();
// This constructor is protected, and only used by const PAGE_INFO's known
// only to class implementation, so no further changes to "this" object are
// expected. Therefore we should also setMargin() again when copying this
// object in SetType() so that a runtime IsGOST() change does not break.
// expected.
}
@ -222,8 +197,6 @@ bool PAGE_INFO::SetType( const wxString& aType, bool IsPortrait )
updatePortrait();
}
setMargins();
return rc;
}

View File

@ -102,7 +102,7 @@ void PICKED_ITEMS_LIST::ClearListAndDeleteItems()
{
case UR_UNSPECIFIED:
if( show_error_message )
wxMessageBox( wxT( "ClearUndoORRedoList() error: UR_UNSPECIFIED command type" ) );
wxMessageBox( wxT( "ClearListAndDeleteItems() error: UR_UNSPECIFIED command type" ) );
show_error_message = false;
break;

View File

@ -69,16 +69,6 @@ EDA_UNITS_T g_UserUnit;
EDA_COLOR_T g_GhostColor;
bool IsGOST()
{
#if defined(KICAD_GOST)
return true;
#else
return false;
#endif
}
/**
* The predefined colors used in KiCad.
* Please: if you change a value, remember these values are carefully chosen

View File

@ -77,35 +77,26 @@ void PlotWorkSheet( PLOTTER* plotter, const TITLE_BLOCK& aTitleBlock,
/* Note: Page sizes values are given in mils
*/
double iusPerMil = plotter->GetIUsPerDecimil() * 10.0;
wxSize pageSize = aPageInfo.GetSizeMils(); // in mils
wxPoint LTmargin;
LTmargin.x = aPageInfo.GetLeftMarginMils() * iusPerMil;
LTmargin.y = aPageInfo.GetTopMarginMils() * iusPerMil;
wxPoint RBmargin;
RBmargin.x = aPageInfo.GetRightMarginMils() * iusPerMil;
RBmargin.y = aPageInfo.GetBottomMarginMils() * iusPerMil;
EDA_COLOR_T plotColor = plotter->GetColorMode() ? RED : BLACK;
plotter->SetColor( plotColor );
plotter->SetCurrentLineWidth( PLOTTER::DEFAULT_LINE_WIDTH );
WS_DRAW_ITEM_LIST drawList;
// Prepare plot parameters
drawList.SetMargins( LTmargin, RBmargin);
drawList.SetPenSize(PLOTTER::DEFAULT_LINE_WIDTH );
drawList.SetMilsToIUfactor( iusPerMil );
drawList.SetPageSize( pageSize );
drawList.SetSheetNumber( aSheetNumber );
drawList.SetSheetCount( aNumberOfSheets );
// Print only a short filename, if aFilename is the full filename
wxFileName fn( aFilename );
drawList.BuildWorkSheetGraphicList( aPageInfo.GetType(), fn.GetFullName(),
aSheetDesc, aTitleBlock, plotColor, plotColor );
// Prepare plot parameters
drawList.SetPenSize(PLOTTER::DEFAULT_LINE_WIDTH );
drawList.SetMilsToIUfactor( iusPerMil );
drawList.SetSheetNumber( aSheetNumber );
drawList.SetSheetCount( aNumberOfSheets );
drawList.SetFileName( fn.GetFullName() ); // Print only the short filename
drawList.SetSheetName( aSheetDesc );
drawList.BuildWorkSheetGraphicList( aPageInfo,
aTitleBlock, plotColor, plotColor );
// Draw item list
for( WS_DRAW_ITEM_BASE* item = drawList.GetFirst(); item;

View File

@ -1,7 +1,7 @@
/*
* This program source code file is part of KICAD, a free EDA CAD application.
*
* Copyright (C) 1992-2010 Kicad Developers, see AUTHORS.txt for contributors.
* Copyright (C) 1992-2013 Kicad Developers, see AUTHORS.txt for contributors.
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
@ -28,11 +28,13 @@
#include <fctsys.h>
#include <macros.h> // DIM()
#include <common.h>
#include <confirm.h>
#include <gr_basic.h>
#include <base_struct.h>
#include <class_drawpanel.h>
#include <class_title_block.h>
#include <wxstruct.h>
#include <worksheet_shape_builder.h>
#include <class_base_screen.h>
#include <wx/valgen.h>
@ -72,8 +74,9 @@ static const wxString pageFmts[] =
void EDA_DRAW_FRAME::Process_PageSettings( wxCommandEvent& event )
{
DIALOG_PAGES_SETTINGS frame( this );
int diag = frame.ShowModal();
DIALOG_PAGES_SETTINGS dlg( this );
dlg.SetWksFileName( BASE_SCREEN::m_PageLayoutDescrFileName );
int diag = dlg.ShowModal();
if( m_canvas && diag )
m_canvas->Refresh();
@ -84,12 +87,12 @@ DIALOG_PAGES_SETTINGS::DIALOG_PAGES_SETTINGS( EDA_DRAW_FRAME* parent ) :
DIALOG_PAGES_SETTINGS_BASE( parent ),
m_initialized( false )
{
m_Parent = parent;
m_Screen = m_Parent->GetScreen();
m_modified = false;
m_parent = parent;
m_screen = m_parent->GetScreen();
m_page_bitmap = NULL;
m_tb = m_Parent->GetTitleBlock();
m_tb = m_parent->GetTitleBlock();
m_customFmt = false;
m_localPrjConfigChanged = false;
initDialog();
@ -121,22 +124,26 @@ void DIALOG_PAGES_SETTINGS::initDialog()
m_paperSizeComboBox->Append( wxGetTranslation( pageFmts[ii] ) );
}
// initialize the page layout descr filename
m_plDescrFileName = BASE_SCREEN::m_PageLayoutDescrFileName;
m_filePicker->SetPath( m_plDescrFileName );
#ifdef EESCHEMA
// Init display value for schematic sub-sheet number
wxString format = m_TextSheetCount->GetLabel();
msg.Printf( format, m_Screen->m_NumberOfScreens );
msg.Printf( format, m_screen->m_NumberOfScreens );
m_TextSheetCount->SetLabel( msg );
format = m_TextSheetNumber->GetLabel();
msg.Printf( format, m_Screen->m_ScreenNumber );
msg.Printf( format, m_screen->m_ScreenNumber );
m_TextSheetNumber->SetLabel( msg );
#else
m_TextSheetCount->Show( false );
m_TextSheetNumber->Show( false );
#endif
m_pageInfo = m_Parent->GetPageSettings();
m_pageInfo = m_parent->GetPageSettings();
SetCurrentPageSizeSelection( m_pageInfo.GetType() );
m_orientationComboBox->SetSelection( m_pageInfo.IsPortrait() );
@ -210,28 +217,24 @@ void DIALOG_PAGES_SETTINGS::initDialog()
}
void DIALOG_PAGES_SETTINGS::OnCloseWindow( wxCloseEvent& event )
{
EndModal( m_modified );
}
void DIALOG_PAGES_SETTINGS::OnOkClick( wxCommandEvent& event )
{
m_save_flag = false;
SavePageSettings( event );
if( m_save_flag )
if( SavePageSettings() )
{
m_modified = true;
Close( true );
m_screen->SetModify();
m_parent->GetCanvas()->Refresh();
if( m_localPrjConfigChanged )
m_parent->SaveProjectSettings( true );
EndModal( true );
}
}
void DIALOG_PAGES_SETTINGS::OnCancelClick( wxCommandEvent& event )
{
Close( true );
EndModal( false );
}
@ -393,11 +396,50 @@ void DIALOG_PAGES_SETTINGS::OnDateApplyClick( wxCommandEvent& event )
m_TextDate->SetValue( FormatDateLong( m_PickDate->GetValue() ) );
}
void DIALOG_PAGES_SETTINGS::SavePageSettings( wxCommandEvent& event )
bool DIALOG_PAGES_SETTINGS::SavePageSettings()
{
bool retSuccess = false;
m_save_flag = true;
m_plDescrFileName = m_filePicker->GetPath();
if( m_plDescrFileName != BASE_SCREEN::m_PageLayoutDescrFileName )
{
if( !m_plDescrFileName.IsEmpty() )
{
wxString fullFileName = WORKSHEET_LAYOUT::MakeFullFileName( m_plDescrFileName );
if( !wxFileExists( fullFileName ) )
{
wxString msg;
msg.Printf( _("Page layout description file <%s> not found. Abort"),
GetChars( fullFileName ) );
wxMessageBox( msg );
return false;
}
}
// Try to remove the path, if the path is the current working dir,
// or the dir of kicad.pro (template)
wxString shortFileName = WORKSHEET_LAYOUT::MakeShortFileName( m_plDescrFileName );
wxFileName fn = shortFileName;
// For Win/Linux/macOS compatibility, a relative path is a good idea
if( fn.IsAbsolute() )
{
fn.MakeRelativeTo( wxGetCwd() );
wxString msg;
msg.Printf( _( "The page layout descr filename has changed\n"
"Do you want to use the relative path:\n%s"),
fn.GetFullPath().GetData() );
if( IsOK( this, msg ) )
shortFileName = fn.GetFullPath();
}
BASE_SCREEN::m_PageLayoutDescrFileName = shortFileName;
WORKSHEET_LAYOUT& pglayout = WORKSHEET_LAYOUT::GetTheInstance();
pglayout.SetPageLayout( shortFileName );
m_localPrjConfigChanged = true;
}
int idx = m_paperSizeComboBox->GetSelection();
@ -425,8 +467,7 @@ limits\n%.1f - %.1f %s!\nSelect another custom paper size?" ),
if( wxMessageBox( msg, _( "Warning!" ), wxYES_NO | wxICON_EXCLAMATION, this ) == wxYES )
{
m_save_flag = false;
return;
return false;
}
m_layout_size.x = Clamp( MIN_PAGE_SIZE, m_layout_size.x, MAX_PAGE_SIZE );
@ -485,7 +526,7 @@ limits\n%.1f - %.1f %s!\nSelect another custom paper size?" ),
m_pageInfo.SetType( PAGE_INFO::A4 );
}
m_Parent->SetPageSettings( m_pageInfo );
m_parent->SetPageSettings( m_pageInfo );
m_tb.SetRevision( m_TextRevision->GetValue() );
m_tb.SetDate( m_TextDate->GetValue() );
@ -496,7 +537,8 @@ limits\n%.1f - %.1f %s!\nSelect another custom paper size?" ),
m_tb.SetComment3( m_TextComment3->GetValue() );
m_tb.SetComment4( m_TextComment4->GetValue() );
m_Parent->SetTitleBlock( m_tb );
m_parent->SetTitleBlock( m_tb );
#ifdef EESCHEMA
// Exports settings to other sheets if requested:
@ -508,7 +550,7 @@ limits\n%.1f - %.1f %s!\nSelect another custom paper size?" ),
// Update title blocks for all screens
for( screen = ScreenList.GetFirst(); screen != NULL; screen = ScreenList.GetNext() )
{
if( screen == m_Screen )
if( screen == m_screen )
continue;
TITLE_BLOCK tb2 = screen->GetTitleBlock();
@ -542,8 +584,7 @@ limits\n%.1f - %.1f %s!\nSelect another custom paper size?" ),
#endif
m_Screen->SetModify();
m_Parent->GetCanvas()->Refresh();
return true;
}
@ -600,7 +641,7 @@ void DIALOG_PAGES_SETTINGS::UpdatePageLayoutExample()
if( m_page_bitmap->IsOk() )
{
// Calculate layout preview scale.
int appScale = m_Screen->MilsToIuScalar();
int appScale = m_screen->MilsToIuScalar();
double scaleW = (double) lyWidth / clamped_layout_size.x / appScale;
double scaleH = (double) lyHeight / clamped_layout_size.y / appScale;
@ -637,8 +678,8 @@ void DIALOG_PAGES_SETTINGS::UpdatePageLayoutExample()
DrawPageLayout( &memDC, NULL, pageDUMMY,
emptyString, emptyString,
m_tb, m_Screen->m_NumberOfScreens,
m_Screen->m_ScreenNumber, 1, appScale, DARKGRAY, RED );
m_tb, m_screen->m_NumberOfScreens,
m_screen->m_ScreenNumber, 1, appScale, DARKGRAY, RED );
memDC.SelectObject( wxNullBitmap );
m_PageLayoutExampleBitmap->SetBitmap( *m_page_bitmap );
@ -750,3 +791,9 @@ void DIALOG_PAGES_SETTINGS::GetCustomSizeMilsFromDialog()
customSizeY = Clamp( double( INT_MIN ), customSizeY, double( INT_MAX ) );
m_layout_size = wxSize( KiROUND( customSizeX ), KiROUND( customSizeY ) );
}
// Called on .kicad_wks file description selection change
void DIALOG_PAGES_SETTINGS::OnWksFileSelection( wxFileDirPickerEvent& event )
{
// Currently: Nothing to do.
}

View File

@ -35,86 +35,90 @@
class DIALOG_PAGES_SETTINGS: public DIALOG_PAGES_SETTINGS_BASE
{
private:
EDA_DRAW_FRAME* m_Parent;
BASE_SCREEN* m_Screen;
EDA_DRAW_FRAME* m_parent;
BASE_SCREEN* m_screen;
wxArrayString m_pageFmt; /// list of page sizes (not translated)
bool m_initialized;
bool m_modified;
bool m_save_flag;
bool m_localPrjConfigChanged; /// the page layuout filename was changed
wxBitmap* m_page_bitmap; /// Temporary bitmap for the page layout example.
wxSize m_layout_size; /// Logical page layout size.
PAGE_INFO m_pageInfo; /// Temporary page info.
bool m_customFmt; /// true if the page selection is custom
TITLE_BLOCK m_tb; /// Temporary title block (basic inscriptions).
wxString m_plDescrFileName; /// Temporary BASE_SCREEN::m_PageLayoutDescrFileName copy
public:
DIALOG_PAGES_SETTINGS( EDA_DRAW_FRAME* parent );
~DIALOG_PAGES_SETTINGS();
const wxString GetWksFileName()
{
return m_filePicker->GetPath();
}
void SetWksFileName(const wxString& aFilename )
{
m_filePicker->SetPath( aFilename );
}
void EnableWksFileNamePicker( bool aEnable )
{
m_filePicker->Enable( aEnable );
}
private:
/// Initialises member variables
void initDialog();
void initDialog(); // Initialisation of member variables
/// wxEVT_CLOSE_WINDOW event handler for ID_DIALOG
void OnCloseWindow( wxCloseEvent& event );
// void OnCloseWindow( wxCloseEvent& event );
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_OK
// event handler for wxID_OK
void OnOkClick( wxCommandEvent& event );
/// wxEVT_COMMAND_BUTTON_CLICKED event handler for wxID_CANCEL
// event handler for wxID_CANCEL
void OnCancelClick( wxCommandEvent& event );
/// exEVT_COMMAND_CHOICE_SELECTED event handler for ID_CHICE_PAGE_SIZE
// event handlers for page size choice
void OnPaperSizeChoice( wxCommandEvent& event );
/// exEVT_COMMAND_TEXT_UPDATED event handler for ID_TEXTCTRL_USER_PAGE_SIZE_X
void OnUserPageSizeXTextUpdated( wxCommandEvent& event );
/// exEVT_COMMAND_TEXT_UPDATED event handler for ID_TEXTCTRL_USER_PAGE_SIZE_Y
void OnUserPageSizeYTextUpdated( wxCommandEvent& event );
/// exEVT_COMMAND_CHOICE_SELECTED event handler for ID_CHOICE_PAGE_ORIENTATION
void OnPageOrientationChoice( wxCommandEvent& event );
/// exEVT_COMMAND_TEXT_UPDATED event handler for ID_TEXTCTRL_REVISION
// event handler for texts in title block
void OnRevisionTextUpdated( wxCommandEvent& event );
/// exEVT_COMMAND_TEXT_UPDATED event handler for ID_TEXTCTRL_DATE
void OnDateTextUpdated( wxCommandEvent& event );
/// exEVT_COMMAND_TEXT_UPDATED event handler for ID_TEXTCTRL_TITLE
void OnTitleTextUpdated( wxCommandEvent& event );
/// exEVT_COMMAND_TEXT_UPDATED event handler for ID_TEXTCTRL_COMPANY
void OnCompanyTextUpdated( wxCommandEvent& event );
/// exEVT_COMMAND_TEXT_UPDATED event handler for ID_TEXTCTRL_COMMENT1
void OnComment1TextUpdated( wxCommandEvent& event );
/// exEVT_COMMAND_TEXT_UPDATED event handler for ID_TEXTCTRL_COMMENT2
void OnComment2TextUpdated( wxCommandEvent& event );
/// exEVT_COMMAND_TEXT_UPDATED event handler for ID_TEXTCTRL_COMMENT3
void OnComment3TextUpdated( wxCommandEvent& event );
/// exEVT_COMMAND_TEXT_UPDATED event handler for ID_TEXTCTRL_COMMENT4
void OnComment4TextUpdated( wxCommandEvent& event );
/// Handle button click for setting the date from the picker
virtual void OnDateApplyClick( wxCommandEvent& event );
// Handle button click for setting the date from the picker
void OnDateApplyClick( wxCommandEvent& event );
// .kicad_wks file description selection
void OnWksFileSelection( wxFileDirPickerEvent& event );
// Save in the current title block the new page settings
// return true if changes are made, or false if not
bool SavePageSettings();
void SetCurrentPageSizeSelection( const wxString& aPaperSize );
void SavePageSettings( wxCommandEvent& event );
/// Update page layout example
// Update page layout example
void UpdatePageLayoutExample();
/// Get page layout info from selected dialog items
// Get page layout info from selected dialog items
void GetPageLayoutInfoFromDialog();
/// Get custom page size in mils from dialog
// Get custom page size in mils from dialog
void GetCustomSizeMilsFromDialog();
/// @return true if the local prj config is chande
/// i.e. if the page layout descr file has chnaged
bool LocalPrjConfigChanged() { return m_localPrjConfigChanged; }
};
#endif // _DIALOG_PAGES_SETTINGS_H_

View File

@ -139,7 +139,7 @@ DIALOG_PAGES_SETTINGS_BASE::DIALOG_PAGES_SETTINGS_BASE( wxWindow* parent, wxWind
m_staticTextDate = new wxStaticText( this, wxID_ANY, _("Issue Date"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextDate->Wrap( -1 );
bSizerDate->Add( m_staticTextDate, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
bSizerDate->Add( m_staticTextDate, 0, wxRIGHT|wxLEFT, 5 );
wxBoxSizer* bSizerissuedate;
bSizerissuedate = new wxBoxSizer( wxHORIZONTAL );
@ -195,7 +195,7 @@ DIALOG_PAGES_SETTINGS_BASE::DIALOG_PAGES_SETTINGS_BASE( wxWindow* parent, wxWind
m_staticTextTitle = new wxStaticText( this, wxID_ANY, _("Title"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextTitle->Wrap( -1 );
bSizerTitle->Add( m_staticTextTitle, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
bSizerTitle->Add( m_staticTextTitle, 0, wxRIGHT|wxLEFT, 5 );
wxBoxSizer* bSizer12;
bSizer12 = new wxBoxSizer( wxHORIZONTAL );
@ -220,7 +220,7 @@ DIALOG_PAGES_SETTINGS_BASE::DIALOG_PAGES_SETTINGS_BASE( wxWindow* parent, wxWind
m_staticText13 = new wxStaticText( this, wxID_ANY, _("Company"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText13->Wrap( -1 );
bSizerCompany->Add( m_staticText13, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
bSizerCompany->Add( m_staticText13, 0, wxRIGHT|wxLEFT, 5 );
wxBoxSizer* bSizer14;
bSizer14 = new wxBoxSizer( wxHORIZONTAL );
@ -245,7 +245,7 @@ DIALOG_PAGES_SETTINGS_BASE::DIALOG_PAGES_SETTINGS_BASE( wxWindow* parent, wxWind
m_staticTextComment1 = new wxStaticText( this, wxID_ANY, _("Comment1"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextComment1->Wrap( -1 );
bSizerComment1->Add( m_staticTextComment1, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
bSizerComment1->Add( m_staticTextComment1, 0, wxRIGHT|wxLEFT, 5 );
wxBoxSizer* bSizercmt1;
bSizercmt1 = new wxBoxSizer( wxHORIZONTAL );
@ -270,7 +270,7 @@ DIALOG_PAGES_SETTINGS_BASE::DIALOG_PAGES_SETTINGS_BASE( wxWindow* parent, wxWind
m_staticTextComment2 = new wxStaticText( this, wxID_ANY, _("Comment2"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextComment2->Wrap( -1 );
bSizerComment2->Add( m_staticTextComment2, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
bSizerComment2->Add( m_staticTextComment2, 0, wxRIGHT|wxLEFT, 5 );
wxBoxSizer* bSizercmt2;
bSizercmt2 = new wxBoxSizer( wxHORIZONTAL );
@ -295,7 +295,7 @@ DIALOG_PAGES_SETTINGS_BASE::DIALOG_PAGES_SETTINGS_BASE( wxWindow* parent, wxWind
m_staticTextComment3 = new wxStaticText( this, wxID_ANY, _("Comment3"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextComment3->Wrap( -1 );
bSizerComment12->Add( m_staticTextComment3, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
bSizerComment12->Add( m_staticTextComment3, 0, wxRIGHT|wxLEFT, 5 );
wxBoxSizer* bSizercmt3;
bSizercmt3 = new wxBoxSizer( wxHORIZONTAL );
@ -320,7 +320,7 @@ DIALOG_PAGES_SETTINGS_BASE::DIALOG_PAGES_SETTINGS_BASE( wxWindow* parent, wxWind
m_staticTextComment4 = new wxStaticText( this, wxID_ANY, _("Comment4"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextComment4->Wrap( -1 );
bSizerComment4->Add( m_staticTextComment4, 0, wxTOP|wxRIGHT|wxLEFT, 5 );
bSizerComment4->Add( m_staticTextComment4, 0, wxRIGHT|wxLEFT, 5 );
wxBoxSizer* bSizercmt4;
bSizercmt4 = new wxBoxSizer( wxHORIZONTAL );
@ -340,6 +340,25 @@ DIALOG_PAGES_SETTINGS_BASE::DIALOG_PAGES_SETTINGS_BASE( wxWindow* parent, wxWind
bSizerRight->Add( bSizerComment4, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
wxBoxSizer* bSizerFilename;
bSizerFilename = new wxBoxSizer( wxVERTICAL );
m_staticTextfilename = new wxStaticText( this, wxID_ANY, _("Page layout file description"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticTextfilename->Wrap( -1 );
bSizerFilename->Add( m_staticTextfilename, 0, wxRIGHT|wxLEFT, 5 );
wxBoxSizer* bSizerfileSelection;
bSizerfileSelection = new wxBoxSizer( wxHORIZONTAL );
m_filePicker = new wxFilePickerCtrl( this, wxID_ANY, wxEmptyString, _("Select a file"), wxT("*.kicad_wks"), wxDefaultPosition, wxDefaultSize, wxFLP_OPEN|wxFLP_USE_TEXTCTRL );
bSizerfileSelection->Add( m_filePicker, 1, wxBOTTOM|wxRIGHT|wxLEFT, 5 );
bSizerFilename->Add( bSizerfileSelection, 1, wxEXPAND, 5 );
bSizerRight->Add( bSizerFilename, 0, wxEXPAND|wxRIGHT|wxLEFT, 5 );
bUpperSizerH->Add( bSizerRight, 1, wxEXPAND, 5 );
@ -360,7 +379,6 @@ DIALOG_PAGES_SETTINGS_BASE::DIALOG_PAGES_SETTINGS_BASE( wxWindow* parent, wxWind
this->Layout();
// Connect Events
this->Connect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnCloseWindow ) );
m_paperSizeComboBox->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnPaperSizeChoice ), NULL, this );
m_orientationComboBox->Connect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnPageOrientationChoice ), NULL, this );
m_TextUserSizeY->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnUserPageSizeYTextUpdated ), NULL, this );
@ -375,6 +393,7 @@ DIALOG_PAGES_SETTINGS_BASE::DIALOG_PAGES_SETTINGS_BASE( wxWindow* parent, wxWind
m_TextComment2->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnComment2TextUpdated ), NULL, this );
m_TextComment3->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnComment3TextUpdated ), NULL, this );
m_TextComment4->Connect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnComment4TextUpdated ), NULL, this );
m_filePicker->Connect( wxEVT_COMMAND_FILEPICKER_CHANGED, wxFileDirPickerEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnWksFileSelection ), NULL, this );
m_sdbSizer1Cancel->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnCancelClick ), NULL, this );
m_sdbSizer1OK->Connect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnOkClick ), NULL, this );
}
@ -382,7 +401,6 @@ DIALOG_PAGES_SETTINGS_BASE::DIALOG_PAGES_SETTINGS_BASE( wxWindow* parent, wxWind
DIALOG_PAGES_SETTINGS_BASE::~DIALOG_PAGES_SETTINGS_BASE()
{
// Disconnect Events
this->Disconnect( wxEVT_CLOSE_WINDOW, wxCloseEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnCloseWindow ) );
m_paperSizeComboBox->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnPaperSizeChoice ), NULL, this );
m_orientationComboBox->Disconnect( wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnPageOrientationChoice ), NULL, this );
m_TextUserSizeY->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnUserPageSizeYTextUpdated ), NULL, this );
@ -397,6 +415,7 @@ DIALOG_PAGES_SETTINGS_BASE::~DIALOG_PAGES_SETTINGS_BASE()
m_TextComment2->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnComment2TextUpdated ), NULL, this );
m_TextComment3->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnComment3TextUpdated ), NULL, this );
m_TextComment4->Disconnect( wxEVT_COMMAND_TEXT_UPDATED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnComment4TextUpdated ), NULL, this );
m_filePicker->Disconnect( wxEVT_COMMAND_FILEPICKER_CHANGED, wxFileDirPickerEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnWksFileSelection ), NULL, this );
m_sdbSizer1Cancel->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnCancelClick ), NULL, this );
m_sdbSizer1OK->Disconnect( wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler( DIALOG_PAGES_SETTINGS_BASE::OnOkClick ), NULL, this );

View File

@ -42,7 +42,7 @@
<property name="minimum_size"></property>
<property name="name">DIALOG_PAGES_SETTINGS_BASE</property>
<property name="pos"></property>
<property name="size">748,464</property>
<property name="size">748,470</property>
<property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>
<property name="subclass">DIALOG_SHIM; dialog_shim.h</property>
<property name="title">Page Settings</property>
@ -59,7 +59,7 @@
<event name="OnAuiPaneRestore"></event>
<event name="OnAuiRender"></event>
<event name="OnChar"></event>
<event name="OnClose">OnCloseWindow</event>
<event name="OnClose"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnHibernate"></event>
@ -1697,7 +1697,7 @@
<property name="permission">none</property>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
<property name="flag">wxRIGHT|wxLEFT</property>
<property name="proportion">0</property>
<object class="wxStaticText" expanded="1">
<property name="BottomDockable">1</property>
@ -2439,7 +2439,7 @@
<property name="permission">none</property>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
<property name="flag">wxRIGHT|wxLEFT</property>
<property name="proportion">0</property>
<object class="wxStaticText" expanded="1">
<property name="BottomDockable">1</property>
@ -2723,7 +2723,7 @@
<property name="permission">none</property>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
<property name="flag">wxRIGHT|wxLEFT</property>
<property name="proportion">0</property>
<object class="wxStaticText" expanded="1">
<property name="BottomDockable">1</property>
@ -3007,7 +3007,7 @@
<property name="permission">none</property>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
<property name="flag">wxRIGHT|wxLEFT</property>
<property name="proportion">0</property>
<object class="wxStaticText" expanded="1">
<property name="BottomDockable">1</property>
@ -3291,7 +3291,7 @@
<property name="permission">none</property>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
<property name="flag">wxRIGHT|wxLEFT</property>
<property name="proportion">0</property>
<object class="wxStaticText" expanded="1">
<property name="BottomDockable">1</property>
@ -3575,7 +3575,7 @@
<property name="permission">none</property>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
<property name="flag">wxRIGHT|wxLEFT</property>
<property name="proportion">0</property>
<object class="wxStaticText" expanded="1">
<property name="BottomDockable">1</property>
@ -3857,11 +3857,11 @@
<property name="name">bSizerComment4</property>
<property name="orient">wxVERTICAL</property>
<property name="permission">none</property>
<object class="sizeritem" expanded="1">
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxTOP|wxRIGHT|wxLEFT</property>
<property name="flag">wxRIGHT|wxLEFT</property>
<property name="proportion">0</property>
<object class="wxStaticText" expanded="1">
<object class="wxStaticText" expanded="0">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
@ -3940,11 +3940,11 @@
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="1">
<object class="sizeritem" expanded="0">
<property name="border">5</property>
<property name="flag">wxEXPAND</property>
<property name="proportion">1</property>
<object class="wxBoxSizer" expanded="1">
<object class="wxBoxSizer" expanded="0">
<property name="minimum_size"></property>
<property name="name">bSizercmt4</property>
<property name="orient">wxHORIZONTAL</property>
@ -4132,6 +4132,200 @@
</object>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND|wxRIGHT|wxLEFT</property>
<property name="proportion">0</property>
<object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
<property name="name">bSizerFilename</property>
<property name="orient">wxVERTICAL</property>
<property name="permission">none</property>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxRIGHT|wxLEFT</property>
<property name="proportion">0</property>
<object class="wxStaticText" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Page layout file description</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_staticTextfilename</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<property name="wrap">-1</property>
<event name="OnChar"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND</property>
<property name="proportion">1</property>
<object class="wxBoxSizer" expanded="1">
<property name="minimum_size"></property>
<property name="name">bSizerfileSelection</property>
<property name="orient">wxHORIZONTAL</property>
<property name="permission">none</property>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxBOTTOM|wxRIGHT|wxLEFT</property>
<property name="proportion">1</property>
<object class="wxFilePickerCtrl" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="message">Select a file</property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_filePicker</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style">wxFLP_OPEN|wxFLP_USE_TEXTCTRL</property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="value"></property>
<property name="wildcard">*.kicad_wks</property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnChar"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnFileChanged">OnWksFileSelection</event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
</object>
</object>
</object>
</object>
</object>
</object>
</object>

View File

@ -33,6 +33,7 @@ class DIALOG_SHIM;
#include <wx/datectrl.h>
#include <wx/dateevt.h>
#include <wx/checkbox.h>
#include <wx/filepicker.h>
#include <wx/dialog.h>
///////////////////////////////////////////////////////////////////////////
@ -111,12 +112,13 @@ class DIALOG_PAGES_SETTINGS_BASE : public DIALOG_SHIM
wxStaticText* m_staticTextComment4;
wxTextCtrl* m_TextComment4;
wxCheckBox* m_Comment4Export;
wxStaticText* m_staticTextfilename;
wxFilePickerCtrl* m_filePicker;
wxStdDialogButtonSizer* m_sdbSizer1;
wxButton* m_sdbSizer1OK;
wxButton* m_sdbSizer1Cancel;
// Virtual event handlers, overide them in your derived class
virtual void OnCloseWindow( wxCloseEvent& event ) { event.Skip(); }
virtual void OnPaperSizeChoice( wxCommandEvent& event ) { event.Skip(); }
virtual void OnPageOrientationChoice( wxCommandEvent& event ) { event.Skip(); }
virtual void OnUserPageSizeYTextUpdated( wxCommandEvent& event ) { event.Skip(); }
@ -131,13 +133,14 @@ class DIALOG_PAGES_SETTINGS_BASE : public DIALOG_SHIM
virtual void OnComment2TextUpdated( wxCommandEvent& event ) { event.Skip(); }
virtual void OnComment3TextUpdated( wxCommandEvent& event ) { event.Skip(); }
virtual void OnComment4TextUpdated( wxCommandEvent& event ) { event.Skip(); }
virtual void OnWksFileSelection( wxFileDirPickerEvent& event ) { event.Skip(); }
virtual void OnCancelClick( wxCommandEvent& event ) { event.Skip(); }
virtual void OnOkClick( wxCommandEvent& event ) { event.Skip(); }
public:
DIALOG_PAGES_SETTINGS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Page Settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 748,464 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
DIALOG_PAGES_SETTINGS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Page Settings"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 748,470 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
~DIALOG_PAGES_SETTINGS_BASE();
};

View File

@ -564,13 +564,14 @@ void EDA_DRAW_PANEL::ReDraw( wxDC* DC, bool erasebg )
g_GhostColor = WHITE;
}
GRResetPenAndBrush( DC );
DC->SetBackground( g_DrawBgColor == BLACK ? *wxBLACK_BRUSH : *wxWHITE_BRUSH );
DC->SetBackgroundMode( wxSOLID );
if( erasebg )
EraseScreen( DC );
GRResetPenAndBrush( DC );
DC->SetBackground( *wxBLACK_BRUSH );
DC->SetBackgroundMode( wxSOLID );
GetParent()->RedrawActiveWindow( DC, erasebg );
// Verfies that the clipping is working correctly. If these two sets of numbers are
@ -881,6 +882,9 @@ void EDA_DRAW_PANEL::OnMouseWheel( wxMouseEvent& event )
wxCommandEvent cmd( wxEVT_COMMAND_MENU_SELECTED );
cmd.SetEventObject( this );
bool offCenterReq = event.ControlDown() && event.ShiftDown();
offCenterReq = offCenterReq || m_enableZoomNoCenter;
// This is a zoom in or out command
if( event.GetWheelRotation() > 0 )
{
@ -888,8 +892,7 @@ void EDA_DRAW_PANEL::OnMouseWheel( wxMouseEvent& event )
cmd.SetId( ID_PAN_UP );
else if( event.ControlDown() && !event.ShiftDown() )
cmd.SetId( ID_PAN_LEFT );
else if( (event.ControlDown() && event.ShiftDown() )
|| m_enableZoomNoCenter)
else if( offCenterReq )
cmd.SetId( ID_OFFCENTER_ZOOM_IN );
else
cmd.SetId( ID_POPUP_ZOOM_IN );
@ -900,7 +903,7 @@ void EDA_DRAW_PANEL::OnMouseWheel( wxMouseEvent& event )
cmd.SetId( ID_PAN_DOWN );
else if( event.ControlDown() && !event.ShiftDown() )
cmd.SetId( ID_PAN_RIGHT );
else if( event.AltDown() || m_enableZoomNoCenter)
else if( offCenterReq )
cmd.SetId( ID_OFFCENTER_ZOOM_OUT );
else
cmd.SetId( ID_POPUP_ZOOM_OUT );

View File

@ -396,7 +396,7 @@ static bool isSpace( char cc )
// Treat negative as large positive to exclude rapidly.
if( (unsigned char) cc <= ' ' )
{
switch( cc )
switch( (unsigned char) cc )
{
case ' ':
case '\n':

View File

@ -259,7 +259,7 @@ void EDA_TEXT::drawOneLineOfText( EDA_RECT* aClipBox, wxDC* aDC,
if( aFillMode == LINE )
width = 0;
if( aDrawMode != -1 )
if( aDrawMode != UNSPECIFIED_DRAWMODE )
GRSetDrawMode( aDC, aDrawMode );
// Draw text anchor, if requested

View File

@ -452,17 +452,16 @@ bool EDA_APP::SetBinDir()
m_BinDir = FROM_UTF8( native_str );
delete[] native_str;
// Linux and Unix
#elif defined(__UNIX__)
#elif defined(__UNIX__) // Linux and non-Apple Unix
m_BinDir = wxStandardPaths::Get().GetExecutablePath();
#else
m_BinDir = argv[0];
#endif // __UNIX__
#endif
/* Use unix notation for paths. I am not sure this is a good idea,
* but it simplify compatibility between Windows and Unices
* However it is a potential problem in path handling under Windows
*/
// Use unix notation for paths. I am not sure this is a good idea,
// but it simplify compatibility between Windows and Unices
// However it is a potential problem in path handling under Windows
m_BinDir.Replace( WIN_STRING_DIR_SEP, UNIX_STRING_DIR_SEP );
// Remove file name form command line:
@ -886,7 +885,6 @@ wxString EDA_APP::FindFileInSearchPaths( const wxString& filename,
for( i = 0; i < m_searchPaths.GetCount(); i++ )
{
fn = wxFileName( m_searchPaths[i], wxEmptyString );
if( subdirs )
{
for( j = 0; j < subdirs->GetCount(); j++ )
@ -1133,11 +1131,13 @@ void EDA_APP::InsertLibraryPath( const wxString& aPaths, size_t aIndex )
}
}
bool EDA_APP::LockFile( const wxString& fileName )
{
// first make absolute and normalize, to avoid that different lock files
// for the same file can be created
wxFileName fn = fileName;
fn.MakeAbsolute();
// semaphore to protect the edition of the file by more than one instance
@ -1146,11 +1146,16 @@ bool EDA_APP::LockFile( const wxString& fileName )
// it means that we had an open file and we are opening a different one
delete m_oneInstancePerFileChecker;
}
wxString lockFileName = fn.GetFullPath() + wxT( ".lock" );
lockFileName.Replace( wxT( "/" ), wxT( "_" ) );
// We can have filenames coming from Windows, so also convert Windows separator
lockFileName.Replace( wxT( "\\" ), wxT( "_" ) );
m_oneInstancePerFileChecker = new wxSingleInstanceChecker( lockFileName );
if( m_oneInstancePerFileChecker &&
m_oneInstancePerFileChecker->IsAnotherRunning() )
{

View File

@ -15,6 +15,7 @@
#include <wx/graphics.h>
static const bool FILLED = true;
static const bool NOT_FILLED = false;
/* Important Note:
* These drawing functions clip draw item before send these items to wxDC draw
@ -50,11 +51,8 @@ GR_DRAWMODE g_XorMode = GR_NXOR;
EDA_COLOR_T g_DrawBgColor = WHITE;
#define USE_CLIP_FILLED_POLYGONS
#ifdef USE_CLIP_FILLED_POLYGONS
static void ClipAndDrawFilledPoly( EDA_RECT * ClipBox, wxDC * DC, wxPoint Points[], int n );
#endif
static void ClipAndDrawPoly( EDA_RECT * ClipBox, wxDC * DC, wxPoint Points[],
int n );
/* These functions are used by corresponding functions
* ( GRSCircle is called by GRCircle for instance) after mapping coordinates
@ -857,14 +855,9 @@ static bool IsGRSPolyDrawable( EDA_RECT* ClipBox, int n, wxPoint Points[] )
/*
* Draw a new polyline and fill it if Fill, in screen space.
*/
static void GRSPoly( EDA_RECT* ClipBox,
wxDC* DC,
int n,
wxPoint Points[],
bool Fill,
int width,
EDA_COLOR_T Color,
EDA_COLOR_T BgColor )
static void GRSPoly( EDA_RECT* ClipBox, wxDC* DC, int n, wxPoint Points[],
bool Fill, int width,
EDA_COLOR_T Color, EDA_COLOR_T BgColor )
{
if( !IsGRSPolyDrawable( ClipBox, n, Points ) )
return;
@ -878,12 +871,9 @@ static void GRSPoly( EDA_RECT* ClipBox,
/* clip before send the filled polygon to wxDC, because under linux
* (GTK?) polygons having large coordinates are incorrectly drawn
* (integer overflow in coordinates, I am guessing)
*/
#ifdef USE_CLIP_FILLED_POLYGONS
ClipAndDrawFilledPoly( ClipBox, DC, Points, n );
#else
DC->DrawPolygon( n, Points ); // does not work very well under linux
#endif
ClipAndDrawPoly( ClipBox, DC, Points, n );
}
else
{
@ -903,47 +893,36 @@ static void GRSPoly( EDA_RECT* ClipBox,
/*
* Draw a new closed polyline and fill it if Fill, in screen space.
*/
static void GRSClosedPoly( EDA_RECT* ClipBox,
wxDC* DC,
int aPointCount,
wxPoint aPoints[],
bool Fill,
int width,
EDA_COLOR_T Color,
EDA_COLOR_T BgColor )
static void GRSClosedPoly( EDA_RECT* aClipBox, wxDC* aDC,
int aPointCount, wxPoint aPoints[],
bool aFill, int aWidth,
EDA_COLOR_T aColor,
EDA_COLOR_T aBgColor )
{
if( !IsGRSPolyDrawable( ClipBox, aPointCount, aPoints ) )
if( !IsGRSPolyDrawable( aClipBox, aPointCount, aPoints ) )
return;
GRSetColorPen( DC, Color, width );
GRSetColorPen( aDC, aColor, aWidth );
if( Fill && ( aPointCount > 2 ) )
if( aFill && ( aPointCount > 2 ) )
{
GRLastMoveToX = aPoints[aPointCount - 1].x;
GRLastMoveToY = aPoints[aPointCount - 1].y;
GRSetBrush( DC, BgColor, FILLED );
#ifdef USE_CLIP_FILLED_POLYGONS
ClipAndDrawFilledPoly( ClipBox, DC, aPoints, aPointCount );
#else
DC->DrawPolygon( aPointCount, aPoints ); // does not work very well under linux
#endif
GRSetBrush( aDC, aBgColor, FILLED );
ClipAndDrawPoly( aClipBox, aDC, aPoints, aPointCount );
}
else
{
GRSetBrush( DC, BgColor );
DC->DrawLines( aPointCount, aPoints );
GRSetBrush( aDC, aBgColor );
aDC->DrawLines( aPointCount, aPoints );
int lastpt = aPointCount - 1;
/* Close the polygon. */
if( aPoints[aPointCount - 1] != aPoints[0] )
if( aPoints[lastpt] != aPoints[0] )
{
GRLine( ClipBox,
DC,
aPoints[0].x,
aPoints[0].y,
aPoints[aPointCount - 1].x,
aPoints[aPointCount - 1].y,
width,
Color );
GRLine( aClipBox, aDC, aPoints[0].x, aPoints[0].y,
aPoints[lastpt].x, aPoints[lastpt].y,
aWidth, aColor );
}
}
}
@ -1153,7 +1132,7 @@ void GRFilledArc( EDA_RECT* ClipBox,
void GRFilledArc( EDA_RECT* ClipBox, wxDC* DC, int x, int y,
double StAngle, double EndAngle, int r,
double StAngle, double EndAngle, int r,
EDA_COLOR_T Color, EDA_COLOR_T BgColor )
{
GRFilledArc( ClipBox, DC, x, y, StAngle, EndAngle, r, 0, Color, BgColor );
@ -1322,30 +1301,20 @@ void GRFilledRect( EDA_RECT* ClipBox, wxDC* DC, int x1, int y1, int x2, int y2,
void GRSRect( EDA_RECT* aClipBox, wxDC* aDC, int x1, int y1, int x2, int y2,
int aWidth, EDA_COLOR_T aColor, wxPenStyle aStyle )
{
wxPoint points[5];
points[0] = wxPoint(x1, y1);
points[1] = wxPoint(x1, y2);
points[2] = wxPoint(x2, y2);
points[3] = wxPoint(x2, y1);
points[4] = points[0];
GRSetColorPen( aDC, aColor, aWidth, aStyle );
GRSetBrush( aDC, BLACK );
if( aClipBox )
{
EDA_RECT clipbox(*aClipBox);
clipbox.Inflate(aWidth);
ClipAndDrawFilledPoly(&clipbox, aDC, points, 5); // polygon approach is more accurate
}
else
ClipAndDrawFilledPoly(aClipBox, aDC, points, 5);
GRSClosedPoly( aClipBox, aDC, 5, points, NOT_FILLED, aWidth,
aColor, aColor );
}
void GRSFilledRect( EDA_RECT* aClipBox, wxDC* aDC, int x1, int y1, int x2, int y2,
int aWidth, EDA_COLOR_T aColor, EDA_COLOR_T aBgColor )
{
wxPoint points[5];
points[0] = wxPoint(x1, y1);
points[1] = wxPoint(x1, y2);
@ -1354,21 +1323,19 @@ void GRSFilledRect( EDA_RECT* aClipBox, wxDC* aDC, int x1, int y1, int x2, int y
points[4] = points[0];
GRSetBrush( aDC, aBgColor, FILLED );
GRSetColorPen( aDC, aBgColor, aWidth );
if( aClipBox && (aWidth > 0) )
{
EDA_RECT clipbox(*aClipBox);
clipbox.Inflate(aWidth);
ClipAndDrawFilledPoly(&clipbox, aDC, points, 5); // polygon approach is more accurate
ClipAndDrawPoly(&clipbox, aDC, points, 5); // polygon approach is more accurate
}
else
ClipAndDrawFilledPoly(aClipBox, aDC, points, 5);
ClipAndDrawPoly(aClipBox, aDC, points, 5 );
}
#ifdef USE_CLIP_FILLED_POLYGONS
/**
* Function ClipAndDrawFilledPoly
* Function ClipAndDrawPoly
* Used to clip a polygon and draw it as Filled Polygon
* uses the Sutherland and Hodgman algo to clip the given poly against a
* rectangle. This rectangle is the drawing area this is useful under
@ -1382,7 +1349,7 @@ void GRSFilledRect( EDA_RECT* aClipBox, wxDC* aDC, int x1, int y1, int x2, int y
*/
#include <SutherlandHodgmanClipPoly.h>
void ClipAndDrawFilledPoly( EDA_RECT* aClipBox, wxDC* aDC, wxPoint aPoints[], int n )
void ClipAndDrawPoly( EDA_RECT* aClipBox, wxDC* aDC, wxPoint aPoints[], int n )
{
if( aClipBox == NULL )
{
@ -1417,9 +1384,6 @@ void ClipAndDrawFilledPoly( EDA_RECT* aClipBox, wxDC* aDC, wxPoint aPoints[], in
}
#endif
void GRBezier( EDA_RECT* ClipBox,
wxDC* DC,
int x1,
@ -1561,7 +1525,7 @@ EDA_COLOR_T ColorFindNearest( const wxColour &aColor )
return candidate;
}
void GRDrawAnchor( EDA_RECT *aClipBox, wxDC *aDC, int x, int y,
void GRDrawAnchor( EDA_RECT *aClipBox, wxDC *aDC, int x, int y,
int aSize, EDA_COLOR_T aColor )
{
int anchor_size = aDC->DeviceToLogicalXRel( aSize );

View File

@ -682,7 +682,7 @@ void EDA_BASE_FRAME::ImportHotkeyConfigFromFile( struct EDA_HOTKEY_CONFIG* aDesc
wxString ext = DEFAULT_HOTKEY_FILENAME_EXT;
wxString mask = wxT( "*." ) + ext;
wxString path = wxGetCwd();
wxString filename;
wxString filename = wxGetApp().GetAppName() + wxT( "." ) + ext;
filename = EDA_FileSelector( _( "Read Hotkey Configuration File:" ),
path,
@ -710,7 +710,7 @@ void EDA_BASE_FRAME::ExportHotkeyConfigToFile( struct EDA_HOTKEY_CONFIG* aDescLi
wxString ext = DEFAULT_HOTKEY_FILENAME_EXT;
wxString mask = wxT( "*." ) + ext;
wxString path = wxGetCwd();
wxString filename;
wxString filename = wxGetApp().GetAppName() + wxT( "." ) + ext;
filename = EDA_FileSelector( _( "Write Hotkey Configuration File:" ),
path,

View File

@ -0,0 +1,503 @@
/**
* @file class_worksheet_dataitem.cpp
* @brief description of graphic items and texts to build a title block
*/
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 1992-2013 Jean-Pierre Charras <jp.charras at wanadoo.fr>.
* Copyright (C) 1992-2013 KiCad Developers, see change_log.txt for contributors.
*
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or you may search the http://www.gnu.org website for the version 2 license,
* or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
/*
* the class WORKSHEET_DATAITEM (and derived) defines
* a basic shape of a page layout ( frame references and title block )
* Basic shapes are line, rect and texts
* the WORKSHEET_DATAITEM coordinates units is the mm, and are relative to
* one of 4 page corners.
*
* These items cannot be drawn or plot "as this". they should be converted
* to a "draw list" (WS_DRAW_ITEM_BASE and derived items)
* The list of these items is stored in a WORKSHEET_LAYOUT instance.
*
* When building the draw list:
* the WORKSHEET_LAYOUT is used to create a WS_DRAW_ITEM_LIST
* coordinates are converted to draw/plot coordinates.
* texts are expanded if they contain format symbols.
* Items with m_RepeatCount > 1 are created m_RepeatCount times
*
* the WORKSHEET_LAYOUT is created only once.
* the WS_DRAW_ITEM_LIST is created each time the page layout is plot/drawn
*
* the WORKSHEET_LAYOUT instance is created from a S expression which
* describes the page layout (can be the default page layout or a custom file).
*/
#include <fctsys.h>
#include <drawtxt.h>
#include <worksheet.h>
#include <class_title_block.h>
#include <worksheet_shape_builder.h>
#include <class_worksheet_dataitem.h>
// Static members of class WORKSHEET_DATAITEM:
double WORKSHEET_DATAITEM::m_WSunits2Iu = 1.0;
DPOINT WORKSHEET_DATAITEM::m_RB_Corner;
DPOINT WORKSHEET_DATAITEM::m_LT_Corner;
double WORKSHEET_DATAITEM::m_DefaultLineWidth = 0.0;
DSIZE WORKSHEET_DATAITEM::m_DefaultTextSize( TB_DEFAULT_TEXTSIZE, TB_DEFAULT_TEXTSIZE );
double WORKSHEET_DATAITEM::m_DefaultTextThickness = 0.0;
bool WORKSHEET_DATAITEM::m_SpecialMode = false;
EDA_COLOR_T WORKSHEET_DATAITEM::m_Color = RED; // the default color to draw items
EDA_COLOR_T WORKSHEET_DATAITEM::m_AltColor = RED; // an alternate color to draw items
EDA_COLOR_T WORKSHEET_DATAITEM::m_SelectedColor = BROWN; // the color to draw selected items
// The constructor:
WORKSHEET_DATAITEM::WORKSHEET_DATAITEM( WS_ItemType aType )
{
m_type = aType;
m_flags = 0;
m_RepeatCount = 1;
m_IncrementLabel = 1;
m_LineWidth = 0;
}
// move item to aPosition
// starting point is moved to aPosition
// the Ending point is moved to a position which keeps the item size
// (if both coordinates have the same corner reference)
// MoveToUi and MoveTo takes the graphic position (i.e relative to the left top
// paper corner
void WORKSHEET_DATAITEM::MoveToUi( wxPoint aPosition )
{
DPOINT pos_mm;
pos_mm.x = aPosition.x / m_WSunits2Iu;
pos_mm.y = aPosition.y / m_WSunits2Iu;
MoveTo( pos_mm );
}
void WORKSHEET_DATAITEM::MoveTo( DPOINT aPosition )
{
DPOINT vector = aPosition - GetStartPos();
DPOINT endpos = vector + GetEndPos();
MoveStartPointTo( aPosition );
MoveEndPointTo( endpos );
}
/* move the starting point of the item to a new position
* aPosition = the new position of the starting point, in mm
*/
void WORKSHEET_DATAITEM::MoveStartPointTo( DPOINT aPosition )
{
DPOINT position;
// Calculate the position of the starting point
// relative to the reference corner
// aPosition is the position relative to the right top paper corner
switch( m_Pos.m_Anchor )
{
case RB_CORNER:
position = m_RB_Corner - aPosition;
break;
case RT_CORNER:
position.x = m_RB_Corner.x - aPosition.x;
position.y = aPosition.y - m_LT_Corner.y;
break;
case LB_CORNER:
position.x = aPosition.x - m_LT_Corner.x;
position.y = m_RB_Corner.y - aPosition.y;
break;
case LT_CORNER:
position = aPosition - m_LT_Corner;
break;
}
m_Pos.m_Pos = position;
}
/* move the starting point of the item to a new position
* aPosition = the new position of the starting point in graphic units
*/
void WORKSHEET_DATAITEM::MoveStartPointToUi( wxPoint aPosition )
{
DPOINT pos_mm;
pos_mm.x = aPosition.x / m_WSunits2Iu;
pos_mm.y = aPosition.y / m_WSunits2Iu;
MoveStartPointTo( pos_mm );
}
/**
* move the ending point of the item to a new position
* has meaning only for items defined by 2 points
* (segments and rectangles)
* aPosition = the new position of the ending point, in mm
*/
void WORKSHEET_DATAITEM::MoveEndPointTo( DPOINT aPosition )
{
DPOINT position;
// Calculate the position of the starting point
// relative to the reference corner
// aPosition is the position relative to the right top paper corner
switch( m_End.m_Anchor )
{
case RB_CORNER:
position = m_RB_Corner - aPosition;
break;
case RT_CORNER:
position.x = m_RB_Corner.x - aPosition.x;
position.y = aPosition.y - m_LT_Corner.y;
break;
case LB_CORNER:
position.x = aPosition.x - m_LT_Corner.x;
position.y = m_RB_Corner.y - aPosition.y;
break;
case LT_CORNER:
position = aPosition - m_LT_Corner;
break;
}
// Modify m_End only for items having 2 coordinates
switch( GetType() )
{
case WS_SEGMENT:
case WS_RECT:
m_End.m_Pos = position;
break;
default:
break;
}
}
/* move the ending point of the item to a new position
* has meaning only for items defined by 2 points
* (segments and rectangles)
* aPosition = the new position of the ending point in graphic units
*/
void WORKSHEET_DATAITEM::MoveEndPointToUi( wxPoint aPosition )
{
DPOINT pos_mm;
pos_mm.x = aPosition.x / m_WSunits2Iu;
pos_mm.y = aPosition.y / m_WSunits2Iu;
MoveEndPointTo( pos_mm );
}
const DPOINT WORKSHEET_DATAITEM::GetStartPos( int ii ) const
{
DPOINT pos;
pos.x = m_Pos.m_Pos.x + ( m_IncrementVector.x * ii );
pos.y = m_Pos.m_Pos.y + ( m_IncrementVector.y * ii );
switch( m_Pos.m_Anchor )
{
case RB_CORNER: // right bottom corner
pos = m_RB_Corner - pos;
break;
case RT_CORNER: // right top corner
pos.x = m_RB_Corner.x - pos.x;
pos.y = m_LT_Corner.y + pos.y;
break;
case LB_CORNER: // left bottom corner
pos.x = m_LT_Corner.x + pos.x;
pos.y = m_RB_Corner.y - pos.y;
break;
case LT_CORNER: // left top corner
pos = m_LT_Corner + pos;
break;
}
return pos;
}
const wxPoint WORKSHEET_DATAITEM::GetStartPosUi( int ii ) const
{
DPOINT pos = GetStartPos( ii );
pos = pos * m_WSunits2Iu;
return wxPoint( int(pos.x), int(pos.y) );
}
const DPOINT WORKSHEET_DATAITEM::GetEndPos( int ii ) const
{
DPOINT pos;
pos.x = m_End.m_Pos.x + ( m_IncrementVector.x * ii );
pos.y = m_End.m_Pos.y + ( m_IncrementVector.y * ii );
switch( m_End.m_Anchor )
{
case RB_CORNER: // right bottom corner
pos = m_RB_Corner - pos;
break;
case RT_CORNER: // right top corner
pos.x = m_RB_Corner.x - pos.x;
pos.y = m_LT_Corner.y + pos.y;
break;
case LB_CORNER: // left bottom corner
pos.x = m_LT_Corner.x + pos.x;
pos.y = m_RB_Corner.y - pos.y;
break;
case LT_CORNER: // left top corner
pos = m_LT_Corner + pos;
break;
}
return pos;
}
const wxPoint WORKSHEET_DATAITEM::GetEndPosUi( int ii ) const
{
DPOINT pos = GetEndPos( ii );
pos = pos * m_WSunits2Iu;
return wxPoint( int(pos.x), int(pos.y) );
}
bool WORKSHEET_DATAITEM::IsInsidePage( int ii ) const
{
DPOINT pos = GetStartPos( ii );
for( int kk = 0; kk < 1; kk++ )
{
if( m_RB_Corner.x < pos.x || m_LT_Corner.x > pos.x )
return false;
if( m_RB_Corner.y < pos.y || m_LT_Corner.y > pos.y )
return false;
pos = GetEndPos( ii );
}
return true;
}
const wxString WORKSHEET_DATAITEM::GetClassName() const
{
wxString name;
switch( GetType() )
{
case WS_TEXT: name = wxT("Text"); break;
case WS_SEGMENT: name = wxT("Line"); break;
case WS_RECT: name = wxT("Rect"); break;
case WS_POLYPOLYGON: name = wxT("Poly"); break;
}
return name;
}
/* return 0 if the item has no specific option for page 1
* 1 if the item is only on page 1
* -1 if the item is not on page 1
*/
int WORKSHEET_DATAITEM::GetPage1Option()
{
if(( m_flags & PAGE1OPTION) == PAGE1OPTION_NOTONPAGE1 )
return -1;
if(( m_flags & PAGE1OPTION) == PAGE1OPTION_PAGE1ONLY )
return 1;
return 0;
}
/* Set the option for page 1
* aChoice = 0 if the item has no specific option for page 1
* > 0 if the item is only on page 1
* < 0 if the item is not on page 1
*/
void WORKSHEET_DATAITEM::SetPage1Option( int aChoice )
{
ClearFlags( PAGE1OPTION );
if( aChoice > 0)
SetFlags( PAGE1OPTION_PAGE1ONLY );
else if( aChoice < 0)
SetFlags( PAGE1OPTION_NOTONPAGE1 );
}
WORKSHEET_DATAITEM_POLYPOLYGON::WORKSHEET_DATAITEM_POLYPOLYGON() :
WORKSHEET_DATAITEM( WS_POLYPOLYGON )
{
m_Orient = 0.0;
}
const DPOINT WORKSHEET_DATAITEM_POLYPOLYGON::GetCornerPosition( unsigned aIdx,
int aRepeat ) const
{
DPOINT pos = m_Corners[aIdx];
// Rotation:
RotatePoint( &pos.x, &pos.y, m_Orient * 10 );
pos += GetStartPos( aRepeat );
return pos;
}
void WORKSHEET_DATAITEM_POLYPOLYGON::SetBoundingBox()
{
if( m_Corners.size() == 0 )
{
m_minCoord.x = m_maxCoord.x = 0.0;
m_minCoord.y = m_maxCoord.y = 0.0;
return;
}
DPOINT pos;
pos = m_Corners[0];
RotatePoint( &pos.x, &pos.y, m_Orient * 10 );
m_minCoord = m_maxCoord = pos;
for( unsigned ii = 1; ii < m_Corners.size(); ii++ )
{
pos = m_Corners[ii];
RotatePoint( &pos.x, &pos.y, m_Orient * 10 );
if( m_minCoord.x > pos.x )
m_minCoord.x = pos.x;
if( m_minCoord.y > pos.y )
m_minCoord.y = pos.y;
if( m_maxCoord.x < pos.x )
m_maxCoord.x = pos.x;
if( m_maxCoord.y < pos.y )
m_maxCoord.y = pos.y;
}
}
bool WORKSHEET_DATAITEM_POLYPOLYGON::IsInsidePage( int ii ) const
{
DPOINT pos = GetStartPos( ii );
pos += m_minCoord; // left top pos of bounding box
if( m_LT_Corner.x > pos.x || m_LT_Corner.y > pos.y )
return false;
pos = GetStartPos( ii );
pos += m_maxCoord; // rignt bottom pos of bounding box
if( m_RB_Corner.x < pos.x || m_RB_Corner.y < pos.y )
return false;
return true;
}
const wxPoint WORKSHEET_DATAITEM_POLYPOLYGON::GetCornerPositionUi( unsigned aIdx,
int aRepeat ) const
{
DPOINT pos = GetCornerPosition( aIdx, aRepeat );
pos = pos * m_WSunits2Iu;
return wxPoint( int(pos.x), int(pos.y) );
}
WORKSHEET_DATAITEM_TEXT::WORKSHEET_DATAITEM_TEXT( const wxChar* aTextBase ) :
WORKSHEET_DATAITEM( WS_TEXT )
{
m_TextBase = aTextBase;
m_IncrementLabel = 1;
m_Hjustify = GR_TEXT_HJUSTIFY_LEFT;
m_Vjustify = GR_TEXT_VJUSTIFY_CENTER;
m_Orient = 0.0;
m_LineWidth = 0.0; // 0.0 means use default value
}
void WORKSHEET_DATAITEM_TEXT::TransfertSetupToGraphicText( WS_DRAW_ITEM_TEXT* aGText )
{
aGText->SetHorizJustify( m_Hjustify ) ;
aGText->SetVertJustify( m_Vjustify );
aGText->SetOrientation( m_Orient * 10 ); // graphic text orient unit = 0.1 degree
}
void WORKSHEET_DATAITEM_TEXT::IncrementLabel( int aIncr )
{
int last = m_TextBase.Len() -1;
wxChar lbchar = m_TextBase[last];
m_FullText = m_TextBase;
m_FullText.RemoveLast();
if( lbchar >= '0' && lbchar <= '9' )
// A number is expected:
m_FullText << (int)( aIncr + lbchar - '0' );
else
m_FullText << (wxChar) ( aIncr + lbchar );
}
void WORKSHEET_DATAITEM_TEXT::SetConstrainedTextSize()
{
m_ConstrainedTextSize = m_TextSize;
if( m_ConstrainedTextSize.x == 0 )
m_ConstrainedTextSize.x = m_DefaultTextSize.x;
if( m_ConstrainedTextSize.y == 0 )
m_ConstrainedTextSize.y = m_DefaultTextSize.y;
if( m_BoundingBoxSize.x || m_BoundingBoxSize.y )
{
int linewidth = 0;
// to know the X and Y size of the line, we should use
// EDA_TEXT::GetTextBox()
// but this function uses integers
// So, to avoid truncations with our unit in mm, use microns.
wxSize size_micron;
size_micron.x = KiROUND( m_ConstrainedTextSize.x * 1000.0 );
size_micron.y = KiROUND( m_ConstrainedTextSize.y * 1000.0 );
WS_DRAW_ITEM_TEXT dummy( WS_DRAW_ITEM_TEXT( this, this->m_FullText,
wxPoint(0,0),
size_micron,
linewidth, BLACK,
IsItalic(), IsBold() ) );
dummy.SetMultilineAllowed( true );
TransfertSetupToGraphicText( &dummy );
EDA_RECT rect = dummy.GetTextBox();
DSIZE size;
size.x = rect.GetWidth() / 1000.0;
size.y = rect.GetHeight() / 1000.0;
if( m_BoundingBoxSize.x && size.x > m_BoundingBoxSize.x )
m_ConstrainedTextSize.x *= m_BoundingBoxSize.x / size.x;
if( m_BoundingBoxSize.y && size.y > m_BoundingBoxSize.y )
m_ConstrainedTextSize.y *= m_BoundingBoxSize.y / size.y;
}
}

View File

@ -0,0 +1,203 @@
/**
* @file class_worksheet_layuout.cpp
* @brief description of graphic items and texts to build a title block
*/
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 1992-2013 Jean-Pierre Charras <jp.charras at wanadoo.fr>.
* Copyright (C) 1992-2013 KiCad Developers, see change_log.txt for contributors.
*
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or you may search the http://www.gnu.org website for the version 2 license,
* or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
/*
* the class WORKSHEET_DATAITEM (and derived ) defines
* a basic shape of a page layout ( frame references and title block )
* The list of these items is stored in a WORKSHEET_LAYOUT instance.
*
*
* These items cannot be drawn or plot "as this". they should be converted
* to a "draw list". When building the draw list:
* the WORKSHEET_LAYOUT is used to create a WS_DRAW_ITEM_LIST
* coordinates are converted to draw/plot coordinates.
* texts are expanded if they contain format symbols.
* Items with m_RepeatCount > 1 are created m_RepeatCount times
*
* the WORKSHEET_LAYOUT is created only once.
* the WS_DRAW_ITEM_LIST is created each time the page layout is plot/drawn
*
* the WORKSHEET_LAYOUT instance is created from a S expression which
* describes the page layout (can be the default page layout or a custom file).
*/
#include <fctsys.h>
#include <appl_wxstruct.h>
#include <drawtxt.h>
#include <worksheet.h>
#include <class_title_block.h>
#include <worksheet_shape_builder.h>
#include <class_worksheet_dataitem.h>
// The layout shape used in the application
// It is accessible by WORKSHEET_LAYOUT::GetTheInstance()
WORKSHEET_LAYOUT wksTheInstance;
WORKSHEET_LAYOUT::WORKSHEET_LAYOUT()
{
m_allowVoidList = false;
m_leftMargin = 10.0; // the left page margin in mm
m_rightMargin = 10.0; // the right page margin in mm
m_topMargin = 10.0; // the top page margin in mm
m_bottomMargin = 10.0; // the bottom page margin in mm
}
void WORKSHEET_LAYOUT::SetLeftMargin( double aMargin )
{
m_leftMargin = aMargin; // the left page margin in mm
}
void WORKSHEET_LAYOUT::SetRightMargin( double aMargin )
{
m_rightMargin = aMargin; // the right page margin in mm
}
void WORKSHEET_LAYOUT::SetTopMargin( double aMargin )
{
m_topMargin = aMargin; // the top page margin in mm
}
void WORKSHEET_LAYOUT::SetBottomMargin( double aMargin )
{
m_bottomMargin = aMargin; // the bottom page margin in mm
}
void WORKSHEET_LAYOUT::ClearList()
{
for( unsigned ii = 0; ii < m_list.size(); ii++ )
delete m_list[ii];
m_list.clear();
}
/* Insert an item to the list of items at position aIdx
*/
void WORKSHEET_LAYOUT::Insert( WORKSHEET_DATAITEM* aItem, unsigned aIdx )
{
if ( aIdx >= GetCount() )
Append( aItem );
else
m_list.insert( m_list.begin() + aIdx, aItem );
}
/* Remove the item to the list of items at position aIdx
*/
bool WORKSHEET_LAYOUT::Remove( unsigned aIdx )
{
if ( aIdx >= GetCount() )
return false;
m_list.erase( m_list.begin() + aIdx );
return true;
}
/* Remove the item to the list of items at position aIdx
*/
bool WORKSHEET_LAYOUT::Remove( WORKSHEET_DATAITEM* aItem )
{
unsigned idx = 0;
while( idx < m_list.size() )
{
if( m_list[idx] == aItem )
break;
idx++;
}
return Remove( idx );
}
/* return the index of aItem, or -1 if does not exist
*/
int WORKSHEET_LAYOUT::GetItemIndex( WORKSHEET_DATAITEM* aItem ) const
{
unsigned idx = 0;
while( idx < m_list.size() )
{
if( m_list[idx] == aItem )
return (int) idx;
idx++;
}
return -1;
}
/* return the item from its index aIdx, or NULL if does not exist
*/
WORKSHEET_DATAITEM* WORKSHEET_LAYOUT::GetItem( unsigned aIdx ) const
{
if( aIdx < m_list.size() )
return m_list[aIdx];
else
return NULL;
}
/* return a short filename from a full filename:
* if the path is the current path,or if the path is the same
* as kicad.pro (in template), returns a shortname
* else do nothing and returns the full filename
*/
const wxString WORKSHEET_LAYOUT::MakeShortFileName( const wxString& aFullFileName )
{
wxFileName fn = aFullFileName;
wxString shortFileName = aFullFileName;
wxString fileName = wxGetApp().GetLibraryPathList().FindValidPath( fn.GetFullName() );
if( !fileName.IsEmpty() )
{
fn = fileName;
shortFileName = fn.GetFullName();
return shortFileName;
}
return shortFileName;
}
/**
* @return a full filename from a short filename,
* if the short filename path is void
* In this case the path is the same as kicad.pro (in template)
* else return the short filename (which have an absolute os relative path
*/
const wxString WORKSHEET_LAYOUT::MakeFullFileName( const wxString& aShortFileName )
{
wxFileName fn = aShortFileName;
wxString fullFileName = aShortFileName;
if( fn.GetPath().IsEmpty() && !fn.GetFullName().IsEmpty() )
{
wxString name = wxGetApp().GetLibraryPathList().FindValidPath( fn.GetFullName() );
if( !name.IsEmpty() )
fullFileName = name;
}
return fullFileName;
}

View File

@ -0,0 +1,164 @@
/**
* @file page_layout_default_description.cpp
*/
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 1992-2013 Jean-Pierre Charras <jp.charras at wanadoo.fr>.
* Copyright (C) 1992-2013 KiCad Developers, see change_log.txt for contributors.
*
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or you may search the http://www.gnu.org website for the version 2 license,
* or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
/* keyword used in page layout description are listed
* in page_layout_reader.keywords file
*/
/*
* Items use coordinates.
* A coordinate is defined relative to a page corner
* A coordinate is the X pos, the Y pos, and the corner which is the coordinate origin
* the default is the bottom right corner
* example: (start 10 0 ltcorner) or (start 20 10)
* The direction depends on the corner: a positive coordinate define a point
* from the corner origin, to the opposite corner.
*
* Items are defined by a name, coordinates in mm and some attributes,
* and can be repeated.
* for instance (repeat 2) (incrx 2) (incry 2) repeat the item 2 times,
* and coordinates are incremented by 2 on X direction, and 2 on Y direction
* Comments are allowed. they are inside (), and start by the keyword comment
* example:
* (comment rect around the title block)
*
* Lines and rect are defined by 2 coordinates start and end, and attributes.
* Attributes are linewidth and repeat parameters.
* example:
* (line (start 50 2 ltcorner) (end 50 0 ltcorner) (repeat 30) (incrx 50) )
* (rect (comment rect around the title block) (linewidth 0.15) (start 110 34) (end 2 2) )
*
* Texts are defined by the text (between quotes), the position, and attributes
* example
* "(tbtext \"1\" (pos 25 1 lbcorner) (font (size 1.3 1.3)) (repeat 100) (incrx 50) )"
* the text can be rotated by (rotation <value>) with value = rot angle in degrees
* (font (size 1.3 1.3) bold italic) defines a specific size,
* with bold and italic options
* (justify <justif keyword>) controls the text justification (the default is left)
* justif keyword is center, left, right, top and bottom
* (justify center top) is a text centered on X axis and top aligned on vertical axis
* The text size can be constrained:
* (maxlen <value>) and (maxheight <value>) force the actual text x and/or y size to be
* reduced to limit the text height to the maxheight value,
* and the full text x size to the maxlen value.
* If the actual text size is smaller than limits, its size is not modified.
*
* Texts can include a format symbol, a la printf.
* At run time these format symbols will be replaced by their actual value.
*
* format symbols are:
*
* %% = replaced by %
* %K = Kicad version
* %Z = paper format name (A4, USLetter ...)
* %Y = company name
* %D = date
* %R = revision
* %S = sheet number
* %N = number of sheets
* %Cx = comment (x = 0 to 9 to identify the comment)
* %F = filename
* %P = sheet path (sheet full name)
* %T = title
*
* example:
* (tbtext \"Size: %Z\" ...) displays "Size A4" or Size USLetter"
*
* Poly Polygons
* Set of filled polygons are supported.
*
* The main purpose is to allow logos, or complex shapes
* They support the repeat and rotation options
* They are defined by
* (polygon (position ..) <rotation> <linewidth>
* the parameter linewidth defines the pen size used to draw/plot
* the polygon outlines (default = 0)
* example:
* (polygon (pos 134 18 rbcorner) (rotate 20) (linewidth 0.00254)
*
* and a list of corners like
* (pts (xy 20.574 8.382) (xy 19.9009 8.382) (xy 19.9009 6.26364) (xy 19.7485 5.98932)
* .... )
*
* each sequence like
* (pts (xy 20.574 8.382) (xy 19.9009 8.382) (xy 19.9009 6.26364) (xy 19.7485 5.98932)
* .... )
* defines a polygon.
* Each coordinate is relative to the polygon position.
* Therefore a "polygon" is in fact a set of polygons, of a poly polygon
*
*/
#include <worksheet.h> // defaultPageLayout
// height of the band reference grid 2.0 mm
// worksheet frame reference text size 1.3 mm
// default text size 1.5 mm
// default line width 0.15 mm
// frame ref pitch 50 mm
// export defaultPageLayout:
extern const char defaultPageLayout[];
// Default page layout (sizes are in mm)
const char defaultPageLayout[] = "( page_layout\n"
"(setup (textsize 1.5 1.5) (linewidth 0.15) (textlinewidth 0.15)\n"
"(left_margin 10)(right_margin 10)(top_margin 10)(bottom_margin 10))\n"
"(rect (comment \"rect around the title block\") (linewidth 0.15) (start 110 34) (end 2 2) )\n"
"(rect (start 0 0 ltcorner) (end 0 0 rbcorner) (repeat 2) (incrx 2) (incry 2) )\n"
"(line (start 50 2 ltcorner) (end 50 0 ltcorner) (repeat 30) (incrx 50) )\n"
"(tbtext \"1\" (pos 25 1 ltcorner) (font (size 1.3 1.3))(repeat 100) (incrx 50) )\n"
"(line (start 50 2 lbcorner) (end 50 0 lbcorner) (repeat 30) (incrx 50) )\n"
"(tbtext \"1\" (pos 25 1 lbcorner) (font (size 1.3 1.3)) (repeat 100) (incrx 50) )\n"
"(line (start 0 50 ltcorner) (end 2 50 ltcorner) (repeat 30) (incry 50) )\n"
"(tbtext \"A\" (pos 1 25 ltcorner) (font (size 1.3 1.3)) (justify center)(repeat 100) (incry 50) )\n"
"(line (start 0 50 rtcorner) (end 2 50 rtcorner) (repeat 30) (incry 50) )\n"
"(tbtext \"A\" (pos 1 25 rtcorner) (font (size 1.3 1.3)) (justify center) (repeat 100) (incry 50) )\n"
"(tbtext \"Date: %D\" (pos 87 6.9) )\n"
"(line (start 110 5.5) end 2 5.5) )\n"
"(tbtext \"%K\" (pos 109 4.1) (comment \"Kicad version\" ) )\n"
"(line (start 110 8.5) end 2 8.5) )\n"
"(tbtext \"Rev: %R\" (pos 24 6.9)(font bold)(justify left) )\n"
"(tbtext \"Size: %Z\" (comment \"Paper format name\")(pos 109 6.9) )\n"
"(tbtext \"Id: %S/%N\" (comment \"Sheet id\")(pos 24 4.1) )\n"
"(line (start 110 12.5) end 2 12.5) )\n"
"(tbtext \"Title: %T\" (pos 109 10.7)(font bold italic (size 2 2)) )\n"
"(tbtext \"File: %F\" (pos 109 14.3) )\n"
"(line (start 110 18.5) end 2 18.5) )\n"
"(tbtext \"Sheet: %P\" (pos 109 17) )\n"
"(tbtext \"%Y\" (comment \"Company name\") (pos 109 20)(font bold) )\n"
"(tbtext \"%C0\" (comment \"Comment 0\") (pos 109 23) )\n"
"(tbtext \"%C1\" (comment \"Comment 1\") (pos 109 26) )\n"
"(tbtext \"%C2\" (comment \"Comment 2\") (pos 109 29) )\n"
"(tbtext \"%C3\" (comment \"Comment 3\") (pos 109 32) )\n"
"(line (start 90 8.5) end 90 5.5) )\n"
"(line (start 26 8.5) end 26 2) )\n"
")\n"
;

View File

@ -0,0 +1,367 @@
/**
* @file page_layout_graphic_items.cpp
* @brief description of graphic items and texts to build a title block
*/
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 1992-2013 Jean-Pierre Charras <jp.charras at wanadoo.fr>.
* Copyright (C) 1992-2013 KiCad Developers, see change_log.txt for contributors.
*
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or you may search the http://www.gnu.org website for the version 2 license,
* or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
/*
* the class WORKSHEET_DATAITEM (and WORKSHEET_DATAITEM_TEXT) defines
* a basic shape of a page layout ( frame references and title block )
* Basic shapes are line, rect and texts
* the WORKSHEET_DATAITEM coordinates units is the mm, and are relative to
* one of 4 page corners.
*
* These items cannot be drawn or plot "as this". they should be converted
* to a "draw list" (WS_DRAW_ITEM_BASE and derived items)
* The list of these items is stored in a WORKSHEET_LAYOUT instance.
*
* When building the draw list:
* the WORKSHEET_LAYOUT is used to create a WS_DRAW_ITEM_LIST
* coordinates are converted to draw/plot coordinates.
* texts are expanded if they contain format symbols.
* Items with m_RepeatCount > 1 are created m_RepeatCount times
*
* the WORKSHEET_LAYOUT is created only once.
* the WS_DRAW_ITEM_LIST is created each time the page layout is plotted/drawn
*
* the WORKSHEET_LAYOUT instance is created from a S expression which
* describes the page layout (can be the default page layout or a custom file).
*/
#include <fctsys.h>
#include <drawtxt.h>
#include <worksheet.h>
#include <class_title_block.h>
#include <worksheet_shape_builder.h>
#include <class_worksheet_dataitem.h>
/* a helper function to draw graphic symbols at start point or end point of
* an item.
* The start point symbol is a filled rectangle
* The start point symbol is a filled circle
*/
inline void drawMarker( EDA_RECT* aClipBox, wxDC* aDC,
const wxPoint& aPos, int aSize, bool aEndPointShape = false )
{
int markerHalfSize = aSize/2;
if( aEndPointShape )
GRFilledCircle( aClipBox, aDC, aPos.x, aPos.y, markerHalfSize,
0, GREEN, GREEN );
else
GRFilledRect( aClipBox, aDC,
aPos.x - markerHalfSize, aPos.y - markerHalfSize,
aPos.x + markerHalfSize, aPos.y + markerHalfSize,
0, GREEN, GREEN );
}
/* Draws the item list created by BuildWorkSheetGraphicList
* aClipBox = the clipping rect, or NULL if no clipping
* aDC = the current Device Context
* The not selected items are drawn first (most of items)
* The selected items are drawn after (usually 0 or 1)
* to be sure they are seen, even for overlapping items
*/
void WS_DRAW_ITEM_LIST::Draw( EDA_RECT* aClipBox, wxDC* aDC )
{
// The not selected items are drawn first (most of items)
for( WS_DRAW_ITEM_BASE* item = GetFirst(); item; item = GetNext() )
{
if( item->GetParent() && item->GetParent()->IsSelected() )
continue;
item->DrawWsItem( aClipBox, aDC );
}
// The selected items are drawn after (usually 0 or 1)
int markerSize = WORKSHEET_DATAITEM::GetMarkerSizeUi();
for( WS_DRAW_ITEM_BASE* item = GetFirst(); item; item = GetNext() )
{
if( !item->GetParent() || !item->GetParent()->IsSelected() )
continue;
item->DrawWsItem( aClipBox, aDC );
switch( item->GetType() )
{
case WS_DRAW_ITEM_BASE::wsg_line:
{
WS_DRAW_ITEM_LINE* line = (WS_DRAW_ITEM_LINE*) item;
if( markerSize )
{
drawMarker( aClipBox, aDC, line->GetStart(), markerSize );
drawMarker( aClipBox, aDC, line->GetEnd(), markerSize, true );
}
}
break;
case WS_DRAW_ITEM_BASE::wsg_rect:
{
WS_DRAW_ITEM_RECT* rect = (WS_DRAW_ITEM_RECT*) item;
if( markerSize )
{
drawMarker( aClipBox, aDC, rect->GetStart(), markerSize );
drawMarker( aClipBox, aDC, rect->GetEnd(), markerSize, true );
}
}
break;
case WS_DRAW_ITEM_BASE::wsg_text:
{
WS_DRAW_ITEM_TEXT* text = (WS_DRAW_ITEM_TEXT*) item;
if( markerSize )
drawMarker( aClipBox, aDC, text->GetTextPosition(),
markerSize );
}
break;
case WS_DRAW_ITEM_BASE::wsg_poly:
{
WS_DRAW_ITEM_POLYGON* poly = (WS_DRAW_ITEM_POLYGON*) item;
if( markerSize )
{
drawMarker( aClipBox, aDC, poly->GetPosition(),
markerSize );
}
}
break;
}
}
}
WS_DRAW_ITEM_TEXT::WS_DRAW_ITEM_TEXT( WORKSHEET_DATAITEM* aParent,
wxString& aText, wxPoint aPos, wxSize aSize,
int aPenWidth, EDA_COLOR_T aColor,
bool aItalic, bool aBold ) :
WS_DRAW_ITEM_BASE( aParent, wsg_text, aColor ), EDA_TEXT( aText )
{
SetTextPosition( aPos );
SetSize( aSize );
SetThickness( aPenWidth );
SetItalic( aItalic );
SetBold( aBold );
}
void WS_DRAW_ITEM_TEXT::DrawWsItem( EDA_RECT* aClipBox, wxDC* aDC )
{
Draw( aClipBox, aDC, wxPoint(0,0),
GetColor(), UNSPECIFIED_DRAWMODE, FILLED, UNSPECIFIED_COLOR );
}
// return true if the point aPosition is on the text
bool WS_DRAW_ITEM_TEXT::HitTest( const wxPoint& aPosition)
{
return EDA_TEXT::TextHitTest( aPosition, 0 );
}
/* return true if the point aPosition is on the starting point of this item
*/
bool WS_DRAW_ITEM_TEXT::HitTestStartPoint( const wxPoint& aPosition)
{
wxPoint pos = GetTextPosition();
if( std::abs( pos.x - aPosition.x) <= WORKSHEET_DATAITEM::GetMarkerSizeUi()/2 &&
std::abs( pos.y - aPosition.y) <= WORKSHEET_DATAITEM::GetMarkerSizeUi()/2 )
return true;
return false;
}
void WS_DRAW_ITEM_POLYGON::DrawWsItem( EDA_RECT* aClipBox, wxDC* aDC )
{
GRPoly( aClipBox, aDC,
m_Corners.size(), &m_Corners[0],
IsFilled() ? FILLED_SHAPE : NO_FILL,
GetPenWidth(),
GetColor(), GetColor() );
}
// return true if the point aPosition is inside one of polygons
#include <polygon_test_point_inside.h>
bool WS_DRAW_ITEM_POLYGON::HitTest( const wxPoint& aPosition)
{
return TestPointInsidePolygon( &m_Corners[0],
m_Corners.size(), aPosition );
}
/* return true if the point aPosition is on the starting point of this item
*/
bool WS_DRAW_ITEM_POLYGON::HitTestStartPoint( const wxPoint& aPosition)
{
wxPoint pos = GetPosition();
if( std::abs( pos.x - aPosition.x) <= WORKSHEET_DATAITEM::GetMarkerSizeUi()/2 &&
std::abs( pos.y - aPosition.y) <= WORKSHEET_DATAITEM::GetMarkerSizeUi()/2 )
return true;
return false;
}
void WS_DRAW_ITEM_RECT::DrawWsItem( EDA_RECT* aClipBox, wxDC* aDC )
{
GRRect( aClipBox, aDC,
GetStart().x, GetStart().y,
GetEnd().x, GetEnd().y,
GetPenWidth(), GetColor() );
}
// return true if the point aPosition is on the rect outline
bool WS_DRAW_ITEM_RECT::HitTest( const wxPoint& aPosition)
{
int dist = GetPenWidth()/2;
wxPoint start = GetStart();
wxPoint end;
end.x = GetEnd().x;
end.y = start.y;
// Upper line
if( TestSegmentHit( aPosition, start, end, dist ) )
return true;
// Right line
start = end;
end.y = GetEnd().y;
if( TestSegmentHit( aPosition, start, end, dist ) )
return true;
// lower line
start = end;
end.x = GetStart().x;
if( TestSegmentHit( aPosition, start, end, dist ) )
return true;
// left line
start = end;
end = GetStart();
if( TestSegmentHit( aPosition, start, end, dist ) )
return true;
return false;
}
/* return true if the point aPosition is on the starting point of this item
*/
bool WS_DRAW_ITEM_RECT::HitTestStartPoint( const wxPoint& aPosition)
{
wxPoint pos = GetStart();
if( std::abs( pos.x - aPosition.x) <= WORKSHEET_DATAITEM::GetMarkerSizeUi()/2 &&
std::abs( pos.y - aPosition.y) <= WORKSHEET_DATAITEM::GetMarkerSizeUi()/2 )
return true;
return false;
}
/* return true if the point aPosition is on the ending point of this item
*/
bool WS_DRAW_ITEM_RECT::HitTestEndPoint( const wxPoint& aPosition)
{
wxPoint pos = GetEnd();
int dist = (int) hypot( pos.x - aPosition.x, pos.y - aPosition.y );
if( dist <= WORKSHEET_DATAITEM::GetMarkerSizeUi()/2 )
return true;
return false;
}
void WS_DRAW_ITEM_LINE::DrawWsItem( EDA_RECT* aClipBox, wxDC* aDC )
{
GRLine( aClipBox, aDC, GetStart(), GetEnd(),
GetPenWidth(), GetColor() );
}
// return true if the point aPosition is on the text
bool WS_DRAW_ITEM_LINE::HitTest( const wxPoint& aPosition)
{
return TestSegmentHit( aPosition, GetStart(), GetEnd(), GetPenWidth()/2 );
}
/* return true if the point aPosition is on the starting point of this item
*/
bool WS_DRAW_ITEM_LINE::HitTestStartPoint( const wxPoint& aPosition)
{
wxPoint pos = GetStart();
if( std::abs( pos.x - aPosition.x) <= WORKSHEET_DATAITEM::GetMarkerSizeUi()/2 &&
std::abs( pos.y - aPosition.y) <= WORKSHEET_DATAITEM::GetMarkerSizeUi()/2 )
return true;
return false;
}
/* return true if the point aPosition is on the ending point of this item
*/
bool WS_DRAW_ITEM_LINE::HitTestEndPoint( const wxPoint& aPosition)
{
wxPoint pos = GetEnd();
if( std::abs( pos.x - aPosition.x) <= WORKSHEET_DATAITEM::GetMarkerSizeUi()/2 &&
std::abs( pos.y - aPosition.y) <= WORKSHEET_DATAITEM::GetMarkerSizeUi()/2 )
return true;
return false;
}
/* Locate graphic items in m_graphicList at location aPosition
* aList = the list of items found
* aPosition is the position (in user units) to locate items
*/
void WS_DRAW_ITEM_LIST::Locate( std::vector <WS_DRAW_ITEM_BASE*>& aList,
const wxPoint& aPosition)
{
for( WS_DRAW_ITEM_BASE* item = GetFirst(); item; item = GetNext() )
{
item->m_Flags &= ~(LOCATE_STARTPOINT|LOCATE_ENDPOINT);
bool found = false;
if( item->HitTestStartPoint ( aPosition ) )
{
item->m_Flags |= LOCATE_STARTPOINT;
found = true;
}
if( item->HitTestEndPoint ( aPosition ) )
{
item->m_Flags |= LOCATE_ENDPOINT;
found = true;
}
if( found || item->HitTest( aPosition ) )
{
aList.push_back( item );
}
}
}

View File

@ -0,0 +1,729 @@
/**
* @file page_layout_reader.cpp
* @brief read an S expression of description of graphic items and texts
* to build a title block and page layout
*/
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 1992-2013 Jean-Pierre Charras <jp.charras at wanadoo.fr>.
* Copyright (C) 1992-2013 KiCad Developers, see change_log.txt for contributors.
*
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or you may search the http://www.gnu.org website for the version 2 license,
* or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
#include <fctsys.h>
#include <base_struct.h>
#include <worksheet.h>
#include <worksheet_shape_builder.h>
#include <class_worksheet_dataitem.h>
#include <page_layout_reader_lexer.h>
using namespace TB_READER_T;
/**
* Class PAGE_LAYOUT_READER_PARSER
* holds data and functions pertinent to parsing a S-expression file
* for a WORKSHEET_LAYOUT.
*/
class PAGE_LAYOUT_READER_PARSER : public PAGE_LAYOUT_READER_LEXER
{
public:
PAGE_LAYOUT_READER_PARSER( const char* aLine, const wxString& aSource );
void Parse( WORKSHEET_LAYOUT* aLayout )
throw( PARSE_ERROR, IO_ERROR );
private:
/**
* Function parseInt
* parses an integer and constrains it between two values.
* @param aMin is the smallest return value.
* @param aMax is the largest return value.
* @return int - the parsed integer.
*/
int parseInt( int aMin, int aMax );
/**
* Function parseDouble
* parses a double
* @return double - the parsed double.
*/
double parseDouble();
void parseSetup( WORKSHEET_LAYOUT* aLayout ) throw( IO_ERROR, PARSE_ERROR );
void parseGraphic( WORKSHEET_DATAITEM * aItem ) throw( IO_ERROR, PARSE_ERROR );
void parseText( WORKSHEET_DATAITEM_TEXT * aItem ) throw( IO_ERROR, PARSE_ERROR );
void parsePolygon( WORKSHEET_DATAITEM_POLYPOLYGON * aItem )
throw( IO_ERROR, PARSE_ERROR );
void parsePolyOutline( WORKSHEET_DATAITEM_POLYPOLYGON * aItem )
throw( IO_ERROR, PARSE_ERROR );
void parseCoordinate( POINT_COORD& aCoord) throw( IO_ERROR, PARSE_ERROR );
void readOption( WORKSHEET_DATAITEM * aItem ) throw( IO_ERROR, PARSE_ERROR );
};
// PCB_PLOT_PARAMS_PARSER
PAGE_LAYOUT_READER_PARSER::PAGE_LAYOUT_READER_PARSER( const char* aLine, const wxString& aSource ) :
PAGE_LAYOUT_READER_LEXER( aLine, aSource )
{
}
void PAGE_LAYOUT_READER_PARSER::Parse( WORKSHEET_LAYOUT* aLayout )
throw( PARSE_ERROR, IO_ERROR )
{
T token;
WORKSHEET_DATAITEM * item;
LOCALE_IO toggle;
while( ( token = NextTok() ) != T_RIGHT )
{
if( token == T_EOF)
break;
if( token == T_LEFT )
token = NextTok();
if( token == T_page_layout )
continue;
switch( token )
{
case T_setup: // Defines default values for graphic items
parseSetup( aLayout );
break;
case T_line:
item = new WORKSHEET_DATAITEM( WORKSHEET_DATAITEM::WS_SEGMENT );
parseGraphic( item );
aLayout->Append( item );
break;
case T_rect:
item = new WORKSHEET_DATAITEM( WORKSHEET_DATAITEM::WS_RECT );
parseGraphic( item );
aLayout->Append( item );
break;
case T_polygon:
item = new WORKSHEET_DATAITEM_POLYPOLYGON();
parsePolygon( (WORKSHEET_DATAITEM_POLYPOLYGON*) item );
aLayout->Append( item );
break;
case T_tbtext:
NeedSYMBOLorNUMBER();
item = new WORKSHEET_DATAITEM_TEXT( FromUTF8() );
parseText( (WORKSHEET_DATAITEM_TEXT*) item );
aLayout->Append( item );
break;
default:
Unexpected( CurText() );
break;
}
}
}
void PAGE_LAYOUT_READER_PARSER::parseSetup( WORKSHEET_LAYOUT* aLayout )
throw( IO_ERROR, PARSE_ERROR )
{
T token;
while( ( token = NextTok() ) != T_RIGHT )
{
if( token == T_EOF)
break;
switch( token )
{
case T_LEFT:
break;
case T_linewidth:
WORKSHEET_DATAITEM::m_DefaultLineWidth = parseDouble();
NeedRIGHT();
break;
case T_textsize:
WORKSHEET_DATAITEM::m_DefaultTextSize.x = parseDouble();
WORKSHEET_DATAITEM::m_DefaultTextSize.y = parseDouble();
NeedRIGHT();
break;
case T_textlinewidth:
WORKSHEET_DATAITEM::m_DefaultTextThickness = parseDouble();
NeedRIGHT();
break;
case T_left_margin:
aLayout->SetLeftMargin( parseDouble() );
NeedRIGHT();
break;
case T_right_margin:
aLayout->SetRightMargin( parseDouble() );
NeedRIGHT();
break;
case T_top_margin:
aLayout->SetTopMargin( parseDouble() );
NeedRIGHT();
break;
case T_bottom_margin:
aLayout->SetBottomMargin( parseDouble() );
NeedRIGHT();
break;
default:
Unexpected( CurText() );
break;
}
}
}
void PAGE_LAYOUT_READER_PARSER::parsePolygon( WORKSHEET_DATAITEM_POLYPOLYGON * aItem )
throw( IO_ERROR, PARSE_ERROR )
{
T token;
while( ( token = NextTok() ) != T_RIGHT )
{
if( token == T_EOF)
break;
if( token == T_LEFT )
token = NextTok();
switch( token )
{
case T_comment:
NeedSYMBOLorNUMBER();
aItem->m_Info = FromUTF8();
NeedRIGHT();
break;
case T_pos:
parseCoordinate( aItem->m_Pos );
break;
case T_name:
NeedSYMBOLorNUMBER();
aItem->m_Name = FromUTF8();
NeedRIGHT();
break;
case T_option:
readOption( aItem );
break;
case T_pts:
parsePolyOutline( aItem );
aItem->CloseContour();
break;
case T_rotate:
aItem->m_Orient = parseDouble();
NeedRIGHT();
break;
case T_repeat:
aItem->m_RepeatCount = parseInt( -1, 100 );
NeedRIGHT();
break;
case T_incrx:
aItem->m_IncrementVector.x = parseDouble();
NeedRIGHT();
break;
case T_incry:
aItem->m_IncrementVector.y = parseDouble();
NeedRIGHT();
break;
case T_linewidth:
aItem->m_LineWidth = parseDouble();
NeedRIGHT();
break;
default:
Unexpected( CurText() );
break;
}
}
aItem->SetBoundingBox();
}
void PAGE_LAYOUT_READER_PARSER::parsePolyOutline( WORKSHEET_DATAITEM_POLYPOLYGON * aItem )
throw( IO_ERROR, PARSE_ERROR )
{
DPOINT corner;
T token;
while( ( token = NextTok() ) != T_RIGHT )
{
if( token == T_EOF)
break;
if( token == T_LEFT )
token = NextTok();
switch( token )
{
case T_xy:
corner.x = parseDouble();
corner.y = parseDouble();
aItem->AppendCorner( corner );
NeedRIGHT();
break;
default:
Unexpected( CurText() );
break;
}
}
}
void PAGE_LAYOUT_READER_PARSER::readOption( WORKSHEET_DATAITEM * aItem )
throw( IO_ERROR, PARSE_ERROR )
{
T token;
while( ( token = NextTok() ) != T_RIGHT )
{
if( token == T_EOF)
break;
switch( token )
{
case T_page1only:
aItem->SetPage1Option( 1 );
break;
case T_notonpage1:
aItem->SetPage1Option( -1 );
break;
default:
Unexpected( CurText() );
break;
}
}
}
void PAGE_LAYOUT_READER_PARSER::parseGraphic( WORKSHEET_DATAITEM * aItem )
throw( IO_ERROR, PARSE_ERROR )
{
T token;
while( ( token = NextTok() ) != T_RIGHT )
{
if( token == T_EOF)
break;
if( token == T_LEFT )
token = NextTok();
switch( token )
{
case T_comment:
NeedSYMBOLorNUMBER();
aItem->m_Info = FromUTF8();
NeedRIGHT();
break;
case T_option:
readOption( aItem );
break;
case T_name:
NeedSYMBOLorNUMBER();
aItem->m_Name = FromUTF8();
NeedRIGHT();
break;
case T_start:
parseCoordinate( aItem->m_Pos );
break;
case T_end:
parseCoordinate( aItem->m_End );
break;
case T_repeat:
aItem->m_RepeatCount = parseInt( -1, 100 );
NeedRIGHT();
break;
case T_incrx:
aItem->m_IncrementVector.x = parseDouble();
NeedRIGHT();
break;
case T_incry:
aItem->m_IncrementVector.y = parseDouble();
NeedRIGHT();
break;
case T_linewidth:
aItem->m_LineWidth = parseDouble();
NeedRIGHT();
break;
default:
Unexpected( CurText() );
break;
}
}
}
void PAGE_LAYOUT_READER_PARSER::parseText( WORKSHEET_DATAITEM_TEXT* aItem )
throw( IO_ERROR, PARSE_ERROR )
{
T token;
while( ( token = NextTok() ) != T_RIGHT )
{
if( token == T_EOF)
break;
if( token == T_LEFT )
token = NextTok();
switch( token )
{
case T_comment:
NeedSYMBOLorNUMBER();
aItem->m_Info = FromUTF8();
NeedRIGHT();
break;
case T_option:
readOption( aItem );
break;
case T_name:
NeedSYMBOLorNUMBER();
aItem->m_Name = FromUTF8();
NeedRIGHT();
break;
case T_pos:
parseCoordinate( aItem->m_Pos );
break;
case T_repeat:
aItem->m_RepeatCount = parseInt( -1, 100 );
NeedRIGHT();
break;
case T_incrx:
aItem->m_IncrementVector.x = parseDouble();
NeedRIGHT();
break;
case T_incry:
aItem->m_IncrementVector.y = parseDouble();
NeedRIGHT();
break;
case T_incrlabel:
aItem->m_IncrementLabel = parseInt(INT_MIN, INT_MAX);
NeedRIGHT();
break;
case T_maxlen:
aItem->m_BoundingBoxSize.x = parseDouble();
NeedRIGHT();
break;
case T_maxheight:
aItem->m_BoundingBoxSize.y = parseDouble();
NeedRIGHT();
break;
case T_font:
while( ( token = NextTok() ) != T_RIGHT )
{
if( token == T_EOF)
break;
switch( token )
{
case T_LEFT:
break;
case T_bold:
aItem->SetBold( true );
break;
case T_italic:
aItem->SetItalic( true );
break;
case T_size:
aItem->m_TextSize.x = parseDouble();
aItem->m_TextSize.y = parseDouble();
NeedRIGHT();
break;
case T_linewidth:
aItem->m_LineWidth = parseDouble();
NeedRIGHT();
break;
default:
Unexpected( CurText() );
break;
}
}
break;
case T_justify:
while( ( token = NextTok() ) != T_RIGHT )
{
if( token == T_EOF)
break;
switch( token )
{
case T_center:
aItem->m_Hjustify = GR_TEXT_HJUSTIFY_CENTER;
aItem->m_Vjustify = GR_TEXT_VJUSTIFY_CENTER;
break;
case T_left:
aItem->m_Hjustify = GR_TEXT_HJUSTIFY_LEFT;
break;
case T_right:
aItem->m_Hjustify = GR_TEXT_HJUSTIFY_RIGHT;
break;
case T_top:
aItem->m_Vjustify = GR_TEXT_VJUSTIFY_TOP;
break;
case T_bottom:
aItem->m_Vjustify = GR_TEXT_VJUSTIFY_BOTTOM;
break;
default:
Unexpected( CurText() );
break;
}
}
break;
case T_rotate:
aItem->m_Orient = parseDouble();
NeedRIGHT();
break;
default:
Unexpected( CurText() );
break;
}
}
}
// parse an expression like " 25 1 ltcorner)"
void PAGE_LAYOUT_READER_PARSER::parseCoordinate( POINT_COORD& aCoord)
throw( IO_ERROR, PARSE_ERROR )
{
T token;
aCoord.m_Pos.x = parseDouble();
aCoord.m_Pos.y = parseDouble();
while( ( token = NextTok() ) != T_RIGHT )
{
switch( token )
{
case T_ltcorner:
aCoord.m_Anchor = LT_CORNER; // left top corner
break;
case T_lbcorner:
aCoord.m_Anchor = LB_CORNER; // left bottom corner
break;
case T_rbcorner:
aCoord.m_Anchor = RB_CORNER; // right bottom corner
break;
case T_rtcorner:
aCoord.m_Anchor = RT_CORNER; // right top corner
break;
default:
Unexpected( CurText() );
break;
}
}
}
int PAGE_LAYOUT_READER_PARSER::parseInt( int aMin, int aMax )
{
T token = NextTok();
if( token != T_NUMBER )
Expecting( T_NUMBER );
int val = atoi( CurText() );
if( val < aMin )
val = aMin;
else if( val > aMax )
val = aMax;
return val;
}
double PAGE_LAYOUT_READER_PARSER::parseDouble()
{
T token = NextTok();
if( token != T_NUMBER )
Expecting( T_NUMBER );
double val = strtod( CurText(), NULL );
return val;
}
// defaultPageLayout is the default page layout description
// using the S expr.
// see page_layout_default_shape.cpp
extern const char defaultPageLayout[];
void WORKSHEET_LAYOUT::SetDefaultLayout()
{
ClearList();
PAGE_LAYOUT_READER_PARSER lp_parser( defaultPageLayout, wxT( "default page" ) );
try
{
lp_parser.Parse( this );
SetDefaultDescrFlag( true );
}
catch( IO_ERROR ioe )
{
wxLogMessage( ioe.errorText );
}
}
/**
* Populates the list from a S expr description stored in a string
* @param aPageLayout = the S expr string
*/
void WORKSHEET_LAYOUT::SetPageLayout( const char* aPageLayout, bool Append )
{
if( ! Append )
ClearList();
PAGE_LAYOUT_READER_PARSER lp_parser( aPageLayout, wxT( "Sexpr_string" ) );
try
{
lp_parser.Parse( this );
SetDefaultDescrFlag( true );
}
catch( IO_ERROR ioe )
{
wxLogMessage( ioe.errorText );
}
}
#include <wx/file.h>
// SetLayout() try to load a custom layout file,
// currently defined by the environment variable KICAD_WKSFILE
// (a *.kicad_wks file).
// if does not exists, loads the default page layout.
void WORKSHEET_LAYOUT::SetPageLayout( const wxString& aFullFileName, bool Append )
{
wxString fullFileName = aFullFileName;
if( !Append )
{
fullFileName = MakeFullFileName( aFullFileName );
if( fullFileName.IsEmpty() )
wxGetEnv( wxT( "KICAD_WKSFILE" ), &fullFileName );
if( fullFileName.IsEmpty() || !wxFileExists( fullFileName ) )
{
#if 0
if( !fullFileName.IsEmpty() )
{
wxLogMessage( wxT("Page layout file <%s> not found"),
fullFileName.GetData() );
}
#endif
SetDefaultLayout();
return;
}
}
wxFile wksFile( fullFileName );
if( ! wksFile.IsOpened() )
{
if( !Append )
SetDefaultLayout();
return;
}
int filelen = wksFile.Length();
char * buffer = new char[filelen+10];
if( wksFile.Read( buffer, filelen ) != filelen )
wxLogMessage( _("The file <%s> was not fully read"),
fullFileName.GetData() );
else
{
buffer[filelen]=0;
if( ! Append )
ClearList();
PAGE_LAYOUT_READER_PARSER lp_parser( buffer, fullFileName );
try
{
lp_parser.Parse( this );
SetDefaultDescrFlag( false );
}
catch( IO_ERROR ioe )
{
wxLogMessage( ioe.errorText );
}
}
delete[] buffer;
}

View File

@ -0,0 +1,44 @@
page_layout
setup
left_margin
right_margin
top_margin
bottom_margin
linewidth
textlinewidth
textsize
comment
option
page1only
notonpage1
line
rect
polygon
tbtext
ltcorner
lbcorner
rbcorner
rtcorner
name
pos
start
end
pts
xy
maxlen
maxheight
font
bold
italic
size
justify
left
center
right
top
bottom
rotate
repeat
incrx
incry
incrlabel

View File

@ -0,0 +1,258 @@
/**
* @file title_block_shape.cpp
* @brief description of graphic items and texts to build a title block
*/
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 1992-2013 Jean-Pierre Charras <jp.charras at wanadoo.fr>.
* Copyright (C) 1992-2013 KiCad Developers, see change_log.txt for contributors.
*
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or you may search the http://www.gnu.org website for the version 2 license,
* or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
/*
* the class WORKSHEET_DATAITEM (and WORKSHEET_DATAITEM_TEXT) defines
* a basic shape of a page layout ( frame references and title block )
* Basic shapes are line, rect and texts
* the WORKSHEET_DATAITEM coordinates units is the mm, and are relative to
* one of 4 page corners.
*
* These items cannot be drawn or plot "as this". they should be converted
* to a "draw list" (WS_DRAW_ITEM_BASE and derived items)
* The list of these items is stored in a WORKSHEET_LAYOUT instance.
*
* When building the draw list:
* the WORKSHEET_LAYOUT is used to create a WS_DRAW_ITEM_LIST
* coordinates are converted to draw/plot coordinates.
* texts are expanded if they contain format symbols.
* Items with m_RepeatCount > 1 are created m_RepeatCount times
*
* the WORKSHEET_LAYOUT is created only once.
* the WS_DRAW_ITEM_LIST is created each time the page layout is plot/drawn
*
* the WORKSHEET_LAYOUT instance is created from a S expression which
* describes the page layout (can be the default page layout or a custom file).
*/
#include <fctsys.h>
#include <drawtxt.h>
#include <worksheet.h>
#include <class_title_block.h>
#include <worksheet_shape_builder.h>
#include <class_worksheet_dataitem.h>
// Temporary include. Will be removed when a GOST page layout descr file is available
#ifdef KICAD_GOST
#include "title_block_shapes_gost.cpp"
#endif
void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(
const PAGE_INFO& aPageInfo,
const TITLE_BLOCK& aTitleBlock,
EDA_COLOR_T aColor, EDA_COLOR_T aAltColor )
{
WORKSHEET_LAYOUT& pglayout = WORKSHEET_LAYOUT::GetTheInstance();
// Ugly hack: will be removed when a GOST page layout descr file is available
#ifdef KICAD_GOST
if( pglayout.IsDefaultDescr() )
{
((WS_DRAW_ITEM_LIST_GOST*)this)->BuildWorkSheetGraphicListGOST( aPageInfo,
aTitleBlock, aColor, aAltColor );
return;
}
#endif
#define milsTomm (25.4/1000)
m_titleBlock = &aTitleBlock;
m_paperFormat = &aPageInfo.GetType();
wxPoint LTmargin( Mm2mils( pglayout.GetLeftMargin() ),
Mm2mils( pglayout.GetTopMargin() ) );
wxPoint RBmargin( Mm2mils( pglayout.GetRightMargin() ),
Mm2mils( pglayout.GetBottomMargin() ) );
SetMargins( LTmargin, RBmargin );
SetPageSize( aPageInfo.GetSizeMils() );
// Build the basic layout shape, if the layout list is empty
if( pglayout.GetCount() == 0 && !pglayout.VoidListAllowed() )
pglayout.SetPageLayout();
WORKSHEET_DATAITEM::m_WSunits2Iu = m_milsToIu / milsTomm;
WORKSHEET_DATAITEM::m_Color = aColor; // the default color to draw items
WORKSHEET_DATAITEM::m_AltColor = aAltColor; // an alternate color to draw items
// Left top corner position
DPOINT lt_corner;
lt_corner.x = pglayout.GetLeftMargin();
lt_corner.y = pglayout.GetTopMargin();
WORKSHEET_DATAITEM::m_LT_Corner = lt_corner;
// Right bottom corner position
DPOINT rb_corner;
rb_corner.x = (m_pageSize.x*milsTomm) - pglayout.GetRightMargin();
rb_corner.y = (m_pageSize.y*milsTomm) - pglayout.GetBottomMargin();
WORKSHEET_DATAITEM::m_RB_Corner = rb_corner;
WS_DRAW_ITEM_TEXT* gtext;
int pensize;
for( unsigned ii = 0; ; ii++ )
{
WORKSHEET_DATAITEM* wsItem = pglayout.GetItem( ii );
if( wsItem == NULL )
break;
// Generate it only if the page option allows this
if( wsItem->GetPage1Option() < 0 // Not on page 1
&& m_sheetNumber <= 1 )
continue;
if( wsItem->GetPage1Option() > 0 // Only on page 1
&& m_sheetNumber > 1 )
continue;
EDA_COLOR_T color = wsItem->GetItemColor();
pensize = wsItem->GetPenSizeUi();
switch( wsItem->GetType() )
{
case WORKSHEET_DATAITEM::WS_TEXT:
{
WORKSHEET_DATAITEM_TEXT * wsText = (WORKSHEET_DATAITEM_TEXT*)wsItem;
bool multilines = false;
if( wsText->m_SpecialMode )
wsText->m_FullText = wsText->m_TextBase;
else
{
wsText->m_FullText = BuildFullText( wsText->m_TextBase );
if( wsText->m_FullText.Replace( wxT("\\n" ), wxT("\n") ) > 0 )
multilines = true;
}
if( wsText->m_FullText.IsEmpty() )
break;
if( pensize == 0 )
pensize = m_penSize;
wsText->SetConstrainedTextSize();
wxSize textsize;
textsize.x = KiROUND( wsText->m_ConstrainedTextSize.x
* WORKSHEET_DATAITEM::m_WSunits2Iu );
textsize.y = KiROUND( wsText->m_ConstrainedTextSize.y
* WORKSHEET_DATAITEM::m_WSunits2Iu );
if( wsText->IsBold())
pensize = GetPenSizeForBold( std::min( textsize.x, textsize.y ) );
for( int jj = 0; jj < wsText->m_RepeatCount; jj++)
{
if( jj && ! wsText->IsInsidePage( jj ) )
continue;
Append( gtext = new WS_DRAW_ITEM_TEXT( wsText, wsText->m_FullText,
wsText->GetStartPosUi( jj ),
textsize,
pensize, color,
wsText->IsItalic(),
wsText->IsBold() ) );
gtext->SetMultilineAllowed( multilines );
wsText->TransfertSetupToGraphicText( gtext );
// Increment label for the next text
// (has no meaning for multiline texts)
if( wsText->m_RepeatCount > 1 && !multilines )
wsText->IncrementLabel( (jj+1)*wsText->m_IncrementLabel);
}
}
break;
case WORKSHEET_DATAITEM::WS_SEGMENT:
if( pensize == 0 )
pensize = m_penSize;
for( int jj = 0; jj < wsItem->m_RepeatCount; jj++ )
{
if( jj && ! wsItem->IsInsidePage( jj ) )
continue;
Append( new WS_DRAW_ITEM_LINE( wsItem, wsItem->GetStartPosUi( jj ),
wsItem->GetEndPosUi( jj ),
pensize, color ) );
}
break;
case WORKSHEET_DATAITEM::WS_RECT:
if( pensize == 0 )
pensize = m_penSize;
for( int jj = 0; jj < wsItem->m_RepeatCount; jj++ )
{
if( jj && ! wsItem->IsInsidePage( jj ) )
break;
Append( new WS_DRAW_ITEM_RECT( wsItem, wsItem->GetStartPosUi( jj ),
wsItem->GetEndPosUi( jj ),
pensize, color ) );
}
break;
case WORKSHEET_DATAITEM::WS_POLYPOLYGON:
{
WORKSHEET_DATAITEM_POLYPOLYGON * wspoly =
(WORKSHEET_DATAITEM_POLYPOLYGON*) wsItem;
for( int jj = 0; jj < wsItem->m_RepeatCount; jj++ )
{
if( jj && ! wsItem->IsInsidePage( jj ) )
continue;
for( int kk = 0; kk < wspoly->GetPolyCount(); kk++ )
{
const bool fill = true;
WS_DRAW_ITEM_POLYGON* poly = new WS_DRAW_ITEM_POLYGON( wspoly,
wspoly->GetStartPosUi( jj ),
fill, pensize, color );
Append( poly );
// Create polygon outline
unsigned ist = wspoly->GetPolyIndexStart( kk );
unsigned iend = wspoly->GetPolyIndexEnd( kk );
while( ist <= iend )
poly->m_Corners.push_back(
wspoly->GetCornerPositionUi( ist++, jj ) );
}
}
}
break;
}
}
}

View File

@ -977,10 +977,17 @@ Ki_WorkSheetData WS_DopTop_Line6 =
#include <worksheet_shape_builder.h>
void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(
const wxString& aPaperFormat,
const wxString& aFileName,
const wxString& aSheetPathHumanReadable,
class WS_DRAW_ITEM_LIST_GOST : public WS_DRAW_ITEM_LIST
{
public:
void BuildWorkSheetGraphicListGOST(
const PAGE_INFO& aPageInfo,
const TITLE_BLOCK& aTitleBlock,
EDA_COLOR_T aLineColor, EDA_COLOR_T aTextColor );
};
void WS_DRAW_ITEM_LIST_GOST::BuildWorkSheetGraphicListGOST(
const PAGE_INFO& aPageInfo,
const TITLE_BLOCK& aTitleBlock,
EDA_COLOR_T aLineColor, EDA_COLOR_T aTextColor )
{
@ -990,8 +997,14 @@ void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(
Ki_WorkSheetData* WsItem;
wxSize size( TEXTSIZE * m_milsToIu, TEXTSIZE * m_milsToIu );
wxString msg;
wxString paperFormat = aPageInfo.GetType();
WS_DRAW_ITEM_TEXT* gtext;
wxPoint LTmargin( Mm2mils( 20 ), Mm2mils( 5 ) );
wxPoint RBmargin( Mm2mils( 5 ), Mm2mils( 5 ) );
SetMargins( LTmargin, RBmargin );
SetPageSize( aPageInfo.GetSizeMils() );
// Upper left corner
refx = m_LTmargin.x;
refy = m_LTmargin.y;
@ -1011,7 +1024,7 @@ void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(
wxSize size3( TEXTSIZE * m_milsToIu * 3, TEXTSIZE * m_milsToIu * 3 );
// Draw the border.
Append( new WS_DRAW_ITEM_RECT(
Append( new WS_DRAW_ITEM_RECT( NULL,
wxPoint( refx * m_milsToIu, refy * m_milsToIu ),
wxPoint( xg * m_milsToIu, yg * m_milsToIu ),
lnWosn, aLineColor ) );
@ -1034,12 +1047,12 @@ void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(
switch( WsItem->m_Type )
{
case WS_OSN:
Append( new WS_DRAW_ITEM_LINE( pos, end,
Append( new WS_DRAW_ITEM_LINE( NULL, pos, end,
lnWosn, aLineColor ) );
break;
case WS_TONK:
Append( new WS_DRAW_ITEM_LINE( pos, end,
Append( new WS_DRAW_ITEM_LINE( NULL, pos, end,
lnWtonk, aLineColor ) );
break;
@ -1048,11 +1061,11 @@ void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(
if( !msg.IsEmpty() )
{
if( WsItem == &WS_Osn1_Text1 )
Append( new WS_DRAW_ITEM_TEXT( msg, pos,
Append( new WS_DRAW_ITEM_TEXT( NULL, msg, pos,
size0_8, m_penSize,
aLineColor ) );
else
Append( new WS_DRAW_ITEM_TEXT( msg, pos,
Append( new WS_DRAW_ITEM_TEXT( NULL, msg, pos,
size, m_penSize, aLineColor ) );
}
@ -1062,7 +1075,7 @@ void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(
if( !msg.IsEmpty() )
{
Append( gtext = new WS_DRAW_ITEM_TEXT( msg, pos,
Append( gtext = new WS_DRAW_ITEM_TEXT( NULL, msg, pos,
size, m_penSize, aLineColor ) );
gtext->SetHorizJustify( GR_TEXT_HJUSTIFY_LEFT );
}
@ -1078,7 +1091,7 @@ void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(
pos.y = ( refy - Mm2mils( 17.5 ) ) * m_milsToIu;
msg.Empty();
msg << m_sheetNumber;
Append( new WS_DRAW_ITEM_TEXT( msg, pos,
Append( new WS_DRAW_ITEM_TEXT( NULL, msg, pos,
size, m_penSize, aLineColor ) );
}
@ -1087,7 +1100,7 @@ void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(
pos.y = ( refy - Mm2mils( 17.5 ) ) * m_milsToIu;
msg.Empty();
msg << m_sheetCount;
Append( gtext = new WS_DRAW_ITEM_TEXT( msg, pos,
Append( gtext = new WS_DRAW_ITEM_TEXT( NULL, msg, pos,
size, m_penSize, aLineColor ) );
gtext->SetHorizJustify( GR_TEXT_HJUSTIFY_LEFT );
@ -1105,7 +1118,7 @@ void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(
pos.x = ( refx - Mm2mils( 25 ) ) * m_milsToIu;
pos.y = ( refy - Mm2mils( 7.5 ) ) * m_milsToIu;
Append( new WS_DRAW_ITEM_TEXT( msg, pos,
Append( new WS_DRAW_ITEM_TEXT( NULL, msg, pos,
sz, m_penSize, aLineColor ) );
}
@ -1211,7 +1224,7 @@ void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(
for( unsigned curLn = 0; curLn < lines.Count(); curLn++ )
{
msg = lines[curLn];
Append( new WS_DRAW_ITEM_TEXT( msg, pos,
Append( new WS_DRAW_ITEM_TEXT( NULL, msg, pos,
sz, m_penSize, aTextColor ) );
pos.y += titleHeight * m_milsToIu;
}
@ -1231,7 +1244,7 @@ void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(
pos.x = ( refx - Mm2mils( 60 ) ) * m_milsToIu;
pos.y = ( refy - Mm2mils( 47.5 ) ) * m_milsToIu;
Append( new WS_DRAW_ITEM_TEXT( msg, pos,
Append( new WS_DRAW_ITEM_TEXT(NULL, msg, pos,
sz, m_penSize, aTextColor ) );
}
@ -1249,7 +1262,7 @@ void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(
pos.x = ( refx - Mm2mils( 167.5 ) ) * m_milsToIu;
pos.y = ( refy - Mm2mils( 27.5 ) ) * m_milsToIu;
Append( gtext = new WS_DRAW_ITEM_TEXT( msg, pos,
Append( gtext = new WS_DRAW_ITEM_TEXT( NULL, msg, pos,
sz, m_penSize, aTextColor ) );
gtext->SetHorizJustify( GR_TEXT_HJUSTIFY_LEFT );
}
@ -1268,7 +1281,7 @@ void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(
pos.x = ( refx - Mm2mils( 167 ) ) * m_milsToIu;
pos.y = ( refy - Mm2mils( 22.5 ) ) * m_milsToIu;
Append( gtext = new WS_DRAW_ITEM_TEXT( msg, pos,
Append( gtext = new WS_DRAW_ITEM_TEXT( NULL, msg, pos,
sz, m_penSize, aTextColor ) );
gtext->SetHorizJustify( GR_TEXT_HJUSTIFY_LEFT );
}
@ -1287,7 +1300,7 @@ void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(
pos.x = ( refx - Mm2mils( 167 ) ) * m_milsToIu;
pos.y = ( refy - Mm2mils( 2.5 ) ) * m_milsToIu;
Append( gtext = new WS_DRAW_ITEM_TEXT( msg, pos,
Append( gtext = new WS_DRAW_ITEM_TEXT( NULL, msg, pos,
sz, m_penSize, aTextColor ) );
gtext->SetHorizJustify( GR_TEXT_HJUSTIFY_LEFT );
}
@ -1305,12 +1318,12 @@ void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(
switch( WsItem->m_Type )
{
case WS_OSN:
Append( new WS_DRAW_ITEM_LINE( pos, end,
Append( new WS_DRAW_ITEM_LINE( NULL, pos, end,
lnWosn, aLineColor ) );
break;
case WS_TONK:
Append( new WS_DRAW_ITEM_LINE( pos, end,
Append( new WS_DRAW_ITEM_LINE( NULL, pos, end,
lnWtonk, aLineColor ) );
break;
@ -1319,11 +1332,11 @@ void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(
if( !msg.IsEmpty() )
{
if( WsItem == &WS_Osn2a_Text1 )
Append( new WS_DRAW_ITEM_TEXT( msg, pos,
Append( new WS_DRAW_ITEM_TEXT( NULL, msg, pos,
size0_8, m_penSize,
aLineColor ) );
else
Append( new WS_DRAW_ITEM_TEXT( msg, pos,
Append( new WS_DRAW_ITEM_TEXT( NULL, msg, pos,
size, m_penSize, aLineColor ) );
}
@ -1333,7 +1346,7 @@ void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(
if( !msg.IsEmpty() )
{
Append( gtext = new WS_DRAW_ITEM_TEXT( msg, pos,
Append( gtext = new WS_DRAW_ITEM_TEXT( NULL, msg, pos,
size, m_penSize,
aLineColor ) );
gtext->SetHorizJustify( GR_TEXT_HJUSTIFY_LEFT );
@ -1348,7 +1361,7 @@ void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(
pos.y = ( refy - Mm2mils( 4 ) ) * m_milsToIu;
msg.Empty();
msg << m_sheetNumber;
Append( gtext = new WS_DRAW_ITEM_TEXT( msg, pos,
Append( gtext = new WS_DRAW_ITEM_TEXT( NULL, msg, pos,
size, m_penSize, aLineColor ) );
// Decimal number
@ -1365,7 +1378,7 @@ void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(
pos.x = ( refx - Mm2mils( 65 ) ) * m_milsToIu;
pos.y = ( refy - Mm2mils( 7.5 ) ) * m_milsToIu;
Append( new WS_DRAW_ITEM_TEXT( msg, pos,
Append( new WS_DRAW_ITEM_TEXT( NULL, msg, pos,
sz, m_penSize, aTextColor ) );
}
}
@ -1374,8 +1387,8 @@ void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(
pos.x = ( refx - Mm2mils( 23 ) ) * m_milsToIu;
pos.y = ( refy + Mm2mils( 2.5 ) ) * m_milsToIu;
msg.Empty();
msg << aPaperFormat;
Append( gtext = new WS_DRAW_ITEM_TEXT( msg, pos,
msg << paperFormat;
Append( gtext = new WS_DRAW_ITEM_TEXT( NULL, msg, pos,
size, m_penSize, aLineColor ) );
gtext->SetHorizJustify( GR_TEXT_HJUSTIFY_LEFT );
@ -1397,7 +1410,7 @@ void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(
switch( WsItem->m_Type )
{
case WS_OSN:
Append( new WS_DRAW_ITEM_LINE( pos, end,
Append( new WS_DRAW_ITEM_LINE( NULL, pos, end,
lnWosn, aLineColor ) );
break;
@ -1405,7 +1418,7 @@ void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(
if( !msg.IsEmpty() )
{
Append( gtext = new WS_DRAW_ITEM_TEXT( msg, pos,
Append( gtext = new WS_DRAW_ITEM_TEXT( NULL, msg, pos,
size, m_penSize, aLineColor ) );
gtext->SetOrientation( TEXT_ORIENT_VERT );
}
@ -1414,7 +1427,7 @@ void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(
}
}
if( aPaperFormat == PAGE_INFO::A4 || m_pageSize.x > m_pageSize.y ) // A4 or Landscape
if( paperFormat == PAGE_INFO::A4 || m_pageSize.x > m_pageSize.y ) // A4 or Landscape
{
// Center - left top corner
refx = m_LTmargin.x;
@ -1434,12 +1447,12 @@ void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(
switch( WsItem->m_Type )
{
case WS_OSN:
Append( new WS_DRAW_ITEM_LINE( pos, end,
Append( new WS_DRAW_ITEM_LINE( NULL, pos, end,
lnWosn, aLineColor ) );
break;
case WS_TONK:
Append( new WS_DRAW_ITEM_LINE( pos, end,
Append( new WS_DRAW_ITEM_LINE( NULL, pos, end,
lnWtonk, aLineColor ) );
break;
}
@ -1459,7 +1472,7 @@ void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(
pos.x = ( refx + Mm2mils( 35 ) ) * m_milsToIu;
pos.y = ( refy + Mm2mils( 7 ) ) * m_milsToIu;
Append( gtext = new WS_DRAW_ITEM_TEXT( msg, pos,
Append( gtext = new WS_DRAW_ITEM_TEXT( NULL, msg, pos,
sz, m_penSize, aTextColor ) );
gtext->SetOrientation( 1800.0 );
}
@ -1485,12 +1498,12 @@ void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(
switch( WsItem->m_Type )
{
case WS_OSN:
Append( new WS_DRAW_ITEM_LINE( pos, end,
Append( new WS_DRAW_ITEM_LINE( NULL, pos, end,
lnWosn, aLineColor ) );
break;
case WS_TONK:
Append( new WS_DRAW_ITEM_LINE( pos, end,
Append( new WS_DRAW_ITEM_LINE( NULL, pos, end,
lnWtonk, aLineColor ) );
break;
}
@ -1510,7 +1523,7 @@ void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(
pos.x = ( refx - Mm2mils( 7 ) ) * m_milsToIu;
pos.y = ( refy + Mm2mils( 35 ) ) * m_milsToIu;
Append( gtext = new WS_DRAW_ITEM_TEXT( msg, pos,
Append( gtext = new WS_DRAW_ITEM_TEXT( NULL, msg, pos,
sz, m_penSize, aTextColor ) );
gtext->SetOrientation( TEXT_ORIENT_VERT );
}

View File

@ -1,438 +0,0 @@
/**
* @file title_block_shape.cpp
* @brief description of graphic items and texts to build a title block
*/
/*
* This program source code file is part of KiCad, a free EDA CAD application.
*
* Copyright (C) 1992-2013 Jean-Pierre Charras <jp.charras at wanadoo.fr>.
* Copyright (C) 1992-2013 KiCad Developers, see change_log.txt for contributors.
*
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, you may find one here:
* http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
* or you may search the http://www.gnu.org website for the version 2 license,
* or you may write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*/
/*
* the class WORKSHEET_DATAITEM (and WORKSHEET_DATAITEM_TEXT) defines
* a basic shape of a page layout ( frame references and title block )
* Basic shapes are line, rect and texts
* the WORKSHEET_DATAITEM coordinates units is the mm, and are relative to
* one of 4 page corners.
*
* These items cannot be drawn or plot "as this". they should be converted
* to a "draw list" (WS_DRAW_ITEM_BASE and derived items)
* The list of these items is stored in a WORKSHEET_LAYOUT instance.
*
* When building the draw list:
* the WORKSHEET_LAYOUT is used to create a WS_DRAW_ITEM_LIST
* coordinates are converted to draw/plot coordinates.
* texts are expanded if they contain format symbols.
* Items with m_RepeatCount > 1 are created m_RepeatCount times
*
* the WORKSHEET_LAYOUT is created only once.
* the WS_DRAW_ITEM_LIST is created each time the page layout is plot/drawn
*
* the WORKSHEET_LAYOUT instance is created from a S expression which
* describes the page layout (can be the default page layout or a custom file).
*/
#include <fctsys.h>
#include <drawtxt.h>
#include <worksheet.h>
#include <class_title_block.h>
#include <worksheet_shape_builder.h>
WORKSHEET_DATAITEM_POLYPOLYGON::WORKSHEET_DATAITEM_POLYPOLYGON() :
WORKSHEET_DATAITEM( WS_POLYPOLYGON )
{
m_Orient = 0.0;
}
const DPOINT WORKSHEET_DATAITEM_POLYPOLYGON::GetCornerPosition( unsigned aIdx,
int aRepeat ) const
{
DPOINT pos = m_Corners[aIdx];
// Rotation:
RotatePoint( &pos.x, &pos.y, m_Orient * 10 );
pos += GetStartPos( aRepeat );
return pos;
}
void WORKSHEET_DATAITEM_POLYPOLYGON::SetBoundingBox()
{
if( m_Corners.size() == 0 )
{
m_minCoord.x = m_maxCoord.x = 0.0;
m_minCoord.y = m_maxCoord.y = 0.0;
return;
}
DPOINT pos;
pos = m_Corners[0];
RotatePoint( &pos.x, &pos.y, m_Orient * 10 );
m_minCoord = m_maxCoord = pos;
for( unsigned ii = 1; ii < m_Corners.size(); ii++ )
{
pos = m_Corners[ii];
RotatePoint( &pos.x, &pos.y, m_Orient * 10 );
if( m_minCoord.x > pos.x )
m_minCoord.x = pos.x;
if( m_minCoord.y > pos.y )
m_minCoord.y = pos.y;
if( m_maxCoord.x < pos.x )
m_maxCoord.x = pos.x;
if( m_maxCoord.y < pos.y )
m_maxCoord.y = pos.y;
}
}
bool WORKSHEET_DATAITEM_POLYPOLYGON::IsInsidePage( int ii ) const
{
DPOINT pos = GetStartPos( ii );
pos += m_minCoord; // left top pos of bounding box
if( m_LT_Corner.x > pos.x || m_LT_Corner.y > pos.y )
return false;
pos = GetStartPos( ii );
pos += m_maxCoord; // rignt bottom pos of bounding box
if( m_RB_Corner.x < pos.x || m_RB_Corner.y < pos.y )
return false;
return true;
}
const wxPoint WORKSHEET_DATAITEM_POLYPOLYGON::GetCornerPositionUi( unsigned aIdx,
int aRepeat ) const
{
DPOINT pos = GetCornerPosition( aIdx, aRepeat );
pos = pos * m_WSunits2Iu;
return wxPoint( int(pos.x), int(pos.y) );
}
WORKSHEET_DATAITEM_TEXT::WORKSHEET_DATAITEM_TEXT( const wxChar* aTextBase ) :
WORKSHEET_DATAITEM( WS_TEXT )
{
m_TextBase = aTextBase;
m_IncrementLabel = 1;
m_Hjustify = GR_TEXT_HJUSTIFY_LEFT;
m_Vjustify = GR_TEXT_VJUSTIFY_CENTER;
m_Orient = 0.0;
m_TextSize.x = m_TextSize.y = TB_DEFAULT_TEXTSIZE;
}
void WORKSHEET_DATAITEM_TEXT::TransfertSetupToGraphicText( WS_DRAW_ITEM_TEXT* aGText )
{
aGText->SetHorizJustify( m_Hjustify ) ;
aGText->SetVertJustify( m_Vjustify );
aGText->SetOrientation( m_Orient * 10 ); // graphic text orient unit = 0.1 degree
}
void WORKSHEET_DATAITEM_TEXT::IncrementLabel( int aIncr )
{
wxChar lbchar = m_TextBase[0];
if( lbchar >= '0' && lbchar <= '9' )
// A number is expected:
m_FullText.Printf( wxT("%d"), aIncr + lbchar - '0' );
else
m_FullText.Printf( wxT("%c"), aIncr + lbchar );
}
void WORKSHEET_DATAITEM_TEXT::SetConstrainedTextSize()
{
m_ConstrainedTextSize = m_TextSize;
if( m_BoundingBoxSize.x )
{
bool italic = (m_Flags & USE_ITALIC) != 0;
int linewidth = 0;
int lenMsg = ReturnGraphicTextWidth( m_FullText, m_TextSize.x, italic, linewidth );
if( lenMsg > m_BoundingBoxSize.x )
m_ConstrainedTextSize.x = m_TextSize.x * m_BoundingBoxSize.x / lenMsg;
}
if( m_BoundingBoxSize.y )
{
if( m_ConstrainedTextSize.y > m_BoundingBoxSize.y )
m_ConstrainedTextSize.y = m_BoundingBoxSize.y;
}
}
const DPOINT WORKSHEET_DATAITEM::GetStartPos( int ii ) const
{
DPOINT pos;
pos.x = m_Pos.m_Pos.x + ( m_IncrementVector.x * ii );
pos.y = m_Pos.m_Pos.y + ( m_IncrementVector.y * ii );
switch( m_Pos.m_Anchor )
{
case RB_CORNER: // right bottom corner
pos = m_RB_Corner - pos;
break;
case RT_CORNER: // right top corner
pos.x = m_RB_Corner.x - pos.x;
pos.y = m_LT_Corner.y + pos.y;
break;
case LB_CORNER: // left bottom corner
pos.x = m_LT_Corner.x + pos.x;
pos.y = m_RB_Corner.y - pos.y;
break;
case LT_CORNER: // left top corner
pos = m_LT_Corner + pos;
break;
}
return pos;
}
const wxPoint WORKSHEET_DATAITEM::GetStartPosUi( int ii ) const
{
DPOINT pos = GetStartPos( ii );
pos = pos * m_WSunits2Iu;
return wxPoint( int(pos.x), int(pos.y) );
}
const DPOINT WORKSHEET_DATAITEM::GetEndPos( int ii ) const
{
DPOINT pos;
pos.x = m_End.m_Pos.x + ( m_IncrementVector.x * ii );
pos.y = m_End.m_Pos.y + ( m_IncrementVector.y * ii );
switch( m_End.m_Anchor )
{
case RB_CORNER: // right bottom corner
pos = m_RB_Corner - pos;
break;
case RT_CORNER: // right top corner
pos.x = m_RB_Corner.x - pos.x;
pos.y = m_LT_Corner.y + pos.y;
break;
case LB_CORNER: // left bottom corner
pos.x = m_LT_Corner.x + pos.x;
pos.y = m_RB_Corner.y - pos.y;
break;
case LT_CORNER: // left top corner
pos = m_LT_Corner + pos;
break;
}
return pos;
}
const wxPoint WORKSHEET_DATAITEM::GetEndPosUi( int ii ) const
{
DPOINT pos = GetEndPos( ii );
pos = pos * m_WSunits2Iu;
return wxPoint( int(pos.x), int(pos.y) );
}
bool WORKSHEET_DATAITEM::IsInsidePage( int ii ) const
{
DPOINT pos = GetStartPos( ii );
if( m_RB_Corner.x < pos.x || m_LT_Corner.x > pos.x )
return false;
if( m_RB_Corner.y < pos.y || m_LT_Corner.y > pos.y )
return false;
pos = GetEndPos( ii );
if( m_RB_Corner.x < pos.x || m_LT_Corner.x > pos.x )
return false;
if( m_RB_Corner.y < pos.y || m_LT_Corner.y > pos.y )
return false;
return true;
}
double WORKSHEET_DATAITEM::m_WSunits2Iu = 1.0;
DPOINT WORKSHEET_DATAITEM::m_RB_Corner;
DPOINT WORKSHEET_DATAITEM::m_LT_Corner;
WORKSHEET_LAYOUT dataList; // The layout shape
void WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList(
const wxString& aPaperFormat,
const wxString& aFileName,
const wxString& aSheetPathHumanReadable,
const TITLE_BLOCK& aTitleBlock,
EDA_COLOR_T aLineColor, EDA_COLOR_T aTextColor )
{
#define milsTomm (25.4/1000)
m_titleBlock = &aTitleBlock,
m_paperFormat = &aPaperFormat,
m_fileName = &aFileName,
m_sheetFullName = &aSheetPathHumanReadable;
// Build the basic layout shape, if the layout list is empty
if( dataList.GetCount() == 0 )
dataList.SetLayout();
WORKSHEET_DATAITEM::m_WSunits2Iu = m_milsToIu / milsTomm;
// Left top corner position
DPOINT lt_corner;
lt_corner.x = m_LTmargin.x;
lt_corner.y = m_LTmargin.y;
WORKSHEET_DATAITEM::m_LT_Corner = lt_corner * milsTomm;
// Right bottom corner position
DPOINT rb_corner;
rb_corner.x = m_pageSize.x - m_RBmargin.x;
rb_corner.y = m_pageSize.y - m_RBmargin.y;
WORKSHEET_DATAITEM::m_RB_Corner = rb_corner * milsTomm;
WS_DRAW_ITEM_TEXT* gtext;
int pensize;
EDA_COLOR_T color;
for( unsigned ii = 0; ; ii++ )
{
WORKSHEET_DATAITEM* wsItem = dataList.GetItem( ii );
if( wsItem == NULL )
break;
pensize = wsItem->GetPenSizeUi();
switch( wsItem->m_Type )
{
case WORKSHEET_DATAITEM::WS_TEXT:
{
WORKSHEET_DATAITEM_TEXT * wsText = (WORKSHEET_DATAITEM_TEXT*)wsItem;
wsText->m_FullText = BuildFullText( wsText->m_TextBase );
if( wsText->m_FullText.IsEmpty() )
break;
if( pensize == 0 )
pensize = m_penSize;
color = aLineColor;
if( wsText->m_Flags & USE_TEXT_COLOR )
color = aTextColor;
wsText->SetConstrainedTextSize();
wxSize textsize;
textsize.x = KiROUND( wsText->m_ConstrainedTextSize.x
* WORKSHEET_DATAITEM::m_WSunits2Iu );
textsize.y = KiROUND( wsText->m_ConstrainedTextSize.y
* WORKSHEET_DATAITEM::m_WSunits2Iu );
if( wsText->IsBold())
pensize = GetPenSizeForBold( std::min( textsize.x, textsize.y ) );
for( int jj = 0; jj < wsText->m_RepeatCount; jj++)
{
if( ! wsText->IsInsidePage( jj ) )
continue;
Append( gtext = new WS_DRAW_ITEM_TEXT( wsText->m_FullText,
wsText->GetStartPosUi( jj ),
textsize,
pensize, color,
wsText->IsItalic(),
wsText->IsBold() ) );
wsText->TransfertSetupToGraphicText( gtext );
// Increment label for the next text
if( wsText->m_RepeatCount > 1 )
wsText->IncrementLabel( jj+1 );
}
}
break;
case WORKSHEET_DATAITEM::WS_SEGMENT:
if( pensize == 0 )
pensize = m_penSize;
for( int jj = 0; jj < wsItem->m_RepeatCount; jj++ )
{
if( ! wsItem->IsInsidePage( jj ) )
continue;
Append( new WS_DRAW_ITEM_LINE( wsItem->GetStartPosUi( jj ),
wsItem->GetEndPosUi( jj ),
pensize, aLineColor ) );
}
break;
case WORKSHEET_DATAITEM::WS_RECT:
if( pensize == 0 )
pensize = m_penSize;
for( int jj = 0; jj < wsItem->m_RepeatCount; jj++ )
{
if( ! wsItem->IsInsidePage( jj ) )
break;
Append( new WS_DRAW_ITEM_RECT( wsItem->GetStartPosUi( jj ),
wsItem->GetEndPosUi( jj ),
pensize, aLineColor ) );
}
break;
case WORKSHEET_DATAITEM::WS_POLYPOLYGON:
{
WORKSHEET_DATAITEM_POLYPOLYGON * wspoly =
(WORKSHEET_DATAITEM_POLYPOLYGON*) wsItem;
for( int jj = 0; jj < wsItem->m_RepeatCount; jj++ )
{
if( ! wsItem->IsInsidePage( jj ) )
continue;
for( int kk = 0; kk < wspoly->GetPolyCount(); kk++ )
{
const bool fill = true;
WS_DRAW_ITEM_POLYGON* poly = new WS_DRAW_ITEM_POLYGON( fill,
pensize, aLineColor );
Append( poly );
// Create polygon outline
unsigned ist = wspoly->GetPolyIndexStart( kk );
unsigned iend = wspoly->GetPolyIndexEnd( kk );
while( ist <= iend )
poly->m_Corners.push_back(
wspoly->GetCornerPositionUi( ist++, jj ) );
}
}
}
break;
}
}
}

View File

@ -46,6 +46,7 @@ const wxString GerberFileExtension( wxT( "pho" ) );
const wxString LegacyPcbFileExtension( wxT( "brd" ) );
const wxString KiCadPcbFileExtension( wxT( "kicad_pcb" ) );
const wxString PageLayoutDescrFileExtension( wxT( "kicad_wks" ) );
const wxString PdfFileExtension( wxT( "pdf" ) );
const wxString MacrosFileExtension( wxT( "mcr" ) );
@ -81,7 +82,7 @@ const wxString EagleFootprintLibPathWildcard( _( "Eagle ver. 6.x XML library fil
const wxString GedaPcbFootprintLibFileWildcard( _( "Geda PCB footprint library file (*.fp)|*.fp" ) );
const wxString MacrosFileWildcard( _( "KiCad recorded macros (*.mcr)|*.mcr" ) );
const wxString ComponentFileExtensionWildcard( _( "Component-footprint link file (*.cmp)|*cmp" ) );
const wxString PageLayoutDescrFileWildcard( _( "Page layout descr file (*.kicad_wks)|*kicad_wks" ) );
// generic:
const wxString AllFilesWildcard( _( "All files (*)|*" ) );

View File

@ -46,60 +46,6 @@
static const wxString productName = wxT( "KiCad E.D.A. " );
/* Draws the item list crated by BuildWorkSheetGraphicList
* aClipBox = the clipping rect, or NULL if no clipping
* aDC = the current Device Context
*/
void WS_DRAW_ITEM_LIST::Draw( EDA_RECT* aClipBox, wxDC* aDC )
{
for( WS_DRAW_ITEM_BASE* item = GetFirst(); item; item = GetNext() )
{
switch( item->GetType() )
{
case WS_DRAW_ITEM_BASE::wsg_line:
{
WS_DRAW_ITEM_LINE* line = (WS_DRAW_ITEM_LINE*) item;
GRLine( aClipBox, aDC,
line->GetStart(), line->GetEnd(),
line->GetPenWidth(), line->GetColor() );
}
break;
case WS_DRAW_ITEM_BASE::wsg_rect:
{
WS_DRAW_ITEM_RECT* rect = (WS_DRAW_ITEM_RECT*) item;
GRRect( aClipBox, aDC,
rect->GetStart().x, rect->GetStart().y,
rect->GetEnd().x, rect->GetEnd().y,
rect->GetPenWidth(), rect->GetColor() );
}
break;
case WS_DRAW_ITEM_BASE::wsg_text:
{
WS_DRAW_ITEM_TEXT* text = (WS_DRAW_ITEM_TEXT*) item;
DrawGraphicText( aClipBox, aDC, text->GetTextPosition(),
text->GetColor(), text->GetText(),
text->GetOrientation(), text->GetSize(),
text->GetHorizJustify(), text->GetVertJustify(),
text->GetPenWidth(), text->IsItalic(), text->IsBold() );
}
break;
case WS_DRAW_ITEM_BASE::wsg_poly:
{
WS_DRAW_ITEM_POLYGON* poly = (WS_DRAW_ITEM_POLYGON*) item;
GRPoly( aClipBox, aDC,
poly->m_Corners.size(), &poly->m_Corners[0],
poly->IsFilled() ? FILLED_SHAPE : NO_FILL,
poly->GetPenWidth(),
poly->GetColor(), poly->GetColor() );
}
break;
}
}
}
void DrawPageLayout( wxDC* aDC, EDA_RECT* aClipBox,
const PAGE_INFO& aPageInfo,
const wxString &aFullSheetName,
@ -112,19 +58,14 @@ void DrawPageLayout( wxDC* aDC, EDA_RECT* aClipBox,
GRSetDrawMode( aDC, GR_COPY );
WS_DRAW_ITEM_LIST drawList;
wxPoint LTmargin( aPageInfo.GetLeftMarginMils(), aPageInfo.GetTopMarginMils() );
wxPoint RBmargin( aPageInfo.GetRightMarginMils(), aPageInfo.GetBottomMarginMils() );
wxSize pagesize = aPageInfo.GetSizeMils();
drawList.SetMargins( LTmargin, RBmargin );
drawList.SetPenSize( aPenWidth );
drawList.SetMilsToIUfactor( aScalar );
drawList.SetPageSize( pagesize );
drawList.SetSheetNumber( aSheetNumber );
drawList.SetSheetCount( aSheetCount );
drawList.SetFileName( aFileName );
drawList.SetSheetName( aFullSheetName );
drawList.BuildWorkSheetGraphicList(
aPageInfo.GetType(), aFullSheetName, aFileName,
drawList.BuildWorkSheetGraphicList( aPageInfo,
aTitleBlock, aColor, aAltColor );
// Draw item list
@ -154,7 +95,7 @@ void EDA_DRAW_FRAME::DrawWorkSheet( wxDC* aDC, BASE_SCREEN* aScreen, int aLineWi
EDA_COLOR_T color = RED;
DrawPageLayout( aDC, m_canvas->GetClipBox(), pageInfo,
aFilename, GetScreenDesc(), t_block,
GetScreenDesc(), aFilename, t_block,
aScreen->m_NumberOfScreens, aScreen->m_ScreenNumber,
aLineWidth, aScalar, color, color );
}
@ -162,7 +103,7 @@ void EDA_DRAW_FRAME::DrawWorkSheet( wxDC* aDC, BASE_SCREEN* aScreen, int aLineWi
wxString EDA_DRAW_FRAME::GetScreenDesc()
{
// Virtual function, in basic function, returns
// Virtual function. In basic class, returns
// an empty string.
return wxEmptyString;
}

View File

@ -187,9 +187,9 @@ F 1 "C_3X2.5MM2" H 2950 6850 40 0000 C C
1 0 0 -1
$EndComp
Text Notes 4400 7650 0 60 ~
Extérieur
Extérieur
Text Notes 3800 6260 0 60 ~
Prises pièces à vivre
Prises pièces à vivre
Text Notes 6860 5960 0 60 ~
Cuisine & Lingerie
Wire Notes Line
@ -283,7 +283,7 @@ permanentes
Text Notes 10350 2250 0 60 ~
Servitudes
Text Notes 6050 2150 0 60 ~
Servitudes secourues protégées
Servitudes secourues protégées
Text Notes 6700 700 0 60 ~
Servitudes secourues
Wire Notes Line
@ -811,7 +811,7 @@ U 1 1 4162F1F0
P 2550 6950
F 0 "ED71" H 2390 7070 40 0000 C C
F 1 "D_10A" H 2450 6870 40 0000 C C
F 2 "Abri pré Mouillière proche" H 4160 6980 40 0000 C C
F 2 "Abri pré Mouillière proche" H 4160 6980 40 0000 C C
1 2550 6950
1 0 0 -1
$EndComp
@ -821,7 +821,7 @@ U 1 1 4162F1CA
P 2550 6600
F 0 "ED70" H 2390 6720 40 0000 C C
F 1 "D_10A" H 2450 6520 40 0000 C C
F 2 "Abri coté route" H 3920 6600 40 0000 C C
F 2 "Abri coté route" H 3920 6600 40 0000 C C
1 2550 6600
1 0 0 -1
$EndComp
@ -831,7 +831,7 @@ U 1 1 4162F8B1
P 2550 6100
F 0 "ED55" H 2390 6220 40 0000 C C
F 1 "D_16A" H 2450 6020 40 0000 C C
F 2 "Entrée et salle de bain" H 4080 6100 40 0000 C C
F 2 "Entrée et salle de bain" H 4080 6100 40 0000 C C
1 2550 6100
1 0 0 -1
$EndComp
@ -841,7 +841,7 @@ U 1 1 4162F875
P 2550 5750
F 0 "ED54" H 2390 5870 40 0000 C C
F 1 "D_16A" H 2450 5670 40 0000 C C
F 2 "Séjour et sam" H 3860 5740 40 0000 C C
F 2 "Séjour et sam" H 3860 5740 40 0000 C C
1 2550 5750
1 0 0 -1
$EndComp
@ -891,7 +891,7 @@ U 1 1 4162F875
P 8550 6100
F 0 "ED64" H 8390 6220 40 0000 C C
F 1 "D_16A" H 8450 6020 40 0000 C C
F 2 "Etage coté atelier" H 9940 6100 40 0000 C C
F 2 "Etage coté atelier" H 9940 6100 40 0000 C C
1 8550 6100
1 0 0 -1
$EndComp
@ -901,7 +901,7 @@ U 1 1 4162F862
P 8550 5750
F 0 "ED63" H 8390 5870 40 0000 C C
F 1 "D_16A" H 8450 5670 40 0000 C C
F 2 "Etage coté sellerie" H 9960 5740 40 0000 C C
F 2 "Etage coté sellerie" H 9960 5740 40 0000 C C
1 8550 5750
1 0 0 -1
$EndComp
@ -990,7 +990,7 @@ U 1 1 4162F75D
P 5900 5450
F 0 "ED46" H 5740 5570 40 0000 C C
F 1 "D_16A" H 5800 5370 40 0000 C C
F 2 "Séchoir" H 7060 5440 40 0000 C C
F 2 "Séchoir" H 7060 5440 40 0000 C C
1 5900 5450
1 0 0 -1
$EndComp
@ -1050,7 +1050,7 @@ U 1 1 4162F6F8
P 5900 3350
F 0 "ED40" H 5740 3470 40 0000 C C
F 1 "D_32A" H 5800 3270 40 0000 C C
F 2 "Plaque électrique" H 7260 3340 40 0000 C C
F 2 "Plaque électrique" H 7260 3340 40 0000 C C
1 5900 3350
1 0 0 -1
$EndComp
@ -1152,7 +1152,7 @@ P 8550 1000
F 0 "ED12" H 8390 1120 40 0000 C C
F 1 "D_06A" H 8450 920 40 0000 C C
F 2 "Eclairage chambre 1, chambre 2" H 10200 1040 40 0000 C C
F 3 "couloir1, wc1, sdb, entrée" H 10180 980 40 0000 C C
F 3 "couloir1, wc1, sdb, entrée" H 10180 980 40 0000 C C
1 8550 1000
1 0 0 -1
$EndComp
@ -1162,7 +1162,7 @@ U 1 1 4162F2EE
P 8550 1350
F 0 "ED13" H 8390 1470 40 0000 C C
F 1 "D_06A" H 8450 1270 40 0000 C C
F 2 "Eclairage séjour, cuisine" H 10100 1380 40 0000 C C
F 2 "Eclairage séjour, cuisine" H 10100 1380 40 0000 C C
F 3 "sam, escalier, bureau" H 10100 1320 40 0000 C C
1 8550 1350
1 0 0 -1
@ -1184,7 +1184,7 @@ U 1 1 4162F22A
P 5900 1900
F 0 "ED25" H 5740 2020 40 0000 C C
F 1 "D_10A" H 5800 1820 40 0000 C C
F 2 "Matériel sensible" H 7260 1900 40 0000 C C
F 2 "Matériel sensible" H 7260 1900 40 0000 C C
1 5900 1900
1 0 0 -1
$EndComp
@ -1194,7 +1194,7 @@ U 1 1 4162F1F7
P 5900 1500
F 0 "ED22" H 5740 1620 40 0000 C C
F 1 "D_10A" H 5800 1420 40 0000 C C
F 2 "Réfrigérateur & congélateur" H 7480 1500 40 0000 C C
F 2 "Réfrigérateur & congélateur" H 7480 1500 40 0000 C C
1 5900 1500
1 0 0 -1
$EndComp
@ -1252,7 +1252,7 @@ F 0 "EO1" H 5300 2300 40 0000 C C
F 1 "O_900VA" H 5050 2500 40 0000 C C
F 2 "Onduleurs" H 5050 2200 30 0000 C C
F 3 "autonomie" H 5050 2150 30 0000 C C
F 4 "rallongée" H 5050 2100 30 0000 C C
F 4 "rallongée" H 5050 2100 30 0000 C C
1 5050 2400
1 0 0 -1
$EndComp
@ -1404,7 +1404,7 @@ P 1000 2150
F 0 "EG1" H 1050 2300 40 0000 C C
F 1 "G_TH_3KVA" H 1080 2380 40 0000 C C
F 2 "Groupe" H 640 2260 30 0000 C C
F 3 "électrogène" H 640 2200 30 0000 C C
F 3 "électrogène" H 640 2200 30 0000 C C
F 4 "automatique" H 640 2140 30 0000 C C
F 5 "diesel" H 640 2080 30 0000 C C
1 1000 2150

View File

@ -13,7 +13,7 @@ Comment2 ""
Comment3 ""
Comment4 ""
$EndDescr
Kmarq B 3100 2150 "Warning Pin power_in non pilotée (Net 2)" F=1
Kmarq B 3100 2150 "Warning Pin power_in non pilotée (Net 2)" F=1
Wire Wire Line
3700 7000 3700 6900
Wire Wire Line

View File

@ -1710,3 +1710,25 @@ void LIB_COMPONENT::AddAlias( const wxString& aName )
m_aliases.push_back( new LIB_ALIAS( aName, this ) );
}
/** Set the separator char between the subpart id and the reference
* 0 (no separator) or '.' , '-' and '_'
* and the ascii char value to calculate the subpart symbol id from the part number:
* 'A' or '1' only are allowed. (to print U1.A or U1.1)
* if this is a digit, a number is used as id symbol
* Note also if the subpart symbol is a digit, the separator cannot be null.
* @param aSep = the separator symbol (0 (no separator) or '.' , '-' and '_')
* @param aFirstId = the Id of the first part ('A' or '1')
*/
void LIB_COMPONENT::SetSubpartIdNotation( int aSep, int aFirstId )
{
m_subpartFirstId = 'A';
m_subpartIdSeparator = 0;
if( aSep == '.' || aSep == '-' || aSep == '_' )
m_subpartIdSeparator = aSep;
if( aFirstId == '1' && aSep != 0 )
m_subpartFirstId = aFirstId;
}

View File

@ -206,13 +206,14 @@ class LIB_COMPONENT : public EDA_ITEM
LIB_ALIASES m_aliases; ///< List of alias object pointers associated with the
///< component.
CMP_LIBRARY* m_library; ///< Library the component belongs to if any.
static int m_subpartIdSeparator; ///< the separator char between
static int m_subpartIdSeparator; ///< the separator char between
///< the subpart id and the reference
///< like U1A ( m_subpartIdSeparator = 0 ) or U1.A or U1-A
static int m_subpartFirstId; ///< the ascii char value to calculate the subpart symbol id
static int m_subpartFirstId; ///< the ascii char value to calculate the subpart symbol id
///< from the part number: only 'A', 'a' or '1' can be used,
///< other values have no sense.
private:
void deleteAllFields();
public:
@ -659,9 +660,28 @@ public:
// Accessors to sub ref parameters
static int GetSubpartIdSeparator() { return m_subpartIdSeparator; }
static void SetSubpartIdSeparator( int aSep ) { m_subpartIdSeparator = aSep; }
/** return a reference to m_subpartIdSeparator,
* only for read/save setting functions
*/
static int* SubpartIdSeparatorPtr() { return &m_subpartIdSeparator; }
static int GetSubpartFirstId() { return m_subpartFirstId; }
static void SetSubpartFirstId( int aFirstId ) { m_subpartFirstId = aFirstId; }
/** return a reference to m_subpartFirstId, only for read/save setting functions
*/
static int* SubpartFirstIdPtr() { return &m_subpartFirstId; }
/** Set the separator char between the subpart id and the reference
* 0 (no separator) or '.' , '-' and '_'
* and the ascii char value to calculate the subpart symbol id from the part number:
* 'A' or '1' only are allowed. (to print U1.A or U1.1)
* if this is a digit, a number is used as id symbol
* Note also if the subpart symbol is a digit, the separator cannot be null.
* @param aSep = the separator symbol (0 (no separator) or '.' , '-' and '_')
* @param aFirstId = the Id of the first part ('A' or '1')
*/
static void SetSubpartIdNotation( int aSep, int aFirstId );
/**
* Set or clear the alternate body style (DeMorgan) for the component.

View File

@ -33,7 +33,6 @@
#include <wxEeschemaStruct.h>
#include <general.h>
//#include <protos.h>
#include <netlist.h>
#include <libeditframe.h>
#include <viewlib_frame.h>
@ -221,7 +220,8 @@ void DIALOG_EESCHEMA_CONFIG::OnOkClick( wxCommandEvent& event )
LIB_EDIT_FRAME::EnsureActiveLibExists();
}
m_Parent->SaveProjectFile();
m_Parent->SaveProjectSettings( false );
EndModal( wxID_OK );
}

View File

@ -51,15 +51,56 @@ void DIALOG_EESCHEMA_OPTIONS::SetUnits( const wxArrayString& units, int select )
void DIALOG_EESCHEMA_OPTIONS::SetRefIdSeparator( wxChar aSep, wxChar aFirstId)
{
if( aSep == 0 )
m_textCtrlSeparatorRefId->SetValue( _("None") );
else
m_textCtrlSeparatorRefId->SetValue( aSep );
// m_choiceSeparatorRefId displays one of
// "A" ".A" "-A" "_A" ".1" "-1" "_1" option
m_textCtrlPartFirstId->SetValue( aFirstId );
int sel = 0;
switch( aSep )
{
default:
case 0:
aFirstId = 'A'; // cannot use a number without separator
break;
case '.':
sel = 1;
break;
case '-':
sel = 2;
break;
case '_':
sel = 3;
break;
}
if( aFirstId == '1' )
sel = 4;
m_choiceSeparatorRefId->SetSelection( sel );
}
void DIALOG_EESCHEMA_OPTIONS::GetRefIdSeparator( int& aSep, int& aFirstId)
{
// m_choiceSeparatorRefId displays one of
// "A" ".A" "-A" "_A" ".1" "-1" "_1" option
aFirstId = 'A';
switch( m_choiceSeparatorRefId->GetSelection() )
{
default:
case 0: aSep = 0; break;
case 1: aSep = '.'; break;
case 2: aSep = '-'; break;
case 3: aSep = '_'; break;
case 4: aFirstId = '1'; aSep = '.'; break;
case 5: aFirstId = '1'; aSep = '-'; break;
case 6: aFirstId = '1'; aSep = '_'; break;
}
}
void DIALOG_EESCHEMA_OPTIONS::SetGridSizes( const GRIDS& grid_sizes, int grid_id )
{
wxASSERT( grid_sizes.size() > 0 );

View File

@ -76,6 +76,7 @@ public:
int GetAutoSaveInterval() const { return m_spinAutoSaveInterval->GetValue(); }
void SetRefIdSeparator( wxChar aSep, wxChar aFirstId);
void GetRefIdSeparator( int& aSep, int& aFirstId);
void SetShowGrid( bool show ) { m_checkShowGrid->SetValue( show ); }
bool GetShowGrid( void ) { return m_checkShowGrid->GetValue(); }

View File

@ -35,7 +35,7 @@ DIALOG_EESCHEMA_OPTIONS_BASE::DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wx
bSizer3 = new wxBoxSizer( wxVERTICAL );
wxFlexGridSizer* fgSizer1;
fgSizer1 = new wxFlexGridSizer( 11, 3, 0, 0 );
fgSizer1 = new wxFlexGridSizer( 10, 3, 0, 0 );
fgSizer1->AddGrowableCol( 0 );
fgSizer1->AddGrowableCol( 1 );
fgSizer1->AddGrowableCol( 2 );
@ -143,22 +143,15 @@ DIALOG_EESCHEMA_OPTIONS_BASE::DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wx
m_staticText23->Wrap( -1 );
fgSizer1->Add( m_staticText23, 0, wxALIGN_CENTER_VERTICAL|wxRIGHT|wxLEFT, 3 );
m_staticText26 = new wxStaticText( m_panel1, wxID_ANY, _("Separator ref/part id:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText26 = new wxStaticText( m_panel1, wxID_ANY, _("Part id notation:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText26->Wrap( -1 );
fgSizer1->Add( m_staticText26, 0, wxRIGHT|wxLEFT|wxALIGN_CENTER_VERTICAL, 5 );
m_textCtrlSeparatorRefId = new wxTextCtrl( m_panel1, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
fgSizer1->Add( m_textCtrlSeparatorRefId, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 3 );
fgSizer1->Add( 0, 0, 1, wxEXPAND, 5 );
m_staticText27 = new wxStaticText( m_panel1, wxID_ANY, _("Part first Id:"), wxDefaultPosition, wxDefaultSize, 0 );
m_staticText27->Wrap( -1 );
fgSizer1->Add( m_staticText27, 0, wxALL, 5 );
m_textCtrlPartFirstId = new wxTextCtrl( m_panel1, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, wxTE_READONLY );
fgSizer1->Add( m_textCtrlPartFirstId, 0, wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL, 3 );
wxString m_choiceSeparatorRefIdChoices[] = { _("A"), _(".A"), _("-A"), _("_A"), _(".1"), _("-1"), _("_1") };
int m_choiceSeparatorRefIdNChoices = sizeof( m_choiceSeparatorRefIdChoices ) / sizeof( wxString );
m_choiceSeparatorRefId = new wxChoice( m_panel1, wxID_ANY, wxDefaultPosition, wxDefaultSize, m_choiceSeparatorRefIdNChoices, m_choiceSeparatorRefIdChoices, 0 );
m_choiceSeparatorRefId->SetSelection( 0 );
fgSizer1->Add( m_choiceSeparatorRefId, 0, wxALL|wxEXPAND, 5 );
fgSizer1->Add( 0, 0, 1, wxEXPAND, 5 );

View File

@ -42,7 +42,7 @@
<property name="minimum_size"></property>
<property name="name">DIALOG_EESCHEMA_OPTIONS_BASE</property>
<property name="pos"></property>
<property name="size">432,560</property>
<property name="size">508,560</property>
<property name="style">wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER</property>
<property name="subclass">DIALOG_SHIM; dialog_shim.h</property>
<property name="title">Schematic Editor Options</property>
@ -288,7 +288,7 @@
<property name="name">fgSizer1</property>
<property name="non_flexible_grow_mode">wxFLEX_GROWMODE_SPECIFIED</property>
<property name="permission">none</property>
<property name="rows">11</property>
<property name="rows">10</property>
<property name="vgap">0</property>
<object class="sizeritem" expanded="0">
<property name="border">3</property>
@ -2455,7 +2455,7 @@
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Separator reference/part id:</property>
<property name="label">Part id notation:</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
@ -2507,10 +2507,10 @@
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">3</property>
<property name="flag">wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL</property>
<property name="border">5</property>
<property name="flag">wxALL|wxEXPAND</property>
<property name="proportion">0</property>
<object class="wxTextCtrl" expanded="1">
<object class="wxChoice" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
@ -2524,6 +2524,7 @@
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="choices">&quot;A&quot; &quot;.A&quot; &quot;-A&quot; &quot;_A&quot; &quot;.1&quot; &quot;-1&quot; &quot;_1&quot;</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
@ -2541,113 +2542,11 @@
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="maxlength"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_textCtrlSeparatorRefId</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style">wxTE_READONLY</property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="value"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnChar"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnText"></event>
<event name="OnTextEnter"></event>
<event name="OnTextMaxLen"></event>
<event name="OnTextURL"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxEXPAND</property>
<property name="proportion">1</property>
<object class="spacer" expanded="1">
<property name="height">0</property>
<property name="permission">protected</property>
<property name="width">0</property>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">5</property>
<property name="flag">wxALL</property>
<property name="proportion">0</property>
<object class="wxStaticText" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="label">Part first Id:</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_staticText27</property>
<property name="name">m_choiceSeparatorRefId</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
@ -2655,104 +2554,22 @@
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="selection">0</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style"></property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<property name="wrap">-1</property>
<event name="OnChar"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
<event name="OnKeyUp"></event>
<event name="OnKillFocus"></event>
<event name="OnLeaveWindow"></event>
<event name="OnLeftDClick"></event>
<event name="OnLeftDown"></event>
<event name="OnLeftUp"></event>
<event name="OnMiddleDClick"></event>
<event name="OnMiddleDown"></event>
<event name="OnMiddleUp"></event>
<event name="OnMotion"></event>
<event name="OnMouseEvents"></event>
<event name="OnMouseWheel"></event>
<event name="OnPaint"></event>
<event name="OnRightDClick"></event>
<event name="OnRightDown"></event>
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnUpdateUI"></event>
</object>
</object>
<object class="sizeritem" expanded="1">
<property name="border">3</property>
<property name="flag">wxALL|wxEXPAND|wxALIGN_CENTER_VERTICAL</property>
<property name="proportion">0</property>
<object class="wxTextCtrl" expanded="1">
<property name="BottomDockable">1</property>
<property name="LeftDockable">1</property>
<property name="RightDockable">1</property>
<property name="TopDockable">1</property>
<property name="aui_layer"></property>
<property name="aui_name"></property>
<property name="aui_position"></property>
<property name="aui_row"></property>
<property name="best_size"></property>
<property name="bg"></property>
<property name="caption"></property>
<property name="caption_visible">1</property>
<property name="center_pane">0</property>
<property name="close_button">1</property>
<property name="context_help"></property>
<property name="context_menu">1</property>
<property name="default_pane">0</property>
<property name="dock">Dock</property>
<property name="dock_fixed">0</property>
<property name="docking">Left</property>
<property name="enabled">1</property>
<property name="fg"></property>
<property name="floatable">1</property>
<property name="font"></property>
<property name="gripper">0</property>
<property name="hidden">0</property>
<property name="id">wxID_ANY</property>
<property name="max_size"></property>
<property name="maximize_button">0</property>
<property name="maximum_size"></property>
<property name="maxlength"></property>
<property name="min_size"></property>
<property name="minimize_button">0</property>
<property name="minimum_size"></property>
<property name="moveable">1</property>
<property name="name">m_textCtrlPartFirstId</property>
<property name="pane_border">1</property>
<property name="pane_position"></property>
<property name="pane_size"></property>
<property name="permission">protected</property>
<property name="pin_button">1</property>
<property name="pos"></property>
<property name="resize">Resizable</property>
<property name="show">1</property>
<property name="size"></property>
<property name="style">wxTE_READONLY</property>
<property name="subclass"></property>
<property name="toolbar_pane">0</property>
<property name="tooltip"></property>
<property name="validator_data_type"></property>
<property name="validator_style">wxFILTER_NONE</property>
<property name="validator_type">wxDefaultValidator</property>
<property name="validator_variable"></property>
<property name="value"></property>
<property name="window_extra_style"></property>
<property name="window_name"></property>
<property name="window_style"></property>
<event name="OnChar"></event>
<event name="OnChoice"></event>
<event name="OnEnterWindow"></event>
<event name="OnEraseBackground"></event>
<event name="OnKeyDown"></event>
@ -2774,10 +2591,6 @@
<event name="OnRightUp"></event>
<event name="OnSetFocus"></event>
<event name="OnSize"></event>
<event name="OnText"></event>
<event name="OnTextEnter"></event>
<event name="OnTextMaxLen"></event>
<event name="OnTextURL"></event>
<event name="OnUpdateUI"></event>
</object>
</object>

View File

@ -22,7 +22,6 @@ class DIALOG_SHIM;
#include <wx/settings.h>
#include <wx/choice.h>
#include <wx/spinctrl.h>
#include <wx/textctrl.h>
#include <wx/sizer.h>
#include <wx/statline.h>
#include <wx/checkbox.h>
@ -30,6 +29,7 @@ class DIALOG_SHIM;
#include <wx/bitmap.h>
#include <wx/image.h>
#include <wx/icon.h>
#include <wx/textctrl.h>
#include <wx/notebook.h>
#include <wx/button.h>
#include <wx/dialog.h>
@ -84,9 +84,7 @@ class DIALOG_EESCHEMA_OPTIONS_BASE : public DIALOG_SHIM
wxSpinCtrl* m_spinAutoSaveInterval;
wxStaticText* m_staticText23;
wxStaticText* m_staticText26;
wxTextCtrl* m_textCtrlSeparatorRefId;
wxStaticText* m_staticText27;
wxTextCtrl* m_textCtrlPartFirstId;
wxChoice* m_choiceSeparatorRefId;
wxStaticLine* m_staticline1;
wxCheckBox* m_checkShowGrid;
wxCheckBox* m_checkShowHiddenPins;
@ -125,7 +123,7 @@ class DIALOG_EESCHEMA_OPTIONS_BASE : public DIALOG_SHIM
public:
DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Schematic Editor Options"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 432,560 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
DIALOG_EESCHEMA_OPTIONS_BASE( wxWindow* parent, wxWindowID id = wxID_ANY, const wxString& title = _("Schematic Editor Options"), const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( 508,560 ), long style = wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER );
~DIALOG_EESCHEMA_OPTIONS_BASE();
};

View File

@ -81,11 +81,11 @@ enum SchematicFindReplaceFlags
/**
* Definition FR_MASK_NON_SEARCH_FLAGS
* Definition FR_MASK_NON_COMPARE_FLAGS
* is used to mask find/replace flag bits that do not effect the search results.
*/
#define FR_MASK_NON_SEARCH_FLAGS ~( wxFR_DOWN | FR_SEARCH_WRAP | FR_NO_WARP_CURSOR | \
FR_REPLACE_ITEM_FOUND )
#define FR_MASK_NON_COMPARE_FLAGS ~( wxFR_DOWN | FR_SEARCH_WRAP | FR_NO_WARP_CURSOR | \
FR_REPLACE_ITEM_FOUND )
/**
@ -122,29 +122,30 @@ public:
/**
* Function ChangesSearch
* tests \a aFindReplaceData to see if it would result in a change in the search
* results.
* Function ChangesCompare
* tests \a aFindReplaceData to see if it would result in a change in the search string
* comparison results.
*
* @param aFindReplaceData A reference to a #SCH_FIND_REPLACE_DATA object to compare
* against.
* @return True if \a aFindReplaceData would result in a search and/or replace change,
* otherwise false.
*/
bool ChangesSearch( SCH_FIND_REPLACE_DATA& aFindReplaceData )
bool ChangesCompare( SCH_FIND_REPLACE_DATA& aFindReplaceData )
{
return ( (GetFindString() != aFindReplaceData.GetFindString())
|| (GetSearchFlags() != aFindReplaceData.GetSearchFlags()) );
|| (GetCompareFlags() != aFindReplaceData.GetCompareFlags()) );
}
bool IsReplacing() const { return (GetFlags() & FR_SEARCH_REPLACE) != 0; }
bool IsWrapping() const { return (GetFlags() & FR_SEARCH_WRAP) != 0; }
private:
/**
* Function GetSearchFlags
* @return The flags that only effect the search result.
*/
wxUint32 GetSearchFlags() const { return GetFlags() & FR_MASK_NON_SEARCH_FLAGS; }
wxUint32 GetCompareFlags() const { return GetFlags() & FR_MASK_NON_COMPARE_FLAGS; }
};

View File

@ -123,21 +123,6 @@ bool EDA_APP::OnInit()
for( int ii = 0; ii < NB_SCH_LAYERS; ii++ )
SetLayerColor( DARKGRAY, ii );
#ifdef KICAD_GOST
// These options will be user configurable in the future,
// and not specific to GOST users
// the separator char between the subpart id and the reference
// 0 (no separator) or '.' or some other character
LIB_COMPONENT::SetSubpartIdSeparator( '.' );
// the ascii char value to calculate the subpart symbol id from the part number:
// 'A' or '1' usually. (to print U1.A or U1.1)
// if this is a digit, a number is used as id symbol
LIB_COMPONENT::SetSubpartFirstId( '1' );
// Default diameter of the junction symbol
SCH_JUNCTION::SetSymbolSize( 32 );
#endif
// read current setup and reopen last directory if no filename to open in
// command line
bool reopenLastUsedDirectory = argc == 1;

View File

@ -39,6 +39,7 @@
#include <hotkeys.h>
#include <sch_sheet.h>
#include <class_libentry.h>
#include <worksheet_shape_builder.h>
#include <dialog_hotkeys_editor.h>
@ -139,7 +140,7 @@ void LIB_EDIT_FRAME::Process_Config( wxCommandEvent& event )
switch( id )
{
case ID_CONFIG_SAVE:
schFrame->SaveProjectFile();
schFrame->SaveProjectSettings( false );
break;
case ID_CONFIG_READ:
@ -207,7 +208,7 @@ void SCH_EDIT_FRAME::Process_Config( wxCommandEvent& event )
switch( id )
{
case ID_CONFIG_SAVE:
SaveProjectFile();
SaveProjectSettings( false );
break;
case ID_CONFIG_READ:
@ -303,6 +304,15 @@ void SCH_EDIT_FRAME::OnSetOptions( wxCommandEvent& event )
GetScreen()->SetGrid( grid_list[ (size_t) dlg.GetGridSelection() ].m_Size );
int sep, firstId;
dlg.GetRefIdSeparator( sep, firstId);
if( sep != (int)LIB_COMPONENT::GetSubpartIdSeparator() ||
firstId != (int)LIB_COMPONENT::GetSubpartFirstId() )
{
LIB_COMPONENT::SetSubpartIdNotation( sep, firstId );
SaveProjectSettings( true );
}
SetDefaultBusThickness( dlg.GetBusWidth() );
SetDefaultLineThickness( dlg.GetLineWidth() );
SetDefaultLabelSize( dlg.GetTextSize() );
@ -344,11 +354,21 @@ void SCH_EDIT_FRAME::OnSetOptions( wxCommandEvent& event )
}
PARAM_CFG_ARRAY& SCH_EDIT_FRAME::GetProjectFileParameters()
PARAM_CFG_ARRAY& SCH_EDIT_FRAME::GetProjectFileParametersList()
{
if( !m_projectFileParams.empty() )
return m_projectFileParams;
m_projectFileParams.push_back( new PARAM_CFG_FILENAME( wxT( "PageLayoutDescrFile" ),
&BASE_SCREEN::m_PageLayoutDescrFileName ) );
m_projectFileParams.push_back( new PARAM_CFG_INT( wxT( "SubpartIdSeparator" ),
LIB_COMPONENT::SubpartIdSeparatorPtr(),
IsGOST() ? '.' : 0, 0, 126 ) );
m_projectFileParams.push_back( new PARAM_CFG_INT( wxT( "SubpartFirstId" ),
LIB_COMPONENT::SubpartFirstIdPtr(),
IsGOST() ? '1' : 'A', '1', 'z' ) );
m_projectFileParams.push_back( new PARAM_CFG_FILENAME( wxT( "LibDir" ),
&m_userLibraryPath ) );
m_projectFileParams.push_back( new PARAM_CFG_LIBNAME_LIST( wxT( "LibName" ),
@ -395,13 +415,25 @@ bool SCH_EDIT_FRAME::LoadProjectFile( const wxString& aFileName, bool aForceRere
wxGetApp().RemoveLibraryPath( m_userLibraryPath );
if( !wxGetApp().ReadProjectConfig( fn.GetFullPath(), GROUP,
GetProjectFileParameters(),
GetProjectFileParametersList(),
!aForceReread ) )
{
m_componentLibFiles = liblist_tmp;
IsRead = false;
}
// Verify some values, because the config file can be edited by hand,
// and have bad values:
LIB_COMPONENT::SetSubpartIdNotation( LIB_COMPONENT::GetSubpartIdSeparator(),
LIB_COMPONENT::GetSubpartFirstId() );
// Load the page layout decr file, from the filename stored in
// BASE_SCREEN::m_PageLayoutDescrFileName, read in config project file
// If empty, the default descr is loaded
WORKSHEET_LAYOUT& pglayout = WORKSHEET_LAYOUT::GetTheInstance();
pglayout.SetPageLayout(BASE_SCREEN::m_PageLayoutDescrFileName);
// Load libraries.
// User library path takes precedent over default library search paths.
wxGetApp().InsertLibraryPath( m_userLibraryPath, 1 );
@ -418,7 +450,7 @@ bool SCH_EDIT_FRAME::LoadProjectFile( const wxString& aFileName, bool aForceRere
}
void SCH_EDIT_FRAME::SaveProjectFile()
void SCH_EDIT_FRAME::SaveProjectSettings( bool aAskForSave )
{
wxFileName fn;
@ -428,7 +460,21 @@ void SCH_EDIT_FRAME::SaveProjectFile()
if( !IsWritable( fn ) )
return;
wxGetApp().WriteProjectConfig( fn.GetFullPath(), GROUP, GetProjectFileParameters() );
if( aAskForSave )
{
wxFileDialog dlg( this, _( "Save Project File" ),
fn.GetPath(), fn.GetFullName(),
ProjectFileWildcard, wxFD_SAVE | wxFD_CHANGE_DIR );
if( dlg.ShowModal() == wxID_CANCEL )
return;
wxGetApp().WriteProjectConfig( dlg.GetPath(), GROUP,
GetProjectFileParametersList() );
}
else
wxGetApp().WriteProjectConfig( fn.GetFullPath(), GROUP,
GetProjectFileParametersList() );
}
static const wxString DefaultBusWidthEntry( wxT( "DefaultBusWidth" ) );

View File

@ -338,7 +338,7 @@ bool SCH_COLLECTOR::IsDraggableJunction() const
}
bool SCH_FIND_COLLECTOR::atEnd() const
bool SCH_FIND_COLLECTOR::PassedEnd() const
{
bool retv = false;
@ -351,12 +351,12 @@ bool SCH_FIND_COLLECTOR::atEnd() const
{
if( flags & wxFR_DOWN )
{
if( m_foundIndex >= (GetCount() - 1) )
if( m_foundIndex >= GetCount() )
retv = true;
}
else
{
if( m_foundIndex == 0 )
if( m_foundIndex < 0 )
retv = true;
}
}
@ -390,21 +390,15 @@ void SCH_FIND_COLLECTOR::UpdateIndex()
if( flags & wxFR_DOWN )
{
if( !(flags & FR_SEARCH_WRAP) && (m_foundIndex == (GetCount() - 1)) )
return;
m_foundIndex += 1;
if( m_foundIndex < GetCount() )
m_foundIndex += 1;
if( (m_foundIndex >= GetCount()) && (flags & FR_SEARCH_WRAP) )
m_foundIndex = 0;
}
else
{
if( !(flags & FR_SEARCH_WRAP) && (m_foundIndex == 0) )
return;
m_foundIndex -= 1;
if( m_foundIndex >= 0 )
m_foundIndex -= 1;
if( (m_foundIndex < 0) && (flags & FR_SEARCH_WRAP) )
m_foundIndex = GetCount() - 1;
}
@ -452,7 +446,7 @@ wxString SCH_FIND_COLLECTOR::GetText()
EDA_ITEM* SCH_FIND_COLLECTOR::GetItem( SCH_FIND_COLLECTOR_DATA& aData )
{
if( atEnd() )
if( PassedEnd() )
return NULL;
aData = m_data[ m_foundIndex ];
@ -462,7 +456,7 @@ EDA_ITEM* SCH_FIND_COLLECTOR::GetItem( SCH_FIND_COLLECTOR_DATA& aData )
bool SCH_FIND_COLLECTOR::ReplaceItem()
{
if( atEnd() )
if( PassedEnd() )
return false;
wxCHECK_MSG( IsValidIndex( m_foundIndex ), false,
@ -516,7 +510,7 @@ SEARCH_RESULT SCH_FIND_COLLECTOR::Inspect( EDA_ITEM* aItem, const void* aTestDat
void SCH_FIND_COLLECTOR::Collect( SCH_FIND_REPLACE_DATA& aFindReplaceData,
SCH_SHEET_PATH* aSheetPath )
{
if( !m_findReplaceData.ChangesSearch( aFindReplaceData ) && !m_List.empty() && !m_forceSearch )
if( !IsSearchRequired( aFindReplaceData ) && !m_List.empty() && !m_forceSearch )
return;
m_findReplaceData = aFindReplaceData;

View File

@ -238,13 +238,13 @@ class SCH_FIND_COLLECTOR : public COLLECTOR
bool m_forceSearch;
/**
* Function atEnd
* tests if #m_foundIndex is at the end of the list give the current find/replace
* criterial in #m_findReplaceData.
* Function PassedEnd
* tests if #m_foundIndex is beyond the end of the list give the current
* find/replace criterial in #m_findReplaceData.
*
* @return True if #m_foundIndex is at the end of the found item list.
* @return True if #m_foundIndex has crossed the end of the found item list.
*/
bool atEnd() const;
bool PassedEnd() const;
/**
* Function dump
@ -296,7 +296,8 @@ public:
*/
bool IsSearchRequired( SCH_FIND_REPLACE_DATA& aFindReplaceData )
{
return m_findReplaceData.ChangesSearch( aFindReplaceData ) || m_forceSearch;
return m_findReplaceData.ChangesCompare( aFindReplaceData ) || m_forceSearch ||
(m_findReplaceData.IsWrapping() != aFindReplaceData.IsWrapping());
}
/**

View File

@ -390,7 +390,8 @@ bool SCH_FIELD::Matches( wxFindReplaceData& aSearchData, void* aAuxData, wxPoint
bool match;
wxString text = GetFullyQualifiedText();
if( ((m_id > VALUE) && !(aSearchData.GetFlags() & FR_SEARCH_ALL_FIELDS))
// User defined fields have an ID of -1.
if( ((m_id > VALUE || m_id < REFERENCE) && !(aSearchData.GetFlags() & FR_SEARCH_ALL_FIELDS))
|| ((m_id == REFERENCE) && !(aSearchData.GetFlags() & FR_REPLACE_REFERENCES)) )
return false;

View File

@ -100,8 +100,7 @@ static GRID_TYPE SchematicGridList[] = {
#define SCHEMATIC_GRID_LIST_CNT ( sizeof( SchematicGridList ) / sizeof( GRID_TYPE ) )
SCH_SCREEN::SCH_SCREEN() :
BASE_SCREEN( SCH_SCREEN_T ),
SCH_SCREEN::SCH_SCREEN() : BASE_SCREEN( SCH_SCREEN_T ),
m_paper( wxT( "A4" ), IsGOST() )
{
size_t i;

View File

@ -830,7 +830,7 @@ void SCH_EDIT_FRAME::OnPrint( wxCommandEvent& event )
if( fn.GetFullName() != default_name )
{
fn.SetExt( ProjectFileExtension );
wxGetApp().WriteProjectConfig( fn.GetFullPath(), GROUP, GetProjectFileParameters() );
wxGetApp().WriteProjectConfig( fn.GetFullPath(), GROUP, GetProjectFileParametersList() );
}
}

View File

@ -44,7 +44,8 @@ enum EDA_APP_T {
APP_PCBNEW_T,
APP_CVPCB_T,
APP_GERBVIEW_T,
APP_KICAD_T
APP_KICAD_T,
APP_PL_EDITOR_T
};
class wxConfigBase;

View File

@ -47,6 +47,104 @@ extern std::ostream& operator <<( std::ostream& out, const wxPoint& pt );
#endif
/**
* Enum KICAD_T
* is the set of class identification values, stored in EDA_ITEM::m_StructType
*/
enum KICAD_T {
NOT_USED = -1, ///< the 3d code uses this value
EOT = 0, ///< search types array terminator (End Of Types)
TYPE_NOT_INIT = 0,
PCB_T,
SCREEN_T, ///< not really an item, used to identify a screen
// Items in pcb
PCB_MODULE_T, ///< class MODULE, a footprint
PCB_PAD_T, ///< class D_PAD, a pad in a footprint
PCB_LINE_T, ///< class DRAWSEGMENT, a segment not on copper layers
PCB_TEXT_T, ///< class TEXTE_PCB, text on a layer
PCB_MODULE_TEXT_T, ///< class TEXTE_MODULE, text in a footprint
PCB_MODULE_EDGE_T, ///< class EDGE_MODULE, a footprint edge
PCB_TRACE_T, ///< class TRACKE, a track segment (segment on a copper layer)
PCB_VIA_T, ///< class SEGVIA, a via (like a track segment on a copper layer)
PCB_ZONE_T, ///< class SEGZONE, a segment used to fill a zone area (segment on a
///< copper layer)
PCB_MARKER_T, ///< class MARKER_PCB, a marker used to show something
PCB_DIMENSION_T, ///< class DIMENSION, a dimension (graphic item)
PCB_TARGET_T, ///< class PCB_TARGET, a target (graphic item)
PCB_ZONE_AREA_T, ///< class ZONE_CONTAINER, a zone area
PCB_ITEM_LIST_T, ///< class BOARD_ITEM_LIST, a list of board items
// Schematic draw Items. The order of these items effects the sort order.
// It is currently ordered to mimic the old Eeschema locate behavior where
// the smallest item is the selected item.
SCH_MARKER_T,
SCH_JUNCTION_T,
SCH_NO_CONNECT_T,
SCH_BUS_WIRE_ENTRY_T,
SCH_BUS_BUS_ENTRY_T,
SCH_LINE_T,
SCH_BITMAP_T,
SCH_TEXT_T,
SCH_LABEL_T,
SCH_GLOBAL_LABEL_T,
SCH_HIERARCHICAL_LABEL_T,
SCH_FIELD_T,
SCH_COMPONENT_T,
SCH_SHEET_PIN_T,
SCH_SHEET_T,
// Be prudent with these 3 types:
// they should be used only to locate a specific field type
// among SCH_FIELD_T items types
SCH_FIELD_LOCATE_REFERENCE_T,
SCH_FIELD_LOCATE_VALUE_T,
SCH_FIELD_LOCATE_FOOTPRINT_T,
// General
SCH_SCREEN_T,
/*
* Draw items in library component.
*
* The order of these items effects the sort order for items inside the
* "DRAW/ENDDRAW" section of the component definition in a library file.
* If you add a new draw item, type, please make sure you add it so the
* sort order is logical.
*/
LIB_COMPONENT_T,
LIB_ALIAS_T,
LIB_ARC_T,
LIB_CIRCLE_T,
LIB_TEXT_T,
LIB_RECTANGLE_T,
LIB_POLYLINE_T,
LIB_BEZIER_T,
LIB_PIN_T,
/*
* Fields are not saved inside the "DRAW/ENDDRAW". Add new draw item
* types before this line.
*/
LIB_FIELD_T,
/*
* For GerbView: items type:
*/
TYPE_GERBER_DRAW_ITEM,
/*
* for Pl_Editor, in undo/redo commands
*/
TYPE_PL_EDITOR_LAYOUT,
// End value
MAX_STRUCT_TYPE_ID
};
/**
* Enum FILL_T
* is the set of fill types used in plotting or drawing enclosed areas.

View File

@ -37,6 +37,16 @@
#include <common.h>
#include <convert_to_biu.h>
/** Helper function Double2Str to print a float number without
* using scientific notation and no trailing 0
* We want to avoid scientific notation in S-expr files (not easy to read)
* for floating numbers.
* So we cannot always just use the %g or the %f format to print a fp number
* this helper function uses the %f format when needed, or %g when %f is
* not well working and then removes trailing 0
*/
std::string Double2Str( double aValue );
/**
* Function StripTrailingZeros
* Remove trailing 0 from a string containing a converted float number.

View File

@ -74,7 +74,6 @@ EXTERN_BITMAP( add_text_xpm )
EXTERN_BITMAP( add_tracks_xpm )
EXTERN_BITMAP( add_zone_cutout_xpm )
EXTERN_BITMAP( add_zone_xpm )
EXTERN_BITMAP( icon_pcbnew_xpm )
EXTERN_BITMAP( anchor_xpm )
EXTERN_BITMAP( annotate_down_right_xpm )
EXTERN_BITMAP( annotate_right_down_xpm )
@ -209,10 +208,12 @@ EXTERN_BITMAP( icon_gerbview_small_xpm )
EXTERN_BITMAP( icon_gerbview_xpm )
EXTERN_BITMAP( icon_kicad_xpm )
EXTERN_BITMAP( icon_modedit_xpm )
EXTERN_BITMAP( icon_pcbnew_xpm )
EXTERN_BITMAP( icon_txt_xpm )
EXTERN_BITMAP( icon_3d_xpm )
EXTERN_BITMAP( icon_bitmap2component_xpm )
EXTERN_BITMAP( icon_pcbcalculator_xpm )
EXTERN_BITMAP( icon_pagelayout_editor_xpm )
EXTERN_BITMAP( image_xpm )
EXTERN_BITMAP( import_cmp_from_lib_xpm )
EXTERN_BITMAP( import_footprint_names_xpm )
@ -354,6 +355,12 @@ EXTERN_BITMAP( pad_sketch_xpm )
EXTERN_BITMAP( pad_xpm )
EXTERN_BITMAP( pad_dimensions_xpm )
EXTERN_BITMAP( pads_mask_layers_xpm )
EXTERN_BITMAP( pagelayout_load_xpm )
EXTERN_BITMAP( pagelayout_load_default_xpm )
EXTERN_BITMAP( pagelayout_new_xpm )
EXTERN_BITMAP( pagelayout_recent_xpm )
EXTERN_BITMAP( pagelayout_normal_view_mode_xpm )
EXTERN_BITMAP( pagelayout_special_view_mode_xpm )
EXTERN_BITMAP( palette_xpm )
EXTERN_BITMAP( part_properties_xpm )
EXTERN_BITMAP( paste_xpm )

View File

@ -95,10 +95,12 @@ private:
public:
static wxString m_PageLayoutDescrFileName; ///< the name of the page layout descr file,
///< or emty to used the default pagelayout
wxPoint m_DrawOrg; ///< offsets for drawing the circuit on the screen
wxPoint m_O_Curseur; /* Relative Screen cursor coordinate (on grid)
* in user units. (coordinates from last reset position)*/
wxPoint m_O_Curseur; ///< Relative Screen cursor coordinate (on grid)
///< in user units. (coordinates from last reset position)
// Scrollbars management:
int m_ScrollPixelsPerUnitX; ///< Pixels per scroll unit in the horizontal direction.

View File

@ -0,0 +1,458 @@
/**
* @file class_worksheet_dataitem.h
* @brief description of graphic items and texts to build a title block
*/
#ifndef CLASS_WORKSHEET_DATA_ITEM_H
#define CLASS_WORKSHEET_DATA_ITEM_H
#include <math/vector2d.h>
#include <eda_text.h>
class WS_DRAW_ITEM_TEXT; // Forward declaration
#define TB_DEFAULT_TEXTSIZE 1.5 // default worksheet text size in mm
// Text attributes set in m_flags (ORed bits)
#define USE_BOLD 1 // has meaning for texts
#define USE_THICK_LINE 1 // equivalent to bold for lines
#define USE_ITALIC (1<<1) // has meaning for texts
#define USE_ALT_COLOR (1<<2)
#define SELECTED_STATE (1<<3) // When set, use the hight light color to draw item
#define LOCATE_STARTPOINT (1<<4) // Used in locate function:set by locate function
// if the start point is located
#define LOCATE_ENDPOINT (1<<5) // Used in locate function:set by locate function
// if the end point is located
#define PAGE1OPTION (3<<6) // flag to manage items drawn or not drawn only
// on page 1: NONE = item on all pages
#define PAGE1OPTION_NONE (0<<6) // NONE = item on all pages
#define PAGE1OPTION_PAGE1ONLY (1<<6) // = item only on page 1
#define PAGE1OPTION_NOTONPAGE1 (2<<6) // = item on all pages but page 1
// A coordinate is relative to a page corner.
// Any of the 4 corners can be a reference.
// The default is the right bottom corner
enum corner_anchor
{
RB_CORNER, // right bottom corner
RT_CORNER, // right top corner
LB_CORNER, // left bottom corner
LT_CORNER, // left top corner
};
// a coordinate point
// The position is always relative to the corner anchor
// Note the coordinate is from the anchor point
// to the opposite corner.
class POINT_COORD
{
public:
DPOINT m_Pos;
int m_Anchor;
public:
POINT_COORD() { m_Anchor = RB_CORNER; }
POINT_COORD( DPOINT aPos, enum corner_anchor aAnchor = RB_CORNER )
{
m_Pos = aPos;
m_Anchor = aAnchor;
}
};
// Work sheet structure type definitions.
// Basic items are:
// * segment and rect (defined by 2 points)
// * text (defined by a coordinate), the text and its justifications
// * poly polygon defined by a coordinate, and a set of list of corners
// ( because we use it for logos, there are more than one polygon
// in this description
class WORKSHEET_DATAITEM
{
public:
enum WS_ItemType {
WS_TEXT,
WS_SEGMENT,
WS_RECT,
WS_POLYPOLYGON
};
protected:
WS_ItemType m_type;
int m_flags;
public:
wxString m_Name; // a item name used in page layout
// editor to identify items
wxString m_Info; // a comment, only useful in page
// layout editor
POINT_COORD m_Pos;
POINT_COORD m_End;
double m_LineWidth;
int m_RepeatCount; // repeat count for duplicate items
DPOINT m_IncrementVector; // For duplicate items: move vector
// for position increment
int m_IncrementLabel;
// These variables are static, because these values are common to all
// instances of WORKSHEET_DATAITEM.
// They are default or common values.
static double m_WSunits2Iu; // conversion factor between
// ws units (mils) and draw/plot units
static DPOINT m_RB_Corner; // cordinates of the right bottom corner
// (ws units)
static DPOINT m_LT_Corner; // cordinates of the left top corner
// (ws units)
static double m_DefaultLineWidth; // Default line width,
// when not defined inside a line
// or a rect
static DSIZE m_DefaultTextSize; // Default text size,
// when not defined inside a tbtext
static double m_DefaultTextThickness;// Default text thickness,
// when not defined inside a tbtext
static bool m_SpecialMode; // Used in page layout editor
// When set to true, base texts
// instead of full texts are displayed
static EDA_COLOR_T m_Color; // the default color to draw items
static EDA_COLOR_T m_AltColor; // an alternate color to draw items
static EDA_COLOR_T m_SelectedColor; // the color to draw selected items
// (used in page layout editor
public:
WORKSHEET_DATAITEM( WS_ItemType aType );
virtual ~WORKSHEET_DATAITEM() {}
void SetStart( double aPosx, double aPosy, enum corner_anchor aAnchor = RB_CORNER )
{
m_Pos.m_Pos.x = aPosx;
m_Pos.m_Pos.y = aPosy;
m_Pos.m_Anchor = aAnchor;
}
void SetEnd( double aPosx, double aPosy, enum corner_anchor aAnchor = RB_CORNER )
{
m_End.m_Pos.x = aPosx;
m_End.m_Pos.y = aPosy;
m_End.m_Anchor = aAnchor;
}
// Accessors:
WS_ItemType GetType() const { return m_type; }
int GetFlags() const { return m_flags; }
void SetFlags( int aMask ) { m_flags |= aMask; }
void ClearFlags( int aMask ) { m_flags &= ~aMask; }
/**
* @return true if the item has a end point (segment; rect)
* of false (text, polugon)
*/
virtual bool HasEndPoint() { return true; }
/**
* @return 0 if the item has no specific option for page 1
* 1 if the item is only on page 1
* -1 if the item is not on page 1
*/
int GetPage1Option();
/**
* Set the option for page 1
* @param aChoice = 0 if the item has no specific option for page 1
* > 0 if the item is only on page 1
* < 0 if the item is not on page 1
*/
void SetPage1Option( int aChoice );
// Coordinate handling
const wxPoint GetStartPosUi( int ii = 0 ) const;
const wxPoint GetEndPosUi( int ii = 0 ) const;
const DPOINT GetStartPos( int ii = 0 ) const;
const DPOINT GetEndPos( int ii = 0 ) const;
virtual int GetPenSizeUi()
{
if( m_LineWidth )
return KiROUND( m_LineWidth * m_WSunits2Iu );
else
return KiROUND( m_DefaultLineWidth * m_WSunits2Iu );
}
static int GetMarkerSizeUi()
{
return KiROUND( 0.5 * m_WSunits2Iu );
}
/**
* move item to a new position
* @param aPosition = the new position of item, in mm
*/
void MoveTo( DPOINT aPosition );
/**
* move item to a new position
* @param aPosition = the new position of the starting point in graphic units
*/
void MoveToUi( wxPoint aPosition );
/**
* move the starting point of the item to a new position
* @param aPosition = the new position of the starting point, in mm
*/
void MoveStartPointTo( DPOINT aPosition );
/**
* move the starting point of the item to a new position
* @param aPosition = the new position of item in graphic units
*/
void MoveStartPointToUi( wxPoint aPosition );
/**
* move the ending point of the item to a new position
* has meaning only for items defined by 2 points
* (segments and rectangles)
* @param aPosition = the new position of the ending point, in mm
*/
void MoveEndPointTo( DPOINT aPosition );
/**
* move the ending point of the item to a new position
* has meaning only for items defined by 2 points
* (segments and rectangles)
* @param aPosition = the new position of the ending point in graphic units
*/
void MoveEndPointToUi( wxPoint aPosition );
/**
* @return true if the item is inside the rectangle defined by the
* 4 corners, false otherwise.
*/
virtual bool IsInsidePage( int ii ) const;
const wxString GetClassName() const;
/**
* @return true if the selected state on ON
*/
bool IsSelected() { return (m_flags & SELECTED_STATE) != 0; }
/**
* Function SetSelected
* Toggles on/off the selected flag (used in edition functions
* @param aState = the flag value
*/
void SetSelected( bool aState )
{
if( aState )
m_flags |= SELECTED_STATE;
else
m_flags &= ~SELECTED_STATE;
}
bool UseAltColor() {return m_flags & USE_ALT_COLOR; }
EDA_COLOR_T GetItemColor()
{
if( IsSelected() )
return m_SelectedColor;
if( UseAltColor() )
return m_AltColor;
return m_Color;
}
};
class WORKSHEET_DATAITEM_POLYPOLYGON : public WORKSHEET_DATAITEM
{
public:
double m_Orient; // Orientation in degrees
std::vector<DPOINT> m_Corners; // corner list
private:
std::vector<unsigned> m_polyIndexEnd; // index of the last point of each polygon
DPOINT m_minCoord; // min coord of corners, relative to m_Pos
DPOINT m_maxCoord; // max coord of corners, relative to m_Pos
public:
WORKSHEET_DATAITEM_POLYPOLYGON( );
virtual int GetPenSizeUi()
{
return KiROUND( m_LineWidth * m_WSunits2Iu );
}
/**
* @return false (no end point)
*/
virtual bool HasEndPoint() { return false; };
/**
* add a corner in corner list
* @param aCorner: the item to append
*/
void AppendCorner( const DPOINT& aCorner )
{
m_Corners.push_back( aCorner );
}
/**
* Closes the current contour, by storing the index of the last corner
* of the current polygon in m_polyIndexEnd.
*/
void CloseContour()
{
m_polyIndexEnd.push_back( m_Corners.size() -1 );
}
/**
* @return the count of contours in the poly polygon
*/
int GetPolyCount() const { return (int) m_polyIndexEnd.size(); }
/**
* @return the index of the first corner of the contour aCountour
* @param aContour = the index of the contour
*/
unsigned GetPolyIndexStart( unsigned aContour) const
{
if( aContour == 0 )
return 0;
else
return m_polyIndexEnd[aContour-1] + 1;
}
/**
* @return the index of the last corner of the contour aCountour
* @param aContour = the index of the contour
*/
unsigned GetPolyIndexEnd( unsigned aContour) const
{
return m_polyIndexEnd[aContour];
}
/**
* @return the coordinate (in mm) of the corner aIdx,
* for the repeated item aRepeat
*/
const DPOINT GetCornerPosition( unsigned aIdx, int aRepeat = 0 ) const;
/**
* @return the coordinate (in draw/plot units) of the corner aIdx,
* for the repeated item aRepeat
*/
const wxPoint GetCornerPositionUi( unsigned aIdx, int aRepeat = 0 ) const;
/**
* calculate the bounding box of the set polygons
*/
void SetBoundingBox();
bool IsInsidePage( int ii ) const;
};
class WORKSHEET_DATAITEM_TEXT : public WORKSHEET_DATAITEM
{
public:
wxString m_TextBase; // The basic text, with format symbols
wxString m_FullText; // The expanded text, shown on screen
double m_Orient; // Orientation in degrees
enum EDA_TEXT_HJUSTIFY_T m_Hjustify;
enum EDA_TEXT_VJUSTIFY_T m_Vjustify;
DSIZE m_TextSize;
DSIZE m_BoundingBoxSize; // When not null, this is the max
// size of the full text.
// the text size will be modified
// to keep the full text insite this
// bound.
DSIZE m_ConstrainedTextSize;// Actual text size, if constrained by
// the m_BoundingBoxSize constraint
public:
WORKSHEET_DATAITEM_TEXT( const wxChar* aTextBase );
/**
* @return false (no end point)
*/
virtual bool HasEndPoint() { return false; };
virtual int GetPenSizeUi()
{
if( m_LineWidth )
return KiROUND( m_LineWidth * m_WSunits2Iu );
else
return KiROUND( m_DefaultTextThickness * m_WSunits2Iu );
}
/**
* move item to a new position
* @param aPosition = the new position of item
*/
void MoveTo( DPOINT aPosition );
/**
* transfert the text justification and orientation
* to aGText
*/
void TransfertSetupToGraphicText( WS_DRAW_ITEM_TEXT* aGText );
/**
* Try to build text wihich is an increment of m_TextBase
* has meaning only if m_TextBase is a basic text (one char)
* If the basic char is a digit, build a number
* If the basic char is a letter, use the letter with ascii code
* aIncr + (basic char ascc code)
* @param aIncr = the increment value
* return the incremented label in m_FullText
*/
void IncrementLabel( int aIncr );
/**
* Calculates m_ConstrainedTextSize from m_TextSize
* to keep the X size and the full Y size of the text
* smaller than m_BoundingBoxSize
* if m_BoundingBoxSize.x or m_BoundingBoxSize.y > 0
* if m_BoundingBoxSize.x or m_BoundingBoxSize.y == 0
* the corresponding text size is not constrained
*/
void SetConstrainedTextSize();
/**
* @return true is a bold font should be selected
*/
bool IsBold() { return (m_flags & USE_BOLD) != 0; }
/**
* Function SetBold
* Toggles on/off the bold option flag
* @param aState = the bold option value
*/
void SetBold( bool aState )
{
if( aState )
m_flags |= USE_BOLD;
else
m_flags &= ~USE_BOLD;
}
/**
* @return true is an italic font should be selected
*/
bool IsItalic() const { return (m_flags & USE_ITALIC) != 0; }
/**
* Function SetItalic
* Toggles on/off the italic option flag
* @param aState = the italic option value
*/
void SetItalic( bool aState )
{
if( aState )
m_flags |= USE_ITALIC;
else
m_flags &= ~USE_ITALIC;
}
};
#endif // CLASS_WORKSHEET_DATA_ITEM_H

View File

@ -83,6 +83,7 @@ enum pseudokeys {
#define GERBVIEW_EXE wxT( "gerbview.exe" )
#define BITMAPCONVERTER_EXE wxT( "bitmap2component.exe" )
#define PCB_CALCULATOR_EXE wxT( "pcb_calculator.exe" )
#define PL_EDITOR_EXE wxT( "pl_editor.exe" )
#else
#ifndef __WXMAC__
#define CVPCB_EXE wxT( "cvpcb" )
@ -91,6 +92,7 @@ enum pseudokeys {
#define GERBVIEW_EXE wxT( "gerbview" )
#define BITMAPCONVERTER_EXE wxT( "bitmap2component" )
#define PCB_CALCULATOR_EXE wxT( "pcb_calculator" )
#define PL_EDITOR_EXE wxT( "pl_editor" )
#else
#define CVPCB_EXE wxT( "cvpcb.app/Contents/MacOS/cvpcb" )
#define PCBNEW_EXE wxT( "pcbnew.app/Contents/MacOS/pcbnew" )
@ -98,6 +100,7 @@ enum pseudokeys {
#define GERBVIEW_EXE wxT( "gerbview.app/Contents/MacOS/gerbview" )
#define BITMAPCONVERTER_EXE wxT( "bitmap2component.app/Contents/MacOS/bitmap2component" )
#define PCB_CALCULATOR_EXE wxT( "pcb_calculator.app/Contents/MacOS/pcb_calculator" )
#define PL_EDITOR_EXE wxT( "pcb_calculator.app/Contents/MacOS/pl_editor" )
# endif
#endif
@ -167,7 +170,14 @@ inline int Mils2mm( double x ) { return KiROUND( x * 25.4 / 1000. ); }
/// Return whether GOST is in play
bool IsGOST();
inline bool IsGOST()
{
#if defined(KICAD_GOST)
return true;
#else
return false;
#endif
}
enum EDA_UNITS_T {
@ -286,60 +296,12 @@ public:
// Accessors returning "Internal Units (IU)". IUs are mils in EESCHEMA,
// and either deci-mils or nanometers in PCBNew.
#if defined(PCBNEW) || defined(EESCHEMA) || defined(GERBVIEW)
#if defined(PCBNEW) || defined(EESCHEMA) || defined(GERBVIEW) || defined(PL_EDITOR)
int GetWidthIU() const { return IU_PER_MILS * GetWidthMils(); }
int GetHeightIU() const { return IU_PER_MILS * GetHeightMils(); }
const wxSize GetSizeIU() const { return wxSize( GetWidthIU(), GetHeightIU() ); }
#endif
/**
* Function GetLeftMarginMils.
* @return int - logical page left margin in mils.
*/
int GetLeftMarginMils() const { return m_left_margin; }
/**
* Function GetLeftMarginMils.
* @return int - logical page right margin in mils.
*/
int GetRightMarginMils() const { return m_right_margin; }
/**
* Function GetLeftMarginMils.
* @return int - logical page top margin in mils.
*/
int GetTopMarginMils() const { return m_top_margin; }
/**
* Function GetBottomMarginMils.
* @return int - logical page bottom margin in mils.
*/
int GetBottomMarginMils() const { return m_bottom_margin; }
/**
* Function SetLeftMarginMils
* sets left page margin to @a aMargin in mils.
*/
void SetLeftMarginMils( int aMargin ) { m_left_margin = aMargin; }
/**
* Function SetRightMarginMils
* sets right page margin to @a aMargin in mils.
*/
void SetRightMarginMils( int aMargin ) { m_right_margin = aMargin; }
/**
* Function SetTopMarginMils
* sets top page margin to @a aMargin in mils.
*/
void SetTopMarginMils( int aMargin ) { m_top_margin = aMargin; }
/**
* Function SetBottomMarginMils
* sets bottom page margin to @a aMargin in mils.
*/
void SetBottomMarginMils( int aMargin ) { m_bottom_margin = aMargin; }
/**
* Function SetCustomWidthMils
* sets the width of Custom page in mils, for any custom page
@ -419,12 +381,6 @@ private:
#define MIN_PAGE_SIZE 4000
#define MAX_PAGE_SIZE 48000
int m_left_margin;
int m_right_margin;
int m_top_margin;
int m_bottom_margin;
bool m_portrait; ///< true if portrait, false if landscape
wxPaperSize m_paper_id; ///< wx' style paper id.

View File

@ -55,8 +55,25 @@ inline int DMils2iu( int dmils )
#endif
}
#else // Eeschema and anything else.
#elif defined (PL_EDITOR)
#define IU_PER_MM 1e3 // internal units in micron (should be enough)
#define IU_PER_MILS (IU_PER_MM * 0.0254)
#define IU_PER_DECIMILS (IU_PER_MM * 0.00254)
/// Convert mils to page layout editor internal units (iu).
inline int Mils2iu( int mils )
{
double x = mils * IU_PER_MILS;
return int( x < 0 ? x - 0.5 : x + 0.5 );
}
/// Convert deci-mils to page layout editor internal units (iu).
inline int DMils2iu( int dmils )
{
double x = dmils * IU_PER_DECIMILS;
return int( x < 0 ? x - 0.5 : x + 0.5 );
}
#else // Eeschema and anything else.
#define IU_PER_DECIMILS 0.1
#define IU_PER_MILS 1.0
#define IU_PER_MM (IU_PER_MILS / 0.0254)

View File

@ -136,15 +136,13 @@ protected:
/**
* Function findToken
* takes a string and looks up the string in the list of expected
* tokens.
* takes aToken string and looks up the string in the keywords table.
*
* @param tok A string holding the token text to lookup, in an
* unpredictable case: uppercase or lowercase
* @return int - DSN_T matching the keyword text, or DSN_SYMBOL if argument
* string is not a recognized token.
* @param aToken is a string to lookup in the keywords table.
* @return int - with a value from the enum DSN_T matching the keyword text,
* or DSN_SYMBOL if @a aToken is not in the kewords table.
*/
int findToken( const std::string& tok );
int findToken( const std::string& aToken );
bool isStringTerminator( char cc )
{

View File

@ -96,7 +96,7 @@ struct fnv_1a
for( ; *it; ++it )
{
hash ^= *it;
hash ^= (unsigned char) *it;
hash *= 16777619;
}
return hash;

View File

@ -31,101 +31,8 @@
#define __VIEW_ITEM_H
#include <vector>
#include <math/box2.h>
/**
* Enum KICAD_T
* is the set of class identification values, stored in VIEW_ITEM::m_StructType
*/
enum KICAD_T {
NOT_USED = -1, ///< the 3d code uses this value
EOT = 0, ///< search types array terminator (End Of Types)
TYPE_NOT_INIT = 0,
PCB_T,
SCREEN_T, ///< not really an item, used to identify a screen
// Items in pcb
PCB_MODULE_T, ///< class MODULE, a footprint
PCB_PAD_T, ///< class D_PAD, a pad in a footprint
PCB_LINE_T, ///< class DRAWSEGMENT, a segment not on copper layers
PCB_TEXT_T, ///< class TEXTE_PCB, text on a layer
PCB_MODULE_TEXT_T, ///< class TEXTE_MODULE, text in a footprint
PCB_MODULE_EDGE_T, ///< class EDGE_MODULE, a footprint edge
PCB_TRACE_T, ///< class TRACKE, a track segment (segment on a copper layer)
PCB_VIA_T, ///< class SEGVIA, a via (like a track segment on a copper layer)
PCB_ZONE_T, ///< class SEGZONE, a segment used to fill a zone area (segment on a
///< copper layer)
PCB_MARKER_T, ///< class MARKER_PCB, a marker used to show something
PCB_DIMENSION_T, ///< class DIMENSION, a dimension (graphic item)
PCB_TARGET_T, ///< class PCB_TARGET, a target (graphic item)
PCB_ZONE_AREA_T, ///< class ZONE_CONTAINER, a zone area
PCB_ITEM_LIST_T, ///< class BOARD_ITEM_LIST, a list of board items
// Schematic draw Items. The order of these items effects the sort order.
// It is currently ordered to mimic the old Eeschema locate behavior where
// the smallest item is the selected item.
SCH_MARKER_T,
SCH_JUNCTION_T,
SCH_NO_CONNECT_T,
SCH_BUS_WIRE_ENTRY_T,
SCH_BUS_BUS_ENTRY_T,
SCH_LINE_T,
SCH_BITMAP_T,
SCH_TEXT_T,
SCH_LABEL_T,
SCH_GLOBAL_LABEL_T,
SCH_HIERARCHICAL_LABEL_T,
SCH_FIELD_T,
SCH_COMPONENT_T,
SCH_SHEET_PIN_T,
SCH_SHEET_T,
// Be prudent with these 3 types:
// they should be used only to locate a specific field type
// among SCH_FIELD_T items types
SCH_FIELD_LOCATE_REFERENCE_T,
SCH_FIELD_LOCATE_VALUE_T,
SCH_FIELD_LOCATE_FOOTPRINT_T,
// General
SCH_SCREEN_T,
/*
* Draw items in library component.
*
* The order of these items effects the sort order for items inside the
* "DRAW/ENDDRAW" section of the component definition in a library file.
* If you add a new draw item, type, please make sure you add it so the
* sort order is logical.
*/
LIB_COMPONENT_T,
LIB_ALIAS_T,
LIB_ARC_T,
LIB_CIRCLE_T,
LIB_TEXT_T,
LIB_RECTANGLE_T,
LIB_POLYLINE_T,
LIB_BEZIER_T,
LIB_PIN_T,
/*
* Fields are not saved inside the "DRAW/ENDDRAW". Add new draw item
* types before this line.
*/
LIB_FIELD_T,
/*
* For GerbView: items type:
*/
TYPE_GERBER_DRAW_ITEM,
// End value
MAX_STRUCT_TYPE_ID
};
namespace KiGfx
{
// Forward declarations
@ -285,9 +192,6 @@ public:
*/
void ViewRelease();
/// @copydoc EDA_ITEM::Type()
virtual KICAD_T Type() const = 0;
protected:
friend class VIEW;

View File

@ -55,6 +55,7 @@ extern const wxString GerberFileExtension;
extern const wxString LegacyPcbFileExtension;
extern const wxString KiCadPcbFileExtension;
#define PcbFileExtension KiCadPcbFileExtension // symlink choice
extern const wxString PageLayoutDescrFileExtension;
extern const wxString LegacyFootprintLibPathExtension;
extern const wxString PdfFileExtension;
@ -69,6 +70,7 @@ extern const wxString KiCadFootprintLibPathExtension;
extern const wxString GedaPcbFootprintLibFileExtension;
extern const wxString EagleFootprintLibPathExtension;
extern const wxString ComponentFileExtensionWildcard;
extern const wxString PageLayoutDescrFileWildcard;
/// Proper wxFileDialog wild card definitions.
extern const wxString SchematicSymbolFileWildcard;

View File

@ -10,257 +10,11 @@
#include <math/vector2d.h>
#include <eda_text.h>
class WS_DRAW_ITEM_TEXT; // Forward declaration
class WORKSHEET_DATAITEM; // Forward declaration
class TITLE_BLOCK;
#define TB_DEFAULT_TEXTSIZE 1.5 // default worksheet text size in mm
// Text attributes set in m_Flags (ORed bits)
#define USE_BOLD 1 // has meaning for texts
#define USE_THICK_LINE 1 // equivalent to bold for lines
#define USE_ITALIC 2 // has meaning for texts
#define USE_TEXT_COLOR 4
#define SET_UPPER_LIMIT 8 // Flag used to calculate variable position items
// A coordinate is relative to a page corner.
// Any of the 4 corners can be a reference.
// The default is the right bottom corner
enum corner_anchor
{
RB_CORNER, // right bottom corner
RT_CORNER, // right top corner
LB_CORNER, // left bottom corner
LT_CORNER, // left top corner
};
// a coordinate point
// The position is always relative to the corner anchor
// Note the coordinate is from the anchor point
// to the opposite corner.
class POINT_COORD
{
public:
DPOINT m_Pos;
int m_Anchor;
public:
POINT_COORD() { m_Anchor = RB_CORNER; }
POINT_COORD( DPOINT aPos, enum corner_anchor aAnchor = RB_CORNER )
{
m_Pos = aPos;
m_Anchor = aAnchor;
}
};
// Work sheet structure type definitions.
// Basic items are:
// * segment and rect (defined by 2 points)
// * text (defined by a coordinate), the text and its justifications
// * poly polygon defined by a coordinate, and a set of list of corners
// ( because we use it for logos, there are more than one polygon
// in this description
class WORKSHEET_DATAITEM
{
public:
enum WS_ItemType {
WS_TEXT,
WS_SEGMENT,
WS_RECT,
WS_POLYPOLYGON
};
WS_ItemType m_Type;
POINT_COORD m_Pos;
POINT_COORD m_End;
double m_LineWidth;
int m_Flags;
int m_RepeatCount; // repeat count for duplicate items
DPOINT m_IncrementVector; // For duplicate items: move vector
// for position increment
int m_IncrementLabel;
static double m_WSunits2Iu; // conversion factor between
// ws units (mils) and draw/plot units
static DPOINT m_RB_Corner; // cordinates of the right bottom corner
// (ws units)
static DPOINT m_LT_Corner; // cordinates of the left top corner
// (ws units)
public:
WORKSHEET_DATAITEM( WS_ItemType aType )
{
m_Type = aType;
m_Flags = 0;
m_RepeatCount = 1;
m_IncrementLabel = 0;
m_LineWidth = 0.0;
}
virtual ~WORKSHEET_DATAITEM() {}
void SetStart( double aPosx, double aPosy, enum corner_anchor aAnchor = RB_CORNER )
{
m_Pos.m_Pos.x = aPosx;
m_Pos.m_Pos.y = aPosy;
m_Pos.m_Anchor = aAnchor;
}
void SetEnd( double aPosx, double aPosy, enum corner_anchor aAnchor = RB_CORNER )
{
m_End.m_Pos.x = aPosx;
m_End.m_Pos.y = aPosy;
m_End.m_Anchor = aAnchor;
}
const wxPoint GetStartPosUi( int ii = 0 ) const;
const wxPoint GetEndPosUi( int ii = 0 ) const;
const DPOINT GetStartPos( int ii = 0 ) const;
const DPOINT GetEndPos( int ii = 0 ) const;
int GetPenSizeUi() {return KiROUND( m_LineWidth * m_WSunits2Iu ); }
/**
* @return true if the item is inside the rectangle defined by the
* 4 corners, false otherwise.
*/
virtual bool IsInsidePage( int ii ) const;
};
class WORKSHEET_DATAITEM_POLYPOLYGON : public WORKSHEET_DATAITEM
{
public:
double m_Orient; // Orientation in degrees
std::vector<DPOINT> m_Corners; // corner list
private:
std::vector<unsigned> m_polyIndexEnd; // index of the last point of each polygon
DPOINT m_minCoord; // min coord of corners, relative to m_Pos
DPOINT m_maxCoord; // max coord of corners, relative to m_Pos
public:
WORKSHEET_DATAITEM_POLYPOLYGON( );
/**
* add a corner in corner list
* @param aCorner: the item to append
*/
void AppendCorner( const DPOINT& aCorner )
{
m_Corners.push_back( aCorner );
}
/**
* Closes the current contour, by storing the index of the last corner
* of the current polygon in m_polyIndexEnd.
*/
void CloseContour()
{
m_polyIndexEnd.push_back( m_Corners.size() -1 );
}
/**
* @return the count of contours in the poly polygon
*/
int GetPolyCount() const { return (int) m_polyIndexEnd.size(); }
/**
* @return the index of the first corner of the contour aCountour
* @param aContour = the index of the contour
*/
unsigned GetPolyIndexStart( unsigned aContour) const
{
if( aContour == 0 )
return 0;
else
return m_polyIndexEnd[aContour-1] + 1;
}
/**
* @return the index of the last corner of the contour aCountour
* @param aContour = the index of the contour
*/
unsigned GetPolyIndexEnd( unsigned aContour) const
{
return m_polyIndexEnd[aContour];
}
/**
* @return the coordinate (in mm) of the corner aIdx,
* for the repeated item aRepeat
*/
const DPOINT GetCornerPosition( unsigned aIdx, int aRepeat = 0 ) const;
/**
* @return the coordinate (in draw/plot units) of the corner aIdx,
* for the repeated item aRepeat
*/
const wxPoint GetCornerPositionUi( unsigned aIdx, int aRepeat = 0 ) const;
/**
* calculate the bounding box of the set polygons
*/
void SetBoundingBox();
bool IsInsidePage( int ii ) const;
};
class WORKSHEET_DATAITEM_TEXT : public WORKSHEET_DATAITEM
{
public:
wxString m_TextBase; // The basic text, with format symbols
wxString m_FullText; // The expanded text, shown on screen
int m_IncrementLabel;
double m_Orient; // Orientation in degrees
enum EDA_TEXT_HJUSTIFY_T m_Hjustify;
enum EDA_TEXT_VJUSTIFY_T m_Vjustify;
DSIZE m_TextSize;
DSIZE m_BoundingBoxSize; // When not null, this is the max
// size of the full text.
// the text size will be modified
// to keep the full text insite this
// bound.
DSIZE m_ConstrainedTextSize;// Actual text size, if constrained by
// the m_BoundingBoxSize constraint
public:
WORKSHEET_DATAITEM_TEXT( const wxChar* aTextBase );
/**
* transfert the text justification and orientation
* to aGText
*/
void TransfertSetupToGraphicText( WS_DRAW_ITEM_TEXT* aGText );
/**
* Try to build text wihich is an increment of m_TextBase
* has meaning only if m_TextBase is a basic text (one char)
* If the basic char is a digit, build a number
* If the basic char is a letter, use the letter with ascii code
* aIncr + (basic char ascc code)
* @param aIncr = the increment value
* return the incremented label in m_FullText
*/
void IncrementLabel( int aIncr );
/**
* Calculates m_ConstrainedTextSize from m_TextSize
* to keep the X size and the full Y size of the text
* smaller than m_BoundingBoxSize
* if m_BoundingBoxSize.x or m_BoundingBoxSize.y > 0
* if m_BoundingBoxSize.x or m_BoundingBoxSize.y == 0
* the corresponding text size is not constrained
*/
void SetConstrainedTextSize();
/**
* @return true is a bold font should be selected
*/
bool IsBold() { return (m_Flags & USE_BOLD) != 0; }
/**
* @return true is an italic font should be selected
*/
bool IsItalic() { return (m_Flags & USE_ITALIC) != 0; }
};
/*
* Helper classes to handle basic graphic items used to raw/plot
* title blocks and frame references
@ -275,16 +29,24 @@ public:
enum WS_DRAW_TYPE {
wsg_line, wsg_rect, wsg_poly, wsg_text
};
int m_Flags; // temporary flgs used in page layout editor
// to locate the item;
protected:
WS_DRAW_TYPE m_type; // wsg_line, wsg_rect, wsg_poly, wsg_text
EDA_COLOR_T m_color;
WORKSHEET_DATAITEM* m_parent; // an unique identifier, used as link
// to the parent WORKSHEET_DATAITEM item,
// in page layout editor
protected:
WS_DRAW_ITEM_BASE( WS_DRAW_TYPE aType, EDA_COLOR_T aColor )
WS_DRAW_ITEM_BASE( WORKSHEET_DATAITEM* aParent,
WS_DRAW_TYPE aType, EDA_COLOR_T aColor )
{
m_type = aType;
m_color = aColor;
m_parent = aParent;
m_Flags = 0;
}
public:
@ -293,6 +55,39 @@ public:
// Accessors:
EDA_COLOR_T GetColor() { return m_color; }
WS_DRAW_TYPE GetType() { return m_type; };
WORKSHEET_DATAITEM* GetParent() { return m_parent; }
/** The function to draw a WS_DRAW_ITEM
*/
virtual void DrawWsItem( EDA_RECT* aClipBox, wxDC* aDC ) = 0;
/**
* Abstract function: should exist for derived items
* return true if the point aPosition is on the item
*/
virtual bool HitTest( const wxPoint& aPosition) = 0;
/**
* Abstract function: should exist for derived items
* return true if the point aPosition is near the starting point of this item,
* for items defined by 2 points (segments, rect)
* or the position of the item, for items having only one point
* (texts or polygons)
* the maxi dist is WORKSHEET_DATAITEM::GetMarkerSizeUi()/2
*/
virtual bool HitTestStartPoint( const wxPoint& aPosition) = 0;
/**
* return true if the point aPosition is near the ending point of this item
* This is avirtual function which should be overriden for items defien by
* 2 points
* the maxi dist is WORKSHEET_DATAITEM::GetMarkerSizeUi()/2
*/
virtual bool HitTestEndPoint( const wxPoint& aPosition)
{
return false;
}
};
// This class draws a thick segment
@ -303,9 +98,10 @@ class WS_DRAW_ITEM_LINE : public WS_DRAW_ITEM_BASE
int m_penWidth;
public:
WS_DRAW_ITEM_LINE( wxPoint aStart, wxPoint aEnd,
WS_DRAW_ITEM_LINE( WORKSHEET_DATAITEM* aParent,
wxPoint aStart, wxPoint aEnd,
int aPenWidth, EDA_COLOR_T aColor ) :
WS_DRAW_ITEM_BASE( wsg_line, aColor )
WS_DRAW_ITEM_BASE( aParent, wsg_line, aColor )
{
m_start = aStart;
m_end = aEnd;
@ -316,11 +112,36 @@ public:
int GetPenWidth() { return m_penWidth; }
const wxPoint& GetStart() { return m_start; }
const wxPoint& GetEnd() { return m_end; }
/** The function to draw a WS_DRAW_ITEM_LINE
*/
virtual void DrawWsItem( EDA_RECT* aClipBox, wxDC* aDC );
/**
* Virtual function
* return true if the point aPosition is on the line
*/
virtual bool HitTest( const wxPoint& aPosition);
/**
* return true if the point aPosition is on the starting point of this item.
*/
virtual bool HitTestStartPoint( const wxPoint& aPosition);
/**
* return true if the point aPosition is on the ending point of this item
* This is avirtual function which should be overriden for items defien by
* 2 points
*/
virtual bool HitTestEndPoint( const wxPoint& aPosition);
};
// This class draws a polygon
class WS_DRAW_ITEM_POLYGON : public WS_DRAW_ITEM_BASE
{
wxPoint m_pos; // position of reference point, from the
// WORKSHEET_DATAITEM_POLYPOLYGON parent
// (used only in page layout editor to draw anchors)
int m_penWidth;
bool m_fill;
@ -328,28 +149,69 @@ public:
std::vector <wxPoint> m_Corners;
public:
WS_DRAW_ITEM_POLYGON( bool aFill, int aPenWidth, EDA_COLOR_T aColor ) :
WS_DRAW_ITEM_BASE( wsg_poly, aColor )
WS_DRAW_ITEM_POLYGON( WORKSHEET_DATAITEM* aParent, wxPoint aPos,
bool aFill, int aPenWidth, EDA_COLOR_T aColor ) :
WS_DRAW_ITEM_BASE( aParent, wsg_poly, aColor )
{
m_penWidth = aPenWidth;
m_fill = aFill;
m_pos = aPos;
}
// Accessors:
int GetPenWidth() { return m_penWidth; }
bool IsFilled() { return m_fill; }
const wxPoint& GetPosition() { return m_pos; }
/** The function to draw a WS_DRAW_ITEM_POLYGON
*/
virtual void DrawWsItem( EDA_RECT* aClipBox, wxDC* aDC );
/**
* Virtual function
* return true if the point aPosition is inside one polygon
*/
virtual bool HitTest( const wxPoint& aPosition);
/**
* return true if the point aPosition is on the starting point of this item.
*/
virtual bool HitTestStartPoint( const wxPoint& aPosition);
};
// This class draws a not filled rectangle with thick segment
class WS_DRAW_ITEM_RECT : public WS_DRAW_ITEM_LINE
{
public:
WS_DRAW_ITEM_RECT( wxPoint aStart, wxPoint aEnd,
WS_DRAW_ITEM_RECT( WORKSHEET_DATAITEM* aParent,
wxPoint aStart, wxPoint aEnd,
int aPenWidth, EDA_COLOR_T aColor ) :
WS_DRAW_ITEM_LINE( aStart, aEnd, aPenWidth, aColor )
WS_DRAW_ITEM_LINE( aParent, aStart, aEnd, aPenWidth, aColor )
{
m_type = wsg_rect;
}
/** The function to draw a WS_DRAW_ITEM_RECT
*/
virtual void DrawWsItem( EDA_RECT* aClipBox, wxDC* aDC );
/**
* Virtual function
* return true if the point aPosition is on one edge of the rectangle
*/
virtual bool HitTest( const wxPoint& aPosition);
/**
* return true if the point aPosition is on the starting point of this item.
*/
virtual bool HitTestStartPoint( const wxPoint& aPosition);
/**
* return true if the point aPosition is on the ending point of this item
* This is avirtual function which should be overriden for items defien by
* 2 points
*/
virtual bool HitTestEndPoint( const wxPoint& aPosition);
};
// This class draws a graphic text.
@ -358,20 +220,28 @@ public:
class WS_DRAW_ITEM_TEXT : public WS_DRAW_ITEM_BASE, public EDA_TEXT
{
public:
WS_DRAW_ITEM_TEXT( wxString& aText, wxPoint aPos, wxSize aSize,
WS_DRAW_ITEM_TEXT( WORKSHEET_DATAITEM* aParent,
wxString& aText, wxPoint aPos, wxSize aSize,
int aPenWidth, EDA_COLOR_T aColor,
bool aItalic = false, bool aBold = false ) :
WS_DRAW_ITEM_BASE( wsg_text, aColor ), EDA_TEXT( aText )
{
SetTextPosition( aPos );
SetSize( aSize );
SetThickness( aPenWidth );
SetItalic( aItalic );
SetBold( aBold );
}
bool aItalic = false, bool aBold = false );
/** The function to draw a WS_DRAW_ITEM_TEXT
*/
virtual void DrawWsItem( EDA_RECT* aClipBox, wxDC* aDC );
// Accessors:
int GetPenWidth() { return GetThickness(); }
/**
* Virtual function
* return true if the point aPosition is on the text
*/
virtual bool HitTest( const wxPoint& aPosition);
/**
* return true if the point aPosition is on the starting point of this item.
*/
virtual bool HitTestStartPoint( const wxPoint& aPosition);
};
/*
@ -382,6 +252,7 @@ public:
*/
class WS_DRAW_ITEM_LIST
{
protected:
std::vector <WS_DRAW_ITEM_BASE*> m_graphicList; // Items to draw/plot
unsigned m_idx; // for GetFirst, GetNext functions
wxPoint m_LTmargin; // The left top margin in mils of the page layout.
@ -420,8 +291,26 @@ public:
delete m_graphicList[ii];
}
/* Function SetPenSize
* Set the defualt pen size to draw/plot lines and texts
/**
* Set the filename to draw/plot
* @param aFileName = the text to display by the "filename" format
*/
void SetFileName( const wxString & aFileName )
{
m_fileName = &aFileName;
}
/**
* Set the sheet name to draw/plot
* @param aSheetName = the text to draw/plot by the "sheetname" format
*/
void SetSheetName( const wxString & aSheetName )
{
m_sheetFullName = &aSheetName;
}
/** Function SetPenSize
* Set the default pen size to draw/plot lines and texts
* @param aPenSize the thickness of lines
*/
void SetPenSize( int aPenSize )
@ -429,7 +318,7 @@ public:
m_penSize = aPenSize;
}
/* Function SetMilsToIUfactor
/** Function SetMilsToIUfactor
* Set the scalar to convert pages units ( mils) to draw/plot units
* @param aScale the conversion factor
*/
@ -438,7 +327,7 @@ public:
m_milsToIu = aScale;
}
/* Function SetPageSize
/** Function SetPageSize
* Set the size of the page layout
* @param aPageSize size (in mils) of the page layout.
*/
@ -467,7 +356,7 @@ public:
m_sheetCount = aSheetCount;
}
/* Function SetMargins
/** Function SetMargins
* Set the left top margin and the right bottom margin
* of the page layout
* @param aLTmargin The left top margin of the page layout.
@ -505,7 +394,7 @@ public:
}
/**
* Draws the item list crated by BuildWorkSheetGraphicList
* Draws the item list created by BuildWorkSheetGraphicList
* @param aClipBox = the clipping rect, or NULL if no clipping
* @param aDC = the current Device Context
*/
@ -515,19 +404,23 @@ public:
* Function BuildWorkSheetGraphicList is a core function for
* drawing or plotting the page layout with
* the frame and the basic inscriptions.
* It fills the list of basic graphic items to draw or plot.
* It populates the list of basic graphic items to draw or plot.
* currently lines, rect, polygons and texts
* before calling this function, some parameters should be initialized:
* by calling:
* SetPenSize( aPenWidth );
* SetMilsToIUfactor( aScalar );
* SetSheetNumber( aSheetNumber );
* SetSheetCount( aSheetCount );
* SetFileName( aFileName );
* SetSheetName( aFullSheetName );
*
* @param aPaperFormat The paper size type, for basic inscriptions.
* @param aFileName The file name, for basic inscriptions.
* @param aSheetPathHumanReadable The human readable sheet path.
* @param aPageInfo The PAGE_INFO, for page size, margins...
* @param aTitleBlock The sheet title block, for basic inscriptions.
* @param aColor The color for drawing.
* @param aAltColor The color for items which need to be "hightlighted".
*/
void BuildWorkSheetGraphicList( const wxString& aPaperFormat,
const wxString& aFileName,
const wxString& aSheetPathHumanReadable,
void BuildWorkSheetGraphicList( const PAGE_INFO& aPageInfo,
const TITLE_BLOCK& aTitleBlock,
EDA_COLOR_T aColor, EDA_COLOR_T aAltColor );
/**
@ -559,27 +452,96 @@ public:
* @return the text, after replacing the format symbols by the actual value
*/
wxString BuildFullText( const wxString& aTextbase );
/**
* Locate graphic items in m_graphicList at location aPosition
* @param aList = the list of items found
* @param aPosition the position (in user units) to locate items
*/
void Locate(std::vector <WS_DRAW_ITEM_BASE*>& aList, const wxPoint& aPosition);
};
/**
* WORKSHEET_LAYOUT handles the grpahic items list to draw/plot
* WORKSHEET_LAYOUT handles the graphic items list to draw/plot
* the title block and other items (page references ...
*/
class WORKSHEET_LAYOUT
{
std::vector <WORKSHEET_DATAITEM*> m_list;
bool m_allowVoidList; // If false, the default page layout
// will be loaded the first time
// WS_DRAW_ITEM_LIST::BuildWorkSheetGraphicList
// is run (useful mainly for page layout editor)
double m_leftMargin; // the left page margin in mm
double m_rightMargin; // the right page margin in mm
double m_topMargin; // the top page margin in mm
double m_bottomMargin; // the bottom page margin in mm
bool m_isDefaultDescr; // true if the internal default descr is loaded
// mainly used in Kicad GOST version, until
// a GOST page descr file is available
// to force the GOST default title block
public:
WORKSHEET_LAYOUT() {};
WORKSHEET_LAYOUT();
~WORKSHEET_LAYOUT() {ClearList(); }
void ClearList()
/**
* static function: returns the instance of WORKSHEET_LAYOUT
* used in the application
*/
static WORKSHEET_LAYOUT& GetTheInstance()
{
for( unsigned ii = 0; ii < m_list.size(); ii++ )
delete m_list[ii];
extern WORKSHEET_LAYOUT wksTheInstance;
return wksTheInstance;
}
// Accessors:
bool IsDefaultDescr() { return m_isDefaultDescr; }
void SetDefaultDescrFlag( bool aFlg ) { m_isDefaultDescr = aFlg; }
double GetLeftMargin() { return m_leftMargin; }
double GetRightMargin() { return m_rightMargin; }
double GetTopMargin() { return m_topMargin; }
double GetBottomMargin() { return m_bottomMargin; }
void SetLeftMargin( double aMargin );
void SetRightMargin( double aMargin );
void SetTopMargin( double aMargin );
void SetBottomMargin( double aMargin );
/**
* In Kicad applications, a page layout description is needed
* So if the list is empty, a default description is loaded,
* the first time a page layout is drawn.
* However, in page layout editor, an empty list is acceptable.
* AllowVoidList allows or not the empty list
*/
void AllowVoidList( bool Allow ) { m_allowVoidList = Allow; }
/**
* @return true if an empty list is allowed
* (mainly allowed for page layout editor).
*/
bool VoidListAllowed() { return m_allowVoidList; }
/**
* erase the list of items
*/
void ClearList();
/**
* Save the description in a file
* @param aFullFileName the filename of the file to created
*/
void Save( const wxString& aFullFileName );
/**
* Save the description in a buffer
* @param aOutputString = a wxString to store the S expr string
*/
void SaveInString( wxString& aOutputString );
/**
* Add an item to the list of items
*/
@ -588,16 +550,30 @@ public:
m_list.push_back( aItem );
}
/**
*Insert an item to the list of items at position aIdx
*/
void Insert( WORKSHEET_DATAITEM* aItem, unsigned aIdx );
/**
*Remove the item to the list of items at position aIdx
*/
bool Remove( unsigned aIdx );
/**
*Remove the item to the list of items at position aIdx
*/
bool Remove( WORKSHEET_DATAITEM* aItem );
/**
* @return the index of aItem, or -1 if does not exist
*/
int GetItemIndex( WORKSHEET_DATAITEM* aItem ) const;
/**
* @return the item from its index aIdx, or NULL if does not exist
*/
WORKSHEET_DATAITEM* GetItem( unsigned aIdx ) const
{
if( aIdx < m_list.size() )
return m_list[aIdx];
else
return NULL;
}
WORKSHEET_DATAITEM* GetItem( unsigned aIdx ) const;
/**
* @return the item count
@ -610,11 +586,38 @@ public:
void SetDefaultLayout();
/**
* Fills the list with a custom layout, or
* Populates the list with a custom layout, or
* the default layout, if no custom layout available
* @param aFullFileName = the custom page layout description file.
* if empty, loads the file defined by KICAD_WKSFILE
* and if its is not defined, uses the default internal description
* @param Append = if true: do not delete old layout, and load only
aFullFileName.
*/
void SetLayout();
void SetPageLayout( const wxString& aFullFileName = wxEmptyString,
bool Append = false );
/**
* Populates the list from a S expr description stored in a string
* @param aPageLayout = the S expr string
*/
void SetPageLayout( const char* aPageLayout, bool Append = false );
/**
* @return a short filename from a full filename:
* if the path is the current path, or if the path
* is the same as kicad.pro (in template), returns the shortname
* else do nothing and returns a full filename
*/
static const wxString MakeShortFileName( const wxString& aFullFileName );
/**
* @return a full filename from a short filename,
* if the short filename path is void
* In this case the path is the same as kicad.pro (in template)
* else return the short filename (which have an absolute os relative path
*/
static const wxString MakeFullFileName( const wxString& aShortFileName );
};
#endif // WORKSHEET_SHAPE_BUILDER_H

View File

@ -632,8 +632,6 @@ public:
void SelectLayerPair();
virtual void SwitchLayer( wxDC* DC, LAYER_NUM layer );
void InstallGridFrame( const wxPoint& pos );
/**
* Load applications settings common to PCB draw frame objects.
*
@ -646,6 +644,8 @@ public:
*/
virtual void LoadSettings();
bool InvokeDialogGrid();
/**
* Save applications settings common to PCB draw frame objects.
*

View File

@ -157,7 +157,7 @@ private:
/// The name of the format to use when generating a net list.
wxString m_netListFormat;
/// Add X prefix to componen referencess when generating spice net lists.
/// Add X prefix to component references when generating spice net lists.
bool m_addReferencPrefix;
wxString m_userLibraryPath;
@ -239,7 +239,7 @@ public:
void GeneralControl( wxDC* aDC, const wxPoint& aPosition, int aHotKey = 0 );
/**
* Function GetProjectFileParameters
* Function GetProjectFileParametersList
* returns the project file parameter list for Eeschema.
*
*<p?
@ -250,13 +250,14 @@ public:
* compile time required global variable definitions.
* </p>
*/
PARAM_CFG_ARRAY& GetProjectFileParameters( void );
PARAM_CFG_ARRAY& GetProjectFileParametersList( void );
/**
* Function SaveProjectFile
* Function SaveProjectSettings
* saves changes to the project settings to the project (.pro) file.
* @param aAskForSave = true to open a dialog before saving the settings
*/
void SaveProjectFile();
void SaveProjectSettings( bool aAskForSave );
/**
* Function LoadProjectFile

View File

@ -353,7 +353,12 @@ public:
*/
PARAM_CFG_ARRAY GetProjectFileParameters();
void SaveProjectSettings();
/**
* Function SaveProjectSettings
* saves changes to the project settings to the project (.pro) file.
* @param aAskForSave = true to open a dialog before saving the settings
*/
void SaveProjectSettings( bool aAskForSave );
/**
* Load the project file configuration settings.

View File

@ -97,7 +97,8 @@ enum ID_DRAWFRAME_TYPE
GERBER_FRAME_TYPE,
TEXT_EDITOR_FRAME_TYPE,
DISPLAY3D_FRAME_TYPE,
KICAD_MAIN_FRAME_TYPE
KICAD_MAIN_FRAME_TYPE,
PL_EDITOR_FRAME_TYPE
};
@ -223,6 +224,15 @@ public:
*/
virtual void SaveSettings();
/**
* Function SaveProjectSettings
* saves changes to the project settings to the project (.pro) file.
* The method is virtual so you can override it to call the suitable save method.
* The base method do nothing
* @param aAskForSave = true to open a dialog before saving the settings
*/
virtual void SaveProjectSettings( bool aAskForSave ) {};
/**
* Function OnSelectPreferredEditor
* Open a dialog to select the editor that will used in KiCad

View File

@ -233,6 +233,10 @@ void TREEPROJECT_ITEM::Activate( TREE_PROJECT_FRAME* prjframe )
break;
}
case TREE_PAGE_LAYOUT_DESCR:
mainFrame->Execute( m_parent, PL_EDITOR_EXE, FullFileName );
break;
default:
OpenFile( FullFileName );
break;

View File

@ -74,7 +74,8 @@ TREEPROJECTFILES::TREEPROJECTFILES( TREE_PROJECT_FRAME* parent ) :
m_ImageList->Add( KiBitmap( tools_xpm ) ); // TREE_REPORT
m_ImageList->Add( KiBitmap( post_compo_xpm ) ); // TREE_POS
m_ImageList->Add( KiBitmap( post_drill_xpm ) ); // TREE_DRILL
m_ImageList->Add( KiBitmap( svg_file_xpm ) ); // TREE_SVG
m_ImageList->Add( KiBitmap( svg_file_xpm ) ); // TREE_SVG
m_ImageList->Add( KiBitmap( pagelayout_load_default_xpm ) );// TREE_PAGE_LAYOUT_DESCR
SetImageList( m_ImageList );
}

View File

@ -109,6 +109,9 @@ Creates a component (for Eeschema) or a footprint (for Pcbnew) that shows a B&W
btn = AddBitmapButton( ID_TO_PCB_CALCULATOR, KiBitmap( icon_pcbcalculator_xpm ) );
btn->SetToolTip( _( "Pcb calculator, the Swiss army knife..." ) );
btn = AddBitmapButton( ID_TO_PL_EDITOR, KiBitmap( icon_pagelayout_editor_xpm ) );
btn->SetToolTip( _( "pl_editor, the page layout and title block shape editor" ) );
}

View File

@ -133,10 +133,10 @@ void KICAD_MANAGER_FRAME::OnArchiveFiles( wxCommandEvent& event )
{
/* List of file extensions to save. */
static const wxChar* extentionList[] = {
wxT( "*.sch" ), wxT( "*.lib" ), wxT( "*.cmp" ),
wxT( "*.sch" ), wxT( "*.lib" ), wxT( "*.mod" ), wxT( "*.cmp" ),
wxT( "*.brd" ), wxT( "*.kicad_pcb" ),
wxT( "*.net" ), wxT( "*.pro" ), wxT( "*.pho" ), wxT( "*.py" ),
wxT( "*.pdf" ), wxT( "*.txt" ), wxT( "*.dcm" ),
wxT( "*.pdf" ), wxT( "*.txt" ), wxT( "*.dcm" ), wxT( "*.kicad_wks" ),
NULL
};

View File

@ -62,20 +62,21 @@ class TREE_PROJECT_FRAME;
enum TreeFileType {
TREE_PROJECT = 1,
TREE_SCHEMA, // Schematic file (.sch)
TREE_LEGACY_PCB, // board file (.brd) legacy format
TREE_SEXP_PCB, // board file (.kicad_brd) new s expression format
TREE_GERBER, // Gerber file (.pho, .g*)
TREE_PDF, // PDF file (.pdf)
TREE_TXT, // ascii text file (.txt)
TREE_NET, // netlist file (.net)
TREE_SCHEMA, // Schematic file (.sch)
TREE_LEGACY_PCB, // board file (.brd) legacy format
TREE_SEXP_PCB, // board file (.kicad_brd) new s expression format
TREE_GERBER, // Gerber file (.pho, .g*)
TREE_PDF, // PDF file (.pdf)
TREE_TXT, // ascii text file (.txt)
TREE_NET, // netlist file (.net)
TREE_UNKNOWN,
TREE_DIRECTORY,
TREE_CMP_LINK, // cmp/footprint link file (.cmp)
TREE_REPORT, // report file (.rpt)
TREE_FP_PLACE, // fooprints position (place) file (.pos)
TREE_DRILL, // Excellon drill file (.drl)
TREE_SVG, // SVG file (.svg)
TREE_CMP_LINK, // cmp/footprint link file (.cmp)
TREE_REPORT, // report file (.rpt)
TREE_FP_PLACE, // fooprints position (place) file (.pos)
TREE_DRILL, // Excellon drill file (.drl)
TREE_SVG, // SVG file (.svg)
TREE_PAGE_LAYOUT_DESCR, // Page layout and title block descr file (.kicad_wks)
TREE_MAX
};
@ -103,6 +104,7 @@ enum id_kicad_frm {
ID_TO_GERBVIEW,
ID_TO_BITMAP_CONVERTER,
ID_TO_PCB_CALCULATOR,
ID_TO_PL_EDITOR,
ID_BROWSE_AN_SELECT_FILE,
ID_SELECT_PREFERED_EDITOR,
ID_SELECT_PREFERED_PDF_BROWSER_NAME,
@ -160,6 +162,7 @@ public: KICAD_MANAGER_FRAME( wxWindow* parent, const wxString& title,
void OnRunGerbview( wxCommandEvent& event );
void OnRunBitmapConverter( wxCommandEvent& event );
void OnRunPcbCalculator( wxCommandEvent& event );
void OnRunPageLayoutEditor( wxCommandEvent& event );
void OnOpenTextEditor( wxCommandEvent& event );
void OnOpenFileInTextEditor( wxCommandEvent& event );

View File

@ -234,6 +234,11 @@ void KICAD_MANAGER_FRAME::OnRunPcbCalculator( wxCommandEvent& event )
Execute( this, PCB_CALCULATOR_EXE );
}
void KICAD_MANAGER_FRAME::OnRunPageLayoutEditor( wxCommandEvent& event )
{
Execute( this, PL_EDITOR_EXE );
}
void KICAD_MANAGER_FRAME::OnRunPcbNew( wxCommandEvent& event )
{

Some files were not shown because too many files have changed in this diff Show More