From a56e488ac0ff9842723caad4b6965f8079d4e3da Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 11 Apr 2006 18:54:24 -0700 Subject: [PATCH 1/2] Remove old cruft from the tree: mysqltestmanager, mysql_test_run_new, and various stuff in Docs/. Also move the certificates used for testing into mysql-test/std_data from the top-level SSL directory (now gone). BitKeeper/deleted/.del-init_db.sql~af2dfeabaa348dd7: Delete: mysql-test/init_db.sql BitKeeper/deleted/.del-my_create_tables.c~c121a0c4c427ebb: Delete: mysql-test/my_create_tables.c BitKeeper/deleted/.del-my_manage.c~4de50e721d227d19: Delete: mysql-test/my_manage.c BitKeeper/deleted/.del-my_manage.h~9d2cbc1e8bc894f: Delete: mysql-test/my_manage.h BitKeeper/deleted/.del-mysql_test_run_new.c~a23ab2c4b28b25ad: Delete: mysql-test/mysql_test_run_new.c mysql-test/mysql-test-run.sh: Remove code that uses old mysqltestmanager BitKeeper/deleted/.del-Makefile.am~abb265028eb9b6a7: Delete: tools/Makefile.am BitKeeper/deleted/.del-managertest1.nc~96a5c1c5c2d33085: Delete: tools/managertest1.nc BitKeeper/deleted/.del-mysqlmanager-sample.pwd~712b89f01aaad84a: Delete: tools/mysqlmanager-sample.pwd BitKeeper/deleted/.del-mysqlmanager.c~e97636d71145a0b: Delete: tools/mysqlmanager.c BitKeeper/deleted/.del-client-req.pem~efd482e1d290d4d8: Delete: SSL/client-req.pem BitKeeper/deleted/.del-run-client~e683192d4f3821e0: Delete: SSL/run-client BitKeeper/deleted/.del-server-req.pem~16301893cacf1be4: Delete: SSL/server-req.pem BitKeeper/deleted/.del-run-server~55426778bc206c48: Delete: SSL/run-server BitKeeper/deleted/.del-Makefile.am~de166d6fcac3b9b6: Delete: SSL/Makefile.am BitKeeper/deleted/.del-NOTES~e926d3e6929ac052: Delete: SSL/NOTES BitKeeper/deleted/.del-mysqlmanager-pwgen.c~d8f5f91ec54432b9: Delete: client/mysqlmanager-pwgen.c BitKeeper/deleted/.del-mysqlmanagerc.c~4f6e3499e68508f6: Delete: client/mysqlmanagerc.c BitKeeper/deleted/.del-algor.eps~1a57aff065918206: Delete: Docs/Books/algor.eps BitKeeper/deleted/.del-bk.txt~ffd510fa9531f87c: Delete: Docs/bk.txt BitKeeper/deleted/.del-algor.gif~72c40c3bad198f2f: Delete: Docs/Books/algor.gif BitKeeper/deleted/.del-algor.txt~37d2b5c1290e3cfa: Delete: Docs/Books/algor.txt BitKeeper/deleted/.del-dbi.eps~7b1032f98de7736d: Delete: Docs/Books/dbi.eps BitKeeper/deleted/.del-dbi.gif~8f6861147437298b: Delete: Docs/Books/dbi.gif BitKeeper/deleted/.del-dbi.txt~f5cf3fe321168fd5: Delete: Docs/Books/dbi.txt BitKeeper/deleted/.del-dubois.eps~f24e09a7fa420436: Delete: Docs/Books/dubois.eps BitKeeper/deleted/.del-dubois.gif~e02d361b13b1c4a4: Delete: Docs/Books/dubois.gif BitKeeper/deleted/.del-dubois.txt~998581cf9040fcc: Delete: Docs/Books/dubois.txt BitKeeper/deleted/.del-ecomm.eps~17833026ebd7656: Delete: Docs/Books/ecomm.eps BitKeeper/deleted/.del-ecomm.gif~f9bce6949b171613: Delete: Docs/Books/ecomm.gif BitKeeper/deleted/.del-ecomm.txt~27494674104ee9db: Delete: Docs/Books/ecomm.txt BitKeeper/deleted/.del-in_21.eps~8150d06653dab178: Delete: Docs/Books/in_21.eps BitKeeper/deleted/.del-in_21.gif~4a0b14f6d76458a9: Delete: Docs/Books/in_21.gif BitKeeper/deleted/.del-in_21.txt~448fb4b3d8c0b34e: Delete: Docs/Books/in_21.txt BitKeeper/deleted/.del-manual.eps~1c2ebcea50b4840c: Delete: Docs/Books/manual.eps BitKeeper/deleted/.del-manual.gif~657cf08119b1b3fc: Delete: Docs/Books/manual.gif BitKeeper/deleted/.del-manual.txt~4702af61ea5e3c29: Delete: Docs/Books/manual.txt BitKeeper/deleted/.del-msql.eps~f3801b9d166ae4fc: Delete: Docs/Books/msql.eps BitKeeper/deleted/.del-msql.gif~72ea7c6d307b9108: Delete: Docs/Books/msql.gif BitKeeper/deleted/.del-msql.txt~235ae568824f4073: Delete: Docs/Books/msql.txt BitKeeper/deleted/.del-prof.eps~1f54d9a56eb2b908: Delete: Docs/Books/prof.eps BitKeeper/deleted/.del-prof.gif~2fa8ed201d9d05fe: Delete: Docs/Books/prof.gif BitKeeper/deleted/.del-prof.txt~9fc04ec3e5ce8361: Delete: Docs/Books/prof.txt BitKeeper/deleted/.del-pthreads.eps~2ca8ff2d1181b2c0: Delete: Docs/Books/pthreads.eps BitKeeper/deleted/.del-pthreads.gif~2d9460dec2577859: Delete: Docs/Books/pthreads.gif BitKeeper/deleted/.del-pthreads.txt~fc9e17d021335a39: Delete: Docs/Books/pthreads.txt BitKeeper/deleted/.del-realmen.eps~cc022325d3cb045: Delete: Docs/Books/realmen.eps BitKeeper/deleted/.del-realmen.gif~86113e3b1fcbd597: Delete: Docs/Books/realmen.gif BitKeeper/deleted/.del-realmen.txt~81c30565a8f06539: Delete: Docs/Books/realmen.txt BitKeeper/deleted/.del-sql-99.eps~f85c06de7a016c7d: Delete: Docs/Books/sql-99.eps BitKeeper/deleted/.del-sql-99.gif~df369376884a5689: Delete: Docs/Books/sql-99.gif BitKeeper/deleted/.del-sql-99.txt~eff316adac3dd5b8: Delete: Docs/Books/sql-99.txt BitKeeper/deleted/.del-Tutorial-MySQL-final.txt~6e5b88fe4217504d: Delete: Docs/Tutorial-MySQL-final.txt BitKeeper/deleted/.del-mysql-01.gif~6f3f2e474b834ac6: Delete: Docs/MySQL-logos/mysql-01.gif BitKeeper/deleted/.del-mysql-02.gif~5e03e2ffa6bd060f: Delete: Docs/MySQL-logos/mysql-02.gif BitKeeper/deleted/.del-mysql-03.gif~a510e3599346cd5f: Delete: Docs/MySQL-logos/mysql-03.gif BitKeeper/deleted/.del-mysql-04.gif~6c3fdc91da64574: Delete: Docs/MySQL-logos/mysql-04.gif BitKeeper/deleted/.del-mysql-05.gif~230c28315136655: Delete: Docs/MySQL-logos/mysql-05.gif BitKeeper/deleted/.del-mysql-06.gif~8bb16461fd45634e: Delete: Docs/MySQL-logos/mysql-06.gif BitKeeper/deleted/.del-mysql-07.gif~b86f918998a2114e: Delete: Docs/MySQL-logos/mysql-07.gif BitKeeper/deleted/.del-mysql-08.gif~50fb4d886f82e8bc: Delete: Docs/MySQL-logos/mysql-08.gif BitKeeper/deleted/.del-mysql-09.gif~17604ce9d92cd94a: Delete: Docs/MySQL-logos/mysql-09.gif BitKeeper/deleted/.del-mysql-10.gif~a8b5306c4d911f8e: Delete: Docs/MySQL-logos/mysql-10.gif BitKeeper/deleted/.del-mysql-11.gif~8495404458978524: Delete: Docs/MySQL-logos/mysql-11.gif BitKeeper/deleted/.del-mysql-12.gif~18d47c1ad5aef481: Delete: Docs/MySQL-logos/mysql-12.gif BitKeeper/deleted/.del-mysql-13.gif~1ad2eedf58da3aaa: Delete: Docs/MySQL-logos/mysql-13.gif BitKeeper/deleted/.del-mysql-14.gif~a11e7df8653ad1b1: Delete: Docs/MySQL-logos/mysql-14.gif BitKeeper/deleted/.del-mysql-15.gif~64c998fdd6fc1ae1: Delete: Docs/MySQL-logos/mysql-15.gif BitKeeper/deleted/.del-mysql-16.gif~6a6c86de2f85f0f5: Delete: Docs/MySQL-logos/mysql-16.gif BitKeeper/deleted/.del-mysql-17.gif~b07962578d0952b1: Delete: Docs/MySQL-logos/mysql-17.gif BitKeeper/deleted/.del-mysql_anim-01.gif~d27d4f0c1a2a6da9: Delete: Docs/MySQL-logos/mysql_anim-01.gif BitKeeper/deleted/.del-mysql_anim-02.gif~476224d724007343: Delete: Docs/MySQL-logos/mysql_anim-02.gif BitKeeper/deleted/.del-mysql_anim-03.gif~470dd9c9a8bd55fc: Delete: Docs/MySQL-logos/mysql_anim-03.gif BitKeeper/deleted/.del-mysql_anim-04.gif~14f429c87c0c718: Delete: Docs/MySQL-logos/mysql_anim-04.gif BitKeeper/deleted/.del-mysql_anim-05.gif~e63e7f003b77ad95: Delete: Docs/MySQL-logos/mysql_anim-05.gif BitKeeper/deleted/.del-mysql_anim-06.gif~d9cffaf35d9d4719: Delete: Docs/MySQL-logos/mysql_anim-06.gif BitKeeper/deleted/.del-mysql-compatible.jpg~56ecc684688a7382: Delete: Docs/MySQL-logos/mysql-compatible.jpg BitKeeper/deleted/.del-docbook-fixup.pl~46cf3bdef147084e: Delete: Docs/Support/docbook-fixup.pl BitKeeper/deleted/.del-docbook-prefix.pl~876c7d33c68c224a: Delete: Docs/Support/docbook-prefix.pl BitKeeper/deleted/.del-docbook-split~be931c3922898d0: Delete: Docs/Support/docbook-split BitKeeper/deleted/.del-make-docbook~ccac1eb717e92ac9: Delete: Docs/Support/make-docbook BitKeeper/deleted/.del-make-makefile~39fd454b487126e8: Delete: Docs/Support/make-makefile BitKeeper/deleted/.del-test-make-manual~5da458f958a424ec: Delete: Docs/Support/test-make-manual BitKeeper/deleted/.del-test-make-manual-de~33cad2886311b8a: Delete: Docs/Support/test-make-manual-de BitKeeper/deleted/.del-trivial-makeinfo-4.0c.patch~40d336454ecf98db: Delete: Docs/Support/trivial-makeinfo-4.0c.patch BitKeeper/deleted/.del-xwf~76b97805d9146b80: Delete: Docs/Support/xwf BitKeeper/deleted/.del-colspec-fix.pl~6c78d3332330b19e: Delete: Docs/Support/colspec-fix.pl Docs/generate-text-files.pl: Rename: Docs/Support/generate-text-files.pl -> Docs/generate-text-files.pl BitKeeper/deleted/.del-.cvsignore~250f630140b90042: Delete: Docs/Support/.cvsignore BitKeeper/deleted/.del-changelog-4.0.xml~8f56ee8a913e848b: Delete: Docs/changelog-4.0.xml BitKeeper/deleted/.del-changelog-4.1.xml~8aa496ebed09d868: Delete: Docs/changelog-4.1.xml BitKeeper/deleted/.del-changelog-5.0.xml~f4c50926ccdd7434: Delete: Docs/changelog-5.0.xml BitKeeper/deleted/.del-sp-implemented.txt~15f5c0033d848288: Delete: Docs/sp-implemented.txt mysql-test/std_data/cacert.pem: Rename: SSL/cacert.pem -> mysql-test/std_data/cacert.pem mysql-test/std_data/client-cert.pem: Rename: SSL/client-cert.pem -> mysql-test/std_data/client-cert.pem mysql-test/std_data/client-key.pem: Rename: SSL/client-key.pem -> mysql-test/std_data/client-key.pem mysql-test/std_data/server-cert.pem: Rename: SSL/server-cert.pem -> mysql-test/std_data/server-cert.pem mysql-test/std_data/server-key.pem: Rename: SSL/server-key.pem -> mysql-test/std_data/server-key.pem BitKeeper/etc/ignore: added client/mysql_upgrade Docs/Makefile.am: Move generate-text-files.pl up a level, since it is the only Support file Makefile.am: Remove tools and SSL directories client/Makefile.am: Remove mysqltestmanager clients configure.in: Remove old tools directory mysql-test/Makefile.am: Don't need to copy .pem files any more, they're now in std_data. scripts/make_binary_distribution.sh: Don't package up mysqltestmanager support-files/mysql.spec.sh: Don't package mysqltestmanager --- .bzrignore | 1 + Docs/Books/algor.eps | 1419 ------------- Docs/Books/algor.gif | Bin 15001 -> 0 bytes Docs/Books/algor.txt | 0 Docs/Books/dbi.eps | 1212 ----------- Docs/Books/dbi.gif | Bin 3308 -> 0 bytes Docs/Books/dbi.txt | 0 Docs/Books/dubois.eps | 1203 ----------- Docs/Books/dubois.gif | Bin 2026 -> 0 bytes Docs/Books/dubois.txt | 0 Docs/Books/ecomm.eps | 1149 ----------- Docs/Books/ecomm.gif | Bin 2509 -> 0 bytes Docs/Books/ecomm.txt | 0 Docs/Books/in_21.eps | 1149 ----------- Docs/Books/in_21.gif | Bin 2514 -> 0 bytes Docs/Books/in_21.txt | 0 Docs/Books/manual.eps | 1221 ----------- Docs/Books/manual.gif | Bin 2575 -> 0 bytes Docs/Books/manual.txt | 0 Docs/Books/msql.eps | 1221 ----------- Docs/Books/msql.gif | Bin 8772 -> 0 bytes Docs/Books/msql.txt | 0 Docs/Books/prof.eps | 1167 ----------- Docs/Books/prof.gif | Bin 2942 -> 0 bytes Docs/Books/prof.txt | 0 Docs/Books/pthreads.eps | 1212 ----------- Docs/Books/pthreads.gif | Bin 8463 -> 0 bytes Docs/Books/pthreads.txt | 0 Docs/Books/realmen.eps | 1167 ----------- Docs/Books/realmen.gif | Bin 7910 -> 0 bytes Docs/Books/realmen.txt | 0 Docs/Books/sql-99.eps | 1248 ----------- Docs/Books/sql-99.gif | Bin 13038 -> 0 bytes Docs/Books/sql-99.txt | 0 Docs/Makefile.am | 4 +- Docs/MySQL-logos/mysql-01.gif | Bin 4097 -> 0 bytes Docs/MySQL-logos/mysql-02.gif | Bin 4811 -> 0 bytes Docs/MySQL-logos/mysql-03.gif | Bin 716 -> 0 bytes Docs/MySQL-logos/mysql-04.gif | Bin 909 -> 0 bytes Docs/MySQL-logos/mysql-05.gif | Bin 2192 -> 0 bytes Docs/MySQL-logos/mysql-06.gif | Bin 3082 -> 0 bytes Docs/MySQL-logos/mysql-07.gif | Bin 4209 -> 0 bytes Docs/MySQL-logos/mysql-08.gif | Bin 1595 -> 0 bytes Docs/MySQL-logos/mysql-09.gif | Bin 2627 -> 0 bytes Docs/MySQL-logos/mysql-10.gif | Bin 2455 -> 0 bytes Docs/MySQL-logos/mysql-11.gif | Bin 1436 -> 0 bytes Docs/MySQL-logos/mysql-12.gif | Bin 2642 -> 0 bytes Docs/MySQL-logos/mysql-13.gif | Bin 2914 -> 0 bytes Docs/MySQL-logos/mysql-14.gif | Bin 2686 -> 0 bytes Docs/MySQL-logos/mysql-15.gif | Bin 2310 -> 0 bytes Docs/MySQL-logos/mysql-16.gif | Bin 19192 -> 0 bytes Docs/MySQL-logos/mysql-17.gif | Bin 2059 -> 0 bytes Docs/MySQL-logos/mysql-compatible.jpg | Bin 2809 -> 0 bytes Docs/MySQL-logos/mysql_anim-01.gif | Bin 15008 -> 0 bytes Docs/MySQL-logos/mysql_anim-02.gif | Bin 21236 -> 0 bytes Docs/MySQL-logos/mysql_anim-03.gif | Bin 16958 -> 0 bytes Docs/MySQL-logos/mysql_anim-04.gif | Bin 12716 -> 0 bytes Docs/MySQL-logos/mysql_anim-05.gif | Bin 22962 -> 0 bytes Docs/MySQL-logos/mysql_anim-06.gif | Bin 42606 -> 0 bytes Docs/Support/.cvsignore | 2 - Docs/Support/colspec-fix.pl | 78 - Docs/Support/docbook-fixup.pl | 200 -- Docs/Support/docbook-prefix.pl | 50 - Docs/Support/docbook-split | 70 - Docs/Support/make-docbook | 29 - Docs/Support/make-makefile | 7 - Docs/Support/test-make-manual | 137 -- Docs/Support/test-make-manual-de | 137 -- Docs/Support/trivial-makeinfo-4.0c.patch | 11 - Docs/Support/xwf | 67 - Docs/Tutorial-MySQL-final.txt | 1643 --------------- Docs/bk.txt | 65 - Docs/changelog-4.0.xml | 18 - Docs/changelog-4.1.xml | 18 - Docs/changelog-5.0.xml | 18 - Docs/{Support => }/generate-text-files.pl | 0 Docs/sp-implemented.txt | 112 - Makefile.am | 4 +- SSL/Makefile.am | 24 - SSL/NOTES | 376 ---- SSL/client-req.pem | 12 - SSL/run-client | 10 - SSL/run-server | 9 - SSL/server-req.pem | 12 - client/Makefile.am | 3 - client/mysqlmanager-pwgen.c | 161 -- client/mysqlmanagerc.c | 174 -- configure.in | 18 +- mysql-test/Makefile.am | 14 - mysql-test/init_db.sql | 58 - mysql-test/my_create_tables.c | 673 ------ mysql-test/my_manage.c | 887 -------- mysql-test/my_manage.h | 137 -- mysql-test/mysql-test-run.sh | 153 +- mysql-test/mysql_test_run_new.c | 1933 ------------------ {SSL => mysql-test/std_data}/cacert.pem | 0 {SSL => mysql-test/std_data}/client-cert.pem | 0 {SSL => mysql-test/std_data}/client-key.pem | 0 {SSL => mysql-test/std_data}/server-cert.pem | 0 {SSL => mysql-test/std_data}/server-key.pem | 0 scripts/make_binary_distribution.sh | 5 +- support-files/mysql.spec.sh | 8 +- tools/Makefile.am | 34 - tools/managertest1.nc | 16 - tools/mysqlmanager-sample.pwd | 1 - tools/mysqlmanager.c | 1866 ----------------- 106 files changed, 35 insertions(+), 22588 deletions(-) delete mode 100644 Docs/Books/algor.eps delete mode 100644 Docs/Books/algor.gif delete mode 100644 Docs/Books/algor.txt delete mode 100644 Docs/Books/dbi.eps delete mode 100644 Docs/Books/dbi.gif delete mode 100644 Docs/Books/dbi.txt delete mode 100644 Docs/Books/dubois.eps delete mode 100644 Docs/Books/dubois.gif delete mode 100644 Docs/Books/dubois.txt delete mode 100644 Docs/Books/ecomm.eps delete mode 100644 Docs/Books/ecomm.gif delete mode 100644 Docs/Books/ecomm.txt delete mode 100644 Docs/Books/in_21.eps delete mode 100644 Docs/Books/in_21.gif delete mode 100644 Docs/Books/in_21.txt delete mode 100644 Docs/Books/manual.eps delete mode 100644 Docs/Books/manual.gif delete mode 100644 Docs/Books/manual.txt delete mode 100644 Docs/Books/msql.eps delete mode 100644 Docs/Books/msql.gif delete mode 100644 Docs/Books/msql.txt delete mode 100644 Docs/Books/prof.eps delete mode 100644 Docs/Books/prof.gif delete mode 100644 Docs/Books/prof.txt delete mode 100644 Docs/Books/pthreads.eps delete mode 100644 Docs/Books/pthreads.gif delete mode 100644 Docs/Books/pthreads.txt delete mode 100644 Docs/Books/realmen.eps delete mode 100644 Docs/Books/realmen.gif delete mode 100644 Docs/Books/realmen.txt delete mode 100644 Docs/Books/sql-99.eps delete mode 100644 Docs/Books/sql-99.gif delete mode 100644 Docs/Books/sql-99.txt delete mode 100644 Docs/MySQL-logos/mysql-01.gif delete mode 100644 Docs/MySQL-logos/mysql-02.gif delete mode 100644 Docs/MySQL-logos/mysql-03.gif delete mode 100644 Docs/MySQL-logos/mysql-04.gif delete mode 100644 Docs/MySQL-logos/mysql-05.gif delete mode 100644 Docs/MySQL-logos/mysql-06.gif delete mode 100644 Docs/MySQL-logos/mysql-07.gif delete mode 100644 Docs/MySQL-logos/mysql-08.gif delete mode 100644 Docs/MySQL-logos/mysql-09.gif delete mode 100644 Docs/MySQL-logos/mysql-10.gif delete mode 100644 Docs/MySQL-logos/mysql-11.gif delete mode 100644 Docs/MySQL-logos/mysql-12.gif delete mode 100644 Docs/MySQL-logos/mysql-13.gif delete mode 100644 Docs/MySQL-logos/mysql-14.gif delete mode 100644 Docs/MySQL-logos/mysql-15.gif delete mode 100644 Docs/MySQL-logos/mysql-16.gif delete mode 100644 Docs/MySQL-logos/mysql-17.gif delete mode 100644 Docs/MySQL-logos/mysql-compatible.jpg delete mode 100644 Docs/MySQL-logos/mysql_anim-01.gif delete mode 100644 Docs/MySQL-logos/mysql_anim-02.gif delete mode 100644 Docs/MySQL-logos/mysql_anim-03.gif delete mode 100644 Docs/MySQL-logos/mysql_anim-04.gif delete mode 100644 Docs/MySQL-logos/mysql_anim-05.gif delete mode 100644 Docs/MySQL-logos/mysql_anim-06.gif delete mode 100644 Docs/Support/.cvsignore delete mode 100755 Docs/Support/colspec-fix.pl delete mode 100755 Docs/Support/docbook-fixup.pl delete mode 100755 Docs/Support/docbook-prefix.pl delete mode 100755 Docs/Support/docbook-split delete mode 100755 Docs/Support/make-docbook delete mode 100755 Docs/Support/make-makefile delete mode 100755 Docs/Support/test-make-manual delete mode 100755 Docs/Support/test-make-manual-de delete mode 100644 Docs/Support/trivial-makeinfo-4.0c.patch delete mode 100755 Docs/Support/xwf delete mode 100644 Docs/Tutorial-MySQL-final.txt delete mode 100644 Docs/bk.txt delete mode 100755 Docs/changelog-4.0.xml delete mode 100755 Docs/changelog-4.1.xml delete mode 100755 Docs/changelog-5.0.xml rename Docs/{Support => }/generate-text-files.pl (100%) delete mode 100644 Docs/sp-implemented.txt delete mode 100644 SSL/Makefile.am delete mode 100644 SSL/NOTES delete mode 100644 SSL/client-req.pem delete mode 100755 SSL/run-client delete mode 100755 SSL/run-server delete mode 100644 SSL/server-req.pem delete mode 100644 client/mysqlmanager-pwgen.c delete mode 100644 client/mysqlmanagerc.c delete mode 100644 mysql-test/init_db.sql delete mode 100644 mysql-test/my_create_tables.c delete mode 100644 mysql-test/my_manage.c delete mode 100644 mysql-test/my_manage.h delete mode 100644 mysql-test/mysql_test_run_new.c rename {SSL => mysql-test/std_data}/cacert.pem (100%) rename {SSL => mysql-test/std_data}/client-cert.pem (100%) rename {SSL => mysql-test/std_data}/client-key.pem (100%) rename {SSL => mysql-test/std_data}/server-cert.pem (100%) rename {SSL => mysql-test/std_data}/server-key.pem (100%) delete mode 100644 tools/Makefile.am delete mode 100644 tools/managertest1.nc delete mode 100644 tools/mysqlmanager-sample.pwd delete mode 100644 tools/mysqlmanager.c diff --git a/.bzrignore b/.bzrignore index 4b6b0411a47..6dd19fc0355 100644 --- a/.bzrignore +++ b/.bzrignore @@ -1759,3 +1759,4 @@ vio/viotest.cpp zlib/*.ds? zlib/*.vcproj mysql-test/r/*.log +client/mysql_upgrade diff --git a/Docs/Books/algor.eps b/Docs/Books/algor.eps deleted file mode 100644 index b202f02d12a..00000000000 --- a/Docs/Books/algor.eps +++ /dev/null @@ -1,1419 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: GIMP PostScript file plugin V 1.06 by Peter Kirchgessner -%%Title: /home/mwagner/work/bk/mysql/Docs/Flags/algor.eps -%%CreationDate: Sun Dec 31 14:27:48 2000 -%%DocumentData: Clean7Bit -%%LanguageLevel: 2 -%%Pages: 1 -%%BoundingBox: 14 14 254 383 -%%EndComments -%%BeginPreview: 100 154 1 154 -% fffffffffffffffffffffffff0 -% fffffffffffffffffffffffff0 -% fffffffffffffffffffffffff0 -% ffffffffff7ffffffffffffbb0 -% fbbbefffbbfefffffffffffff0 -% fffffff7fffffbdeefffffeff0 -% f7ffbf7ffffbffffffbff7bf70 -% ffffffffbeefffffffffbffff0 -% f77bfffbfffff7fffffffffdf0 -% fffffffffdffbfbffefeff7ff0 -% dfffeefffffeffffdffffffbf0 -% fb77bff7b7effffdfffbfdfff0 -% ffde3ffffde3f7bfff7ff785d0 -% 6f9f3feff977bfffff3fbf38f0 -% fe8f3f7fff33fffffbfffe7ff0 -% 774f31eb5532f4d75fb6fcfed0 -% 7e6f2c18011222224e2034fff0 -% fee72e9d3d333332ff33bcdbf0 -% 760724bc3933b3321f331cffb0 -% fcf3259cb933337b8733bc7ff0 -% 79f32f9d39373332ef333e7df0 -% f5e12049391323324e339b02f0 -% 7effce77def7deddbfd7bfd7f0 -% ffffdf7fffffffffffffffffd0 -% 6fefce7ffffffffffffffffff0 -% feff61fdfff7dffffffffffef0 -% 7ffffff7ddeffdff7efffbb7f0 -% f7deffffffff7ffdfbfbefffd0 -% 7effffdfffffffeffffffffdf0 -% 7fffeefedffbffffffefffbff0 -% f7fbffffff7f6dfdbfff7bf770 -% ffdfbffffff7ffeffffffffef0 -% 6ffffff77ffffffffdfffffff0 -% 7efffd7dfdfdddfef7dff7eff0 -% fffbfe9cffb2fdfffb9eff7f70 -% 7befbcb6aab7b955af5bfffdf0 -% effffe689138a548b0affbf7f0 -% 7fbff6ad9dbe4d568bcffffff0 -% 7ffefc88aab2b2355893bfbfb0 -% fbffeffff7dfdecbff7ffffff0 -% ffbbffffffffff5ffffffff6f0 -% 7ffffffffffffdffffffffbff0 -% 77fffffddfdfbffff7fffdfff0 -% ff7fbdfffefdfbf6ffef7fffb0 -% 7ff7ffffffffffffffbffffef0 -% f7ffffefdfffffefeffffffbf0 -% 7f7f7dfffffdfbfffffffdeff0 -% 6ffdfffffeffefdefff6fffff0 -% fef7ffdf7ff7ffffff7fffffb0 -% fffff7fffbffffbff7fffddef0 -% 6dffdffdfffffffdfffff7fff0 -% 7fefffbfefdfbeffdf77bffff0 -% ffff7fffff7ef7ffffffffbbf0 -% 6bbdff7bdffffff7bdffffffb0 -% fffffbffffffeffffffdfffff0 -% 6f7ffff7bdedbeeef7b7edddf0 -% fffbefffffffffffffffffffd0 -% 7daebaaaaaad6aad5addb77ff0 -% 6ffffffffffffffbf7b76ddbb0 -% ff756bbadb55aab6fffffffff0 -% 6db4d62100000000008a515ff0 -% fffdabbaad250896555ce7ff70 -% 6f6d76a9a449084233d7565df0 -% ffeaa73521004210891cd57ff0 -% 7da44a400a5494842041215ff0 -% 77fae53ad08021294a9e6afbb0 -% ff6dbf51442208423195b5aff0 -% 6ffd653a8c4110862adad77ff0 -% fdaaeb51410842105154a55fb0 -% 6f644044100210008401287df0 -% ffedaf29429442290956576ff0 -% 6ebad2b98c2108c6318cb57f70 -% ffeeee914a210844335aebdff0 -% bb68a10a484000814914a67bd0 -% 77ca4a50108451100221095ff0 -% ff74a4a5420800054846657f70 -% 6feeeb198c6314c4318cd6dbf0 -% 7d6aa6b08a210846229a657ff0 -% ffd4a90450882109445292df70 -% 6da40049010000100100087bf0 -% ff6aed225a52a5214a56e55ff0 -% 6feca330842288c6308c537fb0 -% fd6ad62986631844118a556ef0 -% 6fc80088204842884a50927ff0 -% ff65504208800011000104dff0 -% 7de885292252aaa44a54517bd0 -% 6f6d6611845318c4118c465ff0 -% ffd242b14c229482310852ff70 -% 7d649404209021114452885df0 -% efd1004002444224000012fff0 -% 7f645529589294894a52445fd0 -% edcd4210c4231892318c4afdf0 -% 7f6042914a4892662100515ff0 -% 7bd51424014950084849087bb0 -% ef62008020120550800012dff0 -% bfc928214ac4b2252a42887ff0 -% 7d6843188c2998c6218c425b70 -% efe110014a622545280028fff0 -% 7f4288a4108aa4100022815ff0 -% 7de524002104a9208a40947bb0 -% ef600952ca7244c62011085ff0 -% 7fcc621086251aa5318c637f70 -% fb6101154a49b04a2900005df0 -% 6fca944010820510802114fff0 -% fea21084211454000402115fd0 -% 6fe945298e61916f5150847bf0 -% fd6c4210c8451842310c635fb0 -% 7fc125294932a5922140087ff0 -% eb6a884210840000840292ddf0 -% 7fd020842108a5284020047fd0 -% 77654a3148329483294aa95bf0 -% ff6c6310866318c6318c42ffb0 -% 6dd14529245294a80908525ff0 -% ff64104411040001002204fdf0 -% 77c94482204842104400915fd0 -% ff74a539865298c4199a467bf0 -% 6f6d67208c6314a6310c6adfd0 -% fdd0a4a55210042540d2a2ff70 -% 77650840008040000a00085bf0 -% efca528a52048229405552fff0 -% 7f7ce7308c6318c6259a655fb0 -% edd5542984510844310cd7fdf0 -% 7f5aa555520200894aa4a45ff0 -% dde452000088421000020affd0 -% 7b5aad5aa81000214a28e25b70 -% f7eee6918a6218c63196affff0 -% bf5ad5394c210844294cb55ff0 -% 76eca54541004102529466fdd0 -% efca4a50100a12100022485ff0 -% 7d75e2aa820040014a94d3ffb0 -% 6fdebb315c62088a32daa6bbf0 -% fb69d6aa842110462995fb7ff0 -% 6fdaa52949084210529e455fb0 -% ff64524200509081002052fef0 -% 6dd6e739528022122a8d445ff0 -% ff6d6dd58c25084452dad7fdd0 -% 6fdad731204108822956b55ff0 -% 7d6aaa548a8841145298a3dfd0 -% fffffffffffffffffff7fefdf0 -% ed55555555555555555eadbff0 -% 7ffffffffffffffffff7fbf7b0 -% 77ffffffffffffffff7ffffff0 -% ff7fdfeeef7dbf7bb7feefdef0 -% 6fedff7ffff7fdfffffffffff0 -% fdfffdffbffff7ffffb7ff7bd0 -% 7fdfb7fffbff7fefbdff6ffff0 -% efffffedffb7ffbefffffeef70 -% 7dbbffffdfffeefff7eefffdf0 -% ffff7ddffeff7ffdfffff7ffd0 -% 6dffeffffff7fdffdeffffdbf0 -% 7ff7ffff6dffffeffff7df7fd0 -% fbbffedfffefdffefbffffff70 -% 77ff7bfdffffffffffef7efbf0 -% fffffffffffffffffffffffff0 -%%EndPreview -%%BeginProlog -% Use own dictionary to avoid conflicts -5 dict begin -%%EndProlog -%%Page: 1 1 -% Translate for offset -14.400000 14.400000 translate -% Translate to begin of first scanline -0.000000 368.503937 translate -239.288271 -368.503937 scale -% Variable to keep one line of raster data -/scanline 100 3 mul string def -% Image geometry -100 154 8 -% Transformation matrix -[ 100 0 0 154 0 0 ] -{ currentfile scanline readhexstring pop } false 3 -colorimage -040404040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404 -0404045c0c735c0c735c04745c0c735c0c735c04745c04745c0c735c0c735c0c735c046c540b6c -540b6c5c0c73540b6c540b6c5c0c735c046c5004645c046c500464540b6c540b6c540b74540b74 -540b6c500464540b6c500464540b6c540b6c5004645c0c73540b6c540b6c5c15745c15745c1574 -5c1574540b74500464500464540b6c540b6c5c0c73500464540b74500464500464540b6c500464 -540b6c500464540b74540b6c540b6c540b6c540b6c500464500464540b6c540b6c5004645c0c73 -540b6c540b74540b6c500464540b6c500464500464540b6c4c086c5004644c086c5004644c086c -4c086c540b6c540b74540b6c540b6c500464540b745004644c0b74500464540b744c086c55146c -5415745415745415745c1574541574540b6c55146c541574040404 -0404045c0c7c5c0c7c5c0c735c0c73640c795c0c735c0c735c0c735c0c735c04745c0c73640c79 -5c046c5c0c735c046c5c0c73540b6c5c0c735c0c735c0c735c046c5c0c73500464540b6c5c0c73 -5004645c0c735c0c735004645c0c73540b745c0c73540b6c540b6c5c0c73540b6c540b6c5c1574 -5c1574540b6c540b6c540b74540b6c5c0c73540b74540b74540b6c5c0c73540b6c540b74540b74 -540b74540b6c540b6c540b6c540b6c540b6c540b6c540b745c0c73540b6c540b74540b6c540b74 -540b6c540b6c540b74540b74540b6c540b74540b74500464500464540b6c500464540b6c540b6c -540b6c4c086c541574540b6c540b744c086c540b6c4c086c540b6c4c0b74540b6c540b6c4c086c -5415745415745c157454157454157454157454157455146c040404 -0404045c0c735c0c735c04745c0c735c0c73640c795c0c735c04745c04745c0c73640c79540b6c -5c0c73540b6c5c0c735c0c73540b6c5c0c735c0c73540b6c5c046c5004645c04745c0c73500464 -5004645c0c735004645c0c73541574540b6c540b6c540b6c5c0c73540b6c540b6c540b6c5c0c73 -540b6c5c1574540b74500464540b6c5c1574540b74500464540b6c540b74500464540b6c540b6c -540b6c540b6c540b6c5c0c73540b6c540b6c540b6c540b6c540b6c5c0c73540b6c540b6c540b6c -540b6c540b6c540b6c540b6c540b6c540b6c540b6c540b6c540b74540b74540b6c4c086c540b6c -540b6c540b6c540b6c4c086c5004644c086c5004644c086c4c086c5004644c086c540b6c540b6c -55146c54157454157455146c5c1574541574541574540b6c040404 -0404045c0c73640c795c0c735c04745c0c735c0c73640c795c0c735c0c735c0c735c04745c0c73 -660b655c04745c0c73540b6c5c046c540b6c5c0c735c0c735004645c0474540b6c5004645c0c73 -540b74540b6c5c0c735004645c0c73540b74540b6c5c0c73540b6c540b6c5c0c735c1574540b6c -540b6c540b6c540b6c540b745c0c73540b6c5c0c73540b6c5c1574540b6c540b74540b74540b6c -540b6c540b6c540b6c540b74540b6c540b6c540b6c540b6c540b6c540b6c540b6c540b74540b6c -5c0c73540b6c540b6c540b6c540b6c540b6c540b6c500464540b6c500464540b6c5004644c086c -540b6c4c086c4c086c540b6c540b6c540b6c540b74540b6c540b6c540b74540b6c540b6c540b6c -540b6c5415745c1574541574541574540b6c55146c540b74040404 -040404540b6c5c0c735c0c736414745c0c7c5c0c735c0c735c0c735c04745c0474540b745c0474 -540b6c540b6c5c0c73540b6c5c046c540b6c5004645c0c735c0c73540b6c5004645c0c73540b6c -5c046c540b6c5c0c735c0c73540b6c540b6c540b6c5c0c73540b74540b6c540b6c540b6c540b74 -540b6c540b6c540b74540b6c540b74540b6c540b6c540b74540b6c540b6c540b6c540b6c5c0c73 -540b6c540b74540b6c540b6c540b74540b6c540b6c540b6c540b6c540b6c540b6c540b6c540b6c -540b74540b6c5c0c73540b6c540b74540b6c540b6c500464500464500464540b74540b6c540b6c -540b6c500464540b6c4c086c540b6c4c086c540b6c540b6c540b6c540b6c4c086c540b6c540b6c -540b6c540b74541574541574541574541574541574540b74040404 -0404045c1574640c795c0c735c15746414745c0c7c5c0c735c0c735c04745c0c735c04745c046c -5c0c73540b6c5c0c73540b6c5c0c735c0c735c0c73500464540b6c540b6c5c0c735c0c73500464 -540b6c540b6c5c1574540b6c540b6c540b6c540b6c540b6c5c0c73540b6c540b6c540b745c1574 -5c0c73540b6c540b6c5c0c73540b6c540b6c540b6c540b6c540b74540b6c540b6c540b6c540b74 -540b6c540b6c5c0c73540b6c540b6c540b6c540b6c540b6c540b74500464540b6c500464540b74 -5c0c73540b6c540b6c540b6c540b6c540b6c540b74540b6c540b74500464540b6c540b6c540b6c -4c086c540b6c4c086c540b6c540b6c4c086c540b6c540b6c540b6c540b6c540b6c55146c4c086c -540b6c540b6c54157455146c540b74541574541574540b6c040404 -0404046414745c0c7c5c15745c147c6414745c0c735c0c735c0c735c0c735c04745c04745c0c73 -5c0c735c0c73540b6c5c0c735c0c735c0c73500464540b6c5c04745004645c046c540b6c500464 -5c0c7355146c5c0c73540b6c540b745c0c73540b6c5c15745c1574540b6c540b6c5c0c73540b6c -5c1574540b74540b6c540b6c5c0c73540b6c540b6c540b6c540b6c5c1574540b6c540b6c540b6c -540b6c540b74540b6c540b6c540b74540b6c540b6c540b6c540b6c540b6c540b74540b74500464 -540b6c540b74500464540b6c540b74540b6c540b6c540b74500464500464540b6c540b6c540b6c -540b6c4c086c540b6c540b7454157455146c4c086c540b6c4c086c540b6c540b74540b74541574 -541c6c541574540b6c540b7455146c540b74540b6c540b6c040404 -0404045c0c735c0c735c0c73641a7c641a7c5c147c5c0c735c0c735c15745c0c73540b6c540b6c -5c0c735c046c540b6c5c0c735c046c500464540b745c0c735004645c046c5004645c0c73500464 -5c0c7c540b6c5c0c735c15745c15745c15745004645c0c735c15745c1574540b6c540b6c540b6c -5c1574540b6c500464540b74540b6c540b6c540b6c540b7455146c540b6c540b6c500464540b6c -540b6c5c0c73540b6c540b74540b6c540b6c5c0c73540b6c500464540b74500464540b74500464 -540b74540b6c540b6c540b74540b74540b74540b6c540b6c540b6c540b74540b6c4c086c540b6c -4c086c540b6c540b6c5415745415744c086c4c086c4c086c540b6c4c086c55146c540b6c540b6c -541574541574541574541574540b74541574540b6c541574040404 -0404045c147c6414745c0c73641a7c5c15745c15745c04746414745c0c735c0c735c04745c0c73 -540b6c5c0c735c046c540b6c5c046c5c0c735004645c0c735c0c735004645c0c73540b745c046c -540b6c540b6c540b6c5c0c73540b745c0c73540b745004645c0c73540b6c540b6c540b6c5c1574 -5c0c73540b6c5c1574540b6c540b6c5c0c735c0c73540b6c5c157455146c5c0c73540b6c500464 -540b6c540b6c540b6c5c0c735004645c15745c0c73540b6c540b74540b74540b74500464540b74 -540b74540b6c540b6c540b6c540b6c540b6c540b6c540b74540b6c540b6c540b6c500464540b6c -540b74540b74540b6c540b6c4c086c4c086c540b6c540b6c54157454157455146c4c086c4c086c -540b6c55146c540b6c541574540b6c541574540b74540b74040404 -0404046414746414745c0c73641a7c5c15745c0c735c0c735c0c73540b6c5c0c73660b65540b6c -640c79540b6c5c046c5c046c540b74540b6c5c0c735004645c046c5c04745c0c73500464500464 -5004645c046c5c0c735c1574540b6c5c15745c0c735c0c735c0c73540b6c540b6c5c0c735c1574 -5c1574540b6c5c15745c1574540b6c541574540b6c540b6c5c15745c0c73500464540b74540b74 -540b6c540b6c540b6c540b74540b745c1574540b6c540b6c540b6c540b74500464540b74500464 -540b6c540b74540b6c540b74540b6c540b74540b6c540b6c540b6c540b74540b6c540b74540b6c -540b6c540b74540b6c540b6c55146c4c086c4c086c540b6c540b745c15744c086c55146c55146c -4c086c540b7455146c540b6c540b6c540b6c541574540b6c040404 -0404045c147c641a7c641a7c5c15746414745c0c735c0c735c15745c0c735c0c73540b745c0c73 -5c0c735c046c5c046c5c0c73641474540b6c5c046c5c0474540b6c5c046c540b6c5c0c73540b74 -5c0474540b6c5c0c735c1574540b6c5c1574540b6c5c15745c0c735c15745c0c73540b6c540b6c -5c147c540b6c540b6c540b6c5415745c15745c0c735c0c73500464540b6c540b6c5c0c73540b6c -541574540b6c540b6c540b6c540b6c5c1574540b6c500464540b6c540b6c540b74540b6c540b6c -540b74540b6c540b6c540b6c540b6c540b6c55146c4c086c540b6c540b74540b6c540b6c540b74 -541574540b6c4c146c5415745415744c086c540b6c540b6c540b74541574540b6c4c0b74440458 -4c086c4c086c5004644c086c54157455146c540b74540b74040404 -0404045c0c73641474641a7c5c2479641a7c5c15745c0c735c0c73885b87b986805c046c5c0c73 -5c0c735c04747c4b82c8b7a8e9b899872164500464540b6c5c046c540b6c5c0c735c046c540b6c -540b6c5c15745c0c73540b6c5c0c735c0c73540b6c540b6c540b74540b6c540b6c7c4b82a37483 -6817695c0c735004645c157494788fcac4b7ca83775c0460540b6c5c15745c1574540b6c55146c -5c15745c1e6c540b6c540b6c540b7455146c540b6c500464540b74540b6c540b6c540b6c500464 -5c0c73540b6c540b6c540b74540b6c540b6c540b746b3779874d7a540b6c540b6c540b74540b74 -540b6c540b6c540b6c540b6c540b6c4c086c54157455146c55146c540b6c55146c7c4b8294788f -a48899a48899a37483885b87641c7454157455146c541574040404 -0404045c0c7c5c147c641474641a7c6414745c147c5c0c735c1574c7b8b7fad9a581205c540b74 -5c0c735c0c73540b74c19ba5fad9a5872164540b745c0474540b6c5c0474540b6c5c0c73540b6c -5c0c735c0c735c0c735c157455146c540b6c540b6c5c0c735c0c73540b6c4c086ca69798f7d8b8 -81205c6b3779885b876817696b3779faecc9c78c825c0460540b6c5c1574641c74540b6c55146c -5c157455146c540b6c540b6c5c0c735c1574540b6c540b74540b74540b6c5c0c73540b74540b74 -540b6c540b6c540b6c540b6c5c0c73540b6c55146cc7b8b7e9b8996f175c540b744c086c5c1574 -5c0c7355146c55146c55146c55146c55146c5c1574541574540b6c541c6cb8a8a7e7c7a594788f -773c7c7c4b8294788fe8dab9ca83774c146c54157455146c040404 -040404641474641a7c641474641a7c6414745c0c735c0c73773c7ce9b899f9ebb6ca83775c046c -540b745c0c734c086ca48899fad9a581205c540b745c04745004644c086c540b745c0c735c0c73 -5c04745c046c500464540b6c5c0c735c0c73500464540b6c540b74500464540b6c641c746a2976 -4c086cb8a8a7f8d094660b65541574e8dab9ca8377500464540b74500464540b745c0c73540b6c -540b74540b74540b74500464540b6c541574500464500464500464540b74540b745c0c73500464 -540b74500464540b6c540b7455146c540b6c540b6c6b3779773c7c540b6c540b6c540b74500464 -540b74500464540b6c541574540b744c146c5c1574541c6c4c1575c7b8b7f7c7a87926664c086c -540b74540b7444045894788fab5f70540b74541574541574040404 -0404046414745c0c7c641a7c641a7c6414745c147c5c0c73b89898ab5f70c8b7a8f8d0946f175c -5c147c5c0c73500464a48899fad9a5781a66540c7c7c4b8294788fa37483773372641c74641474 -641a7c885b8794788f885b87681769641c74773c7c773c7c6a2976885b877733726b3779874d7a -5c1464b8a8a7f7be9a69256b641c74e8dab9ca83776a297694788f874d7a681769540b745c1c7c -6b37797733726b377994788f773c7c5c0c64672784885b87874d7a540b6c540b74540b746a2976 -885b87885b8779266655146c540b6c5415745415745c15746a2976540b6c5c157464257c6a2976 -5c1574885b87773c7c55146c540b74540b6c55146c4c086c867389faecc9ab5f704c0b7455146c -55146c55146c540b745c2479641c7455146c5c15745c2479040404 -0404045c0c735c147c640c795c147c5c0c7c5c0c73773c7cd7a899781a66885b87f9ebb6ab5f70 -5c046c5c0c73540b74a48899fad9a5792666b89898c78c82773c7cc8a9a7f9ebb6c9a799b98680 -d9b899ab5f70773c7cc8b7a8e9b899ae7b74d9d5b8f7be9ad7a899faecc9c78c82c8b7a8fad9a5 -ab5f70d9d5b8f7d8b8c9a79992655fd8c7b8e6aa9dc78c82c8a9a7faecc9c89887681769885b87 -e8dab9e9b899c89887c8b7a8f9ebb6b98680b7898fc8b7a8f9ebb6c78c825c0c64885b87d7a899 -885b87a48899e9b899792666540b74540b74885b87d9d5b8e9b8996f175c867389e8dab9d9b899 -b99886c8b7a8f9ebb6d6998669256b5c15745415744c1575b8a8a7f9ebb68a2f624c157555146c -54157455146c55146c5415745c157454157455146c5c1574040404 -0404045c0c7c6414745c147c640c795c147c540b74a48899ca8377640c79641c74d9d5b8e6aa87 -660b655c0c7c500464a48899fad9a5ab5f70f9ebb68a2f62540b74773c7cfaecc9ab5f70b9b6a8 -e6aa875c0460540b7464257cfaecc9ca8377b89898f9ebb68f416b7c4b82792666a48899fad9a5 -8a2f62b9b6a8f7be9a681769641a7cd9d5b8e8bb88781a664c1575a48899f9ebb68a2f624c086c -c8b7a8fad9a57926664c086cb8a8a7fad9a58a2f624c086cac99a7fad9a58a2f62c7b8b7d88e7d -500464500464ab5f706817695415745c15744c146cb9b6a8f7be9a6f175c541574d8c7b8f8d094 -7926664c157594788ffaecc98f416b5415745c157455146cc8b7a8f9ebb68f416b541574541c6c -55146c5415745c15745415745c1574541574541574541574040404 -0404046414745c0c7c6414746414745c0c7c672784e7c7a5c8a886a69798b89898dad4a8f9ebb6 -99275e5c0c73540b74ac99a7fad9a5ab5f70f9ebb6ab5f70540b74885b87f8d0948f416be9d8c8 -ca83775c046c5c15745c1574d7c8a8e6aa87b89898f8d0946f175c540b74540b74a48899fad9a5 -81205cb9b6a8f7bb86660b655c1574e8dab9d699865c0c64540b6c94788ff9ebb68a2f62541574 -c8b7a8efad935c0c644c086ca48899f7be9a68176950046494788ff9ebb68a2f62a48899f9ebb6 -d9b899a4889977337255146c540b6c540b6c541574b8a8a7f7be9a6f175c55146cc7b8b7efad93 -660b654c0b747c4b82f9ebb6ab5f704c146c54157455146cc8a9a7f9ebb68f416b541c7c5c1574 -55146c541c6c54157455146c55146c5c1574541574540b74040404 -040404640c796414745c147c641a7c5c0c7ca48899d699866c1c7c6a29766c1c7c6b3779f9ebb6 -e59b87540b6c4c086cac99a7f8d094781a66a48899e9b899a3748394788f8f416b641c74f9ebb6 -e09e75660b65641474540b74c8b7a8e6aa87b89898f7be9a781a665c0c73500464a48899fad9a5 -872164c8b7a8efad935c04605c1e6cd9d5b8d69986660b65540b7494788ff9ebb68a2f62541574 -cac4a7e9b8995c1464500464a48899f7be9a6817694c0b7494788ff9ebb68a2f625c1574885b87 -a48899cac4b7f9ebb6ab5f70540b6c540b74540b6cb8a8a7f7be9a6817694c0b74c7b8b7efad93 -5c0c644c086c7c4b82faecc9ab5f704c086c5c157455146c867389faecc9d88e7d5c1e6c541574 -5415745c15745c15745c157454157454157455146c541574040404 -0404045c0c736414745c147c5c147c672784e7c7a599275e5c047c5c0c7c5c15744c0b74a69798 -f9ebb68a2f624c086ca48899fad9a56f175ca48899c898877926666414745c147c5c0c73b9b6a8 -fad9a581205c4c0b745c1574e8dab9ab5f70a48899f8d0946817695c147c540b7494788ffad9a5 -781a66b9b6a8efad93681769541c6ce8dab9d88e7d5c0460540b7494788ff9ebb699275e4c086c -c8b7a8efad9364105c4c086ca48899f7bb86660b654c086c94788ff9ebb681205ca37483781a66 -4c086c541c6ce8dab9ab5f70500464541574500464ac99a7f7be9a6f175c4c0b74cac4b7e9b899 -5c0460540b747c4b82f9ebb6ab5f705415745c1e6c55146c541574b9b6a8faecc9ae7b74540b6c -4c086c540b6c4c086c541c6c641c745c15745415745c1574040404 -040404640c79641474640c796a2976c19ba5e9d9a6ae7b747926665c0c7c5c0c73773c7cc8a9a7 -f9ebb6c89887874d7ad8b7a8fad9a5ab5f70c8b7a8f9ebb6d7c8a8d7c8a8dad4a8c89997874d7a -d9d5b8d9b899874d7aa69798c78c82773372cac4a7fad9a5ab5f706414746a2976b9b6a8f9ebb6 -ab5f70b7898ff9ebb6d7a899a37483e8dab9e9b8998f416b50046494788ff9ebb6ab5f707c4b82 -d9d5b8e7c7a58f416b6b3779b8a8a7fad9a58f416b50046494788ff9ebb6ab5f70c5b699c78c82 -773c7c94788fd7a899792666540b6c540b6c6b3779cac4a7fad9a5874d7a773c7cd9d5b8e7c7a5 -773372540b6c885b87faecc9ca83776a297654157455146c541574541c6cb89898faecc9d9b899 -a8878694788f94788fb8a8a7a3748355146c5415745c1574040404 -0404045c0c7c5c0c7c5c0c7c6c1c7c6b37796a2976773c7c6c14745c0c735c0c7c64257c773c7c -6a29766b37797733726b377964257c885b87c9a799a374837c4b827c4b82a48899f9ebb6ab5f70 -641c74885b87885b87773c7c540b6c773c7c773c7c6b37797c4b82641c746a2976773c7c773c7c -7c4b82681769885b877c4b82773c7c773c7c7c4b826b37795c0c736a2976885b877c4b82773c7c -7c4b827c4b827733727733727c4b82885b87874d7a5c0c7364257c885b87885b87874d7a94788f -94788f885b87681769540b74540b6c540b6c773c7c885b87885b87874d7a874d7a885b87885b87 -874d7a55146c5c2479885b87885b8769256b55146c540b6c5415744c086c4c146c6b377994788f -a69798a4889994788f874d7a5c15745c1574541574541574040404 -0404045c0c7c640c795c147c5c047c5c0474640c795c0c7c5c0c7c5c0c735c0c735c0c73540c7c -5c0c735c04745c04745c0474500464ac99a7e6aa875c0460540b74540b74540b6cf9ebb6ab5f70 -5004645004645c0c735c046c540b6c5c0c73500464540b74540b745c147c5c0c73540b74540b74 -540b74500464540b74540b745c0c73540b6c4c086c540b745c0c735c0474540b74540b6c540b6c -540b6c540b6c4c086c540b745004645004644c086c5c0c735004644c086c4c086c4c0b744c086c -4c0b74500464540b6c540b6c540b6c540b6c4c086c540b744c086c4c0b744c0b744c086c4c086c -4c086c540b74540b744c086c440458540b74541574540b74540b6c540b6c541574541574540b74 -4c0b74540b6c4c086c540b7455146c541574541574541574040404 -0404045c0c735c0c7c6414745c0c735c0c735c0c7c5c0c735c15745c0c735c0c735c0c735c0c73 -5c15745c0c735c0c735c0c73500464b89898f8d0946f175c50046450046494788fe9b89981205c -540b745c0c735c0c735c0c735c0c735c15745c0474540b6c6414745c0c73540b6c540b6c540b6c -5c0c73540b745004645c0c73540b6c5c0c735004645c0c73540b6c540b745c0c735c1574540b6c -540b74540b6c540b74540b6c5c0c735c0c73500464540b6c540b74540b6c5004645c0c735c0c73 -500464540b74540b74540b6c540b6c4c086c540b6c5c0c73540b74500464500464500464540b74 -500464540b6c500464500464540b74540b74540b6c540b6c540b6c540b6c540b74540b74541574 -541574540b745c1574540b74541574540b6c5c15745c1574040404 -0404046414745c147c6414746414745c0c7c640c795c0c735c0c73540b6c540b6c5c0c735c0c73 -5c0c735c0c73540b6c5c0c735c04745c1c7cb89898d7aaa794788fa48899b7898f773372540b74 -5c0c735c0c735c0c735c0c735c15745c1574540b6c5c0c73540b6c5c0c73540b74540b6c5c046c -5004645c0c735004645c0c73540b6c5c15745c1574540b74540b6c540b6c540b6c5c15745c1574 -5c1574540b74540b6c540b6c5c1574540b74540b74500464540b6c5c15745c0c73540b6c540b6c -540b6c540b6c540b6c540b6c540b6c540b6c540b74540b6c540b6c540b74540b6c540b74540b6c -540b6c4c086c540b6c540b74500464540b6c540b6c540b6c4c086c540b6c540b6c540b6c540b6c -54157454157454157455146c541574541574540b74541574040404 -0404046414745c0c7c5c0c7c6414745c0c735c0c735c0c736414745c0c735c0c735c0c735c0c73 -540b745c0c735c0c73540b745c0c735c0c73540b6c6c1c7c6b37796a29765c04745004645c0c73 -5c0c735c0c735c0c735c15745c15745c0c735004645c0c735c1574540b6c5c0c73540b6c5c0c73 -540b745c0c735c0c73540b745c1e6c5c1574540b74540b6c5c1574540b745c0c735c1574540b6c -5c15745c15745c15745c0c73540b74540b6c540b6c540b6c500464540b74540b6c540b745c1574 -540b74540b6c540b6c540b74540b6c540b6c540b74541574540b6c540b6c540b6c540b6c540b6c -540b74540b6c4c086c540b6c540b6c540b744c086c541574540b74540b6c4c086c5c157455146c -54157455146c5c15745c15745c1c7c54157455146c5c1574040404 -0404045c0c7c5c0c7c6414745c0c7c641474641a7c6414745c0c735c0c735c15745c0c73540b6c -5c0c735c0c735c0c73540b6c540b6c5c0c735c0c73540b6c5c046c5c0c73540b6c5c04745c046c -5c0c73540b6c540b745c15745c0c73540b6c5c0c735c0c735c0c735c0c73540b745c0c73540b6c -540b6c540b6c5c1574540b6c5415745c15745c0c735004645c0c735c0c735c15745c15745c0c73 -540b6c540b6c540b74540b6c540b6c5c0c73540b74540b6c540b6c540b6c5c15745c15745c1574 -540b6c540b6c540b6c540b74540b6c540b745c1574540b74540b6c540b744c086c540b6c540b6c -540b6c540b6c540b6c540b6c540b6c54157454157455146c540b6c540b74540b6c540b7455146c -55146c5415745415745c24795c1574541574541574541574040404 -0404045c0c735c0c735c147c640c795c147c5c0c736414746414746414745c0c735c0c735c0c73 -5c0c735c0c73540b745c0c735c0c735c0c735c0c735c0c735c0c735c0c73540b6c540b6c540b6c -5c0c735c0c736414745c0c73540b745c0c735c0c73540b6c5c0c73541574540b6c540b6c5c046c -540b6c540b6c5c0c735c0c735c0c735c15745415745c15745c1574540b74540b6c5c0c73540b74 -540b6c540b6c540b6c540b6c5c0c73540b74540b6c540b6c5c0c73540b6c541574540b6c5c1574 -5c1574540b6c540b745c1574540b74540b6c540b6c540b6c540b74540b6c540b74540b74540b74 -540b6c540b74540b6c540b6c540b74540b6c540b6c541574540b6c540b6c540b74541574540b74 -540b7455146c5c2479541c6c5415745415745c15745c1574040404 -0404045c0c735c15745c0c735c0c735c0c735c0c736414745c147c5c147c5c0c735c0c735c147c -5c0c735c0c735c0c735c0c73540b6c6414745c0c73540b6c540b6c5c0c73640c79640c79641474 -5c0c735c0c735c15745c157455146c5c15745c15745c0c735c15745c0c73540b74540b6c540b6c -5c046c540b74540b6c540b6c540b6c540b6c5415745c15745c15745c15745c1c7c5c1574540b6c -540b74540b6c540b6c540b7455146c540b74540b6c540b6c5c15745c0c735c1574540b6c540b6c -541574540b6c540b6c5c0c73540b6c540b6c4c086c540b6c5c1574540b6c5415745c1574540b6c -540b6c540b6c540b744c086c540b6c540b6c4c146c541574540b74540b6c55146c541574540b6c -5415745415745415745c15745c1574541574541574541c6c040404 -0404046414746414746414745c0c7c5c0c735c0c735c0c7c5c0c735c0c735c0c73540b745c0c73 -5c0c73540b6c640c79540b6c5c0c735c0c735c0c735c0c735c0c735c0c73540b6c540b745c0c73 -5c1574540b6c540b74540b6c5415745c15745c0c73540b6c540b74540b6c540b6c5004645c0c73 -540b6c5c0c735c0c73540b74540b6c5c1574540b6c5c15745c15745c15745c157455146c5c1574 -540b6c540b6c5c15745c0c735c0c73540b6c540b6c540b6c5415745c15745c1c7c5c15745c1e6c -5c1574541574500464540b6c4c086c540b6c540b6c540b6c540b6c540b6c500464540b745c1574 -540b6c540b745c1574540b74540b6c540b7455146c55146c540b6c540b74541574541574540b6c -540b6c5c24795c24795c24795c2479541c6c5415745c1c7c040404 -0404046414745c147c6414745c147c5c0c735c0c735c0c735c0474540b745c0c735c0c735c0c73 -5c0c735c0c73660b65540b6c5c0c735c0c73540b6c5c0c73540b6c540b6c5c0c735c0c73540b6c -540b745c0c735c0c73540b6c540b745c15745c15745c1574540b6c540b6c540b6c5c0c73500464 -5c0c73540b6c5c0c73500464540b6c5c15745c1574540b6c540b6c5c1574540b6c5c15745c1574 -540b6c5c0c73540b745c1574540b6c5c0c73540b6c5c0c73540b745c0c735c15745c15745c1574 -5c15745c15745c0c73540b6c540b6c540b6c540b74540b74540b6c540b74540b6c540b6c540b6c -540b74540b6c540b6c540b6c540b6c540b6c541574541574540b6c540b6c540b745415744c086c -55146c5c15745415745c15745c24795c1574541574541c6c040404 -0404045c0c736414745c0c7c5c0c7c5c0c735c0c7c5c0c73540b745c0c735c04745c04745c0c73 -5c046c5c0c735c0c735c0c735c04745c0c735c046c540b6c5c04745c0474540b745c046c540b74 -540b6c540b6c5c0c735c0c7350046454047c5c0c73540b745c046c540b6c5c046c540b6c5c0c73 -540b745c15745c0c73540b745004645c0c73540b6c5004645c0c735c0c735c15745c15745c1574 -540b6c5c0c73500464540b745c0c73540b6c540b745c0c735c15745c157455146c5c0c73541574 -5c1574540b6c5415745c0c73540b6c540b6c540b74540b6c540b74500464540b74540b74540b6c -540b6c540b6c540b74540b6c540b6c4c086c55146c55146c540b7455146c540b6c55146c540b6c -55146c54157455146c54157454157454157455146c541574040404 -0404045c0c735c147c5c0c7c6414745c0c735c147c5c0c735c0c735c0c735c0c735c0c735c0c73 -5c0c73540b6c5c0c735c04745c0c735c0c73540b6c5c0c73540b74641c746b37796b3779792666 -540b6c5c0c735c0c735c0c736b3779773c7c6414745c0c73540b745c0c73540b6c540b6c540b74 -540b745c1574500464540b74540b6c5004646a29767c4b8269256b5c0c735c157455146c540b6c -500464540b746b3779773372540b745c0c73540b6c5c15745c1574540b6c5415745c15745c1574 -540b6c540b6c540b6c54157455146c55146c540b74540b745415746b377955146c540b6c540b74 -540b6c540b6c540b6c540b74540b6c540b6c54157455146c4c1575540b6c4c086c4c086c540b74 -55146c54157455146c540b6c55146c540b7455146c540b6c040404 -0404046414746414746414745c0c735c0c735c0c7c6414745c0c735c0c735c0c735c0474640c79 -5c0c73640c795c046c5c0c735c0c735c0c735c0c73540b6c540b747c4b82e7c7a5874d7ab8a8a7 -a37483500464540b74540b7494788fd69986500464540b74540b6c540b74500464540b74540b74 -540b74540b74885b876817694c0b74885b87b7898f7c4b82b7898f681769540b74540b745c0c73 -5c04744c086cb89898a374835004644c086c540b745c0474540b74500464500464540b74540b6c -540b6c540b74540b6c540b7494788f8f416b4c086c4c086c6a2976d8b7a88a2f62540b74541574 -540b6c540b74540b6c540b6c540b74540b6c541574541574540b6c55146c54157455146c5c1574 -5415745415745c1574541574540b7455146c540b74541574040404 -0404045c147c6414745c147c5c0c736414745c15745c0c735c147c5c15745c0c735c0c735c0c73 -640c795c0c735c0c735c0c735c0c735c0c735c0c735c0c7c5004646b3779e9b89964105c94788f -d88e7d640c797c4b82874d7a7c4b82d69986885b87874d7a540b6c773c7c885b876a2976773c7c -874d7a874d7ad8b7a88f416b4c0b74b89898ab5f70540b6c69256b55146c773c7c874d7a681769 -5c24797c4b82c89997ab5f705c1e6c7c4b827733726817696a2976885b876b3779773c7c69256b -5c24796817696b3779773c7c773c7c69256b5c1574885b87773c7cc9a7997733726b37796a2976 -540b6c55146c540b7455146c540b6c540b74541574541574540b74540b7455146c540b74541574 -5c1574541574541574541574541574541574541574541574040404 -0404045c15745c147c6414746414745c147c5c0c735c0c735c0c735c0c735c0c735c0c735c0c73 -5c0c73540b6c540b6c5c0c735c0c735c15745c15745c0c735c04746b3779d8b7a8b89898b7898f -6a2976b7898f773372a48899d7a899d7a899885b87c8a9a7c89887ae7b74a37483d7a899c5b699 -c89887a37483d8b7a8ab5f70540b747c4b82c8b7a8c8a9a7a37483a37483a37483a48899c89887 -b98680773c7cc8a9a7b98680b7898f874d7ad7c8a8b7898fb99886885b87d9b899d9b8998f416b -a48899ab5f70885b87b98680b5a898a37483a37483885b87a37483c89997a37483a374836b3779 -55146c541574540b6c540b6c540b6c540b6c540b6c55146c540b7455146c540b6c55146c540b6c -5415745c1574540b6c5c157455146c541574541574541574040404 -0404045c0c735c0c735c147c6414745c0c7c640c795c0c735c0c735c0c735c0c73640c795c0474 -5c04745c0c735c0c735c0c735c0c736414745c15746414745c04746b3779e6aa9da37483d7a899 -773372e6b8ab64105c885b87f7c7a8d88e7d44045894788ff9ebb6b7898f7c4b82874d7ac89997 -8f416b4c086cc9a799792666540b7468176955146c6b3779d8b7a8fad9a5a374837c4b82b8a8a7 -d6998644045894788fb7898fc89997885b87a37483a37483d7a8997c4b82936f72a48899c78c82 -b7898fd7a899a3748369256ba69798d7a899a37483500464541574c9a799e7c7a5874d7a4c086c -540b7455146c541574540b6c540b74540b6c540b74541574540b6c541574540b6c4c086c55146c -540b6c541574540b6c540b6c55146c54157455146c55146c040404 -0404045c0c735c0c735c0c735c0c7c5c0c735c0c73640c795c0c735c15745c0c735c0c735c0c73 -5c0c7c5c0c735c0c735c0c735c0c735c0c735c0c73540b6c5c04747c4b82e7c7a579266694788f -c9a799d9b899ab5f7094788fb98680d9b899874d7aa37483a37483c89997874d7a773c7cc19ba5 -ab5f705c0c73c8a9a7a37483540b74a37483a374837c4b82a88786b7898fc89887773c7c874d7a -d7aaa7936f72c19ba5b98680a69798c8a886885b87885b87d9b899874d7a7733726b3779e7c7a5 -792666ac99a7ca8377540b6cb8a8a7c89887c9a799874d7a773c7cc5b699ae7b74c9a799ab5f70 -540b74540b6c541574541574541574540b6c540b6c540b744c146c540b6c54157455146c4c086c -55146c5415744c086c55146c540b74541574541574541574040404 -0404045c0c735c0c735c0c73641474640c79640c795c0c7c5c0c736414745c0c735c0c735c0c7c -5c0474540b6c540b745c0c73540b6c5c0c735c0c735c0c735c0c736c1c7c773c7c6a29765c0c73 -773c7c6a29767c4b82773372641474773c7c874d7a640c79540b74773c7c7c4b826a2976773c7c -6b3779500464773c7c7c4b825c157464257c7c4b827c4b82641474540b747c4b827c4b82641c74 -6b3779885b87773c7c885b87c89887885b87b89898c78c826b3779885b876b3779541574773372 -540b6c6b37796a29765c15747c4b82773c7c773c7c885b87773c7c7c4b826a29766b37797c4b82 -540b6c540b6c540b6c540b6c540b6c540b6c540b744c086c540b6c4c086c540b6c540b6c540b6c -5415745c1574541574540b6c541574541574540b744c146c040404 -0404045c0c7c5c0c735c0c736414745c0c7c640c796414745c0c73540b745c0c735c04745c0474 -5c0c735c04745c046c5c04745c0c735c04745c0c735c04745004645c0c735004645c04745c0474 -500464540b74540b745c04745c0c73540b744c086c5004645c0c735004645004645c0c73540b74 -5004645c0c7c500464540b745c15745c0474500464540b745c0c735c0c73540b74540b6c540b74 -540b7450046455146c6b3779c8999768176994788f874d7a500464540b74500464540b6c4c086c -5c157455146c540b6c540b6c4c086c540b6c540b6c4c086c540b6c4c0b744c0b745415744c086c -4c0b74540b6c4c086c540b6c4c086c540b6c540b6c4c086c540b6c540b6c540b744c086c55146c -541574541574540b6c540b6c54157454157455146c541574040404 -0404045c147c5c0c735c0c7c5c04745c0c735c0c735c0c7c5c0c735c0c735c0c735c0c7c5c0474 -5c04745c0c735c0c735c046c5c04745c0c735c0474540b745c0c735c0c735c04745c04745c0474 -5c04745c046c5c04745c046c540b74540b6c540b6c5c1574540b745c0c735c147c5c0c735c046c -540b745004645c0c735415745c0c73500464500464540b6c540b6c540b6c540b74541574540b6c -540b6c5415745c157455146c6b37797c4b826b37795c04745c0c73540b6c540b74540b6c5c1574 -540b6c540b6c540b6c540b74540b6c540b7455146c55146c500464540b6c540b6c55146c540b6c -500464540b74540b6c540b6c540b6c540b6c4c086c540b6c4c086c540b6c4c086c5c1574541574 -540b6c541574540b6c4c146c55146c540b6c5415744c146c040404 -0404045c0c735c147c640c795c0c735c0c73640c795c0c735c0c735c0c735c0c735c04745c0c7c -5c0c735c0c735c0c735c0c735c0c735c04745c0c735c046c5c0c735c04745c0c735c0c735c0474 -5c0474540b74540b745c04745c0c735c0474540b745c0c735c1574540b6c5c15745c15745c0c73 -5004645c0c73540b745c15745c0c73540b74540b74540b6c540b6c540b6c5c0c73540b6c5c1574 -540b6c5004645c1574540b74540b74500464540b745415745c15745c1574540b6c5c1574541574 -540b6c540b6c540b6c540b74540b6c540b74540b6c5c0c73540b6c4c086c55146c540b74500464 -540b6c4c086c540b6c5004644c086c540b6c500464540b6c540b74540b6c540b6c540b6c540b74 -540b6c541574540b6c540b745415744c086c55146c541574040404 -0404045c0c735c147c6414745c0c7c5c0c735c0c73640c795c0c7c5c0c7c5c0c7c5c04745c0c73 -5c0c735c0c735c0c73540b745c0c735c0c735c04745c0c735c04745c0c735c0c735c04745c0474 -5c0474540b745c0474540b745c04745c04745c0c735c0c73540b745c0c73540b6c5c0c73540b6c -5c0c735c0c735c0c735c0c73540b6c540b6c5c04745c15745c1574540b6c540b6c5c0c735c0c73 -5c15745c1574540b6c540b6c540b6c5c0c73540b6c540b6c5c15745c15745c15745c1574540b6c -540b6c540b74540b6c540b6c540b6c540b6c540b6c540b6c540b6c540b7454157455146c540b74 -500464540b6c540b6c4c086c540b6c540b6c540b74540b74541574540b6c540b74540b6c540b6c -540b6c540b6c4c086c541574541574541574541574541574040404 -0404045c0c735c0c735c147c5c0c7c5c0c735c0c735c0c735c0c735c15745c0c735c0c735c0c73 -5c0c735c0c73540b745c0c73540b745c04745c0c735c0c735c04745c0c735c0c735c0474540b74 -5c04745c04745c04745c04745c0474540b74540b745c0c735c1574540b6c540b74540b6c5c046c -5004645c04745c0c73540b74500464540b74540b6c5c0c7355146c540b745c0c73540b6c540b74 -5c15745c24795c0c73540b6c540b6c540b6c540b6c540b74540b6c5c15745c15745c1574540b74 -5c15745c1574540b6c540b74540b6c540b6c4c0b74540b74540b6c540b74641c74541574540b6c -540b74540b6c4c086c540b6c4c086c540b6c540b6c540b74540b6c540b6c540b6c540b6c540b6c -540b6c4c086c55146c540b6c541574540b6c55146c55146c040404 -0404045c0c735c0c7c5c0c735c0c735c0c735c0c73540b745c0c735c0c735c0c735c0c735c0c73 -5c0c735c0c735c0c735c04745c0474540b745c04745c0c735c0c735c0c735c0c735c04745c0474 -5c0474540b745c046c540b74540b745c04745c0474540b745c1574540b745c0c735c0c73540b74 -540b74540b74540b745c0474540b745004645c0c735c1574540b74540b6c540b74540b6c540b6c -5c0c735c15745415745c0c73540b6c540b6c540b6c5c0c735c0c735c15745c1574541574540b74 -540b6c540b6c540b74540b6c540b74540b6c540b6c540b6c540b6c540b6c541574540b6c540b6c -540b6c540b6c540b6c4c086c500464540b6c540b74540b6c540b74540b6c4c086c540b6c540b6c -540b74540b74540b7454157455146c541574540b6c541574040404 -0404045c147c6414745c0c7c5c0c735c0c735c0c736414745c0c735c0c735c0c735c0c73540b74 -5c0c73640c795c0c735c0c735c0c735c046c5c0c735c046c5c04745c0c735c04745c0c735c0c73 -5c04745c046c5c04745c04745c04745c0474540b745c0c735c0c735c0c73540b745c0c73540b74 -5c0474500464540b745c046c540b745c0c73540b745c15745c0c73540b6c540b6c5c0c73540b6c -540b6c5c1574540b74540b74540b74540b6c5c0c73540b6c540b6c5c147c5c1574540b6c540b6c -540b6c540b74540b6c540b6c540b6c540b74500464540b6c540b6c540b74540b6c55146c540b6c -540b6c540b74540b6c540b74540b74540b6c540b6c540b6c540b6c540b6c540b6c540b6c540b74 -54157455146c4c086c541574540b6c541574540b6c541574040404 -0404045c1574641a7c641a7c5c0c735c0c735c0c735c0c7c5c0c735c15745c0c73540b745c0c73 -5c0c735c0c735c0c735c0c735c0c735c0c735c046c540b745c04745c0c735c0c735c0474540b6c -5c0c735c0c735c0c735c0474540b745c0474540b74540b6c540b6c5c04745c0474500464540b74 -5c0c735c0c735c0474540b745c0474540b6c540b6c540b74540b6c540b6c540b6c540b6c540b74 -5c0c73541574540b6c5c0c73540b6c540b6c5415745c1574540b6c540b6c5c1574541574540b6c -540b6c540b74540b74540b6c540b6c5c1574540b74540b74540b6c540b6c4c086c5c15744c146c -5c1574541574540b6c540b74540b6c540b6c4c086c540b6c4c086c540b6c4c086c540b6c540b6c -540b6c540b6c55146c540b6c540b7455146c541574541574040404 -040404641a7c641a7c641a7c64257c6414745c147c5c15745c0c735c0c735c0c735c0c735c0c73 -5c0c735c04745c0c735c0c735c0c735c0c735c04745c04745c0c735c04745c047c5c0c735c0c73 -5c0c735415745c1574540b74540b74540b74540b6c5c0c735c046c540b6c540b6c5c0c735c0c73 -5c15745c147c540b745c0474540b6c540b745c04745c046c5c0c73540b6c540b745004645c0c73 -540b6c540b6c5c0c73540b6c5c0c73540b74540b6c540b6c540b74540b6c5c0c73540b6c540b74 -540b6c540b6c5c1574540b6c540b6c540b6c540b6c540b6c540b74540b6c500464541574540b74 -55146c540b74540b6c540b6c540b6c540b6c540b6c4c086c540b6c54157455146c55146c4c086c -540b6c4c1575540b6c541574541574541574541574541574040404 -0404045c15745c147c641474641474640c795c0c735c15745c0c735c15745c0c735c0c735c0c73 -5c0c735c0c735c04745c0c735c0c7c5c0c735c0c735c0c735c04745c04745c0c735c0c735c0c73 -5c0c735c046c5c0c735c046c5c04745c0c735c0c73540b6c5c0c735c0c735c0c735c15745c1574 -5c0c735c0c735c04745004645c0474540b74540b6c540b745c0c73540b6c540b6c5c0c73540b6c -5c0c73540b745c0c735c1574540b6c5c15745c0c73540b6c5c15745c1574541574540b6c5c1574 -541574540b6c540b74540b74540b74540b6c540b6c5c15745c1574540b74540b6c540b7455146c -540b6c540b6c540b6c540b74540b6c540b6c4c086c540b6c5c15744c086c5415744c146c55146c -540b6c540b6c4c086c540b7454157454157455146c5c1574040404 -0404046414746414745c147c5c147c5c147c5c147c6414745c15745c0c735c0c735c0c735c0c73 -5c0c735c046c5c0c735c0c73540b745c0c735c04745c04745c0c735c0474540b745c04745c0c73 -5c0c735c0c735c0c73540b745c0c735c15745c0c735c0c73540b74540b6c540b745c0c73541574 -540b6c5c0c73540b745c0c73540b745c04745c0c735c0c73540b74540b74500464540b6c5c0c73 -5c0c73540b6c540b74540b6c5c0c735c1574540b74540b745c0c73540b6c5c1574540b74540b6c -540b6c540b7455146c540b6c541574540b74540b745c15745c1574540b6c540b74540b74540b6c -541574541574540b74540b6c540b74540b6c540b6c540b6c540b7455146c4c086c5415745c1574 -4c15754c0b745415744c086c4c146c55146c540b7455146c040404 -040404641a7c5c0c7c5c147c5c15746414745c15745c147c5c0c735c0c735c0c735c15745c0c73 -540b6c540b6c540b6c5c0c735c0474540b745c04745c0474540b745c0c735c0474540b745c0c7c -5c047c5c0c73540b745c0c735c0c735c0c735c15745c157455146c5c0c735c1574540b6c5c0c73 -5c1574540b745c0474540b745c0c73540b6c5c0c73540b6c5c0c73540b6c5c0c735c15745c1574 -540b6c540b6c540b6c540b745c0c73540b74540b74540b6c540b74540b6c5c15745c1574540b74 -540b6c5c1574541574540b6c540b6c540b6c5c157455146c540b74540b6c5c15745c0c73540b74 -540b6c540b6c540b745c1574540b74540b6c540b6c540b74540b6c540b6c5415745c157455146c -4c086c540b6c540b74540b6c540b6c540b7455146c541574040404 -0404046414746414745c1574641a7c641474641a7c5c147c540b6c5c0c735c15745c0c735c0c73 -6414745c0c735c04745c0c73540b6c5c04745c0474540b745c04745c046c5c0c735c04745c0474 -5c0c735c0c735c0c73540b745c0c735c147c5c0c735c0c73540b745c0c735c0c735c0c735c0c73 -5c0c735c0c73540b745c046c540b74540b74540b6c5c0c735c0c73540b6c5c1c7c5c147c5c1574 -5415745c0c735c0c73540b6c540b6c540b6c540b74540b74540b6c5c0c735c0c735c0c73541574 -5c15745c15745c15745c1574540b745c15745c1574540b6c540b6c540b74541574540b6c540b74 -55146c540b74540b6c5c1574540b74540b6c4c086c540b6c540b6c540b6c55146c541574541574 -5c157454157455146c5415745415745415745415744c1575040404 -0404046414745c0c7c641a7c64257c6727846414745c0c735c0c735c147c5c0c735c0c735c0c73 -5c147c5c0c735c0c73540b745c0474540b745c0c73640c795c04745c04745c0c735c0c7c5c0474 -5c0c735c0c735c0c735c0c735c0c735c0c735c0c73540b745c0c735c0c73540b6c5c0c73540b74 -5c0c7c540b745c046c540b74540b6c540b6c5c0c735c15745c0c735415745c15745c15745c1c7c -5c15745c0c735c0c73540b74540b74540b74540b6c540b6c5c0c73540b74540b6c540b6c540b6c -5c1574541574540b7455146c5c15745c15745c1574540b74540b6c540b6c540b6c540b745c1574 -540b74540b6c540b745c1574540b74540b6c540b6c55146c540b74540b74540b6c54157455146c -5415745c157454157455146c54157454157454157455146c040404 -040404641a7c641a7c64257c64257c641a7c641a7c5c0c7c5c0c735c0c735c0c7c5c0c735c0c7c -5c15745c0c735c04745c0c735c046c640c79540b6c5c0c735c0c735c046c640c795c0c735c046c -540b745c0c735c0c735c0c73540b6c5c0c73540b745c0c735c0c735c0c735c0c735c0c735c0c73 -5c0c73500464540b745c0c735c15745c0c73540b6c540b745c0c7355146c5c15745c15745c1574 -5c1574540b745c15745c15745c0c735c0c73540b6c540b745c1574540b6c5c0c735c0c73541574 -5c15745c15745c1574540b74540b6c5c0c735415745c1574540b6c540b74540b6c540b6c540b6c -5c15745c1574540b6c540b74540b6c540b6c540b6c540b74540b74540b74540b6c540b6c5c1574 -5c157454157454157454157454157455146c541574541574040404 -04040464257c5c1c7c64257c641c74641a7c5c15745c15745c15745c0c735c0c735c0c735c0c73 -5c0c735c0c735c0c735c0c735c0c735c0c735c0c735c0c735c0c735c0c735c0c735c15745c0c73 -5c0c735c15745c1574540b6c540b6c5c0c735c0c73640c795c0c73540b6c5c0c735c0c735c1574 -5c15745c0c7c5c0c735c04745c15745c0c73540b745c15745c15745c0c73641c745c15745c1574 -55146c5c15745c15745c1574540b745c0c73540b746414745c1574540b6c5c15745c157455146c -5415745c15745c15745c1574540b6c5415745c15745c15745c1574540b6c540b6c5c1574540b74 -540b6c5c1574540b74540b6c540b6c540b74540b6c5c15745c1574540b74540b6c540b74541574 -54157455146c540b7455146c541574541574541574541574040404 -040404641a7c641a7c641a7c5c147c5c15745c147c6414745c0c7c54147c540c7c540c7c540c7c -5c0c7c540c7c540b74540b74540c7c540c7c540c7c540c7c54047c54047c540c7c540b74540b74 -54147c5c0c7c540c7c540c7c540c7c540c7c540b74540b74540c7c540c7c540b744c0b745c147c -540c7c540c7c540b74540b74540b74540b74540c7c54157454157454147c54147c5415745c1574 -5c1574541574540b744c0b7454147c540c7c540c7c54147c540b7454157454147c541c7c54147c -5c1c7c5415745415744c0b744c0b7454147c54147c540b744c0b74540b74540b74540b74540b74 -4c0b744c0b74540b74540b744c0b744c086c4c15754c0b744c0b744c15754c0b74540b744c1575 -541574540b6c55146c541574540b6c54157455146c541574040404 -040404641a7c641a7c6414746414746414745c147c5c147c681769b0254eb0254eb0254eb0254e -b0254eb0254eb0254eb0254eb0254eb0254eb0254eb0254eb0254eb0254eb0254eb0254ea52357 -a52357b0254eb0254ea52357a52357a52357a52357a52357a52357a52357a52357a52357a52357 -a52357a52357a5235799275ea52357a52357a5235799275ea5235799275e99275e99275e99275e -99275e99275e99275e99275e99275e99275e8d1d5c99275e99275e8d1d5c99275e99275e99275e -99275e8d1d5c8d1d5c8d1d5c8d1d5c8721648d1d5c8721648d1d5c872164872164872164872164 -87216481205c872164872164781a66872164872164872164781a66781a66781a66781a66781a66 -5c1574541574540b74540b6c541574541574541574541574040404 -040404641a7c5c147c5c147c6414745c147c6414745c147c8d1d5ccd342a852415852415472415 -852415472415852415472415852415852415472415852415852415852415852415852415852415 -852415852415852415852415852415852415852415852415852415852415852415852415852415 -852415852415852415852415852415852415852415852415852415852415852415852415852415 -852415a82916852415a82916852415a82916852415a82916852415a82916b63024b63024852415 -a82916852415a82916a82916a82916a82916b63024a82916a82916a82916a82916b63024b63024 -a82916b63024a82916a82916b63024b63024b63024b63024b63024b63024b63024cd342adb3738 -81205c54147c541574541574541574540b6c5c157455146c040404 -040404641a7c641c745c147c5c147c641474641a7c54147c8d1d5ccd342a141c104d3d2c5d4c36 -5d4c366c545646423b5d4c36472f223d363051524b45535b30444339291f3d363030444345535b -30444339291f3d363045535b51524b51524b472f2251524b45535b51524b40474b4d3d2c4d3d2c -51524b51524b595c59675f464d3d2c5d4c3645535b40474b51524b4d3d2c51524b51524b51524b -675f4651524b51524b45535b595c5951524b46423b40474b40474b40474b51524b51524b40474b -40474b3d363039291f46423b30444340474b3d363039291f304443302f2a30444319271c302f2a -304443302f2a3d3630302f2a302f2a3044433d3630302f2a39291f39291f19271c141c10b63024 -8d1d5c4c0b7455146c540b74540b6c55146c540b6c55146c040404 -040404641a7c64257c64257c6414746414746414745c147c8d1d5ccd342a39291f4d3d2c8c6540 -a37483b99886d9b899666178815a556f596f9588a7d9d5b85f6b976c5456666178a8b1c9dad4a8 -7472977a687994788fc6c2cae8bb88a48899b98680c7abb5d8c7b8e8bb88d8b9b7e6aa87f7be9a -d8b9b7efad93f7c8c8f7c7a8f6c5b7d7aaa7d7aaa7f5eae7f9ebb6f8ecd8d8b9b7c8a9a7fcf8e7 -f7d8b8f8ecd8d8b7a8e6aa9df7c8c8f6c5b7f6c5b7c7b8b7e6b8abe6b8abe6aa87e6b8abe8dab9 -d8b9b7c19ba5c78c82c19ba5d8c7b8c8b7a894788f92655f82839bccd6c69897a86c5456815a55 -747297c6c2ca878aa77a687992655f7a6879c8a886a48899a37483675f465d4c364d3d2ca82916 -8d1d5c4c0b74540b74541574541574540b744c146c541574040404 -040404641a7c64257c641a7c641a7c5c147c5c147c5c147c8d1d5cb63024472f225d4c3619271c -565b68a37357c78b4f5c495a40474b4b4b6492655fa373575c495a45535b4b4b647c6267ae845d -6f596f565b687a6879be8b70d2966d7b7779595c59a48899d69986df9b5ac898877a6879c19ba5 -e6aa87e6aa87e6aa9d7b7779e6b8abe7c7a5f7be9ad8c7b8878283e8d8d8e9d8c8e9d8c8c6c2ca -878283e7c8c8e6b8abf7c7a8c8a9a7878283f6c5b7d9b899e6b8abc89997878283d7aaa7efad93 -d9a887a48899696f7aa48899d9a887be8b707a68795a6889776a86c898877c6267535f83565b77 -605170c8a886936f72565b774b4b646c5456d2966dae7b74666178302f2a8c654046423bb63024 -8d1d5c540b745c15745c0c73540b6c541574540b745c1c7c040404 -040404641474641a7c641a7c6414746414745c147c5c147ca52357a8291639291f92655f45535b -3d363092655fc78b4f92655f565b6840474b815a55ae845d40474b45535b4b5967675f46be8b70 -6051704b5967605170be8b70c8988778798859667894788fc78d61df9b5ab8989870706aa69798 -d88e7de8bb88d7aaa770706ad8b9b7e6aa9de7c7a5c8a9a77b7779e8d8d8d7a899e9d8c8d7c8c8 -7b7779e6b8abe6aa87e7c8c8b8a8a7878283e6b8abe6aa87e9c8b8a48899696f7ac89997f0ac7d -d699867b7779596678a37483d69986ae7b74596678565b776f596fae98706c5456565b774b5976 -5c495aa373577c62674b4b64666178936f72c78d6192655f40474b616568a887865d4c36a82916 -8d1d5c4c1575540b74541574540b745415745415745c1574040404 -0404045c147c6414746414745c0c7c5c147c5c15745c0c7c8d1d5ca829163d3630878283936f72 -5d4c36827668d9a8878f8b977c62675c495a878283c8a88666617840474b565b77a59887c5b699 -776a86815a55878283b8a8a7c8b7a8a37483be8b70ac99a7ca8377df9b5ad69b98d69986d6acb4 -d7a899d7aaa7e6b8abe9c8b8f7c8c8d88e7dc89997f6c5b7f8ecd8f5eae7b98680c8a9a7f7c8c8 -f8ecd8f7c8c8c78c82d7aaa7f6c5b7f7c8c8f7c8c8d69b98d3bac4d7aaa7d8b9b7d8b9b7efad93 -c7abb5b7898fb7898f999cb5d8c7b8999cb57a68797c6267747297d7c8a882839b565b685c495a -676a88c8b688867389605170936f729588a7d9b888766a4d815a55936f72a6979851524bb63024 -8d1d5c4c0b7454157455146c54157454157455146c5c1574040404 -0404045c15746414745c147c5c0c735c0c736414745c147c8d1d5ca82916472f22d9a887c78b4f -c78d61c8a671ae9870d9a887ab7b45c78d61b6a788a88786c8a6718c6540c8a671c5b699a69798 -e8bb88c78d61e9b899b9b7b4b5a898e8bb88d2966de9b899d8b7a8d7a899e6aa87f0ac7dd9a887 -d7a899d69b98e09e75efad93c89887c89997c89997c89887e7c8c8ae7b74c89887c78c82a59887 -e7c8c8c78c82c78c82d69986c89887e9b899d7a899d7aaa7d7a899e6aa87f7be9ae6b8abd8b7a8 -d8b7a8e6aa87e6aa87e9c8b8c7b8b7cac4b7e9b899d2966de7c7a5a8a6a9cac4a7ae9870a37357 -d9b899988884c8b7a8be8b70a37357d9b899b89898d9b888d2966dd2966dc9a79940474bb63024 -8d1d5c4c15755c1574540b745415745c1574541574541574040404 -040404640c796414745c147c6414745c15745c0c7c5c0c7c8d1d5ca82916302f2a6c5456815a55 -92655fb99886b6a7886c54565d4c367a6879a48899b6a7887c6267815a557c6267a59887c8b688 -747297936f72936f72b8aab7c8a9a79588a7ca8377b98680c7b8b7d9a887b8aab7e6b8abd7a899 -c8a9a7d69986d7c8c8f7c7a8e9b899c8a9a7d69b98ebdae5f5eae7f6c5b7c89997c78c82e8d8d8 -f5ebf5f6c5b7c89997d69b98e7c8c8f7c7a8d7aaa7d7aaa7d7aaa7e7c8c8e6b8abc8a9a7d8b9b7 -ac99a7c8a9a7d88e7da48899cac4b7b8aab7a48899ae7b74988884d7c8a8a697987a687992655f -936f72c5b699a69798815a556c5456776a86c9a799b5a898a37357936f7287828346423bb63024 -8d1d5c4c15755415745c157455146c54157455146c541574040404 -0404045c147c6414745c0c7c6414746414745c147c5c0c7c8d1d5cb630244724155c495a40474b -6661788c6540a3735740474b4b4b64565b77675f46a373575c495a45535b4b5976a88786e09e75 -6f596f4b5967666178c9a799e09e7586738961656882839be6b8abf7bb86a488997a6879b8aab7 -e7c8c8f7bb86c8b7a8988884e7c8c8e7c8c8e7c8c8d8b9b7878283e7c8c8c6c2cad8b9b7e7c8c8 -878283e6c9d9e8d8d8e9c8b8c7abb57b7779d3bac4e7c7a5f7be9aac99a7787988c7abb5f8d094 -d7a899776a865a688994788fe9b899c78c82666178666178867389e8bb8892655f565b774b4b64 -5c495abe8b707a68795966784b59675c495ac78d6194788f7a68794b4b64815a554d3d2cb63024 -8721644c0b7454157455146c540b745c15745415745c1574040404 -04040467278464257c641a7c672784641a7c6414745c0c7c8d1d5ca8291639291f6c545640474b -304443815a55a3735751524b45535b45535b5d4c36ab7b457a6879595c594b4b64a37357d2966d -6f596f4b5967565b77d2966dd9a8877a68794b5967787988e6aa87f7c7a8988884565b688f8b97 -f7be9afad9a5b89898616568d3bac4e9c8b8f5eae7c7abb570706ae7c8c8e7c8c8e8d8d8c7b8b7 -616568c7b8b7f6d8c8f8ecd8a8a6a9696f7ad6acb4f7be9af6d8c882839b565b68b8a8a7f7c7a8 -e6aa9d696f7a4b5967a37483f0ac7dd88e7d6661784b5976936f72e09e7592655f4b5967696f7a -936f72ab7b45675f464b59675966786f596fa37357815a5545535b565b68936f7246423bb63024 -8d1d5c541574541574540b6c54157455146c541574541574040404 -04040464257c6a2976672784641a7c641a7c5c1c7c541c7c8d1d5ccd342a39291f696f7a6c5456 -5c495a936f72c8a67178798851524b4b4b64827668d9b56ab8989892655f5c495aae9870c8b688 -696f7a936f72867389b6a788c9a799878283b998869588a7b5a898e9c8b8ac99a7d8b7a8b9b6c0 -c9a799e9c8b8c7b8b7e8d8d8d8d7dad69986d8b9b7f7c8c8ebdae5ebdae5d69b98c8a9a7f7c8c8 -e8d8d8ebdae5e59b87d8b9b7e7c8c8e8d8d8d6c8d5f7be9ac7b8b7c8a9a7cac4b7a9a7baf7c7a8 -a9a7baa69798b8989882839bdac896999cb5867389a37483676a88dac8968673896f596fa37483 -c19ba5e8bb88867389565b776c5456787988d9b8997a687960517060517077809751524bb63024 -8a2f624c1575541574541574541574540b745415745c1574040404 -04040464257c64257c641a7c641a7c5c1c7c6414745c1c7c99275ea829163d3630dac896ae9870 -c78d61c5b699a59887d9b8888c6540c78b4fc8a671c8a671efad5ec78b4fd2966db6a788ae9870 -e8bb88df9b5af7bb86b5a898b5a898f8d094f7be9af7d8b8b9b6c0b9b6a8fad9a5fad9a5f7c7a8 -d8b7a8d7aaa7f7c7a8faecc9e6b8abd8b7a8e6aa9dd8b7a8e9e7e8d6acb4d69b98d69b98d7aaa7 -e8d8d8d8b7a8d7aaa7d7aaa7e6b8abf6d8c8e9c8b8d8b9b7e9b899f7c7a8f7d8b8f7d8b8b9b6c0 -d7c8c8f7d8b8f8d094fad9a5b9b6a8cac4a7e9b899f0ac7ddac896b5a898c8b7a8d9b888c78d61 -e8bb88c8b688d9b888c78b4fa37357d9b899b5a898c8b688c78d61c9a799b9b7b440474bb63024 -87216454147c5c15745415745c15745415745c1574541574040404 -04040464257c641a7c641a7c641a7c5c147c5c157454147c99275ecd342a3d36306775886c5456 -5c495a988884c8a6716c5456815a55a37357d9a887c8a671776a86ae7b74936f72a59887b6a788 -7b7779ae7b74936f72a8a6a9c5b6999588a7d7a899a48899b9b6c0c7b8b7ac99a7e7c7a5c89997 -c7b8b7d9b899c6c2cae9e7e8d8b9b7d6acb4d7aaa7ebdae5f5ebf5f7c8c8d7aaa7d69b98e8d8d8 -f5ebf5e6b8abd8b9b7d7aaa7d8d7dae9e7e8c8a9a7d7c8c8c19ba5d7c8c8e7c7a5a69798ccd6c6 -a8a6a9c7abb5e9b899a59887cac4a79fa19ac89997be8b70988884d9b899b5a898ae7b74ae7b74 -988884c8b688d9b899ae7b7492655f787988c8b688988884815a557b7779999cb540474bcd342a -8721645415745415745c1c7c5415745415745c15745c1574040404 -040404641a7c5c1c7c641a7c64257c6414745c15745c1c7c99275ecd342a39291f4b4b644b5967 -45535b675f46a373575c495a40474b867389a37357c78b4f7a68794b5967596678be8b70f0af71 -6f596f4b5967666178e9b899f6c77c778097565b77778097e9c8b8f8d09482839b696f7a999cb5 -f8ecd8f8ecd8b8aab7787988b9b6c0e8d8d8e9d8c8b9b6c0988884e6c9d9d8d7dae9c8b8d7c8c8 -988884d6c8d5f5eae7e9c8b8b8aab7787988b5c0d5f8ecd8d8b9b7787988676a88ac99a7faecc9 -d8c7b8676a885966789588a7fad9a5c8a886535f834b4b64936f72f0ac7db99886666178565b77 -776a86d2966db986808f8b97565b775c495ac78d6170706a4b5976565b777b777946423bb63024 -8721644c15755415745415745415745c2479541c7c541c6c040404 -0404045c147c641a7c641c745c24795c1574641a7c5c1c7c99275eb6302439291f565b684b5967 -4b4b64675f46ae845d60517045535b45535ba37357c78b4f7c62674b5967666178ae845ddf9b5a -c78c82616568666178e6aa87e8bb88776a8645535b687798e9b899fad9a582839b4b596782839b -f7d8b8f5eae7a9a7ba616568a9a7baf6d9d9f5eae7a8a6a9616568c6c2caf6d8c8f5eae7b9b6c0 -696f7ab9b6c0f6d9d9f5eae7ac99a7565b68b9b6c0f8ecd8e8d8d8696f7a4b5967a8a6a9fad9a5 -e9c8b8676a884b5967a48899f8d094e6aa9d6051707b7779c89997df9b5aca83775966784b5967 -867389d2966da373574b4b644b59676f596fae845d6c54564b5967565b775c495a39291fb63024 -8721644c15755c15745415745415745415745415745c2479040404 -040404641a7c64257c64257c641a7c64257c641c745c1c7ca52357a8291640474b7b777951524b -565b68988884c8b688666178815a556c5456936f72c8a671867389ae7b74936f72ae7b74efad5e -e6b8abd699867a6879ae9870c8a886778097c8a9a79588a7b5a898c8b7a882839bcbcdc0a9a7ba -c9a799e9d8c8a9a7bac6d2e1c8c9d8d7aaa7e7c8c8d7c8c8ebdae5ebdae5d69b98d8b9b7e7c8c8 -e9e7e8d6c8d5e6b8abd7c8c8b8aab7c8c9d8a9a7bae9d9a6b9b6c0999cb5b9b6c09588a7e9d9a6 -999cb5878aa7b8aab782839bdac896a48899867389d7aaa7d8b7a8efad5e988884867389a37483 -747297d9b899936f726f596f7c6267776a86dac8968f8b974b4b6460517082839b5d4c36b63024 -8721645415745415745c15745415745415745415745c2479040404 -040404641a7c641a7c64257c64257c641a7c5c1c7c5c1c7ca52357a8291646423bd7c8a8a37357 -ae9870c5b699a69798d9b888c78b4fd9b56ac8a671a59887d9b56adf9b5adf9b5ad9b56ac89887 -f0af71f0af71f8d094b5a898b6a788f8d094fad9a5fad9a5c8b7a8b5a898fad9a5f8ecd8f8ecd8 -c7b8b7c7b8b7f7d8b8fcf8e7f6d8c8d8b7a8d8b7a8f7c8c8fcf8e7d8b9b7e6aa9dd7aaa7d8b7a8 -f8f6f7f6d8c8e6b8abd8b7a8fad9a5fcf8e7e9d8c8c7abb5c6c2caf8ecd8f8ecd8e9d9a6b9b6a8 -cac4b7f9ebb6fad9a5e9d9a6b5a898c8b7a8fad9a5f7bb86f7bb86d7a899c8a671efad5ee09e75 -d9b899a69798c8b688e09e75d2966ddac896b5a898c5b699ae845db6a788cac4b740474bb63024 -8a2f6254147c5415745c1574541574541574541c6c5c2479040404 -040404641a7c641c74641a7c641a7c641a7c5c157454147ca52357a829163d36308673896f596f -6c5456988884c8b68886738992655f827668988884c8a6717c6267ae7b74d9a887e6aa87d69986 -988884d7a899a48899a69798b5a898878283d9b899a59887a8a6a9c8b7a8a9a7bad8d7daa9a7ba -b8aab7c7b8b7a8b1c9d8d7dab8a8a7d8b9b7d8b7a8c8c9d8e9e7e8d8b9b7d6acb4d7aaa7d2dae7 -e9e7e8c7b8b7d8c7b8c19ba5c8c9d8dbe1e7ac99a7d7c8c8a8a6a9b5c0d5e8d8d89fa19acac4b7 -a8a6a9c8a9a7dac896988884d9b888a8a6a9c89997e6aa9da69798d9a887e6b8abe6aa87c78c82 -867389c8b688a59887a37483ae7b748f8b97c8b7a8a69798936f7292655f9fa19a45535bb63024 -8721644c15755c15745c15745415745415745c15745c2479040404 -040404641a7c5c1c7c5c147c5c1574641a7c641a7c5c1c7c99275eb6302439291f6c5456565b68 -4b5967936f72c78d617c62674b59674b4b64ae7b74efad5e7c626745535b94788fe09e75f0af71 -988884565b77676a88e8bb88f8d094867389565b68687798e9d8c8faecc9878aa7596678687798 -e9e7e8f5eae7878aa7696f7aa9a7baf2f4eaf8ecd89897a870706ab9b6c0e9e7e8e9d8c8a9a7ba -7b7779a8b1c9fcf8e7e9d8c8999cb566617898a8c2f8f6f7e8d8d868779859667898a8c2fcf8e7 -d8c7b85a6889565b778f8b97f8d094d8c7b8676a88676a88a48899f7bb86e9b899a48899605170 -7a6879f0af71a88786535f83596678867389e6aa87936f724b597659667886738951524bb63024 -81205c5415745c15745415745415745c1574541574541574040404 -0404045c1c7c641a7c641a7c5c1c7c641a7c5c24795c1c7c99275eb630243d36307c6267565b68 -4b596792655fd9a8877a68794b5967605170be8b70f0ac7d7a6879565b684b5967b99886f7bb86 -867389565b778f8b97e8bb88f0af71e6b8ab70706a676a88e8dab9faecc97887a8596678687798 -d9d5b8f8ecd87b8db45966788896b8f6d9d9f2f4ea999cb5677588a8b1c9e8d8d8e9e7e89897a8 -696f7a999cb5f8ecd8e9e7e8878aa75a68898896b8faecc9c8c9d86877985966788896b8faecc9 -d8c7b8565b777b7779f7c8c8f7bb86f7bb868782834b59769897a8f8d094c78c824b59764b5967 -94788ff0af71b7898f596678565b77936f72d9a887a37483565b685966787c62674d3d2ccd342a -8721645415745415745c15745c15745415745c15745c1c7c040404 -0404045c1c7c641a7c641a7c641a7c641a7c64257c541c7ca52357b6302446423b988884a37357 -936f72b5a898c8b7a8988884ae7b749888848f8b97b5a898988884c89887a88786988884c8a886 -9897a8d9b899d9a887ca8377df9b5af7c7a8e9d8c8a69798988884c8b7a89897a8d8d7daa8b1c9 -b5a898b9b7b49897a8d2dae7a8b1c9c8b7a8c7b8b7b9b6c0dbe1e7c8c9d8d8b7a8d8b9b7c6c2ca -dbe1e7b5c0d5d7c8a8b9b6c0b9b6c0dbe1e7a8b1c9d7c8a8999cb5a8b1c9c8c9d88a95a9dac896 -8f8b97a9a7baf6d8c8f6c5b7f0af71b99886c7abb5d8b7a8878aa7d8b7a8878283a88786b89898 -867389cac4a78f8b97a37483a3748382839bd3bac4999cb5936f72a374839897a846423bcd342a -781a664c15755c15745c1c7c5c1574541574541574541574040404 -040404641a7c5c1c7c641a7c641a7c5c1574641a7c5c1c7c99275eb6302451524bdac896c78d61 -d2966dc8b7a8b5a898d7c8a8e09e75f0af71b6a788b5a898e8bb88f6c77cf6c77cc8b688a59887 -f6c77cf6c77cefad5edf9b5ad2966defad5ef6d8c8f9ebb6b5a898a59887e9d9a6fcf8e7faecc9 -b9b6a8b9b6a8f9ebb6fcf8e7f8ecd8c7b8b7c7b8b7faecc9f2f4eaf6c5b7d8c7b8d8b9b7e9d8c8 -f2f4eae9d8c8c7b8b7c7b8b7fcf8e7fcf8e7e9d9a6acb4accac4a7fcf8e7fcf8e7e9d9a6b5a898 -c8b7a8faecc9f7d8b8efad5ef0ac7de09e75f0af71fad9a5e7c7a5a59887c8b688f6c77cf8d094 -e9d9a6b5a898cac4a7f7bb86e8bb88d7c8c8ac99a7d8c7b8d69986d9a887cac4a746423bb63024 -7926665415745c15745415745c15745c15745415745c1574040404 -040404641a7c641c745c1c7c641a7c641a7c5c15745c1c7ca52357b6302446423b988884936f72 -936f72ac99a7d9a887867389ae7b74827668a69798d9b888778097b99886a37483988884c8b688 -696f7ab99886f7c7a8f0ac7dd2966db9b6c0c6c2ca7b8db4b89898c8b7a8687798b8aab7878aa7 -a9a7bad7c8a88896b8c8c9d88a95a9c6c2cac7b8b798a8c2b5c0d5a9a7bad7c8c8c5b699a8b1c9 -b5c0d58896b8d7c8c8b9b7b48896b8b5c0d58a95a9d9d5b89fa19aa8b1c9b9b6c082839bdac896 -9897a898a8c2ebdae5c7abb5df9b5aefad93f6c5b7c9a7998f8b97d9b56a878283a48899b89898 -82839bd7c8a8a4889994788fae7b74878aa7d8b9b7a69798a37483ae7b74ac99a746423bcd342a -8721644c15755415745415745415745415745415745c1574040404 -040404641a7c641a7c641a7c641a7c641a7c5c1c7c5c1c7ca52357a829164d3d2ca37357595c59 -565b68be8b70df9b5a92655f4b5967565b77c89887f6c77ca374834b5967596678d9b899f6c77c -8782834b5967b89898f7d8b8f7d8b8b8aab7565b68778097e8d8d8fcf8e7878aa745535b687798 -e9e7e8fcf8e78a95a9565b688896b8f8f6f7dbe1e77b8db46661788896b8dbe1e7d8d7da8a95a9 -565b688896b8eaebf6f2f4ea7887a84b596798a8c2fcf8e7d8d7da5a6889565b6898a8c2f8ecd8 -dbe1e75a6889696f7ab5c0d5f7d8b8f6d8c8a697984b5967b89898f6c77cd8b7a8565b774b5976 -ac99a7f8d094c89887535f834b597694788fe6aa87b98680596678676a88a374833d3630cd342a -781a665415745c157454157454157455146c5415745c1574040404 -040404641a7c641a7c5c1c7c641a7c64257c5c1c7c5c1c7ca52357a829163d3630a887867b7779 -70706aae7b74e6aa87988884616568596678c89887f8d094878283565b685a6889d8b7a8f8d094 -878283565b685a6889e8dab9f7d8b87887a8696f7aa8b1c9e7c7a5e7c7a5f6d9d98782835a6889 -d9d7c8f8ecd87887a85966787887a8e9d8c8ebdae56b7eab5966787b8db4ccd6c6d2dae77887a8 -5a68897887a8d8d7dae9e7e86b7eab5a68898896b8f8ecd8d7c8c8596678988884ebdae5f7d8b8 -e8d8d8a9a7ba59667898a8c2f8ecd8d8c7b8565b774b5976b5a898f6c77cd8b7a85a6889596678 -a48899f7c7a8c8a9a75a6889696f7aa37483e09e75b7898f616568696f7ab986803d3630b63024 -87216454147c541574540b6c5415745c15745c1574541574040404 -040404641c74641a7c641a7c5c1c7c641c7464257c5c2479a52357a8291651524bc89887c78d61 -b98680b99886c8b7a8a59887c89887b89898ac99a7c8b7a8a69798d9b899a8a6a99fa19ac5b699 -a69798d8c7b89fa19ab6a788c8b688a8a6a9ebdae5d7c8c8d69986f0ac7df6c5b7e9e7e8a9a7ba -b5a898b9b6a88a95a9d2dae798a8c2b9b6a8acb4ac999cb5b5c0d598a8c2b8a8a7cac4b7a8b1c9 -c6d2e198a8c2cac4a7b9b7b498a8c2dbe1e79897a8dac8969fa19aa8b1c9e9e7e8f7c8c8f0af71 -d7a899e8d8d8c8c9d88f8b97c5b699988884b9b7b4c6c2ca878aa7d9b56a988884b8a8a7c7b8b7 -9897a8d7c8c8ac99a7b7898fd7aaa7ac99a7d9b899c19ba5b98680b7898fb8aab746423bcd342a -872164541574540b6c5415745c1574541574541574541574040404 -0404046414745c15745c15746414745c1c7c641a7c541c7ca52357a829165d4c36c5b699d2966d -c78b4fd9a887b5a898e9b899f0ac7df7bb86c8b688b8a8a7e8dab9f8d094f8d094c5b699b5a898 -dad4a8f8ecd8fad9a5b5a898b6a788e9d9a6f8ecd8f7bb86e09e75e09e75d2966df8ecd8faecc9 -c5b699b5a898e8dab9fcf8e7faecc9aab4b8cac4a7faecc9dbe1e7f8ecd8c7b8b7b9b6c0e9e7d7 -dbe1e7e8dab9c8b7a8b9b7b4f8ecd8fcf8e7e9d9a6b5a898b9b6a8f8ecd8faecc9df9b5ad88e7d -e09e75e8bb88f8ecd8e9d9a6a59887c5b699f9ebb6faecc9e9d9a69fa19acac4a7fad9a5f9ebb6 -e9c8b8b8a8a7d8c7b8f7c7a8f7be9ae6b8abc19ba5c9a799d88e7dd9a887c8a9a746423bb63024 -79266654147c541574541574540b6c5415745c1574541574040404 -0404045c147c641a7c5c147c5c15746414745c1c7c5c1c7ca52357a829164d3d2cc89887ae7b74 -b98680c8a9a7d69986a48899b99886a88786a9a7bad9b8998f8b97b89898878283a8a6a9dac896 -878aa7a8b1c97887a8b5a898b6a788747297b9b6c0f6d9d9e6aa87d2966de8d8d8d6c8d57b8db4 -b5a898cac4b777809798a8c27b8db4cac4b7b9b6c08896b8a8b1c97b8db4c6c2cab9b7b47b8db4 -a8b1c97b8db4cbcdc0b9b6a87b8db4a8b1c9687798d9b8999fa19a9897a8ebdae5d3bac4df9b5a -e6aa9df5eae7c6c2ca778097dac8968f8b97a9a7bab5c0d58a95a9d7c8a88f8b97ac99a7c9a799 -9897a8d8c7b8ac99a7c8a9a7d69b98ac99a7d7aaa7c19ba5c89887c78c82b8a8a740474bcd342a -781a665415745c157454157454157455146c540b745c1574040404 -0404045c1574641474641a7c5c147c5c147c5c1574541574b0254ea82916472f22c78d61595c59 -70706ac89887f0af71be8b70565b68696f7ae6b8abf8d094ae98704b5967677588f6d8c8faecc9 -a9a7ba45535b677588e9e7e8f8ecd8778097565b68b8a8a7f6d9d9f6d8c8c8c9d8616568677588 -e9e7e8e9e7e87887a84b59677887a8dbe1e7c6d2e16175a65966787887a8d2dae7d2dae7687798 -4b59767b8db4dbe1e7d8d7da6b7eab565b688896b8e9e7d7dbe1e75a6889787988dbe1e7e7c8c8 -f8ecd8b8a8a7565b6898a8c2fcf8e7d8d7da5a6889565b77b5c0d5faecc9d8c7b8596678565b77 -b8a8a7fad9a5d8b7a8677588676a88c8a9a7efad93d7a8997a6879787988c898873d3630b63024 -7926664c15755c15745c1574540b6c5415745415745c1574040404 -0404045c1c7c6414745c15745c1574641a7c641a7c541c7ca52357a829164d3d2cd2966d988884 -936f72d2966de09e75d8b7a87b7779787988d9a887f7bb86ac99a77b7779778097d7c8a8f8ecd8 -9897a8596678687798ccd6c6faecc96b7eab5966785a6889d9d7c8f6d8c8687798696f7ad7c8c8 -e7c8c8d8b7a8e8d8d8867389687798d8d7dac6c2ca6175a65a68896b7eabccd6c6c6d2e16175a6 -5a68896175a6d9d7c8c6c2ca5a68898f8b97e8d8d8d9b899e8d8d8c7b8b7565b68999cb5f8ecd8 -c8c9d8565b775966789897a8f9ebb6d7c8c85a6889596678b9b6c0f8ecd8d6c8d5676a88677588 -c9a799f7be9ae7c8c8787988878283d7a899e59b87d7aaa77b777994788fd88e7d4d3d2ccd342a -781a66540b745c15745c157454157455146c5415745c1574040404 -040404641a7c5c147c6414746414745c1574641a7c5c1c7ca52357a8291646423bd88e7dd2966d -d9a887b89898c89997c89887f0ac7dd9b899b5a898c9a799a69798e8dab9c6c2cab9b7b4cac4b7 -a8a6a9d8d7dab5c0d5a8a6a9b8a8a79fa19ae9e7e8a8a6a9a8a6a9b5a898999cb5dbe1e7f6d9d9 -e59b87d88e7de9c8b8c6d2e19897a8c5b699c5b69998a8c2c6d2e198a8c2b9b6a8aab4b898a8c2 -b5c0d5999cb5b9b6a89fa19a98a8c2c6d2e1e9c8b8d88e7de6aa9df7c8c8c6d2e18f8b97c5b699 -988884c6c2cad2dae78896b8d9b56aa59887b5c0d5c6d2e1999cb5d7c8c8a8a6a9c7b8b7d8d7da -b8aab7d9b899b8aab7d7aaa7e7c8c8c7abb5c89997c7abb5d69b98d7aaa7c7abb5472f22cd342a -781a665415745415745415745415745415745c1574541574040404 -0404045c1574641c746414745c1c7c641474641a7c54147ca52357a829165d4c36b99886c8a671 -e09e75c89887c8a886d7a899e8bb88f0ac7dd7a899c9a799e7c7a5f8ecd8f7d8b8d8b7a8c8b7a8 -e9d8c8fcf8e7faecc9c5b699b9b6a8e8dab9fcf8e7f9ebb6c5b699b5a898e9d9a6e9e7e8d69986 -e09e75e59b87ca8377d6c8d5e9d8c8b6a788c5b699e8dab9dbe1e7e9d8c8c8b7a8b9b6a8e9e7d7 -dbe1e7dad4a8b5a898c5b699faecc9d3bac4c78d61e59b87d2966dd9a887f5eae7d7c8a8a69798 -cac4a7f9ebb6fcf8e7e9d9a6b9b6a8cac4a7faecc9fcf8e7e9d8c8b9b7b4d8c7b8f8ecd8faecc9 -e6b8abd7aaa7d8b7a8f7c7a8efad93d69b98c8a9a7c89997e6aa87d69986c898873d3630cd342a -7926664c0b745c15745c15745415745415745c15745c2479040404 -0404045c1c7c641a7c5c1c7c6414745c1c7c5c1c7c54147cb0254ea829164d3d2ce6aa9dd9a887 -d69986e6b8abbe8b70d7aaa7d7a899c9a799d6acb4d9b899ac99a7b9b6c0a8a6a9b8aab7e7c7a5 -878aa7a8b1c98a95a9cac4b7dac8968896b8a8b1c97887a8a8a6a9dac896747297b9b6c0f6d9d9 -e6aa9dd88e7df6d9d9a8b1c95a6889b5a898b9b7b468779898a8c26b7eabcbcdc0b9b6a86b7eab -7b8db45f6b97d7c8a8a8a6a9676a88c6c2caf7c8c8ca8377e6aa9debdae598a8c2687798dac896 -9fa19a8896b8c6c2ca8a95a9d9d5b8b5a898b5c0d5b5c0d58896b8e9c8b8b8a8a7c8c9d8d6c8d5 -a9a7bad7aaa7d8b7a8d8b9b7e9b899c8a9a7c89887e6aa9de6b8abefad93d7aaa73d3630cd342a -781a66541574541574541574541574541574541574541574040404 -040404641c7464257c641a7c641a7c5c15745c15745c1c7cb0254ea829165d4c36e09e75766a4d -7c6267e9b899e09e75e8bb88595c597b7779e8dab9f6d8c8c7b8b7595c59787988dbe1e7f8ecd8 -b9b6c0565b68687798f8f6f7fcf8e7a9a7ba4b5967687798e9e7e8e9e7d78a95a9616568b8aab7 -d6c8d5c6c2cab9b6c0616568778097d8d7dac8c9d8677588565b686b7eabc6d2e1b5c0d5687798 -4b59678a95a9c6d2e1d2dae76775887b7779c8c9d8c7b8b7d6c8d5a8a6a9565b6898a8c2f8ecd8 -d8d7da677588596678a8b1c9fcf8e7e9e7d7677588676a88c6d2e1fcf8e7d6c8d5787988696f7a -d6c8d5f6d8c8e7c8c894788f7b7779d8b9b7efad93e6b8ab867389988884d7aaa73d3630db3738 -781a664c1575540b6c55146c5415745c157455146c5c1c7c040404 -040404641a7c64257c641a7c641a7c641a7c5c15745c147cb0254eb6302451524be6aa87b99886 -b99886e6aa87c8a671e6b8aba88786a69798e6b8abe9c8b8c6c2ca87828382839bd8b9b7f7d8b8 -a8b1c9787988778097ccd6c6fcf8e78896b8677588687798ccd6c6e9e7d76b7eab676a885a6889 -c8c9d8d9d5b8565b77878283e8d8d8c89997c7b8b7dbe1e77b77795a6889ccd6c6b9b7b44b5967 -8f8b97eaebf6c8a9a7c7abb5e6c9d9696f7a687798e9e7d7b9b6c0535f835a68898896b8e9e7d7 -d2dae75f6b97596678a8b1c9fcf8e7e9e7e8687798677588c6c2caf6d8c8dbe1e77780978f8b97 -d7c8c8e9c8b8e8d8d8a48899988884e6aa9de09e75e9c8b8a37483a88786e59b8739291fcd342a -7926665415745415745c15745415745415745415745c1574040404 -040404641a7c672784641a7c5c1c7c641a7c5c1c7c5c147cb0254ea829165d4c36d2966df0ac7d -e8bb88c89887b98680c89887fad9a5d8c7b8c19ba5d7a899d7a899e8d8d8d8d7dac9a799d7a899 -b89898e9e7d7c6d2e1b9b7b4c7b8b7aab4b8e9e7e8b5c0d5b9b7b4cac4b7acb4acc6d2e1a9a7ba -a8a6a9b6a7889fa19ab5c0d5d6acb4d88e7dd7a899e7c8c8a8b1c982839bb6a788a598879897a8 -b5c0d5d3bac4d69986d69986e7c8c8b5c0d5988884c5b699a59887aab4b8c6d2e198a8c2d7c8a8 -a8a6a9b9b6c0dbe1e798a8c2d8c7b8b8aab7c6c2cadbe1e7b8aab7d8b7a8c7abb5d7c8c8ebdae5 -d3bac4d7aaa7c7abb5e9c8b8e8d8d8d7aaa7b98680d7aaa7f7be9ae9c8b8d69b98472f22cd342a -7926664c15755415745c15745415745415745c1574541c7c040404 -040404641a7c6414745c15745c1c7c641a7c5c1c7c5c147cb0254ea8291651524bb6a788e09e75 -d2966dc78d61c78c82c9a799e8dab9e6aa87d88e7dc9a799d8b7a8e9e7e8f7c7a8d7a899d7a899 -d8c7b8fcf8e7faecc9d7c8a8c8b7a8e9e7d7f2f4eae9d8c8c8b7a8b9b6a8e8dab9dbe1e7e8dab9 -c5b699b6a788dad4a8d7c8c8ca8377ca8377ca8377ae7b74b5c0d5d9d5b8ae9870b6a788d9d5b8 -a9a7baae7b74c78c82d88e7dc78c82c8c9d8d8c7b8b5a898c5b699e8dab9e9e7e8dad4a8b9b6a8 -cac4a7f8ecd8ecf8fce9d8c8b9b6c0d7c8a8f8ecd8f8ecd8e6b8abd8b7a8d9b899f6d9d9e9d8c8 -c9a799d7aaa7c89997e9c8b8d8b9b7b7898fc89997ca8377d7a899c78c82b898983d3630cd342a -792666541c7c540b7455146c5c15745415745c1574541574040404 -040404641a7c64257c641a7c641a7c641a7c641a7c5c147ca52357a829165d4c36f6c5b7d9b899 -e6aa87e6b8abbe8b70f7c7a8d7c8c8e6b8abd8b9b7c89887d8b9b7c6c2cab9b6c0d7c8c8e9b899 -b8aab7b5c0d5a9a7bac6c2cadac8968896b898a8c27887a8b9b6c0dad4a87b8db48896b87887a8 -b8aab7c5b6996175a6a8b1c9f5eae7b98680d69b98eaebf6878aa745535bc5b69998888445535b -98a8c2f5ebf5c78c82d69b98eaebf698a8c26b7eabdac8969897a87b8db498a8c27887a8d9d5b8 -a8a6a98896b898a8c28896b8d9d7c8c8a9a7c8c9d8c8c9d8b8aab7d8b7a8d8b9b7d2dae7d6c8d5 -d3bac4c89997e6b8abebdae5f6d9d9e6b8abb98680e6aa9df7c7a8f7c7a8d7c8c83d3630cd342a -7926665415745c15745c15745415745415745415745c1574040404 -04040464257c5c1c7c641a7c5c1c7c5c157464257c5c1c7cb0254ea829165d4c36f7be9a7b7779 -827668e7c7a5e7c7a5e7c8c8675f46988884f6d9d9e9d8c8d6c8d5595c598f8b97f5ebf5f5eae7 -c6c2ca595c5982839bf5ebf5e9e7e8999cb5565b68687798d2dae7d8d7da8896b8565b68687798 -c6d2e1d8d7da7887a861656898a8c2b9b6c0a8b1c99897a8616568778097b9b6c0a8b1c9696f7a -70706a98a8c2a9a7bab5c0d598a8c2565b687b8db4dbe1e7c6d2e15f6b9759667898a8c2dbe1e7 -c6d2e15a6889616568a8b1c9f2f4eae9e7e8787988696f7ac6d2e1f8ecd8e8d8d88782837b7779 -d2dae7e6c9d9e8d8d894788f7b7779ebdae5e7c8c8e9c8b87a6879a69798e6b8ab4d3d2ccd342a -641c745415745c15745415745415745415745c1574541574040404 -04040464257c64257c64257c641a7c641474641a7c5c1c7ca52357a8291646423bf6d8c8cac4a7 -d7c8a8e6b8abb99886f7c8c8b5a898d8b7a8e6aa9dc9a799e7c8c8c8a9a7c7b8b7d8b7a8d8c7b8 -d6c8d5ac99a7999cb5d8c7b8e7c8c8999cb58a95a97887a8b9b6c0d8d7da6b7eab7887a86175a6 -aab4b8d8d7da6175a6687798596678c6c2cab5a8983044438a95a9ecf8fcb98680a69798ecf8fc -787988304443cbcdc0b8a8a7565b775f6b976b7eabe9d8c8b5c0d56175a66877987b8db4e9e7d7 -b5c0d56b7eab82839b98a8c2e8d8d8dbe1e78a95a99897a8d7c8c8e9c8b8dbe1e7ac99a7ac99a7 -f7c9d7c8a9a7ebdae5c8a9a7b89898f7c9d7c89997e8d8d8a69798c6c2cae9b89939291fdb3738 -781a665415745415745415745c15745415745c15745c1e6c040404 -04040464257c641a7c5c1574641a7c5c1c7c641a7c5c1c7cb0254ea8291651524bc89887e8bb88 -e9b899c89887be8b70be8b70e9c8b8d3bac4c89887c78c82c89887e9d8c8e8d8d8c9a799c89887 -c9a799e8d8d8ebdae5c8b7a8d7a899c8b7a8d8d7dac8c9d8c7b8b7c7b8b7cac4b7d2dae7c8c9d8 -b9b7b4b8a8a7b9b6a8c6c2cac8b7a8b6a788ae845da0b0a0a8b1c9b89898be8b70ca8377c89997 -a8b1c9ae9870b6a788c8b688b9b6a8b5c0d5b9b6c0cac4b7b8a8a7cbcdc0c6d2e1b9b6c0c6c2ca -b9b6a8ccd6c6d2dae7c6c2cad8b7a8c7b8b7d7c8c8eaebf6d8b9b7d7aaa7c8a9a7e8d8d8f5ebf5 -d6acb4c89887d69b98d8b9b7e8d8d8d7aaa7b98680c8a9a7f6c5b7c6c2cab8a8a73d3630cd342a -7926665415745c157455146c5415745415745415745c1574040404 -040404641a7c64257c5c15745c147c5c15745c1c7c54147cb0254ea829165d4c36c9a799e7c7a5 -e8bb88b99886ae7b74b98680d7c8c8d7a899c78c82c78c82c9a799e8d8d8d8b7a8c89887d7a899 -d8b9b7e9e7e8d7c8c8d7aaa7c8a9a7d7c8c8d2dae7d8c7b8c8b7a8b9b7b4c6c2cad2dae7cbcdc0 -b9b6a8acb4accbcdc0b5c0d5cac4a7b6a788ae9870b5a898a9a7bab98680b98680ae7b74936f72 -a8b1c9cac4b7ae9870c8a886c5b699c6d2e1cac4b7cac4b7b9b6a8d2dae7dbe1e7d7c8c8c7b8b7 -cac4b7dbe1e7d8d7dad8b7a8d8b7a8d8b7a8e9e7d7f6d9d9c19ba5d7aaa7c8a9a7e8d8d8e8d8d8 -c89997c89997c78c82c6c2cad3bac4ae7b74c19ba5b99886d8c7b8d7a899b898983d3630db3738 -6817695415745c15745c15745c157454157455146c5c1574040404 -0404045c1c7c641a7c64257c5c157464147464147454147cb0254ea829164d3d2cf7d8b8c7b8b7 -d8b9b7d8c7b8be8b70f7c7a8c8a9a7e6b8abd8b9b7c89887e6b8abb8aab7b9b6c0d6c8d5d7a899 -d3bac4a9a7ba999cb5d8d7dae7c7a5999cb58896b87887a8c8c9d8d7c8c86b7eab7b8db46b7eab -b9b6c0d9d5b86175a6687798596678c5b699a0b0a030444398a8c2f8f6f7936f72c9a799ecf8fc -7887a8304443b6a788cac4a7535f836175a66b7eabe9d8c8aab4b86b7eab7b8db47b8db4e9e7d7 -b9b6c07b8db48896b8a8b1c9e9d8c8d6acb4a8b1c9b9b6c0c8c9d8d8b7a8d6acb4c6c2cad3bac4 -e6c9d9c89997e6aa9de8d8d8e7c8c8f7c8c8b7898fe7c8c8e8d8d8e8d8d8d7c8c83d3630db3738 -681769541574541574541574541574541574541574541574040404 -0404045c1c7c641474641a7c641a7c5c147c641a7c541574b0254ea829165d4c36f7bb86616568 -827668f7c7a8e9c8b8e9c8b851524b988884f6d9d9e7c8c8d6c8d5595c597b7779e9e7e8f5eae7 -c8c9d8595c59787988e9e7e8dbe1e7999cb5565b68687798c6d2e1d2dae78896b8565b68687798 -c6d2e1c6d2e17b8db46165688896b8a8b1c998a8c278798861656898a8c2a9a7baa8b1c98a95a9 -595c59778097a8b1c9b5c0d5778097565b688896b8d2dae7c6d2e15f6b974b596798a8c2d2dae7 -d2dae77780974b5967a8b1c9e9e7e8eaebf6787988616568dbe1e7f5eae7f5eae77b7779595c59 -d8d7dae8d8d8ebdae5a48899616568ebdae5e7c8c8f7c8c870706a878283e7c7a53d3630cd342a -781a664c1575541574541c6c5415745415745c1574541574040404 -040404641a7c641a7c641a7c5c1c7c641a7c64257c5c147cb0254ea8291651524bf7c7a8d9b899 -d9a887e09e75b99886e7c8c8d7a899c8a9a7e6aa9dc8a9a7d3bac4b8aab7b8aab7d8b9b7e9c8b8 -b9b6c0999cb59897a8c7b8b7e8d8d87887a87887a86b7eabc8b7a8d9d7c86b7eab7780976175a6 -b9b7b4e8dab95f6b978a95a9eaebf6c78c82c8a9a7ecf8fc787988304443ccd6c6a59887304443 -9fa19af5ebf5b7898fb8aab7eaebf67887a86175a6e8dab9a9a7ba6175a67887a86b7eabe8dab9 -b5c0d56b7eab7887a88896b8e8dab9d2dae78a95a98a95a9c6c2cae9c8b8dbe1e7a9a7baa8a6a9 -d6c8d5d8b9b7ebdae5c7abb5c19ba5f7c8c8c89997e7c8c8c89997c7b8b7e9b899472f22db3738 -6817695415745415745415744c157555146c5415745c1574040404 -040404672784641a7c5c1c7c641a7c5c1c7c641a7c5c147cb0254e85241551524bc8a671df9b5a -e09e75c78c82c78c82c78c82e8dab9e9c8b8d69b98c89887d9a887e8d8d8e9d8c8d8b7a8d7aaa7 -c9a799f8ecd8f5eae7c8b7a8b9b7b4cac4b7e9e7e8d8d7dac8b7a8b9b6a8c8b7a8c6d2e1cbcdc0 -b5a898b5a898b9b6a8c8c9d8c8a9a7d88e7dd69b98c19ba5a8b1c9b6a788a59887ae9870acb4ac -98a8c2b89898d88e7dd69986d7aaa7c6d2e1b5a898b6a788b5a898cbcdc0c6d2e1b9b6c0c8b7a8 -c5b699d9d5b8dbe1e7b9b6c0d8b7a8c8b7a8e8d8d8f8f6f7c7b8b7d8b7a8d7aaa7e7c8c8e9e7e8 -d8b9b7d69b98d69b98f6c5b7e9e7e8d7aaa7b7898fd69b98e8bb88e6b8abb8a8a7472f22cd342a -79266654157454157454157455146c55146c5415745c2479040404 -0404045c157464257c641a7c641a7c641a7c5c1c7c5c1c7cb0254ea829165d4c36c89887d9b888 -e09e75be8b70c78c82c89887fad9a5d9a887c78c82c89887c8b7a8e8d8d8d8b7a8c89887c9a799 -c7b8b7f2f4ead8c7b8b8a8a7b8a8a7c8c9d8f2f4eaccd6c6a8a6a99fa19ab9b7b4dbe1e7cac4b7 -b6a788b6a788c8b688d6c8d5d69b98d88e7dd69986b89898b5c0d5c7b8b7b6a788ae9870c7b8b7 -a8b1c9ca8377d69b98d88e7dc19ba5d2dae7cac4b7b5a898b6a788d9d5b8dbe1e7d9d5b8b9b6a8 -acb4ace9e7d7fcf8e7d7c8c8b9b6c0c7b8b7f5eae7f5eae7d8b7a8d8b7a8d8b7a8e8d8d8e9d8c8 -c89997c8a9a7c8a9a7e7c8c8e9c8b8ca8377c89997b7898fd7a899d88e7db7898f3d3630cd342a -6c147454157455146c541574541574540b745415745c2479040404 -040404641a7c641a7c641c745c1c7c5c1c7c641a7c541c7cb0254e8524154d3d2cf0ac7dd69986 -d9a887d9b899c78b4fefad93b5a898c9a799d8c7b8d9a887c7abb5a8a6a99897a8c6c2cae7c7a5 -999cb59897a87887a8d8d7dae8dab97887a87887a8687798b5c0d5dad4a86877987887a85a6889 -a8a6a9d7c8a84b59768a95a9f6d9d9c78c82d7aaa7f5ebf5878aa74b5976dac896b5a8984b5976 -98a8c2f8f6f7c89997d69b98ebdae582839b596678e8dab9a9a7ba5f6b977887a86b7eabe9d8c8 -acb4ac7b8db48896b87b8db4e9e7d7b9b7b48896b8aab4b8a8b1c9e9c8b8c8a9a7b5c0d5c6c2ca -c8c9d8d8b9b7d7aaa7d3bac4d7c8c8e9c8b8c78c82e6aa9de6b8abe6b8abd6acb4302f2adb3738 -68176954157454157454157454157455146c5415745c1574040404 -040404641a7c641a7c5c147c641c74641a7c641a7c5c147cb0254ea829165d4c36f0af71616568 -7c6267e9b899f0af71d9a887595c59878283f7d8b8f7d8b8c7b8b7595c597b7779ebdae5f5eae7 -b9b6c051524b778097f5eae7f8f6f7999cb545535b687798e9e7e8e9e7d77b8db44b59678f8b97 -d8d7dac6c2ca9897a8595c59999cb5c8c9d8c8c9d88a95a9595c596b7eabc6d2e1b5c0d5677588 -61656898a8c2c8c9d8d6c8d59897a8616568a8b1c9c8c9d8d2dae77879884b596798a8c2f2f4ea -e9e7e86775884b5967b5c0d5f8f6f7f2f4ea778097596678d2dae7fcf8e7ebdae5677588696f7a -ebdae5f8ecd8f6d8c87b77797a6879e6b8abe9b899f7c7a87b7779936f72d7a8993d3630cd342a -681769540b745415745c15745c1574540b7455146c5c2479040404 -040404641a7c641a7c5c15745c1c7c641a7c641a7c54147cc3324e8524155d4c36efad93c78c82 -c8a886d9a887d2966dc8b7a8b99886b5a898d7a899e6b8abb8aab7a8a6a9878aa7c8a9a7e9d8c8 -8896b88a95a97887a8cac4a7e9d8c87887a8878aa7687798cac4b7d8c7b85f6b979897a8f6d9d9 -d69b98d69986f6d9d99897a84b5976d9d5b8b8a8a75a68896b7eab5f6b97cbcdc0a8b1c96175a6 -7887a85f6b97d9d7c8b9b6a84b5976b8aab7f7c9d7ca8377d8b9b7e8d8d882839b6175a6e8dab9 -aab4b86877987887a88896b8f9ebb6c8c9d8878aa7878aa7a9a7bafaecc9c8c9d8878aa79897a8 -b9b6c0f7c7a8d8d7daac99a7a69798d7aaa7d7a899e7c8c8b7898fc89997e6aa9d472f22db3738 -68176954157455146c5415745415745415745415745c2479040404 -0404045c1c7c641a7c641a7c641a7c5c24795c1c7c54147cb0254ea8291651524bd69986df9b5a -e09e75c89887c89887be8b70f0af71e9b899d8b7a8c9a799d9b899faecc9e9d8c8c8b7a8b8a8a7 -d7c8a8f5eae7e9d8c8b5a898acb4accac4a7f2f4ead8c7b8b6a788b6a788cac4a7dbe1e7d7a899 -d88e7dd88e7dd69b98c6c2cac9a799b6a788b6a788cac4b7d2dae7ccd6c6b9b6a8b9b6a8d9d5b8 -d2dae7c5b699b5a898b6a788d8d7dac6c2cad69986d88e7de59b87e6b8abe8d8d8b5a898b6a788 -b5a898f9ebb6f2f4eab9b6c0c8b7a8b9b6a8e9d8c8f8f6f7b9b6c0c8b7a8c8b7a8f8ecd8f5eae7 -d8b9b7d6acb4d7aaa7efad93f7c7a8c7abb5d69b98d69b98e6aa87e6aa9dc19ba54d3d2cdb3738 -69256b5415745415745c1574541574540b6c5415745c2479040404 -0404045c1c7c64257c5c15745c247964257c5c15745c1c7cb0254e8524155d4c36c9a799d2966d -d2966dc78c82c8a886c9a799f7be9ad9a887b89898c9a799d8b9b7f6d8c8dac896b5a898b8a8a7 -b9b6c0e9e7e8cac4b7b5a898c5b699d9d7c8fcf8e7d9d5b8a59887b6a788c5b699f5eae7efad93 -d2966de09e75d7a899d8d7dacac4a7b5a898b5a898cac4b7d2dae7b9b7b4b9b6a8b9b6a8c6d2e1 -d2dae7cac4a7c5b699b5a898cbcdc0d7c8c8d88e7de59b87e59b87e9c8b8f8f6f7cac4b7b6a788 -b5a898e8dab9fcf8e7dad4a8b9b6a8b9b6a8f2f4eafcf8e7d8c7b8c7b8b7cac4b7f8ecd8f6d8c8 -d9b899c7b8b7d8b9b7f7d8b8e6b8abc89887c8a9a7c89997e6aa9de59b87b998863d3630db3738 -69256b5415745c15745415745c15745415745c15745c2479040404 -0404045c1574641a7c641c7464257c64257c64257c541c7cc3324ea829165d4c36d69986b98680 -b99886c8b7a8d2966dc9a7999888848f8b97c7b8b7f0ac7da69798a6979882839bc6c2caf7d8b8 -82839b7780976b7eabd6c8d5dad4a87887a8878aa75f6b97c5b699dad4a85f6b978a95a9e6c9d9 -e6b8abd69b98f6d9d99897a85f6b97dad4a8b9b6a86175a67b8db46b7eabd9d7c8b9b7b46b7eab -7887a86175a6d9d5b8b9b6a85a6889b9b6c0ebdae5d69986e6b8abebdae59897a87887a8fad9a5 -a0b0a06877988896b87b8db4faecc9b9b7b47b8db48896b8999cb5f8ecd8999cb5999cb5a8a6a9 -b8aab7f7c7a8c19ba5999cb5c8a9a7d3bac4d7a899d69b98c19ba5d7aaa7c19ba5302f2adb3738 -69256b5415745c15745c15745c15745415745c1574541574040404 -0404045c1c7c641a7c641c7464257c64257c641a7c541574c3324e8524155d4c36d2966d595c59 -70706ae59b87e8bb88b99886595c597b7779f7be9af6c77ca598874b5967677588f7d8b8faecc9 -a9a7ba45535b787988f8ecd8f5eae79897a8595c598f8b97e9e7d7f8ecd8ac99a745535b999cb5 -f5eae7d8d7da9897a845535b7b8db4d2dae7c6d2e16877984b59678896b8d2dae7c6d2e1687798 -4b59677b8db4d2dae7d2dae7676a88565b68c8c9d8e9e7d7e9e7e887828345535bc8c9d8fcf8e7 -f5eae77b77794b5967b9b6c0fcf8e7e9e7e8677588616568d2dae7f8ecd8e7c8c8696f7a596678 -d8b7a8f7c7a8e6b8ab696f7a616568d7aaa7e6aa87c9a7996165687b7779ca837739291fdb3738 -6817695415745415745415745415745c15745c1c7c5c2479040404 -040404641a7c5c157464257c641c745c1c7c6414745c147cb0254ea8291651524bb99886ae7b74 -a59887d69986d9b888ac99a7a88786988884c8a886e7c7a582839b988884747297b5a898e8dab9 -7780978f8b97687798cac4a7d9b8995a68899897a8f7c9d7e59b87d9a887c6c2caa8a6a9687798 -dad4a8d9b8995f6b977780976175a6d9d5b8c6c2ca6175a67887a86b7eabd9d7c8b5c0d56175a6 -7887a86b7eabd9d5b8c6c2ca6175a67780976b7eabf9ebb6ac99a7687798b9b6c0d8d7dae09e75 -f7c8c8e7c8c882839b7887a8f9ebb6a9a7ba7780977887a89897a8f9ebb6a8b1c978798882839b -a48899fad9a5b9b6c094788f8f8b97b89898e9b899c7b8b794788fac99a7c89887472f22db3738 -68176954157454157454157455146c5415745c15745c2479040404 -0404045c24795c157464257c641c745c1574641a7c5c1574c3324e852415595c59d9a887df9b5a -e09e75d9b899c9a799d9a887f0ac7de9b899c8b7a8c8b7a8d9b899f8d094e9b899b5a898b5a898 -dac896faecc9e8dab9a59887b6a788cac4a7f8ecd8e9b899e09e75d2966de6aa87f6d9d9e9d9a6 -b6a788b6a788d7c8a8e9e7e8cbcdc0a8a6a9b9b6a8cbcdc0d2dae7d7c8c8b9b7b4b9b6c0d7c8c8 -d2dae7c6c2cab9b7b4b9b6a8e9d8c8e9e7e8c5b699b6a788b5a898e9e7d7faecc9d69986e09e75 -efad93f6c5b7fcf8e7b6a788b6a788c5b699faecc9fcf8e7c7b8b7b9b6a8b5a898f8d094f7d8b8 -b9b6c0d6acb4c8b7a8e9b899e6b8abd3bac4d7aaa7d7aaa7d2966dd7a899c8a9a73d3630db3738 -68176954157454157454157454157455146c5415745c2479040404 -040404641c7464257c641a7c641a7c641a7c64257c5c147cc3324e852415675f46c9a799b98680 -c78d61b89898c9a799c8a9a7e8bb88c89887b99886b8a8a7b9b7b4f7be9ac8b688b6a788b5a898 -b8a8a7e8dab9c5b699a59887b6a788c9a799f5eae7e9b899e09e75f0ac7de7c7a5f5eae7c7b8b7 -b6a788b6a788cac4a7f2f4eab9b7b4b9b6a8b9b6a8d8d7dadbe1e7cac4b7c7b8b7c7b8b7d2dae7 -dbe1e7cac4a7b9b6a8b9b6a8dbe1e7f2f4eadac896b5a898988884e9d8c8f6d9d9e09e75f0ac7d -e6aa87e8dab9f5eae7cac4a7b6a788b6a788f7d8b8f8ecd8cac4a7b9b6a8b9b7b4f7d8b8f7d8b8 -cac4b7c6c2cac7b8b7f6c5b7f7be9ad7a899c8a9a7c8a9a7d69986d9a887c5b69946423bdb3738 -69256b541c7c541574541574541574540b745415745c2479040404 -0404045c1c7c64257c5c1574641a7c5c147c641a7c541574c3324e8524155d4c36ae7b7470706a -7b7779c89887df9b5a9888847a68797b7779c5b699e8bb887a6879696f7a676a88c8b7a8f6c77c -878283596678666178dac896e8dab96b7eab787988b9b6c0e9c8b8f7c7a8e6c9d9878283687798 -d9d5b8e8dab96b7eab6775887887a8e9e7d7c7b8b76b7eab7887a88896b8d8d7dac7b8b77b8db4 -7887a87b8db4d8d7dad9d5b86b7eab7780977b8db4f9ebb6acb4ac676a88b9b6c0f6d9d9f7bb86 -e7c8c8b9b6c07780977b8db4fad9a5b8a8a77780977780979897a8f9ebb6ac99a77780978f8b97 -9897a8f7d8b8ac99a7778097a48899ac99a7e9b899b8989894788fa48899ac99a73d3630db3738 -69256b5415745415745415745415745415745415745c1574040404 -040404641a7c64257c64257c5c1c7c5c15745c15745c147cc3324e8524155d4c36ae7b74595c59 -616568be8b70e09e75936f72595c59596678e09e75f7bb8698888440474b596678dac896f6c77c -936f7245535bb8a8a7f7d8b8f6d8c89897a851524b778097f8ecd8f8ecd882839b45535b7887a8 -fcf8e7fcf8e77887a845535b8a95a9f8f6f7dbe1e768779861656898a8c2e8d8d8d2dae782839b -45535b8896b8f2f4eaf2f4ea7780974b596798a8c2f8f6f7e9e7e859667845535bc6c2cafcf8e7 -ebdae5677588565b68c8c9d8f8ecd8f6d8c87b777945535bc8b7a8f8d094d6acb44b59764b5967 -c9a799f7c7a8d7aaa7596678596678b98680e6aa87b986805966787b7779ae7b7439291fdb3738 -69256b54157454157454157454157455146c5415745c2479040404 -040404641c74641a7c641a7c641a7c641a7c641a7c54147cb0254e852415595c59a88786ae7b74 -936f72c8a886cac4a7878283ae7b74867389a59887dac89694788fb99886867389a59887c8a671 -787988c89887f7be9af0ac7dd2966db9b6c0c6c2ca7887a8c5b699b99886687798b9b6c08896b8 -cac4a7cac4b78a95a9a8b1c97887a8d8c7b8b9b6c08896b8aab4b898a8c2e7c7a5c8c9d8999cb5 -a8b1c98896b8d9d7c8b9b6c08896b8a8b1c97887a8e8dab998a8c27b8db49897a8687798e7c7a5 -9897a87b8db4b9b6c0b9b6c0f0af71f6c5b7e6b8ab776a8682839bf8d09482839b77809782839b -82839bfad9a5ac99a786738974729794788ff7c7a8999cb586738994788fa6979839291fdb3738 -6817695415745c15745415745415745415745415745c2479040404 -040404641a7c641a7c5c1c7c641c745c1c7c641a7c54147cc3324ea82916595c59d9b888c78d61 -c8a671c8b7a8b5a898dac896e09e75f6c77cb6a788b5a898f8d094f7bb86f6c77cb6a788a59887 -f6c77cf6c77cefad5edf9b5adf9b5af0af71faecc9f8d094b6a788b6a788fad9a5fcf8e7f9ebb6 -b9b6a8b9b6a8f9ebb6f8f6f7e9d8c8b9b6c0c7b8b7e9d8c8f5ebf5e9c8b8d8b9b7d7c8a8e8dab9 -f2f4eae9d8c8c7b8b7c7b8b7f8ecd8fcf8e7e8dab9acb4accac4a7faecc9f8ecd8d9b888b6a788 -c5b699faecc9f7d8b8d2966de09e75f0ac7df7bb86f8d094c8a886a59887c5b699f8d094f7c7a8 -c7b8b7acb4acc8b7a8f0ac7de6b8abb9b6c0c7b8b7d8b9b7d2966dd9b899b9b7b4302f2adb3738 -69256b5415745415745415745415745415745415745c2479040404 -0404045c1c7c641a7c641a7c5c1c7c6414745c1c7c54147cc3324e852415675f46a8a6a9ae7b74 -92655fac99a7b5a898a48899be8b70ae845da69798b6a788988884d69986988884936f72c8a886 -a69798e9b899c89997be8b70f0af71e6b8abe9c8b88f8b97b6a788b6a7889897a8d8d7da999cb5 -b9b7b4b5a898a8b1c9e9e7e8aab4b8d8c7b8c8b7a8d2dae7e9e7e8c7b8b7e6b8abd7aaa7d2dae7 -eaebf6c8b7a8d8b9b7c8b7a8c8c9d8e9e7e89fa19ac8b7a8a8a6a9d2dae7e9e7d79fa19ac8b688 -a88786d8c7b8f7d8b8f7be9ae09e75b99886e9b899e9d9a6b8a8a7c5b699a59887d7a899e9b899 -b5a898b8a8a7a9a7bac89997d69986b8aab7b9b6c0b8aab7b98680be8b70b5a8983d3630db3738 -641c744c1575541574541574541574541574541574541574040404 -04040464257c641a7c641a7c641a7c5c1c7c641a7c54147cc3324e8524155d4c36827668616568 -616568a88786d2966d6661786165685a6889b99886df9b5a666178565b68565b68c8a671f6c77c -8782835966788f8b97f0ac7df0af71e6b8ab696f7a787988fad9a5f9ebb66877985966787887a8 -e9e7e8e9d8c87887a867758898a8c2f8ecd8d9d7c882839b677588b5c0d5faecc9e9c8b8999cb5 -78798898a8c2f5eae7e8dab97887a85a68898896b8f8ecd8b9b6c0687798676a888896b8f9ebb6 -b5a898535f83ac99a7f6c5b7efad5ed8b7a882839b687798a48899f8d094988884565b77676a88 -747297fad9a59888845f6b97676a8882839be6b8ab94788f676a88776a868f8b973d3630db3738 -68176954157454157454157454157455146c5415745c2479040404 -04040464257c64257c64257c641a7c641c74641a7c5c1c7cc3324eb6302451524b7c626745535b -45535ba37357c78d617a687945535b616568c78d61df9b5a7c626745535b988884f0ac7df0af71 -936f7245535b787988e9d9a6f7bb867a687945535b778097f6d8c8f8ecd8878aa745535b82839b -f8ecd8f2f4ea7887a8595c59a9a7bafaecc9e9e7e88f8b9770706ac6c2cae8d8d8eaebf6ac99a7 -565b68a9a7bafcf8e7f8f6f79897a8565b68a8b1c9fcf8e7dbe1e75a68894b5967b5c0d5f8ecd8 -e9d8c85966784b5967b5a898f8d094e9c8b85966784b5976c8a9a7f7bb86e6aa9d696f7a45535b -b98680f0ac7dae7b74565b77596678ae7b74e09e75a374835966786661786c5456472415db3738 -6817694c157555146c5c15745415745415745415745c2479040404 -04040464257c5c2479641a7c64257c641a7c64257c5c1c7cc3324e85241570706a8782836c5456 -6f596fa59887c8b688696f7a92655f7a6879ae9870c8a6717a6879ae845dd69b98e8bb88c78d61 -82839bc89887867389b5a898ae9870787988b6a78882839bb9b6a8c7b8b78a95a9c8c9d8999cb5 -b9b6a8c7b8b79897a8c6c2caa9a7bad7a899c7b8b7c7b8b7d8d7dad6c8d5d7a899d7c8c8d7c8c8 -c6d2e1b9b6c0d8b7a8d3bac4a9a7bab5c0d5999cb5e9d8c8999cb5999cb5a8b1c98896b8e9d9a6 -9897a88f8b97a88786778097dac896a488999588a7a488999897a8f7bb86e6b8abc19ba5885b87 -787988e8bb88867389776a8674729782839be7c7a582839b676a88676a88778097472f22db3738 -681769540b6c5415745415745c15745415745c1574541574040404 -04040464257c64257c64257c5c24795c157464257c5c1c7cc3324e852415595c59dac896ae9870 -ae9870b6a788a59887e8bb88c78b4fefad5eae9870ae9870d9b56adf9b5aefad5ed2966dc8a671 -f0af71f0af71f6c77cae9870b6a788f8d094f8d094fad9a5b5a898c5b699f9ebb6fcf8e7f8ecd8 -c7b8b7c8b7a8fad9a5fcf8e7e9c8b8d8b7a8e9b899f6c5b7f5eae7e6b8abd7aaa7d7a899e7c7a5 -f5eae7e9c8b8d8b7a8e6b8abf7d8b8fcf8e7e9c8b8b9b6c0d8c7b8f8ecd8fcf8e7d9d5b8b9b6a8 -cac4a7fad9a5fad9a5d9b888b99886cac4a7f8d094f7bb86f0ac7dd7a899e8bb88f0af71f0af71 -c8a671b5a898c5b699d2966dd9a887c7b8b7b8a8a7b9b6a8ae7b74d8c7b8aab4b8472f22db3738 -5c1e6c5415745c15745c1574541574541574540b745c2479040404 -04040464257c672784641a7c5c15745c247964257c5c1c7cc3324e852415766a4d8f8b9751524b -595c59a59887b6a7887b7779815a55766a4d936f72ae98707b7779ae845d7b7779ae845df0af71 -d7a899d69986936f72ae9870b6a788a69798d9b8998f8b97b9b7b4b5a898a9a7bae9d8c8a8a6a9 -c7b8b7c8b7a8c8c9d8d8d7dab8aab7d8b9b7e6b8abeaebf6e9e7e8d8b9b7d7aaa7d7aaa7e9e7e8 -f5eae7d8c7b8e9c8b8d7a899d2dae7e8d8d8b8a8a7e9c8b8a8a6a9d8d7dad9d5b8a69798cbcdc0 -a8a6a9d8c7b8e8dab99fa19ac8b688988884d7a899f7be9ae7c7a5e8bb88ae9870c78c82d69986 -b5a898c5b699a59887ae7b74ae7b74b5a898b9b7b49897a8675f46988884a0b0a03d3630db3738 -6817695415745c15745c15745415745415745415745c2479040404 -0404045c157464257c641c7464257c64257c5c24795c2479c3324e852415675f46595c5945535b -45535b6c5456ab7b45565b6845535b4b4b64a37357c78d616661784b5967666178be8b70df9b5a -b99886616568596678e8bb88f0ac7d676a884b5967778097e8dab9f8d09478798859667882839b -f8ecd8f6d8c89897a8696f7ab9b6c0f8ecd8e9e7d7ac99a78f8b97d8d7daf6d9d9f6d9d9b8aab7 -878283c8c9d8f6d9d9e9c8b89897a8787988b5c0d5f8ecd8c7b8b77780976877989897a8f9ebb6 -c5b699687798676a88a48899f8d094b6a7885966789897a8e6aa9defad5ea88786676a88676a88 -94788fe8bb887c62674b4b64565b77776a86c8a8866661784b59764b5976776a8639291fdb3738 -5c1e6c5415745c15745415745c15745415745c15745c2479040404 -04040464257c5c157464257c67278464257c5c24795c1c7cc3324e8524155d4c36595c5945535b -45535b675f46ab7b455c495a40474b936f72ae845dc78b4f6f596f45535b666178d2966ddf9b5a -6f596f45535b696f7ae8bb88e8bb887879884b5967787988f7c7a8f7d8b8787988616568878aa7 -f7d8b8f5eae79897a870706ad6c8d5f7c8c8f5eae7a6979870706ae8d8d8e9d8c8f5eae7b8a8a7 -616568c6c2caf6d9d9f5eae7a8a6a9616568c6c2caf8ecd8e8d8d8787988596678b8a8a7fad9a5 -e9c8b8696f7a4b5967ac99a7f8d094d7aaa7666178565b68b98680f0af71b7898f596678565b77 -ae7b74c78d61ae7b74676a884b4b647c6267a373575c495a4b5976565b685c495a39291fdb3738 -5c1e6c5415745415745415745c15745415745415745c2479040404 -04040464257c64257c64257c64257c64257c6727845c2479c3324e8524156165687879886c5456 -5c495a878283c8a67170706a815a55a37483d9b56abe8b70867389a373577a6879b6a788ae9870 -7b7779c78d6194788fb6a788b8a8a78f8b97c89887778097b8a8a7b9b7b4a48899d9b899b9b6c0 -c9a799d8c7b8c7b8b7ebdae5e6c9d9d7a899d7c8c8e7c8c8ebdae5f7c9d7c89887d6acb4f6d9d9 -e8d8d8e6c9d9d9a887d3bac4e7c8c8d8d7dab8aab7f7c7a8b8aab7b8a8a7b8a8a79897a8e9d8c8 -999cb58f8b97a6979882839be9d9a6ac99a794788f936f72787988e8bb8894788f867389776a86 -687798e8bb88c8a9a7a374836f596f676a88e8bb88676a88605170676a887879884d3d2cdb3738 -5c1e6c540b745415745c1c7c541574541574540b745c2479040404 -0404045c157464257c67278464257c64257c5c24795c2479c3324e85241551524bdac896ae845d -ab7b45ae9870ae9870d9b56aab7b45c78b4fd9b56ad9b56aefad5ec78b4fd9b56aae9870ae9870 -efad5eefad5ee8bb88c5b699c8b7a8f8d094f7bb86f7d8b8b9b7b4c7b8b7fad9a5fad9a5f7c7a8 -d6acb4d8b7a8f8d094f8ecd8e9b899e6aa9dd7a899e6b8abe9e7e8c9a799d69b98d69b98d7a899 -e9e7d7d7aaa7d7aaa7e6aa9de6b8abf8ecd8e9c8b8d8b7a8e9b899f7be9afad9a5e8dab9c7b8b7 -cac4b7f7c7a8f7c7a8e8dab9acb4acd7c8a8f7bb86f7bb86d9b888b5a898cac4a7e09e75d2966d -c9a799c5b699f8d094c78d61c78d61c8a886b6a788b6a788a37357c5b699a9a7ba472f22db3738 -5c1e6c5415745c15745415745415745415745415745c1c7c040404 -04040464257c64257c5c24795c247964257c64257c5c1c7cc3324e852415766a4d7b77796c5456 -595c59a37357ae98707a6879675f46595c59ae845dd9b56ab7898fa37357815a55ae9870b6a788 -7b7779ae7b74867389b9b7b4b6a788ac99a7d7a899a48899c7b8b7d9b899c6c2cae7c7a5c19ba5 -d8b7a8e9b899e8d8d8e9d8c8e6b8abd7a899e6aa9df5eae7f5eae7e6b8abc89997d7a899ebdae5 -f5eae7f6c5b7e6b8abe6aa9de8d8d8f6d8c8e6b8abe6b8abc8a9a7e9d8c8f6c5b7c8b7a8d8c7b8 -a9a7bad6acb4d7a899a69798b9b7b4a8a6a9b99886c898879897a8c8b688988884ae7b74be8b70 -e6b8abd9b8889888846c5456827668b5a898c5b699a5988792655fa8878682839b3d3630db3738 -6817695415745415745415745415745415745c15745c2479040404 -04040467278464257c64257c6b377964257c64257c64257cc3324e852415675f467c626740474b -40474b8c6540ab7b4561656845535b4b4b64766a4dab7b4594788f565b684b4b64ae845ddf9b5a -6f596f4b5967676a88e6aa9ddf9b5a776a86596678878283e7c7a5f0af71867389616568ac99a7 -f6d8c8f7bb86ac99a7878283e8d8d8e8dab9f6d8c8c8a9a7a48899ebdae5d7c8c8f6c5b7d8b9b7 -988884e6c9d9e8d8d8f6c5b7b8aab78f8b97e7c8c8f7c7a8e6b8ab9588a7778097b8aab7fad9a5 -c8a8866877985a688982839bf8d094a88786676a885a6889867389f0af717c6267565b778f8b97 -b7898fc78d61616568535f835a68897a6879c8a6717a68794b5976565b777a6879472f22db3738 -5c1574540b6c54157455146c54157454157455146c541574040404 -04040464257c5c157464257c64257c64257c5c1c7c5c1c7cc3324e852415675f466c5456304443 -666178a373578c654040474b51524b565b68766a4dab7b455c495a45535b605170ae845dd2966d -6661784b5967696f7ae09e75e6aa87787988595c598f8b97f7bb86e8bb88a48899616568c8b7a8 -f7be9afad9a5a69798827668f7c8c8e9c8b8f5eae79fa19a827668e8d8d8d8b9b7e9e7e8b8a8a7 -70706ad7c8c8f6d9d9f8ecd8c8a9a770706ae6b8abf7be9af6d8c88f8b97616568c9a799f7be9a -e6b8ab787988596678b98680efad93c89887596678596678ae7b74e09e75936f724b59764b5967 -7c6267ab7b455c495a596678565b77815a55a3735792655f565b68565b68815a55472415db3738 -55146c55146c5415745c1574540b7455146c5415745c1574040404 -040404641a7c64257c64257c5c15745c1c7c6414745c1574c3324e852415766a4d8276688c6540 -92655fb6a788ae98706165685c495a7c6267b99886be8b70565b68815a556f596fb6a788b5a898 -936f72ae7b7494788fc5b699b8a8a794788fc78c82ac99a7c8a886d8b9b7b89898e9b899d3bac4 -d69986d8b9b7e6b8abf7c7a8e6b8abc89887e7c8c8f6d9d9ebdae5f6d8c8be8b70d6acb4f6d8c8 -ebdae5f6d9d9d7a899d8b9b7f6c5b7e9c8b8d3bac4e6aa87d7c8c8d8b7a8c8a9a7b8aab7e9b899 -b8aab7b7898fa488999588a7e8dab9999cb586738986738982839bdad4a8747297666178605170 -676a88dac8968673896165685c495a677588e8bb889888847a6879605170677588472f22db3738 -641474540b7454157454157455146c540b745415745c2479040404 -040404641a7c641a7c64257c641a7c5c15745c15745c1574c3324e852415675f46d9b56ac78b4f -c78b4fc78d61ae9870df9b5a8c6540df9b5aae9870ae9870d9b56a8c6540c8a671b5a898b8a8a7 -e8bb88c78d61e7c7a5b9b7b4c8a9a7e8bb88e09e75e9b899d8c7b8d8b7a8f7be9af7be9ad7a899 -d7a899d7aaa7e6aa87e9b899c89887d7a899c78c82d9b899e7c8c8b98680c89997c89997c8a886 -e8d8d8c89887d7aaa7d69b98d9a887f7c7a8d7a899e6b8abd7aaa7efad93f7c7a8e6b8abd8b9b7 -e6b8abf7bb86f7c7a8e9d8c8b9b6c0d3bac4d7a899e9b899d8c7b8b9b7b4d7c8a8be8b70c78d61 -c5b699b5a898d9b899ae845dae845dc8a886b5a898dac896be8b70d2966d98888439291fdb3738 -681769541574541574540b6c54157455146c5415745c2479040404 -040404641a7c64257c641a7c64257c64257c641c745c1574c3324e852415766a4d988884827668 -675f468c6540d9b56a8276686c5456595c59827668c8a6716f596f595c59666178a8a6a9b6a788 -7472977c62677a6879c7b8b7b5a8989588a7b98680a88786d7aaa7e8bb88d3bac4d9b899d7a899 -d7aaa7d7a899f6d9d9f7c7a8e6b8abc89887e6b8abe8d8d8faecc9e9d8c8b99886d8b7a8e9e7e8 -f6d8c8e6b8abc89997e6aa9df6d9d9f6c5b7e6b8abd7aaa7d8b9b7e9c8b8e9b899d8b9b7e9c8b8 -c8b7a8c19ba5d69986b8a8a7d7c8c8a9a7baa88786ae7b74b5a898cbcdc0999cb57c6267827668 -9fa19ac5b69998888492655fa37483c7b8b7d9b888936f72ae7b74c9a799a59887472f22db3738 -55146c540b745c1574541574540b6c5415745415745c1c7c040404 -040404641a7c64257c641c7464257c641a7c5c147c5c1c7cc3324e852415675f46a37357304443 -3044438c6540ab7b45815a5545535b40474b815a55ab7b454b4b6445535b4b4b64766a4da37357 -6051704b59677a6879ae845dca83777879884b5967988884e09e75e09e75a48899616568c8a9a7 -e6b8abf7bb86b5a8987b7779e9d8c8e9b899f7be9aa6979882839bf5eae7e9c8b8f6d8c8c6c2ca -7b7779e9c8b8e9b899f7c7a8c8b7a8878283f7c8c8e6aa9df7be9aa48899787988d6acb4efad93 -d88e7d82839b677588a48899e9b899ae7b745a68895966787a6879b6a7886165685a6889565b77 -605170c8a6716f596f4b5976677588ae7b74d9a88770706a45535b778097a37483472f22db3738 -55146c54157454157455146c5415745415745c15745c2479040404 -0404045c1c7c64257c64257c641a7c5c15745c1c7c5c1574c3324e8524158c65405d4c36302f2a -7c6267ae9870df9b5a6c545651524b4b4b64878283c8a671565b77565b68565b77ae9870b5a898 -666178616568787988d9b56ad8b7a88673897b7779b89898d9b888d9b899b5a898878283d8b7a8 -f7bb86f7c7a8d7aaa7988884f6c5b7d9a887e9d8c8b8a8a7878283f5eae7d8b7a8e9e7e8cbcdc0 -878283e9d8c8e6aa87e8dab9c8a9a7988884f6c5b7e9b899f6c5b7ac99a7787988d7a899e8bb88 -d7a8998f8b97696f7ab7898fd9b888b98680696f7a677588867389b99886616568535f83535f83 -616568b998866f596f4b59764b59677a6879d2966dae7b7445535b40474ba373574d3d2cdb3738 -55146c541574540b6c5415745c157454157455146c64257c040404 -0404045c1574641a7c641a7c5c1c7c641a7c5c15745c1574c3324e8524154d3d2c766a4dab7b45 -a373578276688276688276688c65407c62678782839fa19a8782835d4c368782839fa19a9fa19a -8782838c6540878283b5a898b8a8a7ae9870ae845db8a8a7b8a8a7c7b8b7c9a799d88e7dd8b9b7 -c8a886c7b8b7e6b8abe9b899d8b7a8c78c82cbcdc0e8dab9e8dab9e8d8d8b99886d7c8c8e9d8c8 -e8dab9e8d8d8c9a799d8b9b7f6c5b7e9c8b8f7c8c8d7a899d8b9b7efad93d7a899d8b9b7e7c7a5 -d7c8c8c89997b7898fb8a8a7e9d9a6a9a7baa374838673899897a8d9d5b87887a86661786f596f -878aa7d8c7b87780977a68797c6267867389d9b888a48899a374835d4c36595c594d3d2cdb3738 -641c745415745415745415745415745c15745415745c2479040404 -0404045c147c5c1574641a7c641a7c641a7c5c1c7c5c1c7cc3324ea8291639291f472f22472415 -472415472415472415472415472415472415472f22472415472f22472f22472f22472f22472f22 -47241547241547241539291f47241547241539291f39291f472f22472f2247241547241539291f -39291f47241539291f472f223d3630472f2239291f472f224d3d2c4d3d2c3d36303d3630472415 -4d3d2c3d3630472f22302f2a472f22472f223d36304d3d2c4d3d2c4d3d2c4d3d2c3d36303d3630 -4d3d2c4d3d2c4d3d2c46423b46423b46423b472f223d363046423b46423b46423b4d3d2c46423b -40474b3d36304d3d2c472f224d3d2c46423b46423b46423b4d3d2c46423b19271c472415db3738 -641c745415745415745415745415745415745415745c1574040404 -040404641474641474641a7c5c1c7c641a7c641a7c5c1c7cb0254edb3738cd342acd342acd342a -cd342acd342acd342acd342acd342acd342acd342acd342acd342adb3738cd342adb3738cd342a -cd342acd342acd342acd342acd342acd342acd342adb3738cd342adb3738cd342acd342acd342a -cd342acd342acd342acd342acd342acd342acd342acd342adb3738cd342acd342acd342acd342a -cd342acd342acd342acd342acd342acd342acd342acd342ab63024cd342ab63024cd342acd342a -cd342acd342acd342acd342acd342acd342ab63024b63024b63024b63024b63024b63024b63024 -b63024b63024b63024b63024b63024b63024b63024b63024b63024a82916b63024cd342adb3738 -55146c5415745c157454157454157455146c541574541c6c040404 -0404045c147c5c1c7c5c1c7c641a7c641a7c641a7c5c1c7c641c74641c74681769641474681769 -681769681769681769681769681769681769681769681769681769681769681769681769681769 -6817696817695c1464681769660b656817696f175c781a666817696817696817696f175c681769 -6f175c681769681769781a66781a66792666781a667926666a2976681769781a666f175c6f175c -6f175c781a66781a66781a666f175c781a66781a66792666872164781a6687216479266681205c -781a667926668a2f627926667926668721648721648a2f6281205c8d1d5c8721648d1d5c872164 -8721648a2f628721648d1d5c87216487216499275e8721648d1d5c8721648d1d5c8d1d5c872164 -55146c5415745415745c15745415745415745415745c2479040404 -0404045c15745c1574641a7c641a7c5c1c7c5c147c5c1574641a7c5c147c5c0c735c0c735c0c73 -540c7c5c0c73540b745c0c735c0c73540b74540b74540b74540b74540b745c0c735c0c735c0c73 -5c15745c15745c1574540b745c0c735c147c5c147c54157454157455146c5c0c735c1574541574 -540b74540b74540b6c540b744c1575540b74540b745415745c1574540b6c541574541574541574 -540b74540b74540b74540b74540c7c540b74541574540b74541574540b74540b74540b744c0b74 -5415744c157554147c54157454147c4c0b744c1575541c7c5415744c15754c0b744c0b744c1575 -4c0b744c15754c15754c15754c0b744c15754c0b744c0b744c1575540b744c0b744c0b7454147c -54157455146c5415745415745c157454157455146c5c1c7c040404 -040404641a7c641a7c641a7c641a7c641a7c5c15745c147c5c147c5c15745c0c735c15745c0c73 -540b6c5c0c735c1574540b745c15745c15745c15745c0c73540b6c5c0c735c0c73540b74540b74 -5c0c735c1574540b74540b6c5c15745c157455146c5c1e6c5c15745c157455146c5415745c0c73 -5c15745c15745415745c15745c1574540b6c55146c5c24795c24795c15745c15745c157455146c -541574540b6c540b745415745c1574540b74540b74541574540b745c15745415745415745c1574 -55146c540b745c157455146c54157455146c54157454157454157454157455146c541574540b6c -5415745415745c1c7c54157455146c54157454157454157454157455146c540b6c55146c541574 -541574541574541574541c7c54157455146c5415745c2479040404 -040404641a7c641a7c5c147c5c1c7c5c147c5c15745c15745c147c5415745c0c735c15745c0c73 -540b745c1574540b745c0c735c1574540b6c540b6c540b6c5c0c73540b74540b6c5c1574540b6c -5415745c1574540b6c5c0c735c1574540b6c55146c5c24795c15745c15745c0c735c0c73540b6c -5c15745c15745c15745c15745c157455146c5c15745c24795415745c15745415745c15745c1574 -541574540b6c55146c540b74540b6c540b745c15745c0c73540b74540b6c540b6c540b6c541574 -541574540b6c540b6c540b6c54157455146c5415745415745415745c157455146c540b6c541574 -54157455146c5415745415744c157554157455146c541574540b6c4c086c540b6c4c1575541574 -5415745415745415745415745415745415745415745c1574040404 -0404045c1c7c5c147c5c15746414745c15745c15745c15745c147c5c15745c0c735c1574540b74 -540b6c5c1574540b6c5c0c73540b745c157455146c5c0c73540b6c5c15745c0c735c0c73540b6c -5c15745c1574540b6c5c1574540b6c540b6c5c15745c1e6c55146c540b6c55146c5c1574500464 -540b7455146c5c15745c0c735c1574540b74540b6c5415745415745c15745415745415745c1574 -5415745c1574540b74540b6c540b745c15745c1574541574540b6c55146c540b7455146c540b6c -540b6c540b6c4c1575540b6c541574541574540b6c540b6c55146c541574540b7455146c4c146c -54157455146c54157454157455146c55146c541574540b6c55146c540b6c541574541574541574 -54157454157454157454157455146c5415745415745c2479040404 -0404045c1574641a7c641a7c641a7c6414746414745c147c5c15745c15745c15745c0c735c1574 -5c0c735c0c735c0c735c15745c15745c15745c15745c15745c0c73540b745c1574540b6c5c0c73 -5415745c0c7355146c540b74540b6c540b6c540b74540b6c5415745c15745415745c15745c0c73 -540b6c540b74540b6c540b6c540b6c55146c540b6c540b6c5c1574541574540b6c5c157455146c -540b6c5415745c15745c1574541574540b745c15745c15745c0c73540b6c540b6c540b6c540b6c -54157455146c5c157454157454157455146c540b6c540b6c5c157454157455146c541574541574 -540b6c4c1575541574541574540b6c541574540b6c4c086c54157455146c4c1575541574541574 -5415745415745415745415745415745415745415745c2479040404 -040404641a7c641a7c5c1c7c641a7c5c147c5c147c5c15745c15745c15745c0c735c1574641474 -5c1574540b6c5c1574540b74540b6c5c15745c15745c15745c0c73540b6c540b745415745c1574 -5c15745c15745c0c73540b6c5c15745c1574540b6c5c15745c15745c1574541574540b74540b6c -5c157455146c540b74540b6c540b6c5c1574540b6c540b745c15745c15745c1574541574541574 -5c15745415745415745c15745415745415745c1574540b745c15745415745c1574541574541574 -54157455146c5c2479541574541c6c541574540b6c540b6c541574541574541574541574541574 -5415745415745c157455146c541574541574541574540b74540b6c55146c5c2479541574541574 -54157454157454157454157454157454157454157464257c040404 -0404045c15745c147c5c15745c1c7c6414745c15745c1574641a7c5c1574540b745c15745c1574 -5c15745c0c735c157455146c5c1574540b6c540b745c1574540b6c5c0c735c1574540b6c541574 -5c15745c15745415745c157455146c5c1574540b7455146c5c15745415745c1574540b6c55146c -64147455146c540b6c55146c5415745c1574540b6c5c157455146c540b74540b6c541574541574 -5c15745c15745415745415745c15745c1574540b74540b6c540b74540b6c5c0c7355146c541574 -541574541574541574541c6c5415745c1574540b74540b6c54157455146c5415745415744c086c -55146c5415745415744c157555146c5415745c15744c0b74540b6c541574541574541574541574 -5c24795415745415745c2479541574541c7c5c15745c2479040404 -0404045c15745c15745c15746414745c1c7c6414745c0c7c64257c5c15745c0c735c0c73540b74 -540b745c15745c15745c15745c15745c157455146c540b745c15745c15745c1574540b6c5c0c73 -5c15745c15745c1574540b6c540b6c5c1574540b6c540b6c5415745c15745c1574540b6c540b74 -55146c540b6c55146c540b6c540b6c5c15745c15745c1574540b6c5c15745c1574540b6c540b6c -5c15745c157455146c55146c5c157455146c5c15745c15745c15745415745c15745415745c1574 -5c15745c15745415744c146c541574541c6c541574540b6c4c086c55146c540b6c54157455146c -4c086c55146c540b6c55146c540b6c54157455146c540b6c55146c540b6c541574541574541574 -5415745415745415745415745415745415745415745c2479040404 -0404045c0c735c147c5c15745c147c641a7c641a7c5c0c735c15745c1574540b74540b6c5c1574 -5c1574540b745c15745c1574540b745c15745c1574540b6c540b6c5c15745c1574540b745c1574 -5c15745c15745c1574540b74540b6c540b74540b6c5415745c0c735415745c1574540b6c540b6c -540b74540b6c540b7455146c540b6c5c1574541574540b6c540b6c540b6c5c1574540b6c540b6c -5c15745c1574541574540b6c540b745c1574540b6c5c1574540b6c55146c540b74541574541574 -5415745415745415745415745c15745415745c1574541574541574541574540b6c55146c540b74 -540b6c4c086c541574541574540b6c4c086c5415745415744c146c540b7455146c4c146c541574 -5415745415745c1c7c5415745415745415745415745c2479040404 -0404045c0c735c1574641a7c6414745c147c5c15745c0c735c24795c0c735c0c735c0c735c1574 -5c1574540b745c0c73540b74540b6c5c1574540b6c5415745c15745415745c157455146c540b6c -5c15745415745c1574540b6c540b6c540b6c5c15745415745c15745c15745c157455146c5c1574 -5c15745c15745c1574540b6c5c0c73541574540b6c5c1574540b6c540b7455146c5415745c1574 -540b74541574540b6c540b74540b6c55146c540b745c1574540b6c54157455146c5c1574541574 -55146c55146c5415745c15745415744c146c541574541574540b6c540b6c540b6c54157455146c -4c086c55146c540b6c540b7455146c54157455146c4c15754c146c55146c4c1575541574541574 -5415745415745415745415745415745c15745415745c2479040404 -0404045c15746414745c1c7c641a7c641a7c5c15745c15745c15745c15745c0c735c15745c1574 -5c15745c0c73540b745c0c735c0c735c0c735c0c73540b6c5c15745c15745c0c735415745c1574 -5415745c1574541574540b745004645c0c73540b6c540b745c15745c1574540b6c5415745c0c73 -5415745c0c73540b74540b6c55146c540b6c55146c5c0c73540b6c5415745c0c7355146c540b74 -540b6c540b745c0c7355146c540b745c1574540b6c540b6c540b6c540b6c540b74541574540b6c -540b6c540b6c5415745c15745415744c1575540b6c55146c540b6c4c146c540b7455146c4c086c -55146c5415744c086c540b6c55146c540b745415744c146c541574541574541574541574541574 -54157454157455146c5415745415745415745415745c1574040404 -040404641a7c641a7c5c1574641a7c641a7c5c147c5c0c735c147c5c147c5c15745415745c1574 -540b74541574540b745c15745415745c0c73540b6c540b745415745c15745c15745c1574541574 -5c15745415745c15745c0c735c0c73540b74540b6c5c15745c15745c1574540b6c540b6c540b6c -540b6c540b74540b6c540b6c540b6c540b6c540b74540b6c540b6c540b6c540b745c157455146c -540b74540b6c540b6c540b74540b6c540b74540b6c5c1574540b74540b74540b6c540b6c540b6c -541574540b6c55146c4c146c541574541574541574541574540b6c540b6c55146c4c086c55146c -540b74540b6c5415744c086c540b7455146c540b6c541574540b6c55146c4c086c55146c4c146c -55146c4c157555146c5415745415745415745415745c2479040404 -040404040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404040404040404040404040404 -040404040404040404040404040404040404040404040404040404 -showpage -%%Trailer -end -%%EOF diff --git a/Docs/Books/algor.gif b/Docs/Books/algor.gif deleted file mode 100644 index 6b640dee39cd9434c496d9e7b13955cee01abe19..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15001 zcmWk#2U}B1*F7h_CqU@!P=tUAp$7py1Vj+TfT#$lp$9|>iU^8&l8}O;#tw=aii-6H zM8tA^LywBrh^W{@QDTqERcx2fZ+^gj_A`6-npu0TnHLkq2~N)f4gue$fG0tm69=pJ z7OpKwT5_p!SC?;mc}DJov#oNmiK? zoBaCi^|)bI_^NH*8Lw_U+F_s8sHhP^X>T9DlsjdetvOldmQ!e%CSS0z)Fx+N>8>nB zT3SrX2EVoKr!PIw-rp!FQ>4ms$k~O<3jclkufQ@dZ`!If3_p#MRlqDxV`gm#EiaE1 z%hpw6cE=V&kUd$}WvMEo) zl&4Y3v!<0Nk^jUgPqHh>b+1Uml*bVY((KBcPMk`jlqZ=Nr@5BJk&EM)1xd{EIP>*M zcIEs8VQ=Tn4f(SDij%vx9~^r4_;Q;jC%yF4$t%?dn~K*SjE&6_OAeQoDYQ3+-n{*q zo3D^>J6ThEaY^cim8%XeS}AF2zLCEEgyKN^2ISz9RKcn(XHo=}n|8DcHdL3&n_`!h zY}A;=Zt@p9GQ!&3 zPNi0zZ9TgzZ5h*!(f^?LSlyw|6K`(a)+8jx3WfQP2b&(lZu|Un)B7dC~nBt zzVaWBj!(WD(w-=q)a`rJuDE=ub$MLi@oM?Ub1N=3RiD{3*Kk!KE)n!?U$`J_hPFvI z-go@lQ2UF+DOK69@voxu70bU}l|5>&c|D{J3uJ3AH4XK(_w7g@II!AycJreqx&G+- zU=PP{*AKmJuld&3)Ua;ptJCt!)v|fs&eyjKzYb}KE;YT@w$F1l|9EcijgvLnYWag2 z*~6xqmxtwFdoI0dKlAUK@oGiI(9X@TP9M1`+0a)dZt}2@x|;9FUU_~~u_$HnWf{`O zcD?QI`QUK%!_z0Vr%n!CzSQ1yvakJ;w&q}yT=q??ZLh8#*J{5$dSn>eeRTRx|;);i~f`)l}ps-ou&^<+p8xG-d z8BE_uMc@7y1^=DsQ^uY{UVBT+JzOgnRHJ*>Ig_BMoPlRQ%VEB75oNmzI5#-f$h zFSw0{eVQnxt9445PQIr1TKvpF_KO~>Q94IeJmG|3SDQmcLF*<>i zaw+r3Qxmv~7PYO=!x#Rd_mfT&IOgwjj-oaPSw=LboqBkq)7&{xp`tCwiXLJIL ze6rs={NQgk+>OBaQyo{)hn-x%-u#Q@=QcI;`PBl2e_=i5`#RRz=d+e?yhgltYM*OF zZOc^gZ*T1mmnG-6jCDk0zW-|b$i2D4e&gQ1Y=gF3Z2B@%ymw|o?xOh-43i4x%$TBt zg<-4lNr{o&t`%`jbxWA}sAbvDO=fkst=JSg1Y|HmRfFhFPc9y;FmtPKyl3J-9XE;m z=XGQ^{aY)9B7|TULs4AnT&#Iif=`k%{Jg*^;Z%&1GIB0dBr$EhA638q-EKkTYQm3+ zr%~3&8zW7-cfVdNA+MM)kGkWd9hhHmWny`Skhb5(guA?%xhVcW^tAo+Yjfu^D;!Lu z3oA??N1Dmq(xr8k&Kp_g^BHflO%s^eQgedr0LEMrl`dVhgrDAHHkW$&^~r;@*JkGN zX;VIpXJgVnG4o^7C+{#8as8*^UMF=`dEK~HPx8CuDk07O3-~hM6V&ga__qv+xBKe& zUvB%~Vt-i>db{A>?XYjf7w93+R1vpk8&snUf^_9BciQeKB-FrraeH@!oq!wSym?vm z+x)wg>#71UZ_T#*-V|nPL#)zF9K>^pjgclHaXyhI3nPs?{ninhE zLDrg#cni~~Uv33&B_v9G2b4})QYQr>*t&AQ(D0^Tf_wIcggV`2EDSaN<2go{f?$0A zpeEi6>~_WnP?atu$HB-8RlX|)>GIiqPt(OV=}OZ+>y3i+g^rslh8KDkzB7@}Y3Xj3 zI~;&N_gZEn&QXrG9OJFPVd1?V4?>n|p><;xgbK;mnZf9H#cEQh@JpqBujskD==tlj zi93D!4U0bbb`Nzf0FDcswtMhOoAJzlVJ^tz4Yl+_zmP@ofg;83`JS6G1AT6C<8Ny2z_q)pd`?M@^ij&bSaq~r|7fgy|wyMws3yu)GCs_$?0 z-CY?^GabG(jRt=RM+)~zfL>%C<0iFnQz5Qva>-vTa`{XDOTCu2Vin_%b``cMCXzVTyW55dm2N` znB?KC2nqQ7Unt7D>aOX@B4kc+x^)Kw@7S-~7XNgZUaEq9jDTWx`-o{a(CrYldq+TZ z9etFAb$G+TFD)OY zZJjg@Mwy;qOKaj$%+7YHXHwC&RKp1KWK&PJd+PQSy|Z~A(!(xyB5!J~H^0jP0{O!v zLG`HZhzbZAG1*l(#pgPFX3IHgyQu~6sP#D(_J8#zI}+JqW|vjejDp>jIsP-u)zMMD zrB3tn8l5Q~|Asqm|BMlZhBwdEJYnRJs+I{lfzy*cfLk~Yb4^TL$Cr2(G%xb2McD=@ zk-i!9%i`$K>aiuJor@dciY4Ygf+-pt76Cg;rGe*|`Kh&C)KKaVnrce&JL(9aL&_(wi&5Pv0v&w-qF zZr^v|g#YE51^FBI9(k5@GVp$-o63TesPDJ0pHaq*QQV|%V@r)(SL_EPsZyY~py?v# z@LQs*^>GqhE8rTz5PAIbNeo@;#TV=$E=+4t1y2E(0?z>D2Y)9U1%$R1z@*8h>0hd9 zh<_^(lbvjgCr0HTPq>Bm)luma`DW*IfVqsf4U=^an`s(8ovW@~-O48(XZ4ZyK;rmF z4Y6;imoN}UG3V6jZ3Hl(7BFHaU{aVt<2M_YZlTuV(srYEA6HiAw4j#2jwGuxwtuTzhGkjSLhHvD`QuAb(d;qlVMu8 zLb*W3mLBpW!1_E|RFmFrwr}*HP-b@Q<5?S#rabe^5^hZS`e{yD_ej^4UrQUgWryyJ zyTe;hHD{jh9fw_S4<}R(Y~r4D!{>3gH0C6nH@fz8{#t4j_D*>rcY%Bcn({sww48BQ z1|q}M{Z?pFqzapsrLm{MI4^_Gj$B=)?RN%s7)c$~5zoW)FB;-?J!yys4>M?AA=(I= zI>IAOr~rcs&UW5ih98uMzO0 zl=Rgeu9%2zi11Os=Mfdh>pDm5-Z2jl^y05yuL0@``#0ydBXQ&>vuG6=ud zNITKNj1PCPiGRJN8*p*~Zm4~;G_;F+KnkI5Gbro#aXJJRYKT2*9AAew)6o~+$JZj1^%~rAfUH&G@|0i~K($t4Sq#dg z9=DZ;z6Swij2+S@aC2)`TdrvkKPcGNiAp7L!G7w$2<0x%o1~$>)KI>tNgwrK?Pn(Q-e#WZda{wWmrWgnsrROgq!EN( zx{sQI0NF78x+Y<*kxj z143M>$7M;0TY#vG(clJv5amaBKSqC~qg%tYS31fg9WV*d{sHI?%FSEGmM3&h58`8I zwvw;&=@SU$0fYJlqD|%!D9rXc&@@T4)+RY~Q2r2)R$JFm5O7w9r z8T1qlwLXiq#Yi};CLYk^KPpHoRM_V{njWJ4=Eb(@h`Wv0J~gq24bnDJ&a-I~Lg2HS zdRHI*iA{Z_0=!?L9$jLtJdy0lT<;e^ey1Z;@Ts>UV22TZn@t(x6Se}Rvk)NV(XR`s z8EoQOJ?T6TCq?kJ8e%Dru#pW)g!uSD`WCpch(X*9;l--$Oe0>Z!q%!mgpJSDlO95# zl#zlLW;_M>TaEY+Z0ZLi-c<8v#{uV?i4TgofzcaT{)_5#*u6SJD?&2W(dr=JGz4}c zO&vz+^C^B)69eehVegybdf@OrA|eQtWnd>MiN~4z#yNx zPPwItPey5I&Pvk15XztfufcQ|EVztCy9?1?b<%Bx)CWS~p&I;Uq)sqsj{xwVo<78; zy8%=;7_io0k3;eR9_|w!w~Qwb(4R#R@)$#bC=-M9_9kmjPN^^w*XR&6dZrLPQ{8O$ zq}kyK%2$W-)S(<1D7&Aa>(yo_2FgLx60Acx8A0ExEk0LU9Hum&lLmB9fiqTt4#Ep| ze9#5~?cmn%)K)tUXo9p_!L1f8S*B#@S*b(se3w&r$OHvVbK1P-fyZEwlU3ctv{dNa zU7Lj`au&+6;}0?~`)=~xZNm>aBK=A?fF|481eLGMa}#Y>gquO2eV5!Uycb$|*KI|j zdsw>Jn$KplJ8Zq0P2-Ks>CUeA+LoVkVnhf9*Xo_1mP_d<(*W=ax5TdKfSWL}SWGrk zeKk4q08)l9)mKeRxlEIv%r;Bg^RjiG5N4K9Fi~gcj5578Y`$ZuZ9tu==k8*QVd!p2 z-mKmB#j-2w+H$#|L%Ga7p(M9$DdvpDIzNDVWJ*YzFu}aGD9jo_$207lMlPui+lMI8 z@jSX(g-Ya+#?@wL-%j%v6%Bnd2{X-}!$ubjxV%WfMyN4M`SiPb@bzH~4512^`b-HO z*c&kVUUFeF5%>g7-1Y!eF`HIX{6@Hv3y@`M%;mWW5c z{z{ptvpv2WJOWd!d8qkL*nibUk$n0S6)Fi>OGL6Gg%;)r7CTaWdf3BS?7%UigV|^w z24)_D@l&Gb@KAFQjE9Cwh0*@{E}|Okp+uoV(SAm>zw!FoIJ6`jz2O%+T#5Ej_2s9b zrom_r02R*fmCispPbpC|HTHhSUI;)b<1mYiyDSzh%69WKXh_8qpj>PW77S^O-ZgY9m6 zydNz;fo{QNt$s*`cyy}T-dRue{&a0cr#4B6!oX;ZPWyHk^MiNi_4cwM6L-u~aNch8 z5FZ@z`8&y?|BB(2wNv97JDBlr1T_n9Z} zeynr)IP7rXQW?})wshS2S3pZXgt_m78` zZ#Z+wh3o8GU*`ACWPDTk&-5$nW#v}k(+UsRQ|g%k;`aG+cQ2y3Av7n`EzIA2l_S?V z%Xyvcd%NJE^25v9-^I4)ggsdIwQaUfanN06t%cd{5KK!3Q*2?j&~%#jai`bmCdRsc zn4?X%z}+8Y)1$+KtA zr_Mdo+dm%(dp>6W{I!ZUe&o5~H|-<{0tLO3MFK^nDEAB|`oT z6DRnzzu9zC9sLE5@*f16wbOBdqDM-wTu8sArjI_rvN(SIG5LE`_3iQMQ7$sHWCv}wR8sDcn3jWE` zE+xp~qkgg}eK75(a(n^-eyXrp3P8AzN`pX#j(mrmPMZSAFVxuedRqg41bDtfsuPI-uXiJ4ls$}V@&{hFF**5ru_wp2Q-ww)Yx|rAhJ1$ z00O@*B4oI*$^jBE>yM{FDBVbT#(5#~jE&=^ET@yQ$hp^fRVZGV!3 z0LpA`ef&eOnyJdzlZQ$-2cegW}HgS~Ji_lGB;yX5V z3?^*VQPl{rj)yDG=)Z*2T$u22Ay^6#N&$uh)$v`@x9eC) z**nT-Zf?9?oa9Zlb?cqQe+O^ol%49zxx>oZIyAUSO646Ydvd*weed>A2z{xHV&Xja zrgH1lQD)iN(Hmyd$pi0w`}z-aR(-x+6at^^vShh!JXO}v$86#h8euTt6?x9Omy>^= z%8Y$*WOlLZ>iW!+R1a2O>sUzcnuuc|DyZjfeczsQVVg#>&TM!UX;n642tWMrc5VCW z&s81d^m{G0Yv-<^Jo+A4sf%ekXKeaV-E{c}if`(v`3X&}9($)p_FPx4eL3GQFyq&@qP-iuZNpIC z{@EOHvakg|BSt~F>@m%Kk8?!nXUsFIW$T)=&2F}YE8!;(XZ#pGVY}wXBYkz@&QBwh zP49eqcKKzU$~Bw0Gkk9K+~>N!L+d`2jdBtKAB~b1z1i)m^llv*Gnvz>>2=tuQ_VYC z_9J~5Su;|1(y{Dmjl12x$btV2_aUxjy9MLN_?Gl@=yG#Gy)(y))M7ffB)_lFs~ z>`eTni=fYJv38}f;#Ik5JX1SJ( z{;B6^lH%BPFuIac{Q4ctylrWn*7iAdW)JX5@hQ@aI{bENb zXFJycjPS43kZJILM#)|(Fr0~AdVV*6EmBoRp}^}kXQi%dY`E7w)(#ZnT}^xIk>Z?B zz4rM#6J)k)uc&it02C{Nyz-_}veV47BVtEj;;HU`$laB4N1w+{G+KzEJQj%!|Z9JkGXv-_oW0ER+(UQW%5-e$acl5b_?fdzq|G8l_I zCo+|BBu7_MUV+m|t1VxTp4eC93qG}6YIAVz(nYOm_uAZRwSBfZiOaC7X3QYB^I2t& z)7__At#Lh&wIaCJf_Er=?wVxT_ahcdl25%nxKeD5wa}yvH}35WsewZ_ZA%{xO`L!E z9CsM7zT!!TtPP-oT3kQF9r z$?lV~Iln-c0vMufN{;Y3@Kwes=Teqyrs}Yz7hWA={Rmv zhvg^(JuP0js|bUb{$}-Z-h>lo8Z+&9aO3nJ>9RRWSKD$%B%bd?XZLs5cR)z=&~8de zqlki2;)tKwcvB72 zySFbrt1{suD9>I#z#QtbNE6~`kBP_x#;EQ5VR`UXr=44>>a7O(w*$J1=9tJ8-iY< z-b54lYU5=b z6q^eiZMeZ_bLKU@(W30?tOM)zWK+gn$G`VJJ^opI+%DVW*h7`|iNg5)a)}Eixj#nV zaX9^H=76tt?`f&uhQji^*wi1lYaV<#9<%B-=#pcd>F{It{pO?w}_fL@94=<&JeO#J; z_=l)j?k-f7>R8#)^ZvDglzn=ZOGxMpW_(GeO^UsA7uM1v#Jhbdi zD)HKUT=V#^s64_Ghxb$YD}TMWC3N6+9QALAjWttjU(!2&QrIDlO9^Ut@~k$#<-!>| zwo`F3X)`X^9AUp?Su*ugoX#`gjFe5ST=co+=TIpfpgic%gKIl{@{TZol>$B9L(oBw z6796SR)W9t@_Sd^@|2DLt06S}fK6-JDb878Z_}1@!!|mJt#vTwIA@-`QuD?o@-=Qg zK|I@3NJ%b7-iK-7>0Ac3IY@>1bL>qLAyoZGKF&`YPMU8-Gqfs)JHif{_9)r}0r(3i zJBB-GXtzcHqw^{!h3Y;Y9@Afp)^;!w+35U`tGI?}z`XTng~vPoY;{QI8f6+)MB7|kkMcLd&t|GCb6Zt}1Dd&n^GeZ3 z$gtHpBVrbv0lF8f%q`UOg2lDSB5ECJXbNE}!R^%wKGU2(;M3^+g1X7OVnB3py4Xbv z6lz3v8j+&`BZLBCNg@g&!!bmpAyK>lXWlMy<;e1M@>~KKcqW9#k*zKT9o3jZp2(FU z8rdt3LvYrrtM3|6maV|OTfibi1xC=)vkLT7%U2_yy9#`8b(VAT-)s5P&V`=`uYvYj z5Icz}F(Q$NMP-JHH2_#(HG9eho7hyb2>@du9D@K9vqW)L*KM_;sRjCQl%b+ffFvR^ zk^!`g18me4E1D2Ts4}F#D+!icGem_($R*nU{x;OIs~2g>v+YJZ0uK8-$D-QyUP_+0{9puJ;BwJh@m)bLOnnn$TVAzPBHz0op9#B7n3wW4Sn4v4J){wi z%^b9u8GAvLHh9QgskUusduV#@2Px3gr73;8R{1l?>x{FgxpJDK_u?XdVbVey7X{UCq29sBv3$sPJz7^T2KugBVap#tsdt*PDR?~0Iday_A$neQL<8A74G2Q?C z_#V2GIGvTUkKcph!){A@iq*E z0^?ED5talb_#Nn>m#qLqJ!jP)PZJa028G{azoMX6u5x)&>26Af;L<#j(nkJ4^OR+x>|wR`Bhjw�d-S3+ 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 Nc%ID2hXEku{{Sygcas1B diff --git a/Docs/Books/algor.txt b/Docs/Books/algor.txt deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/Docs/Books/dbi.eps b/Docs/Books/dbi.eps deleted file mode 100644 index e636ad315e7..00000000000 --- a/Docs/Books/dbi.eps +++ /dev/null @@ -1,1212 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: GIMP PostScript file plugin V 1.06 by Peter Kirchgessner -%%Title: /opt/local/x1/work/bk/mysql/Docs/Books/dbi.eps -%%CreationDate: Sun Dec 31 14:29:02 2000 -%%DocumentData: Clean7Bit -%%LanguageLevel: 2 -%%Pages: 1 -%%BoundingBox: 14 14 296 383 -%%EndComments -%%BeginPreview: 100 131 1 131 -% fffffffffffffffffffffffff0 -% 80aaaaaaaaaaaaaaaaaaaaa810 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000004401012000000000010 -% 80000000000240200000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80a00000000400000000000010 -% 800552a4251100000000000010 -% 80900411110100000000000010 -% 80000000000000000000000010 -% 80012000020800000000000010 -% 81fedffffdf7fffffffffff810 -% 8112a4924a4a24444444444810 -% 80ed5b6db58adbbbbbbbbbb010 -% 81001555554aa000a000a02810 -% 81638aaaaa8558745c68a85010 -% 81424555554aa8aa2a2a50d410 -% 8152a555554ad4aa145428a810 -% 8142c286a88aa8ab8a5450a810 -% 8162a471484aac548a5458a810 -% 81428491048aa8ab0a01a8a810 -% 815008e14b4ad4ad4a2850a810 -% 8142b0094a8aa855445458a810 -% 8162a9d68aa554aa8a5428a810 -% 8142a92aca8aa8aa8a5728a810 -% 8152a8d54acad4ad145428a810 -% 8142a8aa8a855455165528a810 -% 8162d4514a8aa8542a5450a810 -% 8140aa068282a000d004a72810 -% 8155558935355b6f592f595010 -% 815556b6d5d56a92aadbb75810 -% 8155aaaaaa55556d555faaa810 -% 8155555555aaaaaaaadbeda810 -% 800000000000000000ffdac010 -% 800000000000000001fe754010 -% 800000000000000003dda56010 -% 800000000000000007f9bfe010 -% 80000000000000000fab6f6010 -% 80000000000000001fdb74a010 -% 8000000000000007fedd577010 -% 800000000000003fbfe8aeb010 -% 8000005a954000ff7faebfb810 -% 80000ffffffffffdefd9053810 -% 80001effffffffd52f697b5010 -% 80007bf7ffffffadffdc4fa010 -% 8000f56ab6ddf77b55abda4010 -% 8003b56b6dbbdfd7aff4a10010 -% 8007d66ddbaebcb5b7b1800010 -% 800ea9b6bed7efaedde3000010 -% 801f7abdeada5adb56d2000010 -% 801dca6db555bdfd7aa6000010 -% 803eb6ebeb77eb4eade4000010 -% 803b553dabac9bbb2a68000010 -% 807f4b6bf8d377abbac0000010 -% 807da8976fadd6b7d550000010 -% 80fe9b4af976b7766048000010 -% 80fba4a3bf555bebea90000010 -% 81ff6d54fbfb2bbf4a50000010 -% 81fbe4c15d56ebeaa2a0000010 -% 83ff5a543ffd19df6d00000010 -% 83ffbaa516b3a7bc8b30000010 -% 83f572bd4bfef97aeea0000010 -% 83af7b384eeaabf73c80000010 -% 87a5b97f0055b76af300000010 -% 85a7de7ff29f4ee9f400000010 -% 87e3b57ff925dd5b4100000010 -% 8d23ec7abe1254a76f00000010 -% 876352ef55e445d4ff00000010 -% 8b43fcdce13f5ef7fe00000010 -% 8ac1e5f6a00031b4ea00000010 -% 8f43a935600005dafc00000010 -% 8b435a7a400002b4f600000010 -% 8ac3ec246000036c6900000010 -% 8d235438800002ba5c00000010 -% 8fc3f012c00002ac5a00000010 -% 8563a82a800001d82200000010 -% 8aa36034800001f47600000010 -% 86a3d029000001583000000010 -% 85e3e026000001582e00000010 -% 8797c058000000f43400000010 -% 84afc02ad00001343100000010 -% 83a780c4880000d83500000010 -% 836b805a080000d82a00000010 -% 817380ec080000a41000000010 -% 81688075580000b43500000010 -% 80b62051a80000281900000010 -% 804d486ef00000e81400000010 -% 803dc58e600000241b00000010 -% 8005b96fc00000c80c00000010 -% 801b9b6f800000a80d00000010 -% 801edb7e800000540480000010 -% 801ebbeb000000140400000010 -% 801c055e800000580550000010 -% 801600057000002c02a8000010 -% 801500028c0000240324000010 -% 80160002b40000160294000010 -% 80140001ac0000118174000010 -% 80134000200000154000000010 -% 801540000000000ab000000010 -% 801520000000000a5000000010 -% 8015400000000004e000000010 -% 800fc000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80810000000000000000000010 -% 815a6900000000000000000010 -% 804a4100000000000000000010 -% 81022800000000281080120010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% fffffffffffffffffffffffff0 -%%EndPreview -%%BeginProlog -% Use own dictionary to avoid conflicts -5 dict begin -%%EndProlog -%%Page: 1 1 -% Translate for offset -14.400000 14.400000 translate -% Translate to begin of first scanline -0.000000 368.503937 translate -281.300715 -368.503937 scale -% Variable to keep one line of raster data -/scanline 100 3 mul string def -% Image geometry -100 131 8 -% Transformation matrix -[ 100 0 0 131 0 0 ] -{ currentfile scanline readhexstring pop } false 3 -colorimage -020202020202020202020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202 -020202ffffffffffffffffffffffffffffffd9eaec7dd6e509a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffd9eaecd9eaecd9eaecd9eaecd9eaec -d9eaecd9eaecffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffd9eaecd9eaecffffffffffffffffffffffffffffffd9eaecd9eaecffffffffffffffffff -ffffffffffffd9eaecc7c7c9ffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -d9eaecffffffffffffd9eaecffffffffffffffffffffffffd9eaecffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffc7c7c9c7c7c99b9b9fc7c7c9afafb2c7c7c99b9b9fc7c7c9afafb2c7c7c9c7c7c9c7c7c9 -afafb2d9eaecc7c7c9c7c7c9afafb2c7c7c9afafb2afafb2c7c7c9c7c7c9afafb2c7c7c99b9b9f -afafb2c7c7c99b9b9fafafb2d9eaecafafb2c7c7c9d9eaecffffffc7c7c9d9eaecd9eaecc7c7c9 -afafb2c7c7c9ffffffc7c7c9c7c7c9c7c7c9d9eaecafafb2ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffd9eaecffffffd9eaecc7c7c9c7c7c9d9eaecc7c7c9d9eaecd9eaecd9eaecd9eaecc7c7c9 -d9eaecffffffd9eaecffffffd9eaecffffffc7c7c9afafb2d9eaecd9eaecafafb2ffffffd9eaec -c7c7c9d9eaecd9eaecc7c7c9d9eaecd9eaecafafb2afafb2ffffffc7c7c9d9eaecd9eaecd9eaec -d9eaecd9eaecffffffd9eaecd9eaecd9eaecd9eaecc7c7c9ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffc7c7c9d9eaecafafb2ffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffd9eaecffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffff9b9b9fffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffff8a8a8ed9eaec7a7b80c7c7c9afafb2 -c7c7c9d9eaecd9eaecc7c7c9c7c7c9ffffffafafb2c7c7c9d9eaecc7c7c9c7c7c9d9eaecafafb2 -d9eaecc7c7c9c7c7c9c7c7c9c7c7c9d9eaecc7c7c9d9eaecafafb2d9eaecd9eaecafafb2c7c7c9 -d9eaecc7c7c9ffffffffffff9b9b9fd9eaec9b9b9fafafb2d9eaecd9eaecc7c7c9ffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffd9eaec8a8a8ed9eaecd9eaec9b9b9fd9eaec -8a8a8effffff6c6c71c7c7c9afafb2d9eaec9b9b9fc7c7c9c7c7c9afafb2afafb2afafb2afafb2 -afafb2afafb2c7c7c96c6c719b9b9fc7c7c9c7c7c9d9eaecafafb29b9b9fc7c7c9afafb2c7c7c9 -afafb29b9b9fffffffffffff9b9b9f9b9b9fd9eaecafafb26c6c71d9eaecc7c7c9ffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffafafb2afafb2ffffffd9eaecafafb2ffffff -c7c7c9d9eaecc7c7c99b9b9fc7c7c9c7c7c9d9eaecafafb29b9b9fafafb2c7c7c99b9b9fc7c7c9 -c7c7c98a8a8ed9eaecafafb2c7c7c9c7c7c9afafb2c7c7c9c7c7c99b9b9fafafb2afafb2c7c7c9 -8a8a8ed9eaecffffffc7c7c9afafb2afafb2c7c7c9c7c7c98a8a8ec7c7c9ffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffc7c7c9ffffffc7c7c9ffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafafb2 -d9eaecc7c7c9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffff7dd6e57dd6e57dd6e57dd6e57dd6e57dd6e5 -7dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e5 -7dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e5 -7dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e5 -7dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e5 -7dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e5 -7dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e57dd6e5 -7dd6e57dd6e5d9eaecffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be7dd6e5d9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be7dd6e57dd6e57dd6e57dd6e5 -7dd6e57dd6e57dd6e57dd6e57dd6e57dd6e509a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -7dd6e57dd6e57dd6e57dd6e5d9eaec7dd6e57dd6e57dd6e57dd6e57dd6e57dd6e509a4be09a4be -09a4be09a4be09a4be09a4be7dd6e5d9eaecd9eaecffffffd9eaec7dd6e57dd6e57dd6e57dd6e5 -7dd6e509a4be09a4be09a4be09a4be09a4be7dd6e57dd6e57dd6e57dd6e57dd6e57dd6e509a4be -09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4bed9eaecffffff -d9eaec09a4be09a4be09a4be7dd6e5ffffffd9eaec09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be7dd6e5ffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be7dd6e5ffffffffffff7dd6e509a4be09a4be09a4be09a4be7dd6e5d9eaecd9eaec7dd6e5 -09a4be09a4be09a4be09a4be09a4be7dd6e5ffffffd9eaec09a4be09a4be09a4be09a4be7dd6e5 -ffffffd9eaec09a4be09a4be09a4be09a4be7dd6e57dd6e5ffffffd9eaec7dd6e509a4be09a4be -09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be7dd6e5ffffff -7dd6e509a4be09a4be09a4be09a4be7dd6e5ffffff7dd6e509a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be7dd6e5ffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be7dd6e5ffffff -7dd6e509a4be09a4be09a4be09a4be09a4beffffffd9eaec09a4be09a4be09a4be09a4be09a4be -7dd6e5ffffffd9eaec09a4be09a4be09a4be09a4be7dd6e5ffffff7dd6e509a4be09a4be09a4be -09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be7dd6e5ffffff -7dd6e509a4be09a4be09a4be09a4be09a4beffffffd9eaec09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be7dd6e5ffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be7dd6e5 -ffffff7dd6e509a4be09a4be09a4be09a4beffffffd9eaec09a4be09a4be09a4be09a4be09a4be -09a4beffffffffffff09a4be09a4be09a4be09a4be7dd6e5ffffffd9eaec09a4be09a4be09a4be -09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be7dd6e5ffffff -7dd6e509a4be09a4be09a4be09a4be09a4bed9eaecffffff7dd6e509a4be09a4be09a4be7dd6e5 -7dd6e57dd6e57dd6e509a4be09a4be09a4be09a4be09a4be09a4be7dd6e509a4be09a4be7dd6e5 -7dd6e509a4be09a4be7dd6e5ffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -d9eaecffffff7dd6e509a4be09a4be09a4beffffffd9eaec09a4be09a4be09a4be09a4be09a4be -09a4beffffffffffff09a4be09a4be09a4be09a4be7dd6e5ffffffd9eaec09a4be09a4be09a4be -09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be7dd6e5ffffff -7dd6e509a4be09a4be09a4be09a4be09a4beffffffd9eaec09a4be09a4be7dd6e5d9eaec09a4be -09a4be09a4be7dd6e5ffffff09a4be09a4be09a4be09a4be7dd6e5ffffff09a4be7dd6e5ffffff -ffffff7dd6e509a4be7dd6e5ffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -7dd6e5ffffff7dd6e509a4be09a4be09a4beffffff7dd6e509a4be09a4be09a4be09a4be09a4be -7dd6e5ffffff7dd6e509a4be09a4be09a4be09a4be7dd6e5ffffffd9eaec09a4be09a4be09a4be -09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be7dd6e5ffffff -7dd6e509a4be09a4be09a4be09a4be7dd6e5ffffff7dd6e509a4bed9eaec7dd6e509a4be09a4be -09a4be09a4be09a4be7dd6e5ffffff09a4be09a4be7dd6e5ffffffffffff7dd6e509a4be7dd6e5 -7dd6e509a4be09a4be7dd6e5ffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -7dd6e5ffffffd9eaec09a4be09a4be09a4beffffffffffff7dd6e57dd6e57dd6e57dd6e5d9eaec -d9eaec09a4be09a4be09a4be09a4be09a4be09a4be7dd6e5ffffffd9eaec09a4be09a4be09a4be -09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be7dd6e5ffffff -d9eaec7dd6e57dd6e57dd6e57dd6e5ffffff7dd6e509a4be7dd6e5ffffff7dd6e509a4be09a4be -09a4be09a4be7dd6e5d9eaecffffff09a4be09a4be09a4be7dd6e5ffffff09a4be09a4be09a4be -09a4be09a4be09a4be7dd6e5ffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4beffffffffffff09a4be09a4be09a4beffffffd9eaec7dd6e57dd6e57dd6e57dd6e5d9eaec -ffffff7dd6e509a4be09a4be09a4be09a4be09a4be7dd6e5ffffffd9eaec09a4be09a4be09a4be -09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be7dd6e5ffffff -7dd6e509a4be7dd6e57dd6e57dd6e57dd6e509a4be09a4bed9eaecffffff7dd6e57dd6e57dd6e5 -7dd6e57dd6e57dd6e57dd6e57dd6e509a4be09a4be09a4be7dd6e5ffffff09a4be09a4be09a4be -09a4be09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4beffffffffffff09a4be09a4be09a4beffffff7dd6e509a4be09a4be09a4be09a4be09a4be -7dd6e5ffffffd9eaec09a4be09a4be09a4be09a4be7dd6e5ffffffd9eaec09a4be09a4be09a4be -09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be7dd6e5ffffff -7dd6e509a4be09a4be09a4be09a4be09a4be09a4be09a4bed9eaecd9eaec09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be7dd6e5ffffff09a4be09a4be09a4be -09a4be09a4be09a4be7dd6e5ffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -7dd6e5ffffffd9eaec09a4be09a4be09a4beffffff7dd6e509a4be09a4be09a4be09a4be09a4be -09a4be7dd6e5ffffff7dd6e509a4be09a4be09a4be7dd6e5ffffffd9eaec09a4be09a4be09a4be -09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be7dd6e5ffffff -7dd6e509a4be09a4be09a4be09a4be09a4be09a4be09a4bed9eaecffffff09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be7dd6e5ffffff09a4be09a4be09a4be -09a4be09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -7dd6e5ffffff7dd6e509a4be09a4be09a4beffffff7dd6e509a4be09a4be09a4be09a4be09a4be -09a4be09a4beffffffd9eaec09a4be09a4be09a4be7dd6e5ffffff7dd6e509a4be09a4be09a4be -09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be7dd6e5ffffff -7dd6e509a4be09a4be09a4be09a4be09a4be09a4be09a4be7dd6e5ffffff7dd6e509a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be7dd6e5ffffff09a4be09a4be09a4be -09a4be09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -ffffffd9eaec09a4be09a4be09a4be09a4beffffff7dd6e509a4be09a4be09a4be09a4be09a4be -09a4be09a4beffffffd9eaec09a4be09a4be09a4be7dd6e5ffffff7dd6e509a4be09a4be09a4be -09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be7dd6e5ffffff -7dd6e509a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4beffffffd9eaec09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be7dd6e5ffffff09a4be09a4be09a4be -09a4be09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4bed9eaec -ffffff7dd6e509a4be09a4be09a4be09a4beffffff7dd6e509a4be09a4be09a4be09a4be09a4be -09a4be7dd6e5ffffff7dd6e509a4be09a4be09a4be7dd6e5ffffff7dd6e509a4be09a4be09a4be -09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be7dd6e5ffffff -7dd6e509a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be7dd6e5ffffffd9eaec09a4be -09a4be09a4be09a4be7dd6e57dd6e509a4be09a4be09a4be7dd6e5ffffff09a4be09a4be09a4be -09a4be09a4be09a4bed9eaecffffff09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4bed9eaecffffff7dd6e509a4be09a4be09a4be09a4be09a4be09a4bed9eaecffffff -7dd6e509a4be09a4be09a4be09a4be09a4beffffffd9eaec09a4be09a4be09a4be09a4be09a4be -7dd6e5ffffffffffff09a4be09a4be09a4be09a4be7dd6e5d9eaec7dd6e509a4be09a4be09a4be -09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be7dd6e5d9eaecffffff -d9eaec7dd6e57dd6e509a4be09a4be09a4be09a4be09a4be09a4be09a4be7dd6e5d9eaecffffff -ffffffd9eaecd9eaec7dd6e509a4be09a4be09a4be7dd6e5d9eaecffffffd9eaec7dd6e509a4be -09a4be09a4be7dd6e5d9eaecffffffd9eaec7dd6e509a4be09a4be09a4be09a4be09a4be09a4be -7dd6e57dd6e5ffffffffffffffffff7dd6e57dd6e57dd6e57dd6e57dd6e5d9eaec7dd6e509a4be -09a4be09a4be09a4be09a4be7dd6e5d9eaecffffffffffff7dd6e57dd6e57dd6e57dd6e509a4be -c7c7c9d9eaec09a4be09a4be09a4be09a4be7dd6e59b9b9f6c6c716c6c717dd6e57dd6e509a4be -09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be7dd6e509a4be09a4be -09a4be7dd6e509a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -7dd6e57dd6e509a4be09a4be09a4be09a4be09a4be7dd6e509a4be09a4be7dd6e509a4be09a4be -09a4be09a4be7dd6e509a4be09a4be7dd6e509a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be7dd6e509a4be09a4be09a4be7dd6e509a4be7dd6e57dd6e509a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be7dd6e57dd6e509a4be09a4be7dd6e57dd6e57dd6e56c6c71444348 -1f1f2209a4be09a4be09a4be09a4be09a4be7a7b805d5e62afafb25d5e629b9b9f09a4be09a4be -09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be0202027a7b80 -4443480202025050546c6c714443485050545d5e6250505450505434353909a4be09a4be09a4be -09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be3435391f1f227a7b80 -3435390202023435398a8a8e6c6c718a8a8e6c6c717a7b805d5e626c6c7109a4be09a4be09a4be -09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffd9eaec09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be -09a4be09a4be09a4be09a4be09a4be09a4be09a4be09a4be5d5e626c6c711f1f221f1f225d5e62 -1f1f221f1f220202021f1f226c6c716c6c718a8a8e5050547a7b805d5e6244434809a4be09a4be -09a4be09a4be7dd6e5ffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffd9eaecd9eaecd9eaecd9eaecd9eaecd9eaecd9eaecd9eaec -d9eaecd9eaecd9eaecd9eaecd9eaecd9eaecd9eaecd9eaecd9eaecd9eaecd9eaecd9eaecd9eaec -d9eaecd9eaecd9eaecd9eaecd9eaecd9eaecd9eaecd9eaecd9eaecd9eaecd9eaecd9eaecd9eaec -d9eaecd9eaecd9eaecd9eaecd9eaecffffffd9eaec5050544443483435391f1f221f1f221f1f22 -1f1f223435391f1f225050545d5e625050545050546c6c717a7b808a8a8e3435395d5e62afafb2 -d9eaecd9eaecffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffd9eaec3435391f1f221f1f224443483435391f1f22020202 -5d5e625d5e628a8a8e6c6c715d5e624443487a7b808a8a8e7a7b807a7b808a8a8e5050547a7b80 -d9eaecffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffd9eaec5050543435394443483435395d5e623435391f1f221f1f22 -9b9b9f8a8a8e5050545d5e626c6c716c6c719b9b9f6c6c718a8a8e9b9b9f9b9b9f505054343539 -9b9b9fffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffd9eaec5d5e621f1f221f1f223435393435395050545050540202027a7b80 -c7c7c94443485050548a8a8e7a7b805d5e627a7b805d5e623435393435393435391f1f22020202 -afafb2ffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffff7a7b803435393435391f1f223435394443486c6c716c6c713435399b9b9f -6c6c715050547a7b808a8a8e3435395050543435393435393435393435396c6c713435391f1f22 -c7c7c9ffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffd9eaec6c6c713435393435391f1f223435391f1f223435396c6c714443484443488a8a8e -5050545050548a8a8e3435391f1f226c6c715d5e623435397a7b807a7b808a8a8e6c6c71343539 -8a8a8effffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffc7c7c9c7c7c98a8a8e505054444348343539 -3435391f1f221f1f221f1f221f1f221f1f223435391f1f224443487a7b807a7b804443486c6c71 -7a7b807a7b807a7b806c6c715050545d5e627a7b803435393435398a8a8e8a8a8e7a7b80343539 -1f1f22ffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffafafb26c6c711f1f221f1f221f1f22343539343539343539 -4443484443483435391f1f221f1f220202023435393435393435396c6c716c6c715d5e625d5e62 -afafb29b9b9f8a8a8e7a7b809b9b9f8a8a8e1f1f223435394443489b9b9f3435398a8a8e444348 -1f1f229b9b9fffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffd9eaecd9eaecc7c7c9afafb29b9b9f -9b9b9f6c6c716c6c717a7b807a7b808a8a8e9b9b9f9b9b9f9b9b9f9b9b9f9b9b9f8a8a8e8a8a8e -8a8a8e9b9b9f9b9b9fafafb2afafb2afafb2afafb2c7c7c9c7c7c9d9eaecd9eaecd9eaecffffff -ffffffffffffd9eaecafafb24443481f1f223435391f1f223435394443483435391f1f225d5e62 -5050543435394443481f1f221f1f220202021f1f224443485d5e627a7b807a7b805050546c6c71 -7a7b809b9b9f7a7b809b9b9f6c6c715d5e624443481f1f225050544443485050548a8a8e343539 -343539343539d9eaecffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffd9eaec7a7b801f1f22020202343539020202020202 -1f1f221f1f220202020202021f1f220202021f1f220202020202020202020202021f1f22020202 -0202020202020202020202020202020202020202020202020202020202020202021f1f22343539 -4443485050541f1f220202023435391f1f223435394443483435391f1f225d5e624443485d5e62 -5050544443487a7b804443481f1f221f1f223435394443483435395d5e626c6c711f1f228a8a8e -8a8a8e8a8a8eafafb29b9b9f9b9b9f9b9b9f7a7b804443485d5e621f1f229b9b9fafafb2343539 -1f1f22505054ffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffff9b9b9f1f1f223435394443484443485d5e62444348343539 -1f1f221f1f223435391f1f221f1f221f1f221f1f221f1f221f1f221f1f221f1f223435391f1f22 -1f1f221f1f220202021f1f221f1f221f1f220202020202021f1f221f1f220202021f1f22020202 -0202021f1f220202021f1f224443483435397a7b805050546c6c715d5e626c6c71505054505054 -7a7b806c6c716c6c713435391f1f221f1f221f1f225d5e625050546c6c717a7b803435398a8a8e -c7c7c97a7b80afafb29b9b9f8a8a8e7a7b806c6c718a8a8e7a7b805050549b9b9fafafb29b9b9f -505054d9eaecffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffc7c7c95050541f1f223435394443484443485050541f1f225d5e62343539 -1f1f223435394443483435395050544443480202024443481f1f225050543435391f1f22343539 -1f1f224443480202021f1f223435393435393435391f1f223435390202021f1f224443481f1f22 -4443483435390202023435393435397a7b805d5e628a8a8e4443481f1f228a8a8e8a8a8e444348 -5d5e621f1f223435395d5e624443481f1f220202024443485050546c6c718a8a8e4443486c6c71 -9b9b9fc7c7c99b9b9f7a7b807a7b806c6c715d5e625050544443481f1f225050547a7b807a7b80 -afafb2ffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff8a8a8e3435391f1f223435395050545050546c6c717a7b805d5e625d5e625d5e62 -3435395050545050548a8a8e7a7b806c6c71505054505054505054343539444348444348444348 -5d5e624443483435395050544443480202024443484443483435391f1f224443483435391f1f22 -5d5e624443480202024443485d5e627a7b804443486c6c714443486c6c715d5e623435395d5e62 -7a7b807a7b805d5e627a7b805d5e623435391f1f223435395050547a7b807a7b803435398a8a8e -8a8a8e6c6c716c6c715d5e626c6c715050546c6c714443481f1f225d5e629b9b9f5d5e628a8a8e -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -afafb23435393435396c6c715d5e625050544443487a7b805d5e628a8a8e9b9b9f6c6c716c6c71 -3435398a8a8e4443488a8a8e5d5e625d5e627a7b805050546c6c715d5e62505054444348505054 -4443480202026c6c713435391f1f225d5e625d5e624443481f1f22444348343539444348343539 -1f1f221f1f221f1f224443485050545050546c6c715d5e627a7b806c6c715d5e62020202505054 -6c6c714443489b9b9f4443481f1f224443483435391f1f225d5e624443485d5e626c6c718a8a8e -afafb28a8a8e3435395d5e628a8a8eafafb2c7c7c9c7c7c9d9eaecafafb2c7c7c9c7c7c9ffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff9b9b9f -1f1f223435394443481f1f224443487a7b807a7b807a7b801f1f227a7b807a7b80afafb27a7b80 -4443486c6c718a8a8e5d5e628a8a8e6c6c715050543435395050547a7b805d5e625d5e625d5e62 -5050545050548a8a8e6c6c716c6c714443481f1f225d5e625d5e625050545050545050545d5e62 -3435390202028a8a8e7a7b805d5e625d5e625d5e623435396c6c713435397a7b805d5e62444348 -6c6c711f1f226c6c716c6c715050545050540202020202028a8a8e5050544443488a8a8ec7c7c9 -9b9b9f8a8a8e505054d9eaecffffffffffffd9eaecffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffafafb2343539 -3435394443485d5e623435396c6c716c6c716c6c717a7b808a8a8e9b9b9f8a8a8e4443487a7b80 -6c6c714443485d5e620202026c6c716c6c716c6c715050543435391f1f22444348343539444348 -8a8a8e5d5e621f1f227a7b806c6c717a7b806c6c714443484443485d5e621f1f22444348505054 -3435394443486c6c713435395050546c6c715d5e626c6c716c6c715d5e625d5e625d5e62444348 -4443487a7b805050543435396c6c716c6c715050541f1f22444348343539505054d9eaecc7c7c9 -6c6c71343539c7c7c9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffd9eaec444348343539 -4443481f1f225d5e626c6c716c6c711f1f226c6c714443488a8a8e8a8a8e7a7b807a7b806c6c71 -6c6c711f1f225050545d5e625d5e626c6c713435395050546c6c715050546c6c71505054444348 -9b9b9f4443483435397a7b805d5e624443486c6c716c6c715d5e628a8a8e7a7b808a8a8e6c6c71 -3435395d5e625d5e624443485050545d5e626c6c713435393435397a7b803435391f1f229b9b9f -8a8a8e8a8a8e6c6c716c6c71343539343539afafb23435391f1f226c6c716c6c71d9eaecc7c7c9 -5050547a7b80ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffff9b9b9f1f1f22343539 -1f1f226c6c715d5e621f1f226c6c715050548a8a8e8a8a8e6c6c719b9b9f7a7b80c7c7c9444348 -4443486c6c715d5e623435397a7b801f1f224443486c6c714443486c6c717a7b808a8a8e9b9b9f -9b9b9f7a7b807a7b806c6c718a8a8e8a8a8e6c6c717a7b807a7b805d5e625d5e62505054444348 -1f1f226c6c717a7b806c6c715050543435396c6c715d5e624443485d5e626c6c717a7b806c6c71 -6c6c711f1f225050544443487a7b807a7b808a8a8e5d5e625d5e62505054afafb2c7c7c9afafb2 -5d5e62d9eaecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffff4443481f1f22343539 -3435395d5e626c6c716c6c716c6c719b9b9f5d5e628a8a8e4443486c6c716c6c71afafb25d5e62 -3435396c6c717a7b806c6c716c6c711f1f225050543435391f1f227a7b805d5e626c6c717a7b80 -3435398a8a8e7a7b800202025d5e628a8a8e0202023435396c6c710202024443486c6c717a7b80 -5d5e625d5e621f1f224443485d5e626c6c716c6c716c6c713435393435395d5e627a7b809b9b9f -7a7b803435397a7b803435395050548a8a8e5050545d5e621f1f22343539afafb2c7c7c97a7b80 -afafb2ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffc7c7c91f1f223435391f1f22 -5d5e623435393435396c6c716c6c719b9b9f3435398a8a8e8a8a8e6c6c717a7b809b9b9f7a7b80 -5050545d5e624443485d5e625d5e625050543435394443485050547a7b809b9b9f9b9b9f7a7b80 -1f1f225d5e625d5e626c6c715d5e626c6c716c6c717a7b807a7b807a7b806c6c717a7b80444348 -5d5e628a8a8e5050543435396c6c718a8a8e5d5e625050546c6c715d5e623435396c6c718a8a8e -9b9b9f5d5e628a8a8e5050549b9b9f5d5e62c7c7c96c6c711f1f226c6c71afafb27a7b809b9b9f -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffff5d5e620202023435391f1f22 -4443484443485050549b9b9f7a7b808a8a8eafafb26c6c717a7b808a8a8e4443489b9b9f7a7b80 -5050546c6c716c6c715050543435395050543435395050544443485d5e621f1f226c6c719b9b9f -9b9b9f7a7b803435399b9b9f6c6c716c6c718a8a8e6c6c711f1f227a7b805d5e62505054343539 -5d5e627a7b805d5e621f1f221f1f228a8a8e7a7b806c6c717a7b805d5e625d5e621f1f226c6c71 -8a8a8e5050546c6c711f1f22afafb25d5e629b9b9f9b9b9f5050549b9b9fd9eaec8a8a8ed9eaec -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffc7c7c9020202020202444348444348 -0202025d5e626c6c715050547a7b807a7b809b9b9f8a8a8e9b9b9f9b9b9f9b9b9f9b9b9f6c6c71 -8a8a8e7a7b806c6c716c6c713435395050544443481f1f224443487a7b804443486c6c716c6c71 -5d5e624443488a8a8e5d5e626c6c711f1f228a8a8e9b9b9f5d5e625d5e625d5e628a8a8e6c6c71 -7a7b804443480202025050545d5e628a8a8e5d5e626c6c715050545050545d5e62444348343539 -3435398a8a8e7a7b808a8a8e8a8a8eafafb28a8a8eafafb2505054afafb29b9b9f8a8a8effffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffff5050540202020202021f1f221f1f22 -3435395d5e625050541f1f229b9b9fc7c7c97a7b805d5e629b9b9f5050549b9b9f5d5e626c6c71 -afafb2d9eaec7a7b807a7b803435395d5e625050543435393435395d5e624443485d5e627a7b80 -5d5e626c6c717a7b801f1f227a7b808a8a8e5050546c6c717a7b806c6c715050545050545d5e62 -6c6c718a8a8e1f1f225050546c6c716c6c715050543435397a7b803435395d5e628a8a8e6c6c71 -5d5e625d5e626c6c719b9b9fafafb2afafb2afafb2c7c7c97a7b80afafb29b9b9f7a7b80ffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffc7c7c90202020202021f1f22343539444348 -4443480202025050545d5e627a7b80afafb2afafb28a8a8e7a7b809b9b9f8a8a8e9b9b9f8a8a8e -9b9b9fafafb2afafb2afafb28a8a8e5d5e625050546c6c711f1f221f1f223435393435396c6c71 -5d5e626c6c715d5e627a7b805d5e629b9b9f4443485d5e627a7b809b9b9f8a8a8e8a8a8e343539 -3435397a7b800202024443484443484443483435394443484443488a8a8e3435390202027a7b80 -4443483435397a7b801f1f22c7c7c95d5e62c7c7c9afafb29b9b9fc7c7c99b9b9fafafb2ffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffd9eaec4443480202021f1f220202023435391f1f22 -4443481f1f225050546c6c71505054505054c7c7c99b9b9f3435398a8a8e7a7b808a8a8e505054 -afafb27a7b809b9b9f8a8a8ec7c7c9afafb25050545d5e623435393435393435396c6c716c6c71 -1f1f225d5e623435395d5e620202025d5e627a7b807a7b804443489b9b9f9b9b9f8a8a8e9b9b9f -7a7b807a7b803435391f1f225050544443481f1f227a7b806c6c716c6c715d5e623435397a7b80 -5d5e625d5e62afafb29b9b9fc7c7c98a8a8ec7c7c98a8a8e7a7b80afafb28a8a8eafafb2ffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffafafb21f1f221f1f22020202020202343539343539 -5d5e624443481f1f225050544443484443489b9b9f8a8a8e7a7b80afafb2afafb25d5e62343539 -afafb2c7c7c9afafb2afafb2c7c7c99b9b9f9b9b9f5d5e625d5e625d5e623435395050545d5e62 -3435395050545d5e625050545050548a8a8e3435394443485d5e628a8a8e5050545050545d5e62 -7a7b809b9b9f5050541f1f224443481f1f225050545d5e621f1f225050545050546c6c71505054 -6c6c718a8a8eafafb29b9b9fc7c7c96c6c719b9b9f5d5e629b9b9f8a8a8ec7c7c9afafb2ffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffff8a8a8e0202021f1f221f1f220202021f1f221f1f22 -3435391f1f223435395050546c6c715050546c6c716c6c71afafb26c6c719b9b9fafafb26c6c71 -afafb2afafb29b9b9fafafb2c7c7c9c7c7c9afafb2afafb25050543435393435391f1f22444348 -5050543435395d5e620202023435396c6c715050545d5e626c6c718a8a8e9b9b9fafafb27a7b80 -343539afafb29b9b9f1f1f221f1f223435397a7b806c6c714443485d5e620202027a7b806c6c71 -8a8a8e5d5e628a8a8e6c6c717a7b808a8a8e5050548a8a8eafafb2c7c7c99b9b9fc7c7c9ffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffff5050540202021f1f221f1f221f1f221f1f22343539 -1f1f221f1f223435394443487a7b801f1f225d5e623435399b9b9f5050547a7b806c6c718a8a8e -7a7b809b9b9f9b9b9f7a7b809b9b9fafafb28a8a8ec7c7c9c7c7c97a7b80343539444348444348 -4443485050545050545050545050545d5e627a7b807a7b806c6c715d5e628a8a8e4443487a7b80 -9b9b9f6c6c718a8a8e1f1f223435398a8a8e5050545050541f1f223435395d5e628a8a8e6c6c71 -6c6c71c7c7c9afafb29b9b9f6c6c711f1f22444348afafb2d9eaec8a8a8e7a7b80ffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffd9eaec1f1f221f1f22444348343539343539343539444348 -4443485d5e625050545d5e625050543435395050548a8a8eafafb28a8a8ec7c7c98a8a8e7a7b80 -7a7b805d5e623435395d5e627a7b808a8a8e7a7b80afafb2afafb29b9b9f5d5e627a7b80343539 -1f1f225050540202023435395050541f1f226c6c711f1f227a7b801f1f225050541f1f225d5e62 -5050546c6c718a8a8e3435395d5e625d5e624443483435393435395d5e627a7b809b9b9f5d5e62 -4443485d5e628a8a8e3435394443485050548a8a8e5d5e629b9b9f9b9b9fc7c7c9ffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffff9b9b9f0202020202024443484443483435398a8a8e9b9b9f -3435393435393435398a8a8e4443483435391f1f225d5e629b9b9f6c6c715050549b9b9f9b9b9f -4443481f1f22343539505054afafb2afafb2afafb28a8a8eafafb2c7c7c97a7b806c6c71505054 -7a7b806c6c714443484443487a7b806c6c716c6c715050547a7b806c6c718a8a8e7a7b808a8a8e -5d5e628a8a8e3435391f1f226c6c714443481f1f221f1f225050543435395050545050548a8a8e -8a8a8e3435396c6c713435394443486c6c71c7c7c99b9b9fc7c7c99b9b9fd9eaecffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffff5d5e624443483435394443487a7b804443489b9b9fd9eaec -1f1f226c6c711f1f227a7b808a8a8e6c6c713435393435396c6c71afafb25d5e62c7c7c98a8a8e -1f1f220202021f1f220202023435398a8a8e9b9b9fafafb2c7c7c9d9eaecafafb28a8a8eafafb2 -afafb29b9b9f6c6c717a7b805050546c6c715d5e628a8a8e3435397a7b806c6c718a8a8e505054 -8a8a8e5d5e620202024443486c6c713435394443485d5e629b9b9f7a7b807a7b809b9b9f343539 -3435395d5e621f1f22505054afafb28a8a8e7a7b80c7c7c98a8a8ec7c7c9ffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffd9eaec5050545050540202024443487a7b80444348afafb2ffffff -4443483435393435391f1f225050545d5e625d5e623435393435398a8a8e5d5e62c7c7c95d5e62 -0202021f1f223435393435391f1f221f1f221f1f221f1f225d5e626c6c71d9eaecc7c7c9c7c7c9 -8a8a8e7a7b808a8a8e9b9b9f6c6c715d5e625050545050543435398a8a8e8a8a8e8a8a8e7a7b80 -5050540202026c6c718a8a8e4443483435393435396c6c716c6c719b9b9f9b9b9f5d5e62343539 -5050541f1f224443487a7b80afafb2c7c7c9c7c7c98a8a8ec7c7c9ffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffff9b9b9f1f1f226c6c714443485050544443481f1f22c7c7c9ffffff -9b9b9f0202024443484443485d5e626c6c715d5e623435396c6c716c6c715d5e62afafb2444348 -1f1f223435391f1f223435393435391f1f223435394443481f1f223435395050549b9b9f9b9b9f -7a7b809b9b9fc7c7c99b9b9f8a8a8e8a8a8e6c6c715050547a7b801f1f225d5e628a8a8e7a7b80 -6c6c713435398a8a8e7a7b806c6c716c6c716c6c717a7b805050548a8a8e5050540202028a8a8e -5050545d5e62c7c7c9c7c7c9c7c7c99b9b9f5050549b9b9fffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffff8a8a8e1f1f226c6c716c6c717a7b807a7b805d5e62d9eaecffffff -afafb20202021f1f224443481f1f223435398a8a8e5d5e625050549b9b9fc7c7c9c7c7c9343539 -3435394443481f1f223435394443485d5e625d5e625050544443481f1f221f1f224443487a7b80 -c7c7c9d9eaecc7c7c9afafb29b9b9f9b9b9fc7c7c99b9b9fc7c7c97a7b805050549b9b9f8a8a8e -8a8a8e3435398a8a8e9b9b9f7a7b806c6c717a7b807a7b808a8a8eafafb20202026c6c717a7b80 -3435396c6c718a8a8e8a8a8e4443480202021f1f22c7c7c9ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffff7a7b805d5e623435394443487a7b80505054505054ffffffffffff -d9eaec3435390202026c6c713435395d5e627a7b808a8a8e9b9b9f9b9b9fc7c7c9afafb21f1f22 -5050545050543435394443486c6c715d5e625d5e626c6c716c6c71343539c7c7c95d5e62444348 -5d5e627a7b807a7b807a7b80c7c7c9afafb2afafb28a8a8ec7c7c9afafb28a8a8eafafb2c7c7c9 -afafb25050548a8a8e7a7b805d5e623435397a7b809b9b9f8a8a8e6c6c715050549b9b9f7a7b80 -3435391f1f221f1f221f1f223435390202025d5e62ffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffff7a7b807a7b801f1f22343539c7c7c98a8a8e7a7b80ffffffffffff -ffffff5d5e620202026c6c716c6c715050545d5e62505054505054afafb2c7c7c93435391f1f22 -6c6c714443480202025050545d5e627a7b807a7b805d5e623435398a8a8effffffffffffafafb2 -8a8a8e9b9b9f8a8a8e6c6c714443485d5e625050545050546c6c718a8a8e7a7b808a8a8e7a7b80 -6c6c713435395d5e626c6c716c6c713435391f1f224443488a8a8e8a8a8e5d5e624443481f1f22 -3435393435394443483435393435394443489b9b9fffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffd9eaec5d5e626c6c717a7b80afafb26c6c714443489b9b9fffffffffffff -ffffff7a7b800202021f1f221f1f223435395d5e627a7b805d5e62afafb28a8a8e505054444348 -5050545d5e625050544443486c6c718a8a8e7a7b809b9b9f343539c7c7c9ffffffffffffffffff -ffffffffffffffffffd9eaecc7c7c9c7c7c97a7b80afafb2ffffffd9eaecc7c7c96c6c715d5e62 -c7c7c96c6c719b9b9f4443485d5e628a8a8e5d5e621f1f227a7b808a8a8e7a7b80afafb2020202 -0202021f1f227a7b803435394443487a7b809b9b9fffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffd9eaec4443485050543435395d5e627a7b801f1f229b9b9fffffffffffff -ffffff5d5e621f1f225d5e624443486c6c719b9b9f343539afafb2afafb25d5e62d9eaec6c6c71 -1f1f223435396c6c716c6c719b9b9f1f1f228a8a8e5d5e625d5e62d9eaecffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffff9b9b9f8a8a8e8a8a8e3435391f1f228a8a8e6c6c713435396c6c719b9b9fffffff1f1f22 -1f1f220202025050543435391f1f227a7b80afafb2ffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffd9eaec5d5e626c6c710202023435399b9b9f343539afafb2ffffffffffff -ffffff6c6c711f1f226c6c716c6c716c6c716c6c711f1f22afafb25d5e629b9b9fffffff9b9b9f -1f1f225050545050548a8a8e9b9b9f8a8a8ec7c7c93435395d5e62ffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffafafb27a7b807a7b805d5e625050547a7b805050545050548a8a8eafafb2ffffff5d5e62 -1f1f220202023435396c6c715d5e627a7b80afafb2d9eaecffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffd9eaec6c6c717a7b808a8a8eafafb28a8a8e5d5e62afafb2ffffffffffff -ffffff5d5e620202025d5e623435393435398a8a8e5050546c6c716c6c71ffffffffffffd9eaec -3435396c6c718a8a8e5050548a8a8ec7c7c9c7c7c99b9b9f7a7b80ffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffd9eaec7a7b805d5e625d5e626c6c710202025d5e625d5e625d5e62afafb2ffffff9b9b9f -1f1f225d5e625d5e625d5e628a8a8e9b9b9f9b9b9fd9eaecffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffd9eaec5d5e624443487a7b808a8a8e9b9b9f6c6c719b9b9fffffffffffff -ffffff5d5e621f1f225050545050545d5e626c6c717a7b807a7b80d9eaecffffffffffffffffff -5050543435396c6c71afafb2d9eaecc7c7c9afafb28a8a8ec7c7c9ffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff4443488a8a8e8a8a8e6c6c710202025050546c6c714443489b9b9fffffffafafb2 -3435398a8a8e0202020202027a7b809b9b9f9b9b9fffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffff6c6c711f1f220202021f1f225050543435396c6c71ffffffffffff -ffffff5050540202023435395050544443480202028a8a8eafafb2ffffffffffffffffffffffff -9b9b9f7a7b809b9b9f9b9b9f6c6c719b9b9f5050546c6c71ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff4443487a7b806c6c719b9b9f8a8a8e5d5e625d5e626c6c719b9b9fffffffd9eaec -6c6c717a7b801f1f221f1f227a7b808a8a8e9b9b9fffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffff9b9b9f5d5e627a7b806c6c717a7b807a7b80505054ffffffffffff -ffffff5050541f1f224443487a7b805d5e627a7b809b9b9fc7c7c9ffffffffffffffffffffffff -6c6c717a7b805050549b9b9f505054c7c7c97a7b80c7c7c9ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffafafb24443481f1f223435396c6c719b9b9f343539444348c7c7c9ffffffffffff -8a8a8e6c6c71afafb2c7c7c9c7c7c97a7b809b9b9fffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffff8a8a8e6c6c719b9b9f7a7b808a8a8e8a8a8e6c6c71d9eaecffffff -ffffff5050541f1f224443484443483435399b9b9f9b9b9fffffffffffffffffffffffffd9eaec -5050545d5e626c6c719b9b9fc7c7c9afafb28a8a8effffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffd9eaec3435393435391f1f220202025d5e625d5e627a7b80c7c7c9ffffffffffff -8a8a8e4443485d5e629b9b9f8a8a8e5d5e628a8a8effffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffafafb20202025050549b9b9f6c6c717a7b806c6c71c7c7c9ffffff -d9eaec1f1f221f1f221f1f224443486c6c718a8a8effffffffffffffffffffffffffffffafafb2 -6c6c718a8a8e8a8a8e8a8a8eafafb27a7b80c7c7c9ffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffd9eaec5d5e628a8a8e6c6c715d5e621f1f225d5e629b9b9fc7c7c9ffffffffffff -afafb24443481f1f228a8a8eafafb28a8a8ed9eaecffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffafafb24443486c6c713435390202021f1f225050547a7b80ffffff -9b9b9f0202021f1f221f1f223435396c6c71c7c7c9ffffffffffffffffffffffffffffffafafb2 -8a8a8e9b9b9fafafb29b9b9f7a7b806c6c71ffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffff7a7b805d5e626c6c71c7c7c96c6c714443488a8a8ec7c7c9ffffffffffff -c7c7c94443487a7b809b9b9f5d5e626c6c71d9eaecffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffc7c7c96c6c713435391f1f225050548a8a8e9b9b9f8a8a8e9b9b9f -1f1f220202021f1f221f1f223435399b9b9fffffffffffffffffffffffffffffffffffff8a8a8e -6c6c717a7b807a7b80ffffff6c6c71c7c7c9ffffffd9eaecd9eaecc7c7c9ffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffff9b9b9f8a8a8e5d5e620202025050545050547a7b80d9eaecffffffffffff -ffffff1f1f223435397a7b806c6c718a8a8ec7c7c9ffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffff6c6c716c6c719b9b9f7a7b80c7c7c97a7b808a8a8e6c6c71 -0202020202021f1f22343539343539ffffffffffffffffffffffffffffffffffffafafb29b9b9f -8a8a8e8a8a8e6c6c718a8a8e6c6c71d9eaec9b9b9f5d5e629b9b9f6c6c71afafb2ffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffff8a8a8e7a7b80afafb21f1f225050546c6c718a8a8ec7c7c9ffffffffffff -ffffff1f1f220202028a8a8ec7c7c9afafb28a8a8effffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffafafb25050541f1f221f1f22afafb26c6c719b9b9fafafb2 -3435390202021f1f221f1f228a8a8effffffffffffffffffffffffffffffd9eaec7a7b807a7b80 -7a7b80c7c7c9afafb25d5e629b9b9f9b9b9f8a8a8ec7c7c9c7c7c9c7c7c95d5e62afafb2ffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffafafb25d5e627a7b808a8a8e7a7b805d5e629b9b9fc7c7c9ffffffffffff -ffffff4443484443489b9b9fafafb2afafb25d5e62ffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffd9eaec5d5e623435396c6c718a8a8e5050546c6c71afafb2 -8a8a8e1f1f221f1f221f1f22c7c7c9ffffffffffffffffffffffffffffffafafb28a8a8e5d5e62 -7a7b809b9b9f5d5e628a8a8e6c6c71afafb2c7c7c9c7c7c9d9eaecc7c7c97a7b808a8a8effffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffc7c7c95d5e621f1f229b9b9f6c6c710202027a7b80d9eaecffffffffffff -ffffff6c6c716c6c715d5e62afafb28a8a8e8a8a8effffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffafafb25d5e629b9b9f3435391f1f226c6c718a8a8e -c7c7c99b9b9f1f1f221f1f22d9eaecffffffffffffffffffffffffffffffffffff5d5e62505054 -505054c7c7c95d5e625d5e626c6c71d9eaecc7c7c9d9eaecd9eaecc7c7c96c6c71afafb2ffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffd9eaec6c6c719b9b9f5050548a8a8e8a8a8e9b9b9fd9eaecffffffffffff -ffffff7a7b805d5e629b9b9fafafb29b9b9fafafb2d9eaecffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffd9eaec5d5e626c6c711f1f225d5e626c6c716c6c71 -afafb2c7c7c99b9b9f5d5e62d9eaecffffffffffffffffffffffffffffffffffffafafb2505054 -4443483435396c6c716c6c71afafb2afafb29b9b9fafafb2afafb29b9b9f505054c7c7c9ffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffff6c6c71c7c7c94443485d5e628a8a8e9b9b9fd9eaecffffffffffff -ffffff8a8a8e5d5e629b9b9f9b9b9fc7c7c99b9b9fd9eaecffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffc7c7c95d5e627a7b807a7b805d5e625d5e62 -0202025d5e62afafb2c7c7c9afafb29b9b9fc7c7c9ffffffffffffffffffffffffd9eaec444348 -6c6c715050547a7b80afafb2afafb28a8a8e3435396c6c717a7b806c6c715d5e62ffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffff7a7b809b9b9f5d5e628a8a8e9b9b9fc7c7c9d9eaecffffffffffff -ffffff9b9b9f4443485d5e626c6c71afafb29b9b9fd9eaecffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffff9b9b9f5d5e62afafb28a8a8e020202 -0202027a7b805d5e62c7c7c99b9b9f9b9b9f9b9b9f8a8a8eafafb2c7c7c9c7c7c9c7c7c95d5e62 -6c6c718a8a8e8a8a8e7a7b807a7b809b9b9f444348343539505054444348c7c7c9ffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffff7a7b808a8a8e343539afafb24443488a8a8ed9eaecffffffffffff -ffffffafafb26c6c718a8a8e6c6c71afafb2afafb2d9eaecffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffff9b9b9f7a7b807a7b801f1f22 -6c6c71afafb26c6c714443485d5e629b9b9fd9eaecafafb29b9b9fafafb27a7b808a8a8e9b9b9f -9b9b9fafafb24443481f1f223435398a8a8e8a8a8e4443483435399b9b9fffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffff6c6c719b9b9f7a7b80c7c7c98a8a8e9b9b9fc7c7c9ffffffffffff -ffffffc7c7c95050546c6c716c6c717a7b806c6c71d9eaecffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffc7c7c97a7b809b9b9f -6c6c718a8a8e5d5e620202028a8a8e3435396c6c71343539c7c7c9afafb25d5e62c7c7c96c6c71 -6c6c71afafb23435390202020202024443485050545050546c6c71ffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffff5050548a8a8e7a7b80afafb28a8a8e9b9b9fafafb2ffffffffffff -ffffffffffffafafb24443484443489b9b9f7a7b80d9eaecffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffd9eaec1f1f225d5e62 -8a8a8e6c6c714443481f1f229b9b9fafafb21f1f221f1f229b9b9f1f1f225050548a8a8e1f1f22 -5050547a7b805050541f1f220202021f1f224443487a7b80d9eaecffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffff5050549b9b9f444348afafb26c6c719b9b9fc7c7c9ffffffffffff -ffffffffffffd9eaec3435395050549b9b9f9b9b9fc7c7c9ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffd9eaec1f1f22343539 -3435395d5e625d5e625050546c6c718a8a8e1f1f224443488a8a8e0202025050547a7b80020202 -1f1f225050545d5e623435393435395d5e626c6c71d9eaecffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffafafb28a8a8e6c6c715d5e627a7b80afafb2afafb2ffffffffffff -ffffffffffffffffff9b9b9f6c6c719b9b9f9b9b9f9b9b9fffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffd9eaec343539444348 -1f1f221f1f228a8a8e8a8a8e5d5e625d5e623435395050548a8a8e5050545050546c6c71343539 -1f1f225d5e625050545d5e626c6c714443486c6c71ffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffd9eaec8a8a8ec7c7c97a7b807a7b805d5e62afafb2ffffffffffff -ffffffffffffffffffc7c7c95d5e62c7c7c9afafb2afafb2d9eaecffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffd9eaec5d5e62444348 -3435396c6c71c7c7c9ffffffc7c7c9afafb2afafb28a8a8e7a7b806c6c715d5e625d5e625d5e62 -5d5e625d5e625050541f1f224443485d5e627a7b808a8a8ec7c7c9c7c7c9d9eaecffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffff8a8a8e8a8a8e6c6c717a7b806c6c71c7c7c9ffffffffffff -ffffffffffffffffffd9eaec6c6c717a7b80c7c7c99b9b9f9b9b9f8a8a8e7a7b80afafb2ffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffd9eaec6c6c716c6c71 -3435396c6c719b9b9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffd9eaecd9eaec4443486c6c718a8a8eafafb27a7b805d5e627a7b808a8a8ec7c7c9ffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffafafb2444348c7c7c95d5e621f1f22c7c7c9ffffffffffff -ffffffffffffffffffffffff8a8a8e0202027a7b809b9b9fc7c7c95d5e62afafb25d5e62afafb2 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffc7c7c95d5e627a7b80 -4443486c6c719b9b9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffff9b9b9f5d5e62afafb28a8a8e7a7b809b9b9f9b9b9f7a7b807a7b80d9eaec -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffff6c6c718a8a8eafafb27a7b809b9b9fd9eaecffffff -ffffffffffffffffffffffffafafb23435395d5e628a8a8e9b9b9f8a8a8eafafb29b9b9f5d5e62 -d9eaecffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffc7c7c95050548a8a8e -5050546c6c71c7c7c9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffd9eaec5d5e628a8a8e7a7b809b9b9f8a8a8e6c6c718a8a8e343539c7c7c9 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffafafb26c6c719b9b9f6c6c716c6c71afafb2d9eaec -ffffffffffffffffffffffffd9eaec4443487a7b80afafb2afafb2afafb27a7b80afafb21f1f22 -9b9b9fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffc7c7c96c6c719b9b9f -7a7b809b9b9fafafb2d9eaecffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffafafb25d5e625d5e626c6c716c6c716c6c715d5e626c6c71d9eaec -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffff444348afafb2afafb29b9b9f8a8a8e505054 -9b9b9fd9eaecffffffffffffffffffafafb25050547a7b805d5e626c6c714443487a7b809b9b9f -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffc7c7c96c6c71afafb2 -9b9b9f5d5e625d5e628a8a8eafafb2ffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffd9eaecc7c7c9afafb29b9b9fc7c7c9c7c7c9ffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffff5050549b9b9f8a8a8eafafb28a8a8e7a7b80 -9b9b9f8a8a8ec7c7c9ffffffffffffffffffd9eaecd9eaecc7c7c9afafb2afafb2d9eaecffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffc7c7c95050549b9b9f -5050548a8a8e8a8a8e9b9b9f7a7b80c7c7c9ffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffff9b9b9f6c6c71afafb28a8a8e9b9b9f7a7b80 -c7c7c95d5e627a7b80c7c7c9ffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffc7c7c9343539afafb2 -8a8a8e7a7b809b9b9f5d5e629b9b9f9b9b9fffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffc7c7c94443488a8a8e7a7b808a8a8e8a8a8e -5050547a7b804443489b9b9fffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffd9eaec6c6c719b9b9f -4443488a8a8e9b9b9f8a8a8e6c6c718a8a8effffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffafafb24443488a8a8eafafb26c6c71 -5d5e626c6c717a7b80ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc7c7c97a7b80 -3435396c6c713435394443486c6c71d9eaecffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffd9eaecc7c7c9 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -d9eaecd9eaecd9eaecd9eaecd9eaecffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffafafb29b9b9fc7c7c9ffffffc7c7c99b9b9f -d9eaecc7c7c99b9b9fc7c7c9c7c7c9c7c7c9ffffffc7c7c9d9eaecafafb2ffffffc7c7c9d9eaec -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffafafb28a8a8ec7c7c96c6c71d9eaec7a7b805d5e62 -9b9b9f8a8a8e9b9b9fc7c7c97a7b806c6c71ffffff8a8a8ed9eaecafafb25d5e62c7c7c9d9eaec -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffff9b9b9fafafb2ffffff5d5e62d9eaec8a8a8e505054 -afafb28a8a8eafafb2d9eaec7a7b806c6c71ffffff8a8a8effffffd9eaec9b9b9fffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffd9eaecc7c7c9c7c7c9d9eaecffffffd9eaecd9eaecffffffffffffd9eaec -ffffffd9eaecd9eaecd9eaecffffffffffffd9eaecd9eaecd9eaecffffffd9eaecffffffffffff -d9eaecffffffffffffd9eaecd9eaecd9eaecffffffd9eaecc7c7c9d9eaecffffffffffffd9eaec -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffd9eaec8a8a8e7a7b809b9b9fffffff9b9b9fc7c7c9 -c7c7c97a7b808a8a8ec7c7c99b9b9f5d5e62afafb28a8a8e9b9b9fc7c7c9c7c7c9ffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffd9eaecafafb2c7c7c9c7c7c9afafb2c7c7c99b9b9fafafb2d9eaecc7c7c9d9eaec -c7c7c9c7c7c99b9b9fc7c7c9afafb2d9eaecafafb2afafb2d9eaecafafb2c7c7c9d9eaecd9eaec -ffffffffffffc7c7c9d9eaecafafb2afafb2ffffffd9eaec8a8a8eafafb2d9eaecc7c7c9afafb2 -d9eaecc7c7c9ffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffd9eaecffffffffffffffffffffffff -ffffffffffffd9eaecffffffffffffd9eaecd9eaecffffffd9eaecffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffd9eaecffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff020202 -020202020202020202020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202020202020202020202020202 -020202020202020202020202020202020202020202020202020202 -showpage -%%Trailer -end -%%EOF diff --git a/Docs/Books/dbi.gif b/Docs/Books/dbi.gif deleted file mode 100644 index de7bc2dae61f251a7bd45aded761cbb7ec433d46..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3308 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 diff --git a/Docs/Books/dbi.txt b/Docs/Books/dbi.txt deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/Docs/Books/dubois.eps b/Docs/Books/dubois.eps deleted file mode 100644 index 412693fe405..00000000000 --- a/Docs/Books/dubois.eps +++ /dev/null @@ -1,1203 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: GIMP PostScript file plugin V 1.06 by Peter Kirchgessner -%%Title: /opt/local/x1/work/bk/mysql/Docs/Books/dubois.eps -%%CreationDate: Sun Dec 31 14:29:20 2000 -%%DocumentData: Clean7Bit -%%LanguageLevel: 2 -%%Pages: 1 -%%BoundingBox: 14 14 298 383 -%%EndComments -%%BeginPreview: 100 130 1 130 -% fffffffffffffffffffffffff0 -% fe000000000000000000000010 -% d555242000000000000924aab0 -% fe000600000000000000000010 -% d5488d020000a0070440040950 -% fe00160048010004800011a010 -% d51214c0aa02400a4000437110 -% fe2821404800000940c102d050 -% aa0854410501081010b70d1410 -% fe14810240080222514184a890 -% aa223640b5114000012d4baa10 -% fe1d49140040048aaa42285490 -% ab894040800000000011552ab0 -% feb20a00000010000041215290 -% 55cab4aad28b7552aa94556a90 -% 7e34a5b78a6a555d5d75adb6b0 -% d5dfeaff8fd8ab76aabbfffff0 -% bf501c074235188eab502ff7f0 -% 6aeff76ac031702f56ea4fc9f0 -% dfbd5ad5f54de8556dd9557f70 -% 7577ed6a4aa575aadb76ddd7f0 -% 5fdbbaaaaaa9ca55eedddb6ff0 -% f576ab55554a35522beff6daf0 -% 5fdd6aaa5492852dd29bfdf7b0 -% f55695535aa474a22aaaa6ad70 -% 5f69d55adaa5baaaaaaaadfff0 -% 75debbaaf55aa556ad56daad70 -% df7bd4aad6d55faaaefb7dfbd0 -% 75dd5f75adab6aeaa2ababbf70 -% df77ebdaeadadeddd5d56ebff0 -% 75fd5aff3db7b7f55555556ab0 -% dfffff57effdffdfbabb6fdff0 -% 75d754b55aaa52b2aaa55aaaf0 -% 5e000000000000000000000010 -% f4000000000000000000000010 -% 5e000000000000000000000010 -% f4000000000000000000000010 -% 5e000000000000000000000010 -% f4000000000000000000000010 -% 5e000000000000000000000010 -% f4000000000000000000000010 -% 5e000000000000000000000010 -% f4000000000000000000000010 -% 5e000000000000000000000010 -% f4000000000000000000000010 -% 5e030c01426100000000000010 -% 74030c020c3100000000000010 -% de010c02081100000000000010 -% 7401849b881900000000000010 -% de008cc0c81100000000000010 -% 7402c4406c1100000000000010 -% de044440641100000000000010 -% 74064c26462398000000000010 -% 5e00000001c010000000000010 -% f4000000006000000000000010 -% 5e0000c0001800000000000010 -% f4000000000000000000000010 -% 5e000000000000000000000010 -% f4000000000000000000000010 -% 5e000000000000000000000010 -% f4000000000000000000000010 -% 5e000000000000000000000010 -% 74000000000000000000000010 -% de000000000000000000000010 -% 74000000000000000000000010 -% de000000000000000000000010 -% 74000000000000000000000010 -% 5e000000000000000000000010 -% f4000000000000000000000010 -% 5e000000000000000000000010 -% f4000000000000000000000010 -% 5e000000000000000000000010 -% 74000000000000000000000010 -% de000000000000000000000010 -% 74000000000000000000000010 -% de000000000000000000000010 -% 74000000000000000000000010 -% de000000000000000000000010 -% 74000000000000000000000010 -% 5e000000000000000000000010 -% f4000000000000000000000010 -% 5e000000000000000000000010 -% f4000000000000000000000010 -% 5e000000000000000000000010 -% 74000000000000000000000010 -% de000000000000000000000010 -% 74000000000000000000000010 -% de000000000000000000000010 -% 74000000000000000000000010 -% de000000000000000000000010 -% 74000000000000000000000010 -% 5e000000000000000000000010 -% f4000000000000000000000010 -% 5e000000000000000000000010 -% f4000000000000000000000010 -% 5e000000000000000000000010 -% 74000000000000000000000010 -% de000000000000000000000010 -% 74000000000000000000000010 -% de000000000000000000000010 -% 74000000000000000000000010 -% de000000000000000000000010 -% 74000000000000000000000010 -% 5e000000000000000000000010 -% f4000000000000000000000010 -% 5e000000000000000000000010 -% f4000000000000000000000010 -% 5e000000000000000000000010 -% 74000000000000000000000010 -% de000000000000000000000010 -% 74000000000000000000000010 -% de000000000000000000000010 -% 74000000000000000000000010 -% de000000000000000000000010 -% 74000000000000000000000010 -% 5e000000000000000000000010 -% f4000000000000000000000010 -% 5e000000000000000000000010 -% f4080000000000000000000010 -% 5e0f9000000000000000000010 -% 740f8000000000000000000010 -% de000000000000000000000010 -% 740d0000000000000000000010 -% de0fe000000000000000000010 -% 740a9000000000000000000010 -% de000000000000000000000010 -% 74000000000000000000000010 -% 5e000000000000000000000010 -% f4000000000000000000000010 -% 7ffffffffffffffffffffffff0 -%%EndPreview -%%BeginProlog -% Use own dictionary to avoid conflicts -5 dict begin -%%EndProlog -%%Page: 1 1 -% Translate for offset -14.400000 14.400000 translate -% Translate to begin of first scanline -0.000000 368.503937 translate -283.464567 -368.503937 scale -% Variable to keep one line of raster data -/scanline 100 3 mul string def -% Image geometry -100 130 8 -% Transformation matrix -[ 100 0 0 130 0 0 ] -{ currentfile scanline readhexstring pop } false 3 -colorimage -010101010101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101 -010101f50237f50237f50237f50237f50237f50237b78794c9c2c4b3b3b3b3b3b3b3b3b3b3b3b3 -b3b3b3b3b3b3c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4d6d6d6c9c2c4d6d6d6c9c2c4 -c9c2c4c9c2c4d6d6d6c9c2c4d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c9c2c4d6d6d6d6d6d6 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6e9e9e9d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c9c2c4c9c2c4c9c2c4c9c2c4 -c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4b3b3b3c9c2c4c9c2c4c9c2c4 -b3b3b3c9c2c4b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3010101 -010101f50237f50237f50237f50237f50237f50237b78794c9c2c4b3b3b3b3b3b3b3b3b3b3b3b3 -b3b3b3c9c2c4b3b3b3c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4d6d6d6c9c2c4c9c2c4 -c9c2c4c9c2c4c9c2c4c9c2c4d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6e9e9e9d6d6d6d6d6d6 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6e9e9e9d6d6d6d6d6d6 -d6d6d6d6d6d6d6d6d6d6d6d6c9c2c4d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c9c2c4c9c2c4c9c2c4 -c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4b3b3b3c9c2c4c9c2c4c9c2c4b3b3b3 -b3b3b3b3b3b3b3b3b3c9c2c4b3b3b3b3b3b3b3b3b3b3b3b3010101 -010101f50237f50237f50237f50237f50237f50237b78794c9c2c4b3b3b3b3b3b3b3b3b3c9c2c4 -c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4d6d6d6c9c2c4514e4f696869c9c2c4d6d6d6d6d6d6 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6e9e9e9d6d6d6d6d6d6e9e9e9d6d6d6d6d6d6 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6e9e9e9e9e9e9d6d6d6d6d6d6d6d6d6e9e9e9 -e9e9e9e9e9e9d6d6d6d6d6d6e9e9e9d6d6d6e9e9e9d6d6d6e9e9e9e9e9e9d6d6d6d6d6d6e9e9e9 -e9e9e9d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 -d6d6d6d6d6d6d6d6d6c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4 -c9c2c4c9c2c4b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3b3010101 -010101f50237f50237f50237f50237f50237f50237b78794c9c2c4b3b3b3c9c2c4c9c2c4c9c2c4 -c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4d6d6d6e9e9e9818181514e4f6968699b9b9bd6d6d6e9e9e9 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6e9e9e9d6d6d6e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9 -e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9d6d6d6b3b3b3b3b3b3b3b3b3e9e9e9 -e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e99b9b9b818181818181b3b3b3 -e9e9e9e9e9e9d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6c9c2c4d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6 -c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4b3b3b3c9c2c4b3b3b3010101 -010101f50237f50237f50237f50237f50237f50237b78794c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4 -c9c2c4c9c2c4d6d6d6c9c2c4d6d6d6d6d6d6b3b3b3818181514e4f6968698181819b9b9bd6d6d6 -d6d6d6d6d6d6d6d6d6e9e9e9e9e9e9e9e9e9d6d6d69b9b9bc9c2c4d6d6d6c9c2c49b9b9be9e9e9 -e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9d6d6d6b3b3b3b3b3b3c9c2c49b9b9bb3b3b3 -e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ffffffb3b3b3696869696869818181818181 -b3b3b3d6d6d6e9e9e9e9e9e9d6d6d6d6d6d6d6d6d6d6d6d6e9e9e9e9e9e9d6d6d6d6d6d6d6d6d6 -d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6d69b9b9b6968699b9b9bc9c2c4818181 -b3b3b3d6d6d6b3b3b3c9c2c4c9c2c4c9c2c4c9c2c4b3b3b3010101 -010101f50237f50237f50237f50237f50237f50237b78794d6d6d6c9c2c4c9c2c4b3b3b3c9c2c4 -d6d6d6c9c2c4d6d6d6c9c2c4d6d6d6c9c2c49b9b9bb3b3b38181818181819b9b9b6968699b9b9b -e9e9e9e9e9e9e9e9e9d6d6d6e9e9e9e9e9e99b9b9b9b9b9b9b9b9b818181818181818181b3b3b3 -e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9b3b3b39b9b9bc9c2c49b9b9b9b9b9bd6d6d6 -d6d6d6ffffffe9e9e9e9e9e9e9e9e9e9e9e9ffffffd6d6d69b9b9b8181818181819b9b9bb3b3b3 -9b9b9bb3b3b3e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9d6d6d6c9c2c4e9e9e9e9e9e9e9e9e9e9e9e9 -e9e9e9e9e9e9d6d6d6d6d6d6d6d6d6d6d6d6d6d6d6e9e9e9696869514e4f818181514e4f302f2f -696869d6d6d6c9c2c4d6d6d6c9c2c4c9c2c4c9c2c4c9c2c4010101 -010101f50237f50237f50237f50237f50237f50237b78794d6d6d6c9c2c4c9c2c49b9b9b9b9b9b -c9c2c4d6d6d6d6d6d6d6d6d6d6d6d69b9b9b9b9b9bb3b3b3b3b3b3b3b3b39b9b9b9b9b9b818181 -c9c2c4e9e9e9e9e9e9e9e9e9ffffffc9c2c49b9b9b9b9b9b9b9b9b9b9b9b9b9b9b8181819b9b9b -c9c2c4ffffffe9e9e9e9e9e9ffffffffffffd6d6d6c9c2c4c9c2c4d6d6d6e9e9e9d6d6d6d6d6d6 -d6d6d6e9e9e9ffffffffffffe9e9e9e9e9e9ffffffb3b3b39b9b9bb3b3b39b9b9b9b9b9b9b9b9b -9b9b9b9b9b9bd6d6d6e9e9e9e9e9e9e9e9e9ffffff9b9b9b696869b3b3b3d6d6d6e9e9e9d6d6d6 -d6d6d6b3b3b3d6d6d6e9e9e9d6d6d6d6d6d6e9e9e9b3b3b3514e4fb3b3b3818181514e4f9b9b9b -514e4f9b9b9bd6d6d6c9c2c4c9c2c4c9c2c4c9c2c4c9c2c4010101 -010101f50237f50237f50237f50237f50237f50237b78794d6d6d6d6d6d6c9c2c4b3b3b3818181 -9b9b9bd6d6d6d6d6d6ffffff9b9b9b9b9b9b9b9b9bc9c2c49b9b9bb3b3b3b3b3b3b3b3b3818181 -c9c2c4e9e9e9e9e9e9ffffffe9e9e99b9b9bb3b3b3b3b3b3b3b3b3d6d6d6d6d6d69b9b9bc9c2c4 -b3b3b3d6d6d6ffffffffffffffffffb3b3b3d6d6d6d6d6d6c9c2c4e9e9e9e9e9e9ffffffc9c2c4 -c9c2c4b3b3b3d6d6d6ffffffffffffffffffc9c2c49b9b9bd6d6d6c9c2c4c9c2c4d6d6d6b3b3b3 -9b9b9bb3b3b3b3b3b3e9e9e9e9e9e9ffffffd6d6d66968696968698181818181819b9b9b818181 -818181514e4f818181e9e9e9d6d6d6e9e9e9b3b3b36968698181819b9b9b8181819b9b9bb3b3b3 -818181696869c9c2c4d6d6d6c9c2c4c9c2c4c9c2c4c9c2c4010101 -010101f50237f50237f50237f50237f50237f50237b78794d6d6d6d6d6d6d6d6d68181819b9b9b -818181c9c2c4d6d6d69b9b9b9b9b9b9b9b9b9b9b9bb3b3b39b9b9bb3b3b3c9c2c49b9b9b9b9b9b -c9c2c4e9e9e9ffffffe9e9e99b9b9b9b9b9bc9c2c48181819b9b9bd6d6d6c9c2c49b9b9bb3b3b3 -b3b3b3c9c2c4ffffffffffffc9c2c49b9b9bd6d6d6d6d6d6b3b3b3d6d6d6e9e9e9e9e9e9b3b3b3 -d6d6d6c9c2c49b9b9be9e9e9ffffffd6d6d68181819b9b9bb3b3b3c9c2c4b3b3b3e9e9e9c9c2c4 -9b9b9b9b9b9b9b9b9bc9c2c4ffffffe9e9e99b9b9b8181819b9b9b9b9b9b9b9b9bb3b3b3c9c2c4 -818181818181514e4fb3b3b3ffffffffffff8181816968699b9b9b9b9b9b9b9b9bb3b3b3818181 -9b9b9b696869696869d6d6d6c9c2c4c9c2c4c9c2c4c9c2c4010101 -010101f50237f50237f50237f50237f50237f50237b78794e9e9e9d6d6d6c9c2c4818181b3b3b3 -b3b3b39b9b9bc9c2c49b9b9bb3b3b39b9b9b818181b3b3b3696869818181d6d6d69b9b9b9b9b9b -b3b3b3c9c2c4d6d6d6c9c2c49b9b9bb3b3b3b3b3b3b3b3b39b9b9b818181b3b3b3b3b3b3b3b3b3 -c9c2c4b3b3b3b3b3b3d6d6d69b9b9bc9c2c4c9c2c4c9c2c4c9c2c48181818181819b9b9bd6d6d6 -e9e9e9d6d6d6c9c2c4c9c2c4ffffffb3b3b3b3b3b3e9e9e9d6d6d6d6d6d6b3b3b3b3b3b3e9e9e9 -c9c2c4d6d6d6c9c2c4b3b3b3e9e9e9c9c2c4818181b3b3b39b9b9b9b9b9bb3b3b3818181818181 -9b9b9b8181819b9b9b696869d6d6d6c9c2c4514e4f9b9b9b9b9b9b696869514e4f818181818181 -9b9b9b818181818181c9c2c4e9e9e9d6d6d6d6d6d6d6d6d6010101 -010101f50237f50237f50237f50237f50237f50237b78794d6d6d6d6d6d6d6d6d69b9b9b514e4f -6968699b9b9b818181b3b3b36968699b9b9bb3b3b3818181b3b3b39b9b9b818181b3b3b39b9b9b -c9c2c49b9b9bb3b3b3b3b3b3b3b3b3d6d6d6b3b3b3c9c2c4c9c2c49b9b9bd6d6d6b3b3b3c9c2c4 -c9c2c4b3b3b3c9c2c49b9b9bb3b3b3c9c2c4c9c2c4c9c2c4b3b3b3b3b3b3c9c2c4d6d6d6d6d6d6 -d6d6d6c9c2c4b3b3b3c9c2c49b9b9bc9c2c4d6d6d6c9c2c4c9c2c4b3b3b3b3b3b39b9b9bc9c2c4 -b3b3b3b3b3b3c9c2c49b9b9b9b9b9b9b9b9bb3b3b3b3b3b3b3b3b3c9c2c49b9b9b9b9b9bb3b3b3 -9b9b9b818181b3b3b39b9b9b9b9b9b8181819b9b9b9b9b9b9b9b9b9b9b9b9b9b9b818181818181 -8181818181818181818181819b9b9bb3b3b39b9b9bc9c2c4010101 -010101f50237f50237f50237f50237f50237f50237696869818181d6d6d6c9c2c4d6d6d6696869 -818181d6d6d6696869e9e9e9818181c9c2c4e9e9e99b9b9be9e9e9c9c2c4c9c2c4ffffff9b9b9b -e9e9e9b3b3b3d6d6d6d6d6d6b3b3b3ffffff9b9b9be9e9e9e9e9e9d6d6d6ffffffd6d6d6e9e9e9 -d6d6d6d6d6d6ffffffe9e9e9ffffffe9e9e9ffffffffffffe9e9e9ffffffffffffffffffe9e9e9 -ffffffffffffe9e9e9ffffffc9c2c4e9e9e9e9e9e9d6d6d6e9e9e99b9b9be9e9e9b3b3b3c9c2c4 -c9c2c49b9b9bd6d6d69b9b9be9e9e9b3b3b3c9c2c4c9c2c49b9b9be9e9e9818181ffffffc9c2c4 -c9c2c4696869d6d6d68181819b9b9b9b9b9bb3b3b3696869b3b3b3696869b3b3b39b9b9b9b9b9b -9b9b9b514e4fb3b3b3514e4f9b9b9b514e4f9b9b9bb3b3b3010101 -010101f50237f50237f50237f50237f50237f50237514e4f514e4f696869696869696869818181 -b3b3b39b9b9b818181e9e9e9b3b3b3b3b3b3e9e9e9b3b3b3c9c2c4b3b3b3d6d6d6e9e9e9c9c2c4 -d6d6d6b3b3b3e9e9e9e9e9e9c9c2c4d6d6d6c9c2c4d6d6d6c9c2c4c9c2c4e9e9e9e9e9e9ffffff -e9e9e9e9e9e9ffffffe9e9e9e9e9e9e9e9e9e9e9e9d6d6d6d6d6d6d6d6d6d6d6d6c9c2c4c9c2c4 -c9c2c4e9e9e9e9e9e9e9e9e9e9e9e9ffffffffffffe9e9e9ffffffd6d6d6ffffffe9e9e9e9e9e9 -ffffffc9c2c4ffffffd6d6d6ffffffe9e9e9d6d6d6e9e9e9b3b3b3e9e9e99b9b9be9e9e9c9c2c4 -c9c2c49b9b9bffffff8181819b9b9b696869c9c2c49b9b9bffffff818181c9c2c49b9b9b696869 -818181696869e9e9e9514e4fffffff514e4fb3b3b3d6d6d6010101 -010101f50237f50237f50237f50237f50237f50237514e4f6968696968696968699b9b9b9b9b9b -8181819b9b9b9b9b9b9b9b9b8181818181818181818181818181818181819b9b9b9b9b9b9b9b9b -9b9b9b9b9b9bb3b3b39b9b9bb3b3b39b9b9b696869818181b3b3b3b3b3b3b3b3b3c9c2c4b3b3b3 -b3b3b3b3b3b3c9c2c4b3b3b3d6d6d6b3b3b38181818181818181819b9b9b9b9b9b696869514e4f -6968699b9b9b9b9b9bb3b3b39b9b9b9b9b9b9b9b9b9b9b9bc9c2c4b3b3b39b9b9bb3b3b39b9b9b -b3b3b39b9b9bd6d6d68181819b9b9b9b9b9bb3b3b39b9b9b9b9b9bc9c2c49b9b9bb3b3b39b9b9b -b3b3b3b3b3b3c9c2c48181816968696968699b9b9b9b9b9bd6d6d66968699b9b9b696869302f2f -818181818181d6d6d6696869c9c2c4514e4f9b9b9bc9c2c4010101 -010101f50237f50237f50237f50237f50237f50237696869b78794818181818181818181818181 -8181819b9b9b9b9b9b8181819b9b9b8181818181819b9b9b818181818181818181696869818181 -696869696869818181696869696869302f2f0101019b9b9bc9c2c4c9c2c49b9b9b9b9b9b818181 -8181819b9b9b8181818181819b9b9b6968699b9b9b9b9b9bb3b3b39b9b9b696869696869696869 -8181819b9b9b6968696968698181818181816968696968696968696968696968699b9b9b818181 -6968699b9b9b818181514e4f302f2f818181818181818181696869696869302f2f6968699b9b9b -818181696869696869696869696869818181514e4f514e4f696869010101514e4f696869514e4f -696869696869514e4f696869696869818181818181302f2f010101 -010101f50237f50237f50237f50237f50237f50237514e4f696869818181696869514e4f514e4f -514e4f514e4f514e4f514e4f514e4f514e4f696869696869818181818181c9c2c4696869302f2f -302f2f302f2f302f2f302f2f010101010101302f2fb3b3b3d6d6d6e9e9e9818181302f2f302f2f -514e4f514e4f514e4f514e4f010101514e4f818181c9c2c49b9b9b9b9b9bc9c2c4818181696869 -818181d6d6d6818181514e4f696869514e4f302f2f302f2f514e4f302f2f302f2fb3b3b3818181 -8181818181816968696968696968696968698181818181819b9b9b696869010101696869818181 -514e4f514e4f514e4f302f2f302f2f302f2f010101302f2f302f2f302f2f514e4f302f2f302f2f -302f2f302f2f302f2f010101302f2f302f2f010101010101010101 -010101f50237f50237f50237f50237f50237f50237514e4f514e4f696869818181696869818181 -9b9b9b8181819b9b9b9b9b9b9b9b9b818181696869696869696869818181d6d6d6b3b3b3818181 -9b9b9b9b9b9b818181818181302f2f0101016968699b9b9bb3b3b3ffffffb3b3b3818181818181 -9b9b9bb3b3b39b9b9b9b9b9b302f2f6968699b9b9bb3b3b39b9b9be9e9e9ffffffe9e9e9302f2f -514e4fd6d6d6b3b3b39b9b9b9b9b9b8181819b9b9bb3b3b3696869302f2f302f2f9b9b9b818181 -6968699b9b9b696869818181818181696869696869696869696869696869514e4f818181c9c2c4 -9b9b9bb3b3b39b9b9b9b9b9b818181818181514e4f302f2f302f2f010101302f2f010101010101 -302f2f514e4f514e4f514e4f302f2f010101010101010101010101 -010101f50237f50237f50237f50237f50237f50237514e4f514e4f696869696869696869514e4f -696869696869818181696869696869696869302f2f514e4f696869696869696869818181818181 -9b9b9b9b9b9b696869818181696869514e4f696869696869818181d6d6d6d6d6d6d6d6d6c9c2c4 -d6d6d6d6d6d6c9c2c4818181302f2f818181e9e9e9d6d6d6696869696869514e4f696869514e4f -c9c2c4c9c2c4d6d6d6e9e9e9d6d6d6c9c2c4c9c2c4b3b3b3514e4f302f2f010101514e4f818181 -818181696869818181696869696869696869696869514e4f514e4f6968698181818181819b9b9b -c9c2c4e9e9e9d6d6d6b3b3b39b9b9bc9c2c4696869302f2f302f2f302f2f010101514e4f818181 -9b9b9b818181696869818181302f2f302f2f302f2f302f2f010101 -010101f50237f50237f50237f50237f50237f50237514e4f514e4f514e4f514e4f696869514e4f -302f2f514e4f514e4f696869514e4f696869696869514e4f696869696869696869696869514e4f -514e4f696869818181818181696869818181514e4f302f2f6968698181819b9b9bb3b3b3b3b3b3 -b3b3b3b3b3b39b9b9b8181819b9b9b818181818181c9c2c4514e4f514e4f302f2f302f2f514e4f -6968699b9b9be9e9e9d6d6d6c9c2c4b3b3b39b9b9b818181818181514e4f514e4f818181818181 -514e4f696869696869818181696869514e4f696869514e4f302f2f514e4f696869696869818181 -9b9b9b9b9b9b9b9b9b818181818181818181696869696869514e4f696869514e4f514e4f514e4f -514e4f514e4f514e4f302f2f514e4f514e4f514e4f302f2f010101 -010101f50237f50237f50237f50237f50237f50237514e4f514e4f514e4f514e4f302f2f514e4f -696869514e4f302f2f514e4f514e4f514e4f696869514e4f514e4f818181818181696869302f2f -514e4f8181819b9b9b8181818181819b9b9b818181696869818181818181818181818181696869 -8181818181818181819b9b9b9b9b9b9b9b9b6968699b9b9b696869514e4f514e4f514e4f514e4f -6968699b9b9b9b9b9b9b9b9b818181818181818181818181818181696869818181696869514e4f -514e4f514e4f696869696869696869696869514e4f696869514e4f010101514e4f696869696869 -696869696869514e4f696869696869514e4f302f2f514e4f696869514e4f514e4f514e4f514e4f -514e4f514e4f302f2f302f2f302f2f514e4f514e4f302f2f010101 -010101f50237f50237f50237f50237f50237f50237514e4f514e4f696869514e4f514e4f514e4f -696869696869302f2f302f2f696869696869514e4f302f2f696869696869818181818181818181 -8181818181818181818181818181819b9b9b9b9b9b818181818181818181696869818181818181 -8181816968698181818181818181819b9b9b9b9b9b9b9b9b9b9b9b514e4f514e4f696869818181 -9b9b9b8181818181818181818181818181818181819b9b9b9b9b9b818181696869696869514e4f -514e4f514e4f696869514e4f514e4f514e4f696869514e4f696869696869514e4f514e4f514e4f -696869514e4f302f2f514e4f696869514e4f514e4f514e4f696869514e4f514e4f514e4f696869 -818181696869514e4f302f2f302f2f302f2f302f2f302f2f010101 -010101f50237f50237f50237f50237f50237f50237514e4f514e4f514e4f696869514e4f514e4f -302f2f696869696869696869696869818181696869696869696869514e4f696869696869696869 -8181816968698181818181818181819b9b9b9b9b9b8181816968696968698181818181819b9b9b -9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b818181818181b3b3b3818181818181818181818181 -8181818181816968698181819b9b9b9b9b9b9b9b9b8181818181819b9b9b9b9b9b818181818181 -818181696869818181818181696869302f2f302f2f302f2f302f2f514e4f696869302f2f302f2f -302f2f302f2f302f2f302f2f514e4f514e4f696869696869696869514e4f514e4f514e4f514e4f -514e4f514e4f514e4f514e4f514e4f302f2f010101010101010101 -010101f50237f50237f50237f50237f50237f50237514e4f696869514e4f696869696869514e4f -514e4f514e4f696869696869696869696869818181818181818181696869818181818181818181 -8181818181819b9b9b8181818181818181819b9b9b9b9b9b8181816968698181819b9b9b9b9b9b -9b9b9b9b9b9b8181819b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9bb3b3b3b3b3b3 -9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b9b8181818181819b9b9b9b9b9b818181 -8181819b9b9b8181819b9b9b9b9b9b818181818181696869818181818181514e4f696869514e4f -302f2f302f2f302f2f302f2f302f2f302f2f514e4f514e4f514e4f696869514e4f514e4f514e4f -514e4f696869696869514e4f514e4f514e4f514e4f514e4f010101 -010101f50237f50237f50237f50237f50237f50237514e4f696869696869696869696869696869 -6968696968698181818181818181818181818181818181818181819b9b9b9b9b9b818181696869 -8181819b9b9b9b9b9b9b9b9b8181816968698181819b9b9b818181696869696869818181818181 -9b9b9b8181819b9b9b9b9b9bb3b3b3b3b3b3b3b3b3b3b3b3b3b3b39b9b9b818181818181818181 -8181818181819b9b9b9b9b9b9b9b9b9b9b9b8181819b9b9b9b9b9b9b9b9b818181818181818181 -8181816968696968698181819b9b9b9b9b9b8181818181819b9b9b8181818181818181819b9b9b -818181818181696869696869696869818181696869696869696869696869514e4f514e4f514e4f -514e4f514e4f514e4f514e4f514e4f514e4f514e4f696869010101 -010101f50237f50237f50237f50237f50237f50237514e4f696869696869696869696869696869 -696869818181696869696869696869818181696869818181818181818181696869696869696869 -818181696869696869818181818181696869696869514e4f696869514e4f514e4f696869818181 -8181818181819b9b9b8181819b9b9bb3b3b39b9b9b9b9b9b9b9b9b818181696869302f2f302f2f -514e4f8181819b9b9b9b9b9b8181818181818181818181818181819b9b9b8181818181819b9b9b -9b9b9b8181819b9b9b8181818181818181819b9b9b818181818181818181818181818181696869 -696869818181696869696869696869696869696869696869696869514e4f514e4f514e4f514e4f -302f2f302f2f302f2f302f2f514e4f514e4f302f2f302f2f010101 -010101f50237f50237f50237f50237f50237f50237514e4f514e4f514e4f514e4f514e4f514e4f -696869696869696869514e4f514e4f514e4f514e4f696869696869696869696869696869696869 -818181696869696869818181818181696869302f2f514e4f514e4f514e4f696869818181818181 -696869818181818181818181818181818181818181818181818181696869818181696869818181 -818181696869696869818181696869818181818181696869818181696869514e4f8181819b9b9b -818181818181818181696869514e4f696869818181818181696869696869696869818181696869 -696869818181818181696869696869514e4f696869696869696869696869696869696869514e4f -514e4f514e4f514e4f514e4f696869514e4f302f2f302f2f010101 -010101f50237f50237f50237f50237f50237f50237514e4f514e4f514e4f302f2f302f2f302f2f -514e4f696869514e4f514e4f696869696869696869818181696869696869818181818181696869 -696869818181818181818181818181818181514e4f514e4f818181696869696869696869696869 -696869696869696869818181818181696869696869696869818181696869818181818181818181 -696869514e4f514e4f514e4f6968696968696968698181818181819b9b9b696869696869818181 -818181696869818181514e4f514e4f514e4f696869302f2f514e4f696869514e4f696869818181 -514e4f514e4f696869696869696869514e4f302f2f514e4f696869514e4f514e4f514e4f514e4f -514e4f514e4f514e4f514e4f514e4f514e4f514e4f514e4f010101 -010101f50237f50237f50237f50237f50237f50237514e4f514e4f302f2f514e4f514e4f302f2f -514e4f696869514e4f696869696869818181696869696869514e4f514e4f696869696869696869 -696869696869696869818181818181818181696869514e4f514e4f696869696869696869696869 -696869696869696869696869696869818181696869818181696869696869696869696869696869 -696869696869514e4f514e4f514e4f514e4f514e4f818181818181818181696869818181818181 -8181818181819b9b9b9b9b9b9b9b9b818181696869514e4f696869696869696869696869696869 -514e4f514e4f514e4f696869514e4f514e4f514e4f514e4f514e4f302f2f514e4f514e4f514e4f -302f2f010101010101302f2f302f2f696869514e4f514e4f010101 -010101f50237f50237f50237f50237f50237f50237514e4f514e4f514e4f302f2f514e4f514e4f -514e4f514e4f514e4f514e4f514e4f514e4f696869696869696869514e4f302f2f302f2f302f2f -696869696869514e4f696869696869696869696869696869514e4f818181514e4f696869696869 -696869514e4f696869696869696869696869696869818181696869514e4f514e4f696869514e4f -514e4f514e4f514e4f696869302f2f302f2f514e4f514e4f696869514e4f696869696869696869 -514e4f8181819b9b9b9b9b9b818181818181818181696869696869696869818181696869818181 -696869514e4f696869696869696869818181818181696869514e4f514e4f696869696869514e4f -302f2f302f2f302f2f302f2f302f2f514e4f302f2f302f2f010101 -010101f50237f50237f50237f50237f50237f50237302f2f302f2f302f2f302f2f302f2f302f2f -514e4f514e4f302f2f514e4f514e4f514e4f302f2f696869696869514e4f514e4f514e4f514e4f -514e4f514e4f302f2f514e4f302f2f514e4f696869818181696869514e4f696869696869696869 -514e4f514e4f696869696869696869514e4f696869696869514e4f514e4f514e4f696869514e4f -514e4f302f2f514e4f514e4f514e4f302f2f514e4f514e4f514e4f696869818181696869696869 -696869696869818181818181818181818181818181818181696869818181818181818181818181 -818181818181818181696869696869696869696869696869696869818181818181696869696869 -696869696869514e4f514e4f514e4f302f2f514e4f514e4f010101 -010101f50237f50237f50237f50237f50237f50237302f2f010101302f2f302f2f302f2f302f2f -010101010101302f2f302f2f302f2f302f2f302f2f302f2f514e4f514e4f696869696869302f2f -514e4f514e4f696869302f2f302f2f514e4f302f2f302f2f696869514e4f302f2f302f2f514e4f -302f2f514e4f514e4f514e4f302f2f302f2f302f2f514e4f514e4f302f2f302f2f302f2f514e4f -514e4f302f2f010101302f2f302f2f302f2f514e4f514e4f302f2f514e4f514e4f514e4f514e4f -818181696869514e4f696869696869696869818181818181696869696869696869514e4f696869 -696869696869696869514e4f696869696869302f2f302f2f302f2f514e4f514e4f302f2f514e4f -514e4f514e4f514e4f514e4f302f2f302f2f302f2f302f2f010101 -010101f50237f50237f50237f50237f50237f50237514e4f514e4f302f2f514e4f514e4f514e4f -696869514e4f514e4f696869514e4f696869696869514e4f514e4f696869818181818181818181 -696869696869818181818181696869514e4f514e4f514e4f696869818181514e4f514e4f696869 -696869696869696869514e4f514e4f514e4f696869818181818181818181818181818181696869 -818181818181696869696869514e4f514e4f696869514e4f696869818181696869696869696869 -6968698181816968696968696968698181818181819b9b9b9b9b9b818181818181818181818181 -818181818181818181696869818181818181696869696869696869514e4f514e4f696869818181 -818181696869696869696869514e4f302f2f302f2f302f2f010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9 -ffffffe9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ffffffe9e9e9e9e9e9e9e9e9 -e9e9e9e9e9e9ffffffffffffe9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9 -e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ffffffffffffffffffffffffffffffe9e9e9 -e9e9e9ffffffffffffe9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9 -e9e9e9e9e9e9ffffffe9e9e9e9e9e9e9e9e9e9e9e9ffffffffffffffffffffffffe9e9e9e9e9e9 -ffffffffffffe9e9e9e9e9e9e9e9e9ffffffe9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9ffffff -e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9e9010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -d6d6d6d6d6d6ffffffffffffffffffffffffffffffe9e9e9d6d6d6d6d6d6ffffffffffffffffff -ffffffffffffffffffffffffffffffe9e9e9b3b3b3d6d6d6ffffffffffffffffffffffffffffff -c9c2c4c9c2c4d6d6d6ffffffffffffffffffffffffd6d6d6d6d6d6d6d6d6e9e9e9ffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -d6d6d6302f2f818181ffffffffffffffffffffffff818181302f2fd6d6d6ffffffffffffffffff -ffffffffffffffffffffffffb3b3b39b9b9bc9c2c4514e4fb3b3b3ffffffffffff9b9b9b696869 -d6d6d6d6d6d6818181696869e9e9e9ffffffffffffb3b3b3302f2f9b9b9be9e9e9ffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffff302f2f302f2fffffffffffffffffffffffff514e4f010101ffffffffffffffffffffffff -ffffffffffffffffffe9e9e9302f2fe9e9e9ffffffc9c2c4b3b3b3ffffff9b9b9b010101d6d6d6 -ffffffffffffe9e9e9514e4f514e4fffffffffffffd6d6d6010101b3b3b3ffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffff818181010101b3b3b3ffffffffffffd6d6d6696869010101ffffffe9e9e9c9c2c4e9e9e9 -ffffffe9e9e9c9c2c4e9e9e90101019b9b9bffffffffffffffffffffffff302f2f9b9b9bffffff -ffffffffffffffffffd6d6d60101019b9b9bffffffd6d6d6010101b3b3b3ffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffb3b3b3818181514e4fffffffe9e9e9b3b3b3b3b3b3010101ffffffd6d6d60101019b9b9b -ffffff818181514e4fffffff696869010101696869e9e9e9ffffffc9c2c4010101d6d6d6ffffff -ffffffffffffffffffe9e9e9302f2f818181ffffffd6d6d6010101b3b3b3ffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -e9e9e9b3b3b3c9c2c4010101d6d6d6d6d6d6b3b3b3c9c2c4302f2fe9e9e9ffffff696869514e4f -ffffffc9c2c4d6d6d6ffffffffffffb3b3b3010101302f2fe9e9e9c9c2c4010101c9c2c4ffffff -ffffffffffffffffffffffff514e4f696869ffffffd6d6d6010101b3b3b3ffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -c9c2c4b3b3b3ffffff514e4f696869b3b3b3ffffffd6d6d6302f2fe9e9e9ffffffd6d6d6302f2f -d6d6d6c9c2c4ffffffffffffffffffffffffe9e9e9302f2f302f2fffffff302f2f696869ffffff -ffffffffffffffffffe9e9e90101019b9b9bffffffd6d6d6010101b3b3b3ffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -818181b3b3b3ffffff9b9b9b010101b3b3b3ffffffe9e9e9302f2fe9e9e9ffffffffffff302f2f -818181e9e9e9ffffff9b9b9bd6d6d6ffffffffffff514e4f302f2fffffff818181010101c9c2c4 -ffffffffffffffffff9b9b9b302f2fe9e9e9ffffffe9e9e9010101b3b3b3ffffffffffffe9e9e9 -b3b3b3e9e9e9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffe9e9e9 -010101514e4fe9e9e9ffffff696869ffffffffffff818181010101818181ffffffffffffb3b3b3 -302f2fffffffffffffb3b3b3514e4fb3b3b3b3b3b3514e4fd6d6d6ffffffffffff818181302f2f -9b9b9bd6d6d6d6d6d6696869c9c2c4ffffffffffff9b9b9b010101696869c9c2c4c9c2c4514e4f -818181ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffe9e9e9 -b3b3b3b3b3b3e9e9e9ffffffe9e9e9ffffffffffffc9c2c4b3b3b3b3b3b3ffffffffffffffffff -9b9b9bffffffffffffffffffc9c2c4c9c2c4c9c2c4e9e9e9ffffffffffffffffffffffffd6d6d6 -818181302f2f514e4fffffffffffffffffffffffffc9c2c4b3b3b3c9c2c4c9c2c4c9c2c49b9b9b -e9e9e9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe9e9e9b3b3b3 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffc9c2c4302f2f302f2f818181d6d6d6ffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff514e4f818181 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffff818181302f2f818181ffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe9e9e9ffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffe9e9e9ffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4fffffffffffffffffffdd7e8fec2d9 -fec2d9fec2d9fec2d9fec2d9fec2d9fec2d9fec2d9fec2d9fdd7e8fdd7e8fec2d9fdd7e8ffffff -fcabc5fcabc5fdd7e8fec2d9fec2d9fec2d9fcabc5fec2d9fffffffdd7e8fcabc5fcabc5fec2d9 -fec2d9fec2d9fec2d9fdd7e8fffffffdd7e8fcabc5fec2d9fdd7e8fcabc5fcabc5fec2d9fdd7e8 -fdd7e8fdd7e8fffffffdd7e8fcabc5fcabc5fdd7e8fec2d9fdd7e8fec2d9fec2d9fffffffec2d9 -fcabc5fec2d9fec2d9fcabc5fcabc5fec2d9fec2d9fec2d9fec2d9fdd7e8ffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -fdd7e8fec2d9fec2d9fec2d9fec2d9fec2d9fdd7e8fec2d9fdd7e8fdd7e8fec2d9fdd7e8ffffff -fec2d9fec2d9fdd7e8fdd7e8fdd7e8fec2d9fcabc5fec2d9fffffffffffffdd7e8fec2d9fec2d9 -fec2d9fdd7e8fec2d9ffffffffffffe9e9e9fdd7e8e9e9e9fdd7e8fcabc5fec2d9fdd7e8fdd7e8 -fec2d9fdd7e8ffffffe9e9e9fec2d9fec2d9fec2d9fdd7e8fdd7e8fec2d9fec2d9fffffffdd7e8 -fec2d9fec2d9fec2d9fcabc5fec2d9fdd7e8fec2d9fec2d9fec2d9e9e9e9ffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffe9e9e9 -e9e9e9ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffe9e9e9 -c9c2c4b3b3b3b3b3b3d6d6d6e9e9e9ffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffc9c2c4 -ffffffffffffffffffd6d6d6c9c2c4d6d6d6ffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffe9e9e9302f2f -9b9b9bc9c2c4d6d6d6d6d6d6ffffffc9c2c4d6d6d6ffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffd6d6d6010101 -302f2f302f2f302f2f514e4fe9e9e9ffffffb3b3b3e9e9e9ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffe9e9e9514e4f -514e4f514e4f302f2f514e4fe9e9e9ffffffd6d6d6d6d6d6ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffe9e9e99b9b9b -d6d6d6e9e9e9b3b3b3d6d6d6ffffffffffffffffffc9c2c4e9e9e9ffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffe9e9e9302f2f -818181b3b3b3818181c9c2c4c9c2c49b9b9bc9c2c4d6d6d6e9e9e9ffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffd6d6d6e9e9e9ffffffffffffffffffffffffffffffe9e9e9e9e9e9e9e9e9ffffffd6d6d6 -e9e9e9ffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffd6d6d6302f2f -514e4f514e4f302f2f302f2f514e4f6968699b9b9bffffffd6d6d6ffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -e9e9e9c9c2c4e9e9e9d6d6d6d6d6d6e9e9e9e9e9e9ffffffe9e9e9e9e9e9d6d6d6e9e9e9c9c2c4 -c9c2c4e9e9e9e9e9e9d6d6d6d6d6d6ffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffe9e9e9514e4f -696869696869514e4f514e4f8181819b9b9b818181ffffffd6d6d6ffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffe9e9e9ffffffd6d6d6d6d6d6d6d6d6e9e9e9ffffffd6d6d6e9e9e9d6d6d6e9e9e9e9e9e9 -d6d6d6e9e9e9e9e9e9d6d6d6e9e9e9ffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffe9e9e9 -e9e9e9e9e9e9e9e9e9e9e9e9ffffffd6d6d6d6d6d6ffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101f50237f50237f50237f50237f50237f50237c9c2c4ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010101 -010101010101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101010101010101010101010101 -010101010101010101010101010101010101010101010101010101 -showpage -%%Trailer -end -%%EOF diff --git a/Docs/Books/dubois.gif b/Docs/Books/dubois.gif deleted file mode 100644 index 36e0af7a41d862855bfb9734f693d6e016926ca5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2026 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 diff --git a/Docs/Books/in_21.txt b/Docs/Books/in_21.txt deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/Docs/Books/manual.eps b/Docs/Books/manual.eps deleted file mode 100644 index 8bb88345060..00000000000 --- a/Docs/Books/manual.eps +++ /dev/null @@ -1,1221 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: GIMP PostScript file plugin V 1.06 by Peter Kirchgessner -%%Title: /opt/local/x1/work/bk/mysql/Docs/Books/manual.eps -%%CreationDate: Sun Dec 31 14:30:17 2000 -%%DocumentData: Clean7Bit -%%LanguageLevel: 2 -%%Pages: 1 -%%BoundingBox: 14 14 294 383 -%%EndComments -%%BeginPreview: 100 132 1 132 -% fffffffffffffffffffffffff0 -% 800000000000000000ff7c0010 -% 8000000000000000007fde0010 -% 8000000000000000003fef0010 -% 8000000000000000000ff7c010 -% 80000000000000000007bbe010 -% 80000000000000000001cef810 -% 80000000000000000000fb3c10 -% 800000000020000100007ffe10 -% 80000025130509400a603fef90 -% 800000000000000000000f7bd0 -% 8000000000000000000007fdf0 -% 8000aaaaaaaaaa55550543def0 -% 800100002410009012549cf770 -% 800024200041000100000079b0 -% 8001014a948855244924921ef0 -% 80002800201200011000040f70 -% 800102524540955422aaa007b0 -% 80002400800a52aa84000401f0 -% 8001089414954a4951492200f0 -% 80002101205250025510040070 -% 80010424454a82a894a2a00010 -% 80002088895410012544040010 -% 80010a11152924921490900010 -% 8000204224a201004aa2040010 -% 800109085554522a0484500010 -% 8000204149208040a2a0840010 -% 80010514aaa214890924100010 -% 800020229244410022a1240010 -% 80010a44aa88882a4488440010 -% 8000200a949112408822000010 -% 800104a4a50220091144940010 -% 8000210a94a404a02008040010 -% 80010824aa08a1050521240010 -% 8000224a929008204804440010 -% 80010415542292491150840010 -% 800120924a8400822202100010 -% 8001092aa910a4104048440010 -% 800110124a2209248a02040010 -% 800102aaa904400100a8a40010 -% 800124124a4892a82901040010 -% 800108aaa88100024024240010 -% 80011109251225240a40840010 -% 8001202aaa204000a08a100010 -% 8001051249050a540410440010 -% 8001104aaa4820012122040010 -% 80010214921109484840a40010 -% 8001288aaa824002020a000010 -% 80000129242415289090440010 -% 80012405558880010422140010 -% 80000894921024a42104800010 -% 80012102aaa288008848240010 -% 8000042a4940112a1211040010 -% 80012082aa4a42004082440010 -% 80010a11254008520924140010 -% 80012044a9294100a240840010 -% 800104889550142404a9240010 -% 80011011249240892120040010 -% 80012282155409104a85440010 -% 800104244924a02204a0100010 -% 80002088055505049549240010 -% 800109115124a0482902040010 -% 80002220045554814a90440010 -% 800104452089252aa924940010 -% 800020800912aaa52401040010 -% 80010914a22001284148240010 -% 80012200044488020812440010 -% 80010452908022a4a240040010 -% 80011080021550000409540010 -% 8001220820414a2120a2040010 -% 80010442890a54840000440010 -% 800129fffffffffbfffc940010 -% 800101fffffffffffffc000010 -% 800101fffffffffffffc040010 -% 8000bfffffff9ffffffdf80010 -% 800001ffffff9ffffffc000010 -% 800001ffffffdffffff8000010 -% 800001ffffff4ffffffc000010 -% 800001ffffff4ffffff8000010 -% 800001ffffff67fffffc000010 -% 800001ffffff7ffffff8000010 -% 800001fffffffffffffc000010 -% 80000186109470bdc41c000010 -% 800003d2f3bc979dbafc000010 -% 80000b927b9db7cf3efd000010 -% 800013d65296b0a57ebc400010 -% 80000bc6fbbc77b33ef9400010 -% 80000396f3bdb7f93efd000010 -% 800001da539492b99adc000010 -% 800001fbbfeffdffe6b8000010 -% 800001ffffffffdffffc000010 -% 800001ff7bbb933b9ff8000010 -% 800001fe73b9d7bbbffc000010 -% 800001fe739cf7bbbff8000010 -% 800001ff335a5739bffc000010 -% 800001fe9b1b37b5bff8000010 -% 800001fedacbb32cbffc000010 -% 800001fedaebb92c93f8000010 -% 800001fffffffdfffffc000010 -% 800001fffffffffffff8000010 -% 80000000000aab000248000010 -% 80000000000124000000000010 -% 80000000000090000000000010 -% 80000000000040000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000040000000000001000010 -% 80004200000002004240000010 -% 80000022110410240004400010 -% 80000000400000000800000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000010000004000000010 -% 80000000200202000020000010 -% 80000109000000004040000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 8002aaaaaaaaaaaaaa90000010 -% 80000000000000000825540010 -% 80000000000000000000000010 -% 80000000004020000000000010 -% 80000000020100100000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% fffffffffffffffffffffffff0 -%%EndPreview -%%BeginProlog -% Use own dictionary to avoid conflicts -5 dict begin -%%EndProlog -%%Page: 1 1 -% Translate for offset -14.400000 14.400000 translate -% Translate to begin of first scanline -0.000000 368.503937 translate -279.169649 -368.503937 scale -% Variable to keep one line of raster data -/scanline 100 3 mul string def -% Image geometry -100 132 8 -% Transformation matrix -[ 100 0 0 132 0 0 ] -{ currentfile scanline readhexstring pop } false 3 -colorimage -010102010102010102010102010102010102010102010102010102010102010102010102010102 -010102010102010102010102010102010102010102010102010102010102010102010102010102 -010102010102010102010102010102010102010102010102010102010102010102010102010102 -010102010102010102010102010102010102010102010102010102010102010102010102010102 -010102010102010102010102010102010102010102010102010102010102010102010102010102 -010102010102010102010102010102010102010102010102010102010102010102010102010102 -010102010102010102010102010102010102010102010102010102010102010102010102010102 -010102010102010102010102010102010102010102010102010102 -010102c6c8cdffffffececefececefececefececefececefececefececefececefececefececef -ececefececefececefececefececefececefececefececefececefececefececefececefececef -ececefececefececefececefececefececefececefececefececefececefececefececefececef -ececefececefececefececefececefececefececefececefececefececefececefececefececef -ececefececefececefececefececefececefececefececefececefececefececefececefececef -ececefececefececefececefececefffffffc6c8cd010102010102010102010102010102010102 -0101021c2026969aa13b424a0101020101020101023b424ae2effaffffffffffffececefececef -ececefececefececefececefececefececefececefececef010102 -010102ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffe2effa1c2026010102010102010102010102 -0101020101021c2026777f88777f881c20260101020101021c2026ececefffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffff5d636c010102010102010102 -0101025d636c1c20260101025d636c969aa13b424a010102010102010102969aa1ffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffadb4bc010102010102 -0101023b424a3b424a0101020101023b424ac6c8cd5d636c0101020101020101023b424affffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe2effa1c2026 -010102010102010102777f88777f88010102010102969aa15d636c010102010102010102010102 -c6c8cdffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -777f880101020101021c2026777f8867a3d11c20261c20265d636c5d636c777f88010102010102 -010102777f88ffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffadb4bc0101020101020101023b424a5d636c5d636c0101021c2026adb4bc969aa11c2026 -0101020101023b424affffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -969aa1c6c8cdffffffc6c8cdadb4bcadb4bcececefececefc6c8cdc6c8cdececefffffff969aa1 -adb4bcffffffd7dde5777f88d7dde5ffffffc6c8cdc6c8cdc6c8cdffffffffffffffffffececef -969aa1ececefffffffadb4bcadb4bcd7dde5ffffffc6c8cdd7dde5ffffff9ec8e8969aa1ffffff -ececefc6c8cdffffffd7dde5c6c8cdc6c8cdffffffececefc6c8cdd7dde5ffffffffffffffffff -ffffffffffffececef1c20260101020101021c20265d636c1c20260101020101025d636c5d636c -3b424a010102010102010102c6c8cdffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -777f88c6c8cdffffff969aa1c6c8cdadb4bcc6c8cdffffffadb4bc969aa1d7dde5ffffff5d636c -777f88ffffffffffff777f88ffffffffffff969aa1777f88adb4bcffffffffffffffffffd7dde5 -777f88ececefffffff969aa1c6c8cd777f88ffffffc6c8cdc6c8cdffffffc6c8cdadb4bcffffff -d7dde5adb4bcffffff777f88c6c8cd969aa1ececefececef5d636c777f88ffffffffffffffffff -ffffffffffffffffffffffff777f880101020101020101023b424a3b424a0101020101023b424a -5d636c1c20261c2026010102010102777f88ffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -d7dde5ffffffffffffffffffd7dde5d7dde5ffffffffffffc6c8cdadb4bcffffffffffffc6c8cd -c6c8cdffffffffffffc6c8cdffffffffffffececefececefececefffffffffffffffffffffffff -c6c8cdececefffffffc6c8cdc6c8cdd7dde5ffffffd7dde5ececefffffffd7dde5d7dde5ffffff -ececefd7dde5ffffffd7dde5c6c8cdc6c8cdffffffffffffd7dde5adb4bcececefffffffffffff -ffffffffffffffffffffffffffffffc6c8cd0101020101020101020101025d636c3b424a010102 -0101023b424a777f880101020101020101023b424affffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffff3b424a0101020101020101023b424a5d636c -0101020101025d636c777f88010102010102010102010102010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffadb4bc3b424a777f88777f88969aa1777f88969aa1777f88969aa1969aa1777f88 -969aa1969aa1969aa1969aa1969aa1969aa1969aa1777f88777f88777f88777f88777f88777f88 -777f88777f88777f88777f88777f88777f88777f88777f88777f88969aa1969aa1969aa1969aa1 -969aa1969aa1969aa1adb4bcadb4bc969aa1777f88969aa1969aa1777f88969aa1969aa1969aa1 -969aa1969aa1777f88969aa1969aa1969aa1969aa1adb4bcadb4bcadb4bcadb4bcadb4bc969aa1 -969aa1969aa1969aa1969aa1969aa1969aa1adb4bcc6c8cd5d636c010102010102010102777f88 -777f881c20260101025d636cadb4bc5d636c010102010102010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff777f88969aa1d7dde5adb4bcc6c8cdadb4bcc6c8cdadb4bcc6c8cdadb4bcc6c8cd -c6c8cdadb4bcc6c8cdadb4bcc6c8cdadb4bcc6c8cd9ec8e8969aa1969aa1adb4bcadb4bcadb4bc -adb4bcadb4bcadb4bcadb4bcadb4bcadb4bcadb4bcadb4bcadb4bcadb4bcadb4bcadb4bcadb4bc -c6c8cdadb4bcc6c8cdc6c8cdadb4bcadb4bcadb4bc969aa1adb4bcadb4bcadb4bcadb4bcadb4bc -adb4bcadb4bc969aa1969aa1969aa1969aa1adb4bc969aa1969aa1adb4bc969aa1adb4bc969aa1 -969aa1969aa1969aa1969aa1969aa1969aa1969aa15d636cd7dde5d7dde5010102010102010102 -5d636cadb4bc3b424a0101021c2026969aa15d636c010102010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff777f88d7dde5e2effa9ec8e89ec8e8b6daf59ec8e8b6daf59ec8e8b6daf5b6daf5 -9ec8e89ec8e8b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5 -b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5 -b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5 -b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5 -b6daf5b6daf5d7dde5b6daf5d7dde5b6daf5ffffff969aa1adb4bcffffffffffff3b424a010102 -0101021c2026969aa1969aa11c2026010102777f88777f88010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff777f88c6c8cdb6daf584b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -84b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd9ec8e8 -9ec8e89ec8e89ec8e884b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa969aa1adb4bcffffffffffffffffff777f88 -0101020101020101025d636c969aa13b424a0101025d636c010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff777f88c6c8cdb6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa969aa1969aa1ffffffffffffffffffffffff -c6c8cd0101020101020101023b424aadb4bc5d636c010102010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff777f88c6c8cdb6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd -84b7dd84b7dd84b7dd84b7dd84b7dd84b7dd84b7dd84b7dd84b7dd9ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa969aa1adb4bcffffffffffffffffffffffff -ffffffffffff3b424a010102010102010102777f883b424a010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff777f88c6c8cdb6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd84b7dd84b7dd67a3d167a3d167a3d167a3d1 -67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -84b7dd84b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88adb4bcffffffffffffffffffffffff -ffffffffffffffffff777f88010102010102010102010102010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff777f88c6c8cdb6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e884b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d167a3d167a3d167a3d184b7dd84b7dd84b7dd9ec8e884b7dd9ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa969aa1969aa1ffffffffffffffffffffffff -ffffffffffffffffffffffffc6c8cd010102010102010102010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff777f88c6c8cdb6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e884b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d184b7dd -84b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd84b7dd67a3d167a3d1 -67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d184b7dd9ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa969aa1adb4bcffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffff3b424a010102010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff777f88c6c8cdb6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd -67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d184b7dd9ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd -67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d184b7dd9ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa969aa1c6c8cdffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffff777f88010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff777f88c6c8cdb6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd67a3d167a3d1 -67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d184b7dd9ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d184b7dd9ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa969aa1c6c8cdffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff777f88c6c8cdb6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd67a3d167a3d167a3d1 -67a3d167a3d167a3d167a3d167a3d167a3d167a3d184b7dd9ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d184b7dd9ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa969aa1c6c8cdffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff777f88c6c8cdb6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d167a3d1 -67a3d167a3d167a3d167a3d167a3d167a3d184b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d167a3d167a3d184b7dd9ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa969aa1c6c8cdffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff5d636cc6c8cdb6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d167a3d167a3d167a3d167a3d184b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d167a3d167a3d19ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa969aa1c6c8cdffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff777f88c6c8cdb6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d167a3d167a3d167a3d184b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e884b7dd67a3d167a3d167a3d167a3d167a3d19ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88c6c8cdffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff777f88d7dde5b6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d167a3d167a3d167a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d167a3d19ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88c6c8cdffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff777f88d7dde5b6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d167a3d167a3d184b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e884b7dd67a3d167a3d167a3d167a3d19ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88c6c8cdffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff777f88d7dde5b6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e884b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d167a3d167a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d19ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88c6c8cdffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff777f88d7dde5b6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d167a3d184b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd84b7dd84b7dd9ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ffffff777f88c6c8cdffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff777f88d7dde5b6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e884b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d167a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88c6c8cdffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff777f88d7dde5b6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d167a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88c6c8cdffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff777f88d7dde5b6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e884b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d184b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88c6c8cdffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff777f88d7dde5b6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d184b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88c6c8cdffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff5d636cd7dde5b6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88c6c8cdffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff5d636cd7dde5b6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8b6daf5 -9ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88c6c8cdffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff5d636cd7dde5b6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -84b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88c6c8cdffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff5d636cececef9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -84b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88c6c8cdffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff5d636cececef9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -84b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88c6c8cdffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff5d636cececef9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -84b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -84b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88c6c8cdffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff5d636cececef9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -84b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -84b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88c6c8cdffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff5d636cececef9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -84b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88c6c8cdffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff5d636cececef9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -84b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ffffff969aa1d7dde5ffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff5d636cececef9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -84b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa969aa1d7dde5ffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff5d636cececefb6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ececef777f88d7dde5ffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff5d636cd7dde59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ffffff777f88d7dde5ffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff5d636cd7dde59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e884b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d184b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ffffff777f88d7dde5ffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff777f88d7dde59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e884b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d184b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ffffff777f88d7dde5ffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff5d636cd7dde59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d167a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ffffff777f88ececefffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff777f88d7dde59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e884b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d167a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ffffff777f88ececefffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff777f88d7dde59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d167a3d184b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ffffff777f88d7dde5ffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff777f88d7dde59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d167a3d167a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa5d636cececefffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff5d636cececef9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d167a3d167a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa5d636cececefffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff5d636cececef9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e884b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d167a3d167a3d167a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ececef5d636cececefffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff5d636cececef9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e884b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d167a3d167a3d167a3d184b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e867a3d167a3d167a3d19ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ececef5d636cd7dde5ffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff5d636cececef9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d167a3d167a3d167a3d167a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd67a3d167a3d167a3d184b7dd9ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ececef5d636cececefffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff5d636cececef9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d167a3d167a3d167a3d167a3d167a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e884b7dd67a3d167a3d167a3d167a3d19ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ececef777f88ececefffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff5d636cececef9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd67a3d167a3d167a3d167a3d1 -67a3d167a3d167a3d167a3d167a3d167a3d167a3d19ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d184b7dd9ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ececef5d636cececefffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff5d636cececef9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd67a3d167a3d167a3d1 -67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d19ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d167a3d19ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88ececefffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff777f88ffffff9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd67a3d167a3d1 -67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d184b7dd9ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e884b7dd67a3d167a3d167a3d167a3d167a3d167a3d19ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ececef777f88e2effaffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff777f88ffffff9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd -67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d184b7dd9ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e884b7dd67a3d167a3d167a3d167a3d167a3d167a3d184b7dd9ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88ececefffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff777f88ececef9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e884b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -84b7dd84b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd -67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d184b7dd9ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa777f88ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff777f88ffffff9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e884b7dd84b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d167a3d167a3d167a3d184b7dd84b7dd84b7dd84b7dd84b7dd67a3d167a3d167a3d167a3d1 -67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d19ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ececef5d636cffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff777f88ffffff9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd84b7dd67a3d167a3d167a3d167a3d167a3d1 -67a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d167a3d167a3d167a3d167a3d184b7dd84b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ececef5d636cffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff777f88ffffff9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8b6daf59ec8e89ec8e89ec8e884b7dd84b7dd -84b7dd84b7dd84b7dd67a3d167a3d167a3d167a3d167a3d184b7dd84b7dd84b7dd84b7dd84b7dd -84b7dd84b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ececef5d636cffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffececef5d636cffffff9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8b6daf5b6daf5b6daf5 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ececef5d636cffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffececef5d636cffffff9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e884b7dd67a3d19ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ececef5d636cffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffececef5d636cffffff9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e867a3d167a3d167a3d167a3d1 -84b7dd9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8ececef5d636cffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffececef5d636ce2effa9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8b6daf5 -b6daf59ec8e89ec8e8b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5 -b6daf5b6daf59ec8e89ec8e8b6daf5b6daf59ec8e884b7dd67a3d167a3d167a3d167a3d167a3d1 -67a3d167a3d184b7dd9ec8e8b6daf5b6daf59ec8e89ec8e8b6daf5b6daf5b6daf59ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8e2effa5d636cffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffececef5d636cffffff9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -b6daf59ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8 -9ec8e89ec8e89ec8e89ec8e8b6daf584b7dd67a3d167a3d167a3d167a3d167a3d167a3d167a3d1 -67a3d167a3d167a3d184b7dd9ec8e89ec8e8b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5 -b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5b6daf5 -9ec8e89ec8e89ec8e89ec8e89ec8e89ec8e8d7dde5777f88ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffececef5d636ce2effa84b7dd84b7dd84b7dd84b7dd9ec8e884b7dd1c20261c20263b424a -3b424a3b424a3b424a3b424a3b424a3b424a3b424a3b424a3b424a3b424a3b424a3b424a3b424a -3b424a3b424a3b424a3b424a3b424a3b424a3b424a3b424a3b424a3b424a3b424a3b424a3b424a -3b424a3b424a3b424a3b424a3b424a3b424a5d636c5d636c5d636c5d636c5d636c5d636c5d636c -5d636c5d636c5d636c5d636c3b424a5d636c5d636c5d636c5d636c5d636c5d636c5d636c777f88 -9ec8e89ec8e89ec8e884b7dd84b7dd9ec8e8d7dde55d636cffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffececef5d636cffffffb6daf5b6daf5e2effab6daf5e2effa9ec8e80101023b424a1c2026 -1c20261c20261c20261c20261c20261c20261c20261c20261c20261c20261c20260101021c2026 -0101020101020101020101020101021c20261c20263b424a1c20261c20261c20261c20261c2026 -1c20260101021c20261c20261c20261c20261c20261c20261c20261c20261c20261c20261c2026 -1c20261c20261c20261c20261c20261c20261c20261c20261c20260101021c20260101021c2026 -b6daf59ec8e89ec8e89ec8e89ec8e89ec8e8ececef777f88ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffececef3b424ad7dde5c6c8cdc6c8cdc6c8cdc6c8cdd7dde5c6c8cd1c20263b424a010102 -010102010102010102010102010102010102010102010102010102010102010102010102010102 -0101020101020101020101020101020101020101020101020101020101020101023b424a010102 -010102010102010102010102010102010102010102010102010102010102010102010102010102 -0101020101020101020101020101020101020101020101020101020101020101023b424a3b424a -ffffffffffffe2effae2effae2effaffffffffffff5d636cffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffff777f88777f88777f88777f88777f88777f88777f885d636c0101021c2026010102 -010102010102010102010102010102010102010102010102010102010102010102010102010102 -010102010102010102010102010102010102010102010102010102010102777f88ececef010102 -010102010102010102010102010102010102010102010102010102010102010102010102010102 -0101020101020101020101020101020101020101020101020101020101020101023b424a1c2026 -777f88777f885d636c5d636c5d636c5d636c5d636c5d636cffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffececef1c20261c2026010102 -010102010102010102010102010102010102010102010102010102010102010102010102010102 -010102010102010102010102010102010102010102010102010102010102adb4bcffffff1c2026 -010102010102010102010102010102010102010102010102010102010102010102010102010102 -0101020101020101020101020101020101020101020101020101020101020101021c20263b424a -ececefd7dde5d7dde5d7dde5d7dde5d7dde5c6c8cdffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0101021c2026010102 -010102010102010102010102010102010102010102010102010102010102010102010102010102 -0101020101020101020101020101020101020101020101020101023b424a5d636cadb4bc969aa1 -010102010102010102010102010102010102010102010102010102010102010102010102010102 -0101020101020101020101020101020101020101020101020101020101020101021c20265d636c -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffececef1c20261c2026010102 -010102010102010102010102010102010102010102010102010102010102010102010102010102 -010102010102010102010102010102010102010102010102010102969aa1777f88969aa1ececef -010102010102010102010102010102010102010102010102010102010102010102010102010102 -0101020101020101020101020101020101020101020101020101020101020101021c20265d636c -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffe2effa1c20261c2026010102 -010102010102010102010102010102010102010102010102010102010102010102010102010102 -010102010102010102010102010102010102010102010102010102adb4bc777f88777f88ffffff -3b424a010102010102010102010102010102010102010102010102010102010102010102010102 -0101020101020101020101020101020101020101020101020101020101020101021c20265d636c -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffececef1c20261c2026010102 -010102010102010102010102010102010102010102010102010102010102010102010102010102 -010102010102010102010102010102010102010102010102777f88adb4bc010102010102ececef -adb4bc010102010102010102010102010102010102010102010102010102010102010102010102 -0101020101020101020101020101020101020101020101020101020101020101021c20265d636c -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffececef0101023b424a1c2026 -1c20261c20261c20261c20261c20261c20261c20261c20260101021c20261c2026010102010102 -0101021c20261c20260101020101020101021c20260101025d636c5d636c0101020101025d636c -777f88010102010102010102010102010102010102010102010102010102010102010102010102 -0101020101020101020101020101020101020101020101020101020101020101021c20265d636c -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff0101023b424a3b424a -3b424a3b424a3b424a1c20263b424a3b424a3b424a3b424a3b424a3b424a1c20261c20263b424a -3b424a3b424a1c20261c20261c20263b424a3b424a3b424a1c20261c20261c20261c20261c2026 -1c20263b424a3b424a3b424a1c20261c20261c20263b424a3b424a3b424a1c20263b424a1c2026 -1c20261c20263b424a3b424a3b424a3b424a3b424a3b424a5d636c3b424a0101020101025d636c -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffd7dde5010102010102777f88 -e2effa777f88adb4bc010102010102c6c8cdadb4bc777f88c6c8cd1c2026969aa1c6c8cd777f88 -adb4bc3b424aadb4bcadb4bc777f88c6c8cd1c2026777f88c6c8cd777f88777f88010102010102 -d7dde5adb4bc969aa1c6c8cd010102777f883b424a0101020101021c2026c6c8cd1c2026010102 -3b424a969aa1777f88adb4bc5d636c3b424aadb4bc777f88adb4bc777f880101021c20265d636c -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffb6daf5777f88010102010102777f88 -d7dde5010102c6c8cdc6c8cd010102d7dde5777f880101021c2026010102969aa1ececef010102 -010102010102ececef777f880101021c2026010102969aa1c6c8cd010102ececef777f88010102 -ffffff5d636c0101025d636c010102c6c8cdffffff010102010102010102c6c8cd0101025d636c -ffffff1c20260101021c2026969aa13b424affffff0101021c2026777f880101023b424a3b424a -b6daf5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffb6daf567a3d167a3d1777f88010102010102777f88 -c6c8cd010102969aa1c6c8cd010102d7dde5969aa1010102010102010102969aa1d7dde5010102 -010102010102d7dde5777f88010102010102010102969aa1adb4bc010102d7dde5969aa1010102 -e2effa5d636c010102010102010102777f88ffffffececef010102010102777f88010102ffffff -969aa10101020101020101020101021c2026ffffff0101020101020101020101023b424a1c2026 -67a3d167a3d1d7dde5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffff67a3d167a3d167a3d184b7dd777f880101020101025d636c -ececef5d636cadb4bc1c2026010102c6c8cdd7dde5777f88c6c8cd010102777f88ffffff777f88 -adb4bc010102c6c8cdc6c8cd777f88d7dde5010102777f88c6c8cd5d636cadb4bc010102010102 -e2effaadb4bc777f88969aa1010102777f881c2026ffffffadb4bc010102777f88010102ffffff -5d636c0101020101020101020101021c2026ffffff777f88969aa15d636c0101023b424a3b424a -84b7dd67a3d167a3d167a3d1e2effaffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffe2effa84b7dd67a3d167a3d1777f880101020101025d636c -d7dde5ffffff969aa1010102010102d7dde5969aa11c20263b424a010102777f88d7dde51c2026 -1c2026010102c6c8cd777f881c20263b424a010102777f88d7dde5ffffff5d636c010102010102 -e2effa777f883b424a3b424a010102969aa1010102010102ffffff969aa15d636c010102ffffff -777f880101020101020101020101021c2026ffffff3b424a3b424a3b424a0101023b424a3b424a -84b7dd67a3d167a3d167a3d1e2effaffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffe2effa9ec8e8777f88010102010102777f88 -adb4bc1c2026ffffff3b424a010102d7dde55d636c010102010102010102777f88c6c8cd010102 -010102010102d7dde53b424a010102010102010102969aa1777f883b424affffff1c2026010102 -e2effa3b424a010102010102010102969aa11c20260101023b424affffffc6c8cd010102c6c8cd -ececef0101020101020101020101021c2026ffffff0101020101020101020101023b424a3b424a -67a3d184b7dde2effaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffadb4bc010102010102777f88 -d7dde50101025d636cececef1c2026d7dde5adb4bc3b424aadb4bc1c2026969aa1d7dde5010102 -010102010102ffffffadb4bc5d636c969aa13b424a969aa1c6c8cd010102adb4bcececef1c2026 -ffffffadb4bc3b424a969aa13b424ac6c8cd5d636c010102010102969aa1d7dde5010102010102 -d7dde5adb4bc1c20265d636c777f885d636cffffff3b424a3b424a969aa11c20263b424a3b424a -e2effaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff1c20263b424a3b424a -3b424a1c20261c20265d636c3b424a3b424a5d636c777f88777f883b424a5d636c5d636c3b424a -1c20261c20265d636c5d636c777f885d636c1c20263b424a5d636c1c20261c20265d636c3b424a -3b424a5d636c5d636c5d636c1c20263b424a3b424a0101020101020101023b424a010102010102 -0101025d636c969aa1969aa15d636c3b424a777f885d636c777f88777f880101020101025d636c -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffd7dde51c20263b424a010102 -0101021c20261c20260101020101021c20261c20261c20261c20263b424a1c20261c20263b424a -1c20261c20261c20260101021c20261c20261c20261c20261c20263b424a3b424a3b424a1c2026 -1c20261c20261c20261c20263b424a3b424a3b424a3b424a3b424a3b424a1c20263b424a3b424a -3b424a1c20261c20261c20261c20263b424a1c20261c20261c20261c20260101021c20265d636c -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffc6c8cd0101021c2026010102 -0101020101020101020101020101025d636c5d636c0101020101020101021c2026777f88010102 -010102010102777f88010102010102010102c6c8cd3b424a0101020101025d636cadb4bc010102 -e2effa777f88010102010102777f88d7dde50101020101020101025d636c010102010102010102 -d7dde5777f880101020101020101020101020101020101020101020101020101021c20265d636c -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffc6c8cd0101021c2026010102 -010102010102010102010102010102adb4bcffffff010102010102010102d7dde5c6c8cd010102 -0101025d636cffffff1c2026010102010102ffffffffffff0101020101023b424a969aa1010102 -ffffff5d636c010102010102777f88ffffff0101020101023b424affffff1c2026010102010102 -ffffff777f880101020101020101020101020101020101020101020101020101021c20265d636c -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffc6c8cd0101021c2026010102 -010102010102010102010102010102969aa1ffffff5d636c0101021c2026ffffffc6c8cd010102 -0101025d636cffffff777f88010102010102777f88ffffffd7dde50101021c2026777f88010102 -ececef3b424a0101020101025d636cd7dde50101020101025d636cffffff777f88010102010102 -d7dde55d636c0101020101020101020101020101020101020101020101020101021c20265d636c -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffc6c8cd0101021c2026010102 -0101020101020101020101020101025d636cadb4bcd7dde50101025d636cadb4bcc6c8cd010102 -1c20265d636c5d636cd7dde5010102010102777f88010102ffffff969aa11c2026777f88010102 -e2effa5d636c0101020101025d636ce2effa0101021c20263b424a5d636cd7dde5010102010102 -ececef5d636c0101020101020101020101020101020101020101020101020101021c20265d636c -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffc6c8cd0101021c2026010102 -010102010102010102010102010102777f88010102d7dde5adb4bc5d636c5d636cececef010102 -5d636cd7dde5969aa1ffffff1c2026010102969aa10101021c2026ffffffadb4bc5d636c010102 -e2effa5d636c0101020101025d636cd7dde50101023b424ac6c8cd777f88ffffff1c2026010102 -e2effa5d636c0101020101020101020101020101020101020101020101020101021c2026777f88 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffc6c8cd0101021c2026010102 -0101020101020101020101021c2026adb4bc010102777f88ffffff1c20261c2026ffffff010102 -969aa15d636c010102d7dde5969aa1010102adb4bc0101020101025d636cffffff777f88010102 -e2effaadb4bc010102010102adb4bcd7dde5010102969aa15d636c010102ececef969aa1010102 -d7dde55d636c0101020101021c20260101020101020101020101020101020101021c2026777f88 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffc6c8cd0101021c2026010102 -0101020101020101020101021c2026d7dde5010102010102777f880101023b424ad7dde55d636c -c6c8cd010102010102777f88d7dde53b424ad7dde51c2026010102010102969aa1777f88010102 -3b424affffffc6c8cd777f88d7dde5c6c8cd3b424ad7dde51c2026010102777f88ececef010102 -e2effaadb4bc3b424ad7dde5777f88010102010102010102010102010102010102010102777f88 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffc6c8cd0101021c2026010102 -010102010102010102010102010102010102010102010102010102010102010102010102010102 -1c20260101020101020101021c20261c20263b424a0101020101020101020101021c2026010102 -0101021c2026777f881c20260101021c20260101021c20260101020101020101021c2026010102 -1c20261c20261c20263b424a0101020101020101020101020101020101020101021c2026777f88 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffc6c8cd0101021c20261c2026 -1c20261c20261c20261c20260101020101020101021c20260101021c2026010102010102010102 -0101020101021c20260101020101020101021c20261c20261c20261c20261c20261c20261c2026 -1c20260101020101020101020101020101020101020101020101020101020101020101021c2026 -0101020101020101020101020101020101020101020101020101020101021c20260101025d636c -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc6c8cdc6c8cdc6c8cd -c6c8cdc6c8cdc6c8cdd7dde5c6c8cdd7dde5d7dde5d7dde5d7dde5d7dde5d7dde5c6c8cdd7dde5 -c6c8cdadb4bcc6c8cdc6c8cd969aa1777f88777f885d636c777f885d636c777f88777f885d636c -777f885d636c777f885d636c777f88adb4bcadb4bcadb4bcadb4bcadb4bcadb4bcadb4bcadb4bc -adb4bcadb4bcadb4bcadb4bcadb4bc969aa1969aa1969aa1969aa1969aa1969aa1777f88c6c8cd -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffff9ec8e867a3d167a3d184b7dd84b7dd67a3d184b7dd -67a3d167a3d184b7dde2effaffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffe2effa67a3d167a3d167a3d167a3d167a3d1 -67a3d1b6daf5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffb6daf567a3d167a3d19ec8e8 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe2effaffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffd7dde5b6daf5e2effaffffffe2effaffffffffffffffffffececef -ffffffffffffe2effaffffffb6daf5e2effaffffffd7dde5e2effad7dde5d7dde5d7dde5e2effa -b6daf5ffffffffffffffffffffffffd7dde5b6daf5e2effaffffffffffffffffffffffffd7dde5 -ffffffffffffd7dde5ffffffffffffececefffffffffffffd7dde5d7dde5e2effaffffffe2effa -e2effaffffffffffffe2effaffffffe2effad7dde5ffffffffffffe2effae2effae2effaffffff -ffffffffffffffffffffffffe2effaffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffd7dde59ec8e8ffffffffffffffffff9ec8e89ec8e8ffffffd7dde567a3d1 -ffffffffffff67a3d1ffffff84b7dde2effaffffff9ec8e8d7dde59ec8e8e2effaffffffe2effa -84b7dde2effaffffffffffffffffff9ec8e8b6daf5b6daf5b6daf5ffffffffffffe2effa84b7dd -ffffffffffff84b7ddffffffffffff84b7ddffffffffffff84b7ddd7dde59ec8e8e2effa9ec8e8 -e2effab6daf5b6daf59ec8e8d7dde5d7dde5ffffffe2effab6daf5b6daf5ffffffb6daf5b6daf5 -e2effa67a3d1ffffffffffffb6daf5ffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffff67a3d19ec8e8ffffffffffffb6daf584b7ddffffffe2effa67a3d1 -e2effaffffff84b7ddffffff9ec8e8ffffffffffffb6daf5e2effab6daf5b6daf5e2effae2effa -9ec8e8ffffffffffffffffffffffffb6daf5b6daf5b6daf5d7dde5ffffffffffffffffff84b7dd -e2effab6daf584b7ddffffffffffff84b7ddb6daf5ffffff9ec8e8d7dde5b6daf5ffffff9ec8e8 -9ec8e8d7dde5e2effa9ec8e8d7dde584b7ddffffffffffff67a3d1e2effaffffffffffff84b7dd -e2effa9ec8e884b7ddffffffe2effaffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffff9ec8e8b6daf5e2effad7dde584b7ddd7dde5ececefd7dde5 -84b7ddd7dde5b6daf5ececef9ec8e8e2effaffffff9ec8e8e2effa9ec8e8e2effaffffffe2effa -9ec8e8ffffffffffffffffffffffffb6daf59ec8e8ffffffffffffffffffffffffffffff84b7dd -ffffffffffff84b7ddffffffb6daf59ec8e89ec8e8ffffffb6daf567a3d1d7dde5ffffff9ec8e8 -d7dde5b6daf5e2effa9ec8e8ffffffe2effa84b7dd9ec8e884b7dde2effaffffffffffff67a3d1 -e2effaffffffe2effa67a3d1b6daf5ffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffb6daf5e2effad7dde5b6daf5ffffffe2effa9ec8e8e2effaffffff -d7dde5ffffffb6daf5e2effae2effa84b7dde2effa84b7ddd7dde59ec8e8d7dde5e2effae2effa -9ec8e8d7dde5b6daf5ffffffffffff9ec8e8d7dde5ffffffe2effaffffffffffffe2effa84b7dd -ffffffffffff9ec8e8d7dde5b6daf5ffffff9ec8e8b6daf5b6daf5ececef9ec8e8e2effa9ec8e8 -d7dde5b6daf5d7dde59ec8e8ffffffffffffd7dde5b6daf5d7dde5b6daf5ffffffb6daf5b6daf5 -e2effab6daf5ffffffb6daf584b7ddffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffe2effaffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe2effae2effaffffff -ffffffe2effae2effaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe2effaffffff -ffffffffffffffffffffffffffffffe2effaffffffffffffffffffe2effae2effae2effaffffff -ffffffe2effaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffe2effad7dde5e2effa -e2effae2effad7dde5ffffffffffffd7dde5e2effae2effaffffffe2effaffffffffffffe2effa -e2effaffffffffffffffffffffffffffffffffffffe2effad7dde5d7dde5d7dde5d7dde5d7dde5 -e2effae2effae2effae2effaffffffe2effad7dde5e2effaffffffe2effaffffffffffffffffff -e2effae2effaffffffffffffffffffe2effaffffffe2effaececefffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffd7dde584b7ddffffffffffff -ffffffb6daf59ec8e8ffffffffffff84b7dde2effa9ec8e8e2effab6daf5ffffffffffffb6daf5 -84b7ddffffffffffffffffffffffffffffffe2effab6daf5ffffffe2effaffffff9ec8e89ec8e8 -ffffff9ec8e89ec8e8ffffffffffff84b7ddb6daf5ffffffececef84b7ddffffffffffffd7dde5 -84b7ddffffffffffffffffffffffff9ec8e8b6daf59ec8e8d7dde59ec8e8e2effaffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffff84b7ddb6daf5ffffffffffff -ffffffd7dde5b6daf5ffffffffffff9ec8e8ffffffb6daf584b7ddffffffffffffffffffd7dde5 -9ec8e8ffffffffffffffffffffffffffffffececef67a3d1b6daf5ffffffffffffd7dde5b6daf5 -ffffffd7dde59ec8e8d7dde5ffffff9ec8e8b6daf5e2effaffffff9ec8e8ffffffffffffececef -84b7dde2effae2effaffffffffffff84b7dde2effad7dde5d7dde59ec8e8e2effaffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffb6daf59ec8e8ffffffffffff -d7dde59ec8e89ec8e8ffffffe2effa84b7ddffffffe2effa84b7ddffffffffffffffffffd7dde5 -9ec8e8ffffffffffffffffffffffffffffffffffffe2effa84b7ddb6daf5ffffffd7dde5b6daf5 -ffffffd7dde59ec8e8e2effaffffffb6daf5d7dde5ffffffffffff9ec8e8ffffffffffffe2effa -84b7dde2effaffffffffffffffffff9ec8e8e2effad7dde567a3d1d7dde5ffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffb6daf5e2effae2effa -9ec8e8ffffff9ec8e8d7dde5d7dde59ec8e8ffffffe2effa9ec8e8ffffffffffffffffffe2effa -9ec8e8e2effae2effae2effaffffffffffffffffffe2effad7dde5e2effaffffffb6daf5b6daf5 -ffffffd7dde59ec8e8ffffffffffff9ec8e8b6daf5ffffffe2effa9ec8e8e2effae2effab6daf5 -9ec8e8ffffffe2effaffffffffffff9ec8e8e2effad7dde5d7dde59ec8e8e2effaffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffe2effaffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffe2effaffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffd7dde5ffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102d7dde5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -c6c8cd969aa1969aa1969aa1969aa1969aa1969aa1969aa1969aa1969aa1969aa1969aa1969aa1 -777f88777f88777f88969aa1777f88969aa1969aa1969aa1969aa1969aa1969aa1969aa1777f88 -777f88777f88969aa1969aa1969aa1969aa1969aa1969aa1969aa1969aa1969aa1969aa1969aa1 -969aa1969aa1969aa1969aa1969aa1969aa1969aa1969aa1969aa1969aa1969aa1adb4bc969aa1 -969aa1969aa1969aa1777f88777f88969aa1adb4bc969aa1969aa1adb4bcadb4bcadb4bcadb4bc -adb4bcadb4bcadb4bcadb4bcadb4bcadb4bcadb4bcadb4bcffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -e2effad7dde5d7dde5d7dde5d7dde5d7dde5d7dde5d7dde5d7dde5d7dde5d7dde5d7dde5d7dde5 -c6c8cdc6c8cdc6c8cdc6c8cdc6c8cdc6c8cdc6c8cdd7dde5d7dde5c6c8cdc6c8cdd7dde5c6c8cd -adb4bcc6c8cdc6c8cdc6c8cdc6c8cdc6c8cdadb4bcc6c8cdc6c8cdc6c8cdc6c8cdc6c8cdadb4bc -c6c8cdc6c8cdadb4bcc6c8cdc6c8cdc6c8cdc6c8cdc6c8cdc6c8cdc6c8cdc6c8cdadb4bcadb4bc -adb4bcadb4bcadb4bc969aa1adb4bcc6c8cdadb4bcadb4bcadb4bcadb4bcadb4bcadb4bcadb4bc -adb4bcadb4bcadb4bcadb4bcadb4bcadb4bcadb4bcadb4bcffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffd7dde5e2effaffffffffffffffffff -ffffffd7dde5e2effae2effae2effab6daf5ffffffffffffffffffffffffb6daf5ffffffffffff -e2effaffffffffffffffffffe2effaffffffe2effaffffffffffffffffffe2effaffffffe2effa -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff9ec8e8e2effaffffff9ec8e8d7dde5 -ffffffb6daf59ec8e8ffffffe2effa9ec8e8ffffffd7dde59ec8e8ffffff9ec8e89ec8e8ffffff -e2effaffffffffffffffffff9ec8e8e2effa9ec8e8e2effaffffffb6daf5b6daf5ffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff9ec8e8ffffffe2effa9ec8e89ec8e8 -e2effa9ec8e89ec8e8ffffffd7dde5b6daf5ffffffb6daf584b7dde2effae2effad7dde584b7dd -e2effaffffffffffffffffff9ec8e8e2effaececef9ec8e8b6daf59ec8e8b6daf5ffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffb6daf5e2effae2effaffffffb6daf5 -b6daf5e2effab6daf5e2effae2effab6daf5e2effae2effad7dde59ec8e8d7dde5ffffffd7dde5 -b6daf5ececefffffffffffffb6daf5e2effaffffffffffffb6daf5e2effab6daf5e2effae2effa -ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffe2effaffffffffffffffffffffffffffffffffffffffffffffffffffffffe2effaffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102ececefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102d7dde5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102d7dde5ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff010102 -010102010102010102010102010102010102010102010102010102010102010102010102010102 -010102010102010102010102010102010102010102010102010102010102010102010102010102 -010102010102010102010102010102010102010102010102010102010102010102010102010102 -010102010102010102010102010102010102010102010102010102010102010102010102010102 -010102010102010102010102010102010102010102010102010102010102010102010102010102 -010102010102010102010102010102010102010102010102010102010102010102010102010102 -010102010102010102010102010102010102010102010102010102010102010102010102010102 -010102010102010102010102010102010102010102010102010102 -showpage -%%Trailer -end -%%EOF diff --git a/Docs/Books/manual.gif b/Docs/Books/manual.gif deleted file mode 100644 index fff578e33124ba0e3f92649e1ddf5af8ae7c77b3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2575 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 diff --git a/Docs/Books/msql.txt b/Docs/Books/msql.txt deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/Docs/Books/prof.eps b/Docs/Books/prof.eps deleted file mode 100644 index 13cdb24afb1..00000000000 --- a/Docs/Books/prof.eps +++ /dev/null @@ -1,1167 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: GIMP PostScript file plugin V 1.06 by Peter Kirchgessner -%%Title: /opt/local/x1/work/bk/mysql/Docs/Books/prof.eps -%%CreationDate: Sun Dec 31 14:30:51 2000 -%%DocumentData: Clean7Bit -%%LanguageLevel: 2 -%%Pages: 1 -%%BoundingBox: 14 14 298 372 -%%EndComments -%%BeginPreview: 100 126 1 126 -% fffffffffffffffffffffffff0 -% fffffffffffffffffffc010050 -% ffbf7bffbefbfffffffd552a90 -% fffffffffffffffffffc004030 -% fffeffbffbeffffffff9bb5b50 -% d555d56aaebaaaaaaaad46a490 -% ffffbffffbeffffffff8100930 -% d555eaaaaedd5555555aa4a050 -% ffff7ffffbbbfffffff4000910 -% ab5bd6b5aef76b6b6b6caaa250 -% fef6bdef7bbededededdaabdb0 -% 57dff7bdeeebfbfbfbfbffef70 -% fd755def7bbeaeaeaeaf56baf0 -% 57dff77bdeebfbfbfbfafdefd0 -% 7d76bddef7bededededfd7bb70 -% efddef75adedf7b7b7b57deef0 -% 5a22108a521208484c6ad75dd0 -% fc000f000000000008e075cbb0 -% 56007fc0000000000bf0cfc770 -% 7c00ffe0000000000bfc6e23f0 -% ec03faf00000000009e0c86350 -% 5a03e0500000000009c86e26f0 -% fe0380380000a8000d80cc0bd0 -% 540328500003be000c226a26f0 -% fe034018000d61800886d643b0 -% 54073ad8000bc2a00d82f54370 -% fe06eda8001f00a009e55f13f0 -% 540728d80015c0900f77f576b0 -% fe024aa0001f80680ddd5feff0 -% 54029410001700d80830e002b0 -% 7e028940003c00300ce84203f0 -% ea016d4000102a6c098c640350 -% 5c009280001e88380d846413f0 -% fa015ea0000d802408a4640370 -% 5e00a140000d00080ca06103d0 -% 740056000004880408006402b0 -% ee00a9400004a2140c686003f0 -% bc01b5600001440c0840620370 -% 6a01ae40000154180da46203d0 -% fe07f8f0000161000fafc20370 -% 543fc7fe000050000fef7ffef0 -% 7fffffffe00081400d5dd557b0 -% ebfffffff800a2000ff767c5f0 -% 5ffffffffe0054800afdcfe350 -% fbffffffff8054000dd76263f0 -% 5fffffffff80d4000d09c42370 -% 75ffffffffc169000a176483d0 -% efffffffffc214000d52c20370 -% 5dffffffff0010200d25a283d0 -% fbfffffffe0040180b1566a370 -% 5ffffffefc00c0020c97dd7fd0 -% f7fffffe780088000d9abebeb0 -% 5dfffffff80024000b67ff4ff0 -% f7fffffef7ffffffffdf6fbd70 -% 5d555555aed6d56db575daefd0 -% f63c21e31f11619f08c867c2f0 -% 5c0223f23510311988846fe7b0 -% 762027f3219021b08904cc32f0 -% ec4022022310510089446837b0 -% 5e2825a31491119a8894e2e2f0 -% fa5020a2019021000c805027b0 -% 5da0228304108184085460c2f0 -% 775022820410310508d8c8a7b0 -% eea721030a10a98808d06055f0 -% bdaa2142171035178d74c15350 -% 6f4fe46353d15fb4eb0760a7f0 -% fafadfffffbff6ffdffedffd70 -% 5fdfbb5aad76bdd5baedfb57d0 -% 7575f6f7fbefefbf77bbaefd70 -% efdf5fdeaf7abaf5eeef7bdbd0 -% 5d75f577fbdfefbf7dddeef770 -% fbdf5d4a0c4454c2a6677bbef0 -% 5f76f42b65cdce591c66deebd0 -% 75dddce2644c64dd466df7beb0 -% ef77b9a665cf32954527bdebf0 -% 5dddf4c94cc866496da5eb7ed0 -% fbbb5fffbfb7ddf7fb7b5fd7b0 -% 5f77f6aaeafef7beafdffafdf0 -% f5eebdffbfabbdebfaf55faf50 -% 5f7defab75feef5eafbff5faf0 -% f5d7bafeef57bbfbfb6abf5fd0 -% 5f7defaddbfdeeaedeffebf570 -% f6ef7ab3b15b7bfbb7d5bebfd0 -% 5ddbdf06e1f7deb77d7f6beaf0 -% 77beb5c7b5bef7eeefd6febfb0 -% eef7ff4dfde55abbb56fd7eb70 -% 5dbd558751a43061031d7d7ef0 -% fbebff8dc3071c71c337d7d7d0 -% 5f7f5a8771c50c51607d7d7d70 -% 75d5f78dd3471871e0efdbd7d0 -% ef7f5ec761c69c61b0daf77d70 -% bdd6f78dd3471471e87fbeeff0 -% 6f7ddd4731c61c514c2aebdab0 -% fbdbbb8521450a008c1fbefff0 -% 5ef777105492aeb7554b77aad0 -% 75beeefffffffbfdfffeedffb0 -% efebdddbaaad56af555bdf55f0 -% 5d7efbbefffbfffaffd77bff50 -% fb01af77aadf5aafda8ed6adf0 -% 5f19fbdd7fb5f7faf7edfffb70 -% 7599061a94298815094c8817d0 -% ef1124c9912899c8c888cdcef0 -% 5d9738c499f5cc8c9dccc89db0 -% fb1d29cc99a489d9c88ccc97f0 -% 5f9b3ca971c8dc8c8ccc8abd50 -% f5169458094484888888c40ff0 -% 5f7f7ff54fffbfffffffbd0ab0 -% f5ebd6a9cd5b75556d55f1cff0 -% 5f7efdfc5ff6efffdfff5c5db0 -% f6d7afaff55fdd5afab5f7fb70 -% 5dfd7afb5ff57bf7afef5daff0 -% 77afefaef6bfdf6efaddf7fab0 -% eefabafbbdeab5dbafb75d57f0 -% 5c005756d6addb6d756db6ed50 -% fa003dfdbdfb77dbdfdb7dbff0 -% 5e086f57edaedd6b757febeab0 -% 74043bfd7a512b1a8b42bf7ff0 -% ee026eafdffff6fffeffebd550 -% bc7f3bfaf5ad5fd557ad7ebff0 -% 6ec06d575b76eabbbd76d5d570 -% fa0037adeddbbd6ed6ddaf77d0 -% 5e766d7f5f76ebfbbdf7fadd70 -% 74003ed5b5adb6aad6ad576bd0 -% ee006b7aed6d6dedbdbaedb770 -% 5c003ed7bbdfdf5feb77bb6df0 -% fffffffffffffffffffffffff0 -%%EndPreview -%%BeginProlog -% Use own dictionary to avoid conflicts -5 dict begin -%%EndProlog -%%Page: 1 1 -% Translate for offset -14.400000 14.400000 translate -% Translate to begin of first scanline -0.000000 357.165354 translate -283.464567 -357.165354 scale -% Variable to keep one line of raster data -/scanline 100 3 mul string def -% Image geometry -100 126 8 -% Transformation matrix -[ 100 0 0 126 0 0 ] -{ currentfile scanline readhexstring pop } false 3 -colorimage -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c095754520d0c095754520d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c095754520d0c090d0c090d0c090d0c090d0c095754520d0c09 -0d0c090d0c090d0c090d0c090d0c095754520d0c095754520d0c095754520d0c090d0c090d0c09 -5754520d0c090d0c090d0c090d0c090d0c095754520d0c090d0c095754520d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09575452 -b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c18d8b8eb8b3c1b8b3c1b8b3c1 -b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c18d8b8eb8b3c10d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c095754520d0c095754520d0c095754520d0c09 -0d0c095754525754525754520d0c095754520d0c095754525754525754520d0c095754520d0c09 -0d0c090d0c090d0c095754520d0c090d0c090d0c095754520d0c095754520d0c095754520d0c09 -5754520d0c090d0c095754525754520d0c095754520d0c090d0c095754520d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09575452 -b8b3c18d8b8eb8b3c1b8b3c1b8b3c18d8b8eb8b3c1b8b3c1b8b3c18d8b8e8d8b8eb8b3c1b8b3c1 -b8b3c18d8b8eb8b3c1b8b3c1b8b3c1b8b3c18d8b8eb8b3c10d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09575452 -b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1 -b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c10d0c09 -0d0c09b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534 -b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534 -b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534 -b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534 -b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534 -b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534b01534a6385a -b8b3c18d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8eb8b3c18d8b8e8d8b8e8d8b8e8d8b8e8d8b8e -8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8eb8b3c10d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046e02c5c -b8b3c18d8b8e8d8b8e5754528d8b8e8d8b8e8d8b8e8d8b8e5754528d8b8e8d8b8e8d8b8e8d8b8e -8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8eb8b3c10d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046e02c5c -b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1 -b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c10d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046e02c5c -b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1dfd9dab8b3c1b8b3c1dfd9dab8b3c1b8b3c1b8b3c1b8b3c1 -b8b3c1b8b3c1dfd9dab8b3c1b8b3c1b8b3c1b8b3c1b8b3c10d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046e02c5c -b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1dfd9dab8b3c1b8b3c1dfd9dadfd9dab8b3c1b8b3c1dfd9da -b8b3c1b8b3c1dfd9dab8b3c1b8b3c1b8b3c1dfd9dab8b3c10d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046e02c5c -b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1 -b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c10d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d7104b -e02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5c -e02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5c0d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046d7104be16e8fe16e8fe16e8fe16e8fe16e8fe16e8f -e16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8f -e16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8f -e16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8f -e16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8f -e16e8fe16e8fe16e8fdd0046e02c5ce16e8fe16e8fe16e8fa6385ab01534e16e8fe16e8fe16e8f -e16e8fe16e8fe02c5cdd0046d7104ba6385aa6385aa6385aa6385aa6385aa6385aa6385aa6385a -a6385ab01534b01534dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfdfdfdfdfdfdfddfd9dab8b3c18d8b8e5754525754528d8b8edfd9dafdfdfd -fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046e16e8ffdfdfddfd9da5754520d0c090d0c098d8b8efdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046d7104b5754528d8b8e5754525754520d0c090d0c09575452dfd9da -b8b3c1575452575452dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfddfd9da8d8b8e5754520d0c090d0c090d0c090d0c090d0c090d0c09575452 -dfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046e16e8fb8b3c10d0c090d0c090d0c095754520d0c09b8b3c1fdfdfd -dfd9dafdfdfde16e8fdd0046d7104b8d8b8e8d8b8e0d0c095754525754520d0c09575452b8b3c1 -fdfdfddfd9da575452dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdb8b3c15754520d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -575452dfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046e16e8f8d8b8e0d0c090d0c090d0c090d0c090d0c09575452575452 -dfd9dafdfdfde16e8fdd0046d7104bb8b3c15754520d0c09575452b8b3c18d8b8e8d8b8e8d8b8e -fdfdfdfdfdfd8d8b8edd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfd8d8b8e0d0c090d0c090d0c090d0c090d0c095754525754528d8b8e5754520d0c090d0c09 -0d0c09575452dfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046e16e8fdfd9da0d0c090d0c090d0c090d0c098d8b8e8d8b8eb8b3c1 -fdfdfdfdfdfde16e8fdd0046d7104bdfd9da575452575452b8b3c1fdfdfddfd9da8d8b8e575452 -b8b3c1fdfdfde6a5b7dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfd5754520d0c090d0c090d0c09575452b8b3c1b8b3c1dfd9dadfd9dadfd9dab8b3c18d8b8e -5754520d0c098d8b8efdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfddfd9da -fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046e16e8ffdfdfd0d0c090d0c09575452b8b3c1dfd9dab8b3c1dfd9da -fdfdfdfdfdfde16e8fdd0046d7104bb8b3c1575452575452575452dfd9dab8b3c1dfd9da575452 -8d8b8edfd9da8d8b8edd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -dfd9da0d0c090d0c095754528d8b8eb8b3c1b8b3c1b8b3c1dfd9dadfd9dadfd9dadfd9dadfd9da -8d8b8e0d0c09575452fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdb8b3c18d8b8eb8b3c18d8b8e8d8b8e -8d8b8e8d8b8edfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046e02c5c8d8b8e575452575452b8b3c1b8b3c1b8b3c1dfd9dadfd9da -fdfdfdfdfdfde16e8fdd0046d7104bb8b3c15754525754528d8b8edfd9dafdfdfdfdfdfd8d8b8e -b8b3c1b8b3c1575452dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -b8b3c10d0c090d0c098d8b8eb8b3c1b8b3c1b8b3c1b8b3c1b8b3c1dfd9dadfd9dadfd9dab8b3c1 -b8b3c1575452575452dfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdb8b3c18d8b8e5754525754525754528d8b8e575452 -5754525754525754528d8b8edfd9dadfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046e02c5cdfd9dab8b3c18d8b8eb8b3c1b8b3c1dfd9dadfd9dab8b3c1 -8d8b8edfd9dae6a5b7dd0046d7104b8d8b8e8d8b8e8d8b8e8d8b8eb8b3c1dfd9dafdfdfdb8b3c1 -dfd9dadfd9da8d8b8edd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -b8b3c10d0c095754528d8b8eb8b3c1b8b3c1b8b3c1b8b3c1dfd9dadfd9dadfd9dadfd9dab8b3c1 -b8b3c1575452575452dfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfdfdfdfdfdfdfd8d8b8e5754525754525754525754525754520d0c09575452 -8d8b8eb8b3c18d8b8e5754528d8b8e8d8b8edfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046e02c5cfdfdfddfd9da8d8b8edfd9dab8b3c1dfd9dadfd9dab8b3c1 -5754528d8b8ea6385add0046d7104b8d8b8e8d8b8e575452575452b8b3c1b8b3c1b8b3c1b8b3c1 -dfd9dadfd9da8d8b8edd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -8d8b8e0d0c09575452b8b3c18d8b8e5754525754528d8b8eb8b3c1b8b3c1b8b3c18d8b8e8d8b8e -b8b3c18d8b8e0d0c09dfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfdfdfdfdb8b3c15754525754525754525754525754525754528d8b8edfd9da -dfd9dadfd9dab8b3c18d8b8e5754528d8b8e8d8b8edfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046e02c5cfdfdfd8d8b8e0d0c09b8b3c1b8b3c1dfd9dadfd9da8d8b8e -5754528d8b8ea6385add0046d7104b5754528d8b8e5754525754528d8b8e8d8b8e8d8b8edfd9da -dfd9dadfd9dae6a5b7dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -5754520d0c095754528d8b8e575452575452575452575452575452b8b3c1575452575452575452 -5754528d8b8e575452dfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfddfd9da5754525754525754525754520d0c095754528d8b8edfd9dafdfdfd -dfd9dadfd9dadfd9dab8b3c15754528d8b8e8d8b8e8d8b8edfd9dafdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046e16e8fdfd9da5754520d0c090d0c098d8b8edfd9dadfd9da8d8b8e -8d8b8e8d8b8ea6385add0046b015345754525754525754525754525754528d8b8edfd9da8d8b8e -b8b3c1fdfdfde6a5b7dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -5754520d0c095754528d8b8e8d8b8e5754528d8b8e8d8b8e8d8b8eb8b3c18d8b8e575452575452 -8d8b8e8d8b8e575452dfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfddfd9da5754525754525754525754520d0c090d0c098d8b8edfd9dafdfdfd -fdfdfddfd9dadfd9dadfd9da8d8b8e8d8b8eb8b3c18d8b8e8d8b8efdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046d7104ba6385ab01534b01534b01534b01534a6385ae16e8fa6385a -a6385aa6385ab01534dd0046dd0046b01534b01534b01534b01534a6385ae16e8fa6385aa6385a -b01534a6385ae02c5cdd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -b8b3c15754528d8b8eb8b3c1b8b3c18d8b8eb8b3c18d8b8e8d8b8eb8b3c18d8b8e8d8b8e8d8b8e -8d8b8e8d8b8e8d8b8efdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfdb8b3c15754525754525754520d0c090d0c09575452b8b3c1fdfdfddfd9da -fdfdfdfdfdfdfdfdfddfd9dab8b3c15754528d8b8e8d8b8e575452dfd9dafdfdfdfdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -dfd9da5754528d8b8e8d8b8eb8b3c1b8b3c1b8b3c18d8b8e8d8b8eb8b3c1b8b3c1b8b3c1b8b3c1 -b8b3c18d8b8edfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfdb8b3c15754525754520d0c09575452575452b8b3c1dfd9dadfd9dafdfdfd -fdfdfddfd9dadfd9dadfd9dab8b3c15754525754525754525754528d8b8efdfdfdfdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046e02c5ce6a5b7e6a5b7e6a5b78d8b8e5754525754528d8b8ee6a5b7 -e6a5b7e6a5b7e16e8fdd0046d7104be6a5b7e6a5b7e6a5b7e6a5b78d8b8ee16e8fe6a5b7e6a5b7 -e6a5b7e6a5b7e16e8fdd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -dfd9da8d8b8e8d8b8e8d8b8e8d8b8eb8b3c1b8b3c18d8b8eb8b3c1b8b3c18d8b8eb8b3c1b8b3c1 -b8b3c1b8b3c1fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfd8d8b8e0d0c09575452575452b8b3c1dfd9dadfd9dadfd9dadfd9dadfd9da -b8b3c1dfd9dadfd9dadfd9dadfd9da8d8b8e0d0c095754528d8b8eb8b3c1fdfdfdfdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046e02c5cfdfdfdfdfdfd8d8b8e575452575452575452575452b8b3c1 -fdfdfdfdfdfde6a5b7dd0046d7104bfdfdfdfdfdfddfd9da8d8b8eb8b3c1dfd9dadfd9dadfd9da -fdfdfdfdfdfddfd9dadd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdb8b3c18d8b8e8d8b8e8d8b8e8d8b8e8d8b8e5754525754528d8b8e8d8b8e8d8b8e8d8b8e -b8b3c1dfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfdb8b3c15754525754528d8b8eb8b3c1b8b3c1b8b3c1dfd9dab8b3c1b8b3c1 -8d8b8eb8b3c1b8b3c1dfd9dadfd9dab8b3c15754525754525754528d8b8efdfdfdfdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046e02c5cfdfdfd8d8b8e0d0c09575452dfd9dafdfdfd8d8b8e575452 -b8b3c1fdfdfde6a5b7dd0046d7104bfdfdfdfdfdfd575452b8b3c1fdfdfdfdfdfdfdfdfddfd9da -dfd9dafdfdfddfd9dadd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfddfd9da8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e -b8b3c1fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfddfd9da5754525754528d8b8e8d8b8e8d8b8e575452b8b3c1dfd9dab8b3c1 -8d8b8e8d8b8eb8b3c1dfd9dadfd9dab8b3c1575452575452575452575452fdfdfdfdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046e02c5cfdfdfd5754520d0c098d8b8efdfdfdfdfdfdfdfdfd575452 -8d8b8efdfdfde6a5b7dd0046d7104bfdfdfddfd9da575452dfd9dafdfdfdfdfdfdfdfdfddfd9da -b8b3c1fdfdfddfd9dadd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfd8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e5754525754525754528d8b8e8d8b8e8d8b8e -b8b3c1fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfdfdfdfd8d8b8e0d0c095754528d8b8e575452575452b8b3c1dfd9dadfd9da -b8b3c1dfd9dadfd9dadfd9dadfd9dadfd9da8d8b8e5754528d8b8e575452dfd9dafdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046e02c5cfdfdfd8d8b8e5754528d8b8e8d8b8edfd9da8d8b8e8d8b8e -b8b3c1fdfdfde6a5b7dd0046d7104bfdfdfddfd9da575452b8b3c1dfd9dafdfdfdfdfdfddfd9da -b8b3c1fdfdfddfd9dadd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdb8b3c18d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8e -dfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfdfdfdfddfd9da5754525754528d8b8e8d8b8e8d8b8eb8b3c1dfd9dadfd9da -dfd9dadfd9dadfd9dadfd9dadfd9dadfd9dadfd9dab8b3c1b8b3c18d8b8edfd9dafdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046e02c5cfdfdfdb8b3c18d8b8e8d8b8e8d8b8eb8b3c1b8b3c1b8b3c1 -dfd9dafdfdfde6a5b7dd0046d7104bfdfdfddfd9da8d8b8eb8b3c1b8b3c1fdfdfdfdfdfddfd9da -dfd9dafdfdfddfd9dadd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfdb8b3c18d8b8e8d8b8e8d8b8e8d8b8e8d8b8e8d8b8eb8b3c18d8b8eb8b3c1 -fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfdfdfdfdfdfdfd8d8b8e575452b8b3c1b8b3c18d8b8eb8b3c1dfd9dadfd9da -b8b3c1dfd9dafdfdfddfd9dadfd9dadfd9dadfd9dadfd9dadfd9da8d8b8eb8b3c1fdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046e02c5cfdfdfddfd9dab8b3c1b8b3c1b8b3c1b8b3c1dfd9dadfd9da -fdfdfdfdfdfde6a5b7dd0046d7104bfdfdfddfd9da8d8b8eb8b3c1b8b3c1fdfdfdfdfdfdfdfdfd -fdfdfdfdfdfddfd9dadd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdb8b3c18d8b8e8d8b8e8d8b8e8d8b8e8d8b8eb8b3c1b8b3c18d8b8e8d8b8e8d8b8e -dfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd8d8b8e8d8b8eb8b3c18d8b8e8d8b8eb8b3c1b8b3c1 -b8b3c1b8b3c1b8b3c1dfd9dadfd9dadfd9dadfd9dab8b3c18d8b8e575452b8b3c1fdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046e02c5cfdfdfdfdfdfddfd9da8d8b8e8d8b8eb8b3c1b8b3c1dfd9da -fdfdfdfdfdfde6a5b7dd0046d7104bfdfdfdfdfdfdb8b3c1b8b3c1dfd9dafdfdfdfdfdfddfd9da -fdfdfdfdfdfddfd9dadd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfd5754525754528d8b8e5754525754528d8b8e8d8b8e8d8b8e8d8b8eb8b3c1575452 -575452fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd8d8b8eb8b3c18d8b8e5754528d8b8eb8b3c1 -dfd9dab8b3c1b8b3c1dfd9dadfd9dadfd9dadfd9dab8b3c1575452575452dfd9dafdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046e02c5cfdfdfdfdfdfdb8b3c18d8b8eb8b3c1b8b3c1b8b3c1fdfdfd -fdfdfdfdfdfde6a5b7dd0046d7104bfdfdfdfdfdfdb8b3c18d8b8edfd9dafdfdfdfdfdfddfd9da -dfd9dafdfdfddfd9dadd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdb8b3c10d0c095754528d8b8e5754525754525754525754525754528d8b8eb8b3c1575452 -575452fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdb8b3c18d8b8e8d8b8e8d8b8e8d8b8eb8b3c1 -8d8b8e8d8b8e8d8b8edfd9dadfd9dadfd9dadfd9dab8b3c15754528d8b8efdfdfdfdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046e02c5cb8b3c15754525754528d8b8e8d8b8eb8b3c1b8b3c1b8b3c1 -dfd9dafdfdfde6a5b7dd0046d7104bfdfdfdfdfdfdfdfdfd575452b8b3c1dfd9dadfd9dafdfdfd -fdfdfdfdfdfddfd9dadd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdfdfdfdfdfdfdfdfdfddfd9da -8d8b8e0d0c090d0c090d0c095754525754525754525754525754528d8b8eb8b3c18d8b8e0d0c09 -0d0c098d8b8eb8b3c1dfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfddfd9da8d8b8eb8b3c1575452575452b8b3c1 -b8b3c1b8b3c1b8b3c1b8b3c1dfd9dadfd9dadfd9dadfd9dab8b3c1dfd9dafdfdfdfdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046b015340d0c090d0c090d0c098d8b8e8d8b8e8d8b8e5754520d0c09 -0d0c09575452a6385add0046d7104bfdfdfdfdfdfddfd9da5754528d8b8edfd9dadfd9dafdfdfd -dfd9dafdfdfde6a5b7dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdb8b3c18d8b8e5754520d0c09 -0d0c090d0c090d0c090d0c090d0c095754528d8b8e8d8b8e8d8b8e8d8b8e5754520d0c090d0c09 -0d0c090d0c090d0c090d0c095754528d8b8eb8b3c1dfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd8d8b8eb8b3c18d8b8e8d8b8e8d8b8e -b8b3c1dfd9dadfd9dab8b3c1dfd9dab8b3c1dfd9dadfd9dadfd9dafdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046dd0046b01534b01534b01534d7104bd7104be02c5cb01534b01534 -b01534b01534dd0046dd0046dd0046e02c5ce02c5cd7104bb01534e02c5ce02c5ce02c5ce02c5c -e02c5ce02c5cd7104bdd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046d7104b5754525754520d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c095754525754520d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c09575452575452b8b3c1fdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdb8b3c18d8b8e8d8b8eb8b3c1b8b3c1 -b8b3c1dfd9dadfd9dab8b3c1b8b3c1b8b3c1dfd9dadfd9dadfd9dadfd9dafdfdfdfdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046b015340d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09575452b8b3c1fdfdfd -fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd8d8b8e8d8b8e8d8b8eb8b3c1 -dfd9dadfd9dab8b3c1b8b3c1b8b3c1b8b3c1dfd9dadfd9dadfd9dafdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046b015345754525754525754525754520d0c09575452575452575452 -575452575452b01534dd0046e02c5ce6a5b7e6a5b75754520d0c090d0c090d0c090d0c09e6a5b7 -e6a5b7e6a5b7e16e8fdd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046b015340d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09575452 -b8b3c1fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfddfd9da5754528d8b8e8d8b8e -b8b3c18d8b8eb8b3c1b8b3c1b8b3c1b8b3c1dfd9dadfd9dadfd9dafdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046a6385a5754525754525754520d0c090d0c090d0c09575452575452 -575452575452a6385add0046e02c5cfdfdfd8d8b8e0d0c090d0c090d0c090d0c090d0c09575452 -fdfdfdfdfdfde6a5b7dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046b015340d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c09575452dfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdb8b3c15754528d8b8e8d8b8e -8d8b8e8d8b8eb8b3c1b8b3c1b8b3c1dfd9dadfd9dadfd9dadfd9dafdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046a6385a8d8b8e8d8b8e5754520d0c09575452575452575452575452 -575452575452a6385add0046e02c5cfdfdfd8d8b8e8d8b8e8d8b8e8d8b8eb8b3c1575452575452 -fdfdfdfdfdfde6a5b7dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046b015340d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c098d8b8efdfdfdfdfdfdfdfdfdfdfdfddfd9dab8b3c18d8b8e5754528d8b8e8d8b8e -8d8b8e8d8b8eb8b3c1b8b3c1dfd9dadfd9dadfd9dadfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046a6385a8d8b8e8d8b8edfd9dadfd9dadfd9dab8b3c18d8b8e8d8b8e -8d8b8e575452a6385add0046e02c5cfdfdfdb8b3c18d8b8edfd9dadfd9dadfd9dab8b3c1575452 -fdfdfdfdfdfde6a5b7dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046b015340d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c09575452fdfdfdfdfdfddfd9dab8b3c1b8b3c18d8b8eb8b3c15754525754528d8b8e -8d8b8e8d8b8eb8b3c1b8b3c1dfd9dadfd9dadfd9dadfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046a6385a8d8b8e8d8b8eb8b3c1dfd9dadfd9da8d8b8e8d8b8e8d8b8e -575452575452a6385add0046e02c5cfdfdfddfd9da8d8b8e8d8b8eb8b3c18d8b8eb8b3c1b8b3c1 -fdfdfdfdfdfde6a5b7dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046b015340d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c09575452fdfdfddfd9dadfd9dadfd9dab8b3c18d8b8edfd9dab8b3c18d8b8e8d8b8e -8d8b8e8d8b8eb8b3c1b8b3c1dfd9dadfd9dadfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046a6385a8d8b8e8d8b8eb8b3c1b8b3c18d8b8e8d8b8e8d8b8eb8b3c1 -575452575452a6385add0046e02c5cfdfdfdfdfdfd8d8b8e8d8b8eb8b3c1b8b3c1b8b3c1dfd9da -fdfdfdfdfdfde6a5b7dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046b015340d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c098d8b8edfd9dafdfdfdfdfdfddfd9dadfd9dadfd9dab8b3c1dfd9dafdfdfdb8b3c18d8b8e -b8b3c1b8b3c1b8b3c1dfd9dadfd9dadfd9dab8b3c18d8b8edfd9dafdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046a6385a8d8b8e575452b8b3c1dfd9da5754528d8b8eb8b3c1b8b3c1 -8d8b8e575452a6385add0046e02c5cfdfdfdfdfdfdb8b3c18d8b8eb8b3c1b8b3c1b8b3c1dfd9da -fdfdfdfdfdfde6a5b7dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046b015340d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -b8b3c1fdfdfdfdfdfdfdfdfdfdfdfdfdfdfddfd9dadfd9dadfd9dadfd9dab8b3c1fdfdfddfd9da -dfd9dadfd9dadfd9dadfd9dadfd9dadfd9dab8b3c18d8b8e8d8b8eb8b3c1dfd9dafdfdfdfdfdfd -fdfdfdfdfdfde6a5b7dd0046a6385a8d8b8e575452b8b3c1dfd9dab8b3c18d8b8eb8b3c18d8b8e -8d8b8e575452a6385add0046e02c5cfdfdfdfdfdfd8d8b8e5754525754528d8b8e8d8b8e575452 -dfd9dafdfdfde6a5b7dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046b015340d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c098d8b8e5754520d0c090d0c090d0c090d0c090d0c09b8b3c1 -fdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfddfd9dafdfdfddfd9da8d8b8e575452dfd9dafdfdfd -dfd9dadfd9dadfd9dafdfdfddfd9dafdfdfdfdfdfddfd9dab8b3c1b8b3c18d8b8eb8b3c1fdfdfd -fdfdfdfdfdfde6a5b7dd0046a6385a8d8b8e8d8b8e8d8b8edfd9dab8b3c18d8b8e8d8b8e8d8b8e -575452575452a6385add0046e02c5c8d8b8e0d0c090d0c095754528d8b8e8d8b8e8d8b8e0d0c09 -0d0c09575452a6385add0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046b015340d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c09dfd9da8d8b8e0d0c090d0c090d0c090d0c098d8b8efdfdfd -dfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfddfd9dafdfdfdb8b3c18d8b8e8d8b8e8d8b8eb8b3c1 -8d8b8edfd9dafdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfddfd9dadfd9dafdfdfd -fdfdfdfdfdfde6a5b7dd0046a6385ab8b3c18d8b8e5754528d8b8edfd9da8d8b8e575452575452 -0d0c09575452a6385add0046b015340d0c090d0c090d0c090d0c098d8b8e8d8b8e8d8b8e575452 -0d0c090d0c090d0c09dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046b015340d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c095754525754520d0c090d0c090d0c09575452b8b3c1dfd9da -dfd9dadfd9dadfd9dadfd9dadfd9dadfd9dadfd9dab8b3c1dfd9dab8b3c1b8b3c1b8b3c1b8b3c1 -b8b3c18d8b8edfd9dadfd9dadfd9dadfd9dadfd9dadfd9dadfd9dadfd9dadfd9dadfd9dadfd9da -dfd9dadfd9dae6a5b7dd0046a6385a5754525754525754525754528d8b8eb8b3c18d8b8e575452 -0d0c09575452b01534dd0046b015340d0c090d0c090d0c090d0c09575452b8b3c18d8b8eb8b3c1 -8d8b8e0d0c090d0c09dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d7104bd7104bd7104b -d7104bd7104bd7104bd7104bd7104bd7104bdd0046d7104bd7104bd7104bd7104bd7104bd7104b -d7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104b -d7104bd7104bdd0046dd0046dd0046b01534b01534d7104bd7104bd7104bd7104bd7104bd7104b -b01534b01534dd0046dd0046dd0046b01534b01534b01534b01534b01534d7104bd7104bd7104b -d7104bb01534dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046d7104bd7104bd7104bd7104bdd0046dd0046 -dd0046d7104bd7104bd7104bd7104bdd0046d7104bd7104bd7104bd7104bdd0046dd0046dd0046 -d7104bd7104bd7104bd7104bdd0046dd0046d7104bd7104bd7104bd7104bdd0046dd0046dd0046 -d7104bd7104bd7104bd7104bdd0046d7104bd7104bd7104bd7104bdd0046dd0046d7104bd7104b -d7104bd7104bd7104bdd0046dd0046d7104bd7104bd7104bdd0046dd0046dd0046dd0046d7104b -d7104bd7104bd7104bdd0046dd0046d7104bd7104bd7104bdd0046dd0046dd0046d7104bd7104b -d7104bd7104bdd0046dd0046dd0046d7104bd7104bd7104bdd0046dd0046dd0046dd0046d7104b -d7104bd7104bdd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cdfd9dafdfdfddfd9da575452575452575452 -5754528d8b8edfd9dafdfdfde6a5b7dd0046e6a5b7fdfdfdfdfdfd8d8b8e0d0c090d0c090d0c09 -0d0c09b8b3c1fdfdfddfd9dadd0046e02c5cdfd9dafdfdfdb8b3c10d0c090d0c090d0c090d0c09 -575452dfd9dafdfdfde6a5b7dd0046e6a5b7fdfdfdb8b3c18d8b8e8d8b8e575452575452b8b3c1 -fdfdfddfd9dadfd9dad7104bd7104bdfd9dafdfdfd5754520d0c090d0c090d0c090d0c098d8b8e -fdfdfdfdfdfde6a5b7dd0046e16e8ffdfdfddfd9da5754525754528d8b8e8d8b8e8d8b8edfd9da -fdfdfdfdfdfde16e8fdd0046b015348d8b8eb8b3c15754525754520d0c090d0c09575452575452 -b8b3c1b8b3c1e16e8fdd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfddfd9da8d8b8e8d8b8eb8b3c1 -8d8b8e575452dfd9dafdfdfde6a5b7dd0046dfd9dafdfdfddfd9da0d0c090d0c090d0c090d0c09 -0d0c090d0c09fdfdfdfdfdfddd0046e02c5cfdfdfdfdfdfd5754525754528d8b8e8d8b8e575452 -0d0c098d8b8efdfdfde6a5b7dd0046dfd9dafdfdfdb8b3c1b8b3c1dfd9dab8b3c1575452575452 -fdfdfdfdfdfdfdfdfdd7104bd7104bfdfdfddfd9da0d0c09575452b8b3c1b8b3c15754520d0c09 -fdfdfdfdfdfddfd9dadd0046e16e8ffdfdfdb8b3c1575452b8b3c1dfd9dadfd9dab8b3c18d8b8e -fdfdfdfdfdfde16e8fdd0046d7104bb8b3c18d8b8e0d0c095754520d0c095754520d0c090d0c09 -b8b3c1dfd9dae16e8fdd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfdb8b3c18d8b8edfd9dafdfdfd -fdfdfddfd9dadfd9dafdfdfde6a5b7dd0046dfd9dafdfdfd8d8b8e0d0c090d0c09575452575452 -575452575452dfd9dafdfdfddd0046e02c5cfdfdfdb8b3c1575452fdfdfdfdfdfdfdfdfddfd9da -575452575452fdfdfde6a5b7dd0046dfd9dafdfdfddfd9dadfd9dadfd9dadfd9da8d8b8e575452 -fdfdfdfdfdfdfdfdfdd7104bd7104bfdfdfd8d8b8e0d0c09dfd9dafdfdfdfdfdfddfd9da0d0c09 -dfd9dafdfdfde6a5b7dd0046e16e8ffdfdfd5754528d8b8edfd9dadfd9dafdfdfddfd9da575452 -b8b3c1fdfdfde16e8fdd0046d7104bb8b3c1575452575452b8b3c1dfd9dadfd9dab8b3c10d0c09 -575452dfd9dae16e8fdd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfd8d8b8e8d8b8eb8b3c1fdfdfd -fdfdfdfdfdfdfdfdfdfdfdfde6a5b7dd0046dfd9dafdfdfd8d8b8e5754528d8b8e8d8b8edfd9da -dfd9da8d8b8edfd9dafdfdfddd0046e02c5cfdfdfddfd9da8d8b8e8d8b8eb8b3c1b8b3c1575452 -575452575452fdfdfde6a5b7dd0046e6a5b7fdfdfddfd9dadfd9dadfd9dab8b3c18d8b8e575452 -dfd9dafdfdfdfdfdfdd7104bd7104bfdfdfdb8b3c18d8b8edfd9dafdfdfddfd9dadfd9da575452 -dfd9dafdfdfde6a5b7dd0046e16e8ffdfdfd8d8b8e8d8b8eb8b3c1dfd9dadfd9dab8b3c18d8b8e -dfd9dafdfdfde16e8fdd0046b01534b8b3c1575452b8b3c1fdfdfdfdfdfdfdfdfdb8b3c1575452 -575452dfd9dae16e8fdd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cfdfdfdfdfdfd8d8b8e8d8b8e8d8b8eb8b3c1 -dfd9dadfd9dafdfdfdfdfdfde6a5b7dd0046dfd9dafdfdfd8d8b8eb8b3c15754525754528d8b8e -8d8b8e8d8b8efdfdfddfd9dadd0046e02c5cfdfdfddfd9da8d8b8e8d8b8eb8b3c1b8b3c18d8b8e -8d8b8e575452fdfdfde6a5b7dd0046e6a5b7fdfdfddfd9dab8b3c1b8b3c1b8b3c1b8b3c1575452 -b8b3c1fdfdfdfdfdfdd7104bd7104bfdfdfddfd9da8d8b8e5754528d8b8e8d8b8e8d8b8e8d8b8e -dfd9dafdfdfde6a5b7dd0046e16e8ffdfdfdb8b3c18d8b8e8d8b8eb8b3c18d8b8e8d8b8e8d8b8e -fdfdfdfdfdfde16e8fdd0046b015348d8b8eb8b3c1b8b3c18d8b8eb8b3c18d8b8e575452575452 -8d8b8edfd9dae16e8fdd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046e02c5cdfd9da8d8b8e8d8b8eb8b3c18d8b8eb8b3c1 -b8b3c1dfd9dafdfdfdfdfdfde6a5b7dd0046dfd9dafdfdfdb8b3c1b8b3c1b8b3c18d8b8e8d8b8e -8d8b8edfd9dafdfdfddfd9dadd0046e02c5cfdfdfdfdfdfddfd9dafdfdfdfdfdfddfd9dadfd9da -8d8b8e575452fdfdfde6a5b7dd0046e6a5b7fdfdfddfd9dadfd9dab8b3c1dfd9dab8b3c18d8b8e -dfd9dafdfdfdfdfdfdd7104bd7104bfdfdfdfdfdfdb8b3c1b8b3c1b8b3c1b8b3c1b8b3c1b8b3c1 -dfd9dafdfdfde6a5b7dd0046e16e8ffdfdfdb8b3c18d8b8edfd9dab8b3c1dfd9dadfd9dab8b3c1 -fdfdfdfdfdfde16e8fdd0046d7104b8d8b8eb8b3c1fdfdfddfd9dadfd9da8d8b8eb8b3c1575452 -b8b3c1dfd9dae16e8fdd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046e02c5c5754525754528d8b8e8d8b8e8d8b8edfd9da -dfd9dafdfdfdfdfdfdfdfdfde6a5b7dd0046dfd9dafdfdfddfd9da8d8b8e8d8b8e575452b8b3c1 -b8b3c1fdfdfdfdfdfddfd9dadd0046e02c5cfdfdfdfdfdfdfdfdfddfd9dadfd9da8d8b8eb8b3c1 -b8b3c1dfd9dafdfdfde6a5b7dd0046e6a5b7fdfdfddfd9dadfd9dab8b3c1dfd9dab8b3c1b8b3c1 -fdfdfdfdfdfdfdfdfdd7104bd7104bfdfdfdfdfdfddfd9dadfd9dab8b3c1b8b3c1dfd9dadfd9da -fdfdfdfdfdfde6a5b7dd0046e16e8ffdfdfddfd9da8d8b8e8d8b8e8d8b8e8d8b8eb8b3c1b8b3c1 -fdfdfdfdfdfde16e8fdd0046d7104bb8b3c1b8b3c1dfd9dadfd9dab8b3c15754528d8b8e8d8b8e -dfd9dadfd9dae16e8fdd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046b015345754525754528d8b8e8d8b8e8d8b8edfd9da -dfd9dab8b3c1dfd9dafdfdfde6a5b7dd0046dfd9dafdfdfdb8b3c18d8b8e8d8b8e8d8b8eb8b3c1 -b8b3c1fdfdfdfdfdfddfd9dadd0046e02c5cfdfdfdfdfdfdfdfdfddfd9dab8b3c18d8b8e8d8b8e -dfd9dafdfdfdfdfdfde6a5b7dd0046e6a5b7fdfdfdfdfdfddfd9dab8b3c1b8b3c18d8b8e8d8b8e -dfd9dafdfdfdfdfdfdd7104bd7104bfdfdfdfdfdfddfd9dab8b3c18d8b8e8d8b8eb8b3c1dfd9da -fdfdfdfdfdfde6a5b7dd0046e16e8ffdfdfdfdfdfd5754525754528d8b8e8d8b8e575452dfd9da -fdfdfdfdfdfde16e8fdd0046d7104bb8b3c1b8b3c1dfd9dadfd9dadfd9da8d8b8e8d8b8e8d8b8e -b8b3c1b8b3c1e16e8fdd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046b015345754525754528d8b8e575452b8b3c1dfd9da -8d8b8e5754528d8b8efdfdfde6a5b7dd0046dfd9dafdfdfdfdfdfd8d8b8e5754528d8b8eb8b3c1 -dfd9dafdfdfdfdfdfddfd9dadd0046e02c5cfdfdfdfdfdfdfdfdfdb8b3c1b8b3c1b8b3c18d8b8e -b8b3c1fdfdfdfdfdfde6a5b7dd0046e6a5b7fdfdfdfdfdfddfd9dab8b3c18d8b8e8d8b8e575452 -8d8b8edfd9dafdfdfdd7104bd7104bfdfdfdfdfdfddfd9da8d8b8eb8b3c1b8b3c1b8b3c1b8b3c1 -fdfdfdfdfdfde6a5b7dd0046e16e8ffdfdfdfdfdfd5754525754528d8b8e575452575452fdfdfd -fdfdfdfdfdfde16e8fdd0046e02c5cdfd9dafdfdfdfdfdfddfd9dadfd9dab8b3c18d8b8e575452 -575452b8b3c1e16e8fdd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046b015345754525754528d8b8e8d8b8eb8b3c18d8b8e -575452575452575452b8b3c1e6a5b7dd0046dfd9dafdfdfddfd9dadfd9da8d8b8e8d8b8e575452 -b8b3c1fdfdfdfdfdfdfdfdfddd0046e02c5cfdfdfdfdfdfdb8b3c18d8b8e8d8b8e575452575452 -0d0c09dfd9dafdfdfde6a5b7dd0046dfd9dafdfdfdfdfdfddfd9dab8b3c1b8b3c18d8b8e575452 -5754525754528d8b8ed7104bd7104bfdfdfddfd9da5754528d8b8e5754525754528d8b8e575452 -8d8b8efdfdfddfd9dadd0046e16e8fdfd9da5754528d8b8e5754525754525754528d8b8e8d8b8e -dfd9dafdfdfde16e8fdd0046e02c5cfdfdfdfdfdfdfdfdfddfd9dab8b3c18d8b8e5754528d8b8e -8d8b8edfd9dae6a5b7dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046d7104b5754525754528d8b8ee6a5b78d8b8e575452 -575452575452575452575452a6385add0046e6a5b7b8b3c1b8b3c1e6a5b7e6a5b7b8b3c1575452 -575452e6a5b7dfd9dae6a5b7dd0046e02c5cb8b3c18d8b8e8d8b8e8d8b8eb8b3c18d8b8e0d0c09 -0d0c090d0c098d8b8ee16e8fdd0046e6a5b7dfd9dae6a5b78d8b8e8d8b8eb8b3c1575452575452 -5754525754520d0c09dd0046d7104b8d8b8e575452575452b8b3c15754525754528d8b8e575452 -0d0c098d8b8ee16e8fdd0046a6385a5754520d0c098d8b8eb8b3c18d8b8eb8b3c1b8b3c1575452 -0d0c09575452a6385add0046e02c5cdfd9dadfd9dadfd9dab8b3c1b8b3c18d8b8e8d8b8e8d8b8e -8d8b8edfd9dae16e8fdd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046e16e8fe16e8fe6a5b7d7104b -e02c5ce6a5b7e16e8fe16e8fdd0046dd0046e16e8fe16e8fe16e8fe16e8fdd0046dd0046e16e8f -e6a5b7e16e8fdd0046e16e8fe6a5b7e16e8fd7104be02c5ce16e8fe16e8fd7104bd7104be16e8f -e16e8fe02c5cdd0046e6a5b7e02c5cdd0046e02c5ce16e8fe16e8fe6a5b7e02c5cdd0046e16e8f -e16e8fdd0046d7104be16e8fdd0046dd0046e16e8fe16e8fdd0046dd0046e16e8fe16e8fdd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dfd9dae16e8fdfd9dae16e8f -e02c5cdfd9dae02c5cfdfdfdd7104be02c5cdfd9dad7104bdd0046dfd9dae16e8fdd0046dfd9da -e16e8fd7104bdd0046e6a5b7e6a5b7d7104bdd0046e6a5b7e16e8fd7104bdd0046e16e8fe6a5b7 -d7104bd7104bdd0046dfd9dae16e8fdd0046dfd9dae16e8fdd0046e16e8fdfd9dadd0046e16e8f -fdfdfde16e8fdd0046e16e8fdd0046dd0046dfd9dadfd9dadd0046dd0046e6a5b7e6a5b7dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046e6a5b7e6a5b7e6a5b7e02c5c -e02c5cdfd9dae6a5b7e16e8fdd0046e6a5b7e6a5b7dd0046dd0046e16e8fdfd9dadd0046e6a5b7 -e6a5b7e16e8fdd0046e6a5b7dfd9dae16e8fdd0046e16e8ffdfdfde6a5b7d7104be02c5cdfd9da -dfd9dae02c5cdd0046dfd9dae02c5ce02c5cfdfdfddd0046dd0046e02c5cfdfdfdd7104be16e8f -e16e8ffdfdfde16e8fe16e8fdd0046e02c5ce16e8fdfd9dae02c5cdd0046e6a5b7e16e8fdd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dfd9dae16e8fdd0046dd0046 -e02c5cdfd9dadfd9dae16e8fdd0046e16e8fdfd9dadd0046dd0046e6a5b7e6a5b7dd0046dfd9da -e16e8fdd0046dd0046e6a5b7e6a5b7dd0046dd0046dd0046e02c5cdfd9dae16e8fdd0046d7104b -e6a5b7e6a5b7dd0046dfd9dae02c5cd7104bfdfdfde02c5cdd0046e02c5cfdfdfddd0046e16e8f -d7104be16e8ffdfdfde6a5b7dd0046e16e8fe16e8fdfd9dae6a5b7dd0046e6a5b7e16e8fdd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dfd9dae16e8fdd0046dd0046 -e02c5cdfd9dae02c5cdfd9dae02c5cd7104be6a5b7e16e8fe16e8fe6a5b7e02c5cdd0046dfd9da -e16e8fdd0046dd0046e6a5b7e6a5b7e16e8fdd0046e16e8fe16e8fe6a5b7e02c5ce02c5ce16e8f -e16e8fe16e8fdd0046dfd9dae16e8fdd0046e16e8fe6a5b7e02c5ce6a5b7e16e8fdd0046e16e8f -e02c5cdd0046e16e8fe6a5b7d7104be16e8fdd0046e02c5cdfd9dadd0046e6a5b7e6a5b7e16e8f -d7104bdd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d7104bd7104bdd0046dd0046 -dd0046d7104bdd0046d7104bd7104bdd0046dd0046e02c5ce02c5cdd0046dd0046dd0046d7104b -d7104bdd0046dd0046d7104be02c5ce02c5cdd0046d7104be02c5cd7104bdd0046d7104be02c5c -e02c5cdd0046dd0046d7104bd7104bdd0046dd0046e02c5ce02c5cd7104bdd0046dd0046d7104b -dd0046dd0046dd0046d7104bdd0046d7104bdd0046dd0046d7104bdd0046d7104be02c5ce02c5c -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d7104be02c5cdd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d7104bd86427d86427 -e02c5ce02c5cd86427d86427e02c5cdd0046dd0046dd0046dd0046e02c5cf9f302f9f302d8ac0f -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d7104bd86427f9f302 -f9f302f9f302f9f302d8ac0fb01534dd0046dd0046dd0046dd0046d86427f9f302f9f302f9f302 -d7104bdd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d86427 -f9f302f9f302d8ac0fdd0046dd0046dd0046dd0046dd0046dd0046d7104bd8ac0fd8ac0fd86427 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d86427 -f9f302f9f302d8ac0fdd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046b01534d86427 -dd0046dd0046dd0046dd0046d7104bd86427dd0046d7104bd86427d86427e02c5cdd0046dd0046 -d7104be02c5ce02c5ce02c5ce02c5cdd0046d7104be02c5ce02c5ce02c5ce02c5cdd0046e02c5c -e02c5ce02c5ce02c5ce02c5ce02c5cd7104bd7104be02c5ce02c5ce02c5ce02c5cdd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d86427 -f9f302f9f302d8ac0fdd0046dd0046dd0046dd0046dd0046dd0046d7104bd86427f9f302d8ac0f -dd0046dd0046d7104bd86427f9f302f9f302d86427d8ac0ff9f302f9f302f9f302d86427dd0046 -e02c5cd8ac0ff9f302f9f302f9f302d7104be02c5cd8ac0ff9f302f9f302f9f302d7104bd86427 -d8ac0ff9f302f9f302f9f302f9f302a6385ae02c5cd8ac0ff9f302d8ac0fd86427dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d86427 -f9f302f9f302d8ac0fdd0046dd0046dd0046dd0046dd0046d86427f9f302f9f302f9f302d8ac0f -dd0046e02c5cd8ac0ff9f302f9f302f9f302d86427b01534b01534f9f302f9f302f9f302e02c5c -dd0046dd0046f9f302f9f302f9f302d7104bdd0046dd0046f9f302f9f302f9f302d7104bdd0046 -d7104bd8ac0ff9f302f9f302f9f302d7104bdd0046d8ac0fd8ac0fb01534dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d86427 -f9f302f9f302d8ac0fdd0046dd0046dd0046dd0046dd0046dd0046d86427f9f302f9f302d8ac0f -dd0046dd0046b01534f9f302f9f302f9f302dd0046dd0046dd0046d8ac0ff9f302f9f302d86427 -dd0046dd0046f9f302f9f302f9f302d7104bdd0046dd0046f9f302f9f302f9f302d7104bdd0046 -dd0046d7104bf9f302f9f302f9f302d8ac0fd86427d8ac0fb01534dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d86427 -f9f302f9f302d8ac0fdd0046dd0046dd0046dd0046dd0046dd0046e02c5cf9f302f9f302d8ac0f -dd0046dd0046dd0046f9f302f9f302f9f302dd0046dd0046dd0046d8ac0ff9f302f9f302a6385a -dd0046dd0046f9f302f9f302f9f302d7104bdd0046dd0046f9f302f9f302f9f302d7104bdd0046 -dd0046dd0046e02c5cf9f302f9f302f9f302f9f302b01534dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d86427 -f9f302f9f302d8ac0fdd0046dd0046dd0046dd0046dd0046dd0046e02c5cf9f302f9f302d8ac0f -dd0046dd0046d7104bf9f302f9f302f9f302dd0046dd0046dd0046d8ac0ff9f302f9f302a6385a -dd0046dd0046f9f302f9f302f9f302d7104bdd0046dd0046f9f302f9f302f9f302d7104bdd0046 -dd0046dd0046dd0046d8ac0ff9f302f9f302f9f302d86427dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d86427 -f9f302f9f302d8ac0fdd0046dd0046dd0046dd0046e02c5cd7104be02c5cf9f302f9f302d8ac0f -dd0046dd0046d7104bf9f302f9f302f9f302dd0046dd0046dd0046d8ac0ff9f302f9f302a6385a -dd0046dd0046f9f302f9f302f9f302d7104bdd0046dd0046f9f302f9f302f9f302d7104bdd0046 -dd0046dd0046e02c5cd8ac0fd8ac0ff9f302f9f302f9f302e02c5cdd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d86427 -f9f302f9f302d8ac0fdd0046dd0046dd0046e02c5cf9f302b01534d7104bf9f302f9f302d8ac0f -dd0046dd0046dd0046f9f302f9f302f9f302dd0046dd0046dd0046d8ac0ff9f302f9f302a6385a -dd0046dd0046d8ac0ff9f302f9f302e02c5cdd0046e02c5cf9f302f9f302f9f302d7104bdd0046 -dd0046d7104bf9f302a6385add0046d8ac0ff9f302f9f302f9f302d7104bdd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046e02c5cf9f302 -f9f302f9f302f9f302d86427e02c5cd86427f9f302f9f302b01534d86427f9f302f9f302f9f302 -e02c5cd7104bd86427f9f302f9f302f9f302d86427dd0046e02c5cf9f302f9f302f9f302d8ac0f -e02c5cdd0046d86427f9f302f9f302f9f302d8ac0fd8ac0ff9f302f9f302f9f302d8ac0fe02c5c -d86427f9f302f9f302d7104bdd0046d86427f9f302f9f302f9f302d8ac0fe02c5cdd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d7104bd8ac0fd8ac0f -d8ac0fd8ac0fd8ac0fd8ac0fd8ac0fd8ac0fd8ac0fd8ac0fd86427d8ac0fd8ac0fd8ac0fd8ac0f -d8ac0fd86427d8ac0fd8ac0fd8ac0fd8ac0fd8ac0fb01534d8ac0fd8ac0fd8ac0fd8ac0fd8ac0f -d86427dd0046dd0046d86427d8ac0fd8ac0fd86427b01534d8ac0fd8ac0fd86427b01534d86427 -d8ac0fd8ac0fd8ac0fd86427e02c5cd8ac0fd8ac0fd8ac0fd8ac0fd8ac0fd8ac0fd7104bdd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046b01534dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d7104bdd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d86427d86427dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046e02c5cd8ac0fd8ac0fd8ac0fd86427d8ac0f -d8ac0fd86427dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046e02c5cf9f302f9f302d7104bdd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046d86427f9f302f9f302b01534e02c5c -f9f302f9f302e02c5cdd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d7104b -dd0046dd0046dd0046dd0046dd0046dd0046d7104bdd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046d7104bdd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d7104bd86427d86427dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046d7104bdd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046e02c5cf9f302f9f302dd0046dd0046 -f9f302f9f302d86427e02c5cd8ac0fd86427d8ac0fd8ac0fd7104bd7104bd86427d86427d8ac0f -d8ac0fe02c5cdd0046dd0046d86427d8ac0fd86427d8ac0fd86427d86427d7104be02c5cd8ac0f -d86427f9f302d8ac0fdd0046d86427d8ac0fd8ac0fd8ac0fe02c5cdd0046d7104bd86427d8ac0f -d86427d8ac0fd8ac0fd86427d8ac0ff9f302d8ac0fe02c5cdd0046d7104bd86427d8ac0fd86427 -d8ac0fd8ac0fd86427d86427d8ac0fd8ac0fe02c5cdd0046d7104bd86427d8ac0fdd0046d7104b -d86427d8ac0fd86427d8ac0ff9f302d86427dd0046dd0046d86427d8ac0fd86427d8ac0fd86427 -d86427d7104bdd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046e02c5cf9f302f9f302d7104bd86427 -f9f302f9f302a6385af9f302f9f302d8ac0fd8ac0ff9f302a6385ad8ac0ff9f302b01534dd0046 -f9f302f9f302e02c5cd86427f9f302d86427dd0046d8ac0ff9f302d86427d86427f9f302f9f302 -d8ac0ff9f302d8ac0fd8ac0ff9f302a6385ae02c5cf9f302d8ac0fd7104bd8ac0ff9f302d8ac0f -b01534d86427f9f302d8ac0fb01534d86427f9f302d8ac0fdd0046d8ac0ff9f302f9f302b01534 -d86427f9f302f9f302b01534d86427f9f302d8ac0fdd0046d86427f9f302f9f302dd0046d86427 -f9f302f9f302a6385ab01534f9f302f9f302e02c5ce02c5cf9f302d8ac0fb01534d86427f9f302 -d8ac0fb01534dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046e02c5cf9f302f9f302d86427d8ac0f -d8ac0fa6385add0046d8ac0ff9f302d86427d7104bb01534d86427f9f302d8ac0fdd0046dd0046 -d86427f9f302d8ac0fd8ac0ff9f302d86427dd0046d8ac0ff9f302d86427dd0046f9f302f9f302 -b01534b01534b01534a6385ab01534d7104bd86427f9f302d8ac0fdd0046e02c5cf9f302d8ac0f -dd0046e02c5cf9f302d8ac0fdd0046e02c5cf9f302d8ac0fdd0046e02c5cf9f302d8ac0fdd0046 -e02c5cf9f302d8ac0fdd0046e02c5cf9f302d8ac0fdd0046d7104bf9f302f9f302dd0046dd0046 -f9f302f9f302d7104bdd0046d8ac0ff9f302a6385ad86427f9f302d8ac0fdd0046d86427f9f302 -d86427dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046e02c5cf9f302f9f302b01534b01534 -b01534dd0046dd0046d8ac0ff9f302d86427dd0046dd0046d86427f9f302d8ac0fdd0046dd0046 -d86427f9f302d8ac0fd7104bf9f302d8ac0fe02c5cf9f302d8ac0fb01534dd0046f9f302f9f302 -b01534dd0046dd0046d7104bd8ac0fd8ac0fd86427f9f302d8ac0fdd0046e02c5cf9f302d8ac0f -dd0046e02c5cf9f302d8ac0fdd0046e02c5cf9f302d8ac0fdd0046e02c5cf9f302d8ac0fdd0046 -e02c5cf9f302d8ac0fdd0046e02c5cf9f302d8ac0fdd0046d7104bf9f302f9f302dd0046dd0046 -f9f302f9f302d7104bdd0046d8ac0ff9f302a6385ad7104bd8ac0ff9f302e02c5cd8ac0ff9f302 -b01534dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046e02c5cf9f302f9f302dd0046dd0046 -dd0046dd0046dd0046d8ac0ff9f302d86427dd0046dd0046e02c5cf9f302f9f302dd0046dd0046 -d86427f9f302d86427d7104bd8ac0fd8ac0fd86427d86427b01534dd0046dd0046f9f302f9f302 -b01534dd0046dd0046d8ac0ff9f302b01534d86427f9f302d8ac0fd7104be02c5cf9f302d8ac0f -dd0046e02c5cf9f302d8ac0fdd0046e02c5cf9f302d8ac0fdd0046e02c5cf9f302d8ac0fdd0046 -e02c5cf9f302d8ac0fdd0046e02c5cf9f302d8ac0fdd0046d7104bf9f302f9f302dd0046dd0046 -f9f302f9f302d7104bdd0046d8ac0ff9f302e02c5cd7104bd8ac0ff9f302d86427d86427b01534 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046d7104bd8ac0ff9f302f9f302d86427dd0046 -dd0046dd0046e02c5cd8ac0ff9f302d8ac0fd7104bdd0046dd0046d86427f9f302d8ac0fd86427 -d8ac0fd86427dd0046e02c5cf9f302f9f302f9f302f9f302f9f302d86427d86427f9f302f9f302 -d86427d7104bdd0046d8ac0ff9f302d8ac0fd86427f9f302f9f302d86427d8ac0ff9f302f9f302 -e02c5cd86427f9f302f9f302e02c5cd8ac0ff9f302f9f302d86427d86427f9f302f9f302e02c5c -d86427f9f302f9f302e02c5cd86427f9f302f9f302d86427d86427f9f302f9f302d86427d86427 -f9f302f9f302d86427e02c5cf9f302f9f302d8ac0fd7104bd8ac0ff9f302f9f302f9f302f9f302 -d8ac0fdd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046d7104ba6385ab01534b01534a6385add0046 -dd0046dd0046d7104ba6385ab01534a6385ab01534dd0046dd0046dd0046b01534a6385aa6385a -b01534dd0046dd0046e02c5cd8ac0fd8ac0fd8ac0fd8ac0ff9f302f9f302a6385ab01534b01534 -a6385ad7104bdd0046d7104ba6385ab01534dd0046b01534b01534d7104ba6385ab01534a6385a -b01534a6385ab01534a6385ab01534a6385ab01534b01534a6385aa6385ab01534a6385ab01534 -a6385ab01534b01534b01534a6385ab01534b01534a6385aa6385ab01534b01534a6385aa6385a -b01534b01534b01534b01534a6385ab01534a6385ae02c5cd8ac0fd8ac0fd8ac0fd8ac0ff9f302 -f9f302e02c5cdd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046f9f302f9f302dd0046dd0046dd0046f9f302d8ac0fdd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046d8ac0ff9f302d7104bdd0046dd0046d8ac0f -f9f302b01534dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046e02c5cd8ac0fd8ac0fd86427d86427d86427b01534dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046e02c5cd8ac0fd8ac0fd86427d86427d8ac0f -b01534dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046b01534b01534b01534dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046b01534b01534b01534dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046d7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104b -d7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104b -d7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104b -d7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104b -d7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104b -d7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104b -d7104bd7104bd7104bd7104bd7104bd7104bdd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046d7104bdfd9dadfd9dadfd9dadfd9dadfd9dadfd9da -dfd9dadfd9dadfd9dadfd9dae16e8fe02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5c -e02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5c -e02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5c -e02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5c -e02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5c -e02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5c -e02c5ce02c5ce02c5ce02c5ce02c5ce02c5cd7104bdd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046d7104bfdfdfdfdfdfdfdfdfdfdfdfde6a5b7dfd9da -fdfdfdfdfdfdfdfdfdfdfdfde16e8fdd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046d7104bfdfdfdfdfdfdfdfdfdfdfdfde6a5b7d7104b -e6a5b7fdfdfdfdfdfdfdfdfde16e8fdd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046e02c5c -e02c5cd7104be02c5ce02c5cd7104be02c5ce02c5cd7104be02c5ce02c5ce02c5cd7104bd7104b -d7104bd7104bdd0046dd0046d7104bd7104bd7104be02c5cd7104be16e8fe02c5cd7104be02c5c -e02c5cd7104bd7104bd7104be02c5cd7104be02c5ce02c5cd7104bd7104bd7104bd7104bd7104b -d7104bdd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046d7104bfdfdfdfdfdfdfdfdfde6a5b7fdfdfde6a5b7 -b01534e6a5b7fdfdfdfdfdfde16e8fdd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046e02c5c -e16e8fe16e8fe02c5ce02c5cd7104be16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8fe16e8f -e02c5ce16e8fd7104be02c5ce16e8fe16e8fe16e8fe02c5cd7104be16e8fe02c5ce02c5ce02c5c -e16e8fe16e8fe16e8fe02c5ce16e8fd7104be02c5ce16e8fe02c5ce16e8fe16e8fe16e8fe16e8f -e02c5cdd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046d7104bfdfdfdfdfdfde16e8fdfd9dafdfdfdfdfdfd -e6a5b7b01534e6a5b7fdfdfde16e8fdd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -d7104bd7104bd7104bd7104bdd0046d7104bd7104be02c5cd7104bd7104bd7104bd7104bd7104b -d7104bd7104bdd0046d7104bd7104bd7104bd7104bd7104bdd0046d7104bd7104bd7104bd7104b -d7104be02c5cd7104bd7104bd7104bdd0046d7104bd7104bd7104bd7104bd7104bd7104bd7104b -d7104bdd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046d7104bfdfdfde6a5b7e02c5ce16e8fe02c5ce02c5c -e02c5cb01534e02c5cfdfdfde16e8fdd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046d7104bdfd9dae02c5ce02c5ce02c5ce16e8fe16e8f -e6a5b7e6a5b7e6a5b7fdfdfde16e8fdd0046e02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5c -e02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5cd7104be02c5ce02c5ce02c5c -e02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5cd7104be02c5ce02c5ce02c5ce02c5ce02c5c -e02c5ce02c5ce02c5ce02c5ce02c5cd7104be02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5c -e02c5ce02c5ce02c5ce02c5cd7104be02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5cd7104b -e02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5cd7104be02c5ce02c5ce02c5ce02c5ce02c5c -e02c5ce02c5cd7104be02c5ce02c5ce02c5cdd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046d7104bdfd9dae6a5b7dfd9dafdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfdfdfdfde16e8fdd0046d7104be02c5cd7104bd7104bd7104bd7104be02c5c -e02c5ce02c5cd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104bd7104be02c5ce02c5c -d7104bd7104bd7104bd7104be02c5cd7104be02c5cd7104bd7104be02c5ce02c5cd7104bd7104b -d7104bd7104be02c5ce02c5ce02c5cd7104bd7104be02c5cd7104bd7104bd7104bd7104bd7104b -d7104be02c5ce02c5cd7104bd7104bd7104be02c5cd7104bd7104bd7104bd7104bd7104bd7104b -e02c5cd7104bd7104bd7104be02c5ce02c5ce02c5cd7104bd7104bd7104be02c5ce02c5cd7104b -d7104be02c5cd7104bd7104bd7104bd7104bdd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046d7104bfdfdfdb8b3c15754525754525754528d8b8e -5754525754528d8b8efdfdfde16e8fdd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046d7104bfdfdfddfd9dab8b3c1b8b3c1dfd9dadfd9da -b8b3c1b8b3c1b8b3c1fdfdfde16e8fdd0046dd0046dd0046dd0046e02c5ce02c5ce02c5ce02c5c -d7104be02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5cd7104bd7104be02c5ce02c5ce02c5c -e02c5ce02c5ce02c5ce02c5ce02c5cd7104be02c5ce02c5ce02c5ce02c5cd7104be02c5ce02c5c -e02c5ce02c5ce02c5ce02c5ce02c5cd7104be02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5c -e02c5ce02c5ce02c5cd7104be02c5ce02c5ce02c5ce02c5ce02c5ce02c5cd7104be02c5ce02c5c -e02c5ce02c5ce02c5cd7104bd7104be02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5ce02c5c -e02c5ce02c5ce02c5cd7104bdd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046d7104bfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfdfdfdfde16e8fdd0046dd0046dd0046dd0046d7104be02c5ce02c5ce02c5c -d7104bd7104bd7104be02c5ce02c5ce02c5ce02c5ce02c5cd7104bd7104be02c5ce02c5ce02c5c -d7104bd7104be02c5ce02c5ce02c5cd7104bd7104be02c5cd7104be02c5cd7104be02c5ce02c5c -e02c5cd7104be02c5ce02c5ce02c5cd7104bd7104be02c5ce02c5ce02c5ce02c5cd7104bd7104b -e02c5ce02c5ce02c5cd7104bd7104be02c5ce02c5ce02c5ce02c5cd7104bd7104bd7104be02c5c -e02c5ce02c5ce02c5cd7104bd7104be02c5ce02c5ce02c5cd7104bd7104be02c5ce02c5ce02c5c -e02c5ce02c5ce02c5cd7104bdd0046dd0046dd0046dd00460d0c09 -0d0c09dd0046dd0046dd0046dd0046dd0046d7104bfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfdfd -fdfdfdfdfdfdfdfdfdfdfdfde16e8fdd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd0046 -dd0046dd0046dd0046dd0046dd0046dd0046dd0046dd00460d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -0d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c090d0c09 -showpage -%%Trailer -end -%%EOF diff --git a/Docs/Books/prof.gif b/Docs/Books/prof.gif deleted file mode 100644 index 8bb86295ab7eeaaae0caec73b9df651c5b80a278..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2942 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 diff --git a/Docs/Books/prof.txt b/Docs/Books/prof.txt deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/Docs/Books/pthreads.eps b/Docs/Books/pthreads.eps deleted file mode 100644 index 183b792c639..00000000000 --- a/Docs/Books/pthreads.eps +++ /dev/null @@ -1,1212 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: GIMP PostScript file plugin V 1.06 by Peter Kirchgessner -%%Title: /opt/local/x1/work/bk/mysql/Docs/Books/pthreads.eps -%%CreationDate: Sun Dec 31 14:31:11 2000 -%%DocumentData: Clean7Bit -%%LanguageLevel: 2 -%%Pages: 1 -%%BoundingBox: 14 14 296 383 -%%EndComments -%%BeginPreview: 100 131 1 131 -% fffffffffffffffffffffffff0 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000008000000000000000010 -% 80000020000004028000000010 -% 80000044110004020000000010 -% 80000010511325224989251010 -% 80000083111249024099082010 -% 80000020000020200a00000010 -% 80000000000000000100002010 -% 80002000000000000000000010 -% 80004000000000000000000010 -% 80020800880000400808830010 -% 80002008000102100000048010 -% 80000009400100000008500010 -% 80020000000092406000008010 -% 80100008404000000008080010 -% 80002000080140400200022010 -% 80420008400000044849008010 -% 80004800000141410000140010 -% 80000000000000000000000010 -% 80020000000000000000000010 -% 80100000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000004000000000000000010 -% 80000004000000000000000010 -% 8000000d000000000000000010 -% 8000000c080000000000000010 -% 8000000d947000000000000010 -% 8000000f68a000000098000010 -% 8000000ca87800000000000010 -% 80000007208000000000000010 -% 80000004a1cc00000094800010 -% 80000001564200000000000010 -% 800000065a4200000000000010 -% 8000000b604400000005c00010 -% 8000000d904200000080000010 -% 8000000b784100000000000010 -% 8000000d466600000000000010 -% 8000000d846200000000000010 -% 8000141d223600000000000010 -% 8000fb9f932c000100a2ca0010 -% 80034e9ea13c00029002000010 -% 800ef79b2934000b3000000010 -% 8017570c919c0008e5baac0010 -% 802eed0c91980005c000000010 -% 8017ba4f8da8000a8000000010 -% 8015c4ad034c0012036d700010 -% 800f725f42e40027004a500010 -% 8007d4bb802c00280000000010 -% 80036836ac14004b8000000010 -% 8007dead180800910000000010 -% 8006ffdfba0e01480000000010 -% 8003dffd370405b00391000010 -% 80015dff7f0605e00028000010 -% 8002afdb360209600000000010 -% 80058fb7e90611b00000000010 -% 800abdff7401010802e4e80010 -% 800557eff40340b00000000010 -% 80010fbeac8281c00000000010 -% 8006abfb770182400164000010 -% 800d5fefd40286c00000000010 -% 8035ebfff50504f00000000010 -% 807f7d5dd3f94d800000000010 -% 8005d7a7bed60d000000000010 -% 800bbfffed7fdb000000000010 -% 801ef77f76b5fe4000d3a00010 -% 8035adebaf7f7e000000000010 -% 800b6f7f7eebda800000000010 -% 80005aefdbdf740402ab400010 -% 80005f7b7ef5b0000090000010 -% 8002d2def7bb80000000000010 -% 8000ab75beee20040000000010 -% 8002aa8437b4011002a8000010 -% 80055500d5ea01000000000010 -% 8000014012a804000000000010 -% 80000a9a04e000000000000010 -% 800024a0000000000000000010 -% 8000552a400000400000080010 -% 800092ec8000000001de580010 -% 8000553e040000000000000010 -% 8000a4b4420000000000000010 -% 8000aaa1040000000154a80010 -% 8000552c580000040000000010 -% 80001ca2a00000080000000010 -% 80001faac00000100179b00010 -% 80003bffc00000800000000010 -% 8000dfdb400013000000000010 -% 8002af76d00110000000000010 -% 800dfeedd56880000000000010 -% 80375bfb280000000000000010 -% 802af7dec41200000000000010 -% 8035feba7c4000000184000010 -% 802b5bf54900000003cfc00010 -% 800d6fa97000000003c9400010 -% 8003b77f8000000001cf400010 -% 80005ab9000000000008000010 -% 80000240000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% 80000000000000000000000010 -% ffffffffffffd4924924924930 -% edb6db6ddddb41249249249250 -% dbedf6df7776d4492492492490 -% febf5fb2dddfa1224924924930 -% d5ebf579b77554881209249250 -% ff7eafd19d15c1202040092490 -% d5d5faffb77b504a9515524930 -% ff7f5faafdd6ca9040a0049250 -% d5d5f5ffab7fd125150aa92490 -% ff7f5f55ffd54448a251124930 -% fffffffffffffffffffffffff0 -%%EndPreview -%%BeginProlog -% Use own dictionary to avoid conflicts -5 dict begin -%%EndProlog -%%Page: 1 1 -% Translate for offset -14.400000 14.400000 translate -% Translate to begin of first scanline -0.000000 368.503937 translate -281.300715 -368.503937 scale -% Variable to keep one line of raster data -/scanline 100 3 mul string def -% Image geometry -100 131 8 -% Transformation matrix -[ 100 0 0 131 0 0 ] -{ currentfile scanline readhexstring pop } false 3 -colorimage -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7 -fffffffffff7fffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffff7f7f7 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffff7ffffffffffff -f7f7f7fffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f7f7ffffff -f7f7f7fffffffffffffffffffffffffffffffffffffffffffffffff7f7f7ffffffffffffffffff -f7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffff7f7f7ffffffffffffffffffffffffffffffffffffefefeffffffffffffff7f7f7 -fffffffffff7f7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffffffffffffffffff7f7f7fffffff7f7f7fffffff7f7f7ffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f7ffffffff -ffffffefeff7fffffff7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffff -efefefffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefefefffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f7ffffffff -fffffff7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffffffffffffffffffffffff7f7f7ffffffffffffffffffffffffefeff7 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffffffffffffffffffffffff7f7f7ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffff7ff -ffffffffffffefeefffffffffffffff7f7f7f7f7f7ffffffffffffffffffefefeffffffff7f7f7 -fffffff7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffff7f7f7fffffffffffffffffffffffff7f7fffff7ffffffffefeeffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -d6d6dee7e6ef9991aaffffffffffffffffffffffffefefeff7f7effffffffffffff7f7f7ffffff -fffffffffffff7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffefefeffffffff7f7f7fffffffffffffffffffffffffff7ffffffffa8a8b5a8a8b5fff7ff -f7effff7efffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffefefefffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffefeeffdedef0 -979ca9d6d6eb796e82f7f7ffffffffffffffffffffd6d6d6dededed6d6d6f7f7f7e7e7e7f7f7f7 -d6d6d6fffffff7f7f7f7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffff -dedede81897cffffffffffffffffffffffffffffffd6d6def7f7f7fff7ff555682e7e6ef7e7b9c -fffffff7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffefefefcbcec5d6d6d6efefefffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7c7b7c -cbcedbb7b3c4d6d6eb9c9fc0ffffffefefeff7f7ffd6d6ebd6d6eb67687ccbcedbffffffdedde7 -7c7b7cf7f7ffefeff7d6d6ded6d6ebefeff7efeff7d6d6ebe7e6eff7f7ffffffffdedef0efeff7 -d6d6de7c7b7cffffffdedde7efeeffe7e6efd6d6ded6d6ebf7f7ffffffff7e7b9cd6d6dea8aac6 -e7e3f7f7f7ffefeff7d6d6deefeff7ffffffe7e6efdedde7ffffffefeff7ffffffdedde7efeff7 -efeff7e7e6effff7ffffffffdedde7efeff7ffffffe7e6efffffffe7e6efdedde7fffffff7f7f7 -e7e6efffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffffffffffffffffffffffff7f7f7fffffffffffff7f7ef -fffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffff7ffe7e7e7c8c5d5 -efeff7848e9bd6d6eba5a5a6cbcedb979ca9ffffff9c9fc0bac6d8848e9bcbcedbffffffefeff7 -7e7b9cf7f7ffffffffa8aac667687ccbcedbc4d3ed5556824c5299efeff7dedef05556829c9fc0 -c4d3ed7e86b0d6d6de52457ac4d3edb7b3c47e7b9cd6d6ebfffffff7f7ff796e827e86b0bac6d8 -7e7b9cefeeff9c9fc07e86b0c8c5d5d6d6eb55568252457adedef0d6d6ebbac6d85556829c9fc0 -a8aac67e7b9cffffffdedef07e7b9ccbcedbd6d6eb9c9fc0e7e3f7848e9b9991aaffffffbbc1c8 -9991aaffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffff7fffff7fffff7fffff7fffffff7f7f7fffffffffffff7f7ffffffffffffff7c7b7cdedef0 -bdbdbda8aac6efeff7efeff77e7b9c7e7b9cefeff79c9fc0a8aac67e7b9cbac6d8d6d6dea3c4da -67687cd6d6ebf7f7ffbac6d867687ccbcedbffffff7e86b0555682bac6d89c9fc0555682c4d3ed -b7b3c47e7b9cd6d6eb412f549c9fc0efeeffbac6d8cbcedbf7f7ffffffff67687cffffffdedde7 -67687cffffffbac6d8cbcedbbac6d8a3c4da9c9fc0557085dedef0d6d6eb7e86b0555682979ca9 -d6d6eb9c9fc0ffffffd6d6ebc4d3ede7e3f77e7b9c7e7b9ce1eeffbac6d8ffffffd6d6dea8a8b5 -c8c5d5fffffffffffff7f7ffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffffffffffff7f7f7fffff7ffffffffffffffffffffffffc6cecef7efff -979ca9ffffffdedef0dedde7979ca9979ca9bbc1c8ffffffa8b9bda8a8b5bac6d8bac6d8cbcedb -9c9fc0cbcedbe7e3f7d6d6deb7b3c4dedef0ffffffbac6d8a8aac6bac6d8a8aac6a8aac6d6d6eb -a8aac6bac6d8e7e3f7979ca9e7e6efd6e6ed9991aabac6d8f7f7ffffffffa8b9bdf7ffffefefef -a8aac6ffffffefeff79c9fc0c8c5d5b7b3c4c4d3eda8aac6efeff7b7b3c4bac6d8b7b3c4bac6d8 -efeff7cbcedbf7f7ffefeeffe7e6efeff7ffb5bdbda8a8b5deedeed6d6ebffffffdedde7848e9b -e7e6effffffffffffffff7ffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffffffffffffffffffffffff7f7ffe7e7e7e7dde7dedede -d6d6d6cddadadae0d6efefefe7e7e7fffffffffffffffffff7f7f7fffffff7f7ffffffffffffff -fffffff7f7fffffffffffffffffffffffffff7f7fffffffffffffff7fffff7f7ffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffff7f7fffffffff7f7fff7f7fffffffffffffffffffff7fffffffffffffffff7ffff -f7fffff7f7f7f7fffff7f7ffffffffb7b3c467687ce7e6efffffffffffffffffffffffffffffff -f7fffff7f7fffffffffffffff7fffffffffffffffffffffffffffff7ffffffffffe7e6efa8a8b5 -dedde7ffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffe7e6efe7e7e7efefefefefef -e7e7e7efefefe7e7e7f7f7f7dedede9a9291d6dedefffffff7f7f7ffffffffffffffffffffffff -f7f7ffffffffffffffffffffffffffe7f4f7f7f7f7f7f7f7f7fffffffffffffffff7f7f7ffffff -fffffff7fffffffffffffffff7fffff7fffffffffff7f7fff7f7ffffffffffffffffffffffffff -f7fffff7f7f7ffffffffffffffffffffffffe7f4f7fffffffffffffffff7ffffffffffffffffff -fffffff7fffffffffff7f7f7f7f7fff7ffffa8a8b5deedeeffffffffffffffffffffffffffffff -fffffffffffff7f7fff7ffffffffffefefeff7fff7ffffffe7f2edffffffffffffffffffd6d6de -d6d6defffffffff7ffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffefeff7e7e6efd6d6d6f7f7f7 -f7f7efbdbdbddededec6c6c6a5a5a6efefefaeadadd6d6d6ffffffefefefdedde7cececee7e7e7 -dededed6d6d6d6d6d6cecececececee7e7e7e7f2edcddadacddadacdd8ccd6d6d6f7fff7ddeade -dededec6ceced6d6d6deedeee7f2ede7f2edd6dedec6ceced6d6dededde7bbc1c8efefeff7f7f7 -ffffffe7f4f7cddadad6d6d6c6c6c6d6dededededecbcec5dae0d6fffffffffff7fffffff7fff7 -efefefd6dedecdd8cce7f4f7fffffff7f7f7ffffffffffffd6dedec6cecec6c6c6d6deded6d6d6 -c6ceced6dedefffffffffffffffffff7f7f7f7fff7cdd8ccc6c6c6cdd8ccb7bcadf7fff7f7f7ff -efeff7ffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffefeff7b5b5b5efefef -f7f7f79b9c9cf7f7f7f7f7f7b5b5b5b5b5b5ffffff9b9c9cc6c6c6c6c6c6e7e7e7d6d6d6dedede -f7f7efdedededededecbcec5f7f7f7cececeb5b5b5d6dedeefefe7f7f7f7b5b5b5d6d6d6c6c6c6 -e7f2edf7fff7d6dedecececeddeadec7c6bcdededef7f7ffc6ceced6dedef7f7efe7f4f7aeadad -f7fff7bcc8bcc7c6bcf7f7efcddadab9bdb5cdd8ccf7fff7efefe7efefe7fffffffffffff7fff7 -dededeffffffbdbdbda5a5a6ffffffffffffffffffe7e7e7b5bdbdefefefdeedeeb5b5b5bbc1c8 -ffffffcececea5a5a6e7f2edf7fff7ffffffaeadadddeade9fa89c7c7b7cefefe7bdbdbde7e6ef -fffffff7f7fffffffff7f7ffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffffffffffffffffff7f7fffffffff7f7ffbbc1c8ffffff -f7f7f7bdbdbdffffffffffffdededea5a5a6ffffffffffffc6c6c6bdbdbdefefe7d6dedecec6c6 -fffffff7f7ef898c8caeadaddae0d6bdbdbdb5b5b59fa89cc6c6c6ffffffbdbdbdefefefdedede -cdd8ccffffffcdd8ccefefefffffffcececed6dedeffffff9a92919b9c9cf7f7f7fffff7e7f2ed -e7f2edcdd8ccb5b5b5ffffffcbcec5b9bdb5efefe77c7b7cdae0d6ddeadef7f7f7fffffff7f7f7 -b5b5b5efefefe7f2edbcc8bce7e6effffffff7ffffffffffa8b9bdfffffff7f7f79a9291dedede -c6c6c6ffffffb5b5b5aeadadffffffa8b9bddedede7c7b7cb9bdb5c6c6c67c7b7ccdd8cce7e7e7 -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffefeff7b5b5b5f7f7f7 -ffffffaeadadffffffffffffdededebdbdbdffffffffffffbdbdbde7e7e7cec6c6efefefd6dede -ffffffdae0d6898c8cffffffcdd8cca5a5a6d6dede898c8cbbc1c8ffffffdededef7f7ffefefef -c6ceceefefefc6cecefffffffffffff7f7f7efefefffffff848e9b9b9c9cefefefffffffefefef -f7f7f7dededeaeadadffffffcececec6c6c6ffffffd6d6d6f7f7f7cececef7fff7ffffffefefef -b5b5b5f7f7f7ffffffbdbdbdbdbdbdffffffffffffffffffbdbdbdefeff7f7fff7a8a8b5ffffff -d6d6debbc1c8ffffffa5a5a6c6c6c69b9c9cdededeffffff9a9291bbc1c8aeadadffffffefefef -fffffffff7ffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffd6cdd7bbc1c8efefefd6d6def7f7ff -ffffffaeadadffffffffffffdededec6c6c6ffffffffffffbdbdbdc7c6bcefefefffffffdae0d6 -ffffffefefe79b9c9cfffffff7f7f7efefefffffff81897cb5b5b5ffffffbbc1c8d6cdd7c6cece -efeff7f7f7f7c6c6c6ffffffffffffd6d6dee7e6efffffff898c8c7c7b7cf7f7f7dedede9a9291 -ffffffd6d6de9b9c9cffffffaeadad7c7b7ca8b9bddededeefefefe7e7e7fffffffffffff7f7f7 -7c7b7c898c8cffffffe7dde7d6d6defffffffff7ffffffffb5b5b5ffffffefeff7848e9bffffff -e7e6efd6cdd7fffffff7f7f7efeff7c6b9c6d6d6d6ffffffffffffdedede898c8cc6c6c6f7f7f7 -fffffff7f7f7ffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffe7e6efefe6f2efeff7b5b5b5efeff7 -f7f7f7b5b5b5f7f7f7ffffffc6cecebdbdbdffffffffffffc6c6c6e7e7e7fffffff7f7f7e7e7e7 -ffffffe7e7e7898c8cf7f7f7fffffff7f7f7ffffff9b9c9ccececeffffffefefefe7e6eff7f7f7 -fff7ffefefefbbc1c8f7f7ffffffffefeff7efefefffffffb5b5b5cececedededea5a5a6bbc1c8 -ffffffe7e7e7c6c6c6f7f7f7f7ffffe7e7e7e7dde7dededeefeff7fffffffffffff7f7f7c6b9c6 -ffffff898c8ca5a5a6ffffffbdbdbdcececeffffffffffffb5b5b5fff7fffff7f7b5b5b5ffffff -e7dde7dededeffffffffffffe7dde7ffffff979ca9dededee7e6efffffffffffffdededecbcec5 -fffffff7f7f7f7f7f7fffffffffff7ffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffefefefcbcedbf7f7ffc6cecefff7ff -ffffffaeadadffffffffffffd6d6d6aeadadffffffe7e7e7efefeff7f7f7ffffffffffffdedede -ffffffe7e7e79b9c9cfffffffffffff7f7ffffffff7c7b7cbdbdbdffffff979ca9e7e7e7dedde7 -bdbdbdffffffd6d6deffffffffffffe7e7e7e7e7e7ffffff898c8cbdbdbd81897cefefefffffff -e7e7e7efefefc6c6c6ffffffb5b5b5aeadadefefeff7f7ffd6d6d6cececeffffffe7e6efaeadad -e7e7e7fffffff7f7f7ffffffc6c6c6c6c6c6ffffffffffffbdbdbdffffffefeff7b5b5b5ffffff -e7e7e7bbc1c8ffffffdedde7dedde7e7e7e7e7e6efbbc1c8848e9befefefe7e7e7e7e7e79b9c9c -fffffffffff7fffff7fffffffffffffffff7ffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffc6cece898c8cd6d6ded6cdd7f7f7ff -f7f7f7616f61e7e6efdededeaeadadc6c6c6ffffffaeadadcececeffffffffffffffffffbbc1c8 -ffffffe7dde77c7b7cffffffefeff7ffffffffffff796e82bdbdbdffffffd6cdd7ffffffe7e7e7 -d6cdd7f7f7f7bbc1c8efefefffffffe7e7e7e7e7e7ffffff898c8ccececea5a5a6f7f7f7f7f7f7 -bdbdbdf7f7f7d6d6d6efefefbdbdbdaeadadf7f7f7aeadadf7f7f7aeadade7e7e7b5b5b5efefef -9fa89cdededea5a5a6a5a5a6ffffffb9bdb5cdd8ccffffffa5a5a6f7f7eff7f7f79b9c9cefefef -bdbdbda5a5a6ffffffa5a5a6c6c6c6c6c6c6f7f7f7bdbdbddededea5a5a69b9c9cefefef9fa89c -fffffffffffffffff7fffffffffffffffff7ffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffefeff7f7f7f7ffffffcececef7f7f7 -fff7ffa5a5a6d6d6d6c6c6c6a5a5a6f7f7f79b9c9cc6c6c6ffffffffffffffffffe7e6efe7e6ef -ffffffefefefa8a8b5f7f7f7f7f7f7fffffff7f7f7aeadadd6d6d6ffffffd6d6d6e7e7e7dedede -efefefffffffe7e7e7e7e7e7f7f7f7cececeefefe7ffffff9fa89ccdd8ccaeadadfffffff7f7f7 -cbcec5ffffffd6d6d69b9c9cbdbdbdaeadade7e7e7aeadadc7c6bcb5b5b5dededeaeadaddedede -d6d6d6ffffffc7c6bccdd8ccffffffcecececdd8ccdae0d6aeadadfffff7f7f7f77c7b7cc7c6bc -dae0d6dedede9fa89cc7c6bcffffffaeadadcec6c69b9c9cbdbdbdd6d6d6dededed6d6d6dedede -fffffffffff7fffffffffff7ffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffdedde7b5b5b5d6d6d6c6ceceffffff -fffff7dedde7efefefefefe7f7f7f7b5b5b5d6d6d6fffffffffffff7ffffffffffdeedeeffffff -deedeef7f7f7fffffff7fffff7fffffffffffff7ffffffffe7f4f7e7f2edf7ffffe7f2edf7fff7 -f7f7f7efefefe7f2edf7ffffefeff7efe6f2fff7fff7f7efffffffdededefffffff7f7eff7f7f7 -f7f7f7f7f7f7ffffffdedededededeffffffe7e7e7ffffffc7c6bce7e7e7f7f7f7efefeffffff7 -e7e7e7efefe7fffffffffff7efefe7f7f7eff7f7efdedededededeefefe7efefe7cdd8ccfff7f7 -fffff7d6d6d6c7c6bcfffffffffffffff7f7bdbdbdf7f7f7fff7fff7f7f7dededed6d6d6ffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffc6c6c6dededed6d6d6f7f7f7 -f7f7f7a5a5a6efefefdededef7f7efffffffffffffffffffffffffffffffffffffffffffe7f4f7 -e7f2eddeedeee7f4f7f7fffff7fffff7ffffffffffefeff7efefefdeedeee5ffffe5fffffffff7 -efefefefefe7e7f4f7f7fffffffffffff7ffefeff7f7f7f7e7f2edfffff7efefeff7f7f7f7f7f7 -f7f7f7fffffffffffffffffff7f7f7e7e7e7efefefefefeffffffffffffff7f7f7f7f7f7f7f7f7 -fffff7fffffff7f7f7efefefefefe7efefeffffff7fffffff7f7efdededeefefe7fffff7efefef -dededef7f7efffffffffffffffffffffffffffffffefeff7e7e7e7efefeffffff7ffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffffffffffffffffff7f7f7ffffffe7e7e7bdbdbdf7f7f7 -ffffff9a9291e7f2edfffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7 -fffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffe5ffffefffffffffff -fffff7fffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffffffffffffffffffffffff7f7f7cececee7e7e7ffffff -ffffffaeadadcdd8ccf7f7f7f7f7fffffffffffffffffffffffffffffffffffff7fffff7fffff7 -fffff7fffff7fffffffffffffffffffffffffffffffff7fffff7fff7ffffeffffff7fffffffff7 -fff7fffffff7fffffff7fffff7fffffff7ffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffffff -fffffffffffffffffffffffff7f7ffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffdededebdbdbdd6d6d6c6c6c6 -b5b5b5c6c6c6d6d6d6f7fffff7fffffffffffffffffffffffffffffffffffffff7ffffefffffef -ffffeffffff7fffff7fffffffffffffffffffff7fffff7ffffffffffffffffffffffffffffffff -fff7fffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffffffffffffffffffffffffffffff7f7f7efefefefefef -efefeffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffff7fffff7ffffef -ffffeffffff7fffffffff7fffff7fffffffffffffffff7fffffffffffffffffffffffff7ffffff -fffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffffffffffffffffff7f7f7f7f7f7fffffff7f7f7ffffff -fffffffffffff7f7f7fffffff7fffffffffff7fffffffffffffffffffffffffff7fffff7fffff7 -fffff7fffffffff7fff7f7ffe1eeffeff7fffffffffffffffff7fffff7ffffffffffffffffffff -fffffffffffffffffff7fffff7ffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -f7f7f7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffff -f7fffff7ffffefffffe1eeffc4d3edbac6d8effffffffffffffffffffffffffffffffffffff7ff -fffffff7fffff7fffff7fffff7fffff7ffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffff7fffff7ffffffffffffffffffffffffffffffffffffeffffff7ffff -efffffefffffcee0ef285297a3c4daf7ffffeffffff7fffff7fffffff7f7fffff7ffffffffffff -f7ffffeffffff7ffffeffffff7fffff7fff7ffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffffffffffff7f7ff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffff7fffff7fffff7fffffffffffffffffffffffff7ffffefffffefffff -e5ffffe5ffffa3c4da4f6c9fa3c4dae7f4f7f7ffffe7f4f7f7ffeffffffffffffffffff7ffffff -effffff7fffff7f7f7efeff7fffff7f7f7efffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffff7f7fffff7fff7f7f7fffffff7f7ffffffffffffffffffffffffffffffffffffff -fff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffff7fffff7fffff7fffffffffffffffffffffffff7ffffefffffe5ffff -e5ffffc4d3ed1550782852976784bda8a8b5e7f4f7fffffffff7efded6ccdac7abfff7eff7fff7 -f7fffff7f7f7fffffffbefeffdefe7fef7e7fff7efffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffffffffffffffffffffffffff7fff7f7fffff7fff7f7fffff7ffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffff7fffff7fffffffffffffffffffffffffffffff7fffff7fffff7ffff -f7ffffcee0ef1426574f6c9f8ba1c79991aac7c6bcded6cceee1c3e6c196b99f9bdac7abfbfbde -fffff7fffffffce6eed7ad9dd6aa8afdcfc4fff7efffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffff7f7f7f7f7f7fffffffffffffffffffffffffffffffffffffffffff7f7ff -fffffffff7fff7f7fffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffff7ffff -f7ffffd6dede1426572f537967687c9d716f9d716fa38457f6cdabc28268e6c196a2763ffbfbde -fef7e7ded6ccc38a81bf4d3ed66b42d6aa8affffeffffffffffffff7f7f7ffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffffffff7ffe7dde7dedde7a8a8b5d6d6ebdedef0c8c5d5b7b3c4ffffff -f7f7fffffffff7f7f7fffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffff7fffff7fffffffffffffffffffffffffff7fffff7ffffefffffeffffff7 -ffffffd6dede1e1f3a1e1f3a4d48538040497d3d30a16d56c18040c48756bf4d3ed2a46af2ebd6 -eee1c3a16d56a16d569e2e11bf4d3ee18855fdd0ceffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffff7ffffffffb5b5b5cbcedb67687cd6d6dee7e6ef67687c67687cffffff -f7f7fffffffff7f7f7f7f7effffffffffff7ffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffff7fffff7fffffffffffffffffffffffffffffffff7ffffefffffefffffef -fffff7efefef7a68703f3235804049c28268e78673a0563f954713c18040954713f6cdabfdffe7 -fdffe7d7ad9dbf4d3eb62b10b62b10f13f3df3ac92fdefe7ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffefefeff7efffe7dde7f7f7f7ffffffd6d6dec8c5d5ffffff -fffffff7f7ffefeff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffff7fffff7fffffffffffffffffffffffffffffffffff7ffffefffffef -fffff7ede8de9d716f9d716f804049bf4d3ed7ad9df3ac92c28268d7ad9deee1c3fdffe7f7f7ff -b7b3c4c38a81a13e30d66b42f3ac92c28268d6aa8afbfbdefff7effffffff7f7fff7ffffffffff -ffffeffffff7fffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7 -fffff7fffff7fffffffffffffaeef7ffffffffffffffffffffffffffffffffffffffffffffffff -fff7fffffffff7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffff7fffff7fffffffffffffff7fffffffffffffffffffffffff7fffff7 -ffffeffdefe7ddcacb846a4ca16d56e88683a13e30e886839d716fc6ceceffffffcee0ef8ba1c7 -616cbf804049a00d08d6aa8afff7f7bab69da16d56f6cdabf2ebd6efefe7f7ffffefffffffffff -ffffefffffefffffeffffffffffffffffffffffffffffffffff7fffffffffffffffffffffffff7 -fffff7fffff7fffff7ffffffffffffb5b5b5e7dde79b9c9cefefefbbc1c87e7b9c9991aa7e7b9c -bac6d8bac6d8848e9b9991aae7e3f7a8a8b5c8c5d5f7f7ffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffe7f4f7f7ffffffffff -efefeffffffffff7fff3d2dac38a81e88683e78673bf4d3ec6b9c6677e83677e836784bd1e4253 -9991aae78673a00d08c38a81ffffeffbefefd6aa8aa0563feee1c3fffffff7f7f7f7fffffffff7 -ffffefffffeffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7 -fffff7fffff7fffff7f7f7f7ffffffdedde7efe6f2e7e6eff7fffff7f7f7efeff7dedef0efeff7 -fff7fff7efffdedef0efeff7fff7ffefeff7f7f7fffffffff7f7ffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffff7ffffffffff -f7fffffff7ffc8c5d5796e827a6870c38a81e886839d716f9d716f557085477285557085677e83 -fce6eee88683bf4d3ebea476ffecd0ffffffc38a81bc6a39f6cdabfdefe7fffffff7fffffffff7 -fffff7fffff7fffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffefefeffffffffffffff7efffffffff -f7f7ffe7e3f7fffffff7f7fff7f7fff7efffffffffe7e3f7f7ffffffffffefeff7ffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffff7fffff7fffffffffffffffffffffffffffff7fffff7fffff7ffffefffff -f7ffffdeedee6175a76175a72f537967687c7e7b9c9d716f5d324bddcacbffeefffff7f7efefe7 -fdefe7e88683812d0dbea476ffffeffef7e7d2a46ab55d18e28e67fdcfc4fff7ffffffffffffff -fffffffffff7fffff7fffffff7fffffffffffffffffffffffffffffffffffffffffffffff7ffff -ffffffffffffffffffefeff7f7f7ffdedef0dedef0f7f7f7c8c5d5efefefffffffefefef796e82 -979ca9848e9b67687c67687cbbc1c8efeeffefeff7efeff7c6c6c6f7f7fffffffff7f7ffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffefffff -efffffcddada142657506fb66784bd4f6c9f2f53799991aac28268a0563fc38a81fce6eeffffef -ffffefe2c9b9661b0cbea476fbfbdefdffe7f6cdabd66b42e18855f2ebd6fce6eeffffffffffff -fffffffffff7fffffff7fffff7fffffffffffffffffffffffffffff7fffff7fffff7ffffffffff -ffffffffffffffffffffffffffffffbbc1c8efeff7a8a8b5e7e6efb5b5b5ffffffefeff7979ca9 -e7e7e7ffffffe7e6efa8a8b5dedde7ffffffa8a8b5e7e6effffffffffffffffffff7f7f7ffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffffffffffffffffffffffffffffffffff7fffff7fffff7f7fff7f7ffff -f7ffffcee0ef3f70b43f70b43f70b41b6ea38ba1c76175a77e5640b62b10a00d08f3ac92e2c9b9 -f2ebd6e2c9b9812d0ddea372fff6b6fdffe7eca872ef883abc6a39fdcfc4ffffffefeff7ffffff -fffffffffffffffffff7fffff7fffffffffffffffffffffffffffff7fffffffffffffffffffff7 -fffff7fffffff7fffff7f7fff7ffffffffffffffffffffffffffffffffffffffffffffffffffff -f7f7f7e7e6effffffffffffff7f7fff7f7ffffffffe7e6effffffffffffff7f7f7ffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffff7fffff7fff7effff7effffff7ffffeffdffe7fdffe7fdffe7fffff7ffffff -f7ffffdeedee2852973f70b43f70b41b6ea33f70b46784bd9d716fc28268d66b42bf4d3ebf4d3e -ffffefdac7ab812d0dd66b42e6c196ffffffdea372b62b10b55d18fdd0cefff7ffffffffffffff -fffffffffffffffffff7fffff7fffffffffffffffffffff7f7fff7fffffffffff7ffffeffffff7 -ffffeffff7efffffffffffffeff7fff7f7fff7fffff7f7f7fffffffffffffffffffffff7e7f4f7 -fffffffffffff7f7f7fffffff7f7fffffffff7f7f7fffffffffffff7f7ffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffffffffffffffffffff7ffffffffffffffefefeffffff7 -f7f7effffff7fef7e7ffffeffef7e7ffecd0f2ebd6ffecd0fbfbdeffecd0f2ebd6fffff7fff7ff -f7f7ff9c9fc01534701b6ea3616cbf3f70b41b6ea3e1eeffc38a81e2c9b9ffeeffbf4d3ed66b42 -d6aa8af2de95954713b62b10bf4d3efffff7c28268b62b10d66b42fdcfc4fff7ffefeff7ffffff -f7f7f7ffffffffffffefffffeffffffffffffff7f7ffffefffffeffef7e7ffffefded6ccfbfbde -fbfbdefef7e7fffff7fffff7fffffff7fffffffffff7f7f7fffffffffff7fffff7fffff7f7f7f7 -fffffff7f7f7fffff7f7f7f7f7f7fffffffff7f7f7e7f4f7fffffffffffff7f7f7ffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffeffffff7 -efefe7ffffeff2ebd6dac7abdac7abbea47683814ea18b74bea476a38457d6aa8ae2c9b9fce6ee -efe6f21426571a378a2852973f70b47b8dc86784bdeff7ff9d716fe88683fdd0cee2c9b9a13e30 -ef883afff6b6e18855bc1111f13f3dc28268d66b429e2e11e28e67f2ebd6fff7ffefeff7ffffff -f7f7f7fffff7fffffffffffff7fffffffffffffff7fffff7fbfbdefdffe7dac7abbea476ffecd0 -fbfbdefef7e7f2ebd6f7f7eff7fff7f7ffffbcc8bce7f2edfff7efffffffffffffefefe7fffff7 -ffffffffffffffffffffffffffffffefeff7fffffffffffff7f7f7efefeff7f7f7ffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffffffffffffffffffffffffff7f7fff7effffff7fef7e7 -fdffe7c7c6bcbea476846a4c81753383814e626e1f626e1f81753383814ea2763fa16d56fff7ef -a8a8b50000211a378a2852971a378a2852974c5299b99f9bc38a81e88683d7ad9df3d2dab55d18 -bc6a39e6c196e6c196a00d08f13f3ddd250fb62b109e2e11dac7abfff7f7fff7ffffffffefeff7 -fffffffffff7fffffffffffff7fffff7fffff7f7f7fff7eff2ebd6dac7abd6aa8aa38457ffffef -eee1c3f2ebd6ffffffefefe7fffff7d6dedecdd8cc616f61ded6cc9a9291aeadadcdd8ccaeadad -4d48539b9c9c898c8c272522b5b5b5ffffff898c8cb5b5b54d4853bcc8bcf7f7f7ffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffffffffffffffffffffffffffff7ffffefffffefdac7ab -bab69d83814e83814e817533626e1f817533817533626e1f42500d605622605622846a4cb99f9b -a8a8b51426571426571a378a1a378a5058b05058b0c38a81c28268c28268d6aa8af2ebd6e6c196 -954713bea476f3ac92a00d08d30f15dc0c02b70d05c48756f2ebd6fff7fffff7fff7f7fff7f7ff -fffffffffff7fffffffffffff7fffff7fffffffffffef7e7fbfbdebea476d2a46ac28268c28268 -fffff7bab69da18b74fffffff7f7f7deedeeffffffaeadadefefe7c7c6bccdd8ccefefefcdd8cc -a5a5a6cececeb5b5b5898c8cdededeffffffc6c6c6cececeaeadadefefeffffff7ffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffffffffffffffffffffffffff7effffff7dac7ab83814e -5c553b5c553b626e1f626e1f42500d626e1f55884455884442500d27381342500d5c553be2c9b9 -d6d6eb142657153470285297616cbf1a378ac4d3edb99f9ba0563fe88683d6aa8afdd0cefdd0ce -812d0de28e67ffecd0c38a81cc0004dd250fb70d05d7ad9dfffffffaeef7fffffff7f7ffffffff -fffff7fff7effff7effffffffffffffffffffffffffffff7a38457dea372c28268a13e30a13e30 -c38a817d3d30846a4cfffffffffff7f7f7fff7fffffffffffbefefffffffffffffffffffffffff -fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffff7fffff7ffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffffffffffffffffffffff7ffffefc7c6bc846a4c7e5640 -42500d5c3f1b42500d626e1f626e1f43711e626e1f55884443711e42500d273813bab69defefe7 -ffffff8ba1c71426573f70b4a6c8eb506fb6142657c7c6bcb99f9b9d716fe78673fdcfc4f3d2da -a13e30b62b10f3ac92c38a81860002dd250f9e2e11e6c196ffffffffeefff7f7fff7fffff7f7ff -fffff7ffffefffffeffffffff7fffff7f7f7ffffffc7c6bca16d56f3ac92e28e67c180407e1006 -812d0d661b0c9d716fffffff7c7b7cbdbdbd616f61101715efe6f23f32353f3235545656bbc1c8 -272522979ca95456569b9c9c7c7b7c979ca99a9291101715e7e7e7ffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffff7fffffffffffffffffffffffffffffffffffffff7effffff7a18b74846a4c605622 -5c553b413d1242500d817533626e1f626e1f43711e1c4e0e42500d43711e413d12eee1c3fbfbde -fff7f7e7e6ef1426571426578ba1c7a3c4da000021aeadadffffff9d716fa16d56fdd0cefdcfc4 -a00d08b62b10e18855f6cdabb62b10b62b10bf4d3ee2c9b9fffff7fffffff7ffffeff7ffffffff -fff7f7fff7effffffffffffff7ffffffffffffffffd7ad9ddea372a0563fd66b42a13e30812d0d -a13e309d716ffff7fffff7ffe7e6efdeedeeefeff7e7e7e7efefefe7e6efe7e7e7efefefffffff -e7e6efefeff7efefefefeff7efeff7f7f7f7f7f7f7dededefffff7f7f7efffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffff7fffff7fffffff7fffffffffffffffffffffffff7efffffefa18b747e564083814e -42500d27381342500d413d12626e1f626e1f626e1f626e1f8c611b817533b6a042b6a042bea476 -bea476bab69d796e821e1f3a616cbf555682555682d6e6edfffffffff7ffa16d569e2e11f6cdab -9e2e11b62b10d35113f3ac92dea372a00d08bc6a39ddcacbfffffff7ffeff7fff7f7fff7ffffff -ffffffffffffffffffefffffeffffff7fff7fdffe7bea476e28e67e78673e88683a0563f804049 -9d716ffff7fffff7fffff7f7ffffffefeff7f7f7f7f7fffff7fff7f7f7f7ffffffefefefffffff -fffffff7f7f7ffffffefefefe7e7e7f7f7ffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffff7fffffffffffff7fffff7fffffffffffffffffff7efffffefbea47681753383814e -1c4e0e43711e103a155c553b5c553b817533a38457b6a042b6a042d2a46ad2a46ac48756ebc07c -a38457a3845710171552457a9991aa412f54c4d3ede1eefff7f7f7fff7fff2ebd6a0563f9e2e11 -b62b10b62b10d35113e28e67d6aa8a9e2e117d3d30ddcacbffffffeff8eeffffeffffff7ffffff -fff7fffffffff7ffffe5fffff7fffff2ebd6e6c196c18040da8539eca8729e2e11a16d56d7ad9d -fff7f7fff7fffff7ffffffff979ca97c7b7c101715c6c6c6616f613154499a9291000000272522 -898c8c616f61ffffff4d48535456564d463cbbc1c8ffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffff7fffffffffffffffffff7f7ffffefffffefffffef7da572 -1c4e0e103a1543711e31653542500d626e1f817533b6a042d2a46ac48756d2a46adea372a2763f -8175337e564027252252457a1e42532f53799991aa9a9291e2c9b9fce6eefffffffffff7a16d56 -c28268a13e30a13e30a13e30b99f9ba8a8b51e1f3ad6cdd7fffffff7ffeff7ffeffffff7fffff7 -fffffffffffff7ffffe7f2edffffefbea476a2763ffcdf6ae18855da8539a0563f8c611bfffff7 -fff7effffffffffffffffffffff7ffffffff7c7b7ce7e7e7545656898c8cc6c6c6a5a5a6616f61 -aeadad898c8ccecece3f32359b9c9c616f61d6cdd7ffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffffffffffffffffffffffffffff7efefe7fdffe7f2ebd6 -2b67201c4e0e1c4e0e2b67202b672043711e626e1fb6a042d2a46ae28e67eca872c48756c48756 -817533413d123f32355570850000212445383f3235a18b74b99f9bf2ebd6e2c9b9ddcacbd7ad9d -fbefeff2ebd6846a4c7a6870c6b9c67e86b0142657b5bdbdfffffffffffff7fff7ffffeffffff7 -fffffffffffffff7effdffe7fff6b6ebc07cc18040ffbc38bc6a39b55d18bc6a39c48756eee1c3 -ffffeffffff7fff7f7f7f7f7fff7f7efefeffffffffffffffffffffffffffffffff7f7f7ffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffffffffffffffffffffffff7fffff7fff7eff8eeddeade -558844103a151963201963202b672042500d626e1f817533bc6a39eca872f3ac92eca872f3ac92 -a16d56492717616f6167687c67687c846a4c7e5640a16d56bab69ddac7ab605622817533d7ad9d -fbfbdefff7efffffffc6b9c64c5299477285477285a6c8ebeff7fffffffffffffffffff7f7f7ef -fffff7fffff7ffffeffbfbded2a46ab6a042ffbc38da8539b55d18a2763feca872a38457846a4c -fffff7fdffe7f7f7eff7f7eff7f7f7efeff7fff7f7fff7fffff7ffefe6f2fffffffffffff7f7f7 -f7f7f7fffffff7f7f7efefeffffffffffffff7f7f7ffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffffffffffffffffff7fffff7ffffffffffe7f2edddeade -7da5721c4e0e103a151c4e0e2b672043711e42500d5c3f1b812d0dd66b42c28268e78673e18855 -c282685c3f1b0000004d48537a6870a16d56e6c196bea47698ae892b672042500d817533e6c196 -fbfbdedeedeedeedeee1eeff8ba1c72852976784bda3c4dacee0effff7fffff7f7fffff7f7fff7 -fffff7ede8dedac7abbea476c18040ef883ae7a330b55d18b55d18ebc07cbea4765c3f1bdac7ab -fdffe7ffffeffffffffff7f7fff7f7fff7f7fffffffff7f7fff7fffffffff7f7f7fffffff7f7f7 -fffffffffffff7f7f7f7f7f7ffffffefefeff7f7f7ffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffffffffffffffffff7ffffeff7fff7ffffeff8eef7ffef -566f421d4f261c4e0e2b67201c4e0e42500d413d12661b0c661b0c7e10067e10067e1006bf4d3e -bc6a397d3d305c2e355d324b661b0ca13e307e1006fdd0ce83814e27381343711e83814e7da572 -7da572deedeed6e6edefffffcee0ef3f70b42f5379153470bac6d8fffffffffffffffffff7fff7 -f7f7efded6ccd6aa8aa0563fda8539da8539de9d2ede9d2eb6a042f2de95fff6b6dac7abffffef -fef7e7fffff7fffff7fffff7ffffffc7c6bcb99f9befeff7fffffffff7ffffffffffffffffffff -fffffffffffffffffffffffffffffff7f7f7ffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffe7f4f7f7f7fffffffffdffe7 -cbcec560562242500d413d12413d12413d12492717661b0c7e10067e10067e10067e10067e1006 -7e1006661b0c7e10065c2e359e2e11860002a0563fd7ad9d5c553b3f3235316535315449336b4d -103a15e5ffffe5ffffeffffff7ffff9c9fc02852974f6c9fd6e6edffffffffffffffffffffffff -dedede81897cd7ad9d954713954713d35113b55d18bc6a39fdf5abfdffe7fbfbdefffffffffff7 -fffff7ffffffffffffefefefffffff7c7b7c5d324b7c7b7cd6cdd7bdbdbd898c8c9b9c9cefefef -cecece81897caeadadb5b5b5fffffffffffffffffffffffffffffffffffffffffff7f7f7ffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffff7fffff7fffff7fffffffffffffff7fff7f7fffffffffff7effbfbde -fbfbdea384577e564083814e846a4ca38457a2763f812d0d7e10067e1006860002860002860002 -a00d08a00d08a00d087e1006a13e30860002c38a81a384572d00001e1f3a1e1f3a142657142657 -52457affeeffefeff7fffffff7ffeffff7f77e86b02f5379c4d3edf7ffffe7f4f7f7ffffffffff -dedede5c553bc38a81812d0d9e2e11812d0d812d0dc18040eee1c3ffffeffffff7ffffffffffff -fffffffffffffffffffff7f7ffffffddcacbddcacba18b74ddcacb7a68709b9c9c9a9291deedee -b5b5b5c6b9c6cececed6d6d6fffffffffffffffffffffffffffffff7f7f7ffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffff7fffff7fffff7fffff7fffffff7f7fffff7fffff7f7fff7effdffe7 -d6aa8ac18040c18040a16d56c48756c48756eca872a13e30661b0ca00d087e1006860002a00d08 -a00d08a00d08a00d08a60003a00d087e1006d6aa8ab99f9b7e56405d324b52457a52457a52457a -e7dde7b99f9bb99f9beff8eeeff8eeffffffa6c8eb1550788ba1c7efffffe7f4f7ffffffefefef -796e82ffeeffd6aa8a812d0db55d18954713812d0dc28268fdcfc4fffffffff7fffff7ffffffff -f7f7fffffffffffffffffffffbefeffff7effffffffff7ffffffffe7e7e7fffffff7f7f7ffffff -f7f7f7fffffffffffffffffffffffffffffff7f7f7fffffffffffffffffff7f7f7ffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffff7ffffefffffeffffff7fffff7fffffffffffffce6eefbefefdac7ab -c282688c611bb55d18812d0d8c611be18855e28e67a13e30a00d08661b0c860002a00d08b70d05 -b70d05b70d05dd250fd30f159e2e11661b0c5c553b5c553b5c2e359d716fa18b749d716fd7ad9d -9d716ffdd0ced7ad9dfffff7efefe7ffffff7e86b01534706784bddeedeee5ffffe5ffff848e9b -e7dde7ffffffbab69d661b0cb55d18954713812d0d804049a18b74fff7fff7f7fff7fffff7ffff -f7f7fffffffffffffffff7f7fff7effffff7fdefe7ffffffdededefff7f7ffffffffffffffffff -e7e7e7f7f7f7f7f7f7fffffff7f7f7fffffffffffffffffffffffff7f7f7f7f7f7ffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffff7ffffeffffff7fffffff7f7fffff7ffffffffffffff846a4c -a0563fc18040da8539b55d18da8539b55d189547139e2e117e1006a00d08860002a00d08a60003 -a60003b70d05bc1111bc11117e1006413d125c3f1b4927177d3d305c2e35817533626e1fe6c196 -eee1c3fbfbdefce6eeede8def2ebd6f7ffff8ba1c77b8dc8155078a3c4dae5ffffa8b9bdd6d6de -fffffffff7ffd6aa8a661b0cc18040f2de95eee1c3a16d567a6870e7e6effffffff7f7ffffffff -f7fffffffffffffffffff7f7ffffff5456567c7b7c7a68703f32353f3235e7f4f7aeadad3f3235 -d6d6d6bdbdbd1017152725224d463cf7f7f73f3235c6cecef7f7f7ffffffffffffefefefffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffff7fffff7fffff7fffffffffffff7f7fffff7ffffffffa38457 -a38457bc6a39b55d188c611bb55d18e7a330b55d18954713a00d087e1006860002a00d08b70d05 -b70d05b70d05bc1111a600037e1006413d1242500d413d12492717413d12817533a38457bea476 -e6c196eee1c3fef7e7fff7f7f7fff7e5ffffe5ffff506fb62d707fcee0ef677e83e5fffff7ffff -fff7ffffeefffdffe7d2a46a605622ebc07ca2763f846a4c9a9291fff7effffffff7fffff7ffff -fffffffffffffffff7fffff7ffffeff2ebd6fffff7fffffffffffffffffffffffff7f7f7ffffff -fffffff7f7f7f7f7f7f7f7f7f7f7f7fffffff7f7f7fffffffffffff7f7f7ffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffff7fffffffffffffffffffffffff7f7fffff7fffef7e7 -eee1c3ebc07cb55d18de9d2ede9d2ef5bb36ef883ad66b427e1006860002a00d08a00d08a60003 -b70d05bc1111b70d05a00d08661b0c60562260562242500d43711e43711e83814e42500dbea476 -eee1c383814edae0d6fff7efffffffe1eefff7ffff6175a72d707f6784bdcee0efe5ffffe1eeff -ffeeffe7dde7ffecd0b6a0428c611b8c611b7e5640fdd0ceffecd0f7f7effffff7fffff7ffffff -f7fff7fffff7fffff7ffffeffff7efffffffded6ccefefefd6deded6dedee7e7e7efefefdedede -efefefffffffffffffffffffffffffefefefffffffefefeffffffffffffff7f7f7ffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffffffffffffffffff7fffff7fffff7f7ffffffffded6cc -a0563f8c611bc18040b6a042b6a042de9d2ede9d2ed66b42b62b10860002860002a00d08a60003 -a60003b70d05a00d08a00d08661b0c5c3f1b81753343711e1d4f2643711e558844605622846a4c -846a4cbab69dffffeffffff7f7f7ffefeeffffffff6784bd4f6c9f2d707fd6e6eddeedeeffffff -fff7ffcec6c6492717817533b6a0425c3f1bbab69dfffffffffff7ffffeffffff7fffff7ffffff -f7fff7f7f7efffffffffffefefefe7ffffff545656cecece848e9b67687c81897cdedede616f61 -c6c6c6fffffff7f7f7f7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffff7f7fffff7fffff7ffffffffffefe6f2d6d6de7a6870 -7e56407e56407e56408c611b8c611b817533a13e30a13e309e2e117e1006860002860002a00d08 -a00d08a00d08a00d08a00d087e1006492717626e1f626e1f83814e558844817533626e1f817533 -a38457bea476fffff7fff7f7fffffff7ffffcee0ef4f6c9f6784bd477285ddeadedeedeeffffff -ffffff9a92917e5640d6aa8aa0563f8c611bc38a81ddcacbfce6eef7fffffffffffffffff7fff7 -fffffffffffffffffffffff7fffffff7f7f7ffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffffff7f7f7fffffff7f7f7fffffffffffffffffff7f7f7ffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffff7fffff7fffff7fffff7ffffdedde77e7b9c5456567a6870 -5d324b7a68707e56409d716f5c553b7e5640a0563fa13e30a13e30a13e30a00d087e1006860002 -8600028600027e10067e1006661b0c413d122738132738131c4e0e1c4e0e7da5727da57283814e -b7bcada18b74ded6ccdededecee0efc4d3ed8ba1c76784bd677e83a3c4dabac6d8fffffffbefef -b99f9b5c3f1bb99f9bb99f9b5d324b8040494927175c2e35cececef7fffff7ffffffffffffffff -ffffffffffffffffffffffffffffffefeff7f7f7f7fffffff7f7fff7f7fff7f7f7fffffff7f7f7 -f7f7f7fffffff7f7f7f7f7f7f7f7f7fffffffffffff7f7f7ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffff7f7ffffefffffffffff677e831e1f3a412f54142657 -52457a3f32355456565456563f32355c2e357e5640804049804049a13e30a0563fbf4d3ea13e30 -a13e30a0563f812d0d661b0c7d3d30413d12273813103a151c4e0e2b6720a5c2a77da572616f61 -616f61545656545656557085477285677e83a6c8eba3c4da6784bde5ffff677e83f7f7ffefefef -5c3f1b7e5640846a4c5d324b7e7b9cb99f9ba5a5a69fa89cdae0d6e7f4f7f7ffffffffffffffff -fffffffffffffffff7fff7f7fffffffffffff7f7f7fffffff7ffffffffffffffffffffffffffff -fffffffffffffffffffffffffffffffffffffffffff7f7f7ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffff7fffff7fffffff7fffff7ffffbac6d8a8aac6bac6d8bbc1c8 -5556825556822f5379412f544d48534d48534d48535c2e355c2e355d324b5c2e35804049a16d56 -a16d56a16d56846a4c5c3f1b413d12273813273813316535336b4d316535336b4d1d4f26566f42 -2445383154493154491659532d707f2d707f2d707f2d707f477285a8b9bdcbcedbffffff9991aa -5d324b7e5640846a4c796e82a5a5a6fff7ffffffffddeadee7f4f7f7ffffffffffffffffffffff -fffffffffffffffffff7f7f7f7f7f7fffffffffffffffffff7f7f7e7f4f7fff7fff7fff7ffffff -f7f7f7efefeff7f7f7fffffff7f7f7fffffffffffff7f7f7ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffff7fffffffffffff7ffffffffffffffff8ba1c77e86b0 -4f6c9f2852971534702f537952457a412f5452457a412f54412f545d324b3f32353f32355c2e35 -3f32351017154d463c3f3235413d12103a15103a151d4f261d4f26336b4d244538315449315449 -677e83616f611e4253336b4d165f35165953165953165953165953315449616f61898c8c3f3235 -1e1f3a616f612725227c7b7cffffffddeadee7f4f7a3c4dadeedeeffffffffffffffffffffffff -fffffffffffffffffffffff7ffffffd6d6d6dededef7ffffffffffffffffffffffffffffffffff -fffffffffffffffffff7f7f7fffffff7f7f7fffffffffffffffffff7f7f7ffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffff7ffffffffffffffffffffffff8ba1c74f6c9f285297 -5058b05058b04c52994c52994c529915347052457a52457a52457a1e1f3a1e1f3a52457a4d4853 -1e1f3a2445383154492445382445382738131d4f261d4f26273813616f61677e83316535272522 -9fa89c81897c616f61336b4d0a4438165f35165f35336b4d2445381d4f261d4f26103a15101715 -315449272522272522a8b9bda8b9bd90aaaaffffffa6c8ebe7f4f7fffffff7fffff7ffffffffff -ffffffffffffffffffffffffffffffbdbdbdefefef7c7b7c272522898c8c898c8cefeff7898c8c -616f61616f614d4853dedede7c7b7ca5a5a6ffffffa5a5a6f7f7f7ffffffefefefffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffffffffff7fffffff7f7ffffffff7e7b9c52457a6784bd -4c52993f70b4506fb6285297616cbf4c52995058b052457a1a378a52457a52457a1426572f5379 -1e42531e42531659531550781d4f261d4f2642500d558844316535316535616f612725224d463c -315449566f423165353165351d4f26196320103a15315449244538315449316535101715103a15 -0a4438244538103a15677e83d6e6edd6dedef7ffffeff7ffeffffff7fffff7fffff7ffffffffff -fffffffffffffffffffffffffffffffffffff7f7f7dededebbc1c8d6dededededeffffffdedede -d6d6d6cececec6c6c6f7f7f7d6d6d6e7e7e7ffffffdededefffffffffffff7f7f7ffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000f7fffffffffffffffffffffffffffffffff7fffff7fffff7fffffff7f7ffb7b3c46175a7 -5556826175a74c52994c52994c52995058b0616cbf4c52992f53794c52992852972f53792f5379 -1534701550781550782d707f165953103a153165357da572315449316535315449244538273813 -4d463c2445382445381d4f262b67201963203165351d4f26336b4d244538316535165f35103a15 -3165351c4e0e677e83a3c4da848e9bd6e6edeffffff7ffffeff7fff7ffffeff7ffffffffffffff -fffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000f7fffff7fffffffffffffffffffffffffffffffff7fffff7fffff7fffffffffffff7f7ff -f7f7fff7f7ffcee0efa6c8eb7b8dc8506fb62f53792852974c52995058b0285297285297153470 -1550781550781550781534700a44380a44381d4f26336b4d244538244538244538244538315449 -566f422445383165353165353165351c4e0e2b67202b67201d4f26165f351d4f261d4f26336b4d -316535558844e7f2ed90aaaacee0efeffffff7ffffe7f4f7cddada979ca9deedeeffffffe7f4f7 -fffffffffffffff7f7ffffffcbcec59a92917c7b7c2725229b9c9c7c7b7c7c7b7c244538fff7f7 -4d48537c7b7cffffff616f61898c8cffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000f7fffff7fffffffffffffffffffffffffffffffff7ffffeffff7effffff7ffffffffffff -fff7ffdedef0efeeffa3c4da5058b06175a74c52995058b05058b04c52994c52994f6c9f285297 -2852971550781550781550781659530a44382d707f336b4d0a44382d707f0a4438244538336b4d -336b4d3154491d4f26336b4d196320316535196320316535196320336b4d558844316535244538 -f7ffffddeadef7fff7fffffff7fffff7fff7efffffefffffdeedeed6dededeedeef7f7ffffffff -f7f7f7fffffffffffffffffff7f7efffffffcecece9a9291e7f4f7b5b5b59b9c9cfff7ffaeadad -9b9c9ccdd8ccffffffc6c6c6c6c6c6ffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffffffffffffffffffffff7fffff7fff7effffff7fff7ff -efe6f27e86b07e86b04f6c9f4f6c9f7b8dc87b8dc86175a74f6c9f5058b04f6c9f506fb64c5299 -2f53791550782f53792f53791659531659530a44381659530a44380a4438336b4d0a44380a4438 -165953165f35165f35165f35165f35336b4d558844165f351d4f2631653555884498ae899b9c9c -fffffff7f7efefefefe7f4f7e7f2edf7fff7eff8f7f7ffffffffff979ca9f7f7ffeff7fff7f7ff -ffffffffffffffffffefefefefefefffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffffffffffffffffffff7f7ffffeffffff7fffff7ffffff -ffffffe7e3f7d6d6eb6175a78ba1c74f6c9f4f6c9f6784bd7b8dc84f6c9f4c52996175a74f6c9f -2f5379555682477285477285557085677e83477285477285315449165953336b4d0a4438165f35 -165f35165f35165f35165f35316535336b4d5588442b6720336b4dbcc8bca5c2a7a5c2a7ffffff -f7f7fff7f7efffffffffffffffffffeff8f7d6e6edbbc1c8e1eeffa8b9bdf7f7fff7ffffffffff -ffffffffffffffffffffffffdededecbcec5c7c6bca5a5a6dae0d6b5bdbdd6d6d6b5b5b5d6d6d6 -cececef7f7f7dedededededeffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffeffffff7fffffffffffffffffffffffffffffffffffffffff7f7ffeff7fff7f7ffff -cee0ef7e86b06175a76175a76784bd4f6c9f6784bd6784bd6784bd6784bd4f6c9f6175a77e86b0 -8ba1c7979ca9979ca9848e9b90aaaaa8b9bd90aaaac6cece616f61244538244538165f35165f35 -165f3519632019632031653555884455884455884481897ceff8eedae0d6dae0d6f7fff7f7ffff -efffffffffffd6e6ed7e86b0cbcedbffffffbbc1c8898c8cdeedeef7fffff7fffff7fffff7f7f7 -ffffffffffffffffffffffffaeadadaeadad898c8c272522d6dede7c7b7cb5b5b54d4853cecece -d6d6d6ffffffcecececececeffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffefffffeffffffffffffffffffffffffffffffff7fffff7fffff7fffff7ffffe1eeff -848e9b7e7b9c7b8dc87b8dc86175a77b8dc88ba1c76175a76175a77e86b05570857e86b0bac6d8 -f7ffffffffffffffffffffffdededeb5b5b57c7b7c7c7b7c898c8c616f617da572558844196320 -1963202b67202b67202b67202b672043711e7da57283814ec6c6c6fffffff7ffefeff8f7efffff -d6e6edbac6d8cee0ef677e83b5bdbdffffffffffffffffffffffffd6e6edf7ffffffffffefeff7 -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffff7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffff7fffff7fffffffffffffffffffffffffffffff7fffff7fffff7fffff7fffff7ffff -bac6d8bac6d8cee0efcee0efcee0efe1eeffcbcedbbdbdbdcececea5a5a6a18b749d716f9a9291 -dac7abdac7abe6c196e6c196e6c196ffecd0f2ebd6dac7abded6cc616f61ddeade7da5727da572 -558844336b4d2b67205588445588447da572a5c2a7cbcec5dededefff7ffffffffefffffffffff -cddada557085fffffffffffffffffff7fffff7fffffffffff7f7fffffffff7f7ffffffffffffff -fffff7fffffffffff7fffff7fffff7fffff7fffffff7f7f7fffffff7f7f7f7fffff7f7f7ffffff -fffffffffffff7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffeffffff7fff7ffffffe2c9b9d6aa8af6cdabdea372c48756c48756dea372 -e28e67c18040da8539da8539c48756f2de95f6cdabeee1c3e2c9b9c7c6bcb9bdb581897cdeedee -a5c2a755884431653531653598ae89cdd8cceff8eeffffffffffffffffffffffffffffffffffff -f7ffffa8a8b5a8a8b5fffffff7fffff7fffffffffff7fffffffffffffffff7f7f7fffffffffff7 -fff7f7fffff7fffff7fffff7fffffff7f7eff7f7f7fffffffffffffffffff7f7f7ffffffffffff -fffffffffffffffffffffffffffffffffffff7f7f7f7f7f7fffffffffffff7f7f7ffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -f7f7fffffffffff7f7fff7eff2ebd6c28268c48756e18855954713d66b42e28e67c48756e28e67 -d2a46aebc07cebc07ceca872eca872ebc07cf6cdabdac7abeee1c3fbefefb7bcaddae0d6f7ffef -ddeadea5c2a7bcc8bca5c2a7bcc8bcdeedeeeff8f7fffff7ffffffffffffffffffffffffffffff -ffffffe7e6efc6cecec6cecea8b9bdfffffff7fffff7fffff7fffffffffffffff7ffffffffffff -fffff7fffffffff7effff7f7ffffffffffffffffffefefefd6dedeffffffffffffffffffffffff -fffffff7f7f7f7f7f7fffffffffffff7f7f7ffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffff7f7f6cdabc38a81c18040d66b42d66b42da8539e18855e18855e28e67c48756 -a2763fa0563fa2763fd2a46adea372e6c196e6c196d6aa8affecd0ddcacbfff7efcbcec5ede8de -b7bcadeff8eeddeadeffffffcddadaddeadeefffffffffffffffffffffffffffffffffffffffff -fffffff7ffffffffffdeedeed6e6eda8b9bdcbcedbffffffeff7fffffffff7fffff7f7f7ffffff -fffffffffffffffffff7f7effffff7dededec6c6c6cddadaffffffe7f4f7d6d6d6aeadadcecece -f7f7f7fffffff7f7f7f7f7f7b5b5b5c6c6c6a5a5a6efefefffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffff7ded6ccc28268c18040e18855da8539d66b42ef883ada8539da8539bc6a39954713 -9547138c611ba0563f812d0d8c611beca872d6aa8af6cdabe2c9b9f2ebd6fffff7c7c6bceff8ee -ddeadeefefe7f7ffeff7fff7e7f4f7e7f2edffffffffffffffffffffffffffffffffffffffffff -fffffff7fffff7ffffffffffffffffdeedeeffffff979ca9d6dedeffffffffffffffffffffffff -fffffffffffffffffffffff7ffffff9fa89c7c7b7c5456564d4853e7f4f79b9c9c616f61272522 -616f61aeadadbdbdbda5a5a6bdbdbd3f3235616f61e7e7e7ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffff7f7efe2c9b9c28268e28e67bc6a39da8539ef883ada8539d66b42b55d18b55d18bc6a39 -a0563fa13e30954713661b0c954713dea372e6c196f3ac92f6cdabeee1c3c7c6bcb7bcadb7bcad -eff8eef7ffefefefe7fffffffffffffff7fffff7fffffffffffffffffffffffff7fffffffffff7 -fffffffffffffffffff7fffff7ffffeff7fff7ffffd6e6edcee0efd6d6ebf7ffffffffffffffff -ffffffffffffffffffffffffffffffe7e7e7efefefcddadad6dedefffffffffffff7f7f7e7e7e7 -e7e7e7f7f7f7ffffffefefefffffffd6dedeefeff7ffffffffffffffffffefefefffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffff7 -fffffffffff7ded6ccbc6a39e28e67da8539d66b42da8539da8539ef883ada8539da8539c48756 -b55d18661b0c812d0da0563fbc6a39dea372ebc07cf3ac92f6cdabf6cdabffecd0ffecd0a18b74 -ffffeffff7effffff7fff7fff7f7f7fffffffffffffffffffffffffffff7fffff7fffff7fffff7 -ffffeff7ffeff7fffff7ffffffffffeff7ffefffffffffffe1eeffbac6d8e1eefffffffff7ffff -fffffffffffffffffffffffffffffff7fff7d6dedefffffff7ffffe7f2eddeedeefffffff7f7f7 -ffffffffffffdededef7f7f7efefeff7f7f7f7f7f7f7f7f7f7f7f7ffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffffffffffffffffffffffffffff7fffffffffff7fffff7 -fffff7ffffffeee1c37d3d30bc6a39c48756e28e67e18855bc6a39c18040da8539bc6a39c18040 -c48756c18040c48756d2a46adea372c48756d2a46aebc07cd6aa8ae6c196f6cdaba18b74d7ad9d -fbefeffffff7fffffffffffff7f7fff7f7fffffffffffffffffffffffffffffff7fffff7ffffef -fffff7f7fff7fffffff7ffffe1eefff7fffff7ffffefffffffffffbbc1c8efeefff7ffffeff7ff -fffffffffffffffffff7f7f7ffffff9fa89c000000cddada898c8c9b9c9c9b9c9ccecece4d4853 -dededeffffff7c7b7c9b9c9c9a9291c6cece545656d6d6d6fffffff7f7f7ffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -f7fff7f7f7f7ffffffded6cca0563f846a4ca16d56a38457c48756c48756c18040a2763fd2a46a -c18040c48756c48756c48756d6aa8aebc07ce6c196bea476d6aa8abea4767e5640a38457fff7ef -fff7effff7f7fffffffffffffffffffffffffffffffffffffff7fffffff7fffff7fffff7ffffef -f7ffefe7f2edf7fff7efffffefffffefffffe1eeffffffffd6dede67687ce7f4f7ffffffe7f4f7 -fffffffffffffffffff7fff7f7fff7fffffffffffff7fff7ffffffffffffffffffffffffffffff -fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7f7f7ffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fff7 -fffffffffffffffff7efefe7ffffffbab69d4927175c3f1b5c553bbea476a38457c48756d2a46a -a38457c48756dea372dea372c28268bea476bea476d6aa8a846a4ca38457a18b74fdffe7fdffe7 -ffffeffffffffffffffffffffff7ffffffffffffffffffffffffffe7f4f7fffffffffffff7fff7 -e7f2edffffffe7f2edefffffffffffdeedeeeff7ffcbcedb67687cefefeff7fffff7ffffffffff -f7f7fffffffff7fff7ffffffefefe7dededeb5b5b5f7fff7a8b9bdc6c6c6b5b5b5c6c6c6efefef -e7e7e7c6c6c6b5b5b5dededec6c6c6dededef7f7f7efefeffffffffffffffffffff7f7f7ffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -f7f7fffffffffff7f7f7f7effffff7a5a5a62445382445382725223f3235413d125c553ba38457 -c28268c38a81c38a81c38a81a384577e56405c553b5c553b83814ef2ebd6fdffe7fdffe7ffffef -fffffffffffffffffffffffffffffffffffffffffff7fffffffffff7fffff7fffff7ffffefffff -efffffffffffffffffffffffdeedeecddadacbcedb557085e7e7e7ffffffdeedeefffffff7f7f7 -fffffff7f7f7ffffffffffffdae0d6b5b5b5616f61dedede545656616f613f32354d4853fffff7 -aeadad2725224d463cd6d6d65456567c7b7cffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -f7f7fffff7ffffffffe2c9b9bab69d9a92914d4853412f543154491e1f3a1e1f3a4d48534d463c -4d463c4d463c3f32354d463c4d48534d4853272522244538b7bcadfffff7eff8eeffffeffffff7 -fffffffffffff7f7fff7fffff7fffff7fffff7ffffefffffdeedeeeff7fff7ffffffffffffffff -ffffffdeedeea8b9bdd6dede979ca9979ca9bac6d8f7f7f7e7f4f7eff7ffffffffffffffefefef -fffffffffffffffff7fffff7fffffffffffff7f7f7d6dedeffffffd6dedecececec6c6c6ffffff -f7f7f7bbc1c8e7e7e7ffffffdedededededeffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffffffffffffffffffffffffff7ffffffffe7e3f7f7f7ff -fffffff7efffa5a5a6a16d56a16d569d716f4d4853412f542f53791426571e42531e42531e1f3a -1e42532f53791e425316595314265716595347728531544990aaaabcc8bccbcec5fbefeffff7ff -fff7fff7f7ffefffffe5ffffe5ffffe5ffffe5fffff7fffff7ffffffffffefffffa8b9bd979ca9 -a8b9bde7e6ef2f5379848e9bcddadad6e6edffffffefffffefeff7fffffff7f7f7ffffffffffff -f7f7f7fffffffffff7fffffffffff7efefeff7f7f7ffffffefefefffffffffffffffffffffffff -efefeffffffffffffff7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffffffffffffffffffffffff7f7ffffffffffffffefeeff -a8a8b59991aa9d716f7d3d30a0563f846a4c67687c1e42531e1f3a142657155078153470142657 -1550781b6ea31b6ea31b6ea31b6ea33f70b44f6c9f47728590aaaa90aaaa90aaaad6e6edffffff -fffffffffffffffffff7ffffefffffefffffefffffa8b9bd677e836175a7d6e6eda3c4da7e86b0 -557085bac6d8cbcedbd6dedeffffffe7f4f7eff7fffffffff7fff7f7f7f7f7fff7fffff7fffff7 -fffff7fffffffffff7fffff7fffffff7f7effffffff7f7f7e7f4f7fffffff7f7f7ffffffffffff -f7f7f7efefeffffffffffffff7f7f7fffffffffffff7f7f7ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffdedef0a8a8b57e7b9c -55708567687c7a6870812d0d5c3f1b5c3f1b5c553b4d4853142657153470155078153470155078 -1a378a1b6ea31b6ea31b6ea31b6ea34f6c9f153470165953557085557085677e83848e9b848e9b -677e837e7b9c6175a75570854f6c9f848e9bcee0efcee0efbac6d890aaaaa8aac6a3c4dacee0ef -cee0efd6e6edfffffffffffff7ffffeffffff7fffffffffff7fff7f7fff7f7f7effffff7ffffff -fffff7fffff7fffff7fffff7fffff7fffffffffffffffffffffffffffffffffffffffffff7f7f7 -f7f7f7fffffffffffff7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffff7fffff7fffffffffffffffffffffffffffffff7ffffdedef07b8dc86175a75058b0 -5058b05058b052457a5c3f1b661b0c7e56405c3f1b3f32352445381e42531e1f3a1550781b6ea3 -1550781b6ea31b6ea31b6ea31b6ea3315449616f61a5a5a6898c8c83814eb99f9bb99f9bcec6c6 -c8c5d5d6d6decddadacddadaa3c4daa6c8eba6c8ebbac6d8bac6d8bac6d8c4d3edd6e6edeff7ff -fffffffffffff7fffff7fffffffffffffffffffffffffffffffffffffffffffff7ffffffffffff -fffffffffffffffffffffffffffffffffff7fffffff7f7f7fffffffffffffffffff7f7f7ffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffff7fffffffffffffffffffffffff7ffffffffff8ba1c74c52996175a7616cbf -616cbf5058b04c52995c2e35846a4c492717605622605622413d122445383154491e4253142657 -155078155078155078165953336b4d566f4242500d83814ed6aa8ad7ad9dc38a81c38a81ffffff -ffffffffffffcee0efa3c4daa6c8eba3c4daa3c4dabac6d8cee0efe7f4f7ffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffffffffff -f7f7f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffff7ffffffffffffffffffffffffffffffffffffeff7ffa3c4da52457a616cbf616cbf -616cbf616cbf5058b05d324b3f32355c2e355c2e355c3f1b4927175c553b5d324b4d48534d4853 -412f5427252231544927381383814ea18b74bea476a384575c553b5c3f1b4d463c4d463c898c8c -a8a8b5bac6d8a8aac6a8b9bda6c8ebe1eeffe1eeffeff7fffffffffffffffffffff7fffff7ffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffefefefffffff545656000000e7e7e7ffffffbdbdbdcecece272522 -fffffff7f7f7f7f7f7f7f7f7f7f7f7ffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffff7fffffffffffffffffffffffff7ffffffffffe1eeff6175a76175a74c5299 -7b8dc8616cbf5058b05556827a6870412f543f32355c2e355c553b5c2e355c2e358040495c2e35 -7d3d305c2e35a16d56c48756a38457c18040c28268a18b74a18b749b9c9c4d4853848e9ba8b9bd -bac6d8d6e6edeff7fffff7fffffffffffffffffffffffffff7ffffeff7ffffffffffffffffffff -f7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffff7f7f7efefefffffff545656000000000000000000e7e7e7a5a5a6616f6167687c -1017155456564d4853000000a5a5a6ffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffff7fffffffffff7fffffffffffffffffffffffff7ffffeff7ffcee0ef7b8dc84f6c9f -616cbf5058b0616cbf7b8dc84c529952457a67687c4d48533f32355c2e355c2e355c2e35804049 -804049a0563fbc6a39e18855c48756c28268d2a46a9d716f5c553b4d463cddeadeffffffefffff -effffff7fffffffffffffffffff7ffffeeffffeeffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffc6c6c63f3235000000101715000000a5a5a6e7e7e7101715efefef -616f61272522b5b5b51017159a9291ffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffff7ffffffffffffffffffffffffffffffdeedeef7f7ffeff7fff7f7ffa6c8eb -7e86b06175a75058b05058b0616cbf4c52994c529967687c555682412f54412f547a68705c2e35 -5c2e358040495c2e357d3d30661b0c5c2e35661b0c846a4c9a9291fff7f7f7ffffe7f4f7e5ffff -e5ffffeffffff7f7fffff7fffff7fffff7fffff7ffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffff7f7f7ffffffd6dede3f3235101715616f61f7f7f7d6d6d6000000272522 -3f32352725229b9c9c9b9c9ca5a5a6ffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffffffffffffffffffffffff7fffff7fffff7ffffffffff -ffffffa8aac6a3c4daa6c8eb5058b07b8dc85058b05058b06175a74c52995058b04c5299616cbf -52457a412f54412f5467687c9a92919d716f9a9291fce6eeffffffffffefeff8eeffffefffffef -fffff7fffff7fffffffffffffff7fffff7fffffffffffffffffff7f7f7f7ffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffd6d6d6f7f7f7f7f7f7ffffffd6d6d6545656ffffff -f7f7f7efeff7f7f7f7efefefffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffffffffffffffffff7fffffffffff7ffffeff7fff7ffff -eff7fffffffffff7fffff7ffe7e3f7a8aac6a3c4da9c9fc09c9fc09c9fc09c9fc09c9fc09991aa -7e86b09991aa7e86b0c6b9c6ffeefffffffffffffffff7fffff7f7fffff7ffffeffdffe7ffffef -ffffeffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffffffffffff7f7f7ffffffffffffffffffffffffc6c6c6e7e7e7efefef -bdbdbdbdbdbddededee7e7e7e7e7e7ffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffff7ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffff7fff7ffffeffffff7fffff7fffffffffffffff7fffff7ffffefffffef -ffffeffffff7fffff7f7fffff7fffff7fffff7fffffffffffffffffffffffffff7ffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffffffffff7fffff7fffff7fffff7fffffffffffffffffffffffffff7ff -fffffff7f7fffff7fffffffff7fffff7fffff7fffff7fffff7ffffffffffffffffffffffffffff -fffffffffffffffffff7fffff7fffff7fffffffffffffff7ffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffffffffffffffffff7fffffffffffffffff7ffffffffffffffffffffff -fffffffffffffffffffffffffffff7ffffeffffff7ffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffffffffffffffffff7fffff7fffffffffffffffffffffffffffffffffffffff7fffff7 -fffff7fffffffffffffffffffffff7fffff7fffff7fffffffffffffffffff7fffff7ffffffffff -fffffffffffffffffffffffffffff7ffffeffffff7ffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffff7fffff7f7fff7f7fffff7fffff7fffff7fffff7fffffffffffffff7fffff7fffff7 -fffff7fffff7fffff7fffffffffffffffff7ffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -fffffffffff7fffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffff7 -fffffffffffffffffffff7fffffffffffffffffffffffffffffffffffffffffffffffffffff7ff -fffffffff7fffffffffff7fffffffffff7fffff7ffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff -ffffffffffffffffffffffffffffffffffffffffffffffff000000 -000000fffffffffffffffffffffffffffffffffffffffffffffffffffffffffff7fffff7fffff7 -fffff7fffff7fffff7fff7f7fff7f7fff7fffff7fffffffffffffffffffffffffffffff7fff7f7 -fff7f7fff7f7ffeeffffeeffffeeffffeeffffeefffaeef7fbefeffce6eefdefe7fdefe7fdefe7 -fce6eefbefeffce6eeffeeffffeeffffeefffaeef7fce6eefaeef7faeef7faeef7fff7efffffef -ffffeffffff7fffff7ffffefffffeffdffe7ffffefffffefffffefffffefffffefffffefffffef -ffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffef -ffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffefffffef -ffffefffffefffffefffffefffffefffffefffffefffffef000000 -000000fdcfc4fdcfc4fdcfc4fdcfc4fdcfc4fdcfc4fdcfc4fdcfc4fdcfc4fdcfc4fdcfc4fdcfc4 -fdcfc4fdcfc4fdd0cefdd0cefdd0cefdd0cefdd0cefdd0cefdd0ceeee1c3fdcfc4fdcfc4fdcfc4 -fdd0cefdcfc4fdd0cefdd0cefdd0cef3d2dafdd0cefdd0cef3d2dafdcfc4fdd0cef3d2dafdd0ce -fdd0cef3d2dafdd0cefdd0cef3d2daf3d2daf3d2daf3d2daf3d2daf3d2dafdcfc4eee1c3fff6b6 -fff6b6fff6b6fff6b6fff6b6fdf5abfdf5abfdf5abfdf5abfff6b6fdf5abfdf5abfdf5abfdf5ab -fdf5abfdf5abfdf5abfdf5abfdf5abfdf5abfdf5abfdf5abfdf5abfdf5abfdf5abfdf5abf2de95 -fdf5abfdf5abfdf5abfdf5abfff6b6fdf5abfff6b6fff6b6fff6b6fff6b6fff6b6fff6b6fff6b6 -fff6b6fff6b6fff6b6fff6b6fff6b6fff6b6fff6b6fff6b6000000 -000000bc1111bc1111bc1111bc1111bc1111bc1111bc1111bc1111bc1111bc1111bc1111bc1111 -bc1111bc1111bc1111bc1111bc1111bc1111bc1111bc1111a00d08bc1111b70d05bc1111bc1111 -d30f15b70d05bc1111bc1111bc1111bc1111bc1111bc1111bc1111bc1111bc1111bc1111b70d05 -bc1111b70d05bc1111d30f15bc1111bc1111d30f15bc1111bc1111d30f15b70d05ef883ade9d2e -de9d2eb6a042de9d2ede9d2ee7a330e7a330de9d2ee7a330e7a330de9d2ede9d2ede9d2ee7a330 -e7a330de9d2ee7a330e7a330e7a330de9d2ede9d2ede9d2ede9d2ede9d2ede9d2ee7a330de9d2e -de9d2ee7a330de9d2ede9d2ede9d2ede9d2ede9d2ede9d2ede9d2ede9d2ede9d2ede9d2ede9d2e -de9d2ede9d2ede9d2ede9d2ede9d2ede9d2ede9d2ede9d2e000000 -000000ee000cee000cee000cee000cee000cee000cee000cee000cee000cee000cee000cee000c -ee000cee000cee000cf7000ff7000fee000cf50f10f50f10f50f10f50f10f50f10dc0c02f7000f -ee000cf50f10d30f15d30f15d30f15f50f10ee000cee000ceb0000f50f10ee000cee000cf50f10 -f50f10dc0c02ee000cdc0c02f50f10f50f10dc0c02dc0c02dc0c02dc0c02bc1111ec8311ffa21c -f3a015e7a330f3a829ffa21cf3940bff9403f3a015f3940bf3a829f3a015ffa21cffa21cffa21c -ffa21cec8311ffa21cf3a015f3a015f3940bffa21cf3a829f3940bf3a829f3a015f3940bffa110 -f3940bf3a015ff9c08f3940bff9c08ffa110f3a015f3a015f3a015ffa110f3a015ffa110ffa110 -ffa110ffa110ffa110ffa110ffa110ffa110ffa110ffa110000000 -000000ff0008ff0008ff0008ff0008ff0008ff0008ff0008ff0008ff0008ff0008ff0008ff0008 -ff0008ff0008ff0008f7000ff7000ff7000ff7000fff0008ff0008ff0008ff0008ff0008ff0008 -f50f10f50f10d30f15dc0c02ee000cf50f10f70000f80900ff0000ff0000f70000f80900ff0000 -f70000f50f10f50f10f50f10ee000cf50f10f80900f70000f80900f50f10dd250fec8311ff9403 -f3940bf3940bf3940bf3940bff9c08ff9c00ff9c08ff9c08ff9c08ff9c08ff9403ff9c08ff9403 -ff9403ff9c00f3940bff9403f3940bf3940bff9c08ff9c08ff9403ff9403ffa110ff9c08ff9c08 -ffa110ff9403ff9c08ff9c08ff9c08ff9403ff9403ff9403ff9403ff9403ff9403ff9c00ff9c00 -ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00000000 -000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000 -ff0000ff0000ff0000f70000f70000f70000ff0000ff0000ff0000ff0000ff0000ff0000f50f10 -dc0c02dc0c02b62b10d66b42f13f3df70000f70000f80900eb0000f70000ff0000ff0000ff0000 -ff0000eb0000eb0000f50f10f80900f70000eb0000eb0000f80900dc0c02dd250fec8311ff9403 -f3a829ffbc38f5bb36f3940bff9c08ff9403f3940bf3940bf3940bf69d04f3940bff9c00ff9c00 -f3940bffa508ff9c00ff9c00ff9c00ff9c00ff9403ff9403ff9c00f3940bf3940bec8311ff9c08 -f3940bf3940bf3940bff9c08f3940bff9c08ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00 -ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00000000 -000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000 -ff0000ff0000ff0000f80900f80900f70000ff0000ff0000ff0000ff0000f70000f80900f70000 -ee000ccc0004bf4d3efdffe7e78673dc0c02f70000dd250ff50f10eb0000f50f10dc0c02eb0000 -f50f10f13f3ddd250feb0000f50f10f13f3df50f10f13f3df50f10dc0c02dd250fec8311ec8311 -f5bb36f5bb36fcdf6af3940bec8311f3940bffbc38f3a829f3a015f3a015f5bb36f3a829f5bb36 -f3a015f3a015ec8311f3a829f5bb36f3a015f3a015ffbc38f5bb36f5bb36f3a829f5bb36e7a330 -f5bb36e7a330ffbc38f3a829f3a015f3a015ff9c08ff9c08ff9c00ff9c00ff9c00ff9c00ff9c00 -ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00000000 -000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000 -ff0000ff0000ff0000f80900f80900f80900ff0000ff0000ff0000ff0000f70000f80900f80900 -f50f10dc0c02b62b10ffffefe78673dc0c02eb0000e88683f3ac92f50f10d30f15dc0c02d30f15 -f13f3dfdcfc4e88683e78673dc0c02e18855f13f3de88683f13f3ddc0c02cc0004ef883af3a015 -f3a829fcdf6affbc38e7a330f5bb36f3a015f5bb36fcdf6afcdf6ade9d2ef2de95fcdf6af2de95 -fcdf6ade9d2ede9d2efcdf6aebc07cec8311de9d2ef2de95ffbc38f2de95fcdf6afcdf6ae7a330 -f5bb36e7a330fdf5abffbc38f3a015f3a015f3a015f3a015f3a015f3a015f3a015f3940bffa508 -f3a015ff9c08f3a015ff9c08f3a015ff9c08f3a015ff9c08000000 -000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000 -ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000f70000 -f80900ee000cd30f15f13f3df13f3ddc0c02ee000cf13f3df13f3df50f10ee000cf50f10d30f15 -dc0c02f13f3df13f3df13f3ddc0c02f50f10f50f10f13f3df50f10ee000cdc0c02ef883af3940b -f3a829f5bb36f5bb36f3a829f3a829f69d04f3940bf3a015f3a829f3940bf5bb36f3a015f5bb36 -f3a829f3a015f3940bf3a829f3a015f3940bf3a015f5bb36f3a015f5bb36f3a829f5bb36e7a330 -f3a015f3a829f5bb36f3a829f3a015f3a015f3940bffa500ff9c00ff9c00ff9c00ffa500ff9c00 -ff9c00ff9c08ff9c00ff9c08ff9c00f3940bffa500f3940b000000 -000000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000 -ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000 -ff0008ff0008f7000feb0000ee000cee000cee000cf7000ff7000fee000cee000cee000cee000c -ee000cdc0c02eb0000dc0c02ee000cee000cee000cff0000ff0008f80900dc0c02ec8311ff9403 -ff9c00f3940bf3940bff9c00ff9c00ff9c00ffa500f3940bf69d04ffa500f69d04f69d04ff9c00 -f69d04ffa500f69d04f69d04f69d04f69d04f69d04f69d04ffa500f69d04f3940bf3940bf3a015 -f3a015ff9c08ff9403ff9c08ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00 -ffa500ff9c00ffa500ff9c00ffa500ffa500ff9c00ffa500000000 -000000ff0000f70000ff0000f70000ff0000f70000ff0000f70000ff0000f70000ff0000f70000 -ff0000f70000ff0000ff0000ff0000ff0000f70000dc0c02f80900eb0000f70000f70000ff0008 -ff0008ff0008f7000ff7000fff0008ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000 -f70000ff0008f70000ff0000f70000f70000f70000ff0000ff0000f80900dc0c02ec8311ff9403 -ff9c00ffa508ff9c08ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c08 -ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c08ff9c08ff9c08 -ff9c08ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00 -ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00000000 -000000f70000f70000f70000f70000f70000f70000f70000f70000f70000f70000f70000f70000 -f70000f70000f70000ff0000ff0000f70000dc0c02dc0c02dc0c02dc0c02dc0c02f70000f7000f -ff0008ff0008f7000ff7000fff0008ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000 -ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000ff0000f80900dc0c02ec8311ff9403 -ff9c00ff9c00ff9c00ff9c00ff9403ff9c00ff9c00ff9c00ff9c08ff9c08f3940bff9c08f3940b -ff9c08f3940bff9c08f3940bff9c08f3940bff9c08f3940bff9c08ff9c08ff9c00ff9c00ff9c00 -ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00 -ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00ff9c00000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000 -showpage -%%Trailer -end -%%EOF diff --git a/Docs/Books/pthreads.gif b/Docs/Books/pthreads.gif deleted file mode 100644 index 3dcd86b2c419b7c55fdd6693a8e504b025870b37..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8463 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 diff --git a/Docs/Books/pthreads.txt b/Docs/Books/pthreads.txt deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/Docs/Books/realmen.eps b/Docs/Books/realmen.eps deleted file mode 100644 index c04e3fd8ffa..00000000000 --- a/Docs/Books/realmen.eps +++ /dev/null @@ -1,1167 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: GIMP PostScript file plugin V 1.06 by Peter Kirchgessner -%%Title: /opt/local/x1/work/bk/mysql/Docs/Books/realmen.eps -%%CreationDate: Sun Dec 31 14:31:25 2000 -%%DocumentData: Clean7Bit -%%LanguageLevel: 2 -%%Pages: 1 -%%BoundingBox: 14 14 298 372 -%%EndComments -%%BeginPreview: 100 126 1 126 -% fffffffffffffffffffffffff0 -% aaaaaaaaaaaaaaaaaaab7b5550 -% d5555555555555555555add4b0 -% aaaaaaaaaaaaaaaaaaaeff6b50 -% d555555555555555555556aab0 -% aaaaaaaaaaaaaaaaaaabaf5450 -% d5555555555555555556feaa10 -% aaaaaaaaaaaaaaaaaaaaa548b0 -% d5555555555555555556aa9210 -% aaaaaaaaaaaaaaaaaaa9542450 -% d5555555555555555552254a90 -% aaaaaaaaaaaaaaaaaaa89a1030 -% d555555555555555555054a7b0 -% aaaaaaaaaaaaaaaaaaa92a0ad0 -% d555555555555555555054a550 -% aaaaaaaaaaaaaaaaaaaaaa4af0 -% d55577d5555555555550fd5490 -% aaabdd7aaaaa90a24aabfe5530 -% d556b7ad55554a489551fb5490 -% aaabd4b6aaaaa55252afef2d10 -% d556ab5d55552aad5553feaa30 -% aaadd556aaaad552aaabfe5490 -% d5576aaaabaaaaed5557dd5530 -% aaadaaaaaaaaaaaaaaabfeaad0 -% d556d55557aaaaeaaaabfa57f0 -% aaadaaaaaaaaaad55555fd5570 -% d5576aaaabaaabaaaaa9eaabd0 -% aaadd55556aaaaeaaaa9fd56b0 -% d556aaaab5db76b755527556b0 -% aaadd555ef76adddaaa8955510 -% d5576aaabadd7b775554555650 -% aaadaaaad7ab56d55551555a90 -% d556d555555555aaaaaa2b6d10 -% aaadaaaaabaaaaeaaaaadedab0 -% d5576aaaaaaaaaaaaaad6bee90 -% aaadd55557aaaaeaad52b7bbf0 -% d556aaaaaad555aaaab7fff770 -% aaadeaaaab55556ab7fffffff0 -% d557555eaaaaaaabfffffffff0 -% aaadd5aaaaaaad5ffffbfcbf70 -% d556aabd5555557ffff7fd7fb0 -% aaabff6aaaaaabfffff51dd970 -% d55555dab55557fffff6fcd570 -% aaaaeeb555aaafffffedbb5570 -% d555555555555ffffff7fffff0 -% aaaaaaaaaaaabff9ffdffffff0 -% d555555555555ff6fffffffff0 -% aaaaaaaaaaaaaffaa495084970 -% d55555555555abf76dbabb5b70 -% aaaaaaaaaaaaabf76db3ad5ef0 -% d55555555555557ffafffffff0 -% aaaaaaaaaaaaaaaffffffffff0 -% d555555555555555fffffffff0 -% aaaaaaaaaaaaaaaa57fffffff0 -% d555555555555555a8555f5c10 -% aaaaaaaaaaaaaaaaaba856dab0 -% d55555555555b555555557b750 -% aaaaaaaaaaaaaad6aaa817aef0 -% d55555555555555555552b7bb0 -% aaaaaaaaaaaaaaaaaaa82fd550 -% d5555555555555555554935bf0 -% aaaaaaaaaaaaaaaaaaa817d550 -% d55555556d556d5555544b5d30 -% aaaaaaaaaaaaaaaaaaa817d510 -% d55555555555aad55554ab6c50 -% aaaaaaaaaab6ad56aaa80baa90 -% d5555555555555555554abd630 -% aaaaaab5aaaaaaaaaaa8155d50 -% d5555555556ad5555554abaab0 -% aaaaaaaaaaad5ab6aaa826aff0 -% d555555556d555aad554aaaab0 -% aaaaaaaaaaaaaaaaaaa856d770 -% d5555555b555555556d4ab55b0 -% aaaaaab6aaaadaaaaaa82ed650 -% d55555555556ab555555575d10 -% aaaaadaaaadaaab6b6a85db450 -% d5555555555555555554abfe90 -% aaaaaaaaadaaaaaaaaa92fda10 -% d555555b55556d5555595efeb0 -% aaaaaaaab55aaab6b6aa5dea90 -% d55556d55555aad55554bfdf70 -% aaaaaaaaaaaab5556aa977f5b0 -% d5555555556aaaaaaad56edb50 -% aaaaaaab6aad55b5555addf6b0 -% d555b55556d5aaaad6abb7dab0 -% aaaaaaad55555b555aaafff510 -% d55555556aaaaaab555756ea50 -% aaaaaad5ad555555556afff510 -% d555555aaaab6aad6aadabdc50 -% aaab6b55556d556aad56def510 -% d5555555aaaaab5555aab7ea50 -% ad5aaaaab5aab555aab76dddb0 -% d56aad5556ab56aab555bf7550 -% aaaad5adaab55556aaaad5fab0 -% d555555555556ab555576fead0 -% aaaaaaaaad56ad556b6abb7b50 -% d6d5555555aad5aaad56d7ea10 -% aaab6adab55aaab55555bdf550 -% d5555555aaaaad56aaaeabac10 -% aaaaab5555b5b5aad555dffa90 -% d56d5d6b6d56aab55ab6aaed30 -% daaaaaad56daad56ab5527b610 -% d5aadb75b56ad5aad5569aed50 -% aab6aaaaab56aab5556a2b5bf0 -% d555555555555b56ad5494aa90 -% fffffffffffffffffad5115bf0 -% fffffffffffffffffb5a4ed6b0 -% f7ffeff7ffbfbff7f56a9114b0 -% f488305512616c147aad14b510 -% f6b7b7baf7effff7fb55551410 -% fffffffffffffffff56d16f490 -% fffffffffffffffffaab55a210 -% d5555555555554952b6da54a50 -% d5555555555555b56aaadff510 -% db6db6db6dadb6aad6d77455f0 -% d5555555556aaad6aab5a92ab0 -% dadb6db6db5b6d5adb56d2ad50 -% d6aaaaaaaaaaab6b556b71aaf0 -% dad6db6db6d6daad6aada54a90 -% d55aaaaaaabaab55adb5749510 -% d6ab56db6dab5ab6b555a91630 -% dadab55555556b5556da505490 -% d5556db6db6dad6daaa94aaa10 -% d6b6aaaaaaaab5aab5b4105690 -% dad5b56db6db56b556a8a52ab0 -% fffffffffffffffffffffffff0 -%%EndPreview -%%BeginProlog -% Use own dictionary to avoid conflicts -5 dict begin -%%EndProlog -%%Page: 1 1 -% Translate for offset -14.400000 14.400000 translate -% Translate to begin of first scanline -0.000000 357.165354 translate -283.464567 -357.165354 scale -% Variable to keep one line of raster data -/scanline 100 3 mul string def -% Image geometry -100 126 8 -% Transformation matrix -[ 100 0 0 126 0 0 ] -{ currentfile scanline readhexstring pop } false 3 -colorimage -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000 -00000048b33423ad2331bf0d22b50b31bf0d25b52129bd0822b50b23b50021bd0821bd0821bd08 -21bd0021bd0821bd0021bd0821bd0821bd0821bd0821bd0821bd0821bd0821bd0829bd0821bd00 -21bd0021bd0021bd0021bd0021bd0021bd0021bd0021c60021c60018bd0018c60018c60021c600 -21c60021c60021c60021c60021c60021c60021c60021c60021c60018c60021c60018c60021c600 -18c60021c60021c60021c60021c60018c60021c60018c60021c60018c60021c60021c60021c600 -18c60021c60018c60021c60021c60021c60021c60021c60021c60021c60021c60018c60805974b -06aa6d02946f06aa6d00955f04787005775608911a08911a05983505974b00955f00955f06aa6d -06aa6d43b66d43b66d6ec36843b66d25a75822a63223ad23000000 -00000031bf0d31bf0d31bf0d29c60029c60829c60029c60021c60029c60021c60021c60021c600 -21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c600 -21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c600 -21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60018c60021c60018c600 -21c60018c60021c60021c60021c60021c60018c60021c60018c60021c60021c60021c60021c600 -21c60018c60021c60021c60021c60021c60021c60021c60021c60021c60021c60018c60800955f -06aa6d00955f00955f00955f0577560c751808911a08911a05983505974b00955f00955f06aa6d -06aa6d23a57923a57925a7586ec36850bf4f25a75848b334000000 -00000029bd0831bf0d31bf0d29c60029c60029c60821c60021c60021c60021c60021c60021c600 -21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c600 -21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c600 -21c60021c60021c60021c60021c60021c60021c60021c60021c60018c60021c60018c60021c600 -18c60021c60021c60021c60021c60021c60021c60018c60021c60018c60021c60018c60021c600 -21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60805974b -00955f06aa6d00955f00955f0c751808911a185d2829312926642208911a00955f05775605974b -18a2753da88306aa6d25a75843b66d6ec36850bf4f409651000000 -00000031bf0d31bf0d31bf0d29c60829c60029c60029c60029c60029c60021c60021c60021c600 -21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c600 -21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c600 -21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60018c60021c60018c600 -21c60018c60021c60021c60021c60021c60018c60021c60021c60021c60021c60021c60021c600 -21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021bd0800955f -02946f00955f00955f05775608911a059835333631293129253021188a0d05974b00955f05974b -43b66d43b66d25a75825a75843b66d649e6a649e6a409651000000 -00000031bf0d31bf0d31bf0d29c60829c60829c60829c60029c60029c60021c60021c60021c600 -21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c600 -21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c600 -21c60021c60021c60021c60021c60021c60021c60021c60021c60018c60021c60018c60021c600 -18c60021c60018c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c600 -21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60800955f -00955f00955f00955f05974b059835239a3a3336312530212931293e822705974b18a2753fa46b -43b66d43b66d3fa46b48b33489bc5aafb869a89971a58f55000000 -00000029bd0831bf0d29c60829bd0829c60829c60829c60029c60029c60021c60021c60021c600 -21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60018c600 -21c60018c60021c60021c60021c60021c60021c60018c60021c60018c60021c60021c60021c600 -21c60021c60021c60021c60021c60021c60021c60021c60018c60021c60018c60018c60018c600 -21c60018c60021c60018c60021c60018c60021c60021c60021c60021c60021c60021c60021c600 -21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60018c60805974b -05974b05974b06aa4705974b059835239a3a4d5d572530212931293e822705974b3da88362a788 -4eb58850bf4f3fa46b91bf3bafb869ddc17eeab65ef3b50f000000 -00000031bf0d31bf0d31bf0d29c60829c60829c60829c60829c60829c60821c60021c60021c600 -21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c600 -18c60021c60021c60021c60021c60021c60021c60021c60018c60021c60018c60021c60018c600 -21c60021c60021c60021c60021c60021c60021c60021c60021c60018c60021c60018c60021c600 -18c60021c60018c60021c60018c60021c60018c60021c60018c60021c60021c60021c60021c600 -21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60018c60807aa32 -05983507aa3205983507aa3205974b25a758649e6a4b572e637e2405983523a57970b68c70b68c -70b68c649e6a89bc5a91bf3bddc17eddc17ef8af56f5bd00000000 -00000023bf1131bf0d31bf0d29bd0829c60829c60829c60029c60829c60021c60021c60021c600 -21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60018c600 -21c60021c60021c60021c60021c60021c60021c60021c60021c60018c60021c60018c60021c600 -21c60021c60021c60021c60021c60021c60021c60021c60021c60018c60018c60021c60018c600 -21c60018c60021c60018c60021c60018c60021c60018c60021c60021c60021c60021c60021c600 -21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60018c60806aa47 -05974b08a62907aa323fa46b3fa46b43b66d649e6a63c74d6a92543da88370b68c88ad9788ad97 -88ad97abb37eabb37ecbb062ddc17efab77bf8af56f5bd00000000 -00000029bd0831bf0d31bf0d29c60829c60829c60821c60029c60021c60021c60021c60021c600 -21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c600 -18c60021c60018c60021c60021c60021c60018c60018c60018c60021c60018c60021c60018c600 -21c60018c60021c60018c60021c60021c60018c60021c60018c60021c60018c60018c60018c600 -18c60021c60018c60021c60018c60021c60018c60021c60018c60021c60021c60021c60018c600 -21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021bd0850bf4f -6ec3686ec368649e6a6ec36870b68c649e6a70b68c62a78870b68c88ad9788ad978bc1a38bc1a3 -a1ad9ea1ad9e88a87acbb062d9ac7bfab77bf5af30f5bd00000000 -00000029bd0831bf0d31bf0d29bd0829bd0029c60829c60021c60029c60021c60021c60021c600 -21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60018c600 -18bd0018c60021c60021c60021c60021c60021c60018c60021c60018c60021c60018c60021c600 -21c60021c60021c60021c60018c60021c60021c60018c60021c60018c60021c60018c60021c600 -18c60021c60021c60018c60021c60018c60021c60018c60021c60021c60021c60021c60021c600 -18c60021c60018c60021c60021c60021c60021c60021c60021c60021c60021c60029bd08afb869 -d9ac7b85c17685c17685c176649e6a4eb58862a78862a7884eb58862a7888bc1a38bc1a3a3b8af -a1ad9e929b9c8f8f7ab88d5bd9ac7bcbb062f5af30f3b50f000000 -00000029bd0829bd0831bf0d29bd0829c60829bd0829c60029c60021c60021c60021c60021c600 -21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c600 -18c60021c60018c60021c60021c60021c60018c60021c60018c60018c60018c60021c60018c600 -21c60018c60021c60018c60021c60018c60021c60021c60018c60018c60018c60018c60018c600 -18c60018c60018c60021c60018c60021c60018c60021c60021c60021c60021c60021c60021c600 -21c60018c60021c60021c60021c60021c60021c60021c60021c60021c60021c60029bd08ddc17e -ddc17eabb37eabb37e85c17670b68c3fa46b23a57918a27506aa6d4eb5888bc1a3a3b8afa3b8af -a3b8afa1ad9e88ad9789bc5acbb062d99755eab65ee4ac2c000000 -00000029bd0829bd0831bf0d29c60029bd0829c60021c60029c60029c60021c60821c60821bd00 -21c60021c60021c60021c60021c60021c60021c60021c60021c60018c60021c60018c60021c600 -18bd0018c60021c60018c60021c60018c60021c60018c60018c60018c60018c60018c60021c600 -18c60021c60018c60021c60018c60021c60018c60021c60018c60018c60018c60018c60018c600 -18c60018c60018c60018c60021c60018c60021c60021c60021c60021c60021c60021c60021c600 -18c60021c60018c60021c60021c60021c60021c60021c60021c60021c60021c60021c608ddc17e -fdca81ddc17eabb37eabb37e88a87a62a7883da88323a5793da8838bc1a38bc1a3a3b8afa3b8af -a3b8afa1ad9e83959818a2754096516a92547f8a518b873b000000 -00000029bd0031bf0d31bf0d29bd0829c60029bd0829c60829bd0821c60821c60021c60021c600 -21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60018c600 -18c60021c60018c60021c60021c60021c60021c60021c60018c60018bd0018c60018c60018c600 -21c60018c60021c60018c60021c60018c60021c60018c60021c60021c60021c60021c60021c600 -18bd0021c60021c60018c60021c60021c60018c60021c60018c60021c60018c60021c60018c600 -21c60018c60018c60021c60018c60021c60021c60021c60021c60021c60021c60029bd08abb37e -fdca81ddc17ed9ac7ba8997188a87a88a87a7d957862a78870b68c8bc1a38bc1a38bc1a3a3b8af -8bc1a3a3b8af62a78800967b06aa6d00955f05974b278c56000000 -00000029bd0829bd0831bf0d29c60029bd0029c60029bd0029c60029bd0021c60021c60021c600 -21c60021c60021c60021bd0021c60021c60021c60021c60021c60021c60021c60018c60018c600 -18bd0018c60021c60021c60021c60021c60021c60018c60018c60018c60021c60018c60018bd00 -21c60021c60018c60021c60018c60021c60018c60021c60018c60018c60018c60018c60018c600 -18c60018c60018c60018bd0018c60018c60021c60018c60021c60018c60018c60021c60021c600 -18c60021c60018c60021c60021c60021c60021c60021c60021c60021c60021c60029c608ddc17e -fdca81d9ac7bd9ac7ba8997191875d818c647d95787d957870b68c88ad978bc1a38bc1a38bc1a3 -8bc1a38bc1a34eb58800967b00955f06aa47409651497651000000 -00000029bd0029bd0829bd0029bd0029c60029bd0029c60021bd0029c60021c60021c60021c600 -21c60021c60021c60021c60021c60021c60021bd0021c60021c60021bd0021c60021bd0018bd00 -18c60021c60021c60021bd0021c60021c60021c60018c60018c60018c60021c60018c60018c600 -21c60018c60021c60018c60021c60018c60021c60018c60021c60018c60021c60821c60821c600 -18c60018bd0023bf1131bf0d31bf0d21c60818c60018c60018c60023bf1129c60821c60021c600 -21c60021c60021c60021c60021c60021c60021c60021c60021c60021c60021c60029bd08d9ac7b -fab77bd89076b88d5ba58f557f8a51816e5a818c647d95787d957870b68c88ad978bc1a38bc1a3 -8bc1a38bc1a362a7883fa46b25a75825a758278263497651000000 -00000029bd0829bd0831bf0d29bd0829bd0029c60829bd0029c60821bd0021c60021c60021bd00 -21bd0021c60023bf11239a3a29846d347382347382347382296e87296e87296e87296e87347382 -29846d239a3a21bd0821c60021c60021c60021c60021c60018c60018bd0018c60021c60021c600 -18c60021c60018c60021c60018c60021c60018c60021c60021c60018bd0063c74d70d75610c600 -10bd0023bf1163c74d63c74d63c74d21c60818bd0085c17621c60063c74d50d03810c60018c600 -18c60018c60018c60018c60018c60021c60021c60021c60021c60021c60021c60021c608d9ac7b -fab77bd89076906a58493e28493e28344833493e284b572e818c6488a87a70b68c4eb5884eb588 -4eb58870b68c62a788649e6a89bc5a7f8a518b873b927820000000 -00000029bd0029bd0831bf0d29bd0029bd0829bd0029c60829bd0029c60821c60021c60021bd00 -21c60023ad23296e87315aad315aad315aa5315aa5315aa5315aa5315aa5315aa5315aa5315aa5 -315aa5315aad296e8725b52121c60021c60021c60018c60018c60018c60018c60018c60018c600 -21c60018c60021c60018c60021c60018c60021c60021c60021c60010c60063c74d63c74d25b521 -63c74d70d75670d75685c17650d03810bd0031bf0d8bc1a350d03850d03863c74d50d03870d756 -50d03863c74d50d03870d75650d03821c60021c60021c60021c60021c60021c60021bd00cbb062 -d89076906a58333631222929213129253021213129222929344833818c6488ad974eb5883da883 -109c8423a57906aa6d48b334cfad02cfad02e4ab00e4ab00000000 -00000029bd0829bd0029bd0829bd0829bd0029c60829bd0021c60829bd0021c60821bd0821c600 -23ad23296598315aad31629c31629c31629c315aa5315aa5315aa5315aa5315aa5315aa5315aa5 -315aad31629c315aa5296e8721b51821c60021c60018c60018c60018c60018c60018c60018c600 -21c60021c60018c60018bd0018c60018bd0021c60021bd0021c60010bd0050d03870d75670d756 -63c74d50bf4f70d75670d75650d03810bd0050d03863c74d70d75650d03870d75670d7566cc951 -70d75670d75650d03885c17631bf0d21c60021c60021c60021c60021c60021c60021bd00d9ac7b -d8907633363125302129312929312929312929312926393125302160604288a87a70b68c23a579 -06aa6d06aa6d06aa6d90b112cfad02cfad02f5bd00f5bd00000000 -00000021bd0029bd0829bd0829bd0821bd0829bd0821c60029bd0021c60821c60021c60021bd00 -287b7b315aa531629c3163a5315aa5287b7b23ad2322a63223ad2323ad2323ad2323ad2321a427 -27826331629c31629c315aad278c5621c60018bd0018c60018bd0018c60018c60018c60018c600 -18bd0018c60021c60021c60018c60018c60018bd0018c60021bd0010bd0050d03863c74d63c74d -63c74d50d03850d03863c74d31bf0d23bf1150d03823bf1170d75670d75650d03885c17670d756 -50d03870d75648b33470d75621c60818c60021c60021c60021c60021c60021c60021bd00b88d5b -7f5a5822292929312929312929312929312929312929312925302160604288a87a70b68c3da883 -109c8406aa6d05974b90b112cfad02f5bd00f5bd00f5bd00000000 -00000022b50b29bd0829bd0821bd0029c60021bd0029c60021c60029bd0021c60821c60023ad23 -3163a531629c3163a531629c315aad27826321ce0018c60018c60018c60018c60018c60018c600 -18ce00239a3a315aa531629c296e8723bf1118c60018bd0018c60018c60018c60018c60018c600 -18bd0021c60018c60018bd0018c60018bd0021c60021c60010bd0050d03870d75629c60810c600 -29c60818c60021c60018c60021c60018c60021c60021c60021c60018c60025b52170d75663c74d -29c60818c60021ce0018c60021c60021c60021c60021c60021c60021c60021c60021c600b88d5b -5c4c512229292931292931292931292931292931292131292530217f8a518f8f7a70b68c23a579 -06aa6d06aa6d05974b90b112cfad02e4ab00f5bd00f5b500000000 -00000029bd0829bd0829bd0829bd0029bd0829c60021bd0029c60021c60029bd0821c600299452 -315aa53163a531629c31629c315aa529846d21c60021bd0018bd0018c60018bd0018c60018bd00 -18c60021b518296e87315ab52963a623ad2318c60018c60018bd0018c60018c60018c60018c600 -18c60018c60018c60018c60021bd0018c60021c60018c60018c60021c60021c60018bd0018c600 -18c60018c60018c60018c60018c60018c60018c60018c60021c60021c60029c60031bf0d29c608 -18c60021c60018c60021c60018c60021c60021c60021c60021c60021c60021c60029c60091875d -333631253021293129293129293129293129293129253021493e2891875da8997170b68c3da883 -18a27518a275239a3a8e8c16cfad02e4ab00e4ab00f2ad00000000 -00000023b50029bd0831bf0d29bd0829c60029bd0829c60021c60029c60021c60821c600278c56 -3163ad3163a53163a531629c3163ad29846d21c60021c60018bd0018c60018c60018bd0018c600 -18bd0018c60022a632239a3a239a3a23bf1118c60018bd0018c60018bd0018c60021bd00278c56 -287b71287b7123ad2321c60018c60021c60018c60021c60021c60018c60018bd0018c60018bd00 -18c60021bd0018c60021b518287b7b34738229846d23bf1118c60021c60018c60018c60018c600 -21c60018c60021c60021c60021c60021c60021c60021c60021c60021c60021c60029c60091875d -3336312530212931292931292931292530212931292229296a5922a58f558f8f7a88a87a3da883 -25a75825a7584096518e8c16c2920acfad02e4ab00e4ab00000000 -00000021bd0029bd0829bd0029c60021bd0029c60021bd0029c60021bd0021bd0821c600278c56 -315aad3163a53163a531629c3163a529846d18c60021bd0021c60018bd0021bd0018c60018bd00 -18c60018bd0018c60021ce0021ce0021c60021bd0018c60018bd0021c60018c60021c608287b7b -3152ae315aad22a63221c60021c60021bd0018c60018bd0018bd0021c60018c60018bd0018c600 -18bd0018c60018c60023ad2331629c3152ae29659818bd0818c60021c60021c60021c60021c600 -18bd0018c60018bd0018c60021c60021c60021c60021c60021c60021c60021c60029bd00a47953 -3336312530212931292530212931292931292931292530216a5922a58f55a8997188a87a3fa46b -3fa46b3fa46b617e3e637e24927820927820966b1d927820000000 -00000021bd0029bd0829bd0029bd0029c60029bd0021c60021bd0029c60021bd0021c600278c56 -3163ad3163a53163a531629c315aa529846d21c60021c60021bd0021c60021c60021c60018c600 -18bd0021c60021bd0021c60021bd0021c60021c60018c60018c60018bd0018c60018bd00287b7b -315aa529659821a42721c60021c60018c60018bd0018c60018bd0018c60018bd0018c60018bd00 -18c60018bd0018c60025b521296598315aa5296e8721bd0818c60018c60018c60018c60021c600 -18c60018bd0018c60018bd0018c60021c60021c60021c60021c60021c60021c60021bd00b88d5b -5c4c51222929253021293129253021253021213129493e2896733ab88d5ba899717d95783fa46b -3fa46b6a92546a9254617e3e3b54533b5453244d50244d50000000 -00000021bd0829bd0029bd0829c60029bd0029c60029bd0021c60021bd0029c60021c600278c56 -3163ad3163a53163a53163a53163a529846d21c60021c60021c60021c60021c60018c60018bd00 -18c60021c60021c60021c60021c60021c60018bd0021c60018c60018c60018bd0021c608287b7b -315aa5295aa522a63218c60018bd0018c60018c60018bd0018c60018bd0018c60018bd0018c600 -18bd0018c60018c60023ad23296598315aa5296e8721bd0818c60018bd0018c60021c60018c600 -18bd0018c60018bd0018c60021c60018c60021c60021c60021c60021c60021c60021bd00b88d5b -7f5a582229292530212530212931292931292530216a5922a47953b88d5ba89971649e6a3fa46b -649e6a6a925468725168725149765126642218605c244d50000000 -00000023b50029bd0829bd0021bd0021bd0029bd0821c60021bd0029c60021bd0018c600299452 -315aad31629c3163a531629c315aad29846d18c60021bd0018bd0021c60018c60021c60021c600 -18bd0018c60021c60018c60021c60021bd0021bd0018bd0018c60018bd0018c60018bd08287b7b -315aa52963a622a63218c60018bd0018bd0018bd0018c60018bd0021c60018bd0018bd0018bd00 -18c60018bd0018c60023ad23296598315aa5296e8721b51818c60018bd0018bd0018bd0018bd00 -18c60018bd0018c60018bd0018c60021c60021bd0021c60021c60021c60021c60021bd00cbb062 -d890763336312530212639312530212931292530218c5e20a58f55b88d5ba58f55649e6a6a9254 -6a92547f8a516872516060423b545318605c244d500d5549000000 -00000023b50029bd0829bd0029bd0821bd0029c60821bd0021c60021bd0021c60021c600299452 -3163a53163a53163a531629c3163ad287b7121c60021bd0021c60018c60021c60021c60018c600 -18c60021c60021c60021c60021bd0021c60021c60018ce0018c60018c60018c60018c600287b71 -315aa5315aa522a63218ce0018c60018c60018c60018c60018c60021c60018c60018c60018c600 -18c60018c60018ce0021b518296e87315aa5296e8721bd0818c60021c60018c60018c60018c600 -18c60018c60018bd0018c60021c60018c60021c60021c60021c60021c60021c60021bd00b88d5b -fab77b906a58333631253021253021213129493e2896733aa47953a58f5591875d649e6a6a9254 -8b873b8b873b687251497651244d503b54533b54533b5453000000 -00000029bd0029bd0829bd0021c60029bd0829c60021c60029bd0021c60029bd0021c600299452 -315aa531629c31629c3163a53163a529846d21c60021c60021bd0021bd0021c60021c60021c600 -18bd0021c60021c60021c60021c60023bf11299452299452299452299452299452299452296e87 -315aa531629c29846d299452278c56278c56278c56278c56239a3a18c60023ad23278263278263 -278c56278263278c5629846d296598315aa529659829846d27826329846d27826329846d29846d -18b51818c60018bd0018c60018c60021c60021c60021c60021c60021c60021c60021c600cbb062 -d89076d89076906a58493e28493e28333631493e2896733aa4795391875d818c647f8a517f8a51 -7f8a517f8a516060424b572e9278208e8c16c2920ac2920a000000 -00000022b50b29bd0829bd0821bd0021bd0021bd0029c60021c60021bd0021bd0818c600299452 -3163ad3163a53163a53163a53163a5287b7121c60021bd0021c60018c60018bd0018c60018bd00 -18c60018bd0021bd0021c60018c60025b521296598315aad315aa5315aad315aad315aad315aa5 -3163a53163a5295aa5315aad315aad315aad3152a5315ab527826318ce00239a3a315ab5295aa5 -295aa5315aad3152ae315aad315aa531629c315aa53152a53152ae315aa53152a5315aa53152ae -189d2e18c60018c60018bd0021c60018c60021c60021c60021c60021c60021c60021bd00afb869 -fab77bd9ac7bd89076a2826791875d816e5a8b873b91875d91875d7f8a516a92547f8a517f8a51 -7f8a517f8a514d5d57637e24c2920acfad02e4ab00e4ab00000000 -00000021bd0029bd0829bd0821bd0021bd0021bd0021bd0029bd0021bd0021c60021c600299452 -315aad3163a53163a53163a53163a5287b7b18c60021bd0018bd0018c60018c60018bd0018c600 -18bd0021c60021c60021bd0021c60025b52131629c315aa5315aa5315aa5315aa5315aad295aa5 -3163a5315aa5315aa5315aad315aad315aa5315aa53152ae27826318ce00239a3a315ab5315aad -315aad295aa5315aa5315aad31629c31629c315aa5315aa5315aa5315aad315aa5315aad315aad -22a63218c60021bd0018c60018bd0021c60021c60021c60021c60021c60021c60021bd00afb869 -fdca81d9ac7babb37ea899718f8f7a818c64818c64818c64818c647f8a516a92547f8a516a9254 -7f8a51816e5a497651927820cfad02e29602e4ab00f5b500000000 -00000021bd0029bd0829bd0821bd0021bd0021bd0029c60821bd0021bd0021bd0821c600299452 -315aa53163a53163a531629c315aa5287b7121c60018bd0021c60018bd0018c60018c60018bd00 -18c60021c60021c60021c60021c60021b518278263287b71287b71287b71287b71287b71296e87 -315aa52963a6287b7b278263278263278263278263278263239a3a18c60022a632278263278c56 -278263278c56278c56278263296598315aa5296598278263278c56278c56278c56278c56278c56 -18b51821c60018bd0018c60018c60018bd0021c60021c60021c60021c60021c60021bd00afb869 -ddc17eabb37eabb37e88a87a8f8f7a818c647d95786a92546a92546a92546a92546a9254687251 -687251576d67497651927820cfad02e4ab00f5b500f5b500000000 -00000022b50b29bd0821bd0021bd0021bd0021bd0021c60021c60821c60021bd0821c600299452 -315aad31629c3163a53163a53163a5287b7b18c60021bd0018bd0018c60018bd0018bd0018c600 -18bd0021c60021c60021c60021c60021c60018c60018c60018c60018c60018c60021c600287b71 -315aa5295aa522a63218ce0018c60018c60018c60018c60018c60018bd0018c60018c60018c600 -18c60018c60018ce0021b518296e87315aa5296e8718bd0818c60018c60018c60018c60018c600 -18bd0018bd0018c60018bd0018bd0018c60021c60021c60021c60018bd0021bd0021c6006ec368 -abb37eafb86985c17688a87a649e6a3fa46b278c56278c56278c5642863d3e8227617e3e497651 -49765127826318605c8e8c16c2920acfad02e4ab00f5b500000000 -00000022b50b29bd0829bd0821bd0029bd0029c60821bd0821bd0021bd0021c60821c600299452 -315aa53163a53163a53163a53163a5287b7b21c60018bd0021bd0018c60018bd0018c60018bd00 -18c60021bd0021c60021c60021c60021c60021c60018bd0018c60021bd0018c60021c600287b71 -315aa52963a6239a3a18c60018bd0018c60018bd0018bd0018bd0018c60018bd0018bd0018bd00 -18bd0018bd0018c60021b518296598315aa529659821b51818c60018bd0018c60018bd0018bd00 -18c60018bd0018c60018c60018c60018bd0021c60021c60021c60021c60018bd0021bd0043b66d -06aa6d43b66d43b66d06aa6d06aa6d01877b02946f047870057756186d16186d163e8227497651 -2782632782630c5a6c637e24c2920ac2920ae4ab00e4ab00000000 -00000023b50029bd0829bd0029bd0029bd0021bd0021bd0021bd0021bd0021bd0021c600299452 -315aad31629c3163a53163a53163a5287b7b21c60021bd0018bd0018c60021c60018bd0018c600 -18bd0021c60021c60021c60021c60021c60021c60018c60018bd0018c60018bd0021c600287b71 -315aa52963a622a63218c60018c60018bd0018c60018bd0018c60018bd0018c60018bd0018c600 -18bd0018bd0018c60025b521296e87315aa5296e8718b51018c60018bd0018c60018c60018c600 -18bd0018c60018bd0018c60018bd0018c60021c60021bd0021c60021bd0021c60018bd0006aa47 -06aa6d06aa6d06aa6d06aa6d02946f02946f057756057756185d2825463b25463b185d28247952 -27826304787018605c4976518e8c168e8c16c2920ac2920a000000 -00000023b50029bd0021bd0021bd0021bd0029c60021bd0021c60021bd0021bd0021c600299452 -3163a53163a53163a53163a53163a5287b7121c60021c60821c60021bd0018bd0021c60018bd00 -18c60021c60021bd0021c60021bd0021c60018bd0021bd0018c60018bd0018bd0018c600287b71 -2963a62963a6239a3a18c60018bd0018c60018bd0018c60018bd0018c60018bd0018c60018bd00 -18bd0018bd0018c60021b518296598315aa5296e8718b51018c60018bd0018bd0018bd0018c600 -18bd0018bd0018bd0018bd0018bd0018bd0021c60018c60018c60021c60021c60018ce0010c631 -25a75806aa6d06aa6d06aa6d06aa6d05974b05974b0d5549244d5025463b25463b0d5549057756 -04787004787004787004787018605c3b54533b54534a4e50000000 -00000021bd0029bd0829bd0029bd0029c60029bd0029c60021bd0021bd0021bd0021c600299452 -3163a53163a531629c31629c315aa5287b7b21c60021bd0018bd0018c60021c60018bd0018c600 -18bd0021c60021c60021c60021c60018c60021bd0018c60018bd0018c60018bd0018c600287b71 -315aad295aa5239a3a18c60018bd0018bd0018c60018bd0018c60018bd0018c60018bd0018c600 -18bd0018c60018c60021b518296598315aa529659818b51018c60018c60018bd0018bd0018bd00 -18bd0018c60018c60021c60021ce0018ce0018c60021c60021bd0018a80818a80818a80808911a -08911a2479520577560d55490d5549104821266422263931213131213131213131183e33183e33 -0d55490d55490d55490d55490d554918605c0d5549244d50000000 -00000023b50029bd0029bd0829c60029bd0029c60021bd0829c60021bd0021c60821c600299452 -3163ad31629c3163a531629c3163ad287b7121c60018bd0021bd0018bd0018bd0018c60018bd00 -18c60018c60021b51821b51823ad2321bd0818c60018bd0018c60018bd0018c60018c600278263 -29659829659822a63218c60018bd0018c60018bd0018c60018bd0018c60018bd0018c60018bd00 -18c60018bd0018c60021b518287b71296e87287b7118b51018c60018bd0018c60018c60018ce00 -18c60021bd0018a80818a8080c7518186d16266422184418103521103521182121182121181821 -181821181c18181c18182121181c18181821101821181821102121102118102121182121182121 -182121182121182121182121182121182121182121182121000000 -00000023b50029bd0029bd0021bd0021bd0021bd0021bd0021bd0021bd0821bd0018c600299452 -3163a53163a53163a531629c295aa5287b7b18bd0021bd0018bd0018bd0018bd0018bd0018bd00 -18bd0021bd08287b7b3163ad29659822a63218c60018bd0018bd0018bd0018bd0021bd0018bd08 -18bd0818bd0818bd0818bd0018bd0018bd0018c60018bd0018c60018c60018c60018bd0018bd00 -18bd0018bd0018bd0018c60018bd0018bd0018bd0018c60018ce0018c60018b507188a0d0c7518 -185d28184418182921182129181821181821181821182129182121182121182121182121182121 -213129182921182921182921182929182921182121182921182929182121102121101821182921 -182929182921182121182121182121182921182921182921000000 -00000021bd0029bd0029bd0029bd0021bd0021bd0021bd0021bd0021bd0021bd0018c60022a632 -3163a531629c31629c2963a62963a6287b7b21c60018bd0018bd0018bd0018bd0018bd0018bd00 -18ce0022a63231629c3163a529659823ad2318c60018bd0018c60018bd0018c60018bd0018c600 -18c60018c60018bd0018bd0018bd0018bd0018c60018bd0018bd0018bd0018bd0018bd0018bd00 -18bd0018bd0018bd0018bd0018c60018ce0018c60018a8080c7518185d28182921182121181821 -181821182121182129182921182921182121182921182921182121182921182121222929576d67 -6c76721829211821211821211821211821211829211021216c76727d81826c7672364742102118 -1821211829211829211021211018214d5d57707d7b101821000000 -00000023b50021bd0829bd0021bd0021bd0021bd0021bd0021bd0021bd0021bd0018c60021b518 -296e873163a52965983163a53163ad287b7b18bd0021bd0018bd0021bd0018bd0021bd0018bd08 -22a632296e872963a63163a5287b7b18bd0821bd0018bd0018bd0018bd0018bd0018c60018bd00 -18bd0018bd0018c60018bd0018bd0018bd0018bd0018c60018bd0018bd0018bd0018bd0018bd00 -18bd0018bd0018c60018c60018b5070c7518184418182921181821181821182121182121182921 -182921182121182121182121182121182121182921182121182921182929081821707d7b4d5d57 -1018212131291821212131292131312131291829290c1716818c8c39494f7d81826c76720c1716 -2931311821211829293336311021216c7672576d67102118000000 -00000023b50021bd0029bd0021bd0021bd0029bd0821bd0021bd0021bd0018bd0021bd0018c600 -239a3a315aad3163a531629c3163a5296598296e87296e87296e87296e87296e87296e87296e87 -3163a5295aa53163a52963a6189d2e21c60018bd0018bd0018bd0018bd0018bd0018bd0018bd00 -18c60018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd00 -18bd0018c60018b507186d16103521181821182129102121182921182921182121182121182121 -182121182121182121182921182121182921182121182921182121182121293131a3b8af5f6266 -636f6b6c76724a4e50839598707d7b4a4e50102121182121929b9c84948c636f6b222929576d67 -84948c333631576d67929b9c39494f818c8c263931182121000000 -00000023b50021bd0021bd0821bd0021bd0021bd0021bd0021bd0021bd0021bd0018bd0821bd00 -21c608278c562963a63163ad3163a53163a53163a5315aa53163a53163a53163a5315aa5315aa5 -2963a6315aa52963a6239a3a21c60018bd0021bd0018c60018bd0018bd0018bd0018bd0018bd00 -18bd0018bd0018c60018bd0018bd0018bd0018bd0018bd0018bd0018c60010bd0018bd0018bd00 -18c600188a0d184418181821182121182921182921182121182921182121182921182121182121 -1821211821211829211821211821211821211829211821211829291821212639317d81824d5d57 -6c76726c76725f6266929b9c2131291821211821213336318c9794929b9c4d5d57263931929b9c -333631636f6b6c7672818c8c39494f8c9794222929182921000000 -00000023b50021bd0829bd0021bd0021bd0021bd0021bd0021bd0021bd0018bd0021bd0018bd08 -18c60021c600239a3a296e872965982963a63163a52963a6295aa53163a5315aa52963a62963a6 -296598287b7123ad2321c60018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018c600 -18bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018c600 -188a0d182921182129182921182921102121182921102121182121182921182121182921182121 -1821211821211821211829211821211829211821211829291829211018214a4e50707d7b364742 -7d8182636f6b576d67636f6b1018211829291018215d727c84948c364742929b9c4a4e50929b9c -22393e84948c818c8c707d7b576d6784948c182921222929000000 -00000022b50b21bd0029bd0821bd0021bd0021bd0021bd0021bd0021bd0021bd0018bd0021bd00 -21bd0018bd0021c60021c60025b52121a42722a63221a42721a42721a42721a42721a42723ad23 -18b51018c60018c60018bd0018c60018bd0018bd0018bd0018bd0018bd0010bd0010bd0018bd00 -18bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0010c60022b50b -103521182121182921182121182921182121182921182121182921102118182121101821182121 -1829211821211829211821211821211821211829211829212229290c1716636f6b4d5d570c1716 -364742182921222929222929182121182921182921293131263931222929293131213129333631 -213129213129213129182929222929222929182921182929000000 -00000023b50021bd0829bd0821bd0021bd0021bd0021bd0021bd0021bd0018bd0018bd0018c600 -18bd0018c60018bd0021bd0018c60018c60018c60018c60018c60018c60018c60018c60018c600 -18c60018bd0018bd0018bd0018bd0018bd0018bd0018c60018bd0018bd0018bd0018bd0018c600 -18bd0018bd0018bd0018bd0018bd0018bd0018c60018bd0018bd0010c60010bd0018c600188a0d -182121182929182921182929182121182921182929182121333631839598636f6b5f6266102121 -1821211821211821211821211829211821211821211829211021184d5d57636f6b182921102121 -101821182121102121182121182921182121182121102118101821182121102118102121182121 -182121182121102121102118182121102121182121182121000000 -00000022b50b21bd0829bd0821bd0021bd0021bd0021bd0021bd0018bd0018bd0018bd0018bd00 -18bd0018bd0018c60021bd0021bd0021bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd00 -18bd0018bd0018c60018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd00 -18c60018bd0018c60018bd0018bd0018bd0018bd0018bd0018bd0010bd0018bd0010c60018a808 -182921182121182921182121182929182121182921102121364742929b9c182121a3b8af293131 -182921213129182121213129102121182921213129222929222929263931293131102118293131 -293131213129293131293131222929293131182929263931293131213131213131293131102118 -29313122292926393133363122393e263931293131182121000000 -00000022b50b21bd0821bd0821bd0021bd0021bd0021bd0021bd0021bd0018bd0018bd0018bd00 -18bd0018c60018bd0021bd0021c60018c60018bd0018bd0018bd0018bd0018bd0018bd0018c600 -18bd0018c60018bd0018bd0018bd0021bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd00 -18bd0018c60018bd0018bd0018bd0018bd0018bd0018bd0018bd0010bd0010bd0018bd0018c608 -186d161818211829291829211821212229292229290818215f62668c9794576d67707d7b6c7672 -7d81825d727c636f6b707d7b3647425d727c707d7b6c7672738085818c8c636f6b39494f7d8182 -818c8c636f6b8c9794818c8c7d8182929b9c4d5d57929b9c7d81828c97948c9794576d674a4e50 -8c9794576d678c9794707d7b6c767273808539494f182121000000 -00000022b50b22b50b21bd0021bd0021bd0021bd0021bd0018bd0021bd0018bd0018bd0018bd00 -18c60018bd0018c60018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd00 -18bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd00 -18bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0010bd0018bd0018bd0010c600 -18bd00186d161821211821291829211829212131290c17167d8182576d6722292910182184948c -4d5d57364742707d7b636f6b707d7b636f6b7d81823336318c97944a4e50293131707d7b818c8c -3b5453707d7b707d7b818c8c707d7b7d81823647428c9794707d7b7d8182818c8c4a4e50929b9c -36474239494f929b9c1021182639318c9794182121182921000000 -00000022b50b21bd0829bd0821bd0021bd0021bd0021bd0021bd0018bd0018c60018bd0018bd00 -18bd0018c60018bd0021c60821c60021c60818bd0018bd0018bd0018bd0018bd0018bd0018c600 -18bd0018bd0018bd0018bd0018bd0021bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd00 -18bd0018bd0018c60018bd0018bd0018bd0018bd0018c60018bd0010bd0010bd0010bd0018bd00 -10c60018c600188a0d184418182129182129182121222929a3b8af3647421021182131298c9794 -102118364742707d7b6c7672293131929b9c4d5d5721312984948c0c1716636f6b818c8c929b9c -3647427d81824d5d57636f6b6c76725f6266636f6b5f62666c76724d5d5784948c3647428c9794 -3647424d5d57576d671021215d727c636f6b222929182121000000 -00000023b50021bd0829bd0821bd0021bd0021bd0021bd0021bd0021bd0018bd0018c60018bd00 -18c60018bd0021c60021bd0021bd0821bd0018c60018bd0018bd0018bd0018bd0018bd0018bd00 -18c60018bd0018bd0018bd0021bd0018bd0021bd0018bd0018bd0018bd0018bd0018bd0018bd00 -18bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0010bd00 -18bd0010bd0018c60018c608188a0d104e17182921212931364742293131182121222929213129 -1821211821213336311829294d5d57636f6b8c97943b5453182121182121222929293131222929 -182921222929182929182121213129182121182921182121182929182121182921101821293129 -222929182121182121182121293131182121182121182921000000 -00000023b50029bd0829bd0821bd0021bd0021bd0021bd0021bd0821bd0821c60018bd0018bd00 -18bd0021c60018c60021bd0018bd0018bd0018bd0018c60018bd0018bd0018bd0018bd0018c600 -18bd0018bd0018bd0018c60018bd0021bd0018bd0018bd0018bd0018bd0018bd0018bd0018c600 -18bd0018c60018bd0018c60018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018c600 -10bd0018bd0018bd0018bd0018c60018c60018a8080c7518104e17103521182121181821181821 -1821211829291821211829216c7672364742576d67333631102118182921182121182121182121 -182121182121102121182121102121182921182121182121182121102121182121182121102121 -182121182121182121182121102121182121182921182921000000 -00000022b50b21bd0829bd0821bd0021bd0021bd0021bd0021bd0021bd0021c60818c60018bd00 -18bd0018bd0018bd0021bd0021bd0021bd0018c60018bd0018bd0018bd0018bd0018bd0018bd00 -18bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0010c60018bd0018bd0018bd0018bd00 -18bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0010bd00 -18bd0018bd0018bd0018bd0018bd0018bd0018c60018ce0021c60018b507188a0d0c751810601b -103521182921182129182129101821252f39182121101821182121182121182921182921182121 -182921182121182121182921182121182921182121182121182121182121182121182921182121 -182121182121182121182121182121182121182129182129000000 -00000022b50b21bd0821bd0821bd0021bd0021bd0821bd0021bd0821bd0821c60821bd0818bd00 -18bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018c600 -18bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018c60018bd0018bd0018bd00 -18bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018c600 -10bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018c60018ce0021ce0021c600 -18bd0018a808188a0d0c7518186d16104e17184418103521182921182121182121181821081821 -081821081821081821081821081821101821102118102121182121101821081821101821101821 -102121182121182121102121102121182921222929253021000000 -00000022b50b21bd0821bd0821bd0021bd0821bd0021bd0821bd0821bd0821bd0821c60821bd08 -18c60018bd0018c60018bd0018c60018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd00 -18c60018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018c600 -18bd0018c60018bd0018bd0018bd0018bd0018bd0018bd0018bd0010bd0018c60018bd0018bd00 -18bd0018bd0010bd0018c60010bd0010bd0018c60018bd0018bd0018bd0018bd0018bd0018bd00 -18bd0018c60018ce0021ce0018ce0021ce0021c60018bd0018a80818a80818a808188a0d637e24 -966b1d8c5e206a59226a59226a592234483325463b1829311829213448334b572e4b572e4b572e -4b572e23395122393e6a59228e8c16c2920acfad02e4ab00000000 -00000022b50b22b50b21bd0821bd0818bd0021bd0821bd0021bd0821bd0018c60818bd0018bd00 -18bd0018c60018bd0018c60018bd0018c60018bd0018bd0018bd0018bd0018bd0018bd0018bd00 -18bd0018bd0018bd0018c60018bd0018c60018bd0018c60010bd0018c60010bd0018c60010bd00 -18bd0018bd0018bd0010c60018bd0018c60018bd0018bd0018bd0010bd0010bd0010bd0010bd00 -10bd0010bd0018bd0010bd0018bd0010bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd00 -18bd0018bd0018bd0018bd0018bd0018bd0018bd0018c60018c60018c60021c60010c60090b112 -f2ad00f2ad00f2ad00d0780ac2920a88a87a29846d184d65263931266422637e2418a808637e24 -816e5a2345692345696a5922e4ab00e29423e4ab00f5b500000000 -00000022b50b21bd0821bd0821bd0021bd0821bd0021bd0821bd0018bd0818bd0018c60818bd00 -18c60018bd0018c60018bd0018c60018bd0018c60018bd0018bd0018bd0018bd0018bd0018bd00 -18bd0018bd0018bd0018bd0018c60018bd0018bd0018bd0018c60010bd0018c60018bd0018c600 -18bd0018bd0018bd0018bd0018c60018bd0018bd0018bd0018bd0010bd0010bd0010bd0018bd00 -10bd0018bd0010bd0018bd0010bd0018bd0010c60018bd0018bd0018bd0018c60018bd0018bd00 -18bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0021bd0018bd0090b112 -e29602f5af30f5af30bf912e8b873b91875d649e6a18605c2339512931310c751808911a239a3a -655d513b5453234569584b42927820c2920ac2920ac2920a000000 -00000022b50b22b50b29bd0821bd0821bd0021bd0821bd0021bd0821bd0018c60818bd0018c608 -18bd0018c60018bd0018c60018bd0018c60018bd0018bd0018bd0018c60018bd0018c60018bd00 -18bd0018bd0018c60018bd0018bd0018bd0018bd0018c60010bd0018c60018bd0018bd0018bd00 -18c60018bd0018c60018bd0018bd0018bd0018bd0018bd0018bd0010c60010bd0018c60010bd00 -18bd0010bd0018bd0010bd0018bd0010bd0018bd0018bd0018c60018bd0018bd0018c60018bd00 -18bd0018bd0018bd0018bd0018bd0018c60018bd0018c60018bd0021bd0021bd0018bd0090b112 -f8af56f8af56f8af56f8af5689bc5a649e6a7d957818605c224255293129185d28059835239a3a -4d5d573b54534e5c70184d6539494f3647425c4c514a4e50000000 -00000022b50b21bd0821bd0821bd0021bd0021bd0821bd0021bd0021bd0018bd0818c60818bd00 -18c60018bd0018c60018bd0021c60818bd0018bd0018bd0018bd0018bd0018bd0018bd0018c600 -18bd0018bd0018bd0018bd0018c60018bd0018bd0018bd0018bd0018bd0018c60010bd0018c600 -10bd0018c60010bd0018c60018bd0018bd0018c60018bd0018bd0010bd0010c60010bd0018bd00 -10bd0018bd0010bd0018bd0010c60018bd0010c60018bd0018bd0018bd0018c60018bd0018bd00 -18bd0018bd0018c60018bd0018c60018bd0018bd0018bd0018bd0018bd0021bd0018bd0091bf3b -f8af56eab65ef8af56f9b4667d95783fa46b8f8f7a29846d184d65252f39185d28059835189d2e -5f62665f6266687251655d513b5453244d50687251655d51000000 -00000022b50b21bd0829bd0821bd0021bd0821bd0018bd0021bd0018bd0818c60018bd0818bd00 -18bd0018c60018bd0018c60818bd0018bd0018c60018bd0018c60018bd0018bd0018bd0018bd00 -18c60018bd0018c60018bd0018bd0018c60018bd0018c60018bd0018bd0010bd0018c60010bd00 -18c60010bd0018c60018bd0018c60018bd0018bd0018c60010bd0018bd0010bd0018bd0010bd00 -10bd0010c60010bd0010c60018bd0010c60018bd0018bd0018bd0018bd0018bd0018c60018bd00 -18bd0018bd0018bd0018c60018bd0018c60018bd0018c60018bd0018bd0021c60010bd0091bf3b -f9b466eab65eeab65ef9b466a899713fa46b649e6a576d67184d65252f39185d28059835239a3a -576d67655d517f5a58816e5a816e5a4a4e50606042906a58000000 -00000022b50b21bd0821bd0821bd0018bd0021bd0818bd0818bd0821bd0818bd0818c60818bd08 -18c60018bd0018c60018bd0818bd0018bd0818bd0018c60018bd0018c60018bd0018bd0010c600 -18bd0018c60018bd0018c60018bd0018bd0018bd0018bd0010c60010bd0018c60010bd0018c600 -10bd0018c60010bd0018bd0018bd0018c60010bd0018c60010bd0010bd0018bd0010bd0010bd00 -10bd0018bd0010c60010bd0010c60010bd0010c60018bd0018bd0018bd0018c60018bd0018bd00 -18bd0018bd0018bd0018bd0018c60018bd0018c60018bd0018c60018bd0021bd0010bd0091bf3b -fdca81f9b466fab77bfab77bd9ac7b88a87a818c64649e6a184d65252f39185d28059835189d2e -5f6266655d51816e5a906a587f5a585c4c514a4e50606042000000 -00000018b51022b50b21bd0821bd0821bd0818bd0821bd0821bd0821c60823bf1118bd0818bd08 -18bd0818bd0018bd0818bd0018bd0818bd0018bd0018bd0018bd0018bd0018c60818c60018bd00 -10c60018bd0018c60018bd0018c60018bd0018bd0018bd0010bd0018bd0010bd0018c60010bd00 -18c60010bd0018c60010bd0018c60010bd0018c60010bd0018c60010bd0010bd0010bd0018bd00 -10bd0010bd0010bd0010bd0010bd0010c60010bd0010c60018bd0010c60018bd0018bd0018bd00 -18bd0018bd0018bd0018c60018bd0018c60018bd0018bd0018bd0018bd0018c60010bd0091bf3b -fdca81ddc17efab77bfab77bd9ac7ba8997191875d649e6a234569293131185d28059835239a3a -687251655d5184603a96733a9b643884603a84603a84603a000000 -00000018b51021bd0821bd0821bd0018bd0821bd0818bd0821bd0821bd0818bd1018bd1018bd08 -18c60818bd0818c60818bd0818c60018bd0818bd0018bd0018bd0018bd0018bd0018bd0818c600 -18bd0018bd0018bd0018c60018bd0018c60018bd0010bd0010bd0010bd0018c60010bd0018c600 -10bd0018c60010bd0018bd0010bd0018bd0010bd0018bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010c60010bd0010c60018bd0018bd0018bd0018bd0018c60018bd00 -18c60018bd0018c60018bd0018c60018bd0018bd0018bd0018bd0018c60021bd0010bd0091bf3b -fdca81fdca81fab77bfab77bd9ac7ba89971a58f55818c643b5453252f39185d28059835239a3a -687251816e5a5c4c519b6438c2920ae29602e29602e29602000000 -00000018b51022b50b21bd0821bd0818bd0821bd0821bd0818bd0821bd0818bd1018c60818bd08 -18bd0818c60818bd0818c60818bd0818c60818bd0018bd0018bd0018bd0018bd0818c60018bd08 -10c60018bd0018bd0018bd0018c60018bd0018bd0018bd0010bd0010bd0018bd0018c60010bd00 -18c60010bd0018bd0010bd0018bd0010bd0018c60010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010c60010bd0018bd0018bd0018bd0018c60018bd0018c600 -18bd0018c60018bd0018c60018bd0018c60018bd0018bd0018bd0021bd0021c60010bd0089bc5a -fdca81fdca81fab77bd9ac7beab65ecbb06296733a91875d385777212931185d28059835239a3a -636f6b5f62665f6266966b1de29602cfad02f2ad00f2ad00000000 -00000022b50b21bd0821bd0821bd0818bd0821bd0818bd0821bd0818bd0818c60818bd0818bd08 -18bd0818bd0821c60818bd0818c60818bd0818c60810bd0818bd0010bd0018c60018bd0810c600 -18bd0010bd0018c60010bd0018bd0818bd0018bd0010c60010bd0010bd0010bd0010bd0018c600 -10bd0010bd0010bd0018bd0010bd0018bd0010bd0018bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0018c60010bd0018bd0018bd0018bd00 -18bd0018bd0018bd0018bd0018bd0018bd0018c60018bd0018c60021bd0021bd0010bd0091bf3b -fdca81ddc17efab77bfab77bcbb062d99755bf912e91875d4e5c70212931185d28059835239a3a -816e5a6c767239494f966b1de4ab00e4ab00f5b500f5b500000000 -00000022b50b21bd0821bd0821bd0821bd0818bd0821bd0818bd0821bd0818bd0818bd0818bd08 -18c60818bd0818bd0818c60818bd0818bd0818bd0018c60010bd0018bd0010bd0010bd0018bd00 -10bd0018bd0010bd0018c60018bd0018bd0018bd0010bd0010bd0010bd0818c60018bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0018bd0018bd0018bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010c60010bd0010c60010bd0010bd0018bd0018c60018bd0018bd0018bd00 -18bd0018bd0018bd0018bd0018bd0018c60018bd0018c60018bd0021bd0021c60010bd0089bc5a -fdca81fdca81fab77beab65ed99755e29423c2920aa58f55385777252f39185d28059835239a3a -7f8a51818c644e5c70966b1de4ab00e4ab00f5b500f5bd00000000 -00000018b51021bd0821bd0821bd0818bd0821bd0818bd0821bd0818bd0818bd0818bd0818bd08 -18bd0818c60818bd0818bd0818bd0818bd0018c60010bd0018c60010bd0018bd0010bd0018c608 -10bd0010bd0018bd0010bd0018bd0018bd0018bd0010bd0010bd0010bd0010bd0010c60018bd00 -10bd0010bd0010bd0018bd0010bd0018bd0018bd0018bd0018bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010c60010bd0010c60018bd0010c60018bd0018bd0018bd0018bd00 -18bd0018bd0018bd0018bd0018bd0018bd0018bd0018bd0018c60018bd0021bd0010bd0091bf3b -fdca81fab77bf9b466f9b466f8af56e29423c2920aa479534e5c70293131185d2805983521a427 -816e5a91875d4e5c708c5e20e29602e4ab00e4ab00f5b500000000 -00000018b51022b50b21bd0821bd0821bd0823bf1121bd0818bd0821bd0818bd0818bd0818bd08 -18bd0818bd0818bd0818c60818bd0818bd0818bd0018c60010bd0018bd0010bd0018bd0010bd08 -18bd0010bd0018c60018bd0010c60018bd0010bd0010bd0010bd0810bd0010bd0010bd0010bd00 -18bd0010bd0018bd0010bd0818bd0010bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010c60018bd0010c60018bd0010c60018bd00 -18bd0018bd0018bd0018bd0018bd0018c60018bd0018bd0018bd0018bd0021c60010bd0091bf3b -fdca81ddc17ef9b466f8af56e29423d0780abf912ea58f554e5c70252f39266422059835617e3e -816e5a6c76724e5c706a5922e29423e29423f2ad00f2ad00000000 -00000022b50b21b51818bd0821bd0818bd0821bd0818bd0821bd0818bd0818bd1018bd0818bd08 -18c60818bd0818c60818bd0818bd0818bd0818bd0810bd0818bd0010bd0018c60010bd0818c608 -10bd0818bd0818bd0818bd0818bd0818bd0818bd0818bd0810bd0818bd0818bd0818bd0018bd08 -10bd0018bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0018bd0010bd0018bd0010bd00 -18bd0010bd0018c60018bd0018bd0018bd0018bd0018c60018bd0018bd0021bd0010bd0091bf3b -fab77bf9b466f9b466f8af56cc742dd0780abf912ea282673b545325463b637e248b873b8b873b -8b873b7f5a584e5c705c4c51b0702eb0702eb16f14b16f14000000 -00000021b51821b51821bd0818bd0821bd0818bd0821bd0818bd0821bd0818bd1018bd1018bd08 -18bd0818c60818bd0818c60818bd0818bd0818bd0018bd0810bd0018bd0010bd0818c60810bd08 -18bd0810bd0818bd0018bd0818bd0018bd0018bd0010bd0818bd0810bd0810bd0810bd0810bd08 -18bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0018bd0010bd0018bd00 -10bd0010bd0010bd0018bd0018bd0018bd0018bd0018bd0018c60018bd0021c60010bd0091bf3b -fab77beab65ef9b466e29423e29602e29423b88d5b91875d39494f4b572e927820b16f14b16f14 -bf912e906a587f5a585f62665f62664a4e502339515c4c51000000 -00000018b51021bd0818bd0823bf1118bd0821bd0818bd0821bd0818bd1018bd1018bd1018bd10 -18bd0818bd0818bd0818bd0818bd0818bd0818bd0810bd0018bd0810bd0818bd0010bd0818bd08 -10bd0818bd0810bd0818bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0810bd0810bd08 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0018bd0010bd0010bd0018bd0010bd00 -10bd0010bd0018bd0010bd0010bd0018c60010bd0010bd0018bd0018bd0018bd0010bd0091bf3b -fab77beab65ef8af56e29423d0780ae29423b88d5b91875d39494f8b873b9b6438b0702eb0702e -b16f14a479537f5a585c4c51655d517f5a585c4c515c4c51000000 -00000018b51022b50b23bf1118bd0818bd0818bd0821bd0818bd0821bd0818bd1018bd1018bd08 -10bd0810bd0810bd0818c60818bd0018bd0810bd0018bd0810bd0818bd0810bd0818bd0810c600 -10bd0010bd0818bd0010bd0818bd0010bd0010bd0010bd0010bd0810bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0018bd0010bd0010bd0018c60018bd0010bd0018bd0018c60008bd0091bf3b -fab77beab65ef9b466e29423d0780abf912ea282676c7672244d5096733a9b64389b6438cc742d -cc742da47953906a58655d515c4c51655d517f5a585c4c51000000 -00000018b51021bd0823bf1118bd0818bd0818bd0818bd0818bd0818bd0818bd1018bd0818bd10 -18bd0818bd1018bd0818bd0810bd0818bd0010bd0810bd0018bd0810bd0818bd0810bd0018bd08 -10bd0018bd0010bd0018bd0010bd0018bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0018bd0010bd0010bd0010bd00 -10bd0010bd0018bd0010bd0018bd0010bd0018bd0018bd0018bd0018bd0018bd0010bd0091bf3b -fab77bf9b466d89076d99755d0780a8b873ba28267347382244d5084603a7f5a588c5e209b6438 -cc742da479537f5a587f5a5884603a7f5a587f5a585c4c51000000 -00000018b51021b51821bd0818bd0818bd0818bd0818bd0818bd0818bd0818bd1018bd1010bd08 -18bd1018bd0818bd1018c60818bd0010bd0818bd0010bd0810bd0018bd0810bd0018bd0810bd00 -10bd0010bd0018bd0010bd0018bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0018bd0818bd0010bd0010bd00 -10bd0010bd0010bd0018bd0010bd0018bd0018bd0018bd0018bd0018bd0018bd0008bd0091bf3b -f9b466f9b466f8af56e29423966b1d6872518f8f7a287b71224255637e24906a5884603a8c5e20 -b0702e906a587f5a589b6438cc742dd0780ad0780ad0780a000000 -00000018b51022b50b18bd0818bd0818bd0818bd0818bd0818bd0818bd0818bd1010bd1018bd10 -18bd1018bd1018bd0818bd0810bd0818bd0810bd0018bd0010bd0810bd0010bd0810bd0010bd08 -10bd0810bd0010bd0010bd0810bd0018bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0018bd00 -10bd0018bd0010bd0010bd0018bd0010bd0018c60010bd0018c60018bd0018bd0008bd0091bf3b -fab77bd99755f8af56cc742d8b873b818c646c76720278812242553b545368725184603a96733a -816e5a5c4c51655d51b0702ec2920ae4ab00e4ab00f5bd00000000 -00000018b51018b51018bd0818b51018bd0818bd0818bd0818bd0818bd1018bd0818bd1010bd08 -18bd1010bd1018bd1018bd1018bd0818bd0810bd0810bd0010bd0010bd0010bd0010bd0810bd00 -10bd0010bd0010bd0010bd0018bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0018bd0010bd0018bd0018bd0008bd0091bf3b -f8af56f9b466d99755d9975591875d8f8f7a287b710c5a6c184d6518605c4976516872514d5d57 -4a4e503b54534a4e50966b1de4ab00e4ab00f5b500f5bd00000000 -00000018b51018b51018bd0818bd0818b51018bd0818bd0818bd1018bd0818bd1010bd1018bd10 -10bd1010bd1018bd1018bd1018bd1018bd0810bd0810bd0010bd0810bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0810bd0018bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd08 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0018bd0010bd0018bd0018bd0018bd0008bd0091bf3b -f8af56f5af30e29423d99755a28267707d7b287b71184d6518605c244d50224255244d50244d50 -244d503b5453224255966b1de29602e4ab00f5bd00f5bd00000000 -00000018b51021b51818bd0818b51018bd0818bd0818bd0818bd0818bd1018bd1010bd1010bd10 -10bd0810bd0810bd1018bd0810bd0810bd0810bd0810bd0810bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0810bd0810bd08 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0018bd0010bd0018bd0018bd0008bd0090b112 -f5af30e29423d99755a899718f8f7a5d727c184d6523456922425523395125463b22393e25463b -18605c244d50224255966b1dcfad02e4ab00f5b500f5bd00000000 -00000018b51018b51018b51018bd0818bd0818bd0818bd1018bd1018bd0818bd1010bd1018bd10 -18bd1018bd0818bd1018bd1018bd1018c60810bd0810bd0810bd0810bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0810bd0010bd0810bd0010bd0010bd0010bd0008bd0010bd0008bd00 -10bd0008bd0010bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0018bd0010bd0010bd0018bd0018bd0000bd0090b112 -f5af30e29423bf912ea89971707d7b18605c234569234569244d5022425522393e21313125463b -244d50244d502242556a5922c2920ae4ab00e4ab00f5b500000000 -00000018b51018b51018bd0818b51023bf1118bd1018bd1018bd1018bd1018bd0810bd1010bd08 -18bd1018bd1018bd1018bd1018c60818bd1010bd0818bd0810bd0810bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0810bd0810bd0010bd0010bd0010bd0008bd0010bd0008bd0010bd00 -08bd0010bd0008bd0010bd0010bd0010bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0018bd0000bd0090b112 -f5af30e4ac2ca58f558f8f7a5d727c184d65184d6523456922425522425523395126393125463b -3b54533b545339494f584b42b16f14d0780ae29602e29602000000 -00000018b51018bd0818b51018bd0821b51823bf1118bd1018bd1018bd1018bd1018bd0818bd10 -10bd0818bd1018bd1018c60810bd0818bd0818bd0810bd0810bd0810bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0018bd0010bd0010bd0010bd0010bd0010bd0010bd0810bd0810bd08 -10bd0010bd0010bd0010bd0810bd0810bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0018bd0018bd0008bd0090b112 -cfad02bf912ea89971649e6a184d6522425523456922425522425522425523395125463b244d50 -3b54534a4e506060424a4e505c4c5184603a8c5e209b6438000000 -00000018b51018b51018bd0818b51018bd1018bd1018bd1018bd1018bd1018bd1010bd0810bd08 -18bd0810bd0810bd0818bd1010bd0810bd0810bd0810bd0810bd0810bd0810bd0810bd0810bd08 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0810bd0010bd0810bd0010bd08 -10bd0810bd0010bd0810bd0010bd0810bd0010bd0010bd0010bd0008bd0010bd0008bd0010bd00 -08bd0010bd0010bd0010bd0008bd0010bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0018bd0000bd004cb50a -e4b210a58f557d95784e5c70184d6518605c184d6523456922425523395122393e25463b25463b -3647424d5d57606042655d5160604284603ab0702e9b6438000000 -00000018b51018b51021b51818bd1018bd1021b51818bd1018bd1018bd1018bd1010bd1018bd10 -10bd0810bd0810bd0818bd1010bd0810bd0810bd0810bd0810bd0810bd0010bd0810bd0010bd08 -10bd0810bd0810bd0010bd0010bd0010bd0010bd0010bd0810bd0010bd0810bd0010bd0010bd00 -10bd0810bd0810bd0010bd0810bd0010bd0810bd0010bd0010bd0010bd0010bd0010bd0008bd00 -10bd0008bd0010bd0010bd0010bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0018bd0010bd004cb50a -bf912e88a87a4096510b627c18605c18605c18605c184d6522425525463b22393e25463b25463b -4b572e606042816e5a606042655d5184603ab16f14b0702e000000 -00000018b51021b51823bf1118b51018bd1821b51818bd1018bd1018bd1018bd1010bd1010bd10 -10bd0810bd0810bd0810bd0810bd0810bd0810bd0810bd0810bd0810bd0810bd0010bd0810bd08 -10bd0810bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd0810bd0010bd0010bd0010bd00 -10bd0010bd0810bd0810bd0010bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd08 -08bd0010bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd004cb50a -91875d3fa46b0b627c05775605775604787018605c18605c184d6525463b25463b183e33266422 -36474260604284603a60604284603a84603a8c5e209b6438000000 -00000018b51018b51018b51021b51818bd1021b51818bd1018bd1018bd1018bd1010bd1010bd10 -10bd0810bd1010bd0810bd0810bd0810bd0810bd0810bd0810bd0810bd0810bd0810bd0818bd10 -10bd0810bd0810bd0810bd0810bd0810bd0010bd0010bd0010bd0010bd0810bd0010bd0010bd00 -10bd0810bd0810bd0010bd0810bd0010bd0810bd0010bd0010bd0008b50810bd0008bd0010bd00 -10bd0008bd0010bd0808bd0010bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0018bd0010bd0048b334 -3da88302788104787005775605775618605c057756184d65244d5022425525463b263931344833 -4b572e60604296733a84603a966b1db16f14b16f14cc742d000000 -00000018b51018b51018bd1818bd1021b51818bd1018bd1018bd1018bd1018bd1010bd1010bd10 -10bd0810bd1010bd1018bd0810bd0810bd0810bd0810bd0818bd0818bd0818bd0810bd0810bd08 -10bd0810bd0010bd0010bd0810bd0010bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0810bd0810bd0010bd0010bd0010bd0010bd0008b50810bd0008bd00 -10bd0010bd0008bd0010bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010c600239a3a -0278810478700478700478700c5a6c18605c0c5a6c184d65184d6522393e22393e263931263931 -4b572e84603a96733a9b6438c2920ae4ab00f2ad00f2ad00000000 -00000018b51018b51018b51018bd1818bd1018bd1821b51821b51818bd1018bd1010bd1010bd10 -10bd0818bd1010bd0818bd0810bd0818bd0810bd0810bd0810bd0810bd0810bd0010bd0810bd00 -10bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0810bd0010bd0010bd0008b50810bd0008bd0010bd00 -10bd0008bd0010bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0018c60006aa47 -01877b00967b01877b01877b0478700478700b627c0c5a6c23456922425522393e22393e25463b -4b572e84603a96733ab16f14e29602e4ab00f5b500f5bd00000000 -00000021b51821b51821b51818bd1818b51818bd1018bd1018bd1018bd1018bd1018bd1810bd10 -18bd1010bd0810bd0810bd0810bd0810bd0810bd0810bd0810bd0810bd0010bd0810bd0010bd08 -10bd0010bd0810bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0808bd0010bd0010bd0010bd0010bd0008bd0010bd0810bd0008bd00 -08bd0010bd0008bd0010bd0008bd0010bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0006aa47 -00898800948400898801877b01877b0478700478700c5a6c23456923456923395122393e263931 -4b572e617e3e9b6438b16f14e4ab00f5b500f5bd00f5bd00000000 -00000021b51821b51821b51818bd1818b51018bd1818bd1818bd1018bd1818bd1010bd1018bd10 -10bd0818bd0810bd0818bd0810bd0810bd0810bd0810bd0810bd0010bd0010bd0010bd0810bd00 -10bd0810bd0010bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0810bd0010bd0010bd0010bd0010bd0008bd0010bd0010bd00 -10bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010c60006aa47 -00948d00948400898801877b01877b0478700478700b627c184d6523456923395122393e25463b -4b572e60604284603ab16f14e4ab00f5b500f5bd00f5bd00000000 -00000025b52121b51821b51818bd1018b51818bd1018b51821b51818bd1018bd1010bd1010bd10 -10bd0810bd0810bd0810bd0810bd0810bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd08 -10bd0010bd0810bd0010bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0810bd0010bd0810bd0010bd0010bd0008bd0010bd0008bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010c60006aa47 -00948d00948d00898800898801877b0478700478700b627c0c5a6c23456922425523395122393e -3b545360604284603ab16f14cfad02f2ad00f5bd00f5bd00000000 -00000025b52125b52121b51818b51018b51018bd1821b51818bd1818bd1018bd1010bd1018bd08 -10bd0810bd0810bd0810bd0810bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd08 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0008bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd0008bd00 -08bd0010bd0010bd0010bd0008bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0006aa47 -00948d00948d00948400898801877b0278810478700b627c0c5a6c23456923456922393e22393e -3b545360604296733a966b1de29602e4ab00f2ad00f5b500000000 -00000021b51821b51821b51818b51818b51018b51018bd1818bd1818bd1018bd0810bd0810bd08 -10bd0810bd0810bd0810bd0810bd0810bd0810bd0810bd0810bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0008bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0810bd0010bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0006aa47 -00948d0094840094840094840089880278810278810b627c0c5a6c23456923456922393e25463b -364742655d5184603a96733a966b1dd0780ad0780ab16f14000000 -00000018b51021b51821b51821b51818bd1821b51818bd1018bd1018bd1010bd1010bd0810bd08 -10bd0810bd0810bd0810bd0810bd0810bd0818bd0810bd0810bd0810bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0008bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0006aa47 -00948d00948d00948d00948401877b0278810478700b627c0c5a6c234569234569233951263931 -39494f655d5184603a96733a9b643896733ab0702eb0702e000000 -00000018b51018b51021b51821b51821b51821b51818bd1018bd1018bd1010bd0810bd0810bd08 -10bd0810bd0010bd0810bd0810bd0810bd0810bd0810bd0810bd0810bd0810bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0008bd0008bd0010bd0010bd0010bd00 -10bd0010bd0010bd0008bd0010bd0010bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0008bd0010bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010c60006aa47 -00948d00948d0094840094840089880278810278810b627c0b627c184d65224255224255233951 -39494f655d51816e5a96733aa479539b64389b64389b6438000000 -00000021b51821b51821b51821b51818bd1018bd1818bd1018bd1018b51010bd1010bd0810bd08 -10bd0810bd0810bd0810bd0010bd0010bd0010bd0810bd0810bd0810bd0810bd0810bd0810bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0008bd0010bd0010bd00 -10bd0010bd0010bd0010bd0808bd0010bd0010bd0010bd0010bd0008bd0008bd0008bd0010bd00 -08bd0010bd0008bd0010bd0008bd0010bd0008bd0010bd0008bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0006aa47 -00948d00948d00948400948d0089880089880278810278810b627c234569224255233951224255 -3b54535f6266816e5a96733aa4795384603a9b643896733a000000 -00000018b51021b51821b51821b51818b51818b51818bd1018b51018bd1010bd1010bd0810bd08 -10bd0810bd0810bd0010bd0810bd0010bd0810bd0010bd0810bd0010bd0810bd0010bd0810bd08 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0008bd0010bd0010bd0008bd0010bd00 -10bd0010bd0010bd0010bd0010bd0810bd0010bd0010bd0010bd0008bd0010bd0008bd0010bd00 -10bd0008bd0010bd0008bd0010bd0008bd0010bd0008bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010c60006aa47 -00948d00948d00948d00948d0094840089880278810278810b627c184d6523456922393e224255 -39494f655d51816e5a906a58906a5884603a9b64389b6438000000 -00000018b51018b51021b51818b51018b51018b51018b51018b51018b51810bd1010bd1010bd10 -10bd0810bd0810bd0810bd0810bd0810bd0810bd0810bd0010bd0810bd0010bd0810bd0010bd00 -10bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0008bd0010bd0010bd0010bd00 -10bd0010bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd0008bd0008bd0010bd0008bd00 -10bd0008bd0008bd0010bd0008bd0010bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0006aa47 -00948400948400948d00948d0089880089880089880278810b627c23456922425522425525463b -3b54535f6266816e5aa47953bf912ee29423e4ab00f3b50f000000 -00000018b51018b51025b52118b51018bd1018b51018bd0818b51018bd1010bd0810bd0810bd08 -10bd0810bd0010bd0810bd0010bd0810bd0010bd0010bd0010bd0010bd0010bd0010bd0008bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0008bd0010bd0008bd0010bd0008bd00 -10bd0008bd0010bd0008bd0008bd0008bd0010bd0010bd0010bd0008bd0008bd0008bd0010bd00 -08bd0008bd0008bd0010bd0008bd0008bd0008bd0008bd0010bd0008bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0006aa47 -00948d0094840094840094840094840089880278810278810b627c234569233951233951224255 -3b54536c7672816e5a96733acbab21e4b210f3b50ff5bd00000000 -00000018b51023ad2325b52121b51818b51018bd1018b51018bd1018b51010bd0810bd0810bd08 -10bd0010bd0810bd0010bd0810bd0010bd0810bd0010bd0810bd0010bd0008bd0010bd0008bd00 -08bd0010bd0010bd0010bd0010bd0010bd0010bd0008bd0008bd0008bd0010bd0008bd0010bd00 -08bd0010bd0008bd0008bd0008b50008bd0010bd0010bd0008bd0008b50008b50008bd0008bd00 -08bd0008bd0008bd0008bd0008bd0008bd0008bd0010bd0008bd0010bd0010bd0010bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0006aa47 -00948d00948400948400948400948400948d0089880278810b627c23456923395126393125463b -3b54535f6266816e5a96733ae4ac2ce4b210f5bd00f5bd00000000 -00000018b51021b51825b52118b51018bd1018b51018b51018b51010b50810bd0810bd0810bd08 -10bd0810bd0810bd0810bd0010bd0810bd0010bd0010bd0010bd0008b50808bd0008b50008bd00 -08b50010bd0010bd0010bd0010bd0010bd0008bd0008bd0008b50008bd0008bd0008bd0008bd00 -08bd0008b50008bd0008b50008bd0008b50010bd0008b50010bd0008b50008bd0008b50008b500 -08b50008bd0008bd0008bd0008bd0008bd0008bd0008bd0008b50010bd0008bd0010bd0008bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0007aa32 -00948d00948400948400948d00948d00948d00948d0089880b627c23456922393e22393e224255 -184d653857775f6266927820cbab21f3b50ff5bd00f9c800000000 -00000009a70818b51018b51018bd1018b51018bd1018b51010bd0810b50810bd0810bd0810bd00 -08bd0010bd0010bd0010bd0810bd0010bd000baf1407aa320aa92110bd0008bd0010bd0008b508 -08b50810bd0008bd0010bd0010b5080aa92110b50008a6290baf1408b5080aa9210aa92110bd00 -08b50808b50810bd0008bd0008b50008bd0008b50010bd0008b50008bd0008b50008bd0008bd00 -08bd0008b50008bd0008bd0008bd0008bd0008bd0008bd0008bd0010bd0010bd0008bd0010bd00 -10bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0006aa47 -00948d00967b109c843da8833da88362a78800898800948d0278810b627c234569233951224255 -3857773857775f626696733acbab21e4ab00f5bd00f5bd00000000 -00000010b50810b50818b51018b51018bd0810b50810bd0818b51010bd0810bd0810bd0810bd08 -08bd0008bd0010bd0010bd0810bd0010bd000baf1405974b08a6290baf140aa9210aa9210aa921 -0aa9210aa9210aa9210aa9210aa92108a62910b50005974b0baf140baf1408a62908a62908a629 -0aa9210aa9210aa9210aa92108a6290aa92110bd0008b50008bd0008b50008bd0008b50008bd00 -08b50008bd0008b50008bd0008b50008bd0008b50008bd0008b50008bd0010bd0010bd0008bd00 -10bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0007aa32 -00948d109c8462a78888ad9784948c8c9794839598287b7b008988296598234569184d65385777 -4e5c705d727c385777606042cbab21cbab21f3b50ff6cb11000000 -00000009a70818b51018b51018b51010b50818b51010b50810bd0818b51010bd0010bd0810bd00 -08bd0008bd0010bd0010bd0010bd0810bd000baf14059835189d2e07aa3208a62908a6290aa921 -07aa3205983522a63208a62907aa320aa92110b5080598350baf1407aa3208a629189d2e07aa32 -08a629189d2e08a629189d2e0598350aa92108bd0008b50008bd0008bd0008b50008bd0008b500 -08bd0008b50008bd0008b50008bd0008b50008bd0008b50008bd0008b50008bd0010bd0010bd00 -08bd0010bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0007aa32 -109c844eb58870b68ca1ad9eabb37ea899717d81825d727c0b627c0c5a6c234569184d65184d65 -4e5c705d727c3857773b545384603abf912ec2920ac2920a000000 -00000010b50818b51018b50710b50818b51010b50818b51010b50818b51010bd0810b50810b508 -10b50010b50008b50010bd0810b50010bd0010b5080baf140baf140baf1410b50810b50810b508 -09a70818b51010b50810b50810b50808b50810b50808b50808b50810b50810b50808b50808b508 -08b50808b50808b50008b50008b50008b50010b50008b50008b50008b50008b50008b50008bd00 -08b50008bd0008b50008bd0008b50008bd0008b50008bd0008b50008bd0010b50008bd0010bd00 -08bd0008bd0008bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0010bd0007aa32 -23a57970b68c88a87aabb37eddc17e91875d4b572e4096516a925442863d42863d49765142863d -4d5d575d727c5d727c4e5c703857774a4e507f5a5884603a000000 -00000010bd0018bd0018bd0010bd0010bd0010bd0010c60018bd0810c60010c60010c60010c600 -10c60008bd0010c60010bd0010c60010c60010c60010c60010c60010c60008bd0010c60010bd00 -10c60008bd0010c60010bd0010c60010bd0008bd0010c60008bd0008bd0008bd0008bd0010bd00 -10bd0010bd0008bd0010bd0010bd0010bd0008bd0008bd0008bd0008bd0008bd0008bd0008bd00 -08bd0008bd0008bd0008bd0008bd0008bd0008bd0008b50008bd0008b50010bd0010b50008b500 -10b50010b50010b50008b50010b50010bd0008bd0010bd0010bd0010bd0010bd0010bd0007aa32 -3da88385c176afb869eab65efab77ba58f5540965163c74d70d7566cc95150bf4f42863d63c74d -4976515d727c5d727c5d727c4e5c706c7672816e5a96733a000000 -000000186d16186d16186d16186d16186d16186d16186d16186d16186d16186d1610601b10601b -186d16186d16186d1610601b10601b10601b185d2810601b10601b10601b10601b10601b185d28 -10601b10601b185d2810601b104e1710601b104e17104e17104e17104e17104821104e17104e17 -104821104821104821104821104e17104821185d28104e17104821104821104821104e17104821 -104821104821104821104821104821104821104821104821104821104821104821104821104821 -103521183e33103521188a0d08bd0008b50008b50008b50008b50008b50010b50010bd0007aa32 -3da88388a87aafb869eab65ef9b466a8997142863d63c74d70d7566cc95148b33442863d50bf4f -4976515d727c5d727c5d727c347382385777584b42606042000000 -000000182131182131182131182131182131182131182131182131182131182131182131182931 -182131182131182131182131182131182131101829102129102129101829182131182131182129 -101829182131101829102129182131182129182129182129182129102129102129182131182129 -182129102929101821102129101821101821101829182129182129101821101821182129102129 -182129102129102121102129102129182129182129102121101821102129102129102129182129 -1829291829291018290c751808bd0008b50008bd0008b50008b50008b50008b50010bd0007aa32 -3da88385c176cbb062eab65ef9b466a58f5542863d42863d617e3e42863d42863d42863d48b334 -687251738085738085385777707d7b4e5c7039494f4d5d57000000 -000000182929182929213131364742182929102929102929102929102929213131102929102929 -18292910292921313126393110292118292939494f36474222393e25463b213131102121102929 -25463b18292936474221313110212110292918292910292910212121313125463b102929182929 -1029291829293b545321313136474239494f10292118292910212136474239494f102921182929 -10292121313122393e29313122393e18292910292925463b364742182929213131263931213131 -1029291829291021290c751808bd0008b50008b50008b50008b50008b50010b50008bd0007aa32 -23a57985c176afb869eab65efab77ba58f5563c74d6cc95150bf4f63c74d63c74d63c74d6cc951 -497651738085818c8c7d8182b88d5bb88d5bbf912ebf912e000000 -00000021313118292939494fa3b8af707d7b636f6b7380855d727c6c7672738085738085707d7b -707d7b707d7b738085839598707d7b364742707d7b84948c818c8c839598818c8c818c8c707d7b -929b9c18292983959873808584948c6c76726c7672707d7b839598738085818c8c818c8c213131 -818c8c818c8c818c8c22393e929b9c929b9c818c8c929b9c3647427d81823b5453576d67576d67 -3b5453364742a3b8af929b9c929b9c839598818c8c7d8182839598929b9c818c8c738085818c8c -1021211829291821290c751808bd0008b50008b50008b50008b50008b50008b50010bd0007aa32 -18a27588a87aafb869cbb062f9b466a58f5548b3346cc9516cc9516cc9516cc9516cc9516cc951 -4976517d8182a28267d89076cbab21e4b210f5bd00f5bd00000000 -00000021313118292939494f636f6b576d67636f6b8c9794818c8c818c8c7380858c97947d8182 -8c9794707d7b818c8c707d7ba3b8af4a4e503b54536c7672636f6b6c76727d8182738085707d7b -707d7b222929576d67707d7b6c7672636f6b5f62664d5d57707d7b4d5d57576d676c7672213131 -707d7b5f6266364742293131636f6b576d67636f6b636f6b222929576d67364742293131213131 -2131293336313336314d5d576c7672636f6b5f62663b54535f62665f62663b54533647424d5d57 -1021212131291021290c751808bd0008b50008b50008b50008b50008b50008b50008b50007aa32 -00967b649e6a88a87aafb869cbb06291875d40965142863d70d75670d75670d75670d75670d756 -617e3e7d8182a28267d89076e4ac2cf6c329f6c329f6cb11000000 -000000182929182929212931182929182929182929182929182931182929182929182929182929 -1829291829291021291829294d5d57213131182929102929102129182929102121102129102121 -182929182929102121102121102121102121102121102121102121102121102121102121102929 -102121102121102121102129102121101821081821102121102121101821102121102121102121 -102129102129102121101821081821101821101821102121101821102121101821102121101821 -1821291021291018210c751808bd0008b50008b50008b50008b50008b50008b50008b50007aa32 -00967b25a758649e6a88a87aabb37e7f8a5142863d42863d42863d42863d42863d42863d42863d -4d5d57a28267a28267d99755f5af30f6c329f6cb11f6cb11000000 -000000182129182931182929182931182931182931182129182929182129182931182929182929 -102129182929182929182929102121102129182929182929182929102929182929182929182929 -102929182929182929102929102929103521182929103521102929213129103521103521103521 -213129103521213129103521103521103521213129103521103521103521103521213129183e33 -103521103521103521183e33103521103521104821103521103521104821103521104821104821 -103521104821103521188a0d08bd0008b50008b50008b50008b50008b50008b50008b50007aa32 -00948402946f299452649e6a88a87a7d9578707d7b29846d027881296e8723456918605c497651 -818c64a89971d89076bf912ef5af30f6c329f6cb11f6cb11000000 -000000188a0d188a0d08911a188a0d08911a0a980808911a0a980808911a0a980808911a0a9808 -08911a0a980808911a0a98080a98080a98080a98080a98080a98080a98080a980809a70809a708 -09a70809a70809a70809a70809a70809a70809a70809a70809a70809a70809a70809a70809a708 -00b50009a70800b50009a70809a70809a70800b50009a7080aad000aad000aad000aad000aad00 -0aad000aad000aad000aad0008b50008b50008b50008b50008b50008b50808b50008b50008b508 -08b50008b50008b50008b50008b50008b50008bd0008b50008b50008b50008b50008bd0007aa32 -00948400948402946f18a27570b68c62a7888bc1a33da8837380858395988395983da883839598 -a1ad9ea1ad9ed9ac7ba47953e4ac2cf6c329f6c329f6c329000000 -00000008b50808b50010bd0010bd0010b50010bd0010bd0010bd0008bd0008bd0008bd0008bd00 -08bd0008bd0008bd0008bd0008bd0008bd0008bd0008bd0008bd0008bd0008bd0008bd0008bd00 -00b50008bd0008bd0008bd0008bd0008bd0008b50008bd0008bd0008b50008bd0008bd0008b500 -08b50008bd0008b50008bd0008b50008b50008b50008bd0008b50008b50008b50008b50000b500 -08b50000b50008b50008bd0008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50007aa32 -00948400967b00967b01877b00948d0089880278810278810b627c0c5a6c0c5a6c0c5a6c3e8227 -816e5a91875db88d5bb0702ec2920ae29423e4b210e4b210000000 -0000000aad0009a7080aad0010b50010b50009a70810b50008b50010b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008bd0008b50008b50008b50008b50008bd0007aa32 -00948400948400948401877b01877b01877b0278810b627c4976518b873b8b873b2479523b5453 -687251906a58a47953a4795384603a966b1db16f146a5922000000 -0000000aad0010b50010b50010b50010b50010b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50007aa32 -00948400967b00898800948401877b01877b047870cbab21f9c800f9c800f9c800e4b2108b873b -816e5a816e5a816e5a816e5a906a589b6438b0702e606042000000 -0000000aad000aad000aad0008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50000b50008b50000b50008b500 -08b50008b50008b50008b50000b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50007aa32 -00948400967b01877b01877b01877b04787090b112f9c800f5bd00c2920a927820cfad02c2920a -8b873b6c7672816e5a816e5aa28267906a5884603a655d51000000 -0000000aad000aad0010b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50000b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50000b50008b50008b50008b50008b50000b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50007aa32 -00948400967b01877b02946f01877b278263e4b210f5bd00cfad029278206a5922cfad028e8c16 -bf912e816e5a816e5aa28267816e5a5c4c516060424a4e50000000 -0000000aad000aad000aad0010b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50000b50008b50008b50008b50008b500 -08b50008b50008b50008b50000b50008b50008b50008b50008b50008b50008b50000b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50007aa32 -02946f00967b01877b01877b01877b278c56f9c800cfad02c2920a8e8c168c5e20c2920acfad02 -cbab21816e5aa28267906a58a47953b88d5b9b6438bf912e000000 -0000000aad000aad0010b50010b50010b50010b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50000b50008b50000b50008b50008b50008b500 -08b50008b50008b50000b50008b50000b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50000b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50000b50023ad23 -109c8401877b00967b01877b01877b278c56cbab21c2920af9c800c2920a6a5922e4b210f9c800 -cbab21816e5a816e5a906a58cbab21e4ac2cf3b50ff6c329000000 -0000000aad000aad0010b50010b50010b50010b50010b50010b50010b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -00b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50000b50025b521 -649e6a02946f01877b02946f00955f00955f8e8c16f5bd00f9c800cfad02cfad02f5bd00f6cb11 -b0702e906a58655d5196733ae4ac2cf6c329f6c329f6c329000000 -0000000aad0010b5000aad0010b50010b50010b50010b50010b50010b50808b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50000b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50000b50031bf0d -91bf3ba58f553fa46b3fa46b409651649e6a6a9254cfad02f5bd00f5bd00f9c800f5bd00c2920a -cc742da4795384603a8c5e20e4b210e4b210f6cb11f6cb11000000 -0000000aad000aad0018b50710b50010b50010b50010b50010b50010b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50000b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50000b5004cb50a -cfad02cbab21cbb062bf912ecbab21cbab21cbb062cbab21cfad02cfad02e29602d0780abf912e -e29423cc742d84603a8c5e20e4b210e4b210f6cb11f6cb11000000 -0000000aad0018a80810b50010b50010b50010b50010b50010b50010b50008b50010b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50010b50000b5004cb50a -f5bd00f6cb11f5af30e4ac2ce4ab00cfad02e4b210f6c329e4ac2ce4ac2ce4ac2ce29423e29423 -d0780ad0780ab16f14966b1de29423e4b210e4b210f6cb11000000 -0000000aad0010b50018a80810b50010b50010b50010b50010b50010b50008b50008b50010b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b500 -08b50008b50008b50008b50008b50008b50008b50008b50008b50008b50008b50000b5004cb50a -f5bd00f6cb11f6c329f3b50ff5b500f5b500f5b500e4ab00f3b50ff3b50fe29423e29602d0780a -d0780ad0780ad0780a8c5e20b16f14c2920abf912ec2920a000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000 -showpage -%%Trailer -end -%%EOF diff --git a/Docs/Books/realmen.gif b/Docs/Books/realmen.gif deleted file mode 100644 index 41cb7d0e5ae66b7a1f9e7447c93fd9ec07a1ee45..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7910 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 fDFk=!{>;Y6R!O diff --git a/Docs/Books/realmen.txt b/Docs/Books/realmen.txt deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/Docs/Books/sql-99.eps b/Docs/Books/sql-99.eps deleted file mode 100644 index df55f1ad06b..00000000000 --- a/Docs/Books/sql-99.eps +++ /dev/null @@ -1,1248 +0,0 @@ -%!PS-Adobe-3.0 EPSF-3.0 -%%Creator: GIMP PostScript file plugin V 1.06 by Peter Kirchgessner -%%Title: /opt/local/x1/work/bk/mysql/Docs/Books/sql-99.eps -%%CreationDate: Sun Dec 31 14:31:42 2000 -%%DocumentData: Clean7Bit -%%LanguageLevel: 2 -%%Pages: 1 -%%BoundingBox: 14 14 288 383 -%%EndComments -%%BeginPreview: 100 135 1 135 -% fffffffffffffffffffffffff0 -% ffffffbddb55b6db5555aad6d0 -% d555556b6efb6db6fbbb775b50 -% efffffdedbaedb6dad6dad6df0 -% daaaaab5b6f5b6db56d6dbb6b0 -% ef7fffeeedaf6db6fb6db56dd0 -% b1a2aabb5b7adb6b555b6edb70 -% c0419f60e1d06dadad2d556db0 -% a48895a040a25b76f71b4bb6d0 -% c78c9b664ce7e6894934c65b70 -% a1188ec648a2810041100016d0 -% e08c9b644ca6992248a244cdb0 -% b8540c1040e389264c104c0b50 -% d60c9a1060a5182248a0440ef0 -% ac488bfe596391264897ccfb50 -% 60c08140c1b0412241104002d0 -% a160a5b1a6d046664188421370 -% bfbefeef7b6ffbbd8ef7bde5b0 -% 6ad5ab5ad6daad6acb556b56d0 -% b77b75af6db76b5756ddb6bb70 -% 60d6dc4adb6dbdedbab76dd6d0 -% a03db49db6db6b5ad76ddb7bb0 -% a6634c8b6db6d6b76db6b6ad70 -% 622104929b6dbb6d5adbdb6bd0 -% a04ca49136db6ddbb76d6ddeb0 -% 60c0a4892db6d6b56dbbb6b5d0 -% a44104993b6dbb6edad6db6f70 -% 624f30886ddb6db5b77db6dad0 -% a600044c5b6edadb6dab6db7b0 -% e561924476db6db6db7edb6d70 -% 5fbf7fbedbb6db6db6d5b6dfd0 -% 756ad5606d6db6db6dbf6db570 -% dedfbfd9dbdb6db6db6adb7fd0 -% 6bb56ab776b6db6db6ddb6d570 -% b557feeadb6dbdb6dbb76dbfd0 -% 6aec95bab5db76edb6dadb6ab0 -% d6ab6b55556eedbf6db777ffd0 -% 75dadd5b6adbdefadb6ddd5570 -% aaaaab7556bdb5ef6edb37ffd0 -% bf6efaab55eb7ffdddb66d5550 -% 6abbabfeff5fdffffbedbbfff0 -% ab6efe95aab57bb7ff76eeaab0 -% 7555abad6d6efeed5feab5ffd0 -% aaaaaab5b6bbfdbbb5fddf5570 -% 6ddddbab54eafbd6eeb575ffd0 -% b5555ad6a9bbf6bfbbefdf5570 -% 6dddabb5abeffdeffeabfdffd0 -% b6b77eff76b5eb5fdfbdf75570 -% 6dadabaacbaff6ffff5f7effd0 -% d56dbeffae1bdbbfffbfafaab0 -% 6baad2aa9a97f57ffebf7ffff0 -% b575aeff6c3fedfffeffd5d550 -% 6badd5555957f57ffdffbfffd0 -% d6db7bfe747feb7ffaffd57b70 -% 7dbed6aad1d5fd7ff5fff7afd0 -% 57ebfff9a57df5ffebffeb7ff0 -% e95aaaab69d6f57fefffffd5d0 -% 5756afeac379aabfdffffff770 -% faed75578fd1777fafffffdad0 -% 5555afd52ab2debf7fffc16dd0 -% ed7aeaae97e06b5ebfff3f5af0 -% 5bd7bf5a2e84bfaeffff45aff0 -% 777d6ab55da1edbd7ffebef5f0 -% ddd7deda7b0abfa2fffd255ad0 -% 6abab574deb3ef5dfffa955550 -% d54feda9b52abd6bfffaaaaab0 -% 6add5ad2fc4ffed5fffa8d5550 -% 6db7f3a5a9957b5bfffaa35550 -% d7faaea7fa26f5557ffd4aaab0 -% 6debd54d52e9f73efffca19550 -% d7faaf57e5036dd75ffa955550 -% 6eabb51eaad6dabffffea8aab0 -% dad55d75c90b557fdfff285550 -% 7cd5b45f16adbbdfafff552950 -% 76aaf576b51b6f6f4bff2a1550 -% ffc9a8de4276dabee7ffd50d50 -% b77eebbaa8adb7ff52ffe28b50 -% 7ef3a2f48a76debdb9ffea52b0 -% ffeaabd952db7bfb6d7ff52150 -% 6dd7a77335b6d6f6d75fe888b0 -% 7fdd4ee4c2dbbfedbbbffe5250 -% ff569dcd576d75fb2feffb0810 -% 6dad77a94adbefd65bebff5350 -% ff5bff5597b77fbd06f7ff8950 -% 7e7bff122d6dd7ea6bfaff5550 -% aad75feebbbf7f58b1f57eb550 -% 556ebfc456d5dff34bfbbd7a90 -% 8aab5fd57b7f7ea4a7eebbfd50 -% b0556398d6d6ffea8fdb57fa90 -% 7f895d32bdfdfd415fb6eff5b0 -% ff7a9265eb5bff961fefb9efd0 -% 6eaf7d535efffaaa7fbafeebd0 -% fe1ddb4bf5d7ff14bfeffeb7d0 -% 797bff57dbbff45a7fdaafbfd0 -% 6c5f579fef77fd28fffcff6fd0 -% fdf6bdebfbeff463ffd52fb7f0 -% 7cbe577feebff9aafff25adbd0 -% effcaefdfdffe2a7ffe907b550 -% 7efa55d7efbfea8bffd257fed0 -% f7f8a97fbbffc557ffa49fab50 -% 7ff355ddff7fab1fff8f2fffd0 -% 6fe57377f7ff8c7fff285f7dd0 -% fdcbeaddbfff32bffd557fefd0 -% dfa6dfb7fffe48fffe54bfffd0 -% 7bcfb57eeffcaafff8b2fedab0 -% 7faaefd7fffd51fff525fffad0 -% edffbabf6ff8a7fff293fdb450 -% 7fed6ffbfff2cbffe8a7fff290 -% fbbefab7ffe557ffc32fbec930 -% 6fb5d7ff7fca8fffad4fffd250 -% 7ebfbd6fffd6bfff551eff9490 -% ed6aebfdff8a2fff0abffd4230 -% 7fbbbfdfff257ffeb47fff2950 -% d5576b7bfe58bffc297ffccad0 -% 7feddffffd557ffd52fefaa150 -% f6bfbbdffcd1fff8a9fff9aad0 -% 5ff7fffff96bfff2a5fff54bd0 -% ff6ffffff2c5ffe993ffe297d0 -% 6dffbffff557ffd2a7ffd74dd0 -% d55fffffe50fffc68fffaa2fd0 -% 557f7fffd55fff955fff955fd0 -% 557fffffacbfff363ffd34bfd0 -% d77bfffbeabffaa977df527f50 -% c97d6db75abb7a556ed5557fd0 -% 537b6b7d6aeefaaadbead57df0 -% 557b6ff5aadab65575dd55ffd0 -% d57ffdfd77fff9abdff557ffd0 -% ddfffffdcbfff287fbe997ffd0 -% 7beffff757ffe5afffd64effb0 -% 7fbdfffdcfffca9fffd52fff90 -% edfffeffdfff952fff9a5fff30 -% 7bb6ffffffff4a5fff353ffe50 -% efffffbf5ffe9abffea8bffc90 -% 7ffffffffffffffffffffffff0 -% fffffffffffffffffffffffff0 -%%EndPreview -%%BeginProlog -% Use own dictionary to avoid conflicts -5 dict begin -%%EndProlog -%%Page: 1 1 -% Translate for offset -14.400000 14.400000 translate -% Translate to begin of first scanline -0.000000 368.503937 translate -272.965879 -368.503937 scale -% Variable to keep one line of raster data -/scanline 100 3 mul string def -% Image geometry -100 135 8 -% Transformation matrix -[ 100 0 0 135 0 0 ] -{ currentfile scanline readhexstring pop } false 3 -colorimage -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000 -00000052526b4a526b4a526b4a526b4a526b4a526b4a526b4a526b4a526b464a604a52634a526b -52526b4a526b4a526b4a526b4a526b52526b52526b52526b525a6b52526b525a6b525a6b525a6b -525a6b525a6b525a6b4a5a6b5a5a6b525a6b525a6b5b5a735a636b5a636b5a636b636373626b73 -5a636b626b6b626b6b6b737a74767882858c7476786b737a6b6b725a63735a636b63636b63636b -626b7363637363636b6b6b726b6b72626b6b626b736b6b72626b6b626b6b626b73626b6b747678 -6b6b727476786b6b727476787476787476787476787476787476787476787476787476786b6b72 -6b6b726b6b726b6b72747678626b6b747678626b6b7476786b6b726b6b72747678626b6b6b6b72 -626b6b6b6b726b6b7263636b626b6b63635f5a5a5a626b6b000000 -0000004a526b52526b4a526b4a4a6b424a6b464a60464a60464a60464a604a4a6b4a526b4a526b -4a526b4a526b4a526b4a4a6b4a4a6b4a4a6b4a4a6b4a526b464a604a526b4a526b4a52634a5263 -52526b525a6b525a6b4a526b525a6b52526b525a6b525a6b525a6b5a636b525a6b5a636b525a6b -525a63525a6b525a6b5a636b5a636b5a636b5a63735a636b52636b525a63525a63525a6b5a5a63 -525a635a5a6b5a5a635a636b5a636b5a636b5a636b5a636b5a636b5a636b5a636b5a636b5a636b -63636b5a636b5a636b63636b63636b63637363636b63636b63636b63636b63636b63636b636373 -63637363637363636b6363736363736363736c6373636373636373626b73626b6b6b6b72626b73 -63637363637363637363637363636b5a63735a5a6b767984000000 -000000525b735b5a735b5a73525a6b52526b52526b52526b525a6b52526b525a6b525b7352526b -4a526b4a526b4a526b4a526b4a4a6b424a6b4a526b4a4a6b4a4a6b4a52634a526b4a526b52526b -525a6b52526b525a6b525a6b525a6b525a6b525a6b525a6b525a63525a6b525a63525a63525a63 -525a63525a63525a63525a63525a63525a63525a63525a63525a63525a63525a63525a63525a63 -525a6b5a5a6b5a636b5a5a6b5a636b5a5a6b5a636b5a63605a636b5a636b63636b5a636b5a636b -5a636b5a636b5a636b63636b635a6b63636b63636b5a636b5a636b63637363636b5a636b5a636b -63636b63636b5a6373636373636373636373636373636373636373636373636373636373636373 -5a636b5a636b5a63735a636b5a63735b5a7352526b686b7d000000 -0000005b5a73525b735b5a73525b735b5a735a63735a63735a6373525b735a5a6b525a6b525273 -4a526b52526b4a526b4a4a6b4a4a6b4a4a6b4a52634a526b4a526b4a526b52526b525a6b4a526b -52526b4a526b525a6b525a6b5a636b525a6b52636b525a6b525a63525a6b525a6b525a63525a63 -525a6b525a63525a63525a63525a63525a63525a63525a6b525a63525a6b525a6b525a63525a63 -5a5a635a636b5a5a6b5a636b5a636b5a636b5a636b5a636b5a636b5a636b63636b5a636b5a636b -5a636b5a636b5a636b63636b63636b63636b63636b63637363636b636373635a6b63636b5a6373 -5b5a735b5a735a637363637363636b63637363636b6363736363736363736363736363735a636b -6363735a636b5a636b5a636b5b5a735a5a6b525a6b686b7d000000 -000000525b73525b735a63735a6373525a6b525a6b525b735a6373525a6b5b5a73525b734a4a6b -4a526b4953744953744a4a6b4a4a6b424a6b4a4a6b4a4a6b4a52634a526b4a526b52526b52526b -525a6b525a6b5a5a6b5a636b5a636b5a636b5a636b5a636b525a6b5a636b5a5a6b5263635a636b -525a6b525a6b525a63525a63525a63525a6b525a634a5263525a63525a6b525a6b525a6b5a5a63 -5a5a6b5a636b5a636b5a636b5a636b5a636b5a636b63636b63636b63636b5a636b636373636373 -63636b5a636b63636b63636b6363736363736363736363735a5a6b6363736363735b5a735a636b -63636b6363735b5a7363637363637363637363637363637363637363636b63637363636b636373 -63636b5a636b5a63735b5a73525a6b5b5a7352526b686b7d000000 -000000525b735a63735a63736b737a8789958789956b737a52636b5a6373525a6b686b7d82858c -7679844a526b4a526b4a526b5252735b5a734a526b4a526b4a4a6b4a526b52526b525a6b525a6b -525a6b525a6b525a63525a6b5a636b525a63525a6b5a636b5a636b4a5263525a63525a6b4a5263 -525a6b525a63525a6b525a63525a6b4a5263525a6b686b7d5a636b4a525a5a5a6b5a5a6b5a5a6b -5a5a6b5a636b5a636b63636b63636b63636b63636b6363735a636b63636b6363735a636b63636b -63636b63636b63637363637363636b63637363636b6b6b7282858c686b7d63636b636373636373 -63637363637363636b63637363636b5a5a6b6363736363736363736363736363736363735a6373 -5a5a6b5a63735a636b5b5a735b5a735b5a734a526b65637f000000 -000000686b7d5a6373949d9eeae9ecffffffffffffffffffa4a8ae525a6b949d9ef6f5f8ffffff -ffffffcacad15a6373464a60b7bdbceae9ec686b7d4a526b52526b525a6b525a6b5a5a6b5a636b -5a636b525a6b9ca0a3eae9ecf6f5f8b7bdbc626b6b52636b525a639ca0a3eae9eceae9ecb1b2b4 -52636b5a636b525a6b5a636b525a63878995eae9ecfffffff6f5f8a4a8ae5a5a6b5a636b636373 -6363736363735a636b636373636373626b73636373626b73626b73636373636373626b73636373 -6363736c6373626b736b6b726b6b72686b7d5a52619ca0a3ffffff87899563636b636373636373 -6b6b726b6b7263637363637376798482858c686b7d6c6373626b736363736b6b72626b73636373 -5a5a6b5a637363637363636b5b5a735b5a7352526b686b7d000000 -000000686b7d686b7ddedfe2f6f5f88a9e9c82858cb7bdbc878995686b7df6f5f8f6f5f882858c -a4a8aeffffffb1b2b43e525acacad1ffffff6b737a4a526b525a6b525a6b525a6b5a5a6b5a636b -525a6b878995ffffffd4d7d5b7bdbcffffffb7bdbc4a525a949d9effffffd4d7d5b6c8c1ffffff -a4a8ae525a635a636b525a6b6b737affffffeae9ec878995b7bdbccacad1525a635a636b525a63 -525a635a636b6363735a636b5a5a6363636b5a636b525a635a636b6363735a5a6b5a5a6b636373 -63636b5a5a6b63636b63636b5a5a6b6b6b725a5a639ca0a3ffffff82858c635a6b65637f635a6b -5a5a6b5a5a6b6b6b7252525fb1b2b4ffffff76798463636b6b6b726363735a636b5a636b636373 -6363735a63736363735a5a6b5b5a735b5a73525273686b7d000000 -0000006363736b737affffffd4d7d55a5a6b5a63735a6373525a6b9ca0a3ffffffa4a8ae4a5263 -52636beae9eceae9ec4a526bcacad1ffffff6b737a4a526b5a5a6b525a6b525a6b5a636b5a6373 -4a525acacad1ffffff626b6b393f41d4d7d5ffffff525a63cacad1f6f5f85a636b464a48dedfe2 -eae9ec5a636b5a63734a525aa4a8aeffffff8789953e525a4a525a5a5a63525a63626b739ca0a3 -a4a8ae7679845a5a6b626b73949d9e747678767984a4a8ae76798463636b949d9e9ca0a36b6b72 -626b6b8789957476788789959ca0a376798452525f9ca0a3ffffff8789955a5a6b5a5a6b82858c -9ca0a382858c636373626b73b6c8c1ffffff8789957679846363736b6b72949d9e8789956c6373 -5a636b6363735b5a735b5a73525b735a5a6b52526b686b7d000000 -000000686b7d5a6373dedfe2ffffffcacad182858c626b735a636bb7bdbcffffff949d9e525b73 -525a6bdedfe2ffffff686b7dcacad1ffffff6b737a525a6b525a6b525a6b5a636b5a636b5a6373 -4a525ad4d7d5eae9ec626b73525a63b6c8c1ffffff626b73dedfe2dedfe25a636b5a636bd4d7d5 -ffffff6b6b725a6373525a63cacad1ffffff7476785a636b6363735a636b6b6b72eae9ecffffff -f6f5f8fff7ff8789956b6b72ffffffdedfe2eae9ecffffffeae9ecdedfe2ffffffffffffb1b2b4 -6b6b72ffffffeae9ecf6f5f8fffffff6f5f86b6b729ca0a3ffffff878995525a6bb1b2b4ffffff -f6f5f8ffffff949d9ecacad1fffffffffff7ffffffdedfe2747678eae9ecffffffffffffdedfe2 -6b6b726363735b5a735b5a735b5a735b5a7352526b686b7d000000 -000000686b7d5a636b767984dedfe2ffffffffffffb7bdbc525a6bcacad1ffffff878995525b73 -525a6bd4d7d5ffffff6b737acacad1ffffff6b737a525a6b5a63735a636b5a63735a636b5a6373 -4a525acacad1ffffff6b737a525a63dedfe2ffffff626b73d4d7d5f6f5f85a636b5a636beae9ec -fff7ff62736c5a6373525a63dedfe2f6f5f87476785a5a6b626b73525a63a4a8aeffffff878995 -5a5a63f6f5f8dedfe263636bf6f5f8eae9ec6b6b72b1b2b4ffffffb1b2b4626b73ffffffdedfe2 -5a5a6bf6f5f8eae9ec626b6b82858cffffffa4a8ae949d9effffff82858c747678ffffffa4a8ae -393f41d4d7d5fff7ff6b6b72b6c8c1ffffff949d9e626b73cacad1f6f5f85a6360767984ffffff -a4a8ae5a5a6b6363735b5a735b5a735b5a7352526b686b7d000000 -000000626b73686b7d5a63735a636b878995dedfe2ffffff949d9eb1b2b4ffffff878995525a6b -525a6bd4d7d5ffffff6b737acacad1ffffff7679845a6373525a6b878995eae9eceae9eceae9ec -a4a8ae767984ffffffeae9eceae9ecfffffff6f5f85a636b878995ffffffdedfe2dedfe2ffffff -eae9ec626b73626b73525a63dedfe2ffffff7679845a636b626b73525a63d4d7d5f6f5f8747678 -52525fcacad1ffffff747678f6f5f8cacad1464a609ca0a3ffffff82858c5a5a5aeae9ecdedfe2 -5a6360f6f5f8d4d7d55a5a6b626b6bffffffb7bdbc9ca0a3ffffff767984949d9effffffcacad1 -b1b2b4dedfe2ffffff747678b1b2b4ffffff7679845a5a63eae9eceae9ecb1b2b4b1b2b4ffffff -cacad15a5a6b6363735b5a735b5a735b5a735a526b747678000000 -000000626b73626b73626b6b626b73525a6b6b737affffffb6c8c1a4a8aeffffff949d9e525a6b -5a6373eae9ecfff7ff5a636bcacad1ffffff6b737a525a6b525a63747678dedfe2d4d7d5dedfe2 -a4a8ae4a525a878995d4d7d5b1b2b4dedfe2dedfe2626b6b525a63949d9ededfe2b1b2b4eae9ec -d4d7d55a5a6b626b7352525fcacad1ffffff7679845a636b626b7352525fdedfe2f6f5f8747678 -5a5a63cacad1ffffff767984f6f5f8d4d7d552525fa4a8aeffffff8789955a5a63f6f5f8dedfe2 -5a6360fff7ffd4d7d56363736b6b72ffffffb7bdbc9ca0a3ffffff767984a4a8aeffffffdedfe2 -dedfe2dedfe2dedfe2747678b1b2b4ffffff82858c63636bf6f5f8f6f5f8dedfe2eae9ecdedfe2 -b1b2b45b5a735a63735b5a735b5a735b5a735b5a73686b7d000000 -000000626b73626b738a9e9c7679845a636b82858cffffffb7bdbc6b737affffffcacad14a526b -82858cffffffcacad14a5263d4d7d5ffffff82858c767984767984686b7d4a52634a5b62525a63 -525a6b5a636b525f5a3e525a878995ffffffa4a8ae525a636363734a525a3e525a949d9effffff -949d9e525a63626b734a525aa4a8aeffffffa4a8ae4a525a686b7d5a5a63b7bdbcffffff747678 -4a525adedfe2f6f5f86b6b72f6f5f8d4d7d54a525aa4a8aeffffff8789955a5a63eae9ecdedfe2 -5a636bffffffcacad152525f747678ffffffb1b2b49ca0a3ffffff767984878995ffffff878995 -464a605a636b63637352525fb7bdbcffffff7679844a525af6f5f8d4d7d552525f52525f525a63 -63637363637365637f65637f5b5a735b5a735a526b686b7d000000 -000000626b73626b73f6f5f8ffffffeae9ecfffffffff7ff82858c4a5263cacad1ffffffeae9ec -f6f5f8ffffff9ca0a33e525ad4d7d5ffffffffffffffffffffffffb1b2b4525a63636373626b73 -5a636b767984eae9ecdedfe2ffffffd4d7d563636b525a6b82858cdedfe2dedfe2ffffffcacad1 -5a63605a636b6363735a636b5a636beae9ecffffffcacad1eae9eccacad1747678ffffffdedfe2 -cacad1ffffffb1b2b463635fffffffd4d7d54a525a9ca0a3ffffff8789955a5a63f6f5f8dedfe2 -5a636bf6f5f8f6f5f8b1b2b4d4d7d5ffffff82858c949a91ffffffdedfe2878995eae9ecf6f5f8 -b7bdbcd4d7d5dedfe25a5261a4a8aeffffffdedfe2b7bdbcb7bdbcffffffcacad1b1b2b4eae9ec -82858cb7bdbceae9ec7679845b5a735b5a735a5a6b747678000000 -000000626b735a636b767984a4a8aeb6c8c1b7bdbc767984525b735a63734a5263949d9ecacad1 -b1b2b4eae9ecffffff76798482858ca4a8ae9ca0a39ca0a3a4a8ae767984525a6b5a636b5a636b -525a6b626b73cacad1d4d7d5a4a8ae5a636b5a636b525a6b747678dedfe2d4d7d5a4a8ae5a6360 -5a636b5a636b5a636b63636b525a636b6b72b7bdbcdedfe2d4d7d59ca0a352525f82858cd4d7d5 -dedfe2a4a8ae6b6b725a6360b7bdbca4a8ae5a52617b8a84cacad17679845a5a63b7bdbcb1b2b4 -63635ff6f5f8eae9ecdedfe2eae9ecb1b2b463637363636bcacad1fff7ff949d9e6b737adedfe2 -f6f5f8eae9ecb1b2b46363736b6b72dedfe2f6f5f8d4d7d5636373b7bdbcf6f5f8f6f5f8dedfe2 -82858cf6f5f8cacad15a5a6b6363735b5a735b5a73747678000000 -000000626b735a63735a636b525a6b4a52634a5b62525a6b525b73525a6b5a63734a52634a5263 -3e525a6b6b72a4a8ae686b7d4a52634a52634a52634a52634a525a525a6b5a636b525a6b5a636b -5a636b525a6b4a525a4a5b62525a635a636b5a636b5a636b525a6b4a525a525a63525a635a636b -5a636b5a5a6b5a636b5a636b5a636b5a5a6b52525f525a63525a6352525f63636b525a6352525f -5a5a635a5a6363636b63636b52525f5a636b63636b635a6b525a6363636b6363735a5a6363636b -63636bf6f5f8cacad152525f626b6b63636b63637363636b5a5a6363636b636373635a6b525a63 -63636b5a636b5a5a6b6363735a5a6b5a5a6363636b5a636b6363735a5a635a636b626b7352525f -878995ffffff686b7d5a5a6b635a6b5b5a735b5a73747678000000 -0000005a63735a63735a63735a63735a63735a63735a63735b5a73525a6b525a6b5b5a735a6373 -5a6373525a6b4a5263525a6b5a5a6b5a636b52636b5a636b5a636b525a6b525a635a5a6b525a63 -525a63525a6b5a63735a636b5a636b5a5a6b525a6b5a5a6b5a636b5a636b5a636b5a636b5a5a6b -525a6b5a636b5a636b5a5a6b5a5a6b5a636b63636b5a636b5a636b5a636b5a5a6b5a636b63636b -63637363636b5a636b63636b63637363636b63636b626b736b6b726363736363736b6b726b6b72 -63635fffffffd4d7d5635a6b6b6b726c637363636b6363736b6b726c63736363736c63736c6373 -63637363637363637363637363637363637363636b6363736363736363736c63736b6b725a5a63 -7b8a849ca0a35a5a6b5b5a735b5a735b5a735a526b686b7d000000 -0000005a63735a63735a63735a636b525a6b525a6b4a5263525a6b5b5a73525a6b525a6b5a636b -5a5a6b5a636b5a6373525a6b525a6b5a5a6b525a6b525a6b525a6b626b737679845a63735a636b -7679846b737a52636b5a636b5a5a6b5263635a5a6b5a636b525a6b5a5a6b5a636b525a6b5a636b -5a636b5a5a6b5a636b5a5a6b5a636b5a5a6b5a636b5a5a6b5a5a6b5a636b63636b5a636b5a636b -63636b63636b63636b63636b63636b63636b63636b63636b63637363636b63637363636b6c6373 -63636ba4a8ae82858c6363736c63736363736363736c63736363736363736c6373636373636373 -6363735b5a73636373635a6b635a6b63636b6363735b5a7363636b636373636373636373636373 -5a5a635a5a6b6363735a5a6b5b5a735a63735a5a6b686b7d000000 -000000626b73525a6b8a9e9cdedfe2dedfe2eae9eccacad1767984525a6b525b735a63735a6373 -525b73525a6b5a5a6b525a6b5a5a6b5a636b5a636b5a636b4a525acacad1ffffff5a636b82858c -ffffff949d9e52525f5a636b5a636b5a5a6b5a636b5a636b5a636b5a636b5a636b5a5a6b525a6b -5a5a6b5a5a6b5a5a6b5a5a635a5a6b5a5a6b5a5a6b5a63605a636b5a5a6b635a6b5a636b5a636b -63636b63636b63636b63636b63636b63636b63636b63636b63636b63636b63636b63636b63636b -63636b5a5a63635a6b63637363637363636b63637363636b63636b63636b635a6b5a5a6b5b5a73 -5b5a735b5a735a5a6b5a5a6b5a5a6b635a6b6363735b5a7363637363636b63637363636b63636b -6363735a636b5a5a6b5a5a6b5b5a735b5a735a526b686b7d000000 -000000626b734a5263949d9effffffd4d7d5cacad1ffffffeae9ec686b7d525a6b525a6b4a5263 -4a5263525a6b5a636b525a6b525a6b4a52634a52635a636b4a525acacad1ffffff5a6360878995 -ffffff8789954a525a5a5a6b5a636b5a636b525a6b525a635a5a6b5a636b5a5a6b525a6b5a636b -5a5a635a5a6b525a6b5a5a635a5a6b5a5a6b5a5a6b5a636b5a5a6b5a5a635a636b5a5a6b5a636b -63636b63636b5a5a6b63636b63636b63636b63636b63636b63636b63636b63636b63636b63636b -63636b63636b63637363636b63637363636b63636b63637363636b5a5a6b635a6b635a6b5a5a6b -5a526b5b5a735a5a6b5a526b5a5a6b635a6b5a5a6b635a6b63636b5a5a6b63636b63636b635a6b -5a5a6b5a5a6b5a5a6b5a5a6b5a526b5a526b52526b686b7d000000 -000000686b7d525a63949d9effffff949d9e2b423ab7bdbcffffff8789954a5263686b7d949d9e -8a9e9c5a6373525a6b626b7382858c8a9e9c878995626b734a525acacad1ffffff5a636b878995 -ffffff949d9e6363737679845a636b525a6b626b737679845a63735a5a6b5a636b5a636b5a636b -5a5a6b5a636b5a5a6b5a5a6b5a5a6b5a636b5a636b5a636b5a636b5a636b5a636b5a636b5a636b -63636b63636b63636b63636b63636b63636b63636b63636b63636b63636b63637363637363636b -63636b63636b63637363637363636b63636b63636b63636b636373635a6b635a6b63636b5a5a6b -5a5a6b5a5a6b5a5a6b5b5a735b5a73635a6b635a6b63636b63636b63636b63636b63637363636b -63636b635a6b5a5a6b5a5a6b52526b5a526b52526b686b7d000000 -000000686b7d4a5b62949d9effffff949d9e464a60cacad1ffffff82858c6b737aeae9ecf6f5f8 -ffffffdedfe25a6360949d9efffffffff7ffffffffdedfe24a525acacad1ffffff5a636b878995 -ffffff767984b1b2b4ffffff7476784a525a949d9effffff82858c4a525a5a636b525a6b5a636b -5a5a6b5a636b5a5a6b5a636b5a5a6b5a636b5a5a6b5a5a6b5a5a6b5a636b5a5a6b655a605a636b -63636b63636b63636b63636b63636b63636b63636b63636b63637363636b63636b636373636373 -63636b63637363636b63637363637363636b63636b6363736363736363735a636b5a5a6b5b5a73 -5b5a735a5a6b635a6b635a6b5a5a6b636373635a6b5a5a6b63637363637363637363636b636373 -5a5a6b5a5a6b5a5a6b5a526b5a5a6b52526b524a6b686b7d000000 -000000686b7d525a639ca0a3ffffffdedfe2d4d7d5ffffffdedfe24a5b62cacad1f6f5f84a525a -767984ffffff9ca0a3525a638789953e525aa4a8aeffffff6b737acacad1ffffff5a636b878995 -ffffff82858c767984ffffff9ca0a3464a48b7bdbcffffff626b73525a6b5a5a6b5a5a6b5a636b -5a636b5a5a6b5a636b5a5a6b5a5a6b5a5a6b5a5a6b5a5a635a5a6b5a636b5a5a6b5a5a6b5a636b -63636b63636b635a6b63636b5a5a6b5a5a6b63636b63636b635a6b5a636b635a6b63636b63636b -63636b63636b63636b63636b63636b63636b63636b63636b63636b635a6b5a5a6b5a5a6b5a5a6b -5b5a73635a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b635a6b63637363636b63636b5a5a6b5a5a6b -5a5a6b5a5a6b52526b5a5a6b5a526b52526b524a6b686b7d000000 -000000626b734a5b629ca0a3ffffffdedfe2ffffffeae9ec626b735a636bf6f5f8eae9ecb1b2b4 -b7bdbcffffffcacad14a5b6282858ca4a8aecacad1ffffff747678cacad1ffffff5a6360878995 -ffffff8a9e9c464a60ffffffcacad13e525aeae9ecd4d7d5525a635a636b5a636b5a636b5a636b -5a5a6b5a636b5a5a6b5a5a6b5a5a6b5a5a635a636b5a636b5a5a6b5a636b5a636b5a636b5a636b -63636b63636b63636b63636b63636b63636b63636b63636b63636b63636b63636b63636b63636b -63636b63636b63636b63636b63636b63636b635a6b63636b635a6b5a5a6b5a526b5a5a6b5a526b -5a5a6b5b5a735a5a6b5a5a6b5a5a6b5a5a6b5a5a6b635a6b63636b63636b5a5a6b635a6b635a6b -5a5a6b5a5a6b5a526b5a526b52526b525273524a6b686b7d000000 -000000626b734a5263949d9effffff82858c9ca0a3ffffff82858c5a636bfff7ffeae9ecd4d7d5 -dedfe2d4d7d5a4a8aeb1b2b4ffffffd4d7d5d4d7d5ffffff6b737acacad1ffffff5a636b878995 -ffffff949d9e393f41cacad1eae9ec63636bffffffa4a8ae4a52635a636b5a5a6b5a636b5a636b -5a636b5a5a6b5a5a6b5a5a6b5a5a635a5a6b5a5a6b5a5a6b5a5a635a5a6b5a5a6b5a5a635a5a6b -5a5a6b5a5a6b5a636b63636b63636b63636b5a5a6b635a6b635a6b63636b63636b635a6b63636b -63636b63636b63636b63636b63636b635a6b5a5a6b5a5a6b5a5a6b5a526b52526b52526b52526b -5a526b5a526b5a526b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b635a6b5a5a6b5a5a6b -5a5a6b5a5a6b52526b52526b52526b525273524a6b686b7d000000 -0000005a63734a52639ca0a3ffffff8a9e9c4a5263ffffffdedfe24a5263f6f5f8d4d7d53e525a -3e525a464a60525a63fff7ffcacad1393f41878995ffffff6b737acacad1f6f5f8525f5a878995 -ffffff8789953e525a878995ffffff949d9effffff7b8a8452525f5a5a6b5a636b5a5a6b5a5a6b -5a636b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a636b5a636b5a5a6b63636b5a636b5a636b -5a636b63636b63636b63636b5a5a6b63636b63636b5a5a6b63636b635a6b63636b63636b63636b -63637363636b635a6b63636b5b5a7363636b635a6b5a5a6b5a526b5a526b52526b52526b5a526b -5a526b5a526b5a5a6b5a5a6b5a526b5a5a6b5a5a6b5a5a6b5a5a6b635a6b5a5a6b5a5a6b635a6b -5a5a6b5a526b524a6b52526b524a6b525273524a6b686b7d000000 -00000065637f4a52639ca0a3ffffff9ca0a33e525aa4a8aeffffff878995a4a8aeffffffcacad1 -b1b2b4eae9ec82858cdedfe2eae9ec949d9ededfe2ffffff7b8a84b1b2b4ffffffb7bdbc949d9e -ffffffdedfe282858c52525feae9ecdedfe2eae9ec5a636b525a6b5a5a6b5a5a6b5a5a6b5a5a6b -5a5a6b5a5a6b5a636b5a5a6b5a5a6b5a5a6b5a5a635a5a6b5a5a6b5a636b5a5a6b5a5a6b5a636b -5a5a6b635a6b63636b63636b63636b63636b63636b5a5a6b635a6b63636b635a6b63636b636373 -63636b63636b636373635a6b63636b63636b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a526b5a526b -5a526b52526b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5b5a735a5a6b5a5a6b5a5a6b5a5a6b -5a527352526b52526b524a6b52526b52526b4a4a6b686b7d000000 -0000005a63734a526b767984cacad17679844a526b5a636bd4d7d5a4a8ae4a525aa4a8aeeae9ec -eae9ecd4d7d56b737a767984eae9eceae9eca4a8aed4d7d57679846b737aeae9eceae9ec767984 -cacad1ffffffa4a8ae3e525a9ca0a3ffffffb7bdbc52525f525a6b5a5a6b5a636b525a635a5a6b -5a5a6b5a5a635a5a6b5a636b5a5a635a5a6b5a636b5a5a6b5a5a6b5a5a6b5a5a635a636b5a5a6b -63636b63636b63636b63636b63636b63636b635a6b63636b635a6b63636b63636b63636b63636b -63636b63636b635a6b63636b63636b635a6b5a5a6b5a5a6b5a5a6b5a526b5a526b5a5a6b52526b -5252735252735a5a6b635a6b5a526b5a5a6b5a5a6b5a5a6b5b5a735a5a6b5a526b5a5a6b5a5a6b -52526b525273524a6b52526b524a6b525273524a6b65637f000000 -000000525a6b5b5a734a526b464a604a526b525a6b4a526b4a5263525a6b525a6b4a525a525a63 -525a63464a604a5a6b3e525a4a526352526b3e525a464a604a5263464a604a5263525a634a5263 -464a60525a6b5a5a6b52525f5a636bffffff949d9e4a525a5a5a6b5a5a6b5a5a63525a6b5a5a6b -5a636b5a5a635a636b5a5a6b5a5a6b5a636b5a5a6b5a63605a5a6b5a5a6b5a5a6b635a6b63636b -5a5a6363636b63636b63636b63636b63636b63636b635a6b63636b635a6b63636b63636b63636b -63636b635a6b63636b635a6b63636b5a5a6b5a5a6b5a5a6b5a5a6b5a526b5a5a6b52526b52526b -5252735a526b5a5a6b5a5a6b5a526b5a5a6b5a526b5a5a6b5a526b5a5a6b5a5a6b52527352526b -524a6b524a6b524a6b524a6b524a6b5252734a4a6b686b7d000000 -000000525b73525b73525a6b525b73525a6b525a6b525a6b5a6373525a6b525a6b5a636b525a6b -525a6b525a6b525a6b52526b525a6b4a526b52526b52525f4a526352526b52526b4a526352525f -5a636b464a60b7bdbceae9eceae9eceae9ec63636b525a6b525a6b5a5a6b5a5a6b5a5a6b5a5a6b -5a5a635a5a6b5a5a6b5a5a6b5a5a635a5a6b5a636b5a5a6b5a5a63635a6b5a5a6b63635f5a5a6b -655a605a5a6b63636b5a5a6b5a5a6b63636b5a5a6b63636b63636b63636b635a6b63636b635a6b -63636b635a6b63636b635a6b5a5a6b635a6b635a6b5a5a6b5a5a6b5a5a6b5a526b5a5a6b5a526b -5a526b52526b5a5a6b5a526b5a5a6b5a5a6b5a526b5a5a6b5a5a6b5a5a6b5a5a6b524a6b52526b -52526b524a6b4a4a6b524a6b524a6b524a6b4a4a6b686b7d000000 -000000525b73525a6b525a6b5a5a6b525a6b525a6b5a636b525a6b525a6b525a6b4a5a6b525a6b -525a63525a6b525a6b525a6b4a52634a52634a526b52526b4a52634a52634a526b52526b52526b -5a5a6b4a525a82858cb7bdbccacad174767852525f5a5a63525a6b525a6b5a5a635a5a6b5a5a63 -525a6b5a5a6b5a5a635a5a6b5a5a6b5a5a6b5a5a635a5a6b5a5a6b5a5a6b5a636b5a63735a6373 -5a6373635a6b635a6b63636b63636b635a6b63636b63636b63636b635a6b63636b63636b63636b -63636b63636b635a6b63636b635a6b5a636b635a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b -5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a526b5a5a6b52526b52526b52526b -524a6b524a6b494a73524a6b524a6b52526b4a4a6b686b7d000000 -000000525a6b5a636b52636b5a636b525a6b5a636b525a6b525a6b5a636b52636b646b635a5a63 -525a6b4a526b52526b525a6b4a526352525f4a52634a5263464a604a52635a52614a526352525f -525a6b52526b4a52634a525a3e525a52525f5a5a6b525a63525a63525a635a5a63525a635a5a6b -63635f5a5a6b5a5a635a5a6b5a5a635a5a6b5a636b5a636b655a605a636b5a5261794e457c4626 -794e45655a605a636b63636b63636b63636b5a63735a637363636b63636b635a6b63636b635a6b -5a5a6b635a6b63636b635a6b635a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b -5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b5a5a6b52526b524a6b525273524a6b -524a6b4a4a6b525273524a6b524a6b524a6b464a60686b7d000000 -0000005a5a6b5a63734a52639c7e3c62736c525b734953745a5a6b4a5a6b7274429b9218646b63 -4a526b4a526b494a734a52634a4a6b424a6b424a6b464a60494a733e525a7b7a314a526b4a4a6b -525a634a526b5c63509b9218807c45525b73525a6b525a6b52526b525a6b4a526b5a636b464a60 -727442635a6b5a5a6b5a5a6b5a5a6b5a5a6b655a60655a605a636b5a5a63a92b0cd31f00b11700 -b11700a6342163636b5a5a6b635a6b63636b794e45794e455a526163636b5a6373635a6b63636b -635a6b635a6b635a6b5a5a6b63636b635a6b5a5a6b5a5a6b635a6b5a5a6b5a5a6b5a5a6b5a5a6b -5a5a6b635a6b5a5a6b5a5a6b5a5a6b5a526b5a5a6b5a5a6b5a5a6b52526b52526b525273524a6b -524a6b525273524a6b524a6b4a4a6b52526b4a4a6b686b7d000000 -0000005a636b5a6373525f5a9b921862736c5f735a807c455a636b49537476612c646b63525a63 -646b635a6360807c455a63605b6b51807c45646b5a52525f807c454c524d7b7a31525a63807c45 -525a6b52526b52634a7b7a317b7a316b7366807c455a5a6b807c455a5a6b807c455a5a6b727442 -8c86225a5a6b5a5a6b635a6b5a5a6ba63421d31f00c630115a6373a63421c21e00b11700d31f00 -b224009f1a00655a6063636b5a6373794e45b11700b117009f1a0081250c794e455a5a6b63636b -63636b635a6b63636b635a6b63636b63636b635a6b5a5a6b5a5a6b5a5a6b635a6b635a6b5a5a6b -5a5a6b5a5a6b5a5a6b5a5a6b5a526b5a526b5a5a6b5a526b52526b52526b52526b524a6b524a6b -5252734a4a6b524a6b524a6b524a6b52526b4a4a6b686b7d000000 -0000005a636b5a63735c63508c8622646b5a7d7a249b9218626b6b4953747b7a319b92185a5a5a -9b921872694676612c7b7a317d7a249b92188c86225b633a9b92187274425d6b3f7269469b9218 -646b5a525273555a429b9218807c45535a4c8c86227b7a31807c455c63509b92187274428c8622 -8c86225b5a73655a605a6373794e45e22300d31f00c63011a63421ca2a009f1a00b22400d31f00 -b224009f1a00794e455a6373794e459f1a00b117009f1a009f1a007d15009f1a00794e4563636b -635a6b63636b635a6b5a5a6b635a6b63636b635a6b5a5a6b635a6b5a5a6b5a5a6b5a5a6b5a5a6b -635a6b5a5a6b5a5a6b5b5a735a5a6b5a526b5a526b525273524a6b52526b524a6b494a73524a6b -524a6b524a6b4a4a6b524a6b5252735252734a4a6b686b7d000000 -0000005a636b525b735d6b3f9b9218807c455d6b3f727442646b5a4953745d6b3f807c45424a6b -9b92185a636b8c8622807c455b633a76612c5d6b3f5b633a5b633a7b7a315d6b3f7d7a249b9218 -7274429c7e3c5d6b3f8c8622807c45646b5a9b9218575a33807c4576612c9b92187b7a315d6b3f -7b7a31635a6b5a5a6b5a5a5ae62f10e22300d31f00e22300d31f00a92b0cb11700d31f00c21e00 -9f1a00794e456363735a5a5a9f1a00b11700b117009f1a009f1a009f1a00b11700794e455b5a73 -635a6b635a6b635a6b63636b5a63735a6373636373635a6b5a5a6b635a6b635a6b5a5a6b635a6b -5a5a6b5a5a6b5a5a6b5a5a635a527352526b5a526b52526b52526b524a6b525273524a6b4a4a6b -525273494a73524a6b524a6b524a6b5252734a4a6b686b7d000000 -00000063636b525b737b7a317b7a317b7a3176612c7b7a316b73664953747b7a31778469535a4c -9b92187274428c862272744276612c7d7a247b7a315b633a7d7a247b7a3176612c7d7a24727442 -4a525a525f5a5b633a7b7a317d7a247b7a318c862263635f76612c7d7a24807c45555a427d7a24 -7b7a31635a6b5a636bc63011e223009f1a00e22300e22300a92b0c9f1a00d31f00ca2a009f1a00 -a634215a637363636b81250c4c1b0d4c1b0d4c1b0d9f1a009f1a00b11700a92b0c6b5a6b63636b -6c637363636b6363735a52617732237732235a52616363735a6373635a6b63636b5a5a6b63636b -63636b525a6b7b8a846273634a525a5b5a735a526b5a526b524a6b52526b525273524a6b524a6b -524a6b524a6b525273494a73524a6b52526b4a4a6b686b7d000000 -000000626b73525a6b726946525a635d6b3f5c63505b6b515a6b5c495374575a339b9218726946 -555a42575a338c8622726946555a425b633a555a425b633a9b92185a5a5a7b7a31575a339b9218 -63636b525b734c524d9b92187d7765575a339b92185d6b3f9c7e3c4b52429b92185a5a5a8c8622 -9c7e3c525b73a63421ef1800c21e00c21e00f422009f1a009f1a00d31f00d31f0081250c50451e -4a3e40525a6b7732234c1b0d060f10060f1025161881250c5b341b81250c4c524d393f412b2821 -393f414a525a5a526b773223b11700b117007d1500773223655a6063637363636b635a6b63636b -5a5a6b74767894a5926380665263525a526b5a5a6b52526b524a6b525273525273524a6b524a6b -525273524a6b4a4a6b524a6b4a526b5252734a4a6b686b7d000000 -0000005a636b5a63735a6373626b6b4953745a6373525b73626b6b6b7b6252526b42526b525a6b -4a526b4a526b424a6b4a526b4a4a6b424a6b494a73575a33726946424a6b464a604a526b424a6b -525a6b525a63525a6b52526b52526b52525f4953744a5263525a6b525a6b4a4a6b5a5a6352525f -495374794e45a63421ef1800e22300e22300a92b0c9f1a00d31f00d31f00a92b0c7c46262b2821 -1821184a3e404c1b0d0d16182a31292c39292a33202a31292129212129212b28212b2821212118 -1821101821102d2718b11700b1170081250c81250c7d15007d1500773223655a60636373635a6b -63636b94a5926b89665b6b515b5a735a526b5a526b524a6b52526b52526b524a6b4a4a6b524a6b -494a734a4a6b4a4a6b4a4a6b524a6b52526b4a4a6b686b7d000000 -0000005a636b525b737274429b92187d7765495374495374727442807c45495374525a6b4a526b -4a526b4a4a6b4a526b424a6b424a6b52525f494a734a525a4a4a6b4a4a6b4a526b535a4c807c45 -7b7a31646b5a494a73525a6b525a6b495374525a6b52526b52526b5252734a4a6b7b7a31626b6b -794e459d7a66a5523aef1800f42200ef18007c46267c4626d31f00c21e0050451e3940311a1610 -555a4250451e212118394031394031394031394031394031394031394031394a3a3940312e3734 -2c39292b28212121182d27184c1b0d7d1500a92b0cc21e009f1a00c21e00794e455a637363636b -525f5a5a6b5c5f735a5a636b5a52735a5a6b5a526b52526b52526b52526b524a6b525273524a6b -524a6b524a6b524a6b524a6b52526b4a4a6b464a60686b7d000000 -0000005a636b525b735d6b3f7b7a31807c456b7b62646b5a8c86227d77656b7b62646b5a646b5a -646b5a807c455a5a635c6350807c45494a73807c4552525f7274425a52614953744b52429b9218 -9b9218646b5a807c4563636b646b5a807c455a5a6363635f5a5a63807c4563635f5d6b3f726946 -84635f949d9ecd4825ef1800e22300f42200794e455b6b5176612c7c4626394031251618100810 -3940312b2821394031415240394a3a3940314152404b52424b5242535a4c4c524d535a4c4c524d -4b5242464a4841524039403121372e1826222b282177322381250c5b341b5b5a73636373626b6b -6b80755b6b515a636b5a5a6b5a5a6b5a526b5a5a6b52526b52526b524a6b525273524a6b52526b -4953744a4a6b524a6b52526b52526b4a4a6b464a60686b7d000000 -00000052636b4953747b7a31c0852f5f735a8c86227b7a317b7a31807c458c86227b7a318c8622 -807c458c86227b7a317d7a248c86227269467b7a317269468c8622807c45494a73464a489b9218 -9b92185c63507b7a317274427d7a249b92187269467b7a317269465b633a8c86225d6b3fa5523a -94a592bc7a65f42200ca2a00e22300c630115b6b517269465d6b3f555a42212118101010181818 -1008102e37344c524d4152404152404c524d535a4c535a4c52634a5c63505c63505c63505c6350 -5c63505c63505a63605c6350535a4c4152402e37341826221826220d16182129215a6360646b63 -5f735a5a6b5c5a5a6b5a5a6b525b7352526b52526b52526b52526b4a526b52526b524a6b4a4a6b -52526b4a4a6b4a4a6b4a526b4a526b4a526b424a6b686b7d000000 -0000005a636b525b737b7a319b92185b6b519b9218807c457274425d6b3f9b9218807c45727442 -5b633a9b92187b7a315b633a5b633a7d7a2452526b555a429b9218807c45494a734b52429b9218 -8c862263635f8c86227b7a315b633a5d6b3f72744276612c727442807c45807c457d7a249a9680 -9a9680f42200d31f00a92b0cc630117269465b6b515b633a5c635041311d100810181818212118 -212921535a4c555a424b5242535a4c52635252634a535a4c5b6b514b52424152404c524d495a4b -535a4c535a4c525f5a535a4c5263525c63505c6350485a424152402a3320394a3a495a4b627363 -6273635b5a735a637352525f7732235a5261525b7352526b52526b52526b5252734a4a6b524a6b -4a526b524a6b4a4a6b4a4a6b4a526b4a526b464a60686b7d000000 -0000005a636b525b735d6b3f7d7a247b7a317b7a315a636b7b7a315d6b3f8c8622525a637b7a31 -5b633a807c454a525a7b7a315d6b3f7d7a24646b5a575a337b7a314a4a6b494a73555a4276612c -5b633a7b7a317d7a247b7a3176612c7b7a317b7a317b7a317b7a317b7a318c86228c8622a5ae97 -e62f10e22300a92b0cb2240077322352634a7269467269463949291008102121211818182b2821 -495a4b5c6350535a4c535a4c52634a535a4c535a4c52634a495a4b182118181818394a3a394a3a -4152404152404b52424152404c524d4b5242535a4c5263525c63505263528789956380664f6b50 -2e37344a525a5a52619f1a00c21e0081250c5b341b5a5273525b7352526b52526b4a4a6b4a526b -525273524a6b4a4a6b4a526b4a4a6b4a4a6b464a6065637f000000 -0000005a6373525b735c63505d6b3f52634a7b7a31807c455c635052525f7b7a31807c455c6350 -4a525a8c86227274424b52425d6b3f474a369b9218464a488c8622646b5a494a734b524263635f -464a48555a428c862272744252634a555a424b52429b92187269468c86229c7e3c807c45cd4825 -f42200b22400b22400e22300c63011555a42726946474a36100810212118182118212118415240 -5c6350526352535a4c52634a526352535a4c52634a4152402c3929212118060f102b2821394031 -394a3a464a483940312e37344152404b52424b5242415240495a4b5a63605a6b5c6b8966535a4c -2a31291821182d271881250cb117007d15007d15007d15004c524d494a735252734a4a6b52526b -4a526b4a4a6b4a4a6b4a4a6b4a4a6b4a4a6b424a6b636373000000 -0000005a6373525b73525a6b525b73525b73646b5a5a636b525b73525b7342526b525a634a526b -52526b464a604a4a6b4a526b4a4a6b494a73424a6b4a4a6b424a6b4a4a6b464a604a4a6b4a4a6b -4a4a6b4a4a6b464a6049537452526b5252734a4a6b4a4a6b464a60a5523a8cb0a1bd734ff42200 -ca2a00b11700bd734fc63011f42200a64b235f735a474a36181818212118101010181818394a3a -5a6b5c5c635052634a526352535a4c52634a535a4c3940312c3929212118101010101010212921 -3940313940311010100808081010102c3929495a4b495a4b62736c525f5a5f735a495a4b5c6350 -5a6b5c4b52422a31292121182d27187d1500b117009f1a007d1500773223524a6b4a4a6b52526b -4a4a6b4a4a6b4a526b4a4a6b4a4a6b4a4a6b464a6065637f000000 -000000525b73525a6b525b73525b73525a638c8622626b6b525b73646b5a525f5a727442495374 -4a526b494a7352525f424a6b727442726946726946424a6b424a6b424a6b4a4a6b4a4a6b4a526b -4a4a6b52526b52526b52526b5b5a7352526b52526b525273794e459ca28fb7937bf42200d31f00 -9f1a00a5523aa1c1b7cb543bef1800f42200c63011485a422121211818182121212129214b5242 -5a6b5c5a6b5c5c63505c6350535a4c535a4c2c39292121183940311818181818180d1618101010 -2121212c39290811081010101010100718102a31295a6b5c8aa0946273635f735a181818101810 -4152405c63505263524b52422a31292b28214c1b0d25161881250cd31f00794e4549537452526b -4a4a6b4a4a6b4a526b4a4a6b4a4a6b4a526b464a60686b7d000000 -000000525a6b4953745a636b7784695b6b519b9218525b734a526b9b92185b6b518c86226b7366 -52525f807c454a526b424a6b7d7a248c86225d6b3f5a5a6363635f52525f52526b5a5a634a526b -4a4a6b524a6b524a6b4a526b52526b52526b495374794e459d7a66a5ae97e62f10e22300b22400 -c63011b1b2b4a1c1b7b7937bf42200e22300f422004c1b0d0d16182121182121214152405c6350 -5b6b51646b635b6b515a6b5c485a424b524227272c1018101818181826221818181818181a1610 -1010101010100808081010101010100008052e37345a6360627363587b4e4b5242071810000000 -0808082a3129535a4c5c63505c63504152402129210d16180d161841311d464a6052527352526b -4a526b4a4a6b4a4a6b4a4a6b4a4a6b4a4a6b464a6065637f000000 -0000005a63734953747b7a318c86227274429c7e3c5a6373464a608c86227269468c86227b7a31 -7274429b921863635f424a6b5b633a9b92187274427b7a318c86225b633a8c86227b7a315a5a63 -4a4a6b52526b524a6b52526b52526b495374655a609d7a669cada5cd4825ef1800b22400b22400 -b09f93a1c1b7b1b2b4b6c8c1cd4825f42200f4220081250c0d16182b28212d27182b2821526352 -646b5a627363646b635f735a535a4c485a422c3929212121181818181818181818181818101010 -1018101010101010101010101010101821185a63606b7b6b587b4e4c524d2e3734101010001008 -0808082e37344c524d4b5242535a4c5c6350535a4c3940312129180d1618181818393f41524a6b -52526b4a4a6b4a4a6b4a4a6b4a4a6b4a4a6b464a6065637f000000 -0000005a63734a526b7274425d6b3f7b7a31587b4e52527342526b7274424a525a5d6b3f5b633a -8c86229b921863635f463d7b575a339b92187b7a318c86228c8622575a339b92187d7a24494a73 -4a4a6b4a4a6b4a526b52526b4a526b524a6ba5523a94b3a5cb543bf42200c63011b11700bc7a65 -a1c1b7a5b4a5b6c8c1bc7a65f42200e22300c21e002121182121212b28212b28212b28214b5242 -5f735a6273636273636b736652634a212921212118182118181818181818181818181818101010 -1818181010101010101010101018104a525a62736c5f735a2f4231394a3a212121081108101010 -0808082129215263524b5242415240495a4b5263525c63504b52422c392918181827272c525b73 -4a4a6b4a4a6b4a4a6b4a4a6b494a734a4a6b464a60686b7d000000 -0000005a63734a526b7b7a317b7a317b7a31807c45495374464a607b7a315c63507b7a315b633a -7d7a24646b5a4a4a6b424a6b5b633a7d7a248c86227b7a31524a6b575a339b92187b7a31494a73 -4a4a6b4a4a6b52526b4a4a6b495374a5523a8a9e9cbc7a65f42200c63011b11700bc633ca1c1b7 -a5b4a5b6c8c1b09f93f42200d31f009f1a002d27180d16182a31292d27182b28212b2821415240 -6273636b73666b73666273635a6b5c212118181818181818181818181818181818101010101010 -0d1618181818181818001008525f5a9ca0a35f735a485a42080808101010101010101010081108 -101010080808394a3a5a6b5c5263524b5242415240535a4c526352535a4c394a3a21291827272c -3e525a494a734a4a6b424a6b4a3e40524a6b424a6b686b7d000000 -000000525a6b525b734b52429c7e3c525f5a5c6350495374494a735d6b3f807c45555a42535a4c -4b52429b9218525273424a6b535a4c555a42535a4c76612c807c45464a48575a335c6350525273 -52526b4a4a6b524a6b495374794e459d7a669ca28ff42200e22300b11700a64b23a5b4a5b1b2b4 -a1c1b7b1b4a2e62f10d31f00b224005b341b39492939403125161825161841311d2b2821394a3a -5f735a6b73666b73666b73665f735a2e37340d1618181818181818101810181818181818101810 -1010101018100808084152409cada56b896652634a071810101010080808071810101010101010 -1010100718101010104b5242646b5a6b7b6b525f5a415240555a4252635252634a4b52422c3929 -1821182e37344a4a6b4a3e40b117009f1a004a3e4065637f000000 -000000525b73525b734953745a6b5c495374494a734a526b52526b424a6b4a4a6b4a4a6b494a73 -524a6b424a6b4a4a6b4a4a6b4a4a6b424a6b494a73464a60424a6b4a4a6b4a4a6b494a734a4a6b -4a4a6b524a6b495374794e4584635f9cad9ce62f10e22300b22400c63011a5ae97b1b2b4a1c1b7 -b6c8c1cd4825e22300c21e007732234e52345b633a587b4e4f6b502a33202b2821182118182622 -646b5a6b73666b7b6b6b73665f735a415240181818212118101810181818101810101810181818 -1818181010102129215a6360788c7b5f735a182118080808101010071810100810101010101010 -0718101010100808081821184152405a6b5c8aa094646b63415240495a4b525f5a52634a535a4c -41524021291818262281250cb2240081250c7d1500794e45000000 -000000525a6b494a73807c459b92185a63605a5a63494a73424a6b494a73494a73424a6b424a6b -5b633a63635f463d7b424a6b424a6b463d7b464a48646b5a463d7b4a4a6b4a4a6b4a4a6b525273 -4a4a6b4953745a5261a5523a8cb0a1cb543bf42200b22400b11700b7937ba1c1b7a5b4a5b6c8c1 -cb543be62f10c21e0081250c4e52344e5234516b3d76612ca64b232c39292b2821181818182110 -646b5a62736c6b7b6b6b73666273634b5242182118212118182622181818181818101810101010 -1818181010106b737a7384765f735a21372e080808101010080808080808071810101010101010 -0808080718100718100808082a3129394a3a535a4c6273630d16182a332041524048634d526352 -535a4c4b52422e37341821184c1b0d531100531100a5523a000000 -0000005a6373424a6b8c86224953745d6b3f9b92185b5a73807c45494a73807c4563635f52525f -9b921863635f807c454a526b646b5a5a5a638c8622726946494a734a4a6b4a4a6b5252734a4a6b -4a4a6b5252737c4626879488bc7a65f42200c630119f1a00bd734fa1c1b7a5b4a5b6c8c1b7937b -ef1800ca2a00a92b0c474c294e52344e52345d6b3fcd4825f422005b341b0d1618081108415240 -6b73666b73666b7b6b6b73666273635c6350212118181818181818182118181818181818181818 -080808525f5a7384766b8966394031081108101010101010081108080808080808101010101010 -081108100810080808060f101010104152404152402c3929101010081108101810394031485a42 -5a6b5c526352495a4b41524021372e1818180010084c524d000000 -000000525a6b494a73575a339c7e3c535a4c9c7e3c3e525a8c86225c63508c86227b7a31727442 -9b921852525f7d7a245d6b3f8c86227274429b9218646b5a494a734a4a6b4a4a6b524a6b524a6b -495374a5523a7d8476b7937bef1800d31f009f1a00a5523a9bb5ada5b4a5b6c8c1b09f93e22300 -d31f00a92b0c5b341b4e52344e5234474c29b09f93b7937bf42200f42200a92b0c4a3e405a6b5c -5f735a6b736662736c6b7b6b6b73665a6b5c2a3320101010181818181818212118182622101010 -393f4162736c778469485a42071810101010101010101010101010101010080808071810100810 -0718100808081010100808080000001818182f42310808080808081010100808082a312962736c -4152405b6b51525f5a52634a495a4b4152401818184c524d000000 -0000004a526b5252733f33657d7a247274425a636052525f9b92185c63505b633a76612c5d6b3f -5d6b3f63635f9b9218726946555a427274425b633a646b5a494a734a4a6b4a4a6b524a6b495374 -794e4584635f94a592e62f10e22300a92b0cc63011a5b4a5a5b4a5a1c1b7b7c7b2e62f10d31f00 -b224007732233e52314e52343e52319d7a66b6c8c1b6c8c1cb543bf42200f42200cd48254f6b50 -6273634c524d4b52426b80756b7b6b6273634152401818181818181818181818181818182e3734 -646b636b7b6b4f6b50181818101010101010101010101010101010071810101010060f10071810 -10081010101008080808080827272c2e3734394a3a2c39292121211018100808080010086b8075 -6b7b6b495a4b5a6b5c5b6b51526352495a4b415240646b63000000 -0000005252734a526b5a63607b7a317b7a317274425d6b3f8c862272694676612c5d6b3f7b7a31 -7b7a317b7a318c86225d6b3f7269465b633a8c8622646b5a494a73494a734a4a6b495374655a60 -9d7a66949d9ecd4825f42200b22400b22400b09f939bb5ada5b4a5a1c1b7cb543be22300ca2a00 -81250c3e52314e52343e5231726946b7bdbcb6c8c1b6c8c1b1b2b4e62f10f42200f42200a5523a -48634d4a3e403940315c63506b807562736c646b5a2a31291818181818181018102121215a6b5c -6273635f735a2129210718101a1610101810101010101010101010101010101010101010071810 -1010100811080d16185c63507a8c7284947b8c947b8c947b7d84766b73665c63502a31292b2821 -5a6b5c5a6b5c5263526273635a6b5c526352394a3a6b8075000000 -000000525273424a6b76612c9c7e3c3e525a7b7a315b633a9c7e3c535a4c555a42535a4c575a33 -9b92184b52429b92185c63505a5a5a464a489b9218646b5a494a73524a6b494a735a526ba5523a -8a9e9cbd734ff42200c63011b224009d7a667b8a84a5b4a5b6c8c1bc7a65f42200ca2a00a92b0c -474c294e52343e52315b633ab1b2b4b6c8c1b7c7b2b7c7b2b6c8c1b09f93f42200f42200a63421 -495a4b394a3a464a48394a3a62736c6b7b6b6b7b6b4b52421821181821180d16185a636062736c -6b89662f4231181818181818101010101010101010101010101010101010101010101010101010 -1010100718106b736684947b788c7b858c757784697d84765b6b515b6b517784697a8c726b7b6b -5c63504b5242495a4b5a6b5c6b7b6b2e37340000005a5a5a000000 -000000494a73495374424a6b494a73494a73494a73494a73424a6b494a73494a73494a73494a73 -463d7b424a6b494a73424a6b494a734a4a6b424a6b494a734a4a6b4a4a6b495374a5523a879488 -bc7a65f42200ca2a009f1a00bc633c7679849cad9ca1c1b7b7937bf42200ca2a00a92b0c50451e -474a363e5231474c29b09f93b6c8c1b7c7b2b6c8c1b6c8c1b6c8c1b7937bf42200cd4825464a48 -2c3929464a48464a48394a3a4c524d7384766b7b6b5f735a2e37341821184c524d7476786b8966 -415240101010181818212118181818101010101010101810101010101010101010101810181818 -0718104b52428c947b858c758c947b8c947b6b7b62525f5a535a4c535a4c535a4c5b6b515b6b51 -7784697784695b6b51495a4b394a3a0718100000004a525a000000 -0000004953744953744953744a526b494a73494a73495374495374494a734a526b4a526b4a526b -52526b52526b4a526b4a4a6b495374494a734953744a4a6b4a4a6b495374794e457d7765949a91 -e22300e22300a92b0ccd48257b8a848aa094a1c1b7b1b4a2e62f10d31f00b224005b341b474a36 -4e5234474c299d7a66b6c8c1b1b2b4b6c8c1b7c7b2b6c8c1b1b4a2f42200d31f004e5234394a3a -1008102c3929474a362c39292e37346b7b6b6b7b6b6b7b6b485a422b423a949d9e6b7b624f6b50 -1821181818181818181818181018101018101010101010101018101818180d1618101810071810 -3940316b89668c9c7b8794888c947b7d8476646b5a5a636052634a5a6b5c6b7b62535a4c5b6b51 -5c63505263526b7b626b8966555a421818180000004c524d000000 -0000004953744a4a6b494a73494a73525273494a734a4a6b4a4a6b424a6b494a7349537442526b -4953744a526b4a4a6b4a4a6b494a734a526b4a526b4a4a6b494a73655a60a5523a8a9e9ce62f10 -e22300b22400c630117d77657b8a84a5b4a5b6c8c1cd4825e22300b224007732234e52344e5234 -39492984635fb7c7b2a1c1b7b6c8c1b6c8c1b6c8c1b1b2b4e62f10f422007c4626394929476336 -5c63502b28212c39292121184c524d6b7b6b6b7b6b62736c6b7b6b8789955a6b5c5f735a2a3320 -18262221212118181810181010101010101010101010101010101010101010181010101027272c -6b7b626b7b6b9ca28f9ca28f84947b94a59284947b646b5a646b5a849473646b5a5f735a6b7366 -646b5a495a4b5b6b517784695f735a6b73662c39295a5a5a000000 -000000495374494a733ba1683ba1683ba1683ba1683ba1683ba1686b7b6276612c7c4626a5523a -655a60524a6b4a526b4953744a4a6b49537452526b4953745a5261a5523a8a9e9ccb543bf42200 -b22400b2240084635f6b80759cada5b6c8c1bd734fef1800c21e0081250c474c294e5234474a36 -5b633ab1b4a2b6c8c1b7937be62f10b1b4a2b6c8c1cb543bf422007c4626394929474c293e5231 -516b3d2a33201818184152406b7b6b62736c6b7b6b6b7b6b7b8a847384766b7b622c3929101010 -1818181821182121211818181818180d16181a16101018100d16181818181010101821185f735a -7d847677846984947ba5b4a5889e8a8c9c7b84947b6b7b6b778469646b5a6b7b6b788c7b858c75 -7784697784695f735a6b7b626b73666b7b626b7b62879488000000 -000000495374494a733ba1683ba1683ba1683ba1688cb0a1526363738476b09f93cb543b794e45 -5a2586524a6b52526b525273494a73524a6b4a526b525273a5523a7b8a84bc7a65ef1800c63011 -9f1a00a5523a6b8075949d9ea1c1b7b7937bef1800ca2a009f1a00474c294e52343e52314e5234 -b09f93b6c8c1b1b4a2cb543be62f10e62f10bd734ff42200a92b0c394929474c293949293e5231 -212918181818394a3a5f735a646b636b73666b7b6b6b8075646b636b7b6252634a181818181818 -1018101818181818181818181821181818181010101818181818181018101010102a3320738476 -7d84767a8c727a8c72a5b4a5a5ae978c9c7b7d84765b6b517d84766b73668c947b8c947b849473 -858c757a8c727d84766b7b6b6b73666b7b626b7b62949a91000000 -0000004953745252733ba1683ba1683ba1687a9487686b7d393f415a52618789957476785a2586 -4b188a5a5273525273495374494a73525273495374794e457d77659a9680ef1800e223009f1a00 -cb543b8aa0948aa094a1c1b7b09f93e62f10d31f00a92b0c5b341b4e52344e5234474c299a9680 -b6c8c1a1c1b7cb543bb1b4a2b1b2b4e62f10f42200e62f104e5234474c29474c293e52312a3320 -1818183940316273635a6b5c646b5a5f735a646b635a63606b89665f735a62736c4152400d1618 -2121210d16181010101010101818181821181818181818181818181818181010102e37347a8c72 -858c7584947b788c7b8c9c7bb7c7b29ca28f8c947b646b635f735a6b7b6b84947b8c947b84947b -858c757a8c727a8c727a8c727784696b7b62646b5a879488000000 -000000495374494a733ba1683ba168626b735a63737679844c524d6b6b726b6b72393f41767984 -733f73524a6b5252734a4a6b525273495374794e459d7a6694a592e62f10e22300a92b0ca92b0c -8794889bb5ada5b4a5b1b2b4cd4825e22300b224007732233e52314e52343e52319d7a66b6c8c1 -8a9e9ca5523abc7a65a1c1b7a1c1b7b7937bd31f00f42200c63011394a203e52312a3320101810 -2a31295a6b5c5b6b515a6b5c5c63506b80756b737a6273635f735a6b7b6b6b7b6b6273632a3129 -1818182121181818181818181018101010100d1618181818182118212118181818394a3a858c75 -7a8c728494738c947b858c75a5ae97b7c7b2a5ae978c947b646b5a6b7b627a8c728c9c7b84947b -84947b858c75858c757a8c727a8c727a8c726b7b62949a91000000 -000000495374494a733ba1683ba1683f33654c524d5a5a6327272c393f41393f41393f41464a60 -cb543b733f734953745252734953745a526ba5523a8a9e9ccd4825ef1800b22400b117009a9680 -8794889cada5a1c1b7cb543be22300c21e0081250c4e52344e52343e5231794e45b1b4a294b3a5 -84635fbd734fa1c1b76b8075a5b4a5a1c1b7bc7a65d31f00f42200a634212f4231101010182118 -5c63505a6b5c5a6b5c5a6b5c6273638794889cad9c5f735a5263524152406b7b6b6b7b6b5c6350 -2121211821181821181818181818181818181818181010101818181821182121211818185b6b51 -889e8a84947b8c947b84947b8c947bb1b4a2b7c7b29cad946b7366646b5a77846984947b8c947b -788c7b858c757a8c727a8c727a8c727a8c726b8966949a91000000 -0000005252734953746b89666b7b62393f41464a4818262241311d2624102e37344a3e403e525a -bd734f794e45495374495374525273a5523a8a9e9cbd734fef1800ca2a00b11700bd734f8cb0a1 -9cad9ca1c1b7bc7a65f42200ca2a00a92b0c474c294e5234415a31575a33b1b4a2a1c1b77d7765 -cb543b9ca0a36b736663635f738476a5b4a5a1c1b7bd734fe22300a92b0c101810101010415240 -646b5a5b6b515a6b5c5263527384769bb5ad587b4e5b6b51394a3a3940314152406b807562736c -4b52421818181818181821181821181818181818181821181818181818180d1618182118394031 -8c9c7b8794888c9c7b8794888c947b889e8ab7c7b2b1b4a29cad946b73665a6b5c7a8c72889e8a -8c947b84947b858c75858c757a8c727a8c72778469949a91000000 -0000005252734953749c7e3c84635f393f41464a48393f412b282127272c393f413f3365464a48 -bc7a656b5a6b494a73495374794e457d77659a9680ef1800ca2a009f1a00a5523a6b8075889e8a -a1c1b7b09f93e22300ca2a009f1a0050451e4e5234476336474c299a9680a1c1b77b8a84cb543b -b09f938aa094747678949d9e9bb5ada5b4a59dbdad9d7a66e2230077322310251b2c39295a6b5c -5b6b515a6b5c5b6b516273635a6b5c6b7b625f735a415240394a3a394a3a3940314c524d6b7b62 -627363394a3a0808081818181818181821181818182121212121182121212129211821184b5242 -8c9c7b8794888c947b8c947b8c947b84947b9cad94b7c7b2b1b4a26b73667d8476778469858c75 -889e8a8c947b84947b849473858c757a8c727a8c72949a91000000 -0000005a5273495374a64b23bc7a653e525a393f4182858c6b6b725263525c63502f4231526352 -9d7a664b5242495374794e4584635f949a91e62f10e22300a92b0cc630116b80757384769cada5 -b1b4a2e62f10ca2a00b224005b341b474a364e5234474c299d7a66b6c8c17b8a84a5523abc7a65 -7a94877476787384769cada5a5b4a59dbdad9a9680d31f00a634216b7b625f735a6b7b625f735a -5a6b5c5b6b5162736c5a63606b7b6b587b4e415240394a3a394a3a394a3a2c39292129212a3129 -4b52425c63502a31290010080811081010101010101818181818181821181826222b28212c3929 -4b52428c947b8794888c947b8c947b8c947b84947ba5ae97b6c8c1b1b4a27d84766b7366646b5a -84947b8c9c7b84947b84947b7a8c72858c757a8c72949a91000000 -0000003e525a424a6b733f73733f737679846b6b72a4a8ae6b7b622b50203ba168587b4e3ba168 -6b89666b89662b5020516b3d94ad9ccd4825ef1800b22400a92b0c84635f7a94879cada5a1c1b7 -cb543bd31f00b2240081250c3e52314e52343e5231726946b6c8c18cb0a1794e45bd734f9bb5ad -7b8a84738476878995a5b4a59bb5ad94a592c63011e62f105d6b3f5d6b3f587b4e587b4e5f735a -5f735a587b4e7d8476738476587b4e5c63504152401818181018102c39292a31292a3320182118 -3940314152403940311818180811080718100808080010080811081010100d1618182118212921 -1829185c63509ca28f889e8a8c947b889e8a8c947b8c9c7bb7c7b2b6c8c1a5ae978c947b858c75 -7a8c7284947b8c9c7b84947b849473788c7b7a8c7294a592000000 -000000214231214231463d7b4b188a5a2586a4a8aeb7bdbc4f6b5b2b50203ba1688494736b8966 -94af9494af942b50203ba168cb543bf42200b22400b2240084635f7a948794a592a1c1b7bd734f -e22300c21e0081250c474c294e52343e52315b633ab1b4a28cb0a17d7765cb543b949a91738476 -7b8a847a94879cb5a59bb5ad94ad9ca64b23e2230076612c516b3d5d6b3f5d6b3f5d6b3f5d6b3f -5d6b3f5d6b3f476336485a42395229516b3d5f735a5b6b512f4231212918212918182118212918 -627363949d9e6273634152401821181818180d1618101010101010071810081108071810101810 -2129212a33207784698c9c7b8c9c7b8794888794888494738c947bb7c7b2d4d7d59cad9494a592 -8c9c7b77846984947b8c9c7b84947b84947b7a8c7294a592000000 -0000002b423a214231463d7b5a2586733f73e62f10cb543b9d7a662b50203ba1683ba1683ba168 -3ba1686b89663ba1687d7a24f42200ca2a009f1a00bc633c7b8a84879488a1c1b7b7937be22300 -ca2a009f1a00474c293e52313e52314e5234b09f93a1c1b7738476cd4825b1b2b47a9487738476 -6b8075a5b4a5a5b4a59dbdada5523aef18007c46264f6b505d6b3f516b3d5d6b3f5d6b3f516b3d -4f6b50476336394929394929516b3d516b3d516b3d516b3d5d6b3f213218101810182118535a4c -5f735a7b8a84b1b2b47384765263522b2821212118212121212121212121182118182118181818 -2129182c3929788c7b9ca28f8c947b8c947b84947384947b8c947b8c9c7bd4d7d5b7c7b29cad94 -8c9c7b788c7b5f735a84947b8c947b84947b858c75949a91000000 -0000002b423a2f4231393f414a3e407732234a3e404a3e40415a292b502094af9494af948c9c7b -94af9494af943ba168a92b0ce223009f1a00a634218aa094a5b4a5a1c1b7b09f93e62f10ca2a00 -a92b0c50451e3949293e5231394a209d7a66b6c8c17a9487bc633cbc7a659bb5adb1b4a27b8a84 -94a592a5b4a59dbdad9d7a66d31f00a64b23516b3d5b633a516b3d5d6b3f5d6b3f516b3d587b4e -4763363e52313949294763365d6b3f5d6b3f476336474c292129181018101821184b52425f735a -646b5a5f735a889e8ab1b2b47784695c635018211818181818211821212127272c2a33202a3320 -27272c2c3929535a4c646b5a8c947b84947b84947b8c947b8c9c7b8c9c7b9cad94d4d7d5cacad1 -9cad946b7b625c63507784697a8c728c9c7b858c75949a91000000 -0000002b423a2142392142392142311742362142311742361a42241a42241a42241a42242b5020 -5d6b3f587b4ea64b23ca2a00a92b0ca92b0c9ca28f7b8a849bb5ad9bb5adcd4825d31f00b22400 -5b341b3949293e523139492984635fb7c7b28cb0a19d7a66bc633ca1c1b77384769bb5ad9bb5ad -a5b4a59bb5ad949a91ca2a00c630115b633a516b3d5d6b3f5d6b3f516b3d516b3d5d6b3f476336 -395229394929415a31516b3d516b3d52634a3e52312942180718101018104152405b6b51526352 -5a6b5c5f735a646b5a8aa094b1b2b46b7b6b495a4b101810101010182118182622182118212121 -2129212a312921292121292152635294a5928c9c7b949a919ca28f9ca28f8c9c7b9ca28fd4d7d5 -d4d7d59ca28f8c947b525f5a646b5a7d847684947b949a91000000 -0000002142392142392b423a2142392b423a2142312b423a214239214231174236314222a5523a -8aa094cb543bf42200b22400b2240084635f94ad9c9cad9c9dbdadcb543bd31f00b2240081250c -394929474c293949295b633ab1b2b49dbdad7d7765cb543ba1c1b79bb5ad9cada57384769cada5 -9cb5a594ad9ca63421e223005b633a5d6b3f5d6b3f516b3d516b3d516b3d5d6b3f4763363e5231 -394a3a395229415a31415a313e52313e52313142220811081018103940315b6b5152635252634a -5c63505a6b5c5f735a5f735a889e8a8cb0a16b7b6b4c524d071810080808080808101010101010 -1018101818182b28212a31292a3320646b5a9ca28f889e8a9ca28f889e8a8c9c7b8c9c7b9ca28f -b7c7b2d4d7d59cad947784697d84766b7b626b8966949a91000000 -0000002142392142392142312142392142312142392142312142312142312142317c4626879488 -bd734fef1800b224009f1a00bc633c52636b94a592a1c1b7bc7a65d31f00c21e0081250c394929 -394929394929474c29b09f939dbdad6b7b6bcd4825b1b4a287948862736ca5b4a59cad9c949d9e -9dbdada5523ae223007c4626516b3d5b633a516b3d5d6b3f516b3d5d6b3f516b3d415a31394929 -395229415a31415a313e52313e5231394a201018100811082a31295c635052634a52634a52634a -52635252634a5a6b5c646b5a646b5a788c7b8794886b7b6b4c524d081108080808080808080808 -0808080811081010101821182a33202a33208c947b889e8a8c9c7b8c9c7b9ca28f9ca28f9ca28f -9cad94b7c7b2d4d7d5a5ae97858c755c6350646b5a949a91000000 -0000002b423a2f42312142392142312142392142312142312142311742367c46267d84769d7a66 -e22300ca2a009f1a00a5523a788c7b7a9487a1c1b7b7937bd31f00ca2a009f1a00474c29394929 -394929394a209a9680a1c1b7879488a64b23b7937b94b3a563635f62736c94ad9ca5b4a59dbdad -9d7a66d31f00a64b2348634d5b633a516b3d516b3d516b3d516b3d516b3d476336395229394929 -415a31415a31415a313952293e52311821180808082129215c635052634a52634a5c635048634d -7c4626e62f107269464f6b5b6273634c524d394a3a7384766b7b6b535a4c181818080808080808 -0010080811080d16182129181018105c63509ca28f8c9c7b9ca28f94a5929ca28f9cad94a5ae97 -9cad949cad94b7c7b2d4d7d5b1b4a28c947b7a8c72738476000000 -0000002b423a2142312b423a2142392142392142312e37341742364a3e409d7a66889e8ae62f10 -e223009f1a00c630117476787b8a849dbdada5ae97c63011d31f009f1a005b341b314222394929 -3142227d7765b6c8c17a9487a5523abc7a6594b3a562736c646b63889e8a9cada59cb5a58c947b -d31f00c63011476336516b3d516b3d5d6b3f516b3d516b3d5d6b3f485a423e5231394929415a31 -415a313e52313e52313e523121321808080818211852634a52634a52634a52634a48634d794e45 -cb543bef1800d31f00a63421794e452a31292121182c39296b7b6b6b7b6b525f5a101810080808 -0811081010102121182121182a33204b52424b5242394a3a778469a5ae97a5ae97a5ae97a5ae97 -9cad949ca28f9cad94b7c7b2d4d7d5b7c7b28c947b949a91000000 -000000214239214239214239214231214231214231174236394031a5523a8cb0a1cd4825f42200 -a92b0ca92b0c9d7a666b80759cb5a5a5b4a5cd4825d31f00b11700773223314222394a20314222 -794e45a5b4a56b8075726946bc633c9bb5ad6b80756b7b6b949d9ea5b4a59cada594a592c63011 -d31f005b633a516b3d5b633a516b3d516b3d52634a516b3d4763363952293949293e5231415a31 -415a313e5231415a293142220808081018104b524252634a555a42535a4c52634a555a42cb543b -b6c8c1bc7a65d31f00f42200e223004c1b0d1818182516182b28216273636b7b6b5c6350212921 -1821182129211821182121182129212129212c39292c39292942216b7b6ba5ae979cad94a5ae97 -9cad94a5ae979cad949cad94b1b4a2b7c7b2b1b4a2a5b4a5000000 -0000002142312b423a2142312142312142312142392c3929a5523a8cb0a1bc633cef1800b22400 -9f1a009d7a666b737a767984878995733f73c63011a92b0c81250c3142223949292b5020575a33 -b09f937a9487949d9ea63421b1b4a287948862736c889e8a9cada59cad9c8cb0a1a5523ad31f00 -7c4626516b3d516b3d516b3d516b3d516b3d516b3d4763363e5231394929395229415a31415a31 -3952293e5231394929081108081108415240535a4c485a42555a42535a4c485a42a64b23b1b4a2 -9bb5ada1c1b7bc7a65c21e00e22300e62f105311001a16101a16102b28215a6b5c6b7b6b5c6350 -2a33201826222b28212129212121182129212a33202c39292e37342a33206b7b6ba5ae979cad94 -a5ae979cad949cad94a5ae97858c75849473a5b4a5b7c7b2000000 -0000002b423a2142392142392f42312142311742365b341b949a919d7a66f42200ca2a009f1a00 -a5523a686b7d4b188a4b188a4b188a4b188a4b188a4b188a3f3365393f412b5020474c299a9680 -a1c1b77b8a84bc633cb7937b8cb0a1525f5a646b639cada59cad9c94b3a59d7a66d31f00a64b23 -4763365b633a516b3d516b3d516b3d516b3d516b3d3e52313e5231395229415a313e52313e5231 -3e52313949291021100000002e373452634a555a42555a42535a4c48634da64b23b7937ba1c1b7 -a5b4a594a5929dbdadbc7a65d31f00f42200c630111010102121181008102e37346380666b7b6b -5a6b5c27272c0d16182129181826221821181818182129182129211821185b6b519cad949cad94 -9cad94a5ae97a5ae978c9c7b7a8c727a8c72849473a5b4a5000000 -0000002f42312142312142311742362142392e37346b8075949a91e22300e223009f1a00a63421 -7d84763f33654b188a4b188a4b188a4b188a1906351906351906351906353f336584635f9cada5 -94b3a5bc7a65bd734f8cb0a16b807562736c7a9487a5b4a58cb0a1858c75d31f00c63011476336 -52634a5d6b3f516b3d516b3d516b3d516b3d3e52314763363e52313e52313e52313e5231395229 -395229182918000805101810485a42555a42495a4b535a4c48634d7c4626bc7a65b6c8c1a5b4a5 -9cada5738476879488a1c1b7b7937bd31f00d31f004c1b0d101010251618394031627363627363 -6b7b6b5a6b5c2a3129071810101010181818101810181818101810394031778469889e8a8c947b -9cad94a5b4a5889e8a7a8c72858c757a8c727a8c72949a91000000 -0000006273634f6b5b495a4b4152402b423a4f6b5b949a91cd4825ef1800a92b0ca92b0c7d7765 -494a735a25865a2586767984733f733f33651906351906351906351906351906354b188a767984 -84635fbd734f7b8a8462736c525f5a7b8a84a5b4a594ad9c949a91c63011ca2a00555a42516b3d -516b3d516b3d516b3d516b3d516b3d415a313e52313e52313952293e52313e5231395229395229 -2a33200008050811082c392952634a495a4b555a4248634d575a33cb543bb6c8c1a5b4a57a9487 -646b637476785a6b5ca5b4a59dbdadb7937bef180081250c060f102b2821294221535a4c627363 -6273636273635f735a2a31290811081010101818181010102c39295f735a778469858c752a3320 -41524084947b84947b858c757a8c72858c75858c75949d9e000000 -0000007a94877a9487788c7b7384766b7b6b6b80756b7b62a5523a7c4626a92b0c84635f5a636b -5a2586463d7b4f6b5b6b7b6b7d7765646b63393f41190635100810190635190635190635190635 -cb543ba5b4a58aa094646b6394a5929cad9c9cad9c8cb0a1a64b23d31f0076612c476336476336 -516b3d516b3d516b3d52634a485a423952293e52313e52313e52313952293952293e5231314222 -081108080808182110415240485a42555a42495a4b4b5242cb543bb1b2b49cb5a56b8075646b63 -6b8075879488788c7b949d9ea1c1b7cd482581250c0010082121182a33202f42315263525b6b51 -5f735a5f735a627363627363394a3a1018101010102129185b6b515f735a5f735a3940312a3129 -2129212132185f735a7a8c727a8c72858c7584947b9cad9c000000 -000000a1c1b7b1b2b49dbdad9cad9c949d9e7a94877b8a846b80756b80756b89666b7b6b5a6b5c -5b5a73495a4b5b6b516273636b73666b73666b7b6b415240190635190635190635190635a63421 -9a96806b8075a5b4a58aa094949d9e9cad9c8cb0a19c7e3cd31f007c4626516b3d516b3d516b3d -4763364763364763364763363949293e5231395229395229395229395229394929394929071810 -001008101810213121485a42485a42485a42485a42a63421b1b4a2a1c1b77384768aa0949cada5 -5a636094a5929bb5ad9dbdadcb543bb117000800081818182a33202c392952634a52634a495a4b -52634a5a6b5c627363627363627363495a4b182118555a426b7b625c63502a31292a31292a3129 -2c392921291839403184947b84947384947b889e8aa5b4a5000000 -0000006273636b80757a94878aa0949cb5a59dbdad9dbdada5b4a59cad9c8aa0947a9487788c7b -7384767384766b80756b7b6b6b73666b73666b7b6b6b7b62858c7574767819063581250cbc7a65 -94b3a562736c6b7b6b9cb5a594ad9c94ad9c9d7a66c21e00a63421516b3d575a33476336516b3d -476336516b3d476336395229415a313e52313e52313e5231395229394929395229102110000805 -101810182110394031485a424b5242495a4b7c4626b7937ba1c1b7b1b2b4889e8a6b80757a9487 -646b63a5b4a5a1c1b7bc7a65c21e001810070808082a33202c3929535a4c52634a495a4b4b5242 -495a4b48634d4f6b505f735a627363627363526352394a3a4b52422a33202129212131212a3129 -2b28212c39295f735a6b7b626b8966858c75a5b4a5a5b4a5000000 -0000002e37342c39292f4231394a3a495a4b4f6b5b6b7b6b788c7b889e8a94ad9c9cad9c9cad9c -949d9e94a592889e8a7b8a84889e8a788c7b6273636b7b6b7384768aa09484635fa5523aa1c1b7 -62736c6273637a94879cad9c94ad9c879488c63011c63011575a33476336476336476336476336 -4763364763363952293e52313952293952293e5231395229394a3a395229182918001008101010 -1821181829184b5242485a42495a4b7c4626bc7a65b1b2b4a5b4a594a5929bb5ad879488738476 -a5b4a5a1c1b79a9680e223004c1b0d0000082b28212c3929485a4252634a535a4c485a42415240 -4b5242485a42485a425263525a6b5c6273636273635b6b512e373418211821292127272c213121 -2129215c63505f735a6b7b623940312c3929849473a5b4a5000000 -000000274a3721423921423921372e1826221531212a3129394a3a394a3a41524048634d4f6b5b -6b89667384767a9487949d9e9cb5a57a94877b8a847384766b7b6b6b7b6bbd734fa5ae97738476 -62736c6b7b6b9cad9c949d9e8aa094a64b23d31f005b633a516b3d52634a516b3d516b3d516b3d -516b3d3e52313e52313e5231394929395229394929394929395229294221001008080808182918 -1821102f4231535a4c495a4b4e5234cb543ba1c1b7a5b4a59dbdad6b7b6b879488a1c1b7a5b4a5 -a1c1b7a5b4a5e62f105311000000081821182129212f423152635248634d495a4b4b52424b5242 -415240415240485a42495a4b4b52422a31295263526380665f735a415240212921182622182118 -4b52426b7b625f735a555a421818182a31292a3320738476000000 -00000021423921423921423917372b071810071810526352949d9e889e8a7b8a84794e455b341b -394031394031394a3a4f6b5b62736341524052634a5a63606b7b6b5f735a788c7b9cad9c5a6360 -5c63509cada594a5928cb0a184635fe223007c4626516b3d516b3d516b3d476336476336476336 -415a31394a3a3e52313949293e52313949293952293952292b5020081108001008102110182118 -182118415240485a42415240a64b23b1b2b4a5b4a5a5b4a57384766b7b6b738476a5b4a59bb5ad -a1c1b7cb543b9f1a000000001a16102129211829181821102f4231485a424b5242415240415240 -4152407c4626794e45274a371821181a16102121184c524d627363627363495a4b212921394031 -6b89665f735a5b6b511818181018102c39292a31296b8075000000 -000000214239214239274a372b423a153121415240949d9e94ad9c9dbdadb7937bca2a00ca2a00 -9f1a0039492921321821372e485a42485a42393f414b188a463d7b6c6373626b7394ad9c6b8075 -7a948794ad9c8cb0a19d7a66d31f00a92b0c393f4147633647633647633648634d516b3d476336 -395229485a423e52313e52313e5231395229394929394929101810001008101810212118102108 -2a3320535a4c415240a63421b09f93a5b4a594a592738476646b6362736c94a592a5b4a5a1c1b7 -bd734fb11700000008101010212918212918212918212921213121415240415240415240415240 -4e5234c21e00c21e0081250c7d15000d16181a1610181818415240627363627363526352394a3a -555a426b7b622121180718101018102a3129213121747678000000 -0000002b423a2142392b423a214231394a3a889e8a94af9494ad9c9ca0a3c63011ca2a009f1a00 -50451e394929394929213218394a3a394a3a3f3365463d7b463d7b4b188a4b188a767984889e8a -949d9e8aa0948c947ba92b0cc21e001906351906353f3365476336476336476336516b3d3e5231 -3e52313952293e5231395229395229394929395229182910000805071810182110182110182118 -415240495a4b7c4626bc7a65a1c1b7a5b4a5889e8a646b635a6b5c7b8a849cada5a1c1b7b7937b -d31f001810070808082129182129182129182129211829182a33204152404b52424152404e5234 -a634219d7a66b22400e22300f4220081250c1a16101a16101a16102e37345a6b5c6273635a6b5c -394a3a2b282107181018181810181021372e2a33206b8075000000 -0000002142312142392142392142317c462694a59294ad9c9cb5a5cb543bd31f00b224005b341b -214231394929294221646b5a6b7b6b3f3365463d7b463d7b463d7b5a25864b188a4b188a82858c -8cb0a1889e8aa63421d31f0027272c1906351008101906354c524d516b3d516b3d415a31395229 -3e52313952293952293952293949293e5231294221000008081108182110182118182110212921 -41524050451ebd734fa1c1b7a5b4a594af9462736c7a948762736ca5b4a59dbdadb09f93e62f10 -5311000000002121182131212129182129182129211829182a31294b5242415240415240a63421 -9d7a668cb0a1949a91c63011ca2a00f42200b117002d2718212118251618485a425f735a5a6b5c -5f735a415240182118071810101810212921212921747678000000 -0000002142392142392b423a1742367c4626b7937b9dbdadbd734fd31f00b2240081250c394929 -3e5231395229575a33b09f93788c7b767984463d7b463d7b463d7b463d7b463d7b4b188a4b188a -65637f84635fb117007c4626190635100810060f101906353f3365516b3d415a313e52313e5231 -3949293952293952293949293e52313142220010080008051821101821181821101018102f4231 -474a36cb543ba5b4a5a5b4a5a5b4a57384766b8075788c7b94a5929bb5ada5b4a5cd48257d1500 -0000001818182129182129182129182129182129181829182a332041524041524081250c9d7a66 -8cb0a194a5928cb0a1949a91a64b23c21e00f4220081250c060f10394a3a5a6b5c4f6b505b6b51 -5a6b5c5f735a535a4c213121071810212921182918747678000000 -000000274a37214239274a371742364c1b0dbc7a659a9680d31f00b2240081250c2f4231153121 -21372e3949299a96809bb5ad62736ca5523a9d7a66463d7b463d7b463d7b463d7b463d7b5a2586 -4b188a4b188a7732233e525a3949290000081008101906354b188a4a525a3952293e5231394929 -3952293952293e52313949292b5020071810000805101810182118182110182110182918394a3a -a64b23b09f939bb5ada5b4a5788c7b6b80756b80759cad9c9bb5ad9dbdadcb543b9f1a00000000 -1010102129182129182129181829182129182129182129182b28212b543e773223bc633c8cb0a1 -949d9e9cad9c949d9e9cad9c9cada5bc633cc21e00c21e005b341b495a4b48634d52634a526352 -5b6b515b6b515a6b5c4f6b502e3734182118182118738476000000 -000000214239214239214239214231181818c63011e62f10ca2a00a92b0c2a332017372b174236 -1010107d7765a5b4a59dbdad9a9680a5523aa1c1b76b737a463d7b463d7b463d7b463d7b463d7b -463d7b5a25864b188a4b188a5a25863f33654b188a4b188a4b188a3f3365395229394929395229 -3952293949293952293e523118211000000010181018211818211018211818211021372e7c4626 -b7937b9dbdad9cada5889e8a62736c788c7b879488a5b4a59dbdadbc7a65c21e00080008080808 -21291818291821291821291821291818291818291821291818262241311da64b23949d9e94ad9c -94ad9c94ad9c9cad9c9cad9c94ad9c94b3a59d7a66c6301181250c2b543e535a4c48634d495a4b -485a4252634a5a6b5c5a6b5c5b6b51394a3a10251b7b8a84000000 -0000002142392142392142392b423a10251b4c1b0da92b0c81250c2d2718072219182622071810 -794e45a5b4a59dbdad9ca28fa5523a9cada5738476495a4b6b7b6b686b7d463d7b463d7b463d7b -463d7b5a2586463d7b5a25864b188a4b188a4b188a4b188a4b188a2b50203949293e5231395229 -3949292b50203952292129180008050811081821181821101821101821100722195b341bbc7a65 -a1c1b79cad9c889e8a5a6b5c6273637b8a849cad9c9dbdadb7937bd31f00251618000000212118 -2129182129182129212129181829182129182129181826222d2718a92b0c9ca28f94ad9c9cad9c -9cad9c9cad9c9cada594ad9c9cad9c8cb0a1b09f93a634211531212a3320394031495a4b394a3a -394a3a415240495a4b4f6b504f6b5b5a6b5c4152407b8a84000000 -000000214231214231214239274a3717372b0722190722190722190722190d1618060f104a3e40 -a5ae979cb5a59cb5a5bc633c9a96807a9487646b636b80758aa09494af9482858c733f735a2586 -463d7b5a2586463d7b463d7b4b188a1906354b188a3f33652a3320394a202b5020394a20314222 -3142222b50202a332000100800100818211010251b18211018181810251b2d2718cb543ba1c1b7 -94a592646b636b80755a6b5c6b7b6ba5b4a59dbdad9ca28fe62f10531100000000181818212918 -2129181829181829181829181821181829182129211829189f1a00b7937b8cb0a19cad9c5a6b5c -8aa09494ad9c8aa0949cad9c8cb0a19ca28fa634212a33202131212131212131212f42312f4231 -394a3a394a3a394a3a41524048634d587b4e4f6b5b949a91000000 -00000021423121423121423921423121423110251b1018100d1618072219060f102d27189ca28f -9cb5a5a1c1b7794e459d7a668cb0a1525f5a6273638aa094889e8a8a9e9c7d7765d31f007c4626 -495374463d7b5a25864b188a3f33654b188a4b188a2b28212b50202f4231314222294218294221 -2942182942210811080008051018101021101018101821101021101a1610a63421a5b4a59cb5a5 -646b63788c7b5a63606b7b6b949d9e9cb5a59bb5adcd48257d1500000000182108212918182918 -21291821291821291821291818291821291810251b81250cbc7a658cb0a19cada5889e8a627363 -62736c73847694ad9c9cada59cb5a5bc633c41311d2131212a33202129212c39292131212c3929 -2f42312f4231394031394a3a394a3a2a3129485a42949a91000000 -0000002142392142392142312142392142312142311531211531210722191818188c947b9bb5ad -9dbdad858c755b341b788c7b4152402c392948634d7a94878aa0947d8476c21e00c63011415a29 -415a29476336485a42393f41393f413f336527272c2b5020314222294218294221314222294221 -314222101810000805101810182110102110182110182110071810a63421b09f9394b3a59cb5a5 -889e8a4c524d94ad9c949d9ea5b4a59dbdadcb543b9f1a00000008101010212918182918212918 -182918212918182918182918212918153121531100bc633c8cb0a19cad9c94a5925263527b8a84 -738476949d9e94ad9c94b3a5bd734f4c1b0d1531212a33202131212a31292c39292129182e3734 -2f42312f42312f4231394a3a2129211a161018181882858c000000 -00000021423921423121423921423921423121423921423121423917372b7d7765a5b4a59cb5a5 -94a59277322348634d485a4221372e394a3a5263525f735a889e8aa63421ca2a00575a33415a31 -476336476336476336415a29415a31394a202b5020314222294221314222294221294221314222 -18211000080508110818211010181018211818211008211081250cb7937b9dbdad889e8a738476 -9dbdad889e8a7b8a849cb5a59dbdadbc7a65b11700080500080808212918182918212918212921 -21291821291821291821292115312141311dcd48258cb0a19cada59dbdad62736c738476788c7b -94ad9c94ad9c94b3a5bc7a6581250c17372b2a33202131212131212a33202131212c39292f4231 -3940312f42312b423a2b28211010100d16181018107b8a84000000 -000000214231274a372142392f423121423921423921423117372b794e459cb5a594b3a59cb5a5 -7c46264b52424152402c3929394a3a48634d4f6b504f6b507c4626d31f0076612c415a31415a29 -415a29415a29476336415a313949292b5020394929314222294218294221294218294221213218 -00100800100818211018211810251b1818180722194c1b0dbc7a659dbdad8aa0949cb5a57b8a84 -7384769dbdada5b4a59dbdadb7937bd31f00181007080500182118212918212918182918212918 -2129181829182129181829182b2821a92b0c949a919dbdad6b736662736c7384766b7b6b8aa094 -9cad9c94b3a59a9680a634211531212131212131212a33202131212131212c39292f42312f4231 -2f42312f42313940319f1a0081250c81250c2d271882858c000000 -000000274a37214231274a3721423921423121423121423121372ea64b239cad9c9dbdad794e45 -555a42394a3a2a31292f423148634d4f6b504f6b50474c29c21e007c4626476336415a31415a31 -415a29415a314763363952293142222b5020314222294221314222294221314222213921001008 -001008101810102110102110181818082110251618bc633c9bb5ad94ad9c646b636b8075a1c1b7 -7b8a84788c7b9bb5ad9cad94e62f10531100000008181818212918182918212918182918182918 -212918212918212918182622a92b0cb7937b94b3a59cb5a5879488495a4b5a6b5c788c7b9cad9c -94b3a5a5ae97a634212d271821312121292121321821372e2131212c39292f42312f42312f4231 -2f42312c392981250ca5523ac63011ca2a00ca2a009a9680000000 -0000002142392142392142312142312b543e2b423a21423117423681250cbc7a65858c755b341b -4f6b504f6b50394a3a4f6b504f6b504f6b504b52429f1a00c63011476336485a42476336415a31 -415a31415a29415a293142222b5020314222294221314222294221294218294221101010000805 -071810102110182110101810102110101810a63421a5b4a594b3a594a592627363627363889e8a -9dbdad949d9e9cb5a5cd48257d1500000008101010212918182918182918212918182918212918 -21292121312115312181250cbc7a658cb0a1889e8a9cb5a59dbdad646b5a8aa0949bb5ad9cada5 -9cb5a5a64b2341311d1531212a33202131212131212129182a31292f42312b423a3940312f4231 -2f42317d150084635f8cb0a1879488a64b23ca2a00b7937b000000 -0000002142392142392142392142312b543e214239214231174236213121a634217732234f6b50 -2e3734485a424f6b5048634d4f6b5048634d81250cc63011575a33415a31476336415a31415a31 -415a29415a292b50202b5020314222294218314222294221314222314222102110000805071810 -10211010181010211018211807181081250cb09f9394b3a59cad9c788c7b6273636b7b6b889e8a -9cada59dbdadbc633c9f1a00000008080808182918182910182918182918182918212918182918 -2129181531214c1b0dbc633c94b3a59cb5a5889e8a6b80759cb5a59cad9c8aa0949cad9c94b3a5 -bd734f5b341b1531212a33202131212131212129212131212f42312f42312f42312f42312b423a -4c1b0da5523a8aa0948aa09494ad9c949d9ea5523ab09f93000000 -000000274a37274a37274a372142312142312142312142391742360722194c1b0d5c6350485a42 -394a3a2b423a4f6b505263524f6b505b341bca2a0076612c415a31415a31415a31415a29415a29 -415a312b5020314222314222294221314222294221294221294221213218001008001008101810 -101810102110182110072219531100b7937b94b3a59cad9c94a5925a63605a6b5c8794889cb5a5 -94b3a5bc7a65ca2a001008100808081821101829182129181829182129182129182129182b2821 -1531212d2718cd48259cada594b3a594ad9c9cada594a5926b80758aa0949cb5a594b3a5bc7a65 -81250c1531212131212a31292131212131212129212e37342f42312f42312f42312f423141311d -a634218aa0948aa09494a592949d9e8cb0a19bb5ada4a8ae000000 -000000214239274a3721423921423921423921423121423917423681250c794e4548634d2c3929 -2c39294f6b505263524f6b5050451eb117007c4626415a31415a31476336415a29415a31476336 -3952292942212b5020314222294221294221294221294221213921001008001008101810102110 -0d16181821100722194c1b0dbd734f9dbdad94ad9c6b8075638066646b636b8075949d9e9dbdad -9a9680e22300181007080500181818182918182918182918212918182918212918212918153121 -2b2821c630119ca28f9bb5ada5b4a5889e8a6b80759dbdad949d9e788c7b94b3a59a9680a63421 -1531212131212a33202a31292129212129212131212131212c39293940312f42312c3929a92b0c -8794888a9e9c94a59294ad9c94ad9c94af9494ad9ca4a8ae000000 -000000274a37214239274a372142312142392f42311742365b341ba5523a4f6b5b2f4231415240 -495a4b4f6b504f6b504b52429f1a00a63421476336415a31476336415a31415a314763363e5231 -2b50202f4231314222294221314222294221294221294218081108001008101810101810102110 -18211010251b1a1610a5523a9bb5ad94a5926b807562736373847687948894ad9c9cb5a59cad9c -e62f10531100080500101810182910182110182918212918182918212918182918212918153121 -a92b0cb7937b94b3a5788c7b6b8075788c7b495a4b7a94879dbdad9cb5a59cad9ca64b232d2718 -21372e2a33202a31292a31292131212131212131212129212131212c39292e37347d15009d7a66 -8cb0a194a59294ad9c94ad9c94ad9c949d9e9cb5a5b1b2b4000000 -000000274a37274a37274a37274a372b423a174236394031a5523a788c7b48634d2f4231415240 -4f6b504f6b50495a4b7d1500c63011415a29415a29415a31415a31415a31415a31415a292b5020 -314222314222314222294218294221294218294221101810000805101810102110101810182118 -182118071810a63421b09f9394b3a562736c6b7b6b62736c62736c8aa09494ad9c94b3a5cb543b -7d150000000010101018291818211818211021291818291818291818291821291815312181250c -bd734f9bb5ad7b8a8462736c62736362736c889e8a62736c9cb5a594b3a5bc633c4c1b0d17372b -2a332021372e2c39292131212129212131212129212131212a33201531217d15009d7a668cb0a1 -94a59294ad9c949d9e94ad9c94ad9c94ad9c9cb5a5a4a8ae000000 -0000002b543e2b543e2b543e274a37274a37274a37a92b0c9a96804f6b5b495a4b48634d526352 -48634d48634d5b341bca2a00575a33415a29415a31415a31415a31415a31415a292b5020314222 -314222294221294218294221294221314222182910000805081108102110181818102110182110 -08211081250cb7937b8cb0a194ad9c788c7b62736c6b7b6b7b8a849cb5a594b3a5bd734fb11700 -0000000808081821181829181821101829182129181829182129182129181531214c1b0dcb543b -94b3a59cb5a59cad9c5a6360788c7b6b807594a5929cad9c94b3a5bd734f4c1b0d17372b213121 -2131212131212a312921372e21292121312121292121312117372b4c1b0da5523a8a9e9c94a592 -94ad9c94ad9c94ad9c94ad9c94ad9c94ad9c9cb5a5a4a8ae000000 -000000274a372b543e2b543e2b543e2b543e773223ca2a00a5523a6b80754152404f6b50526352 -4f6b5050451eb117007c4626415a294763363e5231415a31415a31415a292b5020314222314222 -294221294218294218294221294221213218001008001008101810182110101810181818082110 -4c1b0dbc7a6594b3a594ad9c889e8a9cada58794886b80759cad9c94b3a5bc7a65c21e00181007 -0000081821101821101821181829181821181829182129182129181826222d2718cd48259cad9c -9cb5a5788c7b889e8a9dbdad62736c788c7b9bb5ad94b3a5b7937b81250c1531212b2821213121 -21312121312121312121292121312121312121312117372b4c1b0da6342194ad9c9cb5a594a592 -94ad9c94ad9c94ad9c94ad9c94ad9c94b3a5bc7a65b7937b000000 -000000274a37274a372b543e2b543e50451eca2a00a92b0cb224009d7a6663806648634d4f6b50 -474a369f1a00a63421476336415a31415a29415a31415a29476336395229314222314222294221 -314222294221294221294221294218080808000805101810102110101810182110072219262410 -bc633c9bb5ad94ad9c8794885a6b5c6b80759cad9c9cb5a594b3a59ca28fc63011531100000000 -101810182118182110182918182118212918212918212918182918182918a92b0cb09f9394b3a5 -a5b4a57384765a63607a94879dbdada5b4a594b3a59a9680a92b0c182918213121213121212921 -2131212a31292131212129182129212129212131212d2718a92b0c9ca28f788c7b6273639cb5a5 -94ad9c94ad9c94ad9c94ad9c8cb0a19a9680a634217b8a84000000 -000000274a37274a372b543e2b543e773223b22400a92b0cb22400b224005b633a4f6b50485a42 -81250cc63011415a29476336415a29476336415a29415a313e52312b5020294221314222294218 -29421829421829421829422107181000080508110810211010181010211010251b1a1610a63421 -9cad9c8aa0947a94876273636b80757a94878aa0949cb5a594ad9ccd4825531100000000101010 -18291818211018291818211018291821291821292121291810251b81250cbc7a6594b3a5a5b4a5 -94a59262736c7b8a84646b639cb5a594b3a59cad9ca64b232d27181531212a332021372e213121 -2129212a312921292121312121292121312118262281250c9d7a6694b3a56b8075525f5a62736c -8aa09494ad9c94ad9c94ad9c9ca28fa64b23294221878995000000 -000000274a372b423a2f42312b543e2b543e81250cb22400b22400b2240081250c4b52425b341b -c21e0050451e174236274a372b50203e5231415a29415a312b5020294221294221294221294221 -29421829421829422110210800080508110810181010181010211018181807181081250cb09f93 -9bb5ad788c7b4152406b80755a6b5c94a5929cb5a594b3a5cb543b9f1a00000000080808182110 -18211818211018211818211018291818291826241010251b7d1500bd734f94b3a59cad9c94ad9c -7384766b7b6b788c7b94ad9c9cada594b3a5bc633c4c1b0d182622212921213121213218213121 -2a31292131212131212129212132181826227d15009d7a6694b3a57384765a6b5c6b8075738476 -8aa09494ad9c94ad9c8cb0a1a64b2341311d21372e879488000000 -0000002b543e2b543e274a37274a37214239415240a92b0ca92b0ca92b0c81250c531100c21e00 -5b341b17423621372e17372b17372b17372b17372b1a422410251b0d1618153121213218294218 -294218294218212918000805080808101810102110101810182110082110531100b7937b8cb0a1 -7384767a948762736c5a63607a94879cad9c94b3a5bd734fb11700000008000805182110102110 -1821101821181821181829181829102129181531214c1b0dcb543b8cb0a19cada5a5b4a5627363 -7b8a845a6b5c9cb5a59cada594b3a5bd734f4c1b0d182622212918212918212918212918212918 -21312121372e2a3320213121153121531100a5523a94ad9c8aa09462736362736c7a948794ad9c -94ad9c94ad9c94b3a5bc633c5b341b17372b2c3929879488000000 -000000274a372142311742362142391531210718102624109f1a00a92b0c7d1500a92b0c81250c -07221910211010251b21372e17372b17372b17372b17372b10251b060f10001008081108060f10 -1021102a33200010080010081018101018101021101818180821104c1b0dbd734f8cb0a19cad9c -6273634152405a6b5c6b80759cad9c94b3a5b7937bca2a00181007000000181818182110182118 -1821101821101821101829182129181826222d2718a634219ca28f9cada59cada57384765a6b5c -889e8a9bb5ad9cad9c94b3a5b7937b81250c182918212918182918182918212918182918212921 -1531212129182a33201531212d2718a634219cad9c94ad9c7b8a846b80755a6b5c8aa0949cad9c -94a5928cb0a1bc7a657732231531212a33202c3929878995000000 -000000153121464a485a52611818180d16184c524d4a525a21211881250cb22400b22400182118 -0722190811080d16182f4231394a3a21423117372b17372b17372b072219071810080808001008 -0808080718100808081018101018101018101018101021101010107c46269cada5879488738476 -9cada56b807562736c94a59294b3a59ca28fc63011531100000000101010182110182110182110 -182110182110182118182118212918182918a92b0c9a968094b3a59bb5ad788c7b738476738476 -7b8a849cad9c9cb5a5b09f93a92b0c182918182918212918182918212918212921212921213121 -2129212131212131212d2718a92b0c949a9194ad9c7384765a6b5c5a6b5c7384769cb5a594af94 -8cb0a19a968081250c2139212131212a31292c3929879488000000 -000000153121a4a8ae82858c8794882e3734a4a8ae7d847682858c4c1b0da92b0c2d2718072219 -10251b10251b3f33653f33653142223940312e373418262215312117372b071810081108081108 -0718100811081010101021101018101818181021101018104c1b0d7d847694ad9c8aa0946b8075 -7384769cad9c94a5929cada594ad9ccd48257d150000000010101018211018211010251b182110 -1821181821101821102129181531217d1500bc7a6594b3a59cad9c889e8a646b63646b6362736c -9cada59cada59cad9ca64b23262410153121212918182918212921182918212918212918213121 -21292121312118262281250c9d7a669dbdad7384766b807562736c8794889cb5a594ad9c94ad9c -9ca28fa634212a33202131212131212131212c3929878995000000 -0000001531219ca0a34a525a949a91393f41878995393f41949a9100100818262208211010251b -07221910251b27272c3f336510081018291821291818211807181008211010251b060f10071810 -0808080808081018101018101018101018101021104c1b0d555a4273847694a5927b8a8494ad9c -7384767384769cad9c94b3a5bc633c9f1a00000000080808182110182118182110182110182110 -182110182118262410072219531100bd734f8cb0a19cad9c9cb5a5646b638794886b7b6b738476 -949d9e9cb5a5bc633c4c1b0d182918212918212918212918212918212921212918212918213121 -2131211531217d1500bd734f9bb5ad7a94875a63605a6b5c6b7b6b94ad9c94ad9c94ad9c94ad9c -a64b2341311d1531212a33202131212129182c3929879488000000 -0000001826229ca0a34a525a949a912e3734949a914a525a8794880010081531210d1618072219 -0722190722190d1618190635190635190635182622182110182918071810060f10071810071810 -0010080808080010081018101018100718102624107c462648634d788c7b7384765263526b8075 -9cad9c7a94878cb0a1bc7a65b11700080500080500182118182118212918212921182118182118 -1821181821100722194c1b0dcd48258cb0a19bb5ad4f6b5b6b7b6b6b8075525f5a7b8a84a5b4a5 -94b3a5bd734f5311001531212b282121292121291818291821291810251b10251b1829182a3320 -17372b4c1b0dbc633c94b3a58794884c524d7384766b80759cad9c94ad9c949d9e8cb0a1bc633c -5b341b1531212a33202131212131212131212c3929878995000000 -000000072219a4a8ae747678879488393f41949a91464a48878995072219182622072219212918 -a5523aa5523a2a33200718100d1618190635733f73190635071810071810001008001008001008 -0811080010085b341bbc633c5b341b1a16105b341b4f6b5b5b633a9d7a66525f5a6b7b6b7b8a84 -889e8a9ca28fb7937bb11700181007000000101010102110102110101810102110182110182110 -2b28217c4626a64b23a6342194a592949a91bd734fbd734f72694662736c7a9487889e8a94b3a5 -b7937b7d15003949297c462607221921291810251b2129181829187c4626a5523a41311d153121 -4c1b0da92b0cb7937b9cb5a54f6b5b7384766b807594b3a594ad9c94ad9c8cb0a1bc7a655b341b -1826222132182131212131212131212a332018211882858c000000 -000000072219b1b2b4b6c8c182858cb1b2b48794884a525a87948807181018262207221941311d -a5523aa5523a7c46267c46267c462650451ec0852f41311d5b341b7c46262d27187c46267c4626 -001008181818bc633c2624101a1610a634217269467269467c46269c7e3c7269469d7a669d7a66 -9d7a66c0852fcd4825a64b237732232d271876612c5b341b50451e7c46267c462610251b102110 -41311dbc633cbc633c9a96809cb5a56b80759c7e3cbd734f646b5ab7937bb7937b9ca28f9ca28f -a6342150451ebc633c7c462650451e41311d50451e1829182b2821bc633c7c4626a5523a41311d -bc633c84635fbc633c858c759d7a6684635f9ca28fbc7a659cad949a9680b7937b81250c213121 -213121213121213218213121213121101810071810949a91000000 -00000010251b9ca0a37b8a84b7bdbcd4d7d57476784a525a8794880010081826220722192b2821 -c0852f7c46267c4626bc633ca5523a5b341ba64b2341311dbc633ca5523a7c4626a5523a262410 -060f10262410a5523a41311dbc633ca5523a727442a5523a76612c84635f794e459d7a66bd734f -7d7765cd48255311005b341b7c4626262410a5523a7c4626a64b237c4626a5523a212918102110 -41311dbc633cbd734fb7937b9cada58aa094794e45b7937b9d7a66bd734f9d7a66bc633cbc633c -7c4626a64b237c46267c4626a64b237c46267c46261021102d2718bc633ca5523a76612cbc633c -bc633c9d7a669c7e3c464a48bc633c9d7a66bd734fbc633cbd734fbd734fa64b232132182a3320 -2131212131212131212a3320182118000000101810878995000000 -0000001826229ca0a3626b6b82858c4a525a82858c464a4887899500080510251b07181041311d -a5523a060f1050451ebc633c5b341b41311dbc633c5b341bbc633c7c46262d2718a5523a071810 -071810081108a5523a7c4626bd734f9c7e3ca5523a9c7e3c773223bd734f76612cbd734fbd734f -9c7e3ccd48255b341bbc633c41311da5523abc633c76612ca5523a50451ea5523a2a3320082110 -7c4626bc633ca64b23b7937b94a5928cb0a19d7a66bd734f7d7765bc7a65889e8acd4825bc633c -7c4626a64b237c462676612c5b341bbc633c3142221821182b2821bc633c2129184c1b0dbc633c -9d7a669d7a66bc633c726946bc7a658c9c7bbc633cbd734f778469bc633c50451e1826222a3320 -2a3320212921213121212918001008000000181818879488000000 -000000182622a4a8ae4c524d949a912e3734949d9e5a636087948807221921372e153121182918 -41311d1826220722195b341b5b341b0718105b341b41311d2d27185b341b2624102d2718081108 -0718100010084c1b0da64b239a9680646b5a7c4626575a3339403184635f7d77659d7a66a64b23 -9f1a005b341b5b341b5b341b5b341b41311d7c462641311d41311d41311d50451e10251b4c1b0d -7c46269d7a669d7a66b7937b6b7b6b7b8a84858c759a96806b7b629ca28f9d7a667732237c4626 -2a33205b341b7c462641311d41311dbc633c18211021291821291850451e7d1500a5523a726946 -bd734f646b5a9c7e3c9d7a66bd734f9a96807269469c7e3ca64b23773223314222213121213121 -213121213121212918081108080808000000212918949a91000000 -00000015312174767827272c6b6b72393f41879488767984393f4117372b2b543e274a37274a37 -174236153121071810071810072219102110071810072219072219001008001008001008081108 -001008262410b22400b11700a5523a6b807548634d415240535a4c889e8a8aa0949a9680c63011 -181007080500001008071810071810071810071810102110102110182118102110262410a92b0c -949a9194ad9c9cada56b807562736c6b7b6b8aa0949cb5a59dbdadbc7a6581250c102108102110 -18291010211010251b1821107c46265b341b10251b21291810251b262410a634219cad9c8cb0a1 -94ad9c7b8a8462736c8aa0948a9e9c94a5928cb0a1bd734f4c1b0d153121212918213121213218 -213121213218071810000000080808001008773223b09f93000000 -0000001826225a5a635a5261464a485a5a5a464a48393f41464a481a4224274a37214231214231 -274a3721423115312107181010251b07221910211007221921372e213921072219081108071810 -060f107d1500ca2a00b22400b117007732234f6b505b6b516b7b6b94a592889e8ac63011531100 -08050010101018210818181818211018211018211018211026241018211010251b81250cb7937b -8cb0a19cad9c889e8a5a63605a6b5c7b8a849cad9c94ad9c9a9680a92b0c102110212918212918 -212918212918212918212118182110182110212918182918262410a92b0cb09f9394ad9c62736c -788c7ba5b4a5889e8a7b8a849cad9c8cb0a19d7a6681250c1531212a3320213121212918212921 -2132181018100000000808080010084c1b0da64b23b09f93000000 -000000274a372f42312142312142312142312f4231214231214231214231214231214231214231 -214231274a37274a3710251b07181007221907181007181010251b274a37214231153121102110 -060f100010087d1500b22400a92b0c7d15005b341b5b6b51788c7b8cb0a1cd48257d1500000000 -08080810181010181018210810181018211018211018211018211010251b7d1500bd734f8cb0a1 -94a5926b7b6b6b7b6b6273636b807594a5929cad9c9cad94a63421262410182918182110182110 -1821101821181821182129181821102129181829181018109f1a009d7a668aa0947384764c524d -5a6b5c7a94879cada59cad9c8cb0a19a9680a63421182918212921213218212921213218213121 -1821180000000805000008052d2718b224009a9680a4a8ae000000 -0000002b543e2b543e2b543e274a37274a37274a37274a37274a37274a37274a37214239274a37 -274a37274a37274a37274a3710251b07181010251b10181007221921423121423121423121372e -15312110211010181081250cb117007d15007d15005b341b889e8abd734f9f1a00080500000000 -10181018181818181818211018211018211018211018211010251b4c1b0da5523a8cb0a19cad9c -8aa0945a6360738476889e8a94a5929cad9c94b3a5a5523a4c1b0d10251b212918212918212918 -21291821291821291818211021291821291810251b7d1500bc7a659dbdad646b63525f5a5a6b5c -62736c94a59294ad9c94a59294a592a64b232d27181531212a3320213218213121213121212918 -0010080808080000002624109f1a009d7a669dbdad9ca0a3000000 -0000002b543e2b543e2b543e2b543e2b543e2b543e2b543e2b543e274a372b543e274a37274a37 -274a37274a37274a37274a37274a371531210718100718100718101531212f42312142312f4231 -21423110251b0718101818187d15007d15007d15007d1500a63421b11700181007000000000805 -081108101810101810101810101810101810182110102110262410a634219cad9c9cad9c9cada5 -6b7b6b889e8a62736c94a5929cad9c94b3a5bd734f81250c1531212a33202129182129182a3320 -212918182110182918182110212918102910531100bc633c9cb5a5788c7b525f5a62736362736c -94a59294a59294a5928cb0a1a5523a4c1b0d153121212918212921212921213121213121081108 -08050000000808211081250ca5523a94ad9ca5b4a59ca0a3000000 -0000002b423a2e37342c39292e37342e373421372e21372e2e373421372e2e37342e37342f4231 -2142312142312142312b423a21423121372e21312118262218262227272c2b423a2f42312f4231 -2e373421372e10251b0d16181826224c1b0d7d150081250ca92b0c4c1b0d060f10101010101010 -101810181818101810182118212118212118212918212918a634219a968094a5929cad9c879488 -62736c627363788c7ba5b4a59cb5a5b7937b81250c1531212a33202131212131212a3320212921 -2129182129182129212129181829184c1b0dcd48258a9e9c889e8a738476525f5a5263529cad9c -94ad9c9cad9c94b3a5bd734f4c1b0d2131212b28212129182129182a3320213121101010000000 -08080807181081250ccd4825a5b4a594ad9c9dbdada4a8ae000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000080008000000080008080808080808080808000000000000000000 -000008080808080008080500080008001008000008000008080008001008000000000805080808 -0800080010080000000805000808080808080808081008101a1610101810101010181818101810 -101010101810212118182118182622251618100810081108101010101010101010101010101010 -10101008110810101010101007181025161841311d1826220808082a31291821182129212e3734 -2a31292e37343940314c1b0d081108101010101010101010101010101810101010000805080808 -0808081a16104c1b0d4a3e40495a4b4c524d525f5a393f41000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000000000000000000000000000 -000000000000000000000000000000000000000000000000000000 -showpage -%%Trailer -end -%%EOF diff --git a/Docs/Books/sql-99.gif b/Docs/Books/sql-99.gif deleted file mode 100644 index a1f3b7403e75b0e8e566b2c8877ffd104019b9a0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 13038 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 diff --git a/Docs/Books/sql-99.txt b/Docs/Books/sql-99.txt deleted file mode 100644 index e69de29bb2d..00000000000 diff --git a/Docs/Makefile.am b/Docs/Makefile.am index b3588263415..3e81cc8b7e1 100644 --- a/Docs/Makefile.am +++ b/Docs/Makefile.am @@ -14,7 +14,7 @@ # along with this program; if not, write to the Free Software # Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -noinst_SCRIPTS = Support/generate-text-files.pl +noinst_SCRIPTS = generate-text-files.pl EXTRA_DIST = $(noinst_SCRIPTS) mysql.info INSTALL-BINARY @@ -42,7 +42,7 @@ DISTCLEANFILES = $(TXT_FILES) CLEAN_FILES: $(TXT_FILES) touch $(TXT_FILES) -GT = $(srcdir)/Support/generate-text-files.pl +GT = $(srcdir)/generate-text-files.pl ../INSTALL-SOURCE: mysql.info $(GT) perl -w $(GT) mysql.info "installing-source" "windows-source-build" > $@ diff --git a/Docs/MySQL-logos/mysql-01.gif b/Docs/MySQL-logos/mysql-01.gif deleted file mode 100644 index 773453f8dd7a99ce553c17412326bbc626254ecc..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4097 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 X6*_zE*l=xYm>QB?K0X|bfcXCf7+Sc@ diff --git a/Docs/MySQL-logos/mysql-02.gif b/Docs/MySQL-logos/mysql-02.gif deleted file mode 100644 index 12d984b55e0e4d7bd793e1320f7492edae882f95..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4811 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 diff --git a/Docs/MySQL-logos/mysql-03.gif b/Docs/MySQL-logos/mysql-03.gif deleted file mode 100644 index abb16f2aa592021a54f84b63e246854522708757..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 716 zcmV;-0yF(bNk%w1VORhk0JHx9|NsBq-rmN>#*~zlLPA0zAtAl3tM)Qp#wa zC|OEE>%MR-&vb3y@1U#!?z6GpPayQ!bUdRBC;%J|1{VM@&<%)1R{#*G?q<{QG#f)s zlrZko01zY)(XC=ZuPX|KXsb=A`xSabbAEIMG-ga_TL=jWY>Wv+0E2{uQUi4bcYXzd z0|kTx1cy6kI9mgHU5yA%ta5at1ATQ@O_;GRpqYUJgh!=`FI!y(iwRK2jscKS2fL#! zo6!<}wk@GAzcq+tQU;9!u5UyGtmCZ+2!5kIpL&yiFtl}n+oVY?TLx?ajR^z%H9FAb zz?%Tz2AVTaiNLiz_gXOg<07JrZu*=cIKYgR0Z0h{ntVhiun{Pjrw)v+HnL0*MaHT9@i%_os^cEO`SqE6Yj&R;En#!n$x&t7=P1QrGAyYal zUv!P;D<-}(5(WbO=SZz10ay_P$Qcrgv|WU*ywo?gqS+Z3=i)?`6Inu&F8Bf9x#y0a zS$SP@f+2K4*s@J!CK24z0A0ZYVWfQ%rH!S;c%yV(a4kSrduFLT6cE_lD@X)CZj4b= z5+_^n==jYfg&tYV!fz?1JX1iFe*v#1?xkgGi=<%r)pD`=3Kw4bkS`zx>T(N=Eq+eN z!HA$l?1anHfRKOFc`3jf*!iiVTmZhRKS3B5D;O5C#G29H3q=9)PFI`s3T;#c$lM( yIx65Iirr*rh%3ne diff --git a/Docs/MySQL-logos/mysql-04.gif b/Docs/MySQL-logos/mysql-04.gif deleted file mode 100644 index e207e1790f75fe447abd91582ebab6b4575c7174..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 909 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íKr!=k9>?2DRS5%5y17|Ga&^rqq zV=03pdBOg#@J7)+vnnvuQHMk5;{z2=w2q!VyzZOmZr4<+Q`RHu0!2qo|8Zhyf7a(; zP%{epTg|XwMXm8@EY{|dkeRQM$Tj87)t$j0M@s}jzCI@nBvi#$Jsl4&Gr%TQvw^8Sa z)HfnY(&q4x!$A5FSm5fG+?;=hNeV^^Lt5%B5v5z}a(db$vyqx&9e%D!ylN|yuaWF_ zeBIzIi@dVCZ^wKXR45;icV?u>`KhGFy!>eC;-Z=*rGE9vKP3ee0Y^xEJA{u^u4vA) ztQA*K^D!31#qq%?NcnZhpNf5V?U~q-{dC#;pGAb8>M97A=TWIGelij^$0hblVSz)QmTBMsAD$b!9OhX?aJS!cuSw=6Li2QW3r%O1AQMptVxM_0oRNb zz6j_^NKvi75-^MQOG;)l4Sk;1M!#5<}6WMEA&p6Xrw%7!<#<Ff?OQ2j{# zK5<}PcQV?$6spJ`qe24znd;vb=+mN$e2km5TZbPs-Fn3;k6z5)sU2;4uxnMq{fnFS d509Rme|13vk}v=O diff --git a/Docs/MySQL-logos/mysql-06.gif b/Docs/MySQL-logos/mysql-06.gif deleted file mode 100644 index c660e1d1f4f464fedcd6877e3a1705166bcb4552..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3082 zcmeH`>sQk07RP^F{dqx=r0@=!7t~4%P0|X{)F=x{&9EAj9Pf^)lNswwps47tXTNy%-ru$NXFqGNwZry?`jg|& z0)fCX0IaR8fgp%Rqj5MKfj}Sg_ONgnu5boaX8YnGzptMYzWwF36rTZ=xnx> z$&@e{awb#CU?`YOIfEgg(G(1ZltvR#sd5@kLZwO#0hKBtlci*`$j3+G<0Cb^M52^P z6cGp#0zrhsNpLt38Z81rJ^%;-pb7v)004lX55P9~|J(m;14^aR>+fNI-vR)x0uazH zTqf=*1lM^S?Uyw?C_y{ZMB%rt_WcvLE%jypt!od@;e*TU_TFwBxZr;1#?gV>l1DY( z?7{sn;$cV=%*NP$aYJEAv7J{q9WSOg0H&@i-O{#(5>t$Olu{f7D>mO|Sx-Uzyb=40Pj2Q_!r9H;W5YaY`-2BKy0#P5FW=G4FsC)F!i~q6PPPtRgv^ z%>^h{ycJ7^U7je$Ihzq~MWMxRzOgaye5aiuZo_I<#-=xG+DJeHypYu5JSUOLR zy~hbcn%-@)wBi0f=8hVCKj~>IJTn@M=bRoZ0XKi-QIRaEuM%QL!9SIYnab2yOs!2) z-?Kq$x9(7cH}BpZ=JUmFt487GE9)gnEI_O6GBWjOjDP451CoOA1)~(GBk$<>UR!t3 zB%*H4*i{Wdg)9+U_Llhe)Z&z$?X5esO)+rdSz7x*D3-!QSnc=bMMe2kFHng?ykaAQ zGQQs40pC-M`4U>o$FK5+-p$$LqIy(X@@eL!@l;C+q#4!X(o-Rh!AGZjaM;^WK3Rn5 zdBOfh7hU3h5FMTJ=BBg)cUAxaFub<0FGe|NADNl`=u)w1dMyq_TUVVAv(G)zngJVg za!^K<=fyR367yD51)ZhL{uxmmH)x`$Yu~8@&LjJNoCkYYP8NWS7iw}QtEboA7H0`s zM@+=`A~#i7_FE^9_uR31cfjF0xT!nk-9$EE#(nIb_%nCvMi^Fex*28{ekF3FE3YF0 z!C7RAU(gB(^>n@wmm3V`q6OGooq41z7~>BhuOO)AQ3JrQbS}^2BjHFu@)dKJk_$#& zIsmrn#h;s~1k$QA3acMPp9GW;n6-ZJoF z0K8w=ML-7u1j|4=Jn?*kM{u|rbHgQYy9w1aj1>3b%i+!)n)3%Ht^*#vhiRToj|*Y* zlo|6ziYWG0xSMmF6?u+QCM2Nqo(DV9MtPeyni`$l+JokbrFngiE(Pe~%>Q(UfPokC zrEN{j^%RJk%``wBFxJq*(5T$j)P^=LyyI}+V*H$|&HS$3nY4}a;u{duY7~%<72)OoP7yUTK@Dq@%r-7euJ;O@KR6&V9J3#14J}xWe?O()AAxz z9a$AUdKrh~LOq~R&j}vfF>5@fZDu_3xG7>Yi})PL+PO7jf1DA#ImE?#-?fe6e=SBi zt>YB}Ce&-A|@T zS&*SJ7vKkS88k4ubC61bS|qog*uZ*$SSbS50aXQCxsUVqZaD!3Wx!PgZ=pA=+cYJk z%WTKyws|lHO?nE43%dSbu=dMI(@ZyAL=Q-TaF zEtL+>6Iw|V5EM%ZJv9Uv%}r(dQQfkB4uc$ZGXJI1=?TJB4BU!Hzhib<3CkX0BS}h# zeSi94uJ^x+Ez|guxgdLu1)H{}Lnas`b zwBtRvYw|0Kn&dBepQK4BPc$Q*YqY=oidT_D@jZU!aJ=v!=9*`;{AlW6F{XFg;qyp1 zlXNzY*te^1p41VMTaaW`ziswS7%5xYULPaXt4^~6Cw`j3d#Cosj;4hr(8c<@QPhRb zLkGLDUU&X4Hr-(E`*+{lGTw52kS5iUygX#=4~!V;G*cS0tAAa6BKzxR^xeh? z{X$fTI;gm&(_PKl8q}p~HeNP2(tcWW`^6;Y!spE1ht-Su%^QcBHCCtd-!{X8h_aYS zR{U=JB-2W-R|%ThuBnjRbBDf8`)_X@?+7J)pR{4hF6Y~>zg8xS>Y1;63!aQuZ$7U7 z3EoYjbxhxDTSWhMSMF1jzblydd)~2~eJRM>FE3|~wI8xw7!BwM8f}{)q$s)rl0N76;bo1L$la_%O`nqR6+*0|yjF4P!*uAA9 z>CQ4n|Bnr4*!P$Iv3=ok%*!)16-l3DZUJx8>aiovKP=y~SY04HetjJ$`lLE||9#EK V*O`E|KSs~p|Jb~xf(rlv{{`JJy08EM diff --git a/Docs/MySQL-logos/mysql-07.gif b/Docs/MySQL-logos/mysql-07.gif deleted file mode 100644 index be309d0de1cead248854a8455717d8b2056290cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4209 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 diff --git a/Docs/MySQL-logos/mysql-08.gif b/Docs/MySQL-logos/mysql-08.gif deleted file mode 100644 index 3d5b21356550d20e4bca9ab61a0a7f1f1027bec8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1595 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 diff --git a/Docs/MySQL-logos/mysql-10.gif b/Docs/MySQL-logos/mysql-10.gif deleted file mode 100644 index 8d0a8551e9ef877cfad151deab5dd906eaaa938a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2455 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 diff --git a/Docs/MySQL-logos/mysql-12.gif b/Docs/MySQL-logos/mysql-12.gif deleted file mode 100644 index b045aaf3549454b8cc5b158da1a01b241db65d71..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2642 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

J6+X&7t@OFUmsWLSrk+6f+sfF!h;+GP0w zsL-quG}vCU60l^z-akjawina-ye}nytmXRwX#27**z|mPWLtXA;wbkqEzBt?BD^a; zan2zuZ%_DUzr?f*2lw1A?zH4V-1)JvH8+wszs@<9v*S}r?m*eg$5*#k8a|6!$!t4# zVr;)v>-f_Xzq);l$23|p7w18k$}T7rXHI2Wc{wCS-M1D@IOiwK6$a&BJu0y12t#&H zIw!fE_~j36UEz!>RFcC7bKaCW1`&WL^=E-TgxkSkT`N=A%#x(9W?Zp%jGHwH$O+urF;TU z)N(b;FM{6G3fFQ`@H4G0Uyy2%(hRQ5F3@7Haz_wGXQ!ulI_MNRbnWN0<^FS9=wCh{ zAJDSIUQSEF4~I@0S&zPX(Vi_yt=t0fI3`J5yc9TT8Sy6 zsP%j$fJqDWBnkEOc1^GSQBA$&N;pX{cnO}7)gavjtGwV1E`bBg%HBg~8-^=?oZJ`T z4wzM8zJsf6H#PZaS66!#jM&bIHq)XaLh^h{=@JnG8K8v`S()*3u-KZZA&mQ!-b<-# zuU7x~;q3v1gMBQpkS)vSqgu944C(T}U%s#;Z3#wq#|T}(p_Sp54@^VYNPW$;9az=M zB1DdsxV>zE_O`NJ?~RsicWOA@b8)A_Q@xekYwPG2LmmY^(&N=lZj#}}`E@^h^`3py zUE8(;+H*bfp=h78afh2+6r4(JZ*EbDNAhKA%Ytm0cx7r;a06?@tFfKVEv>IYrHM~U#vQfFt%cAj=dK4=)@Kxd!M+gfa)u?|kg$0C zm>1rmIqyK!A7>$vSIMDpI&Z!2w9S!#wEYChzqYRI|3Uygzw)-rIUM`dxH;ojKIMk! z{KjLAQF{X{5a0fwS%p2=1NFQ5c8c{O<+g9f>y|DGt<}0M^dmP)oOP~*J16t#H`L0b zHh=X7WRL{%W!srDI^6i6wiqz*ZeISk6*bn!&(lNqtEOuF;RE{<3xBujr-ybJoUd^M zj~wK^Dko$~)UPk)QWoJSg#2uOd>q~*Z$LsSlGzGzU~SGl*`guLCV76zc?mDs(u|9B zC~KJLn-M#GvC^MhVON+fO9a&DvTGt_n2|NcUB(VOuG clBzZQ{sJR`W>YBZbC0;c$V^BJ#^FHF-{WckVE_OC diff --git a/Docs/MySQL-logos/mysql-15.gif b/Docs/MySQL-logos/mysql-15.gif deleted file mode 100644 index d70ffec83ddcd1cff6c0791dc5c882b6c89b2a4d..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2310 zcmeH{`#;nB1IOQ+S)Va%=Cbm21j2k_u-S#YQIN61k_V%_WYM5n_o=BUFyl zMY(j$H=QVQX>PS|QKSnelZyI&k8{qy@csGw`r-BC^M}{t@qF#t?djyqJpdfRw{@_- zzP|kV`||P^#aD&m^N&wI6rVnQTKvz_?7J_sb06N!ufATGef9PAt5>h&-=`gyd;bpP?N>*3qZ&d$5T9c?S!zr4TOa2co0jEsyVaYo{MUP7)sIyyS4lEA9* zVLF_2bD$mE>_2E{XGeYHVOzJu)<@WwW`3J<8eU63Fl*vm7((wW7& zp1cVanH{-Q>UBZqXcD^pM)du7BaH^F{U2DE%%ykavc7~m#&Q1~YC(v7{6uTiGvE6i z=`SXJRSeX`VL{Qwhzphn!bU`VvogeG;yu!pMT^OP9pGayGBSfUNy7GUejhK{4R4Js`N=qTny$(La7fn*1Xi#!*6J%b$B)fb#Wch+lV75= z^ne;PO3O%k8q7)EpzYYBFUM=)fRFdx;o8(z1g;h=NQN&f4ceIlCn%1igIjoSctt+f zYX~aaRz^`Y9Uprrwdkmnyl7d3;=` z6Tjy)VACplWdv|DcBek%NPEdrZzxCXu;e`z35_f1hrggqa>03CtONn+Y?!I zc5?8*cm#^v6ZA+o%llx70gjbS|IjiL1fkY?#tHCt^p&F1ebrO_@gr#7pvy8^I7D&3 zlgm{mvZRIa)}-MPx;aak?W+XRWyrC~+kDSyte2EOJ)=Yq&GLzwbQUbyPi9KanQaJ? zn0=FH?oZ}3lAih8{deZAb@4a(Nn6X+>0I5!=@?6V%c^@Ce2J4*n)3WmCZ%3dBd#uV zWF8L|^$#ry0E==;t@Si{uo5xKVvS*+pmHK?99#i&q?Y}K;r z0{IL@w#qs>t&^{%AnVYS^t2|GsiGMrBiaMq$^u(ejGqUZOhdL+@+Ei=Wvok%o-`au zEr6-V#JFp;P3Aa=#OQ;F9Q+VQOd@!k<*XRHM_OQZMDx@|;v58I%)@&(suzND#m!()Y7u7$N zjXvgg`CDJDjtY(IznO;5RW^mwlwD}v5yAp%D-1;C%3uagpR3gWzA-`506x~owqK&B zvte^yc*}IvP&I+wKolgt^tNMMLO8?1pNc|n*?hEmZlPA1-{!?YO{Ya~-RJz~XIDs4 zGruW&>)1_`JF7SV(hrrWe>Z77%(p%QXt2WI0f{126@JX3NS`(!N!}X!jHBua6OD*` z%IXZf&}`2ReUnWo)};kel&S_Dk0Lc-6ZM1~5DX*Shi!?s>-9ZwfNsdg0e+lu8FXg z!Gm$4=aMrTSx|1+8ujkXf@fmpSUho+;@GXz+mZ<_g#8GygjEs~Pi)}>z1REu;J!D@ TPF;U_ofnKb{*?@afo*>Qg%VrF diff --git a/Docs/MySQL-logos/mysql-16.gif b/Docs/MySQL-logos/mysql-16.gif deleted file mode 100644 index 9b30833dc1dfb09d8bd7d7364cb7947074cdbf47..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 19192 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 diff --git a/Docs/MySQL-logos/mysql-17.gif b/Docs/MySQL-logos/mysql-17.gif deleted file mode 100644 index 5b228496b66857accfbe7ef20699d1330aa24c5f..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 2059 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 diff --git a/Docs/MySQL-logos/mysql_anim-01.gif b/Docs/MySQL-logos/mysql_anim-01.gif deleted file mode 100644 index f537d60da413ccc7e0d32b95a33636a2a67a57cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 15008 zcmZv@e>~Is|NoC+n;-jW?3Zm%TbpK!{b<8>m~A9U%Fm?oD^UnZBgxPC&HM_b@-vD= zsp!}7J1U}5l!~a-QHScBqf_Vfb()D1TKW5^ zQPp07)IcB*!<1nwvDMbvvTD^fuyzR6C=dcs7#SU6G7oNY-L%thr}Kux@rU9ekW3?^ z3<#tQYgE2wO`)!CJp$f<#Wq49S8=#Yrlt)-%d@7Y9hR0IuA54C?=Ii8sVQ<_D;)mN zf-{0dzTxuTZru1ND(ab|;~Q`9dB^piyuCk$guGWM-iCzyqEP%&ajYUY=W6HG&XST_ z=g&V<6?|%KeLMbWd~k4nVsc?ymbzSV;-DGyI_S`iV zAoZ2!z!yy|Ej3#;)?fem>owK1ze`R=I99m}JJ!cco}`=5K=?9-GKb~OGyil9~_ znP%@)*WaOkIJc+KZ7uP%Ncz*hP<@u6B+fc!&*tD=VSCrCRnJkk)(KTtty!a{q2}bX zCRbfta@1dTR9#KST5XM3w=!MnlXuqIT3z>8w));|U9o;;=?S&9r%SHtR!KD~OV;Y@ zh#Q)fx{kMk#DS;vuU{Wg4-5+PdtMTnP#t7ZHa~x0bbFZ0&n-+x-Qs%VGx3A4ch*^7 zj`pdIs-GS)+5Ud29#>O4A#(aX=?w0d1>@lF0&iEYzj%81cyq|za=XBF#ovwjDZjI#Yv=VVn*-9Yg(>zqCuA9;5M+=1L4zPu z(z-|EOob6f>f7k5o|#n@CYa}mWi$%3Mup^uf;l>;>8a~-g@ zpJ|T2rY>Fz>$r6M{=f)Ua_aXf4)wzrLA0BQ35aXR?d7ITbuC^tgI~zBg-k9b%L5-5 znY%iCF-eC)JZ51q8>;=LmJ8{M#k}N!bX_`0_sev(b-{x}Rt8J0{;TJv0G~v~4t41y zk}WNPR|aSnEKz&bJ^$*T5sntkj<_Dea*?>^bO~1RGVef=IycuyV<*Q{k*v?xG?aQa z0I>%8wCnv3-8QX$^W9Tx^BD(E$OUBieMM%yVd^%-^~h)YjU;r#_@7J5lH4yB{^F@) z96kL=%VEmzxz?(ytH@5X?@PzC57{~N7N~9@yuGvsB$}?~ilpwN^jyi){Xp7as(vTt zi)XSfsh_6lk_eg9CtTl!)dVk>r0i?iXhhN9vcn?f2sZQA9{)ARGUv7-8ixXo2YzYT zwG9#S8>zf@$!}smcS5Z^P^5QzHsz3UDFGTn-}AOcES?PVN1ZlJ(|fjk92a&vUQ+5t zD6vn02Cmn6exmDRxhmy!%aG~ui~XIC)#Y`PaW_^u#k210q_)@Y>o)6p62)`D9<8fY zPey#IPhLH%7X&m#?2aS(h7xk`&=KSMJ~p@Tnh3r?rW@4r+I%aP*7ru&d^rfzZJwZv ztoPdK^Ek@v1EiKw3f>^2Yj{@*K0L2EAH2 z#*u+{1(S>2BZjjJpYF*u)&ELC^}kb4R}H2nS2Or41-nkIq#(XPe%w`Q@bTD>Ct|?o ze6o1M1$A4_OgTtW=~Z|Sa-i8nBk ziVhdp_W8QL>W7@tm{uxO)6*cD{*p=_Swc}}klVkp!XDBM((Uup?#{=mtC)7SHWF4+ zW~O$gQJK9MRjnq$n}z>jK@ZFTe|LcGS2w_&*_5VBb4gh8(|d$~S{xY^d-WZq(z%`i zuf9-oK#6)8I-S5Q2wZEl{N7+ZdT29PdYV*$jQwexEa=eo^+Hc){@8Kfxx_!}S2&hW3>YiNZLiQdJtA-D7^jL7RwR(^>N zzixZz?NrXgCz%_x8WScWefqU@T)nIlh9mF3c*8Tz@!2sslmAq_CLpEMTq6s^boi`; zx48e?;$r($D=^fpT)ViwuS@)cQ_xSpWsEMrZ5ou;))-88qvZx`H;Y|o02z6aZ;FF+ z<&BzYs6QqCQqIF)y!FU2SSyf4edIhKEKF#XrJ0^Km2Hd2jmjctOS*gYNR}8XRx!Fo zEl&8WB9Ndy@OoC2z1VtEUx2~|BL08X^mjqW7xX`aRRmd|8lBDKpDl84pUw60I2R`0 zdY~llSOM2jUOTDsWTKW%Z@&0!ani!!-K~)%nFxYJfHS}lJT+b{Oi#}QBXaV{Boz3F zJ(tfHiuk-;BA(eU;Yt1m>6w#U6cVJz<&xXLcqs{q%ph?&ZIC@1$TSp)>u`7wNsXj( z?u`kzx#x+8Xwk`B4gUHzvT`^rCICRk)xixtjk+Lltkx(*j?YTThST3;c+oILcdF7A_XmBbb1kJ?1xH%DWJ~O|3XXyJmwV0>zf*^<3;E{0 zUgH^=uy}M>(n)=kWXla6%!^t-M}vr3FEG)8y-Ia*Y{+2fSf*aJd@PZ=XYpKZCBig# zT;MQzP8K!uHg5CkZrLt@HaRn7PC1(S$IWWxy7>2XL3(L-M7(fEL5fFAcO8x@*EdhO$wZs z%LWT1hEPWfj_dBZB4aQ!3(*LXG^o?X1B$`?LHou4RWpa!186vadbQ$xG zIRgd4dI&C@6^kGwECgjP5}9Mp@Wf;s7G&;llZI=}qc(jETd82@CR1o+J`JLs>lziH z1=WM178Ntyy~&!#(?%)6svl+{q8oozZn$KoQKQ-PXtK_TsJj28`sMqh1lrwd-LEs++8Nh#JB%r@x3<;i zgQOz}SBKLLwkBD`Je{!me5!=IKbpSU6beo}&|@PD8P?wgahpv7?dI z2w}*Coi^aTzSjjQxbF8-mzyNj)Mwo6GT9878tqT#-}eTSH>)rR@`me?)B>l3q-iy* zMrd83Xi(ByuukxHuK3VD+n$aZe5LIn|F^2>q3qJLtDXX(7d`jVc~63U8zyopa$TO{ zj&*!>zFYS>-n7)`*6g#uEpNRn2sA2ND#C&jFz~|!#_n`Dq3B?GK9zrz!51(nyLnNL;cqbyvLj$}Tb$31`n80T9xk<}&44mApZGmnrnpyT>}5YcQ#{u2woo6) z&^bIf`&tclK}rhg%v+a(q%yrlQEpH5F95@Oi&ZB3ZVTR8OmEk_9qJfGZXC}eZW+|y zV^ROHb*#0ABRQW2`9TuUTMZ_`!aI;l;|A=p0S+7DO)J1UA55sAcb3d~T5Nk}I(M{` zy$9nn0r?%JXgVMbzOLXTWPCRAjObG!Q!{c6Ki-8+0<)=K;O18is+V4V%fK2M7rn5# z@n?)vU|4&XBn6)+Ugrw-Lkq-R>R_^-a5_a#Fh8A&u)%8nw_WL|Ay!lX`+rmresMnc zvg~=t=3~PhwQ(o>sOPx26LkzvkB+atYp8B!w*#IjFIw;2(6^<{O`7B`7H*X*c>*CA zy$=h}R`Q;fl9z9URTa~z2gO)gEnhBRvsoCU-7IPleKXa&k;PLq^2~80EF9d`4NeDR zXg7ZB=^}~w-SE9Bwb=X`z-YX7f<*%WbiKI>VDqtH5N1E`4G1J8*SsOEG(iD*9)uF( z(DUS6M@gBTR3io~cEmRRtOY(iO>yc>ED|CYR+V#tHk`ew-Gt+2Su^I zKSZucR^c#om+~=<x{S^aF1-rqz$%iv>4fvvM(3I5OE3Xvq zc-X93m{K?7muTp2=uCMQY`$Z$x)A3cTlA*S?w)aT1JYnCmA7!O zqW81^f?3svRSAj0t!Z02mSzWw(NK+l#tgX_1czPNBG+ z9d{aT5kK7x(#YG=thgg+ukQ(BK zfPf%6g%?jq3YPPuXnu4ai&A-x4Irafs}VGjIW5{8OCvzx;Qj$Cb1;_BjqMvy5ya5r zD-#tLiM)+{+D{-n?=O4`QmNo@G7EWc6trkXL}Ew!Xf$m9BJ>yn46-N>s9xpJ1_q&M zgd|n3RAG+l;vM_|f}@asZmz^`LQ5b3EDWpua!Tz;KWZXdCL5$Cig%pMg+?aj5?Oox z%mMlalvf*}=h8c=Eii^(& zE$(JVFV7AIUv7z9R|^enh&k3DQBmLah!O5{#pmKoNh#yW1RX|UtQ;E5knTk_WQQ>f zDHI4jjK|3|q|y~UcCNS_RzamQPOwgsp^z{ZgI+0OW3iYkm`f{rs^PVc+S*Pmfq)_r zI=Wy&5)4HcynGwe-E#%oM&}DqFwg)L3IYwHX6HZ<$Xif1ghTE`{q*8}wIK%e6|?Z+ zEwS0kd)?x2UaC;JU}-t$XGGW)4kD#U1NWr(a^LUAPWM#3@H9UiXH^g_sU~TveCg}o|&TwHy2!|W<@41vwZ?<+b zP`6-Q@=F2%IjEKKwiPsUOABiL2!9f?R5Tc+8OR{s<=BCW_{|evA(e6wbJTIX)J!Lq~=6aS?R{(R>b#}$IrBg zDihZH2>XGea>Cxerx5L=Sdn2yDO5S1YC>f)4pSJhBBlwz%=PnQGWqbG0KK-B5g;~; zGek9>C5xG7ExE9>ml#qWkPBdqGOEQ^MsYV_<#gCiLvyX$lpn{8%*5OjL(&-&isAY= z3f!vD5T>>BA*ssm8l7pzFtIdF(Heoh8rjK1y`K8zyE)U&Iyj(T2W==fs7xM}G0e3r z#a)pv)5LZkNd6Pr0T~&)u_1n@l+y_zy8cLCSRj2M1uR)7ih1?Si(qj9qlu-Q89mhihQ$UXHWU@yYWla zy%|Pa7msQn^;5<@^Mw_Mrsh%z$?ji@{cDWT|8G=waVu90w3T!vec+?Af>#ufSv;oX z|BN{E+0w$W>Hfqj-oEfB5!Syy4^iMFeq`)uCW}R(CR{N;O+?lrrqSghcLvMdlP%{` zsVo-V(}c=qaABcTdgB?Pl;dfbe9pvBNp2CPczC2sML-oDhXss68B&r7{e+QGaheua zD-HW_JXw6x1lEM}gh{cUSZSvrtV&7-a7J2M$lfZdkb4@YwHu49_Y@P~Jeh*((PoR& zWNG5X4m;CPsH>sgVs8&1)zmfOS6GhK*k=+*_z#)WE-9&5oaHv}EvswkE=Tw$ETilO z^fnsmOf5Hrg7ZcoL&1>nv7s7UX;Va>cj^6}GsgEvG2PW~Q(8ANrqd?|P0~`~I0waA z8dc*gF0(m}@^<7l#QvLeGd_i?&m>{h5&@LVPa7Ske>Z3wMVXc?n{ddqb2J=qV?BRq zYVTOQ3teN7XesPj*(SL2{h2^u#=Wun`lQz>H0Ly3!1`hcr?x*cN^Ijdh%mW)A)l>A zxVqV|Hf!6qq9d06(o_A1w0`}V=|A@Tr{2|j#N>Sdowy^v3<*wlh@-u zi-Qu%;kJ-}R^-178uVQS9_1KmQG`yg!lsbtf{<%*X90!XP%V5 zh??lgc^Z4=LCDrCU%n@Xhy@gPzL=j*^);u&i_HrS*L%x(o-CHTX@)G0%3#HNuy_nE zJbZnVDPx1G$}of6=1Zco3}x*M_Z0CJo*4n?^E{u`!Xi+pX6rFp=BQ!@;qe4XN>~pI znKHd9o+boz5IoJKTu&-Y3*J|3DiUE#c?2!k2;=NK(((y~SCwC~ra0CT57-UXA&JB- zW0$FYS;_D*g@Q8EofFSvB@G76rl;qiLM$oslJR^ajonk_R_I|}Gl~r*zVXAr(08P{ z!g;H|dT{9~B1zn6@$Pmm4v0`J52ZUK!v&U>k$l-IFFL6x=~!V<(0$;5Dg z#UD;ozqOOYa5)nbw*&g~HO9+*amXtMlZcL!u)EaT-9YKFkcr-dCVi;~VWhiT#zO~T ziDoW~j-^5QWu>r|^^J>u`q|^>en^l!vjFzMxFo~5MLUfawD}dh$^FKX`J^gq-Oldn zFF9}`YWninw)jya(uE(9DL-5rVtP89OJW9HGI6c-rgW}x-Cp+F9Wx4S?T!g$W@h&A z&tGG_HTcXE2z-L(O}~v03~hPjh-|dAJGrSX))jl|+~+QH%{_L#V3OlB1^|;WZK-;s z$mwcLO2Be=wlxy@uM(}dvMHnftCW3$rz3xr=+Q=t(@yol8_vYuSrutfmDl;;+Q;|j1#b0&If8&({jTiq_kM}6?(=w5RrtgWe(lGAiar|Vl!}~wJl=N zO95s}fWUw}XVvO%O|lB7!ZSMeV1d3$-^vu{BVdr z)#1nQ*d&;q-=d#}8G(O)xN1z(P#-M`9d=ZIs07X?t?}qcw(B>wCil4L^Y%Do8k0Ug z`#PtYf4a&CPK~Y=%!GWl7@q0MlrPq7V1W`ta;8L2zG~6$It-`OT9o`UV)UQgOAsB zDFbr*%e>4xbG=_0bjH1!F%&||3O7oJf+xUSPsyy>(vr&Hhws-Lwe&e@zu4(rGia0P z*(=9q5x^=d`M(?(-T&jj{B04V_BqzBI55_yWT?GPsXpf?Ugp;UmqNyy70q?VwBw`a z?RR_#xcE~T>Eyk4pI_t|eSLL_$4=pkoP_+8gM7jczA!Sjke6nQ{>saAUEP{iWNQ-OjtwFenb1k#h5UYKY7yF&@p*`KxZx-xQ5Lc+n(gkjUh&s1QKF{7 z?dZ|2MGJI*5)8%iZd+cO0cY6=(-IyA{;X*Wzd>)U>Ne5Q)#oY(zg2zA$n$ffP0V*x zSFir=-+g(AXq{bh3URon{2?{yZQiC&)_^ZvKOr?rW*^pwq z-O&-dFI`kz|URnuMRcK^i@I{Vn38!q$ys$uR- z-NM9+k7Dk;w+YO28hm&xu5kIo1}yfWa7B8ZX#Z81QoLDV1g}-WY)SZ5c!3 zJRbYw^!LQYYjx{R@S`A4`Y4`WnJ13hp3#u6a_MMYu*X2)0I zu`<`8LB%TF(Q5qbpTsd`>hcJiX9dipw$Ic)#dNMmdPnJBccqIJe7WpX7rH zcjN9CJq~vVX6J@q`zl{6>hzK+iv^uelz&L3fr0$1w%4<>`yK^Dp3YeJ3bxzzsM6$! z3CBNbWk}5%3pa2*xopc-8Oq3z$Beu6%dSE5`=Y&$luXXlRq4V9d|y6;uO4a}fo;E( z+6DZYp7esa?c0GVHnU>)Z45oAP@1wM0r`teQSX&U3!>?n2?qzZ-mk--@ge+pKqw>IVlV>x zkoC57GrkLxN-fMnqw&(R_*1814#5tS=>RN*W80{dqR`o9_V|5xPoIl2;iW4bW*D?T zALT`>k|rO3)w$cEVale_79s4|C3*MgUHCq_kF5xP45kG`Ww&LDQTL|qF4^8WWBXw2 z*L$#B>9K4~@j@t5B~b$KOH3lGjI!Ng-^${6$kR^QpCh#?ajU;qYLoao5rvyy%Fy0u z+iZvCo=dtW6ez@1^K$B?gi%S$0>jy%=R1H(FcbG`0Og$Xp{nJKmvOzo}N7qb%)!wI2=I9 zHlr}D^m12?oClrRsiTMqI++S!AXQvE30_T`bNvQey=Z7*ecRo z>s}ha29tvf*6UrkFxGWXO_;Sb{iNWf7L9672?Sr%=t&nZ{<`Kz5Y+9ap1JHV)lzS1EjM{R zAG|U0&o~Y=rJ>5RPwyg7?xpp*>z7s2n$z}!_EE2=gVQ1&_z$Q##?Z9NGPf_b_QJ$< zyVG)cPde=XSMziDk8=JtL|_{l+=l+69Ct^P(%^>473JW~@^4YyJLB%nzhS&Cw4~R6 zc2fcy_YE~$kl*;1${AP~W+RtDr8;pp3VAfDCy#_K6=uX$tmi5i1k$1PD5)a@E=Q%J zePluu1|ZO!R;?1rOWH1YVbCzxD)O;oJP`q=RV5~2w4hRQs+LTEf&U1|v86xy!w)cI zPp6(gfV-b(nYddAJVo2$3iqT3m9f27+K;66zxL4y3dv!Rbv*w4x9MhiAMP4jx&)ry-3 z%jFmMEaV+E7Jdu>cr&l^-~<~TT6|zC!4)f3hTZ?gi+Gy7Ycz1~QnL?u@Qe&nPTC;pAs_ih%<%e4B z-me4wdCaaM`hD6)i$PT6vIVul(T$%Y?{%dNg1lrpQ2H&v_^}$qh%37@KGb zboJ)&#TnO6!|Oy7Ny(Ahru<~iVpCI23A3sdT^P^kKx(jQ?lsOk!@<_BM~T}Z z8n<<&+%cmmY%W`xXC6)3icPN)@=Yfe7J>QT0OU!eX~I zDo9?Z&v9SvQ|KN1Z(~JQ&EX$>3wH2-rmNnkyMnmGRTIsRLU`eh^_xRCtl@y^PcwA)qlFp4$pZJ99uFP?59XZM0Vh=tpf)$0sS_6(JvPGc zq_&I6V8e+?I{pS2#UbnlC`wR^)ziQJ?W}OZ5cV`BWr%fj=JrbhW10EUoB&x zXU9iaT}8*c7uxAqxFU&m9#?>Z>xdCtkVi6r5<6DX`%>HU#1wt&zXay?#>U(9%15<^ z?{J!He}`RrBk7RIFBP=6b|*=M`!_KiqtULmK(g9^ymnoF6MDycZGowO!r0t@NAK=OjERP0C%pdS7qemC}88 ze{fAgUyFPGVKaM|{?k;|mn0<-doJ{%ZXw#DaO{_^CS9gce%Il9O1-3rkcAro@7sIg z;)9;?P`$DT@Z9yp!QG};l-qg!JE!01e^BWIYbR)Tw)TL%TBjU7_-b+k@IOn;Cue|U z@3mT}!DZF!O2QlHsH{j6>bpo_>bYu=p?(Otw>o}MQWAMrJi2NB_En!83_qvKo%CnIKKMRmLsxJji3yBBUY`+M|eo#*_$Y?4I5}0SyBIZRPC+H;AxSAlC3aegYWQW^w9-8-VWFRf* z0nL=?`qLmd>8N8a(J!n2X0F&Wa$;z9N4k~JG+C|9!9+tvf{XwGy^qykB1D*_8aFHV z5XHx_PmpY%UdIjcb{mj6TmZ3tKly3d;@zBjP6mZI^x%y;+$r|DjYSmq*z=NFy77gl zn2hukfrXQC1L9m18MggeTh!d@RXiKTXv=S@`Z&^6(I1O5@u43{@|{gx2U4O@3Js%U zh?b_WH>6qgyWE;)_}f)l#jQ1VWKI-whY$Me<}sK;v_n*AhG{*9q&I%33?LDpKMuw&Zn4JyeD?c z_8rEZS`UE-0X$vbRQlMhen4S zh%bv03fYxpDX;R7m|Mx_b2wZg7z9G^mzoy?1$-WzFXI+b+PCpZXbc6-CD#wu^F>$; z1|$@dN5Gug5jaUk#59Ak*_@tXI2?n;0q8LfxM$+^JPwBilhN2Ozkhvn_}ob@sr@Bo zPQ6K8F={NX%3G%aC+X20ryItTjfAiu%fjj@^;EKc{6y5f>7*=EhD%$Uh1U(w&TsnV zAN|whIpzveqFT+Hx~XiAO;F~tUxiI}Gsz5VLC${t{vO8iXAiovhd!46Xzh23cqf+#J{1^wDVdp;3j+j=*(?#dz@l~5j? z`cduU)Q=0MYluVoxaBtZ6OQ=i_wVcfNx`8j?9=i8<)161A*4ufd@TBYvuBo*hnwkw zX9b$K``jbd(aX?-Z*k@ZCTF&k<;0cCn%vo*A_sxTk>oHe8W4*@LZdu*g0N6?scMh7 zlr2DktE$m_ISHL(n#nsOGsiRlrc6&}Lj%ve=;}4>4R9TB1760vfhFZV%5A+0sMzRcS@mpYFdL1Ibqr^Wio9IKzmI@$Wk7i*|0Ap=8w2SCMb+rLE$tHkXq9XOnk4k~X$=FGwI5U=6=?S-n9H4ZLtY>|m9@)|pg= z-r?!yrAvWzVIiwZz3=363kwrQkXJ9hec+Pv4>KRSl6sCS#rogr_t%mV@-g_@vpVmF zyjaYK5bn!gv!!i5jmY;MPwzkHKOLDk+P!OeVmCde_h&Jel}g^vPGx(g?B?RB!3+!< zlO^Tj(P$u;$72`l=aMRpt*|#n9h%2UZ8^{4v4D0k>{vVI3bh>oUxk5tE?)t7a2Vz` z9-z`_0Gh+OeEZQ|8WoQ(g28W0PxIkm(Cg0tYPTH8 zxKbLb`L4+sI7~SLBrwy{Q?gNL^kFJMFQQU~=CHhcimC{xpuk{7wRLp9IKHU5rU+AA zxZ)Zxc}z-0Q#Iz=1sXF0%_COB(bs{Sv>iPa`E+~&&xg7s%BHg}ez9Abr&iXkSOOKH*SyXE5#cIXRWVJV-S(G+~OkS{clp^8JUH z)R>}@17cJLRYs06|kJaVpy*>&ux^T>G!w%@9qdb19}*`Gwhe(8&`BDM3S z!MWa1xg%M`7cqzZ9T+LO#B(JlsF!}4FttY5ELPbw@J93*dARjbQym*R`)j#(=f^aJ z9d&-Goa2}_K(uJuHDhX0iztJSelE9c>&ea5<-}HHU(PTc&UvnUQeo}kpy!T6LArI+ zZ|gRjduG|g{)e(9JjefiI%Mb5cN^_xDLa!MeLK1Rl~+pMncx7} z3fZpA(1e)mSG4Vg(}sikL3pEGS#pBx=HiA z%hTt>*J5FW(nGpO4E{kq{!=yo%g68qx1Q=-O<7fpHu9OgJm*JaVe6)bTPGjHX0~Mp zJ&5_88gNcrjR@ht{1{^LAZ%B5#(aoK%aF=)<1hktri-{NPcvV#H%}&@M+gv96NDCo zgp4v13z6x7)+zcf6KV+d_<=3^87vmiLO1JZp^A6K$VgPiN=Wxtb|Ow<#pE<9gd-Gi zaERaoWJC+!{pLs-eKv+a_(sg_r{KDxyu4R#-H3^4Cb3e{6c*rx2fd|^fSiK(>CxG`j3u{VRd0pUwu|;UQXJvV>H1~A) zd&%-u>Dl943qQycuD`mzi6OF1CJ|4HJ2R z*69HTT`^6c&Y_)5GL;mXyCx(gBs0It%TX`d&}Y*xktTgXdL2{)6;tjXKGnrrhE~U2 zS{ffmn7(;$XQi=*UkTsX9@P(Nk_RZdsaqz_88#7Vg#-?GQNUQ@7=_K^$gSYl*a9wi@3s56X5a^!G;yT_{+g#8m5SO&16_xdrApF4LpZEG_L9-kvmJ6+GshSx? zj-=yuQ9ccx#Uf#&i-A*#x8Jz0#uU9xYce(Kb>n8VYLDXv?>K1^4u=Mw6F{*)G!iSSR!^O@VQ zKT-0$S4F%Q;z~pHnkc_wO~fheH0@2_zI>^JLBBz$dT|hk);=(izw+sYestt>81i>1 z$a!!3Xr+N(aHKsMO!f_ir1|@+)WH!QOX}&!%h+n)O??u3D(`cOwt;|8eVMnhugVyT zoa(1iWKy6PRG?S2rO;VmWunjTnx9ks@5>ecUYzAV8|sgZ#jbneJRWUWdJz|W=e^Fs zI`_R>FTuhAPNx$gkurPypv!M{!R4}5=-W@yLOfO&6&BbSF5VZmou4lj=DUiwY?9_5 z-6=ROL~KQoIW){JDfS=@VoWB{LJK$uX2CWgzy@gU8+ca(FN!fV_UedU45!ZNh!_F_ zp-M1YamC`H!#oimvAW%nPvfy`GiF~sXJ!NZe(8hNBoXGyYygv7Kz_iyDg~*(3-k##>`cysE=W;?h=4J2NSeoyB zzc=g&7MpZhjz&>s+TUfJKG@Ha&9u5=?M=ZmMf+=rdA#p^NnhT`E)!l#`>N!<+IiUK zq~OlBO{P42v~}Fxv0RffJr^cqY%TKk!-{Bn@E3~@Y6e@}lndT-rbn-okj~QF?#g=F zo!6NLAd38t`r2!mIrq4>uFr&#FNV&lpDq}U`=xSm>wQhEqNEwi$)PbMA;QV^V z-%wL%ux({h%KFra2#vY(Hq=GyBYmqQB<_KA`hlOif~^nYSn1h%B?Tu6G5H{*S7>9S zBS+_R%;)E2b(VbPz;Rz%kMD2T*)Da+wrA5X)H~L`e&O=7_t8Nk@;5m|1FSdw9Klf} zscT~-mJ+jcItnm88hkVW=Ml2^mb@yd@a-O5Zo&%&w#V78-2D0{k!ZTKQ_? z#PCrWtZZXLjMEQKwwyM|8Lz>e-})iS4J#s%71d%50u;m)j0VD`)iv!raje-czreL!z1mzX z<{~e%S9}B{(dsJ67N~2jy6MRAF*=-fV2sCVACr?VBd_f#loD6GnZgxDEtZLJMu}Ed zcU;U<=~(0?+h`;?wSQBOn2v#uY31xwT@r3(`!uk^UQIif6>VISnL`C7k`ty03xa!UKzZ7Xa^N~ z#lC&z-LuPbrYwkL(hCmBcYj^>m+t-)yN87Cr}#&NhWp3t3ZkrA??5@|zn>DgFJga8 m^nt*?o(05F!b8LSBP8Jm;zRfPuL+D-_i%G_m2Gra6a9bnAWmlh diff --git a/Docs/MySQL-logos/mysql_anim-02.gif b/Docs/MySQL-logos/mysql_anim-02.gif deleted file mode 100644 index cfd3e1cfc3e3c76ac402e91b41b4fafbe565187a..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21236 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 Rcup!fI53du?h^#s_J1htpWy%i diff --git a/Docs/MySQL-logos/mysql_anim-03.gif b/Docs/MySQL-logos/mysql_anim-03.gif deleted file mode 100644 index 6ac6b3ebcc10ad72e73c82cbc275cff50a3e269c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 16958 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 U7vQ0OAV$Q_#>SGr+ZNFNe^<(0N&o-= diff --git a/Docs/MySQL-logos/mysql_anim-05.gif b/Docs/MySQL-logos/mysql_anim-05.gif deleted file mode 100644 index 46f288ef71d36c46cf9569bc8741e1f408f6d596..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 22962 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 diff --git a/Docs/MySQL-logos/mysql_anim-06.gif b/Docs/MySQL-logos/mysql_anim-06.gif deleted file mode 100644 index 3dc283dbfb6d390a513815b0cb76592f92728a50..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 42606 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

v$GnPwu~osj<-{nf415kE>E!*kwRjw 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 diff --git a/Docs/Support/.cvsignore b/Docs/Support/.cvsignore deleted file mode 100644 index 8772614a6b6..00000000000 --- a/Docs/Support/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -manual.html -manual_toc.html diff --git a/Docs/Support/colspec-fix.pl b/Docs/Support/colspec-fix.pl deleted file mode 100755 index 6c64edd1441..00000000000 --- a/Docs/Support/colspec-fix.pl +++ /dev/null @@ -1,78 +0,0 @@ -#!/usr/bin/perl -w - -# -# Script to rewrite colspecs from relative values to absolute values -# - -# arjen 2002-03-14 append "cm" specifier to colwidth field. - -use strict; - -my $table_width = 12.75; # Specify the max width of the table in cm -my $gutter_width = 0.55; # Specify the width of the gutters in cm - -my $str = join '', <>; # Push stdin (or file) - -$str =~ s{([\t ]*(\s*)+)} - {&rel2abs($1)}ges; - -print STDOUT $str; -exit; - -# -# Definitions for helper sub-routines -# - -sub msg { - print STDERR shift, "\n"; -} - -sub rel2abs { - my $str = shift; - my $colnum = 1; - - my @widths = (); - my $total = 0; - my $output = ''; - - my $gutters; - my $content_width; - my $total_width; - my @num_cache; - - $str =~ /^(\s+)/; - my $ws = $1; - - while ($str =~ m//g) { - $total += $1; - push @widths, $1; - } - - msg("!!! WARNING: Total Percent > 100%: $total%") if $total > 100; - - if (! $total) { - die 'Something bad has happened - the script believes that there are no columns'; - } - - $gutters = $#widths * $gutter_width; - $content_width = $table_width - $gutters; - # Don't forget that $#... is the last offset not the count - - foreach (@widths) { - my $temp = sprintf ("%0.2f", $_/100 * $content_width); - $total_width += $temp; - - if ($total_width > $content_width) { - $temp -= $total_width - $content_width; - msg("!!! WARNING: Column width reduced from " . - ($temp + ($total_width - $content_width)) . " to $temp !!!"); - $total_width -= $total_width - $content_width; - } - - $output .= $ws . '' . "\n"; - ++$colnum; - push @num_cache, $temp; - } - - return $output . "\n$ws"; -} diff --git a/Docs/Support/docbook-fixup.pl b/Docs/Support/docbook-fixup.pl deleted file mode 100755 index 48ab085ad3e..00000000000 --- a/Docs/Support/docbook-fixup.pl +++ /dev/null @@ -1,200 +0,0 @@ -#!/usr/bin/perl -w - -# Fix the output of `makeinfo --docbook` version 4.0c -# Convert the broken docbook output to well-formed XML that conforms to the O'Reilly idiom -# See code for detailed comments -# Authors: Arjen Lentz and Zak Greant (original code by Jeremy Cole) - -use strict; - -my $data = ''; -my @apx = (); -my $apx = ''; -my @nodes = (); -my $nodes = ''; - -msg ("-- Post-processing `makeinfo --docbook` output --"); -msg ("** Written to work with makeinfo version 4.0c **\n"); - -msg ("Discarding DTD - not required by subsequent scripts"); -# <> is a magic filehandle - either reading lines from stdin or from file(s) specified on the command line -<>; - -msg ("Create an XML PI with ISO-8859-1 character encoding"); -$data = ""; - -msg ("Get the rest of the data"); -$data = $data . join "", <>; - -msg ("Add missing and opening tags"); -# Note the absence of the g (global) pattern modified. This situation can only happen once. -# ...as soon as we find the first instance, we can stop looking. -$data =~ s///; - - -# arjen 2002-05-01 -msg ("Processing docbook-prefix special strings"); -$data =~ s/FIXUPmdashFIXUP/\&mdash\;/g; - -$data =~ s/FIXUPdoubledashFIXUP/--/g; - -$data =~ s/FIXUPstrongFIXUP//g; -$data =~ s/FIXUPendstrongFIXUP/<\/emphasis>/g; - -$data =~ s/FIXUPemphFIXUP//g; -$data =~ s/FIXUPendemphFIXUP/<\/emphasis>/g; - -$data =~ s/FIXUPfileFIXUP//g; -$data =~ s/FIXUPendfileFIXUP/<\/filename>/g; - -$data =~ s/FIXUPsampFIXUP//g; -$data =~ s/FIXUPendsampFIXUP/<\/literal>/g; - - -msg ("Removing mailto: from email addresses..."); -$data =~ s/mailto://g; - -msg ("Removing INFORMALFIGURE..."); -$data =~ s{.+?} - {}gs; - -msg ("Convert ampersand to XML escape sequence..."); -$data =~ s/&(?!\w+;)/&/g; - -# arjen 2002-05-01 -msg ("Changing (TM) to XML escape sequence..."); -$data =~ s/MySQL \(TM\)/MySQL™/g; -$data =~ s{TM} - {™}g; - -# arjen 2002-05-01 -msg ("Changing ' -- ' to XML escape sequence..."); -$data =~ s/ -- /—/g; - -msg ("Changing @@ to @..."); -$data =~ s/@@/@/g; - -msg ("Rework references of the notation ''"); -# Need to talk to Arjen about what the bits are for -$data =~ s/<(\d)>/[$1]/g; - -msg ("Changing '_' to '-' in references..."); -$data =~ s{((?:id|linkend)=\".+?\")} - {&underscore2hyphen($1)}gex; - -msg ("Changing ULINK to SYSTEMITEM..."); -$data =~ s{\s*} - {$1}gs; - -msg ("Adding PARA inside ENTRY..."); -$data =~ s{(.*?)} - {$1}gs; - -msg ("Fixing spacing problem with titles..."); -$data =~ s{()(\w{2,})} - {$1 $2}gs; - -msg ("Adding closing / to XREF and COLSPEC tags..."); -$data =~ s{<(xref|colspec) (.+?)>} - {<$1 $2 />}gs; - -# arjen 2002-04-26 -msg ("Removing separate target titles from LINKs and make them XREFs..."); -$data =~ s{.+?} - {}gs; - -# Probably need to strip these -msg ('Adding "See " to XREFs that used to be @xref...'); -$data =~ s{([.'!)])\s*(\s*.+?)} - {$1$2\n$1\n$1}gs; - -msg ("Removing EMPHASIS inside THEAD..."); -$data =~ s{(.+?)} - {"".&strip_tag($1, 'emphasis').""}gsex; - -msg ("Removing empty PARA..."); -$data =~ s{\s*} - {}gs; - -msg ("Removing lf before /PARA in ENTRY..."); -$data =~ s{\n()} - {$1}gs; - -msg ("Removing whitespace before /PARA if not on separate line..."); -$data =~ s{(\S+)[\t ]+} - {$1}g; - -msg ("Removing PARA around INDEXTERM if no text in PARA..."); -$data =~ s{((?:(?:<(primary|secondary)>[^>]+)+?)+?)\s*} - {$1}gs; - -@apx = ("Users", "MySQL Testimonials", "News", "GPL-license", "LGPL-license"); - -foreach $apx (@apx) { - msg ("Removing appendix $apx..."); - $data =~ s{(.+?)} - {}gs; - - # Skip to next appendix regex if the regex did not match anything - next unless (defined $&); - - msg ("...Building list of removed nodes..."); - - # Split the last bracketed regex match into an array - # Extract the node names from the tags and push them into an array - foreach (split "\n", $&) { - push @nodes, $1 if /<\w+ id=\"(.+?)\">/ - } -} - -# 2002-02-22 arjen@mysql.com (added fix " /" to end of regex, to make it match) -msg ("Fixing references to removed nodes..."); -# Merge the list of node names into a set of regex alternations -$nodes = join "|", @nodes; - -# Find all references to removed nodes and convert them to absolute URLs -$data =~ s{<\w+ linkend="($nodes)" />} - {&xref2link($1)}ges; - -print STDOUT $data; -exit; - -# -# Definitions for helper sub-routines -# - -sub msg { - print STDERR "docbook-fixup:", shift, "\n"; -} - -sub strip_tag($$) { - (my $str, my $tag) = @_; - $str =~ s{<$tag>(.+?)}{$1}gs; - return $str; -} - -sub underscore2hyphen($) { - my $str = shift; - $str =~ tr/_/-/; - return $str; -} - -sub xref2link { - my $ref = shift; - $ref =~ tr/ /_/; - $ref =~ s{^((.)(.).+)$}{$2/$3/$1.html}; - return "http://www.mysql.com/doc/" . $ref; -} - -# We might need to encode the high-bit characters to ensure proper representation -# msg ("Converting high-bit characters to entities"); -# $data =~ s/([\200-\400])/&get_entity($1)>/gs; -# There is no get_entity function yet - no point writing it til we need it :) diff --git a/Docs/Support/docbook-prefix.pl b/Docs/Support/docbook-prefix.pl deleted file mode 100755 index e76d84dbfe0..00000000000 --- a/Docs/Support/docbook-prefix.pl +++ /dev/null @@ -1,50 +0,0 @@ -#!/usr/bin/perl -w - -# Preprocess the input of `makeinfo --docbook` version 4.0c -# Authors: Arjen Lentz and Zak Greant (started by arjen 2002-05-01) - -use strict; - -my $data = ''; - -msg ("-- Pre-processing `makeinfo --docbook` input --"); -msg ("** Written to work with makeinfo version 4.0c **\n"); - -# <> is a magic filehandle - either reading lines from stdin or from file(s) specified on the command line -msg ("Get the data"); -$data = join "", <>; - -msg ("Replacing '\@-' with FIXUPmdashFIXUP"); -$data =~ s/\@-/FIXUPmdashFIXUP/g; - -msg ("Replacing '--' with FIXUPdoubledashFIXUP"); -$data =~ s/--/FIXUPdoubledashFIXUP/g; - -msg ("Turning \@strong{} into LITERAL blocks"); -$data =~ s/\@strong\{(.*?)\}/FIXUPstrongFIXUP$1FIXUPendstrongFIXUP/gs; - -msg ("Turning \@emph{} into LITERAL blocks"); -$data =~ s/\@emph\{(.*?)\}/FIXUPemphFIXUP$1FIXUPendemphFIXUP/gs; - -msg ("Turning \@file{} into LITERAL blocks"); -$data =~ s/\@file\{(.*?)\}/FIXUPfileFIXUP$1FIXUPendfileFIXUP/gs; - -msg ("Turning \@samp{} into LITERAL blocks"); -$data =~ s/\@samp\{\@\{\}/FIXUPsampFIXUP\@\{FIXUPendsampFIXUP/g; -$data =~ s/\@samp\{\@\}\}/FIXUPsampFIXUP\@\}FIXUPendsampFIXUP/g; -$data =~ s/\@samp\{\@\{n\@\}\}/FIXUPsampFIXUP\@\{n\@\}FIXUPendsampFIXUP/g; -$data =~ s/\@samp\{(.*?)\}/FIXUPsampFIXUP$1FIXUPendsampFIXUP/gs; - - -msg ("Write the data"); -print STDOUT $data; -exit; - -# -# Definitions for helper sub-routines -# - -sub msg { - print STDERR "docbook-prefix: ", shift, "\n"; -} - diff --git a/Docs/Support/docbook-split b/Docs/Support/docbook-split deleted file mode 100755 index eafb437efe4..00000000000 --- a/Docs/Support/docbook-split +++ /dev/null @@ -1,70 +0,0 @@ -#! /usr/bin/perl -w -# O'Reilly's Perl script to chop mysql.xml into separate ch/apps/index files. -# The indexes are actually not used, they're created straight from the xrefs. -# Breaks the MySQL reference manual into chapters, appendices, and indexes. - -use strict; - -my $app_letter = "a"; # Start appendix letters at "a" -my $chap_num = 1; # Start chapter numbers at one (there is no preface) -my $directory = "mysql_refman_" . time; -my $ext = ".xml"; -my $line = ""; -my $output_name = ""; -my $start_text = ""; - -mkdir $directory unless -d $directory; - -while (defined $line) { - if ($line =~ /(.*)/i ) { - $start_text = $1 . $2 . $3; - $output_name = lc($2) . $ext; - &process_file("index"); - } - else { - # Skip junk in between chapters, appendices and indexes. - $line = <>; - } -} - -sub process_file { - my $marker = shift; - my $path = "$directory/$output_name"; - - open (OUTPUT_FILE, ">$path") or die "Cannot open $path"; - - print STDERR "Creating $path\n"; - - # Print out XML PI - print OUTPUT_FILE "\n"; - - # Print whatever happened to appear at the end of the previous chapter. - print OUTPUT_FILE "$start_text\n" if $start_text; - - while (defined $line) { - $line = <>; - - # Note: Anything after the terminating marker is lost, just like - # lines in between chapters. - if ($line =~ /(.*<\/\s*$marker\s*>)/i ) { - print OUTPUT_FILE "$1\n" if $1; - close OUTPUT_FILE; - return; - } - print OUTPUT_FILE $line; - } -} - -exit 0; diff --git a/Docs/Support/make-docbook b/Docs/Support/make-docbook deleted file mode 100755 index 93dbc56c0f8..00000000000 --- a/Docs/Support/make-docbook +++ /dev/null @@ -1,29 +0,0 @@ -#!/bin/sh -# 2002-01-30 arjen@mysql.com -# Use this to create mysql.xml (the DocBook XML format output of manual.texi) -# Requires makeinfo 4.0c - -#create include.texi with version/port # - echo "@c This file is autogenerated by the Makefile" > include.texi - echo -n "@set mysql_version " >> include.texi -# grep "AM_INIT_AUTOMAKE(mysql, " ../configure.in | \ -# sed -e 's;AM_INIT_AUTOMAKE(mysql, ;;' -e 's;);;' >> include.texi -# 2002-04-26 arjen - the below just picks #.# instead of #.#.#-alpha -# (code by mwagner - tnx) - grep "AM_INIT_AUTOMAKE(mysql, " ../configure.in | \ - perl -p -e 's/AM_INIT_AUTOMAKE\(mysql,\s(\d+\.\d+)\..+/$1/' >> include.texi - echo -n "@set default_port " >> include.texi - grep "MYSQL_TCP_PORT_DEFAULT=" ../configure.in | \ - sed -e 's;MYSQL_TCP_PORT_DEFAULT=;;' >> include.texi - -# produce DocBook XML - Support/docbook-prefix.pl < manual.texi |\ - makeinfo --force --no-ifinfo --docbook -o - |\ - Support/docbook-fixup.pl > mysql.xml - - # See if the XML output is well-formed - xmlwf mysql.xml - - # If all is well, keep processing - cat mysql.xml | Support/colspec-fix.pl | Support/docbook-split; - diff --git a/Docs/Support/make-makefile b/Docs/Support/make-makefile deleted file mode 100755 index 79cf06091fe..00000000000 --- a/Docs/Support/make-makefile +++ /dev/null @@ -1,7 +0,0 @@ -#!/bin/sh -# Use this when you have deleted Makefile and do not want to do a full -# build to get it back - -cd .. -automake --gnu Docs/Makefile -CONFIG_FILES=Docs/Makefile CONFIG_HEADERS= sh ./config.status diff --git a/Docs/Support/test-make-manual b/Docs/Support/test-make-manual deleted file mode 100755 index bd4ed4b04e3..00000000000 --- a/Docs/Support/test-make-manual +++ /dev/null @@ -1,137 +0,0 @@ -#!/bin/sh - -needed_flags=0 -needed_texi2html=0 -needed_texinfo_tex=0 -needed_include_texi=0 - -if [ -z $BROWSER ]; then - BROWSER=netscape - echo "BROWSER not set, using $BROWSER" -fi - -die () -{ - echo - echo $1 - cleanup - exit 1 -} - -cleanup () -{ - echo "Cleaning up..." - if [ $needed_flags ]; then - bk clean Flags - fi - - if [ $needed_texi2html ]; then - bk clean Support/texi2html - fi - - if [ $needed_texinfo_tex ]; then - bk clean Support/texinfo.tex - fi - - if [ $needed_include_texi ]; then - rm -f include.texi - fi - - for file in \ - manual.aux manual.cp manual.cps manual.dvi \ - manual.fn manual.fns manual.ky manual.html \ - manual.pg manual.toc manual.tp manual.vr \ - mysql.info manual_toc.html ; - do - rm -f $file - done - -} - - -if [ -e Flags/usa.txt ]; then - echo "Good, Flags are there." -else - echo -n "Checking out Flags..." - bk edit Flags >/dev/null 2>&1 - echo " Done." - needed_flags=1 -fi - -if [ -e Support/texi2html ]; then - echo "Good, texi2html is there." -else - echo -n "Checking out texi2html..." - bk edit Support/texi2html >/dev/null 2>&1 - echo " Done." - needed_texi2html=1 -fi - -if [ -e Support/texinfo.tex ]; then - echo "Good, texinfo.tex is there." -else - echo -n "Checking out texinfo.tex..." - bk edit Support/texinfo.tex >/dev/null 2>&1 - echo " Done." - needed_texinfo_tex=1 -fi - -if [ -e include.texi ]; then - echo "Good, include.texi is there." -else - echo -n "Creating include.texi..." - bk edit ../configure.in >/dev/null 2>&1 - echo "@c This file was generated by test-make-manual" > include.texi - echo -n "@set mysql_version " >> include.texi - grep "AM_INIT_AUTOMAKE(mysql, " ../configure.in | \ - sed -e 's;AM_INIT_AUTOMAKE(mysql, ;;' -e 's;);;' >> include.texi - echo -n "@set default_port " >> include.texi - grep "MYSQL_TCP_PORT_DEFAULT=" ../configure.in | \ - sed -e 's;MYSQL_TCP_PORT_DEFAULT=;;' >> include.texi - echo " Done." - needed_include_texi=1 -fi - -echo -n "Running makeinfo..." -makeinfo --no-split -I . manual.texi - -if [ $? != 0 ]; then - die "Manual has errors - fix before you commit" -else - echo " Looks good." -fi - - -echo -n "Running texi2html..." -/usr/bin/perl ./Support/texi2html -iso -number manual.texi - -if [ $? != 0 ]; then - die "Manual has errors - fix before you commit" -else - echo " Looks good." -fi - - -echo -n "Running texi2dvi..." -texi2dvi --batch manual.texi > texi2dvi.out - -if [ $? != 0 ]; then - die "Manual has errors - fix before you commit (saved in texi2dvi.out)" -else - rm texi2dvi.out - echo " Looks good." -fi - -echo -echo -echo "Please examine your modifications in \`manual.html'." -echo -echo "If you would like to use a different browser, set the 'BROWSER' environment" -echo "variable." -echo - -$BROWSER file:`pwd`/manual_toc.html - -echo "-- Press Enter to Continue --" -read junk -cleanup diff --git a/Docs/Support/test-make-manual-de b/Docs/Support/test-make-manual-de deleted file mode 100755 index a5c03001bda..00000000000 --- a/Docs/Support/test-make-manual-de +++ /dev/null @@ -1,137 +0,0 @@ -#!/bin/sh - -needed_flags=0 -needed_texi2html=0 -needed_texinfo_tex=0 -needed_include_texi=0 - -if [ -z $BROWSER ]; then - BROWSER=netscape - echo "BROWSER not set, using $BROWSER" -fi - -die () -{ - echo - echo $1 - cleanup - exit 1 -} - -cleanup () -{ - echo "Cleaning up..." - if [ $needed_flags ]; then - bk clean Flags - fi - - if [ $needed_texi2html ]; then - bk clean Support/texi2html - fi - - if [ $needed_texinfo_tex ]; then - bk clean Support/texinfo.tex - fi - - if [ $needed_include_texi ]; then - rm -f include.texi - fi - - for file in \ - manual.de.aux manual.de.cp manual.de.cps manual.de.dvi \ - manual.de.fn manual.de.fns manual.de.ky manual.de.html \ - manual.de.pg manual.de.toc manual.de.tp manual.de.vr \ - mysql.de.info manual.de_toc.html ; - do - rm -f $file - done - -} - - -if [ -e Flags/usa.txt ]; then - echo "Good, Flags are there." -else - echo -n "Checking out Flags..." - bk edit Flags >/dev/null 2>&1 - echo " Done." - needed_flags=1 -fi - -if [ -e Support/texi2html ]; then - echo "Good, texi2html is there." -else - echo -n "Checking out texi2html..." - bk edit Support/texi2html >/dev/null 2>&1 - echo " Done." - needed_texi2html=1 -fi - -if [ -e Support/texinfo.tex ]; then - echo "Good, texinfo.tex is there." -else - echo -n "Checking out texinfo.tex..." - bk edit Support/texinfo.tex >/dev/null 2>&1 - echo " Done." - needed_texinfo_tex=1 -fi - -if [ -e include.texi ]; then - echo "Good, include.texi is there." -else - echo -n "Creating include.texi..." - bk edit ../configure.in >/dev/null 2>&1 - echo "@c This file was generated by test-make-manual" > include.texi - echo -n "@set mysql_version " >> include.texi - grep "AM_INIT_AUTOMAKE(mysql, " ../configure.in | \ - sed -e 's;AM_INIT_AUTOMAKE(mysql, ;;' -e 's;);;' >> include.texi - echo -n "@set default_port " >> include.texi - grep "MYSQL_TCP_PORT_DEFAULT=" ../configure.in | \ - sed -e 's;MYSQL_TCP_PORT_DEFAULT=;;' >> include.texi - echo " Done." - needed_include_texi=1 -fi - -echo -n "Running makeinfo..." -makeinfo --no-split -I . manual.de.texi - -if [ $? != 0 ]; then - die "Manual has errors - fix before you commit" -else - echo " Looks good." -fi - - -echo -n "Running texi2html..." -/usr/bin/perl ./Support/texi2html -iso -number manual.de.texi - -if [ $? != 0 ]; then - die "Manual has errors - fix before you commit" -else - echo " Looks good." -fi - - -echo -n "Running texi2dvi..." -texi2dvi --batch manual.de.texi > texi2dvi.out - -if [ $? != 0 ]; then - die "Manual has errors - fix before you commit (saved in texi2dvi.out)" -else - rm texi2dvi.out - echo " Looks good." -fi - -echo -echo -echo "Please examine your modifications in \`manual.de.html'." -echo -echo "If you would like to use a different browser, set the 'BROWSER' environment" -echo "variable." -echo - -$BROWSER file:`pwd`/manual.de_toc.html - -echo "-- Press Enter to Continue --" -read junk -cleanup diff --git a/Docs/Support/trivial-makeinfo-4.0c.patch b/Docs/Support/trivial-makeinfo-4.0c.patch deleted file mode 100644 index b2446c0e8bb..00000000000 --- a/Docs/Support/trivial-makeinfo-4.0c.patch +++ /dev/null @@ -1,11 +0,0 @@ ---- alt-multi.c Sun Apr 14 10:03:19 2002 -+++ multi.c Tue May 22 20:52:33 2001 -@@ -287,7 +287,7 @@ - && *params != '\n' && *params != '@') - params++; - setup_output_environment (i, -- (int) ((columnfrac * 100.00) + 0.49)); -+ (int) (columnfrac * (fill_column - current_indent) + .5)); - } - } - diff --git a/Docs/Support/xwf b/Docs/Support/xwf deleted file mode 100755 index 38f89774fe8..00000000000 --- a/Docs/Support/xwf +++ /dev/null @@ -1,67 +0,0 @@ -#!/usr/bin/perl -w -# -# Parse document and report first syntax (well-formedness) error found. -# - -use strict; -use XML::Parser; -use Getopt::Std; - -my %opts; -getopts('e', \%opts); -my $ENTREFS = exists( $opts{'e'} ); # flag: check ent refs - -my $parser = XML::Parser->new( - ErrorContext => 2, # output error context - ); - -# get input from files -if( @ARGV ) { - foreach( @ARGV ) { - my $file = $_; - unless( -r $file ) { - print STDERR "ERROR: Can't open '$file'.\n"; - return; - } - my $input = ''; - open( F, $file ); - while( ) { $input .= $_; } - close F; - - # parse and report errors - if( &parse_string( $input )) { - print STDERR "ERROR in $file:\n$@\n"; - } else { - print STDERR "'$file' is well-formed.\n"; - } - } - print "All files checked.\n"; - -# get input from STDIN -} else { - my $input = ""; - while( ) { $input .= $_; } - if( &parse_string( $input )) { - print STDERR "ERROR in stream:\n$@\n"; - } else { - print STDERR "No syntax errors found in XML stream.\n"; - } -} - - -# parse the string and return error message -# -# NOTE: By default, entity refs are not expanded. XML::Parser can be -# told not to expand entity refs, but will still try to find -# replacement text just in case, which we don't want. Therefore, we -# need to do a stupid regexp replacement, removing entities from input. -# -sub parse_string { - my $string = shift; - unless( $ENTREFS ) { - $string =~ s/\&[^\s;]+;//g; # remove entity references - } - eval { $parser->parse( $string ); }; - $@ =~ s/at \/.*?$//s; # remove module line number - return $@; -} diff --git a/Docs/Tutorial-MySQL-final.txt b/Docs/Tutorial-MySQL-final.txt deleted file mode 100644 index bd52554a611..00000000000 --- a/Docs/Tutorial-MySQL-final.txt +++ /dev/null @@ -1,1643 +0,0 @@ -8 Tutorial MySQL -======================= - -Este capítulo ofrece un tutorial de introducción a MySQL, mostrando cómo usar el programa cliente -mysql para crear y usar una simple base de datos. mysql (al que algunas veces nos referimos como -"monitor terminal" o simplemente "monitor") es un programa interactivo que te permite conectarte a -un servidor MySQL, ejecutar consultas y observar los resultados. mysql puede ser usado también en -modo batch: escribes tus consultas en un fichero de texto, para después pedirle a mysql que -ejecute el contenido del fichero. Se cubren aquí esas dos formas de usar de usar mysql. - -Para ver una lista de opciones proporcionadas por mysql, lánzalo con las opción --help : - - shell> mysql --help - -Este capítulo asume que mysql está instalado en tu máquina, y que hay disponible un servidor al que -te puedes conectar. Si esto no es así, contacta con tu administrador MySQL. (Si el administrador -eres tú, necesitarás consultar otra sección de este manual). - -El capítulo describe el proceso completo de configurar y usar una base de datos. Si estás interesado -sólo en acceder una base de datos ya existente, querrás saltar las secciones que describen cómo -crear la base de datos y las tablas que la contienen. - -Dado que este capítulo es un tutorial básico, se dejarán en el tintero muchos -detalles. Consulta las secciones relevantes del manual para más información sobre los temas -aquí cubiertos. - - -8.1 Conectando y desconectando del servidor -============================================= - - -Para conectarse al servidor, generalmente necesitarás facilitar un nombre de usuario MySQL cuando -lances el cliente mysql y, lo más probable, también un password. Si el servidor se está ejecutando -en una máquina distinta a la que estás conectado, necesitarás especificar también un nombre de -host. Contacta con tu administrador para averiguar qué parámetros de conexión necesitas usar para -conectar (es decir, qué host, nombre de usuario y password usar). Una vez que conozcas los -parámetros adecuados, deberás ser capaz de conectar de la siguiente forma: - -shell> mysql -h host -u user -p -Enter password: ******* -Welcome to the MySQL monitor. Commands end with ; or \g. -Your MySQL connection id is 459 to server version: 3.22.20a-log - -Type 'help' for help. - -mysql> - -El prompt te indica que mysql ya está listo para la introducción de comandos. - -Algunas instalaciones MySQL permiten a los usuarios conectarse como usuarios "anonymous" (sin -nombre) al servidor ejecutándose en el host local. Si este es el caso en tu máquina, deberías ser -capaz de conectar a ese servidor invocando mysql sin ninguna opción: - -shell> mysql - -Una vez que hayas conectado con éxito, puedes desconectarte en cualquier momento tecleando QUIT en -el prompt mysql> : - -mysql> QUIT -Bye - -También puedes desconectar tecleando control-D. - -La mayor parte de los ejemplos en las siguientes secciones asumen que estás conectado al -servidor. Lo indicarán por el prompt mysql> - - -8.2 Haciendo consultas -======================== - -Asegúrate de que estás conectado al servidor, como se ha discutido en secciones anteriores. El -hacerlo no implica que tengas seleccionada ninguna base de datos con la que trabajar, pero está -bien. En este punto, es más importante averiguar un poco sobre cómo lanzar consultas que lanzarse -directamente a la creación de tablas, cargar datos en ellas y recuperar los datos de las -mismas. Esta sección describe los principios básicos de la entrada de comandos, usando varias -consultas que puedes probar para familiarizarte con la forma de trabajo de mysql. - -Aquí presentamos un comando simple que pide al servidor que nos diga su número de versión y fecha -actual. Tecléalo como se muestra a continuación siguiendo el prompt mysql> y pulsa la tecla RETURN: - - -mysql> SELECT VERSION(), CURRENT_DATE; -+-----------+--------------+ -| version() | CURRENT_DATE | -+-----------+--------------+ -| 3.22.23b | 2000-01-05 | -+-----------+--------------+ -1 row in set (0.06 sec) - -mysql> - -Esta consulta ilustra muchas cosas sobre mysql: - -* Un comando consiste normalmente de una sentencia SQL seguida por un punto y coma. (Existen algunas - excepciones donde no es necesario el punto y coma. QUIT, mencionado más adelante, es una de - ellas. Conoceremos otras más adelante.) - -* Cuando lanzas un comando, mysql lo envía al servidor para su ejecución y muestra los resultados, - después imprime otro mysql> para indicar que está listo para otro comando. - -* mysql muestra la salida de una consulta como una tabla (filas y columnas). La primera fila - contiene etiquetas para las columnas. Las siguientes filas son el resultado de la - consulta. Normalmente, las etiquetas de las columnas son los nombres de las columnas que has - obtenido de la base de datos. Si pides el valor de una expresión en vez de una columna de una - tabla (como en el ejemplo anterior), mysql etiqueta la columna usando la propia expresión. - -* mysql muestra el número de filas que se han dado como resultado, y cuánto tiempo llevó la - ejecución de la consulta, lo que te da una idea aproximada del rendimiento del servidor. Estos - valores son imprecisos porque representan tiempo real (no tiempo de CPU o máquina), y porque están - afectados por factores como la carga del servidor y la latencia de la red. (Por cuestiones de - brevedad, la línea "rows in set" no se mostrará en los ejemplos posteriores de este capítulo.) - -Las palabras clave pueden ser tecleadas en cualquier combinación mayúscula/minúscula. Las siguientes -consultas son equivalentes: - -mysql> SELECT VERSION(), CURRENT_DATE; -mysql> select version(), current_date; -mysql> SeLeCt vErSiOn(), current_DATE; - -He aquí otra consulta. Demuestra que puedes usar mysql como una calculadora sencilla: - -mysql> SELECT SIN(PI()/4), (4+1)*5; -+-------------+---------+ -| SIN(PI()/4) | (4+1)*5 | -+-------------+---------+ -| 0.707107 | 25 | -+-------------+---------+ - -Los comandos vistos hasta aquí han sido relativamente cortos, sentencias de una sola línea. También puedes -insertar múltiples sentencias en una sola línea. Simplemente, termina cada una con un punto y coma: - -mysql> SELECT VERSION(); SELECT NOW(); - -+-----------+ -| version() | -+-----------+ -| 3.22.23b | -+-----------+ - -+---------------------+ -| NOW() | -+---------------------+ -| 2000-01-05 17:33:16 | -+---------------------+ - -Un comando no necesita ser dado todo en una sóla línea, así pues, los comandos largos que requieran -varias lineas no son un problema. mysql determina cuando termina tu sentencia buscando el punto y -coma final, no buscando el final de la línea de entrada. (En otras palabras, mysql acepta entrada de -libre formato: recoleta las líneas de entrada pero no las ejecutahasta que vea el punto y coma.) - -Aquí tenemos un simple ejemplo de múltiples líneas: - -mysql> SELECT - -> USER() - -> , - -> CURRENT_DATE; -+----------------+--------------+ -| USER() | CURRENT_DATE | -+----------------+--------------+ -| root@localhost | 2000-01-05 | -+----------------+--------------+ - -En este ejemplo, observa como cambia el prompt de mysql> a -> una vez que has insertado la primera -línea de una consulta multi-línea. Esta es la forma en que mysql indica que no ha encontrado una -sentencia completa y que está esperando por el resto. El prompt es tu amigo, dado que ofrece una -retroalimentación (feedback) significativa. Si usas ese feedback, siempre sabrás a qué está -esperando mysql. - -Si decides que no quieres ejecutar un comando que está en proceso de introducción, puedes cancelarlo -tecleando \c : - -mysql> SELECT - -> USER - -> \c -mysql> - -Observa aquí también el prompt. Ha vuelto a mysql> tras haber tecleado \c, ofreciendo un feedback -que indica que mysql está listo para un nuevo comando. - -La siguiente tabla muestra cada uno de los prompts que puedes ver y resume qué es lo que significan -y el estado en el que se encontrará mysql: - -Prompt Significado -mysql> Listo para un nuevo comando - -> Esperando una nueva línea de una consulta multi-línea - '> Esperando la siguiente línea, se ha insertado una línea que comienza con (') - "> Esperando la siguiente línea, se ha insertado una línea que comienza con (") - -Las sentencias multi-línea ocurren comúnmente "por accidente" cuando intentas lanzar un comando en -una única línea, pero olvidas el punto y coma del final. En este caso, mysql espera más entrada: - -mysql> SELECT USER() - -> - -Si esto es lo que te ocurre (crees que has introducido una sentencia pero la única respuesta es un -prompt como ->), lo más probable es que mysql esté esperando por el punto y coma. Si no observas qué -es lo que te dice el prompt, podrías quedarte esperando un buen rato antes de enterarte de qué es lo -que sucede. Introduce un punto y coma para completar la sentencia, y mysql la ejecutará: - -mysql> SELECT USER() - -> ; -+----------------+ -| USER() | -+----------------+ -| root@localhost | -+----------------+ - -Los prompts '> y "> ocurren durante la recogida de strings. En MySQL, puedes escribir strings -encerrados por comillas simples (') o dobles (") (por ejemplo, 'hola' o "adios"), y mysql te permite -introducir también strings que se cortan en múltiples líneas. Cuando veas un prompt como '> ó ">, -significa que has introducido una línea que contenía un string que comenzaba por (') o ("), pero que -no has introducido aún la comilla (simple o doble) de cierre. Esto está bien si realmente estabas -introduciendo un string multi-línea, pero no es lo más normal. Lo que sí es más normal, es que los -prompts '> ó "> indiquen que te has olvidado del caracter de cierre " ó '. Por ejemplo: - -mysql> SELECT * FROM mi_tabla WHERE nombre ="García AND edad < 30; - "> - -Si tecleas esta sentencia SELECT, después pulsas ENTER y esperas por el resultado, no sucederá -nada. En lugar de preocuparte, "¿por qué tarda tanto esta consulta?", observa la pista que te ofrece -el prompt "> . Esto te indica que mysql espera ver el resto de un string que aún no ha -terminado. (¿Ves el error en la sentencia? La cadena "García ha perdido las comillas de cierre.) - -Llegados a este punto, ¿qué puedes hacer?. Lo más fácil es cancelar el comando. Sin embargo, no -puedes teclear simplemente \c en este ejemplo, dado que mysql ¡lo interpretará como parte del string -que está leyendo! En vez de eso, introduce las comillas de cierre (para que mysql sepa que ya has -terminado de introducir el string), y después teclea \c : - -mysql> SELECT * FROM mi_tabla WHERE nombre ="García AND edad < 30; - "> "\c -mysql> - -El prompt vuelve a cambiar a mysql>, indicando que mysql está listo para un nuevo comando. - -Es importante saber qué significan los prompts '> y ">, dado que si introduces por error un string -sin cerrar, cualquier otra línea que introduzcas serán ignoradas por mysql - ¡incluyendo una línea -que contenga QUIT! Esto puede ser bastante confuso, especialmente si no sabes que debes introducir -la comilla de cierre antes de poder cancelar el comando actual. - -8.3 Creando y usando una base de datos -========================================== - -Ahora que sabes como introducir comandos, es hora de acceder a la base de datos. - -Supon que tienes varias mascotas en tu casa (tu pequeño "zoo") y que te gustaría llevar un control -de varios tipos de información sobre estos animales. Puedes hacerlo creando tablas que guarden tus -datos y cargandolas con la información deseada. Después puedes responder a diferentes series de -preguntas sobre tus animales extrayendo los datos de las tablas. Esta sección explica cómo hacer -todo esto: - -* Cómo crear una base de datos -* Cómo crear una tabla -* Cómo cargar los datos en la tabla -* Cómo extraer información de la tabla de varias maneras -* Cómo usar múltiples tablas - -La base de datos del zoo será simple (deliberadamente), pero no es difícil pensar en situaciones del -mundo real en las que se pudiera utilizar una base de datos similar. Por ejemplo, se podría usar una base -de datos como ésta en una granja para llevar un control del ganado, o por un veterinario para -controlar el historial de sus pacientes. - -Usa la sentencia SHOW para averiguar qué bases de datos existen actualmente en el servidor: - -mysql> SHOW DATABASES; -+----------+ -| Database | -+----------+ -| mysql | -| test | -+----------+ - -Probablemente, la lista de las bases de datos será diferente en tu máquina, pero las bases de datos -mysql y test es probable que se encuentren en esa lista. Se requiere la base de datos mysql pues -describe los privilegios de acceso de los usuarios. La base de datos test se ofrece como campo de -pruebas para que los usuarios prueben ahí sus teorías. - -Si la base de datos test existe, intenta acceder a ella: - -mysql> USE test -Database changed - -Observa que USE, como QUIT, no requiere un punto y coma. (Puedes terminar este tipo de sentencias -con un punto y coma si quieres, pero no es necesario.) La sentencia USE es especial en otro sentido, -también: debe ser tecleada en una sola línea. - -Puedes usar la base de datos test (si tienes acceso a ella) para los ejemplos que siguen, pero -cualquier cosa que crees en dicha base de datos puede ser eliminada por cualquiera que tenga acceso -a ella. Por esta razón, deberías pedir a tu administrador MySQL permisos para usar una base de datos -propia. Suponte que le quieres llamar zoo. El administrador necesitará ejecutar entonces la -siguiente orden: - -mysql> GRANT ALL ON zoo.* TO tu_nombre; - -donde tu_nombre es el nombre de usuario MySQL que tengas asignado. - -ejemplo: - -mysql> GRANT ALL ON zoo.* TO chessy@localhost; -Query OK, 0 rows affected (0.08 sec) - - -8.3.1 Creando y seleccionando una base de datos -================================================== - -Si el administrador creó la base de datos para tí cuando te configuró los permisos, puedes comenzar -a usarla. En otro caso, deberás crearla tú mismo: - -[chessy@bishito chessy]$ mysql -u chessy -Welcome to the MySQL monitor. Commands end with ; or \g. -Your MySQL connection id is 6 to server version: 3.22.23b - -Type 'help' for help. - -mysql> CREATE DATABASE zoo; -Query OK, 1 row affected (0.02 sec) - - -Bajo Unix, los nombres de bases de datos son sensibles a las mayúsculas/minúsculas (a diferencia de -los comandos SQL), así que deberás referirte siempre a tu base de datos con el nombre zoo, no como -Zoo, ZOO o cualquier otra variante. Es es así también para las tablas. (Bajo Windows, esta -restricción desaparece, aunque deberías referirte a las bases de datos y a las tablas usando la -misma sintaxis en tus consultas.) - -Crear una base de datos no la selecciona para su uso, debes hacerlo explícitamente. Para hacer que -la base de datos zoo sea tu base de datos de trabajo, usa el comando: - -mysql> USE zoo; -Database changed - -Tu base de datos sólo necesita ser creada una vez, pero debes seleccionarla para usarla cada vez que -comiences una sesión mysql. Puedes hacerlo lanzando un comando USE como se ha visto en el -ejemplo. Alternativamente, puedes seleccionar la base de datos desde la línea de comandos cuando -lanzas mysql. Simplemente especifica su nombre tras los parámetros de conexión que hayas -escrito. Por ejemplo: - -shell> mysql -h host -u user -p zoo -Enter password: ******** - -Observa que en la línea de comandos del ejemplo, zoo no es tu password. Si quieres introducir tu -password como parámetro en la línea de comandos tras la opción -p, debes hacerlo sin teclear un -espacio en blanco intermedio (es decir, como -pmi_password, no como -p mi_password). Sin embargo, no -es recomendable poner tu password en la línea de comandos, pues hacerlo lo expone a posibles -miradas de otros usuarios conectados a tu máquina. - -8.3.2 Creando una tabla -============================ - -Crear una tabla es la parte fácil, pero hasta este momento está vacía, como te dice la orden SHOW -TABLES: - -mysql> SHOW TABLES; -Empty set (0.00 sec) - -La parte más dura consiste en decidir cual va a ser la estructura de tu base de datos: qué tablas -necesitarás, y qué columnas tendrá cada una de ellas. - -Querrás seguramente una tabla que contenga un registro por cada una de tus mascotas. Esta tabla -puede llamarse mascotas, y debería contener, como mínimo, el nombre de cada animal. Dado que el -nombre por sí solo no es muy interesante, la tabla debería contener otra información. Por ejemplo, -si más de una persona de tu familia tiene mascotas, probablemente quieras listar el propietario de -cada animal. También querrás guardar información descriptiva básica como puede ser la especie y el -sexo de cada mascota. - -¿Qué pasa con la edad? Podría ser de interés, pero no es una buena cosa a guardar en una base de -datos. La edad cambia a medida que pasa el tiempo, lo que significa que tendrás que actualizar tus -registros a menudo. En vez de eso, es mejor almacenar un valor fijo como la edad de -nacimiento. Después, cada vez que necesites saber la edad, puedes calcularla como la diferencia -entre la fecha actual y la fecha de nacimiento. MySQL ofrece funciones para realizar cálculos -aritméticos entre fechas, por lo que esto no es difícil. Almacenar la fecha de nacimiento en lugar -de la edad tiene también otras ventajas: - -* Puedes usar la base de datos para generar recordatorios de cumpleaños de mascotas. (Si crees que - este tipo de consulta es algo tonta, observa que es la misma pregunta que necesitarás hacer en el - contexto de una base de datos de un negocio para identificar clientes a los que pronto necesitarás - mandar un saludo por su cumpleaños, para ese toque personal asistido por ordenador :-) - -* Puedes calcular la edad en relación a fechas distintas a la fecha actual. Por ejemplo, si - almacenas la fecha de muerte en la base de datos, puedes calcular fácilmente lo vieja que era una - mascota cuando murió. - -Seguramente puedas pensar en otros tipos de información que sería útil en la tabla mascota, pero los -identificados hasta ahora son suficientes por el momento: nombre, propietarios, especie, sexo, fecha -de nacimiento y muerte. - -Usa una sentencia CREATE TABLE para especificar la estructura de tu tabla: - -mysql> CREATE TABLE mascota (nombre VARCHAR(20), propietario VARCHAR(20), - -> especie VARCHAR(20), sexo CHAR(1), nacimiento DATE, muerte DATE); - -VARCHAR es una buena elección para las columnas nombre, propietario y especie dado que los valores -de estas columnas variarán su longitud. Las longitudes de estas columnas no necesitan ser iguales, y -no necesitan ser 20. Puedes elegir cualquier longitud entre 1 y 255, cualquiera que te parezca -razonable. (Si realizar una elección pobre y resulta que más adelante necesitas un campo mayor, -MySQL ofrece una sentencia ALTER TABLE.) - -El sexo del animal puede ser representado en una variedad de formas, por ejemplo, "m" y "f", o -quizás "masculino" y "femenino". Es más simple usar un único caracter, "m" ó "f". - -El uso del tipo de datos DATE para las columnas de nacimiento y muerte es una opción bastante -obvia. - -Ahora que ya has creado una tabla, SHOW TABLES debería producir alguna salida: - -mysql> SHOW TABLES; -+---------------+ -| Tables in zoo | -+---------------+ -| mascota | -+---------------+ - -Para verificar que tu tabla fue creada de la forma que esperabas, usa una sentencia DESCRIBE: - -mysql> DESCRIBE mascota; -+-------------+-------------+------+-----+---------+-------+ -| Field | Type | Null | Key | Default | Extra | -+-------------+-------------+------+-----+---------+-------+ -| nombre | varchar(20) | YES | | NULL | | -| propietario | varchar(20) | YES | | NULL | | -| especie | varchar(20) | YES | | NULL | | -| sexo | char(1) | YES | | NULL | | -| nacimiento | date | YES | | NULL | | -| muerte | date | YES | | NULL | | -+-------------+-------------+------+-----+---------+-------+ - -Puedes usar DESCRIBE en cualquier momento, por ejemplo, si olvidas los nombres de las columnas de tu -tabla o a qué tipo de datos pertenecen. - -8.3.3 Cargando datos en una tabla -===================================== - -Una vez creada tu tabla, necesitas poblarla. Las sentencias LOAD DATA e INSERT son útiles para esto. - -Suponte que tus registros de mascotas pueden ser descritos como se muestra más abajo. (Observa que -MySQL espera que las fechas se introduzcan en formato AAAA-MM-DD; esto podría ser diferente a lo que -estás acostumbrado.) - -nombre propietario especie sexo nacimiento muerte -Fluffy Harold gato f 1993-02-04 -Claws Gwen gato m 1994-03-17 -Buffy Harold perro f 1989-05-13 -Fang Benny perro m 1990-08-27 -Bowser Diane perro m 1998-08-31 1995-07-29 -Chirpy Gwen pájaro f 1998-09-11 -Whistler Gwen pájaro 1997-12-09 -Slim Benny serpiente m 1996-04-29 - -Dado que estás comenzando con una tabla vacía, una forma sencilla de poblarla consiste en crear un -fichero de texto conteniendo una fila para cada uno de tus animales, y después cargar el contenido del -fichero en la tabla con una sola sentencia. - -Puedes crear un fichero de texto "mascota.txt" conteniendo un registro por línea, con valores separados -por tabuladores, y dados en el orden en el que las columnas fueron listadas en la sentencia CREATE -TABLE. Para valores perdidos (como sexos desconocidos, o fechas de muerte de animales que aún están -vivos), puedes usar valores NULL. Para representar estos en tu fichero de texto, use \N. Por -ejemplo, el registro para Whistler el pájaro sería algo como esto (donde el espacio en blanco entre -valores es un simple caracter de tabulación): - -Whistler Gwen pájaro \N 1997-12-09 \N - -Para cargar el fichero de texto "mascota.txt" en la tabla mascota, usa este comando: - -mysql> LOAD DATA LOCAL INFILE "mascota.txt" INTO TABLE mascota; - -Puedes especificar el valor de separación de columna y el marcador de final de línea explícitamente -en la sentencia LOAD DATA si lo deseas, pero por defecto equivalen a TAB y LF (intro). Estos valores -por defecto son suficientes para que la sentencia que lee el fichero "mascota.txt" funcione -correctamente. - -Cuando quieras añadir nuevos registros uno a uno, la sentencia INSERT es muy útil. En su forma más -simple, ofreces valores para cada columna, en el orden en el que las columnas fueron listadas en la -sentencia CREATE TABLE. Supón que Diane consige un nuevo hamster llamado Puffball. Podrías añadir un -nuevo registro usando una sentencia INSERT como esta: - -mysql> INSERT INTO mascota - -> VALUES ('Puffball','Diane','hamster','f','1999-03-30',NULL); - -Observa que los valores string y fecha se espefican encerrados entre comillas. Observa también que, -con INSERT, puedes insertar NULL directamente para representar un valor perdido. No usamos \N como -hacíamos con LOAD DATA. - -De este ejemplo, deberías ser capaz de ver que hubiera dido mucho más costoso teclear todos los -datos necesarios en la tabla mascota con sentencias INSERT que hacerlo como lo hemos hecho con una -única sentencia LOAD DATA. - - -8.3.4 Extrayendo información de una tabla -=============================================== - - -La sentencia SELECT se usa para recabar información de una tabla. La forma -general de la sentencia es: - -SELECT qué_seleccionar -FROM de_qué_tabla -WHERE condiciones_a_satisfacer - -qué_seleccionar indica qué es lo que quieres seleccionar. Puede ser una lista de -columnas, o * para indicar "todas las columnas". de_qué_tabla indica la tabla de -la que quieres extraer datos. La claúsula WHERE es opcional. Si está presente, -condiciones_a_satisfacer especifica las codiciones que las filas deben cumplir -para estar presentes en el resultado de la selección. - -8.3.4.1 Seleccionando todos los datos -======================================= - -La forma más simplede SELECT recoge toda la información de una tabla: - -mysql> SELECT * FROM mascota; -+----------+-------------+-----------+------+------------+------------+ -| nombre | propietario | especie | sexo | nacimiento | muerte | -+----------+-------------+-----------+------+------------+------------+ -| Bluffy | Harold | gato | f | 1993-02-04 | NULL | -| Claws | Gwen | gato | m | 1994-03-17 | NULL | -| Buffy | Harold | perro | f | 1989-05-13 | NULL | -| Fang | Benny | perro | m | 1990-08-27 | NULL | -| Bowser | Diane | perro | m | 1998-08-31 | 1995-07-29 | -| Chirpy | Gwen | pájaro | f | 1998-09-11 | NULL | -| Whistler | Gwen | pájaro | NULL | 1997-12-09 | NULL | -| Slim | Benny | serpiente | m | 1996-04-29 | NULL | -| Puffball | Diane | hamster | f | 1999-03-30 | NULL | -+----------+-------------+-----------+------+------------+------------+ - -Esta forma de SELECT es útil si quieres revisar tu tabla al completo, por -ejemplo, tras haberla cargado con tu conjunto inicial de datos. Como suele -suceder, la salida ya muestra un error en tu fichero de datos: Bowser ¡parece -haber nacido tras su muerte! Consultando tus papeles originales sobre el -pedigree del perro, descubres que la fecha correcta de nacimiento es 1989, no -1998. - -Existen al menos un par de maneras de arreglar esto: - -* Edita el fichero "mascota.txt" para corregir el error, después vacía la tabla - y vuelve a cargarla usando DELETE y LOAD DATA: - -mysql> DELETE from mascota; -mysql> LOAD DATA LOCAL INFILE "mascota.txt" INTO TABLE mascota; - -Sin embargo, si haces esto, debes re-escribir el registro para Puffball. - -* Arreglar sólo el registro erróneo con la sentencia UPDATE: - -mysql> UPDATE mascota SET nacimiento="1989-08-31" WHERE nombre="Bowser"; - -Como se muestra más arriba, es fácil recuperar el cuerpo de una data. Pero -típicamente no querrás hacer eso, en particular cuando la tabla sea muy -larga. Generalmente, estarás más interesado en responder a una pregunta en -particular, en cuyo caso deberás especificar algunas restricciones en la -información que deseas. Veamos algunas consultas de selección en términos de -preguntas sobre tus mascotas que se deben responder. - -8.3.4.2 Seleccionando filas en particular -============================================= - -Puedes seleccionar sólo filas en particular de tu tabla. Por ejemplo, si quieres -verificar el cambio que has realizado a la fecha de nacimiento de Bowser, -selecciona el registro de Bowser de la siguiente forma: - -mysql> SELECT * FROM mascota WHERE nombre="Bowser"; -+--------+-------------+---------+------+------------+------------+ -| nombre | propietario | especie | sexo | nacimiento | muerte | -+--------+-------------+---------+------+------------+------------+ -| Bowser | Diane | perro | m | 1989-08-31 | 1995-07-29 | -+--------+-------------+---------+------+------------+------------+ - -La salida confirma que el año está correctamente registrado como 1989, no 1998. - -Las comparaciones de cadenas de texto son normalmente insensibles a las -mayúsculas/minúsculas, por lo que puedes especificar el nombre como "bowser", -"BOWSER", etc. El resultado de la consulta será el mismo. - -Puedes especificar condiciones en cualquier columna, no sólo el nombre. Por -ejemplo, si quisieras saber qué animales nacieron a partir de 1998, examina la -columna nacimiento: - -mysql> SELECT * FROM mascota WHERE nacimiento >= "1998-1-1"; -+----------+-------------+---------+------+------------+--------+ -| nombre | propietario | especie | sexo | nacimiento | muerte | -+----------+-------------+---------+------+------------+--------+ -| Chirpy | Gwen | pájaro | f | 1998-09-11 | NULL | -| Puffball | Diane | hamster | f | 1999-03-30 | NULL | -+----------+-------------+---------+------+------------+--------+ - -Puedes combinar condiciones, por ejemplo, para localizar los perros hembra: - -mysql> SELECT * FROM mascota WHERE especie="perro" AND sexo="f"; -+--------+-------------+---------+------+------------+--------+ -| nombre | propietario | especie | sexo | nacimiento | muerte | -+--------+-------------+---------+------+------------+--------+ -| Buffy | Harold | perro | f | 1989-05-13 | NULL | -+--------+-------------+---------+------+------------+--------+ - -La consulta anterior usa el operador lógico AND. Existe también un operador OR: - -mysql> SELECT * FROM mascota WHERE especie="serpiente" OR especie="pájaro"; -+----------+-------------+-----------+------+------------+--------+ -| nombre | propietario | especie | sexo | nacimiento | muerte | -+----------+-------------+-----------+------+------------+--------+ -| Chirpy | Gwen | pájaro | f | 1998-09-11 | NULL | -| Whistler | Gwen | pájaro | NULL | 1997-12-09 | NULL | -| Slim | Benny | serpiente | m | 1996-04-29 | NULL | -+----------+-------------+-----------+------+------------+--------+ - -AND y OR pueden entremezclarse. Si lo haces, es una buena idea el utilizar -paréntesis para indicar cómo deberían agruparse las condiciones: - -mysql> SELECT * FROM mascota WHERE (especie="gato" AND sexo="m") - -> OR (especie="perro" AND sexo="f"); -+--------+-------------+---------+------+------------+--------+ -| nombre | propietario | especie | sexo | nacimiento | muerte | -+--------+-------------+---------+------+------------+--------+ -| Claws | Gwen | gato | m | 1994-03-17 | NULL | -| Buffy | Harold | perro | f | 1989-05-13 | NULL | -+--------+-------------+---------+------+------------+--------+ - -8.3.4.3 Seleccionando columnas en particular -=================================================== - -Si no quieres ver filas completas de tu tabla, simplemente nombra las columnas -en las cuales estás interesado, separadas por comas. Por ejemplo, si quieres -saber cuándo nacieron tus animales, selecciona las columnas nombre y nacimiento: - -mysql> SELECT nombre, nacimiento FROM mascota; -+----------+------------+ -| nombre | nacimiento | -+----------+------------+ -| Bluffy | 1993-02-04 | -| Claws | 1994-03-17 | -| Buffy | 1989-05-13 | -| Fang | 1990-08-27 | -| Bowser | 1989-08-31 | -| Chirpy | 1998-09-11 | -| Whistler | 1997-12-09 | -| Slim | 1996-04-29 | -| Puffball | 1999-03-30 | -+----------+------------+ - -Para averiguar quién posee mascotas, usa esta consulta: - -mysql> SELECT propietario FROM mascota; -+-------------+ -| propietario | -+-------------+ -| Harold | -| Gwen | -| Harold | -| Benny | -| Diane | -| Gwen | -| Gwen | -| Benny | -| Diane | -+-------------+ - -Sin embargo, observa que la consulta simplemente obtiene el campo propietario de -cada registro, y algunos de ellos aparecen más de una vez. Para minimizar la -salida, obtén cada registro de salida único una sola vez añadiendo la palabra -reservada DISTINCT: - -mysql> SELECT DISTINCT propietario FROM mascota; -+-------------+ -| propietario | -+-------------+ -| Benny | -| Diane | -| Gwen | -| Harold | -+-------------+ - -Puedes usar una claúsula WHERE para combinar la selección de filas con la -selección de columnas. Por ejemplo, para conseguir sólo las fechas de nacimiento -de perros y gatos, usa esta consulta: - -mysql> SELECT nombre, especie, nacimiento FROM mascota - -> WHERE especie = "perro" OR especie = "gato"; -+--------+---------+------------+ -| nombre | especie | nacimiento | -+--------+---------+------------+ -| Bluffy | gato | 1993-02-04 | -| Claws | gato | 1994-03-17 | -| Buffy | perro | 1989-05-13 | -| Fang | perro | 1990-08-27 | -| Bowser | perro | 1989-08-31 | -+--------+---------+------------+ - -8.3.4.4 Ordenando filas -=========================== - -Tal vez hayas observado que en los ejemplos anteriores las filas del resultado -se muestran sin ningún tipo de orden en particular. Sin embargo, a menudo es más -fácil de examinar la salida de una consulta cuando las filas están ordenadas de -alguna manera en particular. Para ordenar un resultado, usa la claúsula ORDER -BY. - -Aquí mostramos las fechas de nacimiento de los animales, ordenadas por fecha: - -mysql> SELECT nombre, nacimiento FROM mascota ORDER BY nacimiento; -+----------+------------+ -| nombre | nacimiento | -+----------+------------+ -| Buffy | 1989-05-13 | -| Bowser | 1989-08-31 | -| Fang | 1990-08-27 | -| Bluffy | 1993-02-04 | -| Claws | 1994-03-17 | -| Slim | 1996-04-29 | -| Whistler | 1997-12-09 | -| Chirpy | 1998-09-11 | -| Puffball | 1999-03-30 | -+----------+------------+ - -Para ordenar de forma inversa, añade la palabra reservada DESC (descendente) al -nombre de la columna por la que estás ordenando: - -mysql> SELECT nombre, nacimiento FROM mascota ORDER BY nacimiento DESC; -+----------+------------+ -| nombre | nacimiento | -+----------+------------+ -| Puffball | 1999-03-30 | -| Chirpy | 1998-09-11 | -| Whistler | 1997-12-09 | -| Slim | 1996-04-29 | -| Claws | 1994-03-17 | -| Bluffy | 1993-02-04 | -| Fang | 1990-08-27 | -| Bowser | 1989-08-31 | -| Buffy | 1989-05-13 | -+----------+------------+ - -Puedes ordenar por múltiples columnas. Por ejemplo, para ordenar por tipo de -animal, después por fecha de nacimiento dentro del mismo tipo de animal estando -los animales más jóvenes primero, usa la siguiente consulta: - -mysql> SELECT nombre, especie, nacimiento FROM mascota ORDER BY especie, nacimiento DESC; -+----------+-----------+------------+ -| nombre | especie | nacimiento | -+----------+-----------+------------+ -| Claws | gato | 1994-03-17 | -| Bluffy | gato | 1993-02-04 | -| Puffball | hamster | 1999-03-30 | -| Chirpy | pájaro | 1998-09-11 | -| Whistler | pájaro | 1997-12-09 | -| Fang | perro | 1990-08-27 | -| Bowser | perro | 1989-08-31 | -| Buffy | perro | 1989-05-13 | -| Slim | serpiente | 1996-04-29 | -+----------+-----------+------------+ - -Observa que la palabra reservada DESC se aplica sólo al nombre de columna que -preceda a la palabra reservada (nacimiento); los valores especie siguen siendo -ordenados en forma ascendente. - -8.3.4.5 Cálculos de fecha -============================ - -MySQL ofrece muchas funciones que puedes usar para realizar cálculos con fechas, -por ejemplo, para calcular edades o extraer partes de fechas. - -Para determinar cuantos años tiene cada una de tus mascotas, puedes calcular la -edad como la diferencia entre la fecha de nacimiento y la fecha actual. Puedes -hacerlo convirtiendo las dos fechas a dias, coge la diferencia, y divídela por -365 (el número de dias en un año): - -mysql> select nombre, (TO_DAYS(NOW())-TO_DAYS(nacimiento))/365 FROM mascota; -+----------+------------------------------------------+ -| nombre | (TO_DAYS(NOW())-TO_DAYS(nacimiento))/365 | -+----------+------------------------------------------+ -| Bluffy | 6.94 | -| Claws | 5.83 | -| Buffy | 10.68 | -| Fang | 9.39 | -| Bowser | 10.38 | -| Chirpy | 1.34 | -| Whistler | 2.10 | -| Slim | 3.71 | -| Puffball | 0.79 | -+----------+------------------------------------------+ - -Aunque la consulta funcione, existen algunos puntos que podrían ser -mejorados. Primero, el resultado podría ser revisado más fácilmente si las filas -se presentaran ordenadas de alguna manera. Segundo, la cabecera de la columna -edad no es muy significativa. - -El primer problema puede ser solucionado añadiendo una cláusula ORDER BY nombre -para ordenar la salida por nombre. Para arreglar el tema del encabezamiento de -columna, puedes darle un nombre a dicha columna de tal forma que aparezca una -etiqueta diferente en la salida (esto es lo que se llama un alias de columna): - -mysql> select nombre, (TO_DAYS(NOW())-TO_DAYS(nacimiento))/365 AS edad - -> FROM mascota ORDER BY nombre; -+----------+-------+ -| nombre | edad | -+----------+-------+ -| Bluffy | 6.94 | -| Bowser | 10.38 | -| Buffy | 10.68 | -| Chirpy | 1.34 | -| Claws | 5.83 | -| Fang | 9.39 | -| Puffball | 0.79 | -| Slim | 3.71 | -| Whistler | 2.10 | -+----------+-------+ - -Para ordenar la salida por edad en lugar de por nombre, puedes hacerlo usando -símplemente una cláusula ORDER BY diferente: - -mysql> select nombre, (TO_DAYS(NOW())-TO_DAYS(nacimiento))/365 AS edad - -> FROM mascota ORDER BY edad; -+----------+-------+ -| nombre | edad | -+----------+-------+ -| Puffball | 0.79 | -| Chirpy | 1.34 | -| Whistler | 2.10 | -| Slim | 3.71 | -| Claws | 5.83 | -| Bluffy | 6.94 | -| Fang | 9.39 | -| Bowser | 10.38 | -| Buffy | 10.68 | -+----------+-------+ - -Puede usarse una consulta similar para determinar la edad de la muerte para los -animales que hayan muerto. Puedes determinar qué animales son estos comprobando -si el valor muerte es NULL o no. Después, para aquellos que no tengan un valor -NULL, calcular la diferencia entre los valores muerte y nacimiento: - -mysql> select nombre, nacimiento, muerte, - -> (TO_DAYS(NOW())-TO_DAYS(nacimiento))/365 AS edad - -> FROM mascota WHERE muerte IS NOT NULL ORDER BY edad; -+--------+------------+------------+-------+ -| nombre | nacimiento | muerte | edad | -+--------+------------+------------+-------+ -| Bowser | 1989-08-31 | 1995-07-29 | 10.38 | -+--------+------------+------------+-------+ - -La consulta usa muerte IS NOT NULL en lugar de muerte != NULL dado que NULL es -un valor especial. Esto se explica más adelante. [Puedes consultar la sección -[Working with NULL] del manual de MySQL. - -¿Qué harías si quisieras saber qué animales cumplen años el mes que viene? Para -este tipo de cálculos, año y día son irrelevantes, simplemente querrás extraer -la parte mes de la columna nacimiento. MySQL ofrece muchas funciones de -extracción de parte-de-fecha, como YEAR(),MONTH() y DAY(). La función apropiada -para nuestro problema es MONTH(). Para ver cómo funciona, ejecuta una consulta -rápida que muestre el valor de la fecha de nacimiento y el mes de nacimiento -(MONTH(nacimiento)): - -mysql> SELECT nombre, nacimiento, MONTH(nacimiento) FROM mascota; -+----------+------------+-------------------+ -| nombre | nacimiento | MONTH(nacimiento) | -+----------+------------+-------------------+ -| Bluffy | 1993-02-04 | 2 | -| Claws | 1994-03-17 | 3 | -| Buffy | 1989-05-13 | 5 | -| Fang | 1990-08-27 | 8 | -| Bowser | 1989-08-31 | 8 | -| Chirpy | 1998-09-11 | 9 | -| Whistler | 1997-12-09 | 12 | -| Slim | 1996-04-29 | 4 | -| Puffball | 1999-03-30 | 3 | -+----------+------------+-------------------+ - -Buscar animales que hayan nacido en el mes próximo es también sencillo de -realizar. Suponte que Abril es el mes actual. Entonces el valor del mes es 4 y -lo que buscas son animales nacidos en Mayo (mes 5): - -mysql> SELECT nombre, nacimiento FROM mascota WHERE MONTH(nacimiento) = 5; -+--------+------------+ -| nombre | nacimiento | -+--------+------------+ -| Buffy | 1989-05-13 | -+--------+------------+ - -Existe una pequeña complicación si el mes actual es Diciembre, por supuesto. No -puedes añadir simplemente uno al número de mes (12) y buscar animales nacidos en -el mes 13, dado que no existe tal mes. En lugar de eso, debes buscar animales -nacidos en Enero (mes 1). - -Puedes escribir la consulta de tal forma que funcione independientemente del mes -en el que estemos. De esa forma no tendrás que usar un número de mes en -particular en la consulta. DATE_ADD() te permite añadir un intervalo de tiempo a -una fecha dada. Si añades un mes al valor de NOW(), y después extraes la parte -del mes con MONTH(), el resultado produce el mes del cumpleaños que buscamos: - - -mysql> select NOW(); -+---------------------+ -| NOW() | -+---------------------+ -| 2000-01-13 18:13:09 | -+---------------------+ - -mysql> SELECT nombre, nacimiento FROM mascota - -> WHERE MONTH(nacimiento) = MONTH(DATE_ADD(NOW(),INTERVAL 1 MONTH)); -+--------+------------+ -| nombre | nacimiento | -+--------+------------+ -| Bluffy | 1993-02-04 | -+--------+------------+ - -Una manera difente de conseguir los mismos resultados es añadir 1 al mes actual -para conseguir el mes siguiente (tras usar la función módulo (MOD) para -convertir el valor de mes actual en 0 si estamos en Diciembre (mes 12)): - -mysql> SELECT nombre, nacimiento FROM mascota - -> WHERE MONTH(nacimiento) = MOD(MONTH(NOW()),12) +1; -+--------+------------+ -| nombre | nacimiento | -+--------+------------+ -| Bluffy | 1993-02-04 | -+--------+------------+ - - -8.3.4.6 Trabajando con valores NULL -======================================= - -Los valores NULL pueden ser sorprenderte hasta que te acostumbras a -usarlos. Conceptualmente, NULL significa "valor perdido" o "valor desconocido" y -se trata de forma diferente que otros valores. Para realizar comparaciones -respecto a NULL, no puedes utilizar los operadores de comparación aritméticos -como =, < o != . Puedes realizar una demostración de esto, prueba la siguiente consulta: - -mysql> SELECT 1 = NULL, 1 != NULL, 1 < NULL, 1 > NULL; -+----------+-----------+----------+----------+ -| 1 = NULL | 1 != NULL | 1 < NULL | 1 > NULL | -+----------+-----------+----------+----------+ -| NULL | NULL | NULL | NULL | -+----------+-----------+----------+----------+ - -Ciertamente, de estas comparaciones no se pueden extraer resultados -significativos. Para conseguirlo, usa los operadores IS NULL y IS NOT NULL: - -mysql> SELECT 1 IS NULL, 1 IS NOT NULL; -+-----------+---------------+ -| 1 IS NULL | 1 IS NOT NULL | -+-----------+---------------+ -| 0 | 1 | -+-----------+---------------+ - -En MySQL, 0 significa falso y 1 significa VERDADERO. - -Este tratamiento especial de NULL fue la causa de que en la sección anterior -fuera necesario determinar qué animales ya no vivían usando "muerte IS NOT NULL" -en lugar de "muerte != NULL". - -8.3.4.7 Asociación/Coincidencia de patrones (PATTERN MATCHING) -================================================================ - -MySQL ofrece las características de asociación de patrones estándar así como -una forma de coincidencia de patrones basadas en expresiones regulares -extendidas similares a las usadas por utilidades UNIX como vi, grep y sed. - -La asociación de patrones SQL te permite usar '_' para asociar cualquier -caracter simple, y '%' para asociar un número arbitrario de caracteres -(incluyendo cero caracteres). Los patrones SQL no toman en cuenta las -diferencias entre mayúsculas y minúsculas. Se muestran debajo algunos -ejemplos. Observa que no se utiliza = o != en el trabajo con patrones SQL; -utiliza en su lugar los operadores de comparación LIKE o NOT LIKE. - -Para buscar nombres que comienzan por "b": - -mysql> SELECT * FROM mascota WHERE nombre LIKE "b%"; -+--------+-------------+---------+------+------------+------------+ -| nombre | propietario | especie | sexo | nacimiento | muerte | -+--------+-------------+---------+------+------------+------------+ -| Bluffy | Harold | gato | f | 1993-02-04 | NULL | -| Buffy | Harold | perro | f | 1989-05-13 | NULL | -| Bowser | Diane | perro | m | 1989-08-31 | 1995-07-29 | -+--------+-------------+---------+------+------------+------------+ - -Para buscar nombres que terminen por "fy": - -mysql> SELECT * FROM mascota WHERE nombre LIKE "%fy"; -+--------+-------------+---------+------+------------+--------+ -| nombre | propietario | especie | sexo | nacimiento | muerte | -+--------+-------------+---------+------+------------+--------+ -| Bluffy | Harold | gato | f | 1993-02-04 | NULL | -| Buffy | Harold | perro | f | 1989-05-13 | NULL | -+--------+-------------+---------+------+------------+--------+ - -Para buscar nombres que contengan una "w": - -mysql> SELECT * FROM mascota WHERE nombre LIKE "%w%"; -+----------+-------------+---------+------+------------+------------+ -| nombre | propietario | especie | sexo | nacimiento | muerte | -+----------+-------------+---------+------+------------+------------+ -| Claws | Gwen | gato | m | 1994-03-17 | NULL | -| Bowser | Diane | perro | m | 1989-08-31 | 1995-07-29 | -| Whistler | Gwen | pájaro | NULL | 1997-12-09 | NULL | -+----------+-------------+---------+------+------------+------------+ - -Para buscar nombres de longitud cinco caracteres, usa el patrón "_" : - -mysql> SELECT * FROM mascota WHERE nombre LIKE "_____"; -+--------+-------------+---------+------+------------+--------+ -| nombre | propietario | especie | sexo | nacimiento | muerte | -+--------+-------------+---------+------+------------+--------+ -| Claws | Gwen | gato | m | 1994-03-17 | NULL | -| Buffy | Harold | perro | f | 1989-05-13 | NULL | -+--------+-------------+---------+------+------------+--------+ - -El otro tipo de asociación de patrones ofrecido por MySQL utiliza expresiones -regulares extendidas. Cuando se realiza una comprobación buscando una coincidencia -para este tipo de patrón, se deben usar los operadores REGEXP y NOT REGEXP (o -RLIKE y NOT RLIKE, dado que son sinónimos). - -Algunas características de las expresiones regulares extendidas son: - -* `.' se asocia con cualquier caracter (pero sólo uno) - -* Una clase de caracteres `[...]' se asocia con culquier caracter contenido - dentro de los corchetes. Por ejemplo, `[abc]' se asocia con 'a', 'b' ó - -* 'c'. Para nombrar un rango de caracteres, usa un guión. `[a-z]' se asocia con -cualquier letra en minúscula, donde '[0-9]' se asocia con cualquier dígito. - -* '*' se asocia con 0 o más instancias de lo que preceda al asterisco. Por - ejemplo,'a*' coincide con cualquier número de a's,'[0-9]*' se asocia con - cualquier número de dígitos, y '.*' se asocia con cualquier cosa. - -* Las expresiones regulares son sensibles a las mayúsculas/minúsculas, pero - puedes utilizar una clase caracter para asociar ambos casos si los deseas. Por - ejemplo, '[aA]' coincide tanto con la letra a minúscula como con la letra A - mayúscula y '[a-zA-Z]' coincide con cualquier letra en cualquier modo - mayúscula/minúscula. - -* El patrón se asocia si ocurre en cualquier lugar dentro del valor a ser - probado (los patrones SQL coinciden sólo si se asocian con el valor - completo). - -* Para anclar un patrón de manera que se busque la coincidencia bien al comienzo - o bien al final del valor a ser comprobado, usa '^' al comienzo del patrón o - '$' al final del patrón, respectivamente. - -Para demostrar cómo funcionan las expresiones regulares, las consultas LIKE -mostradas antes son reescritas debajo para usar REGEXP: - -Para buscar nombres que comiencen por "b", usa '^' para buscar la coincidencia -al comienzo del nombre y '[bB]' para buscar la asociación tanto con la b -minúscula como con la b mayúscula: - -mysql> SELECT * FROM mascota WHERE nombre REGEXP "^[bB]"; -+--------+-------------+---------+------+------------+------------+ -| nombre | propietario | especie | sexo | nacimiento | muerte | -+--------+-------------+---------+------+------------+------------+ -| Bluffy | Harold | gato | f | 1993-02-04 | NULL | -| Buffy | Harold | perro | f | 1989-05-13 | NULL | -| Bowser | Diane | perro | m | 1989-08-31 | 1995-07-29 | -+--------+-------------+---------+------+------------+------------+ - -Para buscar nombres que terminen por "fy", usa "$" para buscar la coincidencia -al final del nombre: - -mysql> SELECT * FROM mascota WHERE nombre REGEXP "fy$"; -+--------+-------------+---------+------+------------+--------+ -| nombre | propietario | especie | sexo | nacimiento | muerte | -+--------+-------------+---------+------+------------+--------+ -| Bluffy | Harold | gato | f | 1993-02-04 | NULL | -| Buffy | Harold | perro | f | 1989-05-13 | NULL | -+--------+-------------+---------+------+------------+--------+ - -Para buscar nombres que contengan una "w", utiliza "[wW]" para buscar la -asociación tanto en mayúsculas como minúsculas: - - mysql> SELECT * FROM mascota WHERE nombre REGEXP "[wW]"; -+----------+-------------+---------+------+------------+------------+ -| nombre | propietario | especie | sexo | nacimiento | muerte | -+----------+-------------+---------+------+------------+------------+ -| Claws | Gwen | gato | m | 1994-03-17 | NULL | -| Bowser | Diane | perro | m | 1989-08-31 | 1995-07-29 | -| Whistler | Gwen | pájaro | NULL | 1997-12-09 | NULL | -+----------+-------------+---------+------+------------+------------+ - -Dado que un patrón de una expresión regular se asocia si ocurre en cualquier -lugar del valor, no es necesario poner un caracter comodín en ningún lado del -patrón para conseguir que se asocie con el valor completo como harías si usaras -un patrón SQL. - -Para buscar nombres conteniendo exactamente cinco caracteres, usa "^" y "$" para -asociar el comienzo y el final de un nombre, y cinco instancias de "." entre -ellos: - -mysql> SELECT * FROM mascota WHERE nombre REGEXP "^.....$"; -+--------+-------------+---------+------+------------+--------+ -| nombre | propietario | especie | sexo | nacimiento | muerte | -+--------+-------------+---------+------+------------+--------+ -| Claws | Gwen | gato | m | 1994-03-17 | NULL | -| Buffy | Harold | perro | f | 1989-05-13 | NULL | -+--------+-------------+---------+------+------------+--------+ - -También podrías haber escrito la consulta anterior usando el operador '{n}' -"repetir n veces": - -mysql> SELECT * FROM mascota WHERE nombre REGEXP "^.{5}$"; -+--------+-------------+---------+------+------------+--------+ -| nombre | propietario | especie | sexo | nacimiento | muerte | -+--------+-------------+---------+------+------------+--------+ -| Claws | Gwen | gato | m | 1994-03-17 | NULL | -| Buffy | Harold | perro | f | 1989-05-13 | NULL | -+--------+-------------+---------+------+------------+--------+ - - -8.3.4.8 Contando filas -======================= - -Las bases de datos son usadas a menudo para responder a la pregunta, "¿cuantas -veces aparece un determinado tipo de datos en una tabla?". Por ejemplo, podrías -querer saber cuántas mascotas tienes, o cuántas mascotas tiene cada propietario, -o podrías querer realizar varios tipos de censos respecto a tus animales. - -Contar el número total de animales que tienes es lo mismo que preguntar -"¿cuántas filas hay en la tabla mascota?", dado que hay sólo una fila por -mascota. La función COUNT() cuenta el número de resultados no-NULL , así pues, -la consulta a realizar para contar el número de animales tiene la siguiente forma: - -mysql> SELECT COUNT(*) FROM mascota; -+----------+ -| COUNT(*) | -+----------+ -| 9 | -+----------+ - -Antes, conseguiste los nombres de las personas que poseen una mascota. Puedes -usar COUNT() para averiguar cuántas mascotas tiene cada propietario: - -mysql> SELECT propietario, COUNT(*) FROM mascota GROUP BY propietario; -+-------------+----------+ -| propietario | COUNT(*) | -+-------------+----------+ -| Benny | 2 | -| Diane | 2 | -| Gwen | 3 | -| Harold | 2 | -+-------------+----------+ - -Observa el uso de GROUP BY para agrupar todos los registros de cada -propietario. Si no lo hubiéramos puesto, todo lo que conseguirias sería un -mensaje de error: - -mysql> SELECT propietario, COUNT(propietario) FROM mascota; -ERROR 1140: Mixing of GROUP columns (MIN(),MAX(),COUNT()...) with no GROUP -columns is illegal if there is no GROUP BY clause - -COUNT() y GROUP BY son útiles para la caracterización de tus datos de varias -formas. Los siguientes ejemplos muestran difentes maneras para realizar -operaciones de censo animal. - -Número de animales por especies: - -mysql> SELECT especie, COUNT(*) FROM mascota GROUP BY especie; -+-----------+----------+ -| especie | COUNT(*) | -+-----------+----------+ -| gato | 2 | -| hamster | 1 | -| pájaro | 2 | -| perro | 3 | -| serpiente | 1 | -+-----------+----------+ - -Número de animales por sexo: - -mysql> SELECT sexo , COUNT(*) FROM mascota GROUP BY sexo; -+------+----------+ -| sexo | COUNT(*) | -+------+----------+ -| NULL | 1 | -| f | 4 | -| m | 4 | -+------+----------+ - -(En este resultado, NULL indica "sexo desconocido") - -El número de animales por combinación de especies y sexo: - -mysql> SELECT especie , sexo, COUNT(*) FROM mascota GROUP BY especie, sexo; -+-----------+------+----------+ -| especie | sexo | COUNT(*) | -+-----------+------+----------+ -| gato | f | 1 | -| gato | m | 1 | -| hamster | f | 1 | -| pájaro | NULL | 1 | -| pájaro | f | 1 | -| perro | f | 1 | -| perro | m | 2 | -| serpiente | m | 1 | -+-----------+------+----------+ - -No necesitas recuperar una tabla completa cuando uses COUNT(). Por ejemplo, la -consulta anterior, cuando se realiza sólo sobre perros y gatos, se escribe así: - -mysql> SELECT especie , sexo, COUNT(*) FROM mascota - -> WHERE especie = "perro" OR especie = "gato" - -> GROUP BY especie, sexo; -+---------+------+----------+ -| especie | sexo | COUNT(*) | -+---------+------+----------+ -| gato | f | 1 | -| gato | m | 1 | -| perro | f | 1 | -| perro | m | 2 | -+---------+------+----------+ - -O, si quieres conocer el número de animales por sexo sólo para animales de sexo -conocido: - -mysql> SELECT especie , sexo, COUNT(*) FROM mascota - -> WHERE sexo IS NOT NULL - -> GROUP BY especie, sexo; -+-----------+------+----------+ -| especie | sexo | COUNT(*) | -+-----------+------+----------+ -| gato | f | 1 | -| gato | m | 1 | -| hamster | f | 1 | -| pájaro | f | 1 | -| perro | f | 1 | -| perro | m | 2 | -| serpiente | m | 1 | -+-----------+------+----------+ - - -8.3.5 Usando más de una tabla -=============================== - -La tabla mascota guarda datos sobre las mascotas que posees. Si quieres guardar -otra información sobre ellos, como eventos en sus vidas, visitas al veterinario -o cuándo han tenido hermanos, necesitas otra tabla. ¿Cómo debería ser esta otra -tabla? - -* Deberá contener el nombre de la mascota de tal forma que pudieras saber a qué - animal corresponde cada evento almacenado en la misma. - -* Necesitará una fecha para conocer cuándo ocurrió el evento. - -* Necesitará un campo para describir el evento - -* Si quieres ser capaz de categorizar los eventos, sería útil tener un campo de - tipo evento. - -Dadas estas consideraciones, la sentencia CREATE TABLE para la tabla "evento" se -parecería a esto: - -mysql> CREATE TABLE evento (nombre VARCHAR(20), fecha DATE, - -> tipo VARCHAR(15), anotación VARCHAR(255)); - -Como ocurría con la tabla mascota, es más fácil cargar los registros iniciales -creando un fichero de texto delimitado por tabuladores conteniendo la -información: - -Fluffy 1995-05-15 parto 4 cachorros, 3 hembras, 1 macho -Buffy 1993-06-23 parto 5 cachorros, 2 hembras, 3 machos -Buffy 1994-06-19 parto 3 cachorros, 3 hembras -Chirpy 1999-03-21 veterinario necesitó enderezamiento de pico -Slim 1997-08-03 veterinario costilla rota -Bowser 1991-10-12 perrera -Fang 1991-10-12 perrera -Fang 1998-08-28 cumpleaños Se le regala un nuevo juguete de goma -Claws 1998-03-17 cumpleaños Se le regala un nuevo collar de pulgas -Whistler 1998-12-09 cumpleaños Primer cumpleaños - - -Carga los registros así: - -mysql> LOAD DATA LOCAL INFILE "evento.txt" INTO TABLE evento; - -Basándote en lo que has aprendido de las consultas que has ejecutado em la tabla -mascota, deberías ser capaz de realizar recuperaciones de datos en los registros -de la tabla "evento"; los principios son los mismos. ¿Pero qué hacer cuando la -tabla evento no sea suficiente por sí sola de responder a cuestiones que -podrías llegar a realizar? - -Supón que quisieras averiguar las edades de cada mascota al tener cachorros. La -tabla evento indica cuándo ha ocurrido esto, pero para calcular la edad de la -madre, necesitas su fecha de nacimiento. Dado que eso está almacenado en la -tabla mascota, necesitas ambas tablas para la consulta: - -mysql> SELECT mascota.nombre , (TO_DAYS(fecha) - TO_DAYS(nacimiento))/365 AS edad, anotación - -> FROM mascota, evento - -> WHERE mascota.nombre = evento.nombre AND tipo = "parto"; -+--------+------+----------------------------------+ -| nombre | edad | anotación | -+--------+------+----------------------------------+ -| Fluffy | 2.27 | 4 cachorros, 3 hembras, 1 macho | -| Buffy | 4.12 | 5 cachorros, 2 hembras, 3 machos | -| Buffy | 5.10 | 3 cachorros, 3 hembras | -+--------+------+----------------------------------+ - -Existen varios puntos que anotar sobre esta consulta: - -* La cláusula FROM lista dos tablas dado que la consulta necesita extraer - información de las dos. - -* Cuando se combina la información de múltiples tablas, necesitas especificar - cómo pueden ser asociados los registros de una tabla con los registros de la - otra. Esto es fácil dado que ambas tienen una columna nombre (N.T.: nombre es - una clave extranjera). La consulta usa la cláusula WHERE para combinar los - registros de las dos tablas basándose en los valores de nombre. - -* Dado que la columna nombre aparece en ambas tablas, debes ser específico sobre - a qué tabla te refieres cuando estés hablando de esa columna. Esto se realiza - poniendo el nombre de la tabla como prefijo de la columna. - -No necesitas tener dos tablas diferentes para realizar un join. En algunas -ocasiones es útil realizar un join de una tabla consigo misma, si quieres comparar -registros de una tabla con otros registros en la misma tabla. Por ejemplo, para buscar -parejas de sexos entre tus mascotas, puedes enlazar la tabla mascota consigo -mismo para emaparejar machos y hembras de las mismas especies: - -mysql> SELECT p1.nombre, p1.sexo, p2.nombre, p2.sexo, p1.especie - -> FROM mascota AS p1, mascota AS p2 - -> WHERE p1.especie = p2.especie AND p1.sexo = "f" AND p2.sexo = "m"; -+--------+------+--------+------+---------+ -| nombre | sexo | nombre | sexo | especie | -+--------+------+--------+------+---------+ -| Fluffy | f | Claws | m | gato | -| Buffy | f | Fang | m | perro | -| Buffy | f | Bowser | m | perro | -+--------+------+--------+------+---------+ - - -En esta consulta, especificamos un par de alias para el nombre de las tablas -y ser capaces así de referirnos a las columnas y saber en todo momento a qué -instancia de qué tabla se asocia cada referencia de columna. - -8.4 Obtener información sobre bases de datos y tablas -================================================================ - -¿Qué ocurre si olvidas el nombre de una base de datos o de una tabla, o cuál es -la estructura de una tabla dada (ejm. : ¿cómo se llaman sus columnas?) MySQL -soluciona este problema a través de numerosas sentencias que ofrecen información -sobre las bases de datos y las tablas que soporta. - -Ya hemos visto SHOW DATABASES, que lista las bases de datos gestionadas por el -servidor. Para averiguar qué base de datos está actualmente seleccionada, usa la -función DATABASE(): - -mysql> SELECT DATABASE(); -+------------+ -| DATABASE() | -+------------+ -| zoo | -+------------+ - -Si aún no has seleccionado ninguna base de datos, el resultado estará en blanco. - -Para averiguar qué tablas contiene la base de datos actual (por ejemplo, cuando -no estás seguro sobre el nombre de una tabla), usa este comando: - -mysql> SHOW TABLES; -+---------------+ -| Tables in zoo | -+---------------+ -| evento | -| mascota | -+---------------+ - -Si quieres averiguar la estructura de una tabla, el comando DESCRIBE te será -útil; muestra información sobre cada columna de una tabla: - -mysql> DESCRIBE mascota; -+-------------+-------------+------+-----+---------+-------+ -| Field | Type | Null | Key | Default | Extra | -+-------------+-------------+------+-----+---------+-------+ -| nombre | varchar(20) | YES | | NULL | | -| propietario | varchar(20) | YES | | NULL | | -| especie | varchar(20) | YES | | NULL | | -| sexo | char(1) | YES | | NULL | | -| nacimiento | date | YES | | NULL | | -| muerte | date | YES | | NULL | | -+-------------+-------------+------+-----+---------+-------+ - -Field indica el nombre de la columna, Type es el tipo de datos para la columna, -Null indica si la columna puede contener o no valores NULL, Key indica si la -columna está indexada o no, y Default especifica el valor por defecto para la -columna. - -Si tienes índices en una tabla, SHOW INDEX FROM nombre_tabla te mostrará -información sobre ellos. - -8.5 Usando mysql en modo batch -================================= - -En las secciones previas, hemos usado mysql interactivamente para introducir -consultas y observar los resultados. También puedes ejecutar mysql en modo -batch. Para realizarlo, escribe los comandos que quieras ejecutar en un fichero, -después pídele a mysql que lea su entrada desde el fichero: - -shell> mysql < fichero-batch - -(N.T.: en ocasiones se traduce como fichero por lotes) - -Si necesitas especificar parámetros de conexión en la línea de comandos, el -comando podría parecerse a esto: - -shell> mysql -h host -u user -p < fichero-batch -Enter password: ******** - -Cuando usas MySQL de esta manera, estás creando un fichero script (de guión), y -después ejecutando el script. - -¿Por qué usar un script? He aquí algunas razones: - -* Si ejecutas una consulta repetidamente (digamos, cada día o cada semana), el - construir un script con esta consulta te permite evitar volver a teclearla - cada vez que la ejecutes. - -* Puedes generar nuevas consultas a partir de consultas ya existentes similares - simplemente copiando y editando los ficheros script. - -* El modo batch puede ser también muy útil cuando estés desarrollando una - consulta, particularmente para comandos multi-línea o múltiples secuencias de - comandos de múltiples sentencias. Si cometes un error, no necesitas reescribir - todo. Símplemente edita el script para corregir el error, y después pídele a - mysql que lo vuelva a ejecutar. - -* Si tienes una consulta que produce resultados muy largos, puedes usar un - paginador para filtrar esta salida en lugar de ver cómo se desplaza fuera del - alcance de tu pantalla: - - -shell> mysql < fichero_batch | more - -* Puedes redirigir la salida a un fichero para un procesamiento posterior: - -shell> mysql < fichero_batch > mysql.out - -* Puedes distribuir tu script a otras personas para que puedan ejecutar también - tus comandos. - -* Algunas situaciones no permiten un uso interactivo, por ejemplo, cuando - ejecutas una consulta como una tarea de cron. (N.T.: cron es un comando UNIX - que sirve para planificar y ejecutar comandos UNIX en el tiempo). En este - caso, debes usar el procesamiento por lotes. - -El formato de salida por defecto es diferente (más conciso) cuando ejecutas -mysql en modo batch que cuando lo usas de manera interactiva. Por ejemplo, la -salida de SELECT DISTINCT especie FROM mascota es la siguiente cuando se -ejecuta de manera interactiva: - -mysql> SELECT DISTINCT especie FROM mascota; -+-----------+ -| especie | -+-----------+ -| gato | -| hamster | -| pájaro | -| perro | -| serpiente | -+-----------+ - -Y la siguiente si se ejecuta en modo batch: - -especie -gato -hamster -pájaro -perro -serpiente - -Si quieres obtener el formato de salida del modo interactivo también en modo -batch, usa mysql -t. Para redirigir a salida estándar los comandos que se están -ejecutando, usa mysql -vvv. - - - -8.6 Consultas del proyecto gemelos - -En Analytikerna y Lentus, hemos estado realizando el trabajo de campo y sistemas para -un gran proyecto de investigación. Este proyecto es una colaboración entre el Instituto de -Medicina Medioambiental en el Karolinska Institutet Stockholm y la Sección en Investigación -Clínica en Envejecimiento y Psicología en la Universidad del Sur de California. - -El proyecto consistió en una parte de selección donde todos los gemelos en Suecia mayores de -65 años eran entrevistados por teléfono. Los gemelos que reunían ciertos criterios pasaban a la -siguiente fase. En esta fase posterior, los gemelos que querían participar eran visitados por -un equipo doctor/enfermera. Algunos de los exámenes incluían exámenes físicos y neuropsicológicos, -pruebas de laboratorio, neuroimágenes, valoración del estado psicológico, y recopilación de la -historia familiar. Además, se recogieron datos sobre los factores de riesgo médicos y -medioambientales. - -Puede encontrarse más información sobre los estudios de gemelos en : - - http://www.imm.ki.se/TWIN/TWINUKW.HTM - -La última parte del proyecto se administra con un interfaz web escrito usando Perl y MySQL. -Cada noche, todos los datos de las entrevistas son movidos a una base de datos MySQL. - -8.6.1 Buscar todos los gemelos no-distribuidos - -La siguiente consulta se usa para determinar quién pasa a la segunda parte del proyecto: - - select - concat(p1.id, p1.tvab) + 0 as tvid, - concat(p1.christian_name, " ", p1.surname) as Name, - p1.postal_code as Code, - p1.city as City, - pg.abrev as Area, - if(td.participation = "Aborted", "A", " ") as A, - p1.dead as dead1, - l.event as event1, - td.suspect as tsuspect1, - id.suspect as isuspect1, - td.severe as tsevere1, - id.severe as isevere1, - p2.dead as dead2, - l2.event as event2, - h2.nurse as nurse2, - h2.doctor as doctor2, - td2.suspect as tsuspect2, - id2.suspect as isuspect2, - td2.severe as tsevere2, - id2.severe as isevere2, - l.finish_date - from - twin_project as tp - /* For Twin 1 */ - left join twin_data as td on tp.id = td.id and tp.tvab = td.tvab - left join informant_data as id on tp.id = id.id and tp.tvab = id.tvab - left join harmony as h on tp.id = h.id and tp.tvab = h.tvab - left join lentus as l on tp.id = l.id and tp.tvab = l.tvab - /* For Twin 2 */ - left join twin_data as td2 on p2.id = td2.id and p2.tvab = td2.tvab left join informant_data as id2 on p2.id = id2.id and p2.tvab = id2.tvab - left join harmony as h2 on p2.id = h2.id and p2.tvab = h2.tvab - left join lentus as l2 on p2.id = l2.id and p2.tvab = l2.tvab, - person_data as p1, - person_data as p2, - postal_groups as pg - where - /* p1 gets main twin and p2 gets his/her twin. */ - /* ptvab is a field inverted from tvab */ - p1.id = tp.id and p1.tvab = tp.tvab and - p2.id = p1.id and p2.ptvab = p1.tvab and - /* Just the sceening survey */ - tp.survey_no = 5 and - /* Skip if partner died before 65 but allow emigration (dead=9) */ - (p2.dead = 0 or p2.dead = 9 or - (p2.dead = 1 and - (p2.death_date = 0 or - (((to_days(p2.death_date) - to_days(p2.birthday)) / 365) - >= 65)))) - and - ( - /* Twin is suspect */ - (td.future_contact = 'Yes' and td.suspect = 2) or - /* Twin is suspect - Informant is Blessed */ - (td.future_contact = 'Yes' and td.suspect = 1 and id.suspect = 1) o - /* No twin - Informant is Blessed */ - (ISNULL(td.suspect) and id.suspect = 1 and id.future_contact = 'Yes') or - /* Twin broken off - Informant is Blessed */ - (td.participation = 'Aborted' - and id.suspect = 1 and id.future_contact = 'Yes') or - /* Twin broken off - No inform - Have partner */ - (td.participation = 'Aborted' and ISNULL(id.suspect) and p2.dead = 0)) - and - l.event = 'Finished' - /* Get at area code */ - and substring(p1.postal_code, 1, 2) = pg.code - /* Not already distributed */ - and (h.nurse is NULL or h.nurse=00 or h.doctor=00) - /* Has not refused or been aborted */ - and not (h.status = 'Refused' or h.status = 'Aborted' - or h.status = 'Died' or h.status = 'Other') - order by - tvid; - -Algunas explicaciones: - -`concat(p1.id, p1.tvab) + 0 as tvid' - Queremos ordenar por la concatenación de `id' y `tvab' en orden numérico. - Añadiendo `0' al resultado provocamos que *MySQL* trate el resultado como - un número. - -column `id' - Esto identifica un par de gemelos. Es una clave en todas las tablas. - -column `tvab' - Esto identifica un gemelo de una pareja. Tiene un valor de `1' ó `2' - -column `ptvab' - Esto es la inversa de `tvab'. Cuando `tvab' es `1' esto es `2', y - vice versa. Esto existe para ahorrarnos teclear y para hacer más fácil - la optimización de la consulta a MySQL. - - -Esta consulta demuestra, entre otras cosas, cómo realizar búsquedas en una tabla -enlazada con la misma tabla a través de un join (p1 y p2). En el ejemplo, ésto -se usa para comprobar cuándo un gemelo de una pareja murió antes de cumplir 65. -En caso afirmativo, la fila no es devuelta. - -Todo lo anterior existe en todas las tablas con información relacionada con los gemelos. -Tenemos una clave tanto en id, tvab (todas las tablas) como en id,ptvab (person_data) para -construir consultas más rápidas. - -En nuestra máquina de producción (una UltraSPARC 200MHz), esta consulta devuelve alrededor -de 150-200 filas y tarda menos de un segundo. - -El número actual de registros en las tablas usadas arriba: - -Tabla Filas - -person_data 71074 -lentus 5291 -twin_project 5286 -twin_data 2012 -informant_data 663 -harmony 381 -postal_groups 100 - - - - -8.6.2 Mostrar una tabla con el estado de la pareja de gemelos. - -Cada entrevista finaliza con un código de estado llamado event. La consulta mostrada -debajo se usa para imprimir una tabla sobre todas las parejas de gemelos combinadas por evento. -Esto indica en cuántas parejas ambos gemelos han finalizado, en cuántas parejas -ha finalizado un gemelo y el otro se rechazó, etc. - - select - t1.event, - t2.event, - count(*) - from - lentus as t1, - lentus as t2, - twin_project as tp - where - /* We are looking at one pair at a time */ - t1.id = tp.id - and t1.tvab=tp.tvab - and t1.id = t2.id - /* Just the sceening survey */ - and tp.survey_no = 5 - /* This makes each pair only appear once */ - and t1.tvab='1' and t2.tvab='2' - group by - t1.event, t2.event; - - - diff --git a/Docs/bk.txt b/Docs/bk.txt deleted file mode 100644 index b9274901653..00000000000 --- a/Docs/bk.txt +++ /dev/null @@ -1,65 +0,0 @@ -Mail by sasha, should be rewritten as a HOWTO sometimes -vva added point C) for Windows-project ------------ - -I have set up a repository with BitKeeper on work. There are still some things -about it that I would like to learn, but I have gotten far enough with it to -replace CVS functionality were are currently using, so let's just go ahead and -get started on it. Please follow the instructions below (make sure to save the -message for future reference): - -a) http://www.bitmover.com/download - user: beta - password: get bitkeeper - - get the version appropriate for your platform - download it to a temp -directory, chmod +x and then run it. You will have to tell it which directory -to install, for consistency, let's use /usr/local/bin - -b) we will take advantage of bk capablity of working with master/slave -repositories. The master will be on work.mysql.com, the slaves will be our -individual machines. The master repository has already been set up on work, so -you will need just to set up a slave repository on your machine: - - mkdir bk - cd bk - bk clone yourusername@work:/home/bk/mysql mysql - cd mysql - bk -r edit - -Now you have the entire source tree in the current directory. Let's compile it: - - BUILD/compile-pentium-debug - -C) Windows project. - - Compile Linux-project (see points above) - - run VC++Files/prepare - - make repository accessible for Windows (using samba) - - open VC++Files/mysql.dsw in Microsoft Visual Stidio (5.0 or above) - -After you edit a file, you need to check it in using bk citool or bk ci -filename. Note that ci is different than commit - you ci a file, but you commit -a change set. This is a very nice concept - instead of thinking of each -individual file as CVS does, bk groups the changes you are making and allows you -to document what you actually did between the commits as a whole, rather than -just commenting on every file. When you commit, bk will ask you to comment on -the change set. - -Commit is done just to your local repository. To make your changes global, you -will need to run bk push. Be careful with that - it is a good idea to run bk -push -l -n first too see what you are just about to push to the master -repository. - -When somebody does a push, you will be getting a email ( I will set this up to -day). You will then need to execute bk pull to update your sources. If there are -any conflicts, bk will force you to resolve them by asking you questions on what -to do with each conflict. - -To learn more about bk, use bk helptool - I will be doing this a lot in the next -couple of days :-) If you find bugs or have questions/feature -suggestions/comments for developers, feel free to e-mail dev@bitmover.com . -Their developers, and especially the president of the company Larry McVoy really -like MySQL and are very anxious to help us. Make sure it is obvious that you -work for MySQL, of course. And, of course, do not bug them with little things -that you can figure out on your own or with my help - they were nice to offer us -support, but we should not abuse it. \ No newline at end of file diff --git a/Docs/changelog-4.0.xml b/Docs/changelog-4.0.xml deleted file mode 100755 index f0f9aa881f1..00000000000 --- a/Docs/changelog-4.0.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - Changes in release 4.0.x - - - - This is a dummy changelog file. Don't use it yet. - - - diff --git a/Docs/changelog-4.1.xml b/Docs/changelog-4.1.xml deleted file mode 100755 index 644f2940d0f..00000000000 --- a/Docs/changelog-4.1.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - Changes in release 4.1.x - - - - This is a dummy changelog file. Don't use it yet. - - - diff --git a/Docs/changelog-5.0.xml b/Docs/changelog-5.0.xml deleted file mode 100755 index deb059716ad..00000000000 --- a/Docs/changelog-5.0.xml +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - Changes in release 5.0.x - - - - This is a dummy changelog file. Don't use it yet. - - - diff --git a/Docs/Support/generate-text-files.pl b/Docs/generate-text-files.pl similarity index 100% rename from Docs/Support/generate-text-files.pl rename to Docs/generate-text-files.pl diff --git a/Docs/sp-implemented.txt b/Docs/sp-implemented.txt deleted file mode 100644 index 6f2cf49b3b0..00000000000 --- a/Docs/sp-implemented.txt +++ /dev/null @@ -1,112 +0,0 @@ -Stored Procedures implemented 2004-01-29: - - -Summary of what's implemented: - - - SQL PROCEDUREs/FUNCTIONs (CREATE/DROP) - - CALL - - DECLARE of local variables - - BEGIN/END, SET, CASE, IF, LOOP, WHILE, REPEAT, ITERATE, LEAVE - - SELECT INTO local variables - - "Non-query" FUNCTIONs only - - Prepared SP caching - - CONDITIONs and HANDLERs - - Simple read-only CURSORs. - - SHOW CREATE PROCEDURE/FUNCTION and SHOW PROCEDURE/FUNCTION STATUS - - -Summary of Not Yet Implemented: - - - SQL statements using tables (like SELECT, INSERT, UPDATE etc) in FUNCTIONs - - External languages - - Access control - - SQL-99 COMMIT (related to BEGIN/END) - - FOR-loops - - CASCADE/RESTRICT for ALTER and DROP - - ALTER/DROP METHOD (as it implies User Defined Types) - - SIGNAL and RESIGNAL, and UNDO handlers - - -List of what's implemented: - - - CREATE PROCEDURE|FUNCTION name ( args ) characteristics body - where characteristics is: - LANGUAGE SQL | - [NOT] DETERMINISTIC | - SQL SECURITY [DEFINER|INVOKER] | - COMMENT string - However the DETERMINISTIC setting is not currently used. - - - ALTER PROCEDURE|FUNCTION name characteristics - CASCADE/RESTRICT is not implemented. - characteristics is: - COMMENT string | - SQL SECURITY [DEFINER|INVOKER] | - NAME newname - - - DROP PROCEDURE|FUNCTION [IF EXISTS] name - CASCADE/RESTRICT is not implemented. - - - CALL name (args) - OUT and INOUT parameters are also works for user variables ("global" - variables) - i.e., if a procedure is defined as: - CREATE PROCEDURE foo(OUT p INT) ...; - a call like: - CALL foo(@x); - will set @x to the output value. - - - Function/Procedure body: - - BEGIN/END - Is parsed, but not the real thing with (optional) transaction - control, it only serves as block syntax for multiple statements (and - local variable binding). - Note: Multiple statements requires a client that can send bodies - containing ";". This is handled in the CLI clients mysql and - mysqltest with the "delimiter" command. Changing the end-of-query - delimiter ";" to for instance "|" allows ";" to be used in the - routine body. - - SET of local variables - Implemented as part of the pre-existing SET syntax. This allows an - extended syntax of "SET a=x, b=y, ..." where different variable types - (SP local and global) can be mixed. This also allows combinations - of local variables and some options that only make sense for - global/system variables; in that case the options are accepted but - ignored. - - The flow control constructs: CASE, IF, LOOP, WHILE, ITERATE and LEAVE - are fully implemented. - - SELECT ... INTO local variables (as well as global session variables) - is implemented. (Note: This is not SQL-99 feature, but common in other - databases.) - - A FUNCTION can have flow control contructs, but must not contain - an SQL query/statement, like SELECT, INSERT, UPDATE, etc. The reason - is that it's hard to allow this is that a FUNCTION is executed as part - of another query (unlike a PROCEDURE, which is called as a statement). - The table locking scheme used makes it difficult to allow "subqueries" - during FUNCTION invokation. - - SPs are cached, but with a separate cache for each thread (THD). - There are still quite a few non-reentrant constructs in the lexical - context which makes sharing prepared SPs impossible. And, even when - this is resolved, it's not necessarily the case that it will be faster - than a cache per thread. A global cache requires locks, which might - become a bottleneck. (It would save memory though.) - - CONDITIONs and HANDLERs are implemented, but not the SIGNAL and - RESIGNAL statements. (It's unclear if these can be implemented.) - The semantics of CONDITIONs is expanded to allow catching MySQL error - codes as well. UNDO handlers are not implemented (since we don't have - SQL-99 style transaction control yet). - - Simple read-only CURSORs are implemented, but not yet any of the - optional arguments to DECLARE (SCROLL, SENSITIVE, etc) or FETCH - (NEXT, PRIOR, etc). Cursors are ASENSITIVE, READ-ONLY, non-SCROLLing. - (The additional syntax will be added for completeness, but for the - most part unsupported with the current underlying cursor mechanism.) - N.B. The current implementation is temporary and only works within a - stored procedure, and may not perform well for very large result sets. - A "real" cursor implementation is under development; this will replace - the current one when it's finished. - - - SHOW procedures and functions - SHOW CREATE PROCEDURE|FUNCTION - returns the definition of a routine. - SHOW PROCEDURE|FUNCTION STATUS [LIKE ] - returns characteristics of routines, like the name, type, creator, - creation and modification dates, etc. diff --git a/Makefile.am b/Makefile.am index 4e648dabe27..cc6cd7da8ce 100644 --- a/Makefile.am +++ b/Makefile.am @@ -36,9 +36,9 @@ DIST_SUBDIRS = . include @docs_dirs@ zlib \ @thread_dirs@ pstack \ strings mysys dbug extra regex storage \ vio sql libmysql_r libmysql client scripts \ - @man_dirs@ tests SSL\ + @man_dirs@ tests \ BUILD netware @libmysqld_dirs@\ - @bench_dirs@ support-files server-tools tools \ + @bench_dirs@ support-files server-tools \ plugin win # Run these targets before any others, also make part of clean target, diff --git a/SSL/Makefile.am b/SSL/Makefile.am deleted file mode 100644 index bd3aad1e3b2..00000000000 --- a/SSL/Makefile.am +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - -## Process this file with automake to create Makefile.in - -EXTRA_DIST= NOTES cacert.pem client-cert.pem client-key.pem \ - client-req.pem run-client run-server server-cert.pem \ - server-key.pem server-req.pem - -# Don't update the files from bitkeeper -%::SCCS/s.% diff --git a/SSL/NOTES b/SSL/NOTES deleted file mode 100644 index 413c724c583..00000000000 --- a/SSL/NOTES +++ /dev/null @@ -1,376 +0,0 @@ -Quick notes: --------------------------------------------- -[tonu@x153 mysql-4.0]$ cat /etc/my.cnf -[mysqld] -ssl-ca=SSL/cacert.pem -ssl-cert=SSL/server-cert.pem -ssl-key=SSL/server-key.pem - -[mysql] -ssl-ca=SSL/cacert.pem -ssl-cert=SSL/client-cert.pem -ssl-key=SSL/client-key.pem - -[mysqldump] -ssl-ca=SSL/cacert.pem -ssl-cert=SSL/client-cert.pem -ssl-key=SSL/client-key.pem - -[tonu@x153 mysql-4.0]$ --------------------------------------------- -To remove passwords from keyfiles: -[tonu@x153 SSL]$ openssl rsa -inform pem < server-req.pem > server-key.pem -read RSA key -Enter PEM pass phrase: -writing RSA key -[tonu@x153 SSL]$ --------------------------------------------- -To run server: - -sql/mysqld --ssl-ca=SSL/cacert.pem --ssl-cert=SSL/server-cert.pem --ssl-key=SSL/server-key.pem --skip-grant --debug='d:t:O,-' > /tmp/mysqld.trace --------------------------------------------- -To run client: - -client/mysql --ssl-ca=SSL/cacert.pem --ssl-cert=SSL/server-cert.pem --ssl-key=SSL/server-key.pem --debug='d:t:O,/tmp/client.trace' -h 127.0.0.1 --------------------------------------------- -openssl s_client -host 127.0.0.1 -port 1111 -debug -verify 1 -cert ../SSL/client-cert.pem -key ../SSL/client-key.pem -CAfile ../SSL/cacert.pem -pause -showcerts -state - --------------------------------------------- -openssl s_server -port 1111 -cert ../SSL/server-cert.pem -key ../SSL/server-key.pem - - - - --------------------------------------------- - -CA stuff: - -[tonu@x153 bin]$ pwd -/usr/local/ssl/bin -[tonu@x153 bin]$ -[tonu@x153 bin]$ ./CA.sh -[tonu@x153 bin]$ ./CA.sh -h -usage: CA -newcert|-newreq|-newca|-sign|-verify -[tonu@x153 bin]$ -[root@x153 bin]# ./CA.sh -newca -CA certificate filename (or enter to create) - -Making CA certificate ... -Using configuration from /usr/lib/ssl/openssl.cnf -Generating a 1024 bit RSA private key -.++++++ -................++++++ -writing new private key to './demoCA/private/./cakey.pem' -Enter PEM pass phrase: -Verifying password - Enter PEM pass phrase: -phrase is too short, needs to be at least 4 chars -Enter PEM pass phrase: -Verifying password - Enter PEM pass phrase: ------ -You are about to be asked to enter information that will be incorporated -into your certificate request. -What you are about to enter is what is called a Distinguished Name or a DN. -There are quite a few fields but you can leave some blank -For some fields there will be a default value, -If you enter '.', the field will be left blank. ------ -ountry Name (2 letter code) [AU]:FI -State or Province Name (full name) [Some-State]: -Locality Name (eg, city) []:Helsinki -Organization Name (eg, company) [Internet Widgits Pty Ltd]:MySQL Finland AB -Organizational Unit Name (eg, section) []: -Common Name (eg, YOUR name) []:Tonu Samuel -Email Address []:tonu@mysql.com -[root@x153 bin]# -[root@x153 bin]# ls -la demoCA/ -total 13 -drwxr-xr-x 6 root root 232 Jun 24 18:50 ./ -drwxr-xr-x 3 root root 2136 Jun 24 18:41 ../ --rw-r--r-- 1 root root 1241 Jun 24 18:50 cacert.pem -drwxr-xr-x 2 root root 48 Jun 24 18:41 certs/ -drwxr-xr-x 2 root root 48 Jun 24 18:41 crl/ --rw-r--r-- 1 root root 0 Jun 24 18:44 index.txt -drwxr-xr-x 2 root root 48 Jun 24 18:41 newcerts/ -drwxr-xr-x 2 root root 80 Jun 24 18:44 private/ --rw-r--r-- 1 root root 3 Jun 24 18:44 serial -[root@x153 bin]# -[root@x153 bin]# ls -la demoCA/private/ -total 5 -drwxr-xr-x 2 root root 80 Jun 24 18:44 ./ -drwxr-xr-x 6 root root 232 Jun 24 18:50 ../ --rw-r--r-- 1 root root 963 Jun 24 18:50 cakey.pem -[root@x153 bin]# -[root@x153 bin]# ./CA.sh -newreq -Using configuration from /usr/lib/ssl/openssl.cnf -Generating a 1024 bit RSA private key -..................++++++ -........................++++++ -writing new private key to 'newreq.pem' -Enter PEM pass phrase: <- new key password, not CA -Verifying password - Enter PEM pass phrase: ------ -You are about to be asked to enter information that will be incorporated -into your certificate request. -What you are about to enter is what is called a Distinguished Name or a DN. -There are quite a few fields but you can leave some blank -For some fields there will be a default value, -If you enter '.', the field will be left blank. ------ -Country Name (2 letter code) [AU]:EE -State or Province Name (full name) [Some-State]: -Locality Name (eg, city) []:Tallinn -Organization Name (eg, company) [Internet Widgits Pty Ltd]:Noname -Organizational Unit Name (eg, section) []: -Common Name (eg, YOUR name) []:Mr Noname -Email Address []:a@b.c - -Please enter the following 'extra' attributes -to be sent with your certificate request -A challenge password []: -An optional company name []: -Request (and private key) is in newreq.pem -[root@x153 bin]# -[root@x153 bin]# ls -la newreq.pem --rw-r--r-- 1 root root 1623 Jun 24 18:54 newreq.pem -[root@x153 bin]# -[root@x153 bin]# ./CA.sh -sign -Using configuration from /usr/lib/ssl/openssl.cnf -Enter PEM pass phrase: <- CA's one! -Check that the request matches the signature -Signature ok -The Subjects Distinguished Name is as follows -countryName :PRINTABLE:'EE' -stateOrProvinceName :PRINTABLE:'Some-State' -localityName :PRINTABLE:'Tallinn' -organizationName :PRINTABLE:'Noname' -commonName :PRINTABLE:'Mr Noname' -emailAddress :IA5STRING:'a@b.c' -Certificate is to be certified until Jun 24 15:50:23 2002 GMT (365 days) -Sign the certificate? [y/n]:y - - -1 out of 1 certificate requests certified, commit? [y/n]y -Write out database with 1 new entries -Data Base Updated -Certificate: - Data: - Version: 3 (0x2) - Serial Number: 1 (0x1) - Signature Algorithm: md5WithRSAEncryption - Issuer: C=FI, ST=Some-State, L=Helsinki, O=MySQL Finland AB, CN=Tonu Samuel/Email=tonu@mysql.com - Validity - Not Before: Jun 24 15:50:23 2001 GMT - Not After : Jun 24 15:50:23 2002 GMT - Subject: C=EE, ST=Some-State, L=Tallinn, O=Noname, CN=Mr Noname/Email=a@b.c - Subject Public Key Info: - Public Key Algorithm: rsaEncryption - RSA Public Key: (1024 bit) - Modulus (1024 bit): - 00:ab:3b:7d:5b:6c:93:f6:46:1a:2c:46:73:6f:89: - 8a:99:bb:e9:6b:94:0d:74:aa:aa:c4:5c:a2:61:cf: - 56:bb:a1:a9:5a:37:c4:4e:b2:ec:5c:18:3a:a4:8d: - af:3d:23:66:7c:85:7f:d1:f2:e3:fc:16:a7:4c:a2: - d6:45:06:92:75:d8:a2:3b:f9:aa:77:da:26:b9:87: - e0:df:50:54:e4:36:9f:35:87:39:8e:a6:7c:3e:a8: - e4:49:1a:76:c2:6f:73:0b:22:93:2a:04:67:0d:7d: - ae:34:5c:fe:7c:29:b8:a2:fe:1e:ef:d1:0c:4d:dd: - 5b:7a:67:b0:0a:22:88:a0:af - Exponent: 65537 (0x10001) - X509v3 extensions: - X509v3 Basic Constraints: - CA:FALSE - Netscape Comment: - OpenSSL Generated Certificate - X509v3 Subject Key Identifier: - 83:D1:0D:52:0F:DE:61:2D:A6:10:20:B8:46:0C:77:D5:D2:D0:BE:20 - X509v3 Authority Key Identifier: - keyid:A5:0A:D6:72:B5:DF:E4:C2:2B:7B:07:5E:D3:4D:52:07:E1:83:6B:7F - DirName:/C=FI/ST=Some-State/L=Helsinki/O=MySQL Finland AB/CN=Tonu Samuel/Email=tonu@mysql.com - serial:00 - - Signature Algorithm: md5WithRSAEncryption - 60:85:f7:d0:54:2a:67:88:0e:37:a6:a8:8e:fd:a0:c9:a1:d7: - c6:fc:4c:2e:59:8d:88:6d:69:0a:b8:b2:67:5f:81:94:39:0e: - ab:67:fc:8b:62:de:85:f6:b3:8c:2d:1a:e3:dc:28:fc:f5:99: - 39:f0:3d:50:ca:88:c0:8e:f8:c2:02:5d:34:19:63:9f:c4:a2: - f6:a8:81:c9:8d:6d:bd:c4:42:4a:0c:49:5a:cc:24:ea:65:80: - dd:79:20:89:9e:ea:6b:80:7a:86:f9:bb:6d:24:3c:80:13:5b: - e6:16:fc:3d:8d:f6:16:ea:33:25:c6:90:20:81:a4:b0:15:2e: - 9c:1c ------BEGIN CERTIFICATE----- -MIIDfjCCAuegAwIBAgIBATANBgkqhkiG9w0BAQQFADCBhTELMAkGA1UEBhMCRkkx -EzARBgNVBAgTClNvbWUtU3RhdGUxETAPBgNVBAcTCEhlbHNpbmtpMRkwFwYDVQQK -ExBNeVNRTCBGaW5sYW5kIEFCMRQwEgYDVQQDEwtUb251IFNhbXVlbDEdMBsGCSqG -SIb3DQEJARYOdG9udUBteXNxbC5jb20wHhcNMDEwNjI0MTU1MDIzWhcNMDIwNjI0 -MTU1MDIzWjBvMQswCQYDVQQGEwJFRTETMBEGA1UECBMKU29tZS1TdGF0ZTEQMA4G -A1UEBxMHVGFsbGlubjEPMA0GA1UEChMGTm9uYW1lMRIwEAYDVQQDEwlNciBOb25h -bWUxFDASBgkqhkiG9w0BCQEWBWFAYi5jMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCB -iQKBgQCrO31bbJP2RhosRnNviYqZu+lrlA10qqrEXKJhz1a7oalaN8ROsuxcGDqk -ja89I2Z8hX/R8uP8FqdMotZFBpJ12KI7+ap32ia5h+DfUFTkNp81hzmOpnw+qORJ -GnbCb3MLIpMqBGcNfa40XP58Kbii/h7v0QxN3Vt6Z7AKIoigrwIDAQABo4IBETCC -AQ0wCQYDVR0TBAIwADAsBglghkgBhvhCAQ0EHxYdT3BlblNTTCBHZW5lcmF0ZWQg -Q2VydGlmaWNhdGUwHQYDVR0OBBYEFIPRDVIP3mEtphAguEYMd9XS0L4gMIGyBgNV -HSMEgaowgaeAFKUK1nK13+TCK3sHXtNNUgfhg2t/oYGLpIGIMIGFMQswCQYDVQQG -EwJGSTETMBEGA1UECBMKU29tZS1TdGF0ZTERMA8GA1UEBxMISGVsc2lua2kxGTAX -BgNVBAoTEE15U1FMIEZpbmxhbmQgQUIxFDASBgNVBAMTC1RvbnUgU2FtdWVsMR0w -GwYJKoZIhvcNAQkBFg50b251QG15c3FsLmNvbYIBADANBgkqhkiG9w0BAQQFAAOB -gQBghffQVCpniA43pqiO/aDJodfG/EwuWY2IbWkKuLJnX4GUOQ6rZ/yLYt6F9rOM -LRrj3Cj89Zk58D1QyojAjvjCAl00GWOfxKL2qIHJjW29xEJKDElazCTqZYDdeSCJ -nuprgHqG+bttJDyAE1vmFvw9jfYW6jMlxpAggaSwFS6cHA== ------END CERTIFICATE----- -Signed certificate is in newcert.pem -[root@x153 bin]# ls -la demoCA/newcerts/ -total 5 -drwxr-xr-x 2 root root 72 Jun 24 18:58 ./ -drwxr-xr-x 6 root root 296 Jun 24 18:58 ../ --rw-r--r-- 1 root root 3533 Jun 24 18:58 01.pem -[root@x153 bin]# -[root@x153 mysql-4.0]# ./sql/mysqld --ssl-cert=SSL/server-cert.pem --ssl-ca=SSL/cacert.pem --ssl-ke -y=SSL/server-req.pem -L /home/tonu/mysql-4.0/sql/share/english/ -u root -Enter PEM pass phrase: -./sql/mysqld: ready for connections -[tonu@x153 mysql-4.0]$ client/mysql --ssl-key=SSL/client-req.pem --ssl-ca=SSL/cacert.pem --ssl-cert -=SSL/client-cert.pem -Enter PEM pass phrase: -ERROR: - -[tonu@x153 mysql-4.0]$ - - - - --8<------------------------ -SSL encrypts data between MySQL server and client. - -You need openssl (formerly SSLeay) for MySQL SSL support. Development -and testing was done on openssl version 0.9.3a - -To compile MySQL one must do: -./configure --with-openssl=/usr - -or - -./configure --with-openssl=yes - -There are sample keys and certificates included with MySQL tarball in -directory ./SSL. They are meant to be for quick start and -testing only. Using them in production environment means same as not -using encryption. This is because private keys are publicly -accessible for everyone. You must use openssl distribution for new key -and certificate generation for both client and server. - ------------ for manual: --------------------- -*New API calls:* - -mysql_ssl_set() - Set SSL properties (key, certificate, -certificates authority certificate). Must be called before -mysql_real_connect(); -mysql_ssl_clear() - Clear and free resources occupied by -mysql_ssl_set() API call. -char *mysql_ssl_cipher(MYSQL *) - returns cipher in use. For example -"DES-CDC3-SHA" means that you have combined triple DES symmetric -algorithm and SHA -hashing algorithm. - - -*New command line switches:* ---ssl Use SSL for connection (automatically set with -other flags. This means one can use encrypted connection without strong -cryptological authentication. Normally one must use all switches -together including ssl-key, ssl-cert and ssl-ca and never mind about ---ssl because this is assumed by defult if any of them (--ssl-...) -included. ---ssl-key X509 key in PEM format (implies --ssl) ---ssl-cert X509 cert in PEM format (implies --ssl) ---ssl-ca CA file in PEM format (check OpenSSL docs, -implies --ssl) ---ssl-capath CA directory (check OpenSSL docs, implies --ssl - ---------------- - This is about using SSL in MySQL privilege system. My idea is to make - possible use of x509 certificates and keys instead of MySQL native - passwords -Some basic theory about crypt, SSL and x509: -x509 is standard for certificates. SSL is standard for secure -communication. Certificates are issued by someone anyone can trust. This -trusted party is called "Certificate Authority" or "CA". This is -someone, we MUST trust. Everyone must have some "fingerprint" of CA (so -called "CA certificate" or "CA cert") using which one can verify -authenticity of other -certificates issued by this CA. CA uses his power to give certificates -to persons (they can be physical (like "monty") or logical (like some -process). Person is identified by "subject" like -"/C=EE/ST=Harjumaa/L=Tallinn/O=MySQL client bogus certificate/CN=Tonu -Samuel/Email=". and signed cryptologically. This sign can be -verified using CA-cert. So, if we trust CA, then we can trust identity -of user. -There can be many CA-s (usually not but who knows). Also there can be -some users we don`t trust or have different privileges. This means we -must have one table to hold CA-certs and other table to hold so called -"subjects" (users). I think it`s a good idea to use existing structure -of host/user/db/field and add some x509 relationship. Then we can -use usual simple user/host pair or x509 subject/CA pair. -So I think user must grant rights using old method GRANT blabla ON -blabla TO blabla IDENTIFIED BY blabla -or new way: ------------8<--------------------------- -GRANT blabla ON blabla TO blabla -IDENTIFIED BY X509 SUBJECT "/C=EE/ST=Harjumaa/L=Tallinn/O=MySQL client -bogus certificate/CN=Tonu Samuel/Email=" AND ISSUER -"/C=EE/ST=Harjumaa/L=Tallinn/O=TCX AB/CN=Tonu -Samuel/Email="; ------------8<--------------------------- -Please note the difference in Subject and Issuer. This command requests -user to authenticate itself with exact subject and exact certificate -issuer. Next possibility is just have any certificate of some good CA: ------------8<--------------------------- -GRANT blabla ON blabla TO blabla IDENTIFIED BY X509 ISSUER -"/C=EE/ST=Harjumaa/L=Tallinn/O=TCX -AB/CN=Tonu Samuel/Email="; ------------8<--------------------------- -or if any registered CA is good enough (usual case when only one CA is -registered) -but we care about exact user, then something like: ------------8<--------------------------- -GRANT blabla ON blabla TO blabla IDENTIFIED BY X509 SUBJECT -"/C=EE/ST=Harjumaa/L=Tallinn/O=MySQL client -bogus certificate/CN=Tonu Samuel/Email="; ------------8<--------------------------- -And case if user must authenticate itself but we don`t care about exact -person until he have some certificate issued by CA registered in our -system: ------------8<--------------------------- -GRANT blabla ON blabla TO blabla IDENTIFIED BY X509; ------------8<--------------------------- -Then additionally we need one exception. Let`s assume we need SSL -encryption -for preventing eavesdropping but we don`t care who it is at all. We need -privilege to exclude all non-SSL users but we accept anyone using SSL. -How -this must be done in GRANT syntax? Maybe: ------------8<--------------------------- -GRANT blabla ON blabla TO blabla -IDENTIFIED BY blabla AND USING SSL ------------8<--------------------------- -But maybe we want to add in future possibility to check different -algorithms and key lengths? Something like: ------------8<--------------------------- -GRANT blabla ON blabla TO blabla IDENTIFIED BY blabla AND USING SSL WITH -CIPHER "DES-CBC3-SHA" OR "DES-CBC3-MD5" ------------8<--------------------------- -Also we need some command to include/exclude CA certificates. This must -be some commands like INSERT/DELETE/UPDATE/REPLACE to do it. -All examples is given for clarify my problem. I asking for help because -I don`t know -any similar command in other SQL-s. -------------8<------------------------ - -So, at moment SSL communications is ready and working. I don`t have this -command iterface at moment yet and this can be changed a lot if someone -can suggest good idea or reason to change them. We are ready to listen -every opinion. -About Kerberos: I just don`t know much about it. I have to read this -again before I can comment. I never used it itself and forgot most of -theory. Sorry. Anyway now the problem/need is known and I will put -thinking about this in personal TODO. - - diff --git a/SSL/client-req.pem b/SSL/client-req.pem deleted file mode 100644 index b3667fb5ec6..00000000000 --- a/SSL/client-req.pem +++ /dev/null @@ -1,12 +0,0 @@ ------BEGIN CERTIFICATE REQUEST----- -MIIBvDCCASUCAQAwfDELMAkGA1UEBhMCU0UxEDAOBgNVBAcTB1VwcHNhbGExETAP -BgNVBAoTCE15U1FMIEFCMRUwEwYDVQQDEwxNeVNRTCBDbGllbnQxMTAvBgkqhkiG -9w0BCQEWImFic3RyYWN0Lm15c3FsLmRldmVsb3BlckBteXNxbC5jb20wgZ8wDQYJ -KoZIhvcNAQEBBQADgY0AMIGJAoGBAMQDCu7jsRL87rQZ9OFgHeAow5Yt34JpzXR8 -VFjQrrNZPwwZHJkQphLJzzpkBUOOv9JlNoCRC2WwJyY4ySPYNqJK8PfAL2g4cAEn -Kf+yxVLha/HI18Nc7vA3bCqblhoFnuszojlad2ZiJ3UfL2842uWfeK/KayI/Vyu8 -po9H0ZlvAgMBAAGgADANBgkqhkiG9w0BAQQFAAOBgQAnKdk68dGJXvlj/GXwBUWN -oXWF7hq4fDmwyhmcFUqk8qZKPKFUxkcER0GLzYeUgvD2URSfaS3/YW0d7K7kXGwP -rB5edb+suaYf6mjm/w37xw/EJI9rdSKcB/3SSu8mALds7sUHDAO+MO0WkA/9d7t0 -LOsUqcDvMkKpZuYwNILwLw== ------END CERTIFICATE REQUEST----- diff --git a/SSL/run-client b/SSL/run-client deleted file mode 100755 index f3b29eb273b..00000000000 --- a/SSL/run-client +++ /dev/null @@ -1,10 +0,0 @@ -#! /bin/sh - -cmd () { - echo $* - $* -} - -client/mysql --port=4407 --socket=/tmp/test.mysql.sock --ssl-ca=SSL/cacert.pem --ssl-cert=SSL/client-cert.pem --ssl-key=SSL/client-key.pem --debug='d:t:O,/tmp/client.trace' -h 127.0.0.1 -u root -#--execute="select version();show status" - diff --git a/SSL/run-server b/SSL/run-server deleted file mode 100755 index e90a7644b83..00000000000 --- a/SSL/run-server +++ /dev/null @@ -1,9 +0,0 @@ -#! /bin/sh - -cmd () { - echo $* - $* -} - -cmd sql/mysqld --port=4407 --socket=/tmp/test.mysql.sock --ssl-ca=SSL/cacert.pem --ssl-cert=SSL/server-cert.pem --ssl-key=SSL/server-key.pem --debug='d:t:O,/tmp/mysqld.trace' -uroot >& /tmp/mysqld.output - diff --git a/SSL/server-req.pem b/SSL/server-req.pem deleted file mode 100644 index 7c3db0660ad..00000000000 --- a/SSL/server-req.pem +++ /dev/null @@ -1,12 +0,0 @@ ------BEGIN CERTIFICATE REQUEST----- -MIIBvDCCASUCAQAwfDELMAkGA1UEBhMCU0UxEDAOBgNVBAcTB1VwcHNhbGExETAP -BgNVBAoTCE15U1FMIEFCMRUwEwYDVQQDEwxNeVNRTCBTZXJ2ZXIxMTAvBgkqhkiG -9w0BCQEWImFic3RyYWN0Lm15c3FsLmRldmVsb3BlckBteXNxbC5jb20wgZ8wDQYJ -KoZIhvcNAQEBBQADgY0AMIGJAoGBAOmGelWEiEy+pPiSczASSQt6hYc5NDkNfQuN -GMIXlRNS0j9VEFfIP1r1svqL0GdJzKqC/J/OALRz8zbSOtPCsA4Uw9SyIXSh8DGB -YIeYc1wQwbEaTfHzsJg/8NeXmyv91SF5si/rZBXJm538ni3U+ARb6ql1S0LDPQ5N -Kqi4ypmNAgMBAAGgADANBgkqhkiG9w0BAQQFAAOBgQCagJxGHBC+G5aSh3OguFn6 -z+qAC7u3B181kPBgNv20zMgLeq7YiAh3iNx4XO2+QXRGzMznFKx1tFr/mavCpgLs -p3+dCvQt5FHEFFK1D1pDeXy4146X07hOTtC9jc/jSWeVnH4ujuX5gMtZqisOyYWV -/gpw6dBtkTYlhS+y86kM/Q== ------END CERTIFICATE REQUEST----- diff --git a/client/Makefile.am b/client/Makefile.am index 66f0ce9ad6d..0531d741764 100644 --- a/client/Makefile.am +++ b/client/Makefile.am @@ -38,7 +38,6 @@ LDADD= @CLIENT_EXTRA_LDFLAGS@ $(CLIENT_THREAD_LIBS) \ $(top_builddir)/libmysql/libmysqlclient.la bin_PROGRAMS = mysql mysqladmin mysqlcheck mysqlshow \ mysqldump mysqlimport mysqltest mysqlbinlog \ - mysqltestmanagerc mysqltestmanager-pwgen \ mysqlslap mysql_upgrade noinst_HEADERS = sql_string.h completion_hash.h my_readline.h \ client_priv.h @@ -63,8 +62,6 @@ mysqlimport_LDADD = $(CXXLDFLAGS) $(CLIENT_THREAD_LIBS) \ @CLIENT_EXTRA_LDFLAGS@ \ $(LIBMYSQLCLIENT_LA) \ $(top_builddir)/mysys/libmysys.a -mysqltestmanager_pwgen_SOURCES = mysqlmanager-pwgen.c -mysqltestmanagerc_SOURCES= mysqlmanagerc.c $(yassl_dummy_link_fix) mysqlcheck_SOURCES= mysqlcheck.c $(yassl_dummy_link_fix) mysqlshow_SOURCES= mysqlshow.c $(yassl_dummy_link_fix) mysqlslap_SOURCES= mysqlslap.c \ diff --git a/client/mysqlmanager-pwgen.c b/client/mysqlmanager-pwgen.c deleted file mode 100644 index 1d942e207ad..00000000000 --- a/client/mysqlmanager-pwgen.c +++ /dev/null @@ -1,161 +0,0 @@ -/* Copyright (C) 2000 MySQL AB - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - -#define MANAGER_PWGEN_VERSION "1.4" - -#include -#include -#include -#include -#include -#include -#include -#include - -const char* outfile=0,*user="root"; - -static struct my_option my_long_options[] = -{ - {"output-file", 'o', "Write the output to the file with the given name.", - (gptr*) &outfile, (gptr*) &outfile, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, - 0, 0}, - {"user", 'u', "Put given user in the password file.", (gptr*) &user, - (gptr*) &user, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, - {"help", '?', "Display this message and exit.", 0, 0, 0, GET_NO_ARG, NO_ARG, - 0, 0, 0, 0, 0, 0}, - {"version", 'V', "Display version info.", 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, - 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0} -}; - -static void die(const char* fmt, ...) -{ - va_list args; - DBUG_ENTER("die"); - va_start(args, fmt); - if (fmt) - { - fprintf(stderr, "%s: ", my_progname); - vfprintf(stderr, fmt, args); - fprintf(stderr, "\n"); - fflush(stderr); - } - va_end(args); - exit(1); -} - -static void print_version(void) -{ - printf("%s Ver %s Distrib %s, for %s (%s)\n",my_progname, - MANAGER_PWGEN_VERSION, - MYSQL_SERVER_VERSION,SYSTEM_TYPE,MACHINE_TYPE); -} - -void usage() -{ - print_version(); - printf("MySQL AB, by Sasha\n"); - printf("This software comes with ABSOLUTELY NO WARRANTY\n\n"); - printf("Generates a password file to be used by mysqltest.\n\n"); - printf("Usage: %s [OPTIONS]\n", my_progname); - my_print_help(my_long_options); - my_print_variables(my_long_options); -} - -static my_bool -get_one_option(int optid, const struct my_option *opt __attribute__((unused)), - char *argument __attribute__((unused))) -{ - switch (optid) { - case '?': - usage(); - exit(0); - case 'V': - print_version(); - exit(0); - } - return 0; -} - - -int parse_args(int argc, char** argv) -{ - int ho_error; - - if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) - exit(ho_error); - - return 0; -} - -void get_pass(char* pw, int len) -{ - FILE* fp; - char* pw_end=pw+len; - /* - /dev/random is more secure than rand() because the seed is easy to - predict, so we resort to rand() only if /dev/random is not available - */ - if ((fp=fopen("/dev/random","r"))) - { - fread(pw,len,1,fp); - fclose(fp); - while (pw -#include -#include -#include -#include -#include -#include -#include -#include -#include - -#ifndef MYSQL_MANAGER_PORT -#define MYSQL_MANAGER_PORT 9305 -#endif - -static void die(const char* fmt, ...); - -const char* user="root",*host="localhost"; -char* pass=0; -my_bool quiet=0; -uint port=MYSQL_MANAGER_PORT; -static const char *load_default_groups[]= { "mysqlmanagerc",0 }; -char** default_argv; -MYSQL_MANAGER *manager; -FILE* fp, *fp_out; - -static struct my_option my_long_options[] = -{ - {"host", 'h', "Connect to host.", (gptr*) &host, (gptr*) &host, 0, - GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, - {"user", 'u', "User for login.", (gptr*) &user, (gptr*) &user, 0, - GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, - {"password", 'p', "Password to use when connecting to server.", - 0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0}, - {"port", 'P', "Port number to use for connection.", (gptr*) &port, - (gptr*) &port, 0, GET_UINT, REQUIRED_ARG, MYSQL_MANAGER_PORT, 0, 0, 0, 0, - 0}, - {"help", '?', "Display this help and exit.", 0, 0, 0, GET_NO_ARG, NO_ARG, - 0, 0, 0, 0, 0, 0}, - {"version", 'V', "Output version information and exit.", 0, 0, 0, - GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, - {"quiet", 'q', "Suppress all normal output.", (gptr*) &quiet, (gptr*) &quiet, - 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, - {0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0} -}; - -static void die(const char* fmt, ...) -{ - va_list args; - DBUG_ENTER("die"); - va_start(args, fmt); - if (fmt) - { - fprintf(stderr, "%s: ", my_progname); - vfprintf(stderr, fmt, args); - fprintf(stderr, "\n"); - fflush(stderr); - } - va_end(args); - exit(1); -} - -static void print_version(void) -{ - printf("%s Ver %s Distrib %s, for %s (%s)\n",my_progname, - MANAGER_CLIENT_VERSION, - MYSQL_SERVER_VERSION,SYSTEM_TYPE,MACHINE_TYPE); -} - -void usage() -{ - print_version(); - printf("MySQL AB, by Sasha\n"); - printf("This software comes with ABSOLUTELY NO WARRANTY\n\n"); - printf("Command-line client for MySQL manager daemon.\n\n"); - printf("Usage: %s [OPTIONS] < command_file\n", my_progname); - my_print_help(my_long_options); - printf(" --no-defaults Don't read default options from any options file.\n"); - my_print_variables(my_long_options); -} - - -static my_bool -get_one_option(int optid, const struct my_option *opt __attribute__((unused)), - char *argument) -{ - my_bool tty_password=0; - - switch (optid) { - case 'p': - if (argument) - { - my_free(pass, MYF(MY_ALLOW_ZERO_PTR)); - pass= my_strdup(argument, MYF(MY_FAE)); - while (*argument) *argument++= 'x'; /* Destroy argument */ - } - else - tty_password=1; - break; - case 'V': - print_version(); - exit(0); - case '?': - usage(); - exit(0); - } - return 0; -} - - -int parse_args(int argc, char **argv) -{ - int ho_error; - - load_defaults("my",load_default_groups,&argc,&argv); - default_argv= argv; - - if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) - exit(ho_error); - - return 0; -} - - -int main(int argc, char** argv) -{ - MY_INIT(argv[0]); - fp=stdin; - fp_out=stdout; - parse_args(argc,argv); - if (!(manager=mysql_manager_init(0))) - die("Failed in mysql_manager_init()"); - if (!mysql_manager_connect(manager,host,user,pass,port)) - die("Could not connect to MySQL manager: %s (%d)",manager->last_error, - manager->last_errno); - for (;!feof(fp);) - { - char buf[4096]; - if (!fgets(buf,sizeof(buf),fp)) - break; - if (!quiet) - fprintf(fp_out,"<<%s",buf); - if (mysql_manager_command(manager,buf,strlen(buf))) - die("Error in command: %s (%d)",manager->last_error,manager->last_errno); - while (!manager->eof) - { - if (mysql_manager_fetch_line(manager,buf,sizeof(buf))) - die("Error fetching result line: %s (%d)", manager->last_error, - manager->last_errno); - if (!quiet) - fprintf(fp_out,">>%s\n",buf); - } - } - mysql_manager_close(manager); - return 0; -} diff --git a/configure.in b/configure.in index e2c94060ae7..ed3d732828e 100644 --- a/configure.in +++ b/configure.in @@ -2218,23 +2218,7 @@ then [Access checks in embedded library]) fi -AC_ARG_WITH(extra-tools, - [ --without-extra-tools Skip building utilites in the tools directory.], - [with_tools=$withval], - [with_tools=yes] -) - tools_dirs="" -if test "$with_tools" = "yes" -then - if test "$THREAD_SAFE_CLIENT" = "no" - then - AC_MSG_WARN([extra-tools disabled because --enable-thread-safe-client wasn't used]) - else - tools_dirs="tools" - AC_CONFIG_FILES(tools/Makefile) - fi -fi AC_ARG_WITH([mysqlmanager], AC_HELP_STRING([--with-mysqlmanager], [Build the mysqlmanager binary: yes/no (default: build if server is built.)]), @@ -2607,7 +2591,7 @@ AC_CONFIG_FILES(Makefile extra/Makefile mysys/Makefile dnl man/Makefile BUILD/Makefile vio/Makefile dnl libmysql/Makefile client/Makefile dnl pstack/Makefile pstack/aout/Makefile sql/Makefile sql/share/Makefile dnl - sql/handlerton.cc sql-common/Makefile SSL/Makefile dnl + sql/handlerton.cc sql-common/Makefile dnl dbug/Makefile scripts/Makefile dnl include/Makefile sql-bench/Makefile dnl server-tools/Makefile server-tools/instance-manager/Makefile dnl diff --git a/mysql-test/Makefile.am b/mysql-test/Makefile.am index 067435f0189..dcf2b49adfc 100644 --- a/mysql-test/Makefile.am +++ b/mysql-test/Makefile.am @@ -32,9 +32,6 @@ test_DATA = std_data/client-key.pem std_data/client-cert.pem std_data/cacert.pem CLEANFILES = $(GENSCRIPTS) $(test_DATA) INCLUDES = -I$(top_builddir)/include -I$(top_srcdir)/include -I.. -EXTRA_PROGRAMS = mysql_test_run_new -noinst_HEADERS = my_manage.h -mysql_test_run_new_SOURCES= mysql_test_run_new.c my_manage.c my_create_tables.c dist-hook: @@ -106,17 +103,6 @@ install-data-local: uninstall-local: @RM@ -f -r $(DESTDIR)$(testdir) -std_data/client-key.pem: - @CP@ $(top_srcdir)/SSL/$(@F) $(srcdir)/std_data -std_data/client-cert.pem: - @CP@ $(top_srcdir)/SSL/$(@F) $(srcdir)/std_data -std_data/cacert.pem: - @CP@ $(top_srcdir)/SSL/$(@F) $(srcdir)/std_data -std_data/server-cert.pem: - @CP@ $(top_srcdir)/SSL/$(@F) $(srcdir)/std_data -std_data/server-key.pem: - @CP@ $(top_srcdir)/SSL/$(@F) $(srcdir)/std_data - SUFFIXES = .sh .sh: diff --git a/mysql-test/init_db.sql b/mysql-test/init_db.sql deleted file mode 100644 index 63483af00d6..00000000000 --- a/mysql-test/init_db.sql +++ /dev/null @@ -1,58 +0,0 @@ -CREATE DATABASE mysql; -CREATE DATABASE test; - -USE mysql; - - -CREATE TABLE db (Host char(60) binary DEFAULT '' NOT NULL,Db char(64) binary DEFAULT '' NOT NULL,User char(16) binary DEFAULT '' NOT NULL,Select_priv enum('N','Y') DEFAULT 'N' NOT NULL,Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL,Update_priv enum('N','Y') DEFAULT 'N' NOT NULL,Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL,Create_priv enum('N','Y') DEFAULT 'N' NOT NULL,Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL,Grant_priv enum('N','Y') DEFAULT 'N' NOT NULL,References_priv enum('N','Y') DEFAULT 'N' NOT NULL,Index_priv enum('N','Y') DEFAULT 'N' NOT NULL,Alter_priv enum('N','Y') DEFAULT 'N' NOT NULL,Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL,Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL,PRIMARY KEY Host (Host,Db,User),KEY User (User)) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Database privileges'; - -INSERT INTO db VALUES ('%','test','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y'); -INSERT INTO db VALUES ('%','test\_%','','Y','Y','Y','Y','Y','Y','N','Y','Y','Y','Y','Y'); - - -CREATE TABLE host (Host char(60) binary DEFAULT '' NOT NULL,Db char(64) binary DEFAULT '' NOT NULL,Select_priv enum('N','Y') DEFAULT 'N' NOT NULL,Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL,Update_priv enum('N','Y') DEFAULT 'N' NOT NULL,Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL,Create_priv enum('N','Y') DEFAULT 'N' NOT NULL,Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL,Grant_priv enum('N','Y') DEFAULT 'N' NOT NULL,References_priv enum('N','Y') DEFAULT 'N' NOT NULL,Index_priv enum('N','Y') DEFAULT 'N' NOT NULL,Alter_priv enum('N','Y') DEFAULT 'N' NOT NULL,Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL,Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL,PRIMARY KEY Host (Host,Db)) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Host privileges; Merged with database privileges'; - -CREATE TABLE user (Host char(60) binary DEFAULT '' NOT NULL,User char(16) binary DEFAULT '' NOT NULL,Password char(41) binary DEFAULT '' NOT NULL,Select_priv enum('N','Y') DEFAULT 'N' NOT NULL,Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL,Update_priv enum('N','Y') DEFAULT 'N' NOT NULL,Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL,Create_priv enum('N','Y') DEFAULT 'N' NOT NULL,Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL,Reload_priv enum('N','Y') DEFAULT 'N' NOT NULL,Shutdown_priv enum('N','Y') DEFAULT 'N' NOT NULL,Process_priv enum('N','Y') DEFAULT 'N' NOT NULL,File_priv enum('N','Y') DEFAULT 'N' NOT NULL,Grant_priv enum('N','Y') DEFAULT 'N' NOT NULL,References_priv enum('N','Y') DEFAULT 'N' NOT NULL,Index_priv enum('N','Y') DEFAULT 'N' NOT NULL,Alter_priv enum('N','Y') DEFAULT 'N' NOT NULL,Show_db_priv enum('N','Y') DEFAULT 'N' NOT NULL,Super_priv enum('N','Y') DEFAULT 'N' NOT NULL,Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL,Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL,Execute_priv enum('N','Y') DEFAULT 'N' NOT NULL,Repl_slave_priv enum('N','Y') DEFAULT 'N' NOT NULL,Repl_client_priv enum('N','Y') DEFAULT 'N' NOT NULL,ssl_type enum('','ANY','X509', 'SPECIFIED') DEFAULT '' NOT NULL,ssl_cipher BLOB NOT NULL,x509_issuer BLOB NOT NULL,x509_subject BLOB NOT NULL,max_questions int(11) unsigned DEFAULT 0 NOT NULL,max_updates int(11) unsigned DEFAULT 0 NOT NULL,max_connections int(11) unsigned DEFAULT 0 NOT NULL,PRIMARY KEY Host (Host,User)) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Users and global privileges'; - -INSERT INTO user VALUES ('%','root','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0); -INSERT INTO user VALUES ('localhost','','','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','','','','',0,0,0); -INSERT INTO user VALUES ('%','','','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','N','','','','',0,0,0); - -CREATE TABLE func (name char(64) binary DEFAULT '' NOT NULL,ret tinyint(1) DEFAULT '0' NOT NULL,dl char(128) DEFAULT '' NOT NULL,type enum ('function','aggregate') NOT NULL,PRIMARY KEY (name)) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='User defined functions'; - -CREATE TABLE tables_priv (Host char(60) binary DEFAULT '' NOT NULL,Db char(64) binary DEFAULT '' NOT NULL,User char(16) binary DEFAULT '' NOT NULL,Table_name char(64) binary DEFAULT '' NOT NULL,Grantor char(77) DEFAULT '' NOT NULL,Timestamp timestamp(14),Table_priv set('Select','Insert','Update','Delete','Create','Drop','Grant','References','Index','Alter') DEFAULT '' NOT NULL,Column_priv set('Select','Insert','Update','References') DEFAULT '' NOT NULL,PRIMARY KEY (Host,Db,User,Table_name),KEY Grantor (Grantor)) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Table privileges'; - -CREATE TABLE columns_priv (Host char(60) binary DEFAULT '' NOT NULL,Db char(64) binary DEFAULT '' NOT NULL,User char(16) binary DEFAULT '' NOT NULL,Table_name char(64) binary DEFAULT '' NOT NULL,Column_name char(64) binary DEFAULT '' NOT NULL,Timestamp timestamp(14),Column_priv set('Select','Insert','Update','References') DEFAULT '' NOT NULL,PRIMARY KEY (Host,Db,User,Table_name,Column_name)) engine=MyISAM CHARACTER SET utf8 COLLATE utf8_bin comment='Column privileges'; - -CREATE TABLE help_topic (help_topic_id int unsigned not null,name varchar(64) not null,help_category_id smallint unsigned not null,description text not null,example text not null,url varchar(128) not null,primary key (help_topic_id),unique index (name)) engine=MyISAM CHARACTER SET utf8 comment='help topics'; - -CREATE TABLE help_category (help_category_id smallint unsigned not null,name varchar(64) not null,parent_category_id smallint unsigned null,url varchar(128) not null,primary key (help_category_id),unique index (name)) engine=MyISAM CHARACTER SET utf8 comment='help categories'; - -CREATE TABLE help_keyword (help_keyword_id int unsigned not null,name varchar(64) not null,primary key (help_keyword_id),unique index (name)) engine=MyISAM CHARACTER SET utf8 comment='help keywords'; - -CREATE TABLE help_relation (help_topic_id int unsigned not null references help_topic,help_keyword_id int unsigned not null references help_keyword,primary key (help_keyword_id, help_topic_id)) engine=MyISAM CHARACTER SET utf8 comment='keyword-topic relation'; - -CREATE TABLE time_zone_name (Name char(64) NOT NULL,Time_zone_id int unsigned NOT NULL,PRIMARY KEY Name (Name)) engine=MyISAM CHARACTER SET utf8 comment='Time zone names'; - -INSERT INTO time_zone_name (Name, Time_Zone_id) VALUES ('MET', 1), ('UTC', 2), ('Universal', 2), ('Europe/Moscow',3), ('leap/Europe/Moscow',4), ('Japan', 5); - - -CREATE TABLE time_zone (Time_zone_id int unsigned NOT NULL auto_increment,Use_leap_seconds enum('Y','N') DEFAULT 'N' NOT NULL,PRIMARY KEY TzId (Time_zone_id)) engine=MyISAM CHARACTER SET utf8 comment='Time zones'; - -INSERT INTO time_zone (Time_zone_id, Use_leap_seconds) VALUES (1,'N'), (2,'N'), (3,'N'), (4,'Y'), (5,'N'); - - -CREATE TABLE time_zone_transition (Time_zone_id int unsigned NOT NULL,Transition_time bigint signed NOT NULL,Transition_type_id int unsigned NOT NULL,PRIMARY KEY TzIdTranTime (Time_zone_id, Transition_time)) engine=MyISAM CHARACTER SET utf8 comment='Time zone transitions'; - -INSERT INTO time_zone_transition (Time_zone_id, Transition_time, Transition_type_id) VALUES (1, -1693706400, 0) ,(1, -1680483600, 1),(1, -1663455600, 2) ,(1, -1650150000, 3),(1, -1632006000, 2) ,(1, -1618700400, 3),(1, -938905200, 2) ,(1, -857257200, 3),(1, -844556400, 2) ,(1, -828226800, 3),(1, -812502000, 2) ,(1, -796777200, 3),(1, 228877200, 2) ,(1, 243997200, 3),(1, 260326800, 2) ,(1, 276051600, 3),(1, 291776400, 2) ,(1, 307501200, 3),(1, 323830800, 2) ,(1, 338950800, 3),(1, 354675600, 2) ,(1, 370400400, 3),(1, 386125200, 2) ,(1, 401850000, 3),(1, 417574800, 2) ,(1, 433299600, 3),(1, 449024400, 2) ,(1, 465354000, 3),(1, 481078800, 2) ,(1, 496803600, 3),(1, 512528400, 2) ,(1, 528253200, 3),(1, 543978000, 2) ,(1, 559702800, 3),(1, 575427600, 2) ,(1, 591152400, 3),(1, 606877200, 2) ,(1, 622602000, 3),(1, 638326800, 2) ,(1, 654656400, 3),(1, 670381200, 2) ,(1, 686106000, 3),(1, 701830800, 2) ,(1, 717555600, 3),(1, 733280400, 2) ,(1, 749005200, 3),(1, 764730000, 2) ,(1, 780454800, 3),(1, 796179600, 2) ,(1, 811904400, 3),(1, 828234000, 2) ,(1, 846378000, 3),(1, 859683600, 2) ,(1, 877827600, 3),(1, 891133200, 2) ,(1, 909277200, 3),(1, 922582800, 2) ,(1, 941331600, 3),(1, 954032400, 2) ,(1, 972781200, 3),(1, 985482000, 2) ,(1, 1004230800, 3),(1, 1017536400, 2) ,(1, 1035680400, 3),(1, 1048986000, 2) ,(1, 1067130000, 3),(1, 1080435600, 2) ,(1, 1099184400, 3),(1, 1111885200, 2) ,(1, 1130634000, 3),(1, 1143334800, 2) ,(1, 1162083600, 3),(1, 1174784400, 2) ,(1, 1193533200, 3),(1, 1206838800, 2) ,(1, 1224982800, 3),(1, 1238288400, 2) ,(1, 1256432400, 3),(1, 1269738000, 2) ,(1, 1288486800, 3),(1, 1301187600, 2) ,(1, 1319936400, 3),(1, 1332637200, 2) ,(1, 1351386000, 3),(1, 1364691600, 2) ,(1, 1382835600, 3),(1, 1396141200, 2) ,(1, 1414285200, 3),(1, 1427590800, 2) ,(1, 1445734800, 3),(1, 1459040400, 2) ,(1, 1477789200, 3),(1, 1490490000, 2) ,(1, 1509238800, 3),(1, 1521939600, 2) ,(1, 1540688400, 3),(1, 1553994000, 2) ,(1, 1572138000, 3),(1, 1585443600, 2) ,(1, 1603587600, 3),(1, 1616893200, 2) ,(1, 1635642000, 3),(1, 1648342800, 2) ,(1, 1667091600, 3),(1, 1679792400, 2) ,(1, 1698541200, 3),(1, 1711846800, 2) ,(1, 1729990800, 3),(1, 1743296400, 2) ,(1, 1761440400, 3),(1, 1774746000, 2) ,(1, 1792890000, 3),(1, 1806195600, 2) ,(1, 1824944400, 3),(1, 1837645200, 2) ,(1, 1856394000, 3),(1, 1869094800, 2) ,(1, 1887843600, 3),(1, 1901149200, 2) ,(1, 1919293200, 3),(1, 1932598800, 2) ,(1, 1950742800, 3),(1, 1964048400, 2) ,(1, 1982797200, 3),(1, 1995498000, 2) ,(1, 2014246800, 3),(1, 2026947600, 2) ,(1, 2045696400, 3),(1, 2058397200, 2) ,(1, 2077146000, 3),(1, 2090451600, 2) ,(1, 2108595600, 3),(1, 2121901200, 2) ,(1, 2140045200, 3),(3, -1688265000, 2) ,(3, -1656819048, 1),(3, -1641353448, 2) ,(3, -1627965048, 3),(3, -1618716648, 1) ,(3, -1596429048, 3),(3, -1593829848, 5) ,(3, -1589860800, 4),(3, -1542427200, 5) ,(3, -1539493200, 6),(3, -1525323600, 5) ,(3, -1522728000, 4),(3, -1491188400, 7) ,(3, -1247536800, 4),(3, 354920400, 5) ,(3, 370728000, 4),(3, 386456400, 5) ,(3, 402264000, 4),(3, 417992400, 5) ,(3, 433800000, 4),(3, 449614800, 5) ,(3, 465346800, 8),(3, 481071600, 9) ,(3, 496796400, 8),(3, 512521200, 9) ,(3, 528246000, 8),(3, 543970800, 9) ,(3, 559695600, 8),(3, 575420400, 9) ,(3, 591145200, 8),(3, 606870000, 9) ,(3, 622594800, 8),(3, 638319600, 9) ,(3, 654649200, 8),(3, 670374000, 10) ,(3, 686102400, 11),(3, 695779200, 8) ,(3, 701812800, 5),(3, 717534000, 4) ,(3, 733273200, 9),(3, 748998000, 8) ,(3, 764722800, 9),(3, 780447600, 8) ,(3, 796172400, 9),(3, 811897200, 8) ,(3, 828226800, 9),(3, 846370800, 8) ,(3, 859676400, 9),(3, 877820400, 8) ,(3, 891126000, 9),(3, 909270000, 8) ,(3, 922575600, 9),(3, 941324400, 8) ,(3, 954025200, 9),(3, 972774000, 8) ,(3, 985474800, 9),(3, 1004223600, 8) ,(3, 1017529200, 9),(3, 1035673200, 8) ,(3, 1048978800, 9),(3, 1067122800, 8) ,(3, 1080428400, 9),(3, 1099177200, 8) ,(3, 1111878000, 9),(3, 1130626800, 8) ,(3, 1143327600, 9),(3, 1162076400, 8) ,(3, 1174777200, 9),(3, 1193526000, 8) ,(3, 1206831600, 9),(3, 1224975600, 8) ,(3, 1238281200, 9),(3, 1256425200, 8) ,(3, 1269730800, 9),(3, 1288479600, 8) ,(3, 1301180400, 9),(3, 1319929200, 8) ,(3, 1332630000, 9),(3, 1351378800, 8) ,(3, 1364684400, 9),(3, 1382828400, 8) ,(3, 1396134000, 9),(3, 1414278000, 8) ,(3, 1427583600, 9),(3, 1445727600, 8) ,(3, 1459033200, 9),(3, 1477782000, 8) ,(3, 1490482800, 9),(3, 1509231600, 8) ,(3, 1521932400, 9),(3, 1540681200, 8) ,(3, 1553986800, 9),(3, 1572130800, 8) ,(3, 1585436400, 9),(3, 1603580400, 8) ,(3, 1616886000, 9),(3, 1635634800, 8) ,(3, 1648335600, 9),(3, 1667084400, 8) ,(3, 1679785200, 9),(3, 1698534000, 8) ,(3, 1711839600, 9),(3, 1729983600, 8) ,(3, 1743289200, 9),(3, 1761433200, 8) ,(3, 1774738800, 9),(3, 1792882800, 8) ,(3, 1806188400, 9),(3, 1824937200, 8) ,(3, 1837638000, 9),(3, 1856386800, 8) ,(3, 1869087600, 9),(3, 1887836400, 8) ,(3, 1901142000, 9),(3, 1919286000, 8) ,(3, 1932591600, 9),(3, 1950735600, 8) ,(3, 1964041200, 9),(3, 1982790000, 8) ,(3, 1995490800, 9),(3, 2014239600, 8) ,(3, 2026940400, 9),(3, 2045689200, 8) ,(3, 2058390000, 9),(3, 2077138800, 8) ,(3, 2090444400, 9),(3, 2108588400, 8) ,(3, 2121894000, 9),(3, 2140038000, 8),(4, -1688265000, 2) ,(4, -1656819048, 1),(4, -1641353448, 2) ,(4, -1627965048, 3),(4, -1618716648, 1) ,(4, -1596429048, 3),(4, -1593829848, 5) ,(4, -1589860800, 4),(4, -1542427200, 5) ,(4, -1539493200, 6),(4, -1525323600, 5) ,(4, -1522728000, 4),(4, -1491188400, 7) ,(4, -1247536800, 4),(4, 354920409, 5) ,(4, 370728010, 4),(4, 386456410, 5) ,(4, 402264011, 4),(4, 417992411, 5) ,(4, 433800012, 4),(4, 449614812, 5) ,(4, 465346812, 8),(4, 481071612, 9) ,(4, 496796413, 8),(4, 512521213, 9) ,(4, 528246013, 8),(4, 543970813, 9) ,(4, 559695613, 8),(4, 575420414, 9) ,(4, 591145214, 8),(4, 606870014, 9) ,(4, 622594814, 8),(4, 638319615, 9) ,(4, 654649215, 8),(4, 670374016, 10) ,(4, 686102416, 11),(4, 695779216, 8) ,(4, 701812816, 5),(4, 717534017, 4) ,(4, 733273217, 9),(4, 748998018, 8) ,(4, 764722818, 9),(4, 780447619, 8) ,(4, 796172419, 9),(4, 811897219, 8) ,(4, 828226820, 9),(4, 846370820, 8) ,(4, 859676420, 9),(4, 877820421, 8) ,(4, 891126021, 9),(4, 909270021, 8) ,(4, 922575622, 9),(4, 941324422, 8) ,(4, 954025222, 9),(4, 972774022, 8) ,(4, 985474822, 9),(4, 1004223622, 8) ,(4, 1017529222, 9),(4, 1035673222, 8) ,(4, 1048978822, 9),(4, 1067122822, 8) ,(4, 1080428422, 9),(4, 1099177222, 8) ,(4, 1111878022, 9),(4, 1130626822, 8) ,(4, 1143327622, 9),(4, 1162076422, 8) ,(4, 1174777222, 9),(4, 1193526022, 8) ,(4, 1206831622, 9),(4, 1224975622, 8) ,(4, 1238281222, 9),(4, 1256425222, 8) ,(4, 1269730822, 9),(4, 1288479622, 8) ,(4, 1301180422, 9),(4, 1319929222, 8) ,(4, 1332630022, 9),(4, 1351378822, 8) ,(4, 1364684422, 9),(4, 1382828422, 8) ,(4, 1396134022, 9),(4, 1414278022, 8) ,(4, 1427583622, 9),(4, 1445727622, 8) ,(4, 1459033222, 9),(4, 1477782022, 8) ,(4, 1490482822, 9),(4, 1509231622, 8) ,(4, 1521932422, 9),(4, 1540681222, 8) ,(4, 1553986822, 9),(4, 1572130822, 8) ,(4, 1585436422, 9),(4, 1603580422, 8) ,(4, 1616886022, 9),(4, 1635634822, 8) ,(4, 1648335622, 9),(4, 1667084422, 8) ,(4, 1679785222, 9),(4, 1698534022, 8) ,(4, 1711839622, 9),(4, 1729983622, 8) ,(4, 1743289222, 9),(4, 1761433222, 8) ,(4, 1774738822, 9),(4, 1792882822, 8) ,(4, 1806188422, 9),(4, 1824937222, 8) ,(4, 1837638022, 9),(4, 1856386822, 8) ,(4, 1869087622, 9),(4, 1887836422, 8) ,(4, 1901142022, 9),(4, 1919286022, 8) ,(4, 1932591622, 9),(4, 1950735622, 8) ,(4, 1964041222, 9),(4, 1982790022, 8) ,(4, 1995490822, 9),(4, 2014239622, 8) ,(4, 2026940422, 9),(4, 2045689222, 8) ,(4, 2058390022, 9),(4, 2077138822, 8) ,(4, 2090444422, 9),(4, 2108588422, 8) ,(4, 2121894022, 9),(4, 2140038022, 8); - - -CREATE TABLE time_zone_transition_type (Time_zone_id int unsigned NOT NULL,Transition_type_id int unsigned NOT NULL,Offset int signed DEFAULT 0 NOT NULL,Is_DST tinyint unsigned DEFAULT 0 NOT NULL,Abbreviation char(8) DEFAULT '' NOT NULL,PRIMARY KEY TzIdTrTId (Time_zone_id, Transition_type_id)) engine=MyISAM CHARACTER SET utf8 comment='Time zone transition types'; - -INSERT INTO time_zone_transition_type (Time_zone_id,Transition_type_id, Offset, Is_DST, Abbreviation) VALUES (1, 0, 7200, 1, 'MEST') ,(1, 1, 3600, 0, 'MET') ,(1, 2, 7200, 1, 'MEST') ,(1, 3, 3600, 0, 'MET') ,(2, 0, 0, 0, 'UTC') ,(3, 0, 9000, 0, 'MMT') ,(3, 1, 12648, 1, 'MST') ,(3, 2, 9048, 0, 'MMT') ,(3, 3, 16248, 1, 'MDST') ,(3, 4, 10800, 0, 'MSK') ,(3, 5, 14400, 1, 'MSD') ,(3, 6, 18000, 1, 'MSD') ,(3, 7, 7200, 0, 'EET') ,(3, 8, 10800, 0, 'MSK') ,(3, 9, 14400, 1, 'MSD') ,(3, 10, 10800, 1, 'EEST') ,(3, 11, 7200, 0, 'EET') ,(4, 0, 9000, 0, 'MMT') ,(4, 1, 12648, 1, 'MST') ,(4, 2, 9048, 0, 'MMT') ,(4, 3, 16248, 1, 'MDST') ,(4, 4, 10800, 0, 'MSK') ,(4, 5, 14400, 1, 'MSD') ,(4, 6, 18000, 1, 'MSD') ,(4, 7, 7200, 0, 'EET') ,(4, 8, 10800, 0, 'MSK') ,(4, 9, 14400, 1, 'MSD') ,(4, 10, 10800, 1, 'EEST') ,(4, 11, 7200, 0, 'EET') ,(5, 0, 32400, 0, 'CJT') ,(5, 1, 32400, 0, 'JST'); - -CREATE TABLE time_zone_leap_second (Transition_time bigint signed NOT NULL,Correction int signed NOT NULL,PRIMARY KEY TranTime (Transition_time)) engine=MyISAM CHARACTER SET utf8 comment='Leap seconds information for time zones'; - -INSERT INTO time_zone_leap_second (Transition_time, Correction) VALUES (78796800, 1) ,(94694401, 2) ,(126230402, 3) ,(157766403, 4) ,(189302404, 5) ,(220924805, 6) ,(252460806, 7) ,(283996807, 8) ,(315532808, 9) ,(362793609, 10) ,(394329610, 11) ,(425865611, 12) ,(489024012, 13) ,(567993613, 14) ,(631152014, 15) ,(662688015, 16) ,(709948816, 17) ,(741484817, 18) ,(773020818, 19) ,(820454419, 20) ,(867715220, 21) ,(915148821, 22); - - diff --git a/mysql-test/my_create_tables.c b/mysql-test/my_create_tables.c deleted file mode 100644 index 06a6fabf022..00000000000 --- a/mysql-test/my_create_tables.c +++ /dev/null @@ -1,673 +0,0 @@ -#include -#include -#ifndef __WIN__ -#include -#endif -#include -#ifdef __NETWARE__ -#include -#include -#else -#include -#ifndef __WIN__ -#include -#include -#else -#include -#include -#include -#endif -#endif -#include -#include -#include -#include -#include "my_manage.h" - -/* - Synopsis: - This function testes a exist file - -Arguments: - mdata: path to data - file_name: name of file -Output: - A zero value indicates that file is exist. -*/ -bool test_sys_file(const char *mdata,const char *file_name) -{ - struct stat file; - char path_file_name[PATH_MAX]; - snprintf(path_file_name, PATH_MAX, "%s/%s", mdata, file_name); - return(stat(path_file_name,&file)); -} - -/* - Synopsis: - This function creates a file with sql requstes for creating - system data files. - -Arguments: - mdata: path to data - output_file: file name for output file - test: to create system files with test data -Output: - A zero value indicates a success. -*/ -bool create_system_files(const char *mdata,const char *output_file, bool test) -{ - FILE *out; - - out = fopen(output_file, "w+"); - - if (!out) - return 1; - - if (test_sys_file(mdata,"mysql")) - { - fprintf(out,"CREATE DATABASE mysql;\n"); - } - - if (test && test_sys_file(mdata,"test")) - { - fprintf(out,"CREATE DATABASE test;\n"); - } - - fprintf(out,"USE mysql;\n"); - - if (test_sys_file(mdata,"mysql/db.frm")) - { - fprintf(out, - "CREATE TABLE db (" - "Host char(60) binary DEFAULT '' NOT NULL," - "Db char(64) binary DEFAULT '' NOT NULL," - "User char(16) binary DEFAULT '' NOT NULL," - "Select_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Update_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Create_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Grant_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "References_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Index_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Alter_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "PRIMARY KEY Host (Host,Db,User)," - "KEY User (User))" - "engine=MyISAM " - "CHARACTER SET utf8 COLLATE utf8_bin " - "comment='Database privileges';\n"); - - if (test) - { - fprintf(out,"INSERT INTO db VALUES ('%%','test','','Y','Y','Y','Y'" - ",'Y','Y','N','Y','Y','Y','Y','Y');\n"); - fprintf(out,"INSERT INTO db VALUES ('%%','test\\_%%','','Y','Y','Y'" - ",'Y','Y','Y','N','Y','Y','Y','Y','Y');\n"); - } - } - - if (test_sys_file(mdata,"mysql/host.frm")) - { - fprintf(out, - "CREATE TABLE host (" - "Host char(60) binary DEFAULT '' NOT NULL," - "Db char(64) binary DEFAULT '' NOT NULL," - "Select_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Update_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Create_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Grant_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "References_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Index_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Alter_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "PRIMARY KEY Host (Host,Db))" - "engine=MyISAM " - "CHARACTER SET utf8 COLLATE utf8_bin " - "comment='Host privileges; Merged with database privileges';\n"); - } - - - if (test_sys_file(mdata,"mysql/user.frm")) - { -#ifdef __WIN__ - WSADATA wsa_data; -#endif - char hostname[FN_REFLEN]; - -#ifdef __WIN__ - if (WSAStartup(MAKEWORD( 2, 2 ),&wsa_data)) - return 1; -#endif - if (gethostname(hostname, FN_REFLEN)) - return 1; -#ifdef __WIN__ - WSACleanup( ); -#endif - - if (strchr(hostname, '.') == NULL) - strcat(hostname, "%"); - - fprintf(out, - "CREATE TABLE user (" - "Host char(60) binary DEFAULT '' NOT NULL," - "User char(16) binary DEFAULT '' NOT NULL," - "Password char(41) binary DEFAULT '' NOT NULL," - "Select_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Insert_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Update_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Delete_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Create_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Drop_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Reload_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Shutdown_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Process_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "File_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Grant_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "References_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Index_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Alter_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Show_db_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Super_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Create_tmp_table_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Lock_tables_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Execute_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Repl_slave_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "Repl_client_priv enum('N','Y') DEFAULT 'N' NOT NULL," - "ssl_type enum('','ANY','X509', 'SPECIFIED') DEFAULT '' NOT NULL," - "ssl_cipher BLOB NOT NULL," - "x509_issuer BLOB NOT NULL," - "x509_subject BLOB NOT NULL," - "max_questions int(11) unsigned DEFAULT 0 NOT NULL," - "max_updates int(11) unsigned DEFAULT 0 NOT NULL," - "max_connections int(11) unsigned DEFAULT 0 NOT NULL," - "PRIMARY KEY Host (Host,User)" - ") engine=MyISAM " - "CHARACTER SET utf8 COLLATE utf8_bin " - "comment='Users and global privileges';\n"); - - - if (test) - { - fprintf(out, - "INSERT INTO user VALUES ('localhost','root',''" - ",'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'" - ",'Y','Y','Y','Y','Y','','','','',0,0,0);\n"); - fprintf(out, - "INSERT INTO user VALUES ('%s','root','','Y','Y'," - "'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'," - "'Y','Y','Y','Y','','','','',0,0,0);\n",hostname); - fprintf(out, - "REPLACE INTO user VALUES ('127.0.0.1','root',''," - "'Y','Y','Y','Y','Y','Y'," - "'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'" - ",'Y','','','','',0,0,0);\n"); - fprintf(out,"INSERT INTO user (host,user) values ('localhost','');\n"); - fprintf(out,"INSERT INTO user (host,user) values ('%s','');\n",hostname); - } - else - { - fprintf(out, - "INSERT INTO user VALUES ('localhost','root',''," - "'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y'," - "'Y','Y','Y','Y','','','','',0,0,0);\n"); -#ifndef __WIN__ - fprintf(out, - "INSERT INTO user VALUES ('%s','root','','Y','Y'," - "'Y','Y','Y','Y','Y','Y'" - "'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','',''" - ",'','',0,0,0);\n",hostname); - fprintf(out,"INSERT INTO user (host,user) values ('%s','');\n",hostname); - fprintf(out,"INSERT INTO user (host,user) values ('localhost','');\n"); -#else - fprintf(out, - "INSERT INTO user VALUES ('localhost','','','Y','Y','Y'" - ",'Y','Y','Y','Y','Y','Y'" - ",'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','',''," - "'','',0,0,0);\n"); -#endif - } - } - - - if (test_sys_file(mdata,"mysql/func.frm")) - { - fprintf(out, - "CREATE TABLE func (" - "name char(64) binary DEFAULT '' NOT NULL," - "ret tinyint(1) DEFAULT '0' NOT NULL," - "dl char(128) DEFAULT '' NOT NULL," - "type enum ('function','aggregate') NOT NULL," - "PRIMARY KEY (name)" - ") engine=MyISAM " - "CHARACTER SET utf8 COLLATE utf8_bin " - "comment='User defined functions';\n"); - } - - if (test_sys_file(mdata,"mysql/tables_priv.frm")) - { - fprintf(out, - "CREATE TABLE tables_priv (" - "Host char(60) binary DEFAULT '' NOT NULL," - "Db char(64) binary DEFAULT '' NOT NULL," - "User char(16) binary DEFAULT '' NOT NULL," - "Table_name char(64) binary DEFAULT '' NOT NULL," - "Grantor char(77) DEFAULT '' NOT NULL," - "Timestamp timestamp(14)," - "Table_priv set('Select','Insert','Update','Delete'," - "'Create','Drop','Grant','References','Index','Alter')" - " DEFAULT '' NOT NULL," - "Column_priv set('Select','Insert','Update','References')" - " DEFAULT '' NOT NULL," - "PRIMARY KEY (Host,Db,User,Table_name)," - "KEY Grantor (Grantor)" - ") engine=MyISAM " - "CHARACTER SET utf8 COLLATE utf8_bin " - "comment='Table privileges';\n"); - } - - if (test_sys_file(mdata,"mysql/columns_priv.frm")) - { - fprintf(out, - "CREATE TABLE columns_priv (" - "Host char(60) binary DEFAULT '' NOT NULL," - "Db char(64) binary DEFAULT '' NOT NULL," - "User char(16) binary DEFAULT '' NOT NULL," - "Table_name char(64) binary DEFAULT '' NOT NULL," - "Column_name char(64) binary DEFAULT '' NOT NULL," - "Timestamp timestamp(14)," - "Column_priv set('Select','Insert','Update','References')" - " DEFAULT '' NOT NULL," - "PRIMARY KEY (Host,Db,User,Table_name,Column_name)" - ") engine=MyISAM " - "CHARACTER SET utf8 COLLATE utf8_bin " - "comment='Column privileges';\n"); - } - - if (test_sys_file(mdata,"mysql/help_topic.frm")) - { - fprintf(out, - "CREATE TABLE help_topic (" - "help_topic_id int unsigned not null," - "name varchar(64) not null," - "help_category_id smallint unsigned not null," - "description text not null," - "example text not null," - "url varchar(128) not null," - "primary key (help_topic_id)," - "unique index (name)" - ") engine=MyISAM " - "CHARACTER SET utf8 " - "comment='help topics';\n"); - } - - if (test_sys_file(mdata,"mysql/help_category.frm")) - { - fprintf(out, - "CREATE TABLE help_category (" - "help_category_id smallint unsigned not null," - "name varchar(64) not null," - "parent_category_id smallint unsigned null," - "url varchar(128) not null," - "primary key (help_category_id)," - "unique index (name)" - ") engine=MyISAM " - "CHARACTER SET utf8 " - "comment='help categories';\n"); - } - - if (test_sys_file(mdata,"mysql/help_keyword.frm")) - { - fprintf(out, - "CREATE TABLE help_keyword (" - "help_keyword_id int unsigned not null," - "name varchar(64) not null," - "primary key (help_keyword_id)," - "unique index (name)" - ") engine=MyISAM " - "CHARACTER SET utf8 " - "comment='help keywords';\n"); - } - - if (test_sys_file(mdata,"mysql/help_relation.frm")) - { - fprintf(out, - "CREATE TABLE help_relation (" - "help_topic_id int unsigned not null references help_topic," - "help_keyword_id int unsigned not null references help_keyword," - "primary key (help_keyword_id, help_topic_id)" - ") engine=MyISAM " - "CHARACTER SET utf8 " - "comment='keyword-topic relation';\n"); - } - - if (test_sys_file(mdata,"mysql/time_zone_name.frm")) - { - fprintf(out, - "CREATE TABLE time_zone_name (" - "Name char(64) NOT NULL," - "Time_zone_id int unsigned NOT NULL," - "PRIMARY KEY Name (Name)" - ") engine=MyISAM CHARACTER SET utf8 " - "comment='Time zone names';\n"); - - if (test) - { - fprintf(out, - "INSERT INTO time_zone_name (Name, Time_Zone_id) VALUES" - "('MET', 1), ('UTC', 2), ('Universal', 2), " - "('Europe/Moscow',3), ('leap/Europe/Moscow',4)," - "('Japan', 5);\n"); - - } - } - - - if (test_sys_file(mdata,"mysql/time_zone.frm")) - { - fprintf(out, - "CREATE TABLE time_zone (" - "Time_zone_id int unsigned NOT NULL auto_increment," - "Use_leap_seconds enum('Y','N') DEFAULT 'N' NOT NULL," - "PRIMARY KEY TzId (Time_zone_id)" - ") engine=MyISAM CHARACTER SET utf8 " - "comment='Time zones';\n"); - - if (test) - { - fprintf(out,"INSERT INTO time_zone (Time_zone_id, Use_leap_seconds)" - "VALUES (1,'N'), (2,'N'), (3,'N'), (4,'Y'), (5,'N');\n"); - } - } - - if (test_sys_file(mdata,"mysql/time_zone_transition.frm")) - { - fprintf(out, - "CREATE TABLE time_zone_transition (" - "Time_zone_id int unsigned NOT NULL," - "Transition_time bigint signed NOT NULL," - "Transition_type_id int unsigned NOT NULL," - "PRIMARY KEY TzIdTranTime (Time_zone_id, Transition_time)" - ") engine=MyISAM CHARACTER SET utf8 " - "comment='Time zone transitions';\n"); - - if (test) - { - fprintf(out, - "INSERT INTO time_zone_transition" - "(Time_zone_id, Transition_time, Transition_type_id)" - "VALUES" - " (1, -1693706400, 0) ,(1, -1680483600, 1)" - ",(1, -1663455600, 2) ,(1, -1650150000, 3)" - ",(1, -1632006000, 2) ,(1, -1618700400, 3)" - ",(1, -938905200, 2) ,(1, -857257200, 3)" - ",(1, -844556400, 2) ,(1, -828226800, 3)" - ",(1, -812502000, 2) ,(1, -796777200, 3)" - ",(1, 228877200, 2) ,(1, 243997200, 3)" - ",(1, 260326800, 2) ,(1, 276051600, 3)" - ",(1, 291776400, 2) ,(1, 307501200, 3)" - ",(1, 323830800, 2) ,(1, 338950800, 3)" - ",(1, 354675600, 2) ,(1, 370400400, 3)" - ",(1, 386125200, 2) ,(1, 401850000, 3)" - ",(1, 417574800, 2) ,(1, 433299600, 3)" - ",(1, 449024400, 2) ,(1, 465354000, 3)" - ",(1, 481078800, 2) ,(1, 496803600, 3)" - ",(1, 512528400, 2) ,(1, 528253200, 3)" - ",(1, 543978000, 2) ,(1, 559702800, 3)" - ",(1, 575427600, 2) ,(1, 591152400, 3)" - ",(1, 606877200, 2) ,(1, 622602000, 3)" - ",(1, 638326800, 2) ,(1, 654656400, 3)" - ",(1, 670381200, 2) ,(1, 686106000, 3)" - ",(1, 701830800, 2) ,(1, 717555600, 3)" - ",(1, 733280400, 2) ,(1, 749005200, 3)" - ",(1, 764730000, 2) ,(1, 780454800, 3)" - ",(1, 796179600, 2) ,(1, 811904400, 3)" - ",(1, 828234000, 2) ,(1, 846378000, 3)" - ",(1, 859683600, 2) ,(1, 877827600, 3)" - ",(1, 891133200, 2) ,(1, 909277200, 3)" - ",(1, 922582800, 2) ,(1, 941331600, 3)" - ",(1, 954032400, 2) ,(1, 972781200, 3)" - ",(1, 985482000, 2) ,(1, 1004230800, 3)" - ",(1, 1017536400, 2) ,(1, 1035680400, 3)" - ",(1, 1048986000, 2) ,(1, 1067130000, 3)" - ",(1, 1080435600, 2) ,(1, 1099184400, 3)" - ",(1, 1111885200, 2) ,(1, 1130634000, 3)" - ",(1, 1143334800, 2) ,(1, 1162083600, 3)" - ",(1, 1174784400, 2) ,(1, 1193533200, 3)" - ",(1, 1206838800, 2) ,(1, 1224982800, 3)" - ",(1, 1238288400, 2) ,(1, 1256432400, 3)" - ",(1, 1269738000, 2) ,(1, 1288486800, 3)" - ",(1, 1301187600, 2) ,(1, 1319936400, 3)" - ",(1, 1332637200, 2) ,(1, 1351386000, 3)" - ",(1, 1364691600, 2) ,(1, 1382835600, 3)" - ",(1, 1396141200, 2) ,(1, 1414285200, 3)" - ",(1, 1427590800, 2) ,(1, 1445734800, 3)" - ",(1, 1459040400, 2) ,(1, 1477789200, 3)" - ",(1, 1490490000, 2) ,(1, 1509238800, 3)" - ",(1, 1521939600, 2) ,(1, 1540688400, 3)" - ",(1, 1553994000, 2) ,(1, 1572138000, 3)" - ",(1, 1585443600, 2) ,(1, 1603587600, 3)" - ",(1, 1616893200, 2) ,(1, 1635642000, 3)" - ",(1, 1648342800, 2) ,(1, 1667091600, 3)" - ",(1, 1679792400, 2) ,(1, 1698541200, 3)" - ",(1, 1711846800, 2) ,(1, 1729990800, 3)" - ",(1, 1743296400, 2) ,(1, 1761440400, 3)" - ",(1, 1774746000, 2) ,(1, 1792890000, 3)" - ",(1, 1806195600, 2) ,(1, 1824944400, 3)" - ",(1, 1837645200, 2) ,(1, 1856394000, 3)" - ",(1, 1869094800, 2) ,(1, 1887843600, 3)" - ",(1, 1901149200, 2) ,(1, 1919293200, 3)" - ",(1, 1932598800, 2) ,(1, 1950742800, 3)" - ",(1, 1964048400, 2) ,(1, 1982797200, 3)" - ",(1, 1995498000, 2) ,(1, 2014246800, 3)" - ",(1, 2026947600, 2) ,(1, 2045696400, 3)" - ",(1, 2058397200, 2) ,(1, 2077146000, 3)" - ",(1, 2090451600, 2) ,(1, 2108595600, 3)" - ",(1, 2121901200, 2) ,(1, 2140045200, 3)" - ",(3, -1688265000, 2) ,(3, -1656819048, 1)" - ",(3, -1641353448, 2) ,(3, -1627965048, 3)" - ",(3, -1618716648, 1) ,(3, -1596429048, 3)" - ",(3, -1593829848, 5) ,(3, -1589860800, 4)" - ",(3, -1542427200, 5) ,(3, -1539493200, 6)" - ",(3, -1525323600, 5) ,(3, -1522728000, 4)" - ",(3, -1491188400, 7) ,(3, -1247536800, 4)" - ",(3, 354920400, 5) ,(3, 370728000, 4)" - ",(3, 386456400, 5) ,(3, 402264000, 4)" - ",(3, 417992400, 5) ,(3, 433800000, 4)" - ",(3, 449614800, 5) ,(3, 465346800, 8)" - ",(3, 481071600, 9) ,(3, 496796400, 8)" - ",(3, 512521200, 9) ,(3, 528246000, 8)" - ",(3, 543970800, 9) ,(3, 559695600, 8)" - ",(3, 575420400, 9) ,(3, 591145200, 8)" - ",(3, 606870000, 9) ,(3, 622594800, 8)" - ",(3, 638319600, 9) ,(3, 654649200, 8)" - ",(3, 670374000, 10) ,(3, 686102400, 11)" - ",(3, 695779200, 8) ,(3, 701812800, 5)" - ",(3, 717534000, 4) ,(3, 733273200, 9)" - ",(3, 748998000, 8) ,(3, 764722800, 9)" - ",(3, 780447600, 8) ,(3, 796172400, 9)" - ",(3, 811897200, 8) ,(3, 828226800, 9)" - ",(3, 846370800, 8) ,(3, 859676400, 9)" - ",(3, 877820400, 8) ,(3, 891126000, 9)" - ",(3, 909270000, 8) ,(3, 922575600, 9)" - ",(3, 941324400, 8) ,(3, 954025200, 9)" - ",(3, 972774000, 8) ,(3, 985474800, 9)" - ",(3, 1004223600, 8) ,(3, 1017529200, 9)" - ",(3, 1035673200, 8) ,(3, 1048978800, 9)" - ",(3, 1067122800, 8) ,(3, 1080428400, 9)" - ",(3, 1099177200, 8) ,(3, 1111878000, 9)" - ",(3, 1130626800, 8) ,(3, 1143327600, 9)" - ",(3, 1162076400, 8) ,(3, 1174777200, 9)" - ",(3, 1193526000, 8) ,(3, 1206831600, 9)" - ",(3, 1224975600, 8) ,(3, 1238281200, 9)" - ",(3, 1256425200, 8) ,(3, 1269730800, 9)" - ",(3, 1288479600, 8) ,(3, 1301180400, 9)" - ",(3, 1319929200, 8) ,(3, 1332630000, 9)" - ",(3, 1351378800, 8) ,(3, 1364684400, 9)" - ",(3, 1382828400, 8) ,(3, 1396134000, 9)" - ",(3, 1414278000, 8) ,(3, 1427583600, 9)" - ",(3, 1445727600, 8) ,(3, 1459033200, 9)" - ",(3, 1477782000, 8) ,(3, 1490482800, 9)" - ",(3, 1509231600, 8) ,(3, 1521932400, 9)" - ",(3, 1540681200, 8) ,(3, 1553986800, 9)" - ",(3, 1572130800, 8) ,(3, 1585436400, 9)" - ",(3, 1603580400, 8) ,(3, 1616886000, 9)" - ",(3, 1635634800, 8) ,(3, 1648335600, 9)" - ",(3, 1667084400, 8) ,(3, 1679785200, 9)" - ",(3, 1698534000, 8) ,(3, 1711839600, 9)" - ",(3, 1729983600, 8) ,(3, 1743289200, 9)" - ",(3, 1761433200, 8) ,(3, 1774738800, 9)" - ",(3, 1792882800, 8) ,(3, 1806188400, 9)" - ",(3, 1824937200, 8) ,(3, 1837638000, 9)" - ",(3, 1856386800, 8) ,(3, 1869087600, 9)" - ",(3, 1887836400, 8) ,(3, 1901142000, 9)" - ",(3, 1919286000, 8) ,(3, 1932591600, 9)" - ",(3, 1950735600, 8) ,(3, 1964041200, 9)" - ",(3, 1982790000, 8) ,(3, 1995490800, 9)" - ",(3, 2014239600, 8) ,(3, 2026940400, 9)" - ",(3, 2045689200, 8) ,(3, 2058390000, 9)" - ",(3, 2077138800, 8) ,(3, 2090444400, 9)" - ",(3, 2108588400, 8) ,(3, 2121894000, 9)" - ",(3, 2140038000, 8)" - ",(4, -1688265000, 2) ,(4, -1656819048, 1)" - ",(4, -1641353448, 2) ,(4, -1627965048, 3)" - ",(4, -1618716648, 1) ,(4, -1596429048, 3)" - ",(4, -1593829848, 5) ,(4, -1589860800, 4)" - ",(4, -1542427200, 5) ,(4, -1539493200, 6)" - ",(4, -1525323600, 5) ,(4, -1522728000, 4)" - ",(4, -1491188400, 7) ,(4, -1247536800, 4)" - ",(4, 354920409, 5) ,(4, 370728010, 4)" - ",(4, 386456410, 5) ,(4, 402264011, 4)" - ",(4, 417992411, 5) ,(4, 433800012, 4)" - ",(4, 449614812, 5) ,(4, 465346812, 8)" - ",(4, 481071612, 9) ,(4, 496796413, 8)" - ",(4, 512521213, 9) ,(4, 528246013, 8)" - ",(4, 543970813, 9) ,(4, 559695613, 8)" - ",(4, 575420414, 9) ,(4, 591145214, 8)" - ",(4, 606870014, 9) ,(4, 622594814, 8)" - ",(4, 638319615, 9) ,(4, 654649215, 8)" - ",(4, 670374016, 10) ,(4, 686102416, 11)" - ",(4, 695779216, 8) ,(4, 701812816, 5)" - ",(4, 717534017, 4) ,(4, 733273217, 9)" - ",(4, 748998018, 8) ,(4, 764722818, 9)" - ",(4, 780447619, 8) ,(4, 796172419, 9)" - ",(4, 811897219, 8) ,(4, 828226820, 9)" - ",(4, 846370820, 8) ,(4, 859676420, 9)" - ",(4, 877820421, 8) ,(4, 891126021, 9)" - ",(4, 909270021, 8) ,(4, 922575622, 9)" - ",(4, 941324422, 8) ,(4, 954025222, 9)" - ",(4, 972774022, 8) ,(4, 985474822, 9)" - ",(4, 1004223622, 8) ,(4, 1017529222, 9)" - ",(4, 1035673222, 8) ,(4, 1048978822, 9)" - ",(4, 1067122822, 8) ,(4, 1080428422, 9)" - ",(4, 1099177222, 8) ,(4, 1111878022, 9)" - ",(4, 1130626822, 8) ,(4, 1143327622, 9)" - ",(4, 1162076422, 8) ,(4, 1174777222, 9)" - ",(4, 1193526022, 8) ,(4, 1206831622, 9)" - ",(4, 1224975622, 8) ,(4, 1238281222, 9)" - ",(4, 1256425222, 8) ,(4, 1269730822, 9)" - ",(4, 1288479622, 8) ,(4, 1301180422, 9)" - ",(4, 1319929222, 8) ,(4, 1332630022, 9)" - ",(4, 1351378822, 8) ,(4, 1364684422, 9)" - ",(4, 1382828422, 8) ,(4, 1396134022, 9)" - ",(4, 1414278022, 8) ,(4, 1427583622, 9)" - ",(4, 1445727622, 8) ,(4, 1459033222, 9)" - ",(4, 1477782022, 8) ,(4, 1490482822, 9)" - ",(4, 1509231622, 8) ,(4, 1521932422, 9)" - ",(4, 1540681222, 8) ,(4, 1553986822, 9)" - ",(4, 1572130822, 8) ,(4, 1585436422, 9)" - ",(4, 1603580422, 8) ,(4, 1616886022, 9)" - ",(4, 1635634822, 8) ,(4, 1648335622, 9)" - ",(4, 1667084422, 8) ,(4, 1679785222, 9)" - ",(4, 1698534022, 8) ,(4, 1711839622, 9)" - ",(4, 1729983622, 8) ,(4, 1743289222, 9)" - ",(4, 1761433222, 8) ,(4, 1774738822, 9)" - ",(4, 1792882822, 8) ,(4, 1806188422, 9)" - ",(4, 1824937222, 8) ,(4, 1837638022, 9)" - ",(4, 1856386822, 8) ,(4, 1869087622, 9)" - ",(4, 1887836422, 8) ,(4, 1901142022, 9)" - ",(4, 1919286022, 8) ,(4, 1932591622, 9)" - ",(4, 1950735622, 8) ,(4, 1964041222, 9)" - ",(4, 1982790022, 8) ,(4, 1995490822, 9)" - ",(4, 2014239622, 8) ,(4, 2026940422, 9)" - ",(4, 2045689222, 8) ,(4, 2058390022, 9)" - ",(4, 2077138822, 8) ,(4, 2090444422, 9)" - ",(4, 2108588422, 8) ,(4, 2121894022, 9)" - ",(4, 2140038022, 8), (5, -1009875600, 1);\n"); - - - } - } - - if (test_sys_file(mdata,"mysql/time_zone_transition_type.frm")) - { - fprintf(out, - "CREATE TABLE time_zone_transition_type (" - "Time_zone_id int unsigned NOT NULL," - "Transition_type_id int unsigned NOT NULL," - "Offset int signed DEFAULT 0 NOT NULL," - "Is_DST tinyint unsigned DEFAULT 0 NOT NULL," - "Abbreviation char(8) DEFAULT '' NOT NULL," - "PRIMARY KEY TzIdTrTId (Time_zone_id, Transition_type_id)" - ") engine=MyISAM CHARACTER SET utf8 " - "comment='Time zone transition types';\n"); - - if (test) - { - fprintf(out, - "INSERT INTO time_zone_transition_type (Time_zone_id," - "Transition_type_id, Offset, Is_DST, Abbreviation) VALUES" - "(1, 0, 7200, 1, 'MEST') ,(1, 1, 3600, 0, 'MET')" - ",(1, 2, 7200, 1, 'MEST') ,(1, 3, 3600, 0, 'MET')" - ",(2, 0, 0, 0, 'UTC')" - ",(3, 0, 9000, 0, 'MMT') ,(3, 1, 12648, 1, 'MST')" - ",(3, 2, 9048, 0, 'MMT') ,(3, 3, 16248, 1, 'MDST')" - ",(3, 4, 10800, 0, 'MSK') ,(3, 5, 14400, 1, 'MSD')" - ",(3, 6, 18000, 1, 'MSD') ,(3, 7, 7200, 0, 'EET')" - ",(3, 8, 10800, 0, 'MSK') ,(3, 9, 14400, 1, 'MSD')" - ",(3, 10, 10800, 1, 'EEST') ,(3, 11, 7200, 0, 'EET')" - ",(4, 0, 9000, 0, 'MMT') ,(4, 1, 12648, 1, 'MST')" - ",(4, 2, 9048, 0, 'MMT') ,(4, 3, 16248, 1, 'MDST')" - ",(4, 4, 10800, 0, 'MSK') ,(4, 5, 14400, 1, 'MSD')" - ",(4, 6, 18000, 1, 'MSD') ,(4, 7, 7200, 0, 'EET')" - ",(4, 8, 10800, 0, 'MSK') ,(4, 9, 14400, 1, 'MSD')" - ",(4, 10, 10800, 1, 'EEST') ,(4, 11, 7200, 0, 'EET')" - ",(5, 0, 32400, 0, 'CJT') ,(5, 1, 32400, 0, 'JST');\n"); - - } - } - - if (test_sys_file(mdata,"mysql/time_zone_leap_second.frm")) - { - fprintf(out, - "CREATE TABLE time_zone_leap_second (" - "Transition_time bigint signed NOT NULL," - "Correction int signed NOT NULL," - "PRIMARY KEY TranTime (Transition_time)" - ") engine=MyISAM CHARACTER SET utf8 " - "comment='Leap seconds information for time zones';\n"); - - if (test) - { - fprintf(out, - "INSERT INTO time_zone_leap_second " - "(Transition_time, Correction) VALUES " - "(78796800, 1) ,(94694401, 2) ,(126230402, 3)" - ",(157766403, 4) ,(189302404, 5) ,(220924805, 6)" - ",(252460806, 7) ,(283996807, 8) ,(315532808, 9)" - ",(362793609, 10) ,(394329610, 11) ,(425865611, 12)" - ",(489024012, 13) ,(567993613, 14) ,(631152014, 15)" - ",(662688015, 16) ,(709948816, 17) ,(741484817, 18)" - ",(773020818, 19) ,(820454419, 20) ,(867715220, 21)" - ",(915148821, 22);\n"); - } - } - - return fclose(out); -} diff --git a/mysql-test/my_manage.c b/mysql-test/my_manage.c deleted file mode 100644 index e5d1be42f95..00000000000 --- a/mysql-test/my_manage.c +++ /dev/null @@ -1,887 +0,0 @@ -/* - Copyright (c) 2003 Novell, Inc. All Rights Reserved. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#include -#include -#ifndef __WIN__ -#include -#endif -#include -#ifdef __NETWARE__ -#include -#include -#else -#include -#ifndef __WIN__ -#include -#include -#include -#include /* FIXME HAVE_FNMATCH_H or something */ -#else -#include -#include -#include -#endif -#endif -#include -#include -#include -#include - -#include "my_manage.h" - -#ifndef __NETWARE__ -#define ASSERT assert -extern char **environ; -#endif - - - -/****************************************************************************** - - macros - -******************************************************************************/ - -/****************************************************************************** - - global variables - -******************************************************************************/ - -/****************************************************************************** - - functions - -******************************************************************************/ - -/****************************************************************************** - - init_args() - - Init an argument list. - -******************************************************************************/ - -void init_args(arg_list_t *al) -{ - ASSERT(al != NULL); - - al->argc= 0; - al->size= ARG_BUF; - al->argv= malloc(al->size * sizeof(char *)); - ASSERT(al->argv != NULL); - - return; -} - -/****************************************************************************** - - add_arg() - - Add an argument to a list. - -******************************************************************************/ - -void add_arg(arg_list_t *al, const char *format, ...) -{ - va_list ap; - char temp[FN_REFLEN]; - - ASSERT(al != NULL); - - /* increase size */ - if (al->argc >= (int)al->size) - { - al->size+= ARG_BUF; - al->argv= realloc(al->argv, al->size * sizeof(char *)); - ASSERT(al->argv != NULL); - } - - if (format) - { - va_start(ap, format); - vsprintf(temp, format, ap); - va_end(ap); - - al->argv[al->argc]= malloc(strlen(temp)+1); - ASSERT(al->argv[al->argc] != NULL); - strcpy(al->argv[al->argc], temp); - - ++(al->argc); - } - else - { - al->argv[al->argc]= NULL; - } - - return; -} - -/****************************************************************************** - - free_args() - - Free an argument list. - -******************************************************************************/ - -void free_args(arg_list_t *al) -{ - int i; - - ASSERT(al != NULL); - - for (i= 0; i < al->argc; i++) - { - ASSERT(al->argv[i] != NULL); - free(al->argv[i]); - al->argv[i]= NULL; - } - - free(al->argv); - al->argc= 0; - al->argv= NULL; - - return; -} - -/****************************************************************************** - - sleep_until_file_deleted() - - Sleep until the given file is no longer found. - -******************************************************************************/ - -#ifndef __WIN__ -int sleep_until_file_deleted(char *pid_file) -#else -int sleep_until_file_deleted(HANDLE pid_file) -#endif -{ - int err= 0; /* Initiate to supress warning */ -#ifndef __WIN__ - struct stat buf; - int i; - - for (i= 0; (i < TRY_MAX) && (err= !stat(pid_file, &buf)); i++) sleep(1); - - if (err != 0) err= errno; -#else - err= (WaitForSingleObject(pid_file, TRY_MAX*1000) == WAIT_TIMEOUT); -#endif - return err; -} - -/****************************************************************************** - - sleep_until_file_exists() - - Sleep until the given file exists. - -******************************************************************************/ - -#ifndef __WIN__ -int sleep_until_file_exists(char *pid_file) -#else -int sleep_until_file_exists(HANDLE pid_file) -#endif -{ - int err= 0; /* Initiate to supress warning */ -#ifndef __WIN__ - struct stat buf; - int i; - - for (i= 0; (i < TRY_MAX) && (err= stat(pid_file, &buf)); i++) sleep(1); - - if (err != 0) err= errno; -#else - err= (WaitForSingleObject(pid_file, TRY_MAX*1000) == WAIT_TIMEOUT); -#endif - return err; -} - -/****************************************************************************** - - wait_for_server_start() - - Wait for the server on the given port to start. - -******************************************************************************/ - -int wait_for_server_start(char *bin_dir __attribute__((unused)), - char *mysqladmin_file, - char *user, char *password, int port,char *tmp_dir) -{ - arg_list_t al; - int err= 0; - char trash[FN_REFLEN]; - - /* mysqladmin file */ - snprintf(trash, FN_REFLEN, "%s/trash.out",tmp_dir); - - /* args */ - init_args(&al); - add_arg(&al, "%s", mysqladmin_file); - add_arg(&al, "--no-defaults"); - add_arg(&al, "--port=%u", port); - add_arg(&al, "--user=%s", user); - add_arg(&al, "--password=%s", password); - add_arg(&al, "--silent"); - add_arg(&al, "--host=localhost"); - -#ifndef __NETWARE__ - add_arg(&al, "--connect_timeout=10"); - add_arg(&al, "-w"); - add_arg(&al, "--protocol=tcp"); -#endif - add_arg(&al, "ping"); - - /* - NetWare does not support the connect timeout in the TCP/IP stack - -- we will try the ping multiple times - */ -#ifndef __WIN__ - { - int i; - for (i= 0; - (i < TRY_MAX) && (err= spawn(mysqladmin_file, &al, TRUE, NULL, - trash, NULL, NULL)); - i++) - sleep(1); - } -#else - err= spawn(mysqladmin_file, &al, TRUE, NULL,trash, NULL, NULL); -#endif - - /* free args */ - free_args(&al); - - return err; -} - -/****************************************************************************** - - spawn() - - Spawn the given path with the given arguments. - -******************************************************************************/ - -#ifdef __NETWARE__ -int spawn(char *path, arg_list_t *al, int join, char *input, - char *output, char *error, char *pid_file) -{ - pid_t pid; - int result= 0; - wiring_t wiring= { FD_UNUSED, FD_UNUSED, FD_UNUSED }; - unsigned long flags= PROC_CURRENT_SPACE | PROC_INHERIT_CWD; - - /* open wiring */ - if (input) - wiring.infd= open(input, O_RDONLY); - - if (output) - wiring.outfd= open(output, O_WRONLY | O_CREAT | O_TRUNC); - - if (error) - wiring.errfd= open(error, O_WRONLY | O_CREAT | O_TRUNC); - - /* procve requires a NULL */ - add_arg(al, NULL); - - /* go */ - pid= procve(path, flags, NULL, &wiring, NULL, NULL, 0, - NULL, (const char **)al->argv); - - /* close wiring */ - if (wiring.infd != -1) - close(wiring.infd); - - if (wiring.outfd != -1) - close(wiring.outfd); - - if (wiring.errfd != -1) - close(wiring.errfd); - - return result; -} -#elif __WIN__ - -int spawn(char *path, arg_list_t *al, int join, char *input, - char *output, char *error, HANDLE *pid) -{ - bool result; - int i; - STARTUPINFO startup_info; - PROCESS_INFORMATION process_information; - DWORD exit_code; - char win_args[1024]= ""; - - /* Skip the first parameter */ - for (i= 1; i < al->argc; i++) - { - ASSERT(al->argv[i] != NULL); - strcat(win_args,al->argv[i]); - strcat(win_args," "); - } - - memset(&startup_info,0,sizeof(STARTUPINFO)); - startup_info.cb= sizeof(STARTUPINFO); - - if (input) - freopen(input, "rb", stdin); - - if (output) - freopen(output, "wb", stdout); - - if (error) - freopen(error, "wb", stderr); - - result= CreateProcess( - path, - (LPSTR)&win_args, - NULL, - NULL, - TRUE, - 0, - NULL, - NULL, - &startup_info, - &process_information - ); - - if (result && process_information.hProcess) - { - if (join) - { - if (WaitForSingleObject(process_information.hProcess, mysqld_timeout) - == WAIT_TIMEOUT) - { - exit_code= -1; - } - else - { - GetExitCodeProcess(process_information.hProcess, &exit_code); - } - CloseHandle(process_information.hProcess); - } - else - { - exit_code= 0; - } - if (pid != NULL) - *pid= process_information.hProcess; - } - else - { - exit_code= -1; - } - if (input) - freopen("CONIN$","rb",stdin); - if (output) - freopen("CONOUT$","wb",stdout); - if (error) - freopen("CONOUT$","wb",stderr); - - return exit_code; -} -#else -int spawn(char *path, arg_list_t *al, int join, char *input, - char *output, char *error, char *pid_file __attribute__((unused))) -{ - pid_t pid; - int res_exec= 0; - int result= 0; - - pid= fork(); - - if (pid == -1) - { - fprintf(stderr, "fork was't created\n"); - /* We can't create the fork...exit with error */ - return EXIT_FAILURE; - } - - if (pid > 0) - { - /* The parent process is waiting for child process if join is not zero */ - if (join) - { - waitpid(pid, &result, 0); - if (WIFEXITED(result) != 0) - { - result= WEXITSTATUS(result); - } - else - { - result= EXIT_FAILURE; - } - } - } - else - { - - /* Child process */ - add_arg(al, NULL); - - /* Reassign streams */ - if (input) - freopen(input, "r", stdin); - - if (output) - freopen(output, "w", stdout); - - if (error) - freopen(error, "w", stderr); - - /* Spawn the process */ - if ((res_exec= execve(path, al->argv, environ)) < 0) - exit(EXIT_FAILURE); - - /* Restore streams */ - if (input) - freopen("/dev/tty", "r", stdin); - - if (output) - freopen("/dev/tty", "w", stdout); - - if (error) - freopen("/dev/tty", "w", stderr); - - exit(0); - } - - return result; -} -#endif -/****************************************************************************** - - stop_server() - - Stop the server with the given port and pid file. - -******************************************************************************/ - -int stop_server(char *bin_dir __attribute__((unused)), char *mysqladmin_file, - char *user, char *password, int port, -#ifndef __WIN__ - char *pid_file, -#else - HANDLE pid_file, -#endif - char *tmp_dir) -{ - arg_list_t al; - int err= 0; - char trash[FN_REFLEN]; - - snprintf(trash, FN_REFLEN, "%s/trash.out",tmp_dir); - - /* args */ - init_args(&al); - add_arg(&al, "%s", mysqladmin_file); - add_arg(&al, "--no-defaults"); - add_arg(&al, "--port=%u", port); - add_arg(&al, "--user=%s", user); - add_arg(&al, "--password=%s", password); - add_arg(&al, "-O"); - add_arg(&al, "shutdown_timeout=20"); -#ifndef __NETWARE__ - add_arg(&al, "--protocol=tcp"); -#endif - add_arg(&al, "shutdown"); - - /* spawn */ - if ((err= spawn(mysqladmin_file, &al, TRUE, NULL, - trash, NULL, NULL)) == 0) - { - sleep_until_file_deleted(pid_file); - } - else - { -#ifndef __WIN__ - pid_t pid= get_server_pid(pid_file); - - /* shutdown failed - kill server */ - kill_server(pid); - - sleep(TRY_MAX); - - /* remove pid file if possible */ - err= remove(pid_file); -#else - TerminateProcess(pid_file,err); -#endif - } - - /* free args */ - free_args(&al); - - return err; -} - -/****************************************************************************** - - get_server_pid() - - Get the VM id with the given pid file. - -******************************************************************************/ - -#ifndef __WIN__ -pid_t get_server_pid(char *pid_file) -{ - char buf[FN_REFLEN]; - int fd, err; - char *p; - pid_t id= 0; - - /* discover id */ - fd= open(pid_file, O_RDONLY); - - err= read(fd, buf, FN_REFLEN); - - close(fd); - - if (err > 0) - { - /* terminate string */ - if ((p= strchr(buf, '\n')) != NULL) - { - *p= '\0'; - - /* check for a '\r' */ - if ((p= strchr(buf, '\r')) != NULL) - { - *p= '\0'; - } - } - else - { - buf[err]= '\0'; - } - - id= strtol(buf, NULL, 0); - } - - return id; -} - -/****************************************************************************** - - kill_server() - - Force a kill of the server with the given pid. - -******************************************************************************/ - -void kill_server(pid_t pid) -{ - if (pid > 0) - { -#if !defined(__NETWARE__) - /* Send SIGTERM to pid */ - kill(pid, SIGTERM); -#else /* __NETWARE__ */ - /* destroy vm */ - NXVmDestroy(pid); -#endif - } -} -#endif -/****************************************************************************** - - del_tree() - - Delete the directory and subdirectories. - -******************************************************************************/ - -void del_tree(char *dir) -{ -#ifndef __WIN__ - DIR *parent= opendir(dir); - struct dirent *entry; - char temp[FN_REFLEN]; - - if (parent == NULL) - { - return; - } - - while ((entry= readdir(parent)) != NULL) - { - /* create long name */ - snprintf(temp, FN_REFLEN, "%s/%s", dir, entry->d_name); - - if (entry->d_name[0] == '.') - { - /* Skip */ - } - else - { -/* FIXME missing test in acinclude.m4 */ -#ifndef STRUCT_DIRENT_HAS_D_TYPE - struct stat st; - - if (lstat(entry->d_name, &st) == -1) - { - /* FIXME error */ - return; - } - if (S_ISDIR(st.st_mode)) -#else - if (S_ISDIR(entry->d_type)) -#endif - { - /* delete subdirectory */ - del_tree(temp); - } - else - { - /* remove file */ - remove(temp); - } - } - } - /* remove directory */ - rmdir(dir); -#else - struct _finddata_t parent; -#if defined(_MSC_VER) && _MSC_VER > 1200 - intptr_t handle; -#else - long handle; -#endif /* _MSC_VER && _MSC_VER > 1200 */ - char temp[FN_REFLEN]; - char mask[FN_REFLEN]; - - snprintf(mask,FN_REFLEN,"%s/*.*",dir); - - if ((handle=_findfirst(mask,&parent)) == -1L) - { - return; - } - - do - { - /* create long name */ - snprintf(temp, FN_REFLEN, "%s/%s", dir, parent.name); - if (parent.name[0] == '.') - { - /* Skip */ - } - else - if (parent.attrib & _A_SUBDIR) - { - /* delete subdirectory */ - del_tree(temp); - } - else - { - /* remove file */ - remove(temp); - } - } while (_findnext(handle,&parent) == 0); - - _findclose(handle); - - /* remove directory */ - _rmdir(dir); -#endif -} - -/****************************************************************************** - - removef() - -******************************************************************************/ - -int removef(const char *format, ...) -{ -#ifdef __NETWARE__ - va_list ap; - char path[FN_REFLEN]; - - va_start(ap, format); - - vsnprintf(path, FN_REFLEN, format, ap); - - va_end(ap); - return remove(path); - -#elif __WIN__ - { - va_list ap; - char path[FN_REFLEN]; - struct _finddata_t parent; -#if defined(_MSC_VER) && _MSC_VER > 1200 - intptr_t handle; -#else - long handle; -#endif /* _MSC_VER && _MSC_VER > 1200 */ - char temp[FN_REFLEN]; - char *p; - - va_start(ap, format); - - vsnprintf(path, FN_REFLEN, format, ap); - - va_end(ap); - - p= path + strlen(path); - while (*p != '\\' && *p != '/' && p > path) p--; - - if ((handle=_findfirst(path,&parent)) == -1L) - { - /* if there is not files....it's ok */ - return 0; - } - - *p= '\0'; - - do - { - if (! (parent.attrib & _A_SUBDIR)) - { - snprintf(temp, FN_REFLEN, "%s/%s", path, parent.name); - remove(temp); - } - }while (_findnext(handle,&parent) == 0); - - _findclose(handle); - } -#else - DIR *parent; - struct dirent *entry; - char temp[FN_REFLEN]; - va_list ap; - char path[FN_REFLEN]; - char *p; - /* Get path with mask */ - va_start(ap, format); - - vsnprintf(path, FN_REFLEN, format, ap); - - va_end(ap); - - p= path + strlen(path); - while (*p != '\\' && *p != '/' && p > path) p--; - *p= '\0'; - p++; - - parent= opendir(path); - - if (parent == NULL) - { - return 1; /* Error, directory missing */ - } - - while ((entry= readdir(parent)) != NULL) - { - /* entry is not directory and entry matches with mask */ -#ifndef STRUCT_DIRENT_HAS_D_TYPE - struct stat st; - - /* create long name */ - snprintf(temp, FN_REFLEN, "%s/%s", path, entry->d_name); - - if (lstat(temp, &st) == -1) - { - return 1; /* Error couldn't lstat file */ - } - - if (!S_ISDIR(st.st_mode) && !fnmatch(p, entry->d_name,0)) -#else - if (!S_ISDIR(entry->d_type) && !fnmatch(p, entry->d_name,0)) -#endif - { - /* create long name */ - snprintf(temp, FN_REFLEN, "%s/%s", path, entry->d_name); - /* Delete only files */ - remove(temp); - } - } -#endif - return 0; -} - -/****************************************************************************** - - get_basedir() - -******************************************************************************/ - -void get_basedir(char *argv0, char *basedir) -{ - char temp[FN_REFLEN]; - char *p; - int position; - - ASSERT(argv0 != NULL); - ASSERT(basedir != NULL); - - strcpy(temp, strlwr(argv0)); - while ((p= strchr(temp, '\\')) != NULL) *p= '/'; - - if ((position= strinstr(temp, "/bin/")) != 0) - { - p= temp + position; - *p= '\0'; - strcpy(basedir, temp); - } -} - -uint strinstr(reg1 const char *str,reg4 const char *search) -{ - reg2 my_string i,j; - my_string start= (my_string) str; - - skipp: - while (*str != '\0') - { - if (*str++ == *search) - { - i=(my_string) str; - j= (my_string) search+1; - while (*j) - if (*i++ != *j++) goto skipp; - return ((uint) (str - start)); - } - } - return (0); -} - -/****************************************************************************** - - remove_empty_file() - -******************************************************************************/ - -void remove_empty_file(const char *file_name) -{ - struct stat file; - - if (!stat(file_name,&file)) - { - if (!file.st_size) - remove(file_name); - } -} diff --git a/mysql-test/my_manage.h b/mysql-test/my_manage.h deleted file mode 100644 index 5df77b01af8..00000000000 --- a/mysql-test/my_manage.h +++ /dev/null @@ -1,137 +0,0 @@ -/* - Copyright (c) 2002 Novell, Inc. All Rights Reserved. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#ifndef _MY_MANAGE -#define _MY_MANAGE - -/****************************************************************************** - - includes - -******************************************************************************/ - -#include -#ifndef __WIN__ -#include -#endif -#ifndef __NETWARE__ -#include -#include -#include - -#ifndef __WIN__ -#define strnicmp strncasecmp -#define strlwr(STRARG) (STRARG) -#else -int my_vsnprintf_(char *to, size_t n, const char* value, ...); -#endif -#endif - -/****************************************************************************** - - macros - -******************************************************************************/ - -#define ARG_BUF 10 -#define TRY_MAX 5 - -#ifdef __WIN__ -#define PATH_MAX _MAX_PATH -#define NAME_MAX _MAX_FNAME -#define kill(A,B) TerminateProcess((HANDLE)A,0) -#define NOT_NEED_PID 0 -#define MASTER_PID 1 -#define SLAVE_PID 2 -#define mysqld_timeout 60000 - -int pid_mode; -bool run_server; -bool skip_first_param; - -#define snprintf _snprintf -#define vsnprintf _vsnprintf -#endif - - -/****************************************************************************** - - structures - -******************************************************************************/ - -typedef struct -{ - - int argc; - char **argv; - - size_t size; - -} arg_list_t; - -#ifdef __WIN__ -typedef int pid_t; -#endif -/****************************************************************************** - - global variables - -******************************************************************************/ - -/****************************************************************************** - - prototypes - -******************************************************************************/ - -void init_args(arg_list_t *); -void add_arg(arg_list_t *, const char *, ...); -void free_args(arg_list_t *); - -#ifndef __WIN__ -int sleep_until_file_exists(char *); -int sleep_until_file_deleted(char *); -#else -int sleep_until_file_exists(HANDLE); -int sleep_until_file_deleted(HANDLE); -#endif -int wait_for_server_start(char *, char *, char *, char *, int,char *); - -#ifndef __WIN__ -int spawn(char *, arg_list_t *, int, char *, char *, char *, char *); -#else -int spawn(char *, arg_list_t *, int , char *, char *, char *, HANDLE *); -#endif - -#ifndef __WIN__ -int stop_server(char *, char *, char *, char *, int, char *,char *); -pid_t get_server_pid(char *); -void kill_server(pid_t pid); -#else -int stop_server(char *, char *, char *, char *, int, HANDLE,char *); -#endif -void del_tree(char *); -int removef(const char *, ...); - -void get_basedir(char *, char *); -void remove_empty_file(const char *file_name); - -bool create_system_files(const char *mdata,const char *output_file, bool test); - -#endif /* _MY_MANAGE */ diff --git a/mysql-test/mysql-test-run.sh b/mysql-test/mysql-test-run.sh index e63db73d8f4..cb6fb0af0e8 100644 --- a/mysql-test/mysql-test-run.sh +++ b/mysql-test/mysql-test-run.sh @@ -250,12 +250,8 @@ MASTER_MYPORT=9306 SLAVE_RUNNING=0 SLAVE_MYHOST=127.0.0.1 SLAVE_MYPORT=9308 # leave room for 2 masters for cluster tests -MYSQL_MANAGER_PORT=9305 # needs to be out of the way of slaves NDBCLUSTER_PORT=9350 NDBCLUSTER_PORT_SLAVE=9358 -MYSQL_MANAGER_PW_FILE=$MYSQL_TEST_DIR/var/tmp/manager.pwd -MYSQL_MANAGER_LOG=$MYSQL_TEST_DIR/var/log/manager.log -MYSQL_MANAGER_USER=root # # To make it easier for different devs to work on the same host, @@ -269,14 +265,12 @@ MYSQL_MANAGER_USER=root # if [ -n "$MTR_BUILD_THREAD" ] ; then MASTER_MYPORT=`expr $MTR_BUILD_THREAD '*' 10 + 10000` - MYSQL_MANAGER_PORT=`expr $MASTER_MYPORT + 2` SLAVE_MYPORT=`expr $MASTER_MYPORT + 3` NDBCLUSTER_PORT=`expr $MASTER_MYPORT + 6` NDBCLUSTER_PORT_SLAVE=`expr $MASTER_MYPORT + 7` echo "Using MTR_BUILD_THREAD = $MTR_BUILD_THREAD" echo "Using MASTER_MYPORT = $MASTER_MYPORT" - echo "Using MYSQL_MANAGER_PORT = $MYSQL_MANAGER_PORT" echo "Using SLAVE_MYPORT = $SLAVE_MYPORT" echo "Using NDBCLUSTER_PORT = $NDBCLUSTER_PORT" echo "Using NDBCLUSTER_PORT_SLAVE = $NDBCLUSTER_PORT_SLAVE" @@ -361,7 +355,6 @@ while test $# -gt 0; do --user=*) DBUSER=`$ECHO "$1" | $SED -e "s;--user=;;"` ;; --force) FORCE=1 ;; --timer) USE_TIMER=1 ;; - --verbose-manager) MANAGER_QUIET_OPT="" ;; --old-master) MASTER_40_ARGS="";; --master-binary=*) MASTER_MYSQLD=`$ECHO "$1" | $SED -e "s;--master-binary=;;"` ;; @@ -407,7 +400,6 @@ while test $# -gt 0; do LOCAL_MASTER=1 ;; --master_port=*) MASTER_MYPORT=`$ECHO "$1" | $SED -e "s;--master_port=;;"` ;; --slave_port=*) SLAVE_MYPORT=`$ECHO "$1" | $SED -e "s;--slave_port=;;"` ;; - --manager-port=*) MYSQL_MANAGER_PORT=`$ECHO "$1" | $SED -e "s;--manager_port=;;"` ;; --ndbcluster_port=*) NDBCLUSTER_PORT=`$ECHO "$1" | $SED -e "s;--ndbcluster_port=;;"` ;; --ndbcluster-port=*) NDBCLUSTER_PORT=`$ECHO "$1" | $SED -e "s;--ndbcluster-port=;;"` ;; --ndbcluster-port-slave=*) NDBCLUSTER_PORT_SLAVE=`$ECHO "$1" | $SED -e "s;--ndbcluster-port-slave=;;"` ;; @@ -423,11 +415,6 @@ while test $# -gt 0; do MYSQL_TEST_SSL_OPTS="--ssl-ca=$MYSQL_TEST_DIR/std_data/cacert.pem \ --ssl-cert=$MYSQL_TEST_DIR/std_data/client-cert.pem \ --ssl-key=$MYSQL_TEST_DIR/std_data/client-key.pem" ;; - --no-manager | --skip-manager) USE_MANAGER=0 ;; - --manager) - USE_MANAGER=1 - USE_RUNNING_SERVER=0 - ;; --start-and-exit) START_AND_EXIT=1 ;; @@ -645,7 +632,6 @@ fi #-- MYRUN_DIR=$MYSQL_TEST_DIR/var/run -MANAGER_PID_FILE="$MYRUN_DIR/manager.pid" MASTER_MYDDIR="$MYSQL_TEST_DIR/var/master-data" MASTER_MYSOCK="$MYSQL_TMP_DIR/master.sock" @@ -759,9 +745,6 @@ if [ x$SOURCE_DIST = x1 ] ; then MYSQLADMIN="$CLIENT_BINDIR/mysqladmin" WAIT_PID="$BASEDIR/extra/mysql_waitpid" MYSQL_MY_PRINT_DEFAULTS="$BASEDIR/extra/my_print_defaults" - MYSQL_MANAGER_CLIENT="$CLIENT_BINDIR/mysqltestmanagerc" - MYSQL_MANAGER="$BASEDIR/tools/mysqltestmanager" - MYSQL_MANAGER_PWGEN="$CLIENT_BINDIR/mysqltestmanager-pwgen" MYSQL="$CLIENT_BINDIR/mysql" LANGUAGE="$BASEDIR/sql/share/english/" CHARSETSDIR="$BASEDIR/sql/share/charsets" @@ -822,9 +805,6 @@ else MYSQLADMIN="$CLIENT_BINDIR/mysqladmin" WAIT_PID="$CLIENT_BINDIR/mysql_waitpid" MYSQL_MY_PRINT_DEFAULTS="$CLIENT_BINDIR/my_print_defaults" - MYSQL_MANAGER="$CLIENT_BINDIR/mysqltestmanager" - MYSQL_MANAGER_CLIENT="$CLIENT_BINDIR/mysqltestmanagerc" - MYSQL_MANAGER_PWGEN="$CLIENT_BINDIR/mysqltestmanager-pwgen" MYSQL="$CLIENT_BINDIR/mysql" INSTALL_DB="./install_test_db --bin" MYSQL_FIX_SYSTEM_TABLES="$CLIENT_BINDIR/mysql_fix_privilege_tables" @@ -1214,96 +1194,27 @@ abort_if_failed() fi } -start_manager() +launch_in_background() { - if [ $USE_MANAGER = 0 ] ; then - echo "Manager disabled, skipping manager start." - $RM -f $MYSQL_MANAGER_LOG + echo $@ | /bin/sh >> $CUR_MYERR 2>&1 & + sleep 2 #hack return - fi - $ECHO "Starting MySQL Manager" - if [ -f "$MANAGER_PID_FILE" ] ; then - kill `cat $MANAGER_PID_FILE` - sleep 1 - if [ -f "$MANAGER_PID_FILE" ] ; then - kill -9 `cat $MANAGER_PID_FILE` - sleep 1 - fi - fi - - $RM -f $MANAGER_PID_FILE - MYSQL_MANAGER_PW=`$MYSQL_MANAGER_PWGEN -u $MYSQL_MANAGER_USER \ - -o $MYSQL_MANAGER_PW_FILE` - $MYSQL_MANAGER --log=$MYSQL_MANAGER_LOG --port=$MYSQL_MANAGER_PORT \ - --password-file=$MYSQL_MANAGER_PW_FILE --pid-file=$MANAGER_PID_FILE - abort_if_failed "Could not start MySQL manager" - mysqltest_manager_args="--manager-host=localhost \ - --manager-user=$MYSQL_MANAGER_USER \ - --manager-password=$MYSQL_MANAGER_PW \ - --manager-port=$MYSQL_MANAGER_PORT \ - --manager-wait-timeout=$START_WAIT_TIMEOUT" - MYSQL_TEST="$MYSQL_TEST $mysqltest_manager_args" - MYSQL_TEST_ARGS="$MYSQL_TEST_ARGS $mysqltest_manager_args" - while [ ! -f $MANAGER_PID_FILE ] ; do - sleep 1 - done - echo "Manager started" } -stop_manager() -{ - if [ $USE_MANAGER = 0 ] ; then - return - fi - $MYSQL_MANAGER_CLIENT $MANAGER_QUIET_OPT -u$MYSQL_MANAGER_USER \ - -p$MYSQL_MANAGER_PW -P $MYSQL_MANAGER_PORT <> $CUR_MYERR 2>&1 & - sleep 2 #hack - return - fi - $MYSQL_MANAGER_CLIENT $MANAGER_QUIET_OPT --user=$MYSQL_MANAGER_USER \ - --password=$MYSQL_MANAGER_PW --port=$MYSQL_MANAGER_PORT <> $MYSQL_MANAGER_LOG 2>&1 - res=$? - # Some systems require an extra connect - $MYSQLADMIN --no-defaults -uroot --socket=$MYSQL_TMP_DIR/$ident.sock$3 --connect_timeout=1 ping >> $MYSQL_MANAGER_LOG 2>&1 - if test $res = 0 - then - wait_for_pid $pid - fi - return $res + # Shutdown time must be high as slave may be in reconnect + $MYSQLADMIN --no-defaults -uroot --socket=$MYSQL_TMP_DIR/$ident.sock$3 --connect_timeout=5 --shutdown_timeout=70 shutdown >> $MYSQL_MANAGER_LOG 2>&1 + res=$? + # Some systems require an extra connect + $MYSQLADMIN --no-defaults -uroot --socket=$MYSQL_TMP_DIR/$ident.sock$3 --connect_timeout=1 ping >> $MYSQL_MANAGER_LOG 2>&1 + if test $res = 0 + then + wait_for_pid $pid fi - $MYSQL_MANAGER_CLIENT $MANAGER_QUIET_OPT --user=$MYSQL_MANAGER_USER \ - --password=$MYSQL_MANAGER_PW --port=$MYSQL_MANAGER_PORT < $GDB_MASTER_INIT$1 - manager_launch master ddd -display $DISPLAY --debugger \ + launch_in_background master ddd -display $DISPLAY --debugger \ "gdb -x $GDB_MASTER_INIT$1" $MASTER_MYSQLD elif [ x$DO_GDB = x1 ] then @@ -1507,11 +1418,11 @@ end r EOF fi ) > $GDB_MASTER_INIT$1 - manager_launch master $XTERM -display $DISPLAY \ + launch_in_background master $XTERM -display $DISPLAY \ -title "Master" -e gdb -x $GDB_MASTER_INIT$1 $MASTER_MYSQLD fi else - manager_launch master $MASTER_MYSQLD $master_args + launch_in_background master $MASTER_MYSQLD $master_args fi sleep_until_file_created $MASTER_MYPID$1 $wait_for_master wait_for_master=$SLEEP_TIME_FOR_SECOND_MASTER @@ -1644,7 +1555,7 @@ start_slave() if [ x$DO_DDD = x1 ] then $ECHO "set args $slave_args" > $GDB_SLAVE_INIT - manager_launch $slave_ident ddd -display $DISPLAY --debugger \ + launch_in_background $slave_ident ddd -display $DISPLAY --debugger \ "gdb -x $GDB_SLAVE_INIT" $SLAVE_MYSQLD elif [ x$DO_GDB = x1 ] then @@ -1665,11 +1576,11 @@ end r EOF fi ) > $GDB_SLAVE_INIT - manager_launch $slave_ident $XTERM -display $DISPLAY -title "Slave" -e \ + launch_in_background $slave_ident $XTERM -display $DISPLAY -title "Slave" -e \ gdb -x $GDB_SLAVE_INIT $SLAVE_MYSQLD fi else - manager_launch $slave_ident $SLAVE_MYSQLD $slave_args + launch_in_background $slave_ident $SLAVE_MYSQLD $slave_args fi eval "SLAVE$1_RUNNING=1" sleep_until_file_created $slave_pid $wait_for_slave @@ -1701,7 +1612,7 @@ stop_slave () if [ x$this_slave_running = x1 ] then pid=`$CAT $slave_pid` - manager_term $pid $slave_ident + shutdown_mysqld $pid $slave_ident if [ $? != 0 ] && [ -f $slave_pid ] then # try harder! $ECHO "slave not cooperating with mysqladmin, will try manual kill" @@ -1748,7 +1659,7 @@ stop_master () # MASTER_RUNNING=0 to get cleanup when calling start_master(). if [ x$USE_EMBEDDED_SERVER != x1 ] ; then pid=`$CAT $MASTER_MYPID$1` - manager_term $pid master $1 + shutdown_mysqld $pid master $1 if [ $? != 0 ] && [ -f $MASTER_MYPID$1 ] then # try harder! $ECHO "master not cooperating with mysqladmin, will try manual kill" @@ -2074,7 +1985,6 @@ run_testcase () [ -z "$DO_DDD" ] && [ -z "$USE_EMBEDDED_SERVER" ] then mysql_stop - stop_manager fi exit 1 fi @@ -2244,18 +2154,6 @@ then rm $MASTER_MYPID $MASTER_MYPID"1" $SLAVE_MYPID fi - # Kill any running managers - if [ -f "$MANAGER_PID_FILE" ] - then - kill `cat $MANAGER_PID_FILE` - sleep 1 - if [ -f "$MANAGER_PID_FILE" ] - then - kill -9 `cat $MANAGER_PID_FILE` - sleep 1 - fi - fi - # just to force stopping anything from previous runs USE_NDBCLUSTER_OPT=$USE_NDBCLUSTER stop_ndbcluster @@ -2279,10 +2177,8 @@ then USE_NDBCLUSTER_OPT= fi - start_manager - -# Do not automagically start daemons if we are in gdb or running only one test -# case +# Do not automagically start daemons if we are in gdb or running only one +# test case if [ -z "$DO_GDB" ] && [ -z "$DO_DDD" ] then mysql_start @@ -2329,7 +2225,6 @@ then fi cd $savedir mysql_stop - stop_manager exit fi @@ -2351,7 +2246,6 @@ then if [ $USE_RUNNING_SERVER -eq 0 ] ; then mysql_stop - stop_manager fi exit @@ -2398,7 +2292,6 @@ if [ -z "$DO_GDB" ] && [ $USE_RUNNING_SERVER -eq 0 ] && [ -z "$DO_DDD" ] then mysql_stop fi -stop_manager report_stats $ECHO diff --git a/mysql-test/mysql_test_run_new.c b/mysql-test/mysql_test_run_new.c deleted file mode 100644 index 79db71fa274..00000000000 --- a/mysql-test/mysql_test_run_new.c +++ /dev/null @@ -1,1933 +0,0 @@ -/* - Copyright (c) 2002, 2003 Novell, Inc. All Rights Reserved. - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -*/ - -#include -#include -#include -#ifndef __WIN__ -#include -#endif -#include -#ifdef __NETWARE__ -#include -#include -#endif -#include -#include -#ifndef __WIN__ -#include -#endif -#include -#ifdef __NETWARE__ -#include -#endif -#ifdef __WIN__ -#include -#include -#include -#endif - -#include "my_manage.h" - -/****************************************************************************** - - macros - -******************************************************************************/ - -#define HEADER "TEST RESULT \n" -#define DASH "-------------------------------------------------------\n" - -#define NW_TEST_SUFFIX ".nw-test" -#define NW_RESULT_SUFFIX ".nw-result" -#define TEST_SUFFIX ".test" -#define RESULT_SUFFIX ".result" -#define REJECT_SUFFIX ".reject" -#define OUT_SUFFIX ".out" -#define ERR_SUFFIX ".err" - -const char *TEST_PASS= "[ pass ]"; -const char *TEST_SKIP= "[ skip ]"; -const char *TEST_FAIL= "[ fail ]"; -const char *TEST_BAD= "[ bad ]"; -const char *TEST_IGNORE= "[ignore]"; - -/****************************************************************************** - - global variables - -******************************************************************************/ - -#ifdef __NETWARE__ -static char base_dir[FN_REFLEN]= "sys:/mysql"; -#else -static char base_dir[FN_REFLEN]= ".."; -#endif -static char db[FN_LEN]= "test"; -static char user[FN_LEN]= "root"; -static char password[FN_LEN]= ""; - -int master_port= 9306; -int slave_port= 9307; - -#if !defined(__NETWARE__) && !defined(__WIN__) -static char master_socket[FN_REFLEN]= "./var/tmp/master.sock"; -static char slave_socket[FN_REFLEN]= "./var/tmp/slave.sock"; -#endif - -#define MAX_COUNT_TESTES 1024 - -#ifdef __WIN__ -# define sting_compare_func _stricmp -#else -# ifdef HAVE_STRCASECMP -# define sting_compare_func strcasecmp -# else -# define sting_compare_func strcmp -# endif -#endif - -/* comma delimited list of tests to skip or empty string */ -#ifndef __WIN__ -static char skip_test[FN_REFLEN]= " lowercase_table3 , system_mysql_db_fix "; -#else -/* - The most ignore testes contain the calls of system command - - lowercase_table3 is disabled by Gerg - system_mysql_db_fix is disabled by Gerg - sp contains a command system - rpl_EE_error contains a command system - rpl_loaddatalocal contains a command system - ndb_autodiscover contains a command system - rpl_rotate_logs contains a command system - repair contains a command system - rpl_trunc_binlog contains a command system - mysqldump contains a command system - rpl000001 makes non-exit loop...temporary skiped -*/ -static char skip_test[FN_REFLEN]= -" lowercase_table3 ," -" system_mysql_db_fix ," -" sp ," -" rpl_EE_error ," -" rpl_loaddatalocal ," -" ndb_autodiscover ," -" rpl_rotate_logs ," -" repair ," -" rpl_trunc_binlog ," -" mysqldump ," -" rpl000001 ," - -" derived ," -" group_by ," -" select ," -" rpl000015 ," -" subselect "; -#endif -static char ignore_test[FN_REFLEN]= ""; - -static char bin_dir[FN_REFLEN]; -static char mysql_test_dir[FN_REFLEN]; -static char test_dir[FN_REFLEN]; -static char mysql_tmp_dir[FN_REFLEN]; -static char result_dir[FN_REFLEN]; -static char master_dir[FN_REFLEN]; -static char slave_dir[FN_REFLEN]; -static char slave1_dir[FN_REFLEN]; -static char slave2_dir[FN_REFLEN]; -static char lang_dir[FN_REFLEN]; -static char char_dir[FN_REFLEN]; - -static char mysqladmin_file[FN_REFLEN]; -static char mysqld_file[FN_REFLEN]; -static char mysqltest_file[FN_REFLEN]; -#ifndef __WIN__ -static char master_pid[FN_REFLEN]; -static char slave_pid[FN_REFLEN]; -static char sh_file[FN_REFLEN]= "/bin/sh"; -#else -static HANDLE master_pid; -static HANDLE slave_pid; -#endif - -static char master_opt[FN_REFLEN]= ""; -static char slave_opt[FN_REFLEN]= ""; - -static char slave_master_info[FN_REFLEN]= ""; - -static char master_init_script[FN_REFLEN]= ""; -static char slave_init_script[FN_REFLEN]= ""; - -/* OpenSSL */ -static char ca_cert[FN_REFLEN]; -static char server_cert[FN_REFLEN]; -static char server_key[FN_REFLEN]; -static char client_cert[FN_REFLEN]; -static char client_key[FN_REFLEN]; - -int total_skip= 0; -int total_pass= 0; -int total_fail= 0; -int total_test= 0; - -int total_ignore= 0; - -int use_openssl= FALSE; -int master_running= FALSE; -int slave_running= FALSE; -int skip_slave= TRUE; -int single_test= TRUE; - -int restarts= 0; - -FILE *log_fd= NULL; - -static char argument[FN_REFLEN]; - -/****************************************************************************** - - functions - -******************************************************************************/ - -/****************************************************************************** - - prototypes - -******************************************************************************/ - -void report_stats(); -void install_db(char *); -void mysql_install_db(); -void start_master(); -void start_slave(); -void mysql_start(); -void stop_slave(); -void stop_master(); -void mysql_stop(); -void mysql_restart(); -int read_option(char *, char *); -void run_test(char *); -void setup(char *); -void vlog(const char *, va_list); -void mlog(const char *, ...); -void log_info(const char *, ...); -void log_error(const char *, ...); -void log_errno(const char *, ...); -void die(const char *); -char *str_tok(char* dest, char *string, const char *delim); -#ifndef __WIN__ -void run_init_script(const char *script_name); -#endif -/****************************************************************************** - - report_stats() - - Report the gathered statistics. - -******************************************************************************/ - -void report_stats() -{ - if (total_fail == 0) - { - mlog("\nAll %d test(s) were successful.\n", total_test); - } - else - { - double percent= ((double)total_pass / total_test) * 100; - - mlog("\nFailed %u/%u test(s), %.02f%% successful.\n", - total_fail, total_test, percent); - mlog("\nThe .out and .err files in %s may give you some\n", result_dir); - mlog("hint of what when wrong.\n"); - mlog("\nIf you want to report this error, please first read " - "the documentation\n"); - mlog("at: http://www.mysql.com/doc/M/y/MySQL_test_suite.html\n"); - } -} - -/****************************************************************************** - - install_db() - - Install the a database. - -******************************************************************************/ - -void install_db(char *datadir) -{ - arg_list_t al; - int err; - char input[FN_REFLEN]; - char output[FN_REFLEN]; - char error[FN_REFLEN]; - - /* input file */ -#ifdef __NETWARE__ - snprintf(input, FN_REFLEN, "%s/bin/init_db.sql", base_dir); -#else - snprintf(input, FN_REFLEN, "%s/mysql-test/init_db.sql", base_dir); -#endif - snprintf(output, FN_REFLEN, "%s/install.out", datadir); - snprintf(error, FN_REFLEN, "%s/install.err", datadir); - - if (create_system_files(datadir,input, TRUE)) - die("Unable to create init_db.sql."); - /* args */ - init_args(&al); - add_arg(&al, mysqld_file); - add_arg(&al, "--no-defaults"); - add_arg(&al, "--bootstrap"); - add_arg(&al, "--skip-grant-tables"); - add_arg(&al, "--basedir=%s", base_dir); - add_arg(&al, "--datadir=%s", datadir); - add_arg(&al, "--skip-innodb"); - add_arg(&al, "--skip-ndbcluster"); - add_arg(&al, "--skip-bdb"); -#ifndef __NETWARE__ - add_arg(&al, "--character-sets-dir=%s", char_dir); - add_arg(&al, "--language=%s", lang_dir); -#endif -// added - add_arg(&al, "--default-character-set=latin1"); - add_arg(&al, "--innodb_data_file_path=ibdata1:50M"); - - /* spawn */ - if ((err= spawn(mysqld_file, &al, TRUE, input, output, error, NULL)) != 0) - { - die("Unable to create database."); - } - - /* free args */ - free_args(&al); -} - -/****************************************************************************** - - mysql_install_db() - - Install the test databases. - -******************************************************************************/ - -void mysql_install_db() -{ - char temp[FN_REFLEN]; - - /* var directory */ - snprintf(temp, FN_REFLEN, "%s/var", mysql_test_dir); - - /* create var directory */ -#ifndef __WIN__ - mkdir(temp, S_IRWXU); - /* create subdirectories */ - mlog("Creating test-suite folders...\n"); - snprintf(temp, FN_REFLEN, "%s/var/run", mysql_test_dir); - mkdir(temp, S_IRWXU); - snprintf(temp, FN_REFLEN, "%s/var/tmp", mysql_test_dir); - mkdir(temp, S_IRWXU); - snprintf(temp, FN_REFLEN, "%s/var/master-data", mysql_test_dir); - mkdir(temp, S_IRWXU); - snprintf(temp, FN_REFLEN, "%s/var/master-data/mysql", mysql_test_dir); - mkdir(temp, S_IRWXU); - snprintf(temp, FN_REFLEN, "%s/var/master-data/test", mysql_test_dir); - mkdir(temp, S_IRWXU); - - snprintf(temp, FN_REFLEN, "%s/var/slave-data", mysql_test_dir); - mkdir(temp, S_IRWXU); - snprintf(temp, FN_REFLEN, "%s/var/slave-data/mysql", mysql_test_dir); - mkdir(temp, S_IRWXU); - snprintf(temp, FN_REFLEN, "%s/var/slave-data/test", mysql_test_dir); - mkdir(temp, S_IRWXU); - - snprintf(temp, FN_REFLEN, "%s/var/slave1-data", mysql_test_dir); - mkdir(temp, S_IRWXU); - snprintf(temp, FN_REFLEN, "%s/var/slave1-data/mysql", mysql_test_dir); - mkdir(temp, S_IRWXU); - snprintf(temp, FN_REFLEN, "%s/var/slave1-data/test", mysql_test_dir); - mkdir(temp, S_IRWXU); - - snprintf(temp, FN_REFLEN, "%s/var/slave2-data", mysql_test_dir); - mkdir(temp, S_IRWXU); - snprintf(temp, FN_REFLEN, "%s/var/slave2-data/mysql", mysql_test_dir); - mkdir(temp, S_IRWXU); - snprintf(temp, FN_REFLEN, "%s/var/slave2-data/test", mysql_test_dir); - mkdir(temp, S_IRWXU); -#else - mkdir(temp); - /* create subdirectories */ - mlog("Creating test-suite folders...\n"); - snprintf(temp, FN_REFLEN, "%s/var/run", mysql_test_dir); - mkdir(temp); - snprintf(temp, FN_REFLEN, "%s/var/tmp", mysql_test_dir); - mkdir(temp); - snprintf(temp, FN_REFLEN, "%s/var/master-data", mysql_test_dir); - mkdir(temp); - snprintf(temp, FN_REFLEN, "%s/var/master-data/mysql", mysql_test_dir); - mkdir(temp); - snprintf(temp, FN_REFLEN, "%s/var/master-data/test", mysql_test_dir); - mkdir(temp); - snprintf(temp, FN_REFLEN, "%s/var/slave-data", mysql_test_dir); - mkdir(temp); - snprintf(temp, FN_REFLEN, "%s/var/slave-data/mysql", mysql_test_dir); - mkdir(temp); - snprintf(temp, FN_REFLEN, "%s/var/slave-data/test", mysql_test_dir); - mkdir(temp); -#endif - - /* install databases */ - mlog("Creating test databases for master... \n"); - install_db(master_dir); - mlog("Creating test databases for slave... \n"); - install_db(slave_dir); - install_db(slave1_dir); - install_db(slave2_dir); -} - -/****************************************************************************** - - start_master() - - Start the master server. - -******************************************************************************/ - -void start_master() -{ - arg_list_t al; - int err; - char master_out[FN_REFLEN]; - char master_err[FN_REFLEN]; - char temp2[FN_REFLEN]; - - /* remove old berkeley db log files that can confuse the server */ - removef("%s/log.*", master_dir); - - /* remove stale binary logs */ - removef("%s/var/log/*-bin.*", mysql_test_dir); - - /* remove stale binary logs */ - removef("%s/var/log/*.index", mysql_test_dir); - - /* remove master.info file */ - removef("%s/master.info", master_dir); - - /* remove relay files */ - removef("%s/var/log/*relay*", mysql_test_dir); - - /* remove relay-log.info file */ - removef("%s/relay-log.info", master_dir); - - /* init script */ - if (master_init_script[0] != 0) - { -#ifdef __NETWARE__ - /* TODO: use the scripts */ - if (strinstr(master_init_script, "repair_part2-master.sh") != 0) - { - FILE *fp; - - /* create an empty index file */ - snprintf(temp, FN_REFLEN, "%s/test/t1.MYI", master_dir); - fp= fopen(temp, "wb+"); - - fputs("1", fp); - - fclose(fp); - } -#elif !defined(__WIN__) - run_init_script(master_init_script); -#endif - } - - /* redirection files */ - snprintf(master_out, FN_REFLEN, "%s/var/run/master%u.out", - mysql_test_dir, restarts); - snprintf(master_err, FN_REFLEN, "%s/var/run/master%u.err", - mysql_test_dir, restarts); -#ifndef __WIN__ - snprintf(temp2,FN_REFLEN,"%s/var",mysql_test_dir); - mkdir(temp2,S_IRWXU); - snprintf(temp2,FN_REFLEN,"%s/var/log",mysql_test_dir); - mkdir(temp2,S_IRWXU); -#else - snprintf(temp2,FN_REFLEN,"%s/var",mysql_test_dir); - mkdir(temp2); - snprintf(temp2,FN_REFLEN,"%s/var/log",mysql_test_dir); - mkdir(temp2); -#endif - /* args */ - init_args(&al); - add_arg(&al, "%s", mysqld_file); - add_arg(&al, "--no-defaults"); - add_arg(&al, "--log-bin=%s/var/log/master-bin",mysql_test_dir); - add_arg(&al, "--server-id=1"); - add_arg(&al, "--basedir=%s", base_dir); - add_arg(&al, "--port=%u", master_port); -#if !defined(__NETWARE__) && !defined(__WIN__) - add_arg(&al, "--socket=%s",master_socket); -#endif - add_arg(&al, "--local-infile"); - add_arg(&al, "--core"); - add_arg(&al, "--log-bin-trust-function-creators"); - add_arg(&al, "--datadir=%s", master_dir); -#ifndef __WIN__ - add_arg(&al, "--pid-file=%s", master_pid); -#endif - add_arg(&al, "--character-sets-dir=%s", char_dir); - add_arg(&al, "--tmpdir=%s", mysql_tmp_dir); - add_arg(&al, "--language=%s", lang_dir); - - add_arg(&al, "--rpl-recovery-rank=1"); - add_arg(&al, "--init-rpl-role=master"); - add_arg(&al, "--default-character-set=latin1"); -// add_arg(&al, "--innodb_data_file_path=ibdata1:50M"); -#ifdef DEBUG /* only for debug builds */ - add_arg(&al, "--debug"); -#endif - - if (use_openssl) - { - add_arg(&al, "--ssl-ca=%s", ca_cert); - add_arg(&al, "--ssl-cert=%s", server_cert); - add_arg(&al, "--ssl-key=%s", server_key); - } - - /* $MASTER_40_ARGS */ - add_arg(&al, "--rpl-recovery-rank=1"); - add_arg(&al, "--init-rpl-role=master"); - - /* $SMALL_SERVER */ - add_arg(&al, "-O"); - add_arg(&al, "key_buffer_size=1M"); - add_arg(&al, "-O"); - add_arg(&al, "sort_buffer=256K"); - add_arg(&al, "-O"); - add_arg(&al, "max_heap_table_size=1M"); - - /* $EXTRA_MASTER_OPT */ - if (master_opt[0] != 0) - { - char *p; - - p= (char *)str_tok(argument, master_opt, " \t"); - if (!strstr(master_opt, "timezone")) - { - while (p) - { - add_arg(&al, "%s", p); - p= (char *)str_tok(argument, NULL, " \t"); - } - } - } - - /* remove the pid file if it exists */ -#ifndef __WIN__ - remove(master_pid); -#endif - - /* spawn */ -#ifdef __WIN__ - if ((err= spawn(mysqld_file, &al, FALSE, NULL, - master_out, master_err, &master_pid)) == 0) -#else - if ((err= spawn(mysqld_file, &al, FALSE, NULL, - master_out, master_err, master_pid)) == 0) -#endif - { - sleep_until_file_exists(master_pid); - - if ((err= wait_for_server_start(bin_dir, mysqladmin_file, user, password, - master_port, mysql_tmp_dir)) == 0) - { - master_running= TRUE; - } - else - { - log_error("The master server went down early."); - } - } - else - { - log_error("Unable to start master server."); - } - - /* free_args */ - free_args(&al); -} - -/****************************************************************************** - - start_slave() - - Start the slave server. - -******************************************************************************/ - -void start_slave() -{ - arg_list_t al; - int err; - char slave_out[FN_REFLEN]; - char slave_err[FN_REFLEN]; - - /* skip? */ - if (skip_slave) return; - - /* remove stale binary logs */ - removef("%s/*-bin.*", slave_dir); - - /* remove stale binary logs */ - removef("%s/*.index", slave_dir); - - /* remove master.info file */ - removef("%s/master.info", slave_dir); - - /* remove relay files */ - removef("%s/var/log/*relay*", mysql_test_dir); - - /* remove relay-log.info file */ - removef("%s/relay-log.info", slave_dir); - - /* init script */ - if (slave_init_script[0] != 0) - { -#ifdef __NETWARE__ - /* TODO: use the scripts */ - if (strinstr(slave_init_script, "rpl000016-slave.sh") != 0) - { - /* create empty master.info file */ - snprintf(temp, FN_REFLEN, "%s/master.info", slave_dir); - close(open(temp, O_WRONLY | O_CREAT,S_IRWXU|S_IRWXG|S_IRWXO)); - } - else if (strinstr(slave_init_script, "rpl000017-slave.sh") != 0) - { - FILE *fp; - - /* create a master.info file */ - snprintf(temp, FN_REFLEN, "%s/master.info", slave_dir); - fp= fopen(temp, "wb+"); - - fputs("master-bin.000001\n", fp); - fputs("4\n", fp); - fputs("127.0.0.1\n", fp); - fputs("replicate\n", fp); - fputs("aaaaaaaaaaaaaaab\n", fp); - fputs("9306\n", fp); - fputs("1\n", fp); - fputs("0\n", fp); - - fclose(fp); - } - else if (strinstr(slave_init_script, "rpl_rotate_logs-slave.sh") != 0) - { - /* create empty master.info file */ - snprintf(temp, FN_REFLEN, "%s/master.info", slave_dir); - close(open(temp, O_WRONLY | O_CREAT,S_IRWXU|S_IRWXG|S_IRWXO)); - } -#elif !defined(__WIN__) - run_init_script(slave_init_script); -#endif - } - - /* redirection files */ - snprintf(slave_out, FN_REFLEN, "%s/var/run/slave%u.out", - mysql_test_dir, restarts); - snprintf(slave_err, FN_REFLEN, "%s/var/run/slave%u.err", - mysql_test_dir, restarts); - - /* args */ - init_args(&al); - add_arg(&al, "%s", mysqld_file); - add_arg(&al, "--no-defaults"); - add_arg(&al, "--log-bin=slave-bin"); - add_arg(&al, "--relay_log=slave-relay-bin"); - add_arg(&al, "--basedir=%s", base_dir); -#if !defined(__NETWARE__) && !defined(__WIN__) - add_arg(&al, "--socket=%s",slave_socket); -#endif - add_arg(&al, "--port=%u", slave_port); - add_arg(&al, "--datadir=%s", slave_dir); -#ifndef __WIN__ - add_arg(&al, "--pid-file=%s", slave_pid); -#endif - add_arg(&al, "--character-sets-dir=%s", char_dir); - add_arg(&al, "--core"); - add_arg(&al, "--tmpdir=%s", mysql_tmp_dir); - add_arg(&al, "--language=%s", lang_dir); - - add_arg(&al, "--exit-info=256"); - add_arg(&al, "--log-slave-updates"); - add_arg(&al, "--init-rpl-role=slave"); - add_arg(&al, "--skip-innodb"); - add_arg(&al, "--skip-slave-start"); - add_arg(&al, "--slave-load-tmpdir=../../var/tmp"); - - add_arg(&al, "--report-user=%s", user); - add_arg(&al, "--report-host=127.0.0.1"); - add_arg(&al, "--report-port=%u", slave_port); - - add_arg(&al, "--master-retry-count=10"); - add_arg(&al, "-O"); - add_arg(&al, "slave_net_timeout=10"); - add_arg(&al, "--log-slave-updates"); - add_arg(&al, "--log=%s/var/log/slave.log", mysql_test_dir); - add_arg(&al, "--default-character-set=latin1"); - add_arg(&al, "--skip-ndbcluster"); - -#ifdef DEBUG /* only for debug builds */ - add_arg(&al, "--debug"); -#endif - - if (use_openssl) - { - add_arg(&al, "--ssl-ca=%s", ca_cert); - add_arg(&al, "--ssl-cert=%s", server_cert); - add_arg(&al, "--ssl-key=%s", server_key); - } - - /* slave master info */ - if (slave_master_info[0] != 0) - { - char *p; - - p= (char *)str_tok(argument, slave_master_info, " \t"); - - while (p) - { - add_arg(&al, "%s", p); - p= (char *)str_tok(argument, NULL, " \t"); - } - } - else - { - add_arg(&al, "--master-user=%s", user); - add_arg(&al, "--master-password=%s", password); - add_arg(&al, "--master-host=127.0.0.1"); - add_arg(&al, "--master-port=%u", master_port); - add_arg(&al, "--master-connect-retry=1"); - add_arg(&al, "--server-id=2"); - add_arg(&al, "--rpl-recovery-rank=2"); - } - - /* small server */ - add_arg(&al, "-O"); - add_arg(&al, "key_buffer_size=1M"); - add_arg(&al, "-O"); - add_arg(&al, "sort_buffer=256K"); - add_arg(&al, "-O"); - add_arg(&al, "max_heap_table_size=1M"); - - - /* opt args */ - if (slave_opt[0] != 0) - { - char *p; - - p= (char *)str_tok(argument, slave_opt, " \t"); - - while (p) - { - add_arg(&al, "%s", p); - p= (char *)str_tok(argument, NULL, " \t"); - } - } - - /* remove the pid file if it exists */ -#ifndef __WIN__ - remove(slave_pid); -#endif - /* spawn */ -#ifdef __WIN__ - if ((err= spawn(mysqld_file, &al, FALSE, NULL, - slave_out, slave_err, &slave_pid)) == 0) -#else - if ((err= spawn(mysqld_file, &al, FALSE, NULL, - slave_out, slave_err, slave_pid)) == 0) -#endif - { - sleep_until_file_exists(slave_pid); - - if ((err= wait_for_server_start(bin_dir, mysqladmin_file, user, password, - slave_port, mysql_tmp_dir)) == 0) - { - slave_running= TRUE; - } - else - { - log_error("The slave server went down early."); - } - } - else - { - log_error("Unable to start slave server."); - } - - /* free args */ - free_args(&al); -} - -/****************************************************************************** - - mysql_start() - - Start the mysql servers. - -******************************************************************************/ - -void mysql_start() -{ - - - printf("loading master...\r"); - start_master(); - - printf("loading slave...\r"); - start_slave(); - - /* activate the test screen */ -#ifdef __NETWARE__ - ActivateScreen(getscreenhandle()); -#endif -} - -/****************************************************************************** - - stop_slave() - - Stop the slave server. - -******************************************************************************/ - -void stop_slave() -{ - int err; - - /* running? */ - if (!slave_running) return; - - /* stop */ - if ((err= stop_server(bin_dir, mysqladmin_file, user, password, - slave_port, slave_pid, mysql_tmp_dir)) == 0) - { - slave_running= FALSE; - } - else - { - log_error("Unable to stop slave server."); - } -} - -/****************************************************************************** - - stop_master() - - Stop the master server. - -******************************************************************************/ - -void stop_master() -{ - int err; - - /* running? */ - if (!master_running) return; - - if ((err= stop_server(bin_dir, mysqladmin_file, user, password, - master_port, master_pid, mysql_tmp_dir)) == 0) - { - master_running= FALSE; - } - else - { - log_error("Unable to stop master server."); - } -} - -/****************************************************************************** - - mysql_stop() - - Stop the mysql servers. - -******************************************************************************/ - -void mysql_stop() -{ - - stop_master(); - - stop_slave(); - - /* activate the test screen */ -#ifdef __NETWARE__ - ActivateScreen(getscreenhandle()); -#endif -} - -/****************************************************************************** - - mysql_restart() - - Restart the mysql servers. - -******************************************************************************/ - -void mysql_restart() -{ -/* log_info("Restarting the MySQL server(s): %u", ++restarts); */ - - mysql_stop(); - - mlog(DASH); - sleep(1); - - mysql_start(); -} - -/****************************************************************************** - - read_option() - - Read the option file. - -******************************************************************************/ - -int read_option(char *opt_file, char *opt) -{ - int fd, err; - char *p; - char buf[FN_REFLEN]; - - /* copy current option */ - strncpy(buf, opt, FN_REFLEN); - - /* open options file */ - fd= open(opt_file, O_RDONLY); - err= read(fd, opt, FN_REFLEN); - close(fd); - - if (err > 0) - { - /* terminate string */ - if ((p= strchr(opt, '\n')) != NULL) - { - *p= 0; - - /* check for a '\r' */ - if ((p= strchr(opt, '\r')) != NULL) - { - *p= 0; - } - } - else - { - opt[err]= 0; - } - - /* check for $MYSQL_TEST_DIR */ - if ((p= strstr(opt, "$MYSQL_TEST_DIR")) != NULL) - { - char temp[FN_REFLEN]; - - *p= 0; - - strcpy(temp, p + strlen("$MYSQL_TEST_DIR")); - strcat(opt, mysql_test_dir); - strcat(opt, temp); - } - /* Check for double backslash and replace it with single bakslash */ - if ((p= strstr(opt, "\\\\")) != NULL) - { - /* bmove is guranteed to work byte by byte */ - bmove(p, p+1, strlen(p)+1); - } - } - else - { - /* clear option */ - *opt= 0; - } - - /* compare current option with previous */ - return strcmp(opt, buf); -} - -/****************************************************************************** - - run_test() - - Run the given test case. - -******************************************************************************/ - -void run_test(char *test) -{ - char temp[FN_REFLEN]; - const char *rstr; - int skip= FALSE, ignore=FALSE; - int restart= FALSE; - int flag= FALSE; - struct stat info; - - /* skip tests in the skip list */ - snprintf(temp, FN_REFLEN, " %s ", test); - skip= (strinstr(skip_test, temp) != 0); - if (skip == FALSE) - ignore= (strinstr(ignore_test, temp) != 0); - - snprintf(master_init_script, FN_REFLEN, "%s/%s-master.sh", test_dir, test); - snprintf(slave_init_script, FN_REFLEN, "%s/%s-slave.sh", test_dir, test); -#ifdef __WIN__ - if (! stat(master_init_script, &info)) - skip= TRUE; - if (!stat(slave_init_script, &info)) - skip= TRUE; -#endif - if (ignore) - { - /* show test */ - mlog("%-46s ", test); - - /* ignore */ - rstr= TEST_IGNORE; - ++total_ignore; - } - else if (!skip) /* skip test? */ - { - char test_file[FN_REFLEN]; - char master_opt_file[FN_REFLEN]; - char slave_opt_file[FN_REFLEN]; - char slave_master_info_file[FN_REFLEN]; - char result_file[FN_REFLEN]; - char reject_file[FN_REFLEN]; - char out_file[FN_REFLEN]; - char err_file[FN_REFLEN]; - int err; - arg_list_t al; - /* skip slave? */ - flag= skip_slave; - skip_slave= (strncmp(test, "rpl", 3) != 0); - if (flag != skip_slave) restart= TRUE; - - /* create files */ - snprintf(master_opt_file, FN_REFLEN, "%s/%s-master.opt", test_dir, test); - snprintf(slave_opt_file, FN_REFLEN, "%s/%s-slave.opt", test_dir, test); - snprintf(slave_master_info_file, FN_REFLEN, "%s/%s.slave-mi", - test_dir, test); - snprintf(reject_file, FN_REFLEN, "%s/%s%s", - result_dir, test, REJECT_SUFFIX); - snprintf(out_file, FN_REFLEN, "%s/%s%s", result_dir, test, OUT_SUFFIX); - snprintf(err_file, FN_REFLEN, "%s/%s%s", result_dir, test, ERR_SUFFIX); - - /* netware specific files */ - snprintf(test_file, FN_REFLEN, "%s/%s%s", test_dir, test, NW_TEST_SUFFIX); - if (stat(test_file, &info)) - { - snprintf(test_file, FN_REFLEN, "%s/%s%s", test_dir, test, TEST_SUFFIX); - if (access(test_file,0)) - { - printf("Invalid test name %s, %s file not found\n",test,test_file); - return; - } - } - - snprintf(result_file, FN_REFLEN, "%s/%s%s", - result_dir, test, NW_RESULT_SUFFIX); - if (stat(result_file, &info)) - { - snprintf(result_file, FN_REFLEN, "%s/%s%s", - result_dir, test, RESULT_SUFFIX); - } - - /* init scripts */ - if (stat(master_init_script, &info)) - master_init_script[0]= 0; - else - restart= TRUE; - - if (stat(slave_init_script, &info)) - slave_init_script[0]= 0; - else - restart= TRUE; - - /* read options */ - if (read_option(master_opt_file, master_opt)) restart= TRUE; - if (read_option(slave_opt_file, slave_opt)) restart= TRUE; - if (read_option(slave_master_info_file, slave_master_info)) restart= TRUE; - - /* cleanup previous run */ - remove(reject_file); - remove(out_file); - remove(err_file); - - /* start or restart? */ - if (!master_running) mysql_start(); - else if (restart) mysql_restart(); - - /* show test */ - mlog("%-46s ", test); - - /* args */ - init_args(&al); - add_arg(&al, "%s", mysqltest_file); - add_arg(&al, "--no-defaults"); - add_arg(&al, "--port=%u", master_port); -#if !defined(__NETWARE__) && !defined(__WIN__) - add_arg(&al, "--socket=%s", master_socket); - add_arg(&al, "--tmpdir=%s", mysql_tmp_dir); -#endif - add_arg(&al, "--database=%s", db); - add_arg(&al, "--user=%s", user); - add_arg(&al, "--password=%s", password); - add_arg(&al, "--silent"); - add_arg(&al, "--basedir=%s/", mysql_test_dir); - add_arg(&al, "--host=127.0.0.1"); - add_arg(&al, "--skip-safemalloc"); - add_arg(&al, "-v"); - add_arg(&al, "-R"); - add_arg(&al, "%s", result_file); - - - if (use_openssl) - { - add_arg(&al, "--ssl-ca=%s", ca_cert); - add_arg(&al, "--ssl-cert=%s", client_cert); - add_arg(&al, "--ssl-key=%s", client_key); - } - - /* spawn */ - err= spawn(mysqltest_file, &al, TRUE, test_file, out_file, err_file, NULL); - /* free args */ - free_args(&al); - - remove_empty_file(out_file); - remove_empty_file(err_file); - - if (err == 0) - { - /* pass */ - rstr= TEST_PASS; - ++total_pass; - - /* increment total */ - ++total_test; - } - else if (err == 2) - { - /* skip */ - rstr= TEST_SKIP; - ++total_skip; - } - else if (err == 1) - { - /* fail */ - rstr= TEST_FAIL; - ++total_fail; - - /* increment total */ - ++total_test; - } - else - { - rstr= TEST_BAD; - } - } - else /* early skips */ - { - /* show test */ - mlog("%-46s ", test); - - /* skip */ - rstr= TEST_SKIP; - ++total_skip; - } - - /* result */ - mlog("%-14s\n", rstr); -} - -/****************************************************************************** - - vlog() - - Log the message. - -******************************************************************************/ - -void vlog(const char *format, va_list ap) -{ - vfprintf(stdout, format, ap); - fflush(stdout); - - if (log_fd) - { - vfprintf(log_fd, format, ap); - fflush(log_fd); - } -} - -/****************************************************************************** - - log() - - Log the message. - -******************************************************************************/ - -void mlog(const char *format, ...) -{ - va_list ap; - - va_start(ap, format); - - vlog(format, ap); - - va_end(ap); -} - -/****************************************************************************** - - log_info() - - Log the given information. - -******************************************************************************/ - -void log_info(const char *format, ...) -{ - va_list ap; - - va_start(ap, format); - - mlog("-- INFO : "); - vlog(format, ap); - mlog("\n"); - - va_end(ap); -} - -/****************************************************************************** - - log_error() - - Log the given error. - -******************************************************************************/ - -void log_error(const char *format, ...) -{ - va_list ap; - - va_start(ap, format); - - mlog("-- ERROR: "); - vlog(format, ap); - mlog("\n"); - - va_end(ap); -} - -/****************************************************************************** - - log_errno() - - Log the given error and errno. - -******************************************************************************/ - -void log_errno(const char *format, ...) -{ - va_list ap; - - va_start(ap, format); - - mlog("-- ERROR: (%003u) ", errno); - vlog(format, ap); - mlog("\n"); - - va_end(ap); -} - -/****************************************************************************** - - die() - - Exit the application. - -******************************************************************************/ - -void die(const char *msg) -{ - log_error(msg); -#ifdef __NETWARE__ - pressanykey(); -#endif - exit(-1); -} - -/****************************************************************************** - - setup() - - Setup the mysql test enviornment. - -******************************************************************************/ - -void setup(char *file __attribute__((unused))) -{ - char temp[FN_REFLEN]; -#if defined(__WIN__) || defined(__NETWARE__) - char file_path[FN_REFLEN*2]; -#endif - char *p; - int position; - - /* set the timezone for the timestamp test */ -#ifdef __WIN__ - _putenv( "TZ=GMT-3" ); -#else - putenv((char *)"TZ=GMT-3"); -#endif - /* find base dir */ -#ifdef __NETWARE__ - strcpy(temp, strlwr(file)); - while ((p= strchr(temp, '\\')) != NULL) *p= '/'; -#else - getcwd(temp, FN_REFLEN); - position= strlen(temp); - temp[position]= '/'; - temp[position+1]= 0; -#ifdef __WIN__ - while ((p= strchr(temp, '\\')) != NULL) *p= '/'; -#endif -#endif - - if ((position= strinstr(temp, "/mysql-test/")) != 0) - { - p= temp + position - 1; - *p= 0; - strcpy(base_dir, temp); - } - - log_info("Currect directory: %s",base_dir); - -#ifdef __NETWARE__ - /* setup paths */ - snprintf(bin_dir, FN_REFLEN, "%s/bin", base_dir); - snprintf(mysql_test_dir, FN_REFLEN, "%s/mysql-test", base_dir); - snprintf(test_dir, FN_REFLEN, "%s/t", mysql_test_dir); - snprintf(mysql_tmp_dir, FN_REFLEN, "%s/var/tmp", mysql_test_dir); - snprintf(result_dir, FN_REFLEN, "%s/r", mysql_test_dir); - snprintf(master_dir, FN_REFLEN, "%s/var/master-data", mysql_test_dir); - snprintf(slave_dir, FN_REFLEN, "%s/var/slave-data", mysql_test_dir); - snprintf(lang_dir, FN_REFLEN, "%s/share/english", base_dir); - snprintf(char_dir, FN_REFLEN, "%s/share/charsets", base_dir); - -#ifdef HAVE_OPENSSL - use_openssl= TRUE; -#endif /* HAVE_OPENSSL */ - - /* OpenSSL paths */ - snprintf(ca_cert, FN_REFLEN, "%s/std_data/cacert.pem", mysql_test_dir); - snprintf(server_cert, FN_REFLEN, "%s/std_data/server-cert.pem", mysql_test_dir); - snprintf(server_key, FN_REFLEN, "%s/std_data/server-key.pem", mysql_test_dir); - snprintf(client_cert, FN_REFLEN, "%s/std_data/client-cert.pem", mysql_test_dir); - snprintf(client_key, FN_REFLEN, "%s/std_data/client-key.pem", mysql_test_dir); - - /* setup files */ - snprintf(mysqld_file, FN_REFLEN, "%s/mysqld", bin_dir); - snprintf(mysqltest_file, FN_REFLEN, "%s/mysqltest", bin_dir); - snprintf(mysqladmin_file, FN_REFLEN, "%s/mysqladmin", bin_dir); - snprintf(master_pid, FN_REFLEN, "%s/var/run/master.pid", mysql_test_dir); - snprintf(slave_pid, FN_REFLEN, "%s/var/run/slave.pid", mysql_test_dir); -#elif __WIN__ - /* setup paths */ -#ifdef _DEBUG - snprintf(bin_dir, FN_REFLEN, "%s/client_debug", base_dir); -#else - snprintf(bin_dir, FN_REFLEN, "%s/client_release", base_dir); -#endif - snprintf(mysql_test_dir, FN_REFLEN, "%s/mysql-test", base_dir); - snprintf(test_dir, FN_REFLEN, "%s/t", mysql_test_dir); - snprintf(mysql_tmp_dir, FN_REFLEN, "%s/var/tmp", mysql_test_dir); - snprintf(result_dir, FN_REFLEN, "%s/r", mysql_test_dir); - snprintf(master_dir, FN_REFLEN, "%s/var/master-data", mysql_test_dir); - snprintf(slave_dir, FN_REFLEN, "%s/var/slave-data", mysql_test_dir); - snprintf(lang_dir, FN_REFLEN, "%s/share/english", base_dir); - snprintf(char_dir, FN_REFLEN, "%s/share/charsets", base_dir); - -#ifdef HAVE_OPENSSL - use_openssl= TRUE; -#endif /* HAVE_OPENSSL */ - - /* OpenSSL paths */ - snprintf(ca_cert, FN_REFLEN, "%s/std_data/cacert.pem", mysql_test_dir); - snprintf(server_cert, FN_REFLEN, "%s/std_data/server-cert.pem", mysql_test_dir); - snprintf(server_key, FN_REFLEN, "%s/std_data/server-key.pem", mysql_test_dir); - snprintf(client_cert, FN_REFLEN, "%s/std_data/client-cert.pem", mysql_test_dir); - snprintf(client_key, FN_REFLEN, "%s/std_data/client-key.pem", mysql_test_dir); - - /* setup files */ -#ifdef _DEBUG - snprintf(mysqld_file, FN_REFLEN, "%s/mysqld-debug.exe", bin_dir); -#else - snprintf(mysqld_file, FN_REFLEN, "%s/mysqld.exe", bin_dir); -#endif - snprintf(mysqltest_file, FN_REFLEN, "%s/mysqltest.exe", bin_dir); - snprintf(mysqladmin_file, FN_REFLEN, "%s/mysqladmin.exe", bin_dir); -#else - /* setup paths */ - snprintf(bin_dir, FN_REFLEN, "%s/client", base_dir); - snprintf(mysql_test_dir, FN_REFLEN, "%s/mysql-test", base_dir); - snprintf(test_dir, FN_REFLEN, "%s/t", mysql_test_dir); - snprintf(mysql_tmp_dir, FN_REFLEN, "%s/var/tmp", mysql_test_dir); - snprintf(result_dir, FN_REFLEN, "%s/r", mysql_test_dir); - snprintf(master_dir, FN_REFLEN, "%s/var/master-data", mysql_test_dir); - snprintf(slave_dir, FN_REFLEN, "%s/var/slave-data", mysql_test_dir); - snprintf(slave1_dir, FN_REFLEN, "%s/var/slave1-data", mysql_test_dir); - snprintf(slave2_dir, FN_REFLEN, "%s/var/slave2-data", mysql_test_dir); - snprintf(lang_dir, FN_REFLEN, "%s/sql/share/english", base_dir); - snprintf(char_dir, FN_REFLEN, "%s/sql/share/charsets", base_dir); - -#ifdef HAVE_OPENSSL - use_openssl= TRUE; -#endif /* HAVE_OPENSSL */ - - /* OpenSSL paths */ - snprintf(ca_cert, FN_REFLEN, "%s/std_data/cacert.pem", mysql_test_dir); - snprintf(server_cert, FN_REFLEN, "%s/std_data/server-cert.pem", mysql_test_dir); - snprintf(server_key, FN_REFLEN, "%s/std_data/server-key.pem", mysql_test_dir); - snprintf(client_cert, FN_REFLEN, "%s/std_data/client-cert.pem", mysql_test_dir); - snprintf(client_key, FN_REFLEN, "%s/std_data/client-key.pem", mysql_test_dir); - - /* setup files */ - snprintf(mysqld_file, FN_REFLEN, "%s/sql/mysqld", base_dir); - snprintf(mysqltest_file, FN_REFLEN, "%s/mysqltest", bin_dir); - snprintf(mysqladmin_file, FN_REFLEN, "%s/mysqladmin", bin_dir); - snprintf(master_pid, FN_REFLEN, "%s/var/run/master.pid", mysql_test_dir); - snprintf(slave_pid, FN_REFLEN, "%s/var/run/slave.pid", mysql_test_dir); - - snprintf(master_socket,FN_REFLEN, "%s/var/tmp/master.sock", mysql_test_dir); - snprintf(slave_socket,FN_REFLEN, "%s/var/tmp/slave.sock", mysql_test_dir); - -#endif - /* create log file */ - snprintf(temp, FN_REFLEN, "%s/mysql-test-run.log", mysql_test_dir); - if ((log_fd= fopen(temp, "w+")) == NULL) - { - log_errno("Unable to create log file."); - } - - /* prepare skip test list */ - while ((p= strchr(skip_test, ',')) != NULL) *p= ' '; - strcpy(temp, strlwr(skip_test)); - snprintf(skip_test, FN_REFLEN, " %s ", temp); - - /* environment */ -#ifdef __NETWARE__ - setenv("MYSQL_TEST_DIR", mysql_test_dir, 1); - snprintf(file_path, FN_REFLEN*2, - "%s/client/mysqldump --no-defaults -u root --port=%u", - bin_dir, master_port); - setenv("MYSQL_DUMP", file_path, 1); - snprintf(file_path, FN_REFLEN*2, - "%s/client/mysqlbinlog --no-defaults --local-load=%s", - bin_dir, mysql_tmp_dir); - setenv("MYSQL_BINLOG", file_path, 1); -#elif __WIN__ - snprintf(file_path,FN_REFLEN,"MYSQL_TEST_DIR=%s",mysql_test_dir); - _putenv(file_path); - snprintf(file_path, FN_REFLEN*2, - "MYSQL_DUMP=%s/mysqldump.exe --no-defaults -uroot --port=%u", - bin_dir, master_port); - _putenv(file_path); - snprintf(file_path, FN_REFLEN*2, - "MYSQL_BINLOG=%s/mysqlbinlog.exe --no-defaults --local-load=%s", - bin_dir, mysql_tmp_dir); - _putenv(file_path); - - snprintf(file_path, FN_REFLEN*2, - "TESTS_BINDIR=%s/tests", base_dir); - _putenv(file_path); - - snprintf(file_path, FN_REFLEN*2, - "CHARSETSDIR=%s/sql/share/charsets", base_dir); - _putenv(file_path); - - snprintf(file_path, FN_REFLEN*2, - "MYSQL=%s/mysql --port=%u ", - bin_dir, master_port); - _putenv(file_path); - - snprintf(file_path, FN_REFLEN*2, - "MYSQL_FIX_SYSTEM_TABLES=%s/scripts/mysql_fix_privilege_tables --no-defaults " - "--host=localhost --port=%u " - "--basedir=%s --bindir=%s --verbose", - base_dir,master_port, base_dir, bin_dir); - _putenv(file_path); - - snprintf(file_path, FN_REFLEN*2, - "NDB_TOOLS_DIR=%s/ndb/tools", base_dir); - _putenv(file_path); - - snprintf(file_path, FN_REFLEN*2, - "CLIENT_BINDIR=%s", bin_dir); - _putenv(file_path); - - snprintf(file_path, FN_REFLEN*2, - "MYSQL_CLIENT_TEST=%s/tests/mysql_client_test --no-defaults --testcase " - "--user=root --port=%u --silent", - base_dir, master_port); - _putenv(file_path); - -#else - { - static char env_MYSQL_TEST_DIR[FN_REFLEN*2]; - static char env_MYSQL_DUMP[FN_REFLEN*2]; - static char env_MYSQL_BINLOG[FN_REFLEN*2]; - static char env_MASTER_MYSOCK[FN_REFLEN*2]; - static char env_TESTS_BINDIR[FN_REFLEN*2]; - static char env_CHARSETSDIR[FN_REFLEN*2]; - static char env_MYSQL[FN_REFLEN*2]; - static char env_MYSQL_FIX_SYSTEM_TABLES[FN_REFLEN*2]; - static char env_CLIENT_BINDIR[FN_REFLEN*2]; - static char env_MYSQL_CLIENT_TEST[FN_REFLEN*2]; - static char env_NDB_TOOLS_DIR[FN_REFLEN*2]; - static char env_NDB_MGM[FN_REFLEN*2]; - static char env_NDB_BACKUP_DIR[FN_REFLEN*2]; - static char env_NDB_TOOLS_OUTPUT[FN_REFLEN*2]; - - snprintf(env_MYSQL_TEST_DIR,FN_REFLEN*2, - "MYSQL_TEST_DIR=%s",mysql_test_dir); - putenv(env_MYSQL_TEST_DIR); - - snprintf(env_MYSQL_DUMP, FN_REFLEN*2,"MYSQL_DUMP=%s/mysqldump --no-defaults " - "-uroot --port=%u --socket=%s ", - bin_dir, master_port, master_socket); - putenv(env_MYSQL_DUMP); - - snprintf(env_MYSQL_BINLOG, FN_REFLEN*2, - "MYSQL_BINLOG=%s/mysqlbinlog --no-defaults --local-load=%s -uroot ", - bin_dir, mysql_tmp_dir); - putenv(env_MYSQL_BINLOG); - - snprintf(env_MASTER_MYSOCK, FN_REFLEN*2, - "MASTER_MYSOCK=%s", master_socket); - putenv(env_MASTER_MYSOCK); - - snprintf(env_TESTS_BINDIR, FN_REFLEN*2, - "TESTS_BINDIR=%s/tests", base_dir); - putenv(env_TESTS_BINDIR); - - snprintf(env_CHARSETSDIR, FN_REFLEN*2, - "CHARSETSDIR=%s/sql/share/charsets", base_dir); - putenv(env_CHARSETSDIR); - - snprintf(env_MYSQL, FN_REFLEN*2, - "MYSQL=%s/mysql --port=%u --socket=%s -uroot ", - bin_dir, master_port, master_socket); - putenv(env_MYSQL); - - snprintf(env_MYSQL_FIX_SYSTEM_TABLES, FN_REFLEN*2, - "MYSQL_FIX_SYSTEM_TABLES=%s/scripts/mysql_fix_privilege_tables --no-defaults " - "--host=localhost --port=%u --socket=%s " - "--basedir=%s --bindir=%s --verbose -uroot ", - base_dir,master_port, master_socket, base_dir, bin_dir); - putenv(env_MYSQL_FIX_SYSTEM_TABLES); - - - snprintf(env_CLIENT_BINDIR, FN_REFLEN*2, - "CLIENT_BINDIR=%s", bin_dir); - putenv(env_CLIENT_BINDIR); - - snprintf(env_MYSQL_CLIENT_TEST, FN_REFLEN*2, - "MYSQL_CLIENT_TEST=%s/tests/mysql_client_test --no-defaults --testcase " - "--user=root --socket=%s --port=%u --silent", - base_dir, master_socket, master_port); - putenv(env_MYSQL_CLIENT_TEST); - - // NDB - - snprintf(env_NDB_TOOLS_DIR, FN_REFLEN*2, - "NDB_TOOLS_DIR=%s/ndb/tools", base_dir); - putenv(env_NDB_TOOLS_DIR); - - snprintf(env_NDB_MGM, FN_REFLEN*2, - "NDB_MGM=%s/ndb/src/mgmclient/ndb_mgm", base_dir); - putenv(env_NDB_MGM); - - //NDBCLUSTER_PORT=9350 - snprintf(env_NDB_BACKUP_DIR, FN_REFLEN*2, - "NDB_BACKUP_DIR=%s/var/ndbcluster-%i", mysql_test_dir, 9350); - putenv(env_NDB_BACKUP_DIR); - - snprintf(env_NDB_TOOLS_OUTPUT, FN_REFLEN*2, - "NDB_TOOLS_OUTPUT=%s/var/log/ndb_tools.log", mysql_test_dir); - putenv(env_NDB_TOOLS_OUTPUT); - - putenv((char *)"NDB_STATUS_OK=1"); - -// NDB_MGM="$BASEDIR/ndb/src/mgmclient/ndb_mgm" -// NDB_BACKUP_DIR=$MYSQL_TEST_DIR/var/ndbcluster-$NDBCLUSTER_PORT -// NDB_TOOLS_OUTPUT=$MYSQL_TEST_DIR/var/log/ndb_tools.log - } - -#endif - -#ifndef __WIN__ - putenv((char *)"MASTER_MYPORT=9306"); - putenv((char *)"SLAVE_MYPORT=9307"); - putenv((char *)"MYSQL_TCP_PORT=3306"); - -#else - _putenv("MASTER_MYPORT=9306"); - _putenv("SLAVE_MYPORT=9307"); - _putenv("MYSQL_TCP_PORT=3306"); -#endif - -} - -/* - Compare names of testes for right order -*/ -int compare( const void *arg1, const void *arg2 ) -{ - return sting_compare_func( * ( char** ) arg1, * ( char** ) arg2 ); -} - - - -/****************************************************************************** - - main() - -******************************************************************************/ - -int main(int argc, char **argv) -{ - int is_ignore_list= 0; - char **names= 0; - char **testes= 0; - int name_index; - int index; - char var_dir[FN_REFLEN]; - /* setup */ - setup(argv[0]); - - /* delete all file in var */ - snprintf(var_dir,FN_REFLEN,"%s/var",mysql_test_dir); - del_tree(var_dir); - - /* - The --ignore option is comma saperated list of test cases to skip and - should be very first command line option to the test suite. - - The usage is now: - mysql_test_run --ignore=test1,test2 test3 test4 - where test1 and test2 are test cases to ignore - and test3 and test4 are test cases to run. - */ - if (argc >= 2 && !strnicmp(argv[1], "--ignore=", sizeof("--ignore=")-1)) - { - char *temp, *token; - temp= strdup(strchr(argv[1],'=') + 1); - for (token=str_tok(argument, temp, ","); token != NULL; - token=str_tok(argument, NULL, ",")) - { - if (strlen(ignore_test) + strlen(token) + 2 <= FN_REFLEN-1) - sprintf(ignore_test+strlen(ignore_test), " %s ", token); - else - { - free(temp); - die("ignore list too long."); - } - } - free(temp); - is_ignore_list= 1; - } - /* header */ -#ifndef __WIN__ - mlog("MySQL Server %s, for %s (%s)\n\n", VERSION, SYSTEM_TYPE, MACHINE_TYPE); -#else - mlog("MySQL Server ---, for %s (%s)\n\n", SYSTEM_TYPE, MACHINE_TYPE); -#endif - - mlog("Initializing Tests...\n"); - - /* install test databases */ - mysql_install_db(); - - mlog("Starting Tests...\n"); - - mlog("\n"); - mlog(HEADER); - mlog(DASH); - - if ( argc > 1 + is_ignore_list ) - { - int i; - - /* single test */ - single_test= TRUE; - - for (i= 1 + is_ignore_list; i < argc; i++) - { - /* run given test */ - run_test(argv[i]); - } - } - else - { - /* run all tests */ - testes= malloc(MAX_COUNT_TESTES*sizeof(void*)); - if (!testes) - die("can not allcate memory for sorting"); - names= testes; - name_index= 0; -#ifndef __WIN__ - struct dirent *entry; - DIR *parent; - char test[FN_LEN]; - int position; - - /* FIXME are we sure the list is sorted if using readdir()? */ - if ((parent= opendir(test_dir)) == NULL) /* Not thread safe */ - die("Unable to open tests directory."); - else - { - while ((entry= readdir(parent)) != NULL) /* Not thread safe */ - { - strcpy(test, strlwr(entry->d_name)); - /* find the test suffix */ - if ((position= strinstr(test, TEST_SUFFIX)) != 0) - { - if (name_index < MAX_COUNT_TESTES) - { - /* null terminate at the suffix */ - *(test + position - 1)= '\0'; - /* insert test */ - *names= malloc(FN_REFLEN); - strcpy(*names,test); - names++; - name_index++; - } - else - die("can not sort files, array is overloaded"); - } - } - closedir(parent); - } -#else - { - struct _finddata_t dir; - int* handle; - char test[FN_LEN]; - char mask[FN_REFLEN]; - int position; - - /* single test */ - single_test= FALSE; - - snprintf(mask,FN_REFLEN,"%s/*.test",test_dir); - - if ((handle=_findfirst(mask,&dir)) == -1L) - { - die("Unable to open tests directory."); - } - - - do - { - if (!(dir.attrib & _A_SUBDIR)) - { - strcpy(test, strlwr(dir.name)); - - /* find the test suffix */ - if ((position= strinstr(test, TEST_SUFFIX)) != 0) - { - if (name_index < MAX_COUNT_TESTES) - { - /* null terminate at the suffix */ - *(test + position - 1)= '\0'; - /* insert test */ - *names= malloc(FN_REFLEN); - strcpy(*names,test); - names++; - name_index++; - } - else - die("can not sort files, array is overloaded"); - } - } - }while (_findnext(handle,&dir) == 0); - - _findclose(handle); - } -#endif - qsort( (void *)testes, name_index, sizeof( char * ), compare ); - - for (index= 0; index < name_index; index++) - { - run_test(testes[index]); - free(testes[index]); - } - - free(testes); - } - - /* stop server */ - mysql_stop(); - - mlog(DASH); - mlog("\n"); - - mlog("Ending Tests...\n"); - - /* report stats */ - report_stats(); - - /* close log */ - if (log_fd) fclose(log_fd); - - /* keep results up */ -#ifdef __NETWARE__ - pressanykey(); -#endif - return 0; -} - - -/* - Synopsis: - This function breaks the string into a sequence of tokens. The difference - between this function and strtok is that it respects the quoted string i.e. - it skips any delimiter character within the quoted part of the string. - It return tokens by eliminating quote character. It modifies the input string - passed. It will work with whitespace delimeter but may not work properly with - other delimeter. If the delimeter will contain any quote character, then - function will not tokenize and will return null string. - e.g. if input string is - --init-slave="set global max_connections=500" --skip-external-locking - then the output will two string i.e. - --init-slave=set global max_connections=500 - --skip-external-locking - -Arguments: - string: input string - delim: set of delimiter character -Output: - return the null terminated token of NULL. -*/ -char *str_tok(char* dest, char *string, const char *delim) -{ - char *token; - char *ptr_end_token= NULL; - char *ptr_quote= NULL; - char *ptr_token= NULL; - int count_quotes= 0; - - *dest = '\0'; - if (strchr(delim,'\'') || strchr(delim,'\"')) - return NULL; - - token= (char*)strtok(string, delim); - if (token) - { - /* double quote is found */ - if (strchr(token,'\"')) - { - do - { - if (count_quotes & 1) - { - if (*dest == '\0') - sprintf(dest,"%s", ptr_token); - else - sprintf(dest,"%s %s", dest, ptr_token); - ptr_token= (char*)strtok(NULL, delim); - if (!ptr_token) - break; - } - else - { - ptr_token= token; - } - if (ptr_quote = strchr(ptr_token,'\"')) - { - ptr_end_token= ptr_token + strlen(ptr_token); - do - { -#ifndef __WIN__ - bmove(ptr_quote, ptr_quote+1, ptr_end_token - ptr_quote); -#endif - count_quotes++; - } while (ptr_quote != NULL && (ptr_quote = strchr(ptr_quote+1,'\"'))); - } - /* there are unpair quotes we have to search next quote*/ - } while (count_quotes & 1); - if (ptr_token != NULL) - { - if (*dest == '\0') - sprintf(dest,"%s", ptr_token); - else - sprintf(dest,"%s %s",dest,ptr_token); - } - } - else - { - sprintf(dest,"%s",token); - } - } - return token ? dest : NULL; -} - -#ifndef __WIN__ -/* - Synopsis: - This function run scripts files on Linux and Netware - -Arguments: - script_name: name of script file - -Output: - nothing -*/ - -void run_init_script(const char *script_name) -{ - arg_list_t al; - int err; - - /* args */ - init_args(&al); - add_arg(&al, sh_file); - add_arg(&al, script_name); - - /* spawn */ - if ((err= spawn(sh_file, &al, TRUE, NULL, NULL, NULL, NULL)) != 0) - { - die("Unable to run script."); - } - - /* free args */ - free_args(&al); -} -#endif diff --git a/SSL/cacert.pem b/mysql-test/std_data/cacert.pem similarity index 100% rename from SSL/cacert.pem rename to mysql-test/std_data/cacert.pem diff --git a/SSL/client-cert.pem b/mysql-test/std_data/client-cert.pem similarity index 100% rename from SSL/client-cert.pem rename to mysql-test/std_data/client-cert.pem diff --git a/SSL/client-key.pem b/mysql-test/std_data/client-key.pem similarity index 100% rename from SSL/client-key.pem rename to mysql-test/std_data/client-key.pem diff --git a/SSL/server-cert.pem b/mysql-test/std_data/server-cert.pem similarity index 100% rename from SSL/server-cert.pem rename to mysql-test/std_data/server-cert.pem diff --git a/SSL/server-key.pem b/mysql-test/std_data/server-key.pem similarity index 100% rename from SSL/server-key.pem rename to mysql-test/std_data/server-key.pem diff --git a/scripts/make_binary_distribution.sh b/scripts/make_binary_distribution.sh index c4a5345445d..4bba4c2420e 100644 --- a/scripts/make_binary_distribution.sh +++ b/scripts/make_binary_distribution.sh @@ -154,14 +154,11 @@ if [ $BASE_SYSTEM = "netware" ] ; then # For all other platforms: else BIN_FILES="$BIN_FILES \ - client/mysqltestmanagerc \ - client/mysqltestmanager-pwgen tools/mysqltestmanager \ client/.libs/mysql client/.libs/mysqlshow client/.libs/mysqladmin \ client/.libs/mysqlslap \ client/.libs/mysqldump client/.libs/mysqlimport \ client/.libs/mysqltest client/.libs/mysqlcheck \ - client/.libs/mysqlbinlog client/.libs/mysqltestmanagerc \ - client/.libs/mysqltestmanager-pwgen tools/.libs/mysqltestmanager \ + client/.libs/mysqlbinlog \ tests/.libs/mysql_client_test \ libmysqld/examples/.libs/mysql_client_test_embedded \ libmysqld/examples/.libs/mysqltest_embedded \ diff --git a/support-files/mysql.spec.sh b/support-files/mysql.spec.sh index 3e765affa4b..2f7431f854b 100644 --- a/support-files/mysql.spec.sh +++ b/support-files/mysql.spec.sh @@ -699,9 +699,6 @@ fi %attr(-, root, root) %{_datadir}/sql-bench %attr(-, root, root) %{_datadir}/mysql-test %attr(755, root, root) %{_bindir}/mysql_client_test -%attr(755, root, root) %{_bindir}/mysqltestmanager -%attr(755, root, root) %{_bindir}/mysqltestmanager-pwgen -%attr(755, root, root) %{_bindir}/mysqltestmanagerc %files embedded %defattr(-, root, root, 0755) @@ -711,6 +708,11 @@ fi # itself - note that they must be ordered by date (important when # merging BK trees) %changelog + +* Sat Apr 11 2006 Jim Winstead + +- Remove old mysqltestmanager and related programs + * Sat Apr 01 2006 Kent Boortz - Set $LDFLAGS from $MYSQL_BUILD_LDFLAGS diff --git a/tools/Makefile.am b/tools/Makefile.am deleted file mode 100644 index 0f726bd5fc3..00000000000 --- a/tools/Makefile.am +++ /dev/null @@ -1,34 +0,0 @@ -# Copyright (C) 2004 MySQL AB -# -# This program is free software; you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation; either version 2 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program; if not, write to the Free Software -# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA -# Process this file with automake to create Makefile.in - -if HAVE_YASSL - yassl_dummy_link_fix= $(top_srcdir)/extra/yassl/src/dummy.cpp -else - yassl_dummy_link_fix= -endif -INCLUDES= -I$(top_builddir)/include -I$(top_srcdir)/include \ - $(openssl_includes) -LDADD= @CLIENT_EXTRA_LDFLAGS@ \ - $(top_builddir)/libmysql_r/libmysqlclient_r.la \ - @openssl_libs@ @ZLIB_LIBS@ -bin_PROGRAMS= mysqltestmanager -mysqltestmanager_SOURCES= mysqlmanager.c $(yassl_dummy_link_fix) -mysqltestmanager_DEPENDENCIES= $(LIBRARIES) $(pkglib_LTLIBRARIES) -DEF= -DUNDEF_THREADS_HACK - -# Don't update the files from bitkeeper -%::SCCS/s.% diff --git a/tools/managertest1.nc b/tools/managertest1.nc deleted file mode 100644 index bf1b82ed406..00000000000 --- a/tools/managertest1.nc +++ /dev/null @@ -1,16 +0,0 @@ -def_exec server /usr/sbin/mysqld --socket=/tmp/temp.sock --skip-grant --skip-net --datadir=/tmp -set_exec_con server root localhost /tmp/temp.sock -set_exec_stdout server /tmp/mysqld.err -set_exec_stderr server /tmp/mysqld.err -start_exec server 3 -show_exec -query server show variables like '%max_heap%'; -stop_exec server 3 -def_exec server /usr/sbin/mysqld --socket=/tmp/temp.sock --skip-grant --skip-net --datadir=/tmp -O max_heap_table_size=5000 -show_exec -start_exec server 3 -query server show variables like '%max_heap%'; -show_exec -stop_exec server 3 -show_exec -quit diff --git a/tools/mysqlmanager-sample.pwd b/tools/mysqlmanager-sample.pwd deleted file mode 100644 index 51c1ade1b77..00000000000 --- a/tools/mysqlmanager-sample.pwd +++ /dev/null @@ -1 +0,0 @@ -root:5ebe2294ecd0e0f08eab7690d2a6ee69 diff --git a/tools/mysqlmanager.c b/tools/mysqlmanager.c deleted file mode 100644 index 4d507fc3d32..00000000000 --- a/tools/mysqlmanager.c +++ /dev/null @@ -1,1866 +0,0 @@ -/* Copyright (C) 2000 MySQL AB & MySQL Finland AB & TCX DataKonsult AB - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ - -/* - MySQL server management daemon - - Written by: - Sasha Pachev -*/ - -#ifndef __NETWARE__ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#ifdef HAVE_SYS_WAIT_H -#include -#endif - -#define MANAGER_VERSION "1.2" -#define MANAGER_GREETING "MySQL Server Management Daemon v. 1.2" - -#define LOG_ERR 1 -#define LOG_WARN 2 -#define LOG_INFO 3 -#define LOG_DEBUG 4 - -#define CHILD_START 1 -#define CHILD_STOP 2 - -#ifndef MANAGER_PORT -#define MANAGER_PORT 23546 -#endif - -#ifndef MANAGER_CONNECT_RETRIES -#define MANAGER_CONNECT_RETRIES 5 -#endif - -#ifndef MANAGER_MAX_CMD_LEN -#define MANAGER_MAX_CMD_LEN 16384 -#endif - -#ifndef MANAGER_LOG_FILE -#define MANAGER_LOG_FILE "/var/log/mysqlmanager.log" -#endif - -#ifndef MANAGER_BACK_LOG -#define MANAGER_BACK_LOG 50 -#endif - -#ifndef MAX_USER_NAME -#define MAX_USER_NAME 16 -#endif - -#ifndef MANAGER_PW_FILE -#define MANAGER_PW_FILE "/etc/mysqlmanager.passwd" -#endif - -#ifndef MAX_HOST -#define MAX_HOST 128 -#endif - -#ifndef MAX_LAUNCHER_MSG -#define MAX_LAUNCHER_MSG 256 -#endif - -static CHARSET_INFO *cs= &my_charset_latin1; - -#define MAX_RETRY_COUNT 100 - -/* - Variable naming convention - if starts with manager_, either is set - directly by the user, or used closely in ocnjunction with a variable - set by the user -*/ - -#if defined(__i386__) && defined(TARGET_OS_LINUX) -#define DO_STACKTRACE 1 -#endif - -uint manager_port; -FILE* errfp; -const char* manager_log_file = MANAGER_LOG_FILE; -pthread_mutex_t lock_log,lock_shutdown,lock_exec_hash,lock_launch_thd; -pthread_cond_t cond_launch_thd; -pthread_t loop_th,launch_msg_th; -int manager_sock = -1; -uchar* stack_bottom=0; -struct sockaddr_in manager_addr; -ulong manager_bind_addr; -int manager_back_log; -int in_shutdown = 0, shutdown_requested=0; -int manager_connect_retries; -const char* manager_greeting = MANAGER_GREETING; -uint manager_max_cmd_len; -const char* manager_pw_file=MANAGER_PW_FILE; -my_bool one_thread; /* for debugging */ - -typedef enum {PARAM_STDOUT,PARAM_STDERR} PARAM_TYPE; - -/* messages */ - -#define MAX_CLIENT_MSG_LEN 256 -#define NET_BLOCK 2048 -#define MD5_LEN 16 -#define ESCAPE_CHAR '\\' -#define EOL_CHAR '\n' - -/* access flags */ - -#define PRIV_SHUTDOWN 1 - -struct manager_thd -{ - NET net; - char user[MAX_USER_NAME+1]; - int priv_flags; - char* cmd_buf; - int fatal,finished; -}; - -struct manager_user -{ - char user[MAX_USER_NAME+1]; - char md5_pass[MD5_LEN]; - int user_len; - const char* error; -}; - -HASH exec_hash,user_hash; -struct manager_exec* cur_launch_exec=0; - -static struct manager_thd* manager_thd_new(Vio* vio); - -static struct manager_exec* manager_exec_new(char* arg_start,char* arg_end); -static void manager_exec_print(NET* net,struct manager_exec* e); -static void manager_thd_free(struct manager_thd* thd); -static void manager_exec_free(void* e); -static void manager_exec_connect(struct manager_exec* e); -static int manager_exec_launch(struct manager_exec* e); -static struct manager_exec* manager_exec_by_pid(pid_t pid); - -static struct manager_user* manager_user_new(char* buf); -static void manager_user_free(void* u); - -static char* arg_strmov(char* dest, const char* src, int n); -static byte* get_exec_key(const byte* e, uint* len, - my_bool __attribute__((unused)) t); -static byte* get_user_key(const byte* u, uint* len, - my_bool __attribute__((unused)) t); -static uint tokenize_args(char* arg_start,char** arg_end); -static void init_arg_array(char* arg_str,char** args,uint arg_count); -static int hex_val(char c); -static int open_and_dup(int fd,char* path); -static void update_req_len(struct manager_exec* e); - -typedef int (*manager_cmd_handler)(struct manager_thd*,char*,char*); - -static void handle_child(int __attribute__((unused)) sig); -static void handle_sigpipe(int __attribute__((unused)) sig); - -/* - exec() in a threaded application is full of problems. - To solve this, we fork off a launcher at the very start - and communicate with it through a pipe -*/ - -static void fork_launcher(); -static void run_launcher_loop(); -int to_launcher_pipe[2],from_launcher_pipe[2]; -pid_t launcher_pid; -int in_segfault=0; -const char* pid_file = "/var/run/mysqlmanager.pid"; -int created_pid_file = 0; - -struct manager_cmd -{ - const char* name; - const char* help; - manager_cmd_handler handler_func; - int len; -}; - -struct manager_exec -{ - char* ident; - int ident_len; - const char* error; - char* bin_path; - char** args; - char con_user[16]; - char con_pass[16]; - int con_port; - pid_t pid; - int exit_code; - pthread_mutex_t lock; - pthread_cond_t cond; - pthread_t th; - char con_sock[FN_REFLEN]; - char con_host[MAX_HOST]; - char stderr_path[FN_REFLEN]; - char stdout_path[FN_REFLEN]; - MYSQL mysql; - char* data_buf; - int req_len; - int start_wait_timeout; - int stderr_path_size,stdout_path_size,data_buf_size; - int num_args; -}; - -static int set_exec_param(struct manager_thd* thd, char* args_start, - char* args_end, PARAM_TYPE param_type); - -#define HANDLE_DECL(com) \ -static int com(struct manager_thd* thd, char* args_start,char* args_end) -#define HANDLE_NOARG_DECL(com) \ -static int com(struct manager_thd *thd,\ - char *args_start __attribute__((unused)),\ - char* args_end __attribute__((unused))) - -HANDLE_NOARG_DECL(handle_ping); -HANDLE_NOARG_DECL(handle_quit); -HANDLE_NOARG_DECL(handle_help); -HANDLE_NOARG_DECL(handle_shutdown); -HANDLE_DECL(handle_def_exec); -HANDLE_DECL(handle_start_exec); -HANDLE_DECL(handle_stop_exec); -HANDLE_DECL(handle_set_exec_con); -HANDLE_DECL(handle_set_exec_stdout); -HANDLE_DECL(handle_set_exec_stderr); -HANDLE_NOARG_DECL(handle_show_exec); -HANDLE_DECL(handle_query); - - -struct manager_cmd commands[] = -{ - {"ping", "Check if this server is alive", handle_ping,4}, - {"quit", "Finish session", handle_quit,4}, - {"shutdown", "Shutdown this server", handle_shutdown,8}, - {"def_exec", "Define executable entry", handle_def_exec,8}, - {"start_exec", "Launch process defined by executable entry", - handle_start_exec,10}, - {"stop_exec", "Stop process defined by executable entry", - handle_stop_exec,9}, - {"set_exec_con", "Set connection parameters for executable entry", - handle_set_exec_con,12}, - {"set_exec_stdout", "Set stdout path for executable entry", - handle_set_exec_stdout,15}, - {"set_exec_stderr", "Set stderr path for executable entry", - handle_set_exec_stderr,15}, - {"query","Run query against MySQL server",handle_query,5}, - {"show_exec","Show defined executable entries",handle_show_exec,9}, - {"help", "Print this message", handle_help,4}, - {0,0,0,0} -}; - - -static struct my_option my_long_options[] = -{ -#ifndef DBUG_OFF - {"debug", '#', "Output debug log. Often this is 'd:t:o,filename'.", - 0, 0, 0, GET_STR, OPT_ARG, 0, 0, 0, 0, 0, 0}, -#endif - {"help", '?', "Display this help and exit.", - 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, - {"port", 'P', "Port number to listen on.", (gptr*) &manager_port, - (gptr*) &manager_port, 0, GET_UINT, REQUIRED_ARG, MANAGER_PORT, 0, 0, 0, - 0, 0}, - {"log", 'l', "Path to log file.", (gptr*) &manager_log_file, - (gptr*) &manager_log_file, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, - {"bind-address", 'b', "Address to listen on.", (gptr*) &manager_bind_addr, - (gptr*) &manager_bind_addr, 0, GET_ULONG, REQUIRED_ARG, INADDR_ANY, 0, - 0, 0, 0, 0}, - {"tcp-backlog", 'B', "Size of TCP/IP listen queue.", - (gptr*) &manager_back_log, (gptr*) &manager_back_log, 0, GET_INT, - REQUIRED_ARG, MANAGER_BACK_LOG, 0, 0, 0, 0, 0}, - {"greeting", 'g', "Set greeting on connect.", (gptr*) &manager_greeting, - (gptr*) &manager_greeting, 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, - {"max-command-len", 'm', "Maximum command length.", - (gptr*) &manager_max_cmd_len, (gptr*) &manager_max_cmd_len, 0, GET_UINT, - REQUIRED_ARG, MANAGER_MAX_CMD_LEN, 0, 0, 0, 0, 0}, - {"one-thread", 'd', "Use one thread ( for debugging).", (gptr*) &one_thread, - (gptr*) &one_thread, 0, GET_BOOL, NO_ARG, 0, 0, 0, 0, 0, 0}, - {"connect-retries", 'C', "Number of attempts to establish MySQL connection.", - (gptr*) &manager_connect_retries, (gptr*) &manager_connect_retries, 0, - GET_INT, REQUIRED_ARG, MANAGER_CONNECT_RETRIES, 0, 0, 0, 0, 0}, - {"password-file", 'p', "Password file for manager.", - (gptr*) &manager_pw_file, (gptr*) &manager_pw_file, 0, GET_STR, - REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, - {"pid-file", 'f', "Pid file to use.", (gptr*) &pid_file, (gptr*) &pid_file, - 0, GET_STR, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, - {"version", 'V', "Output version information and exit.", 0, 0, 0, - GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0}, - { 0, 0, 0, 0, 0, 0, GET_NO_ARG, NO_ARG, 0, 0, 0, 0, 0, 0} -}; - -static void die(const char* fmt,...); -static void print_time(FILE* fp); -static void clean_up(); -static struct manager_cmd* lookup_cmd(char* s,int len); -static int client_msg(NET* net,int err_code,const char* fmt,...); -static int client_msg_pre(NET* net,int err_code,const char* fmt,...); -static int client_msg_raw(NET* net,int err_code,int pre,const char* fmt, - va_list args); -static int authenticate(struct manager_thd* thd); -/* returns pointer to end of line */ -static char* read_line(struct manager_thd* thd); -pthread_handler_t process_connection(void *arg); -pthread_handler_t process_launcher_messages(void *arg); -static int exec_line(struct manager_thd* thd,char* buf,char* buf_end); - -#ifdef DO_STACKTRACE -void print_stacktrace(); -#endif - -static void log_msg(const char* fmt, int msg_type, va_list args); - -/* No 'inline' here becasue functions with ... can't do that portable */ -#define LOG_MSG_FUNC(type,TYPE) static void type \ - (const char* fmt,...) { \ - va_list args; \ - va_start(args,fmt); \ - log_msg(fmt,TYPE,args);\ - } - -LOG_MSG_FUNC(log_err,LOG_ERR) -LOG_MSG_FUNC(log_warn,LOG_WARN) -LOG_MSG_FUNC(log_info,LOG_INFO) - -#ifndef DBUG_OFF -LOG_MSG_FUNC(log_debug,LOG_DEBUG) -#else -void log_debug(const char* fmt __attribute__((unused)),...) {} -#endif - -static void handle_sigterm(int sig __attribute__((unused))) -{ - log_info("Got SIGTERM"); - if (!one_thread) - { - kill(launcher_pid,SIGTERM); - pthread_kill(loop_th,SIGTERM); - } - clean_up(); - exit(0); -} - -#ifdef DO_STACKTRACE -static void handle_segfault(int sig) -{ - if (in_segfault) - exit(1); - in_segfault=1; - fprintf(errfp,"Got fatal signal %d\n",sig); - print_stacktrace(); - exit(1); -} -#endif - -static void handle_sigpipe(int __attribute__((unused)) sig) -{ - signal(SIGPIPE,handle_sigpipe); -} - -#ifdef DO_STACKTRACE - -#define MAX_DEPTH 25 -#define SIGRETURN_FRAME_COUNT 1 - -void print_stacktrace() -{ - uchar** fp; - int i; - LINT_INIT(fp); - fprintf(errfp,"Fatal errror, stacktrace follows:\n"); -#ifdef __i386__ - __asm__ __volatile__("movl %%ebp,%0" :"=r"(fp) :"r"(fp)); -#endif - if (!fp) - { - fprintf(errfp,"frame points is NULL, cannot trace stack\n"); - return; - } - for (i=0;inet,MANAGER_CLIENT_ERR, - "Unrecognized command '%s', type help to see list of supported\ - commands", buf)) - thd->fatal=1; - return 1; - } - for (;phandler_func(thd,p,buf_end); -} - -static struct manager_cmd* lookup_cmd(char* s,int len) -{ - struct manager_cmd* cmd = commands; - for (;cmd->name;cmd++) - { - if (cmd->len == len && !memcmp(cmd->name,s,len)) - return cmd; - } - return 0; -} - -HANDLE_NOARG_DECL(handle_ping) -{ - client_msg(&thd->net,MANAGER_OK,"Server management daemon is alive"); - return 0; -} - -HANDLE_NOARG_DECL(handle_quit) -{ - client_msg(&thd->net,MANAGER_OK,"Goodbye"); - thd->finished=1; - return 0; -} - -HANDLE_NOARG_DECL(handle_help) -{ - struct manager_cmd* cmd = commands; - NET* net = &thd->net; - client_msg_pre(net,MANAGER_INFO,"Available commands:"); - for (;cmd->name;cmd++) - { - client_msg_pre(net,MANAGER_INFO,"%s - %s", cmd->name, cmd->help); - } - client_msg_pre(net,MANAGER_INFO,"End of help"); - return 0; -} - -HANDLE_NOARG_DECL(handle_shutdown) -{ - client_msg(&thd->net,MANAGER_OK,"Shutdown started, goodbye"); - thd->finished=1; - shutdown_requested = 1; - if (!one_thread) - { - kill(launcher_pid,SIGTERM); - pthread_kill(loop_th,SIGTERM); - } - return 0; -} - -HANDLE_DECL(handle_set_exec_con) -{ - int num_args; - const char* error=0; - struct manager_exec* e; - char* arg_p; - if ((num_args=tokenize_args(args_start,&args_end))<2) - { - error="Too few arguments"; - goto err; - } - arg_p=args_start; - pthread_mutex_lock(&lock_exec_hash); - if (!(e=(struct manager_exec*)hash_search(&exec_hash,arg_p, - strlen(arg_p)))) - { - pthread_mutex_unlock(&lock_exec_hash); - error="Exec definition entry does not exist"; - goto err; - } - arg_p+=strlen(arg_p)+1; - arg_p+=(strnmov(e->con_user,arg_p,sizeof(e->con_user))-e->con_user)+1; - if (num_args >= 3) - { - arg_p+=(strnmov(e->con_host,arg_p,sizeof(e->con_host))-e->con_host)+1; - if (num_args == 4) - { - if (!(e->con_port=atoi(arg_p))) - strnmov(e->con_sock,arg_p,sizeof(e->con_sock)); - else - e->con_sock[0]=0; - } - else if (num_args > 4) - { - pthread_mutex_unlock(&lock_exec_hash); - error="Too many arguments"; - goto err; - } - } - pthread_mutex_unlock(&lock_exec_hash); - client_msg(&thd->net,MANAGER_OK,"Entry updated"); - return 0; -err: - client_msg(&thd->net,MANAGER_CLIENT_ERR,error); - return 1; -} - -HANDLE_DECL(handle_set_exec_stdout) -{ - return set_exec_param(thd,args_start,args_end,PARAM_STDOUT); -} - -HANDLE_DECL(handle_set_exec_stderr) -{ - return set_exec_param(thd,args_start,args_end,PARAM_STDERR); -} - -static int set_exec_param(struct manager_thd* thd, char* args_start, - char* args_end, PARAM_TYPE param_type) -{ - const char* error=0; - struct manager_exec* e; - char* arg_p; - char* param; - int param_size; - - if (tokenize_args(args_start,&args_end) < 2) - { - error="Too few arguments"; - goto err; - } - arg_p=args_start; - pthread_mutex_lock(&lock_exec_hash); - if (!(e=(struct manager_exec*)hash_search(&exec_hash,arg_p, - strlen(arg_p)))) - { - pthread_mutex_unlock(&lock_exec_hash); - error="Exec definition entry does not exist"; - goto err; - } - arg_p+=strlen(arg_p)+1; - param_size=strlen(arg_p)+1; - switch (param_type) { - case PARAM_STDOUT: - param=e->stdout_path; - e->req_len+=(param_size-e->stdout_path_size); - e->stdout_path_size=param_size; - break; - case PARAM_STDERR: - param=e->stderr_path; - e->req_len+=(param_size-e->stderr_path_size); - e->stderr_path_size=param_size; - break; - default: - error="Internal error"; - goto err; - } - strnmov(param,arg_p,FN_REFLEN); - pthread_mutex_unlock(&lock_exec_hash); - client_msg(&thd->net,MANAGER_OK,"Entry updated"); - return 0; -err: - client_msg(&thd->net,MANAGER_CLIENT_ERR,error); - return 1; -} - - -HANDLE_DECL(handle_start_exec) -{ - struct manager_exec* e; - int ident_len; - const char* error=0; - struct timespec t; - if (tokenize_args(args_start,&args_end) < 1) - { - error="Too few arguments"; - goto err; - } - ident_len=strlen(args_start); - pthread_mutex_lock(&lock_exec_hash); - if (!(e=(struct manager_exec*)hash_search(&exec_hash,args_start, - ident_len))) - { - pthread_mutex_unlock(&lock_exec_hash); - error="Exec definition entry does not exist"; - goto err; - } - pthread_mutex_unlock(&lock_exec_hash); - manager_exec_launch(e); - if ((error=e->error)) - goto err; - pthread_mutex_lock(&e->lock); - t.tv_sec=time(0)+(e->start_wait_timeout=atoi(args_start+ident_len+1)); - t.tv_nsec=0; - if (!e->pid) - pthread_cond_timedwait(&e->cond,&e->lock,&t); - if (!e->pid) - { - pthread_mutex_unlock(&e->lock); - error="Process failed to start withing alotted time"; - goto err; - } - mysql_close(&e->mysql); - manager_exec_connect(e); - error=e->error; - pthread_mutex_unlock(&e->lock); - if (error) - goto err; - client_msg(&thd->net,MANAGER_OK,"'%s' started",e->ident); - return 0; -err: - client_msg(&thd->net,MANAGER_CLIENT_ERR,error); - return 1; -} - -HANDLE_DECL(handle_stop_exec) -{ - struct timespec abstime; - struct manager_exec* e; - int ident_len; - const char* error=0; - if (tokenize_args(args_start,&args_end) <2) - { - error="Too few arguments"; - goto err; - } - ident_len=strlen(args_start); - abstime.tv_sec=time(0)+atoi(args_start+1+ident_len); - abstime.tv_nsec=0; - pthread_mutex_lock(&lock_exec_hash); - if (!(e=(struct manager_exec*)hash_search(&exec_hash,args_start, - ident_len))) - { - pthread_mutex_unlock(&lock_exec_hash); - error="Exec definition entry does not exist"; - goto err; - } - pthread_mutex_unlock(&lock_exec_hash); - pthread_mutex_lock(&e->lock); - e->th=pthread_self(); - if (!e->pid) - { - /* e->th=0; */ /* th may be a struct */ - pthread_mutex_unlock(&e->lock); - error="Process not running"; - goto err; - } - if (mysql_shutdown(&e->mysql, SHUTDOWN_DEFAULT)) - { - /* e->th=0; */ /* th may be a struct */ - pthread_mutex_unlock(&e->lock); - error="Could not send shutdown command"; - goto err; - } - if (e->pid) - pthread_cond_timedwait(&e->cond,&e->lock,&abstime); - if (e->pid) - error="Process failed to terminate within alotted time"; - /* e->th=0; */ /* th may be a struct */ - pthread_mutex_unlock(&e->lock); - if (!error) - { - client_msg(&thd->net,MANAGER_OK,"'%s' terminated",e->ident); - return 0; - } -err: - client_msg(&thd->net,MANAGER_CLIENT_ERR,error); - return 1; -} - -HANDLE_DECL(handle_query) -{ - const char* error=0; - struct manager_exec* e; - MYSQL_RES* res=0; - MYSQL_ROW row; - MYSQL_FIELD* fields; - int num_fields,i,ident_len; - char* ident,*query; - query=ident=args_start; - while (!my_isspace(cs,*query)) - query++; - if (query == ident) - { - error="Missing server identifier"; - goto err; - } - ident_len=(int)(query-ident); - while (querylock); - if (!e->pid) - { - error="Process is not running"; - pthread_mutex_unlock(&e->lock); - goto err; - } - - if (mysql_query(&e->mysql,query)) - { - error=mysql_error(&e->mysql); - pthread_mutex_unlock(&e->lock); - goto err; - } - if ((res=mysql_store_result(&e->mysql))) - { - char buf[MAX_CLIENT_MSG_LEN],*p,*buf_end; - fields=mysql_fetch_fields(res); - num_fields=mysql_num_fields(res); - p=buf; - buf_end=buf+sizeof(buf); - for (i=0;inet,MANAGER_OK,buf); - - while ((row=mysql_fetch_row(res))) - { - p=buf; - for (i=0;inet,MANAGER_OK,buf); - } - } - pthread_mutex_unlock(&e->lock); - client_msg(&thd->net,MANAGER_OK,"End"); - return 0; -err: - client_msg(&thd->net,MANAGER_CLIENT_ERR,error); - return 1; -} - -HANDLE_DECL(handle_def_exec) -{ - struct manager_exec* e=0,*old_e; - const char* error=0; - if (!(e=manager_exec_new(args_start,args_end))) - { - error="Out of memory"; - goto err; - } - if (e->error) - { - error=e->error; - goto err; - } - pthread_mutex_lock(&lock_exec_hash); - if ((old_e=(struct manager_exec*)hash_search(&exec_hash,(byte*)e->ident, - e->ident_len))) - { - strnmov(e->stdout_path,old_e->stdout_path,sizeof(e->stdout_path)); - strnmov(e->stderr_path,old_e->stderr_path,sizeof(e->stderr_path)); - strnmov(e->con_user,old_e->con_user,sizeof(e->con_user)); - strnmov(e->con_host,old_e->con_host,sizeof(e->con_host)); - strnmov(e->con_sock,old_e->con_sock,sizeof(e->con_sock)); - e->con_port=old_e->con_port; - update_req_len(e); - hash_delete(&exec_hash,(byte*)old_e); - } - my_hash_insert(&exec_hash,(byte*)e); - pthread_mutex_unlock(&lock_exec_hash); - client_msg(&thd->net,MANAGER_OK,"Exec definition created"); - return 0; -err: - client_msg(&thd->net,MANAGER_CLIENT_ERR,error); - if (e) - manager_exec_free(e); - return 1; -} - -HANDLE_NOARG_DECL(handle_show_exec) -{ - uint i; - client_msg_pre(&thd->net,MANAGER_INFO,"Exec_def\tPid\tExit_status\tCon_info\ -\tStdout\tStderr\tArguments"); - pthread_mutex_lock(&lock_exec_hash); - for (i=0;inet,e); - } - pthread_mutex_unlock(&lock_exec_hash); - client_msg(&thd->net,MANAGER_INFO,"End"); - return 0; -} - -static struct manager_exec* manager_exec_by_pid(pid_t pid) -{ - struct manager_exec* e; - uint i; - pthread_mutex_lock(&lock_exec_hash); - for (i=0;ipid==pid) - { - pthread_mutex_unlock(&lock_exec_hash); - return e; - } - } - pthread_mutex_unlock(&lock_exec_hash); - return 0; -} - -static void manager_exec_connect(struct manager_exec* e) -{ - int i; - int connect_retries; - - if (!(connect_retries=e->start_wait_timeout)) - connect_retries=manager_connect_retries; - - for (i=0;imysql,e->con_host,e->con_user,e->con_pass,0, - e->con_port,e->con_sock,0)) - { - e->mysql.reconnect= 1; - return; - } - sleep(1); - } - e->error="Could not connect to MySQL server withing the number of tries"; -} - -static int manager_exec_launch(struct manager_exec* e) -{ - if (one_thread) - { - pid_t tmp_pid; - switch ((tmp_pid=fork())) { - case -1: - e->error="Cannot fork"; - return 1; - case 0: - { - int err_code; - close(manager_sock); - err_code=execv(e->bin_path,e->args); - exit(err_code); - } - default: - e->pid=tmp_pid; - manager_exec_connect(e); - return 0; - } - } - else - { - if (my_write(to_launcher_pipe[1],(byte*)&e->req_len, - sizeof(int),MYF(MY_NABP))|| - my_write(to_launcher_pipe[1],(byte*)&e->num_args, - sizeof(int),MYF(MY_NABP)) || - my_write(to_launcher_pipe[1],e->stdout_path,e->stdout_path_size, - MYF(MY_NABP)) || - my_write(to_launcher_pipe[1],e->stderr_path,e->stderr_path_size, - MYF(MY_NABP)) || - my_write(to_launcher_pipe[1],e->data_buf,e->data_buf_size, - MYF(MY_NABP))) - { - e->error="Failed write request to launcher"; - return 1; - } - } - return 0; -} - -static char* arg_strmov(char* dest, const char* src, int n) -{ - char* dest_end = dest+n-1; - char c; - for (;destargs; - - p=arg_strmov(p,e->ident,(int)(buf_end-p)-1); - *p++='\t'; - if (p>buf_end-15) - goto end; - p=int10_to_str(e->pid,p,10); - *p++='\t'; - p=int10_to_str(e->exit_code,p,10); - *p++='\t'; - - p=arg_strmov(p,e->con_user,(int)(buf_end-p)-1); - *p++='@'; - if (p==buf_end) - goto end; - p=arg_strmov(p,e->con_host,(int)(buf_end-p)-11); - *p++=':'; - if (p==buf_end-10) - goto end; - if (e->con_sock[0]) - { - p=arg_strmov(p,e->con_sock,(int)(buf_end-p)-1); - } - else - { - p=int10_to_str(e->con_port,p,10); - } - *p++='\t'; - p=arg_strmov(p,e->stdout_path,(int)(buf_end-p)-1); - if (p==buf_end-1) - goto end; - *p++='\t'; - p=arg_strmov(p,e->stderr_path,(int)(buf_end-p)-1); - if (p==buf_end-1) - goto end; - *p++='\t'; - - for (;pnet,MANAGER_INFO, manager_greeting); - if (!(buf_end=read_line(thd))) - return -1; - for (buf=thd->cmd_buf,p=thd->user,p_end=p+MAX_USER_NAME; - bufuser, - (uint)(p-thd->user)))) - return 1; - for (;my_isspace(cs,*buf) && bufmd5_pass,digest,MD5_LEN)) - return 1; - client_msg(&thd->net,MANAGER_OK,"OK"); - return 0; -} - -static void print_time(FILE* fp) -{ - struct tm now; - time_t t; - time(&t); - localtime_r(&t,&now); - fprintf(fp,"[%d-%02d-%02d %02d:%02d:%02d] ", now.tm_year+1900, - now.tm_mon+1,now.tm_mday,now.tm_hour,now.tm_min, - now.tm_sec); -} - -static void die(const char* fmt, ...) -{ - va_list args; - va_start(args,fmt); - if (fmt) - { - if (errfp==stderr) - fprintf(errfp, "%s: ", my_progname); - else - { - print_time(errfp); - fprintf(errfp,"Fatal error: "); - } - vfprintf(errfp, fmt, args); - if (errno) - fprintf(errfp, " errno=%d", errno); - fprintf(errfp, "\n"); - fflush(errfp); - } - va_end(args); - clean_up(); - exit(1); -} - -void print_msg_type(int msg_type) -{ - const char* msg; - switch (msg_type) { - case LOG_ERR: msg = "ERROR"; break; - case LOG_WARN: msg = "WARNING"; break; - case LOG_INFO: msg = "INFO"; break; -#ifndef DBUG_OFF - case LOG_DEBUG: msg = "DEBUG"; break; -#endif - default: msg = "UNKNOWN TYPE"; break; - } - fprintf(errfp," %s: ", msg); -} - -static void log_msg(const char* fmt, int msg_type, va_list args) -{ - pthread_mutex_lock(&lock_log); - print_time(errfp); - print_msg_type(msg_type); - vfprintf(errfp,fmt,args); - fputc('\n',errfp); - fflush(errfp); - pthread_mutex_unlock(&lock_log); -} - -pthread_handler_t process_launcher_messages(void *arg __attribute__((unused))) -{ - my_thread_init(); - for (;!in_shutdown;) - { - pid_t pid; - struct manager_exec* e; - char buf[MAX_LAUNCHER_MSG]; - if (read(from_launcher_pipe[0],buf,MAX_LAUNCHER_MSG)<0) - { - log_err("error reading launcher message"); - sleep(1); - continue; - } - switch (buf[0]) { - case CHILD_START: - { - char* ident=buf+1; - int ident_len=strlen(ident); - memcpy(&pid,ident+ident_len+1,sizeof(pid)); - log_debug("process message - ident=%s ident_len=%d pid=%d",ident, - ident_len,pid); - pthread_mutex_lock(&lock_exec_hash); - log_debug("hash has %d records",exec_hash.records); - e=(struct manager_exec*)hash_search(&exec_hash,ident,ident_len); - if (e) - { - pthread_mutex_lock(&e->lock); - e->pid=pid; - pthread_cond_broadcast(&e->cond); - pthread_mutex_unlock(&e->lock); - } - pthread_mutex_unlock(&lock_exec_hash); - log_debug("unlocked mutex"); - break; - } - case CHILD_STOP: - memcpy(&pid,buf+1,sizeof(pid)); - e=manager_exec_by_pid(pid); - if (e) - { - pthread_mutex_lock(&e->lock); - e->pid=0; - memcpy(&e->exit_code,buf+1+sizeof(pid),sizeof(int)); - pthread_cond_broadcast(&e->cond); - pthread_mutex_unlock(&e->lock); - } - break; - default: - log_err("Got invalid launcher message"); - break; - } - } - return 0; -} - -pthread_handler_t process_connection(void *arg) -{ - struct manager_thd* thd = (struct manager_thd*)arg; - my_thread_init(); - pthread_detach_this_thread(); - for (;!thd->finished;) - { - char* buf_end; - if ((!(buf_end=read_line(thd)) || exec_line(thd,thd->cmd_buf,buf_end)) - && thd->fatal) - { - log_err("Thread aborted"); - break; - } - } - manager_thd_free(thd); - pthread_exit(0); - return 0; /* Don't get cc warning */ -} - -static int client_msg_raw(NET* net, int err_code, int pre, const char* fmt, - va_list args) -{ - char buf[MAX_CLIENT_MSG_LEN],*p,*buf_end; - p=buf; - buf_end=buf+sizeof(buf); - p=int10_to_str(err_code,p,10); - if (pre) - *p++='-'; - *p++=' '; - p+=my_vsnprintf(p,buf_end-p,fmt,args); - if (p>buf_end-2) - p=buf_end - 2; - *p++='\r'; - *p++='\n'; - log_debug("message to client: %-.*s",p-buf-2,buf); - if (my_net_write(net,buf,(uint)(p-buf)) || net_flush(net)) - { - p[-2]=0; - log_err("Failed writing '%s' to client: errno=%d",buf,errno); - net_end(net); - return 1; - } - return 0; -} - -static int client_msg(NET* net, int err_code, const char* fmt, ...) -{ - va_list args; - va_start(args,fmt); - return client_msg_raw(net,err_code,0,fmt,args); -} - -static int client_msg_pre(NET* net, int err_code, const char* fmt, ...) -{ - va_list args; - va_start(args,fmt); - return client_msg_raw(net,err_code,1,fmt,args); -} - -static char* read_line(struct manager_thd* thd) -{ - int len; - char* p, *buf_end; - if ((len=my_net_read(&thd->net)) == (int)packet_error || !len) - { - log_err("Error reading command from client (Error: %d)", - errno); - thd->fatal=1; - return 0; - } - buf_end=thd->cmd_buf+len; - for (p=thd->cmd_buf;p0;) - { - char msg_buf[1+sizeof(int)+sizeof(int)]; - msg_buf[0]=CHILD_STOP; - memcpy(msg_buf+1,&child,sizeof(int)); - memcpy(msg_buf+1+sizeof(int),&child_status,sizeof(int)); - if (write(from_launcher_pipe[1],msg_buf,sizeof(msg_buf))!=sizeof(msg_buf)) - log_err("launcher: error writing message on child exit"); - } - signal(SIGCHLD,handle_child); -} - -static struct manager_thd* manager_thd_new(Vio* vio) -{ - struct manager_thd* tmp; - if (!(tmp=(struct manager_thd*)my_malloc(sizeof(*tmp), - MYF(0)))) - { - log_err("Out of memory in manager_thd_new"); - return 0; - } - my_net_init(&tmp->net,vio); - tmp->user[0]=0; - tmp->priv_flags=0; - tmp->fatal=tmp->finished=0; - tmp->cmd_buf= (char*) tmp->net.read_pos; - return tmp; -} - -static void manager_thd_free(struct manager_thd* thd) -{ - NET* net=&thd->net; - if (net->vio) - { - vio_delete(net->vio); - net->vio=0; - } - net_end(&thd->net); -} - -static void clean_up() -{ - pthread_mutex_lock(&lock_shutdown); - if (in_shutdown) - { - pthread_mutex_unlock(&lock_shutdown); - return; - } - in_shutdown = 1; - pthread_mutex_unlock(&lock_shutdown); - log_info("Shutdown started"); - if (manager_sock) - close(manager_sock); - log_info("Ended"); - if (errfp != stderr) - my_fclose(errfp, MYF(0)); - hash_free(&exec_hash); - if (created_pid_file) - my_delete(pid_file, MYF(0)); -} - -static void print_version(void) -{ - printf("%s Ver %s Distrib %s, for %s (%s)\n",my_progname,MANAGER_VERSION, - MYSQL_SERVER_VERSION,SYSTEM_TYPE,MACHINE_TYPE); -} - -static void usage() -{ - print_version(); - printf("MySQL AB, by Sasha\n"); - printf("This software comes with ABSOLUTELY NO WARRANTY\n\n"); - printf("Manages instances of MySQL server.\n\n"); - printf("Usage: %s [OPTIONS]\n\n", my_progname); - my_print_help(my_long_options); - my_print_variables(my_long_options); -} - - -static my_bool -get_one_option(int optid, const struct my_option *opt __attribute__((unused)), - char *argument) -{ - switch (optid) { - case '#': - DBUG_PUSH(argument ? argument : "d:t:O,/tmp/mysqlmgrd.trace"); - break; - case 'V': - print_version(); - exit(0); - case '?': - usage(); - exit(0); - } - return 0; -} - - -static int parse_args(int argc, char **argv) -{ - int ho_error; - - if ((ho_error=handle_options(&argc, &argv, my_long_options, get_one_option))) - exit(ho_error); - - return 0; -} - -static int init_server() -{ - int arg=1; - log_info("Started"); - if ((manager_sock=socket(PF_INET,SOCK_STREAM,0)) < 0) - die("Could not create socket"); - bzero((char*) &manager_addr, sizeof(manager_addr)); - manager_addr.sin_family = AF_INET; - manager_addr.sin_addr.s_addr = manager_bind_addr; - manager_addr.sin_port = htons(manager_port); - setsockopt(manager_sock,SOL_SOCKET, SO_REUSEADDR,(char*)&arg,sizeof(arg)); - if (bind(manager_sock,(struct sockaddr*)&manager_addr, sizeof(manager_addr)) - < 0) - die("Could not bind"); - if (listen(manager_sock,manager_back_log) < 0) - die("Could not listen"); - - return 0; -} - -static int run_server_loop() -{ - pthread_t th; - struct manager_thd *thd; - int client_sock; - Vio* vio; - pthread_attr_t thr_attr; - (void) pthread_attr_init(&thr_attr); -#if !defined(HAVE_DEC_3_2_THREADS) - pthread_attr_setscope(&thr_attr,PTHREAD_SCOPE_SYSTEM); - (void) pthread_attr_setdetachstate(&thr_attr,PTHREAD_CREATE_DETACHED); -#endif - - for (;!shutdown_requested;) - { - size_socket len=sizeof(struct sockaddr_in); - if ((client_sock=accept(manager_sock,(struct sockaddr*)&manager_addr, - &len)) <0) - { - if (shutdown_requested) - break; - if (errno != EAGAIN) - { - log_warn("Error in accept, errno=%d", errno); - sleep(1); /* avoid tying up CPU if accept is broken */ - } - continue; - } - if (shutdown_requested) - break; - if (!(vio=vio_new(client_sock,VIO_TYPE_TCPIP,FALSE))) - { - log_err("Could not create I/O object"); - close(client_sock); - continue; - } - if (!(thd=manager_thd_new(vio))) - { - log_err("Could not create thread object"); - vio_close(vio); - continue; - } - if (authenticate(thd)) - { - client_msg(&thd->net,MANAGER_ACCESS, "Access denied"); - manager_thd_free(thd); - log_info("Client failed to authenticate"); - continue; - } - if (shutdown_requested) - { - manager_thd_free(thd); - break; - } - if (one_thread) - { - process_connection((void*)thd); - manager_thd_free(thd); - continue; - } - else if (pthread_create(&th,&thr_attr,process_connection,(void*)thd)) - { - client_msg(&thd->net,MANAGER_INTERNAL_ERR, - "Could not create thread, errno=%d", - errno); - manager_thd_free(thd); - continue; - } - } - (void) pthread_attr_destroy(&thr_attr); - return 0; -} - -static FILE* open_log_stream() -{ - FILE* fp; - if (!(fp=my_fopen(manager_log_file, O_APPEND | FILE_BINARY, MYF(MY_WME)))) - { - clean_up(); - exit(1); - } - return fp; -} - -static byte* get_user_key(const byte* u, uint* len, - my_bool __attribute__((unused)) t) -{ - register const char* key; - key = ((struct manager_user*)u)->user; - *len = ((struct manager_user*)u)->user_len; - return (byte*)key; -} - -static byte* get_exec_key(const byte* e, uint* len, - my_bool __attribute__((unused)) t) -{ - register const char* key; - key = ((struct manager_exec*)e)->ident; - *len = ((struct manager_exec*)e)->ident_len; - return (byte*)key; -} - -static void init_arg_array(char* arg_str,char** args,uint arg_count) -{ - char* p = arg_str; - for (;arg_count>0;arg_count--) - { - *args++=p; - p += strlen(p)+1; - } - *args=0; -} - -static uint tokenize_args(char* arg_start,char** arg_end) -{ - char* p, *p_write,*p_end; - uint arg_count=0; - int quoted=0,escaped=0,last_space=0; - p_end=*arg_end; - p_write=p=arg_start; - for (; p < p_end ; p++) - { - char c = *p; - switch (c) { - case ' ': - case '\r': - case '\n': - if (!quoted) - { - if (!last_space) - { - *p_write++=0; - arg_count++; - last_space=1; - } - } - else - *p_write++=c; - escaped=0; - break; - case '"': - if (!escaped) - quoted=!quoted; - else - *p_write++=c; - last_space=0; - escaped=0; - break; - case '\\': - if (!escaped) - escaped=1; - else - { - *p_write++=c; - escaped=0; - } - last_space=0; - break; - default: - escaped=last_space=0; - *p_write++=c; - break; - } - } - if (!last_space && p_write>arg_start) - arg_count++; - *p_write=0; - *arg_end=p_write; - log_debug("arg_count: %d arg_start: '%s'",arg_count,arg_start); - return arg_count; -} - -static void update_req_len(struct manager_exec* e) -{ - e->req_len=(e->data_buf_size+ - (e->stdout_path_size=strlen(e->stdout_path)+1)+ - (e->stderr_path_size=strlen(e->stderr_path)+1)); -} - -static struct manager_exec* manager_exec_new(char* arg_start,char* arg_end) -{ - struct manager_exec* tmp; - char* first_arg; - uint arg_len,num_args; - num_args=tokenize_args(arg_start,&arg_end); - arg_len=(uint)(arg_end-arg_start)+1; /* include \0 terminator*/ - if (!(tmp=(struct manager_exec*)my_malloc(sizeof(*tmp)+arg_len+ - sizeof(char*)*num_args, - MYF(MY_ZEROFILL)))) - return 0; - if (num_args<2) - { - tmp->error="Too few arguments"; - return tmp; - } - /* We have to allocate 'args' first as this must be alligned */ - tmp->args=(char**)(tmp +1); - tmp->data_buf= (char*) (tmp->args + num_args); - memcpy(tmp->data_buf,arg_start,arg_len); - tmp->data_buf_size=arg_len; - tmp->num_args=num_args; - tmp->ident=tmp->data_buf; - tmp->ident_len=strlen(tmp->ident); - first_arg=tmp->ident+tmp->ident_len+1; - init_arg_array(first_arg,tmp->args,num_args-1); - strmov(tmp->con_user,"root"); - tmp->con_port=MYSQL_PORT; - memcpy(tmp->con_host,"localhost",10); - tmp->bin_path=tmp->args[0]; - tmp->stdout_path_size=tmp->stderr_path_size=1; - tmp->req_len=tmp->data_buf_size+2; - pthread_mutex_init(&tmp->lock,0); - pthread_cond_init(&tmp->cond,0); - mysql_init(&tmp->mysql); - return tmp; -} - -static void manager_exec_free(void* e) -{ - mysql_close(&((struct manager_exec*)e)->mysql); - my_free(e,MYF(0)); -} - -static int hex_val(char c) -{ - if (my_isdigit(cs,c)) - return c-'0'; - c=my_tolower(cs,c); - return c-'a'+10; -} - -static struct manager_user* manager_user_new(char* buf) -{ - struct manager_user* tmp; - char* p,*user_end,*p_end; - char c; - if (!(tmp=(struct manager_user*)my_malloc(sizeof(*tmp),MYF(0)))) - return 0; - p=tmp->user; - tmp->error=0; - user_end=p+MAX_USER_NAME; - for (;(c=*buf) && puser_len=p-tmp->user; - buf++; - break; - } - else - *p++=c; - } - if (!c) - tmp->error="Missing ':'"; - if (p == user_end) - tmp->error="Username too long"; - if (tmp->error) - return tmp; - if (strlen(buf) < 2*MD5_LEN) - { - tmp->error="Invalid MD5 sum, too short"; - return tmp; - } - p=tmp->md5_pass; - p_end=p+MD5_LEN; - for (; perror) - { - die("Error on line %d of '%s': %s",line_num,manager_pw_file, u->error); - } - else - { - my_hash_insert(&user_hash,(gptr)u); - } - } - my_fclose(f, MYF(0)); -} - - -static void init_pid_file() -{ - FILE* fp = my_fopen(pid_file, O_WRONLY | O_BINARY, MYF(MY_WME)); - if (!fp) - { - clean_up(); - exit(1); - } - created_pid_file=1; - fprintf(fp, "%d\n", (int) getpid()); - my_fclose(fp, MYF(0)); -} - - -static void init_globals() -{ - pthread_attr_t thr_attr; - if (hash_init(&exec_hash,cs,1024,0,0, - get_exec_key,manager_exec_free,MYF(0))) - die("Exec hash initialization failed"); - if (!one_thread) - { - (void) pthread_attr_init(&thr_attr); -#if !defined(HAVE_DEC_3_2_THREADS) - pthread_attr_setscope(&thr_attr,PTHREAD_SCOPE_SYSTEM); - (void) pthread_attr_setdetachstate(&thr_attr,PTHREAD_CREATE_DETACHED); -#endif - fork_launcher(); - if (pthread_create(&launch_msg_th,&thr_attr,process_launcher_messages,0)) - die("Could not start launcher message handler thread"); - /* (void) pthread_attr_destroy(&thr_attr); */ - } - init_user_hash(); - init_pid_file(); - loop_th=pthread_self(); - signal(SIGPIPE,handle_sigpipe); - signal(SIGTERM,handle_sigterm); -} - -static int open_and_dup(int fd,char* path) -{ - int old_fd; - if ((old_fd=my_open(path,O_WRONLY|O_APPEND|O_CREAT,MYF(0)))<0) - { - log_err("Could not open '%s' for append, errno=%d",path,errno); - return 1; - } - if (dup2(old_fd,fd)<0) - { - log_err("Failed in dup2(), errno=%d",errno); - return 1; - } - my_close(old_fd,MYF(0)); - return 0; -} - -static void run_launcher_loop() -{ - for (;;) - { - int req_len,ident_len,num_args; - char* request_buf=0; - pid_t pid; - char* exec_path,*ident,*stdout_path,*stderr_path; - char** args=0; - - if (my_read(to_launcher_pipe[0],(byte*)&req_len, - sizeof(int),MYF(MY_NABP|MY_FULL_IO)) || - my_read(to_launcher_pipe[0],(byte*)&num_args, - sizeof(int),MYF(MY_NABP|MY_FULL_IO)) || - !(request_buf=(char*)my_malloc(req_len+sizeof(pid)+2,MYF(0))) || - !(args=(char**)my_malloc(num_args*sizeof(char*),MYF(0))) || - my_read(to_launcher_pipe[0],request_buf,req_len, - MYF(MY_NABP|MY_FULL_IO))) - { - log_err("launcher: Error reading request"); - my_free((gptr)request_buf,MYF(MY_ALLOW_ZERO_PTR)); - my_free((gptr)args,MYF(MY_ALLOW_ZERO_PTR)); - sleep(1); - continue; - } - stdout_path=request_buf; - stderr_path=stdout_path+strlen(stdout_path)+1; - request_buf=stderr_path+strlen(stderr_path); /* black magic */ - ident=request_buf+1; - ident_len=strlen(ident); - exec_path=ident+ident_len+1; - log_debug("num_args=%d,req_len=%d,ident=%s,ident_len=%d,exec_path=%s,\ -stdout_path=%s,stderr_path=%s", - num_args, - req_len,ident,ident_len,exec_path,stdout_path,stderr_path); - init_arg_array(exec_path,args,num_args-1); - - switch ((pid=fork())) { - case -1: - log_err("launcher: cannot fork"); - sleep(1); - break; - case 0: - if (open_and_dup(1,stdout_path) || open_and_dup(2,stderr_path)) - exit(1); - if (execv(exec_path,args)) - log_err("launcher: cannot exec %s",exec_path); - exit(1); - default: - request_buf[0]=CHILD_START; - memcpy(request_buf+ident_len+2,&pid,sizeof(pid)); - if (write(from_launcher_pipe[1],request_buf,ident_len+2+sizeof(pid))<0) - log_err("launcher: error sending launch status report"); - break; - } - my_free((gptr)(stdout_path),MYF(0)); - my_free((gptr)args,MYF(0)); - } -} - -static void fork_launcher() -{ - if (pipe(to_launcher_pipe) || pipe(from_launcher_pipe)) - die("Could not create launcher pipes"); - switch ((launcher_pid=fork())) { - case 0: - signal(SIGCHLD,handle_child); - run_launcher_loop(); - exit(0); - case -1: die("Could not fork the launcher"); - default: return; - } -} - -static int daemonize() -{ - switch (fork()) { - case -1: - die("Cannot fork"); - case 0: - errfp = open_log_stream(); - init_globals(); - close(0); - close(1); - close(2); - init_server(); - run_server_loop(); - clean_up(); - break; - default: - break; - } - return 0; -} - -int main(int argc, char** argv) -{ - char c; - stack_bottom= (uchar *) &c; - MY_INIT(argv[0]); - errfp = stderr; - parse_args(argc,argv); - pthread_mutex_init(&lock_log,0); - pthread_mutex_init(&lock_shutdown,0); - pthread_mutex_init(&lock_exec_hash,0); - pthread_mutex_init(&lock_launch_thd,0); - pthread_cond_init(&cond_launch_thd,0); -#ifdef DO_STACKTRACE - signal(SIGSEGV,handle_segfault); -#endif - if (one_thread) - { - init_globals(); - init_server(); - run_server_loop(); - clean_up(); - return 0; - } - else - return daemonize(); -} - -#else - -#include - -int main(void) -{ - fprintf(stderr,"This tool has not been ported to NetWare\n"); - return 0; -} - -#endif /* __NETWARE__ */ - From 13bc3a71966c4514746772ee63de1c1326e1854a Mon Sep 17 00:00:00 2001 From: unknown Date: Tue, 11 Apr 2006 18:59:43 -0700 Subject: [PATCH 2/2] Remove Windows project files for mysql_test_run_new. BitKeeper/deleted/.del-mysql_test_run_new.dsp~9d8078f3f02fcc8e: Delete: VC++Files/mysql-test/mysql_test_run_new.dsp BitKeeper/deleted/.del-mysql_test_run_new_ia64.dsp~e7ee71ec8d2995e3: Delete: VC++Files/mysql-test/mysql_test_run_new_ia64.dsp BitKeeper/deleted/.del-mysql_test_run_new.vcproj~1ddaed30361efefe: Delete: VC++Files/mysql-test/mysql_test_run_new.vcproj VC++Files/mysql.dsw: Remove reference to mysql_test_run_new VC++Files/mysql.sln: Remove reference to mysql_test_run_new --- VC++Files/mysql-test/mysql_test_run_new.dsp | 106 --------- .../mysql-test/mysql_test_run_new.vcproj | 204 ------------------ .../mysql-test/mysql_test_run_new_ia64.dsp | 142 ------------ VC++Files/mysql.dsw | 23 -- VC++Files/mysql.sln | 7 - 5 files changed, 482 deletions(-) delete mode 100644 VC++Files/mysql-test/mysql_test_run_new.dsp delete mode 100644 VC++Files/mysql-test/mysql_test_run_new.vcproj delete mode 100644 VC++Files/mysql-test/mysql_test_run_new_ia64.dsp diff --git a/VC++Files/mysql-test/mysql_test_run_new.dsp b/VC++Files/mysql-test/mysql_test_run_new.dsp deleted file mode 100644 index 5ff07f0994d..00000000000 --- a/VC++Files/mysql-test/mysql_test_run_new.dsp +++ /dev/null @@ -1,106 +0,0 @@ -# Microsoft Developer Studio Project File - Name="mysql_test_run_new" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=mysql_test_run_new - Win32 Debug -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "mysql_test_run_new.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "mysql_test_run_new.mak" CFG="mysql_test_run_new - Win32 Debug" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "mysql_test_run_new - Win32 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE "mysql_test_run_new - Win32 Release" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "mysql_test_run_new - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir ".\Debug" -# PROP BASE Intermediate_Dir ".\Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir ".\Debug" -# PROP Intermediate_Dir ".\Debug" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /I "../include" /I "../" /Z7 /W3 /Od /G6 /D "_DEBUG" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /D "MYSQL_CLIENT" /D "__WIN__" /D "_WIN32" /Fp".\Debug/mysql_test_run_new.pch" /Fo".\Debug/" /Fd".\Debug/" /GZ /FD /c /GX -# ADD CPP /nologo /MTd /I "../include" /I "../" /Z7 /W3 /Od /G6 /D "_DEBUG" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /D "MYSQL_CLIENT" /D "__WIN__" /D "_WIN32" /Fp".\Debug/mysql_test_run_new.pch" /Fo".\Debug/" /Fd".\Debug/" /GZ /FD /c /GX -# ADD BASE MTL /nologo /tlb".\Debug\mysql_test_run_new.tlb" /win32 -# ADD MTL /nologo /tlb".\Debug\mysql_test_run_new.tlb" /win32 -# ADD BASE RSC /l 1033 -# ADD RSC /l 1033 -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /out:"..\mysql-test\mysql_test_run_new.exe" /incremental:yes /debug /pdb:".\Debug\mysql_test_run_new.pdb" /pdbtype:sept /map:".\Debug\mysql_test_run_new.map" /subsystem:console -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib zlib.lib /nologo /out:"..\mysql-test\mysql_test_run_new.exe" /incremental:yes /libpath:"..\lib_debug\" /debug /pdb:".\Debug\mysql_test_run_new.pdb" /pdbtype:sept /map:".\Debug\mysql_test_run_new.map" /subsystem:console - -!ELSEIF "$(CFG)" == "mysql_test_run_new - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir ".\Release" -# PROP BASE Intermediate_Dir ".\Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir ".\Release" -# PROP Intermediate_Dir ".\Release" -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /I "../include" /I "../" /W3 /Ob1 /G6 /D "DBUG_OFF" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /D "MYSQL_CLIENT" /D "__WIN__" /D "_WIN32" /GF /Gy /Fp".\Release/mysql_test_run_new.pch" /Fo".\Release/" /Fd".\Release/" /FD /c /GX -# ADD CPP /nologo /MTd /I "../include" /I "../" /W3 /Ob1 /G6 /D "DBUG_OFF" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /D "MYSQL_CLIENT" /D "__WIN__" /D "_WIN32" /GF /Gy /Fp".\Release/mysql_test_run_new.pch" /Fo".\Release/" /Fd".\Release/" /FD /c /GX -# ADD BASE MTL /nologo /tlb".\Release\mysql_test_run_new.tlb" /win32 -# ADD MTL /nologo /tlb".\Release\mysql_test_run_new.tlb" /win32 -# ADD BASE RSC /l 1033 -# ADD RSC /l 1033 -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /out:"..\mysql-test\mysql_test_run_new.exe" /incremental:no /pdb:".\Release\mysql_test_run_new.pdb" /pdbtype:sept /subsystem:console -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib zlib.lib /nologo /out:"..\mysql-test\mysql_test_run_new.exe" /incremental:no /libpath:"..\lib_release\" /pdb:".\Release\mysql_test_run_new.pdb" /pdbtype:sept /subsystem:console - -!ENDIF - -# Begin Target - -# Name "mysql_test_run_new - Win32 Debug" -# Name "mysql_test_run_new - Win32 Release" -# Begin Source File - -SOURCE=.\my_create_tables.c -# End Source File -# Begin Source File - -SOURCE=.\my_manage.c -# End Source File -# Begin Source File - -SOURCE=.\my_manage.h -# End Source File -# Begin Source File - -SOURCE=.\mysql_test_run_new.c -# End Source File -# End Target -# End Project - diff --git a/VC++Files/mysql-test/mysql_test_run_new.vcproj b/VC++Files/mysql-test/mysql_test_run_new.vcproj deleted file mode 100644 index 12d502e5768..00000000000 --- a/VC++Files/mysql-test/mysql_test_run_new.vcproj +++ /dev/null @@ -1,204 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/VC++Files/mysql-test/mysql_test_run_new_ia64.dsp b/VC++Files/mysql-test/mysql_test_run_new_ia64.dsp deleted file mode 100644 index 023b38bd3c6..00000000000 --- a/VC++Files/mysql-test/mysql_test_run_new_ia64.dsp +++ /dev/null @@ -1,142 +0,0 @@ -# Microsoft Developer Studio Project File - Name="mysql_test_run_new" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Console Application" 0x0103 - -CFG=mysql_test_run_new - WinIA64 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "mysql_test_run_new_ia64.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "mysql_test_run_new_ia64.mak" CFG="mysql_test_run_new - WinIA64 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "mysql_test_run_new - WinIA64 Debug" (based on "Win32 (x86) Console Application") -!MESSAGE "mysql_test_run_new - WinIA64 Release" (based on "Win32 (x86) Console Application") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -RSC=rc.exe - -!IF "$(CFG)" == "mysql_test_run_new - WinIA64 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir ".\Debug" -# PROP BASE Intermediate_Dir ".\Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir ".\Debug" -# PROP Intermediate_Dir ".\Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -MTL=midl.exe -# ADD BASE MTL /nologo /tlb".\Debug\mysql_test_run_new.tlb" /WinIA64 -# ADD MTL /nologo /tlb".\Debug\mysql_test_run_new.tlb" /WinIA64 -# ADD BASE CPP /nologo /G6 /MTd /W3 /GX /Z7 /Od /I "../include" /I "../" /D "_DEBUG" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /D "MYSQL_CLIENT" /D "__WIN__" /D "_WIN64" /GZ /c -# ADD CPP /nologo /MTd /W3 /Zi /Od /I "../include" /I "../" /D "_DEBUG" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /D "MYSQL_CLIENT" /D "__WIN__" /D "_WIN64" /D "_IA64_" /D "WIN64" /D "WIN32" /D "_AFX_NO_DAO_SUPPORT" /GZ /G2 /EHsc /Wp64 /Zm600 /c -# ADD BASE RSC /l 0x409 -# ADD RSC /l 0x409 -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /subsystem:console /map /debug /out:"..\mysql-test\mysql_test_run_new.exe" /machine:IA64 -# SUBTRACT BASE LINK32 /pdb:none -# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Ws2_32.lib bufferoverflowU.lib zlib.lib /nologo /subsystem:console /incremental:no /libpath:"..\lib_debug\" /map /debug /out:"..\mysql-test\mysql_test_run_new.exe" /machine:IA64 -# SUBTRACT LINK32 /pdb:none - -!ELSEIF "$(CFG)" == "mysql_test_run_new - WinIA64 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir ".\Release" -# PROP BASE Intermediate_Dir ".\Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir ".\Release" -# PROP Intermediate_Dir ".\Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -MTL=midl.exe -# ADD BASE MTL /nologo /tlb".\Release\mysql_test_run_new.tlb" /WinIA64 -# ADD MTL /nologo /tlb".\Release\mysql_test_run_new.tlb" /WinIA64 -# ADD BASE CPP /nologo /G6 /MTd /W3 /GX /Ob1 /Gy /I "../include" /I "../" /D "DBUG_OFF" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /D "MYSQL_CLIENT" /D "__WIN__" /D "_WIN64" /GF /c -# ADD CPP /nologo /MTd /W3 /Zi /O2 /I "../include" /I "../" /D "DBUG_OFF" /D "_WINDOWS" /D "SAFE_MUTEX" /D "USE_TLS" /D "MYSQL_CLIENT" /D "__WIN__" /D "_WIN64" /D "_IA64_" /D "WIN64" /D "WIN32" /D "_AFX_NO_DAO_SUPPORT" /GF /G2 /EHsc /Wp64 /Zm600 /c -# ADD BASE RSC /l 0x409 -# ADD RSC /l 0x409 -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib odbc32.lib odbccp32.lib Ws2_32.lib /nologo /subsystem:console /out:"..\mysql-test\mysql_test_run_new.exe" /machine:IA64 -# SUBTRACT BASE LINK32 /pdb:none -# ADD LINK32 t kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib Ws2_32.lib bufferoverflowU.lib zlib.lib /nologo /subsystem:console /libpath:"..\lib_release\" /out:"..\mysql-test\mysql_test_run_new.exe" /machine:IA64 -# SUBTRACT LINK32 /pdb:none - -!ENDIF - -# Begin Target - -# Name "mysql_test_run_new - WinIA64 Debug" -# Name "mysql_test_run_new - WinIA64 Release" -# Begin Source File - -SOURCE=.\my_create_tables.c -DEP_CPP_MY_CR=\ - "..\include\config-netware.h"\ - "..\include\config-os2.h"\ - "..\include\config-win.h"\ - "..\include\m_string.h"\ - "..\include\my_config.h"\ - "..\include\my_dbug.h"\ - "..\include\my_global.h"\ - ".\my_manage.h"\ - -# End Source File -# Begin Source File - -SOURCE=.\my_manage.c -DEP_CPP_MY_MA=\ - "..\include\config-netware.h"\ - "..\include\config-os2.h"\ - "..\include\config-win.h"\ - "..\include\m_string.h"\ - "..\include\my_config.h"\ - "..\include\my_dbug.h"\ - "..\include\my_global.h"\ - ".\my_manage.h"\ - -# End Source File -# Begin Source File - -SOURCE=.\my_manage.h -# End Source File -# Begin Source File - -SOURCE=.\mysql_test_run_new.c -DEP_CPP_MYSQL=\ - "..\include\config-netware.h"\ - "..\include\config-os2.h"\ - "..\include\config-win.h"\ - "..\include\m_string.h"\ - "..\include\my_config.h"\ - "..\include\my_dbug.h"\ - "..\include\my_global.h"\ - ".\my_manage.h"\ - -# End Source File -# End Target -# End Project diff --git a/VC++Files/mysql.dsw b/VC++Files/mysql.dsw index b31b0dd0d29..dd70ad630a1 100644 --- a/VC++Files/mysql.dsw +++ b/VC++Files/mysql.dsw @@ -810,29 +810,6 @@ Project: "mysql_client_test"=.\tests\mysql_client_test.dsp - Package Owner=<4> {{{ }}} - ############################################################################### - - -Project: "mysql_test_run_new"=".\mysql-test\mysql_test_run_new.dsp" - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ Begin Project Dependency - Project_Dep_Name mysqltest - End Project Dependency - Begin Project Dependency - Project_Dep_Name mysqladmin - Begin Project Dependency - Project_Dep_Name mysql_upgrade - End Project Dependency - Begin Project Dependency - Project_Dep_Name mysql_client_test - End Project Dependency -}}} - ############################################################################### diff --git a/VC++Files/mysql.sln b/VC++Files/mysql.sln index f4204b00bc4..344aaa38507 100644 --- a/VC++Files/mysql.sln +++ b/VC++Files/mysql.sln @@ -251,13 +251,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mysql_client_test", "tests\ {26383276-4843-494B-8BE0-8936ED3EBAAB} = {26383276-4843-494B-8BE0-8936ED3EBAAB} EndProjectSection EndProject -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mysql_test_run_new", "mysql-test\mysql_test_run_new.vcproj", "{6189F838-21C6-42A1-B2D0-9146316573F7}" - ProjectSection(ProjectDependencies) = postProject - {8961F149-C68A-4154-A499-A2AB39E607E8} = {8961F149-C68A-4154-A499-A2AB39E607E8} - {DA224DAB-5006-42BE-BB77-16E8BE5326D5} = {DA224DAB-5006-42BE-BB77-16E8BE5326D5} - {D2B00DE0-F6E9-40AF-B90D-A257D014F098} = {D2B00DE0-F6E9-40AF-B90D-A257D014F098} - EndProjectSection -EndProject Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "mysqlmanager", "server-tools\instance-manager\mysqlmanager.vcproj", "{6D524B3E-210A-4FCD-8D41-FEC0D21E83AC}" ProjectSection(ProjectDependencies) = postProject {EEC1300B-85A5-497C-B3E1-F708021DF859} = {EEC1300B-85A5-497C-B3E1-F708021DF859}