diff --git a/.travis.yml b/.travis.yml index d7a714f0..84c2154d 100644 --- a/.travis.yml +++ b/.travis.yml @@ -56,10 +56,6 @@ script: - BITCOIN_CONFIG_ALL="--disable-dependency-tracking --prefix=$TRAVIS_BUILD_DIR/depends/$HOST --bindir=$OUTDIR/bin --libdir=$OUTDIR/lib" - if [ -z "$NO_DEPENDS" ]; then DOCKER_EXEC ccache --max-size=$CCACHE_SIZE; fi - BEGIN_FOLD autogen; test -n "$CONFIG_SHELL" && DOCKER_EXEC "$CONFIG_SHELL" -c "./autogen.sh" || DOCKER_EXEC ./autogen.sh; END_FOLD - - mkdir build && cd build - - BEGIN_FOLD configure; DOCKER_EXEC ../configure --cache-file=config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false); END_FOLD - - BEGIN_FOLD distdir; DOCKER_EXEC make distdir VERSION=$HOST; END_FOLD - - cd bitcore-$HOST - BEGIN_FOLD configure; DOCKER_EXEC ./configure --cache-file=../config.cache $BITCOIN_CONFIG_ALL $BITCOIN_CONFIG || ( cat config.log && false); END_FOLD - BEGIN_FOLD build; DOCKER_EXEC make $MAKEJOBS $GOAL || ( echo "Build failure. Verbose build follows." && DOCKER_EXEC make $GOAL V=1 ; false ); END_FOLD - if [ "$RUN_TESTS" = "true" ]; then BEGIN_FOLD unit-tests; DOCKER_EXEC LD_LIBRARY_PATH=$TRAVIS_BUILD_DIR/depends/$HOST/lib make $MAKEJOBS check VERBOSE=1; END_FOLD; fi diff --git a/README.md b/README.md index 0ad57503..c6edf2b2 100644 --- a/README.md +++ b/README.md @@ -17,6 +17,7 @@ BitCore BTX preserves and implements Bitcoin features such as SegWit, which enab - Unique wallet addresses (prefixes of 2 and S and btx (BIP 173 bench32) - Command Fork System - Masternode System Dash Core +- 2,100 BTX for one Masternode - 220 Byte Datacarriersize (OP_RETURN) - Hashalgorythm Timetravel10 - Bitcore Diffshield diff --git a/configure.ac b/configure.ac index 6d2fbf65..8e073c3e 100644 --- a/configure.ac +++ b/configure.ac @@ -3,7 +3,7 @@ AC_PREREQ([2.60]) define(_CLIENT_VERSION_MAJOR, 0) define(_CLIENT_VERSION_MINOR, 90) define(_CLIENT_VERSION_REVISION, 9) -define(_CLIENT_VERSION_BUILD, 1) +define(_CLIENT_VERSION_BUILD, 5) define(_CLIENT_VERSION_IS_RELEASE, true) define(_COPYRIGHT_YEAR, 2020) define(_COPYRIGHT_HOLDERS,[The %s developers]) diff --git a/share/pixmaps/bitcore-nsis-header.bmp b/share/pixmaps/bitcore-nsis-header.bmp index 0ae1b7fa..3580f16b 100644 Binary files a/share/pixmaps/bitcore-nsis-header.bmp and b/share/pixmaps/bitcore-nsis-header.bmp differ diff --git a/share/pixmaps/bitcore-nsis-wizard.bmp b/share/pixmaps/bitcore-nsis-wizard.bmp index 857081bc..c91fffed 100644 Binary files a/share/pixmaps/bitcore-nsis-wizard.bmp and b/share/pixmaps/bitcore-nsis-wizard.bmp differ diff --git a/share/pixmaps/bitcore.ico b/share/pixmaps/bitcore.ico index 0ea46ea1..ac9e6b66 100644 Binary files a/share/pixmaps/bitcore.ico and b/share/pixmaps/bitcore.ico differ diff --git a/share/pixmaps/bitcore.png b/share/pixmaps/bitcore.png index bf1af117..ee94510a 100644 Binary files a/share/pixmaps/bitcore.png and b/share/pixmaps/bitcore.png differ diff --git a/share/pixmaps/bitcore128.png b/share/pixmaps/bitcore128.png deleted file mode 100644 index afc68546..00000000 Binary files a/share/pixmaps/bitcore128.png and /dev/null differ diff --git a/share/pixmaps/bitcore128.xpm b/share/pixmaps/bitcore128.xpm index c20d2be0..05cc3879 100644 --- a/share/pixmaps/bitcore128.xpm +++ b/share/pixmaps/bitcore128.xpm @@ -1,385 +1,389 @@ /* XPM */ -static char *b91196c51efa42d8fc35833205abac6c[] = { +static char *a081a_f6lfw[] = { /* columns rows colors chars-per-pixel */ -"128 128 251 2 ", -" c #010000", -". c #0A0206", -"X c #0E0209", -"o c #15040D", -"O c #1C0512", -"+ c #210615", -"@ c #260718", -"# c #28071A", -"$ c #2C081C", -"% c #30091F", -"& c #330921", -"* c #3B0B26", -"= c #3E0C29", -"- c #450D2D", -"; c #4D0E32", -": c #510F35", -"> c #561038", -", c #5C113C", -"< c #621241", -"1 c #681445", -"2 c #6F1548", -"3 c #75164D", -"4 c #79164E", -"5 c #721752", -"6 c #7D1752", -"7 c #821854", -"8 c #8C1A5B", -"9 c #941C62", -"0 c #9C1C65", -"q c #9F1D68", -"w c #A41E6B", -"e c #AE2072", -"r c #B52176", -"t c #B82277", -"y c #BC237B", -"u c #C0237D", -"i c #D63876", -"p c #D6367A", -"a c #D8357E", -"s c #D53878", -"d c #DA3D7C", -"f c #D8556F", -"g c #DA4E74", -"h c #DC437D", -"j c #D94878", -"k c #DF5D71", -"l c #E1497D", -"z c #E45A77", -"x c #E15279", -"c c #E8527F", -"v c #BA2581", -"b c #FE1097", -"n c #FB1E95", -"m c #FE149B", -"M c #FD1E9D", -"N c #C62480", -"B c #CC2685", -"V c #CF278A", -"C c #D4278A", -"Z c #D5288D", -"A c #DB298E", -"S c #DD3383", -"D c #DC2791", -"F c #DD2992", -"G c #E03485", -"H c #E33D85", -"J c #E5338B", -"K c #EA348E", -"L c #E73C89", -"P c #EB3B8D", -"I c #FB368C", -"U c #E32A94", -"Y c #E72C9A", -"T c #EB2C9A", -"R c #FD229E", -"E c #F32C9E", -"W c #FB2B9E", -"Q c #ED3391", -"! c #F33496", -"~ c #FC3595", -"^ c #F43C93", -"/ c #F93F96", -"( c #F5329A", -") c #F9329E", -"_ c #F63E9F", -"` c #FA3A9B", -"' c #FD1EA0", -"] c #FD24A1", -"[ c #F62EA1", -"{ c #FB2EA3", -"} c #FF2FA8", -"| c #FB31A1", -" . c #F73EA3", -".. c #F83CA3", -"X. c #FF31AC", -"o. c #FF32B2", -"O. c #FF34BA", -"+. c #DB4080", -"@. c #E84485", -"#. c #ED4B86", -"$. c #ED438A", -"%. c #F04F86", -"&. c #F3458E", -"*. c #F3498D", -"=. c #EC5281", -"-. c #F54291", -";. c #F94195", -":. c #F6439D", -">. c #F54F9B", -",. c #F75497", -"<. c #F85592", -"1. c #F65B97", -"2. c #F4559B", -"3. c #F0689C", -"4. c #EE749C", -"5. c #F1799D", -"6. c #F644A5", -"7. c #F841A1", -"8. c #F54AA4", -"9. c #F746A8", -"0. c #F54DA9", -"q. c #F355A5", -"w. c #F159A3", -"e. c #F454AA", -"r. c #F35BAC", -"t. c #EC6BA5", -"y. c #EB67A8", -"u. c #ED6AAA", -"i. c #F363A5", -"p. c #F163AD", -"a. c #EE77A3", -"s. c #ED74AD", -"d. c #F07FA3", -"f. c #EF6EB2", -"g. c #F164B1", -"h. c #F16CB2", -"j. c #EF75B3", -"k. c #ED7EB6", -"l. c #F171B3", -"z. c #FF37C1", -"x. c #FF38C5", -"c. c #F0899F", -"v. c #EC81AE", -"b. c #EF97A4", -"n. c #E89EAF", -"m. c #EB83B3", -"M. c #EA8DB5", -"N. c #EC85BA", -"B. c #EC8CBC", -"V. c #F087BC", -"C. c #F288BC", -"Z. c #E492B3", -"A. c #EA91B5", -"S. c #E49BB6", -"D. c #EA93BE", -"F. c #E49EBC", -"G. c #EA99BF", -"H. c #DDA6B8", -"J. c #DFA9BF", -"K. c #D7B5BA", -"L. c #EBA3AA", -"P. c #E4A8AA", -"I. c #E9A6B5", -"U. c #EAAEB1", -"Y. c #E4A5BC", -"T. c #E1ABBF", -"R. c #E8A9BA", -"E. c #F0ACBD", -"W. c #EBB7B2", -"Q. c #E5B1BE", -"!. c #D7C5BE", -"~. c #E7CBBF", -"^. c #EC95C2", -"/. c #EA9BC2", -"(. c #F199C3", -"). c #DCAEC0", -"_. c #D9BDC3", -"`. c #DCBBC9", -"'. c #E9A1C3", -"]. c #E6ACC3", -"[. c #E8AAC4", -"{. c #ECA3C8", -"}. c #E7ADC9", -"|. c #EBACCA", -" X c #F1A1C7", -".X c #F0ABCC", -"XX c #E5B4C7", -"oX c #ECB0C5", -"OX c #E3BBC7", -"+X c #EFB8C6", -"@X c #E6B3CA", -"#X c #E9B4CB", -"$X c #E5BBCD", -"%X c #F2BDCF", -"&X c #E6BCD0", -"*X c #EBBBD1", -"=X c #D4CCC4", -"-X c #DDC6CB", -";X c #D7CCCB", -":X c #D4D7CD", -">X c #E5CEC1", -",X c #E2C9CC", -" c #24001D", +", c #44083B", +"< c #57012F", +"1 c #710339", +"2 c #41243D", +"3 c #380448", +"4 c #3D0653", +"5 c #320844", +"6 c #3A2B45", +"7 c #3D3642", +"8 c #460B48", +"9 c #590748", +"0 c #450759", +"q c #560858", +"w c #5A1256", +"e c #4F134E", +"r c #65155A", +"t c #700C50", +"y c #433B48", +"u c #4C3855", +"i c #492D54", +"p c #6E2B53", +"a c #4A0964", +"s c #540A69", +"d c #580B75", +"f c #5A136A", +"g c #640566", +"h c #681468", +"j c #771967", +"k c #65097B", +"l c #75027A", +"z c #6B1277", +"x c #761578", +"c c #7D0965", +"v c #5A346F", +"b c #692E70", +"n c #48434B", +"m c #4C4553", +"M c #534958", +"N c #58545A", +"B c #5B4864", +"V c #5E5663", +"C c #645A69", +"Z c #6B5677", +"A c #6E4B6E", +"S c #676569", +"D c #746978", +"F c #78767A", +"G c #6E6B70", +"H c #6A475E", +"J c #981759", +"K c #910E51", +"L c #8B245B", +"P c #851C6B", +"I c #881C76", +"U c #941E79", +"Y c #930C6B", +"T c #AD1774", +"R c #992867", +"E c #972279", +"W c #902C6D", +"Q c #A6296A", +"! c #A92975", +"~ c #B32D79", +"^ c #B93276", +"/ c #AA3472", +"( c #A51C5E", +") c #CA117B", +"_ c #EF0A7C", +"` c #C4357D", +"' c #945379", +"] c #79857C", +"[ c #80827F", +"{ c #5D0984", +"} c #650B86", +"| c #771387", +" . c #770299", +".. c #761198", +"X. c #6C0F8D", +"o. c #6B2E8D", +"O. c #780DA7", +"+. c #7732A4", +"@. c #79528C", +"#. c #7D7683", +"$. c #7B6885", +"%. c #881888", +"&. c #971D88", +"*. c #871697", +"=. c #910A91", +"-. c #B10D8E", +";. c #9C2284", +":. c #893292", +">. c #A82588", +",. c #B62A88", +"<. c #AA2393", +"1. c #B82796", +"2. c #B73688", +"3. c #8707A9", +"4. c #8714A9", +"5. c #9110B3", +"6. c #AC0BB0", +"7. c #892EB2", +"8. c #B62DA9", +"9. c #D71789", +"0. c #D00F90", +"q. c #E90B86", +"w. c #F21987", +"e. c #E51798", +"r. c #EA108A", +"t. c #D72989", +"y. c #CB3683", +"u. c #C83388", +"i. c #D5388B", +"p. c #C62B99", +"a. c #CC3294", +"s. c #D73597", +"d. c #CF2C91", +"f. c #EC2B9A", +"g. c #F02F95", +"h. c #CA06B7", +"j. c #CC15BB", +"k. c #D411AD", +"l. c #C82AA8", +"z. c #D42CAB", +"x. c #D934A7", +"c. c #CD29B4", +"v. c #D52BBB", +"b. c #D72CB6", +"n. c #D533B0", +"m. c #E52CA6", +"M. c #E332AC", +"N. c #E732A6", +"B. c #E134B1", +"V. c #E02FB1", +"C. c #E21DA3", +"Z. c #8F5691", +"A. c #AD4E89", +"S. c #837A87", +"D. c #8E7294", +"F. c #AF6B91", +"G. c #9050B0", +"H. c #AD53AB", +"J. c #AC71B1", +"K. c #9571A9", +"L. c #D54FAF", +"P. c #EC53AE", +"I. c #D16AB4", +"U. c #ED72B8", +"Y. c #DA4E9D", +"T. c #9B0EC5", +"R. c #AE0DCC", +"E. c #9236CE", +"W. c #B732D1", +"Q. c #9219EE", +"!. c #9A30EA", +"~. c #A239EF", +"^. c #C719C7", +"/. c #C30DC8", +"(. c #CB26CB", +"). c #CC26C6", +"_. c #D229C4", +"`. c #D126C3", +"'. c #CC30CD", +"]. c #9B4ECF", +"[. c #A854D3", +"{. c #AF72CD", +"}. c #9E42E6", +"|. c #A446EA", +" X c #AA58E7", +".X c #AE53F1", +"XX c #B76CED", +"oX c #D450D0", +"OX c #D16FCF", +"+X c #E874CD", +"@X c #CD77EB", +"#X c #CF53D7", +"$X c #888789", +"%X c #8C8692", +"&X c #938A97", +"*X c #969698", +"=X c #8D938E", +"-X c #9D8FA6", +";X c #A39AA9", +":X c #B08EB3", +">X c #A7A6A9", +",X c #B5AAB7", +".uXZXHXHXZXnXB.M { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { } S JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX..{ { { { { { { { { { { { { { { { { { { { { { { [ { { { { ] y.Z.i. .W R ' ] { { { { ] q.kXZXHXHXFXmXk.M { { R h.lXZXHXHXZXlXg.] { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { ) JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJX-.} { { { { { { { { { { { { { { { { { { { { { { ) { { { { { R ).dXkXwXOXA.i. .W M ] ] M k.MXZXHXHXFXkX0.R { { M G.CXFXHXHXSXwX..] { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { } ! JXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJX| [ { { { { { { { { { { { { { { { { { { { { { { { { { { { { ) 8XBXZXZXCXCXvXwXOXM.i...n oXGXGXHXHXSX0X| [ { { W 3XCXHXHXFXCX$XW [ { { { { { { { { { [ { { { { { { { { { { { { { { { { { { { { { { { JXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJX/ { { { { { { { { { { { { { { { { { { { { { { { { { { { { { ] q.kXZXHXHXFXFXZXZXCXCXlXyX4XcXFXHXHXHXGX|.M { { ] 6.yXFXHXHXFXCXB.M { { { { { { { { { { ) { { { { { { { { { { { { { { { { { { { { { { | ( JXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJX{ { { { { { { ) { { { { { { { { { { { { { { { { { { { { { { ' v.bXAXHXHXHXHXHXHXHXFXFXFXGXGXHXHXHXHXGX X) W R m h.CXFXHXHXFXlXg.' { { { { { { { { { { { { { { { ) { { { { { { { { { { { { { { { { { { | JXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJX^ { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { R T.bXZXFXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXFXNXjX$XD.r.|.CXHXHXHXSXwX..[ { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { ( JXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJX| { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { ) !.tXbXBXZXFXHXHXHXHXHXHXHXHXHXHXHXHXHXHXFXZXCXCXCXSXFXHXHXHXGX*XR { { { { { { { { { { { { { { { { { { { { { { { { ) { { { { { { { { { { { { JXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJX^ { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { >.5.L.>XuXBXFXFXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXFXHXHXHXHXHXGX.X( R ] { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { ! JXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJX| { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { ] ' R ~ <.b.iXZXFXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXFXNX9Xn.2.W ] [ { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { | JXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXL } { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { ] m i.kXFXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXFXSXCXuXQ.w.R ] { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { K JXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJX) { { { { { { { { { ) { { { { { { { [ { { { { { { { { { { { { { { { { { { { { [ M *XGXHXHXHXHXHXHXHXHXHXGXHXGXFXHXHXHXHXHXHXHXHXHXHXHXFXZXVXkXY.:.M { { { { { { { { { { { { { { { { { { { { { { { { { ) [ { { { { { JXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJX{ { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { M {.CXHXHXHXHXHXHXHXHXFXZXnXVXCXZXZXFXHXHXHXHXHXHXHXHXHXHXFXZXVX9Xu.R { { { { { { { { { [ { { { { { { { { { { { { { { { { { { { { | JXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXP { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { W 3XSXHXHXHXHXHXHXHXHXGX.X0.V.@X0XlXCXBXZXGXHXHXHXHXHXHXHXHXHXZXZXfXm.M { { { { { { { { { { { { { { ) { { { { { { { { { { { { { { { Q JXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJX) { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { [ 9.yXZXHXHXHXHXHXHXHXFXMXh.m R R ..r.B.5XlXCXFXFXHXHXHXHXHXHXHXHXFXZXbXm.M { { { { { { { { { { { { { { { { { { { { { { { { { { { { { ) JXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJX| { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { M f.bXFXHXHXHXHXHXHXHXZXhX9.] { { { R M W r.@XlXCXFXHXHXHXHXHXHXHXHXFXZXvXi.' { { { { { { { { { { { { { { { { { { { { { { { { { { { { | JXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXH { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { R /.CXFXHXHXHXHXHXHXFXSX3XW { { { { { { { ] R p.0XCXFXHXHXHXHXHXHXHXHXFXCX,X{ { { { { { { { { { { { { { { { { { { { { { { { { { { { { { J JXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJX^ { { { { { { { { { { { { { { { { { { { { { { ) { { { { { { ) { { { { { { { { { [ W 3XBXHXHXHXHXHXHXHXFXCX/.M { { { { { { { { { M ..3XCXFXHXHXHXHXHXHXHXHXZXbXs.M { { { { { { { { { { { { { { { { { { { { { { { { { { { | ( JXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJX) { { { { { { { { { { | { { { { { { { { ) { { { { { { { { { { { { { { { { { { { [ 9.hXZXHXHXHXHXHXHXHXFXmXf.R { { { { { { { { { { ' .jXSXHXHXHXHXHXHXHXHXFXCX].W { { { { { { { { { { { { { { { { { { { { { { { { { { { { { JXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJX| { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { R f.bXAXHXHXHXHXHXHXHXZXhX9.] { { { { { { { { { { | m V.CXFXHXHXHXHXHXHXHXFXZX5X) { { { { { { { { { { { { { { { { { { { { { { { { { { { { | JXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXH { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { M /.CXFXHXHXHXHXHXHXHXSX3XW { { { { { { { { { { { { ] e.nXFXHXHXHXHXHXHXHXHXBX9X .] { { { { { { { { { { { { { { ) { { { { { { { { { { { { { S JXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXP { | { { { { { { { { { { { { { { { { { { { { { { { { { [ { { { { { { [ { { { { { [ 3XCXHXHXHXHXHXHXHXFXCX/.M { { { { { { { { { { { { ] 0.kXFXHXHXHXHXHXHXHXHXZX9X6.] { { { { { { | | X.} } { { { { { { { { { { { { { { { { | K JXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJX! { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { ] 9.hXZXHXHXHXHXHXHXHXSXbXf.R { { { { { { { { { { { { ] g.MXFXHXHXHXHXHXHXHXHXBX0X) { { { { { { X.X.F B Z T { } { { { { { { { { { { { { { { { ! JXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJX) { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { M f.bXZXHXHXHXHXHXHXHXFXkX9.R { { { { { { { { { { { { M ^.CXFXHXHXHXHXHXHXHXHXCX$XW { { { { { X.F ; . & { U } { { { { { { { { { { { { { { ) JXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJX) { { { { { { { { { { { { { { { { { { { { [ { { { { { { { { { { { { { { { { { { R /.CXFXHXHXHXHXHXHXHXGX4XR ] { { { { { { { { [ { { M 6.jXZXHXHXHXHXHXHXHXHXFXVX^.] { { { { } T + : { o q X.{ { { { { { { { { { { { { | JXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJX| { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { W 3XSXGXHXHXHXHXHXHXHXGXaXl.9.W R M ] ] { ] { { ] M 7.5XCXFXHXHXHXHXHXHXHXHXZXlXg.R { { { { o.7 $ v w w 0 X T | { { { { { { { { { { { { | JXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJX| { { { { { { { { { { { { { { { ) { { { { { { { { { { { { { { { { { { { { { { ] 9.hXZXHXHXHXHXHXHXHXHXHXGXCXhX3X/.k.r.6...| { .e.D.hXBXFXHXHXHXHXHXHXHXHXFXBX8X{ [ { { { | } & N x.9 Z V o r o.{ { { { { { { { { { { { | JXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJX{ { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { ) { { { { { { R f.bXFXHXHXHXHXHXHXHXHXHXHXFXZXCXCXMXlXkX0X0X0XpXbXCXFXFXHXHXHXHXHXHXHXHXGXZXbXj.R { { { { } { + N O.- . [ O.> e X.{ { { { { { { { { { { { { JXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXd { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { ) { { { { { { { M /.CXFXHXHXHXHXHXHXHXHXHXHXHXHXHXFXFXZXZXSXSXSXZXSXFXHXHXHXHXHXHXHXHXHXHXAXVXXXR { { { { { { X.- & v X > z.T O Z } { { { { { { { { { { { { { s JXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXh | { { { { { { { { { { { { { { { { { { { ) { { { { { { { { { { { { { { { { { { [ ,XBXGXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXAXZXmX$X| [ { { { { { { X.y * 5 + * } { { { { { { { { { { { { { | S JXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXA { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { 6.hXZXHXHXHXHXHXHXHXHXFXGXSXFXFXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXGXCXvXR.) ] { { { { { { { { O.9 . B } { { { { { { { { { { { { { { F JXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXD | { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { R f.mXFXHXHXHXHXHXHXHXFXNX6XjXlXMXCXZXDXFXHXHXHXHXHXHXHXHXHXHXHXHXHXGXrXE.i.R { { { { { { { | [ * 6 X.Z 2 $ o O : B o.) { { { { { { { { { { { { { { F JXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXS | { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { R G.CXFXHXHXHXHXHXHXHXSX6XW ..r.N.#XwXlXCXCXAXFXHXHXHXHXHXHXHXHXHXHXGX%X` m { { { { { { { { X.r t o.o.} T E X.X.{ { { { { { { { { { { { { { { | a JXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXd { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { [ { { { { { { W 3XCXHXHXHXHXHXHXHXFXCX{.M { ] M R ..g./.0XbXCXZXFXHXHXHXHXHXHXHXHXFXGXkXf.M { { { { { { { X.y # o.{ { { } | { { { { { { { { { { { { { { { { { | s JXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJX{ { { { { { { { { { { { { { { { { { { ) { { { { { { { { { { { { { { { { { ] 6.hXZXHXHXHXHXHXHXHXAXmXl.M { { { { { R R { h.*XbXSXFXHXHXHXHXHXHXHXHXAXZXvXB.R { { { { { { { Z $ X B o.X.} { { { { { { { { { { { { { { { { { { { { JXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJX| { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { R h.bXZXHXHXHXHXHXHXHXSXhX9.[ { { { { { { { { M R g.5XCXZXFXHXHXHXHXHXHXHXFXZXgXN.R [ { { { { { $ . . < r T X.o.X.{ { { { { { { { { { { { { { { { { JXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJX| { { { { { { { { { { { [ { { { { { { { { { { { { { { { { { { { { { { { { M ^.VXFXHXHXHXHXHXHXHXSX3XR { { { { { { { { W { { R W {.MXZXHXHXHXHXHXHXHXHXHXNXkXr.] { { { } F . X - 4 y { { { { { { { { { { { { { { { { { JXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJX| { { { { { { { { { { { { { { { { ) { { { { { { { { { { { { { { ) { { { { W 3XSXHXHXHXHXHXHXHXFXCX/.R { { { { { { { { { { { { ] M ^.CXFXHXHXHXHXHXHXHXHXFXCX$X] { { { { [ C q < # : o.{ { { { { { { { { ) { { { { { { JXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJX) } { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { ] 9.yXSXHXHXHXHXHXHXHXFXbXl.M { { { { { { { { { { { { { ] W 3XCXHXHXHXHXHXHXHXHXHXZXkXe.R { { { { } o.O.X.A w < # 9 o.{ { { { { { { { { { { { { { { ( JXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJX( | { { { { { { { { { { { { { { { { { { { { { { { { { { { { [ { { { { { ' g.bXAXHXHXHXHXHXHXHXZXhX9.[ { { { { { { { { { { { { { { M l.CXFXHXHXHXHXHXHXHXHXFXbXm.R { { { } X.U B D X.O.O.{ C T | { { { { { { { { { { { { { { { ! JXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXQ { { { { { { { { { { { { { { { { { { { { { { { { { { { ) { ..W R ] ] [ m {.CXFXHXHXHXHXHXHXFXSX3X[ { { { { { { { { { { { { { { { ] 9.kXFXHXHXHXHXHXHXHXHXFXCX'.R { { X.U > . $ 0 } } } { { { { { { { { { { { { { { { { { Q JXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXG { { { { { { { { { { { { { { { { { [ { { { { { { { { { ] w.:XXXA.i.:.{ l.zXAXHXHXHXHXHXHXHXGXCX/.' { { { { { { { { { { { { { { { [ ..jXFXHXHXHXHXHXHXHXHXHXCX}.R { } U O < o.{ { { { { { { { { { { { { { { { { { G JXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJX| { { { { { { { { { { { { { { { { { { { { { { { { { { ' Y.bXbXMXbXyXqXnXSXHXHXHXHXHXHXHXHXAXMXh.' { { { { { { { { { { { { { { { ] r.lXFXHXHXHXHXHXHXHXHXFXCX[.R { o.> . 3 9 1 o w X.{ { { { { { { { { { { { { { { { | JXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJX{ { { { { { { { { { { { { ) { { { { { { { { { { { { ] 6.yXBXFXFXFXFXGXFXHXHXHXHXHXHXHXHXHXFXkX6.] { { { { { { { { { { { { { { { M V.CXGXHXHXHXHXHXHXHXHXFXCXG.R } U . y O.o.o.Y & * X.{ { { { { { { { { { { { { { { { | JXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJX! { { { { { { { { { { { { { { { { { { { { { { { { { R M.VXFXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXGX4XM ] { { { { { { { { { { { { { { ] ..wXSXHXHXHXHXHXHXHXHXHXZXbXj.M X.u O } { { { o.y O { } { { { { { { { { { { { { { { { ! JXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXK { { { { { { { { { { { { { { { { { { { ) { { { { [ { 8XZXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXsXV.r...R M R W { [ { { { { { ] M { &XCXFXHXHXHXHXHXHXHXHXHXZXkX0.] X.u . U o.{ { o.y # { { { { { { { { { { { { { { { { { J JXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJX..{ { { { { { { { { { { { { { { { { { { { { { { ' s.fXBXFXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXFXCXlX0X}.N.g.9.{ W W R R R ] 6.j.0XCXZXHXHXHXHXHXHXHXHXHXHXCX3X{ { { T . * V } o.T * , X.{ { { { { { { { { { { { { { { { JXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJX) { { { { { { { { { { { { { { { { { { { { { { { W K.tXbXBXDXFXFXGXHXHXHXHXHXHXHXHXHXHXHXHXHXFXFXSXCXCXbXhX0X$X|.[.{.}.3XhXMXSXAXGXHXHXHXHXHXHXHXHXHXFXmXB.R { { o.4 & - o B } { { { { { { { { { { { { { { { { JXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXK { { { { { { { { { { { { { { { { { { { { { { { { >.a.I.1XuXbXCXZXSXFXFXHXHXHXHXHXHXHXHXHXHXHXHXHXFXFXFXSXSXSXCXCXCXCXSXZXFXHXHXHXHXHXHXHXHXHXHXHXHXZXhX6.] { { | } < 9 o.{ { { { { { { { { { { { { { { { Q JXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJX{ { { { { { { { { { { { ) { { { { { { { { { { { ] R R ) 2.v.U.XuXkXgXZ.M { { { { { { { { { { { { { { { [ { { { { { { { { { { { { { { { { { { { { { { { { { { { { { S JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXK { { { { { { { { { { { { { { { { { { { { { ) { { [ { { { { { { { { { { { ] R ~ 2.a.P.3.] { { { { { { { { { { { { { { { ) { { { { { { { { { { { { { { { { { { { { { { { { { { { { Q JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX) { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { ] ] R [ { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { ( JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX) { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { [ { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { ) { { { { | ) JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX{ { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { | JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX) { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { ) { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX{ { { { { { { { { { { { { { { { { { { { { { { ) { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { ) { { { { { { { { { { { { { { { { { { JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX| { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX{ { { { { { { { { { { { { { { { { { { { { { { { W { { { { { { { ) { ) { { { { { { { { { { { { { { { { { { { { { { { { { ) { | { { { { { { { { { { { { { JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX) { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { ) JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX( { { { { | { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { } ! JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXQ { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { Q JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXG | { { { { { { { { { { { { { { { { { { { { { { { { { { { ) { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { ) G JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX! { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { ! JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJ { | { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { [ { { { { { ) { { { { { { { { J JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX! { { { { { { { { { { { { { { { { { { { { { { { { { { { { { [ { { { { { { { { { { { { { { { { { { { { { { { { { { ! JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX( { { { { { { { { { { { { { { { { { { { { { { { { { { { { { | { { { { { { { { { { { { { { { { { { { { { | ( JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX( { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { ( JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX( | { { { { { { { { { { { { { { { | { { { { { { { { { { { { { { { { { { { { { { { { { { { ( JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXK ) { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { { ) K JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXQ ) | { { { { { { { { { { { { { { { { { { { { { { { { { { { { { | { ) Q JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXK ( | { { { { { { { { { { { { { { { { { { { { { } { | { ! K JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXG Q ! ) ) { | { | { { { { { ..{ { { ( ! Q G JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXp F D F A i JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX", -"JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX" +" ", +" ", +" JXJXJXJXJXJXJXJXJXJXJXJXJXJXJX ", +" JXJXJXJXJXJXFXmXgXXlXJXJXJXJXJX ", +" JXJXJXJXgXD.@.v v Z Z.-X8XlXLXJXJXJXJXJXJXJXJXJXJXHXLXgX2XD.D M i n V &XjXJXJXJXJX ", +" JXJXHX8X@.B v $.-XgXKXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXLXwXS.N 6 m D dXJXJXJX ", +" JXKXJXhXD.v v D.iXKXJXKXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXGX2XC 7 y F AXJXJXJX ", +" JXJXKX8Xo.v @.wXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX>XN : M 1XJXJXJX ", +" JXJXJX:Xo.v -XKXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXmXF - y >XJXJXJX ", +" JXJXJX;Xv o.,XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX=X; ; >XJXJX ", +" JXJXwXo.o.8XJXKXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX*X: 7 gXJXJX ", +" JXJXFX@.{ 7XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXF O G JXJXJX ", +" JXJX8Xd Z.GXKXKXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXKXKXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXlXn = 2XJXJX ", +" JXKXo.o.8XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXlX2X$XC B m n n y n 7 n n n N G =XXXm - N jXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXZX= N JXJX ", +" JXGX..G.JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXwX7 : D KXKXKXeXZ.j t t t P P P W Y R ' IX$X] ] ] ] ] ] G p t p p 1 < < < 1 ' gXKXJXcXS = N jXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKX; ; JXJX ", +" JXLXo.K.JXJXJXJXJXJXJXJXJXJXJXJXJXJXkXM $ #.KXJXSXF.j 9 t P P P U R U U U U U %X=X=X=X=X=X=X=X=X' L L L L t L F G M < < L 3XKXKXSXS $ S SXJXJXJXJXJXJXJXJXJXJXJXJXJXJXn - KXJX ", +" JXFXX.{.JXJXJXJXJXJXJXJXJXJXJXJXJXJXF = S KXJXkXZ.t 9 c j P U R E E E ! ! ! T / >X2X>X>X>X>X>X*X2X' J R L L L ' =X=X=X] ' p < 1 ' GXKXZXm = =XJXJXJXJXJXJXJXJXJXJXJXJXJXJXM : JXJX ", +" JXKXX.7XKXJXJXJXJXJXJXJXJXJXJXJXJXfX: 7 lXJXLXZ.9 9 j P P I U U E >.E >.>.! -.T F.sX.,.>.,.,.,.T :XcXfXfXdXfXdXPXfXwX! T ! ! Q ( 3XPX2X2X>X>X>X3X>X$Xp 1 p 4XJXJXS O *XJXJXKXJXJXJXJXJXJXJXJXJXJXy n JXJX ", +" JXKX7.G.JXJXJXJXJXJXJXJXJXJXJXJXKXn = lXJXwXp & 9 j j j I U E E >.>.>.,.,.,.,.,.,.T eXZXkXkXjXjXjXjXcX5XT u.~ ~ T ~ 5XfXdX.-.>.,.,.,.1.p.p.p.2.xXLXZXZXAXZXZXZXGX4XT ,.,.u.T A.lXlXjXzXfXdXPXPXPXF.J ( R L 1 1 4XJXGX; - GXJXJXJXJXJXJXJXJXJXJXJXGXO &XJX ", +" JX7X..HXJXJXJXJXJXJXJXJXJXJXJX.,.>.-.-.-.0.p.u.0.L.KXLXSXSXSXSXZXSXKXI.T u.,.u.T I.LXcXkXkXlXjXjXzXzX` ( Q R R L K 1 ' KXKXN O kXJXJXJXJXJXJXJXJXJXJXJXlX. dXJX ", +" JXbXX.BXJXJXJXJXJXJXJXJXJXJXJX2XX >XJXwX8 & w r j j j I U &.;.>.-.,.xXbX6XI.Y.,.0.0.T U.KXGXGXLXGXLXGXGXGXY.9.d.u.u.) 4XKXSXDXAXAXAXZXZXkX/ Q / Q Q Q Q L K Q AXKX] o zXJXJXJXJXJXJXJXJXJXJXJX>XO SXJX ", +" JXGX+.9XJXJXJXJXJXJXJXJXJXJXJX>XX .<.-.8.JXJXJXJXGXmXtXU.Y.tXJXKXKXKXKXKXKXKXMXd.d.d.d.d.t.xXKXGXLXLXSXSXAXGXxX` ^ ~ ~ ! / Q Q Q K L xXGX=X. zXKXJXJXJXJXJXJXJXJXJXJXS y JXJX ", +" JXKX].].KXKXJXJXJXJXJXJXJXJXJX2XX wXJX-X& 8 r r h x I I &.;.;.;.>.<.T I.JXJXKXJXJXJXJXKXJXKXKXHXHXKXKXHXKXJXrX9.d.s.s.d.i.DXKXKXGXGXGXLXLXKX4XT ` ^ ` ~ ^ / Q Q Q K K zXJX*Xo zXJXJXJXJXJXJXJXJXJXJXJX= %XJX ", +" JXiXO.KXJXJXJXJXJXJXJXJXJXJXwXX XJX:X# 9 w r j x x I &.&.;.<.<.<.1.1.0.aXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXGXnXrXU.L.9.6XJXJXJXJXKXKXKXKXKXY.` t.u.u.y.` ` ` ^ ^ / / ( K xXKXF $ KXJXJXJXJXJXJXJXJXJXKXS.; JXJX ", +" JX[.].JXJXJXJXJXJXJXJXJXJXKX$ D.JX,X& 8 r h j x x I %.&.&.<.<.1.1.1.-.p.FXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXMXFXJXJXHXJXJXJXJXJXMXt.u.i.i.i.y.y.y.` ` ^ ^ / / J J xXKXN n KXKXJXJXJXJXJXJXJXJXJX= *XJX ", +" JXNX+.FXJXJXJXJXJXJXJXJXJXJXm V JXgX& 9 q q g x I I &.&.&.-.<.1.1.1.p.0.L.JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXJXJXJXJXKXJXJXJXrX) t.i.s.i.i.i.y.y.y.` ` ` ^ / J Q GXKX= F JXJXJXJXJXJXJXJXJXJX8X$ KXJX ", +" JXJXE.{.JXJXJXJXJXJXJXJXJXJX%X: JXDXe 8 q :X:XZ.c %.%.&.;.<.<.<.p.1.1.1.0.+XKXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXMX6XP.t.9.t.i.i.i.i.y.` ` ` ` ` Q K / KXDX. XO KXJXJXJXJXJXJXJXJXJXkXO AXJX ", +" KXKX7.yXJXJXJXJXJXJXJXJXJXJX6 &XJXK.& w q :.HXJXJ.Y ;.eX0XH.-.-.I.OXL.p.0.t.MXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXHXrXY.) i.g.i.i.y.` ` ` ` ( K fXKXN N KXJXJXJXJXJXJXJXJXJXS N JX ", +" JXiXE.JXJXJXJXJXJXJXJXJXJXS.6 JXhX& q h q H.JXJX8.=.<.JXJXqX-.-.xXJXCX0.0.x.HXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXJXJXKXrXg.` g.i.i.y.` ` ` ^ ( Q GXKXO 1XJXJXJXJXJXJXJXJXJXAX$ kXJX ", +" JXJXE.yXKXJXJXJXJXJXJXJXJXAX@ lXJXh 8 g z g 4XJXSX:.=.H.KXJXI.-.p.FXJXrX0.0.P.JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXJXJXJXJXHXU.) i.i.i.` ` ` ^ ^ K F.KX>X$ JXJXJXJXJXJXJXJXJXJXC S KX ", +" JXiXE.JXJXJXJXJXJXJXJXJXJXB D KXJ.& h z z l iXJXiX=.Y OXKXHX8.-.n.JXJXU.0.9.qXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXtXw.` g.i.i.` ` ^ ^ K xXJX- $XJXJXJXJXJXJXJXJXJXkX= LXJX ", +" JX].{.JXJXJXJXJXJXJXJXJXgX* KXDX8 q h x l %.FXJXFXiXI.bXJXaX-.-.I.JXJXL.0.r.tXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXnXi.` i.y.y.y.` ^ ( / GXzXO GXJXJXJXJXJXJXJXJXJXm S.JX ", +" JXFXE.FXJXJXJXJXJXJXJXJXJXu %XKXZ.8 h z x l H.JXJXJXHXJXJXJXFXqXP.tXJXFXf.9.f.FXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXnXt.` g.y.y.` ^ ^ K 5XKXn ' JXJXJXJXJXJXJXJXJX1X- JXJX ", +" JX{.].JXJXJXJXJXJXJXJXJXgX6 JXkX3 s z x | l H.bXHXJXJXJXJXJXJXJXJXJXJXtXe.9.Y.JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXtX` i.i.y.` ` ^ ( Q KXzX= GXJXJXJXJXJXJXJXJXJX; ,XJX ", +" JXJX].yXKXJXJXJXJXJXJXJXJXB $.JXZ.3 h z I %.&.&.=.&.8.OXtXVXJXJXJXJXJXJXqXq.q.U.JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXFXnXHXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX6X_ i.i.y.` ^ / K 4XKXn #.JXJXJXJXJXJXJXJXJXF N JX ", +" JXNXE.JXJXJXJXJXJXJXJXJXAX6 LXMX0 g z x %.%.&.=.1.I.oX8.-.0.L.U.qXnXFXJXU.9.q.qXKXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX6X_ g.U.qXnXFXKXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXGXi.` g.y.y.` ^ ( / KXPX= KXJXJXJXJXJXJXJXJXjX- KXJX ", +" JX{. XJXJXJXJXJXJXJXJXJX$.B JXK.3 h z | %.=.=.H.FXHXJXKXMXn.0.0.0.0.e.P.Y.w.w.nXHXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXP.w.w.w.r.r.N.P.+XrXnXHXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKX6X) g.y.y.` ^ ^ K tXKX; >XJXJXJXJXJXJXJXJXJXy >XJX ", +" JXE.pXJXJXJXJXJXJXJXJXJX6 wXJXw q h x %.%.=.<.FXJXJXJXJXJXFXz.0.q.f.U.qXw.w.g.HXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXg.w.g.g.N.f.f.f.e.e.m.N.+XnXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXGXi.` i.i.` ^ ^ J ' KX[ n KXJXJXJXJXJXJXJXJXF N JX ", +" JXBXE.FXJXJXJXJXJXJXJXJXwX6 JXwX3 h z | %.%.=.OXJXJXVXtXKXJXJX+XP.tXHXJXnXr._ P.JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXMXw.g.g.g.f.m.f.m.N.N.m.m.e.e.+XHXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXKXU.) i.y.y.` ^ ( ( SXLX= SXKXJXJXJXJXJXJXJXdX; JXJX ", +" JXyX].JXJXJXJXJXJXJXJXJXZ D JX@.8 g x | *.&.=.iXKXHXc.-.U.JXJXHXJXJXJXJX6X_ _ 6XKXKXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXrX_ g.f.f.f.N.N.N.N.N.N.N.B.M.e.P.HXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXrX9.i.u.y.^ ` Q K 4XKXn =XJXJXJXJXJXJXJXJXJX7 dXJX ", +" JX XXXJXJXJXJXJXJXJXJXJXy gXJX0 s z x %.&.=.6.MXJXnX-.-.n.JXJXJXJXJXHXtXP._ _ xXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXU._ g.g.f.f.f.N.N.m.N.M.M.M.N.M.e.+XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXnXt.i.i.i.` ` ` J ' JX&Xn KXJXJXJXJXJXJXJXJXC S.JX ", +" JX}.iXJXJXJXJXJXJXJXJXgXi JX8X4 h l | %.=.=.8.JXJXOX-.0.+XJXJXHXtXU.g.q._ g._ MXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXP.w.f.f.f.N.m.m.m.M.M.M.M.M.V.N.C.B.HXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXMXt.s.i.y.u.` Q Q J FXSX- GXJXJXJXJXJXJXJXJX$XM JX ", +" JXFXE.HXJXJXJXJXJXJXJXJXS.C JXZ.3 k z | *.*.=.OXJXJXaXU.n.tXKXHXf._ _ w.g.g.g.g.KXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXFXg.w.f.f.f.N.m.N.N.N.M.M.M.M.V.N.V.V.MXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXFXs.t.i.i.y.` ^ ^ K 4XKX7 1XJXJXJXJXJXJXJXJXdXy JXJX ", +" JXpX].JXJXJXJXJXJXJXJXJXB &XHXb 0 z | | *.*.=.tXJXJXJXJXJXJXJXHXP.f.f.q.w.g._ U.JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXtXw.f.g.N.N.f.N.N.N.V.M.M.M.B.B.M.m.V.MXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXMXs.t.s.i.y.` ^ Q K F.JXS G JXJXJXJXJXJXJXJXGXy lXJX ", +" JXXX XJXJXJXJXJXJXJXJXKXu kXFX0 s k x | *.6.=.iXHXJXJXJXJXJXJXJXJXJXMXrXP.w._ 6XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXqXq.f.f.f.m.m.m.M.V.N.V.V.B.M.M.B.m.B.HXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXMXs.s.i.i.i.` ` ~ ( / KX*Xn JXJXJXJXJXJXJXJXJXm >XJX ", +" JX XXXJXJXJXJXJXJXJXJXlX6 JXwX3 f z | %.*.<.5.6.c.oX0XuXMXJXJXKXJXJXJXJXP._ _ tXJXJXJXJXJXJXJXJXJXJXKXJXJXJXJXJXJXJXP.q.f.N.m.m.m.M.M.V.V.V.M.B.V.V.V.k.+XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXnXt.s.s.i.d.y.^ ~ Q J FXcX; KXJXJXJXJXJXJXJXJXC S.JX ", +" JX[.pXJXJXJXJXJXJXJXJX>XM JXK.3 d z | *.*.4.8.5.=.-.k.v.L.L.P.qXMXJXJXKXg.w.g.FXJXJXJXJXJXJXJXJXJXJXKXJXJXJXJXJXJXJXP.w.e.r.e.C.m.m.V.V.m.V.V.V.V.B.m.e.aXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXqXr.s.s.a.u.u.` ~ Q K eXJX6 hXJXJXJXJXJXJXJXJXS.C JX ", +" JXJX].NXJXJXJXJXJXJXJXJX#.Z JXZ.5 s x | *.*.5.5.6.OXCXKXJXFXaX+XC.q.V.+XU.w.w.g.JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXFXtXqXP.B.C.k.k.k.m.V.V.V.b.C.k.qXHXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXU.9.x.s.s.i.u.u.~ / K 4XJXn >XJXJXJXJXJXJXJXJX*XM JX ", +" JXFX!.FXJXJXJXJXJXJXJXJXZ %XJXv 3 k } | *.*.=.6.tXKXJXJXJXJXJXJXHX+Xq.r.r.f.r.+XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXHXMXrX+XP.V.C.k.k.C.B.aXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXHXx.s.s.s.i.a.u.` ~ ! K F.JXV $XJXJXJXJXJXJXJXJX8Xm JX ", +" JXNX}.KXJXJXJXJXJXJXJXJXB ;XKXw 0 d z | ..*.3.0XJXJXJXJXHXJXJXJXJXJX+Xr.C.f.w.qXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXHXJXJXFXaXaXrXnXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXtXC.x.s.s.s.a.u.,.~ / K A.JXF S JXJXJXJXJXJXJXJXjXu GXJX ", +" JXiX|.JXJXJXJXJXJXJXJXJXm sXJX0 a g } X.*.=.8.JXJXJXOXW.c.v.+XFXJXJXHXM.e.C.e.nXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXP.C.s.x.s.s.a.a.u.^ ~ J / JX&XV JXJXJXJXJXJXJXJXDXy DXJX ", +" JXpX XJXJXJXJXJXJXJXJXJXm lXmX3 a d k | ..3.7XJXJXOX6.6.j.j.h.v.MXJXJX+Xe.e.N.HXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXaXe.M.x.x.s.s.s.u.u.,.~ Q W JX>XM JXJXJXJXJXJXJXJXGXu lXJX ", +" JXyX XJXJXJXJXJXJXJXJXLXy SXhX3 a d } | ..=.iXJXBX6.6.R.R.c.c.h.oXJXJXrXk.q.P.KXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXHXM.z.x.M.x.s.s.a.a.,.,.~ ( R JX1Xm JXJXJXJXJXJXJXJXKXu gXJX ", +" JXyX XJXJXJXJXJXJXJXJXDXu GXwX5 a d } X...3.BXJXaX5.(.6.).).^.j._.JXJXaXk.k.+XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKX+XC.x.x.x.x.a.x.a.u.u.,.~ R R HX8Xn JXJXJXJXJXJXJXJXJXu dXJX ", +" JXyX XJXJXJXJXJXJXJXJXAXy KXwX5 a d z | .*.mXJXBX6.R.W.R.).^.h.'.KXJXqXk.k.aXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXHXqXk.V.n.n.x.x.x.x.a.p.u.2.! T R HXdXn JXJXJXJXJXJXJXJXJXm wXJX ", +" JXyX XJXJXJXJXJXJXJXJXDXu KX8X% 0 d k | .. .iXJXHX0X5.6.R././.R.uXJXJXoXh.v.VXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX+Xk.V.b.V.V.M.x.x.a.a.a.,.,.~ ! R HXsXn JXJXJXJXJXJXJXJXJXM wXJX ", +" JXyX XJXJXJXJXJXJXJXJXDX7 KXwX5 0 d d } .. .[.JXJXJXuXoXR.R.R.+XJXJXHX`.h.B.HXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXCXoXk.V.b.n.b.z.n.x.z.z.a.p.u.,.~ T R JX8Xm JXJXJXJXJXJXJXJXJXu dXJX ", +" JXyX XJXJXJXJXJXJXJXJXLX7 LXhX5 0 s k X... . .iXJXJXJXJXVXCXFXKXJXJX+X/./.oXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXnX+Xk.j.B._.V.V.V.V.n.x.z.l.a.p.2.,.~ Q R JX1XM JXJXJXJXJXJXJXJXKXu gXJX ", +" JXpX XJXJXJXJXJXJXJXJXKXm kXvX5 4 f f X.} J.iX3.iXJXJXJXJXJXJXJXJXuX/.^./.uXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXqXv.j.k.v.V._.V.b.b.b.n.n.z.x.z.a.a.p.,.,.U ! JX>XM JXJXJXJXJXJXJXJXGXu AXFX ", +" JXpX|.JXJXJXJXJXJXJXJXJXy wXGX5 4 a d d X.BXHXpX3.OXVXJXJXKXJXCX#XR./.(./.aXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXaXaXFXHXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXCXoXk.v.b._.V.V.v.b.b.b.z.z.l.s.p.p.,.,.~ U / JX&XA JXJXJXJXJXJXJXJXDXu GXCX ", +" JXBX~.JXJXJXJXJXJXJXJXJXM >XJX4 3 a d d G.JXKX0XO.3.5.W.#X@X#XW.#X#X/./.(.VXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXv.h.V.oX+XuXCXHXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXHX+Xh.v.b._._.b.v.b.n.z.l.z.a.l.p.u.2.,.Y A.JX#.D JXJXJXJXJXJXJXJXjXu JXaX ", +" JXFX|.FXJXJXJXJXJXJXJXJXV %XJXi 5 a d d eXJXFX5.3.T.T.T.T.T.W.FXJXuX/./.oXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXVXj.j.`./.h.h.v._.+XuXaXHXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX+Xk._.b.b.v.b.b.n.c.n.l.l.l.p.1.,.>.Y I.JXC %XJXJXJXJXJXJXJXJXXm JXD.+ a a { vXJXiX .5.T.T.E.T.R.W.HXJXuXR.R.uXHXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX+X/.`.`.`.(._._._._._._.`.h.k.+XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXHXb.j.v.b.v.c.c.z.z.l.l.l.1.p.,.! Y tXJXi lXJXJXJXJXJXJXJXJXS.D JX ", +" JXXX@XJXJXJXJXJXJXJXJXjX6 JX,X+ 4 a a vXJXHX7. .5.T.5.R.T.#XJXJX@XR.R.CXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXoX/.(.`.(._._.`.`._._.v._._._.h.oXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXaXh.v.c.c.b.z.c.l.l.p.p.1.,.,.! ( FXcXu KXJXJXJXJXJXJXJXJXZ %XJX ", +" JXXXXXJXJXJXJXJXJXJXJXKX7 kXLX% 3 a a 7XKXJXbX4.O.5.5.5.R.BXJXJXW.R.W.FXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXFX'./.(.(.`.(.(.`.`._._._._._._.v.k.uXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXoXh.c.c.c.c.l.l.l.l.p.1.,.>.T ,.JX>Xv JXJXJXJXJXJXJXJXJXB .Y F.KXD S.JXJXJXJXJXJXJXJXKXi SXVX ", +" JXBX~.HXJXJXJXJXJXJXJXJX#.V KX@.+ 0 a a J.KXJXJXJXJXJXJXJXJXHXW.R.R.@XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXuX/.(.(.(.(.(.(.(.(.`._._._._._._.`.j.CXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXVXc.l.c.l.l.l.8.l.p.1.1.,.! Y 0XJXu ,XJXJXJXJXJXJXJXJXdXu JXaX ", +" JXJX|.pXJXJXJXJXJXJXJXJXdX6 KX8X+ 4 a a d J.JXJXJXJXJXJXJXJX@XR.R.R.uXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX@X/.(.(.(.(.(.(.(._._.(._.`._._.b.v.j.aXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXoXk.c.l.l.l.l.1.1.1.<.>.U Y SXSXi GXJXJXJXJXJXJXJXJXK.Z JX ", +" JX.XyXJXJXJXJXJXJXJXJXJX7 jXKX5 5 a d d { ..7XiXFXFXBXyXW.T.!.R.R.BXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX#X/.(.(.(.(.(.(.`.(.(._.`.`.`._._.`.h.aXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX+X6.l.l.8.l.1.1.1.1.,.>.Y A.HX-XB JXJXJXJXJXJXJXJXJXZ &XJX ", +" JXyX.XJXJXJXJXJXJXJXKXKXV $.KXZ + a a d } { } .5.7.5.T.T.T.R.R.W.HXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXFX(./.W.(.(.(.(.(.(.'._.(._._._.`.`.v.v.FXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXHXqX0.8.l.l.8.1.1.1.<.>.>.Y 4XKXH &XJXJXJXJXJXJXJXJXKXu cXHX ", +" JXBX~.HXJXJXJXJXJXJXJXJX1X6 JX,X+ 4 a d { } ..O.O.3.5.5.T.T.!.T.#XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXaXR.^.(.(.(.(.(.(.(.(.`.(.`._._._._.h.oXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXqX6.l.l.8.1.1.1.<.>.! I Y MXSXi DXJXJXJXJXJXJXJXJXfXu JXaX ", +" JX|.pXJXJXJXJXJXJXJXJXJX- fXJX4 5 a a { { X...O.7.5.T.T.T.R.T.yXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX@XR.^.(.(.(.(.(.(.(.(.(.`.(._._.(.v.h.aXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXqX6.8.8.1.1.<.,.>.>.;.Y A.JX&XB JXJXJXJXJXJXJXJXJXD.Z JX ", +" JXXXXXJXJXJXJXJXJXJXJXJXD B JX$.+ a a d { X.X.O.4.5.5.5.T.T.T.pXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXuX(.^././././.(.(.(.(.(._._._._._.h.oXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX0X-.1.1.1.<.<.>.>.&.U c eXHXi >XJXJXJXJXJXJXJXJXJXB 1XJX ", +" JXNX~.JXJXJXJXJXJXJXJXJXcX: GXDX5 5 a a { X.X...O.O.4.7.T.T.T.FXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXHXCXuX@X#X(././././.(.^.).^./.h.'.FXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXI.-.1.<.<.>.>.>.! U Y W JXfXi JXJXJXJXJXJXJXJXJXvXi JXCX ", +" JXJX~.pXJXJXJXJXJXJXJXJXJXM $.KX@.+ 4 a d o.{ X.O.4.4.5.T.T.W.KXKXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXFXaXuXOX'.).^.^.).oXuXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXH.-.<.<.;.<.>.E U P t 4XJXB S.JXJXJXJXJXJXJXJXJXS.Z JX ", +" KX@X.XJXJXJXJXJXJXJXJXJXfX: KXvX% 4 a d d { X...O.O.O.5.5.{.JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXFXCXCXVXHXHXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXVX-.-.<.-.;.&.E E I P j HXmX* SXJXJXJXJXJXJXJXJXJXv 8XJX ", +" JXFX!.FXJXJXJXJXJXJXJXJXKXu %XKX@.+ a a d { { X...+.4.4.O.yXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX0XY <.;.;.E U U P P 9 :XJXV D JXJXJXJXJXJXJXJXJXwXi JXCX ", +" JX.X@XJXJXJXJXJXJXJXJXJXgX$ KXDX5 5 a a d { X.X.O.O.4.3.NXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXH.=.;.&.E U I I P t P JXlX* SXJXJXJXJXJXJXJXJXJXZ D.JX ", +" JXpX~.JXJXJXJXJXJXJXJXJXJXB G JXD.+ a a d f { X.X... .7.GXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXxXU &.U U I I P j j 9 eXJXu S.JXJXJXJXJXJXJXJXJXAXe GXFX ", +" JXJX~.yXJXJXJXJXJXJXJXJXJXZX@ lXJXi % 4 a d { { X.X. .G.JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXH.l U U I I P j j < ' KX1X* JXJXJXJXJXJXJXJXJXJX$.$.JX ", +" JXpX!.JXJXJXJXJXJXJXJXJXJXS.6 JXgX+ 5 a a d { { X.{ 7XJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXiXY I I P j j j r 9 9 DXJX* 2XJXJXJXJXJXJXJXJXJXLXi vXJX ", +" JXJX~.yXJXJXJXJXJXJXJXJXJXJX6 &XKX$.@ 4 a a a { { { G.0XbXFXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXJX;.c I j j j r p t , 5XJXC M JXJXJXJXJXJXJXJXJXJX$.@.JX ", +" JXpX!.JXJXJXJXJXJXJXJXJXJXfX+ cXKXv + 4 a a d { { { { .+.G.{.iXVXJXKXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXH.c j j j j t r w , ' JX1X@ SXJXJXJXJXJXJXJXJXJXDX4 AXJX ", +" JXJX~.yXJXJXJXJXJXJXJXJXJXJX%X6 KXZX% % a a a d d { } X.} . . .4.7.bXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXJ.t j j j p t r 9 , p JXGXo 1XJXJXJXJXJXJXJXJXJXJX@.$.JX ", +" JXNXQ.FXJXJXJXJXJXJXJXJXJXJXu C KXwX+ 5 4 a a s d { } X.X...O. . .iXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJ.t g j r r w r e , , DXJX; D JXJXJXJXJXJXJXJXJXJXhXi GXHX ", +" JXXX.XJXJXJXJXJXJXJXJXJXKXKX$ &XJX;X+ 5 4 4 a s d d { X.X.| .7.KXJXJXJXJXJXJXJXHXpX0XbXFXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXmXZ.9 j r r r w 9 e < # wXJXC 7 JXJXJXJXJXJXJXJXJXJXJXv -XJX ", +" JXHXQ.pXJXJXJXJXJXJXJXJXJXJXlXX ,XJX&X+ 5 4 4 a a d d { { o.{ G.JXKXKXJXJXJXJXJXJX[.3.6.5.[.OXnXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXHX4Xj 9 r p r r r < 9 , > 5XJX$XO GXJXJXJXJXJXJXJXJXJXJX-Xv JXVX ", +" JXpXQ.JXJXJXJXJXJXJXJXJXJXJX ,XKX*Xo kXJXJXJXJXJXJXJXJXJXJXmX4 vXJX ", +" JXJX.X.XJXJXJXJXJXJXJXJXJXJXJX>XX gXJX%XX 5 4 4 0 a a d d d 8XJXSXSXLXLXGXKXJXvX=.5.*.5.=.3.mXJXKXJXJXJXJXKXJXVXiXMXFXJXJXJXKXJXJXHXFXhX:XZ.h q q h r w e e , , , # > ,XJX>X. fXJXJXJXJXJXJXJXJXJXJXJXv -XJX ", +" JXJXQ.pXJXJXJXJXJXJXJXJXJXJXJX;XX dXJX-X+ + 4 4 4 a a a d fXSXAXAXSXSXSXLXJX0X .*.7.*.3.7.HXJXJXKXKXHXHXJXHX7Xl *.:.H.H.H.H.H.Z.:.j g q g r r w w w e 9 , 2 , > * wXKX*Xo dXJXJXJXJXJXJXJXJXJXJXJXK.v JXVX ", +" JXNXQ.NXJXJXJXJXJXJXJXJXJXJXJX;XX 2XJX8X@ + 5 3 4 4 4 b zXzXjXkXkXAXZXSXJXJ.} *.3... .H.HXKXKXKXKXKXKXKXJXH.l | l l g k g g g s g g h r w w e e e , , , , . 2 lXJX$Xo fXJXJXJXJXJXJXJXJXJXJXJX8X0 LXVX ", +" JXyXQ.JXJXJXJXJXJXJXJXJXJXJXJX1Xo %XJXAX6 X 5 3 3 4 v PXX3X2X1X *XJXJX7 = SXJXJXJXJXJXJXJXJXJXJXJXKXf -XJXuX ", +" JXJX~..XJXJXJXJXJXJXJXJXJXJXJXJXLX7 - ZXKX,X6 X + Z =X=X=X*X>X>X2XzX-Xs k k } k z fXSXkXkXAXkXAXAXKX:Xs h k h h f f w w q e e e 8 , 8 & & & > . y jXJXdXO N JXJXJXJXJXJXJXJXJXJXJXJXJXo.@.JXnX ", +" JXJXQ.XXJXJXJXJXJXJXJXJXJXJXJXJXJXF o *XJXJX#.+ X i D ] [ $X=X*X2XS.0 d d f s o.zXzXgXzXzXzXzXjXSXZ.0 g f s w w a e e 8 8 8 3 & & & & # . $ &XKXJXS O *XKXJXJXJXJXJXJXJXJXJXJXJXKX@.o.JXJX ", +" JXFXQ.yXJXJXJXJXJXJXJXJXJXJXJXJXJXX>X>X>X>X1X2Xi 8 e e 0 8 8 8 3 , * & * & # . > G AXKXLXN $ $XJXJXJXJXJXJXJXJXJXJXJXJXJXKXG.f JXJX ", +" JXBXQ.@XJXJXJXJXJXJXJXJXJXJXJXJXJXJXzX7 $ $XJXJXlXD % X + 6 3 3 4 0 0 4 G $X[ $X=X=X=X*X>X' 5 8 3 3 8 5 & & & & * # . . - S.LXKXKXS $ V DXJXJXJXJXJXJXJXJXJXJXJXJXJXJXZ.v JXJX ", +" JXFXQ.XXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX,X6 : #.JXJXJX;XB % + X % 5 3 8 S G F G ] F ] F =XA % 8 5 3 & & % # o . . * C 1XKXKXSXS = n zXKXJXJXJXJXJXJXJXJXJXJXJXJXJXJXo.o.JXJX ", +" JXHX!.|.JXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX2Xn : C fXJXJXHX,XD i % + + o * * y y n m M N 5 # % # o o . o # i D 1XJXJXKX1XN : N zXKXJXKXJXJXJXJXJXJXJXJXJXJXKXKXDXo.@.JXJX ", +" JXHX|.!.FXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXjXS 7 7 F gXJXJXJXSX,XD.A i 4 % # # # # o # # * i u Z %XX$XC M m n n y 7 y y n n M C $X>XjXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXKXJX8X{ G.JXJX ", +" JXJXyXQ.XXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXGXLXGXKXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXDX@.X.8XJXJX ", +" JXJXBX|.!.yXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX{...K.JXJXJX ", +" JXJXpX!.!.pXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJX7Xo.+.vXJXJX ", +" JXJXJXyX!.|.pXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKX7X+.+.eXJXKX ", +" JXJXJX9X!.}.yXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXLX{.+.+.7XJXJXJX ", +" JXJXJXyX}.!. XNXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXeX].+.G.eXJXJXJX ", +" JXJXJXiXXX!.}.XXNXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXHXiX].+.+.{.BXJXJXJX ", +" JXJXJXHXiX X!.}. XyXBXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXJXKXJXJXKXKXbX7X].7.G.[.hXJXJXKX ", +" JXJXJXJXpXXX XE.!. X{.yXiXBXHXJXJXJXJXJXJXJXJXJXJXJXHXBXiX9X{.].E.7.].7XvXJXJXJXJX ", +" JXJXJXJXHXNX9XXX X}.E.E.}.].[. X[.[.[.[.].].].E.E.].].{.7XNXKXJXJXKXJX ", +" JXJXJXJXJXJXFXBXNXpXyXyXyX9X9X9XyXiXNXBXLXJXJXJXJXJXJX ", +" JXJXJXJXKXJXKXJXJXJXJXKXJXJXJX ", +" ", +" " }; diff --git a/share/pixmaps/bitcore16.png b/share/pixmaps/bitcore16.png deleted file mode 100644 index 5c83e803..00000000 Binary files a/share/pixmaps/bitcore16.png and /dev/null differ diff --git a/share/pixmaps/bitcore16.xpm b/share/pixmaps/bitcore16.xpm index b33eb208..82c66368 100644 --- a/share/pixmaps/bitcore16.xpm +++ b/share/pixmaps/bitcore16.xpm @@ -1,118 +1,177 @@ /* XPM */ -static char *_ba52cdd92fa46b1f3b129402899881f[] = { +static char *ay98n_63giy[] = { /* columns rows colors chars-per-pixel */ -"16 16 96 2 ", -" c #78154E", -". c #830F51", -"X c #850C50", -"o c #A71167", -"O c #B12173", -"+ c #BA2379", -"@ c #BF237C", -"# c #C51E7D", -"$ c #F81998", -"% c #FB1B9B", -"& c #FC1C9C", -"* c #FC1E9D", -"= c #E22A93", -"- c #F12499", -"; c #FA239D", -": c #F42E9D", -"> c #F52E9D", -", c #F42F9D", -"< c #F52E9E", -"1 c #F72E9F", -"2 c #F4309C", -"3 c #F4309D", -"4 c #F4329C", -"5 c #F6309E", -"6 c #FB26A0", -"7 c #FB27A0", -"8 c #FC27A1", -"9 c #F72EA0", -"0 c #F92AA0", -"q c #FB2AA2", -"w c #FB2BA2", -"e c #FC28A1", -"r c #FC29A2", -"t c #FC2BA2", -"y c #F82CA1", -"u c #F82DA1", -"i c #FA2DA1", -"p c #F92EA1", -"a c #FB2CA2", -"s c #FB2DA2", -"d c #FB2CA3", -"f c #FA2EA2", -"g c #FA2FA2", -"h c #FB2EA3", -"j c #FB2FA3", -"k c #FA2EA4", -"l c #FC2EA4", -"z c #FD2EA4", -"x c #FD2FA5", -"c c #FD2FA8", -"v c #F834A3", -"b c #F934A3", -"n c #FA35A4", -"m c #F939A4", -"M c #FF30A9", -"N c #FF30AA", -"B c #F840A8", -"V c #F941A9", -"C c #F846AA", -"Z c #F847AC", -"A c #F652AE", -"S c #E365AD", -"D c #F763B7", -"F c #F675BD", -"G c #F37ABD", -"H c #F778BD", -"J c #F87BC2", -"K c #F87FC3", -"L c #F78CC8", -"P c #F491C7", -"I c #F49ECD", -"U c #F999CF", -"Y c #FF91D0", -"T c #F3A6CF", -"R c #F6AAD4", -"E c #F9BFE0", -"W c #F6C1DC", -"Q c #FFC6E6", -"! c #F9D5E8", -"~ c #FAD5E9", -"^ c #FBD4EA", -"/ c #F6DBE9", -"( c #F9D9EB", -") c #FADCEF", -"_ c #F8E1ED", -"` c #FBE2F0", -"' c #F9E4F0", -"] c #F8E7F0", -"[ c #FAE7F1", -"{ c #FDE9F4", -"} c #F8F0F4", -"| c #F9F1F4", -" . c #FCF8FB", -".. c #FAFCFC", -"X. c #FDFFFF", -"o. c None", +"16 16 155 2 ", +" c None", +". c #380034", +"X c #4C003E", +"o c #2B0042", +"O c #380951", +"+ c #3E0070", +"@ c #4B1E50", +"# c #660C55", +"$ c #760057", +"% c #412643", +"& c #690377", +"* c #652B67", +"= c #663A79", +"- c #76317A", +"; c #78377C", +": c #60416A", +"> c #6B5167", +", c #6F577B", +"< c #961155", +"1 c #8F0063", +"2 c #B22D74", +"3 c #DC007B", +"4 c #C12373", +"5 c #87416A", +"6 c #88447D", +"7 c #865170", +"8 c #84587C", +"9 c #AA4276", +"0 c #6D1A86", +"q c #773C8E", +"w c #B4008B", +"e c #A41585", +"r c #BD00AA", +"t c #B900B7", +"y c #CB0096", +"u c #D81F98", +"i c #D73488", +"p c #E23FB6", +"a c #81489D", +"s c #B04382", +"d c #B24880", +"f c #B65593", +"g c #827F84", +"h c #9B7E91", +"j c #984EA8", +"k c #BB75A6", +"l c #BA6ABB", +"z c #DF5CA2", +"x c #C45AB3", +"c c #F26DB8", +"v c #B353D5", +"b c #E350CC", +"n c #EF7FD1", +"m c #E17BDD", +"M c #E27EF1", +"N c #89838B", +"B c #A69A9F", +"V c #9A8CA0", +"C c #B686BB", +"Z c #A2A1A0", +"A c #AFA7B0", +"S c #B1A8B4", +"D c #B8AEBC", +"F c #CCA6B8", +"G c #C3B4BE", +"H c #FF8CC0", +"J c #ED9BCD", +"K c #F392D4", +"L c #DDA0D9", +"P c #EFABD9", +"I c #FAA4D1", +"U c #FCB4D8", +"Y c #E595EC", +"T c #E895EA", +"R c #E79DEB", +"E c #ECA6E6", +"W c #E8B2EA", +"Q c #FFBDE7", +"! c #F5B6EF", +"~ c #E4A3F6", +"^ c #C6C0C6", +"/ c #C7C5C6", +"( c #CBD1CD", +") c #D2D8CD", +"_ c #D2D0D5", +"` c #D7D2D5", +"' c #D8D6D7", +"] c #D7D8D8", +"[ c #D5DAD9", +"{ c #D8D8DA", +"} c #FEC2DD", +"| c #E8C6E5", +" . c #FDCAE3", +".. c #F4C2EB", +"X. c #F4C6ED", +"o. c #F8C7E8", +"O. c #FFCDEB", +"+. c #EAD2E2", +"@. c #E8D3ED", +"#. c #E8DDEE", +"$. c #EBDDF2", +"%. c #ECDFF4", +"&. c #F6D7F6", +"*. c #FBD9F4", +"=. c #F6DEF9", +"-. c #F0DDFD", +";. c #FFD8FF", +":. c #E1E3E4", +">. c #E7ECEA", +",. c gray92", +"<. c #E6F0E3", +"1. c #EBF3E7", +"2. c #E4F9EC", +"3. c #EFE0F1", +"4. c #ECE6F0", +"5. c #EFE2F7", +"6. c #EFEFF1", +"7. c #F0EEF4", +"8. c #FAEAF8", +"9. c #FBEAF8", +"0. c #F8E8FF", +"q. c #F8ECFE", +"w. c #FBECFF", +"e. c #FBEDFF", +"r. c #FDEDFF", +"t. c #EAF5F0", +"y. c #ECF6F2", +"u. c #EEF5F4", +"i. c #EEFAF3", +"p. c #EAFDF4", +"a. c #E9FFF6", +"s. c #EEFCF5", +"d. c #F0F4F3", +"f. c #FEF0F7", +"g. c #F2FBF5", +"h. c #F4F6F9", +"j. c #F4F5FB", +"k. c #FDF0FB", +"l. c #FFF5FF", +"z. c #FFF7FF", +"x. c #F6F8F9", +"c. c #F6F9F9", +"v. c #F2FFFC", +"b. c #F0FFFE", +"n. c #F7FFFF", +"m. c #F8F8FE", +"M. c #FEF9FD", +"N. c #FFF9FF", +"B. c #FFFAFF", +"V. c #FAFFFC", +"C. c #FBFFFF", +"Z. c #FFFDFF", +"A. c #FFFFFE", +"S. c #FFFEFF", +"D. c white", /* pixels */ -"o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.", -"o.o.o.o.o.o.o.5 5 o.o.o.o.o.o.o.", -"o.o.o.o.4 h h w w h h 2 o.o.o.o.", -"o.o.o.5 h w * B C h h h > o.o.o.", -"o.o.2 h w V F R I P & h l > o.o.", -"o.o.h h w b W X.] ~ B 7 l h o.o.", -"o.o.h h h % U ( $ W } 0 h l o.o.", -"o.> h h h ; ~ [ L ^ Q # k > o.", -"o.> h h 7 b ..J K .Y o O c > o.", -"o.o.h 8 A / X.D h ` ) X @ c o.o.", -"o.o.h w n G _ ' } { S . = l o.o.", -"o.o.> z 8 Z G T V k - + h > o.o.", -"o.o.o.> h w ; m w h l N 9 o.o.o.", -"o.o.o.o.: h j k h k h > o.o.o.o.", -"o.o.o.o.o.o.o.> > o.o.o.o.o.o.o.", -"o.o.o.o.o.o.o.o.o.o.o.o.o.o.o.o." +" 4.h.c.c.6. ", +" #.m.s.{ G / ` y.>. ", +" $.D.( 6 1 h 5 7 B t.d. ", +" 5.D.A X e P D.J +.2 < i.u. ", +" D.L : x J D.D.D.D.O.i 9 b.,. ", +"q.V.- l o.U D. .c o.D.D.4 F b. ", +"D.[ & W H } D.I 3 p D.D.z d a. ", +"D.D 0 T n k.D.D.D.9.D.*.u s 2.g.", +"D.S q M Y D.D.E &.D.M.b y f a.| ", +"M.[ = v ~ D.=.t r X.D.! w k n. ", +"0.D., + ;.D.M.R m k.D...$ ' V. ", +" z.<.O a D.D.D.D.D.9.# 8 D.L ", +" D.) o V j @.C * . > D.3. ", +" -.D.1.N : g @ % Z D.h. ", +" r.z.7._ :.D.D.%. ", +" e.e.e. " }; diff --git a/share/pixmaps/bitcore256.png b/share/pixmaps/bitcore256.png deleted file mode 100644 index 0b7d24eb..00000000 Binary files a/share/pixmaps/bitcore256.png and /dev/null differ diff --git a/share/pixmaps/bitcore256.xpm b/share/pixmaps/bitcore256.xpm index 70fdcb83..87a3fdd9 100644 --- a/share/pixmaps/bitcore256.xpm +++ b/share/pixmaps/bitcore256.xpm @@ -1,518 +1,518 @@ /* XPM */ -static char *_2579755a6b749d1c2ef57fa328bfac7[] = { +static char *azpiq_z56q1[] = { /* columns rows colors chars-per-pixel */ "256 256 256 2 ", -" c #000000", -". c #0B0207", -"X c #0E0309", -"o c #13040D", -"O c #18040F", -"+ c #1C0512", -"@ c #220616", -"# c #2C081D", -"$ c #270719", -"% c #30091F", -"& c #330921", -"* c #390A25", -"= c #3F0B29", -"- c #430C2B", -"; c #490D2F", -": c #4D0E33", -"> c #520F35", -", c #5B113B", -"< c #551038", -"1 c #60123F", -"2 c #641242", -"3 c #6D1447", -"4 c #74154C", -"5 c #79164F", -"6 c #7C1752", -"7 c #841856", -"8 c #8C195B", -"9 c #851857", -"0 c #911B5E", -"q c #951B62", -"w c #9B1D65", -"e c #9F1E6A", -"r c #A31E6B", -"t c #A91F6E", -"y c #AA1F70", -"u c #AD2071", -"i c #B42175", -"p c #BD237B", -"a c #B3237A", -"s c #C3247F", -"d c #DB3E75", -"f c #DC3C7A", -"g c #D63A75", -"h c #CF3B6F", -"j c #E23D7D", -"k c #D66D5B", -"l c #D9476C", -"z c #DE4372", -"x c #DC4675", -"c c #D44D68", -"v c #E34279", -"b c #E54B78", -"n c #E95679", -"m c #E95B76", -"M c #DD6866", -"N c #E4686A", -"B c #E47B62", -"V c #E87667", -"C c #EE6675", -"Z c #F16B74", -"A c #F3647B", -"S c #F9687E", -"D c #F67577", -"F c #DB8655", -"G c #D0834B", -"H c #E4825E", -"J c #F7857D", -"K c #FD1E9E", -"L c #FD1599", -"P c #C42481", -"I c #CA2584", -"U c #CE2688", -"Y c #D3278A", -"T c #DA288E", -"R c #D4278B", -"E c #DD2991", -"W c #E53A82", -"Q c #EC3C86", -"! c #ED3A89", -"~ c #E83689", -"^ c #F23A8D", -"/ c #F7398F", -"( c #E42A95", -") c #ED2C9B", -"_ c #E72B98", -"` c #FC2C95", -"' c #FD239D", -"] c #F22C9E", -"[ c #FC2A9D", -"{ c #F53695", -"} c #FB3495", -"| c #F63A93", -" . c #F93B95", -".. c #F7339A", -"X. c #FB349D", -"o. c #FB3B9C", -"O. c #F73D9B", -"+. c #FD1FA1", -"@. c #FD23A2", -"#. c #F62EA2", -"$. c #FB2EA3", -"%. c #FC26A8", -"&. c #FE2CA8", -"*. c #FC32A1", -"=. c #F93AA1", -"-. c #FF31AC", -";. c #F83CA9", -":. c #FF32B1", -">. c #FF35BB", -",. c #EC4183", -"<. c #EE4983", -"1. c #F3448C", -"2. c #F94C8E", -"3. c #F74888", -"4. c #F9548A", -"5. c #F75785", -"6. c #F74292", -"7. c #FB4395", -"8. c #FB4A92", -"9. c #F6459C", -"0. c #FA429C", -"q. c #F54C9C", -"w. c #F44E95", -"e. c #F3559B", -"r. c #F45899", -"t. c #EF5C9A", -"y. c #F86783", -"u. c #F1629D", -"i. c #F46C99", -"p. c #ED7899", -"a. c #F57798", -"s. c #EE7193", -"d. c #F842A2", -"f. c #F64BA5", -"g. c #F746A3", -"h. c #F554A5", -"j. c #F35BA5", -"k. c #F45CA9", -"l. c #F655A8", -"z. c #EE6BA5", -"x. c #F363A6", -"c. c #F264AB", -"v. c #F16BAA", -"b. c #EE7BAE", -"n. c #EB79A4", -"m. c #F173AA", -"M. c #F067B3", -"N. c #ED7CB3", -"B. c #EF76B2", -"V. c #F177B2", -"C. c #EF6FB1", -"Z. c #F2878B", -"A. c #F29586", -"S. c #EA839D", -"D. c #E99993", -"F. c #E8A89B", -"G. c #ECB797", -"H. c #DE95A7", -"J. c #DF93B0", -"K. c #EB84AD", -"L. c #E989AA", -"P. c #E798AD", -"I. c #EC84B3", -"U. c #EB8CB4", -"Y. c #EA8CB8", -"T. c #F288B6", -"R. c #EB93BB", -"E. c #EB9CBC", -"W. c #E996B4", -"Q. c #F196BB", -"!. c #F089AC", -"~. c #DDABB7", -"^. c #DBB8BA", -"/. c #DCACA8", -"(. c #E6A5AC", -"). c #E7A4BB", -"_. c #E4ABBD", -"`. c #E6A7B6", -"'. c #E4B6BA", -"]. c #F3ABB3", -"[. c #DAC6AD", -"{. c #D4D1BD", -"}. c #E3D2AF", -"|. c #E4C7B6", -" X c #E6D8B4", -".X c #E1C0AE", -"XX c #EDC29B", -"oX c #E99BC1", -"OX c #DFB7C2", -"+X c #E5ADC1", -"@X c #E9A7C3", -"#X c #E5B4C4", -"$X c #ECB3C4", -"%X c #E4BAC5", -"&X c #E4BBCB", -"*X c #E8BBC7", -"=X c #E5BBD1", -"-X c #DECCC3", -";X c #DAC9C7", -":X c #CDD7C6", -">X c #DED3CD", -",X c #D9D9C7", -" c #530330", +", c #6A0539", +"< c #440824", +"1 c #14004D", +"2 c #380748", +"3 c #3D0853", +"4 c #390557", +"5 c #2F0A4A", +"6 c #3C2B45", +"7 c #2E006F", +"8 c #1C0064", +"9 c #470C48", +"0 c #55124B", +"q c #44095B", +"w c #470A57", +"e c #550A58", +"r c #5A1156", +"t c #500D4A", +"y c #66155A", +"u c #771958", +"i c #6E0E4C", +"p c #493451", +"a c #772A57", +"s c #4B0B64", +"d c #4B0867", +"f c #550C69", +"g c #5D1163", +"h c #590C77", +"j c #4E0F75", +"k c #671367", +"l c #781967", +"z c #630C79", +"x c #6A1276", +"c c #761578", +"v c #72056F", +"b c #59326A", +"n c #6D3270", +"m c #544959", +"M c #514A54", +"N c #5C4D65", +"B c #655969", +"V c #6D5072", +"C c #696869", +"Z c #746979", +"A c #787779", +"S c #6D6C6E", +"D c #5F625E", +"F c #8D0C51", +"G c #882459", +"H c #95275E", +"J c #841D6B", +"K c #881C76", +"L c #921E7A", +"P c #92106E", +"I c #B01174", +"U c #9A2866", +"Y c #972279", +"T c #8C266B", +"R c #A72C6B", +"E c #A82977", +"W c #B32D79", +"Q c #B43172", +"! c #BC327A", +"~ c #B93276", +"^ c #AC316D", +"/ c #A40C5E", +"( c #D20E7A", +") c #F0077B", +"_ c #C3347D", +"` c #C8357F", +"' c #915476", +"] c #88003E", +"[ c #788479", +"{ c #35008C", +"} c #3E00A4", +"| c #52038E", +" . c #660D87", +".. c #6C1186", +"X. c #771387", +"o. c #771297", +"O. c #700894", +"+. c #5300B0", +"@. c #7D12A3", +"#. c #7205AD", +"$. c #742E99", +"%. c #784F8B", +"&. c #7C6E83", +"*. c #7D41A3", +"=. c #5C00CC", +"-. c #6600D7", +";. c #7100CF", +":. c #5D00E4", +">. c #6E00E5", +",. c #871888", +"<. c #961D88", +"1. c #871598", +"2. c #981A97", +"3. c #90058C", +"4. c #AF0D90", +"5. c #9B2183", +"6. c #902D8E", +"7. c #A72488", +"8. c #B72A88", +"9. c #AB2393", +"0. c #B82797", +"q. c #BA3285", +"w. c #8714A8", +"e. c #9618A8", +"r. c #8C14B3", +"t. c #9617B9", +"y. c #8D04AF", +"u. c #AF11AF", +"i. c #8D33B0", +"p. c #B92AA7", +"a. c #D20C8E", +"s. c #E8118C", +"d. c #CB3684", +"f. c #C83388", +"g. c #D5388C", +"h. c #C62B98", +"j. c #D92899", +"k. c #CD3195", +"l. c #D43493", +"z. c #D93797", +"x. c #CD2B8A", +"c. c #F32B8D", +"v. c #EC2D9B", +"b. c #EA2995", +"n. c #F12D93", +"m. c #ED3197", +"M. c #C905B7", +"N. c #D010AE", +"B. c #C82AA7", +"V. c #D62CAB", +"C. c #D933A7", +"Z. c #CC28B6", +"A. c #D42BBB", +"S. c #D72BB6", +"D. c #DC31B3", +"F. c #CA35A9", +"G. c #E52DA6", +"H. c #E332AC", +"J. c #E732A5", +"K. c #E032B1", +"L. c #E12FB1", +"P. c #E11CA1", +"I. c #8D5390", +"U. c #847988", +"Y. c #8D7293", +"T. c #B06F97", +"R. c #8F4CAF", +"E. c #9870AC", +"W. c #AD73B4", +"Q. c #AE509E", +"!. c #D051AF", +"~. c #E850AD", +"^. c #D06DB5", +"/. c #ED70B7", +"(. c #DC4E9B", +"). c #9C17C4", +"_. c #8E09CC", +"`. c #B902C8", +"'. c #A719CA", +"]. c #B81DC5", +"[. c #B61CD5", +"{. c #AA0CCF", +"}. c #890DE9", +"|. c #9A2EEB", +" X c #A22DD4", +".X c #C316C9", +"XX c #CD26C6", +"oX c #CF28C5", +"OX c #CB25CB", +"+X c #C521C9", +"@X c #D229C3", +"#X c #D126C3", +"$X c #C829D0", +"%X c #AD4FCF", +"&X c #B071CD", +"*X c #AC51ED", +"=X c #B76EEA", +"-X c #9948C9", +";X c #D24ED1", +":X c #D46FD1", +">X c #E772CC", +",X c #CD75E9", +"Xo.$.$.$.$.$.$.$.$.K H.yX{./.S.t.X.' ' %.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.o.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX5.&.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.' (.AXVXKXKXLXLXLXLXKXKXVXMX+X' $.$.$.$.$.$.$.$.` ^.2X3XbXxXsX-X`.n.e.} ' K $.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.| UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXN *.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.` -XBXVXKXLXLXLXLXPXKXKXVXcXI.K $.$.$.$.$.$.$.%.w.,XzXmXmXCXNXNXnXcX4X;X/.p.X.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.v UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo.%.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.*.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.@.w.pXVXIXKXLXLXLXLXLXKXKXNXjXj.@.$.$.$.$.$.$.$.+.p.dXxXBXVXGXVXKXIXmXmXaX2X:X=.%.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.X.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX4.%.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.@.p.cXBXKXKXLXLXLXLXLXKXVXBXqXo.%.$.$.$.$.$.$.$.' (.vXCXZXKXKXKXKXKXBXNXhXaX~.' $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$. .UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXC &.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.' P.SXVXKXLXLXLXLXLXLXKXVXBX+X' $.$.$.$.$.$.$.$./ [.BXVXKXPXKXLXKXKXKXVXmXcXN.' $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.j UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX7.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.` 8XMXZXKXKXLXLXLXLXKXKXCXnXI.K $.$.$.$.$.$.$.%.5.uXVXKXKXLXLXLXLXPXKXVXNXsXj.@.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.*.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX3.%.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.' +.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.%.q.wXCXKXPXLXLXLXLXLXKXKXBXdXk.' $.$.$.$.$.$.$.K p.cXNXVXKXLXLXLXLXLXKXDXNXXmXBXVXKXKXKXKXVXVXVXNXBXBXMXpX-X`.n.w...' +.@.$.+.n.SXVXKXPXLXLXLXLXLXKXKXCXqXo.%.$.$.$.$.$.$.$.K W.MXVXKXKXLXLXLXLXLXKXVXBX#X' $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&. .UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXM $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.' u.pXNXVXKXKXKXKXKXKXKXKXVXVXVXVXNXNXMXcXpX8X(.n.r. .L (.HXKXKXPXLXLXLXLXLXKXVXSX$X' $.$.$.$.$.$.$.$.[ %XBXVXKXLXLXLXLXLXKXKXVXAXI.K $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.l UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX3.%.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.K L.MXBXKXKXKXLXLXLXLXKXPXKXKXKXKXVXVXVXCXNXNXSXAXjXrX].rXKXKXLXLXLXLXLXLXLXKXVXFXT.' $.$.$.$.$.$.$.@.0.1XBXIXKXLXLXLXLXLXKXIXBXsXk.@.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$. .UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXN *.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.[ ~.BXVXKXLXLXLXLXLXLXLXLXLXLXPXLXKXKXKXKXVXGXVXVXGXGXHXKXKXKXKXLXLXLXLXLXKXLXIXDXk.' $.$.$.$.$.$.$.K z.MXBXKXKXLXLXLXLXLXKXKXBXqX0.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.z UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX .&.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$. .>XNXVXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXLXKXKXKXKXKXKXKXKXLXLXLXLXLXLXLXLXLXPXPXrX` K @.$.$.$.$.$.$.K W.FXVXKXKXLXLXLXLXKXKXIXMX%X' $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$. .UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXN $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.@.u.pXNXGXKXLXLXLXLXLXLXLXLXLXLXLXPXLXLXLXLXLXPXLXLXKXLXKXLXKXLXLXLXLXLXLXLXLXPXKXZX@XB.h.[ ' K ' $.&.' 8XDXKXKXLXLXLXLXLXKXKXZXcXU.' $.$.$.$.$.$.$.#.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.z UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX7.&.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.K S.cXCXVXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXPXKXKXHXFXjX7X_.K.j.=.' .kXIXKXLXLXLXLXLXLXLXVXBXMXx.[ $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.*.$.$.$.$.$.$.$.$.$. .UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXm &.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.' ~.2XmXBXVXKXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXPXPXKXIXVXBXSXAXMXrX$X$XIXKXKXKXLXLXLXLXLXKXKXVXwXo.@.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.*.z UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX3.%.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.O.;X5X2XmXBXVXIXKXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXPXPXPXKXKXVXVXVXVXIXJXHXKXKXLXLXLXLXLXLXLXKXKXDX*X' $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.&...UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXM *.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.%.9.[.,X4XbXNXNXBXVXVXKXKXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXPXLXKXKXKXKXKXKXKXKXPXKXLXLXLXLXLXLXLXPXIXJXQ.K $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.*.g UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX5.%.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.3.y.A.G.}.gXdXBXVXCXVXIXKXPXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXLXLXLXKXKXLXKXLXLXLXLXLXLXLXLXLXKXKXDXf.L &.%.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.^ UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.@.%.@.} 3.y.A.G. XkXBXVXVXKXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXKX$Xx./ ` @.&.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.*.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX1.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.*.&.%.@.' } n Z.G.gXSXVXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXJXDX-XF.y.` ' $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.&.! UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.%.+.} S |.FXZXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXLXKXKXVXVXSXgX.Xp./ +.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXb $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.+.` '.GXVXKXPXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXPXKXKXZXIXBXNXdX-XS. .' @.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.f UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX1.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.+.w.kXIXKXLXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXPXPXKXIXGXVXBXNXcX-XS.} +.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.*.&...UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX*.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.' _.FXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXKXKXVXVXNXNXdX-Xi.' %.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX<.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.K N.FXVXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXPXPXKXKXKXKXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXKXVXVXbXdX(.6.' $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.&.! UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX7.&.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.' C.FXVXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXKXKXIXKXKXKXKXKXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXPXKXKXVXVXmXvX,Xz.' $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.X.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX*.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.K I.FXVXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXIXVXDXFXFXBXNXCXVXVXKXKXKXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXPXKXKXVXCXmXdXP.` @.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.*.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX<.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.[ #XBXIXPXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXPXKXKXGXV.l.T.@XqXjXMXBXBXNXIXVXKXKXKXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXPXKXKXKXVXNXcX~...@.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.Q UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX .&.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.%.*.qXBXKXPXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXKXkX=.K K ' *.l.b._.7XdXnXBXNXBXVXKXKXKXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXKXVXBXAXOXX.@.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.o.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX*.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.@.j.sXZXIXPXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXVXDX*X$.$.$.$.&.@.K ' X.h.U.$XeXcXBXBXZXKXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXPXPXKXVXCXnX%XX.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXn $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.@.I.MXZXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXVXSXR.K $.$.$.$.$.$.$.$.@.K [ d.N.%XhXAXBXVXVXKXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXPXPXKXVXNXcX~.[ $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.! UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX7.&.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.' +XAXIXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXVXMXc.' $.$.$.$.$.$.$.$.$.$.$.@.' [ h.E.1XnXBXVXKXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXVXmXcXL.K $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$. .UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.Xo.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&...UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.%.o.qXBXVXKXPXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXIXCX3Xd.@.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.K @XSXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXZXNXpXg.@.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.@.k.dXBXKXKXPXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXBX&X[ $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.K N.FXIXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXPXKXBXpXu.@.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.*.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXb &.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.@.K.nXVXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXVXcXR.+.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.@.k.MXVXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXPXKXVXBXdXx.@.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.v UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX<.&.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.[ +XSXVXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXPXVXBXMXc.K $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.@.x.MXVXKXPXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXZXdXz.@.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.Q UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX1.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.%.o.9XBXIXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXCXwXd.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.' c.MXVXKXPXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXVXBXpXi.@.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.[ $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.^ UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX .$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.' j.jXBXVXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXPXKXIXBX&X[ $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.K B.AXVXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXPXKXKXNX3Xg.@.$.$.$.$.$.$.$.$.$.[ *.$.$.$.$.$.$.-.:.:.:.:.&.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.X.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.+.I.AXBXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXPXKXVXBXR.K $.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.K oXSXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXVXBXqXd.&.$.$.$.$.$.$.$.$.$.$.$.$.&.*.*.:._ p w 0 w a T $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX*.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.[ +XBXVXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXVXZXnXm.' $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.[ 9XBXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXPXKXVXvX6XX.$.$.$.$.$.$.$.$.$.$.$.$.$.*.:.T , o $ T $.$.:.*.$.$.*.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.*.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXx *.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.X.qXBXIXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXVXkXg.@.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.K k.MXZXKXPXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXZXcX+X' $.$.$.$.$.$.$.$.$.$.$.$.$.:.r X _ :.E q :.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.f UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXn &.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.@.j.sXBXVXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXGX6X[ $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.' &XSXVXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXVXcXU.' $.$.$.$.$.$.$.$.$.$.$.$.:.u - &.:.7 3 :.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.v UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX,.&.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.K I.cXVXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXHXQ.K $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.K b.AXVXKXPXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXGXNXsXk.@.$.$.$.$.$.$.$.$.$.$.$.&.( o 6 :.#.+ 8 :.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.^ UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX1.&.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.' _.BXVXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXJXT.[ ' @.@.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.L z.jXIXVXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXZXNX7X*.$.$.$.$.$.$.$.$.$.$.$.$.:.4 - q a 0 i >.r . T &.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.! UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX .$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.%.o.qXBXVXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXVX0X_.B.f.[ ' ' @.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.+.[ I.jXIXVXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXBXAXE.' $.$.$.$.$.$.$.$.$.$.$.$.X.O 4 :.:.>.U o ) :.$ 4 :.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.' j.sXBXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXKXGXDXAXsX7X).b.l.X.] ' K @.@.@.%.[ $.&.$.$.@.' ' [ z.&XAXIXGXKXPXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXVXNXsXj.@.$.$.$.$.$.$.$.$.$.$.$.&.p $ &.$.$.:.7 - :.&.q & &.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&...UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX .&.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.@.K.AXVXVXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXIXZXBXBXSXcXpX.7 = &.*.$.:.r : :.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX*.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.K I.MXBXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXLXKXKXKXLXKXKXKXPXKXLXPXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXKXBXMXdXz.' $.$.$.$.$.$.$.$.$.$.$.$.$.$.*._ X - a = 8 >.-.>.( @ 0 :.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.*.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.' _.SXVXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXPXPXKXVXVXmXdXb.' $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.:.4 0 _ T q + ( &.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX.%.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.=.>XNXZXPXPXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXKXKXVXVXmXsXb.K $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.) @ . , :.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX&.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.*.@.j.dXVXIXPXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXLXKXLXKXLXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXPXLXKXKXKXVXmXvXuXp.K $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.:.U o X ( $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX&.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.*.$.$.$.$.$.$.$.$.$.' K.AXBXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXLXKXKXVXKXKXKXKXKXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXVXVXBXjX.Xr.K &.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.] &.*.:.T * . p :.*.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.*.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.[ _.SXVXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXHXHXIXVXVXVXVXVXKXKXKXKXPXPXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXKXKXlX|.a.` %.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.:.U $ 0 :.&.:.$.q % & P :.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.X.9XNXVXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXKXZX].$XqXjXAXSXVXNXBXVXVXKXGXKXKXPXPXPXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXPXZX*X].a.` +.%.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.= ; T *.$.:.$.P 6 - $ o O % , t $.:.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX*.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.@.j.dXIXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXPXKXDX0XK ' o.l.N.E.7XhXcXMXNXCXVXIXKXKXKXKXLXLXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXPXtXr.L K $.$.$.$.$.$.$.$.$.$.$.$.$.$.[ $.$.$.$.$.&.s . T &.*.*.&.:.:.$.) ] $.:.:.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.*.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX*.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.+.I.nXCXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXVXFXQ.K $.$.@.+.' X.g.m.).7XdXnXBXCXVXZXZXKXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXLXVXQ. .K $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.*.:.8 3 :.$.$.$.$.$.$.$.&.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.[ _.SXBXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXZXSXm.K $.$.$.$.$.$.$.K ' X.h.T.#XwXcXSXNXVXIXGXKXKXPXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXKXFXqXj.K $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.:.9 X ) &.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.*.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX*.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.%.X.>XNXVXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXNXpXg.@.*.$.$.$.$.$.$.$.$.&.@.' ' 0.V.+XhXnXNXBXZXKXKXKXPXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXKXVXFXdXK.' $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.I $ &.*.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.*.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX*.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.@.j.jXBXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXPXKXVXNX8X[ $.$.$.$.$.$.$.$.$.$.$.$.$.$.@.K ' g.U.7XcXBXZXZXKXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXVXNXnX`.' @.$.$.$.$.$.$.$.$.$.$.$.$.$.&.$.&.>.5 . E :.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX*.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.K K.MXVXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXPXKXIXAXE.K $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.K $.v.6XcXBXZXIXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXPXLXKXKXVXmXcX+X$.$.$.$.$.$.$.$.$.$.$.$.$.$.*.$.( 6 u % & ( :.-.*.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX .$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.[ _.BXVXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXBXMXv.K $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.' [ v.6XvXBXVXKXKXLXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXVXNXcX_.[ $.$.$.$.$.$.$.$.$.$.$.$.$.-.t X o 9 E &.:.:.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$. .UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.X.7XBXIXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXVXNXwXd.&.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.K [ I.pXBXVXVXKXPXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXVXNXcXU.' $.$.$.$.$.$.$.$.$.$.$.$.:.4 - 7 I ] :.:.:.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$...UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX] $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.@.h.dXBXIXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXKXBX&X[ $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.K g.8XSXVXVXKXPXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXIXVXmXdXz.+.$.$.$.$.$.$.$.$.$.$.*.-.& @ > 0 I ] &.:.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$...UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX1.%.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.K N.vXVXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXVXAXR.K $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.@.[ @XSXVXZXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXVXbX7X*.@.$.$.$.$.$.$.$.$.$.$.( X @ > w $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.! UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX^ &.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.' @XSXZXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXPXVXVXcXM.@.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.' oXAXVXKXKXPXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXIXBXcXI.+.$.$.$.$.$.$.$.$.$.$.$.T e 1 $ * :.*.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.&.! UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUX,.&.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.X.7XCXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXVXBXwX=.@.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.[ $.$.$.$.$.$.$.$.$.@.@.@XSXZXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXVXbX I &.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$...UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX! &.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.@.q.pXmXVXKXKXKXKXKXKXKXKXKXKXKXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXVXBXMXc.@.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.' +XDXZXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXIXVXcXN.K $.$.$.$.&.> o U :.:.*.&.&.:.:.P @ 2 :.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.Q UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXz $.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.' P.MXVXKXKXKXLXLXLXPXKXLXKXKXKXLXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXVXeXd.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.@.d.eXIXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXPXZXBXdXk.@.$.$.$.&.] o 9 :.$.$.$.$.$.$.$.:.E o @ $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.d UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX*.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.@. . 5 _ :.:.:.:.:.) , w :.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$...UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX! &.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.@.J.iX3XmXVXGXKXKXKXLXPXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXLXKXKXVXVXVXVXBXBXBXSXMXsXqX&X@XY.N.M.c.u.u.f.l.c.M.I.oX6XjXSXBXBXIXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXNXcXI.@.$.$.$.$.$.$.:.p X : 9 t t 4 @ O ) $.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.&.Q UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXc [ $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.6.{.5X2XxXmXCXVXVXIXKXKXKXKXKXLXLXPXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXLXLXKXKXKXKXKXKXVXVXBXVXVXBXAXAXnXcXcXdXhXzXhXdXMXAXFXFXBXVXIXKXKXPXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXIXNXwXg.@.$.$.$.$.$.$.$.:.2 w :.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.*.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX .&.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.%.X.s.F..X,XdXNXBXBXVXZXVXVXKXKXKXKXPXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXPXKXKXKXVXGXKXVXKXZXVXBXVXCXBXVXNXVXVXVXVXZXKXKXPXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXVXcX).' $.$.$.$.$.$.$.$.$.$.- > -.*.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&...UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXQ &.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.+.[ .5.a.F.|.gXdXMXBXNXZXBXZXVXKXKXKXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXLXLXLXKXKXKXKXKXKXKXIXKXGXKXKXKXKXKXKXPXKXPXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXPXKXIXCXdXx.@.$.$.$.$.$.$.$.$.$.$.$.2 ; #.&.*.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.Q UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX*.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.@.@.' .5.Z.F.|.gXjXvXNXNXBXVXZXIXKXKXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXLXLXPXPXKXLXKXKXKXLXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXVXBX#X' $.$.$.$.$.$.$.$.$.$.$.&.:.u * . 5 &.:.*.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.*.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX.&.*.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.$.$.%.%.` .y.Z.G.}.gXcXNXBXBXVXVXVXKXKXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXVXmXdXx.@.$.$.$.$.$.$.$.$.$.$.*.$.*.:.$.s 7 > & @ % ; 8 E :.*.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&...UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXQ &.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.%.@.@.` 6.y.Z.G. XuXAXSXIXIXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXVXBXcX).' $.$.$.$.$.$.$.*.$.:.:.&.#.$.$.&.&.:.:.$.$.&.:.:.&.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.! UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX*.&.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.&.@.' } 4.y.A.XX XlXGXKXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXBXMX1Xg.@.$.$.$.$.$.$.$.&.&.s 4 * % ) $.*.$.$.$.$.:.*.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX| &.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.%.%.@.' / 5.D ].KXKXPXLXLXLXLXLXLXLXLXLXLXKXLXPXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXVXMXcXm.K $.$.$.$.$.$.*.:.) < O #.$.$.$.$.*.( p &.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&...UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXv &.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.%.%.L !.FXKXLXLXLXLXLXLXLXLXPXKXPXKXKXKXKXKXLXLXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXPXPXKXVXNXcX).' $.$.$.$.$.$.*.&.] % # &.$.$.$.$.:.9 3 $.-.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.f UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.` *XDXVXKXLXLXLXLXLXLXPXPXKXKXKXKXIXKXZXIXKXKXPXPXPXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXPXKXKXBXCXnXOXX.&.$.$.$.$.$.$.$.&., * -.$.$.$.&.#.@ ; $.-.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX^ $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.@.7.wXGXKXKXLXLXLXLXLXLXKXKXKXrXkXSXFXBXVXVXBXKXKXPXPXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXVXmXcX&X*.@.*.$.$.$.$.$.$.:.P ; -.$.$.*.:.t 1 :.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.Q UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX*.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.@.u.dXIXKXKXLXLXLXLXLXPXKXKXkX0.0.C.E.8XhXAXDXDXKXKXPXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXKXZXBXNXcX#XX.@.X.$.$.$.$.$.$.$.:.1 3 s E $.$.$.$.&.$ p -.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.*.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX .$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.K L.AXVXKXKXLXLXLXLXPXKXZXKX6X' @.[ ' X.f.m.@X0XCXIXPXPXLXLXLXLXLXLXLXLXLXLXKXLXLXLXKXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXLXKXKXPXKXIXZXmXmXdX).X.@.$.$.$.$.$.$.$.$.&.] O 6 >.:.$.*.$.$.&.#.6 . < :.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.%.{ UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXg $.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.[ $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.` '.BXVXKXLXLXLXLXLXLXKXGXFXQ.K $.$.$.$.$.K K [ l.CXPXPXLXLXLXLXLXLXLXLXLXPXKXLXKXKXKXKXKXKXKXLXLXKXLXLXLXLXPXLXPXPXKXLXKXKXKXKXKXZXVXCXMXnX>Xv.' @.$.$.$.$.$.$.$.$.$.&.P o X.&.$.$.$.$.$.$.$.:.s X @ [ &.*.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.*.g UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXo.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.%.6.>XNXGXKXKXLXLXLXLXKXKXCXBXx.@.$.$.$.$.$.$.$.@.l.CXKXKXLXLXLXLXLXLXLXLXKXKXKXVXVXKXVXKXVXKXVXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXVXVXBXNXMXcX ; &.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.*.W UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXX.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.O.>XVXVXKXLXLXLXLXLXKXVXBXcXx.@.$.$.$.$.$.$.$.@.l.jXBXKXKXLXLXLXLXLXPXKXGXeXd.%.&.$.$.@.$.@.' K ' ' [ [ $.$.$.$.$.$.[ ' ' ' K $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.] o $ e ) :.:.:.&.:.:.w 7 :.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.%.X.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXW &.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.@.u.dXVXGXPXLXLXLXLXPXKXKXNXqXd.@.$.$.$.$.$.$.$.K N.MXVXKXKXLXLXLXLXLXKXVXBX=X[ $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.@.$.$.&.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.:.4 o : 7 t i r < T &.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.*.d UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX} $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.K L.nXVXKXKXLXLXLXLXLXKXVXMX%X[ $.$.$.$.$.$.$.$.' _.SXVXKXLXLXLXLXPXKXKXZXAXR.K $.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.) @ < :.*.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.| UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXl &.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.*.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.[ '.SXVXKXPXLXLXLXLXKXKXZXAXU.' &.$.$.$.$.$.$.@.o.9XNXVXKXKXLXLXLXLXLXKXNXcXc.@.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.*.:.U o o ( &.$.$.$.$.$.$.$.$.*.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.h UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX| &.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$. .>XBXZXKXLXLXLXLXLXKXKXBXcXx.@.*.$.$.$.$.$.$.@.j.dXVXKXKXLXLXLXLXPXKXVXBXwXd.@.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.:.T * X P :.*.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.&.} UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX*.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.*.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.@.e.dXNXIXKXLXLXLXLXLXKXVXNXwXo.$.$.$.$.$.$.$.$.+.K.MXZXKXKXPXLXLXLXLXKXVXSX&X[ $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.-.&.w & - Y :.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXQ &.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.[ $.$.$.$.$.$.$.$.$.$.$.$.$.K L.cXNXVXKXLXLXLXLXKXKXVXBX%X' $.$.$.$.$.$.$.$.' +XBXIXKXLXLXLXLXLXKXKXVXvXW.K $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.[ $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.:.*.P 7 : # + + & 2 i *.-.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.Q UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX*.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.' ~.dXNXVXKXKXLXKXPXKXKXBXMXU.' $.$.$.$.$.$.$.%. .>XBXVXKXLXLXLXLXLXKXKXVXcXc.@.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.:.:.$.) ] $.-.:.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.[ $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.X.UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXv &.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.@.o.;X2XeXBXVXVXKXKXKXKXZXmXdXc.@.$.$.$.$.$.$.$.@.s.pXBXKXKXPXLXLXLXLXKXVXNXwX=.@.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.*.&.$.*.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&.j UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX..$.$.$.$.$.$.$.$.$.$.$.#.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.%.t.yXiXxXbXmXBXIXIXZXBXNXxX4X=.$.$.$.$.$.$.$.$.[ D.vXZXKXLXLXLXLXLXKXKXVXBX&X' $.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.&. .UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX", -"UXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUXUX$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$.$. .s.U.'. > > , > > > > < > > , > > a a V ' T.8XdXnXKXKXKXKXKXKXKXKXKXKXKXHXqXA = . . . M 9XJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXwX. . A KXKXKXKXKX ", +" KXKXKXKXKXAXj 1 R.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXqXN . . . p 3XSXKXKXKXKXKXKXKXKXKXPXMX8XT.Y u i i , , i i i i i u i u u G , a i i i i i , , , > > > < < < < , a ' eXtXSXLXLXKXKXKXKXKXKXKXKXqXD @ . . @ [ nXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXnX@ . D KXKXKXKXKX ", +" KXKXKXKXKXfX7 7 uXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXDX3X= . . = 2XcXKXKXKXKXKXKXJXKXGXdXT.I.J i i i i i u u l u u u J G G G G a a a a a a a a a a a a a i u i , a i , , : < < < , ' ' 9XSXKXKXKXKXKXKXKXKXLXwXM . . . M qXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXp . - DXKXKXKXKX ", +" KXKXKXKXKX&X8 7 jXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXnXS O . . N 0XKXKXKXKXKXKXKXKXNX8XI.G i , i i J G l G J J J J G J G F V Z S S S S A S [ D S S S S C C C C B B a i a 0 a a , p i , < < < > G ' qXPXKXKXKXKXKXKXKXSX5X= . . - 4XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXC . @ nXKXKXKXKX ", +" KXKXKXKXKXW.8 j VXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXbXC . . X &.bXKXKXKXKXKXKXKXVX8XT i i i u J J G P J J T J H J J J J J J P A [ A A A A [ A ' [ [ [ S A [ C [ [ [ [ a i a i a i a i a a , a , > < < < i ' qXLXKXKXKXKXKXKXKXqX6 . . @ 5XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX5X. . mXKXKXKXKX ", +" KXKXKXKXKXE.1 $.CXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSXS . . # 2XSXKXKXKXKXKXKXPXrXI.i i i u l J J J P J T T T T T P T U T T P T P ' 1X2X1X' 1X[ [ 2X[ A [ ' [ [ [ [ ' 1XZ G u a i a i a u u , a i a a a , , , < < a ' dXKXKXKXKXKXKXKXqXM . . @ 9XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX6X. . 0XKXKXKXKX ", +" KXKXKXKXKXR.1 $.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXDX&.. . # 5XHXKXKXKXKXKXKXfXY.k > i u l J J J T J T T J L Y P L U Y T T Y Y U Y T 5X5X2X2X5X5X2X1X2X2X2X2X2X1X1X2X2X1X2XZ F G G G G G u u a u a i a [ C B a , , , > < > a 7XDXKXKXKXKXKXKXzXD . . = 9XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXwX. . 9XKXKXKXKX ", +" KXKXKXKXKX*.8 *.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX5Xo . O 3XJXKXKXKXKXKXJX8XT i t i l J l J J J K K T T T Y Y Y U U L E L Y L Y U P ^ 4X4X4X4X4X4X4X4X2X4X4X4X5X4X4X5X5X5X4X' F J J G G G G G u G a , C 1X[ 1X1XA S a i , , > < , ' xXLXKXKXKXKXKXvXM . . - xXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXdX. . 7XKXKXKXKX ", +" KXKXKXKXKX*.8 *.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxX- . . Z FXKXKXKXKXKXGX8Xa > t i l J l J J J T P L T Y P Y Y Y Y Y L E L Y E E L E U ' yX4X4X9X4X4XeXeXeXeX4X4X4X4X4X4X4X4X4X' F T H G G G G G G G G F ' 5X2X' 1X1X2X1X' C a i , , < > ' tXKXKXKXKXKXKXxX- . . C PXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXmX. . 9XKXKXKXKX ", +" KXKXKXKXKXR.8 R.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXDXC . . M cXKXKXKXKXKXDXE.y > 0 l u l l l J J J K T L Y Y Y Y Y L E L E L E Y E E L E Y I T.yX9X9X9X9X9X9X9X9X9X9X9X9X9X4X9X4X9X9XT / T U U U J J G U G G F 2X4X2X2X1X1X2X1X1X1X1X[ G a , , , < T qXLXLXKXKXKXKXeX@ . o 9XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXmX. . 7XKXKXKXKX ", +" KXKXKXKXKX*.8 R.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX7XO . = wXKXKXKXKXKXPXT.y > t y u l l l J J K K T L L L Y Y Y Y Y <.E E 7.E 7.7.E E E E 7.7.8XyXwXqXwXwXwXwXwXwXwX9XwX9X9XwXwXwXyX7XU U L Y U U U U U T H J T 4X4X4X4X4X4X4X2X4X1X1X1X1X[ ' a ] , > > G tXKXKXKXKXKXHXA . . - vXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXmX. . wXKXKXKXKX ", +" KXKXKXKXR.8 *.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXM . . U.KXKXKXKXKXKX8Xr * t u y l l l l J J J T K K Y Y L Y E Y E E 7.E 7.E 7.E 7.7.7.W 7.I q.yXyXqXqXqXqXqXyXqXqXqXqXqXqXqXyXwXqXyXeXI E U Y R U Y U U U U / ' wX9X9XeXeXeX4X4X4X4X4X4X1X4X4X1X[ a ] a > < ' MXKXKXKXKXKXvX- . . 5XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXmX. . dXKXKXKXKX ", +" KXKXKXKX&X8 *.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX0Xo . - dXKXKXKXKXKXiXn % > y y k u l l J J J K K K Y Y Y Y E <.5.<.E 7.E 7.7.7.7.7.8.W 8.7.8.I Q.zXxXxXxXxXqXxXyXxXqXxXyXqXyXqXxXyXyXUXT./ E R R E U R Y R U Y F T.yX9X9X9X9X9XeXeXeXeX4X4X4X4X4X1X4X1X' a G i > , ' SXKXKXKXKXKX5X. . M SXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXdX. . xXKXKXKXKX ", +" KXKXKXKX&X8 *.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXC . . U.KXKXKXKXKXVXV > : i y y y l l l J J J J L L K Y 5.Y L Y 7.7.7.7.7.7.7.8.8.8.7.8.8.8.7.8.I 8XIXUXxXzXzXxXUXxXUXxXzXxXzXxXxXUXxXxXzXq.I E E E E E E R E R U / eXUXqXyXwXwXwX9X9X9X9XeX9X4XeXeX4X4X4X4XG G a G , > , 9XLXLXKXKXKXbX- . . 9XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX0X. . bXKXKXKXKX ", +" KXKXKXKXuX8 o.JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXcX= . = xXKXKXKXKXJX6X> % t y y u l y l l l l J K K L Y Y Y Y 7.7.7.7.7.7.7.8.8.7.8.7.8.8.8.4.8.8.x.4.tXIXvXzXvXzXzXvXzXvXvXzXzXzXzXzXzXzXvXxXq.I 8.W E W W E E E E I Q qXUXqXyXqXyXqXqXqX9XwXwXwX9X9XeX9XeX9X2X] G G G a G ] > G zXKXKXKXKXKXU.. . S KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX7X. @ HXKXKXKXKX ", +" KXKXKXKXjX7 | GXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXwX. . m HXKXKXKXKXnXn ; : y y y y u l l l J J K K K Y L Y Y 5.5.7.7.7.7.8.7.8.7.0.8.4.8.8.8.8.8.8.x.8.8.cXIXvXbXbXbXvXvXvXbXvXvXvXvXvXvXvXvXIXtXE W W W W W W W W W _ / _ vXzXxXxXyXqXxXqXqXqXqXqXqXyX9X9X9X9XyX' H G G G G G G G , , 3XKXKXKXKXKXqX@ . - DXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX2X. - KXKXKXKX ", +" KXKXKXKXCX| | NXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXZ . . 4XKXKXKXKXJX6X> % 0 r y y y k l l l l J K K Y L L 5.5.5.5.7.7.7.7.8.7.7.8.8.8.8.8.8.8.h.8.x.0.8.W g.SXIXbXbXbXbXbXbXbXbXbXbXbXbXbXbXbXIXIXrXI 8.8.W 8.8.W 8.W ~ Q / eXIXzXzXzXzXxXxXxXxXxXyXqXqXyXyXqXwXyXyX' F H H H G G G G G ] , H cXKXKXKXKXFXM . o iXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXC . m KXKXKXKX ", +" KXKXKXKXGXO.7 jXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXM . @ xXKXKXKXKXMXV ; > r r r y y y l l l J l K L L L 5.<.5.5.7.E 7.7.7.9.8.8.8.8.8.0.8.0.8.x.x.0.h.0.x.I ^.HXIXSXSXSXSXIXSXSXIXSXSXIXSXSXIXbXbXDX^.I x.W 8.W x.8.W 8.! q.I rXDXvXvXvXzXzXzXzXzXzXxXUXxXxXqXqXqXyXqX^ H U U H H H H G H G G , , eXLXKXKXKXKX' . . 4XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXp . A KXKXKXKX ", +" KXKXKXKX$.7 uXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXVX= . p PXKXKXKXKX0X: ; 0 r r y y y l l l J c J K K L L L L Y 5.7.<.7.7.7.8.8.4.8.4.0.0.0.x.h.8.8.h.0.x.f.h.a.rXLXFXIXDXDXSXSXFXSXSXSXSXSXSXSXSXSXDXIXd.8.f.x.8.8.8.! 8._ 8.W Q dXIXvXIXbXvXvXvXvXvXvXzXzXxXzXUXzXxXUXtXU U U U U U U H H H H G H G , ^ DXLXKXKXKXyX. . C KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLX@ . wXKXKXKXKX ", +" KXKXKXKX&X8 -XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxXo . C KXKXKXKXKXY.% : r r r y y y l l l l J c J K L L 5.5.5.5.7.7.7.7.4.I 4.8.0.h.h.8.0.8.x.0.x.h.8.x.h.h.x.x.fXLXDXDXDXDXDXDXDXDXDXDXDXFXDXDXSXSXHXbXd.x.8.f.f.f.8.f.f.x.8.I _ bXSXbXIXbXbXbXbXvXvXvXvXvXvXzXvXzXzXIX9X/ R R U R U R H H H H H G G G , G xXKXKXKXKXzXo . m KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXVX. . SXKXKXKXKX ", +" KXKXKXLXhX{ *.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX0X. . U.KXKXKXKXFXb ; : 0 r r y y y k l l l J c K K L L L L <.7.5.7.5.7.7.!.^.0.4.I I 4.8.x.h.h.h.h.h.x.h.x.k.a.k.FXLXDXDXDXPXPXDXDXDXDXDXDXDXDXDXDXDXLXfX( f.0.x.f.x.f.f.8.8.f.( !.HXSXSXSXSXSXbXbXIXbXbXbXvXbXvXvXvXvXIXT./ E ^ E R U R U U U R H H H H H ] , rXKXKXKXKXVX- . 6 JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX0X. = KXKXKXKX ", +" KXKXKXKXCX| | GXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX7X. . 7XKXKXKXKXmX: % t 0 e y y y y k l l l c K K K K L L 5.<.7.5.7.7.7.7.4.MXLXPXMXaX^.!.x.4.( 4.x.k.x.h.x.x.x.a.(.LXHXHXHXHXPXHXHXDXHXHXDXDXDXHXPXPXHXLXrXa.k.x.f.x.k.f.f.f.f.8.( rXLXDXIXDXSXSXSXIXSXSXbXSXbXbXbXbXbXbXIXT./ ~ Q ^ R E R R H R R H H R H H H G , ' KXKXKXKXKXM . - SXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXA . M KXKXKXKX ", +" KXKXKXKXo.{ jXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX3X. . qXKXKXKXKXtX% % r r r r r k y k l l l K c K K K <.<.L 5.7.7.7.7.9.9.I 7.PXKXKXKXKXKXKXDXgX^.!.h.a.a.a.a.a.x.( ^.KXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXHXLXLX!.( k.x.l.k.x.x.k.f.x.x.( fXLXDXDXDXDXDXDXDXSXDXSXSXSXSXIXSXbXSXMX~ I W Q Q Q ^ ^ E ^ R R R R H H H H H H , H HXKXKXKXKXm . @ FXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX- . 3XKXKXKXKX ", +" KXKXKXKX%X8 &XLXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX3X. . iXKXKXKXKX3X% * r 0 r r y y y k l l l c J K K L L <.<.7.5.7.9.7.9.9.9.4.!.KXKXLXLXLXLXKXKXKXKXKXPXBXsX^.!.x.( ( sXKXHXHXLXHXHXLXLXHXHXLXHXLXHXHXHXHXKXHX(.x.k.l.x.k.k.l.k.x.k.x.8.VXLXPXPXPXDXDXDXDXDXDXDXDXDXSXSXSXSXHXtXQ ! W W W Q W Q ^ ^ ^ R R R R ^ H H H H H , H SXLXKXKXKXB . @ DXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXFXo . bXKXKXKX ", +" KXKXKXKXjX7 $.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX3X. o mXKXKXKXJXY.% : r 0 0 r y y k l l l c K K K K ,.L L <.<.<.7.7.7.7.7.0.9.I ^.KXLXLXJXKXHXLXLXLXLXKXKXKXKXKXKXFXgXsXFXKXLXLXLXHXLXLXLXLXHXLXLXLXLXLXLXHXKXMXa.x.j.l.l.l.k.l.k.l.x.x.(.LXLXHXPXHXHXHXHXDXDXDXDXDXDXDXSXDXSXLXrX/ q.! ! ~ ~ W W Q Q Q ^ ^ R ^ ^ ^ ^ H R H R ] G bXKXKXKXKXA . @ SXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxX. = KXKXKXKX ", +" KXKXKXHX+.| GXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX3X. o NXKXKXKXKXV ; t 0 r r r y y k l l l c c c K K K L <.<.5.7.9.<.9.9.4.8.0.0.I gXJXKXLXKXLXKXLXLXKXKXLXLXLXJXLXKXKXKXKXKXLXJXLXLXKXLXLXLXKXLXLXLXKXLXLXLXLXKXgX( l.j.l.l.j.l.l.l.k.l.( ^.KXLXHXHXHXHXHXHXHXHXDXHXDXDXDXDXDXDXLX^./ ` _ _ W ! ! ! W Q W Q ^ E ^ ^ R R R U U H R ] ] fXLXKXKXKXZ . @ FXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXS . Z KXKXKXKX ", +" KXKXKXKXR.{ aXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX7X. X mXKXKXKXJXV ; t 0 r r r r y k k l l c J c K K L L L <.5.<.7.9.9.7.7.9.0.8.0.4.MXKXLXKXLXKXLXKXJXLXLXKXKXLXKXKXKXLXLXLXLXKXKXKXLXKXKXLXKXJXKXKXLXLXLXKXKXLXLXsX( j.l.l.l.z.j.l.l.j.l.a.tXKXHXLXLXHXLXHXHXHXHXHXHXDXHXHXHXDXLXHXQ._ ` ` _ _ ! ! ! ! ~ ~ W Q Q ^ Q ^ R R R R R H H F ] fXKXKXKXKXB . = KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX@ . dXKXKXKX ", +" KXKXKXKXhX7 -XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX0X. . dXKXKXKXKXV # t e 0 r r y k k l l l c K K K K ,.<.<.<.<.7.7.9.7.7.9.9.0.0.0.4.0.KXKXKXJXKXLXKXKXLXKXKXKXLXKXKXLXLXKXKXKXKXLXLXLXKXLXLXKXKXLXKXLXLXJXLXKXLXKXJXz.a.z.z.g.j.l.z.z.l.l.l.a.gXKXLXLXLXLXLXLXHXHXLXLXHXHXHXHXHXHXKXVXd.f.f.f.x._ ! f._ ! _ ! ! ~ W ~ Q Q ^ ^ R R R R U R H ] fXLXKXKXKXD . - KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXmX. @ KXKXKXKX ", +" KXKXKXGX| +.HXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXcX. . iXKXKXKXKXV + t 0 r r r y k k l x x l K c K K L <.<.<.5.7.2.7.9.9.8.4.8.0.0.0.a.!.KXKXKXKXLXKXKXLXKXKXKXJXKXKXKXKXKXKXLXKXLXKXKXKXLXKXLXKXLXKXKXKXKXLXKXLXKXKXHX~.x.( a.a.j.b.j.z.z.g.j.l.GXKXLXLXKXLXLXLXLXLXLXLXLXLXHXHXHXHXKXfX( f.d.f.d.x.! f.f.f.f._ ! ! ! ~ ~ Q Q Q Q ^ ^ R R R ^ F ] fXKXKXKXKXM . M KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXU.. B KXKXKXKX ", +" KXKXKXLX-X{ hXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSXO . 8XKXKXKXKXV ; w e r r k y k k l l l c c K K ,.,.<.<.<.<.5.4.7.9.9.9.0.8.0.0.h.0.4.rXKXKXKXLXKXKXKXKXLXKXKXKXKXKXKXKXLXKXLXKXKXLXKXLXKXKXKXKXKXKXJXKXKXKXKXJXKXKXLXKXZXgX/.~.b.x.a.a.a.b.a.~.KXLXKXLXLXKXLXKXLXKXLXLXLXJXHXHXLXLXKXtX( d.f.x.f.f.d.d.f.d._ f._ _ ! ! ! ~ ~ Q Q Q Q R ^ R R R F ] MXLXLXKXKX- . B KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX= . vXKXKXKX ", +" KXKXKXjX{ i.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX= . Y.KXKXKXKXZ % t t 0 r r k k k l k c c K c K K L <.<.<.5.7.9.7.9.9.9.9.0.0.0.h.h.a.a.gXKXKXKXKXKXKXKXKXKXKXKXKXKXLXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLXKXKXKXKXKXKXKXKXKXKXKXKXKXKXPXBXsX/.~.g.( rXKXKXKXKXKXLXKXLXLXKXLXLXLXLXLXHXLXLXJX/.( l.f.g.g.f.g.d.d.d.x._ f._ f._ _ ! ~ _ ~ Q Q Q R R R R R G ] MXKXKXKXHX@ . 5XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXvX. = KXKXKXKX ", +" KXKXKXKX#.| HXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXM . B KXKXKXJXY.% t r r r r k k k l l c c c K K ,.K ,.<.<.<.7.2.9.<.9.9.0.4.0.0.0.h.h.h.a.VXKXKXKXKXKXKXKXKXKXKXLXKXKXKXKXKXKXKXKXKXJXKXKXKXLXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXZXgXBXKXKXKXLXKXLXKXLXLXLXKXLXKXKXLXLXLXKXLX(.( g.g.g.g.k.k.g.f.f.d.d.x.f._ _ f._ _ ~ ! ~ Q Q Q ^ ^ ^ R H F F VXKXKXKXbXo . iXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXS . A KXKXKXKX ", +" KXKXKXLX&X{ pXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX&.. p KXKXKXJX6X+ 9 e e r y k y k k l c J c K K ,.L L <.<.7.<.<.7.9.9.9.0.9.0.0.h.0.h.h.4.z.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLXKXKXKXKXKXKXKXKXKXKXKXKXJXJXKXKXKXKXKXKXKXKXKXKXKXKXKXLXLXLXLXKXZX` g.l.g.z.g.g.g.d.g.f.d.d.d.d.d._ _ _ _ _ _ Q ~ Q Q Q ^ ^ ^ ^ R F H PXKXKXKXzX. . nXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX@ . VXKXKXKX ", +" KXKXKXCX| #.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX0X. # KXKXKXKXfX% : r r r g y k k v l c K c K ,.L ,.<.<.<.<.2.7.9.<.9.9.9.0.0.0.h.4.h.h.h.a.!.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXKXKXKXKXKXKXKXKXJXKXJXKXLXKXKXgX( z.g.g.g.g.z.g.g.g.g.g.f.d.d.d.d.` ` _ _ _ _ ~ ~ ~ ~ Q Q ^ ^ R ^ ] ^ DXHXKXKX2X. = KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX9X. M KXKXKXKX ", +" KXKXKXKXi.{ NXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXbXX . cXKXKXKXcX% * e e k w t e v l x l c c ,.,.K ,.<.<.<.<.9.9.9.9.4.0.0.0.0.0.0.h.h.h.h.h.4.sXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLXKXKXKXKXKXKXKXKXKX/.( z.z.m.z.z.g.z.z.g.g.g.g.g.d.d.d.g.` ` ` ` ` ` ` ~ ~ Q Q ^ ^ ^ ^ ^ ] T.HXKXLXKXM . m KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX6 . xXKXKXKX ", +" KXKXKXjX{ -XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJX= . 6XKXKXKXDX9 & e e r e 6.I.l v e v c c K K ,.L <.<.<.<.2.9.9.9.9.9.0.0.0.0.0.B.h.h.B.h.h.a.BXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXsXx.x.( g.g.g.z.g.z.g.g.g.g.g.g.g.g.g.d.d.d.` ` ` ` _ ~ ~ ~ Q Q ^ ^ ^ ^ ] rXHXLXKXKX- . 6XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSX. = KXKXKXKX ", +" KXKXKXKX@.+.GXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX&.. N KXKXKXKXn % r r r r 9 dXKXHXNXrXI.c K ,.,.<.,.<.<.2.<.9.2.2.9.9.0.4.0.0.0.0.a.B.B.h.a.a.C.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXKXKXKXHXgX/.(.s.a.g.z.g.m.g.l.g.g.g.g.g.g.g.d.g.` ` ` ` ` ` ` ~ ~ Q Q ^ ^ ^ H ] tXLXKXKXFX. . FXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXB . 7XKXKXKX ", +" KXKXKXhX{ &XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXdX. = LXKXKXJXY.% e e g g y e MXKXKXKXKXW.k ,.,.,.,.,.<.2.<.9.9.9.9.9.0.0.B.0.h.0.B.h.h.h.h.h.a.(.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXgXsXz.( ( g.z.z.g.z.g.g.g.g.g.g.g.d.` ` g.` ` ` ~ ~ ~ ~ Q ^ ^ ^ / / FXKXKXKX4X. - KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHX. o KXKXKXKX ", +" KXKXKXKX#.+.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJX# . cXKXKXKXfX% w r r r k e c JXJXKXKXKX6.v K <.<.P 3.3.7.9.9.9.9.u.9.0.4.4.B.h.h.B.a.h.j.j.h.( sXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXKXKXLXgX/.z.( x.z.(.g.m.g.g.g.g.g.g.d.` ` ` ` ` ` ~ ~ ~ ~ ~ ^ ^ ^ ] ^ KXKXKXKXM . Z KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX&.. &.KXKXKX ", +" KXKXKX=X{ aXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm X Y.KXKXKXSX* 2 r r g g k e I.KXKXKXKXZX3.3.,.<.3.Q.!.9.3.3.3.p.9.0.0.9.0.4.4.4.4.h.h.h.h.j.B.a.gXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXZXsXg.( x.m.n.g.g.g.(.g.g.g.` g.d.` ` ` ` ` ~ ~ ~ Q ^ ^ ^ ] T.KXKXKXLXo . zXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXX . HXKXKXKX ", +" KXKXKXLX#.+.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX0X. = KXKXKXKXn & r r g k k x e W.KXKXKXKXfXX.,.<.2.c aXKXJXMXaXF.4.9.0.0.4.sXZXsX~.!.h.B.a.V.j.a.a.ZXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXsX(.( ` g.(.g.g.g.g.g.g.g.g.d.` ` ` ~ ` ~ ~ Q ^ ^ ^ R F MXKXKXKX9X. = KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX5X. &.KXKXKX ", +" KXKXKXpX{ =XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLX+ . cXKXKXJX8X% e r g g k k x e fXKXKXKXKXrXv <.<.<.3.MXKXKXKXKX:X3.0.0.4.4.BXKXKXKXKX/.4.h.j.j.a.z.JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXsXg.( ` c.g.(.g.g.g.g.g.` ` ` ` ` ` ` ~ ~ _ ^ ^ ^ / H HXLXKXKXN . 2XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX+ . JXKXKXKX ", +" KXKXKXLX#.#.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXV . Y.KXKXKXVX* 9 e g g k k x k v AXKXKXKXKXQ.v <.2.3.9.JXKXKXKXKX!.4.0.h.4.B.ZXKXKXKXKX!.a.j.h.h.a./.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXsXg.( g.m.g.g.g.g.g.g.g.g.` ` ~ ~ ` ~ _ Q Q ^ ^ ] T.LXKXKXLXo . VXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX4X. U.KXKXKX ", +" KXKXKXaX} pXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXnX. = KXKXKXKXn * g e g k k c x v 6.KXKXKXKXKX6.3.2.2.3.Q.KXKXKXKXGX0.4.0.h.4.!.KXKXKXKXJXV.a.j.j.j.a.sXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXZX(.( ` g.g.g.g.g.g.(.` ` ` ` ` ` ~ _ Q Q ^ ^ ^ ] tXKXKXKXeX. - KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXO o JXKXKXKX ", +" KXKXKXKX;.+.LXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX6 X iXKXKXKX8X% e r g k k v k c e W.KXKXKXKXAX3.3.2.2.P :XKXKXKXKXkX4.u.h.h.4.:XKXKXKXKXAXa.j.j.j.j.a.gXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXsXc.( g.m.g.g.g.g.` ` ` ` ` ` ` Q _ Q Q ^ ^ / ^ LXKXKXKX- . wXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXU.. 2XKXKXKX ", +" KXKXKXjX} &XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX6X. b KXKXKXVX* w g g k k x c c c v aXLXKXKXKXfXX.2.9.2.3.kXKXKXKXKXsX4.0.0.B.4.sXKXKXKXKXsXa.j.j.j.j.P.GXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXBX(.( g.(.g.g.g.` ` (.` ` ` ` ~ ~ ~ Q Q ^ ^ ] T.KXKXKXmX. @ KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLX. o KXKXKXKX ", +" KXKXKXKX).+.JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX+ X SXKXKXKXI.& e g k k k k c c X.v MXKXKXKXJXW.P 4.2.4.4.PXKXKXKXKX!.4.h.0.h.a.AXKXKXKXKX/.a.j.j.j.a.(.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX/.( g.m.g.c.g.g.` g.` ` ` ` ` ~ ~ Q ^ ^ R F SXKXKXKXB . 2XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXS . 7XKXKXKX ", +" KXKXKXAX+.-XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXU.. %.KXKXKXmX& e g g k x x c c c v 1.JXKXKXKXJXW.3.3.3.P p.KXKXKXKXKXF.4.B.N.4.F.KXKXKXKXKX!.a.j.j.j.) /.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXsX) g.g.c.(.g.` ` ` ` ` ` ` ~ ~ ~ Q ^ ^ F ~ KXKXKXJX. X JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXNX. - KXKXKXKX ", +" KXKXKX-X} NXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXO + GXKXKXKXb * g g k z k v c c ,.v Q.KXKXKXKXKXKXGXkXaX!.:XLXKXKXKXVX9.h.B.h.a.XC.a.gXKXKXKXKXsXa.j.b.j.s.b.HXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXsX) g.(.g.g.g.g.g.d.` ` ` ~ ~ ~ ^ ^ ^ ] rXLXLXKX4X. m KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX= . LXKXKXKX ", +" KXKXKXKX;.#.JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXZ . 6XJXKXKXE.& e g k k x c c c ,.,.,.3.GXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXKXKXKXBXHXKXKXKXKX/.( j.j.j.s.~.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXrX) (.g.g.g.g.` d.d.` ` _ ~ ~ Q ^ ^ H H HXKXKXLXo . FXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX3X. eXKXKXKX ", +" KXKXKXNX+.&XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXFXO $ KXKXKXHXw 9 g k k x c c c c ,.o.P 6.GXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJ.s.b.j.b.s.sXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHX(.( g.g.g.g.g.d.d.` ` _ ~ ~ Q Q ^ ^ ] rXKXKXKX5X. B KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHX. = KXKXKXKX ", +" KXKXKX%X+.VXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX&.. Y.KXKXKXT.& g g k x x c c X.,.,.,.<.2.2.Q.^.fXAXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXZXs.j.b.b.b.( gXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLXHX` ` (.g.g.` g.d.` ` _ _ ~ ~ Q ^ ^ H H GXLXLXKX+ . DXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . xXKXKXKX ", +" KXKXKXKX;.;.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX# X GXKXKXKXw 9 g f k v c c X.K ,.,.,.2.2.3.3.3.3.4.p.!.aXBXGXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXsXa.b.b.b.s.c.ZXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLXBX( c.g.g.g.g.d.` d._ _ ~ ~ _ ^ ^ ^ ] rXKXKXKX5X. U.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXqX. B KXKXKX ", +" KXKXKXjX+.pXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX7X. &.KXKXKX8X& g f k k x c c c ,.,.,.1.<.2.2.2.9.2.4.4.3.4.4.p.!.>XgXZXKXKXKXKXKXKXKXKXKXKXKXKX/.s.b.j.b.s.m.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLX/.~.sXBXGXKXKXKXLXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLX/.` c.(.c.g.d.d.` ` ` _ ~ Q ^ Q ^ / H HXKXKXHX. + KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXX O KXKXKXKX ", +" KXKXLX X+.CXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX5 X DXKXKXLXr 9 g k k x x c c ,.,.,.,.2.2.9.9.3.3.u.p.p.B.u.4.4.a.4.4.a.C.^.sXgXGXKXKXKXKXKXKXKX~.a.b.b.b.( /.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLXLXHX) ) ) ) c.~./.gXBXHXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLXHX` ` g.` d.g.g.d.` ` _ _ _ Q ^ ^ ^ ] rXKXKXKXC . 4XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXB . dXKXKXKX ", +" KXKXKXGX+. XLXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXzX. N KXKXKX8X& g f k x c v c c ,.,.2.,.2.2.4.3.p.fXZXKXKXJXAXsX!.4.4.V.a.a.a.a.a.j.(./.sXBXKXKXKXj.s.b.b.n.) sXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXBX) n.n.n.c.s.s.s.n.m./.sXgXZXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXsX( g.g.g.g.g.` d.` _ ~ Q Q Q R ^ F ^ LXLXKXbX. @ KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxX. B KXKXKX ", +" KXKXKXjX+.=XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXV . dXKXKXKXn 2 g g k k c X.c ,.,.,.,.<.2.2.3.^.KXKXKXKXKXKXKXKXJXkXB.a.B.j.j.B.j.P.a.a.a.P.J././.b.b.b.b.c.) gXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXgX) n.n.n.n.n.n.n.v.b.s.s.s.v.~.>XgXZXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXg.` g.g.` ` g.d.d.` _ _ Q Q Q ^ R ] tXLXKXKX- . zXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX+ o KXKXKXKX ", +" KXKXKX-X+.CXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXFXX & KXKXKXmX2 e g v k x c c X.,.,.,.<.2.2.3.Q.KXKXKXKXKXKXKXKXKXKXKXJXV.a.B.j.P.j.j.j.b.b.s.( ) s.b.g.c.n.b.c.GXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX/.) n.n.n.v.n.v.v.m.v.v.v.v.G.s.s.s.P.J.>XsXgXZXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXsX( (.g.g.g.g.d.d.` _ _ Q Q ^ ^ R ] T.KXKXKX9X. N KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXZ . xXKXKXKX ", +" KXKXKXLX;._.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX5X. Y.KXKXKXI.& g f k x c c X.,.,.,.,.2.2.3.2.KXKXKXKXKXKXKXKXKXKXKXKXKXJXa.a.V.j.j.b.P.( ) j.~.BX/.( b.b.b.) (.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXc.) n.n.n.n.v.n.v.v.v.v.J.J.J.J.J.G.G.P.s.s.P.G.~.sXZXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXZX` g.g.g.g.g.d.` ` _ _ _ Q Q Q Q R ] VXKXKXKXX . HXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxX. Z KXKXKX ", +" KXKXKXNX+.=XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX5 X VXKXKXGXe w g g k c c X.c ,.,.,.2.2.9.3.aXKXKXKXKXKXKXKXKXKXKXKXKXKXKXsXa.j.P.s.a.s.~.sXGXKXKX~.s.c.c.n.) /.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXZXc.c.n.n.n.n.m.m.v.v.v.v.J.v.v.J.J.J.J.J.H.J.J.G.P.P.P./.BXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX~.( c.g.g.g.g.g.` ` _ Q _ ^ ^ R R ] rXJXKXKXC . 9XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX. # KXKXKX ", +" KXKXKX=X+.NXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXvX. p KXKXKX0X& g f z x x c c ,.,.,.2.<.2.3.9.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXZXa.( a.z.sXBXKXKXKXKXGXc.c.c.b.m.) gXLXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXgX) c.n.n.n.n.m.v.v.v.v.v.J.J.J.J.J.J.J.H.J.H.J.G.J.H.G.s.P.>XJXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXgX( (.g.g.g.g.d.` ` _ _ Q _ Q ^ ^ F U HXKXKXnX. p KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . SXKXKXKX ", +" KXKXKX_.;.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXU.. 6XKXKXKXn 2 g g x x x c c ,.,.,.,.2.2.3.:XKXKXKXKXKXJX:X^.sXHXKXKXKXKXKXGX~./.BXKXKXKXKXKXKXKXgX) b.b.c.c.) BXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXsX) c.n.n.m.n.v.v.v.v.J.v.v.J.J.G.J.J.J.J.H.J.J.H.H.J.H.H.G.a.G.BXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXZXg.` g.g.g.g.d.d.` ` _ _ Q Q Q R R ] gXLXKXKX= . DXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX7X. 3XKXKXKX ", +" KXKXKXZX=.%XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX= O PXKXKXVXw e f k k x v X.,.,.1.,.2.2.2.3.fXKXKXKXKXKX!.4.a.4.B.ZXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLXsX) c.b.c.) c.HXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLXLX~.s.c.n.n.n.v.v.v.v.v.v.J.J.v.J.J.J.J.H.J.J.H.J.H.H.H.J.G.H.H.P.P.BXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX(.) (.g.g.d.g.d.d._ _ _ Q Q ^ ^ R F ' KXKXKX2X. 4XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSX. - KXKXKX ", +" KXKXKXjX+.hXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXnX. b KXKXKX6X& g g k z x X.c ,.,.1.<.2.2.2.4.ZXKXKXKXKXkX4.h.h.B.a.>XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX/.) c.c.) ) /.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLXc.c.c.n.m.n.v.m.v.v.J.J.v.J.v.G.J.J.J.J.J.H.H.H.J.H.J.H.J.H.H.J.P.P.GXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLXsX( z.g.g.g.g.d.d.f._ ! ~ W Q R R H H PXKXKXnX. p KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX% . LXKXKXKX ", +" KXKXKX*X+.VXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX5X. 7XKXKXJXn 2 e k z x c v ,.X.,.,.2.2.2.3.p.KXKXKXKXKX:X4.B.B.N.a.^.KXKXKXKXKXKXKXKXKXKXKXKXKXKXJXc.) c.c.(.) sXKXLXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXZX) c.c.n.m.n.v.v.v.v.v.v.J.J.G.G.J.J.L.L.J.J.H.H.H.H.H.H.H.H.H.H.~.s.XgXBXKXKXKXKXKXKXKXKX/.s.n.c.c.) ~.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXc.) s.s.P.v.v.L.G.G.G.G.G.L.L.G.L.G.L.L.L.L.L.L.V.H.L.L.L.L.L.K.K.K.L.L.a.kXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX/.j.z.z.z.z.z.g.l.k.f.f.f.f.! ! W W ^ ^ U F T.KXKXKXM . vXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLX. p KXKXKX ", +" KXKXKXjX=.hXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXp X FXKXKXiX& e f f z z x X.X.1.1.1.1.e.2.e.e.e.p.u.u.u.p.:XlXgXBXkXlXlX>XD.a.a.a.P.H.~.sXgXZXKXKXKXc.s.n.n.c.) sXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXBXsX>X~.v.s.s.s.P.P.G.G.L.G.G.L.L.L.L.L.L.L.L.L.L.L.K.L.L.L.L.K.L.L.L.N.~.JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXz.b.z.C.z.z.z.l.k.g.g.f.f.! f.! W ^ ^ ^ U F ^ KXKXKX&.. 0XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX% o JXKXKXKX ", +" KXKXKXhX=.jXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX# & KXKXKX6X& s f f z z ..X.X.o.1.1.1.2.e.e.p.u.u.3.;XgXKXKXKXKXKXKXKXKXKXKXBX>XG.a.s.s.s.a.v.J.>XsXc.c.n.c.c.s.gXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXGXBXsX>X~.P.N.s.P.P.L.L.L.L.L.G.L.L.D.D.L.L.L.D.L.L.D.L.L.L.N.L.GXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXBXs.z.z.z.z.z.z.z.z.g.k.f.f.f.q.q.~ W ^ R R H H PXKXKX7X. 5XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXp . SXKXKXKX ", +" KXKXKX=X=.CXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXDXX p KXKXKXY.& s f f k z x ..X.,.1.1.1.e.e.2.p.y.y.lXJXKXKXKXKXKXKXKXKXKXKXKXKXKXGX>XN.s.G.P.P.s.s.s.n.c.b.n.c.s.ZXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXKXKXZXgXsXXK.P.N.N.P.N.P.V.L.L.L.L.P.N.N.P.>XJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX~.j.z.(.J.z.z.z.z.k.k.g.f.f.f.q.! W W ^ E R U F fXKXKXSX. - KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXU.. 0XKXKXKX ", +" KXKXKX X;.JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX0X. 5XKXKXKXb 2 s f f h x ....X.o.1.1.e.e.e.y.3.AXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXZXN.s.G.G.v.v.v.P.n.v.s./.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXZXgXsXXBXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXZXj.C.C.z.C.z.z.z.z.l.l.k.f.f.q._ q.~ W E E U U ] tXKXKXKXO o KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX7X. 4XKXKXKX ", +" KXKXKX}.}.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX4X. 8XKXKXGXq 2 s f f k x ....X.o.1.1.e.e.t.3.aXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXZXs.P.P.G.v.v.v.v.v.) gXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXZXBXkXkXgXBXGXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXsXa.J.J.z.C.z.z.l.k.z.l.k.f.f.f.8.f.W W E E R R F T.KXKXKX- . FXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXqX. U.KXKXKX ", +" KXKXKX;. XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX&.. iXKXKXnX2 3 e f h h x ..X.X.X.1.1.w.e.3.i.KXKXKXKXKXKXKXKXZXBXkXAXZXKXKXKXKXKXKXKXKXKXJXkXs.L.P.v.v.P.v.v.s.BXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXH.j.J.C.C.z.C.C.l.z.l.g.k.k.f.f.f.! W W W E R H F T.KXKXKXp . mXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxX. S KXKXKX ", +"KXKXKXGX;.%XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXB . mXKXKXdX5 w d g f z z x ..o.1.1.1.1.e.3.kXKXKXKXKXKXJXkX%X+Xu.M.u.Z.@X>XBXKXKXKXKXKXKXKXKXK.s.G.G.P.v.G.s.b.JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXgXa.H.C.C.z.z.z.C.z.k.k.l.k.k.x.f.8.f.W W W E R U F Q.KXKXKXC . dXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXnX. m KXKXKX ", +"KXKXKXCX-.*XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . VXKXKXiX& w s f f h x ....X.o.1.1.1.y.i.KXKXKXKXKXKX:Xu.u.u.].M.Z.Z.M.M.M.XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXgXa.H.C.C.C.J.z.C.z.z.C.k.k.k.k.f.k.q.f.W W W W E E H ^ JXKXKX5X. 4XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXPXX - KXKXKX ", +"KXKXJXNX-.pXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX= $ KXKXKX6X$ w s d h z x ..X.X.o.1.1.w.3.jXKXKXJXKXGXt.u.u.+XZ.].Z.+XXXZ.Z.#XZ.M.@XKXKXKXKXKXKX~.N.G.P.G.G.s.gXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXL.V.C.H.J.C.C.J.C.C.z.z.l.z.k.k.f.f.f.q.q.~ W E R U G U GXKXKX7X. Y.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX+ = KXKXKX ", +"KXKXKXjX-.hXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX# % KXKXKXY.& w s f f h z ....X.o.o.w.O.e.GXKXKXKXKXaXu.].p.].].u.]..XZ..X.XZ.XXA.N.lXKXKXKXKXKX>Xa.P.L.G.P.P.BXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX>Xa.H.H.H.C.(.C.C.z.z.C.C.k.k.k.k.f.q.q.8.q.8.W E E R P H VXKXKX9X. A KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX# # KXKXKX ", +"KXKXKXjX=.hXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLXO 5 KXKXKXY.$ w w f h h x ....X.1.o.1.3.-XKXKXLXKXKX;Xy.'.].].+X].Z.+X.XXXZ.XXZ.A.N.D.KXKXKXKXKX>XN.L.P.G.P.G.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXBXP.D.H.C.C.H.C.C.C.C.C.k.C.z.k.k.k.f.k.f.f.8.W W E E R H H VXKXKX0X. Z KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX= # JXKXKX ", +"KXKXKXhX-.hXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXX 6 KXKXKX&.& w s f f h x ...o.o.o.1.O.%XKXKXKXKXKXp.u.'.u.].].u.+Xu.OXXXXXZ..XZ..XN.GXKXKXKXKXsXN.P.L.P.N.XM.S.S.N.N.kXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXXa.V.D.D.D.D.C.D.D.C.C.C.C.C.C.C.k.F.k.k.k.h.8.x.q.W 8.E E Y U F MXKXKXmX. m KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX6 X DXKXKXKX ", +"KXKXKXhX-.jXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXVX. p KXKXKX%.$ w s s f h z x .O.X.o.1.O.i.KXKXJXKXKXKX].y.'.].].].].].].+X.X+X+X.XM.kXKXKXKXKXJX@XN.N.S.N.D.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX>XN.L.D.D.D.D.D.D.C.D.C.C.C.C.C.F.j.k.k.k.k.k.k.8.8.q.q.8.E W R U F fXKXKXzX. N KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXp . PXKXKXKX ", +"KXKXKXpX-.jXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSX. p KXKXKX%.& w q s f f h .....o.o.o.3.y.NXKXKXKXKXKXGXu.y.{.].].].].+X+X+X+XOXu.;XKXKXKXKXKXkXM.@XA.S.M.>XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXGXK.N.D.D.S.L.D.S.D.C.D.D.V.C.C.C.C.C.C.F.F.k.h.k.h.f.8.f.q.W E E E Y F MXKXKXzX. N KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX6 X PXKXKXkX ", +"KXKXKXhX-.jXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXFX. p KXKXKXZ # 3 w s f h z .....o.o.w.w.O.&XKXKXKXKXKXKXGX%Xu.{.{.].[.].+X]..Xu..XGXKXKXKXKXKX>XM.A.A.A.M.lXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXkXL.N.A.D.D.D.S.D.S.S.V.D.C.V.C.V.C.C.B.j.F.h.k.k.f.h.h.q.8.q.W W E E U F MXKXKXdX. B KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX6 O HXKXKXlX ", +"KXKXKXhX-.hXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXX 6 KXKXKX%.$ 3 q s f f h h x .X.O.1.w.O.w.LXKXJXKXKXKXKXKXkX;Xu.`.y.`.`.`.].:XJXKXKXKXKXKXJX@X.X#XA.N.M.kXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXZXXA.M.L.@XL.@X@X@XD.@XD.A.D.S.D.S.S.D.V.V.C.V.B.C.j.F.k.F.h.h.k.h.f.8.8.W 8.E E P U FXKXKXwX. U.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX# % KXKXKX ", +"KXKXKXNX-.hXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX= # KXKXKXE.# 5 q s s j h z .. .X.o.o.O.jXaX .w.CXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXoX.XXXOX#X#XM.,XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXGXBXlX.*XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXB . vXKXKXdX$ 2 3 w s f f h . ...h aXKXJXLXKXKXi.y.y.).aXAXKXKXKXKXKXKXKXKXJXKXGXlX`.`.[.+X$X.X$XOX.X$XJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX>X>XkXZXKXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJX>XM.S.A.A.L.#X@X@X@X@XL.L.@XA.A.D.S.S.D.S.D.S.D.V.F.F.B.V.B.F.h.F.h.k.0.0.q.8.8.7.E E / Q.KXKXKXV . dXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXnX. V KXKXKX ", +"KXKXKXJX_.|.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXZ X iXKXKXcX& 5 3 q s f f j z .| o.JXKXLXLXKXAXy.t.t.y.y.).%X,XkXZXGXJXGXCXjX:X`.u.{.$X.X[.+X$X.X.X.X;XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXGXM.M.M.A.@X>XlXBXJXKXKXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXsXN.S.A.A.L.@XL.@XD.@X@XL.A.A.S.S.S.Z.S.F.V.Z.V.V.B.V.k.B.B.k.k.p.0.0.f.8.W 7.7.E E F T.KXKXKXm . vXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXdX. &.KXKXKX ", +" KXKXKX}.}.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX5X. wXKXKXDX2 & 3 w s s f h h .h 8XKXLXLXKXKX-XO.t.t.t.'.{.y.y.{.'.'.[.[.[.`.{.{.;XjXCX[..X+X.X$X.X.XlXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXBXN.#X#XA.#XM.M.#X@X>XlXkXZXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXlXM.N.@X@X@XL.A.A.A.A.@XA.A.S.S.S.S.S.A.V.F.F.V.V.V.F.k.h.F.k.k.k.q.0.q.8.W E 7.E F ^.KXKXKX- X FXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXqX. U.KXKXKX ", +" KXKXKX|.}.JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX9X. Y.KXKXKX9 & 3 w q s j h h h .cXKXLXHXKXAXO.y.t.t.).t.'.'.'.'.'.{.{.{.{.;XlXAXKXKXJX$X[.+X$X.X[..XkXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXlXM.@X#X@X@X@X@X#XN.M.M..XA.;X>XlXBXGXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXkXN.A.@XL.@XA.A.A.A.D.D.A.S.S.F.A.S.F.V.Z.Z.F.V.B.C.h.h.h.h.h.k.h.0.8.8.W E E Y F tXKXKXJX# % KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX6X. 7XKXKXJX ", +" KXKXKX*X;.GXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxX. Z KXKXKXN $ 2 3 q s f h x h X.GXKXLXLXKX&XO.r.t.t.t.'.t.'.'.'.].[.[.{.{.lXKXKXKXKXKX$X{.$X$X[..X[.GXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX>XM.#X#X#X@X#X@X@X@X#XA.@XA.M.M.M.N.@XXlXZXKXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXlXM.#X@XA.A.A.A.A.A.A.A.A.F.S.S.S.V.V.V.V.V.F.B.h.B.B.k.h.h.0.0.q.8.8.7.E 7.E F fXKXKXVX. p KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXY.. 0XKXKXZX ", +" KXKXKX=X>.CXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSXX p KXKXKX%.$ 2 w q s s j h d R.KXLXLXKXKXR.#.e.e.t.t.t.'.'.].'.'.'.'.[.{.*XKXKXKXKXJX;X`..X[.$X`.$XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX;XM.#X#X@X#X#X#X@X@X@X#X@X#X#X#X@X#X#XM.M.N.N.;XlXBXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXsXM.S.A.A.A.@XA.A.A.S.A.A.A.S.S.S.Z.F.B.V.B.F.F.B.h.F.k.h.q.0.8.8.8.8.7.E E P MXKXKXmX. V KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXZ . mXKXKXBX ", +" KXKXKXhX>.jXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX+ # KXKXKXY.$ 2 3 q s f f h d E.KXHXHXKXHXw.y.r.t.t.t.'.t.t.'.'.'.'.'.[.{.;XKXKXKXKXJX,X`.[.$X[.`.:XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXZX#XXX#X#X#X#X#X#X@X@X@X@X#X#X#X#X@X#X@X@X@X@X@XN.M.N.;XlXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX.hXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX6 . PXKXKX0X# 2 3 w s s f h d W.KXHXLXKXDXw.#.w.r.r.t.t.).).'.'.'.'.{.].{.$XKXKXKXKXKX;X`.[.$X[.`.lXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXkXM.OXXX#X#X#X#X#X#X#X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@XN.M.A.lXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXA.M.@XA.A.A.A.Z.A.S.S.F.Z.Z.F.Z.F.B.V.F.B.B.k.B.h.p.q.h.0.q.8.8.W 7.E P Q.KXKXKXY.. iXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX& # KXKXKX ", +" KXKXKXAX-.=XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXB . mXKXKXcX# 5 3 3 q s f j 7 8XKXLXHXKXLXw.#.r.r.t.t.t.t.).'.'.'.'.'.[.{.%XKXKXKXKXKX*X{.[.$X[.`.kXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXlXM.XXXXXXXXOX#XOX#X@X@XOX@X@X@XOX@X@X@X@X@X@X@XA.@X@X@XA.#XM..*XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX5X. 6XKXKXLX2 & 2 q q s d f d 8XJXHXHXKXKXR.O.@.r.r.t.t.).).'.'.'.'.'.'.{.,XKXKXKXKXKX$X{..X[.[.[.GXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX;XM.XXOXXXXXOX#X@XoX@XOXOX@XOX@X@X@X@X@X@X@X@X@X@X@X@X@X@X@X@XM.A.ZXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX>XM.oXA.A.Z.A.A.Z.Z.Z.Z.Z.V.V.B.B.V.B.B.B.B.h.B.h.k.q.0.8.8.8.E E E F rXJXKXKX* + JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXnX. &.KXKXKX ", +" KXKXJX}.|.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXqX. B KXKXKXV $ 2 3 q s d j 4 E.KXGXHXJXKXfXO.w.w.r.t.t.t.'.t.).'.'.].{._.jXKXKXKXKXZX[.[.[.[.`.;XJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX@X.XXXXXXXOXOXoX#XOX#XOX@XoX@X@X@X@X@X@X@X@X@XL.@X@XL.@X@XD.@X@XM.N.ZXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXZ.N.A.A.A.Z.A.Z.S.Z.Z.V.Z.Z.F.Z.B.B.B.B.h.h.0.0.0.0.0.8.8.7.7.E Y F fXKXKXPXo p KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXiX. 3XKXKXJX ", +" KXKXKX|.}.JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXFX. - KXKXKXY.O 2 4 3 q s f 4 I.KXHXHXJXKXKXi.O.r.r.r.t.t.).).).'.'.'.{.].KXKXKXKXKXjX{.[.[.[.`.,XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXAX.X#XOX#XOXOX#XOXoXOX@XOX#X@XOXOX@X@XOX@X@X@X@X@X@X@XD.@X@X@XA.@X@XN.@XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXlXM.Z.Z.A.Z.Z.Z.Z.S.Z.V.Z.Z.F.B.B.B.p.h.B.p.h.h.q.0.0.8.8.8.E E I Y FXKXKXdX. &.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX3X. iXKXKXGX ", +" KXKXKX=X:.CXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX# X PXKXKXiX$ 2 3 3 q s f d x PXKXLXJXJXKXGX@.O.r.r.t.t.).t.'.).'.{.y.jXKXKXKXKXKX,X{.[.[.[.{.kXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXlX.X.XOX#XOXOX@XOXOXoXOX@X@XOX@X@XOX@X@X@X@X@X@X@X@X@X@X@X@X@X@XD.@XD.M.>XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXZ.N.S.Z.A.S.Z.S.F.Z.Z.F.Z.B.B.B.F.F.B.h.h.h.p.p.0.q.8.7.7.W 7.P W KXKXKX6X. 7XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXV . VXKXKXBX ", +" KXKXKXhX>.jXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXN . iXKXKXFX& & 3 3 q d d h 7 dXJXLXLXLXKXKXZX-XO.#.y.r.t.).).{._._.,XKXKXKXKXKXKX$X{.[.[.[.[.ZXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX>X.XOXOXOXOXOXOX#XOXoX#XoXOX@X@XOX@X@XOX@X@X@X@X@X@X@X@X@X@X@X@XA.@X@X@XN.ZXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXlXM.S.Z.Z.Z.Z.Z.Z.Z.Z.F.B.B.p.B.B.h.h.p.0.h.0.q.0.8.8.7.7.7.7.F T.KXKXKXV . cXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX2 # KXKXKXlX ", +" KXKXKXjX>.=XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX4X. 3XKXKXKXb $ 2 w q s d f d $.KXKXLXLXKXKXKXKXaX-Xr.y.y.y.y._.%XkXKXKXKXKXKXKXkX{.[.[.[.{.$XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJX@X.XOXOXOXOXOXOXOXOX#XOXoX@XOXOX@X@XOX@X@X@X@X@X@X@X@X@X@X@X@X@X@X@XA.@XM.>XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXZ.N.Z.A.Z.Z.Z.F.Z.B.Z.B.B.B.B.B.B.B.h.0.0.0.0.8.7.q.7.E 7.Y F fXKXKXJX% # KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLX+ p KXKXKX ", +" KXKXKXGX>.|.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXzX. p KXKXJX&.O 3 3 4 q s f h 4 uXKXKXJXKXKXKXKXKXKXPXjXjXaXjXCXKXKXKXKXKXKXKXKX[.{.[.[.[.{.,XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXZXOX.XOXOXOXOXOXOXOXOXOXOXOX#XOX@XOXOX@X@X@XOX@X@X@X@X@X@X@X@X@X@X@X@X@X@XN.@XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX:XM.B.Z.Z.F.Z.B.Z.B.Z.B.B.B.B.B.p.h.p.k.0.q.0.q.9.q.7.q.7.Y U ZXKXKXmX. N KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXcX. &.KXKXKX ", +" KXKXJX|.}.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXO O KXKXKX0X$ 2 3 w q s d h d h CXKXLXLXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXjX{.[.{.[.[.{.,XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXkX.XOXOXOXOXOXOXOXOXOXOX@XOXOX#XOX@X@XOXOX@X@X@X@XOXOX@X@X@X@X@X@XD.@X@X@XA.@XGXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXgXM.Z.Z.Z.Z.Z.Z.B.Z.B.B.B.B.p.B.h.0.h.p.0.0.0.9.8.7.7.Y E F Q.KXKXKX6X. Y.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX0X. 8XKXKXKX ", +" KXKXKX*X>.CXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . mXKXKXFX& & 2 3 q q d f h d $.GXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJX{.{.|.{.[.[.{.kXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX,X.XOX$XOXOX$XOX#XOXOXOXOXOX#XOXOX@XOX@X@XOXOX@X@X@XOX@X@X@X@X@X@X@X@X@X@XA.N.kXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXGXZ.N.Z.Z.Z.B.Z.Z.Z.B.B.B.B.p.h.p.h.0.0.0.q.8.8.7.q.7.Y E F ^.KXKXKXN . mXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXV . nXKXKXAX ", +" KXKXKXhX:.hXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX9X. Y.KXKXKXb # 5 3 q s s d j h d ..cXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJX X_.[.[.[.[.{.[.ZXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX;X.X$X$XOXOXOXOXOXOX#X@XOXOXOXOX@XOXOX@XOX@XOX@X@X@X@X@X@X@X@X@X@X@X@XD.@X@X.XkXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX.=XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXFX. 6 KXKXKXY.O 2 3 3 q d f h h .j j &XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXAX[._.].[.[.[.|.{.$XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX$X.X$X$XOX$XOXOXOXOXOXOXOXOXOXOXOXOXOX@X@XOX@X@XOX@X@X@X@X@X@X@X@X@XD.@X@XA.N.kXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX>XM.Z.Z.Z.p.Z.B.B.B.B.B.0.N.0.p.0.0.0.q.0.9.8.7.7.7.Y P U LXKXKXmX. N KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXVXX b KXKXKX ", +" KXKXKXLX}.}.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX= X DXKXKXcX$ 2 4 3 q s d j h h .| j @.uXVXKXKXKXKXKXKXKXKXKXKXGX,X)._.'.[.'.'.[.{.{.,XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXZX.X.X$X$XOXOX$XOXOXOXOXOXOXOXOXOX@X@XOXOXOX@X@XOX@X@X@X@X@X@X@X@X@X@X@X@X@X@XN.BXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLXsXu.Z.B.B.Z.Z.p.p.B.p.p.B.p.0.0.0.0.0.0.q.9.8.7.E 7.E P Q.KXKXKXY.. 8XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX0X. Y.KXKXKX ", +" KXKXKX*X>.GXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXU.. wXKXKXKXp $ 2 3 q q d j f h h z O.| .O.i.&XaXNXAXCXCXkXhX%X'._._.{. X'.{.{.[.{.{.hXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXkX.X$X$X$XOXOXOXOXOXOXOXOXOXOXOXOXOXOXOX@XOX@XOX@X@XOX@X@X@X@X@X@X@X@X@X@X@X#XZ.ZXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXkXN.B.Z.p.B.B.N.p.B.B.B.p.B.0.0.0.0.9.9.8.7.7.7.E 5.L F aXKXKXKX6 o DXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXZ . dXKXKXGX ", +" KXKXKXhX>.jXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXzX. b KXKXKXY.O 2 3 q q d f h h z . ...O.O.O.O.#.#.y.y.r.#.y.y._.). X'.'.'.'. X[.{.{.AXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX,X`..X$X$X.X$X$XOXOXOXOXOXOXOXOXOXOXOXOX@XOXOX@XOX@X@X@X@X@X@X@X@X@X@X@X@X@XN.@XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXAXB.p.Z.B.p.p.p.B.p.0.0.0.0.p.0.0.0.9.q.7.7.7.5.E Y P P HXKXKXVX. b KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX5 # JXKXKXkX ", +" KXKXKXCX>.*XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX# o HXKXKXbX# 2 3 4 q d d f f h . . .O.o.#.@.@.@.#.@._.r.t.).).).).'.).}.'.[.[.{. XJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX;X.X$X$XOX.X$X.X$XOXOXOX$XOXOX$XOXOXOX@XOXOX@XOX@XOX@X@XOX@X@X@XOX@X@X@X@XA.M..CXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXmX. 6 KXKXKX7XO 4 4 4 s s d j h h h .O.o.o.@.@.r.@.)._.@.r.).t.).)._.). X{.'.[._.,XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXAX.X$X[.$X$X$X$X$X$X$X$XOXOX$XOXOXOXOXOXOXOX@XOXOXOX@XOX@X@X@X@X@X@X@XA.@X@XA.N.GXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLXF.0.B.B.p.0.p.p.0.0.0.0.0.9.9.8.9.7.7.7.E Y Y Y P P GXKXKXVX. b KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXV X SXKXKXGX ", +" KXKXKXjX:.hXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX# . VXKXKXPX& 5 2 3 s s d j h h . ... .o.@.@.@.@.@.@.).).r.).).).'.'.).'.'.{._.lXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXlX`.$X.X$X$X.X$X$X.X.X$X$XOXOXOXOXOXOXOXOXOXOXOX@X@XOX@XOX@XOXOX@X@XoXoX@X@XM.;XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXZ.u.p.0.p.B.0.p.0.p.0.0.0.9.0.9.7.7.7.7.5.5.E Y v T.KXKXKXY.. 7XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX$ 2 KXKXKX ", +" KXKXKXGX>.|.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXU.. 3XKXKXKX%.$ 3 3 3 s s f j h . . .O.O.@.o.@.@.r.r.r.r.r._.t.).).).{.).'.{.{.CXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX,X.X$X$X$X.X$X$X$X$X$X$X$X$X$X.XOXOXOXOXOXOXOX@X@XOXoXoXOXoX@XOX@X@XoXoX@XZ.M.BXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXGXB.h.p.0.B.0.0.0.p.9.0.9.0.7.9.7.7.7.7.Y Y Y Y T F AXKXKXKX% + PXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXmX. Y.LXKXKX ", +" KXKXKX*X>.ZXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSXX = KXKXKXdXO 5 3 4 4 s s j h h | . . .o.o.@.@.@.@.@.).r.i._.t.).).).'.'._. XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJX$X`..X[.$X$X.X$X$X.X$X$X.X$X$X$XOXOXOXOXOXOXOXOXOX@XOXoXoXoX@X@X@XOX@XoX@XM.:XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXZXp.u.h.p.0.p.p.0.0.0.9.9.9.9.7.7.7.7.7.7.Y Y Y F 6.KXKXKXqX. V KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXY.. dXKXKXJX ", +" KXKXKXhX:.hXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXm . dXKXKXKXr $ 3 3 q s s j h h . . .$. .o.o.@.@.r.@.r.r.r.t.).).).).).'._.,XJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJX,X$X[..X.X.X[.$X$X$X$X.X$XOXOX$XOXOX$XOXOXOXOXOX@XOXoXXXoXoXoX@XOX@XoX@XM.#XGXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXAX4.0.p.u.0.0.9.9.0.0.9.7.9.7.5.7.7.7.Y Y Y Y K i fXKXKXKXb . xXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX5 & KXKXKXkX ", +" KXKXKXGX>.|.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxX. N KXKXKX6XO 3 3 q q d s f h . .| o. .O.o.@.@.@.r.r.r.r.r.).r.).).'.t.y.hXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXZXlX,X;X$X.X`.`..X.X.X$X.X$XOXOXOXOXOXOXOXOXOXOXXXXXoX@XOXOX@X#XoXM.M.kXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXgX4.u.0.0.0.p.0.9.9.9.8.9.7.7.7.5.5.Y Y Y Y L F P JXKXKXDXo & KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXcX. V KXKXKX ", +" KXKXKX|.>.CXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX= . PXKXKXHX5 & 3 3 q s d f h j ... .$.O.@.o.#.@.@.@.r.r.r.t._.t.).).).y.kXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXKXKXKXJXAXlX,X$XOX.X`..X.X.X.XOX+XOXOX+XXXXX.XXXXXXXXXXXA.oXXXM.N.kXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXaX4.0.0.0.9.9.9.9.9.9.7.5.7.9.5.5.Y Y Y Y J Y i T.KXKXKXY.. 6XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX%.. dXKXKXKX ", +" KXKXKXjX>.hXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX4X. &.KXKXKX6XO 3 3 4 q d d j j h . .| o.O.o.o.@.@.r.r.@.r.r.t.t.r.).).'.GXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXGXkXlX:X$X.X.X`..X.XOX+XXXXXXXOXXXXXXXXX.XM.M.;XGXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJX:X4.9.0.0.9.9.9.9.9.7.9.7.5.5.Y Y Y Y Y Y K F l PXKXKXKX# # JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX& & KXKXKXAX ", +" KXKXKXJX}.|.JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXO X HXKXKXJX5 & 3 3 4 s d j j z j . . .o.o.@.@.@.@.r.r.r.r.r.r.).)._. XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXAXkX:X;X+X`..XM.M..X.X.XM.`.M..X;XBXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXp.4.9.9.9.9.9.9.7.7.7.5.5.7.5.5.Y Y K T K J i T.KXKXKX8X. Y.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXdX. %.KXKXKX ", +" KXKXJX*X>.CXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXZ . Y.KXKXKXY.O 3 3 3 s d f j j j . . . . .o.@.@.@.@.@.r.r.r.r.).r.y.&XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXGXkXlXlX,X:X;X:X>XlXkXGXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXGX0.4.9.9.9.9.5.7.9.5.5.7.5.5.Y Y L K T K T l i ZXKXKXJX6 . VXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX%.. dXKXKXKX ", +" KXKXKXAX:.=XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXFXX # JXKXKXPX5 & 4 q q d s f j h h . . .o.o.o.@.@.@.@.r._.r.r.t.).#.hXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXfX3.9.9.9.9.5.9.7.7.5.5.L Y Y Y L L K J P K i T.KXKXKX0X. V KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHX# 5 KXKXKXBX ", +" KXKXKXKX}.}.JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXV . 6XKXKXKXY.O 5 3 q q d s f j h . . . .| o.o.#.@.@.@.@.@.r.r.r.y.AXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX^.P 9.5.9.9.9.6.5.5.5.Y L L L L T K K J J u i ZXKXKXKX= . bXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX8X. 8XKXKXKX ", +" KXKXKX,X:.jXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXDXX # KXKXKXGX1 & 3 4 4 s s s j h h . . .o.o.o.$.@.@.@.r.r.r.r._.t.JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX0.3.7.9.5.5.<.5.5.5.Y L Y L T K T J J l J t T.KXKXKX0X. b KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXb O PXKXKXJX ", +" KXKXKXGX>.|.JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXZ . 6XKXKXKX6XO 3 3 q q s j f h h h . . .o.o.| o.@.@.@.@.r.@.#.-XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXkXP 7.9.9.5.5.5.5.5.L L L L K K K J J J l i i PXKXKXKX* . cXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXVX. n KXKXKX ", +" KXKXKXKX*X>.AXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXPXO + LXKXKXKXp $ 3 4 q q d d j h h . . . .O.@.o.@.#.@.w.w.r.O.&XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX!.P 9.5.5.5.5.<.5.L L L K K T J J J l J l > rXKXKXKX8X. V KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX%.. cXKXKXKX ", +" KXKXKXjX:.*XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXU.. %.KXKXKXdX$ 5 3 q s s d d j j h h . . .| O.O.$.@.@.w.w.#.jXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXZX3.<.7.<.5.<.5.K L Y K K K J J J J l l l 0 T KXKXKXKX# X HXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXDX+ 3 KXKXKXBX ", +" KXKXKXKX|.}.GXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXO X VXKXKXKXn $ 3 4 4 q s d j h h . . . .$. .o.o.@.@.@.@.#.AXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXrXP <.<.Y 5.5.K L L K K T J J l J l l u u > fXKXKXKXY.. &.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE.. 8XKXKXKX ", +" KXKXKXjX:.,XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX6X. b KXKXKXVX$ & 4 4 q s d d f f h | . . . . .O.o.o.#.O.w.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJX<.P ,.Y <.<.L K K K J J J J l l l l u l > I.KXKXKXVX. + JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX& & LXKXKXGX ", +" KXKXKXKX}.>.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX6 . dXKXKXKXE.O 2 3 3 q s s s j j j .. . . . .o.o.o.@.O.R.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXrXv <.<.L K K K K K l J J l l l u k y y i 0 PXKXKXKXb . 7XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX8X. Y.KXKXKX ", +" KXKXKXhX:.hXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXnX. = KXKXKXKXp # 3 3 4 q s j f j j h h h . . .o.O.o.| aXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX,.P L L K K K J K J J l l l u l u u u y < 8XKXKXKXdX. = KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX3 $ GXKXKXKX ", +" KXKXKXJX}.}.JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXB . Y.KXKXKXbX$ & 3 3 q q s s j j h h .h ...O.O.O.O.jXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJX^.v L K L K K K K J J l l l k k u u y y > n KXKXKXKX= . mXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXiX. Y.KXKXKX ", +" KXKXKXhX:.hXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLX$ . nXKXKXKXE.O 3 3 4 q q s s f j h j . . . . . .$.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXMXv K K K K K J l l l l l l l a y y y u t > FXKXKXKX&.. &.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXq # PXKXKXKX ", +" KXKXKXJX}.}.JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX0X. 6 KXKXKXKXb $ 4 4 4 q s s d j j h h h . . . .o.uXNXKXKXKXKXKXKXKXKXLXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXY v K K K K l K l l l l l a y y y y y 0 < dXJXJXKXxX. % KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXuX. Y.KXKXKXkX ", +" KXKXKX=X:.hXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXp . Y.KXKXKXnX$ & 4 3 4 3 q s s f j h h h . ... .j O.$.R.uXjXCXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXT.v J J K J K l l l l y u y y u i y y 0 < ' KXKXKXKX= . iXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX2 + FXKXKXKX ", +" KXKXKXKX}.}.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLX+ . bXKXKXKX8XO 5 2 3 3 s s s s j h h h h . . . ...| . .O.o.i.&XaXNXGXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXfXi K J J K l l l l l u u y y y 0 y 0 a * 0 JXKXKXKXV . B KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX8X. I.KXKXKXkX ", +" KXKXKXhX:.,XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXiXX = LXKXKXKX&.O 5 3 3 4 q 4 s d d h j h h . . . .O.O.O.O.O.O.| O.#.w.-X&XfXCXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXgXv v J c l l l l y l l y y y y y a 0 0 > < cXKXKXKX0X. = KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX5 $ PXKXKXKX ", +" KXKXKXKX}.>.JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXV . B KXKXKXJXp $ 9 4 3 4 q s s d d f h h h h . .....O.o.o.o.o.@.@.O.O.#.O.y.i.&XjXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXVXv v l l l l l u k u k y y y y y 0 i 0 > ; 8XKXKXKXHX+ . nXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE.. 8XKXKXKXkX ", +" KXKXKXjX>.*XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLX= X 8XKXKXKXSX$ $ 3 2 3 3 3 s s d f j h h h . . . ... .o.O.o.O.@.@.w.w.w.y.#.O.aXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXAXv i K l c l k l k u u y y y y 0 0 0 0 0 ; Y.KXKXKXKXp . Y.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHX$ 5 JXKXKXKX ", +" KXKXKXKX|.>.AXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXnXX . nXKXKXKXdXO & 5 3 3 3 s s 4 s s j j h h h . . .....O.o.O.o.@.o.@.@.o.O.w.HXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXMXv i l l l l l y l y y y y 0 y 0 0 0 0 0 ; a KXKXKXKXZ . p KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX%.X fXKXKXKX ", +" KXKXKXCX>.}.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX0X. = JXKXKXKXuXO & 2 5 3 3 4 s s s s f j h h h h . . .....O.o.O.o.o.1.w.O.i.KXKXKXKXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXfXe i c l l k y y y y y y 0 0 0 y 0 : 9 0 < : LXKXKXKX7X. @ LXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXfXX b KXKXKXGX ", +" KXKXKXKX=X:.hXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXZ . m KXKXKXKXY.O 5 5 5 4 3 q q s d d f j f h h .h . ...o...O.o.o.o.@. .&XKXJXKXLXLXKXKXKXKXKXKXKXKXKXKXKXKXKXKXCXGXJXKXKXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXW.e y l l k u y y a y y 0 y 0 0 0 0 0 , 0 < % MXKXKXKXNX. . mXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXs O NXKXKXKX ", +" KXKXKXKX}.>.JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXp . Z KXKXKXKXV X 2 2 5 2 3 w 4 q d d f j h j h h . . . .....o...o.o. .uXKXLXJXLXLXKXLXKXKXKXKXKXLXKXKXKXKXKXKXp.y.%X:XjXAXJXKXKXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXVX6.i k l l u k y y y y 0 y 0 r 0 0 0 : : p % ; cXJXKXKXHX@ . 9XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX8XX I.KXKXKXZX ", +" KXKXKXjX>.*XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHX= . 3XKXKXKXKXN O 5 2 3 3 3 3 q q s d d f j h h h z .........O.o. .O.cXKXLXLXLXLXLXLXLXKXKXKXKXKXKXKXKXKXJXFXr.y.y.y.y.t.p.%XaXkXGXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX8Xk t k u k y y y y y r r 0 0 0 0 0 , 0 : : < ; iXKXKXKXKX- . U.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXPX$ 5 KXKXKXKX ", +" KXKXKXKX*X:.jXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXNXO . iXKXKXKXKXb X 2 2 5 2 4 3 3 q s s s f f h h h h h h . . .o.| o.GXKXHXLXLXLXLXLXLXLXLXLXLXKXKXLXJXKXKXjXy.r.t.t.t.t.y.y.y.y.t.t.aXKXKXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXfXK t r l y k k y y r r y y 0 0 0 0 0 0 : : : * @ 8XKXKXKXKXp . m KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXn X fXKXKXKX ", +" KXKXKXGX>.}.JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXiX. X mXKXKXKXKXp O 2 2 2 4 3 3 q q q s s d j f j h h z . . . .h i.KXLXHXHXHXHXHXHXLXLXLXLXJXKXKXKXLXKXKXaXw.r.t.t.u.t.t.e.t.t.e.O.:XKXKXKXKXJXKXKXKXLXKXKXKXJXKXKXKXKXKXKXKXKXKXKXKXLXKXKXKXKXJXKXKXLXKXKXKXKXKXJXKXKXKXKXJXKXJXKXKXKXKXKXKXfXI.e e l k k k y y r r r 0 0 0 0 0 : 0 0 : : : < ; eXKXKXKXKXS . - KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXuXO %.KXKXKXJX ", +" KXKXKXKXhX:.*XJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX9X. X cXKXKXKXLX6 X 5 5 2 5 4 3 3 q q s d s s f j h h z h . .d W.KXDXDXDXHXHXHXHXLXHXLXHXLXLXLXKXKXLXKX%XO.e.e.e.r.e.t.e.e.t.u.y.jXKXLXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLXKXKXKXKXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLXKXKXKXKXKXKXKXVX8XT e t k l k y y y y y r 0 0 0 0 0 9 0 : : : : 6 % @ 7XKXKXKXKXA . - JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXFX$ 1 HXKXKXKX ", +" KXKXKXKX*X:.jXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX6X. O NXKXKXKXKXM X & 2 2 2 2 3 3 q q q s s s f j h h h h z d uXKXDXDXDXDXDXHXHXHXHXHXHXHXHXLXLXLXKXHXe.y.w.e.r.e.e.e.t.t.e.y.e.FXKXKXKXJXKXKXKXKXKXLXKXKXKXKXKXKXJXKXKXKXKXKXKXKXKXKXKXKXKXLXKXKXKXKXLXKXKXLXKXKXKXKXKXKXJXKXVXrXI.v t e v k y k y r r r r r 0 0 0 0 : 0 : : : : : : ; o 7XKXKXKXKXZ . @ PXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXb O uXKXKXKXkX ", +" KXKXKXJX>.}.GXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXU.. @ VXKXKXKXKXb X & 2 5 2 2 3 3 3 w s s s s d f f h h h h xXHXSXDXDXDXDXDXDXDXDXHXHXHXHXHXHXLXKXfXw.w.e.w.r.w.e.e.e.e.e.3.i.LXKXLXKXKXLXKXLXLXKXKXLXKXLXKXLXKXLXKXAXfXCXLXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXSXfXW.I.k e e y v y y k y r y r r r r 0 t 0 t 0 0 6 0 : : : : ; ; 8XKXKXKXKXU.. o bXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX8XX %.KXKXKXKX ", +" KXKXKXKXjX>.|.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXU.. @ NXKXKXKXKXN X & 5 2 2 2 3 4 3 3 w q q s s f f h d ..bXSXSXSXIXSXSXDXDXDXDXDXDXHXHXHXHXHXKXaXO.w.1.w.w.w.w.e.w.e.w.3.%XLXLXLXKXKXLXLXKXLXLXLXLXLXLXJXKXLXKXKXW.v 1.e.i.W.^.aXaXfXcXkXNXAXMXNXMXfXfXaXrXW.I.K x g e e v l k k y g y r r r r r 0 0 0 0 0 9 0 : 9 : : * : : + ; qXKXKXKXKX5X. o cXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXAX$ 5 KXKXKXKX ", +" KXKXKXKX*X:.=XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXU.. O cXKXKXKXKX&.X $ 5 & 5 2 2 2 3 q q q s d d s f d %.IXbXbXbXbXbXSXSXSXSXSXDXDXDXDXDXDXDXLX%XO.w.1.1.w.1.w.w.1.w.e.O.aXKXLXKXLXLXKXLXLXLXLXLXLXLXKXKXLXKXKXKX6.X.1.3...O.v v v X.v X.v c c X.v v v g e g g v k l v k k y g k y g r r r r r 0 0 t t : 0 : : : - : : < - o = mXKXKXKXKXZ . @ bXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHX3 $ cXKXKXKXkX ", +" KXKXKXKX}.>.AXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXU.. X cXKXKXKXKX6XO # 5 & 2 2 2 3 3 q q q q s s d 4 Y.DXzXvXvXvXbXbXbXSXSXSXSXSXDXSXDXDXHXHX6.O.o.1.1.1.1.1.1.w.w.1.O.gXKXLXLXJXLXLXLXLXLXLXHXLXLXJXLXKXJXKXAX3.o.,.1.,.,.,.,.,.3.c X.,.c v v c x c x l v v k k k k k g y g g r r r r 0 0 0 0 9 t 9 : 9 : : : * : * * o : SXKXKXKXKXS . o bXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLX%.X E.KXKXKXJX ", +" KXKXKXKXZX>.}.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX5X. X iXKXKXKXLX0X# O 2 5 5 2 2 2 2 3 q q q q d 4 6XIXzXzXzXvXvXvXvXbXbXbXSXSXSXIXSXDXLXbXO.O.o.1.@.o.o.1.1.1.1.O.1.FXKXHXLXHXLXLXLXLXLXLXHXHXHXLXLXLXHXKXfXz ,.,.X.,.,.X.X.X.c X.c c c X.c c l x c x x k k k y k g y e y r r r 0 0 0 0 t 9 9 : 9 : : - : * : : % . m LXKXKXKXKXB . @ nXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXuX$ b KXKXKXKX ", +" KXKXKXKXhX>.|.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX6X. . 6XKXKXKXKXcX- X & 5 & 5 2 2 2 3 3 3 q w q 9XUXqXxXxXzXzXzXzXvXvXvXbXbXbXSXSXSXLXiX .O.X.o.X.o.o.1.o.o.1. .i.LXLXHXHXHXHXHXHXHXHXHXHXHXHXLXLXHXLXKXW.v X.X.,.X.X.c c X.c c c c c c x k k k x k k k k k g g r r r r e 0 0 0 9 9 : 0 : : : : : : : * = < + . ' KXKXKXKXHXM . - DXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXNX$ 5 JXKXKXKX ", +" KXKXKXKX=X:.*XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX0X. . &.KXKXKXKXKXB X # 5 & 5 2 2 2 3 3 3 2 b yXqXqXqXyXyXxXUXxXzXzXzXvXvXvXbXvXbXLXW.h ..o...o.o.o.o.,.X.o. .W.JXDXDXDXHXHXDXDXHXHXHXHXHXHXPXHXHXLXKXR.z X.X.c c c X.c c c c x x x v x k k k k k k g r r r r r r r t r t 0 9 9 9 9 9 : : : * * < * * * o ; 0XKXKXKXKXnX@ . M KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXGX4 $ NXKXKXKXGX ", +" KXKXKXKX|.>.hXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXmX@ . B KXKXKXKXKX3XO O 5 & & 2 2 2 2 4 5 V qX9X9X9XwXqXqXyXqXxXxXxXzXzXvXvXvXvXDXI.h ..X.....X...o.o.X.X.z rXLXDXDXDXDXDXDXDXHXDXDXDXDXPXPXDXPXKXHX,.v X.c c ..c c l x x x x x k k k k k g k g e r r r r r r 0 t t 9 9 9 9 6 9 : * : * = : * = * ; . 6 bXKXKXKXKXdX. . m KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXb O uXKXKXKXJX ", +" KXKXKXKXGX}.>.CXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXFX- . - nXKXKXKXKXdX6 . % 5 & & 5 2 2 5 V 9X4XeX9X9X9X9XwXqXqXqXxXyXxXxXUXzXvXvXX.h z ....X...X.X....... .dXLXSXSXSXDXDXSXDXSXDXDXDXDXDXDXDXFXKXfXv z ..c x c x x x x x k k z k k k g g g r g r r e p r w w 0 9 t 9 9 9 : : : : * * * = * * * o o Z KXKXKXKXKX3X. . 2XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX%.O I.KXKXKXKX ", +" KXKXKXKXZX>.>.CXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXN . . wXKXKXKXKXKXZ X O 5 & 2 * 5 - ' 4X5X5X4X4X4X9X9X9X9XwXwXyXyXqXxXUXvXqXv z z z ..x ..x ......z X.bXDXIXbXSXIXSXSXSXSXSXSXSXSXSXSXSXDXLX8Xf x c x x x x x k z g g x g k g g g r r r r r r 9 w t 9 t 9 9 9 9 9 : : * : = * % < * * ; . - iXKXKXKXKXHXm . . 0XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE.O V LXKXKXKX ", +" KXKXKXKXjX>.}.JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX4X. . Z KXKXKXKXKXiX= X $ 5 & & 3 1X2XU.2X5X5X5X4X4XeXeX9X9X9XwXwXqXyXUX3Xe z z x x h .. .x x ..h I.DXvXbXbXvXbXbXbXbXbXbXSXbXIXIXSXSXIXHXT.e x x x k x g k k g g g g g g g r r w r r w w r w 0 9 9 9 9 : : * * 9 - * * * * * = % o . Z JXKXKXKXKXzX@ . - bXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXuX$ j KXKXKXKXkX ", +" KXKXKXKX,X:.|.KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXiXo . - VXKXKXKXKXLXZ O O & & = p C [ [ [ [ 2X1X2X4X4X4X4X4X9X9XwXwXUXI.d f z x h z x h x h x d E.IXvXvXvXvXvXvXvXbXvXbXbXbXbXbXbXnXSXDX$.e z f x g k g g g g g g g r r r r r r w w t 0 9 9 9 9 9 6 2 * : * : * * * * * * * + . - wXKXKXKXKXLX3X. . C JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXfX$ 5 CXKXKXKXAX ", +" KXKXKXKX=X:.*XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXDXM . . eXKXKXKXKXKXxXp X $ 5 & * p S [ [ A [ [ 1X2X1X4X4X4XeXeX9XyXn d f f h h h h x h x h h 8XIXxXzXzXzXzXzXvXzXvXvXvXzXvXvXvXvXIXmXk d k g g g f g g g f r s r q r w w w 9 0 9 w 9 9 9 9 : 9 * : : * * * * * % = % ; . o U.KXKXKXKXKXSXM . . 4XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXNX1 $ NXKXKXKXJX ", +" KXKXKXKX*X:.*XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX4X. . p nXKXKXKXKXKX7X= X # 5 & 5 p D S A S [ ' [ 1X2X4X5X5X4X4Xf d d d f f h g z f f f y qXzXyXxXqXxXxXxXxXxXxXzXxXzXzXzXzXzXIX9Xe f g g f s g f e e e r w r r w 0 9 9 9 9 9 9 2 : : : * * * * * * * % * % % % o o D MXKXKXKXKXKX4X. . M vXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXNX5 $ jXLXKXKXKX ", +" KXKXKXKXJX*X:.=XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXnX- . . 6XKXKXKXKXKXLX&.O X # & & 5 p D S [ [ S [ A ' 1X2X4XU.s s e s s f f f f f f d n qXyXyXqXqXqXyXqXyXyXxXqXxXyXyXyXxXUXIXY.9 e f g r r g e e r w 0 w w 9 9 9 9 9 2 6 9 : 9 * 2 * * * * * * = * = % * o . 6 qXKXLXKXKXKXbXp . . 2XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXCX4 $ fXKXKXKXKX ", +" KXKXKXKXKX|.:.=XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX2X. . 6 zXKXKXKXKXKXnXZ # O % & & 5 p M D S C S S A A 2XB w s s w s e s f e d f q n yX9X9XwXwXwXwXqXqXwXqXqXqXyXyXqXqXqXvX' 9 s e w w 0 w r 9 w t w 9 9 9 9 9 9 9 9 * 9 2 * * * * * * = * % % * % o . - eXKXKXKXKXKXKX2X. . - xXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXVX7 $ uXKXKXKXKX ", +" KXKXKXKXKX|.:.=XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXnXM . . S FXKXKXKXKXKXcXV $ X % & & * - M D C C C S A b 2 w q w q q e w s e q w ' wXeXeX9XeX9X9X9X9X9X9XwX9X9XyXwXwXqXqXg 3 e w 0 w w 9 w 3 w 9 9 9 9 9 2 2 2 2 * 2 * * * * * = * * % % % % . . 6 eXKXKXKXKXKXKX9X= . . 4XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXCX4 $ uXLXKXKXKX ", +" KXKXKXKXKX|.:.=XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXwX@ . o &.KXKXKXKXKXKXbX&.# X # & 5 & 5 p m D C C 0 9 3 w w w q q q w w w w &.4X4X4X4X4X4X4XeX4XeX9X9X4X9X4X9X9XwX4Xw w w w w w 9 9 9 9 9 9 9 2 * 9 * * * * * * * * * * * % % % % ; . . p 9XKXKXKXKXKXKXmXp . . D SXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXCX4 $ uXKXKXKXKX ", +" KXKXKXKXJX|.:.*XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXA . . = 9XKXKXKXKXKXKXFXU.6 O O & & & 5 6 M M 6 2 2 2 3 3 9 9 w w w 3 w 1X2X2X[ 5X5X2X5X5X4X4X5X4X4X4X4X4X4XwXA 2 9 9 9 9 6 3 9 3 2 2 2 2 2 * 2 9 * * * % * * = % % = % % + . + M wXKXKXKXKXKXKXbXC . . - 0XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXNX7 $ uXKXKXKXKX ", +" KXKXKXKXKX|.:.*XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXvXB . . - 9XKXKXKXKXKXKXKXwXN # O # & & 2 2 2 2 2 2 2 2 w 3 3 w 3 2 b [ A [ A [ A A 2X1X[ [ 1X2X2X2X2X2X2X9XN & 9 9 9 2 9 2 9 2 2 * 9 * * * & * * * & % * * % % % + . . - A cXKXKXKXKXKXKXnXS . . @ 4XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXfX8 $ uXKXKXKXKX ", +" KXKXKXKXKX*X:.*XGXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXzXm . . = 4XJXKXKXKXKXKXKXbX3Xp # O # & & 5 2 2 2 2 2 2 2 2 9 2 p S C C S S S A S [ [ ' [ ' [ [ [ [ 1X2X0 2 2 2 2 2 2 * * * * * * * * * * = * = % % = % # o . ; B wXHXKXKXKXKXKXKXzXD . . @ 5XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXfX5 1 fXKXKXKXKX ", +" KXKXKXKXKX*X:.|.JXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXdXM . . @ 5XPXKXKXKXKXKXKXKXzX&.6 # O # & 2 2 2 2 2 2 2 2 2 M [ D C C D C C B C C C S S S A S S [ S 9 & 2 * 2 * 5 * * * * * * * * % * & % & % + . . % p 4XDXKXKXKXKXKXKXKXxXm . . o &.LXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXuX1 8 fXKXKXKXKX ", +" KXKXKXKXKX=X:.}.CXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXxXN . . O S xXKXKXKXKXKXKXKXKXxXY.p & O O # % & 2 2 * 2 5 6 6 p M M D D D D C C C S C C S S [ D * 2 * * * * * * * = * * & & * % % + o . o = B eXbXKXKXKXKXKXKXKXPX9X- . . @ 5XHXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXE.$ 7 NXKXKXKXKX ", +" KXKXKXKXKXhX>.>.jXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXnX&.O . . 6 4XSXKXKXKXKXKXKXKXKXSX0X&.b & # O O # & & * * & 2 * 5 6 6 p p p p M p p p p M p & & * * & * & & & * & # + + . . + = N 2XdXLXKXKXKXKXKXKXKXKXxXC X . . - 9XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX*.$ | FXKXKXKXKX ", +" KXKXKXKXKXkX>.:.,XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLX7Xp . . X M 7XDXKXKXKXKXKXKXKXKXKXSXiX4XV p * # o O O # # % % % % % % % # & % & % & % % & % % % # + O o . . + = p Z 4XzXHXKXKXKXKXKXKXKXKXKXzXA = . . X C zXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXCXb $ *.LXKXKXKXKX ", +" KXKXKXKXKXCX}.:.*XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXzXC # . . O B 9XDXKXKXKXKXKXKXKXKXKXKXKXDXiX6XU.V p 6 * % # # + O o O O X X o o o O O + + % & p p V 2X7XxXHXKXKXKXKXKXKXKXKXKXKXKXzX5X- . . . - 4XHXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXfX4 1 E.KXKXKXKXKX ", +" KXKXKXKXGX*X:.|.ZXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLXqXB + . . X p 2XdXHXKXKXKXKXKXKXKXKXKXKXKXKXKXJXFXnXzXqX0X7X7X3X3X3X3X3X6X7X7X0XdXzXnXDXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSXwXS = . . . - 2XvXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXuX1 8 uXKXKXKXKXKX ", +" KXKXKXKXKX=X>.>.hXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLXqXZ = . . . # M U.qXSXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXvX9XZ - . . . . p 5XvXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXGX*.1 j NXJXKXKXKXKX ", +" KXKXKXKXKXjX>.:.=XKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXnX6XM O . . . X = N 2XqXbXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHXvXwXA p + . . . . @ C wXDXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXfX7 1 *.KXKXKXKXKXKX ", +" KXKXKXKXKXCX|.:.|.AXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXPXxX3XN - X . . . . + 6 m Z 3X9XiXzXnXSXHXLXKXKXKXKXKXKXLXPXVXvXzXqX7X2XC M = . . . . . . - Z 7XvXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX8X8 8 W.KXKXKXKXKX ", +" KXKXKXKXKXKX=X:.>.hXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXSXiX4XZ p # X . . . . . . . . X O O + + # + O X . . . . . . . . . . = M A eXzXDXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXNX$.1 .NXKXKXKXKXKX ", +" KXKXKXKXKXjX}.:.|.AXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXDXvXiX7X5XZ B M 6 - = = # @ # # = = - 6 m B A 2X9XxXnXHXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLX&X7 1 E.JXKXKXKXKXKX ", +" KXKXKXKXKXKX*X:.>.hXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXNX$.1 j fXKXKXKXKXKX ", +" KXKXKXKXKXjX}.:.|.AXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXW.8 8 E.GXKXKXKXKXKX ", +" KXKXKXKXKXJX=X:.>.*XGXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXiX .8 .fXLXKXKXKXKXKX ", +" KXKXKXKXKXKXAX|.:.>.hXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXNX*.8 7 W.KXLXKXKXKXKX ", +" KXKXKXKXKXLXhX>.:.|.jXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXPX&X7 8 *.NXKXKXKXKXKXKX ", +" KXKXKXKXKXKXGX=X>.:.*XjXLXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXHX&X| 1 ..fXLXKXKXKXKXKX ", +" KXKXKXKXKXKXCX*X:.>.*XjXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXPXuX| 8 | uXKXKXKXKXKXKX ", +" KXKXKXKXKXKXjX|.-.:.*XAXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXJXuX| 8 | W.KXKXKXKXKXKXKX ", +" KXKXKXKXKXKXKXjX*X-.-.|.jXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXPX&X| 7 | &XFXKXKXKXKXKXKX ", +" KXKXKXKXKXKXKXjX*X-.-.|.hXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXNXE.| 7 | &XHXKXKXKXKXKXKX ", +" KXKXKXKXKXKXKXCX*X-.:.;.=XCXKXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXjX*.{ 7 $.uXJXKXKXKXKXKXKX ", +" KXKXKXKXKXKXKXCX=X}.=.>.*XjXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXCX&Xo.7 { *.aXLXKXKXKXKXKXKXKX ", +" KXKXKXKXKXKXKXJXhX|.;.-.>.=XNXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXFXuXi.{ { | -XNXKXKXKXKXKXKXKX ", +" KXKXKXKXKXKXKXKXCX=X}.=.-.}.=XjXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLXKXKXVXhXR.| { | *.uXLXKXKXKXKXKXKXKX ", +" KXKXKXKXKXKXKXKXKXjX*X;.=.-.}.=XjXJXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXFXhXR.+.{ { @.&XCXKXKXKXKXKXKXKXKX ", +" KXKXKXKXKXKXKXKXGXjX*X;.-.=.;.*XhXAXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXPXNX&X@.+.{ | @.uXNXKXKXKXKXKXKXKXKXKX ", +" KXKXKXKXKXKXKXKXKXKXjX=X|.-.=.-.;.*XhXjXHXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXFXjX&Xi.+.} | +.*.uXCXKXKXLXKXKXKXKXKXKX ", +" KXKXKXKXKXKXKXKXKXKXCXhX=X}.=.=.=.;.|.=XhXjXGXKXKXLXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXGXjXpX-X#.+.| } | *.&XjXHXKXKXKXKXKXKXKXKXKXKX ", +" KXKXKXKXKXKXKXKXKXLXKXNXhX*X X;.=.=.=.;. X*X=XhXjXCXHXKXKXKXKXKXKXKXKXKXLXKXKXKXKXKXKXKXKXKXKXKXKXKXLXKXLXGXNXjXuX&X-X#.+.} | +.#.*.&XaXCXJXKXKXKXKXKXKXKXKXKXKX ", +" KXKXKXKXKXKXKXKXKXKXKXKXGXjXhX=X X;.-.=.=.+.-.;.;. X-X%X=X=XpXhXjXjXjXjXjXjXjXjXjXhXhXpX&X&X&X X@.;.+.+.+.+.+.+.#.-X&XfXNXJXJXKXKXKXKXKXKXKXKXKXKXKX ", +" KXKXKXKXKXKXKXKXKXKXKXKXKXKXLXCXNXjXpX*X-X).;.;.=.=.+.=.+.=.+.+.+.+.+.+.+.+.+.+.+.+.+.+.;.;.r.-X=XuXhXNXGXKXKXLXLXKXKXKXKXKXKXKXKXKXKX ", +" KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXGXCXAXNXjXhXhXpX=XpX&X=X=XpXpXpXhXjXNXCXZXLXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX ", +" KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXLXKXKXKXKXLXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX ", +" KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX ", +" KXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKXKX " }; diff --git a/share/pixmaps/bitcore32.png b/share/pixmaps/bitcore32.png deleted file mode 100644 index 2aa5125e..00000000 Binary files a/share/pixmaps/bitcore32.png and /dev/null differ diff --git a/share/pixmaps/bitcore32.xpm b/share/pixmaps/bitcore32.xpm index 013f763b..26ef62bd 100644 --- a/share/pixmaps/bitcore32.xpm +++ b/share/pixmaps/bitcore32.xpm @@ -1,127 +1,261 @@ /* XPM */ -static char *_816434f37344d2a9b782e80f166e48e[] = { +static char *ajonx_v9qwh[] = { /* columns rows colors chars-per-pixel */ -"32 32 89 1 ", -" c #3B0B27", -". c #4C0E32", -"X c #530F36", -"o c #59103A", -"O c #641241", -"+ c #6B1445", -"@ c #74164B", -"# c #7B1751", -"$ c #8B0A53", -"% c #841856", -"& c #9B1C65", -"* c #A51E6B", -"= c #B32174", -"- c #BC237A", -"; c #C6197D", -": c #D01B83", -"> c #D91C88", -", c #FA1396", -"< c #FD1299", -"1 c #FC1C9B", -"2 c #C72382", -"3 c #CA2583", -"4 c #D8288D", -"5 c #DF2991", -"6 c #E22A94", -"7 c #EC2E96", -"8 c #EC2D99", -"9 c #FA239D", -"0 c #F32E9C", -"q c #F9299E", -"w c #ED3295", -"e c #EC3892", -"r c #F13696", -"t c #F2329A", -"y c #F8319F", -"u c #FC25A1", -"i c #FB2EA3", -"p c #FF24A8", -"a c #FF2FA8", -"s c #F736A3", -"d c #F933A2", -"f c #F73EA6", -"g c #F939A5", -"h c #FE31AA", -"j c #F642A7", -"k c #F649A6", -"l c #F646AA", -"z c #F54EAA", -"x c #F550AD", -"c c #F45EB1", -"v c #F361AE", -"b c #F563B4", -"n c #F36CB6", -"m c #FD61B9", -"M c #F46CB8", -"N c #F370B6", -"B c #F276BA", -"V c #F37BBE", -"C c #EF8CC1", -"Z c #F583C2", -"A c #F38CC4", -"S c #F096C7", -"D c #F39BC5", -"F c #F39DCD", -"G c #EFABCE", -"H c #F5A3CF", -"J c #F4A6D1", -"K c #F4AFD3", -"L c #EEB1D1", -"P c #F2B3D2", -"I c #F4BFD5", -"U c #F3B7D8", -"Y c #F5BBDB", -"T c #FFB5E2", -"R c #F4C4DD", -"E c #F5D0DE", -"W c #F3CEE1", -"Q c #F9CDE6", -"! c #EEDAE2", -"~ c #F4D1E3", -"^ c #F4DDE9", -"/ c #F5EBF0", -"( c #EEFCF3", -") c #F6F4F5", -"_ c #F9F1F5", -"` c #FAF7F9", -"' c #F6FFFD", -"] c #FDFFFE", -"[ c None", +"32 32 223 2 ", +" c None", +". c #150013", +"X c #2C001F", +"o c #100029", +"O c #160034", +"+ c #290025", +"@ c #2D0633", +"# c #31003D", +"$ c #3A213D", +"% c #460037", +"& c #270047", +"* c #3A0055", +"= c #280055", +"- c #5A004A", +"; c #42065A", +": c #560058", +"> c #451958", +", c #490042", +"< c #6E0E55", +"1 c #4B3250", +"2 c #762E56", +"3 c #450764", +"4 c #5B0469", +"5 c #4E0076", +"6 c #760060", +"7 c #67166C", +"8 c #74007B", +"9 c #631C73", +"0 c #563264", +"q c #7C2C7C", +"w c #69357B", +"e c #6D3066", +"r c #544856", +"t c #594762", +"y c #5F5862", +"u c #7C5F6F", +"i c #754F76", +"p c #624270", +"a c #776775", +"s c #727771", +"d c #920B57", +"f c #B20C5C", +"g c #830263", +"h c #9E0060", +"j c #830575", +"k c #BA0665", +"l c #B51666", +"z c #A2007F", +"x c #AF1771", +"c c #8D296D", +"v c #97306C", +"b c #A93C7C", +"n c #B83473", +"m c #A1287F", +"M c #C30266", +"N c #C91070", +"B c #E9007C", +"V c #8C4774", +"C c #A24A7A", +"Z c #7B8578", +"A c #720999", +"S c #752794", +"D c #6F00A0", +"F c #7B6E82", +"G c #841B8E", +"H c #A40986", +"J c #B90A89", +"K c #B51484", +"L c #912E90", +"P c #B23597", +"I c #8C0EAD", +"U c #BF00B2", +"Y c #A300A6", +"T c #B231A0", +"R c #B231B2", +"E c #C11E85", +"W c #DA0199", +"Q c #D81895", +"! c #E90889", +"~ c #E3199C", +"^ c #DB338F", +"/ c #F1338E", +"( c #CA02AB", +") c #DC17A6", +"_ c #CA03B7", +"` c #D110A5", +"' c #C828A7", +"] c #D427BC", +"[ c #D632AD", +"{ c #EC34A0", +"} c #925083", +"| c #A75787", +" . c #B0508F", +".. c #836785", +"X. c #86768A", +"o. c #957C8A", +"O. c #8E7995", +"+. c #957992", +"@. c #A87994", +"#. c #9B4DB5", +"$. c #B34BB0", +"%. c #A879A8", +"&. c #DE479B", +"*. c #E0429E", +"=. c #D240A0", +"-. c #E459A8", +";. c #EB4CAC", +":. c #C46BB9", +">. c #CF76BE", +",. c #F568AE", +"<. c #E96ABD", +"1. c #EC71B7", +"2. c #EF6FB4", +"3. c #A81FD1", +"4. c #B835DB", +"5. c #C308C4", +"6. c #C61CCC", +"7. c #CB26CD", +"8. c #B54AD3", +"9. c #B36FC9", +"0. c #DB4FCB", +"q. c #CF6ECD", +"w. c #CC6CD6", +"e. c #EA7FCF", +"r. c #E278D8", +"t. c #E06ED5", +"y. c #D765E0", +"u. c #8B8090", +"i. c #9C959F", +"p. c #908C91", +"a. c #A6889A", +"s. c #A6949F", +"d. c #97AA9D", +"f. c #9C90A1", +"g. c #A89BA8", +"h. c #AAA5AC", +"j. c #B5ADB7", +"k. c #BBB4BC", +"l. c #BABABC", +"z. c #B6B1B6", +"x. c #D989B9", +"c. c #B580C6", +"v. c #CC8ECE", +"b. c #F58DC9", +"n. c #F591C6", +"m. c #EB93DE", +"M. c #EB94CD", +"N. c #CAA6CA", +"B. c #C1BDC3", +"V. c #CEAED5", +"C. c #CEB3DC", +"Z. c #CBB8D3", +"A. c #D4B3D6", +"S. c #E9AAD7", +"D. c #F2A5D9", +"F. c #EBBCD9", +"G. c #DB94E9", +"H. c #E59BE4", +"J. c #E89BE7", +"K. c #E285E0", +"L. c #D9AAE3", +"P. c #D6BCE5", +"I. c #D8BBEA", +"U. c #DDB6F8", +"Y. c #EEA8E3", +"T. c #E8B9E4", +"R. c #F5BBE3", +"E. c #E2BEFB", +"W. c #EDAEEB", +"Q. c #BFC2C3", +"!. c #BDC8C2", +"~. c #C5C3C6", +"^. c #CAC6CB", +"/. c #CBC9CC", +"(. c #C6C8CA", +"). c #CFC9D3", +"_. c #CFC7D2", +"`. c #D1CCD2", +"'. c #D4C4DB", +"]. c #D7CDDC", +"[. c #CDD4D2", +"{. c #C9DCD6", +"}. c #D4D3D5", +"|. c #DAD6DB", +" X c #D5DEDB", +".X c #D9D7DB", +"XX c #FDC4DE", +"oX c #CCE2DA", +"OX c #D9E8DE", +"+X c #C6F1D8", +"@X c #DCC7E7", +"#X c #DCDBE2", +"$X c #DFC4F0", +"%X c #E0CBED", +"&X c #F7C9E7", +"*X c #E4D5E7", +"=X c #FAD5ED", +"-X c #FAD7EB", +";X c #E4CCF4", +":X c #E3C4FA", +">X c #E7CDF9", +",X c #E6C7F6", +"#3=hii7[[[", -"[[[[diidii1A'sZ'zlxi98Oo-hii[[[[", -"[[[[7iiiiiuNGq!^99iiia06aii7[[[[", -"[[[[[0iiiiiu1dcvuiiiiiiaii0[[[[[", -"[[[[[[diiiiiiiuuiiiiiiiii0[[[[[[", -"[[[[[[[0iiiiiiiiiiiiiiii0[[[[[[[", -"[[[[[[[[8diiiiiiiiiiiid7[[[[[[[[", -"[[[[[[[[[[0diiiiiiiii0[[[[[[[[[[", -"[[[[[[[[[[[[[700007[[[[[[[[[[[[[", -"[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[", -"[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[[" +" `.)._._.).^.^.). ", +" '.Z.Z.].9XyXpXuXyX#X_.B.k.`. ", +" @XV.'.uXpXpXpXpXpXpXpXpXpXpX9XB.k. ", +" P.Z.pXpXpXtX.Xl.g.a.a.h.l.}.9XpXaX9Xk.^. ", +" C.*XpXpX8X~.+.V c v a a 2 2 u o.(.0XaXpXB.B. ", +" C.2XpXpX[.+.e g g h .+X!.x v d.o.V s.oXpXpX^.~. ", +" P.*XpXiXQ.i - 6 P M.[ S.pX'.M x.iX[.d d a.{.pXpXl.}. ", +" .pXaXpXpX-X-.&XpXS.M l f @.{.pXpXk. ", +" I.pXpX Xi q L T J M.pXpXpXpXpXpXpXpX-X1.^ N l a.7XpX#X~. ", +" ;X;XpXyX..7 T.S.W.<.D.pXpXpXpXpXpXpXpXpXpXwX-.M n z.qXpX~. ", +" $XpXpX^.7 8 T.T.&X2.&XpXpXpXuX-XpXpXpXpXpXpXpX-.f C OXpX|./. ", +" ;XpXaXO.4 $.Y.D.n.,.pXpXpXpXXX! ;.<.&XpXpXpXpX-XN n k.iXpX^. ", +"XpXpXf.; 9.W.Y Y.b.3XpXpXpXpXpXpXpXpXpXpXpXpXpX;.Q x b (.pX*X`.", +">XpXpXf.* #.3XG.K.t.pXpXpXpXpXpXpXpXpXpXpXpXY.0.) [ K C ^.pX8XN.", +">XuXpXg.3 9.8.G.y.y.pXpXpXpXm.y.J.=XpXpXpXpXm.( ] [ K P }.pX0Xx.", +">XeXpXl.; _.8.w.J.G.pXpXpXpX0.U _ _ m.pXpXpXpXr.( ' J .6XpX7X:.", +"1X1XpX8X* w ,XE.4.>XpXpXpXuX6.5.7._ ] pXpXpXpX=X` T K @.tXpX5X ", +" >XpXiXX.& A I 3.pXpXpXpX1X6.5._ U t.pXpXpXpXrX' H m k.pXpX). ", +" >XuXpX/.> 3 D 9.pXpXpXpXpXuX4XH.J.pXpXpXpXpX&XH g } 7XpXtXv. ", +" >X1XpXaXX.= 5 G.pXpXpXpXpXpXpXpXpXpXpXpXpXpX:.- < j.pXpXOX ", +" E.pXpXOXp O S #.L.pXpXpXpXpXpXpXpXpXpXpXV.- % a.tXpXtXN. ", +" 1X:XpXpX(.0 O = 9.pXrXR L.pXpXpXpXaX*X%.% X ..OXpXpX{. ", +" E.1XpXpX~.t o O.pXC.5 v.iX*XG L S - . + X. XpXpX5Xv. ", +" U.eXpXpX[.F t Z 0 * l.0X%.@ + . + 1 i.8XpXpX#XV. ", +" U.1XpXpXyXj.a 1 * y Z 1 @ $ r p.[.tXpXpX'.#X ", +" U.:XpXpXpX9X}.l.i.O.p.h.l.9XyXpXpXrXC.@X ", +" >XU.>XuXpXpXpXpXpXpXpXpXpXpXrXP.C. ", +" >XU.U.>XeXuXpXpXuX2X%XP.P.%X ", +" ;X;X$X;X;X%X$X%X " }; diff --git a/share/pixmaps/bitcore64.png b/share/pixmaps/bitcore64.png deleted file mode 100644 index 86789662..00000000 Binary files a/share/pixmaps/bitcore64.png and /dev/null differ diff --git a/share/pixmaps/bitcore64.xpm b/share/pixmaps/bitcore64.xpm index 01acb46d..22ee2121 100644 --- a/share/pixmaps/bitcore64.xpm +++ b/share/pixmaps/bitcore64.xpm @@ -1,229 +1,319 @@ /* XPM */ -static char *c762b6c8c78b4d70efb98be3bf5d7deb[] = { +static char *a13sb_m9rr2[] = { /* columns rows colors chars-per-pixel */ -"64 64 159 2 ", -" c #010001", -". c #0E0309", -"X c #13040C", -"o c #1C0512", -"O c #27071A", -"+ c #340922", -"@ c #390A25", -"# c #3B0C2B", -"$ c #420C2B", -"% c #480D2F", -"& c #4E0F33", -"* c #541037", -"= c #581039", -"- c #62123F", -"; c #621242", -": c #72154A", -"> c #7A164F", -", c #7F1753", -"< c #861957", -"1 c #871959", -"2 c #8B195A", -"3 c #9A1C65", -"4 c #9E1D68", -"5 c #A61E6B", -"6 c #A91F6F", -"7 c #AB1F70", -"8 c #AC2070", -"9 c #B32175", -"0 c #B92277", -"q c #B82278", -"w c #C3247E", -"e c #FE0E97", -"r c #FD1796", -"t c #FE149A", -"y c #FD1D9D", -"u c #C22480", -"i c #CE2687", -"p c #D02687", -"a c #D7278C", -"s c #DD2B8D", -"d c #DF2992", -"f c #E32F8E", -"g c #E2328B", -"h c #E8368F", -"j c #E43A8A", -"k c #E52C93", -"l c #EA2F93", -"z c #E72B98", -"x c #EC2B99", -"c c #FC229E", -"v c #F52F9D", -"b c #FA2B9E", -"n c #E73091", -"m c #EC3193", -"M c #ED3B91", -"N c #F23597", -"B c #F23995", -"V c #F5329B", -"C c #F8319E", -"Z c #F6389A", -"A c #EC2EA1", -"S c #FD25A1", -"D c #F52DA1", -"F c #FB2EA3", -"G c #FF25A9", -"H c #FF2EA9", -"J c #F737A1", -"K c #F931A1", -"L c #F73CA4", -"P c #F938A3", -"I c #FF31AC", -"U c #FF32B1", -"Y c #FF35BB", -"T c #E44186", -"R c #E94189", -"E c #F8409B", -"W c #F54C9F", -"Q c #F643A6", -"! c #F449A5", -"~ c #F44EAA", -"^ c #F554A4", -"/ c #F158A7", -"( c #F452AC", -") c #F359AC", -"_ c #F35DB0", -"` c #EE65AF", -"' c #ED69AE", -"] c #F068AF", -"[ c #F271AE", -"{ c #F07FAF", -"} c #EE6EB2", -"| c #F263B2", -" . c #F16BB3", -".. c #EF73B4", -"X. c #EF7BBA", -"o. c #F173B7", -"O. c #F077B8", -"+. c #F07CBA", -"@. c #FF37C2", -"#. c #E882B6", -"$. c #EF84BD", -"%. c #E78DBC", -"&. c #EA8BBC", -"*. c #F08DB6", -"=. c #F283BE", -"-. c #E990B3", -";. c #EC93BF", -":. c #E598BB", -">. c #EB9BBD", -",. c #EE85C0", -"<. c #EE8DC1", -"1. c #F08BC1", -"2. c #ED93C3", -"3. c #EC9BC4", -"4. c #EE9DC9", -"5. c #F192C1", -"6. c #E6ABC1", -"7. c #E9A8C6", -"8. c #ECA4CA", -"9. c #ECAACD", -"0. c #EDB2C2", -"q. c #EAB3CE", -"w. c #E6BDCE", -"e. c #EFB3D2", -"r. c #ECBBD4", -"t. c #F1B1D2", -"y. c #E5C8C9", -"u. c #EBC3D7", -"i. c #EDC5D9", -"p. c #EBCEDA", -"a. c #F0C2DA", -"s. c #F1C9DE", -"d. c #EBD2D3", -"f. c #EDD3DD", -"g. c #E4DBDC", -"h. c #ECD5E0", -"j. c #ECDBE3", -"k. c #F2D4E3", -"l. c #F1DDE5", -"z. c #EBE2E5", -"x. c #E4EAE5", -"c. c #ECEAE5", -"v. c #EDEBEB", -"b. c #F3E1E3", -"n. c #F0E4E9", -"m. c #E2F2E3", -"M. c #ECF3EC", -"N. c #E5FFEF", -"B. c #F1F2EF", -"V. c #EEF5F0", -"C. c #EEFAF2", -"Z. c #EEFFF8", -"A. c #F2F6F3", -"S. c #F8F4F5", -"D. c #F1FCF5", -"F. c #F8F8F7", -"G. c #F5FFFC", -"H. c #FEFFFF", -"J. c None", +"64 64 249 2 ", +" c None", +". c #0A000A", +"X c #160016", +"o c #040014", +"O c #220019", +"+ c #0D0029", +"@ c #14002B", +"# c #280028", +"$ c #38002E", +"% c #280637", +"& c #36013A", +"* c #2D1B34", +"= c #39253B", +"- c #50033A", +"; c #720038", +": c #2B0045", +"> c #370048", +", c #3A0155", +"< c #3D1E42", +"1 c #372445", +"2 c #490749", +"3 c #570248", +"4 c #4A0457", +"5 c #550558", +"6 c #50134F", +"7 c #78055B", +"8 c #6B0C53", +"9 c #53304E", +"0 c #6C3056", +"q c #4B0564", +"w c #570369", +"e c #580877", +"r c #55086C", +"t c #671664", +"y c #630B7C", +"u c #750C6D", +"i c #4F2462", +"p c #712E72", +"a c #5A4567", +"s c #6F526B", +"d c #736C75", +"f c #645A5D", +"g c #99014B", +"h c #980A56", +"j c #940F51", +"k c #AA145E", +"l c #990565", +"z c #881D77", +"x c #8F1070", +"c c #A7177A", +"v c #AF1072", +"b c #97247D", +"n c #BB3479", +"m c #AB2A6D", +"M c #D2187C", +"N c #CD0579", +"B c #EB027A", +"V c #EE006E", +"C c #C2347D", +"Z c #8F5779", +"A c #A5467A", +"S c #7C807B", +"D c #5A0282", +"F c #680489", +"G c #6D0495", +"H c #77039B", +"J c #78138D", +"K c #7D09A6", +"L c #742E8A", +"P c #7A5E85", +"I c #7F7683", +"U c #870488", +"Y c #8E128C", +"T c #B40D8C", +"R c #9D2184", +"E c #8F2B93", +"W c #A82488", +"Q c #BC3183", +"! c #B82796", +"~ c #B4288F", +"^ c #8801B6", +"/ c #8C0DAD", +"( c #B508AF", +") c #9D34B2", +"_ c #B530A8", +"` c #DC069A", +"' c #D1108C", +"] c #E61A98", +"[ c #E60A8D", +"{ c #D42585", +"} c #CA3685", +"| c #C72B9C", +" . c #CD3295", +".. c #D93797", +"X. c #D0308D", +"o. c #EB2898", +"O. c #F42D8F", +"+. c #C502AA", +"@. c #C805B7", +"#. c #CC17BB", +"$. c #D616AE", +"%. c #C82AA8", +"&. c #D928AD", +"*. c #D732A7", +"=. c #D62AB6", +"-. c #D533B6", +";. c #E332AC", +":. c #E631A6", +">. c #E62FA6", +",. c #934B90", +"<. c #837C88", +"1. c #907293", +"2. c #AF7696", +"3. c #974EAA", +"4. c #B34EAB", +"5. c #9878A9", +"6. c #9769AE", +"7. c #A579BA", +"8. c #AB6BB1", +"9. c #AD5693", +"0. c #D24F99", +"q. c #D24FA9", +"w. c #E94DB1", +"e. c #CA72AC", +"r. c #E774B8", +"t. c #EC6AB5", +"y. c #E25A9C", +"u. c #9901C4", +"i. c #B804C4", +"p. c #AD0CD0", +"a. c #B032D0", +"s. c #C514C7", +"d. c #C20AC7", +"f. c #CC26CA", +"g. c #CD26C7", +"h. c #D12AC5", +"j. c #CC34CF", +"k. c #AD70C8", +"l. c #BE72F4", +"z. c #BB6FF2", +"x. c #BB5ECF", +"c. c #D855CE", +"v. c #D074D1", +"b. c #EA79CC", +"n. c #C17CF3", +"m. c #D367E3", +"M. c #CC53E0", +"N. c #7B8788", +"B. c #88858C", +"V. c #8C8491", +"C. c #8E8A93", +"Z. c #958B99", +"A. c #98959C", +"S. c #8B9390", +"D. c #91A798", +"F. c #9A89A4", +"G. c #9D97A3", +"H. c #A58AA8", +"J. c #B88DA8", +"K. c #A29BA5", +"L. c #A598AA", +"P. c #AB99B3", +"I. c #B692B4", +"U. c #9BA6A6", +"Y. c #9FB3AF", +"T. c #AAA5AD", +"R. c #A6A8AB", +"E. c #ADADB2", +"W. c #ABA5B4", +"Q. c #B4AAB7", +"!. c #ACB4B4", +"~. c #AAB7B5", +"^. c #B3B3B5", +"/. c #B5B3BA", +"(. c #BAB5BC", +"). c #BBBBBD", +"_. c #B3BAB9", +"`. c #ABAFAD", +"'. c #B3879E", +"]. c #D091B5", +"[. c #E98BB7", +"{. c #CAA9BC", +"}. c #B5C8BF", +"|. c #9CC1AD", +" X c #C1CDBF", +".X c #B88CC8", +"XX c #BA87D6", +"oX c #BD98D1", +"OX c #BDBCC1", +"+X c #BCB7C1", +"@X c #BCABC3", +"#X c #C09ADB", +"$X c #D68ECA", +"%X c #E689C8", +"&X c #EA96D8", +"*X c #ED91D0", +"=X c #C2BCC4", +"-X c #C8B9C9", +";X c #C8AAD8", +":X c #D2B1CE", +">X c #F6ABD6", +",X c #F0AFD8", +".! y H K F F F F F F F F F F K F F v J.J.J.J.J.J.", -"J.J.J.J.J.J.F F F F F F F F F F F F F F F F F F S y i.H.H.H.H.F.G.G.H.H.H.H.H.G.M.;.b c F F F F F F F F F F F F F F J.J.J.J.J.J.", -"J.J.J.J.J.N F F F F F D F F F F F F F F F F F F F F h.H.H.H.H.a.( $.r.v.G.H.H.H.H.G.w.K S F F F F F F F F F F F F F m J.J.J.J.J.", -"J.J.J.J.J.Z F F F F F F F K F F F F F F F F F F c ~ V.H.H.H.G.,.t y c ! 4.C.H.H.H.H.G.7.c F F F F F F F F F F F F F v J.J.J.J.J.", -"J.J.J.J.J.K F F F F F F F F F F F F F F F F F F c X.G.H.H.H.D._ c K F S y .A.H.H.H.H.V.~ S F F F F F F F F F F F F K J.J.J.J.J.", -"J.J.J.J.g F F F F F F F F F F F F F F F F F F F c 9.G.H.H.H.z.P S F F F F y e.G.H.H.H.D...y F F F H F F F F F F F F F f J.J.J.J.", -"J.J.J.J.m F F F F F F F F F F F F F D F F F F F K h.H.H.H.G.r.c F F F F F y 8.H.H.H.H.G.X.c F F H k x U F F F F F F H m J.J.J.J.", -"J.J.J.J.N F F F F F F F K F F F F F F F F F F S ~ V.H.H.H.G.=.e S F F F y F j.H.H.H.H.D.| S F v $ . * q x F F F F F F N J.J.J.J.", -"J.J.J.J.v F F F F F F F F F F F F F F F F F F y X.G.H.H.H.H.s.=.) L K K ~ r.F.H.H.H.H.j.K F U > & 2 : @ < U F F F F F v J.J.J.J.", -"J.J.J.J.v F F F F F F F F F F F F F F F F F F c 9.G.H.H.H.H.H.G.D.n.j.l.A.G.H.H.H.H.Z.X.c F U ; = : w ; : U F F F F F C J.J.J.J.", -"J.J.J.J.b F F F F F F F F F F F F F F F F F F v f.G.H.H.H.G.G.H.H.H.H.H.H.H.H.H.F.V.;.c F F H d o o . a H F F F F F b J.J.J.J.", -"J.J.J.J.v F F F F F F F F F F F F F F F F F S ~ V.H.H.H.G.t.1.u.v.G.G.H.H.H.H.H.n.^ y F F H u * z 3 > p U F F F F F F v J.J.J.J.", -"J.J.J.J.C F F F F F F F F K F F F F F F F F y O.G.H.H.H.D._ e b L ..r.C.H.H.H.H.F.r.P S F U 9 X F Y Y U K F F F F F F b J.J.J.J.", -"J.J.J.J.v F F F F F F F F F F F F F F F F F c 9.G.H.H.H.z.P S F F y c | n.G.H.H.H.G.u.F F U : X ; 5 v F F F F F F F v J.J.J.J.", -"J.J.J.J.N F F F F F F F F F F F F F F H F F K h.H.H.H.H.r.S F F F F F y ! v.H.H.H.H.Z.O.y F v i 1 + a H F F F F F F m J.J.J.J.", -"J.J.J.J.m F F F F F F F F F F F F F F Z c t ~ C.H.H.H.G.1.y F F F F F F y 8.H.H.H.H.G.q.c U 9 - 2 D D D F F F F F F F m J.J.J.J.", -"J.J.J.J.f F F F F F F F F F F F F c ! g.u.1.s.F.H.H.H.D._ c F F F F F F y 4.G.H.H.H.H.r.G 6 # . O D H F F F F F F F s J.J.J.J.", -"J.J.J.J.J.K F F F F K F F F F F F c 2.G.H.G.H.H.H.H.H.n.F y S S F F F y F h.H.H.H.H.G.8.G + 2 @.F X 5 I F F F F F F F J.J.J.J.J.", -"J.J.J.J.J.v F F F F F F F F F F S L x.G.H.H.H.H.H.H.H.S.r.,._ Q K F K ~ r.G.H.H.H.H.G...G $ % A z X q U F F F F F F C J.J.J.J.J.", -"J.J.J.J.J.m H F F F F F F F F F H ! 6.d.M.F.G.H.H.H.H.H.H.G.C.v.h.f.j.V.G.H.H.H.H.H.c.L H d X * H F K F F F F F m J.J.J.J.J.", -"J.J.J.J.J.J.F F F F F F F F F F F F y v ^ #.0.b.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.H.G.5.y F u d 7 q F F F F F F F F F J.J.J.J.J.J.", -"J.J.J.J.J.J.v F F F F F F F F F F F F F S c r [ G.H.S.l.C.H.H.H.H.H.H.H.H.H.H.H.G.r.D I : F 4 < U F F F F F F F C J.J.J.J.J.J.", -"J.J.J.J.J.J.n F F F F F F F K F F F F F F b y 3.G.G.q.c ( k.H.H.G.D.G.G.G.G.Z.v.3.D G v X i Y 7 k H F F F F F H f J.J.J.J.J.J.", -"J.J.J.J.J.J.J.F F F F F F F F F F F F F F F b i.H.G.X.y b f.H.G.=._ =.5.2.<...Q y F F D . 2 A 0 . x F F F F F F F J.J.J.J.J.J.J.", -"J.J.J.J.J.J.J.f F F F F F F F F F F F F F S Q v.H.C.( y ( V.H.v.P y c y y c y F F F F I 4 , U F F F F F F f J.J.J.J.J.J.J.", -"J.J.J.J.J.J.J.J.C F F F F F F F F F F F K S ' N.G.h.K y $.G.H.i.c F F F F F F F F F D F U k 7 w H F F K F F F C J.J.J.J.J.J.J.J.", -"J.J.J.J.J.J.J.J.J.F F F F K F F F F F F F S L .8.%.S c w.G.G.2.c F F F F F F F F F F F F F U H F F F F F F F J.J.J.J.J.J.J.J.J.", -"J.J.J.J.J.J.J.J.J.n F F F F F F F F F F F K F S y F F b -.d.m.] c F F F F F F F F F F K F F F F F F F F F F n J.J.J.J.J.J.J.J.J.", -"J.J.J.J.J.J.J.J.J.J.v F F F F F F F F F F F F F F F F F c b W J F F F F F F F F F F F F F F F F F F F F F v J.J.J.J.J.J.J.J.J.J.", -"J.J.J.J.J.J.J.J.J.J.J.v F F F F F F F F F F F F F F F F F F S F F F F F F F F F F F F F F F F F F F K F C J.J.J.J.J.J.J.J.J.J.J.", -"J.J.J.J.J.J.J.J.J.J.J.J.K F F F F F F F F F F F F F F F F F F F F F F K F F F F F F F F F F F F F F F C J.J.J.J.J.J.J.J.J.J.J.J.", -"J.J.J.J.J.J.J.J.J.J.J.J.J.v F F F F F F F F F F F F F F F F D F F F F F F F F F F F F F F F F F F F C J.J.J.J.J.J.J.J.J.J.J.J.J.", -"J.J.J.J.J.J.J.J.J.J.J.J.J.J.V F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F v J.J.J.J.J.J.J.J.J.J.J.J.J.J.", -"J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.l F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F F x J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.", -"J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.C F F F F F F F F F F F F F F F F F F F F F K F D F F F F C J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.", -"J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.m v F F F F F F F F F F F F F F F F F F F F F F F F K n J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.", -"J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.m b F F F F F F F F F F F F F F D F F F F F b m J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.", -"J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.m F F F F F F F F F F F F F F F D m J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.", -"J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.f m N v v F v C v N m f J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.", -"J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.", -"J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.", -"J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.", -"J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J.J." +" SXmXaXuX-X-X-X-XuXlXZX ", +" SXpXQ.L.H.L.L.P.W.W.W.W.L.G.A.A.K.).mX ", +" SXpXP.5.H.Q.uXNXSXSXSXSXSXSXSXSXSXZXiX(.K.B.V.W.ZX ", +" SX;X5.5.@XNXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSX=XZ.I Z.mX ", +" :X5.7.pXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXnXK.d Z.DX ", +" mX7.5.gXSXSXSXSXSXSXSXSXSXSXSXSXDXZXDXSXSXSXSXSXSXSXSXSXSXSXSXDXZ.d ^. ", +" ;X6.;XSXSXSXSXSXSXSXSXSXsX!.E.!.^.~.~.^.~.^.`.`.yXnXSXSXSXSXSXSXSXSXaXd <.DX ", +" AX.X7.NXSXSXSXSXSXSXSXyXG.R.~.E.T.T.I.].J.J.J.K.R.R.~.`.A.R.ZXSXSXSXSXSXSXSXK.d aX ", +" BXk..XSXSXSXSXSXSXSXQ.C.U.T.P.].2.A x 0 0 9 9 9 0 j Z '.'.K.K.S.S.nXSXSXSXSXSXSXuXf yX ", +" DX7.;XSXSXSXSXSXSX=XB.K.Q.].,.7 8 l x h Z D.S.S.D.s ; ; - 0 s 2.J.K.S.A.SXSXSXSXSXSXaXs yX ", +" AXk.;XSXSXSXSXSXDXC.A.{.I.p 3 7 b b b c c H.}._._._.A k j 1.|.B.f 0 2.{.D.d yXSXSXSXSXSXnXd uX ", +" SXk.;XSXSXSXSXSXiX<.tX-Xp - 7 b b c W ~ T } sXfXaXfXuXQ m k Q.sX/. X|.; ; ].sXB.A.SXSXSXSXSXGXf iX ", +" oXoXSXSXSXSXSX=XI lXH.$ 3 z z b W ! T v N 0.MXnXmXCX:Xv { Q aXGXaXfX{.m j ; A mXD.V.SXSXSXSXSXiXd ZX ", +" 8Xk.SXSXSXSXSX+XB.nXs $ 8 p z R c q.AXdX%Xq.%XSXDXDXSX%XN M q.CXMXmXCX{.k m m j j lXY.B.SXSXSXSXSX^.<.SX ", +" BXk.BXSXSXSXSXyXV.ZX0 & u u Y R W T $XSXSXSXSXSXDXSXSXSXr.N N r.SXCXZXSX].N n n n j g dXY.C.SXSXSXSXSXB.E. ", +" XX8XSXSXSXSXaX<.ZX6 @ p u R E T ! T ,XSXSXSXSXSXSXSXSXSXVXkX*XkXSXSXSXSXy.N 0.C C C m g kXD.K.SXSXSXSXZXd nX ", +" xXk.SXSXSXSXZXB.GXs 2 3.u x Y T T ! %.VXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXr.{ M M ..C C m j FXB.=XSXSXSXSX^.C. ", +" SXXXcXSXSXSXSXG.yX7.X pXAXu 4.) ! q.' q.AXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXzX*Xy.M M 0.C k n GXN.nXSXSXSXSX<.iX ", +" gXXXSXSXSXSXuXR.:X& 5 ZX$XU SXq.q.SX' w.SXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSX[.{ M } C g [._.A.SXSXSXSX=XC. ", +" u 4.DXSXSXSX>XVX,XN kXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXVX..M C k y. XS.SXSXSXSXE.A. ", +" 7XqXSXSXSXSXL.=Xt w z U 4.v.$XkXSXSXt.[ AXSXSXSXSXSXSXSXSXzX>XzXSXSXSXSXSXSXSXSXSXSXSXSXSXSXFXM C C g >XU.aXSXSXSXnXC.DX ", +" SXXV o.w.t.*XkXSXSXSXSXSXSXSXSXSXSXDXr.M C k y.|.K.SXSXSXSXG.yX ", +" cX1XSXSXSXSXP./.,.w U U vXAXeXSX%X,XFXB r.SXSXSXSXSXSXSXSXSX[.B o.] [ ` ] w.zXSXSXSXSXSXSXSXSXSXdXM C C j {.`.ZXSXSXSX^.K. ", +" qXqXSXSXSXSX/.Q.4 y U ) DX*.T SXSXSX*XV dXSXSXSXSXSXSXSXSXSXy.[ O.>.>.;.;.` >.AXSXSXSXSXSXSXSXSXVX..{ C g [.^.=XSXSXSXlXC.SX ", +" 1XxXSXSXSXiXOXI., J U v.SX%X%XAXw.V V B FXSXSXSXSXSXSXSXSXVXO.o.:.>.;.>.;.;.` ,XSXSXSXSXSXSXSXSXSXy.{ } m 9.T.R.SXSXSXSXA.mX ", +"SX1XNXSXSXSXQ./.1.4 Y U c.zXSXSXSXkX>XO.O.SXSXSXSXSXSXSXSXSX>XB o.>.>.;.;.;.;.$.eXSXSXSXSXSXSXSXSXAX..{ } C m Q.R.SXSXSXSXK.yX ", +"BX1XSXSXSXSX/.E.p r Y / / _ b.&X&XzXSXO.w.SXSXSXSXSXSXSXSXSX>X] ] ` ` ] &.=.` ;.SXSXSXSXSXSXSXSXSXzX..{ X.C g {.~.nXSXSXSXT.Q. ", +"cX4XSXSXSXSX).P.q y Y U M.DXSXSX>X;.] [ *XDXSXSXSXSXSXSXSXSXSXAXkX&Xb.w.;.&.w.vXSXSXSXSXSXSXSXSXSX,X' ..X.Q h ].~.sXSXSXSX(.L. ", +"xX4XSXSXSXSXOXP., y H ) SXVXv.5XSXAX[ [ kXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXVXvXSXSXSXSXSXSXSXSXSXSXSXt.' *. .Q h ].!.=XSXSXSXyXK. ", +"xXqXSXSXSXDXOXP.> y F ;XSX( ( ( c.SXb.` FXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXeX] *... .} k e.!.(.SXSXSXuXK. ", +"0XqXSXSXSXnXOXH.: y F jXAX^ i.@.@.SXb.$.SXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXFX>.$.*.*.| Q k e.E./.SXSXSXiXK. ", +"0XqXSXSXSXnXyXH.: y D k.SX , -XSXK ^ u.p.vXm.i.AXSXSXSXSXSXSXSXSXvX@.@.#.h.c.&XvXSXSXSXSXSXSXSXSXSXkX@.#.=.=.*.%.| .l ]._.iXSXSXSX+X_. ", +"BX3XSXSXSXSXE.W.i : gXBXG ^ u.a.SXM.j.SXSXSXSXSXSXSXSXSXwX@.h.g.s.@.@.$.6XSXSXSXSXSXSXSXSXSX&X@.=.=.%.%.| ~ l $X_.ZXSXSXSX/.Q. ", +"SX3XBXSXSXSXE./.P + 7.SXXX^ ^ wXSXp.m.SXSXSXSXSXSXSXSXSXm.i.g.h.h.h.h.#.+.5XSXSXSXSXSXSXSXSXSX-.#.%.%.%.! ~ c -XE.SXSXSXSX!.:X ", +" 3XxXSXSXSXsXOXG.+ r gXSXSXSXCX4Xu.9XSXSXSXSXSXSXSXSXSXM.d.f.f.h.h.h.h.+.c.SXSXSXSXSXSXSXSXSX&X( %.%.%.! c 4.Q.W.SXSXSXSX!.:X ", +" 9X9XSXSXSXSX/.Q.: , D k.hXhX2Xu.p.vXSXSXSXSXSXSXSXSXBXf.s.f.f.g.h.h.h.@.c.SXSXSXSXSXSXSXSXSXeX+.%.! ! ~ l [.}.-XSXSXSXlX_.wX ", +" cX3XSXSXSXSXK.).p : e D H ^ ^ u.a.SXSXSXSXSXSXSXSXSXwXi.s.f.f.g.g.h.h.@.b.SXSXSXSXSXSXSXSXSXkX( ! _ ~ W l :XE.ZXSXSXSX+X/. ", +" SX2XBXSXSXSXuXOXP.+ e F K ^ ) u.m.SXSXSXSXSXSXSXSXSXrXj.f.d.i.d.d.s.@.#.VXSXSXSXSXSXSXSXSXSXjXT ! ~ W x 9.+XL.SXSXSXSXW.-X ", +" 4X0XSXSXSXSXK.+X, , D F K K K , ,.MXGXnXSX#XG H ) SXSXDXSX8XU E 3.,.E p 5 2 - 6 6 X O uX_.B.SXSXSXSXSX+XY.bX ", +" 3X3XSXSXSXSXSXOXV.lX<.o + I fXOXiXMX3.e y 8.SXZXMXSXI.w u w 5 5 3 5 6 6 $ . 9 aXR.V.SXSXSXSXSXhXF.BX ", +" SXn.9XSXSXSXSXSXiXI yX/.1 * S D.~.^.p e w H.CXaXmXZX,.4 t t 5 6 6 2 & . X V.sXC.G.SXSXSXSXSXNX5.GX ", +" SXl.0XSXSXSXSXSXZXV.G.+XB.= * f d q 4 w G.yX X XyXp 4 4 2 2 > % . X d {.!.I yXSXSXSXSXSXnX6.lX ", +" AXz.9XSXSXSXSXSXSX+XB.T.L.1.a % @ @ , d S.S.D.B.> & % # . . = Z T.R.S.A.SXSXSXSXSXSXlX6.aX ", +" AXn.3XSXSXSXSXSXSXSXW.Z.T.K.K.Z.P 9 9 * * = % + # < f B.A.U.Y.A.S.mXSXSXSXSXSXSXpX6.pX ", +" SX2Xn.AXSXSXSXSXSXSXSXyXG.`.^.^.`.F.F.F.Z.Z.K.R.R.`._.^.D.R.ZXSXSXSXSXSXSXSX@X6.lX ", +" 9Xz.0XSXSXSXSXSXSXSXSXSXsX^.E.^.).+X).}.{.^.`.`.{.mXSXSXSXSXSXSXSXSXcX7.k.AX ", +" cXn.n.cXSXSXSXSXSXSXSXSXSXSXSXSXDXZXDXSXSXSXSXSXSXSXSXSXSXSXSXDXoX6.;X ", +" SX0Xl.2XxXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXZXoXk..XZX ", +" SX9Xn.2X9XBXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXSXgXXXk.XXNX ", +" SXxX2X +#include +#include +#include + +#include + +#ifdef __cplusplus +extern "C"{ +#endif + + +#ifdef _MSC_VER +#pragma warning (disable: 4146) +#endif + +//-------------------------------------------------------------------------------------------- +// +// streebog implementation +// +//-------------------------------------------------------------------------------------------- + + +// Tables for function F +static const sph_u64 TG[8][256] = {{ + 0xE6F87E5C5B711FD0,0x258377800924FA16,0xC849E07E852EA4A8,0x5B4686A18F06C16A, + 0x0B32E9A2D77B416E,0xABDA37A467815C66,0xF61796A81A686676,0xF5DC0B706391954B, + 0x4862F38DB7E64BF1,0xFF5C629A68BD85C5,0xCB827DA6FCD75795,0x66D36DAF69B9F089, + 0x356C9F74483D83B0,0x7CBCECB1238C99A1,0x36A702AC31C4708D,0x9EB6A8D02FBCDFD6, + 0x8B19FA51E5B3AE37,0x9CCFB5408A127D0B,0xBC0C78B508208F5A,0xE533E3842288ECED, + 0xCEC2C7D377C15FD2,0xEC7817B6505D0F5E,0xB94CC2C08336871D,0x8C205DB4CB0B04AD, + 0x763C855B28A0892F,0x588D1B79F6FF3257,0x3FECF69E4311933E,0x0FC0D39F803A18C9, + 0xEE010A26F5F3AD83,0x10EFE8F4411979A6,0x5DCDA10C7DE93A10,0x4A1BEE1D1248E92C, + 0x53BFF2DB21847339,0xB4F50CCFA6A23D09,0x5FB4BC9CD84798CD,0xE88A2D8B071C56F9, + 0x7F7771695A756A9C,0xC5F02E71A0BA1EBC,0xA663F9AB4215E672,0x2EB19E22DE5FBB78, + 0x0DB9CE0F2594BA14,0x82520E6397664D84,0x2F031E6A0208EA98,0x5C7F2144A1BE6BF0, + 0x7A37CB1CD16362DB,0x83E08E2B4B311C64,0xCF70479BAB960E32,0x856BA986B9DEE71E, + 0xB5478C877AF56CE9,0xB8FE42885F61D6FD,0x1BDD0156966238C8,0x622157923EF8A92E, + 0xFC97FF42114476F8,0x9D7D350856452CEB,0x4C90C9B0E0A71256,0x2308502DFBCB016C, + 0x2D7A03FAA7A64845,0xF46E8B38BFC6C4AB,0xBDBEF8FDD477DEBA,0x3AAC4CEBC8079B79, + 0xF09CB105E8879D0C,0x27FA6A10AC8A58CB,0x8960E7C1401D0CEA,0x1A6F811E4A356928, + 0x90C4FB0773D196FF,0x43501A2F609D0A9F,0xF7A516E0C63F3796,0x1CE4A6B3B8DA9252, + 0x1324752C38E08A9B,0xA5A864733BEC154F,0x2BF124575549B33F,0xD766DB15440DC5C7, + 0xA7D179E39E42B792,0xDADF151A61997FD3,0x86A0345EC0271423,0x38D5517B6DA939A4, + 0x6518F077104003B4,0x02791D90A5AEA2DD,0x88D267899C4A5D0A,0x930F66DF0A2865C2, + 0x4EE9D4204509B08B,0x325538916685292A,0x412907BFC533A842,0xB27E2B62544DC673, + 0x6C5304456295E007,0x5AF406E95351908A,0x1F2F3B6BC123616F,0xC37B09DC5255E5C6, + 0x3967D133B1FE6844,0x298839C7F0E711E2,0x409B87F71964F9A2,0xE938ADC3DB4B0719, + 0x0C0B4E47F9C3EBF4,0x5534D576D36B8843,0x4610A05AEB8B02D8,0x20C3CDF58232F251, + 0x6DE1840DBEC2B1E7,0xA0E8DE06B0FA1D08,0x7B854B540D34333B,0x42E29A67BCCA5B7F, + 0xD8A6088AC437DD0E,0xC63BB3A9D943ED81,0x21714DBD5E65A3B1,0x6761EDE7B5EEA169, + 0x2431F7C8D573ABF6,0xD51FC685E1A3671A,0x5E063CD40410C92D,0x283AB98F2CB04002, + 0x8FEBC06CB2F2F790,0x17D64F116FA1D33C,0xE07359F1A99EE4AA,0x784ED68C74CDC006, + 0x6E2A19D5C73B42DA,0x8712B4161C7045C3,0x371582E4ED93216D,0xACE390414939F6FC, + 0x7EC5F12186223B7C,0xC0B094042BAC16FB,0xF9D745379A527EBF,0x737C3F2EA3B68168, + 0x33E7B8D9BAD278CA,0xA9A32A34C22FFEBB,0xE48163CCFEDFBD0D,0x8E5940246EA5A670, + 0x51C6EF4B842AD1E4,0x22BAD065279C508C,0xD91488C218608CEE,0x319EA5491F7CDA17, + 0xD394E128134C9C60,0x094BF43272D5E3B3,0x9BF612A5A4AAD791,0xCCBBDA43D26FFD0F, + 0x34DE1F3C946AD250,0x4F5B5468995EE16B,0xDF9FAF6FEA8F7794,0x2648EA5870DD092B, + 0xBFC7E56D71D97C67,0xDDE6B2FF4F21D549,0x3C276B463AE86003,0x91767B4FAF86C71F, + 0x68A13E7835D4B9A0,0xB68C115F030C9FD4,0x141DD2C916582001,0x983D8F7DDD5324AC, + 0x64AA703FCC175254,0xC2C989948E02B426,0x3E5E76D69F46C2DE,0x50746F03587D8004, + 0x45DB3D829272F1E5,0x60584A029B560BF3,0xFBAE58A73FFCDC62,0xA15A5E4E6CAD4CE8, + 0x4BA96E55CE1FB8CC,0x08F9747AAE82B253,0xC102144CF7FB471B,0x9F042898F3EB8E36, + 0x068B27ADF2EFFB7A,0xEDCA97FE8C0A5EBE,0x778E0513F4F7D8CF,0x302C2501C32B8BF7, + 0x8D92DDFC175C554D,0xF865C57F46052F5F,0xEAF3301BA2B2F424,0xAA68B7ECBBD60D86, + 0x998F0F350104754C,0x0000000000000000,0xF12E314D34D0CCEC,0x710522BE061823B5, + 0xAF280D9930C005C1,0x97FD5CE25D693C65,0x19A41CC633CC9A15,0x95844172F8C79EB8, + 0xDC5432B7937684A9,0x9436C13A2490CF58,0x802B13F332C8EF59,0xC442AE397CED4F5C, + 0xFA1CD8EFE3AB8D82,0xF2E5AC954D293FD1,0x6AD823E8907A1B7D,0x4D2249F83CF043B6, + 0x03CB9DD879F9F33D,0xDE2D2F2736D82674,0x2A43A41F891EE2DF,0x6F98999D1B6C133A, + 0xD4AD46CD3DF436FA,0xBB35DF50269825C0,0x964FDCAA813E6D85,0xEB41B0537EE5A5C4, + 0x0540BA758B160847,0xA41AE43BE7BB44AF,0xE3B8C429D0671797,0x819993BBEE9FBEB9, + 0xAE9A8DD1EC975421,0xF3572CDD917E6E31,0x6393D7DAE2AFF8CE,0x47A2201237DC5338, + 0xA32343DEC903EE35,0x79FC56C4A89A91E6,0x01B28048DC5751E0,0x1296F564E4B7DB7B, + 0x75F7188351597A12,0xDB6D9552BDCE2E33,0x1E9DBB231D74308F,0x520D7293FDD322D9, + 0xE20A44610C304677,0xFEEEE2D2B4EAD425,0xCA30FDEE20800675,0x61EACA4A47015A13, + 0xE74AFE1487264E30,0x2CC883B27BF119A5,0x1664CF59B3F682DC,0xA811AA7C1E78AF5B, + 0x1D5626FB648DC3B2,0xB73E9117DF5BCE34,0xD05F7CF06AB56F5D,0xFD257F0ACD132718, + 0x574DC8E676C52A9E,0x0739A7E52EB8AA9A,0x5486553E0F3CD9A3,0x56FF48AEAA927B7E, + 0xBE756525AD8E2D87,0x7D0E6CF9FFDBC841,0x3B1ECCA31450CA99,0x6913BE30E983E840, + 0xAD511009956EA71C,0xB1B5B6BA2DB4354E,0x4469BDCA4E25A005,0x15AF5281CA0F71E1, + 0x744598CB8D0E2BF2,0x593F9B312AA863B7,0xEFB38A6E29A4FC63,0x6B6AA3A04C2D4A9D, + 0x3D95EB0EE6BF31E3,0xA291C3961554BFD5,0x18169C8EEF9BCBF5,0x115D68BC9D4E2846, + 0xBA875F18FACF7420,0xD1EDFCB8B6E23EBD,0xB00736F2F1E364AE,0x84D929CE6589B6FE, + 0x70B7A2F6DA4F7255,0x0E7253D75C6D4929,0x04F23A3D574159A7,0x0A8069EA0B2C108E, + 0x49D073C56BB11A11,0x8AAB7A1939E4FFD7,0xCD095A0B0E38ACEF,0xC9FB60365979F548, + 0x92BDE697D67F3422,0xC78933E10514BC61,0xE1C1D9B975C9B54A,0xD2266160CF1BCD80, + 0x9A4492ED78FD8671,0xB3CCAB2A881A9793,0x72CEBF667FE1D088,0xD6D45B5D985A9427 +},{ + 0xC811A8058C3F55DE,0x65F5B43196B50619,0xF74F96B1D6706E43,0x859D1E8BCB43D336, + 0x5AAB8A85CCFA3D84,0xF9C7BF99C295FCFD,0xA21FD5A1DE4B630F,0xCDB3EF763B8B456D, + 0x803F59F87CF7C385,0xB27C73BE5F31913C,0x98E3AC6633B04821,0xBF61674C26B8F818, + 0x0FFBC995C4C130C8,0xAAA0862010761A98,0x6057F342210116AA,0xF63C760C0654CC35, + 0x2DDB45CC667D9042,0xBCF45A964BD40382,0x68E8A0C3EF3C6F3D,0xA7BD92D269FF73BC, + 0x290AE20201ED2287,0xB7DE34CDE885818F,0xD901EEA7DD61059B,0xD6FA273219A03553, + 0xD56F1AE874CCCEC9,0xEA31245C2E83F554,0x7034555DA07BE499,0xCE26D2AC56E7BEF7, + 0xFD161857A5054E38,0x6A0E7DA4527436D1,0x5BD86A381CDE9FF2,0xCAF7756231770C32, + 0xB09AAED9E279C8D0,0x5DEF1091C60674DB,0x111046A2515E5045,0x23536CE4729802FC, + 0xC50CBCF7F5B63CFA,0x73A16887CD171F03,0x7D2941AFD9F28DBD,0x3F5E3EB45A4F3B9D, + 0x84EEFE361B677140,0x3DB8E3D3E7076271,0x1A3A28F9F20FD248,0x7EBC7C75B49E7627, + 0x74E5F293C7EB565C,0x18DCF59E4F478BA4,0x0C6EF44FA9ADCB52,0xC699812D98DAC760, + 0x788B06DC6E469D0E,0xFC65F8EA7521EC4E,0x30A5F7219E8E0B55,0x2BEC3F65BCA57B6B, + 0xDDD04969BAF1B75E,0x99904CDBE394EA57,0x14B201D1E6EA40F6,0xBBB0C08241284ADD, + 0x50F20463BF8F1DFF,0xE8D7F93B93CBACB8,0x4D8CB68E477C86E8,0xC1DD1B3992268E3F, + 0x7C5AA11209D62FCB,0x2F3D98ABDB35C9AE,0x671369562BFD5FF5,0x15C1E16C36CEE280, + 0x1D7EB2EDF8F39B17,0xDA94D37DB00DFE01,0x877BC3EC760B8ADA,0xCB8495DFE153AE44, + 0x05A24773B7B410B3,0x12857B783C32ABDF,0x8EB770D06812513B,0x536739B9D2E3E665, + 0x584D57E271B26468,0xD789C78FC9849725,0xA935BBFA7D1AE102,0x8B1537A3DFA64188, + 0xD0CD5D9BC378DE7A,0x4AC82C9A4D80CFB7,0x42777F1B83BDB620,0x72D2883A1D33BD75, + 0x5E7A2D4BAB6A8F41,0xF4DAAB6BBB1C95D9,0x905CFFE7FD8D31B6,0x83AA6422119B381F, + 0xC0AEFB8442022C49,0xA0F908C663033AE3,0xA428AF0804938826,0xADE41C341A8A53C7, + 0xAE7121EE77E6A85D,0xC47F5C4A25929E8C,0xB538E9AA55CDD863,0x06377AA9DAD8EB29, + 0xA18AE87BB3279895,0x6EDFDA6A35E48414,0x6B7D9D19825094A7,0xD41CFA55A4E86CBF, + 0xE5CAEDC9EA42C59C,0xA36C351C0E6FC179,0x5181E4DE6FABBF89,0xFFF0C530184D17D4, + 0x9D41EB1584045892,0x1C0D525028D73961,0xF178EC180CA8856A,0x9A0571018EF811CD, + 0x4091A27C3EF5EFCC,0x19AF15239F6329D2,0x347450EFF91EB990,0xE11B4A078DD27759, + 0xB9561DE5FC601331,0x912F1F5A2DA993C0,0x1654DCB65BA2191A,0x3E2DDE098A6B99EB, + 0x8A66D71E0F82E3FE,0x8C51ADB7D55A08D7,0x4533E50F8941FF7F,0x02E6DD67BD4859EC, + 0xE068AABA5DF6D52F,0xC24826E3FF4A75A5,0x6C39070D88ACDDF8,0x6486548C4691A46F, + 0xD1BEBD26135C7C0C,0xB30F93038F15334A,0x82D9849FC1BF9A69,0x9C320BA85420FAE4, + 0xFA528243AFF90767,0x9ED4D6CFE968A308,0xB825FD582C44B147,0x9B7691BC5EDCB3BB, + 0xC7EA619048FE6516,0x1063A61F817AF233,0x47D538683409A693,0x63C2CE984C6DED30, + 0x2A9FDFD86C81D91D,0x7B1E3B06032A6694,0x666089EBFBD9FD83,0x0A598EE67375207B, + 0x07449A140AFC495F,0x2CA8A571B6593234,0x1F986F8A45BBC2FB,0x381AA4A050B372C2, + 0x5423A3ADD81FAF3A,0x17273C0B8B86BB6C,0xFE83258DC869B5A2,0x287902BFD1C980F1, + 0xF5A94BD66B3837AF,0x88800A79B2CABA12,0x55504310083B0D4C,0xDF36940E07B9EEB2, + 0x04D1A7CE6790B2C5,0x612413FFF125B4DC,0x26F12B97C52C124F,0x86082351A62F28AC, + 0xEF93632F9937E5E7,0x3507B052293A1BE6,0xE72C30AE570A9C70,0xD3586041AE1425E0, + 0xDE4574B3D79D4CC4,0x92BA228040C5685A,0xF00B0CA5DC8C271C,0xBE1287F1F69C5A6E, + 0xF39E317FB1E0DC86,0x495D114020EC342D,0x699B407E3F18CD4B,0xDCA3A9D46AD51528, + 0x0D1D14F279896924,0x0000000000000000,0x593EB75FA196C61E,0x2E4E78160B116BD8, + 0x6D4AE7B058887F8E,0xE65FD013872E3E06,0x7A6DDBBBD30EC4E2,0xAC97FC89CAAEF1B1, + 0x09CCB33C1E19DBE1,0x89F3EAC462EE1864,0x7770CF49AA87ADC6,0x56C57ECA6557F6D6, + 0x03953DDA6D6CFB9A,0x36928D884456E07C,0x1EEB8F37959F608D,0x31D6179C4EAAA923, + 0x6FAC3AD7E5C02662,0x43049FA653991456,0xABD3669DC052B8EE,0xAF02C153A7C20A2B, + 0x3CCB036E3723C007,0x93C9C23D90E1CA2C,0xC33BC65E2F6ED7D3,0x4CFF56339758249E, + 0xB1E94E64325D6AA6,0x37E16D359472420A,0x79F8E661BE623F78,0x5214D90402C74413, + 0x482EF1FDF0C8965B,0x13F69BC5EC1609A9,0x0E88292814E592BE,0x4E198B542A107D72, + 0xCCC00FCBEBAFE71B,0x1B49C844222B703E,0x2564164DA840E9D5,0x20C6513E1FF4F966, + 0xBAC3203F910CE8AB,0xF2EDD1C261C47EF0,0x814CB945ACD361F3,0x95FEB8944A392105, + 0x5C9CF02C1622D6AD,0x971865F3F77178E9,0xBD87BA2B9BF0A1F4,0x444005B259655D09, + 0xED75BE48247FBC0B,0x7596122E17CFF42A,0xB44B091785E97A15,0x966B854E2755DA9F, + 0xEEE0839249134791,0x32432A4623C652B9,0xA8465B47AD3E4374,0xF8B45F2412B15E8B, + 0x2417F6F078644BA3,0xFB2162FE7FDDA511,0x4BBBCC279DA46DC1,0x0173E0BDD024A276, + 0x22208C59A2BCA08A,0x8FC4906DB836F34D,0xE4B90D743A6667EA,0x7147B5E0705F46EF, + 0x2782CB2A1508B039,0xEC065EF5F45B1E7D,0x21B5B183CFD05B10,0xDBE733C060295C77, + 0x9FA73672394C017E,0xCF55321186C31C81,0xD8720E1A0D45A7ED,0x3B8F997A3DDF8958, + 0x3AFC79C7EDFB2B2E,0xE9A4198643EF0ECE,0x5F09CDF67B4E2D37,0x4F6A6BE9FA34DF04, + 0xB6ADD47038A123F9,0x8D224D0A057EAAA1,0xC96248B85C1BF7A8,0xE3FD9760309A2EB5, + 0x0B2A6E5BA351820D,0xEB42C4E1FEA75722,0x948D58299A1D8373,0x7FCF9CC864BAD451, + 0xA55B4FB5D4B72A50,0x08BF5381CE3D7997,0x46A6D8D5E42D04E5,0xD22B80FC7E308796, + 0x57B69E77B57354A0,0x3969441D8097D0B4,0x3330CAFBF3E2F0CF,0xE28E77DDE0BE8CC3, + 0x62B12E259C494F46,0xA6CE726FB9DBD1CA,0x41E242C1EED14DBA,0x76032FF47AA30FB0 +},{ + 0x45B268A93ACDE4CC,0xAF7F0BE884549D08,0x048354B3C1468263,0x925435C2C80EFED2, + 0xEE4E37F27FDFFBA7,0x167A33920C60F14D,0xFB123B52EA03E584,0x4A0CAB53FDBB9007, + 0x9DEAF6380F788A19,0xCB48EC558F0CB32A,0xB59DC4B2D6FEF7E0,0xDCDBCA22F4F3ECB6, + 0x11DF5813549A9C40,0xE33FDEDF568ACED3,0xA0C1C8124322E9C3,0x07A56B8158FA6D0D, + 0x77279579B1E1F3DD,0xD9B18B74422AC004,0xB8EC2D9FFFABC294,0xF4ACF8A82D75914F, + 0x7BBF69B1EF2B6878,0xC4F62FAF487AC7E1,0x76CE809CC67E5D0C,0x6711D88F92E4C14C, + 0x627B99D9243DEDFE,0x234AA5C3DFB68B51,0x909B1F15262DBF6D,0x4F66EA054B62BCB5, + 0x1AE2CF5A52AA6AE8,0xBEA053FBD0CE0148,0xED6808C0E66314C9,0x43FE16CD15A82710, + 0xCD049231A06970F6,0xE7BC8A6C97CC4CB0,0x337CE835FCB3B9C0,0x65DEF2587CC780F3, + 0x52214EDE4132BB50,0x95F15E4390F493DF,0x870839625DD2E0F1,0x41313C1AFB8B66AF, + 0x91720AF051B211BC,0x477D427ED4EEA573,0x2E3B4CEEF6E3BE25,0x82627834EB0BCC43, + 0x9C03E3DD78E724C8,0x2877328AD9867DF9,0x14B51945E243B0F2,0x574B0F88F7EB97E2, + 0x88B6FA989AA4943A,0x19C4F068CB168586,0x50EE6409AF11FAEF,0x7DF317D5C04EABA4, + 0x7A567C5498B4C6A9,0xB6BBFB804F42188E,0x3CC22BCF3BC5CD0B,0xD04336EAAA397713, + 0xF02FAC1BEC33132C,0x2506DBA7F0D3488D,0xD7E65D6BF2C31A1E,0x5EB9B2161FF820F5, + 0x842E0650C46E0F9F,0x716BEB1D9E843001,0xA933758CAB315ED4,0x3FE414FDA2792265, + 0x27C9F1701EF00932,0x73A4C1CA70A771BE,0x94184BA6E76B3D0E,0x40D829FF8C14C87E, + 0x0FBEC3FAC77674CB,0x3616A9634A6A9572,0x8F139119C25EF937,0xF545ED4D5AEA3F9E, + 0xE802499650BA387B,0x6437E7BD0B582E22,0xE6559F89E053E261,0x80AD52E305288DFC, + 0x6DC55A23E34B9935,0xDE14E0F51AD0AD09,0xC6390578A659865E,0x96D7617109487CB1, + 0xE2D6CB3A21156002,0x01E915E5779FAED1,0xADB0213F6A77DCB7,0x9880B76EB9A1A6AB, + 0x5D9F8D248644CF9B,0xFD5E4536C5662658,0xF1C6B9FE9BACBDFD,0xEACD6341BE9979C4, + 0xEFA7221708405576,0x510771ECD88E543E,0xC2BA51CB671F043D,0x0AD482AC71AF5879, + 0xFE787A045CDAC936,0xB238AF338E049AED,0xBD866CC94972EE26,0x615DA6EBBD810290, + 0x3295FDD08B2C1711,0xF834046073BF0AEA,0xF3099329758FFC42,0x1CAEB13E7DCFA934, + 0xBA2307481188832B,0x24EFCE42874CE65C,0x0E57D61FB0E9DA1A,0xB3D1BAD6F99B343C, + 0xC0757B1C893C4582,0x2B510DB8403A9297,0x5C7698C1F1DB614A,0x3E0D0118D5E68CB4, + 0xD60F488E855CB4CF,0xAE961E0DF3CB33D9,0x3A8E55AB14A00ED7,0x42170328623789C1, + 0x838B6DD19C946292,0x895FEF7DED3B3AEB,0xCFCBB8E64E4A3149,0x064C7E642F65C3DC, + 0x3D2B3E2A4C5A63DA,0x5BD3F340A9210C47,0xB474D157A1615931,0xAC5934DA1DE87266, + 0x6EE365117AF7765B,0xC86ED36716B05C44,0x9BA6885C201D49C5,0xB905387A88346C45, + 0x131072C4BAB9DDFF,0xBF49461EA751AF99,0xD52977BC1CE05BA1,0xB0F785E46027DB52, + 0x546D30BA6E57788C,0x305AD707650F56AE,0xC987C682612FF295,0xA5AB8944F5FBC571, + 0x7ED528E759F244CA,0x8DDCBBCE2C7DB888,0xAA154ABE328DB1BA,0x1E619BE993ECE88B, + 0x09F2BD9EE813B717,0x7401AA4B285D1CB3,0x21858F143195CAEE,0x48C381841398D1B8, + 0xFCB750D3B2F98889,0x39A86A998D1CE1B9,0x1F888E0CE473465A,0x7899568376978716, + 0x02CF2AD7EE2341BF,0x85C713B5B3F1A14E,0xFF916FE12B4567E7,0x7C1A0230B7D10575, + 0x0C98FCC85ECA9BA5,0xA3E7F720DA9E06AD,0x6A6031A2BBB1F438,0x973E74947ED7D260, + 0x2CF4663918C0FF9A,0x5F50A7F368678E24,0x34D983B4A449D4CD,0x68AF1B755592B587, + 0x7F3C3D022E6DEA1B,0xABFC5F5B45121F6B,0x0D71E92D29553574,0xDFFDF5106D4F03D8, + 0x081BA87B9F8C19C6,0xDB7EA1A3AC0981BB,0xBBCA12AD66172DFA,0x79704366010829C7, + 0x179326777BFF5F9C,0x0000000000000000,0xEB2476A4C906D715,0x724DD42F0738DF6F, + 0xB752EE6538DDB65F,0x37FFBC863DF53BA3,0x8EFA84FCB5C157E6,0xE9EB5C73272596AA, + 0x1B0BDABF2535C439,0x86E12C872A4D4E20,0x9969A28BCE3E087A,0xFAFB2EB79D9C4B55, + 0x056A4156B6D92CB2,0x5A3AE6A5DEBEA296,0x22A3B026A8292580,0x53C85B3B36AD1581, + 0xB11E900117B87583,0xC51F3A4A3FE56930,0xE019E1EDCF3621BD,0xEC811D2591FCBA18, + 0x445B7D4C4D524A1D,0xA8DA6069DCAEF005,0x58F5CC72309DE329,0xD4C062596B7FF570, + 0xCE22AD0339D59F98,0x591CD99747024DF8,0x8B90C5AA03187B54,0xF663D27FC356D0F0, + 0xD8589E9135B56ED5,0x35309651D3D67A1C,0x12F96721CD26732E,0xD28C1C3D441A36AC, + 0x492A946164077F69,0x2D1D73DC6F5F514B,0x6F0A70F40D68D88A,0x60B4B30ECA1EAC41, + 0xD36509D83385987D,0x0B3D97490630F6A8,0x9ECCC90A96C46577,0xA20EE2C5AD01A87C, + 0xE49AB55E0E70A3DE,0xA4429CA182646BA0,0xDA97B446DB962F6A,0xCCED87D4D7F6DE27, + 0x2AB8185D37A53C46,0x9F25DCEFE15BCBA6,0xC19C6EF9FEA3EB53,0xA764A3931BD884CE, + 0x2FD2590B817C10F4,0x56A21A6D80743933,0xE573A0BB79EF0D0F,0x155C0CA095DC1E23, + 0x6C2C4FC694D437E4,0x10364DF623053291,0xDD32DFC7836C4267,0x03263F3299BCEF6E, + 0x66F8CD6AE57B6F9D,0x8C35AE2B5BE21659,0x31B3C2E21290F87F,0x93BD2027BF915003, + 0x69460E90220D1B56,0x299E276FAE19D328,0x63928C3C53A2432F,0x7082FEF8E91B9ED0, + 0xBC6F792C3EED40F7,0x4C40D537D2DE53DB,0x75E8BFAE5FC2B262,0x4DA9C0D2A541FD0A, + 0x4E8FFFE03CFD1264,0x2620E495696FA7E3,0xE1F0F408B8A98F6C,0xD1AA230FDDA6D9C2, + 0xC7D0109DD1C6288F,0x8A79D04F7487D585,0x4694579BA3710BA2,0x38417F7CFA834F68, + 0x1D47A4DB0A5007E5,0x206C9AF1460A643F,0xA128DDF734BD4712,0x8144470672B7232D, + 0xF2E086CC02105293,0x182DE58DBC892B57,0xCAA1F9B0F8931DFB,0x6B892447CC2E5AE9, + 0xF9DD11850420A43B,0x4BE5BEB68A243ED6,0x5584255F19C8D65D,0x3B67404E633FA006, + 0xA68DB6766C472A1F,0xF78AC79AB4C97E21,0xC353442E1080AAEC,0x9A4F9DB95782E714 +},{ + 0x05BA7BC82C9B3220,0x31A54665F8B65E4F,0xB1B651F77547F4D4,0x8BFA0D857BA46682, + 0x85A96C5AA16A98BB,0x990FAEF908EB79C9,0xA15E37A247F4A62D,0x76857DCD5D27741E, + 0xF8C50B800A1820BC,0xBE65DCB201F7A2B4,0x666D1B986F9426E7,0x4CC921BF53C4E648, + 0x95410A0F93D9CA42,0x20CDCCAA647BA4EF,0x429A4060890A1871,0x0C4EA4F69B32B38B, + 0xCCDA362DDE354CD3,0x96DC23BC7C5B2FA9,0xC309BB68AA851AB3,0xD26131A73648E013, + 0x021DC52941FC4DB2,0xCD5ADAB7704BE48A,0xA77965D984ED71E6,0x32386FD61734BBA4, + 0xE82D6DD538AB7245,0x5C2147EA6177B4B1,0x5DA1AB70CF091CE8,0xAC907FCE72B8BDFF, + 0x57C85DFD972278A8,0xA4E44C6A6B6F940D,0x3851995B4F1FDFE4,0x62578CCAED71BC9E, + 0xD9882BB0C01D2C0A,0x917B9D5D113C503B,0xA2C31E11A87643C6,0xE463C923A399C1CE, + 0xF71686C57EA876DC,0x87B4A973E096D509,0xAF0D567D9D3A5814,0xB40C2A3F59DCC6F4, + 0x3602F88495D121DD,0xD3E1DD3D9836484A,0xF945E71AA46688E5,0x7518547EB2A591F5, + 0x9366587450C01D89,0x9EA81018658C065B,0x4F54080CBC4603A3,0x2D0384C65137BF3D, + 0xDC325078EC861E2A,0xEA30A8FC79573FF7,0x214D2030CA050CB6,0x65F0322B8016C30C, + 0x69BE96DD1B247087,0xDB95EE9981E161B8,0xD1FC1814D9CA05F8,0x820ED2BBCC0DE729, + 0x63D76050430F14C7,0x3BCCB0E8A09D3A0F,0x8E40764D573F54A2,0x39D175C1E16177BD, + 0x12F5A37C734F1F4B,0xAB37C12F1FDFC26D,0x5648B167395CD0F1,0x6C04ED1537BF42A7, + 0xED97161D14304065,0x7D6C67DAAB72B807,0xEC17FA87BA4EE83C,0xDFAF79CB0304FBC1, + 0x733F060571BC463E,0x78D61C1287E98A27,0xD07CF48E77B4ADA1,0xB9C262536C90DD26, + 0xE2449B5860801605,0x8FC09AD7F941FCFB,0xFAD8CEA94BE46D0E,0xA343F28B0608EB9F, + 0x9B126BD04917347B,0x9A92874AE7699C22,0x1B017C42C4E69EE0,0x3A4C5C720EE39256, + 0x4B6E9F5E3EA399DA,0x6BA353F45AD83D35,0xE7FEE0904C1B2425,0x22D009832587E95D, + 0x842980C00F1430E2,0xC6B3C0A0861E2893,0x087433A419D729F2,0x341F3DADD42D6C6F, + 0xEE0A3FAEFBB2A58E,0x4AEE73C490DD3183,0xAAB72DB5B1A16A34,0xA92A04065E238FDF, + 0x7B4B35A1686B6FCC,0x6A23BF6EF4A6956C,0x191CB96B851AD352,0x55D598D4D6DE351A, + 0xC9604DE5F2AE7EF3,0x1CA6C2A3A981E172,0xDE2F9551AD7A5398,0x3025AAFF56C8F616, + 0x15521D9D1E2860D9,0x506FE31CFA45073A,0x189C55F12B647B0B,0x0180EC9AAE7EA859, + 0x7CEC8B40050C105E,0x2350E5198BF94104,0xEF8AD33455CC0DD7,0x07A7BEE16D677F92, + 0xE5E325B90DE76997,0x5A061591A26E637A,0xB611EF1618208B46,0x09F4DF3EB7A981AB, + 0x1EBB078AE87DACC0,0xB791038CB65E231F,0x0FD38D4574B05660,0x67EDF702C1EA8EBE, + 0xBA5F4BE0831238CD,0xE3C477C2CEFEBE5C,0x0DCE486C354C1BD2,0x8C5DB36416C31910, + 0x26EA9ED1A7627324,0x039D29B3EF82E5EB,0x9F28FC82CBF2AE02,0xA8AAE89CF05D2786, + 0x431AACFA2774B028,0xCF471F9E31B7A938,0x581BD0B8E3922EC8,0xBC78199B400BEF06, + 0x90FB71C7BF42F862,0x1F3BEB1046030499,0x683E7A47B55AD8DE,0x988F4263A695D190, + 0xD808C72A6E638453,0x0627527BC319D7CB,0xEBB04466D72997AE,0xE67E0C0AE2658C7C, + 0x14D2F107B056C880,0x7122C32C30400B8C,0x8A7AE11FD5DACEDB,0xA0DEDB38E98A0E74, + 0xAD109354DCC615A6,0x0BE91A17F655CC19,0x8DDD5FFEB8BDB149,0xBFE53028AF890AED, + 0xD65BA6F5B4AD7A6A,0x7956F0882997227E,0x10E8665532B352F9,0x0E5361DFDACEFE39, + 0xCEC7F3049FC90161,0xFF62B561677F5F2E,0x975CCF26D22587F0,0x51EF0F86543BAF63, + 0x2F1E41EF10CBF28F,0x52722635BBB94A88,0xAE8DBAE73344F04D,0x410769D36688FD9A, + 0xB3AB94DE34BBB966,0x801317928DF1AA9B,0xA564A0F0C5113C54,0xF131D4BEBDB1A117, + 0x7F71A2F3EA8EF5B5,0x40878549C8F655C3,0x7EF14E6944F05DEC,0xD44663DCF55137D8, + 0xF2ACFD0D523344FC,0x0000000000000000,0x5FBC6E598EF5515A,0x16CF342EF1AA8532, + 0xB036BD6DDB395C8D,0x13754FE6DD31B712,0xBBDFA77A2D6C9094,0x89E7C8AC3A582B30, + 0x3C6B0E09CDFA459D,0xC4AE0589C7E26521,0x49735A777F5FD468,0xCAFD64561D2C9B18, + 0xDA1502032F9FC9E1,0x8867243694268369,0x3782141E3BAF8984,0x9CB5D53124704BE9, + 0xD7DB4A6F1AD3D233,0xA6F989432A93D9BF,0x9D3539AB8A0EE3B0,0x53F2CAAF15C7E2D1, + 0x6E19283C76430F15,0x3DEBE2936384EDC4,0x5E3C82C3208BF903,0x33B8834CB94A13FD, + 0x6470DEB12E686B55,0x359FD1377A53C436,0x61CAA57902F35975,0x043A975282E59A79, + 0xFD7F70482683129C,0xC52EE913699CCD78,0x28B9FF0E7DAC8D1D,0x5455744E78A09D43, + 0xCB7D88CCB3523341,0x44BD121B4A13CFBA,0x4D49CD25FDBA4E11,0x3E76CB208C06082F, + 0x3FF627BA2278A076,0xC28957F204FBB2EA,0x453DFE81E46D67E3,0x94C1E6953DA7621B, + 0x2C83685CFF491764,0xF32C1197FC4DECA5,0x2B24D6BD922E68F6,0xB22B78449AC5113F, + 0x48F3B6EDD1217C31,0x2E9EAD75BEB55AD6,0x174FD8B45FD42D6B,0x4ED4E4961238ABFA, + 0x92E6B4EEFEBEB5D0,0x46A0D7320BEF8208,0x47203BA8A5912A51,0x24F75BF8E69E3E96, + 0xF0B1382413CF094E,0xFEE259FBC901F777,0x276A724B091CDB7D,0xBDF8F501EE75475F, + 0x599B3C224DEC8691,0x6D84018F99C1EAFE,0x7498B8E41CDB39AC,0xE0595E71217C5BB7, + 0x2AA43A273C50C0AF,0xF50B43EC3F543B6E,0x838E3E2162734F70,0xC09492DB4507FF58, + 0x72BFEA9FDFC2EE67,0x11688ACF9CCDFAA0,0x1A8190D86A9836B9,0x7ACBD93BC615C795, + 0xC7332C3A286080CA,0x863445E94EE87D50,0xF6966A5FD0D6DE85,0xE9AD814F96D5DA1C, + 0x70A22FB69E3EA3D5,0x0A69F68D582B6440,0xB8428EC9C2EE757F,0x604A49E3AC8DF12C, + 0x5B86F90B0C10CB23,0xE1D9B2EB8F02F3EE,0x29391394D3D22544,0xC8E0A17F5CD0D6AA, + 0xB58CC6A5F7A26EAD,0x8193FB08238F02C2,0xD5C68F465B2F9F81,0xFCFF9CD288FDBAC5, + 0x77059157F359DC47,0x1D262E3907FF492B,0xFB582233E59AC557,0xDDB2BCE242F8B673, + 0x2577B76248E096CF,0x6F99C4A6D83DA74C,0xC1147E41EB795701,0xF48BAF76912A9337 +},{ + 0x3EF29D249B2C0A19,0xE9E16322B6F8622F,0x5536994047757F7A,0x9F4D56D5A47B0B33, + 0x822567466AA1174C,0xB8F5057DEB082FB2,0xCC48C10BF4475F53,0x373088D4275DEC3A, + 0x968F4325180AED10,0x173D232CF7016151,0xAE4ED09F946FCC13,0xFD4B4741C4539873, + 0x1B5B3F0DD9933765,0x2FFCB0967B644052,0xE02376D20A89840C,0xA3AE3A70329B18D7, + 0x419CBD2335DE8526,0xFAFEBF115B7C3199,0x0397074F85AA9B0D,0xC58AD4FB4836B970, + 0xBEC60BE3FC4104A8,0x1EFF36DC4B708772,0x131FDC33ED8453B6,0x0844E33E341764D3, + 0x0FF11B6EAB38CD39,0x64351F0A7761B85A,0x3B5694F509CFBA0E,0x30857084B87245D0, + 0x47AFB3BD2297AE3C,0xF2BA5C2F6F6B554A,0x74BDC4761F4F70E1,0xCFDFC64471EDC45E, + 0xE610784C1DC0AF16,0x7ACA29D63C113F28,0x2DED411776A859AF,0xAC5F211E99A3D5EE, + 0xD484F949A87EF33B,0x3CE36CA596E013E4,0xD120F0983A9D432C,0x6BC40464DC597563, + 0x69D5F5E5D1956C9E,0x9AE95F043698BB24,0xC9ECC8DA66A4EF44,0xD69508C8A5B2EAC6, + 0xC40C2235C0503B80,0x38C193BA8C652103,0x1CEEC75D46BC9E8F,0xD331011937515AD1, + 0xD8E2E56886ECA50F,0xB137108D5779C991,0x709F3B6905CA4206,0x4FEB50831680CAEF, + 0xEC456AF3241BD238,0x58D673AFE181ABBE,0x242F54E7CAD9BF8C,0x0211F1810DCC19FD, + 0x90BC4DBB0F43C60A,0x9518446A9DA0761D,0xA1BFCBF13F57012A,0x2BDE4F8961E172B5, + 0x27B853A84F732481,0xB0B1E643DF1F4B61,0x18CC38425C39AC68,0xD2B7F7D7BF37D821, + 0x3103864A3014C720,0x14AA246372ABFA5C,0x6E600DB54EBAC574,0x394765740403A3F3, + 0x09C215F0BC71E623,0x2A58B947E987F045,0x7B4CDF18B477BDD8,0x9709B5EB906C6FE0, + 0x73083C268060D90B,0xFEDC400E41F9037E,0x284948C6E44BE9B8,0x728ECAE808065BFB, + 0x06330E9E17492B1A,0x5950856169E7294E,0xBAE4F4FCE6C4364F,0xCA7BCF95E30E7449, + 0x7D7FD186A33E96C2,0x52836110D85AD690,0x4DFAA1021B4CD312,0x913ABB75872544FA, + 0xDD46ECB9140F1518,0x3D659A6B1E869114,0xC23F2CABD719109A,0xD713FE062DD46836, + 0xD0A60656B2FBC1DC,0x221C5A79DD909496,0xEFD26DBCA1B14935,0x0E77EDA0235E4FC9, + 0xCBFD395B6B68F6B9,0x0DE0EAEFA6F4D4C4,0x0422FF1F1A8532E7,0xF969B85EDED6AA94, + 0x7F6E2007AEF28F3F,0x3AD0623B81A938FE,0x6624EE8B7AADA1A7,0xB682E8DDC856607B, + 0xA78CC56F281E2A30,0xC79B257A45FAA08D,0x5B4174E0642B30B3,0x5F638BFF7EAE0254, + 0x4BC9AF9C0C05F808,0xCE59308AF98B46AE,0x8FC58DA9CC55C388,0x803496C7676D0EB1, + 0xF33CAAE1E70DD7BA,0xBB6202326EA2B4BF,0xD5020F87201871CB,0x9D5CA754A9B712CE, + 0x841669D87DE83C56,0x8A6184785EB6739F,0x420BBA6CB0741E2B,0xF12D5B60EAC1CE47, + 0x76AC35F71283691C,0x2C6BB7D9FECEDB5F,0xFCCDB18F4C351A83,0x1F79C012C3160582, + 0xF0ABADAE62A74CB7,0xE1A5801C82EF06FC,0x67A21845F2CB2357,0x5114665F5DF04D9D, + 0xBF40FD2D74278658,0xA0393D3FB73183DA,0x05A409D192E3B017,0xA9FB28CF0B4065F9, + 0x25A9A22942BF3D7C,0xDB75E22703463E02,0xB326E10C5AB5D06C,0xE7968E8295A62DE6, + 0xB973F3B3636EAD42,0xDF571D3819C30CE5,0xEE549B7229D7CBC5,0x12992AFD65E2D146, + 0xF8EF4E9056B02864,0xB7041E134030E28B,0xC02EDD2ADAD50967,0x932B4AF48AE95D07, + 0x6FE6FB7BC6DC4784,0x239AACB755F61666,0x401A4BEDBDB807D6,0x485EA8D389AF6305, + 0xA41BC220ADB4B13D,0x753B32B89729F211,0x997E584BB3322029,0x1D683193CEDA1C7F, + 0xFF5AB6C0C99F818E,0x16BBD5E27F67E3A1,0xA59D34EE25D233CD,0x98F8AE853B54A2D9, + 0x6DF70AFACB105E79,0x795D2E99B9BBA425,0x8E437B6744334178,0x0186F6CE886682F0, + 0xEBF092A3BB347BD2,0xBCD7FA62F18D1D55,0xADD9D7D011C5571E,0x0BD3E471B1BDFFDE, + 0xAA6C2F808EEAFEF4,0x5EE57D31F6C880A4,0xF50FA47FF044FCA0,0x1ADDC9C351F5B595, + 0xEA76646D3352F922,0x0000000000000000,0x85909F16F58EBEA6,0x46294573AAF12CCC, + 0x0A5512BF39DB7D2E,0x78DBD85731DD26D5,0x29CFBE086C2D6B48,0x218B5D36583A0F9B, + 0x152CD2ADFACD78AC,0x83A39188E2C795BC,0xC3B9DA655F7F926A,0x9ECBA01B2C1D89C3, + 0x07B5F8509F2FA9EA,0x7EE8D6C926940DCF,0x36B67E1AAF3B6ECA,0x86079859702425AB, + 0xFB7849DFD31AB369,0x4C7C57CC932A51E2,0xD96413A60E8A27FF,0x263EA566C715A671, + 0x6C71FC344376DC89,0x4A4F595284637AF8,0xDAF314E98B20BCF2,0x572768C14AB96687, + 0x1088DB7C682EC8BB,0x887075F9537A6A62,0x2E7A4658F302C2A2,0x619116DBE582084D, + 0xA87DDE018326E709,0xDCC01A779C6997E8,0xEDC39C3DAC7D50C8,0xA60A33A1A078A8C0, + 0xC1A82BE452B38B97,0x3F746BEA134A88E9,0xA228CCBEBAFD9A27,0xABEAD94E068C7C04, + 0xF48952B178227E50,0x5CF48CB0FB049959,0x6017E0156DE48ABD,0x4438B4F2A73D3531, + 0x8C528AE649FF5885,0xB515EF924DFCFB76,0x0C661C212E925634,0xB493195CC59A7986, + 0x9CDA519A21D1903E,0x32948105B5BE5C2D,0x194ACE8CD45F2E98,0x438D4CA238129CDB, + 0x9B6FA9CABEFE39D4,0x81B26009EF0B8C41,0xDED1EBF691A58E15,0x4E6DA64D9EE6481F, + 0x54B06F8ECF13FD8A,0x49D85E1D01C9E1F5,0xAFC826511C094EE3,0xF698A33075EE67AD, + 0x5AC7822EEC4DB243,0x8DD47C28C199DA75,0x89F68337DB1CE892,0xCDCE37C57C21DDA3, + 0x530597DE503C5460,0x6A42F2AA543FF793,0x5D727A7E73621BA9,0xE232875307459DF1, + 0x56A19E0FC2DFE477,0xC61DD3B4CD9C227D,0xE5877F03986A341B,0x949EB2A415C6F4ED, + 0x6206119460289340,0x6380E75AE84E11B0,0x8BE772B6D6D0F16F,0x50929091D596CF6D, + 0xE86795EC3E9EE0DF,0x7CF927482B581432,0xC86A3E14EEC26DB4,0x7119CDA78DACC0F6, + 0xE40189CD100CB6EB,0x92ADBC3A028FDFF7,0xB2A017C2D2D3529C,0x200DABF8D05C8D6B, + 0x34A78F9BA2F77737,0xE3B4719D8F231F01,0x45BE423C2F5BB7C1,0xF71E55FEFD88E55D, + 0x6853032B59F3EE6E,0x65B3E9C4FF073AAA,0x772AC3399AE5EBEC,0x87816E97F842A75B, + 0x110E2DB2E0484A4B,0x331277CB3DD8DEDD,0xBD510CAC79EB9FA5,0x352179552A91F5C7 +},{ + 0x8AB0A96846E06A6D,0x43C7E80B4BF0B33A,0x08C9B3546B161EE5,0x39F1C235EBA990BE, + 0xC1BEF2376606C7B2,0x2C209233614569AA,0xEB01523B6FC3289A,0x946953AB935ACEDD, + 0x272838F63E13340E,0x8B0455ECA12BA052,0x77A1B2C4978FF8A2,0xA55122CA13E54086, + 0x2276135862D3F1CD,0xDB8DDFDE08B76CFE,0x5D1E12C89E4A178A,0x0E56816B03969867, + 0xEE5F79953303ED59,0xAFED748BAB78D71D,0x6D929F2DF93E53EE,0xF5D8A8F8BA798C2A, + 0xF619B1698E39CF6B,0x95DDAF2F749104E2,0xEC2A9C80E0886427,0xCE5C8FD8825B95EA, + 0xC4E0D9993AC60271,0x4699C3A5173076F9,0x3D1B151F50A29F42,0x9ED505EA2BC75946, + 0x34665ACFDC7F4B98,0x61B1FB53292342F7,0xC721C0080E864130,0x8693CD1696FD7B74, + 0x872731927136B14B,0xD3446C8A63A1721B,0x669A35E8A6680E4A,0xCAB658F239509A16, + 0xA4E5DE4EF42E8AB9,0x37A7435EE83F08D9,0x134E6239E26C7F96,0x82791A3C2DF67488, + 0x3F6EF00A8329163C,0x8E5A7E42FDEB6591,0x5CAAEE4C7981DDB5,0x19F234785AF1E80D, + 0x255DDDE3ED98BD70,0x50898A32A99CCCAC,0x28CA4519DA4E6656,0xAE59880F4CB31D22, + 0x0D9798FA37D6DB26,0x32F968F0B4FFCD1A,0xA00F09644F258545,0xFA3AD5175E24DE72, + 0xF46C547C5DB24615,0x713E80FBFF0F7E20,0x7843CF2B73D2AAFA,0xBD17EA36AEDF62B4, + 0xFD111BACD16F92CF,0x4ABAA7DBC72D67E0,0xB3416B5DAD49FAD3,0xBCA316B24914A88B, + 0x15D150068AECF914,0xE27C1DEBE31EFC40,0x4FE48C759BEDA223,0x7EDCFD141B522C78, + 0x4E5070F17C26681C,0xE696CAC15815F3BC,0x35D2A64B3BB481A7,0x800CFF29FE7DFDF6, + 0x1ED9FAC3D5BAA4B0,0x6C2663A91EF599D1,0x03C1199134404341,0xF7AD4DED69F20554, + 0xCD9D9649B61BD6AB,0xC8C3BDE7EADB1368,0xD131899FB02AFB65,0x1D18E352E1FAE7F1, + 0xDA39235AEF7CA6C1,0xA1BBF5E0A8EE4F7A,0x91377805CF9A0B1E,0x3138716180BF8E5B, + 0xD9F83ACBDB3CE580,0x0275E515D38B897E,0x472D3F21F0FBBCC6,0x2D946EB7868EA395, + 0xBA3C248D21942E09,0xE7223645BFDE3983,0xFF64FEB902E41BB1,0xC97741630D10D957, + 0xC3CB1722B58D4ECC,0xA27AEC719CAE0C3B,0x99FECB51A48C15FB,0x1465AC826D27332B, + 0xE1BD047AD75EBF01,0x79F733AF941960C5,0x672EC96C41A3C475,0xC27FEBA6524684F3, + 0x64EFD0FD75E38734,0xED9E60040743AE18,0xFB8E2993B9EF144D,0x38453EB10C625A81, + 0x6978480742355C12,0x48CF42CE14A6EE9E,0x1CAC1FD606312DCE,0x7B82D6BA4792E9BB, + 0x9D141C7B1F871A07,0x5616B80DC11C4A2E,0xB849C198F21FA777,0x7CA91801C8D9A506, + 0xB1348E487EC273AD,0x41B20D1E987B3A44,0x7460AB55A3CFBBE3,0x84E628034576F20A, + 0x1B87D16D897A6173,0x0FE27DEFE45D5258,0x83CDE6B8CA3DBEB7,0x0C23647ED01D1119, + 0x7A362A3EA0592384,0xB61F40F3F1893F10,0x75D457D1440471DC,0x4558DA34237035B8, + 0xDCA6116587FC2043,0x8D9B67D3C9AB26D0,0x2B0B5C88EE0E2517,0x6FE77A382AB5DA90, + 0x269CC472D9D8FE31,0x63C41E46FAA8CB89,0xB7ABBC771642F52F,0x7D1DE4852F126F39, + 0xA8C6BA3024339BA0,0x600507D7CEE888C8,0x8FEE82C61A20AFAE,0x57A2448926D78011, + 0xFCA5E72836A458F0,0x072BCEBB8F4B4CBD,0x497BBE4AF36D24A1,0x3CAFE99BB769557D, + 0x12FA9EBD05A7B5A9,0xE8C04BAA5B836BDB,0x4273148FAC3B7905,0x908384812851C121, + 0xE557D3506C55B0FD,0x72FF996ACB4F3D61,0x3EDA0C8E64E2DC03,0xF0868356E6B949E9, + 0x04EAD72ABB0B0FFC,0x17A4B5135967706A,0xE3C8E16F04D5367F,0xF84F30028DAF570C, + 0x1846C8FCBD3A2232,0x5B8120F7F6CA9108,0xD46FA231ECEA3EA6,0x334D947453340725, + 0x58403966C28AD249,0xBED6F3A79A9F21F5,0x68CCB483A5FE962D,0xD085751B57E1315A, + 0xFED0023DE52FD18E,0x4B0E5B5F20E6ADDF,0x1A332DE96EB1AB4C,0xA3CE10F57B65C604, + 0x108F7BA8D62C3CD7,0xAB07A3A11073D8E1,0x6B0DAD1291BED56C,0xF2F366433532C097, + 0x2E557726B2CEE0D4,0x0000000000000000,0xCB02A476DE9B5029,0xE4E32FD48B9E7AC2, + 0x734B65EE2C84F75E,0x6E5386BCCD7E10AF,0x01B4FC84E7CBCA3F,0xCFE8735C65905FD5, + 0x3613BFDA0FF4C2E6,0x113B872C31E7F6E8,0x2FE18BA255052AEB,0xE974B72EBC48A1E4, + 0x0ABC5641B89D979B,0xB46AA5E62202B66E,0x44EC26B0C4BBFF87,0xA6903B5B27A503C7, + 0x7F680190FC99E647,0x97A84A3AA71A8D9C,0xDD12EDE16037EA7C,0xC554251DDD0DC84E, + 0x88C54C7D956BE313,0x4D91696048662B5D,0xB08072CC9909B992,0xB5DE5962C5C97C51, + 0x81B803AD19B637C9,0xB2F597D94A8230EC,0x0B08AAC55F565DA4,0xF1327FD2017283D6, + 0xAD98919E78F35E63,0x6AB9519676751F53,0x24E921670A53774F,0xB9FD3D1C15D46D48, + 0x92F66194FBDA485F,0x5A35DC7311015B37,0xDED3F4705477A93D,0xC00A0EB381CD0D8D, + 0xBB88D809C65FE436,0x16104997BEACBA55,0x21B70AC95693B28C,0x59F4C5E225411876, + 0xD5DB5EB50B21F499,0x55D7A19CF55C096F,0xA97246B4C3F8519F,0x8552D487A2BD3835, + 0x54635D181297C350,0x23C2EFDC85183BF2,0x9F61F96ECC0C9379,0x534893A39DDC8FED, + 0x5EDF0B59AA0A54CB,0xAC2C6D1A9F38945C,0xD7AEBBA0D8AA7DE7,0x2ABFA00C09C5EF28, + 0xD84CC64F3CF72FBF,0x2003F64DB15878B3,0xA724C7DFC06EC9F8,0x069F323F68808682, + 0xCC296ACD51D01C94,0x055E2BAE5CC0C5C3,0x6270E2C21D6301B6,0x3B842720382219C0, + 0xD2F0900E846AB824,0x52FC6F277A1745D2,0xC6953C8CE94D8B0F,0xE009F8FE3095753E, + 0x655B2C7992284D0B,0x984A37D54347DFC4,0xEAB5AEBF8808E2A5,0x9A3FD2C090CC56BA, + 0x9CA0E0FFF84CD038,0x4C2595E4AFADE162,0xDF6708F4B3BC6302,0xBF620F237D54EBCA, + 0x93429D101C118260,0x097D4FD08CDDD4DA,0x8C2F9B572E60ECEF,0x708A7C7F18C4B41F, + 0x3A30DBA4DFE9D3FF,0x4006F19A7FB0F07B,0x5F6BF7DD4DC19EF4,0x1F6D064732716E8F, + 0xF9FBCC866A649D33,0x308C8DE567744464,0x8971B0F972A0292C,0xD61A47243F61B7D8, + 0xEFEB8511D4C82766,0x961CB6BE40D147A3,0xAAB35F25F7B812DE,0x76154E407044329D, + 0x513D76B64E570693,0xF3479AC7D2F90AA8,0x9B8B2E4477079C85,0x297EB99D3D85AC69 +},{ + 0x7E37E62DFC7D40C3,0x776F25A4EE939E5B,0xE045C850DD8FB5AD,0x86ED5BA711FF1952, + 0xE91D0BD9CF616B35,0x37E0AB256E408FFB,0x9607F6C031025A7A,0x0B02F5E116D23C9D, + 0xF3D8486BFB50650C,0x621CFF27C40875F5,0x7D40CB71FA5FD34A,0x6DAA6616DAA29062, + 0x9F5F354923EC84E2,0xEC847C3DC507C3B3,0x025A3668043CE205,0xA8BF9E6C4DAC0B19, + 0xFA808BE2E9BEBB94,0xB5B99C5277C74FA3,0x78D9BC95F0397BCC,0xE332E50CDBAD2624, + 0xC74FCE129332797E,0x1729ECEB2EA709AB,0xC2D6B9F69954D1F8,0x5D898CBFBAB8551A, + 0x859A76FB17DD8ADB,0x1BE85886362F7FB5,0xF6413F8FF136CD8A,0xD3110FA5BBB7E35C, + 0x0A2FEED514CC4D11,0xE83010EDCD7F1AB9,0xA1E75DE55F42D581,0xEEDE4A55C13B21B6, + 0xF2F5535FF94E1480,0x0CC1B46D1888761E,0xBCE15FDB6529913B,0x2D25E8975A7181C2, + 0x71817F1CE2D7A554,0x2E52C5CB5C53124B,0xF9F7A6BEEF9C281D,0x9E722E7D21F2F56E, + 0xCE170D9B81DCA7E6,0x0E9B82051CB4941B,0x1E712F623C49D733,0x21E45CFA42F9F7DC, + 0xCB8E7A7F8BBA0F60,0x8E98831A010FB646,0x474CCF0D8E895B23,0xA99285584FB27A95, + 0x8CC2B57205335443,0x42D5B8E984EFF3A5,0x012D1B34021E718C,0x57A6626AAE74180B, + 0xFF19FC06E3D81312,0x35BA9D4D6A7C6DFE,0xC9D44C178F86ED65,0x506523E6A02E5288, + 0x03772D5C06229389,0x8B01F4FE0B691EC0,0xF8DABD8AED825991,0x4C4E3AEC985B67BE, + 0xB10DF0827FBF96A9,0x6A69279AD4F8DAE1,0xE78689DCD3D5FF2E,0x812E1A2B1FA553D1, + 0xFBAD90D6EBA0CA18,0x1AC543B234310E39,0x1604F7DF2CB97827,0xA6241C6951189F02, + 0x753513CCEAAF7C5E,0x64F2A59FC84C4EFA,0x247D2B1E489F5F5A,0xDB64D718AB474C48, + 0x79F4A7A1F2270A40,0x1573DA832A9BEBAE,0x3497867968621C72,0x514838D2A2302304, + 0xF0AF6537FD72F685,0x1D06023E3A6B44BA,0x678588C3CE6EDD73,0x66A893F7CC70ACFF, + 0xD4D24E29B5EDA9DF,0x3856321470EA6A6C,0x07C3418C0E5A4A83,0x2BCBB22F5635BACD, + 0x04B46CD00878D90A,0x06EE5AB80C443B0F,0x3B211F4876C8F9E5,0x0958C38912EEDE98, + 0xD14B39CDBF8B0159,0x397B292072F41BE0,0x87C0409313E168DE,0xAD26E98847CAA39F, + 0x4E140C849C6785BB,0xD5FF551DB7F3D853,0xA0CA46D15D5CA40D,0xCD6020C787FE346F, + 0x84B76DCF15C3FB57,0xDEFDA0FCA121E4CE,0x4B8D7B6096012D3D,0x9AC642AD298A2C64, + 0x0875D8BD10F0AF14,0xB357C6EA7B8374AC,0x4D6321D89A451632,0xEDA96709C719B23F, + 0xF76C24BBF328BC06,0xC662D526912C08F2,0x3CE25EC47892B366,0xB978283F6F4F39BD, + 0xC08C8F9E9D6833FD,0x4F3917B09E79F437,0x593DE06FB2C08C10,0xD6887841B1D14BDA, + 0x19B26EEE32139DB0,0xB494876675D93E2F,0x825937771987C058,0x90E9AC783D466175, + 0xF1827E03FF6C8709,0x945DC0A8353EB87F,0x4516F9658AB5B926,0x3F9573987EB020EF, + 0xB855330B6D514831,0x2AE6A91B542BCB41,0x6331E413C6160479,0x408F8E8180D311A0, + 0xEFF35161C325503A,0xD06622F9BD9570D5,0x8876D9A20D4B8D49,0xA5533135573A0C8B, + 0xE168D364DF91C421,0xF41B09E7F50A2F8F,0x12B09B0F24C1A12D,0xDA49CC2CA9593DC4, + 0x1F5C34563E57A6BF,0x54D14F36A8568B82,0xAF7CDFE043F6419A,0xEA6A2685C943F8BC, + 0xE5DCBFB4D7E91D2B,0xB27ADDDE799D0520,0x6B443CAED6E6AB6D,0x7BAE91C9F61BE845, + 0x3EB868AC7CAE5163,0x11C7B65322E332A4,0xD23C1491B9A992D0,0x8FB5982E0311C7CA, + 0x70AC6428E0C9D4D8,0x895BC2960F55FCC5,0x76423E90EC8DEFD7,0x6FF0507EDE9E7267, + 0x3DCF45F07A8CC2EA,0x4AA06054941F5CB1,0x5810FB5BB0DEFD9C,0x5EFEA1E3BC9AC693, + 0x6EDD4B4ADC8003EB,0x741808F8E8B10DD2,0x145EC1B728859A22,0x28BC9F7350172944, + 0x270A06424EBDCCD3,0x972AEDF4331C2BF6,0x059977E40A66A886,0x2550302A4A812ED6, + 0xDD8A8DA0A7037747,0xC515F87A970E9B7B,0x3023EAA9601AC578,0xB7E3AA3A73FBADA6, + 0x0FB699311EAAE597,0x0000000000000000,0x310EF19D6204B4F4,0x229371A644DB6455, + 0x0DECAF591A960792,0x5CA4978BB8A62496,0x1C2B190A38753536,0x41A295B582CD602C, + 0x3279DCC16426277D,0xC1A194AA9F764271,0x139D803B26DFD0A1,0xAE51C4D441E83016, + 0xD813FA44AD65DFC1,0xAC0BF2BC45D4D213,0x23BE6A9246C515D9,0x49D74D08923DCF38, + 0x9D05032127D066E7,0x2F7FDEFF5E4D63C7,0xA47E2A0155247D07,0x99B16FF12FA8BFED, + 0x4661D4398C972AAF,0xDFD0BBC8A33F9542,0xDCA79694A51D06CB,0xB020EBB67DA1E725, + 0xBA0F0563696DAA34,0xE4F1A480D5F76CA7,0xC438E34E9510EAF7,0x939E81243B64F2FC, + 0x8DEFAE46072D25CF,0x2C08F3A3586FF04E,0xD7A56375B3CF3A56,0x20C947CE40E78650, + 0x43F8A3DD86F18229,0x568B795EAC6A6987,0x8003011F1DBB225D,0xF53612D3F7145E03, + 0x189F75DA300DEC3C,0x9570DB9C3720C9F3,0xBB221E576B73DBB8,0x72F65240E4F536DD, + 0x443BE25188ABC8AA,0xE21FFE38D9B357A8,0xFD43CA6EE7E4F117,0xCAA3614B89A47EEC, + 0xFE34E732E1C6629E,0x83742C431B99B1D4,0xCF3A16AF83C2D66A,0xAAE5A8044990E91C, + 0x26271D764CA3BD5F,0x91C4B74C3F5810F9,0x7C6DD045F841A2C6,0x7F1AFD19FE63314F, + 0xC8F957238D989CE9,0xA709075D5306EE8E,0x55FC5402AA48FA0E,0x48FA563C9023BEB4, + 0x65DFBEABCA523F76,0x6C877D22D8BCE1EE,0xCC4D3BF385E045E3,0xBEBB69B36115733E, + 0x10EAAD6720FD4328,0xB6CEB10E71E5DC2A,0xBDCC44EF6737E0B7,0x523F158EA412B08D, + 0x989C74C52DB6CE61,0x9BEB59992B945DE8,0x8A2CEFCA09776F4C,0xA3BD6B8D5B7E3784, + 0xEB473DB1CB5D8930,0xC3FBA2C29B4AA074,0x9C28181525CE176B,0x683311F2D0C438E4, + 0x5FD3BAD7BE84B71F,0xFC6ED15AE5FA809B,0x36CDB0116C5EFE77,0x29918447520958C8, + 0xA29070B959604608,0x53120EBAA60CC101,0x3A0C047C74D68869,0x691E0AC6D2DA4968, + 0x73DB4974E6EB4751,0x7A838AFDF40599C9,0x5A4ACD33B4E21F99,0x6046C94FC03497F0, + 0xE6AB92E8D1CB8EA2,0x3354C7F5663856F1,0xD93EE170AF7BAE4D,0x616BD27BC22AE67C, + 0x92B39A10397A8370,0xABC8B3304B8E9890,0xBF967287630B02B2,0x5B67D607B6FC6E15 +},{ + 0xD031C397CE553FE6,0x16BA5B01B006B525,0xA89BADE6296E70C8,0x6A1F525D77D3435B, + 0x6E103570573DFA0B,0x660EFB2A17FC95AB,0x76327A9E97634BF6,0x4BAD9D6462458BF5, + 0xF1830CAEDBC3F748,0xC5C8F542669131FF,0x95044A1CDC48B0CB,0x892962DF3CF8B866, + 0xB0B9E208E930C135,0xA14FB3F0611A767C,0x8D2605F21C160136,0xD6B71922FECC549E, + 0x37089438A5907D8B,0x0B5DA38E5803D49C,0x5A5BCC9CEA6F3CBC,0xEDAE246D3B73FFE5, + 0xD2B87E0FDE22EDCE,0x5E54ABB1CA8185EC,0x1DE7F88FE80561B9,0xAD5E1A870135A08C, + 0x2F2ADBD665CECC76,0x5780B5A782F58358,0x3EDC8A2EEDE47B3F,0xC9D95C3506BEE70F, + 0x83BE111D6C4E05EE,0xA603B90959367410,0x103C81B4809FDE5D,0x2C69B6027D0C774A, + 0x399080D7D5C87953,0x09D41E16487406B4,0xCDD63B1826505E5F,0xF99DC2F49B0298E8, + 0x9CD0540A943CB67F,0xBCA84B7F891F17C5,0x723D1DB3B78DF2A6,0x78AA6E71E73B4F2E, + 0x1433E699A071670D,0x84F21BE454620782,0x98DF3327B4D20F2F,0xF049DCE2D3769E5C, + 0xDB6C60199656EB7A,0x648746B2078B4783,0x32CD23598DCBADCF,0x1EA4955BF0C7DA85, + 0xE9A143401B9D46B5,0xFD92A5D9BBEC21B8,0xC8138C790E0B8E1B,0x2EE00B9A6D7BA562, + 0xF85712B893B7F1FC,0xEB28FED80BEA949D,0x564A65EB8A40EA4C,0x6C9988E8474A2823, + 0x4535898B121D8F2D,0xABD8C03231ACCBF4,0xBA2E91CAB9867CBD,0x7960BE3DEF8E263A, + 0x0C11A977602FD6F0,0xCB50E1AD16C93527,0xEAE22E94035FFD89,0x2866D12F5DE2CE1A, + 0xFF1B1841AB9BF390,0x9F9339DE8CFE0D43,0x964727C8C48A0BF7,0x524502C6AAAE531C, + 0x9B9C5EF3AC10B413,0x4FA2FA4942AB32A5,0x3F165A62E551122B,0xC74148DA76E6E3D7, + 0x924840E5E464B2A7,0xD372AE43D69784DA,0x233B72A105E11A86,0xA48A04914941A638, + 0xB4B68525C9DE7865,0xDDEABAACA6CF8002,0x0A9773C250B6BD88,0xC284FFBB5EBD3393, + 0x8BA0DF472C8F6A4E,0x2AEF6CB74D951C32,0x427983722A318D41,0x73F7CDFFBF389BB2, + 0x074C0AF9382C026C,0x8A6A0F0B243A035A,0x6FDAE53C5F88931F,0xC68B98967E538AC3, + 0x44FF59C71AA8E639,0xE2FCE0CE439E9229,0xA20CDE2479D8CD40,0x19E89FA2C8EBD8E9, + 0xF446BBCFF398270C,0x43B3533E2284E455,0xD82F0DCD8E945046,0x51066F12B26CE820, + 0xE73957AF6BC5426D,0x081ECE5A40C16FA0,0x3B193D4FC5BFAB7B,0x7FE66488DF174D42, + 0x0E9814EF705804D8,0x8137AC857C39D7C6,0xB1733244E185A821,0x695C3F896F11F867, + 0xF6CF0657E3EFF524,0x1AABF276D02963D5,0x2DA3664E75B91E5E,0x0289BD981077D228, + 0x90C1FD7DF413608F,0x3C5537B6FD93A917,0xAA12107E3919A2E0,0x0686DAB530996B78, + 0xDAA6B0559EE3826E,0xC34E2FF756085A87,0x6D5358A44FFF4137,0xFC587595B35948AC, + 0x7CA5095CC7D5F67E,0xFB147F6C8B754AC0,0xBFEB26AB91DDACF9,0x6896EFC567A49173, + 0xCA9A31E11E7C5C33,0xBBE44186B13315A9,0x0DDB793B689ABFE4,0x70B4A02BA7FA208E, + 0xE47A3A7B7307F951,0x8CECD5BE14A36822,0xEEED49B923B144D9,0x17708B4DB8B3DC31, + 0x6088219F2765FED3,0xB3FA8FDCF1F27A09,0x910B2D31FCA6099B,0x0F52C4A378ED6DCC, + 0x50CCBF5EBAD98134,0x6BD582117F662A4F,0x94CE9A50D4FDD9DF,0x2B25BCFB45207526, + 0x67C42B661F49FCBF,0x492420FC723259DD,0x03436DD418C2BB3C,0x1F6E4517F872B391, + 0xA08563BC69AF1F68,0xD43EA4BAEEBB86B6,0x01CAD04C08B56914,0xAC94CACB0980C998, + 0x54C3D8739A373864,0x26FEC5C02DBACAC2,0xDEA9D778BE0D3B3E,0x040F672D20EEB950, + 0xE5B0EA377BB29045,0xF30AB136CBB42560,0x62019C0737122CFB,0xE86B930C13282FA1, + 0xCC1CEB542EE5374B,0x538FD28AA21B3A08,0x1B61223AD89C0AC1,0x36C24474AD25149F, + 0x7A23D3E9F74C9D06,0xBE21F6E79968C5ED,0xCF5F868036278C77,0xF705D61BEB5A9C30, + 0x4D2B47D152DCE08D,0x5F9E7BFDC234ECF8,0x247778583DCD18EA,0x867BA67C4415D5AA, + 0x4CE1979D5A698999,0x0000000000000000,0xEC64F42133C696F1,0xB57C5569C16B1171, + 0xC1C7926F467F88AF,0x654D96FE0F3E2E97,0x15F936D5A8C40E19,0xB8A72C52A9F1AE95, + 0xA9517DAA21DB19DC,0x58D27104FA18EE94,0x5918A148F2AD8780,0x5CDD1629DAF657C4, + 0x8274C15164FB6CFA,0xD1FB13DBC6E056F2,0x7D6FD910CF609F6A,0xB63F38BDD9A9AA4D, + 0x3D9FE7FAF526C003,0x74BBC706871499DE,0xDF630734B6B8522A,0x3AD3ED03CD0AC26F, + 0xFADEAF2083C023D4,0xC00D42234ECAE1BB,0x8538CBA85CD76E96,0xC402250E6E2458EB, + 0x47BC3413026A5D05,0xAFD7A71F114272A4,0x978DF784CC3F62E3,0xB96DFC1EA144C781, + 0x21B2CF391596C8AE,0x318E4E8D950916F3,0xCE9556CC3E92E563,0x385A509BDD7D1047, + 0x358129A0B5E7AFA3,0xE6F387E363702B79,0xE0755D5653E94001,0x7BE903A5FFF9F412, + 0x12B53C2C90E80C75,0x3307F315857EC4DB,0x8FAFB86A0C61D31E,0xD9E5DD8186213952, + 0x77F8AAD29FD622E2,0x25BDA814357871FE,0x7571174A8FA1F0CA,0x137FEC60985D6561, + 0x30449EC19DBC7FE7,0xA540D4DD41F4CF2C,0xDC206AE0AE7AE916,0x5B911CD0E2DA55A8, + 0xB2305F90F947131D,0x344BF9ECBD52C6B7,0x5D17C665D2433ED0,0x18224FEEC05EB1FD, + 0x9E59E992844B6457,0x9A568EBFA4A5DD07,0xA3C60E68716DA454,0x7E2CB4C4D7A22456, + 0x87B176304CA0BCBE,0x413AEEA632F3367D,0x9915E36BBC67663B,0x40F03EEA3A465F69, + 0x1C2D28C3E0B008AD,0x4E682A054A1E5BB1,0x05C5B761285BD044,0xE1BF8D1A5B5C2915, + 0xF2C0617AC3014C74,0xB7F5E8F1D11CC359,0x63CB4C4B3FA745EF,0x9D1A84469C89DF6B, + 0xE33630824B2BFB3D,0xD5F474F6E60EEFA2,0xF58C6B83FB2D4E18,0x4676E45F0ADF3411, + 0x20781F751D23A1BA,0xBD629B3381AA7ED1,0xAE1D775319F71BB0,0xFED1C80DA32E9A84, + 0x5509083F92825170,0x29AC01635557A70E,0xA7C9694551831D04,0x8E65682604D4BA0A, + 0x11F651F8882AB749,0xD77DC96EF6793D8A,0xEF2799F52B042DCD,0x48EEF0B07A8730C9, + 0x22F1A2ED0D547392,0x6142F1D32FD097C7,0x4A674D286AF0E2E1,0x80FD7CC9748CBED2, + 0x717E7067AF4F499A,0x938290A9ECD1DBB3,0x88E3B293344DD172,0x2734158C250FA3D6 +}}; + +// Constant values for KeySchedule function +const unsigned char C[12][64] = {{ + 0xB1,0x08,0x5B,0xDA,0x1E,0xCA,0xDA,0xE9,0xEB,0xCB,0x2F,0x81,0xC0,0x65,0x7C,0x1F, + 0x2F,0x6A,0x76,0x43,0x2E,0x45,0xD0,0x16,0x71,0x4E,0xB8,0x8D,0x75,0x85,0xC4,0xFC, + 0x4B,0x7C,0xE0,0x91,0x92,0x67,0x69,0x01,0xA2,0x42,0x2A,0x08,0xA4,0x60,0xD3,0x15, + 0x05,0x76,0x74,0x36,0xCC,0x74,0x4D,0x23,0xDD,0x80,0x65,0x59,0xF2,0xA6,0x45,0x07 +},{ + 0x6F,0xA3,0xB5,0x8A,0xA9,0x9D,0x2F,0x1A,0x4F,0xE3,0x9D,0x46,0x0F,0x70,0xB5,0xD7, + 0xF3,0xFE,0xEA,0x72,0x0A,0x23,0x2B,0x98,0x61,0xD5,0x5E,0x0F,0x16,0xB5,0x01,0x31, + 0x9A,0xB5,0x17,0x6B,0x12,0xD6,0x99,0x58,0x5C,0xB5,0x61,0xC2,0xDB,0x0A,0xA7,0xCA, + 0x55,0xDD,0xA2,0x1B,0xD7,0xCB,0xCD,0x56,0xE6,0x79,0x04,0x70,0x21,0xB1,0x9B,0xB7 +},{ + 0xF5,0x74,0xDC,0xAC,0x2B,0xCE,0x2F,0xC7,0x0A,0x39,0xFC,0x28,0x6A,0x3D,0x84,0x35, + 0x06,0xF1,0x5E,0x5F,0x52,0x9C,0x1F,0x8B,0xF2,0xEA,0x75,0x14,0xB1,0x29,0x7B,0x7B, + 0xD3,0xE2,0x0F,0xE4,0x90,0x35,0x9E,0xB1,0xC1,0xC9,0x3A,0x37,0x60,0x62,0xDB,0x09, + 0xC2,0xB6,0xF4,0x43,0x86,0x7A,0xDB,0x31,0x99,0x1E,0x96,0xF5,0x0A,0xBA,0x0A,0xB2 +},{ + 0xEF,0x1F,0xDF,0xB3,0xE8,0x15,0x66,0xD2,0xF9,0x48,0xE1,0xA0,0x5D,0x71,0xE4,0xDD, + 0x48,0x8E,0x85,0x7E,0x33,0x5C,0x3C,0x7D,0x9D,0x72,0x1C,0xAD,0x68,0x5E,0x35,0x3F, + 0xA9,0xD7,0x2C,0x82,0xED,0x03,0xD6,0x75,0xD8,0xB7,0x13,0x33,0x93,0x52,0x03,0xBE, + 0x34,0x53,0xEA,0xA1,0x93,0xE8,0x37,0xF1,0x22,0x0C,0xBE,0xBC,0x84,0xE3,0xD1,0x2E +},{ + 0x4B,0xEA,0x6B,0xAC,0xAD,0x47,0x47,0x99,0x9A,0x3F,0x41,0x0C,0x6C,0xA9,0x23,0x63, + 0x7F,0x15,0x1C,0x1F,0x16,0x86,0x10,0x4A,0x35,0x9E,0x35,0xD7,0x80,0x0F,0xFF,0xBD, + 0xBF,0xCD,0x17,0x47,0x25,0x3A,0xF5,0xA3,0xDF,0xFF,0x00,0xB7,0x23,0x27,0x1A,0x16, + 0x7A,0x56,0xA2,0x7E,0xA9,0xEA,0x63,0xF5,0x60,0x17,0x58,0xFD,0x7C,0x6C,0xFE,0x57 +},{ + 0xAE,0x4F,0xAE,0xAE,0x1D,0x3A,0xD3,0xD9,0x6F,0xA4,0xC3,0x3B,0x7A,0x30,0x39,0xC0, + 0x2D,0x66,0xC4,0xF9,0x51,0x42,0xA4,0x6C,0x18,0x7F,0x9A,0xB4,0x9A,0xF0,0x8E,0xC6, + 0xCF,0xFA,0xA6,0xB7,0x1C,0x9A,0xB7,0xB4,0x0A,0xF2,0x1F,0x66,0xC2,0xBE,0xC6,0xB6, + 0xBF,0x71,0xC5,0x72,0x36,0x90,0x4F,0x35,0xFA,0x68,0x40,0x7A,0x46,0x64,0x7D,0x6E +},{ + 0xF4,0xC7,0x0E,0x16,0xEE,0xAA,0xC5,0xEC,0x51,0xAC,0x86,0xFE,0xBF,0x24,0x09,0x54, + 0x39,0x9E,0xC6,0xC7,0xE6,0xBF,0x87,0xC9,0xD3,0x47,0x3E,0x33,0x19,0x7A,0x93,0xC9, + 0x09,0x92,0xAB,0xC5,0x2D,0x82,0x2C,0x37,0x06,0x47,0x69,0x83,0x28,0x4A,0x05,0x04, + 0x35,0x17,0x45,0x4C,0xA2,0x3C,0x4A,0xF3,0x88,0x86,0x56,0x4D,0x3A,0x14,0xD4,0x93 +},{ + 0x9B,0x1F,0x5B,0x42,0x4D,0x93,0xC9,0xA7,0x03,0xE7,0xAA,0x02,0x0C,0x6E,0x41,0x41, + 0x4E,0xB7,0xF8,0x71,0x9C,0x36,0xDE,0x1E,0x89,0xB4,0x44,0x3B,0x4D,0xDB,0xC4,0x9A, + 0xF4,0x89,0x2B,0xCB,0x92,0x9B,0x06,0x90,0x69,0xD1,0x8D,0x2B,0xD1,0xA5,0xC4,0x2F, + 0x36,0xAC,0xC2,0x35,0x59,0x51,0xA8,0xD9,0xA4,0x7F,0x0D,0xD4,0xBF,0x02,0xE7,0x1E +},{ + 0x37,0x8F,0x5A,0x54,0x16,0x31,0x22,0x9B,0x94,0x4C,0x9A,0xD8,0xEC,0x16,0x5F,0xDE, + 0x3A,0x7D,0x3A,0x1B,0x25,0x89,0x42,0x24,0x3C,0xD9,0x55,0xB7,0xE0,0x0D,0x09,0x84, + 0x80,0x0A,0x44,0x0B,0xDB,0xB2,0xCE,0xB1,0x7B,0x2B,0x8A,0x9A,0xA6,0x07,0x9C,0x54, + 0x0E,0x38,0xDC,0x92,0xCB,0x1F,0x2A,0x60,0x72,0x61,0x44,0x51,0x83,0x23,0x5A,0xDB +},{ + 0xAB,0xBE,0xDE,0xA6,0x80,0x05,0x6F,0x52,0x38,0x2A,0xE5,0x48,0xB2,0xE4,0xF3,0xF3, + 0x89,0x41,0xE7,0x1C,0xFF,0x8A,0x78,0xDB,0x1F,0xFF,0xE1,0x8A,0x1B,0x33,0x61,0x03, + 0x9F,0xE7,0x67,0x02,0xAF,0x69,0x33,0x4B,0x7A,0x1E,0x6C,0x30,0x3B,0x76,0x52,0xF4, + 0x36,0x98,0xFA,0xD1,0x15,0x3B,0xB6,0xC3,0x74,0xB4,0xC7,0xFB,0x98,0x45,0x9C,0xED +},{ + 0x7B,0xCD,0x9E,0xD0,0xEF,0xC8,0x89,0xFB,0x30,0x02,0xC6,0xCD,0x63,0x5A,0xFE,0x94, + 0xD8,0xFA,0x6B,0xBB,0xEB,0xAB,0x07,0x61,0x20,0x01,0x80,0x21,0x14,0x84,0x66,0x79, + 0x8A,0x1D,0x71,0xEF,0xEA,0x48,0xB9,0xCA,0xEF,0xBA,0xCD,0x1D,0x7D,0x47,0x6E,0x98, + 0xDE,0xA2,0x59,0x4A,0xC0,0x6F,0xD8,0x5D,0x6B,0xCA,0xA4,0xCD,0x81,0xF3,0x2D,0x1B +},{ + 0x37,0x8E,0xE7,0x67,0xF1,0x16,0x31,0xBA,0xD2,0x13,0x80,0xB0,0x04,0x49,0xB1,0x7A, + 0xCD,0xA4,0x3C,0x32,0xBC,0xDF,0x1D,0x77,0xF8,0x20,0x12,0xD4,0x30,0x21,0x9F,0x9B, + 0x5D,0x80,0xEF,0x9D,0x18,0x91,0xCC,0x86,0xE7,0x1D,0xA4,0xAA,0x88,0xE1,0x28,0x52, + 0xFA,0xF4,0x17,0xD5,0xD9,0xB2,0x1B,0x99,0x48,0xBC,0x92,0x4A,0xF1,0x1B,0xD7,0x20 +}}; + + +static void AddModulo512(const void *a,const void *b,void *c) +{ + const unsigned char *A=a, *B=b; + unsigned char *C=c; + int t = 0; +#ifdef FULL_UNROLL +#define ADDBYTE_8(i) t = A[i] + B[i] + (t >> 8); C[i] = t & 0xFF; + + ADDBYTE_8(63) + ADDBYTE_8(62) + ADDBYTE_8(61) + ADDBYTE_8(60) + ADDBYTE_8(59) + ADDBYTE_8(58) + ADDBYTE_8(57) + ADDBYTE_8(56) + ADDBYTE_8(55) + ADDBYTE_8(54) + ADDBYTE_8(53) + ADDBYTE_8(52) + ADDBYTE_8(51) + ADDBYTE_8(50) + ADDBYTE_8(49) + ADDBYTE_8(48) + ADDBYTE_8(47) + ADDBYTE_8(46) + ADDBYTE_8(45) + ADDBYTE_8(44) + ADDBYTE_8(43) + ADDBYTE_8(42) + ADDBYTE_8(41) + ADDBYTE_8(40) + ADDBYTE_8(39) + ADDBYTE_8(38) + ADDBYTE_8(37) + ADDBYTE_8(36) + ADDBYTE_8(35) + ADDBYTE_8(34) + ADDBYTE_8(33) + ADDBYTE_8(32) + ADDBYTE_8(31) + ADDBYTE_8(30) + ADDBYTE_8(29) + ADDBYTE_8(28) + ADDBYTE_8(27) + ADDBYTE_8(26) + ADDBYTE_8(25) + ADDBYTE_8(24) + ADDBYTE_8(23) + ADDBYTE_8(22) + ADDBYTE_8(21) + ADDBYTE_8(20) + ADDBYTE_8(19) + ADDBYTE_8(18) + ADDBYTE_8(17) + ADDBYTE_8(16) + ADDBYTE_8(15) + ADDBYTE_8(14) + ADDBYTE_8(13) + ADDBYTE_8(12) + ADDBYTE_8(11) + ADDBYTE_8(10) + ADDBYTE_8(9) + ADDBYTE_8(8) + ADDBYTE_8(7) + ADDBYTE_8(6) + ADDBYTE_8(5) + ADDBYTE_8(4) + ADDBYTE_8(3) + ADDBYTE_8(2) + ADDBYTE_8(1) + ADDBYTE_8(0) + +#else + int i = 0; + + for(i=63;i>=0;i--) + { + t = A[i] + B[i] + (t >> 8); + C[i] = t & 0xFF; + } +#endif +} + +static void AddXor512(const void *a,const void *b,void *c) +{ + const unsigned long long *A=a, *B=b; + unsigned long long *C=c; +#ifdef FULL_UNROLL + C[0] = A[0] ^ B[0]; + C[1] = A[1] ^ B[1]; + C[2] = A[2] ^ B[2]; + C[3] = A[3] ^ B[3]; + C[4] = A[4] ^ B[4]; + C[5] = A[5] ^ B[5]; + C[6] = A[6] ^ B[6]; + C[7] = A[7] ^ B[7]; +#else + int i = 0; + + for(i=0; i<8; i++) { + C[i] = A[i] ^ B[i]; + } +#endif +} + +static void F(unsigned char *state) +{ + unsigned long long return_state[8]; + register unsigned long long r = 0; + r ^= TG[0][state[56]]; + r ^= TG[1][state[48]]; + r ^= TG[2][state[40]]; + r ^= TG[3][state[32]]; + r ^= TG[4][state[24]]; + r ^= TG[5][state[16]]; + r ^= TG[6][state[8]]; + r ^= TG[7][state[0]]; + return_state[0] = r; + r = 0; + + r ^= TG[0][state[57]]; + r ^= TG[1][state[49]]; + r ^= TG[2][state[41]]; + r ^= TG[3][state[33]]; + r ^= TG[4][state[25]]; + r ^= TG[5][state[17]]; + r ^= TG[6][state[9]]; + r ^= TG[7][state[1]]; + return_state[1] = r; + r = 0; + + r ^= TG[0][state[58]]; + r ^= TG[1][state[50]]; + r ^= TG[2][state[42]]; + r ^= TG[3][state[34]]; + r ^= TG[4][state[26]]; + r ^= TG[5][state[18]]; + r ^= TG[6][state[10]]; + r ^= TG[7][state[2]]; + return_state[2] = r; + r = 0; + + r ^= TG[0][state[59]]; + r ^= TG[1][state[51]]; + r ^= TG[2][state[43]]; + r ^= TG[3][state[35]]; + r ^= TG[4][state[27]]; + r ^= TG[5][state[19]]; + r ^= TG[6][state[11]]; + r ^= TG[7][state[3]]; + return_state[3] = r; + r = 0; + + r ^= TG[0][state[60]]; + r ^= TG[1][state[52]]; + r ^= TG[2][state[44]]; + r ^= TG[3][state[36]]; + r ^= TG[4][state[28]]; + r ^= TG[5][state[20]]; + r ^= TG[6][state[12]]; + r ^= TG[7][state[4]]; + return_state[4] = r; + r = 0; + + r ^= TG[0][state[61]]; + r ^= TG[1][state[53]]; + r ^= TG[2][state[45]]; + r ^= TG[3][state[37]]; + r ^= TG[4][state[29]]; + r ^= TG[5][state[21]]; + r ^= TG[6][state[13]]; + r ^= TG[7][state[5]]; + return_state[5] = r; + r = 0; + + r ^= TG[0][state[62]]; + r ^= TG[1][state[54]]; + r ^= TG[2][state[46]]; + r ^= TG[3][state[38]]; + r ^= TG[4][state[30]]; + r ^= TG[5][state[22]]; + r ^= TG[6][state[14]]; + r ^= TG[7][state[6]]; + return_state[6] = r; + r = 0; + + r ^= TG[0][state[63]]; + r ^= TG[1][state[55]]; + r ^= TG[2][state[47]]; + r ^= TG[3][state[39]]; + r ^= TG[4][state[31]]; + r ^= TG[5][state[23]]; + r ^= TG[6][state[15]]; + r ^= TG[7][state[7]]; + return_state[7] = r; + + memcpy(state,(unsigned char*)return_state,64); +} + +#define KeySchedule(K,i) AddXor512(K,C[i],K); F(K); + +static void E(unsigned char *K,const unsigned char *m, unsigned char *state) +{ +#ifdef FULL_UNROLL + AddXor512(m,K,state); + + F(state); + KeySchedule(K,0); + AddXor512(state,K,state); + + F(state); + KeySchedule(K,1); + AddXor512(state,K,state); + + F(state); + KeySchedule(K,2); + AddXor512(state,K,state); + + F(state); + KeySchedule(K,3); + AddXor512(state,K,state); + + F(state); + KeySchedule(K,4); + AddXor512(state,K,state); + + F(state); + KeySchedule(K,5); + AddXor512(state,K,state); + + F(state); + KeySchedule(K,6); + AddXor512(state,K,state); + + F(state); + KeySchedule(K,7); + AddXor512(state,K,state); + + F(state); + KeySchedule(K,8); + AddXor512(state,K,state); + + F(state); + KeySchedule(K,9); + AddXor512(state,K,state); + + F(state); + KeySchedule(K,10); + AddXor512(state,K,state); + + F(state); + KeySchedule(K,11); + AddXor512(state,K,state); +#else + int i = 0; + + AddXor512(m,K,state); + + for(i=0;i<12;i++) { + F(state); + KeySchedule(K,i); + AddXor512(state,K,state); + } +#endif +} + +static void g_N(const unsigned char *N,unsigned char *h,const unsigned char *m) +{ + unsigned char t[64], K[64]; + + AddXor512(N,h,K); + + F(K); + + E(K,m,t); + + AddXor512(t,h,t); + AddXor512(t,m,h); +} + +static void hash_X(unsigned char *IV,const unsigned char *message,unsigned long long length,unsigned char *out) +{ + unsigned char v512[64] = { + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x02,0x00 + }; + unsigned char v0[64] = { + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 + }; + unsigned char Sigma[64] = { + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 + }; + unsigned char N[64] = { + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 + }; + unsigned char m[64], *hash = IV; + unsigned long long len = length; + + // Stage 2 + while (len >= 512) + { + memcpy(m, message + len/8 - 63 - ( (len & 0x7) == 0 ), 64); + + g_N(N,hash,m); + AddModulo512(N,v512,N); + AddModulo512(Sigma,m,Sigma); + len -= 512; + } + + memset(m,0,64); + memcpy(m + 63 - len/8 + ( (len & 0x7) == 0 ), message, len/8 + 1 - ( (len & 0x7) == 0 )); + + // Stage 3 + m[ 63 - len/8 ] |= (1 << (len & 0x7)); + + g_N(N,hash,m); + v512[63] = len & 0xFF; + v512[62] = (unsigned char) (len >> 8); + AddModulo512(N,v512,N); + + AddModulo512(Sigma,m,Sigma); + + g_N(v0,hash,N); + g_N(v0,hash,Sigma); + + memcpy(out, hash, 64); +} + +static void hash_512(const unsigned char *message, unsigned long long length, unsigned char *out) +{ + unsigned char IV[64] = { + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 + }; + + hash_X(IV,message,length,out); +} + +static void hash_256(const unsigned char *message, unsigned long long length, unsigned char *out) +{ + unsigned char IV[64] = { + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01, + 0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01,0x01 + }; + unsigned char hash[64]; + + hash_X(IV,message,length,hash); + + memcpy(out,hash,32); +} + + +/* exported functions, to rename (streebog) */ + + +void sph_gost256_init(void *cc) +{ +} + +void sph_gost256(void *cc, const void *data, size_t len) +{ + hash_256(data, 8*len, cc); +} + +void sph_gost256_close(void *cc, void *dst) +{ + memcpy(dst, cc, 32); +} + +void sph_gost256_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst) +{ +} + +void sph_gost512_init(void *cc) +{ +} + +void sph_gost512(void *cc, const void *data, size_t len) +{ + hash_512(data, 8*len, cc); +} + +void sph_gost512_close(void *cc, void *dst) +{ + memcpy(dst, cc, 64); +} + +void sph_gost512_addbits_and_close(void *cc, unsigned ub, unsigned n, void *dst) +{ +} + + +#ifdef __cplusplus +} +#endif diff --git a/src/crypto/gost_streebog.h b/src/crypto/gost_streebog.h new file mode 100644 index 00000000..7a0cf4ca --- /dev/null +++ b/src/crypto/gost_streebog.h @@ -0,0 +1,185 @@ +/* $Id: sph_gost.h 216 2010-06-08 09:46:57Z tp $ */ +/** + * GOST interface. This is the interface for GOST R 12 with the + * recommended parameters for SHA-3, with output lengths 256 + * and 512 bits. + * + * ==========================(LICENSE BEGIN)============================ + * + * Copyright (c) 2007-2010 Projet RNRT SAPHIR + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * ===========================(LICENSE END)============================= + * + * @file sph_gost.h + * @author Mish + */ + +#ifndef BITCORE_CRYPTO_GOST_STREEBOG_H +#define BITCORE_CRYPTO_GOST_STREEBOG_H + +#ifdef __cplusplus +extern "C"{ +#endif + +#include +#include + +/** + * Output size (in bits) for GOST-256. + */ +#define SPH_SIZE_gost256 256 + +/** + * Output size (in bits) for GOST-512. + */ +#define SPH_SIZE_gost512 512 + +/** + * This structure is a context for Keccak computations: it contains the + * intermediate values and some data from the last entered block. Once a + * GOST computation has been performed, the context can be reused for + * another computation. + * + * The contents of this structure are private. A running GOST computation + * can be cloned by copying the context (e.g. with a simple + * memcpy()). + */ + +/** + * This structure is a context for Gost-256 computations. + */ + +typedef struct { +#ifndef DOXYGEN_IGNORE + unsigned char buf[32]; /* first field, for alignment */ + size_t ptr; + sph_u32 V[3][8]; +#endif +} sph_gost256_context; + +/** + * This structure is a context for Gost-512 computations. + */ +typedef struct { +#ifndef DOXYGEN_IGNORE + unsigned char buf[64]; /* first field, for alignment */ + size_t ptr; + sph_u32 V[5][8]; +#endif +} sph_gost512_context; + + +/** + * Initialize a GOST-256 context. This process performs no memory allocation. + * + * @param cc the GOST-256 context (pointer to a + * sph_gost256_context) + */ +void sph_gost256_init(void *cc); + +/** + * Process some data bytes. It is acceptable that len is zero + * (in which case this function does nothing). + * + * @param cc the Gost-256 context + * @param data the input data + * @param len the input data length (in bytes) + */ +void sph_gost256(void *cc, const void *data, size_t len); + +/** + * Terminate the current GOST-256 computation and output the result into + * the provided buffer. The destination buffer must be wide enough to + * accomodate the result (32 bytes). The context is automatically + * reinitialized. + * + * @param cc the GOST-256 context + * @param dst the destination buffer + */ +void sph_gost256_close(void *cc, void *dst); + +/** + * Add a few additional bits (0 to 7) to the current computation, then + * terminate it and output the result in the provided buffer, which must + * be wide enough to accomodate the result (32 bytes). If bit number i + * in ub has value 2^i, then the extra bits are those + * numbered 7 downto 8-n (this is the big-endian convention at the byte + * level). The context is automatically reinitialized. + * + * @param cc the GOST-256 context + * @param ub the extra bits + * @param n the number of extra bits (0 to 7) + * @param dst the destination buffer + */ +void sph_gost256_addbits_and_close( + void *cc, unsigned ub, unsigned n, void *dst); + +/** + * Initialize a Gost-512 context. This process performs no memory allocation. + * + * @param cc the GOST-512 context (pointer to a + * sph_gost512_context) + */ +void sph_gost512_init(void *cc); + +/** + * Process some data bytes. It is acceptable that len is zero + * (in which case this function does nothing). + * + * @param cc the GOST-512 context + * @param data the input data + * @param len the input data length (in bytes) + */ +void sph_gost512(void *cc, const void *data, size_t len); + +/** + * Terminate the current GOST-512 computation and output the result into + * the provided buffer. The destination buffer must be wide enough to + * accomodate the result (64 bytes). The context is automatically + * reinitialized. + * + * @param cc the GOST-512 context + * @param dst the destination buffer + */ +void sph_gost512_close(void *cc, void *dst); + +/** + * Add a few additional bits (0 to 7) to the current computation, then + * terminate it and output the result in the provided buffer, which must + * be wide enough to accomodate the result (64 bytes). If bit number i + * in ub has value 2^i, then the extra bits are those + * numbered 7 downto 8-n (this is the big-endian convention at the byte + * level). The context is automatically reinitialized. + * + * @param cc the GOST-512 context + * @param ub the extra bits + * @param n the number of extra bits (0 to 7) + * @param dst the destination buffer + */ +void sph_gost512_addbits_and_close( + void *cc, unsigned ub, unsigned n, void *dst); + +#ifdef __cplusplus +} +#endif + +#endif // BITCORE_CRYPTO_GOST_STREEBOG_H diff --git a/src/crypto/haval.c b/src/crypto/haval.c new file mode 100644 index 00000000..4d278001 --- /dev/null +++ b/src/crypto/haval.c @@ -0,0 +1,983 @@ +/* $Id: haval.c 227 2010-06-16 17:28:38Z tp $ */ +/* + * HAVAL implementation. + * + * The HAVAL reference paper is of questionable clarity with regards to + * some details such as endianness of bits within a byte, bytes within + * a 32-bit word, or the actual ordering of words within a stream of + * words. This implementation has been made compatible with the reference + * implementation available on: http://labs.calyptix.com/haval.php + * + * ==========================(LICENSE BEGIN)============================ + * + * Copyright (c) 2007-2010 Projet RNRT SAPHIR + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * ===========================(LICENSE END)============================= + * + * @author Thomas Pornin + */ + +#include +#include + +#include + +#ifdef __cplusplus +extern "C"{ +#endif + +#if SPH_SMALL_FOOTPRINT && !defined SPH_SMALL_FOOTPRINT_HAVAL +#define SPH_SMALL_FOOTPRINT_HAVAL 1 +#endif + +/* + * Basic definition from the reference paper. + * +#define F1(x6, x5, x4, x3, x2, x1, x0) \ + (((x1) & (x4)) ^ ((x2) & (x5)) ^ ((x3) & (x6)) ^ ((x0) & (x1)) ^ (x0)) + * + */ + +#define F1(x6, x5, x4, x3, x2, x1, x0) \ + (((x1) & ((x0) ^ (x4))) ^ ((x2) & (x5)) ^ ((x3) & (x6)) ^ (x0)) + +/* + * Basic definition from the reference paper. + * +#define F2(x6, x5, x4, x3, x2, x1, x0) \ + (((x1) & (x2) & (x3)) ^ ((x2) & (x4) & (x5)) ^ ((x1) & (x2)) \ + ^ ((x1) & (x4)) ^ ((x2) & (x6)) ^ ((x3) & (x5)) \ + ^ ((x4) & (x5)) ^ ((x0) & (x2)) ^ (x0)) + * + */ + +#define F2(x6, x5, x4, x3, x2, x1, x0) \ + (((x2) & (((x1) & ~(x3)) ^ ((x4) & (x5)) ^ (x6) ^ (x0))) \ + ^ ((x4) & ((x1) ^ (x5))) ^ ((x3 & (x5)) ^ (x0))) + +/* + * Basic definition from the reference paper. + * +#define F3(x6, x5, x4, x3, x2, x1, x0) \ + (((x1) & (x2) & (x3)) ^ ((x1) & (x4)) ^ ((x2) & (x5)) \ + ^ ((x3) & (x6)) ^ ((x0) & (x3)) ^ (x0)) + * + */ + +#define F3(x6, x5, x4, x3, x2, x1, x0) \ + (((x3) & (((x1) & (x2)) ^ (x6) ^ (x0))) \ + ^ ((x1) & (x4)) ^ ((x2) & (x5)) ^ (x0)) + +/* + * Basic definition from the reference paper. + * +#define F4(x6, x5, x4, x3, x2, x1, x0) \ + (((x1) & (x2) & (x3)) ^ ((x2) & (x4) & (x5)) ^ ((x3) & (x4) & (x6)) \ + ^ ((x1) & (x4)) ^ ((x2) & (x6)) ^ ((x3) & (x4)) ^ ((x3) & (x5)) \ + ^ ((x3) & (x6)) ^ ((x4) & (x5)) ^ ((x4) & (x6)) ^ ((x0) & (x4)) ^ (x0)) + * + */ + +#define F4(x6, x5, x4, x3, x2, x1, x0) \ + (((x3) & (((x1) & (x2)) ^ ((x4) | (x6)) ^ (x5))) \ + ^ ((x4) & ((~(x2) & (x5)) ^ (x1) ^ (x6) ^ (x0))) \ + ^ ((x2) & (x6)) ^ (x0)) + +/* + * Basic definition from the reference paper. + * +#define F5(x6, x5, x4, x3, x2, x1, x0) \ + (((x1) & (x4)) ^ ((x2) & (x5)) ^ ((x3) & (x6)) \ + ^ ((x0) & (x1) & (x2) & (x3)) ^ ((x0) & (x5)) ^ (x0)) + * + */ + +#define F5(x6, x5, x4, x3, x2, x1, x0) \ + (((x0) & ~(((x1) & (x2) & (x3)) ^ (x5))) \ + ^ ((x1) & (x4)) ^ ((x2) & (x5)) ^ ((x3) & (x6))) + +/* + * The macros below integrate the phi() permutations, depending on the + * pass and the total number of passes. + */ + +#define FP3_1(x6, x5, x4, x3, x2, x1, x0) \ + F1(x1, x0, x3, x5, x6, x2, x4) +#define FP3_2(x6, x5, x4, x3, x2, x1, x0) \ + F2(x4, x2, x1, x0, x5, x3, x6) +#define FP3_3(x6, x5, x4, x3, x2, x1, x0) \ + F3(x6, x1, x2, x3, x4, x5, x0) + +#define FP4_1(x6, x5, x4, x3, x2, x1, x0) \ + F1(x2, x6, x1, x4, x5, x3, x0) +#define FP4_2(x6, x5, x4, x3, x2, x1, x0) \ + F2(x3, x5, x2, x0, x1, x6, x4) +#define FP4_3(x6, x5, x4, x3, x2, x1, x0) \ + F3(x1, x4, x3, x6, x0, x2, x5) +#define FP4_4(x6, x5, x4, x3, x2, x1, x0) \ + F4(x6, x4, x0, x5, x2, x1, x3) + +#define FP5_1(x6, x5, x4, x3, x2, x1, x0) \ + F1(x3, x4, x1, x0, x5, x2, x6) +#define FP5_2(x6, x5, x4, x3, x2, x1, x0) \ + F2(x6, x2, x1, x0, x3, x4, x5) +#define FP5_3(x6, x5, x4, x3, x2, x1, x0) \ + F3(x2, x6, x0, x4, x3, x1, x5) +#define FP5_4(x6, x5, x4, x3, x2, x1, x0) \ + F4(x1, x5, x3, x2, x0, x4, x6) +#define FP5_5(x6, x5, x4, x3, x2, x1, x0) \ + F5(x2, x5, x0, x6, x4, x3, x1) + +/* + * One step, for "n" passes, pass number "p" (1 <= p <= n), using + * input word number "w" and step constant "c". + */ +#define STEP(n, p, x7, x6, x5, x4, x3, x2, x1, x0, w, c) do { \ + sph_u32 t = FP ## n ## _ ## p(x6, x5, x4, x3, x2, x1, x0); \ + (x7) = SPH_T32(SPH_ROTR32(t, 7) + SPH_ROTR32((x7), 11) \ + + (w) + (c)); \ + } while (0) + +/* + * PASSy(n, in) computes pass number "y", for a total of "n", using the + * one-argument macro "in" to access input words. Current state is assumed + * to be held in variables "s0" to "s7". + */ + +#if SPH_SMALL_FOOTPRINT_HAVAL + +#define PASS1(n, in) do { \ + unsigned pass_count; \ + for (pass_count = 0; pass_count < 32; pass_count += 8) { \ + STEP(n, 1, s7, s6, s5, s4, s3, s2, s1, s0, \ + in(pass_count + 0), SPH_C32(0x00000000)); \ + STEP(n, 1, s6, s5, s4, s3, s2, s1, s0, s7, \ + in(pass_count + 1), SPH_C32(0x00000000)); \ + STEP(n, 1, s5, s4, s3, s2, s1, s0, s7, s6, \ + in(pass_count + 2), SPH_C32(0x00000000)); \ + STEP(n, 1, s4, s3, s2, s1, s0, s7, s6, s5, \ + in(pass_count + 3), SPH_C32(0x00000000)); \ + STEP(n, 1, s3, s2, s1, s0, s7, s6, s5, s4, \ + in(pass_count + 4), SPH_C32(0x00000000)); \ + STEP(n, 1, s2, s1, s0, s7, s6, s5, s4, s3, \ + in(pass_count + 5), SPH_C32(0x00000000)); \ + STEP(n, 1, s1, s0, s7, s6, s5, s4, s3, s2, \ + in(pass_count + 6), SPH_C32(0x00000000)); \ + STEP(n, 1, s0, s7, s6, s5, s4, s3, s2, s1, \ + in(pass_count + 7), SPH_C32(0x00000000)); \ + } \ + } while (0) + +#define PASSG(p, n, in) do { \ + unsigned pass_count; \ + for (pass_count = 0; pass_count < 32; pass_count += 8) { \ + STEP(n, p, s7, s6, s5, s4, s3, s2, s1, s0, \ + in(MP ## p[pass_count + 0]), \ + RK ## p[pass_count + 0]); \ + STEP(n, p, s6, s5, s4, s3, s2, s1, s0, s7, \ + in(MP ## p[pass_count + 1]), \ + RK ## p[pass_count + 1]); \ + STEP(n, p, s5, s4, s3, s2, s1, s0, s7, s6, \ + in(MP ## p[pass_count + 2]), \ + RK ## p[pass_count + 2]); \ + STEP(n, p, s4, s3, s2, s1, s0, s7, s6, s5, \ + in(MP ## p[pass_count + 3]), \ + RK ## p[pass_count + 3]); \ + STEP(n, p, s3, s2, s1, s0, s7, s6, s5, s4, \ + in(MP ## p[pass_count + 4]), \ + RK ## p[pass_count + 4]); \ + STEP(n, p, s2, s1, s0, s7, s6, s5, s4, s3, \ + in(MP ## p[pass_count + 5]), \ + RK ## p[pass_count + 5]); \ + STEP(n, p, s1, s0, s7, s6, s5, s4, s3, s2, \ + in(MP ## p[pass_count + 6]), \ + RK ## p[pass_count + 6]); \ + STEP(n, p, s0, s7, s6, s5, s4, s3, s2, s1, \ + in(MP ## p[pass_count + 7]), \ + RK ## p[pass_count + 7]); \ + } \ + } while (0) + +#define PASS2(n, in) PASSG(2, n, in) +#define PASS3(n, in) PASSG(3, n, in) +#define PASS4(n, in) PASSG(4, n, in) +#define PASS5(n, in) PASSG(5, n, in) + +static const unsigned MP2[32] = { + 5, 14, 26, 18, 11, 28, 7, 16, + 0, 23, 20, 22, 1, 10, 4, 8, + 30, 3, 21, 9, 17, 24, 29, 6, + 19, 12, 15, 13, 2, 25, 31, 27 +}; + +static const unsigned MP3[32] = { + 19, 9, 4, 20, 28, 17, 8, 22, + 29, 14, 25, 12, 24, 30, 16, 26, + 31, 15, 7, 3, 1, 0, 18, 27, + 13, 6, 21, 10, 23, 11, 5, 2 +}; + +static const unsigned MP4[32] = { + 24, 4, 0, 14, 2, 7, 28, 23, + 26, 6, 30, 20, 18, 25, 19, 3, + 22, 11, 31, 21, 8, 27, 12, 9, + 1, 29, 5, 15, 17, 10, 16, 13 +}; + +static const unsigned MP5[32] = { + 27, 3, 21, 26, 17, 11, 20, 29, + 19, 0, 12, 7, 13, 8, 31, 10, + 5, 9, 14, 30, 18, 6, 28, 24, + 2, 23, 16, 22, 4, 1, 25, 15 +}; + +static const sph_u32 RK2[32] = { + SPH_C32(0x452821E6), SPH_C32(0x38D01377), + SPH_C32(0xBE5466CF), SPH_C32(0x34E90C6C), + SPH_C32(0xC0AC29B7), SPH_C32(0xC97C50DD), + SPH_C32(0x3F84D5B5), SPH_C32(0xB5470917), + SPH_C32(0x9216D5D9), SPH_C32(0x8979FB1B), + SPH_C32(0xD1310BA6), SPH_C32(0x98DFB5AC), + SPH_C32(0x2FFD72DB), SPH_C32(0xD01ADFB7), + SPH_C32(0xB8E1AFED), SPH_C32(0x6A267E96), + SPH_C32(0xBA7C9045), SPH_C32(0xF12C7F99), + SPH_C32(0x24A19947), SPH_C32(0xB3916CF7), + SPH_C32(0x0801F2E2), SPH_C32(0x858EFC16), + SPH_C32(0x636920D8), SPH_C32(0x71574E69), + SPH_C32(0xA458FEA3), SPH_C32(0xF4933D7E), + SPH_C32(0x0D95748F), SPH_C32(0x728EB658), + SPH_C32(0x718BCD58), SPH_C32(0x82154AEE), + SPH_C32(0x7B54A41D), SPH_C32(0xC25A59B5) +}; + +static const sph_u32 RK3[32] = { + SPH_C32(0x9C30D539), SPH_C32(0x2AF26013), + SPH_C32(0xC5D1B023), SPH_C32(0x286085F0), + SPH_C32(0xCA417918), SPH_C32(0xB8DB38EF), + SPH_C32(0x8E79DCB0), SPH_C32(0x603A180E), + SPH_C32(0x6C9E0E8B), SPH_C32(0xB01E8A3E), + SPH_C32(0xD71577C1), SPH_C32(0xBD314B27), + SPH_C32(0x78AF2FDA), SPH_C32(0x55605C60), + SPH_C32(0xE65525F3), SPH_C32(0xAA55AB94), + SPH_C32(0x57489862), SPH_C32(0x63E81440), + SPH_C32(0x55CA396A), SPH_C32(0x2AAB10B6), + SPH_C32(0xB4CC5C34), SPH_C32(0x1141E8CE), + SPH_C32(0xA15486AF), SPH_C32(0x7C72E993), + SPH_C32(0xB3EE1411), SPH_C32(0x636FBC2A), + SPH_C32(0x2BA9C55D), SPH_C32(0x741831F6), + SPH_C32(0xCE5C3E16), SPH_C32(0x9B87931E), + SPH_C32(0xAFD6BA33), SPH_C32(0x6C24CF5C) +}; + +static const sph_u32 RK4[32] = { + SPH_C32(0x7A325381), SPH_C32(0x28958677), + SPH_C32(0x3B8F4898), SPH_C32(0x6B4BB9AF), + SPH_C32(0xC4BFE81B), SPH_C32(0x66282193), + SPH_C32(0x61D809CC), SPH_C32(0xFB21A991), + SPH_C32(0x487CAC60), SPH_C32(0x5DEC8032), + SPH_C32(0xEF845D5D), SPH_C32(0xE98575B1), + SPH_C32(0xDC262302), SPH_C32(0xEB651B88), + SPH_C32(0x23893E81), SPH_C32(0xD396ACC5), + SPH_C32(0x0F6D6FF3), SPH_C32(0x83F44239), + SPH_C32(0x2E0B4482), SPH_C32(0xA4842004), + SPH_C32(0x69C8F04A), SPH_C32(0x9E1F9B5E), + SPH_C32(0x21C66842), SPH_C32(0xF6E96C9A), + SPH_C32(0x670C9C61), SPH_C32(0xABD388F0), + SPH_C32(0x6A51A0D2), SPH_C32(0xD8542F68), + SPH_C32(0x960FA728), SPH_C32(0xAB5133A3), + SPH_C32(0x6EEF0B6C), SPH_C32(0x137A3BE4) +}; + +static const sph_u32 RK5[32] = { + SPH_C32(0xBA3BF050), SPH_C32(0x7EFB2A98), + SPH_C32(0xA1F1651D), SPH_C32(0x39AF0176), + SPH_C32(0x66CA593E), SPH_C32(0x82430E88), + SPH_C32(0x8CEE8619), SPH_C32(0x456F9FB4), + SPH_C32(0x7D84A5C3), SPH_C32(0x3B8B5EBE), + SPH_C32(0xE06F75D8), SPH_C32(0x85C12073), + SPH_C32(0x401A449F), SPH_C32(0x56C16AA6), + SPH_C32(0x4ED3AA62), SPH_C32(0x363F7706), + SPH_C32(0x1BFEDF72), SPH_C32(0x429B023D), + SPH_C32(0x37D0D724), SPH_C32(0xD00A1248), + SPH_C32(0xDB0FEAD3), SPH_C32(0x49F1C09B), + SPH_C32(0x075372C9), SPH_C32(0x80991B7B), + SPH_C32(0x25D479D8), SPH_C32(0xF6E8DEF7), + SPH_C32(0xE3FE501A), SPH_C32(0xB6794C3B), + SPH_C32(0x976CE0BD), SPH_C32(0x04C006BA), + SPH_C32(0xC1A94FB6), SPH_C32(0x409F60C4) +}; + +#else + +#define PASS1(n, in) do { \ + STEP(n, 1, s7, s6, s5, s4, s3, s2, s1, s0, in( 0), SPH_C32(0x00000000)); \ + STEP(n, 1, s6, s5, s4, s3, s2, s1, s0, s7, in( 1), SPH_C32(0x00000000)); \ + STEP(n, 1, s5, s4, s3, s2, s1, s0, s7, s6, in( 2), SPH_C32(0x00000000)); \ + STEP(n, 1, s4, s3, s2, s1, s0, s7, s6, s5, in( 3), SPH_C32(0x00000000)); \ + STEP(n, 1, s3, s2, s1, s0, s7, s6, s5, s4, in( 4), SPH_C32(0x00000000)); \ + STEP(n, 1, s2, s1, s0, s7, s6, s5, s4, s3, in( 5), SPH_C32(0x00000000)); \ + STEP(n, 1, s1, s0, s7, s6, s5, s4, s3, s2, in( 6), SPH_C32(0x00000000)); \ + STEP(n, 1, s0, s7, s6, s5, s4, s3, s2, s1, in( 7), SPH_C32(0x00000000)); \ + \ + STEP(n, 1, s7, s6, s5, s4, s3, s2, s1, s0, in( 8), SPH_C32(0x00000000)); \ + STEP(n, 1, s6, s5, s4, s3, s2, s1, s0, s7, in( 9), SPH_C32(0x00000000)); \ + STEP(n, 1, s5, s4, s3, s2, s1, s0, s7, s6, in(10), SPH_C32(0x00000000)); \ + STEP(n, 1, s4, s3, s2, s1, s0, s7, s6, s5, in(11), SPH_C32(0x00000000)); \ + STEP(n, 1, s3, s2, s1, s0, s7, s6, s5, s4, in(12), SPH_C32(0x00000000)); \ + STEP(n, 1, s2, s1, s0, s7, s6, s5, s4, s3, in(13), SPH_C32(0x00000000)); \ + STEP(n, 1, s1, s0, s7, s6, s5, s4, s3, s2, in(14), SPH_C32(0x00000000)); \ + STEP(n, 1, s0, s7, s6, s5, s4, s3, s2, s1, in(15), SPH_C32(0x00000000)); \ + \ + STEP(n, 1, s7, s6, s5, s4, s3, s2, s1, s0, in(16), SPH_C32(0x00000000)); \ + STEP(n, 1, s6, s5, s4, s3, s2, s1, s0, s7, in(17), SPH_C32(0x00000000)); \ + STEP(n, 1, s5, s4, s3, s2, s1, s0, s7, s6, in(18), SPH_C32(0x00000000)); \ + STEP(n, 1, s4, s3, s2, s1, s0, s7, s6, s5, in(19), SPH_C32(0x00000000)); \ + STEP(n, 1, s3, s2, s1, s0, s7, s6, s5, s4, in(20), SPH_C32(0x00000000)); \ + STEP(n, 1, s2, s1, s0, s7, s6, s5, s4, s3, in(21), SPH_C32(0x00000000)); \ + STEP(n, 1, s1, s0, s7, s6, s5, s4, s3, s2, in(22), SPH_C32(0x00000000)); \ + STEP(n, 1, s0, s7, s6, s5, s4, s3, s2, s1, in(23), SPH_C32(0x00000000)); \ + \ + STEP(n, 1, s7, s6, s5, s4, s3, s2, s1, s0, in(24), SPH_C32(0x00000000)); \ + STEP(n, 1, s6, s5, s4, s3, s2, s1, s0, s7, in(25), SPH_C32(0x00000000)); \ + STEP(n, 1, s5, s4, s3, s2, s1, s0, s7, s6, in(26), SPH_C32(0x00000000)); \ + STEP(n, 1, s4, s3, s2, s1, s0, s7, s6, s5, in(27), SPH_C32(0x00000000)); \ + STEP(n, 1, s3, s2, s1, s0, s7, s6, s5, s4, in(28), SPH_C32(0x00000000)); \ + STEP(n, 1, s2, s1, s0, s7, s6, s5, s4, s3, in(29), SPH_C32(0x00000000)); \ + STEP(n, 1, s1, s0, s7, s6, s5, s4, s3, s2, in(30), SPH_C32(0x00000000)); \ + STEP(n, 1, s0, s7, s6, s5, s4, s3, s2, s1, in(31), SPH_C32(0x00000000)); \ + } while (0) + +#define PASS2(n, in) do { \ + STEP(n, 2, s7, s6, s5, s4, s3, s2, s1, s0, in( 5), SPH_C32(0x452821E6)); \ + STEP(n, 2, s6, s5, s4, s3, s2, s1, s0, s7, in(14), SPH_C32(0x38D01377)); \ + STEP(n, 2, s5, s4, s3, s2, s1, s0, s7, s6, in(26), SPH_C32(0xBE5466CF)); \ + STEP(n, 2, s4, s3, s2, s1, s0, s7, s6, s5, in(18), SPH_C32(0x34E90C6C)); \ + STEP(n, 2, s3, s2, s1, s0, s7, s6, s5, s4, in(11), SPH_C32(0xC0AC29B7)); \ + STEP(n, 2, s2, s1, s0, s7, s6, s5, s4, s3, in(28), SPH_C32(0xC97C50DD)); \ + STEP(n, 2, s1, s0, s7, s6, s5, s4, s3, s2, in( 7), SPH_C32(0x3F84D5B5)); \ + STEP(n, 2, s0, s7, s6, s5, s4, s3, s2, s1, in(16), SPH_C32(0xB5470917)); \ + \ + STEP(n, 2, s7, s6, s5, s4, s3, s2, s1, s0, in( 0), SPH_C32(0x9216D5D9)); \ + STEP(n, 2, s6, s5, s4, s3, s2, s1, s0, s7, in(23), SPH_C32(0x8979FB1B)); \ + STEP(n, 2, s5, s4, s3, s2, s1, s0, s7, s6, in(20), SPH_C32(0xD1310BA6)); \ + STEP(n, 2, s4, s3, s2, s1, s0, s7, s6, s5, in(22), SPH_C32(0x98DFB5AC)); \ + STEP(n, 2, s3, s2, s1, s0, s7, s6, s5, s4, in( 1), SPH_C32(0x2FFD72DB)); \ + STEP(n, 2, s2, s1, s0, s7, s6, s5, s4, s3, in(10), SPH_C32(0xD01ADFB7)); \ + STEP(n, 2, s1, s0, s7, s6, s5, s4, s3, s2, in( 4), SPH_C32(0xB8E1AFED)); \ + STEP(n, 2, s0, s7, s6, s5, s4, s3, s2, s1, in( 8), SPH_C32(0x6A267E96)); \ + \ + STEP(n, 2, s7, s6, s5, s4, s3, s2, s1, s0, in(30), SPH_C32(0xBA7C9045)); \ + STEP(n, 2, s6, s5, s4, s3, s2, s1, s0, s7, in( 3), SPH_C32(0xF12C7F99)); \ + STEP(n, 2, s5, s4, s3, s2, s1, s0, s7, s6, in(21), SPH_C32(0x24A19947)); \ + STEP(n, 2, s4, s3, s2, s1, s0, s7, s6, s5, in( 9), SPH_C32(0xB3916CF7)); \ + STEP(n, 2, s3, s2, s1, s0, s7, s6, s5, s4, in(17), SPH_C32(0x0801F2E2)); \ + STEP(n, 2, s2, s1, s0, s7, s6, s5, s4, s3, in(24), SPH_C32(0x858EFC16)); \ + STEP(n, 2, s1, s0, s7, s6, s5, s4, s3, s2, in(29), SPH_C32(0x636920D8)); \ + STEP(n, 2, s0, s7, s6, s5, s4, s3, s2, s1, in( 6), SPH_C32(0x71574E69)); \ + \ + STEP(n, 2, s7, s6, s5, s4, s3, s2, s1, s0, in(19), SPH_C32(0xA458FEA3)); \ + STEP(n, 2, s6, s5, s4, s3, s2, s1, s0, s7, in(12), SPH_C32(0xF4933D7E)); \ + STEP(n, 2, s5, s4, s3, s2, s1, s0, s7, s6, in(15), SPH_C32(0x0D95748F)); \ + STEP(n, 2, s4, s3, s2, s1, s0, s7, s6, s5, in(13), SPH_C32(0x728EB658)); \ + STEP(n, 2, s3, s2, s1, s0, s7, s6, s5, s4, in( 2), SPH_C32(0x718BCD58)); \ + STEP(n, 2, s2, s1, s0, s7, s6, s5, s4, s3, in(25), SPH_C32(0x82154AEE)); \ + STEP(n, 2, s1, s0, s7, s6, s5, s4, s3, s2, in(31), SPH_C32(0x7B54A41D)); \ + STEP(n, 2, s0, s7, s6, s5, s4, s3, s2, s1, in(27), SPH_C32(0xC25A59B5)); \ + } while (0) + +#define PASS3(n, in) do { \ + STEP(n, 3, s7, s6, s5, s4, s3, s2, s1, s0, in(19), SPH_C32(0x9C30D539)); \ + STEP(n, 3, s6, s5, s4, s3, s2, s1, s0, s7, in( 9), SPH_C32(0x2AF26013)); \ + STEP(n, 3, s5, s4, s3, s2, s1, s0, s7, s6, in( 4), SPH_C32(0xC5D1B023)); \ + STEP(n, 3, s4, s3, s2, s1, s0, s7, s6, s5, in(20), SPH_C32(0x286085F0)); \ + STEP(n, 3, s3, s2, s1, s0, s7, s6, s5, s4, in(28), SPH_C32(0xCA417918)); \ + STEP(n, 3, s2, s1, s0, s7, s6, s5, s4, s3, in(17), SPH_C32(0xB8DB38EF)); \ + STEP(n, 3, s1, s0, s7, s6, s5, s4, s3, s2, in( 8), SPH_C32(0x8E79DCB0)); \ + STEP(n, 3, s0, s7, s6, s5, s4, s3, s2, s1, in(22), SPH_C32(0x603A180E)); \ + \ + STEP(n, 3, s7, s6, s5, s4, s3, s2, s1, s0, in(29), SPH_C32(0x6C9E0E8B)); \ + STEP(n, 3, s6, s5, s4, s3, s2, s1, s0, s7, in(14), SPH_C32(0xB01E8A3E)); \ + STEP(n, 3, s5, s4, s3, s2, s1, s0, s7, s6, in(25), SPH_C32(0xD71577C1)); \ + STEP(n, 3, s4, s3, s2, s1, s0, s7, s6, s5, in(12), SPH_C32(0xBD314B27)); \ + STEP(n, 3, s3, s2, s1, s0, s7, s6, s5, s4, in(24), SPH_C32(0x78AF2FDA)); \ + STEP(n, 3, s2, s1, s0, s7, s6, s5, s4, s3, in(30), SPH_C32(0x55605C60)); \ + STEP(n, 3, s1, s0, s7, s6, s5, s4, s3, s2, in(16), SPH_C32(0xE65525F3)); \ + STEP(n, 3, s0, s7, s6, s5, s4, s3, s2, s1, in(26), SPH_C32(0xAA55AB94)); \ + \ + STEP(n, 3, s7, s6, s5, s4, s3, s2, s1, s0, in(31), SPH_C32(0x57489862)); \ + STEP(n, 3, s6, s5, s4, s3, s2, s1, s0, s7, in(15), SPH_C32(0x63E81440)); \ + STEP(n, 3, s5, s4, s3, s2, s1, s0, s7, s6, in( 7), SPH_C32(0x55CA396A)); \ + STEP(n, 3, s4, s3, s2, s1, s0, s7, s6, s5, in( 3), SPH_C32(0x2AAB10B6)); \ + STEP(n, 3, s3, s2, s1, s0, s7, s6, s5, s4, in( 1), SPH_C32(0xB4CC5C34)); \ + STEP(n, 3, s2, s1, s0, s7, s6, s5, s4, s3, in( 0), SPH_C32(0x1141E8CE)); \ + STEP(n, 3, s1, s0, s7, s6, s5, s4, s3, s2, in(18), SPH_C32(0xA15486AF)); \ + STEP(n, 3, s0, s7, s6, s5, s4, s3, s2, s1, in(27), SPH_C32(0x7C72E993)); \ + \ + STEP(n, 3, s7, s6, s5, s4, s3, s2, s1, s0, in(13), SPH_C32(0xB3EE1411)); \ + STEP(n, 3, s6, s5, s4, s3, s2, s1, s0, s7, in( 6), SPH_C32(0x636FBC2A)); \ + STEP(n, 3, s5, s4, s3, s2, s1, s0, s7, s6, in(21), SPH_C32(0x2BA9C55D)); \ + STEP(n, 3, s4, s3, s2, s1, s0, s7, s6, s5, in(10), SPH_C32(0x741831F6)); \ + STEP(n, 3, s3, s2, s1, s0, s7, s6, s5, s4, in(23), SPH_C32(0xCE5C3E16)); \ + STEP(n, 3, s2, s1, s0, s7, s6, s5, s4, s3, in(11), SPH_C32(0x9B87931E)); \ + STEP(n, 3, s1, s0, s7, s6, s5, s4, s3, s2, in( 5), SPH_C32(0xAFD6BA33)); \ + STEP(n, 3, s0, s7, s6, s5, s4, s3, s2, s1, in( 2), SPH_C32(0x6C24CF5C)); \ + } while (0) + +#define PASS4(n, in) do { \ + STEP(n, 4, s7, s6, s5, s4, s3, s2, s1, s0, in(24), SPH_C32(0x7A325381)); \ + STEP(n, 4, s6, s5, s4, s3, s2, s1, s0, s7, in( 4), SPH_C32(0x28958677)); \ + STEP(n, 4, s5, s4, s3, s2, s1, s0, s7, s6, in( 0), SPH_C32(0x3B8F4898)); \ + STEP(n, 4, s4, s3, s2, s1, s0, s7, s6, s5, in(14), SPH_C32(0x6B4BB9AF)); \ + STEP(n, 4, s3, s2, s1, s0, s7, s6, s5, s4, in( 2), SPH_C32(0xC4BFE81B)); \ + STEP(n, 4, s2, s1, s0, s7, s6, s5, s4, s3, in( 7), SPH_C32(0x66282193)); \ + STEP(n, 4, s1, s0, s7, s6, s5, s4, s3, s2, in(28), SPH_C32(0x61D809CC)); \ + STEP(n, 4, s0, s7, s6, s5, s4, s3, s2, s1, in(23), SPH_C32(0xFB21A991)); \ + \ + STEP(n, 4, s7, s6, s5, s4, s3, s2, s1, s0, in(26), SPH_C32(0x487CAC60)); \ + STEP(n, 4, s6, s5, s4, s3, s2, s1, s0, s7, in( 6), SPH_C32(0x5DEC8032)); \ + STEP(n, 4, s5, s4, s3, s2, s1, s0, s7, s6, in(30), SPH_C32(0xEF845D5D)); \ + STEP(n, 4, s4, s3, s2, s1, s0, s7, s6, s5, in(20), SPH_C32(0xE98575B1)); \ + STEP(n, 4, s3, s2, s1, s0, s7, s6, s5, s4, in(18), SPH_C32(0xDC262302)); \ + STEP(n, 4, s2, s1, s0, s7, s6, s5, s4, s3, in(25), SPH_C32(0xEB651B88)); \ + STEP(n, 4, s1, s0, s7, s6, s5, s4, s3, s2, in(19), SPH_C32(0x23893E81)); \ + STEP(n, 4, s0, s7, s6, s5, s4, s3, s2, s1, in( 3), SPH_C32(0xD396ACC5)); \ + \ + STEP(n, 4, s7, s6, s5, s4, s3, s2, s1, s0, in(22), SPH_C32(0x0F6D6FF3)); \ + STEP(n, 4, s6, s5, s4, s3, s2, s1, s0, s7, in(11), SPH_C32(0x83F44239)); \ + STEP(n, 4, s5, s4, s3, s2, s1, s0, s7, s6, in(31), SPH_C32(0x2E0B4482)); \ + STEP(n, 4, s4, s3, s2, s1, s0, s7, s6, s5, in(21), SPH_C32(0xA4842004)); \ + STEP(n, 4, s3, s2, s1, s0, s7, s6, s5, s4, in( 8), SPH_C32(0x69C8F04A)); \ + STEP(n, 4, s2, s1, s0, s7, s6, s5, s4, s3, in(27), SPH_C32(0x9E1F9B5E)); \ + STEP(n, 4, s1, s0, s7, s6, s5, s4, s3, s2, in(12), SPH_C32(0x21C66842)); \ + STEP(n, 4, s0, s7, s6, s5, s4, s3, s2, s1, in( 9), SPH_C32(0xF6E96C9A)); \ + \ + STEP(n, 4, s7, s6, s5, s4, s3, s2, s1, s0, in( 1), SPH_C32(0x670C9C61)); \ + STEP(n, 4, s6, s5, s4, s3, s2, s1, s0, s7, in(29), SPH_C32(0xABD388F0)); \ + STEP(n, 4, s5, s4, s3, s2, s1, s0, s7, s6, in( 5), SPH_C32(0x6A51A0D2)); \ + STEP(n, 4, s4, s3, s2, s1, s0, s7, s6, s5, in(15), SPH_C32(0xD8542F68)); \ + STEP(n, 4, s3, s2, s1, s0, s7, s6, s5, s4, in(17), SPH_C32(0x960FA728)); \ + STEP(n, 4, s2, s1, s0, s7, s6, s5, s4, s3, in(10), SPH_C32(0xAB5133A3)); \ + STEP(n, 4, s1, s0, s7, s6, s5, s4, s3, s2, in(16), SPH_C32(0x6EEF0B6C)); \ + STEP(n, 4, s0, s7, s6, s5, s4, s3, s2, s1, in(13), SPH_C32(0x137A3BE4)); \ + } while (0) + +#define PASS5(n, in) do { \ + STEP(n, 5, s7, s6, s5, s4, s3, s2, s1, s0, in(27), SPH_C32(0xBA3BF050)); \ + STEP(n, 5, s6, s5, s4, s3, s2, s1, s0, s7, in( 3), SPH_C32(0x7EFB2A98)); \ + STEP(n, 5, s5, s4, s3, s2, s1, s0, s7, s6, in(21), SPH_C32(0xA1F1651D)); \ + STEP(n, 5, s4, s3, s2, s1, s0, s7, s6, s5, in(26), SPH_C32(0x39AF0176)); \ + STEP(n, 5, s3, s2, s1, s0, s7, s6, s5, s4, in(17), SPH_C32(0x66CA593E)); \ + STEP(n, 5, s2, s1, s0, s7, s6, s5, s4, s3, in(11), SPH_C32(0x82430E88)); \ + STEP(n, 5, s1, s0, s7, s6, s5, s4, s3, s2, in(20), SPH_C32(0x8CEE8619)); \ + STEP(n, 5, s0, s7, s6, s5, s4, s3, s2, s1, in(29), SPH_C32(0x456F9FB4)); \ + \ + STEP(n, 5, s7, s6, s5, s4, s3, s2, s1, s0, in(19), SPH_C32(0x7D84A5C3)); \ + STEP(n, 5, s6, s5, s4, s3, s2, s1, s0, s7, in( 0), SPH_C32(0x3B8B5EBE)); \ + STEP(n, 5, s5, s4, s3, s2, s1, s0, s7, s6, in(12), SPH_C32(0xE06F75D8)); \ + STEP(n, 5, s4, s3, s2, s1, s0, s7, s6, s5, in( 7), SPH_C32(0x85C12073)); \ + STEP(n, 5, s3, s2, s1, s0, s7, s6, s5, s4, in(13), SPH_C32(0x401A449F)); \ + STEP(n, 5, s2, s1, s0, s7, s6, s5, s4, s3, in( 8), SPH_C32(0x56C16AA6)); \ + STEP(n, 5, s1, s0, s7, s6, s5, s4, s3, s2, in(31), SPH_C32(0x4ED3AA62)); \ + STEP(n, 5, s0, s7, s6, s5, s4, s3, s2, s1, in(10), SPH_C32(0x363F7706)); \ + \ + STEP(n, 5, s7, s6, s5, s4, s3, s2, s1, s0, in( 5), SPH_C32(0x1BFEDF72)); \ + STEP(n, 5, s6, s5, s4, s3, s2, s1, s0, s7, in( 9), SPH_C32(0x429B023D)); \ + STEP(n, 5, s5, s4, s3, s2, s1, s0, s7, s6, in(14), SPH_C32(0x37D0D724)); \ + STEP(n, 5, s4, s3, s2, s1, s0, s7, s6, s5, in(30), SPH_C32(0xD00A1248)); \ + STEP(n, 5, s3, s2, s1, s0, s7, s6, s5, s4, in(18), SPH_C32(0xDB0FEAD3)); \ + STEP(n, 5, s2, s1, s0, s7, s6, s5, s4, s3, in( 6), SPH_C32(0x49F1C09B)); \ + STEP(n, 5, s1, s0, s7, s6, s5, s4, s3, s2, in(28), SPH_C32(0x075372C9)); \ + STEP(n, 5, s0, s7, s6, s5, s4, s3, s2, s1, in(24), SPH_C32(0x80991B7B)); \ + \ + STEP(n, 5, s7, s6, s5, s4, s3, s2, s1, s0, in( 2), SPH_C32(0x25D479D8)); \ + STEP(n, 5, s6, s5, s4, s3, s2, s1, s0, s7, in(23), SPH_C32(0xF6E8DEF7)); \ + STEP(n, 5, s5, s4, s3, s2, s1, s0, s7, s6, in(16), SPH_C32(0xE3FE501A)); \ + STEP(n, 5, s4, s3, s2, s1, s0, s7, s6, s5, in(22), SPH_C32(0xB6794C3B)); \ + STEP(n, 5, s3, s2, s1, s0, s7, s6, s5, s4, in( 4), SPH_C32(0x976CE0BD)); \ + STEP(n, 5, s2, s1, s0, s7, s6, s5, s4, s3, in( 1), SPH_C32(0x04C006BA)); \ + STEP(n, 5, s1, s0, s7, s6, s5, s4, s3, s2, in(25), SPH_C32(0xC1A94FB6)); \ + STEP(n, 5, s0, s7, s6, s5, s4, s3, s2, s1, in(15), SPH_C32(0x409F60C4)); \ + } while (0) + +#endif + +#define SAVE_STATE \ + sph_u32 u0, u1, u2, u3, u4, u5, u6, u7; \ + do { \ + u0 = s0; \ + u1 = s1; \ + u2 = s2; \ + u3 = s3; \ + u4 = s4; \ + u5 = s5; \ + u6 = s6; \ + u7 = s7; \ + } while (0) + +#define UPDATE_STATE do { \ + s0 = SPH_T32(s0 + u0); \ + s1 = SPH_T32(s1 + u1); \ + s2 = SPH_T32(s2 + u2); \ + s3 = SPH_T32(s3 + u3); \ + s4 = SPH_T32(s4 + u4); \ + s5 = SPH_T32(s5 + u5); \ + s6 = SPH_T32(s6 + u6); \ + s7 = SPH_T32(s7 + u7); \ + } while (0) + +/* + * COREn(in) performs the core HAVAL computation for "n" passes, using + * the one-argument macro "in" to access the input words. Running state + * is held in variable "s0" to "s7". + */ + +#define CORE3(in) do { \ + SAVE_STATE; \ + PASS1(3, in); \ + PASS2(3, in); \ + PASS3(3, in); \ + UPDATE_STATE; \ + } while (0) + +#define CORE4(in) do { \ + SAVE_STATE; \ + PASS1(4, in); \ + PASS2(4, in); \ + PASS3(4, in); \ + PASS4(4, in); \ + UPDATE_STATE; \ + } while (0) + +#define CORE5(in) do { \ + SAVE_STATE; \ + PASS1(5, in); \ + PASS2(5, in); \ + PASS3(5, in); \ + PASS4(5, in); \ + PASS5(5, in); \ + UPDATE_STATE; \ + } while (0) + +/* + * DSTATE declares the state variables "s0" to "s7". + */ +#define DSTATE sph_u32 s0, s1, s2, s3, s4, s5, s6, s7 + +/* + * RSTATE fills the state variables from the context "sc". + */ +#define RSTATE do { \ + s0 = sc->s0; \ + s1 = sc->s1; \ + s2 = sc->s2; \ + s3 = sc->s3; \ + s4 = sc->s4; \ + s5 = sc->s5; \ + s6 = sc->s6; \ + s7 = sc->s7; \ + } while (0) + +/* + * WSTATE updates the context "sc" from the state variables. + */ +#define WSTATE do { \ + sc->s0 = s0; \ + sc->s1 = s1; \ + sc->s2 = s2; \ + sc->s3 = s3; \ + sc->s4 = s4; \ + sc->s5 = s5; \ + sc->s6 = s6; \ + sc->s7 = s7; \ + } while (0) + +/* + * Initialize a context. "olen" is the output length, in 32-bit words + * (between 4 and 8, inclusive). "passes" is the number of passes + * (3, 4 or 5). + */ +static void +haval_init(sph_haval_context *sc, unsigned olen, unsigned passes) +{ + sc->s0 = SPH_C32(0x243F6A88); + sc->s1 = SPH_C32(0x85A308D3); + sc->s2 = SPH_C32(0x13198A2E); + sc->s3 = SPH_C32(0x03707344); + sc->s4 = SPH_C32(0xA4093822); + sc->s5 = SPH_C32(0x299F31D0); + sc->s6 = SPH_C32(0x082EFA98); + sc->s7 = SPH_C32(0xEC4E6C89); + sc->olen = olen; + sc->passes = passes; +#if SPH_64 + sc->count = 0; +#else + sc->count_high = 0; + sc->count_low = 0; +#endif + +} + +/* + * IN_PREPARE(data) contains declarations and code to prepare for + * reading input words pointed to by "data". + * INW(i) reads the word number "i" (from 0 to 31). + */ +#if SPH_LITTLE_FAST +#define IN_PREPARE(indata) const unsigned char *const load_ptr = \ + (const unsigned char *)(indata) +#define INW(i) sph_dec32le_aligned(load_ptr + 4 * (i)) +#else +#define IN_PREPARE(indata) \ + sph_u32 X_var[32]; \ + int load_index; \ + \ + for (load_index = 0; load_index < 32; load_index ++) \ + X_var[load_index] = sph_dec32le_aligned( \ + (const unsigned char *)(indata) + 4 * load_index) +#define INW(i) X_var[i] +#endif + +/* + * Mixing operation used for 128-bit output tailoring. This function + * takes the byte 0 from a0, byte 1 from a1, byte 2 from a2 and byte 3 + * from a3, and combines them into a 32-bit word, which is then rotated + * to the left by n bits. + */ +static SPH_INLINE sph_u32 +mix128(sph_u32 a0, sph_u32 a1, sph_u32 a2, sph_u32 a3, int n) +{ + sph_u32 tmp; + + tmp = (a0 & SPH_C32(0x000000FF)) + | (a1 & SPH_C32(0x0000FF00)) + | (a2 & SPH_C32(0x00FF0000)) + | (a3 & SPH_C32(0xFF000000)); + if (n > 0) + tmp = SPH_ROTL32(tmp, n); + return tmp; +} + +/* + * Mixing operation used to compute output word 0 for 160-bit output. + */ +static SPH_INLINE sph_u32 +mix160_0(sph_u32 x5, sph_u32 x6, sph_u32 x7) +{ + sph_u32 tmp; + + tmp = (x5 & SPH_C32(0x01F80000)) + | (x6 & SPH_C32(0xFE000000)) + | (x7 & SPH_C32(0x0000003F)); + return SPH_ROTL32(tmp, 13); +} + +/* + * Mixing operation used to compute output word 1 for 160-bit output. + */ +static SPH_INLINE sph_u32 +mix160_1(sph_u32 x5, sph_u32 x6, sph_u32 x7) +{ + sph_u32 tmp; + + tmp = (x5 & SPH_C32(0xFE000000)) + | (x6 & SPH_C32(0x0000003F)) + | (x7 & SPH_C32(0x00000FC0)); + return SPH_ROTL32(tmp, 7); +} + +/* + * Mixing operation used to compute output word 2 for 160-bit output. + */ +static SPH_INLINE sph_u32 +mix160_2(sph_u32 x5, sph_u32 x6, sph_u32 x7) +{ + sph_u32 tmp; + + tmp = (x5 & SPH_C32(0x0000003F)) + | (x6 & SPH_C32(0x00000FC0)) + | (x7 & SPH_C32(0x0007F000)); + return tmp; +} + +/* + * Mixing operation used to compute output word 3 for 160-bit output. + */ +static SPH_INLINE sph_u32 +mix160_3(sph_u32 x5, sph_u32 x6, sph_u32 x7) +{ + sph_u32 tmp; + + tmp = (x5 & SPH_C32(0x00000FC0)) + | (x6 & SPH_C32(0x0007F000)) + | (x7 & SPH_C32(0x01F80000)); + return tmp >> 6; +} + +/* + * Mixing operation used to compute output word 4 for 160-bit output. + */ +static SPH_INLINE sph_u32 +mix160_4(sph_u32 x5, sph_u32 x6, sph_u32 x7) +{ + sph_u32 tmp; + + tmp = (x5 & SPH_C32(0x0007F000)) + | (x6 & SPH_C32(0x01F80000)) + | (x7 & SPH_C32(0xFE000000)); + return tmp >> 12; +} + +/* + * Mixing operation used to compute output word 0 for 192-bit output. + */ +static SPH_INLINE sph_u32 +mix192_0(sph_u32 x6, sph_u32 x7) +{ + sph_u32 tmp; + + tmp = (x6 & SPH_C32(0xFC000000)) | (x7 & SPH_C32(0x0000001F)); + return SPH_ROTL32(tmp, 6); +} + +/* + * Mixing operation used to compute output word 1 for 192-bit output. + */ +static SPH_INLINE sph_u32 +mix192_1(sph_u32 x6, sph_u32 x7) +{ + return (x6 & SPH_C32(0x0000001F)) | (x7 & SPH_C32(0x000003E0)); +} + +/* + * Mixing operation used to compute output word 2 for 192-bit output. + */ +static SPH_INLINE sph_u32 +mix192_2(sph_u32 x6, sph_u32 x7) +{ + return ((x6 & SPH_C32(0x000003E0)) | (x7 & SPH_C32(0x0000FC00))) >> 5; +} + +/* + * Mixing operation used to compute output word 3 for 192-bit output. + */ +static SPH_INLINE sph_u32 +mix192_3(sph_u32 x6, sph_u32 x7) +{ + return ((x6 & SPH_C32(0x0000FC00)) | (x7 & SPH_C32(0x001F0000))) >> 10; +} + +/* + * Mixing operation used to compute output word 4 for 192-bit output. + */ +static SPH_INLINE sph_u32 +mix192_4(sph_u32 x6, sph_u32 x7) +{ + return ((x6 & SPH_C32(0x001F0000)) | (x7 & SPH_C32(0x03E00000))) >> 16; +} + +/* + * Mixing operation used to compute output word 5 for 192-bit output. + */ +static SPH_INLINE sph_u32 +mix192_5(sph_u32 x6, sph_u32 x7) +{ + return ((x6 & SPH_C32(0x03E00000)) | (x7 & SPH_C32(0xFC000000))) >> 21; +} + +/* + * Write out HAVAL output. The output length is tailored to the requested + * length. + */ +static void +haval_out(sph_haval_context *sc, void *dst) +{ + DSTATE; + unsigned char *buf; + + buf = dst; + RSTATE; + switch (sc->olen) { + case 4: + sph_enc32le(buf, SPH_T32(s0 + mix128(s7, s4, s5, s6, 24))); + sph_enc32le(buf + 4, SPH_T32(s1 + mix128(s6, s7, s4, s5, 16))); + sph_enc32le(buf + 8, SPH_T32(s2 + mix128(s5, s6, s7, s4, 8))); + sph_enc32le(buf + 12, SPH_T32(s3 + mix128(s4, s5, s6, s7, 0))); + break; + case 5: + sph_enc32le(buf, SPH_T32(s0 + mix160_0(s5, s6, s7))); + sph_enc32le(buf + 4, SPH_T32(s1 + mix160_1(s5, s6, s7))); + sph_enc32le(buf + 8, SPH_T32(s2 + mix160_2(s5, s6, s7))); + sph_enc32le(buf + 12, SPH_T32(s3 + mix160_3(s5, s6, s7))); + sph_enc32le(buf + 16, SPH_T32(s4 + mix160_4(s5, s6, s7))); + break; + case 6: + sph_enc32le(buf, SPH_T32(s0 + mix192_0(s6, s7))); + sph_enc32le(buf + 4, SPH_T32(s1 + mix192_1(s6, s7))); + sph_enc32le(buf + 8, SPH_T32(s2 + mix192_2(s6, s7))); + sph_enc32le(buf + 12, SPH_T32(s3 + mix192_3(s6, s7))); + sph_enc32le(buf + 16, SPH_T32(s4 + mix192_4(s6, s7))); + sph_enc32le(buf + 20, SPH_T32(s5 + mix192_5(s6, s7))); + break; + case 7: + sph_enc32le(buf, SPH_T32(s0 + ((s7 >> 27) & 0x1F))); + sph_enc32le(buf + 4, SPH_T32(s1 + ((s7 >> 22) & 0x1F))); + sph_enc32le(buf + 8, SPH_T32(s2 + ((s7 >> 18) & 0x0F))); + sph_enc32le(buf + 12, SPH_T32(s3 + ((s7 >> 13) & 0x1F))); + sph_enc32le(buf + 16, SPH_T32(s4 + ((s7 >> 9) & 0x0F))); + sph_enc32le(buf + 20, SPH_T32(s5 + ((s7 >> 4) & 0x1F))); + sph_enc32le(buf + 24, SPH_T32(s6 + ((s7 ) & 0x0F))); + break; + case 8: + sph_enc32le(buf, s0); + sph_enc32le(buf + 4, s1); + sph_enc32le(buf + 8, s2); + sph_enc32le(buf + 12, s3); + sph_enc32le(buf + 16, s4); + sph_enc32le(buf + 20, s5); + sph_enc32le(buf + 24, s6); + sph_enc32le(buf + 28, s7); + break; + } +} + +/* + * The main core functions inline the code with the COREx() macros. We + * use a helper file, included three times, which avoids code copying. + */ + +#undef PASSES +#define PASSES 3 +#include "haval_helper.c" + +#undef PASSES +#define PASSES 4 +#include "haval_helper.c" + +#undef PASSES +#define PASSES 5 +#include "haval_helper.c" + +/* ====================================================================== */ + +#define API(xxx, y) \ +void \ +sph_haval ## xxx ## _ ## y ## _init(void *cc) \ +{ \ + haval_init(cc, xxx >> 5, y); \ +} \ + \ +void \ +sph_haval ## xxx ## _ ## y (void *cc, const void *data, size_t len) \ +{ \ + haval ## y(cc, data, len); \ +} \ + \ +void \ +sph_haval ## xxx ## _ ## y ## _close(void *cc, void *dst) \ +{ \ + haval ## y ## _close(cc, 0, 0, dst); \ +} \ + \ +void \ +sph_haval ## xxx ## _ ## y ## addbits_and_close( \ + void *cc, unsigned ub, unsigned n, void *dst) \ +{ \ + haval ## y ## _close(cc, ub, n, dst); \ +} + +API(128, 3) +API(128, 4) +API(128, 5) +API(160, 3) +API(160, 4) +API(160, 5) +API(192, 3) +API(192, 4) +API(192, 5) +API(224, 3) +API(224, 4) +API(224, 5) +API(256, 3) +API(256, 4) +API(256, 5) + +#define RVAL do { \ + s0 = val[0]; \ + s1 = val[1]; \ + s2 = val[2]; \ + s3 = val[3]; \ + s4 = val[4]; \ + s5 = val[5]; \ + s6 = val[6]; \ + s7 = val[7]; \ + } while (0) + +#define WVAL do { \ + val[0] = s0; \ + val[1] = s1; \ + val[2] = s2; \ + val[3] = s3; \ + val[4] = s4; \ + val[5] = s5; \ + val[6] = s6; \ + val[7] = s7; \ + } while (0) + +#define INMSG(i) msg[i] + +/* see sph_haval.h */ +void +sph_haval_3_comp(const sph_u32 msg[32], sph_u32 val[8]) +{ + DSTATE; + + RVAL; + CORE3(INMSG); + WVAL; +} + +/* see sph_haval.h */ +void +sph_haval_4_comp(const sph_u32 msg[32], sph_u32 val[8]) +{ + DSTATE; + + RVAL; + CORE4(INMSG); + WVAL; +} + +/* see sph_haval.h */ +void +sph_haval_5_comp(const sph_u32 msg[32], sph_u32 val[8]) +{ + DSTATE; + + RVAL; + CORE5(INMSG); + WVAL; +} + +#ifdef __cplusplus +} +#endif diff --git a/src/crypto/haval_helper.c b/src/crypto/haval_helper.c new file mode 100644 index 00000000..ce0a9fd6 --- /dev/null +++ b/src/crypto/haval_helper.c @@ -0,0 +1,190 @@ +/* $Id: haval_helper.c 218 2010-06-08 17:06:34Z tp $ */ +/* + * Helper code, included (three times !) by HAVAL implementation. + * + * TODO: try to merge this with md_helper.c. + * + * ==========================(LICENSE BEGIN)============================ + * + * Copyright (c) 2007-2010 Projet RNRT SAPHIR + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * ===========================(LICENSE END)============================= + * + * @author Thomas Pornin + */ + +#undef SPH_XCAT +#define SPH_XCAT(a, b) SPH_XCAT_(a, b) +#undef SPH_XCAT_ +#define SPH_XCAT_(a, b) a ## b + +static void +#ifdef SPH_UPTR +SPH_XCAT(SPH_XCAT(haval, PASSES), _short) +#else +SPH_XCAT(haval, PASSES) +#endif +(sph_haval_context *sc, const void *data, size_t len) +{ + unsigned current; + +#if SPH_64 + current = (unsigned)sc->count & 127U; +#else + current = (unsigned)sc->count_low & 127U; +#endif + while (len > 0) { + unsigned clen; +#if !SPH_64 + sph_u32 clow, clow2; +#endif + + clen = 128U - current; + if (clen > len) + clen = len; + memcpy(sc->buf + current, data, clen); + data = (const unsigned char *)data + clen; + current += clen; + len -= clen; + if (current == 128U) { + DSTATE; + IN_PREPARE(sc->buf); + RSTATE; + SPH_XCAT(CORE, PASSES)(INW); + WSTATE; + current = 0; + } +#if SPH_64 + sc->count += clen; +#else + clow = sc->count_low; + clow2 = SPH_T32(clow + clen); + sc->count_low = clow2; + if (clow2 < clow) + sc->count_high ++; +#endif + } +} + +#ifdef SPH_UPTR +static void +SPH_XCAT(haval, PASSES)(sph_haval_context *sc, const void *data, size_t len) +{ + unsigned current; + size_t orig_len; +#if !SPH_64 + sph_u32 clow, clow2; +#endif + DSTATE; + + if (len < 256U) { + SPH_XCAT(SPH_XCAT(haval, PASSES), _short)(sc, data, len); + return; + } +#if SPH_64 + current = (unsigned)sc->count & 127U; +#else + current = (unsigned)sc->count_low & 127U; +#endif + if (current > 0) { + unsigned clen; + clen = 128U - current; + SPH_XCAT(SPH_XCAT(haval, PASSES), _short)(sc, data, clen); + data = (const unsigned char *)data + clen; + len -= clen; + } +#if !SPH_UNALIGNED + if (((SPH_UPTR)data & 3U) != 0) { + SPH_XCAT(SPH_XCAT(haval, PASSES), _short)(sc, data, len); + return; + } +#endif + orig_len = len; + RSTATE; + while (len >= 128U) { + IN_PREPARE(data); + SPH_XCAT(CORE, PASSES)(INW); + data = (const unsigned char *)data + 128U; + len -= 128U; + } + WSTATE; + if (len > 0) + memcpy(sc->buf, data, len); +#if SPH_64 + sc->count += (sph_u64)orig_len; +#else + clow = sc->count_low; + clow2 = SPH_T32(clow + orig_len); + sc->count_low = clow2; + if (clow2 < clow) + sc->count_high ++; + orig_len >>= 12; + orig_len >>= 10; + orig_len >>= 10; + sc->count_high += orig_len; +#endif +} +#endif + +static void +SPH_XCAT(SPH_XCAT(haval, PASSES), _close)(sph_haval_context *sc, + unsigned ub, unsigned n, void *dst) +{ + unsigned current; + DSTATE; + +#if SPH_64 + current = (unsigned)sc->count & 127U; +#else + current = (unsigned)sc->count_low & 127U; +#endif + sc->buf[current ++] = (0x01 << n) | ((ub & 0xFF) >> (8 - n)); + RSTATE; + if (current > 118U) { + memset(sc->buf + current, 0, 128U - current); + + do { + IN_PREPARE(sc->buf); + SPH_XCAT(CORE, PASSES)(INW); + } while (0); + current = 0; + } + memset(sc->buf + current, 0, 118U - current); + sc->buf[118] = 0x01 | (PASSES << 3); + sc->buf[119] = sc->olen << 3; +#if SPH_64 + sph_enc64le_aligned(sc->buf + 120, SPH_T64(sc->count << 3)); +#else + sph_enc32le_aligned(sc->buf + 120, SPH_T32(sc->count_low << 3)); + sph_enc32le_aligned(sc->buf + 124, + SPH_T32((sc->count_high << 3) | (sc->count_low >> 29))); +#endif + + do { + IN_PREPARE(sc->buf); + SPH_XCAT(CORE, PASSES)(INW); + } while (0); + WSTATE; + + haval_out(sc, dst); + haval_init(sc, sc->olen, sc->passes); +} diff --git a/src/crypto/mega-btx.h b/src/crypto/mega-btx.h new file mode 100644 index 00000000..d80da869 --- /dev/null +++ b/src/crypto/mega-btx.h @@ -0,0 +1,348 @@ +// Copyright (c) 2009-2010 Satoshi Nakamoto +// Copyright (c) 2009-2012 Bitcoin Developers +// Copyright (c) 2014 Talkcoin Developers +// Copyright (c) 2019 Limxtec developers +// Distributed under the MIT/X11 software license, see the accompanying +// file COPYING or http://www.opensource.org/licenses/mit-license.php. + +#ifndef BITCORE_CRYPTO_MEGA_BTX_H +#define BITCORE_CRYPTO_MEGA_BTX_H + +#include +#include // std::next_permutation +#include + +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include +extern "C" { +#include +//#include +} +//#include + +#define HASH_FUNC_BASE_TIMESTAMP_1 1492973331 // Bitcore Genesis +#define HASH_FUNC_COUNT_1 8 +#define HASH_FUNC_COUNT_2 8 +#define HASH_FUNC_COUNT_3 7 +#define HASH_FUNC_VAR_1 3333 +#define HASH_FUNC_VAR_2 2100 +#define HASH_FUNC_COUNT_PERMUTATIONS_7 5040 +#define HASH_FUNC_COUNT_PERMUTATIONS 40320 + + + +template +inline uint256 Mega_Btx(const T1 pbegin, const T1 pend,uint32_t timestamp) +{ + sph_blake512_context ctx_blake; + sph_bmw512_context ctx_bmw; + sph_groestl512_context ctx_groestl; + sph_jh512_context ctx_jh; + sph_keccak512_context ctx_keccak; + sph_skein512_context ctx_skein; + sph_luffa512_context ctx_luffa; + sph_cubehash512_context ctx_cubehash; + sph_shavite512_context ctx_shavite; + sph_simd512_context ctx_simd; + sph_echo512_context ctx_echo; + sph_hamsi512_context ctx_hamsi; + sph_fugue512_context ctx_fugue; + sph_shabal512_context ctx_shabal; + sph_whirlpool_context ctx_whirlpool; + sph_sha512_context ctx_sha512; + sph_gost512_context ctx_gost; + sph_haval256_5_context ctx_haval; + //sph_tiger_context ctx_tiger; + //static std::chrono::duration[16]; + static unsigned char pblank[1]; + arith_uint512 hash[23]; + uint32_t permutation_1[HASH_FUNC_COUNT_1]; + uint32_t permutation_2[HASH_FUNC_COUNT_2 + HASH_FUNC_COUNT_1]; + uint32_t permutation_3[HASH_FUNC_COUNT_3 + HASH_FUNC_COUNT_2 + HASH_FUNC_COUNT_1]; + //Init1 + for (uint32_t i = 1; i < HASH_FUNC_COUNT_1; i++) { + permutation_1[i] = i; + } + + //Init2 + for (uint32_t i = HASH_FUNC_COUNT_1; i < HASH_FUNC_COUNT_2 + HASH_FUNC_COUNT_1; i++) { + permutation_2[i] = i; + } + + //Init3 + for (uint32_t i = HASH_FUNC_COUNT_1 + HASH_FUNC_COUNT_2; i < HASH_FUNC_COUNT_3 + HASH_FUNC_COUNT_2 + HASH_FUNC_COUNT_1; i++) { + permutation_3[i] = i; + } + + uint32_t steps_1 = (timestamp - HASH_FUNC_BASE_TIMESTAMP_1) % HASH_FUNC_COUNT_PERMUTATIONS_7; + for (uint32_t i = 0; i < steps_1; i++) { + std::next_permutation(permutation_1, permutation_1 + HASH_FUNC_COUNT_1); + } + + uint32_t steps_2 = (timestamp+ HASH_FUNC_VAR_1 - HASH_FUNC_BASE_TIMESTAMP_1) % HASH_FUNC_COUNT_PERMUTATIONS; + for (uint32_t i = 0; i < steps_2; i++) { + std::next_permutation(permutation_2 + HASH_FUNC_COUNT_1, permutation_2 + HASH_FUNC_COUNT_1 + HASH_FUNC_COUNT_2); + } + + uint32_t steps_3 = (timestamp+ HASH_FUNC_VAR_2 - HASH_FUNC_BASE_TIMESTAMP_1) % HASH_FUNC_COUNT_PERMUTATIONS_7; + for (uint32_t i = 0; i < steps_3; i++) { + std::next_permutation(permutation_3 + HASH_FUNC_COUNT_1 + HASH_FUNC_COUNT_2, permutation_3 + HASH_FUNC_COUNT_1 + HASH_FUNC_COUNT_2 + HASH_FUNC_COUNT_3); + } + + int lenToHash = 64; + //int lenToHash_big = 128; + int lenToHashinit = (pend - pbegin) * sizeof(pbegin[0]); + const void *toHash; + const void *toHashinit = (pbegin == pend ? pblank : static_cast(&pbegin[0])); + + sph_blake512_init(&ctx_blake); + sph_blake512 (&ctx_blake, toHashinit, lenToHashinit); + sph_blake512_close(&ctx_blake, static_cast(&hash[0])); + + for (int i = 1; i < HASH_FUNC_COUNT_1; i++) { + toHash = static_cast(&hash[i-1]);; + switch (permutation_1[i]) { + case 1: + // 3000 + 700 + sph_echo512_init(&ctx_echo); + sph_echo512(&ctx_echo, toHash, lenToHash); + sph_echo512_close(&ctx_echo, static_cast(&hash[i])); + + sph_blake512_init(&ctx_blake); + sph_blake512(&ctx_blake, static_cast(&hash[i]), 64); + sph_blake512_close(&ctx_blake, static_cast(&hash[i])); + break; + case 2: + // 700 +3500 + sph_simd512_init(&ctx_simd); + sph_simd512(&ctx_simd, toHash, lenToHash); + sph_simd512_close(&ctx_simd, static_cast(&hash[i])); + + sph_bmw512_init(&ctx_bmw); + sph_bmw512(&ctx_bmw, static_cast(&hash[i]), 64); + sph_bmw512_close(&ctx_bmw, static_cast(&hash[i])); + break; + case 3: + // 4000 + sph_groestl512_init(&ctx_groestl); + sph_groestl512(&ctx_groestl, toHash, lenToHash); + sph_groestl512_close(&ctx_groestl, static_cast(&hash[i])); + break; + case 4: + // 2000 + 2100 + sph_whirlpool_init(&ctx_whirlpool); + sph_whirlpool(&ctx_whirlpool, toHash, lenToHash); + sph_whirlpool_close(&ctx_whirlpool, static_cast(&hash[i])); + + sph_jh512_init(&ctx_jh); + sph_jh512(&ctx_jh, static_cast(&hash[i]), 64); + sph_jh512_close(&ctx_jh, static_cast(&hash[i])); + break; + case 5: + // 1000 + 700 + sph_gost512_init(&ctx_gost); + sph_gost512 (&ctx_gost, toHash, lenToHash);; + sph_gost512_close(&ctx_gost, static_cast(&hash[i])); + + sph_keccak512_init(&ctx_keccak); + sph_keccak512(&ctx_keccak, static_cast(&hash[i]), 64); + sph_keccak512_close(&ctx_keccak, static_cast(&hash[i])); + break; + case 6: + // 1000 + 4000 + sph_fugue512_init(&ctx_fugue); + sph_fugue512(&ctx_fugue, toHash, lenToHash); + sph_fugue512_close(&ctx_fugue, static_cast(&hash[i])); + + sph_skein512_init(&ctx_skein); + sph_skein512(&ctx_skein, static_cast(&hash[i]), 64); + sph_skein512_close(&ctx_skein, static_cast(&hash[i])); + break; + case 7: + // 1800 + 2000 + sph_shavite512_init(&ctx_shavite); + sph_shavite512(&ctx_shavite, toHash, lenToHash); + sph_shavite512_close(&ctx_shavite, static_cast(&hash[i])); + + sph_luffa512_init(&ctx_luffa); + sph_luffa512(&ctx_luffa, static_cast(&hash[i]), 64); + sph_luffa512_close(&ctx_luffa, static_cast(&hash[i])); + break; + } + } + for (int i = HASH_FUNC_COUNT_1; i < HASH_FUNC_COUNT_1 + HASH_FUNC_COUNT_2; i++) { + toHash = static_cast(&hash[i-1]);; + switch (permutation_2[i]) { + case 8: + // 2100 +2000 + sph_whirlpool_init(&ctx_whirlpool); + sph_whirlpool(&ctx_whirlpool, toHash, lenToHash); + sph_whirlpool_close(&ctx_whirlpool, static_cast(&hash[i])); + + sph_cubehash512_init(&ctx_cubehash); + sph_cubehash512(&ctx_cubehash, static_cast(&hash[i]), 64); + sph_cubehash512_close(&ctx_cubehash, static_cast(&hash[i])); + break; + case 9: + // 1800 + 2100 + sph_jh512_init(&ctx_jh); + sph_jh512(&ctx_jh, toHash, lenToHash); + sph_jh512_close(&ctx_jh, static_cast(&hash[i])); + + sph_shavite512_init(&ctx_shavite); + sph_shavite512(&ctx_shavite, static_cast(&hash[i]), 64); + sph_shavite512_close(&ctx_shavite, static_cast(&hash[i])); + break; + case 10: + // 3500 + 700 + sph_blake512_init(&ctx_blake); + sph_blake512(&ctx_blake, toHash, lenToHash); + sph_blake512_close(&ctx_blake, static_cast(&hash[i])); + + sph_simd512_init(&ctx_simd); + sph_simd512(&ctx_simd, static_cast(&hash[i]), 64); + sph_simd512_close(&ctx_simd, static_cast(&hash[i])); + break; + case 11: + // 3000 + 1000 + sph_shabal512_init(&ctx_shabal); + sph_shabal512(&ctx_shabal, toHash, lenToHash); + sph_shabal512_close(&ctx_shabal, static_cast(&hash[i])); + + sph_echo512_init(&ctx_echo); + sph_echo512(&ctx_echo, static_cast(&hash[i]), 64); + sph_echo512_close(&ctx_echo, static_cast(&hash[i])); + break; + case 12: + // 5000 + sph_hamsi512_init(&ctx_hamsi); + sph_hamsi512(&ctx_hamsi, toHash, lenToHash); + sph_hamsi512_close(&ctx_hamsi, static_cast(&hash[i])); + break; + case 13: + // 4000 + 700 + sph_bmw512_init(&ctx_bmw); + sph_bmw512(&ctx_bmw, toHash, lenToHash); + sph_bmw512_close(&ctx_bmw, static_cast(&hash[i])); + + sph_fugue512_init(&ctx_fugue); + sph_fugue512(&ctx_fugue, static_cast(&hash[i]), 64); + sph_fugue512_close(&ctx_fugue, static_cast(&hash[i])); + break; + case 14: + // 1000 +1000 + sph_keccak512_init(&ctx_keccak); + sph_keccak512(&ctx_keccak, toHash, lenToHash);; + sph_keccak512_close(&ctx_keccak, static_cast(&hash[i])); + + sph_shabal512_init(&ctx_shabal); + sph_shabal512(&ctx_shabal, static_cast(&hash[i]), 64); + sph_shabal512_close(&ctx_shabal, static_cast(&hash[i])); + break; + case 15: + // 2000 + 2000 + sph_luffa512_init(&ctx_luffa); + sph_luffa512(&ctx_luffa, toHash, lenToHash); + sph_luffa512_close(&ctx_luffa, static_cast(&hash[i])); + + sph_whirlpool_init(&ctx_whirlpool); + sph_whirlpool(&ctx_whirlpool, static_cast(&hash[i]), 64); + sph_whirlpool_close(&ctx_whirlpool, static_cast(&hash[i])); + break; + } + } + for (int i = HASH_FUNC_COUNT_2; i < HASH_FUNC_COUNT_1 + HASH_FUNC_COUNT_2 + HASH_FUNC_COUNT_3; i++) { + toHash = static_cast(&hash[i-1]);; + switch (permutation_3[i]) { + case 16: + // 700 + 2000 + sph_sha512_init(&ctx_sha512); + sph_sha512(&ctx_sha512, toHash, lenToHash); + sph_sha512_close(&ctx_sha512, static_cast(&hash[i])); + + sph_haval256_5_init(&ctx_haval); + sph_haval256_5 (&ctx_haval, static_cast(&hash[i]), 64); + sph_haval256_5_close(&ctx_haval, static_cast(&hash[i])); + break; + case 17: + // 4000 + 700 + sph_skein512_init(&ctx_skein); + sph_skein512(&ctx_skein, toHash, lenToHash); + sph_skein512_close(&ctx_skein, static_cast(&hash[i])); + + sph_groestl512_init(&ctx_groestl); + sph_groestl512(&ctx_groestl, static_cast(&hash[i]), 64); + sph_groestl512_close(&ctx_groestl, static_cast(&hash[i])); + break; + case 18: + // 700 + 5000 + sph_simd512_init(&ctx_simd); + sph_simd512(&ctx_simd, toHash, lenToHash); + sph_simd512_close(&ctx_simd, static_cast(&hash[i])); + + sph_hamsi512_init(&ctx_hamsi); + sph_hamsi512(&ctx_hamsi, static_cast(&hash[i]), 64); + sph_hamsi512_close(&ctx_hamsi, static_cast(&hash[i])); + break; + case 19: + // 1000 + 2000 + sph_gost512_init(&ctx_gost); + sph_gost512 (&ctx_gost, toHash, lenToHash);; + sph_gost512_close(&ctx_gost, static_cast(&hash[i])); + + sph_haval256_5_init(&ctx_haval); + sph_haval256_5 (&ctx_haval, static_cast(&hash[i]), 64); + sph_haval256_5_close(&ctx_haval, static_cast(&hash[i])); + break; + case 20: + // 2100 + 700 + sph_cubehash512_init(&ctx_cubehash); + sph_cubehash512(&ctx_cubehash, toHash, lenToHash); + sph_cubehash512_close(&ctx_cubehash, static_cast(&hash[i])); + + sph_sha512_init(&ctx_sha512); + sph_sha512(&ctx_sha512, static_cast(&hash[i]), 64); + sph_sha512_close(&ctx_sha512, static_cast(&hash[i])); + break; + case 21: + // 1800 + 3000 + sph_echo512_init(&ctx_echo); + sph_echo512(&ctx_echo, toHash, lenToHash); + sph_echo512_close(&ctx_echo, static_cast(&hash[i])); + + sph_shavite512_init(&ctx_shavite); + sph_shavite512(&ctx_shavite, static_cast(&hash[i]), 64); + sph_shavite512_close(&ctx_shavite, static_cast(&hash[i])); + break; + case 22: + // 2000 + 1000 + sph_luffa512_init(&ctx_luffa); + sph_luffa512(&ctx_luffa, toHash, lenToHash); + sph_luffa512_close(&ctx_luffa, static_cast(&hash[i])); + + sph_shabal512_init(&ctx_shabal); + sph_shabal512(&ctx_shabal, static_cast(&hash[i]), 64); + sph_shabal512_close(&ctx_shabal, static_cast(&hash[i]));; + break; + } + + } +return ArithToUint256(hash[22].trim256()); +} + +#endif // BITCORE_CRYPTO_MEGA_BTX_H diff --git a/src/crypto/sph_haval.h b/src/crypto/sph_haval.h new file mode 100644 index 00000000..123f3b73 --- /dev/null +++ b/src/crypto/sph_haval.h @@ -0,0 +1,976 @@ +/* $Id: sph_haval.h 218 2010-06-08 17:06:34Z tp $ */ +/** + * HAVAL interface. + * + * HAVAL is actually a family of 15 hash functions, depending on whether + * the internal computation uses 3, 4 or 5 passes, and on the output + * length, which is 128, 160, 192, 224 or 256 bits. This implementation + * provides interface functions for all 15, which internally map to + * three cores (depending on the number of passes). Note that output + * lengths other than 256 bits are not obtained by a simple truncation + * of a longer result; the requested length is encoded within the + * padding data. + * + * HAVAL was published in: Yuliang Zheng, Josef Pieprzyk and Jennifer + * Seberry: "HAVAL -- a one-way hashing algorithm with variable length + * of output", Advances in Cryptology -- AUSCRYPT'92, Lecture Notes in + * Computer Science, Vol.718, pp.83-104, Springer-Verlag, 1993. + * + * This paper, and a reference implementation, are available on the + * Calyptix web site: http://labs.calyptix.com/haval.php + * + * The HAVAL reference paper is quite unclear on the data encoding + * details, i.e. endianness (both byte order within a 32-bit word, and + * word order within a message block). This implementation has been + * made compatible with the reference implementation referenced above. + * + * @warning A collision for HAVAL-128/3 (HAVAL with three passes and + * 128-bit output) has been published; this function is thus considered + * as cryptographically broken. The status for other variants is unclear; + * use only with care. + * + * ==========================(LICENSE BEGIN)============================ + * + * Copyright (c) 2007-2010 Projet RNRT SAPHIR + * + * Permission is hereby granted, free of charge, to any person obtaining + * a copy of this software and associated documentation files (the + * "Software"), to deal in the Software without restriction, including + * without limitation the rights to use, copy, modify, merge, publish, + * distribute, sublicense, and/or sell copies of the Software, and to + * permit persons to whom the Software is furnished to do so, subject to + * the following conditions: + * + * The above copyright notice and this permission notice shall be + * included in all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, + * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF + * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. + * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY + * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, + * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE + * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + * + * ===========================(LICENSE END)============================= + * + * @file sph_haval.h + * @author Thomas Pornin + */ + +#ifndef BITCORE_CRYPTO_SPH_HAVAL_H +#define BITCORE_CRYPTO_SPH_HAVAL_H + +#ifdef __cplusplus +extern "C"{ +#endif + +#include +#include + +/** + * Output size (in bits) for HAVAL-128/3. + */ +#define SPH_SIZE_haval128_3 128 + +/** + * Output size (in bits) for HAVAL-128/4. + */ +#define SPH_SIZE_haval128_4 128 + +/** + * Output size (in bits) for HAVAL-128/5. + */ +#define SPH_SIZE_haval128_5 128 + +/** + * Output size (in bits) for HAVAL-160/3. + */ +#define SPH_SIZE_haval160_3 160 + +/** + * Output size (in bits) for HAVAL-160/4. + */ +#define SPH_SIZE_haval160_4 160 + +/** + * Output size (in bits) for HAVAL-160/5. + */ +#define SPH_SIZE_haval160_5 160 + +/** + * Output size (in bits) for HAVAL-192/3. + */ +#define SPH_SIZE_haval192_3 192 + +/** + * Output size (in bits) for HAVAL-192/4. + */ +#define SPH_SIZE_haval192_4 192 + +/** + * Output size (in bits) for HAVAL-192/5. + */ +#define SPH_SIZE_haval192_5 192 + +/** + * Output size (in bits) for HAVAL-224/3. + */ +#define SPH_SIZE_haval224_3 224 + +/** + * Output size (in bits) for HAVAL-224/4. + */ +#define SPH_SIZE_haval224_4 224 + +/** + * Output size (in bits) for HAVAL-224/5. + */ +#define SPH_SIZE_haval224_5 224 + +/** + * Output size (in bits) for HAVAL-256/3. + */ +#define SPH_SIZE_haval256_3 256 + +/** + * Output size (in bits) for HAVAL-256/4. + */ +#define SPH_SIZE_haval256_4 256 + +/** + * Output size (in bits) for HAVAL-256/5. + */ +#define SPH_SIZE_haval256_5 256 + +/** + * This structure is a context for HAVAL computations: it contains the + * intermediate values and some data from the last entered block. Once + * a HAVAL computation has been performed, the context can be reused for + * another computation. + * + * The contents of this structure are private. A running HAVAL computation + * can be cloned by copying the context (e.g. with a simple + * memcpy()). + */ +typedef struct { +#ifndef DOXYGEN_IGNORE + unsigned char buf[128]; /* first field, for alignment */ + sph_u32 s0, s1, s2, s3, s4, s5, s6, s7; + unsigned olen, passes; +#if SPH_64 + sph_u64 count; +#else + sph_u32 count_high, count_low; +#endif +#endif +} sph_haval_context; + +/** + * Type for a HAVAL-128/3 context (identical to the common context). + */ +typedef sph_haval_context sph_haval128_3_context; + +/** + * Type for a HAVAL-128/4 context (identical to the common context). + */ +typedef sph_haval_context sph_haval128_4_context; + +/** + * Type for a HAVAL-128/5 context (identical to the common context). + */ +typedef sph_haval_context sph_haval128_5_context; + +/** + * Type for a HAVAL-160/3 context (identical to the common context). + */ +typedef sph_haval_context sph_haval160_3_context; + +/** + * Type for a HAVAL-160/4 context (identical to the common context). + */ +typedef sph_haval_context sph_haval160_4_context; + +/** + * Type for a HAVAL-160/5 context (identical to the common context). + */ +typedef sph_haval_context sph_haval160_5_context; + +/** + * Type for a HAVAL-192/3 context (identical to the common context). + */ +typedef sph_haval_context sph_haval192_3_context; + +/** + * Type for a HAVAL-192/4 context (identical to the common context). + */ +typedef sph_haval_context sph_haval192_4_context; + +/** + * Type for a HAVAL-192/5 context (identical to the common context). + */ +typedef sph_haval_context sph_haval192_5_context; + +/** + * Type for a HAVAL-224/3 context (identical to the common context). + */ +typedef sph_haval_context sph_haval224_3_context; + +/** + * Type for a HAVAL-224/4 context (identical to the common context). + */ +typedef sph_haval_context sph_haval224_4_context; + +/** + * Type for a HAVAL-224/5 context (identical to the common context). + */ +typedef sph_haval_context sph_haval224_5_context; + +/** + * Type for a HAVAL-256/3 context (identical to the common context). + */ +typedef sph_haval_context sph_haval256_3_context; + +/** + * Type for a HAVAL-256/4 context (identical to the common context). + */ +typedef sph_haval_context sph_haval256_4_context; + +/** + * Type for a HAVAL-256/5 context (identical to the common context). + */ +typedef sph_haval_context sph_haval256_5_context; + +/** + * Initialize the context for HAVAL-128/3. + * + * @param cc context to initialize (pointer to a + * sph_haval128_3_context structure) + */ +void sph_haval128_3_init(void *cc); + +/** + * Process some data bytes for HAVAL-128/3. If len is 0, + * then this function does nothing. + * + * @param cc the HAVAL-128/3 context + * @param data the input data + * @param len the input data length (in bytes) + */ +void sph_haval128_3(void *cc, const void *data, size_t len); + +/** + * Close a HAVAL-128/3 computation. The output buffer must be wide + * enough to accomodate the result (16 bytes). The context is automatically + * reinitialized. + * + * @param cc the HAVAL-128/3 context + * @param dst the output buffer + */ +void sph_haval128_3_close(void *cc, void *dst); + +/** + * Close a HAVAL-128/3 computation. Up to 7 extra input bits may be added + * to the input message; these are the n upper bits of + * the ub byte (i.e. the first extra bit has value 128 in + * ub, the second extra bit has value 64, and so on). Other + * bits in ub are ignored. + * + * The output buffer must be wide enough to accomodate the result (16 + * bytes). The context is automatically reinitialized. + * + * @param cc the HAVAL-128/3 context + * @param ub the extra bits + * @param n the number of extra bits (0 to 7) + * @param dst the output buffer + */ +void sph_haval128_3_addbits_and_close(void *cc, + unsigned ub, unsigned n, void *dst); + +/** + * Initialize the context for HAVAL-128/4. + * + * @param cc context to initialize (pointer to a + * sph_haval128_4_context structure) + */ +void sph_haval128_4_init(void *cc); + +/** + * Process some data bytes for HAVAL-128/4. If len is 0, + * then this function does nothing. + * + * @param cc the HAVAL-128/4 context + * @param data the input data + * @param len the input data length (in bytes) + */ +void sph_haval128_4(void *cc, const void *data, size_t len); + +/** + * Close a HAVAL-128/4 computation. The output buffer must be wide + * enough to accomodate the result (16 bytes). The context is automatically + * reinitialized. + * + * @param cc the HAVAL-128/4 context + * @param dst the output buffer + */ +void sph_haval128_4_close(void *cc, void *dst); + +/** + * Close a HAVAL-128/4 computation. Up to 7 extra input bits may be added + * to the input message; these are the n upper bits of + * the ub byte (i.e. the first extra bit has value 128 in + * ub, the second extra bit has value 64, and so on). Other + * bits in ub are ignored. + * + * The output buffer must be wide enough to accomodate the result (16 + * bytes). The context is automatically reinitialized. + * + * @param cc the HAVAL-128/4 context + * @param ub the extra bits + * @param n the number of extra bits (0 to 7) + * @param dst the output buffer + */ +void sph_haval128_4_addbits_and_close(void *cc, + unsigned ub, unsigned n, void *dst); + +/** + * Initialize the context for HAVAL-128/5. + * + * @param cc context to initialize (pointer to a + * sph_haval128_5_context structure) + */ +void sph_haval128_5_init(void *cc); + +/** + * Process some data bytes for HAVAL-128/5. If len is 0, + * then this function does nothing. + * + * @param cc the HAVAL-128/5 context + * @param data the input data + * @param len the input data length (in bytes) + */ +void sph_haval128_5(void *cc, const void *data, size_t len); + +/** + * Close a HAVAL-128/5 computation. The output buffer must be wide + * enough to accomodate the result (16 bytes). The context is automatically + * reinitialized. + * + * @param cc the HAVAL-128/5 context + * @param dst the output buffer + */ +void sph_haval128_5_close(void *cc, void *dst); + +/** + * Close a HAVAL-128/5 computation. Up to 7 extra input bits may be added + * to the input message; these are the n upper bits of + * the ub byte (i.e. the first extra bit has value 128 in + * ub, the second extra bit has value 64, and so on). Other + * bits in ub are ignored. + * + * The output buffer must be wide enough to accomodate the result (16 + * bytes). The context is automatically reinitialized. + * + * @param cc the HAVAL-128/5 context + * @param ub the extra bits + * @param n the number of extra bits (0 to 7) + * @param dst the output buffer + */ +void sph_haval128_5_addbits_and_close(void *cc, + unsigned ub, unsigned n, void *dst); + +/** + * Initialize the context for HAVAL-160/3. + * + * @param cc context to initialize (pointer to a + * sph_haval160_3_context structure) + */ +void sph_haval160_3_init(void *cc); + +/** + * Process some data bytes for HAVAL-160/3. If len is 0, + * then this function does nothing. + * + * @param cc the HAVAL-160/3 context + * @param data the input data + * @param len the input data length (in bytes) + */ +void sph_haval160_3(void *cc, const void *data, size_t len); + +/** + * Close a HAVAL-160/3 computation. The output buffer must be wide + * enough to accomodate the result (20 bytes). The context is automatically + * reinitialized. + * + * @param cc the HAVAL-160/3 context + * @param dst the output buffer + */ +void sph_haval160_3_close(void *cc, void *dst); + +/** + * Close a HAVAL-160/3 computation. Up to 7 extra input bits may be added + * to the input message; these are the n upper bits of + * the ub byte (i.e. the first extra bit has value 128 in + * ub, the second extra bit has value 64, and so on). Other + * bits in ub are ignored. + * + * The output buffer must be wide enough to accomodate the result (20 + * bytes). The context is automatically reinitialized. + * + * @param cc the HAVAL-160/3 context + * @param ub the extra bits + * @param n the number of extra bits (0 to 7) + * @param dst the output buffer + */ +void sph_haval160_3_addbits_and_close(void *cc, + unsigned ub, unsigned n, void *dst); + +/** + * Initialize the context for HAVAL-160/4. + * + * @param cc context to initialize (pointer to a + * sph_haval160_4_context structure) + */ +void sph_haval160_4_init(void *cc); + +/** + * Process some data bytes for HAVAL-160/4. If len is 0, + * then this function does nothing. + * + * @param cc the HAVAL-160/4 context + * @param data the input data + * @param len the input data length (in bytes) + */ +void sph_haval160_4(void *cc, const void *data, size_t len); + +/** + * Close a HAVAL-160/4 computation. The output buffer must be wide + * enough to accomodate the result (20 bytes). The context is automatically + * reinitialized. + * + * @param cc the HAVAL-160/4 context + * @param dst the output buffer + */ +void sph_haval160_4_close(void *cc, void *dst); + +/** + * Close a HAVAL-160/4 computation. Up to 7 extra input bits may be added + * to the input message; these are the n upper bits of + * the ub byte (i.e. the first extra bit has value 128 in + * ub, the second extra bit has value 64, and so on). Other + * bits in ub are ignored. + * + * The output buffer must be wide enough to accomodate the result (20 + * bytes). The context is automatically reinitialized. + * + * @param cc the HAVAL-160/4 context + * @param ub the extra bits + * @param n the number of extra bits (0 to 7) + * @param dst the output buffer + */ +void sph_haval160_3_addbits_and_close(void *cc, + unsigned ub, unsigned n, void *dst); + +/** + * Initialize the context for HAVAL-160/5. + * + * @param cc context to initialize (pointer to a + * sph_haval160_5_context structure) + */ +void sph_haval160_5_init(void *cc); + +/** + * Process some data bytes for HAVAL-160/5. If len is 0, + * then this function does nothing. + * + * @param cc the HAVAL-160/5 context + * @param data the input data + * @param len the input data length (in bytes) + */ +void sph_haval160_5(void *cc, const void *data, size_t len); + +/** + * Close a HAVAL-160/5 computation. The output buffer must be wide + * enough to accomodate the result (20 bytes). The context is automatically + * reinitialized. + * + * @param cc the HAVAL-160/5 context + * @param dst the output buffer + */ +void sph_haval160_5_close(void *cc, void *dst); + +/** + * Close a HAVAL-160/5 computation. Up to 7 extra input bits may be added + * to the input message; these are the n upper bits of + * the ub byte (i.e. the first extra bit has value 128 in + * ub, the second extra bit has value 64, and so on). Other + * bits in ub are ignored. + * + * The output buffer must be wide enough to accomodate the result (20 + * bytes). The context is automatically reinitialized. + * + * @param cc the HAVAL-160/5 context + * @param ub the extra bits + * @param n the number of extra bits (0 to 7) + * @param dst the output buffer + */ +void sph_haval160_5_addbits_and_close(void *cc, + unsigned ub, unsigned n, void *dst); + +/** + * Initialize the context for HAVAL-192/3. + * + * @param cc context to initialize (pointer to a + * sph_haval192_3_context structure) + */ +void sph_haval192_3_init(void *cc); + +/** + * Process some data bytes for HAVAL-192/3. If len is 0, + * then this function does nothing. + * + * @param cc the HAVAL-192/3 context + * @param data the input data + * @param len the input data length (in bytes) + */ +void sph_haval192_3(void *cc, const void *data, size_t len); + +/** + * Close a HAVAL-192/3 computation. The output buffer must be wide + * enough to accomodate the result (24 bytes). The context is automatically + * reinitialized. + * + * @param cc the HAVAL-192/3 context + * @param dst the output buffer + */ +void sph_haval192_3_close(void *cc, void *dst); + +/** + * Close a HAVAL-192/3 computation. Up to 7 extra input bits may be added + * to the input message; these are the n upper bits of + * the ub byte (i.e. the first extra bit has value 128 in + * ub, the second extra bit has value 64, and so on). Other + * bits in ub are ignored. + * + * The output buffer must be wide enough to accomodate the result (24 + * bytes). The context is automatically reinitialized. + * + * @param cc the HAVAL-192/3 context + * @param ub the extra bits + * @param n the number of extra bits (0 to 7) + * @param dst the output buffer + */ +void sph_haval192_3_addbits_and_close(void *cc, + unsigned ub, unsigned n, void *dst); + +/** + * Initialize the context for HAVAL-192/4. + * + * @param cc context to initialize (pointer to a + * sph_haval192_4_context structure) + */ +void sph_haval192_4_init(void *cc); + +/** + * Process some data bytes for HAVAL-192/4. If len is 0, + * then this function does nothing. + * + * @param cc the HAVAL-192/4 context + * @param data the input data + * @param len the input data length (in bytes) + */ +void sph_haval192_4(void *cc, const void *data, size_t len); + +/** + * Close a HAVAL-192/4 computation. The output buffer must be wide + * enough to accomodate the result (24 bytes). The context is automatically + * reinitialized. + * + * @param cc the HAVAL-192/4 context + * @param dst the output buffer + */ +void sph_haval192_4_close(void *cc, void *dst); + +/** + * Close a HAVAL-192/4 computation. Up to 7 extra input bits may be added + * to the input message; these are the n upper bits of + * the ub byte (i.e. the first extra bit has value 128 in + * ub, the second extra bit has value 64, and so on). Other + * bits in ub are ignored. + * + * The output buffer must be wide enough to accomodate the result (24 + * bytes). The context is automatically reinitialized. + * + * @param cc the HAVAL-192/4 context + * @param ub the extra bits + * @param n the number of extra bits (0 to 7) + * @param dst the output buffer + */ +void sph_haval192_4_addbits_and_close(void *cc, + unsigned ub, unsigned n, void *dst); + +/** + * Initialize the context for HAVAL-192/5. + * + * @param cc context to initialize (pointer to a + * sph_haval192_5_context structure) + */ +void sph_haval192_5_init(void *cc); + +/** + * Process some data bytes for HAVAL-192/5. If len is 0, + * then this function does nothing. + * + * @param cc the HAVAL-192/5 context + * @param data the input data + * @param len the input data length (in bytes) + */ +void sph_haval192_5(void *cc, const void *data, size_t len); + +/** + * Close a HAVAL-192/5 computation. The output buffer must be wide + * enough to accomodate the result (24 bytes). The context is automatically + * reinitialized. + * + * @param cc the HAVAL-192/5 context + * @param dst the output buffer + */ +void sph_haval192_5_close(void *cc, void *dst); + +/** + * Close a HAVAL-192/5 computation. Up to 7 extra input bits may be added + * to the input message; these are the n upper bits of + * the ub byte (i.e. the first extra bit has value 128 in + * ub, the second extra bit has value 64, and so on). Other + * bits in ub are ignored. + * + * The output buffer must be wide enough to accomodate the result (24 + * bytes). The context is automatically reinitialized. + * + * @param cc the HAVAL-192/5 context + * @param ub the extra bits + * @param n the number of extra bits (0 to 7) + * @param dst the output buffer + */ +void sph_haval192_5_addbits_and_close(void *cc, + unsigned ub, unsigned n, void *dst); + +/** + * Initialize the context for HAVAL-224/3. + * + * @param cc context to initialize (pointer to a + * sph_haval224_3_context structure) + */ +void sph_haval224_3_init(void *cc); + +/** + * Process some data bytes for HAVAL-224/3. If len is 0, + * then this function does nothing. + * + * @param cc the HAVAL-224/3 context + * @param data the input data + * @param len the input data length (in bytes) + */ +void sph_haval224_3(void *cc, const void *data, size_t len); + +/** + * Close a HAVAL-224/3 computation. The output buffer must be wide + * enough to accomodate the result (28 bytes). The context is automatically + * reinitialized. + * + * @param cc the HAVAL-224/3 context + * @param dst the output buffer + */ +void sph_haval224_3_close(void *cc, void *dst); + +/** + * Close a HAVAL-224/3 computation. Up to 7 extra input bits may be added + * to the input message; these are the n upper bits of + * the ub byte (i.e. the first extra bit has value 128 in + * ub, the second extra bit has value 64, and so on). Other + * bits in ub are ignored. + * + * The output buffer must be wide enough to accomodate the result (28 + * bytes). The context is automatically reinitialized. + * + * @param cc the HAVAL-224/3 context + * @param ub the extra bits + * @param n the number of extra bits (0 to 7) + * @param dst the output buffer + */ +void sph_haval224_3_addbits_and_close(void *cc, + unsigned ub, unsigned n, void *dst); + +/** + * Initialize the context for HAVAL-224/4. + * + * @param cc context to initialize (pointer to a + * sph_haval224_4_context structure) + */ +void sph_haval224_4_init(void *cc); + +/** + * Process some data bytes for HAVAL-224/4. If len is 0, + * then this function does nothing. + * + * @param cc the HAVAL-224/4 context + * @param data the input data + * @param len the input data length (in bytes) + */ +void sph_haval224_4(void *cc, const void *data, size_t len); + +/** + * Close a HAVAL-224/4 computation. The output buffer must be wide + * enough to accomodate the result (28 bytes). The context is automatically + * reinitialized. + * + * @param cc the HAVAL-224/4 context + * @param dst the output buffer + */ +void sph_haval224_4_close(void *cc, void *dst); + +/** + * Close a HAVAL-224/4 computation. Up to 7 extra input bits may be added + * to the input message; these are the n upper bits of + * the ub byte (i.e. the first extra bit has value 128 in + * ub, the second extra bit has value 64, and so on). Other + * bits in ub are ignored. + * + * The output buffer must be wide enough to accomodate the result (28 + * bytes). The context is automatically reinitialized. + * + * @param cc the HAVAL-224/4 context + * @param ub the extra bits + * @param n the number of extra bits (0 to 7) + * @param dst the output buffer + */ +void sph_haval224_4_addbits_and_close(void *cc, + unsigned ub, unsigned n, void *dst); + +/** + * Initialize the context for HAVAL-224/5. + * + * @param cc context to initialize (pointer to a + * sph_haval224_5_context structure) + */ +void sph_haval224_5_init(void *cc); + +/** + * Process some data bytes for HAVAL-224/5. If len is 0, + * then this function does nothing. + * + * @param cc the HAVAL-224/5 context + * @param data the input data + * @param len the input data length (in bytes) + */ +void sph_haval224_5(void *cc, const void *data, size_t len); + +/** + * Close a HAVAL-224/5 computation. The output buffer must be wide + * enough to accomodate the result (28 bytes). The context is automatically + * reinitialized. + * + * @param cc the HAVAL-224/5 context + * @param dst the output buffer + */ +void sph_haval224_5_close(void *cc, void *dst); + +/** + * Close a HAVAL-224/5 computation. Up to 7 extra input bits may be added + * to the input message; these are the n upper bits of + * the ub byte (i.e. the first extra bit has value 128 in + * ub, the second extra bit has value 64, and so on). Other + * bits in ub are ignored. + * + * The output buffer must be wide enough to accomodate the result (28 + * bytes). The context is automatically reinitialized. + * + * @param cc the HAVAL-224/5 context + * @param ub the extra bits + * @param n the number of extra bits (0 to 7) + * @param dst the output buffer + */ +void sph_haval224_5_addbits_and_close(void *cc, + unsigned ub, unsigned n, void *dst); + +/** + * Initialize the context for HAVAL-256/3. + * + * @param cc context to initialize (pointer to a + * sph_haval256_3_context structure) + */ +void sph_haval256_3_init(void *cc); + +/** + * Process some data bytes for HAVAL-256/3. If len is 0, + * then this function does nothing. + * + * @param cc the HAVAL-256/3 context + * @param data the input data + * @param len the input data length (in bytes) + */ +void sph_haval256_3(void *cc, const void *data, size_t len); + +/** + * Close a HAVAL-256/3 computation. The output buffer must be wide + * enough to accomodate the result (32 bytes). The context is automatically + * reinitialized. + * + * @param cc the HAVAL-256/3 context + * @param dst the output buffer + */ +void sph_haval256_3_close(void *cc, void *dst); + +/** + * Close a HAVAL-256/3 computation. Up to 7 extra input bits may be added + * to the input message; these are the n upper bits of + * the ub byte (i.e. the first extra bit has value 128 in + * ub, the second extra bit has value 64, and so on). Other + * bits in ub are ignored. + * + * The output buffer must be wide enough to accomodate the result (32 + * bytes). The context is automatically reinitialized. + * + * @param cc the HAVAL-256/3 context + * @param ub the extra bits + * @param n the number of extra bits (0 to 7) + * @param dst the output buffer + */ +void sph_haval256_3_addbits_and_close(void *cc, + unsigned ub, unsigned n, void *dst); + +/** + * Initialize the context for HAVAL-256/4. + * + * @param cc context to initialize (pointer to a + * sph_haval256_4_context structure) + */ +void sph_haval256_4_init(void *cc); + +/** + * Process some data bytes for HAVAL-256/4. If len is 0, + * then this function does nothing. + * + * @param cc the HAVAL-256/4 context + * @param data the input data + * @param len the input data length (in bytes) + */ +void sph_haval256_4(void *cc, const void *data, size_t len); + +/** + * Close a HAVAL-256/4 computation. The output buffer must be wide + * enough to accomodate the result (32 bytes). The context is automatically + * reinitialized. + * + * @param cc the HAVAL-256/4 context + * @param dst the output buffer + */ +void sph_haval256_4_close(void *cc, void *dst); + +/** + * Close a HAVAL-256/4 computation. Up to 7 extra input bits may be added + * to the input message; these are the n upper bits of + * the ub byte (i.e. the first extra bit has value 128 in + * ub, the second extra bit has value 64, and so on). Other + * bits in ub are ignored. + * + * The output buffer must be wide enough to accomodate the result (32 + * bytes). The context is automatically reinitialized. + * + * @param cc the HAVAL-256/4 context + * @param ub the extra bits + * @param n the number of extra bits (0 to 7) + * @param dst the output buffer + */ +void sph_haval256_4_addbits_and_close(void *cc, + unsigned ub, unsigned n, void *dst); + +/** + * Initialize the context for HAVAL-256/5. + * + * @param cc context to initialize (pointer to a + * sph_haval256_5_context structure) + */ +void sph_haval256_5_init(void *cc); + +/** + * Process some data bytes for HAVAL-256/5. If len is 0, + * then this function does nothing. + * + * @param cc the HAVAL-256/5 context + * @param data the input data + * @param len the input data length (in bytes) + */ +void sph_haval256_5(void *cc, const void *data, size_t len); + +/** + * Close a HAVAL-256/5 computation. The output buffer must be wide + * enough to accomodate the result (32 bytes). The context is automatically + * reinitialized. + * + * @param cc the HAVAL-256/5 context + * @param dst the output buffer + */ +void sph_haval256_5_close(void *cc, void *dst); + +/** + * Close a HAVAL-256/5 computation. Up to 7 extra input bits may be added + * to the input message; these are the n upper bits of + * the ub byte (i.e. the first extra bit has value 128 in + * ub, the second extra bit has value 64, and so on). Other + * bits in ub are ignored. + * + * The output buffer must be wide enough to accomodate the result (32 + * bytes). The context is automatically reinitialized. + * + * @param cc the HAVAL-256/5 context + * @param ub the extra bits + * @param n the number of extra bits (0 to 7) + * @param dst the output buffer + */ +void sph_haval256_5_addbits_and_close(void *cc, + unsigned ub, unsigned n, void *dst); + +/** + * Apply the HAVAL compression function on the provided data. The + * msg parameter contains the 32 32-bit input blocks, + * as numerical values (hence after the little-endian decoding). The + * val parameter contains the 8 32-bit input blocks for + * the compression function; the output is written in place in this + * array. This function uses three internal passes. + * + * @param msg the message block (32 values) + * @param val the function 256-bit input and output + */ +void sph_haval_3_comp(const sph_u32 msg[32], sph_u32 val[8]); + +/** + * Apply the HAVAL compression function on the provided data. The + * msg parameter contains the 32 32-bit input blocks, + * as numerical values (hence after the little-endian decoding). The + * val parameter contains the 8 32-bit input blocks for + * the compression function; the output is written in place in this + * array. This function uses four internal passes. + * + * @param msg the message block (32 values) + * @param val the function 256-bit input and output + */ +void sph_haval_4_comp(const sph_u32 msg[32], sph_u32 val[8]); + +/** + * Apply the HAVAL compression function on the provided data. The + * msg parameter contains the 32 32-bit input blocks, + * as numerical values (hence after the little-endian decoding). The + * val parameter contains the 8 32-bit input blocks for + * the compression function; the output is written in place in this + * array. This function uses five internal passes. + * + * @param msg the message block (32 values) + * @param val the function 256-bit input and output + */ +void sph_haval_5_comp(const sph_u32 msg[32], sph_u32 val[8]); + +#ifdef __cplusplus +} +#endif +#endif // BITCORE_CRYPTO_SPH_HAVAL_H diff --git a/src/crypto/x16rv2.h b/src/crypto/x16rv2.h deleted file mode 100644 index 82a82230..00000000 --- a/src/crypto/x16rv2.h +++ /dev/null @@ -1,188 +0,0 @@ -// Copyright (c) 2009-2010 Satoshi Nakamoto -// Copyright (c) 2009-2012 Bitcoin Developers -// Copyright (c) 2014 Talkcoin Developers -// Copyright (c) 2019 Limxtec developers -// Distributed under the MIT/X11 software license, see the accompanying -// file COPYING or http://www.opensource.org/licenses/mit-license.php. - -#ifndef BITCORE_CRYPTO_X16RV2_H -#define BITCORE_CRYPTO_X16RV2_H - -#include - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -extern "C"{ -#include -#include -} - -inline int GetHashSelection(const uint256 PrevBlockHash, int index) { - assert(index >= 0); - assert(index < 16); - - #define START_OF_LAST_16_NIBBLES_OF_HASH 48 - int hashSelection = PrevBlockHash.GetNibble(START_OF_LAST_16_NIBBLES_OF_HASH + index); - return(hashSelection); -} - -extern double algoHashTotal[16]; -extern int algoHashHits[16]; - -template -inline uint256 HashX16RV2(const T1 pbegin, const T1 pend, const uint256 PrevBlockHash) -{ -// static std::chrono::duration[16]; - int hashSelection; - - sph_blake512_context ctx_blake; //0 - sph_bmw512_context ctx_bmw; //1 - sph_groestl512_context ctx_groestl; //2 - sph_jh512_context ctx_jh; //3 - sph_keccak512_context ctx_keccak; //4 - sph_skein512_context ctx_skein; //5 - sph_luffa512_context ctx_luffa; //6 - sph_cubehash512_context ctx_cubehash; //7 - sph_shavite512_context ctx_shavite; //8 - sph_simd512_context ctx_simd; //9 - sph_echo512_context ctx_echo; //A - sph_hamsi512_context ctx_hamsi; //B - sph_fugue512_context ctx_fugue; //C - sph_shabal512_context ctx_shabal; //D - sph_whirlpool_context ctx_whirlpool; //E - sph_sha512_context ctx_sha512; - sph_tiger_context ctx_tiger; - - - - static unsigned char pblank[1]; - - uint512 hash[16]; - - for (int i=0;i<16;i++) - { - const void *toHash; - int lenToHash; - if (i == 0) { - toHash = (pbegin == pend ? pblank : static_cast(&pbegin[0])); - lenToHash = (pend - pbegin) * sizeof(pbegin[0]); - } else { - toHash = static_cast(&hash[i-1]); - lenToHash = 64; // Hashsize - } - - hashSelection = GetHashSelection(PrevBlockHash, i); - - switch(hashSelection) { - case 0: - sph_blake512_init(&ctx_blake); - sph_blake512 (&ctx_blake, toHash, lenToHash); - sph_blake512_close(&ctx_blake, static_cast(&hash[i])); - break; - case 1: - sph_bmw512_init(&ctx_bmw); - sph_bmw512 (&ctx_bmw, toHash, lenToHash); - sph_bmw512_close(&ctx_bmw, static_cast(&hash[i])); - break; - case 2: - sph_groestl512_init(&ctx_groestl); - sph_groestl512 (&ctx_groestl, toHash, lenToHash); - sph_groestl512_close(&ctx_groestl, static_cast(&hash[i])); - break; - case 3: - sph_jh512_init(&ctx_jh); - sph_jh512 (&ctx_jh, toHash, lenToHash); - sph_jh512_close(&ctx_jh, static_cast(&hash[i])); - break; - case 4: - sph_tiger_init(&ctx_tiger); - sph_tiger (&ctx_tiger, toHash, lenToHash); - sph_tiger_close(&ctx_tiger, static_cast(&hash[i])); - - sph_keccak512_init(&ctx_keccak); - sph_keccak512 (&ctx_keccak, static_cast(&hash[i]), 64); - sph_keccak512_close(&ctx_keccak, static_cast(&hash[i])); - break; - case 5: - sph_skein512_init(&ctx_skein); - sph_skein512 (&ctx_skein, toHash, lenToHash); - sph_skein512_close(&ctx_skein, static_cast(&hash[i])); - break; - case 6: - sph_tiger_init(&ctx_tiger); - sph_tiger (&ctx_tiger, toHash, lenToHash); - sph_tiger_close(&ctx_tiger, static_cast(&hash[i])); - - sph_luffa512_init(&ctx_luffa); - sph_luffa512 (&ctx_luffa, static_cast(&hash[i]), 64); - sph_luffa512_close(&ctx_luffa, static_cast(&hash[i])); - break; - case 7: - sph_cubehash512_init(&ctx_cubehash); - sph_cubehash512 (&ctx_cubehash, toHash, lenToHash); - sph_cubehash512_close(&ctx_cubehash, static_cast(&hash[i])); - break; - case 8: - sph_shavite512_init(&ctx_shavite); - sph_shavite512(&ctx_shavite, toHash, lenToHash); - sph_shavite512_close(&ctx_shavite, static_cast(&hash[i])); - break; - case 9: - sph_simd512_init(&ctx_simd); - sph_simd512 (&ctx_simd, toHash, lenToHash); - sph_simd512_close(&ctx_simd, static_cast(&hash[i])); - break; - case 10: - sph_echo512_init(&ctx_echo); - sph_echo512 (&ctx_echo, toHash, lenToHash); - sph_echo512_close(&ctx_echo, static_cast(&hash[i])); - break; - case 11: - sph_hamsi512_init(&ctx_hamsi); - sph_hamsi512 (&ctx_hamsi, toHash, lenToHash); - sph_hamsi512_close(&ctx_hamsi, static_cast(&hash[i])); - break; - case 12: - sph_fugue512_init(&ctx_fugue); - sph_fugue512 (&ctx_fugue, toHash, lenToHash); - sph_fugue512_close(&ctx_fugue, static_cast(&hash[i])); - break; - case 13: - sph_shabal512_init(&ctx_shabal); - sph_shabal512 (&ctx_shabal, toHash, lenToHash); - sph_shabal512_close(&ctx_shabal, static_cast(&hash[i])); - break; - case 14: - sph_whirlpool_init(&ctx_whirlpool); - sph_whirlpool(&ctx_whirlpool, toHash, lenToHash); - sph_whirlpool_close(&ctx_whirlpool, static_cast(&hash[i])); - break; - case 15: - sph_tiger_init(&ctx_tiger); - sph_tiger (&ctx_tiger, toHash, lenToHash); - sph_tiger_close(&ctx_tiger, static_cast(&hash[i])); - - sph_sha512_init(&ctx_sha512); - sph_sha512 (&ctx_sha512, static_cast(&hash[i]), 64); - sph_sha512_close(&ctx_sha512, static_cast(&hash[i])); - break; - } - } - - return hash[15].trim256(); -} - -#endif // BITCORE_CRYPTO_X16RV2_H diff --git a/src/governance-object.h b/src/governance-object.h index 86ad44e7..f6b510de 100644 --- a/src/governance-object.h +++ b/src/governance-object.h @@ -25,8 +25,8 @@ class CGovernanceObject; class CGovernanceVote; static const int MAX_GOVERNANCE_OBJECT_DATA_SIZE = 16 * 1024; -static const int MIN_GOVERNANCE_PEER_PROTO_VERSION = 70206; -static const int GOVERNANCE_FILTER_PROTO_VERSION = 70206; +static const int MIN_GOVERNANCE_PEER_PROTO_VERSION = 80006; +static const int GOVERNANCE_FILTER_PROTO_VERSION = 80006; static const double GOVERNANCE_FILTER_FP_RATE = 0.001; diff --git a/src/masternodeman.cpp b/src/masternodeman.cpp index dbef6b3d..a5937945 100644 --- a/src/masternodeman.cpp +++ b/src/masternodeman.cpp @@ -709,11 +709,7 @@ void CMasternodeMan::ProcessMasternodeConnections(CConnman& connman) #else if(pnode->fMasternode) { #endif // ENABLE_WALLET - // FXTC BEGIN - //LogPrintf("Closing Masternode connection: peer=%d, addr=%s\n", pnode->GetId(), pnode->addr.ToString()); - LogPrintf("CMasternodeMan::ProcessMasternodeConnections -- removing node: peer=%d addr=%s nRefCount=%d fNetworkNode=%d fInbound=%d fMasternode=%d\n", - pnode->GetId(), pnode->addr.ToString(), pnode->GetRefCount(), pnode->fNetworkNode, pnode->fInbound, pnode->fMasternode); - // FXTC END + LogPrintf("Closing Masternode connection: peer=%d, addr=%s\n", pnode->GetId(), pnode->addr.ToString()); pnode->fDisconnect = true; } }); diff --git a/src/net.cpp b/src/net.cpp index edaafea8..c3eefd54 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -423,8 +423,8 @@ CNode* CConnman::ConnectNode(CAddress addrConnect, const char *pszDest, bool fCo // Dash } // FXTC BEGIN - LogPrint(BCLog::NET, "CConnman::ConnectNode -- reusing node: peer=%d addr=%s nRefCount=%d fNetworkNode=%d fInbound=%d fMasternode=%d\n", - pnode->id, pnode->addr.ToString(), pnode->GetRefCount(), pnode->fNetworkNode, pnode->fInbound, pnode->fMasternode); + LogPrint(BCLog::NET, "CConnman::ConnectNode -- reusing node: peer=%d addr=%s fNetworkNode=%d fInbound=%d fMasternode=%d\n", + pnode->id, pnode->addr.ToString(), pnode->fNetworkNode, pnode->fInbound, pnode->fMasternode); // FXTC END return pnode; // @@ -469,8 +469,8 @@ CNode* CConnman::ConnectNode(CAddress addrConnect, const char *pszDest, bool fCo // Dash } // FXTC BEGIN - LogPrint(BCLog::NET, "CConnman::ConnectNode -- reusing dest node: peer=%d addr=%s nRefCount=%d fNetworkNode=%d fInbound=%d fMasternode=%d\n", - pnode->id, pnode->addr.ToString(), pnode->GetRefCount(), pnode->fNetworkNode, pnode->fInbound, pnode->fMasternode); + LogPrint(BCLog::NET, "CConnman::ConnectNode -- reusing dest node: peer=%d addr=%s fNetworkNode=%d fInbound=%d fMasternode=%d\n", + pnode->id, pnode->addr.ToString(), pnode->fNetworkNode, pnode->fInbound, pnode->fMasternode); // FXTC END return pnode; // @@ -537,8 +537,10 @@ CNode* CConnman::ConnectNode(CAddress addrConnect, const char *pszDest, bool fCo // // FXTC BEGIN - LogPrint(BCLog::NET, "CConnman::ConnectNode -- creating node: peer=%d addr=%s nRefCount=%d fNetworkNode=%d fInbound=%d fMasternode=%d\n", - pnode->id, pnode->addr.ToString(), pnode->GetRefCount(), pnode->fNetworkNode, pnode->fInbound, pnode->fMasternode); + + LogPrint(BCLog::NET, "CConnman::ConnectNode -- creating node: peer=%d addr=%s fNetworkNode=%d fInbound=%d fMasternode=%d\n", + pnode->id, pnode->addr.ToString(), pnode->fNetworkNode, pnode->fInbound, pnode->fMasternode); + // FXTC END return pnode; @@ -1269,8 +1271,8 @@ void CConnman::ThreadSocketHandler() { if (pnode->fDisconnect) { - LogPrintf("ThreadSocketHandler -- removing node: peer=%d addr=%s nRefCount=%d fNetworkNode=%d fInbound=%d fMasternode=%d\n", - pnode->id, pnode->addr.ToString(), pnode->GetRefCount(), pnode->fNetworkNode, pnode->fInbound, pnode->fMasternode); + LogPrintf("ThreadSocketHandler -- removing node: peer=%d addr=%s fNetworkNode=%d fInbound=%d fMasternode=%d\n", + pnode->id, pnode->addr.ToString(), pnode->fNetworkNode, pnode->fInbound, pnode->fMasternode); // remove from vNodes vNodes.erase(remove(vNodes.begin(), vNodes.end(), pnode), vNodes.end()); @@ -1302,8 +1304,8 @@ void CConnman::ThreadSocketHandler() for (CNode* pnode : vNodesDisconnectedCopy) { // FXTC BEGIN - LogPrint(BCLog::NET, "ThreadSocketHandler -- disconnected node: peer=%d addr=%s nRefCount=%d fNetworkNode=%d fInbound=%d fMasternode=%d\n", - pnode->id, pnode->addr.ToString(), pnode->GetRefCount(), pnode->fNetworkNode, pnode->fInbound, pnode->fMasternode); + LogPrint(BCLog::NET, "ThreadSocketHandler -- disconnected node: peer=%d addr=%s fNetworkNode=%d fInbound=%d fMasternode=%d\n", + pnode->id, pnode->addr.ToString(), pnode->fNetworkNode, pnode->fInbound, pnode->fMasternode); // FXTC END // wait until threads are done using it if (pnode->GetRefCount() <= 0) { @@ -2129,8 +2131,8 @@ void CConnman::ThreadMnbRequestConnections() if(!pnode || pnode->fDisconnect) continue; // FXTC BEGIN - LogPrint(BCLog::NET, "ThreadMnbRequestConnections -- adding node: peer=%d addr=%s nRefCount=%d fNetworkNode=%d fInbound=%d fMasternode=%d\n", - pnode->id, pnode->addr.ToString(), pnode->GetRefCount(), pnode->fNetworkNode, pnode->fInbound, pnode->fMasternode); + LogPrint(BCLog::NET, "ThreadMnbRequestConnections -- adding node: peer=%d addr=%s fNetworkNode=%d fInbound=%d fMasternode=%d\n", + pnode->id, pnode->addr.ToString(), pnode->fNetworkNode, pnode->fInbound, pnode->fMasternode); // FXTC END grant.MoveTo(pnode->grantMasternodeOutbound); @@ -3071,16 +3073,16 @@ CNode::CNode(NodeId idIn, ServiceFlags nLocalServicesIn, int nMyStartingHeightIn } // FXTC BEGIN - LogPrint(BCLog::NET, "CNode::CNode -- added connection: peer=%d addr=%s nRefCount=%d fNetworkNode=%d fInbound=%d fMasternode=%d\n", - id, addr.ToString(), GetRefCount(), fNetworkNode, fInbound, fMasternode); + LogPrint(BCLog::NET, "CNode::CNode -- added connection: peer=%d addr=%s fNetworkNode=%d fInbound=%d fMasternode=%d\n", + id, addr.ToString(), fNetworkNode, fInbound, fMasternode); // FXTC END } CNode::~CNode() { // FXTC BEGIN - LogPrint(BCLog::NET, "CNode::~CNode -- removed connection: peer=%d addr=%s nRefCount=%d fNetworkNode=%d fInbound=%d fMasternode=%d\n", - id, addr.ToString(), GetRefCount(), fNetworkNode, fInbound, fMasternode); + LogPrint(BCLog::NET, "CNode::~CNode -- removed connection: peer=%d addr=%s fNetworkNode=%d fInbound=%d fMasternode=%d\n", + id, addr.ToString(), fNetworkNode, fInbound, fMasternode); CloseSocket(hSocket); // FXTC END } @@ -3218,8 +3220,8 @@ std::vector CConnman::CopyNodeVector() for(size_t i = 0; i < vNodes.size(); ++i) { CNode* pnode = vNodes[i]; // FXTC BEGIN - LogPrint(BCLog::NET, "CConnman::CopyNodeVector -- adding node: peer=%d addr=%s nRefCount=%d fNetworkNode=%d fInbound=%d fMasternode=%d\n", - pnode->id, pnode->addr.ToString(), pnode->GetRefCount(), pnode->fNetworkNode, pnode->fInbound, pnode->fMasternode); + LogPrint(BCLog::NET, "CConnman::CopyNodeVector -- adding node: peer=%d addr=%s fNetworkNode=%d fInbound=%d fMasternode=%d\n", + pnode->id, pnode->addr.ToString(), pnode->fNetworkNode, pnode->fInbound, pnode->fMasternode); // FXTC END pnode->AddRef(); vecNodesCopy.push_back(pnode); @@ -3233,8 +3235,8 @@ void CConnman::ReleaseNodeVector(const std::vector& vecNodes) for(size_t i = 0; i < vecNodes.size(); ++i) { CNode* pnode = vecNodes[i]; // FXTC BEGIN - LogPrint(BCLog::NET, "CConnman::ReleaseNodeVector -- releasing node: peer=%d addr=%s nRefCount=%d fNetworkNode=%d fInbound=%d fMasternode=%d\n", - pnode->id, pnode->addr.ToString(), pnode->GetRefCount(), pnode->fNetworkNode, pnode->fInbound, pnode->fMasternode); + LogPrint(BCLog::NET, "CConnman::ReleaseNodeVector -- releasing node: peer=%d addr=%s fNetworkNode=%d fInbound=%d fMasternode=%d\n", + pnode->id, pnode->addr.ToString(), pnode->fNetworkNode, pnode->fInbound, pnode->fMasternode); // FXTC END pnode->Release(); } diff --git a/src/netbase.cpp b/src/netbase.cpp index 97501739..26d008d0 100644 --- a/src/netbase.cpp +++ b/src/netbase.cpp @@ -520,11 +520,13 @@ bool ConnectSocketDirectly(const CService &addrConnect, const SOCKET& hSocket, i LogPrintf("getsockopt() for %s failed: %s\n", addrConnect.ToString(), NetworkErrorString(WSAGetLastError())); return false; } + /* if (nRet != 0) { LogConnectFailure(manual_connection, "connect() to %s failed after select(): %s", addrConnect.ToString(), NetworkErrorString(nRet)); return false; } + */ } #ifdef WIN32 else if (WSAGetLastError() != WSAEISCONN) diff --git a/src/pow.cpp b/src/pow.cpp index 257934c3..53086a41 100644 --- a/src/pow.cpp +++ b/src/pow.cpp @@ -15,6 +15,7 @@ #include #include #include +#include // For HASH_FORK_TIME_1 #include #include @@ -184,21 +185,21 @@ unsigned int GetNextWorkRequired(const CBlockIndex* pindexLast, const CBlockHead { return DUAL_KGW3(pindexLast, pblock, params); } -/* - // Megacoin Miningalgo switch - // 1571832146 Wednesday, 23. October 2019 12:02:26 - // please check also block.cpp:L62 - if(pblock->GetBlockTime() >= 1571832146 && pindexLast->GetBlockTime() <= 1571832146 + 86400) // We have a timerange from 24 hours to find a new block + + // Bitcore Miningalgo switch + // please check also block.cpp:L62 + // We have a timerange from 24 hours to find a new block + if(pblock->GetBlockTime() >= HASH_FORK_TIME_1 && pindexLast->GetBlockTime() <= HASH_FORK_TIME_1 + 86400) { if (pblock->GetBlockTime() > pindexLast->GetBlockTime() + params.nPowTargetSpacing*24) { - //consensus.nPowTargetSpacing = 2.5 * 60; // Megacoin - //This should be one hour then is this function possible - LogPrintf("Megacoin Hashalgoupdate HashX16R \n"); - return nProofOfWorkLimit; + //consensus.nPowTargetSpacing = 2.5 * 60; // Megacoin + //This should be one hour then is this function possible + LogPrintf("Megacoin Hashalgoupdate MEGA BTX!!! \n"); + return nProofOfWorkLimit; } } -*/ + if (pindexLast->nHeight+1 <= fork2) diff --git a/src/primitives/block.cpp b/src/primitives/block.cpp index 1e61c8dd..a2ea05b7 100644 --- a/src/primitives/block.cpp +++ b/src/primitives/block.cpp @@ -10,13 +10,15 @@ #include #include #include +#include /* #include #include #include -include */ +#include + // BTX BEGINN #include // BitCore TimeTravel @@ -33,78 +35,26 @@ uint256 CBlockHeader::GetPoWHash() const uint256 powHash = uint256S("ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff"); //BitCore - - if(GetBlockTime() >= 1493124696) //Human time (GMT): Tue, 25 Apr 2017 12:51:36 GMT - { + if(GetBlockTime() >= HASH_FORK_TIME_1) //Wednesday, 23. October 2019 12:02:26 + { + return Mega_Btx(BEGIN(nVersion), END(nNonce), GetBlockTime()); + } + else + { + if(GetBlockTime() >= 1493124696) //Human time (GMT): Tue, 25 Apr 2017 12:51:36 GMT + { return HashTimeTravel(BEGIN(nVersion), END(nNonce), GetBlockTime()); // BitCore TimeTravel - } - else - { + } + else + { scrypt_1024_1_1_256(BEGIN(nVersion), BEGIN(powHash)); // BitCore Scrypt return powHash; - } - return powHash; - - //Brainstormingpart -/* - switch (nVersion & ALGO_VERSION_MASK) - { - case ALGO_SHA256D: powHash = GetHash(); break; - case ALGO_SCRYPT: scrypt_1024_1_1_256(BEGIN(nVersion), BEGIN(powHash)); break; - case ALGO_NIST5: powHash = NIST5(BEGIN(nVersion), END(nNonce)); break; - case ALGO_LYRA2Z: lyra2z_hash(BEGIN(nVersion), BEGIN(powHash)); break; - case ALGO_X11: powHash = HashX11(BEGIN(nVersion), END(nNonce)); break; - case ALGO_X16R: powHash = HashX16R(BEGIN(nVersion), END(nNonce), hashPrevBlock); break; - default: break; // FXTC TODO: we should not be here + } } - return powHash; -*/ -/* -// Megacoin - - if(GetBlockTime() >= 1493124696) { //Human time (GMT): Tue, 25 Apr 2017 12:51:36 GMT - return HashTimeTravel(BEGIN(nVersion), END(nNonce), GetBlockTime()); // MegaCoin TimeTravel - } - else - { - - uint256 thash; - // please check also pow.cpp:L414 - //10/21/2019 @ 12:00am (UTC) - if(GetBlockTime() >= 1571832146) //Wednesday, 23. October 2019 12:02:26 - { - thash = HashX16R(BEGIN(nVersion), END(nNonce), hashPrevBlock); - } //10/21/2019 @ 12:00am (UTC) - else - { - scrypt_1024_1_1_256(BEGIN(nVersion), BEGIN(thash)); - return thash; - } - return thash; -*/ } - -/* -unsigned int CBlockHeader::GetAlgoEfficiency(int nBlockHeight) const -{ - switch (nVersion & ALGO_VERSION_MASK) - { - case ALGO_SHA256D: return 1; - case ALGO_SCRYPT: return 13747; - case ALGO_NIST5: return 2631; - case ALGO_LYRA2Z: return 2014035; - case ALGO_X11: return 477; - case ALGO_X16R: return 263100; - default: return 1; // FXTC TODO: we should not be here - } - - return 1; // FXTC TODO: we should not be here -} -*/ - std::string CBlock::ToString() const { std::stringstream s; diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index 915b53d3..085479e8 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -224,7 +224,7 @@ BitcoinGUI::BitcoinGUI(interfaces::Node& node, const PlatformStyle *_platformSty connect(Exchangesite5, SIGNAL(triggered()), rpcConsole, SLOT(hyperlinks2_slot5())); connect(Exchangesite6, SIGNAL(triggered()), rpcConsole, SLOT(hyperlinks2_slot6())); connect(Exchangesite7, SIGNAL(triggered()), rpcConsole, SLOT(hyperlinks2_slot7())); - //connect(Exchangesite8, SIGNAL(triggered()), rpcConsole, SLOT(hyperlinks2_slot8())); + connect(Exchangesite8, SIGNAL(triggered()), rpcConsole, SLOT(hyperlinks2_slot8())); //connect(Exchangesite9, SIGNAL(triggered()), rpcConsole, SLOT(hyperlinks2_slot9())); //connect(Exchangesite10, SIGNAL(triggered()), rpcConsole, SLOT(hyperlinks2_slot10())); @@ -476,7 +476,7 @@ void BitcoinGUI::createActions() Exchangesite5 = new QAction(QIcon(":/icons/info"), tr("&Graviex.net"), this); Exchangesite6 = new QAction(QIcon(":/icons/info"), tr("&XT.com"), this); Exchangesite7 = new QAction(QIcon(":/icons/hitbtc"), tr("&HitBTC"), this); - //Exchangesite8 = new QAction(QIcon(":/icons/tradesat"), tr("&Trade Satoshi"), this); + Exchangesite8 = new QAction(QIcon(":/icons/info"), tr("&Hotbit.io"), this); //Exchangesite9 = new QAction(QIcon(":/icons/info"), tr("&Mylocalcoin"), this); //Exchangesite10 = new QAction(QIcon(":/icons/cryptobridgeb"), tr("&CryptoBridge"), this); //Exchangesite10 = new QAction(QIcon(":/icons/info"), tr("&Novaexchange"), this); @@ -596,7 +596,7 @@ void BitcoinGUI::createMenuBar() hyperlinks2->addAction(Exchangesite5); hyperlinks2->addAction(Exchangesite6); hyperlinks2->addAction(Exchangesite7); - //hyperlinks2->addAction(Exchangesite8); + hyperlinks2->addAction(Exchangesite8); //hyperlinks2->addAction(Exchangesite9); //hyperlinks2->addAction(Exchangesite10); } diff --git a/src/qt/bitcoingui.h b/src/qt/bitcoingui.h index 70267248..4ba2ad5b 100644 --- a/src/qt/bitcoingui.h +++ b/src/qt/bitcoingui.h @@ -157,7 +157,7 @@ class BitcoinGUI : public QMainWindow QAction* Exchangesite5 = nullptr; QAction* Exchangesite6 = nullptr; QAction* Exchangesite7 = nullptr; - //QAction* Exchangesite8 = nullptr; + QAction* Exchangesite8 = nullptr; //QAction* Exchangesite9 = nullptr; //QAction* Exchangesite10 = nullptr; diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp index 5ea3fb86..e70f9e18 100644 --- a/src/qt/guiutil.cpp +++ b/src/qt/guiutil.cpp @@ -434,7 +434,7 @@ void hyperlinks2_slot4(){QString link1 = "https://crex24.com/es/exchange/BTX-BTC void hyperlinks2_slot5(){QString link1 = "https://graviex.net/markets/btxbtc"; QDesktopServices::openUrl(QUrl(link1, QUrl::TolerantMode));} void hyperlinks2_slot6(){QString link1 = "https://www.xt.com/trade/btx_btc"; QDesktopServices::openUrl(QUrl(link1, QUrl::TolerantMode));} void hyperlinks2_slot7(){QString link1 = "https://hitbtc.com/exchange/BTX-to-BTC"; QDesktopServices::openUrl(QUrl(link1, QUrl::TolerantMode));} -void hyperlinks2_slot8(){QString link1 = "https://tradesatoshi.com/Exchange?market=BTX_BTC"; QDesktopServices::openUrl(QUrl(link1, QUrl::TolerantMode));} +void hyperlinks2_slot8(){QString link1 = "https://www.hotbit.io/"; QDesktopServices::openUrl(QUrl(link1, QUrl::TolerantMode));} void hyperlinks2_slot9(){QString link1 = "https://mylocalcoin.com/"; QDesktopServices::openUrl(QUrl(link1, QUrl::TolerantMode));} void hyperlinks2_slot10(){QString link1 = "https://novaexchange.com/market/BTC_BTX/"; QDesktopServices::openUrl(QUrl(link1, QUrl::TolerantMode));} diff --git a/src/script/standard.h b/src/script/standard.h index 2910a8b9..7a61b8ef 100644 --- a/src/script/standard.h +++ b/src/script/standard.h @@ -31,7 +31,6 @@ class CScriptID : public uint160 * Default setting for nMaxDatacarrierBytes. 220 bytes of data, +1 for OP_RETURN, * +2 for the pushdata opcodes. */ - //Bitcore BEGINN static const unsigned int MAX_OP_RETURN_RELAY = 223; //Bitcore END diff --git a/src/txdb.cpp b/src/txdb.cpp index fd0c6565..af3a0418 100644 --- a/src/txdb.cpp +++ b/src/txdb.cpp @@ -274,6 +274,9 @@ bool CBlockTreeDB::LoadBlockIndexGuts(const Consensus::Params& consensusParams, pindexNew->nStatus = diskindex.nStatus; pindexNew->nTx = diskindex.nTx; + // BTX for faster loading + if (pindexNew->nHeight > consensusParams.nlastValidPowHashHeight) + if (!CheckProofOfWork(pindexNew->GetBlockPoWHash(), pindexNew->nBits, consensusParams)) return error("%s: CheckProofOfWork failed: %s", __func__, pindexNew->ToString()); diff --git a/src/validation.cpp b/src/validation.cpp index fcaa506f..fca8b650 100644 --- a/src/validation.cpp +++ b/src/validation.cpp @@ -3660,7 +3660,7 @@ bool CChainState::AcceptBlockHeader(const CBlockHeader& block, CValidationState& if (pindexPrev->nStatus & BLOCK_FAILED_MASK) return state.DoS(100, error("%s: prev block invalid", __func__), REJECT_INVALID, "bad-prevblk"); // FXTC BEGIN - if (fCheckpointsEnabled && !Checkpoints::IsExpectedCheckpoint(chainparams.Checkpoints(), pindexPrev->nHeight + 1, block.GetHash())) + if (fCheckpointsEnabled && pindexPrev->nHeight < chainparams.GetConsensus().nlastValidPowHashHeight && !Checkpoints::IsExpectedCheckpoint(chainparams.Checkpoints(), pindexPrev->nHeight + 1, block.GetHash())) return state.DoS(100, error("%s: Checkpoints::IsExpectedCheckpoint(): invalid checkpoint at height %d", __func__, pindexPrev->nHeight + 1), REJECT_CHECKPOINT, "bad-chackpoint"); // FXTC END if (!ContextualCheckBlockHeader(block, state, chainparams, pindexPrev, GetAdjustedTime())) diff --git a/src/version.h b/src/version.h index aaf6e673..f1aa6664 100644 --- a/src/version.h +++ b/src/version.h @@ -12,13 +12,13 @@ * network protocol versioning */ -static const int PROTOCOL_VERSION = 80006; +static const int PROTOCOL_VERSION = 80008; //! initial proto version, to be increased after version/verack negotiation static const int INIT_PROTO_VERSION = 209; //! In this version, 'getheaders' was introduced. -static const int GETHEADERS_VERSION = 70016; +static const int GETHEADERS_VERSION = 80006; //! disconnect from peers older than this proto version static const int MIN_PEER_PROTO_VERSION = GETHEADERS_VERSION;