From 40b13d56a64ebe7834000c897e1bd504e6b834ee Mon Sep 17 00:00:00 2001 From: pfhenley86 Date: Tue, 11 Feb 2014 19:33:22 -0600 Subject: [PATCH] Intial Install --- drupal-dev/CHANGELOG.txt | 1833 ++ drupal-dev/COPYRIGHT.txt | 44 + drupal-dev/INSTALL.mysql.txt | 42 + drupal-dev/INSTALL.pgsql.txt | 44 + drupal-dev/INSTALL.sqlite.txt | 31 + drupal-dev/INSTALL.txt | 400 + drupal-dev/LICENSE.txt | 339 + drupal-dev/MAINTAINERS.txt | 303 + drupal-dev/README.txt | 123 + drupal-dev/UPGRADE.txt | 236 + drupal-dev/authorize.php | 174 + drupal-dev/cron.php | 26 + drupal-dev/includes/actions.inc | 388 + drupal-dev/includes/ajax.inc | 1212 + drupal-dev/includes/archiver.inc | 68 + drupal-dev/includes/authorize.inc | 334 + drupal-dev/includes/batch.inc | 539 + drupal-dev/includes/batch.queue.inc | 84 + drupal-dev/includes/bootstrap.inc | 3487 +++ drupal-dev/includes/cache-install.inc | 74 + drupal-dev/includes/cache.inc | 575 + drupal-dev/includes/common.inc | 8224 +++++++ drupal-dev/includes/database/database.inc | 3039 +++ drupal-dev/includes/database/log.inc | 161 + .../includes/database/mysql/database.inc | 203 + .../includes/database/mysql/install.inc | 33 + drupal-dev/includes/database/mysql/query.inc | 94 + drupal-dev/includes/database/mysql/schema.inc | 536 + .../includes/database/pgsql/database.inc | 223 + .../includes/database/pgsql/install.inc | 197 + drupal-dev/includes/database/pgsql/query.inc | 210 + drupal-dev/includes/database/pgsql/schema.inc | 617 + drupal-dev/includes/database/pgsql/select.inc | 108 + drupal-dev/includes/database/prefetch.inc | 507 + drupal-dev/includes/database/query.inc | 1963 ++ drupal-dev/includes/database/schema.inc | 727 + drupal-dev/includes/database/select.inc | 1613 ++ .../includes/database/sqlite/database.inc | 519 + .../includes/database/sqlite/install.inc | 51 + drupal-dev/includes/database/sqlite/query.inc | 140 + .../includes/database/sqlite/schema.inc | 683 + .../includes/database/sqlite/select.inc | 27 + drupal-dev/includes/date.inc | 196 + drupal-dev/includes/entity.inc | 1360 ++ drupal-dev/includes/errors.inc | 286 + drupal-dev/includes/file.inc | 2518 ++ drupal-dev/includes/file.mimetypes.inc | 859 + .../includes/filetransfer/filetransfer.inc | 427 + drupal-dev/includes/filetransfer/ftp.inc | 144 + drupal-dev/includes/filetransfer/local.inc | 76 + drupal-dev/includes/filetransfer/ssh.inc | 108 + drupal-dev/includes/form.inc | 4617 ++++ drupal-dev/includes/graph.inc | 145 + drupal-dev/includes/image.inc | 435 + drupal-dev/includes/install.core.inc | 1909 ++ drupal-dev/includes/install.inc | 1332 + drupal-dev/includes/iso.inc | 483 + drupal-dev/includes/json-encode.inc | 102 + drupal-dev/includes/language.inc | 580 + drupal-dev/includes/locale.inc | 2442 ++ drupal-dev/includes/lock.inc | 274 + drupal-dev/includes/mail.inc | 623 + drupal-dev/includes/menu.inc | 3891 +++ drupal-dev/includes/module.inc | 1103 + drupal-dev/includes/pager.inc | 664 + drupal-dev/includes/password.inc | 287 + drupal-dev/includes/path.inc | 587 + drupal-dev/includes/registry.inc | 189 + drupal-dev/includes/session.inc | 533 + drupal-dev/includes/stream_wrappers.inc | 834 + drupal-dev/includes/tablesort.inc | 256 + drupal-dev/includes/theme.inc | 2918 +++ drupal-dev/includes/theme.maintenance.inc | 211 + drupal-dev/includes/token.inc | 264 + drupal-dev/includes/unicode.entities.inc | 265 + drupal-dev/includes/unicode.inc | 672 + drupal-dev/includes/update.inc | 1477 ++ drupal-dev/includes/updater.inc | 427 + drupal-dev/includes/utility.inc | 66 + drupal-dev/includes/xmlrpc.inc | 624 + drupal-dev/includes/xmlrpcs.inc | 384 + drupal-dev/index.php | 21 + drupal-dev/install.php | 26 + drupal-dev/misc/ajax.js | 622 + drupal-dev/misc/arrow-asc.png | Bin 0 -> 118 bytes drupal-dev/misc/arrow-desc.png | Bin 0 -> 118 bytes drupal-dev/misc/authorize.js | 27 + drupal-dev/misc/autocomplete.js | 324 + drupal-dev/misc/batch.js | 32 + drupal-dev/misc/collapse.js | 103 + drupal-dev/misc/configure.png | Bin 0 -> 248 bytes drupal-dev/misc/draggable.png | Bin 0 -> 268 bytes drupal-dev/misc/drupal.js | 433 + drupal-dev/misc/druplicon.png | Bin 0 -> 3905 bytes drupal-dev/misc/farbtastic/farbtastic.css | 36 + drupal-dev/misc/farbtastic/farbtastic.js | 8 + drupal-dev/misc/farbtastic/marker.png | Bin 0 -> 437 bytes drupal-dev/misc/farbtastic/mask.png | Bin 0 -> 2001 bytes drupal-dev/misc/farbtastic/wheel.png | Bin 0 -> 11589 bytes drupal-dev/misc/favicon.ico | Bin 0 -> 1150 bytes drupal-dev/misc/feed.png | Bin 0 -> 656 bytes drupal-dev/misc/form.js | 78 + drupal-dev/misc/forum-icons.png | Bin 0 -> 1765 bytes drupal-dev/misc/grippie.png | Bin 0 -> 106 bytes drupal-dev/misc/help.png | Bin 0 -> 294 bytes drupal-dev/misc/jquery.ba-bbq.js | 19 + drupal-dev/misc/jquery.cookie.js | 11 + drupal-dev/misc/jquery.form.js | 12 + drupal-dev/misc/jquery.js | 168 + drupal-dev/misc/jquery.once.js | 79 + drupal-dev/misc/machine-name.js | 127 + drupal-dev/misc/menu-collapsed-rtl.png | Bin 0 -> 107 bytes drupal-dev/misc/menu-collapsed.png | Bin 0 -> 105 bytes drupal-dev/misc/menu-expanded.png | Bin 0 -> 106 bytes drupal-dev/misc/menu-leaf.png | Bin 0 -> 126 bytes drupal-dev/misc/message-16-error.png | Bin 0 -> 519 bytes drupal-dev/misc/message-16-help.png | Bin 0 -> 668 bytes drupal-dev/misc/message-16-info.png | Bin 0 -> 733 bytes drupal-dev/misc/message-16-ok.png | Bin 0 -> 639 bytes drupal-dev/misc/message-16-warning.png | Bin 0 -> 442 bytes drupal-dev/misc/message-24-error.png | Bin 0 -> 733 bytes drupal-dev/misc/message-24-help.png | Bin 0 -> 1088 bytes drupal-dev/misc/message-24-info.png | Bin 0 -> 1011 bytes drupal-dev/misc/message-24-ok.png | Bin 0 -> 1058 bytes drupal-dev/misc/message-24-warning.png | Bin 0 -> 753 bytes drupal-dev/misc/permissions.png | Bin 0 -> 242 bytes drupal-dev/misc/powered-black-135x42.png | Bin 0 -> 2699 bytes drupal-dev/misc/powered-black-80x15.png | Bin 0 -> 1448 bytes drupal-dev/misc/powered-black-88x31.png | Bin 0 -> 2005 bytes drupal-dev/misc/powered-blue-135x42.png | Bin 0 -> 2879 bytes drupal-dev/misc/powered-blue-80x15.png | Bin 0 -> 943 bytes drupal-dev/misc/powered-blue-88x31.png | Bin 0 -> 2009 bytes drupal-dev/misc/powered-gray-135x42.png | Bin 0 -> 2594 bytes drupal-dev/misc/powered-gray-80x15.png | Bin 0 -> 698 bytes drupal-dev/misc/powered-gray-88x31.png | Bin 0 -> 1968 bytes drupal-dev/misc/print-rtl.css | 7 + drupal-dev/misc/print.css | 25 + drupal-dev/misc/progress.gif | Bin 0 -> 5872 bytes drupal-dev/misc/progress.js | 106 + drupal-dev/misc/states.js | 544 + drupal-dev/misc/tabledrag.js | 1176 + drupal-dev/misc/tableheader.js | 133 + drupal-dev/misc/tableselect.js | 92 + drupal-dev/misc/textarea.js | 32 + drupal-dev/misc/throbber.gif | Bin 0 -> 1336 bytes drupal-dev/misc/timezone.js | 66 + drupal-dev/misc/tree-bottom.png | Bin 0 -> 129 bytes drupal-dev/misc/tree.png | Bin 0 -> 130 bytes .../ui/images/ui-bg_flat_0_aaaaaa_40x100.png | Bin 0 -> 180 bytes .../ui/images/ui-bg_flat_75_ffffff_40x100.png | Bin 0 -> 178 bytes .../ui/images/ui-bg_glass_55_fbf9ee_1x400.png | Bin 0 -> 120 bytes .../ui/images/ui-bg_glass_65_ffffff_1x400.png | Bin 0 -> 105 bytes .../ui/images/ui-bg_glass_75_dadada_1x400.png | Bin 0 -> 111 bytes .../ui/images/ui-bg_glass_75_e6e6e6_1x400.png | Bin 0 -> 110 bytes .../ui/images/ui-bg_glass_95_fef1ec_1x400.png | Bin 0 -> 119 bytes .../ui-bg_highlight-soft_75_cccccc_1x100.png | Bin 0 -> 101 bytes .../ui/images/ui-icons_222222_256x240.png | Bin 0 -> 4369 bytes .../ui/images/ui-icons_2e83ff_256x240.png | Bin 0 -> 4369 bytes .../ui/images/ui-icons_454545_256x240.png | Bin 0 -> 4369 bytes .../ui/images/ui-icons_888888_256x240.png | Bin 0 -> 4369 bytes .../ui/images/ui-icons_cd0a0a_256x240.png | Bin 0 -> 4369 bytes .../misc/ui/jquery.effects.blind.min.js | 15 + .../misc/ui/jquery.effects.bounce.min.js | 16 + drupal-dev/misc/ui/jquery.effects.clip.min.js | 15 + drupal-dev/misc/ui/jquery.effects.core.min.js | 31 + drupal-dev/misc/ui/jquery.effects.drop.min.js | 15 + .../misc/ui/jquery.effects.explode.min.js | 16 + drupal-dev/misc/ui/jquery.effects.fade.min.js | 14 + drupal-dev/misc/ui/jquery.effects.fold.min.js | 15 + .../misc/ui/jquery.effects.highlight.min.js | 15 + .../misc/ui/jquery.effects.pulsate.min.js | 15 + .../misc/ui/jquery.effects.scale.min.js | 21 + .../misc/ui/jquery.effects.shake.min.js | 15 + .../misc/ui/jquery.effects.slide.min.js | 15 + .../misc/ui/jquery.effects.transfer.min.js | 15 + drupal-dev/misc/ui/jquery.ui.accordion.css | 20 + drupal-dev/misc/ui/jquery.ui.accordion.min.js | 31 + drupal-dev/misc/ui/jquery.ui.autocomplete.css | 54 + .../misc/ui/jquery.ui.autocomplete.min.js | 32 + drupal-dev/misc/ui/jquery.ui.button.css | 39 + drupal-dev/misc/ui/jquery.ui.button.min.js | 26 + drupal-dev/misc/ui/jquery.ui.core.css | 42 + drupal-dev/misc/ui/jquery.ui.core.min.js | 18 + drupal-dev/misc/ui/jquery.ui.datepicker.css | 69 + .../misc/ui/jquery.ui.datepicker.min.js | 82 + drupal-dev/misc/ui/jquery.ui.dialog.css | 22 + drupal-dev/misc/ui/jquery.ui.dialog.min.js | 41 + drupal-dev/misc/ui/jquery.ui.draggable.min.js | 51 + drupal-dev/misc/ui/jquery.ui.droppable.min.js | 27 + drupal-dev/misc/ui/jquery.ui.mouse.min.js | 18 + drupal-dev/misc/ui/jquery.ui.position.min.js | 17 + drupal-dev/misc/ui/jquery.ui.progressbar.css | 12 + .../misc/ui/jquery.ui.progressbar.min.js | 17 + drupal-dev/misc/ui/jquery.ui.resizable.css | 21 + drupal-dev/misc/ui/jquery.ui.resizable.min.js | 48 + drupal-dev/misc/ui/jquery.ui.selectable.css | 11 + .../misc/ui/jquery.ui.selectable.min.js | 23 + drupal-dev/misc/ui/jquery.ui.slider.css | 25 + drupal-dev/misc/ui/jquery.ui.slider.min.js | 34 + drupal-dev/misc/ui/jquery.ui.sortable.min.js | 61 + drupal-dev/misc/ui/jquery.ui.tabs.css | 19 + drupal-dev/misc/ui/jquery.ui.tabs.min.js | 36 + drupal-dev/misc/ui/jquery.ui.theme.css | 253 + drupal-dev/misc/ui/jquery.ui.widget.min.js | 16 + drupal-dev/misc/vertical-tabs-rtl.css | 14 + drupal-dev/misc/vertical-tabs.css | 80 + drupal-dev/misc/vertical-tabs.js | 195 + drupal-dev/misc/watchdog-error.png | Bin 0 -> 780 bytes drupal-dev/misc/watchdog-ok.png | Bin 0 -> 375 bytes drupal-dev/misc/watchdog-warning.png | Bin 0 -> 318 bytes drupal-dev/modules/README.txt | 9 + .../aggregator/aggregator-feed-source.tpl.php | 36 + .../aggregator/aggregator-item.tpl.php | 47 + .../modules/aggregator/aggregator-rtl.css | 7 + .../aggregator-summary-item.tpl.php | 25 + .../aggregator-summary-items.tpl.php | 25 + .../aggregator/aggregator-wrapper.tpl.php | 20 + .../modules/aggregator/aggregator.admin.inc | 633 + .../modules/aggregator/aggregator.api.php | 220 + drupal-dev/modules/aggregator/aggregator.css | 41 + .../modules/aggregator/aggregator.fetcher.inc | 61 + drupal-dev/modules/aggregator/aggregator.info | 14 + .../modules/aggregator/aggregator.install | 330 + .../modules/aggregator/aggregator.module | 782 + .../modules/aggregator/aggregator.pages.inc | 582 + .../modules/aggregator/aggregator.parser.inc | 329 + .../aggregator/aggregator.processor.inc | 213 + drupal-dev/modules/aggregator/aggregator.test | 1019 + .../aggregator/tests/aggregator_test.info | 12 + .../aggregator/tests/aggregator_test.module | 58 + .../aggregator/tests/aggregator_test_atom.xml | 20 + .../tests/aggregator_test_rss091.xml | 41 + .../block/block-admin-display-form.tpl.php | 69 + drupal-dev/modules/block/block.admin.inc | 700 + drupal-dev/modules/block/block.api.php | 368 + drupal-dev/modules/block/block.css | 36 + drupal-dev/modules/block/block.info | 13 + drupal-dev/modules/block/block.install | 477 + drupal-dev/modules/block/block.js | 152 + drupal-dev/modules/block/block.module | 1092 + drupal-dev/modules/block/block.test | 979 + drupal-dev/modules/block/block.tpl.php | 58 + .../modules/block/tests/block_test.info | 12 + .../modules/block/tests/block_test.module | 67 + .../block_test_theme/block_test_theme.info | 20 + .../themes/block_test_theme/page.tpl.php | 78 + drupal-dev/modules/blog/blog.info | 12 + drupal-dev/modules/blog/blog.install | 23 + drupal-dev/modules/blog/blog.module | 272 + drupal-dev/modules/blog/blog.pages.inc | 127 + drupal-dev/modules/blog/blog.test | 213 + .../modules/book/book-all-books-block.tpl.php | 23 + .../modules/book/book-export-html.tpl.php | 52 + .../modules/book/book-navigation.tpl.php | 54 + .../book/book-node-export-html.tpl.php | 25 + drupal-dev/modules/book/book-rtl.css | 15 + drupal-dev/modules/book/book.admin.inc | 289 + drupal-dev/modules/book/book.css | 58 + drupal-dev/modules/book/book.info | 14 + drupal-dev/modules/book/book.install | 95 + drupal-dev/modules/book/book.js | 27 + drupal-dev/modules/book/book.module | 1437 ++ drupal-dev/modules/book/book.pages.inc | 247 + drupal-dev/modules/book/book.test | 398 + drupal-dev/modules/color/color-rtl.css | 48 + drupal-dev/modules/color/color.css | 85 + drupal-dev/modules/color/color.info | 12 + drupal-dev/modules/color/color.install | 66 + drupal-dev/modules/color/color.js | 250 + drupal-dev/modules/color/color.module | 815 + drupal-dev/modules/color/color.test | 133 + drupal-dev/modules/color/images/hook-rtl.png | Bin 0 -> 116 bytes drupal-dev/modules/color/images/hook.png | Bin 0 -> 116 bytes drupal-dev/modules/color/images/lock.png | Bin 0 -> 230 bytes drupal-dev/modules/color/preview.html | 7 + drupal-dev/modules/color/preview.js | 38 + .../modules/comment/comment-node-form.js | 32 + drupal-dev/modules/comment/comment-rtl.css | 5 + .../modules/comment/comment-wrapper.tpl.php | 52 + drupal-dev/modules/comment/comment.admin.inc | 284 + drupal-dev/modules/comment/comment.api.php | 145 + drupal-dev/modules/comment/comment.css | 13 + drupal-dev/modules/comment/comment.info | 16 + drupal-dev/modules/comment/comment.install | 578 + drupal-dev/modules/comment/comment.module | 2739 +++ drupal-dev/modules/comment/comment.pages.inc | 123 + drupal-dev/modules/comment/comment.test | 2225 ++ drupal-dev/modules/comment/comment.tokens.inc | 243 + drupal-dev/modules/comment/comment.tpl.php | 92 + drupal-dev/modules/contact/contact.admin.inc | 228 + drupal-dev/modules/contact/contact.info | 13 + drupal-dev/modules/contact/contact.install | 168 + drupal-dev/modules/contact/contact.module | 259 + drupal-dev/modules/contact/contact.pages.inc | 300 + drupal-dev/modules/contact/contact.test | 434 + .../modules/contextual/contextual-rtl.css | 20 + .../modules/contextual/contextual.api.php | 40 + drupal-dev/modules/contextual/contextual.css | 103 + drupal-dev/modules/contextual/contextual.info | 12 + drupal-dev/modules/contextual/contextual.js | 52 + .../modules/contextual/contextual.module | 169 + drupal-dev/modules/contextual/contextual.test | 49 + .../modules/contextual/images/gear-select.png | Bin 0 -> 506 bytes .../modules/dashboard/dashboard-rtl.css | 30 + .../modules/dashboard/dashboard.api.php | 42 + drupal-dev/modules/dashboard/dashboard.css | 134 + drupal-dev/modules/dashboard/dashboard.info | 14 + .../modules/dashboard/dashboard.install | 78 + drupal-dev/modules/dashboard/dashboard.js | 223 + drupal-dev/modules/dashboard/dashboard.module | 681 + drupal-dev/modules/dashboard/dashboard.test | 141 + drupal-dev/modules/dblog/dblog-rtl.css | 11 + drupal-dev/modules/dblog/dblog.admin.inc | 418 + drupal-dev/modules/dblog/dblog.css | 64 + drupal-dev/modules/dblog/dblog.info | 12 + drupal-dev/modules/dblog/dblog.install | 159 + drupal-dev/modules/dblog/dblog.module | 187 + drupal-dev/modules/dblog/dblog.test | 637 + drupal-dev/modules/field/field.api.php | 2698 ++ drupal-dev/modules/field/field.attach.inc | 1416 ++ drupal-dev/modules/field/field.crud.inc | 1010 + drupal-dev/modules/field/field.default.inc | 268 + drupal-dev/modules/field/field.form.inc | 604 + drupal-dev/modules/field/field.info | 18 + drupal-dev/modules/field/field.info.class.inc | 668 + drupal-dev/modules/field/field.info.inc | 812 + drupal-dev/modules/field/field.install | 471 + drupal-dev/modules/field/field.module | 1217 + .../modules/field/field.multilingual.inc | 301 + .../field_sql_storage/field_sql_storage.info | 14 + .../field_sql_storage.install | 215 + .../field_sql_storage.module | 758 + .../field_sql_storage/field_sql_storage.test | 441 + .../modules/field/modules/list/list.info | 14 + .../modules/field/modules/list/list.install | 138 + .../modules/field/modules/list/list.module | 486 + .../field/modules/list/tests/list.test | 457 + .../field/modules/list/tests/list_test.info | 12 + .../field/modules/list/tests/list_test.module | 32 + .../modules/field/modules/number/number.info | 13 + .../field/modules/number/number.install | 45 + .../field/modules/number/number.module | 419 + .../modules/field/modules/number/number.test | 155 + .../field/modules/options/options.api.php | 74 + .../field/modules/options/options.info | 13 + .../field/modules/options/options.module | 417 + .../field/modules/options/options.test | 553 + .../modules/field/modules/text/text.info | 14 + .../modules/field/modules/text/text.install | 95 + drupal-dev/modules/field/modules/text/text.js | 49 + .../modules/field/modules/text/text.module | 611 + .../modules/field/modules/text/text.test | 517 + drupal-dev/modules/field/tests/field.test | 3709 +++ .../modules/field/tests/field_test.entity.inc | 500 + .../modules/field/tests/field_test.field.inc | 413 + .../modules/field/tests/field_test.info | 13 + .../modules/field/tests/field_test.install | 162 + .../modules/field/tests/field_test.module | 269 + .../field/tests/field_test.storage.inc | 473 + drupal-dev/modules/field/theme/field-rtl.css | 14 + drupal-dev/modules/field/theme/field.css | 28 + drupal-dev/modules/field/theme/field.tpl.php | 62 + drupal-dev/modules/field_ui/field_ui-rtl.css | 9 + .../modules/field_ui/field_ui.admin.inc | 2112 ++ drupal-dev/modules/field_ui/field_ui.api.php | 204 + drupal-dev/modules/field_ui/field_ui.css | 71 + drupal-dev/modules/field_ui/field_ui.info | 13 + drupal-dev/modules/field_ui/field_ui.js | 341 + drupal-dev/modules/field_ui/field_ui.module | 394 + drupal-dev/modules/field_ui/field_ui.test | 751 + drupal-dev/modules/file/file.api.php | 60 + drupal-dev/modules/file/file.css | 35 + drupal-dev/modules/file/file.field.inc | 1024 + drupal-dev/modules/file/file.info | 13 + drupal-dev/modules/file/file.install | 98 + drupal-dev/modules/file/file.js | 155 + drupal-dev/modules/file/file.module | 1013 + .../file/icons/application-octet-stream.png | Bin 0 -> 189 bytes .../modules/file/icons/application-pdf.png | Bin 0 -> 346 bytes .../file/icons/application-x-executable.png | Bin 0 -> 189 bytes .../modules/file/icons/audio-x-generic.png | Bin 0 -> 314 bytes .../modules/file/icons/image-x-generic.png | Bin 0 -> 385 bytes .../modules/file/icons/package-x-generic.png | Bin 0 -> 260 bytes drupal-dev/modules/file/icons/text-html.png | Bin 0 -> 265 bytes drupal-dev/modules/file/icons/text-plain.png | Bin 0 -> 220 bytes .../modules/file/icons/text-x-generic.png | Bin 0 -> 220 bytes .../modules/file/icons/text-x-script.png | Bin 0 -> 276 bytes .../modules/file/icons/video-x-generic.png | Bin 0 -> 214 bytes .../modules/file/icons/x-office-document.png | Bin 0 -> 196 bytes .../file/icons/x-office-presentation.png | Bin 0 -> 181 bytes .../file/icons/x-office-spreadsheet.png | Bin 0 -> 183 bytes drupal-dev/modules/file/tests/file.test | 1171 + .../modules/file/tests/file_module_test.info | 12 + .../file/tests/file_module_test.module | 69 + drupal-dev/modules/filter/filter.admin.inc | 408 + drupal-dev/modules/filter/filter.admin.js | 44 + drupal-dev/modules/filter/filter.api.php | 323 + drupal-dev/modules/filter/filter.css | 53 + drupal-dev/modules/filter/filter.info | 14 + drupal-dev/modules/filter/filter.install | 494 + drupal-dev/modules/filter/filter.js | 20 + drupal-dev/modules/filter/filter.module | 1786 ++ drupal-dev/modules/filter/filter.pages.inc | 92 + drupal-dev/modules/filter/filter.test | 1972 ++ .../modules/filter/tests/filter.url-input.txt | 36 + .../filter/tests/filter.url-output.txt | 36 + drupal-dev/modules/forum/forum-icon.tpl.php | 26 + drupal-dev/modules/forum/forum-list.tpl.php | 77 + drupal-dev/modules/forum/forum-rtl.css | 24 + .../modules/forum/forum-submitted.tpl.php | 30 + .../modules/forum/forum-topic-list.tpl.php | 72 + drupal-dev/modules/forum/forum.admin.inc | 352 + drupal-dev/modules/forum/forum.css | 54 + drupal-dev/modules/forum/forum.info | 16 + drupal-dev/modules/forum/forum.install | 467 + drupal-dev/modules/forum/forum.module | 1396 ++ drupal-dev/modules/forum/forum.pages.inc | 37 + drupal-dev/modules/forum/forum.test | 687 + drupal-dev/modules/forum/forums.tpl.php | 24 + drupal-dev/modules/help/help-rtl.css | 10 + drupal-dev/modules/help/help.admin.inc | 86 + drupal-dev/modules/help/help.api.php | 63 + drupal-dev/modules/help/help.css | 9 + drupal-dev/modules/help/help.info | 12 + drupal-dev/modules/help/help.module | 63 + drupal-dev/modules/help/help.test | 137 + drupal-dev/modules/image/image-rtl.css | 11 + drupal-dev/modules/image/image.admin.css | 60 + drupal-dev/modules/image/image.admin.inc | 925 + drupal-dev/modules/image/image.api.php | 200 + drupal-dev/modules/image/image.css | 14 + drupal-dev/modules/image/image.effects.inc | 314 + drupal-dev/modules/image/image.field.inc | 642 + drupal-dev/modules/image/image.info | 14 + drupal-dev/modules/image/image.install | 522 + drupal-dev/modules/image/image.module | 1393 ++ drupal-dev/modules/image/image.test | 1865 ++ drupal-dev/modules/image/sample.png | Bin 0 -> 168110 bytes .../image/tests/image_module_test.info | 13 + .../image/tests/image_module_test.module | 50 + drupal-dev/modules/locale/locale-rtl.css | 12 + drupal-dev/modules/locale/locale.admin.inc | 1436 ++ drupal-dev/modules/locale/locale.api.php | 41 + drupal-dev/modules/locale/locale.css | 32 + .../modules/locale/locale.datepicker.js | 79 + drupal-dev/modules/locale/locale.info | 13 + drupal-dev/modules/locale/locale.install | 457 + drupal-dev/modules/locale/locale.module | 1098 + drupal-dev/modules/locale/locale.test | 3143 +++ .../modules/locale/tests/locale_test.info | 12 + .../modules/locale/tests/locale_test.js | 46 + .../modules/locale/tests/locale_test.module | 242 + .../locale/tests/translations/test.xx.po | 28 + drupal-dev/modules/menu/menu.admin.inc | 700 + drupal-dev/modules/menu/menu.admin.js | 46 + drupal-dev/modules/menu/menu.api.php | 87 + drupal-dev/modules/menu/menu.css | 12 + drupal-dev/modules/menu/menu.info | 13 + drupal-dev/modules/menu/menu.install | 210 + drupal-dev/modules/menu/menu.js | 65 + drupal-dev/modules/menu/menu.module | 794 + drupal-dev/modules/menu/menu.test | 724 + drupal-dev/modules/node/content_types.inc | 450 + drupal-dev/modules/node/content_types.js | 34 + drupal-dev/modules/node/node.admin.inc | 704 + drupal-dev/modules/node/node.api.php | 1298 + drupal-dev/modules/node/node.css | 10 + drupal-dev/modules/node/node.info | 16 + drupal-dev/modules/node/node.install | 938 + drupal-dev/modules/node/node.js | 43 + drupal-dev/modules/node/node.module | 4174 ++++ drupal-dev/modules/node/node.pages.inc | 678 + drupal-dev/modules/node/node.test | 2848 +++ drupal-dev/modules/node/node.tokens.inc | 191 + drupal-dev/modules/node/node.tpl.php | 112 + .../modules/node/tests/node_access_test.info | 12 + .../node/tests/node_access_test.install | 42 + .../node/tests/node_access_test.module | 230 + drupal-dev/modules/node/tests/node_test.info | 12 + .../modules/node/tests/node_test.module | 181 + .../node/tests/node_test_exception.info | 12 + .../node/tests/node_test_exception.module | 15 + drupal-dev/modules/openid/login-bg.png | Bin 0 -> 205 bytes drupal-dev/modules/openid/openid-rtl.css | 18 + drupal-dev/modules/openid/openid.api.php | 116 + drupal-dev/modules/openid/openid.css | 46 + drupal-dev/modules/openid/openid.inc | 894 + drupal-dev/modules/openid/openid.info | 12 + drupal-dev/modules/openid/openid.install | 230 + drupal-dev/modules/openid/openid.js | 49 + drupal-dev/modules/openid/openid.module | 1034 + drupal-dev/modules/openid/openid.pages.inc | 116 + drupal-dev/modules/openid/openid.test | 802 + .../modules/openid/tests/openid_test.info | 13 + .../modules/openid/tests/openid_test.install | 17 + .../modules/openid/tests/openid_test.module | 367 + .../modules/overlay/images/background.png | Bin 0 -> 76 bytes .../modules/overlay/images/close-rtl.png | Bin 0 -> 368 bytes drupal-dev/modules/overlay/images/close.png | Bin 0 -> 344 bytes .../modules/overlay/overlay-child-rtl.css | 40 + drupal-dev/modules/overlay/overlay-child.css | 172 + drupal-dev/modules/overlay/overlay-child.js | 196 + drupal-dev/modules/overlay/overlay-parent.css | 55 + drupal-dev/modules/overlay/overlay-parent.js | 1015 + drupal-dev/modules/overlay/overlay.api.php | 40 + drupal-dev/modules/overlay/overlay.info | 11 + drupal-dev/modules/overlay/overlay.install | 19 + drupal-dev/modules/overlay/overlay.module | 1010 + drupal-dev/modules/overlay/overlay.tpl.php | 39 + drupal-dev/modules/path/path.admin.inc | 314 + drupal-dev/modules/path/path.api.php | 73 + drupal-dev/modules/path/path.info | 13 + drupal-dev/modules/path/path.js | 21 + drupal-dev/modules/path/path.module | 313 + drupal-dev/modules/path/path.test | 537 + drupal-dev/modules/php/php.info | 12 + drupal-dev/modules/php/php.install | 45 + drupal-dev/modules/php/php.module | 147 + drupal-dev/modules/php/php.test | 120 + .../modules/poll/poll-bar--block.tpl.php | 26 + drupal-dev/modules/poll/poll-bar.tpl.php | 26 + .../modules/poll/poll-results--block.tpl.php | 28 + drupal-dev/modules/poll/poll-results.tpl.php | 30 + drupal-dev/modules/poll/poll-rtl.css | 10 + drupal-dev/modules/poll/poll-vote.tpl.php | 31 + drupal-dev/modules/poll/poll.css | 51 + drupal-dev/modules/poll/poll.info | 13 + drupal-dev/modules/poll/poll.install | 215 + drupal-dev/modules/poll/poll.module | 1019 + drupal-dev/modules/poll/poll.pages.inc | 97 + drupal-dev/modules/poll/poll.test | 872 + drupal-dev/modules/poll/poll.tokens.inc | 107 + .../modules/profile/profile-block.tpl.php | 41 + .../modules/profile/profile-listing.tpl.php | 52 + .../modules/profile/profile-wrapper.tpl.php | 24 + drupal-dev/modules/profile/profile.admin.inc | 446 + drupal-dev/modules/profile/profile.css | 10 + drupal-dev/modules/profile/profile.info | 18 + drupal-dev/modules/profile/profile.install | 172 + drupal-dev/modules/profile/profile.js | 58 + drupal-dev/modules/profile/profile.module | 630 + drupal-dev/modules/profile/profile.pages.inc | 136 + drupal-dev/modules/profile/profile.test | 530 + drupal-dev/modules/rdf/rdf.api.php | 106 + drupal-dev/modules/rdf/rdf.info | 12 + drupal-dev/modules/rdf/rdf.install | 49 + drupal-dev/modules/rdf/rdf.module | 878 + drupal-dev/modules/rdf/rdf.test | 720 + drupal-dev/modules/rdf/tests/rdf_test.info | 12 + drupal-dev/modules/rdf/tests/rdf_test.install | 25 + drupal-dev/modules/rdf/tests/rdf_test.module | 66 + .../modules/search/search-block-form.tpl.php | 37 + .../modules/search/search-result.tpl.php | 81 + .../modules/search/search-results.tpl.php | 35 + drupal-dev/modules/search/search-rtl.css | 13 + drupal-dev/modules/search/search.admin.inc | 186 + drupal-dev/modules/search/search.api.php | 376 + drupal-dev/modules/search/search.css | 34 + drupal-dev/modules/search/search.extender.inc | 536 + drupal-dev/modules/search/search.info | 15 + drupal-dev/modules/search/search.install | 182 + drupal-dev/modules/search/search.module | 1356 + drupal-dev/modules/search/search.pages.inc | 158 + drupal-dev/modules/search/search.test | 2079 ++ .../modules/search/tests/UnicodeTest.txt | 333 + .../search/tests/search_embedded_form.info | 12 + .../search/tests/search_embedded_form.module | 70 + .../search/tests/search_extra_type.info | 12 + .../search/tests/search_extra_type.module | 69 + drupal-dev/modules/shortcut/shortcut-rtl.css | 48 + .../modules/shortcut/shortcut.admin.css | 8 + .../modules/shortcut/shortcut.admin.inc | 788 + drupal-dev/modules/shortcut/shortcut.admin.js | 115 + drupal-dev/modules/shortcut/shortcut.api.php | 42 + drupal-dev/modules/shortcut/shortcut.css | 106 + drupal-dev/modules/shortcut/shortcut.info | 13 + drupal-dev/modules/shortcut/shortcut.install | 115 + drupal-dev/modules/shortcut/shortcut.module | 767 + drupal-dev/modules/shortcut/shortcut.png | Bin 0 -> 558 bytes drupal-dev/modules/shortcut/shortcut.test | 371 + .../simpletest/drupal_web_test_case.php | 3706 +++ .../modules/simpletest/files/README.txt | 4 + .../files/css_test_files/comment_hacks.css | 80 + .../comment_hacks.css.optimized.css | 1 + .../comment_hacks.css.unoptimized.css | 80 + .../css_test_files/css_input_with_import.css | 30 + .../css_input_with_import.css.optimized.css | 6 + .../css_input_with_import.css.unoptimized.css | 40 + .../css_input_without_import.css | 69 + ...css_input_without_import.css.optimized.css | 4 + ...s_input_without_import.css.unoptimized.css | 69 + .../css_subfolder/css_input_with_import.css | 29 + .../css_input_with_import.css.optimized.css | 6 + .../css_input_with_import.css.unoptimized.css | 39 + .../files/css_test_files/import1.css | 6 + .../files/css_test_files/import2.css | 5 + .../modules/simpletest/files/html-1.txt | 1 + .../modules/simpletest/files/html-2.html | 1 + .../modules/simpletest/files/image-1.png | Bin 0 -> 39325 bytes .../modules/simpletest/files/image-2.jpg | Bin 0 -> 1831 bytes .../modules/simpletest/files/image-test.gif | Bin 0 -> 183 bytes .../modules/simpletest/files/image-test.jpg | Bin 0 -> 1901 bytes .../modules/simpletest/files/image-test.png | Bin 0 -> 125 bytes .../modules/simpletest/files/javascript-1.txt | 3 + .../simpletest/files/javascript-2.script | 3 + drupal-dev/modules/simpletest/files/php-1.txt | 3 + drupal-dev/modules/simpletest/files/php-2.php | 2 + drupal-dev/modules/simpletest/files/sql-1.txt | 1 + drupal-dev/modules/simpletest/files/sql-2.sql | 1 + .../Drupal/simpletest/Tests/PSR0WebTest.php | 18 + .../modules/simpletest/simpletest.api.php | 60 + drupal-dev/modules/simpletest/simpletest.css | 89 + drupal-dev/modules/simpletest/simpletest.info | 62 + .../modules/simpletest/simpletest.install | 182 + drupal-dev/modules/simpletest/simpletest.js | 104 + .../modules/simpletest/simpletest.module | 626 + .../modules/simpletest/simpletest.pages.inc | 513 + drupal-dev/modules/simpletest/simpletest.test | 746 + .../modules/simpletest/tests/actions.test | 126 + .../simpletest/tests/actions_loop_test.info | 12 + .../tests/actions_loop_test.install | 11 + .../simpletest/tests/actions_loop_test.module | 95 + drupal-dev/modules/simpletest/tests/ajax.test | 530 + .../simpletest/tests/ajax_forms_test.info | 12 + .../simpletest/tests/ajax_forms_test.module | 502 + .../modules/simpletest/tests/ajax_test.info | 12 + .../modules/simpletest/tests/ajax_test.module | 79 + .../modules/simpletest/tests/batch.test | 403 + .../simpletest/tests/batch_test.callbacks.inc | 141 + .../modules/simpletest/tests/batch_test.info | 12 + .../simpletest/tests/batch_test.module | 513 + .../modules/simpletest/tests/bootstrap.test | 543 + .../modules/simpletest/tests/cache.test | 437 + .../modules/simpletest/tests/common.test | 2787 +++ .../modules/simpletest/tests/common_test.css | 2 + .../modules/simpletest/tests/common_test.info | 14 + .../simpletest/tests/common_test.module | 276 + .../simpletest/tests/common_test.print.css | 2 + .../tests/common_test_cron_helper.info | 12 + .../tests/common_test_cron_helper.module | 17 + .../simpletest/tests/common_test_info.txt | 9 + .../simpletest/tests/database_test.info | 12 + .../simpletest/tests/database_test.install | 221 + .../simpletest/tests/database_test.module | 241 + .../simpletest/tests/database_test.test | 4111 ++++ ...drupal_system_listing_compatible_test.info | 12 + ...upal_system_listing_compatible_test.module | 1 + ...upal_system_listing_incompatible_test.info | 12 + ...al_system_listing_incompatible_test.module | 1 + .../simpletest/tests/entity_cache_test.info | 13 + .../simpletest/tests/entity_cache_test.module | 27 + .../tests/entity_cache_test_dependency.info | 12 + .../tests/entity_cache_test_dependency.module | 17 + .../tests/entity_crud_hook_test.info | 12 + .../tests/entity_crud_hook_test.module | 251 + .../tests/entity_crud_hook_test.test | 338 + .../simpletest/tests/entity_query.test | 1681 ++ .../tests/entity_query_access_test.info | 12 + .../tests/entity_query_access_test.module | 54 + .../modules/simpletest/tests/error.test | 116 + .../modules/simpletest/tests/error_test.info | 12 + .../simpletest/tests/error_test.module | 65 + drupal-dev/modules/simpletest/tests/file.test | 2782 +++ .../modules/simpletest/tests/file_test.info | 13 + .../modules/simpletest/tests/file_test.module | 461 + .../simpletest/tests/filetransfer.test | 168 + .../modules/simpletest/tests/filter_test.info | 12 + .../simpletest/tests/filter_test.module | 64 + drupal-dev/modules/simpletest/tests/form.test | 1867 ++ .../simpletest/tests/form_test.file.inc | 48 + .../modules/simpletest/tests/form_test.info | 12 + .../modules/simpletest/tests/form_test.module | 1857 ++ .../modules/simpletest/tests/graph.test | 195 + drupal-dev/modules/simpletest/tests/http.php | 32 + drupal-dev/modules/simpletest/tests/https.php | 31 + .../modules/simpletest/tests/image.test | 507 + .../modules/simpletest/tests/image_test.info | 12 + .../simpletest/tests/image_test.module | 138 + drupal-dev/modules/simpletest/tests/lock.test | 57 + drupal-dev/modules/simpletest/tests/mail.test | 461 + drupal-dev/modules/simpletest/tests/menu.test | 1740 ++ .../modules/simpletest/tests/menu_test.info | 12 + .../modules/simpletest/tests/menu_test.module | 563 + .../modules/simpletest/tests/module.test | 304 + .../simpletest/tests/module_test.file.inc | 13 + .../modules/simpletest/tests/module_test.info | 12 + .../simpletest/tests/module_test.install | 42 + .../simpletest/tests/module_test.module | 131 + .../modules/simpletest/tests/pager.test | 159 + .../modules/simpletest/tests/password.test | 60 + drupal-dev/modules/simpletest/tests/path.test | 381 + .../modules/simpletest/tests/path_test.info | 12 + .../modules/simpletest/tests/path_test.module | 23 + .../Drupal/psr_0_test/Tests/ExampleTest.php | 18 + .../Tests/Nested/NestedExampleTest.php | 18 + .../tests/psr_0_test/psr_0_test.info | 12 + .../tests/psr_0_test/psr_0_test.module | 1 + .../modules/simpletest/tests/registry.test | 142 + .../simpletest/tests/requirements1_test.info | 12 + .../tests/requirements1_test.install | 21 + .../tests/requirements1_test.module | 7 + .../simpletest/tests/requirements2_test.info | 14 + .../tests/requirements2_test.module | 7 + .../modules/simpletest/tests/schema.test | 384 + .../modules/simpletest/tests/session.test | 530 + .../simpletest/tests/session_test.info | 12 + .../simpletest/tests/session_test.module | 192 + .../modules/simpletest/tests/system.base.css | 6 + .../tests/system_dependencies_test.info | 13 + .../tests/system_dependencies_test.module | 1 + ...atible_core_version_dependencies_test.info | 13 + ...ible_core_version_dependencies_test.module | 1 + ...system_incompatible_core_version_test.info | 12 + ...stem_incompatible_core_version_test.module | 1 + ...ible_module_version_dependencies_test.info | 14 + ...le_module_version_dependencies_test.module | 1 + ...stem_incompatible_module_version_test.info | 12 + ...em_incompatible_module_version_test.module | 1 + .../modules/simpletest/tests/system_test.info | 13 + .../simpletest/tests/system_test.module | 407 + .../modules/simpletest/tests/tablesort.test | 166 + .../simpletest/tests/taxonomy_test.info | 13 + .../simpletest/tests/taxonomy_test.install | 34 + .../simpletest/tests/taxonomy_test.module | 111 + .../modules/simpletest/tests/theme.test | 502 + .../modules/simpletest/tests/theme_test.inc | 15 + .../modules/simpletest/tests/theme_test.info | 12 + .../simpletest/tests/theme_test.module | 134 + .../tests/theme_test.template_test.tpl.php | 2 + .../themes/test_basetheme/test_basetheme.info | 13 + .../themes/test_subtheme/test_subtheme.info | 13 + .../tests/themes/test_theme/template.php | 19 + .../tests/themes/test_theme/test_theme.info | 24 + .../modules/simpletest/tests/unicode.test | 305 + .../modules/simpletest/tests/update.test | 115 + .../simpletest/tests/update_script_test.info | 12 + .../tests/update_script_test.install | 45 + .../tests/update_script_test.module | 18 + .../simpletest/tests/update_test_1.info | 12 + .../simpletest/tests/update_test_1.install | 53 + .../simpletest/tests/update_test_1.module | 1 + .../simpletest/tests/update_test_2.info | 12 + .../simpletest/tests/update_test_2.install | 53 + .../simpletest/tests/update_test_2.module | 1 + .../simpletest/tests/update_test_3.info | 12 + .../simpletest/tests/update_test_3.install | 24 + .../simpletest/tests/update_test_3.module | 1 + .../tests/upgrade/drupal-6.bare.database.php | 8131 ++++++ .../upgrade/drupal-6.comments.database.php | 40 + ...drupal-6.duplicate-permission.database.php | 8 + .../upgrade/drupal-6.filled.database.php | 20384 ++++++++++++++++ .../tests/upgrade/drupal-6.forum.database.php | 274 + .../upgrade/drupal-6.locale.database.php | 276 + .../tests/upgrade/drupal-6.menu.database.php | 202 + .../drupal-6.node_type_broken.database.php | 34 + .../drupal-6.translatable.database.php | 125 + .../upgrade/drupal-6.trigger.database.php | 82 + .../upgrade/drupal-6.upload.database.php | 449 + ...upal-6.user-no-password-token.database.php | 10 + .../drupal-6.user-password-token.database.php | 55 + .../upgrade/drupal-7.aggregator.database.php | 149 + .../drupal-7.bare.minimal.database.php.gz | Bin 0 -> 39843 bytes ...drupal-7.bare.standard_all.database.php.gz | Bin 0 -> 77424 bytes .../tests/upgrade/drupal-7.field.database.php | 16 + .../drupal-7.filled.minimal.database.php.gz | Bin 0 -> 41805 bytes ...upal-7.filled.standard_all.database.php.gz | Bin 0 -> 97603 bytes .../upgrade/drupal-7.trigger.database.php | 28 + .../tests/upgrade/update.aggregator.test | 47 + .../tests/upgrade/update.field.test | 61 + .../tests/upgrade/update.trigger.test | 37 + .../simpletest/tests/upgrade/update.user.test | 35 + .../tests/upgrade/upgrade.comment.test | 32 + .../tests/upgrade/upgrade.filter.test | 55 + .../tests/upgrade/upgrade.forum.test | 64 + .../tests/upgrade/upgrade.locale.test | 143 + .../tests/upgrade/upgrade.menu.test | 83 + .../tests/upgrade/upgrade.node.test | 148 + .../tests/upgrade/upgrade.poll.test | 66 + .../tests/upgrade/upgrade.taxonomy.test | 201 + .../simpletest/tests/upgrade/upgrade.test | 737 + .../tests/upgrade/upgrade.translatable.test | 51 + .../tests/upgrade/upgrade.trigger.test | 39 + .../tests/upgrade/upgrade.upload.test | 83 + .../tests/upgrade/upgrade.user.test | 92 + .../simpletest/tests/url_alter_test.info | 12 + .../simpletest/tests/url_alter_test.install | 12 + .../simpletest/tests/url_alter_test.module | 71 + .../modules/simpletest/tests/xmlrpc.test | 244 + .../modules/simpletest/tests/xmlrpc_test.info | 12 + .../simpletest/tests/xmlrpc_test.module | 111 + .../modules/statistics/statistics.admin.inc | 319 + drupal-dev/modules/statistics/statistics.info | 13 + .../modules/statistics/statistics.install | 159 + drupal-dev/modules/statistics/statistics.js | 10 + .../modules/statistics/statistics.module | 465 + .../modules/statistics/statistics.pages.inc | 101 + drupal-dev/modules/statistics/statistics.php | 31 + drupal-dev/modules/statistics/statistics.test | 500 + .../modules/statistics/statistics.tokens.inc | 63 + drupal-dev/modules/syslog/syslog.info | 13 + drupal-dev/modules/syslog/syslog.install | 15 + drupal-dev/modules/syslog/syslog.module | 119 + drupal-dev/modules/syslog/syslog.test | 44 + drupal-dev/modules/system/html.tpl.php | 63 + drupal-dev/modules/system/image.gd.inc | 367 + drupal-dev/modules/system/language.api.php | 186 + .../modules/system/maintenance-page.tpl.php | 95 + drupal-dev/modules/system/page.tpl.php | 156 + drupal-dev/modules/system/region.tpl.php | 35 + .../modules/system/system.admin-rtl.css | 86 + drupal-dev/modules/system/system.admin.css | 271 + drupal-dev/modules/system/system.admin.inc | 3214 +++ drupal-dev/modules/system/system.api.php | 4899 ++++ drupal-dev/modules/system/system.archiver.inc | 139 + drupal-dev/modules/system/system.base-rtl.css | 58 + drupal-dev/modules/system/system.base.css | 270 + drupal-dev/modules/system/system.cron.js | 19 + drupal-dev/modules/system/system.info | 19 + drupal-dev/modules/system/system.install | 3156 +++ drupal-dev/modules/system/system.js | 140 + drupal-dev/modules/system/system.mail.inc | 133 + .../modules/system/system.maintenance.css | 55 + .../modules/system/system.menus-rtl.css | 37 + drupal-dev/modules/system/system.menus.css | 116 + .../modules/system/system.messages-rtl.css | 13 + drupal-dev/modules/system/system.messages.css | 63 + drupal-dev/modules/system/system.module | 4021 +++ drupal-dev/modules/system/system.queue.inc | 370 + drupal-dev/modules/system/system.tar.inc | 1892 ++ drupal-dev/modules/system/system.test | 2761 +++ .../modules/system/system.theme-rtl.css | 53 + drupal-dev/modules/system/system.theme.css | 239 + drupal-dev/modules/system/system.tokens.inc | 269 + drupal-dev/modules/system/system.updater.inc | 150 + drupal-dev/modules/system/theme.api.php | 240 + .../modules/taxonomy/taxonomy-term.tpl.php | 54 + .../modules/taxonomy/taxonomy.admin.inc | 984 + drupal-dev/modules/taxonomy/taxonomy.api.php | 231 + drupal-dev/modules/taxonomy/taxonomy.css | 13 + drupal-dev/modules/taxonomy/taxonomy.info | 15 + drupal-dev/modules/taxonomy/taxonomy.install | 917 + drupal-dev/modules/taxonomy/taxonomy.js | 40 + drupal-dev/modules/taxonomy/taxonomy.module | 2048 ++ .../modules/taxonomy/taxonomy.pages.inc | 181 + drupal-dev/modules/taxonomy/taxonomy.test | 1980 ++ .../modules/taxonomy/taxonomy.tokens.inc | 189 + drupal-dev/modules/toolbar/toolbar-rtl.css | 41 + drupal-dev/modules/toolbar/toolbar.css | 150 + drupal-dev/modules/toolbar/toolbar.info | 11 + drupal-dev/modules/toolbar/toolbar.js | 111 + drupal-dev/modules/toolbar/toolbar.module | 363 + drupal-dev/modules/toolbar/toolbar.png | Bin 0 -> 558 bytes drupal-dev/modules/toolbar/toolbar.tpl.php | 39 + drupal-dev/modules/tracker/tracker.css | 7 + drupal-dev/modules/tracker/tracker.info | 13 + drupal-dev/modules/tracker/tracker.install | 225 + drupal-dev/modules/tracker/tracker.module | 380 + drupal-dev/modules/tracker/tracker.pages.inc | 129 + drupal-dev/modules/tracker/tracker.test | 268 + .../translation/tests/translation_test.info | 12 + .../translation/tests/translation_test.module | 13 + .../modules/translation/translation.info | 13 + .../modules/translation/translation.module | 551 + .../modules/translation/translation.pages.inc | 82 + .../modules/translation/translation.test | 492 + .../modules/trigger/tests/trigger_test.info | 11 + .../modules/trigger/tests/trigger_test.module | 136 + drupal-dev/modules/trigger/trigger.admin.inc | 319 + drupal-dev/modules/trigger/trigger.api.php | 78 + drupal-dev/modules/trigger/trigger.info | 13 + drupal-dev/modules/trigger/trigger.install | 116 + drupal-dev/modules/trigger/trigger.module | 671 + drupal-dev/modules/trigger/trigger.test | 771 + .../update/tests/aaa_update_test.1_0.xml | 34 + .../modules/update/tests/aaa_update_test.info | 11 + .../update/tests/aaa_update_test.module | 6 + .../tests/aaa_update_test.no-releases.xml | 2 + .../update/tests/aaa_update_test.tar.gz | Bin 0 -> 383 bytes .../update/tests/bbb_update_test.1_0.xml | 34 + .../modules/update/tests/bbb_update_test.info | 11 + .../update/tests/bbb_update_test.module | 6 + .../update/tests/ccc_update_test.1_0.xml | 34 + .../modules/update/tests/ccc_update_test.info | 11 + .../update/tests/ccc_update_test.module | 6 + drupal-dev/modules/update/tests/drupal.0.xml | 34 + drupal-dev/modules/update/tests/drupal.1.xml | 51 + .../modules/update/tests/drupal.2-sec.xml | 69 + .../modules/update/tests/drupal.dev.xml | 50 + .../update_test_basetheme.info | 10 + .../update_test_subtheme.info | 11 + .../modules/update/tests/update_test.info | 12 + .../modules/update/tests/update_test.module | 191 + .../tests/update_test_basetheme.1_1-sec.xml | 52 + .../update/tests/update_test_subtheme.1_0.xml | 34 + drupal-dev/modules/update/update-rtl.css | 35 + drupal-dev/modules/update/update.api.php | 133 + .../modules/update/update.authorize.inc | 333 + drupal-dev/modules/update/update.compare.inc | 831 + drupal-dev/modules/update/update.css | 135 + drupal-dev/modules/update/update.fetch.inc | 423 + drupal-dev/modules/update/update.info | 13 + drupal-dev/modules/update/update.install | 190 + drupal-dev/modules/update/update.manager.inc | 943 + drupal-dev/modules/update/update.module | 993 + drupal-dev/modules/update/update.report.inc | 327 + drupal-dev/modules/update/update.settings.inc | 128 + drupal-dev/modules/update/update.test | 803 + .../modules/user/tests/user_form_test.info | 12 + .../modules/user/tests/user_form_test.module | 64 + drupal-dev/modules/user/user-picture.tpl.php | 23 + .../user/user-profile-category.tpl.php | 33 + .../modules/user/user-profile-item.tpl.php | 26 + drupal-dev/modules/user/user-profile.tpl.php | 39 + drupal-dev/modules/user/user-rtl.css | 34 + drupal-dev/modules/user/user.admin.inc | 1053 + drupal-dev/modules/user/user.api.php | 469 + drupal-dev/modules/user/user.css | 102 + drupal-dev/modules/user/user.info | 16 + drupal-dev/modules/user/user.install | 913 + drupal-dev/modules/user/user.js | 196 + drupal-dev/modules/user/user.module | 4028 +++ drupal-dev/modules/user/user.pages.inc | 562 + drupal-dev/modules/user/user.permissions.js | 69 + drupal-dev/modules/user/user.test | 2368 ++ drupal-dev/modules/user/user.tokens.inc | 131 + drupal-dev/profiles/minimal/minimal.info | 12 + drupal-dev/profiles/minimal/minimal.install | 81 + drupal-dev/profiles/minimal/minimal.profile | 15 + .../profiles/minimal/translations/README.txt | 3 + drupal-dev/profiles/standard/standard.info | 31 + drupal-dev/profiles/standard/standard.install | 432 + drupal-dev/profiles/standard/standard.profile | 15 + .../profiles/standard/translations/README.txt | 3 + ...drupal_system_listing_compatible_test.info | 13 + ...upal_system_listing_compatible_test.module | 1 + ...drupal_system_listing_compatible_test.test | 37 + ...upal_system_listing_incompatible_test.info | 15 + ...al_system_listing_incompatible_test.module | 1 + drupal-dev/profiles/testing/testing.info | 11 + drupal-dev/profiles/testing/testing.install | 21 + drupal-dev/profiles/testing/testing.profile | 6 + drupal-dev/robots.txt | 60 + drupal-dev/scripts/code-clean.sh | 9 + drupal-dev/scripts/cron-curl.sh | 3 + drupal-dev/scripts/cron-lynx.sh | 3 + drupal-dev/scripts/drupal.sh | 144 + drupal-dev/scripts/dump-database-d6.sh | 101 + drupal-dev/scripts/dump-database-d7.sh | 90 + drupal-dev/scripts/generate-d6-content.sh | 206 + drupal-dev/scripts/generate-d7-content.sh | 320 + drupal-dev/scripts/password-hash.sh | 90 + drupal-dev/scripts/run-tests.sh | 676 + drupal-dev/scripts/test.script | 4 + drupal-dev/sites/README.txt | 19 + drupal-dev/sites/all/modules/README.txt | 16 + drupal-dev/sites/all/themes/README.txt | 14 + drupal-dev/sites/default/default.settings.php | 553 + drupal-dev/sites/default/files/.htaccess | 15 + drupal-dev/sites/default/settings.php | 567 + drupal-dev/sites/example.sites.php | 55 + drupal-dev/themes/README.txt | 9 + drupal-dev/themes/bartik/bartik.info | 41 + drupal-dev/themes/bartik/color/base.png | Bin 0 -> 106 bytes drupal-dev/themes/bartik/color/color.inc | 132 + drupal-dev/themes/bartik/color/preview.css | 200 + drupal-dev/themes/bartik/color/preview.html | 65 + drupal-dev/themes/bartik/color/preview.js | 39 + drupal-dev/themes/bartik/color/preview.png | Bin 0 -> 106 bytes drupal-dev/themes/bartik/css/colors.css | 58 + drupal-dev/themes/bartik/css/ie-rtl.css | 48 + drupal-dev/themes/bartik/css/ie.css | 63 + drupal-dev/themes/bartik/css/ie6.css | 18 + drupal-dev/themes/bartik/css/layout-rtl.css | 22 + drupal-dev/themes/bartik/css/layout.css | 100 + .../themes/bartik/css/maintenance-page.css | 67 + drupal-dev/themes/bartik/css/print.css | 46 + drupal-dev/themes/bartik/css/style-rtl.css | 276 + drupal-dev/themes/bartik/css/style.css | 1650 ++ drupal-dev/themes/bartik/images/add.png | Bin 0 -> 94 bytes drupal-dev/themes/bartik/images/buttons.png | Bin 0 -> 831 bytes .../bartik/images/comment-arrow-rtl.gif | Bin 0 -> 97 bytes .../themes/bartik/images/comment-arrow.gif | Bin 0 -> 97 bytes .../themes/bartik/images/search-button.png | Bin 0 -> 725 bytes .../themes/bartik/images/tabs-border.png | Bin 0 -> 83 bytes drupal-dev/themes/bartik/logo.png | Bin 0 -> 3479 bytes drupal-dev/themes/bartik/screenshot.png | Bin 0 -> 19658 bytes drupal-dev/themes/bartik/template.php | 156 + .../bartik/templates/comment-wrapper.tpl.php | 50 + .../themes/bartik/templates/comment.tpl.php | 105 + .../bartik/templates/maintenance-page.tpl.php | 66 + .../themes/bartik/templates/node.tpl.php | 124 + .../themes/bartik/templates/page.tpl.php | 247 + .../engines/phptemplate/phptemplate.engine | 25 + drupal-dev/themes/garland/color/base.png | Bin 0 -> 20894 bytes drupal-dev/themes/garland/color/color.inc | 220 + drupal-dev/themes/garland/color/preview.css | 60 + drupal-dev/themes/garland/color/preview.png | Bin 0 -> 9965 bytes drupal-dev/themes/garland/comment.tpl.php | 31 + drupal-dev/themes/garland/fix-ie-rtl.css | 61 + drupal-dev/themes/garland/fix-ie.css | 65 + drupal-dev/themes/garland/garland.info | 14 + .../themes/garland/images/bg-bar-white.png | Bin 0 -> 103 bytes drupal-dev/themes/garland/images/bg-bar.png | Bin 0 -> 125 bytes .../themes/garland/images/bg-content-left.png | Bin 0 -> 2889 bytes .../garland/images/bg-content-right.png | Bin 0 -> 2819 bytes .../themes/garland/images/bg-content.png | Bin 0 -> 485 bytes .../images/bg-navigation-item-hover.png | Bin 0 -> 441 bytes .../garland/images/bg-navigation-item.png | Bin 0 -> 499 bytes .../themes/garland/images/bg-navigation.png | Bin 0 -> 104 bytes drupal-dev/themes/garland/images/bg-tab.png | Bin 0 -> 115 bytes drupal-dev/themes/garland/images/body.png | Bin 0 -> 680 bytes .../themes/garland/images/gradient-inner.png | Bin 0 -> 188 bytes .../garland/images/menu-collapsed-rtl.gif | Bin 0 -> 176 bytes .../themes/garland/images/menu-collapsed.gif | Bin 0 -> 176 bytes .../themes/garland/images/menu-expanded.gif | Bin 0 -> 183 bytes .../themes/garland/images/menu-leaf.gif | Bin 0 -> 174 bytes .../themes/garland/images/task-list.png | Bin 0 -> 128 bytes drupal-dev/themes/garland/logo.png | Bin 0 -> 5116 bytes .../themes/garland/maintenance-page.tpl.php | 87 + drupal-dev/themes/garland/node.tpl.php | 34 + drupal-dev/themes/garland/page.tpl.php | 68 + drupal-dev/themes/garland/print.css | 61 + drupal-dev/themes/garland/screenshot.png | Bin 0 -> 10950 bytes drupal-dev/themes/garland/style-rtl.css | 344 + drupal-dev/themes/garland/style.css | 1255 + drupal-dev/themes/garland/template.php | 156 + drupal-dev/themes/garland/theme-settings.php | 30 + drupal-dev/themes/seven/ie.css | 18 + drupal-dev/themes/seven/ie6.css | 17 + drupal-dev/themes/seven/ie7.css | 23 + drupal-dev/themes/seven/images/add.png | Bin 0 -> 160 bytes drupal-dev/themes/seven/images/arrow-asc.png | Bin 0 -> 88 bytes drupal-dev/themes/seven/images/arrow-desc.png | Bin 0 -> 95 bytes drupal-dev/themes/seven/images/arrow-next.png | Bin 0 -> 118 bytes drupal-dev/themes/seven/images/arrow-prev.png | Bin 0 -> 115 bytes drupal-dev/themes/seven/images/buttons.png | Bin 0 -> 786 bytes drupal-dev/themes/seven/images/fc-rtl.png | Bin 0 -> 76 bytes drupal-dev/themes/seven/images/fc.png | Bin 0 -> 82 bytes .../themes/seven/images/list-item-rtl.png | Bin 0 -> 225 bytes drupal-dev/themes/seven/images/list-item.png | Bin 0 -> 195 bytes drupal-dev/themes/seven/images/task-check.png | Bin 0 -> 261 bytes .../themes/seven/images/task-item-rtl.png | Bin 0 -> 178 bytes drupal-dev/themes/seven/images/task-item.png | Bin 0 -> 105 bytes .../seven/images/ui-icons-222222-256x240.png | Bin 0 -> 3702 bytes .../seven/images/ui-icons-454545-256x240.png | Bin 0 -> 3702 bytes .../seven/images/ui-icons-800000-256x240.png | Bin 0 -> 3702 bytes .../seven/images/ui-icons-888888-256x240.png | Bin 0 -> 3702 bytes .../seven/images/ui-icons-ffffff-256x240.png | Bin 0 -> 3702 bytes drupal-dev/themes/seven/jquery.ui.theme.css | 436 + drupal-dev/themes/seven/logo.png | Bin 0 -> 3905 bytes .../themes/seven/maintenance-page.tpl.php | 46 + drupal-dev/themes/seven/page.tpl.php | 35 + drupal-dev/themes/seven/reset.css | 216 + drupal-dev/themes/seven/screenshot.png | Bin 0 -> 12298 bytes drupal-dev/themes/seven/seven.info | 20 + drupal-dev/themes/seven/style-rtl.css | 241 + drupal-dev/themes/seven/style.css | 995 + drupal-dev/themes/seven/template.php | 118 + drupal-dev/themes/seven/vertical-tabs-rtl.css | 21 + drupal-dev/themes/seven/vertical-tabs.css | 96 + drupal-dev/themes/stark/README.txt | 25 + drupal-dev/themes/stark/layout.css | 57 + drupal-dev/themes/stark/logo.png | Bin 0 -> 2326 bytes drupal-dev/themes/stark/screenshot.png | Bin 0 -> 11662 bytes drupal-dev/themes/stark/stark.info | 12 + drupal-dev/update.php | 511 + drupal-dev/web.config | 46 + drupal-dev/xmlrpc.php | 18 + javascript/index.html | 21 + javascript/myscript.js | 18 + ruby/hello.rb | 4 + sass/index.html | 20 + sass/test.css | 41 + sass/test.scss | 60 + shirts4mike/contact/index.php | 123 + shirts4mike/css/style.css | 786 + shirts4mike/favicon.ico | Bin 0 -> 637 bytes shirts4mike/img/banner-background.jpg | Bin 0 -> 66831 bytes shirts4mike/img/banner-link-arrow.png | Bin 0 -> 1303 bytes shirts4mike/img/branding-title.png | Bin 0 -> 3674 bytes shirts4mike/img/logo-paypal-classic.png | Bin 0 -> 3856 bytes shirts4mike/img/logo-paypal.png | Bin 0 -> 2816 bytes shirts4mike/img/mike-the-frog.png | Bin 0 -> 172429 bytes shirts4mike/img/nav-sprite.png | Bin 0 -> 3862 bytes shirts4mike/img/shirts/shirt-101.jpg | Bin 0 -> 134917 bytes shirts4mike/img/shirts/shirt-102.jpg | Bin 0 -> 129837 bytes shirts4mike/img/shirts/shirt-103.jpg | Bin 0 -> 150096 bytes shirts4mike/img/shirts/shirt-104.jpg | Bin 0 -> 134370 bytes shirts4mike/img/shirts/shirt-105.jpg | Bin 0 -> 108067 bytes shirts4mike/img/shirts/shirt-106.jpg | Bin 0 -> 75486 bytes shirts4mike/img/shirts/shirt-107.jpg | Bin 0 -> 86116 bytes shirts4mike/img/shirts/shirt-108.jpg | Bin 0 -> 110143 bytes shirts4mike/inc/footer.php | 19 + shirts4mike/inc/header.php | 26 + shirts4mike/inc/phpmailer/class.phpmailer.php | 2532 ++ shirts4mike/inc/products.php | 75 + shirts4mike/index.php | 47 + shirts4mike/receipt/index.php | 20 + shirts4mike/sass/test.scss | 0 shirts4mike/shirt/index.php | 64 + shirts4mike/shirts/index.php | 23 + 1101 files changed, 320892 insertions(+) create mode 100644 drupal-dev/CHANGELOG.txt create mode 100644 drupal-dev/COPYRIGHT.txt create mode 100644 drupal-dev/INSTALL.mysql.txt create mode 100644 drupal-dev/INSTALL.pgsql.txt create mode 100644 drupal-dev/INSTALL.sqlite.txt create mode 100644 drupal-dev/INSTALL.txt create mode 100755 drupal-dev/LICENSE.txt create mode 100644 drupal-dev/MAINTAINERS.txt create mode 100644 drupal-dev/README.txt create mode 100644 drupal-dev/UPGRADE.txt create mode 100644 drupal-dev/authorize.php create mode 100644 drupal-dev/cron.php create mode 100644 drupal-dev/includes/actions.inc create mode 100644 drupal-dev/includes/ajax.inc create mode 100644 drupal-dev/includes/archiver.inc create mode 100644 drupal-dev/includes/authorize.inc create mode 100644 drupal-dev/includes/batch.inc create mode 100644 drupal-dev/includes/batch.queue.inc create mode 100644 drupal-dev/includes/bootstrap.inc create mode 100644 drupal-dev/includes/cache-install.inc create mode 100644 drupal-dev/includes/cache.inc create mode 100644 drupal-dev/includes/common.inc create mode 100644 drupal-dev/includes/database/database.inc create mode 100644 drupal-dev/includes/database/log.inc create mode 100644 drupal-dev/includes/database/mysql/database.inc create mode 100644 drupal-dev/includes/database/mysql/install.inc create mode 100644 drupal-dev/includes/database/mysql/query.inc create mode 100644 drupal-dev/includes/database/mysql/schema.inc create mode 100644 drupal-dev/includes/database/pgsql/database.inc create mode 100644 drupal-dev/includes/database/pgsql/install.inc create mode 100644 drupal-dev/includes/database/pgsql/query.inc create mode 100644 drupal-dev/includes/database/pgsql/schema.inc create mode 100644 drupal-dev/includes/database/pgsql/select.inc create mode 100644 drupal-dev/includes/database/prefetch.inc create mode 100644 drupal-dev/includes/database/query.inc create mode 100644 drupal-dev/includes/database/schema.inc create mode 100644 drupal-dev/includes/database/select.inc create mode 100644 drupal-dev/includes/database/sqlite/database.inc create mode 100644 drupal-dev/includes/database/sqlite/install.inc create mode 100644 drupal-dev/includes/database/sqlite/query.inc create mode 100644 drupal-dev/includes/database/sqlite/schema.inc create mode 100644 drupal-dev/includes/database/sqlite/select.inc create mode 100644 drupal-dev/includes/date.inc create mode 100644 drupal-dev/includes/entity.inc create mode 100644 drupal-dev/includes/errors.inc create mode 100644 drupal-dev/includes/file.inc create mode 100644 drupal-dev/includes/file.mimetypes.inc create mode 100644 drupal-dev/includes/filetransfer/filetransfer.inc create mode 100644 drupal-dev/includes/filetransfer/ftp.inc create mode 100644 drupal-dev/includes/filetransfer/local.inc create mode 100644 drupal-dev/includes/filetransfer/ssh.inc create mode 100644 drupal-dev/includes/form.inc create mode 100644 drupal-dev/includes/graph.inc create mode 100644 drupal-dev/includes/image.inc create mode 100644 drupal-dev/includes/install.core.inc create mode 100644 drupal-dev/includes/install.inc create mode 100644 drupal-dev/includes/iso.inc create mode 100644 drupal-dev/includes/json-encode.inc create mode 100644 drupal-dev/includes/language.inc create mode 100644 drupal-dev/includes/locale.inc create mode 100644 drupal-dev/includes/lock.inc create mode 100644 drupal-dev/includes/mail.inc create mode 100644 drupal-dev/includes/menu.inc create mode 100644 drupal-dev/includes/module.inc create mode 100644 drupal-dev/includes/pager.inc create mode 100644 drupal-dev/includes/password.inc create mode 100644 drupal-dev/includes/path.inc create mode 100644 drupal-dev/includes/registry.inc create mode 100644 drupal-dev/includes/session.inc create mode 100644 drupal-dev/includes/stream_wrappers.inc create mode 100644 drupal-dev/includes/tablesort.inc create mode 100644 drupal-dev/includes/theme.inc create mode 100644 drupal-dev/includes/theme.maintenance.inc create mode 100644 drupal-dev/includes/token.inc create mode 100644 drupal-dev/includes/unicode.entities.inc create mode 100644 drupal-dev/includes/unicode.inc create mode 100644 drupal-dev/includes/update.inc create mode 100644 drupal-dev/includes/updater.inc create mode 100644 drupal-dev/includes/utility.inc create mode 100644 drupal-dev/includes/xmlrpc.inc create mode 100644 drupal-dev/includes/xmlrpcs.inc create mode 100644 drupal-dev/index.php create mode 100644 drupal-dev/install.php create mode 100644 drupal-dev/misc/ajax.js create mode 100644 drupal-dev/misc/arrow-asc.png create mode 100644 drupal-dev/misc/arrow-desc.png create mode 100644 drupal-dev/misc/authorize.js create mode 100644 drupal-dev/misc/autocomplete.js create mode 100644 drupal-dev/misc/batch.js create mode 100644 drupal-dev/misc/collapse.js create mode 100644 drupal-dev/misc/configure.png create mode 100644 drupal-dev/misc/draggable.png create mode 100644 drupal-dev/misc/drupal.js create mode 100644 drupal-dev/misc/druplicon.png create mode 100644 drupal-dev/misc/farbtastic/farbtastic.css create mode 100644 drupal-dev/misc/farbtastic/farbtastic.js create mode 100644 drupal-dev/misc/farbtastic/marker.png create mode 100644 drupal-dev/misc/farbtastic/mask.png create mode 100644 drupal-dev/misc/farbtastic/wheel.png create mode 100644 drupal-dev/misc/favicon.ico create mode 100644 drupal-dev/misc/feed.png create mode 100644 drupal-dev/misc/form.js create mode 100644 drupal-dev/misc/forum-icons.png create mode 100644 drupal-dev/misc/grippie.png create mode 100644 drupal-dev/misc/help.png create mode 100644 drupal-dev/misc/jquery.ba-bbq.js create mode 100644 drupal-dev/misc/jquery.cookie.js create mode 100644 drupal-dev/misc/jquery.form.js create mode 100644 drupal-dev/misc/jquery.js create mode 100644 drupal-dev/misc/jquery.once.js create mode 100644 drupal-dev/misc/machine-name.js create mode 100644 drupal-dev/misc/menu-collapsed-rtl.png create mode 100644 drupal-dev/misc/menu-collapsed.png create mode 100644 drupal-dev/misc/menu-expanded.png create mode 100644 drupal-dev/misc/menu-leaf.png create mode 100644 drupal-dev/misc/message-16-error.png create mode 100644 drupal-dev/misc/message-16-help.png create mode 100644 drupal-dev/misc/message-16-info.png create mode 100644 drupal-dev/misc/message-16-ok.png create mode 100644 drupal-dev/misc/message-16-warning.png create mode 100644 drupal-dev/misc/message-24-error.png create mode 100644 drupal-dev/misc/message-24-help.png create mode 100644 drupal-dev/misc/message-24-info.png create mode 100644 drupal-dev/misc/message-24-ok.png create mode 100644 drupal-dev/misc/message-24-warning.png create mode 100644 drupal-dev/misc/permissions.png create mode 100644 drupal-dev/misc/powered-black-135x42.png create mode 100644 drupal-dev/misc/powered-black-80x15.png create mode 100644 drupal-dev/misc/powered-black-88x31.png create mode 100644 drupal-dev/misc/powered-blue-135x42.png create mode 100644 drupal-dev/misc/powered-blue-80x15.png create mode 100644 drupal-dev/misc/powered-blue-88x31.png create mode 100644 drupal-dev/misc/powered-gray-135x42.png create mode 100644 drupal-dev/misc/powered-gray-80x15.png create mode 100644 drupal-dev/misc/powered-gray-88x31.png create mode 100644 drupal-dev/misc/print-rtl.css create mode 100644 drupal-dev/misc/print.css create mode 100644 drupal-dev/misc/progress.gif create mode 100644 drupal-dev/misc/progress.js create mode 100644 drupal-dev/misc/states.js create mode 100644 drupal-dev/misc/tabledrag.js create mode 100644 drupal-dev/misc/tableheader.js create mode 100644 drupal-dev/misc/tableselect.js create mode 100644 drupal-dev/misc/textarea.js create mode 100644 drupal-dev/misc/throbber.gif create mode 100644 drupal-dev/misc/timezone.js create mode 100644 drupal-dev/misc/tree-bottom.png create mode 100644 drupal-dev/misc/tree.png create mode 100644 drupal-dev/misc/ui/images/ui-bg_flat_0_aaaaaa_40x100.png create mode 100644 drupal-dev/misc/ui/images/ui-bg_flat_75_ffffff_40x100.png create mode 100644 drupal-dev/misc/ui/images/ui-bg_glass_55_fbf9ee_1x400.png create mode 100644 drupal-dev/misc/ui/images/ui-bg_glass_65_ffffff_1x400.png create mode 100644 drupal-dev/misc/ui/images/ui-bg_glass_75_dadada_1x400.png create mode 100644 drupal-dev/misc/ui/images/ui-bg_glass_75_e6e6e6_1x400.png create mode 100644 drupal-dev/misc/ui/images/ui-bg_glass_95_fef1ec_1x400.png create mode 100644 drupal-dev/misc/ui/images/ui-bg_highlight-soft_75_cccccc_1x100.png create mode 100644 drupal-dev/misc/ui/images/ui-icons_222222_256x240.png create mode 100644 drupal-dev/misc/ui/images/ui-icons_2e83ff_256x240.png create mode 100644 drupal-dev/misc/ui/images/ui-icons_454545_256x240.png create mode 100644 drupal-dev/misc/ui/images/ui-icons_888888_256x240.png create mode 100644 drupal-dev/misc/ui/images/ui-icons_cd0a0a_256x240.png create mode 100644 drupal-dev/misc/ui/jquery.effects.blind.min.js create mode 100644 drupal-dev/misc/ui/jquery.effects.bounce.min.js create mode 100644 drupal-dev/misc/ui/jquery.effects.clip.min.js create mode 100644 drupal-dev/misc/ui/jquery.effects.core.min.js create mode 100644 drupal-dev/misc/ui/jquery.effects.drop.min.js create mode 100644 drupal-dev/misc/ui/jquery.effects.explode.min.js create mode 100644 drupal-dev/misc/ui/jquery.effects.fade.min.js create mode 100644 drupal-dev/misc/ui/jquery.effects.fold.min.js create mode 100644 drupal-dev/misc/ui/jquery.effects.highlight.min.js create mode 100644 drupal-dev/misc/ui/jquery.effects.pulsate.min.js create mode 100644 drupal-dev/misc/ui/jquery.effects.scale.min.js create mode 100644 drupal-dev/misc/ui/jquery.effects.shake.min.js create mode 100644 drupal-dev/misc/ui/jquery.effects.slide.min.js create mode 100644 drupal-dev/misc/ui/jquery.effects.transfer.min.js create mode 100644 drupal-dev/misc/ui/jquery.ui.accordion.css create mode 100644 drupal-dev/misc/ui/jquery.ui.accordion.min.js create mode 100644 drupal-dev/misc/ui/jquery.ui.autocomplete.css create mode 100644 drupal-dev/misc/ui/jquery.ui.autocomplete.min.js create mode 100644 drupal-dev/misc/ui/jquery.ui.button.css create mode 100644 drupal-dev/misc/ui/jquery.ui.button.min.js create mode 100644 drupal-dev/misc/ui/jquery.ui.core.css create mode 100644 drupal-dev/misc/ui/jquery.ui.core.min.js create mode 100644 drupal-dev/misc/ui/jquery.ui.datepicker.css create mode 100644 drupal-dev/misc/ui/jquery.ui.datepicker.min.js create mode 100644 drupal-dev/misc/ui/jquery.ui.dialog.css create mode 100644 drupal-dev/misc/ui/jquery.ui.dialog.min.js create mode 100644 drupal-dev/misc/ui/jquery.ui.draggable.min.js create mode 100644 drupal-dev/misc/ui/jquery.ui.droppable.min.js create mode 100644 drupal-dev/misc/ui/jquery.ui.mouse.min.js create mode 100644 drupal-dev/misc/ui/jquery.ui.position.min.js create mode 100644 drupal-dev/misc/ui/jquery.ui.progressbar.css create mode 100644 drupal-dev/misc/ui/jquery.ui.progressbar.min.js create mode 100644 drupal-dev/misc/ui/jquery.ui.resizable.css create mode 100644 drupal-dev/misc/ui/jquery.ui.resizable.min.js create mode 100644 drupal-dev/misc/ui/jquery.ui.selectable.css create mode 100644 drupal-dev/misc/ui/jquery.ui.selectable.min.js create mode 100644 drupal-dev/misc/ui/jquery.ui.slider.css create mode 100644 drupal-dev/misc/ui/jquery.ui.slider.min.js create mode 100644 drupal-dev/misc/ui/jquery.ui.sortable.min.js create mode 100644 drupal-dev/misc/ui/jquery.ui.tabs.css create mode 100644 drupal-dev/misc/ui/jquery.ui.tabs.min.js create mode 100644 drupal-dev/misc/ui/jquery.ui.theme.css create mode 100644 drupal-dev/misc/ui/jquery.ui.widget.min.js create mode 100644 drupal-dev/misc/vertical-tabs-rtl.css create mode 100644 drupal-dev/misc/vertical-tabs.css create mode 100644 drupal-dev/misc/vertical-tabs.js create mode 100644 drupal-dev/misc/watchdog-error.png create mode 100644 drupal-dev/misc/watchdog-ok.png create mode 100644 drupal-dev/misc/watchdog-warning.png create mode 100644 drupal-dev/modules/README.txt create mode 100644 drupal-dev/modules/aggregator/aggregator-feed-source.tpl.php create mode 100644 drupal-dev/modules/aggregator/aggregator-item.tpl.php create mode 100644 drupal-dev/modules/aggregator/aggregator-rtl.css create mode 100644 drupal-dev/modules/aggregator/aggregator-summary-item.tpl.php create mode 100644 drupal-dev/modules/aggregator/aggregator-summary-items.tpl.php create mode 100644 drupal-dev/modules/aggregator/aggregator-wrapper.tpl.php create mode 100644 drupal-dev/modules/aggregator/aggregator.admin.inc create mode 100644 drupal-dev/modules/aggregator/aggregator.api.php create mode 100644 drupal-dev/modules/aggregator/aggregator.css create mode 100644 drupal-dev/modules/aggregator/aggregator.fetcher.inc create mode 100644 drupal-dev/modules/aggregator/aggregator.info create mode 100644 drupal-dev/modules/aggregator/aggregator.install create mode 100644 drupal-dev/modules/aggregator/aggregator.module create mode 100644 drupal-dev/modules/aggregator/aggregator.pages.inc create mode 100644 drupal-dev/modules/aggregator/aggregator.parser.inc create mode 100644 drupal-dev/modules/aggregator/aggregator.processor.inc create mode 100644 drupal-dev/modules/aggregator/aggregator.test create mode 100644 drupal-dev/modules/aggregator/tests/aggregator_test.info create mode 100644 drupal-dev/modules/aggregator/tests/aggregator_test.module create mode 100644 drupal-dev/modules/aggregator/tests/aggregator_test_atom.xml create mode 100644 drupal-dev/modules/aggregator/tests/aggregator_test_rss091.xml create mode 100644 drupal-dev/modules/block/block-admin-display-form.tpl.php create mode 100644 drupal-dev/modules/block/block.admin.inc create mode 100644 drupal-dev/modules/block/block.api.php create mode 100644 drupal-dev/modules/block/block.css create mode 100644 drupal-dev/modules/block/block.info create mode 100644 drupal-dev/modules/block/block.install create mode 100644 drupal-dev/modules/block/block.js create mode 100644 drupal-dev/modules/block/block.module create mode 100644 drupal-dev/modules/block/block.test create mode 100644 drupal-dev/modules/block/block.tpl.php create mode 100644 drupal-dev/modules/block/tests/block_test.info create mode 100644 drupal-dev/modules/block/tests/block_test.module create mode 100644 drupal-dev/modules/block/tests/themes/block_test_theme/block_test_theme.info create mode 100644 drupal-dev/modules/block/tests/themes/block_test_theme/page.tpl.php create mode 100644 drupal-dev/modules/blog/blog.info create mode 100644 drupal-dev/modules/blog/blog.install create mode 100644 drupal-dev/modules/blog/blog.module create mode 100644 drupal-dev/modules/blog/blog.pages.inc create mode 100644 drupal-dev/modules/blog/blog.test create mode 100644 drupal-dev/modules/book/book-all-books-block.tpl.php create mode 100644 drupal-dev/modules/book/book-export-html.tpl.php create mode 100644 drupal-dev/modules/book/book-navigation.tpl.php create mode 100644 drupal-dev/modules/book/book-node-export-html.tpl.php create mode 100644 drupal-dev/modules/book/book-rtl.css create mode 100644 drupal-dev/modules/book/book.admin.inc create mode 100644 drupal-dev/modules/book/book.css create mode 100644 drupal-dev/modules/book/book.info create mode 100644 drupal-dev/modules/book/book.install create mode 100644 drupal-dev/modules/book/book.js create mode 100644 drupal-dev/modules/book/book.module create mode 100644 drupal-dev/modules/book/book.pages.inc create mode 100644 drupal-dev/modules/book/book.test create mode 100644 drupal-dev/modules/color/color-rtl.css create mode 100644 drupal-dev/modules/color/color.css create mode 100644 drupal-dev/modules/color/color.info create mode 100644 drupal-dev/modules/color/color.install create mode 100644 drupal-dev/modules/color/color.js create mode 100644 drupal-dev/modules/color/color.module create mode 100644 drupal-dev/modules/color/color.test create mode 100644 drupal-dev/modules/color/images/hook-rtl.png create mode 100644 drupal-dev/modules/color/images/hook.png create mode 100644 drupal-dev/modules/color/images/lock.png create mode 100644 drupal-dev/modules/color/preview.html create mode 100644 drupal-dev/modules/color/preview.js create mode 100644 drupal-dev/modules/comment/comment-node-form.js create mode 100644 drupal-dev/modules/comment/comment-rtl.css create mode 100644 drupal-dev/modules/comment/comment-wrapper.tpl.php create mode 100644 drupal-dev/modules/comment/comment.admin.inc create mode 100644 drupal-dev/modules/comment/comment.api.php create mode 100644 drupal-dev/modules/comment/comment.css create mode 100644 drupal-dev/modules/comment/comment.info create mode 100644 drupal-dev/modules/comment/comment.install create mode 100644 drupal-dev/modules/comment/comment.module create mode 100644 drupal-dev/modules/comment/comment.pages.inc create mode 100644 drupal-dev/modules/comment/comment.test create mode 100644 drupal-dev/modules/comment/comment.tokens.inc create mode 100644 drupal-dev/modules/comment/comment.tpl.php create mode 100644 drupal-dev/modules/contact/contact.admin.inc create mode 100644 drupal-dev/modules/contact/contact.info create mode 100644 drupal-dev/modules/contact/contact.install create mode 100644 drupal-dev/modules/contact/contact.module create mode 100644 drupal-dev/modules/contact/contact.pages.inc create mode 100644 drupal-dev/modules/contact/contact.test create mode 100644 drupal-dev/modules/contextual/contextual-rtl.css create mode 100644 drupal-dev/modules/contextual/contextual.api.php create mode 100644 drupal-dev/modules/contextual/contextual.css create mode 100644 drupal-dev/modules/contextual/contextual.info create mode 100644 drupal-dev/modules/contextual/contextual.js create mode 100644 drupal-dev/modules/contextual/contextual.module create mode 100644 drupal-dev/modules/contextual/contextual.test create mode 100644 drupal-dev/modules/contextual/images/gear-select.png create mode 100644 drupal-dev/modules/dashboard/dashboard-rtl.css create mode 100644 drupal-dev/modules/dashboard/dashboard.api.php create mode 100644 drupal-dev/modules/dashboard/dashboard.css create mode 100644 drupal-dev/modules/dashboard/dashboard.info create mode 100644 drupal-dev/modules/dashboard/dashboard.install create mode 100644 drupal-dev/modules/dashboard/dashboard.js create mode 100644 drupal-dev/modules/dashboard/dashboard.module create mode 100644 drupal-dev/modules/dashboard/dashboard.test create mode 100644 drupal-dev/modules/dblog/dblog-rtl.css create mode 100644 drupal-dev/modules/dblog/dblog.admin.inc create mode 100644 drupal-dev/modules/dblog/dblog.css create mode 100644 drupal-dev/modules/dblog/dblog.info create mode 100644 drupal-dev/modules/dblog/dblog.install create mode 100644 drupal-dev/modules/dblog/dblog.module create mode 100644 drupal-dev/modules/dblog/dblog.test create mode 100644 drupal-dev/modules/field/field.api.php create mode 100644 drupal-dev/modules/field/field.attach.inc create mode 100644 drupal-dev/modules/field/field.crud.inc create mode 100644 drupal-dev/modules/field/field.default.inc create mode 100644 drupal-dev/modules/field/field.form.inc create mode 100644 drupal-dev/modules/field/field.info create mode 100644 drupal-dev/modules/field/field.info.class.inc create mode 100644 drupal-dev/modules/field/field.info.inc create mode 100644 drupal-dev/modules/field/field.install create mode 100644 drupal-dev/modules/field/field.module create mode 100644 drupal-dev/modules/field/field.multilingual.inc create mode 100644 drupal-dev/modules/field/modules/field_sql_storage/field_sql_storage.info create mode 100644 drupal-dev/modules/field/modules/field_sql_storage/field_sql_storage.install create mode 100644 drupal-dev/modules/field/modules/field_sql_storage/field_sql_storage.module create mode 100644 drupal-dev/modules/field/modules/field_sql_storage/field_sql_storage.test create mode 100644 drupal-dev/modules/field/modules/list/list.info create mode 100644 drupal-dev/modules/field/modules/list/list.install create mode 100644 drupal-dev/modules/field/modules/list/list.module create mode 100644 drupal-dev/modules/field/modules/list/tests/list.test create mode 100644 drupal-dev/modules/field/modules/list/tests/list_test.info create mode 100644 drupal-dev/modules/field/modules/list/tests/list_test.module create mode 100644 drupal-dev/modules/field/modules/number/number.info create mode 100644 drupal-dev/modules/field/modules/number/number.install create mode 100644 drupal-dev/modules/field/modules/number/number.module create mode 100644 drupal-dev/modules/field/modules/number/number.test create mode 100644 drupal-dev/modules/field/modules/options/options.api.php create mode 100644 drupal-dev/modules/field/modules/options/options.info create mode 100644 drupal-dev/modules/field/modules/options/options.module create mode 100644 drupal-dev/modules/field/modules/options/options.test create mode 100644 drupal-dev/modules/field/modules/text/text.info create mode 100644 drupal-dev/modules/field/modules/text/text.install create mode 100644 drupal-dev/modules/field/modules/text/text.js create mode 100644 drupal-dev/modules/field/modules/text/text.module create mode 100644 drupal-dev/modules/field/modules/text/text.test create mode 100644 drupal-dev/modules/field/tests/field.test create mode 100644 drupal-dev/modules/field/tests/field_test.entity.inc create mode 100644 drupal-dev/modules/field/tests/field_test.field.inc create mode 100644 drupal-dev/modules/field/tests/field_test.info create mode 100644 drupal-dev/modules/field/tests/field_test.install create mode 100644 drupal-dev/modules/field/tests/field_test.module create mode 100644 drupal-dev/modules/field/tests/field_test.storage.inc create mode 100644 drupal-dev/modules/field/theme/field-rtl.css create mode 100644 drupal-dev/modules/field/theme/field.css create mode 100644 drupal-dev/modules/field/theme/field.tpl.php create mode 100644 drupal-dev/modules/field_ui/field_ui-rtl.css create mode 100644 drupal-dev/modules/field_ui/field_ui.admin.inc create mode 100644 drupal-dev/modules/field_ui/field_ui.api.php create mode 100644 drupal-dev/modules/field_ui/field_ui.css create mode 100644 drupal-dev/modules/field_ui/field_ui.info create mode 100644 drupal-dev/modules/field_ui/field_ui.js create mode 100644 drupal-dev/modules/field_ui/field_ui.module create mode 100644 drupal-dev/modules/field_ui/field_ui.test create mode 100644 drupal-dev/modules/file/file.api.php create mode 100644 drupal-dev/modules/file/file.css create mode 100644 drupal-dev/modules/file/file.field.inc create mode 100644 drupal-dev/modules/file/file.info create mode 100644 drupal-dev/modules/file/file.install create mode 100644 drupal-dev/modules/file/file.js create mode 100644 drupal-dev/modules/file/file.module create mode 100644 drupal-dev/modules/file/icons/application-octet-stream.png create mode 100644 drupal-dev/modules/file/icons/application-pdf.png create mode 100644 drupal-dev/modules/file/icons/application-x-executable.png create mode 100644 drupal-dev/modules/file/icons/audio-x-generic.png create mode 100644 drupal-dev/modules/file/icons/image-x-generic.png create mode 100644 drupal-dev/modules/file/icons/package-x-generic.png create mode 100644 drupal-dev/modules/file/icons/text-html.png create mode 100644 drupal-dev/modules/file/icons/text-plain.png create mode 100644 drupal-dev/modules/file/icons/text-x-generic.png create mode 100644 drupal-dev/modules/file/icons/text-x-script.png create mode 100644 drupal-dev/modules/file/icons/video-x-generic.png create mode 100644 drupal-dev/modules/file/icons/x-office-document.png create mode 100644 drupal-dev/modules/file/icons/x-office-presentation.png create mode 100644 drupal-dev/modules/file/icons/x-office-spreadsheet.png create mode 100644 drupal-dev/modules/file/tests/file.test create mode 100644 drupal-dev/modules/file/tests/file_module_test.info create mode 100644 drupal-dev/modules/file/tests/file_module_test.module create mode 100644 drupal-dev/modules/filter/filter.admin.inc create mode 100644 drupal-dev/modules/filter/filter.admin.js create mode 100644 drupal-dev/modules/filter/filter.api.php create mode 100644 drupal-dev/modules/filter/filter.css create mode 100644 drupal-dev/modules/filter/filter.info create mode 100644 drupal-dev/modules/filter/filter.install create mode 100644 drupal-dev/modules/filter/filter.js create mode 100644 drupal-dev/modules/filter/filter.module create mode 100644 drupal-dev/modules/filter/filter.pages.inc create mode 100644 drupal-dev/modules/filter/filter.test create mode 100644 drupal-dev/modules/filter/tests/filter.url-input.txt create mode 100644 drupal-dev/modules/filter/tests/filter.url-output.txt create mode 100644 drupal-dev/modules/forum/forum-icon.tpl.php create mode 100644 drupal-dev/modules/forum/forum-list.tpl.php create mode 100644 drupal-dev/modules/forum/forum-rtl.css create mode 100644 drupal-dev/modules/forum/forum-submitted.tpl.php create mode 100644 drupal-dev/modules/forum/forum-topic-list.tpl.php create mode 100644 drupal-dev/modules/forum/forum.admin.inc create mode 100644 drupal-dev/modules/forum/forum.css create mode 100644 drupal-dev/modules/forum/forum.info create mode 100644 drupal-dev/modules/forum/forum.install create mode 100644 drupal-dev/modules/forum/forum.module create mode 100644 drupal-dev/modules/forum/forum.pages.inc create mode 100644 drupal-dev/modules/forum/forum.test create mode 100644 drupal-dev/modules/forum/forums.tpl.php create mode 100644 drupal-dev/modules/help/help-rtl.css create mode 100644 drupal-dev/modules/help/help.admin.inc create mode 100644 drupal-dev/modules/help/help.api.php create mode 100644 drupal-dev/modules/help/help.css create mode 100644 drupal-dev/modules/help/help.info create mode 100644 drupal-dev/modules/help/help.module create mode 100644 drupal-dev/modules/help/help.test create mode 100644 drupal-dev/modules/image/image-rtl.css create mode 100644 drupal-dev/modules/image/image.admin.css create mode 100644 drupal-dev/modules/image/image.admin.inc create mode 100644 drupal-dev/modules/image/image.api.php create mode 100644 drupal-dev/modules/image/image.css create mode 100644 drupal-dev/modules/image/image.effects.inc create mode 100644 drupal-dev/modules/image/image.field.inc create mode 100644 drupal-dev/modules/image/image.info create mode 100644 drupal-dev/modules/image/image.install create mode 100644 drupal-dev/modules/image/image.module create mode 100644 drupal-dev/modules/image/image.test create mode 100644 drupal-dev/modules/image/sample.png create mode 100644 drupal-dev/modules/image/tests/image_module_test.info create mode 100644 drupal-dev/modules/image/tests/image_module_test.module create mode 100644 drupal-dev/modules/locale/locale-rtl.css create mode 100644 drupal-dev/modules/locale/locale.admin.inc create mode 100644 drupal-dev/modules/locale/locale.api.php create mode 100644 drupal-dev/modules/locale/locale.css create mode 100644 drupal-dev/modules/locale/locale.datepicker.js create mode 100644 drupal-dev/modules/locale/locale.info create mode 100644 drupal-dev/modules/locale/locale.install create mode 100644 drupal-dev/modules/locale/locale.module create mode 100644 drupal-dev/modules/locale/locale.test create mode 100644 drupal-dev/modules/locale/tests/locale_test.info create mode 100644 drupal-dev/modules/locale/tests/locale_test.js create mode 100644 drupal-dev/modules/locale/tests/locale_test.module create mode 100644 drupal-dev/modules/locale/tests/translations/test.xx.po create mode 100644 drupal-dev/modules/menu/menu.admin.inc create mode 100644 drupal-dev/modules/menu/menu.admin.js create mode 100644 drupal-dev/modules/menu/menu.api.php create mode 100644 drupal-dev/modules/menu/menu.css create mode 100644 drupal-dev/modules/menu/menu.info create mode 100644 drupal-dev/modules/menu/menu.install create mode 100644 drupal-dev/modules/menu/menu.js create mode 100644 drupal-dev/modules/menu/menu.module create mode 100644 drupal-dev/modules/menu/menu.test create mode 100644 drupal-dev/modules/node/content_types.inc create mode 100644 drupal-dev/modules/node/content_types.js create mode 100644 drupal-dev/modules/node/node.admin.inc create mode 100644 drupal-dev/modules/node/node.api.php create mode 100644 drupal-dev/modules/node/node.css create mode 100644 drupal-dev/modules/node/node.info create mode 100644 drupal-dev/modules/node/node.install create mode 100644 drupal-dev/modules/node/node.js create mode 100644 drupal-dev/modules/node/node.module create mode 100644 drupal-dev/modules/node/node.pages.inc create mode 100644 drupal-dev/modules/node/node.test create mode 100644 drupal-dev/modules/node/node.tokens.inc create mode 100644 drupal-dev/modules/node/node.tpl.php create mode 100644 drupal-dev/modules/node/tests/node_access_test.info create mode 100644 drupal-dev/modules/node/tests/node_access_test.install create mode 100644 drupal-dev/modules/node/tests/node_access_test.module create mode 100644 drupal-dev/modules/node/tests/node_test.info create mode 100644 drupal-dev/modules/node/tests/node_test.module create mode 100644 drupal-dev/modules/node/tests/node_test_exception.info create mode 100644 drupal-dev/modules/node/tests/node_test_exception.module create mode 100644 drupal-dev/modules/openid/login-bg.png create mode 100644 drupal-dev/modules/openid/openid-rtl.css create mode 100644 drupal-dev/modules/openid/openid.api.php create mode 100644 drupal-dev/modules/openid/openid.css create mode 100644 drupal-dev/modules/openid/openid.inc create mode 100644 drupal-dev/modules/openid/openid.info create mode 100644 drupal-dev/modules/openid/openid.install create mode 100644 drupal-dev/modules/openid/openid.js create mode 100644 drupal-dev/modules/openid/openid.module create mode 100644 drupal-dev/modules/openid/openid.pages.inc create mode 100644 drupal-dev/modules/openid/openid.test create mode 100644 drupal-dev/modules/openid/tests/openid_test.info create mode 100644 drupal-dev/modules/openid/tests/openid_test.install create mode 100644 drupal-dev/modules/openid/tests/openid_test.module create mode 100644 drupal-dev/modules/overlay/images/background.png create mode 100644 drupal-dev/modules/overlay/images/close-rtl.png create mode 100644 drupal-dev/modules/overlay/images/close.png create mode 100644 drupal-dev/modules/overlay/overlay-child-rtl.css create mode 100644 drupal-dev/modules/overlay/overlay-child.css create mode 100644 drupal-dev/modules/overlay/overlay-child.js create mode 100644 drupal-dev/modules/overlay/overlay-parent.css create mode 100644 drupal-dev/modules/overlay/overlay-parent.js create mode 100644 drupal-dev/modules/overlay/overlay.api.php create mode 100644 drupal-dev/modules/overlay/overlay.info create mode 100644 drupal-dev/modules/overlay/overlay.install create mode 100644 drupal-dev/modules/overlay/overlay.module create mode 100644 drupal-dev/modules/overlay/overlay.tpl.php create mode 100644 drupal-dev/modules/path/path.admin.inc create mode 100644 drupal-dev/modules/path/path.api.php create mode 100644 drupal-dev/modules/path/path.info create mode 100644 drupal-dev/modules/path/path.js create mode 100644 drupal-dev/modules/path/path.module create mode 100644 drupal-dev/modules/path/path.test create mode 100644 drupal-dev/modules/php/php.info create mode 100644 drupal-dev/modules/php/php.install create mode 100644 drupal-dev/modules/php/php.module create mode 100644 drupal-dev/modules/php/php.test create mode 100644 drupal-dev/modules/poll/poll-bar--block.tpl.php create mode 100644 drupal-dev/modules/poll/poll-bar.tpl.php create mode 100644 drupal-dev/modules/poll/poll-results--block.tpl.php create mode 100644 drupal-dev/modules/poll/poll-results.tpl.php create mode 100644 drupal-dev/modules/poll/poll-rtl.css create mode 100644 drupal-dev/modules/poll/poll-vote.tpl.php create mode 100644 drupal-dev/modules/poll/poll.css create mode 100644 drupal-dev/modules/poll/poll.info create mode 100644 drupal-dev/modules/poll/poll.install create mode 100644 drupal-dev/modules/poll/poll.module create mode 100644 drupal-dev/modules/poll/poll.pages.inc create mode 100644 drupal-dev/modules/poll/poll.test create mode 100644 drupal-dev/modules/poll/poll.tokens.inc create mode 100644 drupal-dev/modules/profile/profile-block.tpl.php create mode 100644 drupal-dev/modules/profile/profile-listing.tpl.php create mode 100644 drupal-dev/modules/profile/profile-wrapper.tpl.php create mode 100644 drupal-dev/modules/profile/profile.admin.inc create mode 100644 drupal-dev/modules/profile/profile.css create mode 100644 drupal-dev/modules/profile/profile.info create mode 100644 drupal-dev/modules/profile/profile.install create mode 100644 drupal-dev/modules/profile/profile.js create mode 100644 drupal-dev/modules/profile/profile.module create mode 100644 drupal-dev/modules/profile/profile.pages.inc create mode 100644 drupal-dev/modules/profile/profile.test create mode 100644 drupal-dev/modules/rdf/rdf.api.php create mode 100644 drupal-dev/modules/rdf/rdf.info create mode 100644 drupal-dev/modules/rdf/rdf.install create mode 100644 drupal-dev/modules/rdf/rdf.module create mode 100644 drupal-dev/modules/rdf/rdf.test create mode 100644 drupal-dev/modules/rdf/tests/rdf_test.info create mode 100644 drupal-dev/modules/rdf/tests/rdf_test.install create mode 100644 drupal-dev/modules/rdf/tests/rdf_test.module create mode 100644 drupal-dev/modules/search/search-block-form.tpl.php create mode 100644 drupal-dev/modules/search/search-result.tpl.php create mode 100644 drupal-dev/modules/search/search-results.tpl.php create mode 100644 drupal-dev/modules/search/search-rtl.css create mode 100644 drupal-dev/modules/search/search.admin.inc create mode 100644 drupal-dev/modules/search/search.api.php create mode 100644 drupal-dev/modules/search/search.css create mode 100644 drupal-dev/modules/search/search.extender.inc create mode 100644 drupal-dev/modules/search/search.info create mode 100644 drupal-dev/modules/search/search.install create mode 100644 drupal-dev/modules/search/search.module create mode 100644 drupal-dev/modules/search/search.pages.inc create mode 100644 drupal-dev/modules/search/search.test create mode 100644 drupal-dev/modules/search/tests/UnicodeTest.txt create mode 100644 drupal-dev/modules/search/tests/search_embedded_form.info create mode 100644 drupal-dev/modules/search/tests/search_embedded_form.module create mode 100644 drupal-dev/modules/search/tests/search_extra_type.info create mode 100644 drupal-dev/modules/search/tests/search_extra_type.module create mode 100644 drupal-dev/modules/shortcut/shortcut-rtl.css create mode 100644 drupal-dev/modules/shortcut/shortcut.admin.css create mode 100644 drupal-dev/modules/shortcut/shortcut.admin.inc create mode 100644 drupal-dev/modules/shortcut/shortcut.admin.js create mode 100644 drupal-dev/modules/shortcut/shortcut.api.php create mode 100644 drupal-dev/modules/shortcut/shortcut.css create mode 100644 drupal-dev/modules/shortcut/shortcut.info create mode 100644 drupal-dev/modules/shortcut/shortcut.install create mode 100644 drupal-dev/modules/shortcut/shortcut.module create mode 100644 drupal-dev/modules/shortcut/shortcut.png create mode 100644 drupal-dev/modules/shortcut/shortcut.test create mode 100644 drupal-dev/modules/simpletest/drupal_web_test_case.php create mode 100644 drupal-dev/modules/simpletest/files/README.txt create mode 100644 drupal-dev/modules/simpletest/files/css_test_files/comment_hacks.css create mode 100644 drupal-dev/modules/simpletest/files/css_test_files/comment_hacks.css.optimized.css create mode 100644 drupal-dev/modules/simpletest/files/css_test_files/comment_hacks.css.unoptimized.css create mode 100644 drupal-dev/modules/simpletest/files/css_test_files/css_input_with_import.css create mode 100644 drupal-dev/modules/simpletest/files/css_test_files/css_input_with_import.css.optimized.css create mode 100644 drupal-dev/modules/simpletest/files/css_test_files/css_input_with_import.css.unoptimized.css create mode 100644 drupal-dev/modules/simpletest/files/css_test_files/css_input_without_import.css create mode 100644 drupal-dev/modules/simpletest/files/css_test_files/css_input_without_import.css.optimized.css create mode 100644 drupal-dev/modules/simpletest/files/css_test_files/css_input_without_import.css.unoptimized.css create mode 100644 drupal-dev/modules/simpletest/files/css_test_files/css_subfolder/css_input_with_import.css create mode 100644 drupal-dev/modules/simpletest/files/css_test_files/css_subfolder/css_input_with_import.css.optimized.css create mode 100644 drupal-dev/modules/simpletest/files/css_test_files/css_subfolder/css_input_with_import.css.unoptimized.css create mode 100644 drupal-dev/modules/simpletest/files/css_test_files/import1.css create mode 100644 drupal-dev/modules/simpletest/files/css_test_files/import2.css create mode 100644 drupal-dev/modules/simpletest/files/html-1.txt create mode 100644 drupal-dev/modules/simpletest/files/html-2.html create mode 100644 drupal-dev/modules/simpletest/files/image-1.png create mode 100644 drupal-dev/modules/simpletest/files/image-2.jpg create mode 100644 drupal-dev/modules/simpletest/files/image-test.gif create mode 100644 drupal-dev/modules/simpletest/files/image-test.jpg create mode 100644 drupal-dev/modules/simpletest/files/image-test.png create mode 100644 drupal-dev/modules/simpletest/files/javascript-1.txt create mode 100644 drupal-dev/modules/simpletest/files/javascript-2.script create mode 100644 drupal-dev/modules/simpletest/files/php-1.txt create mode 100644 drupal-dev/modules/simpletest/files/php-2.php create mode 100644 drupal-dev/modules/simpletest/files/sql-1.txt create mode 100644 drupal-dev/modules/simpletest/files/sql-2.sql create mode 100644 drupal-dev/modules/simpletest/lib/Drupal/simpletest/Tests/PSR0WebTest.php create mode 100644 drupal-dev/modules/simpletest/simpletest.api.php create mode 100644 drupal-dev/modules/simpletest/simpletest.css create mode 100644 drupal-dev/modules/simpletest/simpletest.info create mode 100644 drupal-dev/modules/simpletest/simpletest.install create mode 100644 drupal-dev/modules/simpletest/simpletest.js create mode 100644 drupal-dev/modules/simpletest/simpletest.module create mode 100644 drupal-dev/modules/simpletest/simpletest.pages.inc create mode 100644 drupal-dev/modules/simpletest/simpletest.test create mode 100644 drupal-dev/modules/simpletest/tests/actions.test create mode 100644 drupal-dev/modules/simpletest/tests/actions_loop_test.info create mode 100644 drupal-dev/modules/simpletest/tests/actions_loop_test.install create mode 100644 drupal-dev/modules/simpletest/tests/actions_loop_test.module create mode 100644 drupal-dev/modules/simpletest/tests/ajax.test create mode 100644 drupal-dev/modules/simpletest/tests/ajax_forms_test.info create mode 100644 drupal-dev/modules/simpletest/tests/ajax_forms_test.module create mode 100644 drupal-dev/modules/simpletest/tests/ajax_test.info create mode 100644 drupal-dev/modules/simpletest/tests/ajax_test.module create mode 100644 drupal-dev/modules/simpletest/tests/batch.test create mode 100644 drupal-dev/modules/simpletest/tests/batch_test.callbacks.inc create mode 100644 drupal-dev/modules/simpletest/tests/batch_test.info create mode 100644 drupal-dev/modules/simpletest/tests/batch_test.module create mode 100644 drupal-dev/modules/simpletest/tests/bootstrap.test create mode 100644 drupal-dev/modules/simpletest/tests/cache.test create mode 100644 drupal-dev/modules/simpletest/tests/common.test create mode 100644 drupal-dev/modules/simpletest/tests/common_test.css create mode 100644 drupal-dev/modules/simpletest/tests/common_test.info create mode 100644 drupal-dev/modules/simpletest/tests/common_test.module create mode 100644 drupal-dev/modules/simpletest/tests/common_test.print.css create mode 100644 drupal-dev/modules/simpletest/tests/common_test_cron_helper.info create mode 100644 drupal-dev/modules/simpletest/tests/common_test_cron_helper.module create mode 100644 drupal-dev/modules/simpletest/tests/common_test_info.txt create mode 100644 drupal-dev/modules/simpletest/tests/database_test.info create mode 100644 drupal-dev/modules/simpletest/tests/database_test.install create mode 100644 drupal-dev/modules/simpletest/tests/database_test.module create mode 100644 drupal-dev/modules/simpletest/tests/database_test.test create mode 100644 drupal-dev/modules/simpletest/tests/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info create mode 100644 drupal-dev/modules/simpletest/tests/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.module create mode 100644 drupal-dev/modules/simpletest/tests/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info create mode 100644 drupal-dev/modules/simpletest/tests/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.module create mode 100644 drupal-dev/modules/simpletest/tests/entity_cache_test.info create mode 100644 drupal-dev/modules/simpletest/tests/entity_cache_test.module create mode 100644 drupal-dev/modules/simpletest/tests/entity_cache_test_dependency.info create mode 100644 drupal-dev/modules/simpletest/tests/entity_cache_test_dependency.module create mode 100644 drupal-dev/modules/simpletest/tests/entity_crud_hook_test.info create mode 100644 drupal-dev/modules/simpletest/tests/entity_crud_hook_test.module create mode 100644 drupal-dev/modules/simpletest/tests/entity_crud_hook_test.test create mode 100644 drupal-dev/modules/simpletest/tests/entity_query.test create mode 100644 drupal-dev/modules/simpletest/tests/entity_query_access_test.info create mode 100644 drupal-dev/modules/simpletest/tests/entity_query_access_test.module create mode 100644 drupal-dev/modules/simpletest/tests/error.test create mode 100644 drupal-dev/modules/simpletest/tests/error_test.info create mode 100644 drupal-dev/modules/simpletest/tests/error_test.module create mode 100644 drupal-dev/modules/simpletest/tests/file.test create mode 100644 drupal-dev/modules/simpletest/tests/file_test.info create mode 100644 drupal-dev/modules/simpletest/tests/file_test.module create mode 100644 drupal-dev/modules/simpletest/tests/filetransfer.test create mode 100644 drupal-dev/modules/simpletest/tests/filter_test.info create mode 100644 drupal-dev/modules/simpletest/tests/filter_test.module create mode 100644 drupal-dev/modules/simpletest/tests/form.test create mode 100644 drupal-dev/modules/simpletest/tests/form_test.file.inc create mode 100644 drupal-dev/modules/simpletest/tests/form_test.info create mode 100644 drupal-dev/modules/simpletest/tests/form_test.module create mode 100644 drupal-dev/modules/simpletest/tests/graph.test create mode 100644 drupal-dev/modules/simpletest/tests/http.php create mode 100644 drupal-dev/modules/simpletest/tests/https.php create mode 100644 drupal-dev/modules/simpletest/tests/image.test create mode 100644 drupal-dev/modules/simpletest/tests/image_test.info create mode 100644 drupal-dev/modules/simpletest/tests/image_test.module create mode 100644 drupal-dev/modules/simpletest/tests/lock.test create mode 100644 drupal-dev/modules/simpletest/tests/mail.test create mode 100644 drupal-dev/modules/simpletest/tests/menu.test create mode 100644 drupal-dev/modules/simpletest/tests/menu_test.info create mode 100644 drupal-dev/modules/simpletest/tests/menu_test.module create mode 100644 drupal-dev/modules/simpletest/tests/module.test create mode 100644 drupal-dev/modules/simpletest/tests/module_test.file.inc create mode 100644 drupal-dev/modules/simpletest/tests/module_test.info create mode 100644 drupal-dev/modules/simpletest/tests/module_test.install create mode 100644 drupal-dev/modules/simpletest/tests/module_test.module create mode 100644 drupal-dev/modules/simpletest/tests/pager.test create mode 100644 drupal-dev/modules/simpletest/tests/password.test create mode 100644 drupal-dev/modules/simpletest/tests/path.test create mode 100644 drupal-dev/modules/simpletest/tests/path_test.info create mode 100644 drupal-dev/modules/simpletest/tests/path_test.module create mode 100644 drupal-dev/modules/simpletest/tests/psr_0_test/lib/Drupal/psr_0_test/Tests/ExampleTest.php create mode 100644 drupal-dev/modules/simpletest/tests/psr_0_test/lib/Drupal/psr_0_test/Tests/Nested/NestedExampleTest.php create mode 100644 drupal-dev/modules/simpletest/tests/psr_0_test/psr_0_test.info create mode 100644 drupal-dev/modules/simpletest/tests/psr_0_test/psr_0_test.module create mode 100644 drupal-dev/modules/simpletest/tests/registry.test create mode 100644 drupal-dev/modules/simpletest/tests/requirements1_test.info create mode 100644 drupal-dev/modules/simpletest/tests/requirements1_test.install create mode 100644 drupal-dev/modules/simpletest/tests/requirements1_test.module create mode 100644 drupal-dev/modules/simpletest/tests/requirements2_test.info create mode 100644 drupal-dev/modules/simpletest/tests/requirements2_test.module create mode 100644 drupal-dev/modules/simpletest/tests/schema.test create mode 100644 drupal-dev/modules/simpletest/tests/session.test create mode 100644 drupal-dev/modules/simpletest/tests/session_test.info create mode 100644 drupal-dev/modules/simpletest/tests/session_test.module create mode 100644 drupal-dev/modules/simpletest/tests/system.base.css create mode 100644 drupal-dev/modules/simpletest/tests/system_dependencies_test.info create mode 100644 drupal-dev/modules/simpletest/tests/system_dependencies_test.module create mode 100644 drupal-dev/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.info create mode 100644 drupal-dev/modules/simpletest/tests/system_incompatible_core_version_dependencies_test.module create mode 100644 drupal-dev/modules/simpletest/tests/system_incompatible_core_version_test.info create mode 100644 drupal-dev/modules/simpletest/tests/system_incompatible_core_version_test.module create mode 100644 drupal-dev/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.info create mode 100644 drupal-dev/modules/simpletest/tests/system_incompatible_module_version_dependencies_test.module create mode 100644 drupal-dev/modules/simpletest/tests/system_incompatible_module_version_test.info create mode 100644 drupal-dev/modules/simpletest/tests/system_incompatible_module_version_test.module create mode 100644 drupal-dev/modules/simpletest/tests/system_test.info create mode 100644 drupal-dev/modules/simpletest/tests/system_test.module create mode 100644 drupal-dev/modules/simpletest/tests/tablesort.test create mode 100644 drupal-dev/modules/simpletest/tests/taxonomy_test.info create mode 100644 drupal-dev/modules/simpletest/tests/taxonomy_test.install create mode 100644 drupal-dev/modules/simpletest/tests/taxonomy_test.module create mode 100644 drupal-dev/modules/simpletest/tests/theme.test create mode 100644 drupal-dev/modules/simpletest/tests/theme_test.inc create mode 100644 drupal-dev/modules/simpletest/tests/theme_test.info create mode 100644 drupal-dev/modules/simpletest/tests/theme_test.module create mode 100644 drupal-dev/modules/simpletest/tests/theme_test.template_test.tpl.php create mode 100644 drupal-dev/modules/simpletest/tests/themes/test_basetheme/test_basetheme.info create mode 100644 drupal-dev/modules/simpletest/tests/themes/test_subtheme/test_subtheme.info create mode 100644 drupal-dev/modules/simpletest/tests/themes/test_theme/template.php create mode 100644 drupal-dev/modules/simpletest/tests/themes/test_theme/test_theme.info create mode 100644 drupal-dev/modules/simpletest/tests/unicode.test create mode 100644 drupal-dev/modules/simpletest/tests/update.test create mode 100644 drupal-dev/modules/simpletest/tests/update_script_test.info create mode 100644 drupal-dev/modules/simpletest/tests/update_script_test.install create mode 100644 drupal-dev/modules/simpletest/tests/update_script_test.module create mode 100644 drupal-dev/modules/simpletest/tests/update_test_1.info create mode 100644 drupal-dev/modules/simpletest/tests/update_test_1.install create mode 100644 drupal-dev/modules/simpletest/tests/update_test_1.module create mode 100644 drupal-dev/modules/simpletest/tests/update_test_2.info create mode 100644 drupal-dev/modules/simpletest/tests/update_test_2.install create mode 100644 drupal-dev/modules/simpletest/tests/update_test_2.module create mode 100644 drupal-dev/modules/simpletest/tests/update_test_3.info create mode 100644 drupal-dev/modules/simpletest/tests/update_test_3.install create mode 100644 drupal-dev/modules/simpletest/tests/update_test_3.module create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/drupal-6.bare.database.php create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/drupal-6.comments.database.php create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/drupal-6.duplicate-permission.database.php create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/drupal-6.filled.database.php create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/drupal-6.forum.database.php create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/drupal-6.locale.database.php create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/drupal-6.menu.database.php create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/drupal-6.node_type_broken.database.php create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/drupal-6.translatable.database.php create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/drupal-6.trigger.database.php create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/drupal-6.upload.database.php create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/drupal-6.user-no-password-token.database.php create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/drupal-6.user-password-token.database.php create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/drupal-7.aggregator.database.php create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/drupal-7.bare.minimal.database.php.gz create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/drupal-7.bare.standard_all.database.php.gz create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/drupal-7.field.database.php create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/drupal-7.filled.minimal.database.php.gz create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/drupal-7.filled.standard_all.database.php.gz create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/drupal-7.trigger.database.php create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/update.aggregator.test create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/update.field.test create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/update.trigger.test create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/update.user.test create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/upgrade.comment.test create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/upgrade.filter.test create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/upgrade.forum.test create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/upgrade.locale.test create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/upgrade.menu.test create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/upgrade.node.test create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/upgrade.poll.test create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/upgrade.taxonomy.test create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/upgrade.test create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/upgrade.translatable.test create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/upgrade.trigger.test create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/upgrade.upload.test create mode 100644 drupal-dev/modules/simpletest/tests/upgrade/upgrade.user.test create mode 100644 drupal-dev/modules/simpletest/tests/url_alter_test.info create mode 100644 drupal-dev/modules/simpletest/tests/url_alter_test.install create mode 100644 drupal-dev/modules/simpletest/tests/url_alter_test.module create mode 100644 drupal-dev/modules/simpletest/tests/xmlrpc.test create mode 100644 drupal-dev/modules/simpletest/tests/xmlrpc_test.info create mode 100644 drupal-dev/modules/simpletest/tests/xmlrpc_test.module create mode 100644 drupal-dev/modules/statistics/statistics.admin.inc create mode 100644 drupal-dev/modules/statistics/statistics.info create mode 100644 drupal-dev/modules/statistics/statistics.install create mode 100644 drupal-dev/modules/statistics/statistics.js create mode 100644 drupal-dev/modules/statistics/statistics.module create mode 100644 drupal-dev/modules/statistics/statistics.pages.inc create mode 100644 drupal-dev/modules/statistics/statistics.php create mode 100644 drupal-dev/modules/statistics/statistics.test create mode 100644 drupal-dev/modules/statistics/statistics.tokens.inc create mode 100644 drupal-dev/modules/syslog/syslog.info create mode 100644 drupal-dev/modules/syslog/syslog.install create mode 100644 drupal-dev/modules/syslog/syslog.module create mode 100644 drupal-dev/modules/syslog/syslog.test create mode 100644 drupal-dev/modules/system/html.tpl.php create mode 100644 drupal-dev/modules/system/image.gd.inc create mode 100644 drupal-dev/modules/system/language.api.php create mode 100644 drupal-dev/modules/system/maintenance-page.tpl.php create mode 100644 drupal-dev/modules/system/page.tpl.php create mode 100644 drupal-dev/modules/system/region.tpl.php create mode 100644 drupal-dev/modules/system/system.admin-rtl.css create mode 100644 drupal-dev/modules/system/system.admin.css create mode 100644 drupal-dev/modules/system/system.admin.inc create mode 100644 drupal-dev/modules/system/system.api.php create mode 100644 drupal-dev/modules/system/system.archiver.inc create mode 100644 drupal-dev/modules/system/system.base-rtl.css create mode 100644 drupal-dev/modules/system/system.base.css create mode 100644 drupal-dev/modules/system/system.cron.js create mode 100644 drupal-dev/modules/system/system.info create mode 100644 drupal-dev/modules/system/system.install create mode 100644 drupal-dev/modules/system/system.js create mode 100644 drupal-dev/modules/system/system.mail.inc create mode 100644 drupal-dev/modules/system/system.maintenance.css create mode 100644 drupal-dev/modules/system/system.menus-rtl.css create mode 100644 drupal-dev/modules/system/system.menus.css create mode 100644 drupal-dev/modules/system/system.messages-rtl.css create mode 100644 drupal-dev/modules/system/system.messages.css create mode 100644 drupal-dev/modules/system/system.module create mode 100644 drupal-dev/modules/system/system.queue.inc create mode 100644 drupal-dev/modules/system/system.tar.inc create mode 100644 drupal-dev/modules/system/system.test create mode 100644 drupal-dev/modules/system/system.theme-rtl.css create mode 100644 drupal-dev/modules/system/system.theme.css create mode 100644 drupal-dev/modules/system/system.tokens.inc create mode 100644 drupal-dev/modules/system/system.updater.inc create mode 100644 drupal-dev/modules/system/theme.api.php create mode 100644 drupal-dev/modules/taxonomy/taxonomy-term.tpl.php create mode 100644 drupal-dev/modules/taxonomy/taxonomy.admin.inc create mode 100644 drupal-dev/modules/taxonomy/taxonomy.api.php create mode 100644 drupal-dev/modules/taxonomy/taxonomy.css create mode 100644 drupal-dev/modules/taxonomy/taxonomy.info create mode 100644 drupal-dev/modules/taxonomy/taxonomy.install create mode 100644 drupal-dev/modules/taxonomy/taxonomy.js create mode 100644 drupal-dev/modules/taxonomy/taxonomy.module create mode 100644 drupal-dev/modules/taxonomy/taxonomy.pages.inc create mode 100644 drupal-dev/modules/taxonomy/taxonomy.test create mode 100644 drupal-dev/modules/taxonomy/taxonomy.tokens.inc create mode 100644 drupal-dev/modules/toolbar/toolbar-rtl.css create mode 100644 drupal-dev/modules/toolbar/toolbar.css create mode 100644 drupal-dev/modules/toolbar/toolbar.info create mode 100644 drupal-dev/modules/toolbar/toolbar.js create mode 100644 drupal-dev/modules/toolbar/toolbar.module create mode 100644 drupal-dev/modules/toolbar/toolbar.png create mode 100644 drupal-dev/modules/toolbar/toolbar.tpl.php create mode 100644 drupal-dev/modules/tracker/tracker.css create mode 100644 drupal-dev/modules/tracker/tracker.info create mode 100644 drupal-dev/modules/tracker/tracker.install create mode 100644 drupal-dev/modules/tracker/tracker.module create mode 100644 drupal-dev/modules/tracker/tracker.pages.inc create mode 100644 drupal-dev/modules/tracker/tracker.test create mode 100644 drupal-dev/modules/translation/tests/translation_test.info create mode 100644 drupal-dev/modules/translation/tests/translation_test.module create mode 100644 drupal-dev/modules/translation/translation.info create mode 100644 drupal-dev/modules/translation/translation.module create mode 100644 drupal-dev/modules/translation/translation.pages.inc create mode 100644 drupal-dev/modules/translation/translation.test create mode 100644 drupal-dev/modules/trigger/tests/trigger_test.info create mode 100644 drupal-dev/modules/trigger/tests/trigger_test.module create mode 100644 drupal-dev/modules/trigger/trigger.admin.inc create mode 100644 drupal-dev/modules/trigger/trigger.api.php create mode 100644 drupal-dev/modules/trigger/trigger.info create mode 100644 drupal-dev/modules/trigger/trigger.install create mode 100644 drupal-dev/modules/trigger/trigger.module create mode 100644 drupal-dev/modules/trigger/trigger.test create mode 100644 drupal-dev/modules/update/tests/aaa_update_test.1_0.xml create mode 100644 drupal-dev/modules/update/tests/aaa_update_test.info create mode 100644 drupal-dev/modules/update/tests/aaa_update_test.module create mode 100644 drupal-dev/modules/update/tests/aaa_update_test.no-releases.xml create mode 100644 drupal-dev/modules/update/tests/aaa_update_test.tar.gz create mode 100644 drupal-dev/modules/update/tests/bbb_update_test.1_0.xml create mode 100644 drupal-dev/modules/update/tests/bbb_update_test.info create mode 100644 drupal-dev/modules/update/tests/bbb_update_test.module create mode 100644 drupal-dev/modules/update/tests/ccc_update_test.1_0.xml create mode 100644 drupal-dev/modules/update/tests/ccc_update_test.info create mode 100644 drupal-dev/modules/update/tests/ccc_update_test.module create mode 100644 drupal-dev/modules/update/tests/drupal.0.xml create mode 100644 drupal-dev/modules/update/tests/drupal.1.xml create mode 100644 drupal-dev/modules/update/tests/drupal.2-sec.xml create mode 100644 drupal-dev/modules/update/tests/drupal.dev.xml create mode 100644 drupal-dev/modules/update/tests/themes/update_test_basetheme/update_test_basetheme.info create mode 100644 drupal-dev/modules/update/tests/themes/update_test_subtheme/update_test_subtheme.info create mode 100644 drupal-dev/modules/update/tests/update_test.info create mode 100644 drupal-dev/modules/update/tests/update_test.module create mode 100644 drupal-dev/modules/update/tests/update_test_basetheme.1_1-sec.xml create mode 100644 drupal-dev/modules/update/tests/update_test_subtheme.1_0.xml create mode 100644 drupal-dev/modules/update/update-rtl.css create mode 100644 drupal-dev/modules/update/update.api.php create mode 100644 drupal-dev/modules/update/update.authorize.inc create mode 100644 drupal-dev/modules/update/update.compare.inc create mode 100644 drupal-dev/modules/update/update.css create mode 100644 drupal-dev/modules/update/update.fetch.inc create mode 100644 drupal-dev/modules/update/update.info create mode 100644 drupal-dev/modules/update/update.install create mode 100644 drupal-dev/modules/update/update.manager.inc create mode 100644 drupal-dev/modules/update/update.module create mode 100644 drupal-dev/modules/update/update.report.inc create mode 100644 drupal-dev/modules/update/update.settings.inc create mode 100644 drupal-dev/modules/update/update.test create mode 100644 drupal-dev/modules/user/tests/user_form_test.info create mode 100644 drupal-dev/modules/user/tests/user_form_test.module create mode 100644 drupal-dev/modules/user/user-picture.tpl.php create mode 100644 drupal-dev/modules/user/user-profile-category.tpl.php create mode 100644 drupal-dev/modules/user/user-profile-item.tpl.php create mode 100644 drupal-dev/modules/user/user-profile.tpl.php create mode 100644 drupal-dev/modules/user/user-rtl.css create mode 100644 drupal-dev/modules/user/user.admin.inc create mode 100644 drupal-dev/modules/user/user.api.php create mode 100644 drupal-dev/modules/user/user.css create mode 100644 drupal-dev/modules/user/user.info create mode 100644 drupal-dev/modules/user/user.install create mode 100644 drupal-dev/modules/user/user.js create mode 100644 drupal-dev/modules/user/user.module create mode 100644 drupal-dev/modules/user/user.pages.inc create mode 100644 drupal-dev/modules/user/user.permissions.js create mode 100644 drupal-dev/modules/user/user.test create mode 100644 drupal-dev/modules/user/user.tokens.inc create mode 100644 drupal-dev/profiles/minimal/minimal.info create mode 100644 drupal-dev/profiles/minimal/minimal.install create mode 100644 drupal-dev/profiles/minimal/minimal.profile create mode 100644 drupal-dev/profiles/minimal/translations/README.txt create mode 100644 drupal-dev/profiles/standard/standard.info create mode 100644 drupal-dev/profiles/standard/standard.install create mode 100644 drupal-dev/profiles/standard/standard.profile create mode 100644 drupal-dev/profiles/standard/translations/README.txt create mode 100644 drupal-dev/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.info create mode 100644 drupal-dev/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.module create mode 100644 drupal-dev/profiles/testing/modules/drupal_system_listing_compatible_test/drupal_system_listing_compatible_test.test create mode 100644 drupal-dev/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.info create mode 100644 drupal-dev/profiles/testing/modules/drupal_system_listing_incompatible_test/drupal_system_listing_incompatible_test.module create mode 100644 drupal-dev/profiles/testing/testing.info create mode 100644 drupal-dev/profiles/testing/testing.install create mode 100644 drupal-dev/profiles/testing/testing.profile create mode 100644 drupal-dev/robots.txt create mode 100644 drupal-dev/scripts/code-clean.sh create mode 100644 drupal-dev/scripts/cron-curl.sh create mode 100644 drupal-dev/scripts/cron-lynx.sh create mode 100755 drupal-dev/scripts/drupal.sh create mode 100644 drupal-dev/scripts/dump-database-d6.sh create mode 100644 drupal-dev/scripts/dump-database-d7.sh create mode 100644 drupal-dev/scripts/generate-d6-content.sh create mode 100644 drupal-dev/scripts/generate-d7-content.sh create mode 100755 drupal-dev/scripts/password-hash.sh create mode 100755 drupal-dev/scripts/run-tests.sh create mode 100644 drupal-dev/scripts/test.script create mode 100644 drupal-dev/sites/README.txt create mode 100644 drupal-dev/sites/all/modules/README.txt create mode 100644 drupal-dev/sites/all/themes/README.txt create mode 100644 drupal-dev/sites/default/default.settings.php create mode 100644 drupal-dev/sites/default/files/.htaccess create mode 100644 drupal-dev/sites/default/settings.php create mode 100644 drupal-dev/sites/example.sites.php create mode 100644 drupal-dev/themes/README.txt create mode 100644 drupal-dev/themes/bartik/bartik.info create mode 100644 drupal-dev/themes/bartik/color/base.png create mode 100644 drupal-dev/themes/bartik/color/color.inc create mode 100644 drupal-dev/themes/bartik/color/preview.css create mode 100644 drupal-dev/themes/bartik/color/preview.html create mode 100644 drupal-dev/themes/bartik/color/preview.js create mode 100644 drupal-dev/themes/bartik/color/preview.png create mode 100644 drupal-dev/themes/bartik/css/colors.css create mode 100644 drupal-dev/themes/bartik/css/ie-rtl.css create mode 100644 drupal-dev/themes/bartik/css/ie.css create mode 100644 drupal-dev/themes/bartik/css/ie6.css create mode 100644 drupal-dev/themes/bartik/css/layout-rtl.css create mode 100644 drupal-dev/themes/bartik/css/layout.css create mode 100644 drupal-dev/themes/bartik/css/maintenance-page.css create mode 100644 drupal-dev/themes/bartik/css/print.css create mode 100644 drupal-dev/themes/bartik/css/style-rtl.css create mode 100644 drupal-dev/themes/bartik/css/style.css create mode 100644 drupal-dev/themes/bartik/images/add.png create mode 100644 drupal-dev/themes/bartik/images/buttons.png create mode 100644 drupal-dev/themes/bartik/images/comment-arrow-rtl.gif create mode 100644 drupal-dev/themes/bartik/images/comment-arrow.gif create mode 100644 drupal-dev/themes/bartik/images/search-button.png create mode 100644 drupal-dev/themes/bartik/images/tabs-border.png create mode 100644 drupal-dev/themes/bartik/logo.png create mode 100644 drupal-dev/themes/bartik/screenshot.png create mode 100644 drupal-dev/themes/bartik/template.php create mode 100644 drupal-dev/themes/bartik/templates/comment-wrapper.tpl.php create mode 100644 drupal-dev/themes/bartik/templates/comment.tpl.php create mode 100644 drupal-dev/themes/bartik/templates/maintenance-page.tpl.php create mode 100644 drupal-dev/themes/bartik/templates/node.tpl.php create mode 100644 drupal-dev/themes/bartik/templates/page.tpl.php create mode 100644 drupal-dev/themes/engines/phptemplate/phptemplate.engine create mode 100644 drupal-dev/themes/garland/color/base.png create mode 100644 drupal-dev/themes/garland/color/color.inc create mode 100644 drupal-dev/themes/garland/color/preview.css create mode 100644 drupal-dev/themes/garland/color/preview.png create mode 100644 drupal-dev/themes/garland/comment.tpl.php create mode 100644 drupal-dev/themes/garland/fix-ie-rtl.css create mode 100644 drupal-dev/themes/garland/fix-ie.css create mode 100644 drupal-dev/themes/garland/garland.info create mode 100644 drupal-dev/themes/garland/images/bg-bar-white.png create mode 100644 drupal-dev/themes/garland/images/bg-bar.png create mode 100644 drupal-dev/themes/garland/images/bg-content-left.png create mode 100644 drupal-dev/themes/garland/images/bg-content-right.png create mode 100644 drupal-dev/themes/garland/images/bg-content.png create mode 100644 drupal-dev/themes/garland/images/bg-navigation-item-hover.png create mode 100644 drupal-dev/themes/garland/images/bg-navigation-item.png create mode 100644 drupal-dev/themes/garland/images/bg-navigation.png create mode 100644 drupal-dev/themes/garland/images/bg-tab.png create mode 100644 drupal-dev/themes/garland/images/body.png create mode 100644 drupal-dev/themes/garland/images/gradient-inner.png create mode 100644 drupal-dev/themes/garland/images/menu-collapsed-rtl.gif create mode 100644 drupal-dev/themes/garland/images/menu-collapsed.gif create mode 100644 drupal-dev/themes/garland/images/menu-expanded.gif create mode 100644 drupal-dev/themes/garland/images/menu-leaf.gif create mode 100644 drupal-dev/themes/garland/images/task-list.png create mode 100644 drupal-dev/themes/garland/logo.png create mode 100644 drupal-dev/themes/garland/maintenance-page.tpl.php create mode 100644 drupal-dev/themes/garland/node.tpl.php create mode 100644 drupal-dev/themes/garland/page.tpl.php create mode 100644 drupal-dev/themes/garland/print.css create mode 100644 drupal-dev/themes/garland/screenshot.png create mode 100644 drupal-dev/themes/garland/style-rtl.css create mode 100644 drupal-dev/themes/garland/style.css create mode 100644 drupal-dev/themes/garland/template.php create mode 100644 drupal-dev/themes/garland/theme-settings.php create mode 100644 drupal-dev/themes/seven/ie.css create mode 100644 drupal-dev/themes/seven/ie6.css create mode 100644 drupal-dev/themes/seven/ie7.css create mode 100644 drupal-dev/themes/seven/images/add.png create mode 100644 drupal-dev/themes/seven/images/arrow-asc.png create mode 100644 drupal-dev/themes/seven/images/arrow-desc.png create mode 100644 drupal-dev/themes/seven/images/arrow-next.png create mode 100644 drupal-dev/themes/seven/images/arrow-prev.png create mode 100644 drupal-dev/themes/seven/images/buttons.png create mode 100644 drupal-dev/themes/seven/images/fc-rtl.png create mode 100644 drupal-dev/themes/seven/images/fc.png create mode 100644 drupal-dev/themes/seven/images/list-item-rtl.png create mode 100644 drupal-dev/themes/seven/images/list-item.png create mode 100644 drupal-dev/themes/seven/images/task-check.png create mode 100644 drupal-dev/themes/seven/images/task-item-rtl.png create mode 100644 drupal-dev/themes/seven/images/task-item.png create mode 100644 drupal-dev/themes/seven/images/ui-icons-222222-256x240.png create mode 100644 drupal-dev/themes/seven/images/ui-icons-454545-256x240.png create mode 100644 drupal-dev/themes/seven/images/ui-icons-800000-256x240.png create mode 100644 drupal-dev/themes/seven/images/ui-icons-888888-256x240.png create mode 100644 drupal-dev/themes/seven/images/ui-icons-ffffff-256x240.png create mode 100644 drupal-dev/themes/seven/jquery.ui.theme.css create mode 100644 drupal-dev/themes/seven/logo.png create mode 100644 drupal-dev/themes/seven/maintenance-page.tpl.php create mode 100644 drupal-dev/themes/seven/page.tpl.php create mode 100644 drupal-dev/themes/seven/reset.css create mode 100644 drupal-dev/themes/seven/screenshot.png create mode 100644 drupal-dev/themes/seven/seven.info create mode 100644 drupal-dev/themes/seven/style-rtl.css create mode 100644 drupal-dev/themes/seven/style.css create mode 100644 drupal-dev/themes/seven/template.php create mode 100644 drupal-dev/themes/seven/vertical-tabs-rtl.css create mode 100644 drupal-dev/themes/seven/vertical-tabs.css create mode 100644 drupal-dev/themes/stark/README.txt create mode 100644 drupal-dev/themes/stark/layout.css create mode 100644 drupal-dev/themes/stark/logo.png create mode 100644 drupal-dev/themes/stark/screenshot.png create mode 100644 drupal-dev/themes/stark/stark.info create mode 100644 drupal-dev/update.php create mode 100644 drupal-dev/web.config create mode 100644 drupal-dev/xmlrpc.php create mode 100644 javascript/index.html create mode 100644 javascript/myscript.js create mode 100644 ruby/hello.rb create mode 100644 sass/index.html create mode 100644 sass/test.css create mode 100644 sass/test.scss create mode 100644 shirts4mike/contact/index.php create mode 100755 shirts4mike/css/style.css create mode 100755 shirts4mike/favicon.ico create mode 100755 shirts4mike/img/banner-background.jpg create mode 100755 shirts4mike/img/banner-link-arrow.png create mode 100755 shirts4mike/img/branding-title.png create mode 100755 shirts4mike/img/logo-paypal-classic.png create mode 100755 shirts4mike/img/logo-paypal.png create mode 100755 shirts4mike/img/mike-the-frog.png create mode 100755 shirts4mike/img/nav-sprite.png create mode 100755 shirts4mike/img/shirts/shirt-101.jpg create mode 100755 shirts4mike/img/shirts/shirt-102.jpg create mode 100755 shirts4mike/img/shirts/shirt-103.jpg create mode 100755 shirts4mike/img/shirts/shirt-104.jpg create mode 100755 shirts4mike/img/shirts/shirt-105.jpg create mode 100755 shirts4mike/img/shirts/shirt-106.jpg create mode 100755 shirts4mike/img/shirts/shirt-107.jpg create mode 100755 shirts4mike/img/shirts/shirt-108.jpg create mode 100644 shirts4mike/inc/footer.php create mode 100644 shirts4mike/inc/header.php create mode 100644 shirts4mike/inc/phpmailer/class.phpmailer.php create mode 100644 shirts4mike/inc/products.php create mode 100755 shirts4mike/index.php create mode 100644 shirts4mike/receipt/index.php create mode 100644 shirts4mike/sass/test.scss create mode 100644 shirts4mike/shirt/index.php create mode 100644 shirts4mike/shirts/index.php diff --git a/drupal-dev/CHANGELOG.txt b/drupal-dev/CHANGELOG.txt new file mode 100644 index 0000000..9f1bcf1 --- /dev/null +++ b/drupal-dev/CHANGELOG.txt @@ -0,0 +1,1833 @@ + +Drupal 7.26, 2014-01-15 +---------------------- +- Fixed security issues (multiple vulnerabilities). See SA-CORE-2014-001. + +Drupal 7.25, 2014-01-02 +----------------------- +- Fixed a bug in node_save() which prevented the saved node from being updated + in hook_node_insert() and other similar hooks. +- Added a meta tag to install.php to prevent it from being indexed by search + engines even when Drupal is installed in a subfolder (minor markup change). +- Fixed a bug in the database API that caused frequent deadlock errors when + running merge queries on some servers. +- Performance improvement: Prevented block rehashing from writing blocks to the + database on every cache clear and cron run when the blocks have not changed. + This fix results in an extra 'saved' key which is added and set to TRUE for + each block returned by _block_rehash() that actually is saved to the database + (data structure change). +- Added an optional 'skip on cron' parameter to hook_cron_queue_info() to allow + queues to avoid being automatically processed on cron runs (API addition). +- Fixed a bug which caused hook_block_view_MODULE_DELTA_alter() to never be + invoked if the block delta had a hyphen in it. To implement the hook when the + block delta has a hyphen, modules should now replace hyphens with underscores + when constructing the function name for the hook implementation. +- Fixed a bug which caused cached pages to sometimes be sent to the browser + with incorrect compression. The fix adds a new 'page_compressed' key to the + $cache->data array returned by drupal_page_get_cache() (minor data structure + change). +- Fixed broken tests on PHP 5.5. +- Made the File and Image modules more robust when saving entities that have + deleted files attached. The code in file_field_presave() will now remove the + record of the deleted file from the entity before saving (minor data + structure change). +- Standardized menu callback functions throughout Drupal core to return + MENU_NOT_FOUND and MENU_ACCESS_DENIED rather than printing their own "page + not found" or "access denied" pages (minor API change in the return value of + these functions under some circumstances). +- Fixed a bug in which caches were not properly cleared when a node was deleted + via the administrative interface. +- Changed the Bartik theme to render content contained in
,  and
+  similar tags in a larger font size, so it is easier to read.
+- Fixed a bug in the Search module that caused exceptions to be thrown during
+  searches if the server was not configured to represent decimal points as a
+  period.
+- Fixed a regression in the Image module that made image_style_url() not work
+  when a relative path (rather than a complete file URI) was passed to it.
+- Added an optional feature to the Statistics module to allow node views to be
+  tracked by Ajax requests rather than during the server-side generation of the
+  page. This allows the node counter to work on sites that use external page
+  caches (string change and new administrative option:
+  https://drupal.org/node/2164069).
+- Added a link to the drupal.org documentation page for cron to the Cron
+  settings page (string change).
+- Added a 'drupal_anonymous_user_object' variable to allow the anonymous user
+  object returned by drupal_anonymous_user() to be overridden with a classed
+  object (API addition).
+- Changed the database API to allow inserts based on a SELECT * query to work
+  correctly.
+- Changed the database schema of the {file_managed} table to allow Drupal to
+  manage files larger than 4 GB.
+- Changed the File module's hook_field_load() implementation to prevent file
+  entity properties which have the same name as file or image field properties
+  from overwriting the field properties (minor API change).
+- Numerous small bug fixes.
+- Numerous API documentation improvements.
+- Additional automated test coverage.
+
+Drupal 7.24, 2013-11-20
+----------------------
+- Fixed security issues (multiple vulnerabilities), see SA-CORE-2013-003.
+
+Drupal 7.23, 2013-08-07
+-----------------------
+- Fixed a fatal error on PostgreSQL databases when updating the Taxonomy module
+  from Drupal 6 to Drupal 7.
+- Fixed the default ordering of CSS files for sites using right-to-left
+  languages, to consistently place the right-to-left override file immediately
+  after the CSS it is overriding (API change: https://drupal.org/node/2058463).
+- Added a drupal_check_memory_limit() API function to allow the memory limit to
+  be checked consistently (API addition).
+- Changed the default web.config file for IIS servers to allow favicon.ico
+  files which are present in the filesystem to be accessed.
+- Fixed inconsistent support for the 'tel' protocol in Drupal's URL filtering
+  functions.
+- Performance improvement: Allowed all hooks to be included in the
+  module_implements() cache, even those that are only invoked on HTTP POST
+  requests.
+- Made the database system replace truncate queries with delete queries when
+  inside a transaction, to fix issues with PostgreSQL and other databases.
+- Fixed a bug which caused nested contextual links to display improperly.
+- Fixed a bug which prevented cached image derivatives from being flushed for
+  private files and other non-default file schemes.
+- Fixed drupal_render() to always return an empty string when there is no
+  output, rather than sometimes returning NULL (minor API change).
+- Added protection to cache_clear_all() to ensure that non-cache tables cannot
+  be truncated (API addition: a new isValidBin() method has been added to the
+  default database cache implementation).
+- Changed the default .htaccess file to support HTTP authorization in CGI
+  environments.
+- Changed the password reset form to pre-fill the username when requested via a
+  URL query parameter, and used this in the error message that appears after a
+  failed login attempt (minor data structure and behavior change).
+- Fixed broken support for foreign keys in the field API.
+- Fixed "No active batch" error when a user cancels their own account.
+- Added a description to the "access content overview" permission on the
+  permissions page (string change).
+- Added a drupal_array_diff_assoc_recursive() function to allow associative
+  arrays to be compared recursively (API addition).
+- Added human-readable labels to image styles, in addition to the existing
+  machine-readable name (API change: https://drupal.org/node/2058503).
+- Moved the drupal_get_hash_salt() function to bootstrap.inc and used it in
+  additional places in the code, for added security in the case where there is
+  no hash salt in settings.php.
+- Fixed a regression in Drupal 7.22 that caused internal server errors for
+  sites running on very old Apache 1.x web servers.
+- Numerous small bug fixes.
+- Numerous API documentation improvements.
+- Additional automated test coverage.
+
+Drupal 7.22, 2013-04-03
+-----------------------
+- Allowed the drupal_http_request() function to be overridden so that
+  additional HTTP request capabilities can be added by contributed modules.
+- Changed the Simpletest module to allow PSR-0 test classes to be used in
+  Drupal 7.
+- Removed an unnecessary "Content-Disposition" header from private file
+  downloads; it prevented many private files from being viewed inline in a web
+  browser.
+- Changed various field API functions to allow them to optionally act on a
+  single field within an entity (API addition: http://drupal.org/node/1825844).
+- Fixed a bug which prevented Drupal's file transfer functionality from working
+  on some PHP 5.4 systems.
+- Fixed incorrect log message when theme() is called for a theme hook that does
+  not exist (minor string change).
+- Fixed Drupal's token-replacement system to allow spaces in the token value.
+- Changed the default behavior after a user creates a node they do not have
+  access to view. The user will now be redirected to the front page rather than
+  an access denied page.
+- Fixed a bug which prevented empty HTTP headers (such as "0") from being set.
+  (Minor behavior change: Callers of drupal_add_http_header() must now set
+  FALSE explicitly to prevent a header from being sent at all; this was already
+  indicated in the function's documentation.)
+- Fixed OpenID errors when more than one module implements hook_openid(). The
+  behavior is now changed so that if more than one module tries to set the same
+  parameter, the last module's change takes effect.
+- Fixed a serious documentation bug: The $name variable in the
+  taxonomy-term.tpl.php theme template was incorrectly documented as being
+  sanitized when in fact it is not.
+- Fixed a bug which prevented Drupal 6 to Drupal 7 upgrades on sites which had
+  duplicate permission names in the User module's database tables.
+- Added an empty "datatype" attribute to taxonomy term and username links to
+  make the RDFa markup upward compatible with RDFa 1.1 (minor markup addition).
+- Fixed a bug which caused the denial-of-service protection added in Drupal
+  7.20 to break certain valid image URLs that had an extra slash in them.
+- Fixed a bug with update queries in the SQLite database driver that prevented
+  Drupal from being installed with SQLite on PHP 5.4.
+- Fixed enforced dependencies errors updating to recent versions of Drupal 7 on
+  certain non-MySQL databases.
+- Refactored the Field module's caching behavior to obtain large improvements
+  in memory usage for sites with many fields and instances (API addition:
+  http://drupal.org/node/1915646).
+- Fixed entity argument not being passed to implementations of
+  hook_file_download_access_alter(). The fix adds an additional context
+  parameter that can be passed when calling drupal_alter() for any hook (API
+  change: http://drupal.org/node/1882722).
+- Fixed broken support for translatable comment fields (API change:
+  http://drupal.org/node/1874724).
+- Added an assertThemeOutput() method to Simpletest to allow tests to check
+  that themed output matches an expected HTML string (API addition).
+- Added a link to "Install another module" after a module has been successfully
+  downloaded via the Update Manager (UI change).
+- Added an optional "exclusive" flag to installation profile .info files which
+  allows Drupal distributions to force a profile to be selected during
+  installation (API addition: http://drupal.org/node/1961012).
+- Fixed a bug which caused the database API to not properly close database
+  connections.
+- Added a link to the URL for running cron from outside the site to the Cron
+  settings page (UI change).
+- Fixed a bug which prevented image styles from being reverted on PHP 5.4.
+- Made the default .htaccess rules protocol sensitive to improve security for
+  sites which use HTTPS and redirect between "www" and non-"www" versions of
+  the page.
+- Numerous small bug fixes.
+- Numerous API documentation improvements.
+- Additional automated test coverage.
+
+Drupal 7.21, 2013-03-06
+-----------------------
+- Allowed sites using the 'image_allow_insecure_derivatives' variable to still
+  have partial protection from the security issues fixed in Drupal 7.20.
+
+Drupal 7.20, 2013-02-20
+-----------------------
+- Fixed security issues (denial of service). See SA-CORE-2013-002.
+
+Drupal 7.19, 2013-01-16
+-----------------------
+- Fixed security issues (multiple vulnerabilities). See SA-CORE-2013-001.
+
+Drupal 7.18, 2012-12-19
+-----------------------
+- Fixed security issues (multiple vulnerabilities). See SA-CORE-2012-004.
+
+Drupal 7.17, 2012-11-07
+-----------------------
+- Changed the default value of the '404_fast_html' variable to have a DOCTYPE
+  declaration.
+- Made it possible to use associative arrays for the 'items' variable in
+  theme_item_list().
+- Fixed a bug which prevented required form elements without a title from being
+  given an "error" class when the form fails validation.
+- Prevented duplicate HTML IDs from appearing when two forms are displayed on
+  the same page and one of them is submitted with invalid data (minor markup
+  change).
+- Fixed a bug which prevented Drupal 6 to Drupal 7 upgrades on sites which had
+  stale data in the Upload module's database tables.
+- Fixed a bug in the States API which prevented certain types of form elements
+  from being disabled when requested.
+- Allowed aggregator feed items with author names longer than 255 characters to
+  have a truncated version saved to the database (rather than causing a fatal
+  error).
+- Allowed aggregator feed items to have URLs longer than 255 characters
+  (schema change which results in several columns in the Aggregator module's
+  database tables changing from VARCHAR to TEXT fields).
+- Added hook_taxonomy_term_view() and standardized the process for rendering
+  taxonomy terms to invoke hook_entity_view() and otherwise make it consistent
+  with other entities (API change: http://drupal.org/node/1808870).
+- Added hook_entity_view_mode_alter() to allow modules to change entity view
+  modes on display (API addition: http://drupal.org/node/1833086).
+- Fixed a bug which made database queries running a "LIKE" query on blob fields
+  fail on PostgreSQL databases. This caused errors during the Drupal 6 to
+  Drupal 7 upgrade.
+- Changed the hook_menu() entry for Drupal's rss.xml page to prevent extra path
+  components from being accidentally passed to the page callback function (data
+  structure change).
+- Removed a non-standard "name" attribute from Drupal's default Content-Type
+  header for file downloads.
+- Fixed the theme settings form to properly clean up submitted values in
+  $form_state['values'] when the form is submitted (data structure change).
+- Fixed an inconsistency by removing the colon from the end of the label on
+  multi-valued form fields (minor string change).
+- Added support for 'weight' in hook_field_widget_info() to allow modules to
+  control the order in which widgets are displayed in the Field UI.
+- Updated various tables in the OpenID and Book modules to use the default
+  "empty table" text pattern (string change).
+- Added proxy server support to drupal_http_request().
+- Added "lang" attributes to language links, to better support screen readers.
+- Fixed double occurrence of a "ul" HTML tag on secondary local tasks in the
+  Seven theme (markup change).
+- Fixed bugs which caused taxonomy vocabulary and shortcut set titles to be
+  double-escaped. The fix replaces the taxonomy vocabulary overview page and
+  "Edit shortcuts" menu items' title callback entries in hook_menu() with new
+  functions that do not escape HTML characters (data structure change).
+- Modified the Update manager module to allow drupal.org to collect usage
+  statistics for individual modules and themes, rather than only for entire
+  projects.
+- Modified the node listing database query on Drupal's default front page to
+  add table aliases for better query altering (this is a data structure change
+  affecting code which implements hook_query_alter() on this query).
+- Improved the translatability of the "Field type(s) in use" message on the
+  modules page (admin-facing string change).
+- Fixed a regression which caused a "call to undefined function
+  drupal_find_base_themes()" fatal error under rare circumstances.
+- Numerous API documentation improvements.
+- Additional automated test coverage.
+
+Drupal 7.16, 2012-10-17
+-----------------------
+- Fixed security issues (Arbitrary PHP code execution and information
+  disclosure). See SA-CORE-2012-003.
+
+Drupal 7.15, 2012-08-01
+-----------------------
+- Introduced a 'user_password_reset_timeout' variable to allow the 24-hour
+  expiration for user password reset links to be adjusted (API addition).
+- Fixed database errors due to ambiguous column names that occurred when
+  EntityFieldQuery was used in certain situations.
+- Changed the drupal_array_get_nested_value() function to return a reference
+  (API addition).
+- Changed the System module's hook_block_info() implementation to assign the
+  "Main page content" and "System help" blocks to appropriate regions by
+  default and prevent error messages on the block administration page (data
+  structure change).
+- Fixed regression: Non-node entities couldn't be accessed with
+  EntityFieldQuery.
+- Fixed regression: Optional radio buttons with an empty, non-NULL default
+  value led to an illegal choice error when none were selected.
+- Reorganized the testing framework to split setUp() into specific sub-methods
+  and fix several regressions in the process.
+- Fixed bug which made it impossible to search for strings that have not been
+  translated into a particular language.
+- Renamed the "Field" column on the Manage Fields screen to "Field type", since
+  the former was confusing and inaccurate (UI change).
+- Performance improvement: Removed needless call to system_rebuild_module_data()
+  in field_sync_field_status(), greatly speeding up bulk module enable/disable.
+- Fixed bug which prevented notifications from being sent when core, module, and
+  theme updates are available.
+- Fixed bug which prevented sub-themes from inheriting the default values of
+  theme settings defined by the base theme.
+- Fixed bug which prevented the jQuery UI Datepicker from being localized.
+- Made Ajax alert dialogs respect error reporting settings.
+- Fixed bug which prevented image styles from being deleted on PHP 5.4.
+- Fixed bug: Language detection by domain only worked on port 80.
+- Fixed regression: The first plural index on a page was not calculated
+  correctly.
+- Introduced generic entity language support. Entities may now declare their
+  language property in hook_entity_info(), and modules working with entities
+  may access the language using entity_language() (API change:
+  http://drupal.org/node/1626346).
+- Added EntityFieldQuery support for taxonomy bundles.
+- Fixed issue where field form structure was incomplete if field_access()
+  returned FALSE. Instead of being incomplete, the form structure now has
+  #access set to FALSE and field form validation is skipped (data structure
+  change: http://drupal.org/node/1663020).
+- Fixed data loss issue due to field_has_data() returning inconsistent results.
+  The fix adds an optional DANGEROUS_ACCESS_CHECK_OPT_OUT tag to entity field
+  queries which field storage engines can respond to (API addition:
+  http://drupal.org/node/1597378).
+- Fixed notice: Undefined index: default_image in image_field_prepare_view()
+- Numerous API documentation improvements.
+- Additional automated test coverage.
+
+Drupal 7.14 2012-05-02
+----------------------
+- Fixed "integrity constraint" fatal errors when rebuilding registry.
+- Fixed custom logo and favicon functionality referencing incorrect paths.
+- Fixed DB Case Sensitivity: Allow BINARY attribute in MySQL.
+- Split field_bundle_settings out per bundle.
+- Improve UX for machine names for fields (UI change).
+- Fixed User pictures are not removed properly.
+- Fixed HTTPS sessions not working in all cases.
+- Fixed Regression: Required radios throw illegal choice error when none
+  selected.
+- Fixed allow autocompletion requests to include slashes.
+- Eliminate $user->cache and {session}.cache in favor of
+  $_SESSION['cache_expiration'][$bin] (Performance).
+- Fixed focus jumps to tab when pressing enter on a form element within tab.
+- Fixed race condition in locale() - duplicates in {locales_source}.
+- Fixed Missing "Default image" per field instance.
+- Quit clobbering people's work when they click the filter tips link
+- Form API #states: Fix conditionals to allow OR and XOR constructions.
+- Fixed Focus jumps to tab when pressing enter on a form element within tab.
+  (Accessibility)
+- Improved performance of node_access queries.
+- Fixed Fieldsets inside vertical tabs have no title and can't be collapsed.
+- Reduce size of cache_menu table (Performance).
+- Fixed unnecessary aggregation of CSS/JS (Performance).
+- Fixed taxonomy_autocomplete() produces SQL error for nonexistent field.
+- Fixed HTML filter is not run first by default, despite default weight.
+- Fixed Overlay does not work with prefixed URL paths.
+- Better debug info for field errors (string change).
+- Fixed Data corruption in comment IDs (results in broken threading on
+  PostgreSQL).
+- Fixed machine name not editable if every character is replaced.
+- Fixed user picture not appearing in comment preview (Markup change).
+- Added optional vid argument for taxonomy_get_term_by_name().
+- Fixed Invalid Unicode code range in PREG_CLASS_UNICODE_WORD_BOUNDARY fails
+  with PCRE 8.30.
+- Fixed {trigger_assignments()}.hook has only 32 characters, is too short.
+- Numerous fixes to run-tests.sh.
+- Fixed Tests in profiles/[name]/modules cannot be run and cannot use a
+  different profile for running tests.
+- Numerous JavaScript performance fixes.
+- Numerous documentation fixes.
+- Fixed All pager links have an 'active' CSS class.
+- Numerous upgrade path fixes; notably:
+  - system_update_7061() fails on inserting files with same name but different
+    case.
+  - system_update_7061() converts filepaths too aggressively.
+  - Trigger upgrade path: Node triggers removed when upgrading to 7-x from 6.25.
+
+Drupal 7.13 2012-05-02
+----------------------
+- Fixed security issues (Multiple vulnerabilities), see SA-CORE-2012-002.
+
+Drupal 7.12, 2012-02-01
+----------------------
+- Fixed bug preventing custom menus from receiving an active trail.
+- Fixed hook_field_delete() no longer invoked during field_purge_data().
+- Fixed bug causing entity info cache to not be cleared with the rest of caches.
+- Fixed file_unmanaged_copy() fails with Drupal 7.7+ and safe_mode() or
+  open_basedir().
+- Fixed Nested transactions throw exceptions when they got out of scope.
+- Fixed bugs with the Return-Path when sending mail on both Windows and
+  non-Windows systems.
+- Fixed bug with DrupalCacheArray property visibility preventing others from
+  extending it (API change: http://drupal.org/node/1422264).
+- Fixed bug with handling of non-ASCII characters in file names (API change:
+  http://drupal.org/node/1424840).
+- Reconciled field maximum length with database column size in image and
+  aggregator modules.
+- Fixes to various core JavaScript files to allow for minification and
+  aggregation.
+- Fixed Prevent tests from deleting main installation's tables when
+  parent::setUp() is not called.
+- Fixed several Poll module bugs.
+- Fixed several Shortcut module bugs.
+- Added new hook_system_theme_info() to provide ability for contributed modules
+  to test theme functionality.
+- Added ability to cancel mail sending from hook_mail_alter().
+- Added support for configurable PDO connection options, enabling master-master
+  database replication.
+- Numerous improvements to tests and test runner to pave the way for faster test
+  runs.
+- Expanded test coverage.
+- Numerous API documentation improvements.
+- Numerous performance improvements, including token replacement and render
+  cache.
+
+Drupal 7.11, 2012-02-01
+----------------------
+- Fixed security issues (Multiple vulnerabilities), see SA-CORE-2012-001.
+
+Drupal 7.10, 2011-12-05
+----------------------
+- Fixed Content-Language HTTP header to not cause issues with Drush 5.x.
+- Reduce memory usage of theme registry (performance).
+- Fixed PECL upload progress bar for FileField
+- Fixed running update.php doesn't always clear the cache.
+- Fixed PDO exceptions on long titles.
+- Fixed Overlay redirect does not include query string.
+- Fixed D6 modules satisfy D7 module dependencies.
+- Fixed the ordering of module hooks when using module_implements_alter().
+- Fixed "floating" submit buttons during AJAX requests.
+- Fixed timezone selected on install not propogating to admin account.
+- Added msgctx context to JS translation functions, for feature parity with t().
+- Profiles' .install files now available during hook_install_tasks().
+- Added test coverage of 7.0 -> 7.x upgrade path.
+- Numerous notice fixes.
+- Numerous documentation improvements.
+- Additional automated test coverage.
+
+Drupal 7.9, 2011-10-26
+----------------------
+- Critical fixes to OpenID to spec violations that could allow for
+  impersonation in certain scenarios. Existing OpenID users should see
+  http://drupal.org/node/1120290#comment-5092796 for more information on
+  transitioning.
+- Fixed files getting lost when adding multiple files to multiple file fields
+  at the same time.
+- Improved usability of the clean URL test screens.
+- Restored height/width attributes on images run through the theme system.
+- Fixed usability bug with first password field being pre-filled by certain
+  browser plugins.
+- Fixed file_usage_list() so that it can return more than one result.
+- Fixed bug preventing preview of private images on node form.
+- Fixed PDO error when inserting an aggregator title longer than 255 characters.
+- Spelled out what TRADITIONAL means in MySQL sql_mode.
+- Deprecated "!=" operator for DBTNG; should be "<>".
+- Added two new API functions (menu_tree_set_path()/menu_tree_get_path()) were
+  added in order to enable setting the active menu trail for dynamically
+  generated menu paths.
+- Added new "fast 404" capability in settings.php to bypass Drupal bootstrap
+  when serving 404 pages for certain file types.
+- Added format_string() function which can perform string munging ala the t()
+  function without the overhead of the translation system.
+- Numerous #states system fixes.
+- Numerous EntityFieldQuery, DBTNG, and SQLite fixes.
+- Numerous Shortcut module fixes.
+- Numerous language system fixes.
+- Numerous token fixes.
+- Numerous CSS fixes.
+- Numerous upgrade path fixes.
+- Numerous minor string fixes.
+- Numerous notice fixes.
+
+Drupal 7.8, 2011-08-31
+----------------------
+- Fixed critical upgrade path issue with multilingual sites, leading to lost
+  content.
+- Numerous fixes to upgrade path, preventing fatal errors due to incorrect
+  dependencies.
+- Fixed issue with saving files on hosts with open_basedir restrictions.
+- Fixed Update manger error when used with Overlay.
+- Fixed RTL support in Seven administration theme and Overlay.
+- Fixes to nested transaction support.
+- Introduced performance pattern to reduce Drupal core's RAM usage.
+- Added support for HTML 5 tags to filter_xss_admin().
+- Added exception handling to cron.
+- Added new hook hook_field_widget_form_alter() for contribtued modules.
+- element_validate_*() functions now available to contrib.
+- Added new maintainers for several subsystems.
+- Numerous testing system improvements.
+- Numerous markup and CSS fixes.
+- Numerous poll module fixes.
+- Numerous notice/warning fixes.
+- Numerous documentation fixes.
+- Numerous token fixes.
+
+Drupal 7.7, 2011-07-27
+----------------------
+- Fixed VERSION string.
+
+Drupal 7.6, 2011-07-27
+----------------------
+- Fixed support for remote streamwrappers.
+- AJAX now binds to 'click' instead of 'mousedown'.
+- 'Translatable' flag on fields created in UI now defaults to FALSE, to match those created via the API.
+- Performance enhancement to permissions page on large numbers of permissions.
+- More secure password generation.
+- Fix for temporary directory on Windows servers.
+- run-tests.sh now uses proc_open() instead of pcntl_fork() for better Windows support.
+- Numerous upgrade path fixes.
+- Numerous documentation fixes.
+- Numerous notice fixes.
+- Numerous fixes to improve PHP 5.4 support.
+- Numerous RTL improvements.
+
+Drupal 7.5, 2011-07-27
+----------------------
+- Fixed security issue (Access bypass), see SA-CORE-2011-003.
+
+Drupal 7.4, 2011-06-29
+----------------------
+- Rolled back patch that caused fatal errors in CTools, Feeds, and other modules using the class registry.
+- Fixed critical bug with saving default images.
+- Fixed fatal errors when uninstalling some modules.
+- Added workaround for MySQL transaction support breaking on DDL statments.
+- Improved page caching with external caching systems.
+- Fix to Batch API, which was terminating too early.
+- Numerous upgrade path fixes.
+- Performance fixes.
+- Additional test coverage.
+- Numerous documentation fixes.
+
+Drupal 7.3, 2011-06-29
+----------------------
+- Fixed security issue (Access bypass), see SA-CORE-2011-002.
+
+Drupal 7.2, 2011-05-25
+----------------------
+- Added a default .gitignore file.
+- Improved PostgreSQL and SQLite support.
+- Numerous critical performance improvements.
+- Numerous critical fixes to the upgrade path.
+- Numerous fixes to language and translation systems.
+- Numerous fixes to AJAX and #states systems.
+- Improvements to the locking system.
+- Numerous documentation fixes.
+- Numerous styling and theme system fixes.
+- Numerous fixes for schema mis-matches between Drupal 6 and 7.
+- Minor internal API clean-ups.
+
+Drupal 7.1, 2011-05-25
+----------------------
+- Fixed security issues (Cross site scripting, File access bypass), see SA-CORE-2011-001.
+
+Drupal 7.0, 2011-01-05 
+----------------------
+- Database:
+    * Fully rewritten database layer utilizing PHP 5's PDO abstraction layer.
+    * Drupal now requires MySQL >= 5.0.15 or PostgreSQL >= 8.3.
+    * Added query builders for INSERT, UPDATE, DELETE, MERGE, and SELECT queries.
+    * Support for master/slave replication, transactions, multi-insert queries,
+      and other features.
+    * Added support for the SQLite database engine.
+    * Default to InnoDB engine, rather than MyISAM, on MySQL when available.
+      This offers increased scalability and data integrity.
+- Security:
+    * Protected cron.php -- cron will only run if the proper key is provided.
+    * Implemented a pluggable password system and much stronger password hashes
+      that are compatible with the Portable PHP password hashing framework.
+    * Rate limited login attempts to prevent brute-force password guessing, and
+      improved the flood control API to allow variable time windows and
+      identifiers for limiting user access to resources.
+    * Transformed the "Update status" module into the "Update manager" which
+      can securely install or update modules and themes via a web interface.
+- Usability:
+    * Added contextual links (a.k.a. local tasks) to page elements, such as
+      blocks, nodes, or comments, which allows to perform the most common tasks
+      with a single click only.
+    * Improved installer requirements check.
+    * Improved support for integration of WYSIWYG editors.
+    * Implemented drag-and-drop positioning for input format listings.
+    * Implemented drag-and-drop positioning for language listing.
+    * Implemented drag-and-drop positioning for poll options.
+    * Provided descriptions and human-readable names for user permissions.
+    * Removed comment controls for users.
+    * Removed display order settings for comment module. Comment display
+      order can now be customized using the Views module.
+    * Removed the 'related terms' feature from taxonomy module since this can
+      now be achieved with Field API.
+    * Added additional features to the default installation profile, and
+      implemented a "slimmed down" profile designed for developers.
+    * Added a built-in, automated cron run feature, which is triggered by site
+      visitors.
+    * Added an administrator role which is assigned all permissions for
+      installed modules automatically.
+    * Image toolkits are now provided by modules (rather than requiring a
+      manual file copy to the includes directory).
+    * Added an edit tab to taxonomy term pages.
+    * Redesigned password strength validator.
+    * Redesigned the add content type screen.
+    * Highlight duplicate URL aliases.
+    * Renamed "input formats" to "text formats".
+    * Moved text format permissions to the main permissions page.
+    * Added configurable ability for users to cancel their own accounts.
+    * Added "vertical tabs", a reusable interface component that features
+      automatic summaries and increases usability.
+    * Replaced fieldsets on node edit and add pages with vertical tabs.
+- Performance:
+    * Improved performance on uncached page views by loading multiple core
+      objects in a single database query.
+    * Improved performance for logged-in users by reducing queries for path
+      alias lookups.
+    * Improved support for HTTP proxies (including reverse proxies), allowing
+      anonymous page views to be served entirely from the proxy.
+- Documentation:
+    * Hook API documentation now included in Drupal core.
+- News aggregator:
+    * Added OPML import functionality for RSS feeds.
+    * Optionally, RSS feeds may be configured to not automatically generate feed blocks.
+- Search:
+    * Added support for language-aware searches.
+- Aggregator:
+    * Introduced architecture that allows pluggable parsers and processors for
+      syndicating RSS and Atom feeds.
+    * Added options to suspend updating specific feeds and never discard feeds
+      items.
+- Testing:
+    * Added test framework and tests.
+- Improved time zone support:
+    * Drupal now uses PHP's time zone database when rendering dates in local
+      time. Site-wide and user-configured time zone offsets have been converted
+      to time zone names, e.g. Africa/Abidjan.
+    * In some cases the upgrade and install scripts do not choose the preferred
+      site default time zone. The automatically-selected time zone can be
+      corrected at admin/config/regional/settings.
+    * If your site is being upgraded from Drupal 6 and you do not have the
+      contributed date or event modules installed, user time zone settings will
+      fallback to the system time zone and will have to be reconfigured by each user.
+    * User-configured time zones now serve as the default time zone for PHP
+      date/time functions.
+- Filter system:
+    * Revamped the filter API and text format storage.
+    * Added support for default text formats to be assigned on a per-role basis.
+    * Refactored the HTML corrector to take advantage of PHP 5 features.
+- User system:
+    * Added clean API functions for creating, loading, updating, and deleting
+      user roles and permissions.
+    * Refactored the "access rules" component of user module: The user module
+      now provides a simple interface for blocking single IP addresses. The
+      previous functionality in the user module for restricting certain e-mail
+      addresses and usernames is now available as a contributed module. Further,
+      IP address range blocking is no longer supported and should be implemented
+      at the operating system level.
+    * Removed per-user themes: Contributed modules with similar functionality
+      are available.
+- OpenID:
+    * Added support for Gmail and Google Apps for Domain identifiers. Users can
+      now login with their user@example.com identifier when example.com is powered
+      by Google.
+    * Made the OpenID module more pluggable.
+- Added code registry:
+    * Using the registry, modules declare their includable files via their .info file,
+      allowing Drupal to lazy-load classes and interfaces as needed.
+- Theme system:
+    * Removed the Bluemarine, Chameleon and Pushbutton themes. These themes live
+      on as contributed themes (http://drupal.org/project/bluemarine,
+      http://drupal.org/project/chameleon and http://drupal.org/project/pushbutton).
+    * Added Stark theme to make analyzing Drupal's default HTML and CSS easier.
+    * Added Seven as the default administration theme.
+    * Variable preprocessing of theme hooks prior to template rendering now goes
+      through two phases: a 'preprocess' phase and a new 'process' phase. See
+      http://api.drupal.org/api/function/theme/7 for details.
+    * Theme hooks implemented as functions (rather than as templates) can now
+      also have preprocess (and process) functions. See
+      http://api.drupal.org/api/function/theme/7 for details.
+    * Added Bartik as the default theme.
+- File handling:
+    * Files are now first class Drupal objects with file_load(), file_save(),
+      and file_validate() functions and corresponding hooks.
+    * The file_move(), file_copy() and file_delete() functions now operate on
+      file objects and invoke file hooks so that modules are notified and can
+      respond to changes.
+    * For the occasions when only basic file manipulation are needed--such as
+      uploading a site logo--that don't require the overhead of databases and
+      hooks, the current unmanaged copy, move and delete operations have been
+      preserved but renamed to file_unmanaged_*().
+    * Rewrote file handling to use PHP stream wrappers to enable support for
+      both public and private files and to support pluggable storage mechanisms
+      and access to remote resources (e.g. S3 storage or Flickr photos).
+    * The mime_extension_mapping variable has been removed. Modules that need to
+      alter the default MIME type extension mappings should implement
+      hook_file_mimetype_mapping_alter().
+    * Added the hook_file_url_alter() hook, which makes it possible to serve
+      files from a CDN.
+    * Added a field specifically for uploading files, previously provided by
+      the contributed module FileField.
+- Image handling:
+    * Improved image handling, including better support for add-on image
+      libraries.
+    * Added API and interface for creating advanced image thumbnails.
+    * Inclusion of additional effects such as rotate and desaturate.
+    * Added a field specifically for uploading images, previously provided by
+      the contributed module ImageField.
+- Added aliased multi-site support:
+    * Added support for mapping domain names to sites directories.
+- Added RDF support:
+    * Modules can declare RDF namespaces which are serialized in the  tag
+      for RDFa support.
+    * Modules can specify how their data structure maps to RDF.
+    * Added support for RDFa export of nodes, comments, terms, users, etc. and
+      their fields.
+- Search engine optimization and web linking:
+    * Added a rel="canonical" link on node and comment pages to prevent
+      duplicate content indexing by search engines.
+    * Added a default rel="shortlink" link on node and comment pages that
+      advertises a short link as an alternative URL to third-party services.
+    * Meta information is now alterable by all modules before rendering.
+- Field API:
+    * Custom data fields may be attached to nodes, users, comments and taxonomy
+      terms.
+    * Node bodies and teasers are now Field API fields instead of
+      being a hard-coded property of node objects.
+    * In addition, any other object type may register with Field API
+      and allow custom data fields to be attached to itself.
+    * Provides most of the features of the former Content Construction
+      Kit (CCK) module.
+    * Taxonomy terms are now Field API fields that can be added to any fieldable
+      object.
+- Installer:
+    * Refactored the installer into an API that allows Drupal to be installed
+      via a command line script.
+- Page organization
+    * Made the help text area a full featured region with blocks.
+    * Site mission is replaced with the highlighted content block region and
+      separate RSS feed description settings.
+    * The footer message setting was removed in favor of custom blocks.
+    * Made the main page content a block which can be moved and ordered
+      with other blocks in the same region.
+    * Blocks can now return structured arrays for later rendering just
+      like page callbacks.
+- Translation system
+    * The translation system now supports message context (msgctxt).
+    * Added support for translatable fields to Field API.
+- JavaScript changes
+    * Upgraded the core JavaScript library to jQuery version 1.4.4.
+    * Upgraded the jQuery Forms library to 2.52.
+    * Added jQuery UI 1.8.7, which allows improvements to Drupal's user
+      experience.
+- Better module version support
+    * Modules now can specify which version of another module they depend on.
+- Removed modules from core
+    * The following modules have been removed from core, because contributed
+      modules with similar functionality are available:
+      * Blog API module
+      * Ping module
+      * Throttle module
+- Improved node access control system.
+    * All modules may now influence the access to a node at runtime, not just
+      the module that defined a node.
+    * Users may now be allowed to bypass node access restrictions without giving
+      them complete access to the site.
+    * Access control affects both published and unpublished nodes.
+    * Numerous other improvements to the node access system.
+- Actions system
+    * Simplified definitions of actions and triggers.
+    * Removed dependency on the combination of hooks and operations. Triggers
+      now directly map to module hooks.
+- Task handling
+    * Added a queue API to process many or long-running tasks.
+    * Added queue API support to cron API.
+    * Added a locking framework to coordinate long-running operations across
+      requests.
+
+Drupal 6.23-dev, xxxx-xx-xx (development release)
+-----------------------
+
+Drupal 6.22, 2011-05-25
+-----------------------
+- Made Drupal 6 work better with IIS and Internet Explorer.
+- Fixed .po file imports to work better with custom textgroups.
+- Improved code documentation at various places.
+- Fixed a variety of other bugs.
+
+Drupal 6.21, 2011-05-25
+----------------------
+- Fixed security issues (Cross site scripting), see SA-CORE-2011-001.
+
+Drupal 6.20, 2010-12-15
+----------------------
+- Fixed a variety of small bugs, improved code documentation.
+
+Drupal 6.19, 2010-08-11
+----------------------
+- Fixed a variety of small bugs, improved code documentation.
+
+Drupal 6.18, 2010-08-11
+----------------------
+- Fixed security issues (OpenID authentication bypass, File download access
+  bypass, Comment unpublishing bypass, Actions cross site scripting),
+  see SA-CORE-2010-002.
+
+Drupal 6.17, 2010-06-02
+----------------------
+- Improved PostgreSQL compatibility
+- Better PHP 5.3 and PHP 4 compatibility
+- Better browser compatibility of CSS and JS aggregation
+- Improved logging for login failures
+- Fixed an incompatibility with some contributed modules and the locking system
+- Fixed a variety of other bugs.
+
+Drupal 6.16, 2010-03-03
+----------------------
+- Fixed security issues (Installation cross site scripting, Open redirection,
+  Locale module cross site scripting, Blocked user session regeneration),
+  see SA-CORE-2010-001.
+- Better support for updated jQuery versions.
+- Reduced resource usage of update.module.
+- Fixed several issues relating to support of installation profiles and
+  distributions.
+- Added a locking framework to avoid data corruption on long operations.
+- Fixed a variety of other bugs.
+
+Drupal 6.15, 2009-12-16
+----------------------
+- Fixed security issues (Cross site scripting), see SA-CORE-2009-009.
+- Fixed a variety of other bugs.
+
+Drupal 6.14, 2009-09-16
+----------------------
+- Fixed security issues (OpenID association cross site request forgeries,
+  OpenID impersonation and File upload), see SA-CORE-2009-008.
+- Changed the system modules page to not run all cache rebuilds; use the
+  button on the performance settings page to achieve the same effect.
+- Added support for PHP 5.3.0 out of the box.
+- Fixed a variety of small bugs.
+
+Drupal 6.13, 2009-07-01
+----------------------
+- Fixed security issues (Cross site scripting, Input format access bypass and
+  Password leakage in URL), see SA-CORE-2009-007.
+- Fixed a variety of small bugs.
+
+Drupal 6.12, 2009-05-13
+----------------------
+- Fixed security issues (Cross site scripting), see SA-CORE-2009-006.
+- Fixed a variety of small bugs.
+
+Drupal 6.11, 2009-04-29
+----------------------
+- Fixed security issues (Cross site scripting and limited information
+  disclosure), see SA-CORE-2009-005
+- Fixed performance issues with the menu router cache, the update
+  status cache and improved cache invalidation
+- Fixed a variety of small bugs.
+
+Drupal 6.10, 2009-02-25
+----------------------
+- Fixed a security issue, (Local file inclusion on Windows),
+  see SA-CORE-2009-003
+- Fixed node_feed() so custom fields can show up in RSS feeds.
+- Improved PostgreSQL compatibility.
+- Fixed a variety of small bugs.
+
+Drupal 6.9, 2009-01-14
+----------------------
+- Fixed security issues, (Access Bypass, Validation Bypass and Hardening
+  against SQL injection), see SA-CORE-2009-001
+- Made HTTP request checking more robust and informative.
+- Fixed HTTP_HOST checking to work again with HTTP 1.0 clients and
+  basic shell scripts.
+- Removed t() calls from all schema documentation. Suggested best practice
+  changed for contributed modules, see http://drupal.org/node/322731.
+- Fixed a variety of small bugs.
+
+Drupal 6.8, 2008-12-11
+----------------------
+- Removed a previous change incompatible with PHP 5.1.x and lower.
+
+Drupal 6.7, 2008-12-10
+----------------------
+- Fixed security issues, (Cross site request forgery and Cross site scripting), see SA-2008-073
+- Updated robots.txt and .htaccess to match current file use.
+- Fixed a variety of small bugs.
+
+Drupal 6.6, 2008-10-22
+----------------------
+- Fixed security issues, (File inclusion, Cross site scripting), see SA-2008-067
+- Fixed a variety of small bugs.
+
+Drupal 6.5, 2008-10-08
+----------------------
+- Fixed security issues, (File upload access bypass, Access rules bypass,
+  BlogAPI access bypass), see SA-2008-060.
+- Fixed a variety of small bugs.
+
+Drupal 6.4, 2008-08-13
+----------------------
+- Fixed a security issue (Cross site scripting, Arbitrary file uploads via
+  BlogAPI, Cross site request forgeries and Various Upload module
+  vulnerabilities), see SA-2008-047.
+- Improved error messages during installation.
+- Fixed a bug that prevented AHAH handlers to be attached to radios widgets.
+- Fixed a variety of small bugs.
+
+Drupal 6.3, 2008-07-09
+----------------------
+- Fixed security issues, (Cross site scripting, cross site request forgery,
+  session fixation and SQL injection), see SA-2008-044.
+- Slightly modified installation process to prevent file ownership issues on
+  shared hosts.
+- Improved PostgreSQL compatibility (rewritten queries; custom blocks).
+- Upgraded to jQuery 1.2.6.
+- Performance improvements to search, menu handling and form API caches.
+- Fixed Views compatibility issues (Views for Drupal 6 requires Drupal 6.3+).
+- Fixed a variety of small bugs.
+
+Drupal 6.2, 2008-04-09
+----------------------
+- Fixed a variety of small bugs.
+- Fixed a security issue (Access bypasses), see SA-2008-026.
+
+Drupal 6.1, 2008-02-27
+----------------------
+- Fixed a variety of small bugs.
+- Fixed a security issue (Cross site scripting), see SA-2008-018.
+
+Drupal 6.0, 2008-02-13
+----------------------
+- New, faster and better menu system.
+- New watchdog as a hook functionality.
+   * New hook_watchdog that can be implemented by any module to route log
+     messages to various destinations.
+   * Expands the severity levels from 3 (Error, Warning, Notice) to the 8
+     levels defined in RFC 3164.
+   * The watchdog module is now called dblog, and is optional, but enabled by
+     default in the default installation profile.
+   * Extended the database log module so log messages can be filtered.
+   * Added syslog module: useful for monitoring large Drupal installations.
+- Added optional e-mail notifications when users are approved, blocked, or
+  deleted.
+- Drupal works with error reporting set to E_ALL.
+- Added scripts/drupal.sh to execute Drupal code from the command line. Useful
+  to use Drupal as a framework to build command-line tools.
+- Made signature support optional and made it possible to theme signatures.
+- Made it possible to filter the URL aliases on the URL alias administration
+  screen.
+- Language system improvements:
+    * Support for right to left languages.
+    * Language detection based on parts of the URL.
+    * Browser based language detection.
+    * Made it possible to specify a node's language.
+    * Support for translating posts on the site to different languages.
+    * Language dependent path aliases.
+    * Automatically import translations when adding a new language.
+    * JavaScript interface translation.
+    * Automatically import a module's translation upon enabling that module.
+- Moved "PHP input filter" to a standalone module so it can be deleted for
+  security reasons.
+- Usability:
+    * Improved handling of teasers in posts.
+    * Added sticky table headers.
+    * Check for clean URL support automatically with JavaScript.
+    * Removed default/settings.php. Instead the installer will create it from
+      default.settings.php.
+    * Made it possible to configure your own date formats.
+    * Remember anonymous comment posters.
+    * Only allow modules and themes to be enabled that have explicitly been
+      ported to the correct core API version.
+    * Can now specify the minimum PHP version required for a module within the
+      .info file.
+    * Drupal core no longer requires CREATE TEMPORARY TABLES or LOCK TABLES
+      database rights.
+    * Dynamically check password strength and confirmation.
+    * Refactored poll administration.
+    * Implemented drag-and-drop positioning for blocks, menu items, taxonomy
+      vocabularies and terms, forums, profile fields, and input format filters.
+- Theme system:
+    * Added .info files to themes and made it easier to specify regions and
+      features.
+    * Added theme registry: modules can directly provide .tpl.php files for
+      their themes without having to create theme_ functions.
+    * Used the Garland theme for the installation and maintenance pages.
+    * Added theme preprocess functions for themes that are templates.
+    * Added support for themeable functions in JavaScript.
+- Refactored update.php to a generic batch API to be able to run time-consuming
+  operations in multiple subsequent HTTP requests.
+- Installer:
+    * Themed the installer with the Garland theme.
+    * Added form to provide initial site information during installation.
+    * Added ability to provide extra installation steps programmatically.
+    * Made it possible to import interface translations during installation.
+- Added the HTML corrector filter:
+    * Fixes faulty and chopped off HTML in postings.
+    * Tags are now automatically closed at the end of the teaser.
+- Performance:
+    * Made it easier to conditionally load .include files and split up many core
+      modules.
+    * Added a JavaScript aggregator.
+    * Added block-level caching, improving performance for both authenticated
+      and anonymous users.
+    * Made Drupal work correctly when running behind a reverse proxy like
+      Squid or Pound.
+- File handling improvements:
+    * Entries in the files table are now keyed to a user instead of a node.
+    * Added reusable validation functions to check for uploaded file sizes,
+      extensions, and image resolution.
+    * Added ability to create and remove temporary files during a cron job.
+- Forum improvements:
+    * Any node type may now be posted in a forum.
+- Taxonomy improvements:
+    * Descriptions for terms are now shown on taxonomy/term pages as well
+      as RSS feeds.
+    * Added versioning support to categories by associating them with node
+      revisions.
+- Added support for OpenID.
+- Added support for triggering configurable actions.
+- Added the Update status module to automatically check for available updates
+  and warn sites if they are missing security updates or newer versions.
+  Sites deploying from CVS should use http://drupal.org/project/cvs_deploy.
+  Advanced settings provided by http://drupal.org/project/update_advanced.
+- Upgraded the core JavaScript library to jQuery version 1.2.3.
+- Added a new Schema API, which provides built-in support for core and
+  contributed modules to work with databases other than MySQL.
+- Removed drupal.module. The functionality lives on as the Site network
+  contributed module (http://drupal.org/project/site_network).
+- Removed old system updates. Updates from Drupal versions prior to 5.x will
+  require upgrading to 5.x before upgrading to 6.x.
+
+Drupal 5.23, 2010-08-11
+-----------------------
+- Fixed security issues (File download access bypass, Comment unpublishing
+  bypass), see SA-CORE-2010-002.
+
+Drupal 5.22, 2010-03-03
+-----------------------
+- Fixed security issues (Open redirection, Locale module cross site scripting,
+  Blocked user session regeneration), see SA-CORE-2010-001.
+
+Drupal 5.21, 2009-12-16
+-----------------------
+- Fixed a security issue (Cross site scripting), see SA-CORE-2009-009.
+- Fixed a variety of small bugs.
+
+Drupal 5.20, 2009-09-16
+-----------------------
+- Avoid security problems resulting from writing Drupal 6-style menu
+  declarations.
+- Fixed security issues (session fixation), see SA-CORE-2009-008.
+- Fixed a variety of small bugs.
+
+Drupal 5.19, 2009-07-01
+-----------------------
+- Fixed security issues (Cross site scripting and Password leakage in URL), see
+  SA-CORE-2009-007.          
+- Fixed a variety of small bugs.
+
+Drupal 5.18, 2009-05-13
+-----------------------
+- Fixed security issues (Cross site scripting), see SA-CORE-2009-006.
+- Fixed a variety of small bugs.
+
+Drupal 5.17, 2009-04-29
+-----------------------
+- Fixed security issues (Cross site scripting and limited information
+  disclosure) see SA-CORE-2009-005.
+- Fixed a variety of small bugs.
+
+Drupal 5.16, 2009-02-25
+-----------------------
+- Fixed a security issue, (Local file inclusion on Windows), see SA-CORE-2009-004.
+- Fixed a variety of small bugs.
+
+Drupal 5.15, 2009-01-14
+-----------------------
+- Fixed security issues, (Hardening against SQL injection), see
+  SA-CORE-2009-001
+- Fixed HTTP_HOST checking to work again with HTTP 1.0 clients and basic shell
+  scripts.
+- Fixed a variety of small bugs.
+
+Drupal 5.14, 2008-12-11
+-----------------------
+- removed a previous change incompatible with PHP 5.1.x and lower.
+
+Drupal 5.13, 2008-12-10
+-----------------------
+- fixed a variety of small bugs.
+- fixed security issues, (Cross site request forgery and Cross site scripting), see SA-2008-073
+- updated robots.txt and .htaccess to match current file use.
+
+Drupal 5.12, 2008-10-22
+-----------------------
+- fixed security issues, (File inclusion), see SA-2008-067
+
+Drupal 5.11, 2008-10-08
+-----------------------
+- fixed a variety of small bugs.
+- fixed security issues, (File upload access bypass, Access rules bypass,
+  BlogAPI access bypass, Node validation bypass), see SA-2008-060
+
+Drupal 5.10, 2008-08-13
+-----------------------
+- fixed a variety of small bugs.
+- fixed security issues, (Cross site scripting, Arbitrary file uploads via
+  BlogAPI and Cross site request forgery), see SA-2008-047
+
+Drupal 5.9, 2008-07-23
+----------------------
+- fixed a variety of small bugs.
+- fixed security issues, (Session fixation), see SA-2008-046
+
+Drupal 5.8, 2008-07-09
+----------------------
+- fixed a variety of small bugs.
+- fixed security issues, (Cross site scripting, cross site request forgery, and
+  session fixation), see SA-2008-044
+
+Drupal 5.7, 2008-01-28
+----------------------
+- fixed the input format configuration page.
+- fixed a variety of small bugs.
+
+Drupal 5.6, 2008-01-10
+----------------------
+- fixed a variety of small bugs.
+- fixed a security issue (Cross site request forgery), see SA-2008-005
+- fixed a security issue (Cross site scripting, UTF8), see SA-2008-006
+- fixed a security issue (Cross site scripting, register_globals), see SA-2008-007
+
+Drupal 5.5, 2007-12-06
+----------------------
+- fixed missing missing brackets in a query in the user module.
+- fixed taxonomy feed bug introduced by SA-2007-031
+
+Drupal 5.4, 2007-12-05
+----------------------
+- fixed a variety of small bugs.
+- fixed a security issue (SQL injection), see SA-2007-031
+
+Drupal 5.3, 2007-10-17
+----------------------
+- fixed a variety of small bugs.
+- fixed a security issue (HTTP response splitting), see SA-2007-024
+- fixed a security issue (Arbitrary code execution via installer), see SA-2007-025
+- fixed a security issue (Cross site scripting via uploads), see SA-2007-026
+- fixed a security issue (User deletion cross site request forgery), see SA-2007-029
+- fixed a security issue (API handling of unpublished comment), see SA-2007-030
+
+Drupal 5.2, 2007-07-26
+----------------------
+- changed hook_link() $teaser argument to match documentation.
+- fixed a variety of small bugs.
+- fixed a security issue (cross-site request forgery), see SA-2007-017
+- fixed a security issue (cross-site scripting), see SA-2007-018
+
+Drupal 5.1, 2007-01-29
+----------------------
+- fixed security issue (code execution), see SA-2007-005
+- fixed a variety of small bugs.
+
+Drupal 5.0, 2007-01-15
+----------------------
+- Completely retooled the administration page
+    * /Admin now contains an administration page which may be themed
+    * Reorganised administration menu items by task and by module
+    * Added a status report page with detailed PHP/MySQL/Drupal information
+- Added web-based installer which can:
+    * Check installation and run-time requirements
+    * Automatically generate the database configuration file
+    * Install pre-made installation profiles or distributions
+    * Import the database structure with automatic table prefixing
+    * Be localized
+- Added new default Garland theme
+- Added color module to change some themes' color schemes
+- Included the jQuery JavaScript library 1.0.4 and converted all core JavaScript to use it
+- Introduced the ability to alter mail sent from system
+- Module system:
+    * Added .info files for module meta-data
+    * Added support for module dependencies
+    * Improved module installation screen
+    * Moved core modules to their own directories
+    * Added support for module uninstalling
+- Added support for different cache backends
+- Added support for a generic "sites/all" directory.
+- Usability:
+    * Added support for auto-complete forms (AJAX) to user profiles.
+    * Made it possible to instantly assign roles to newly created user accounts.
+    * Improved configurability of the contact forms.
+    * Reorganized the settings pages.
+    * Made it easy to investigate popular search terms.
+    * Added a 'select all' checkbox and a range select feature to administration tables.
+    * Simplified the 'break' tag to split teasers from body.
+    * Use proper capitalization for titles, menu items and operations.
+- Integrated urlfilter.module into filter.module
+- Block system:
+    * Extended the block visibility settings with a role specific setting.
+    * Made it possible to customize all block titles.
+- Poll module:
+    * Optionally allow people to inspect all votes.
+    * Optionally allow people to cancel their vote.
+- Distributed authentication:
+    * Added default server option.
+- Added default robots.txt to control crawlers.
+- Database API:
+    * Added db_table_exists().
+- Blogapi module:
+    * 'Blogapi new' and 'blogapi edit' nodeapi operations.
+- User module:
+    * Added hook_profile_alter().
+    * E-mail verification is made optional.
+    * Added mass editing and filtering on admin/user/user.
+- PHP Template engine:
+    * Add the ability to look for a series of suggested templates.
+    * Look for page templates based upon the path.
+    * Look for block templates based upon the region, module, and delta.
+- Content system:
+    * Made it easier for node access modules to work well with each other.
+    * Added configurable content types.
+    * Changed node rendering to work with structured arrays.
+- Performance:
+    * Improved session handling: reduces database overhead.
+    * Improved access checking: reduces database overhead.
+    * Made it possible to do memcached based session management.
+    * Omit sidebars when serving a '404 - Page not found': saves CPU cycles and bandwidth.
+    * Added an 'aggressive' caching policy.
+    * Added a CSS aggregator and compressor (up to 40% faster page loads).
+- Removed the archive module.
+- Upgrade system:
+    * Created space for update branches.
+- Form API:
+    * Made it possible to programmatically submit forms.
+    * Improved api for multistep forms.
+- Theme system:
+    * Split up and removed drupal.css.
+    * Added nested lists generation.
+    * Added a self-clearing block class.
+
+Drupal 4.7.11, 2008-01-10
+-------------------------
+- fixed a security issue (Cross site request forgery), see SA-2008-005
+- fixed a security issue (Cross site scripting, UTF8), see SA-2008-006
+- fixed a security issue (Cross site scripting, register_globals), see SA-2008-007
+
+Drupal 4.7.10, 2007-12-06
+-------------------------
+- fixed taxonomy feed bug introduced by SA-2007-031
+
+Drupal 4.7.9, 2007-12-05
+------------------------
+- fixed a security issue (SQL injection), see SA-2007-031
+
+Drupal 4.7.8, 2007-10-17
+----------------------
+- fixed a security issue (HTTP response splitting), see SA-2007-024
+- fixed a security issue (Cross site scripting via uploads), see SA-2007-026
+- fixed a security issue (API handling of unpublished comment), see SA-2007-030
+
+Drupal 4.7.7, 2007-07-26
+------------------------
+- fixed security issue (XSS), see SA-2007-018
+
+Drupal 4.7.6, 2007-01-29
+------------------------
+- fixed security issue (code execution), see SA-2007-005
+
+Drupal 4.7.5, 2007-01-05
+------------------------
+- Fixed security issue (XSS), see SA-2007-001
+- Fixed security issue (DoS), see SA-2007-002
+
+Drupal 4.7.4, 2006-10-18
+------------------------
+- Fixed security issue (XSS), see SA-2006-024
+- Fixed security issue (CSRF), see SA-2006-025
+- Fixed security issue (Form action attribute injection), see SA-2006-026
+
+Drupal 4.7.3, 2006-08-02
+------------------------
+- Fixed security issue (XSS), see SA-2006-011
+
+Drupal 4.7.2, 2006-06-01
+------------------------
+- Fixed critical upload issue, see SA-2006-007
+- Fixed taxonomy XSS issue, see SA-2006-008
+- Fixed a variety of small bugs.
+
+Drupal 4.7.1, 2006-05-24
+------------------------
+- Fixed critical SQL issue, see SA-2006-005
+- Fixed a serious upgrade related bug.
+- Fixed a variety of small bugs.
+
+Drupal 4.7.0, 2006-05-01
+------------------------
+- Added free tagging support.
+- Added a site-wide contact form.
+- Theme system:
+    * Added the PHPTemplate theme engine and removed the Xtemplate engine.
+    * Converted the bluemarine theme from XTemplate to PHPTemplate.
+    * Converted the pushbutton theme from XTemplate to PHPTemplate.
+- Usability:
+    * Reworked the 'request new password' functionality.
+    * Reworked the node and comment edit forms.
+    * Made it easy to add nodes to the navigation menu.
+    * Added site 'offline for maintenance' feature.
+    * Added support for auto-complete forms (AJAX).
+    * Added support for collapsible page sections (JS).
+    * Added support for resizable text fields (JS).
+    * Improved file upload functionality (AJAX).
+    * Reorganized some settings pages.
+    * Added friendly database error screens.
+    * Improved styling of update.php.
+- Refactored the forms API.
+    * Made it possible to alter, extend or theme forms.
+- Comment system:
+    * Added support for "mass comment operations" to ease repetitive tasks.
+    * Comment moderation has been removed.
+- Node system:
+    * Reworked the revision functionality.
+    * Removed the bookmarklet code. Third-party modules can now handle
+      This.
+- Upgrade system:
+    * Allows contributed modules to plug into the upgrade system.
+- Profiles:
+    * Added a block to display author information along with posts.
+    * Added support for private profile fields.
+- Statistics module:
+    * Added the ability to track page generation times.
+    * Made it possible to block certain IPs/hostnames.
+- Block system:
+    * Added support for theme-specific block regions.
+- Syndication:
+    * Made the aggregator module parse Atom feeds.
+    * Made the aggregator generate RSS feeds.
+    * Added RSS feed settings.
+- XML-RPC:
+    * Replaced the XML-RPC library by a better one.
+- Performance:
+    * Added 'loose caching' option for high-traffic sites.
+    * Improved performance of path aliasing.
+    * Added the ability to track page generation times.
+- Internationalization:
+    * Improved Unicode string handling API.
+    * Added support for PHP's multibyte string module.
+- Added support for PHP5's 'mysqli' extension.
+- Search module:
+    * Made indexer smarter and more robust.
+    * Added advanced search operators (e.g. phrase, node type, ...).
+    * Added customizable result ranking.
+- PostgreSQL support:
+    * Removed dependency on PL/pgSQL procedural language.
+- Menu system:
+    * Added support for external URLs.
+- Queue module:
+    * Removed from core.
+- HTTP handling:
+    * Added support for a tolerant Base URL.
+    * Output URIs relative to the root, without a base tag.
+
+Drupal 4.6.11, 2007-01-05
+-------------------------
+- Fixed security issue (XSS), see SA-2007-001
+- Fixed security issue (DoS), see SA-2007-002
+
+Drupal 4.6.10, 2006-10-18
+------------------------
+- Fixed security issue (XSS), see SA-2006-024
+- Fixed security issue (CSRF), see SA-2006-025
+- Fixed security issue (Form action attribute injection), see SA-2006-026
+
+Drupal 4.6.9, 2006-08-02
+------------------------
+- Fixed security issue (XSS), see SA-2006-011
+
+Drupal 4.6.8, 2006-06-01
+------------------------
+- Fixed critical upload issue, see SA-2006-007
+- Fixed taxonomy XSS issue, see SA-2006-008
+
+Drupal 4.6.7, 2006-05-24
+------------------------
+- Fixed critical SQL issue, see SA-2006-005
+
+Drupal 4.6.6, 2006-03-13
+------------------------
+- Fixed bugs, including 4 security vulnerabilities.
+
+Drupal 4.6.5, 2005-12-12
+------------------------
+- Fixed bugs: no critical bugs were identified.
+
+Drupal 4.6.4, 2005-11-30
+------------------------
+- Fixed bugs, including 3 security vulnerabilities.
+
+Drupal 4.6.3, 2005-08-15
+------------------------
+- Fixed bugs, including a critical "arbitrary PHP code execution" bug.
+
+Drupal 4.6.2, 2005-06-29
+------------------------
+- Fixed bugs, including two critical "arbitrary PHP code execution" bugs.
+
+Drupal 4.6.1, 2005-06-01
+------------------------
+- Fixed bugs, including a critical input validation bug.
+
+Drupal 4.6.0, 2005-04-15
+------------------------
+- PHP5 compliance
+- Search:
+    * Added UTF-8 support to make it work with all languages.
+    * Improved search indexing algorithm.
+    * Improved search output.
+    * Impose a throttle on indexing of large sites.
+    * Added search block.
+- Syndication:
+    * Made the ping module ping pingomatic.com which, in turn, will ping all the major ping services.
+    * Made Drupal generate RSS 2.0 feeds.
+    * Made RSS feeds extensible.
+    * Added categories to RSS feeds.
+    * Added enclosures to RSS feeds.
+- Flood control mechanism:
+    * Added a mechanism to throttle certain operations.
+- Usability:
+    * Refactored the block configuration pages.
+    * Refactored the statistics pages.
+    * Refactored the watchdog pages.
+    * Refactored the throttle module configuration.
+    * Refactored the access rules page.
+    * Refactored the content administration page.
+    * Introduced forum configuration pages.
+    * Added a 'add child page' link to book pages.
+- Contact module:
+    * Added a simple contact module that allows users to contact each other using e-mail.
+- Multi-site configuration:
+    * Made it possible to run multiple sites from a single code base.
+- Added an image API: enables better image handling.
+- Block system:
+    * Extended the block visibility settings.
+- Theme system:
+    * Added new theme functions.
+- Database backend:
+    * The PEAR database backend is no longer supported.
+- Performance:
+    * Improved performance of the forum topics block.
+    * Improved performance of the tracker module.
+    * Improved performance of the node pages.
+- Documentation:
+    * Improved and extended PHPDoc/Doxygen comments.
+
+Drupal 4.5.8, 2006-03-13
+------------------------
+- Fixed bugs, including 3 security vulnerabilities.
+
+Drupal 4.5.7, 2005-12-12
+------------------------
+- Fixed bugs: no critical bugs were identified.
+
+Drupal 4.5.6, 2005-11-30
+------------------------
+- Fixed bugs, including 3 security vulnerabilities.
+
+Drupal 4.5.5, 2005-08-15
+------------------------
+- Fixed bugs, including a critical "arbitrary PHP code execution" bug.
+
+Drupal 4.5.4, 2005-06-29
+------------------------
+- Fixed bugs, including two critical "arbitrary PHP code execution" bugs.
+
+Drupal 4.5.3, 2005-06-01
+------------------------
+- Fixed bugs, including a critical input validation bug.
+
+Drupal 4.5.2, 2005-01-15
+------------------------
+- Fixed bugs: a cross-site scripting (XSS) vulnerability has been fixed.
+
+Drupal 4.5.1, 2004-12-01
+------------------------
+- Fixed bugs: no critical bugs were identified.
+
+Drupal 4.5.0, 2004-10-18
+------------------------
+- Navigation:
+    * Made it possible to add, delete, rename and move menu items.
+    * Introduced tabs and subtabs for local tasks.
+    * Reorganized the navigation menus.
+- User management:
+    * Added support for multiple roles per user.
+    * Made it possible to add custom profile fields.
+    * Made it possible to browse user profiles by field.
+- Node system:
+    * Added support for node-level permissions.
+- Comment module:
+    * Made it possible to leave contact information without having to register.
+- Upload module:
+    * Added support for uploading documents (includes images).
+- Forum module:
+    * Added support for sticky forum topics.
+    * Made it possible to track forum topics.
+- Syndication:
+    * Added support for RSS ping-notifications of http://technorati.com/.
+    * Refactored the categorization of syndicated news items.
+    * Added an URL alias for 'rss.xml'.
+    * Improved date parsing.
+- Database backend:
+    * Added support for multiple database connections.
+    * The PostgreSQL backend does no longer require PEAR.
+- Theme system:
+    * Changed all GIFs to PNGs.
+    * Reorganised the handling of themes, template engines, templates and styles.
+    * Unified and extended the available theme settings.
+    * Added theme screenshots.
+- Blocks:
+    * Added 'recent comments' block.
+    * Added 'categories' block.
+- Blogger API:
+    * Added support for auto-discovery of blogger API via RSD.
+- Performance:
+    * Added support for sending gzip compressed pages.
+    * Improved performance of the forum module.
+- Accessibility:
+    * Improved the accessibility of the archive module's calendar.
+    * Improved form handling and error reporting.
+    * Added HTTP redirects to prevent submitting twice when refreshing right after a form submission.
+- Refactored 403 (forbidden) handling and added support for custom 403 pages.
+- Documentation:
+    * Added PHPDoc/Doxygen comments.
+- Filter system:
+    * Added support for using multiple input formats on the site
+    * Expanded the embedded PHP-code feature so it can be used everywhere
+    * Added support for role-dependent filtering, through input formats
+- UI translation:
+    * Managing translations is now completely done through the administration interface
+    * Added support for importing/exporting gettext .po files
+
+Drupal 4.4.3, 2005-06-01
+------------------------
+- Fixed bugs, including a critical input validation bug.
+
+Drupal 4.4.2, 2004-07-04
+------------------------
+- Fixed bugs: no critical bugs were identified.
+
+Drupal 4.4.1, 2004-05-01
+------------------------
+- Fixed bugs: no critical bugs were identified.
+
+Drupal 4.4.0, 2004-04-01
+------------------------
+- Added support for the MetaWeblog API and MovableType extensions.
+- Added a file API: enables better document management.
+- Improved the watchdog and search module to log search keys.
+- News aggregator:
+    * Added support for conditional GET.
+    * Added OPML feed subscription list.
+    * Added support for , , , ,  and .
+- Comment module:
+    * Made it possible to disable the "comment viewing controls".
+- Performance:
+    * Improved module loading when serving cached pages.
+    * Made it possible to automatically disable modules when under heavy load.
+    * Made it possible to automatically disable blocks when under heavy load.
+    * Improved performance and memory footprint of the locale module.
+- Theme system:
+    * Made all theme functions start with 'theme_'.
+    * Made all theme functions return their output.
+    * Migrated away from using the BaseTheme class.
+    * Added many new theme functions and refactored existing theme functions.
+    * Added avatar support to 'Xtemplate'.
+    * Replaced theme 'UnConeD' by 'Chameleon'.
+    * Replaced theme 'Marvin' by 'Pushbutton'.
+- Usability:
+    * Added breadcrumb navigation to all pages.
+    * Made it possible to add context-sensitive help to all pages.
+    * Replaced drop-down menus by radio buttons where appropriate.
+    * Removed the 'magic_quotes_gpc = 0' requirement.
+    * Added a 'book navigation' block.
+- Accessibility:
+    * Made themes degrade gracefully in absence of CSS.
+    * Grouped form elements using '
' and '' tags. + * Added '
'; ?> + * @endcode + * + * @see template_preprocess() + * @see template_preprocess_search_result() + * @see template_process() + * + * @ingroup themeable + */ +?> +
  • > + +

    > + +

    + +
    + +

    >

    + + +

    + +
    +
  • diff --git a/drupal-dev/modules/search/search-results.tpl.php b/drupal-dev/modules/search/search-results.tpl.php new file mode 100644 index 0000000..aa9bf8d --- /dev/null +++ b/drupal-dev/modules/search/search-results.tpl.php @@ -0,0 +1,35 @@ + + +

    +
      + +
    + + +

    + + diff --git a/drupal-dev/modules/search/search-rtl.css b/drupal-dev/modules/search/search-rtl.css new file mode 100644 index 0000000..da9e8d9 --- /dev/null +++ b/drupal-dev/modules/search/search-rtl.css @@ -0,0 +1,13 @@ + +.search-advanced .criterion { + float: right; + margin-right: 0; + margin-left: 2em; +} +.search-advanced .action { + float: right; + clear: right; +} +.search-results .search-snippet-info { + padding-right: 1em; /* LTR */ +} \ No newline at end of file diff --git a/drupal-dev/modules/search/search.admin.inc b/drupal-dev/modules/search/search.admin.inc new file mode 100644 index 0000000..a609485 --- /dev/null +++ b/drupal-dev/modules/search/search.admin.inc @@ -0,0 +1,186 @@ + $info) { + $names[$module] = $system_info[$module]['name']; + } + asort($names, SORT_STRING); + return $names; +} + +/** + * Menu callback: displays the search module settings page. + * + * @ingroup forms + * + * @see search_admin_settings_validate() + * @see search_admin_settings_submit() + * @see search_admin_reindex_submit() + */ +function search_admin_settings($form) { + // Collect some stats + $remaining = 0; + $total = 0; + foreach (variable_get('search_active_modules', array('node', 'user')) as $module) { + if ($status = module_invoke($module, 'search_status')) { + $remaining += $status['remaining']; + $total += $status['total']; + } + } + + $count = format_plural($remaining, 'There is 1 item left to index.', 'There are @count items left to index.'); + $percentage = ((int)min(100, 100 * ($total - $remaining) / max(1, $total))) . '%'; + $status = '

    ' . t('%percentage of the site has been indexed.', array('%percentage' => $percentage)) . ' ' . $count . '

    '; + $form['status'] = array('#type' => 'fieldset', '#title' => t('Indexing status')); + $form['status']['status'] = array('#markup' => $status); + $form['status']['wipe'] = array('#type' => 'submit', '#value' => t('Re-index site'), '#submit' => array('search_admin_reindex_submit')); + + $items = drupal_map_assoc(array(10, 20, 50, 100, 200, 500)); + + // Indexing throttle: + $form['indexing_throttle'] = array( + '#type' => 'fieldset', + '#title' => t('Indexing throttle') + ); + $form['indexing_throttle']['search_cron_limit'] = array( + '#type' => 'select', + '#title' => t('Number of items to index per cron run'), + '#default_value' => variable_get('search_cron_limit', 100), + '#options' => $items, + '#description' => t('The maximum number of items indexed in each pass of a cron maintenance task. If necessary, reduce the number of items to prevent timeouts and memory errors while indexing.', array('@cron' => url('admin/reports/status'))) + ); + // Indexing settings: + $form['indexing_settings'] = array( + '#type' => 'fieldset', + '#title' => t('Indexing settings') + ); + $form['indexing_settings']['info'] = array( + '#markup' => t('

    Changing the settings below will cause the site index to be rebuilt. The search index is not cleared but systematically updated to reflect the new settings. Searching will continue to work but new content won\'t be indexed until all existing content has been re-indexed.

    The default settings should be appropriate for the majority of sites.

    ') + ); + $form['indexing_settings']['minimum_word_size'] = array( + '#type' => 'textfield', + '#title' => t('Minimum word length to index'), + '#default_value' => variable_get('minimum_word_size', 3), + '#size' => 5, + '#maxlength' => 3, + '#description' => t('The number of characters a word has to be to be indexed. A lower setting means better search result ranking, but also a larger database. Each search query must contain at least one keyword that is this size (or longer).'), + '#element_validate' => array('element_validate_integer_positive'), + ); + $form['indexing_settings']['overlap_cjk'] = array( + '#type' => 'checkbox', + '#title' => t('Simple CJK handling'), + '#default_value' => variable_get('overlap_cjk', TRUE), + '#description' => t('Whether to apply a simple Chinese/Japanese/Korean tokenizer based on overlapping sequences. Turn this off if you want to use an external preprocessor for this instead. Does not affect other languages.') + ); + + $form['active'] = array( + '#type' => 'fieldset', + '#title' => t('Active search modules') + ); + $module_options = _search_get_module_names(); + $form['active']['search_active_modules'] = array( + '#type' => 'checkboxes', + '#title' => t('Active modules'), + '#title_display' => 'invisible', + '#default_value' => variable_get('search_active_modules', array('node', 'user')), + '#options' => $module_options, + '#description' => t('Choose which search modules are active from the available modules.') + ); + $form['active']['search_default_module'] = array( + '#title' => t('Default search module'), + '#type' => 'radios', + '#default_value' => variable_get('search_default_module', 'node'), + '#options' => $module_options, + '#description' => t('Choose which search module is the default.') + ); + $form['#validate'][] = 'search_admin_settings_validate'; + $form['#submit'][] = 'search_admin_settings_submit'; + + // Per module settings + foreach (variable_get('search_active_modules', array('node', 'user')) as $module) { + $added_form = module_invoke($module, 'search_admin'); + if (is_array($added_form)) { + $form = array_merge($form, $added_form); + } + } + + return system_settings_form($form); +} + +/** + * Form validation handler for search_admin_settings(). + */ +function search_admin_settings_validate($form, &$form_state) { + // Check whether we selected a valid default. + if ($form_state['triggering_element']['#value'] != t('Reset to defaults')) { + $new_modules = array_filter($form_state['values']['search_active_modules']); + $default = $form_state['values']['search_default_module']; + if (!in_array($default, $new_modules, TRUE)) { + form_set_error('search_default_module', t('Your default search module is not selected as an active module.')); + } + } +} + +/** + * Form submission handler for search_admin_settings(). + */ +function search_admin_settings_submit($form, &$form_state) { + // If these settings change, the index needs to be rebuilt. + if ((variable_get('minimum_word_size', 3) != $form_state['values']['minimum_word_size']) || + (variable_get('overlap_cjk', TRUE) != $form_state['values']['overlap_cjk'])) { + drupal_set_message(t('The index will be rebuilt.')); + search_reindex(); + } + $current_modules = variable_get('search_active_modules', array('node', 'user')); + // Check whether we are resetting the values. + if ($form_state['triggering_element']['#value'] == t('Reset to defaults')) { + $new_modules = array('node', 'user'); + } + else { + $new_modules = array_filter($form_state['values']['search_active_modules']); + } + if (array_diff($current_modules, $new_modules)) { + drupal_set_message(t('The active search modules have been changed.')); + variable_set('menu_rebuild_needed', TRUE); + } +} + +/** + * Form submission handler for reindex button on search_admin_settings_form(). + */ +function search_admin_reindex_submit($form, &$form_state) { + // send the user to the confirmation page + $form_state['redirect'] = 'admin/config/search/settings/reindex'; +} diff --git a/drupal-dev/modules/search/search.api.php b/drupal-dev/modules/search/search.api.php new file mode 100644 index 0000000..62d53b8 --- /dev/null +++ b/drupal-dev/modules/search/search.api.php @@ -0,0 +1,376 @@ + 'Content', + 'path' => 'node', + 'conditions_callback' => 'callback_search_conditions', + ); +} + +/** + * Define access to a custom search routine. + * + * This hook allows a module to define permissions for a search tab. + * + * @ingroup search + */ +function hook_search_access() { + return user_access('access content'); +} + +/** + * Take action when the search index is going to be rebuilt. + * + * Modules that use hook_update_index() should update their indexing + * bookkeeping so that it starts from scratch the next time + * hook_update_index() is called. + * + * @ingroup search + */ +function hook_search_reset() { + db_update('search_dataset') + ->fields(array('reindex' => REQUEST_TIME)) + ->condition('type', 'node') + ->execute(); +} + +/** + * Report the status of indexing. + * + * The core search module only invokes this hook on active modules. + * Implementing modules do not need to check whether they are active when + * calculating their return values. + * + * @return + * An associative array with the key-value pairs: + * - 'remaining': The number of items left to index. + * - 'total': The total number of items to index. + * + * @ingroup search + */ +function hook_search_status() { + $total = db_query('SELECT COUNT(*) FROM {node} WHERE status = 1')->fetchField(); + $remaining = db_query("SELECT COUNT(*) FROM {node} n LEFT JOIN {search_dataset} d ON d.type = 'node' AND d.sid = n.nid WHERE n.status = 1 AND d.sid IS NULL OR d.reindex <> 0")->fetchField(); + return array('remaining' => $remaining, 'total' => $total); +} + +/** + * Add elements to the search settings form. + * + * @return + * Form array for the Search settings page at admin/config/search/settings. + * + * @ingroup search + */ +function hook_search_admin() { + // Output form for defining rank factor weights. + $form['content_ranking'] = array( + '#type' => 'fieldset', + '#title' => t('Content ranking'), + ); + $form['content_ranking']['#theme'] = 'node_search_admin'; + $form['content_ranking']['info'] = array( + '#value' => '' . t('The following numbers control which properties the content search should favor when ordering the results. Higher numbers mean more influence, zero means the property is ignored. Changing these numbers does not require the search index to be rebuilt. Changes take effect immediately.') . '' + ); + + // Note: reversed to reflect that higher number = higher ranking. + $options = drupal_map_assoc(range(0, 10)); + foreach (module_invoke_all('ranking') as $var => $values) { + $form['content_ranking']['factors']['node_rank_' . $var] = array( + '#title' => $values['title'], + '#type' => 'select', + '#options' => $options, + '#default_value' => variable_get('node_rank_' . $var, 0), + ); + } + return $form; +} + +/** + * Execute a search for a set of key words. + * + * Use database API with the 'PagerDefault' query extension to perform your + * search. + * + * If your module uses hook_update_index() and search_index() to index its + * items, use table 'search_index' aliased to 'i' as the main table in your + * query, with the 'SearchQuery' extension. You can join to your module's table + * using the 'i.sid' field, which will contain the $sid values you provided to + * search_index(). Add the main keywords to the query by using method + * searchExpression(). The functions search_expression_extract() and + * search_expression_insert() may also be helpful for adding custom search + * parameters to the search expression. + * + * See node_search_execute() for an example of a module that uses the search + * index, and user_search_execute() for an example that doesn't use the search + * index. + * + * @param $keys + * The search keywords as entered by the user. + * @param $conditions + * An optional array of additional conditions, such as filters. + * + * @return + * An array of search results. To use the default search result + * display, each item should have the following keys': + * - 'link': Required. The URL of the found item. + * - 'type': The type of item (such as the content type). + * - 'title': Required. The name of the item. + * - 'user': The author of the item. + * - 'date': A timestamp when the item was last modified. + * - 'extra': An array of optional extra information items. + * - 'snippet': An excerpt or preview to show with the result (can be + * generated with search_excerpt()). + * - 'language': Language code for the item (usually two characters). + * + * @ingroup search + */ +function hook_search_execute($keys = NULL, $conditions = NULL) { + // Build matching conditions + $query = db_select('search_index', 'i', array('target' => 'slave'))->extend('SearchQuery')->extend('PagerDefault'); + $query->join('node', 'n', 'n.nid = i.sid'); + $query + ->condition('n.status', 1) + ->addTag('node_access') + ->searchExpression($keys, 'node'); + + // Insert special keywords. + $query->setOption('type', 'n.type'); + $query->setOption('language', 'n.language'); + if ($query->setOption('term', 'ti.tid')) { + $query->join('taxonomy_index', 'ti', 'n.nid = ti.nid'); + } + // Only continue if the first pass query matches. + if (!$query->executeFirstPass()) { + return array(); + } + + // Add the ranking expressions. + _node_rankings($query); + + // Load results. + $find = $query + ->limit(10) + ->execute(); + $results = array(); + foreach ($find as $item) { + // Build the node body. + $node = node_load($item->sid); + node_build_content($node, 'search_result'); + $node->body = drupal_render($node->content); + + // Fetch comments for snippet. + $node->rendered .= ' ' . module_invoke('comment', 'node_update_index', $node); + // Fetch terms for snippet. + $node->rendered .= ' ' . module_invoke('taxonomy', 'node_update_index', $node); + + $extra = module_invoke_all('node_search_result', $node); + + $results[] = array( + 'link' => url('node/' . $item->sid, array('absolute' => TRUE)), + 'type' => check_plain(node_type_get_name($node)), + 'title' => $node->title, + 'user' => theme('username', array('account' => $node)), + 'date' => $node->changed, + 'node' => $node, + 'extra' => $extra, + 'score' => $item->calculated_score, + 'snippet' => search_excerpt($keys, $node->body), + ); + } + return $results; +} + +/** + * Override the rendering of search results. + * + * A module that implements hook_search_info() to define a type of search may + * implement this hook in order to override the default theming of its search + * results, which is otherwise themed using theme('search_results'). + * + * Note that by default, theme('search_results') and theme('search_result') + * work together to create an ordered list (OL). So your hook_search_page() + * implementation should probably do this as well. + * + * @param $results + * An array of search results. + * + * @return + * A renderable array, which will render the formatted search results with a + * pager included. + * + * @see search-result.tpl.php + * @see search-results.tpl.php + */ +function hook_search_page($results) { + $output['prefix']['#markup'] = '
      '; + + foreach ($results as $entry) { + $output[] = array( + '#theme' => 'search_result', + '#result' => $entry, + '#module' => 'my_module_name', + ); + } + $output['suffix']['#markup'] = '
    ' . theme('pager'); + + return $output; +} + +/** + * Preprocess text for search. + * + * This hook is called to preprocess both the text added to the search index and + * the keywords users have submitted for searching. + * + * Possible uses: + * - Adding spaces between words of Chinese or Japanese text. + * - Stemming words down to their root words to allow matches between, for + * instance, walk, walked, walking, and walks in searching. + * - Expanding abbreviations and acronymns that occur in text. + * + * @param $text + * The text to preprocess. This is a single piece of plain text extracted + * from between two HTML tags or from the search query. It will not contain + * any HTML entities or HTML tags. + * + * @return + * The text after preprocessing. Note that if your module decides not to alter + * the text, it should return the original text. Also, after preprocessing, + * words in the text should be separated by a space. + * + * @ingroup search + */ +function hook_search_preprocess($text) { + // Do processing on $text + return $text; +} + +/** + * Update the search index for this module. + * + * This hook is called every cron run if search.module is enabled, your + * module has implemented hook_search_info(), and your module has been set as + * an active search module on the Search settings page + * (admin/config/search/settings). It allows your module to add items to the + * built-in search index using search_index(), or to add them to your module's + * own indexing mechanism. + * + * When implementing this hook, your module should index content items that + * were modified or added since the last run. PHP has a time limit + * for cron, though, so it is advisable to limit how many items you index + * per run using variable_get('search_cron_limit') (see example below). Also, + * since the cron run could time out and abort in the middle of your run, you + * should update your module's internal bookkeeping on when items have last + * been indexed as you go rather than waiting to the end of indexing. + * + * @ingroup search + */ +function hook_update_index() { + $limit = (int)variable_get('search_cron_limit', 100); + + $result = db_query_range("SELECT n.nid FROM {node} n LEFT JOIN {search_dataset} d ON d.type = 'node' AND d.sid = n.nid WHERE d.sid IS NULL OR d.reindex <> 0 ORDER BY d.reindex ASC, n.nid ASC", 0, $limit); + + foreach ($result as $node) { + $node = node_load($node->nid); + + // Save the changed time of the most recent indexed node, for the search + // results half-life calculation. + variable_set('node_cron_last', $node->changed); + + // Render the node. + node_build_content($node, 'search_index'); + $node->rendered = drupal_render($node->content); + + $text = '

    ' . check_plain($node->title) . '

    ' . $node->rendered; + + // Fetch extra data normally not visible + $extra = module_invoke_all('node_update_index', $node); + foreach ($extra as $t) { + $text .= $t; + } + + // Update index + search_index($node->nid, 'node', $text); + } +} +/** + * @} End of "addtogroup hooks". + */ + +/** + * Provide search query conditions. + * + * Callback for hook_search_info(). + * + * This callback is invoked by search_view() to get an array of additional + * search conditions to pass to search_data(). For example, a search module + * may get additional keywords, filters, or modifiers for the search from + * the query string. + * + * This example pulls additional search keywords out of the $_REQUEST variable, + * (i.e. from the query string of the request). The conditions may also be + * generated internally - for example based on a module's settings. + * + * @param $keys + * The search keywords string. + * + * @return + * An array of additional conditions, such as filters. + * + * @ingroup callbacks + * @ingroup search + */ +function callback_search_conditions($keys) { + $conditions = array(); + + if (!empty($_REQUEST['keys'])) { + $conditions['keys'] = $_REQUEST['keys']; + } + if (!empty($_REQUEST['sample_search_keys'])) { + $conditions['sample_search_keys'] = $_REQUEST['sample_search_keys']; + } + if ($force_keys = config('sample_search.settings')->get('force_keywords')) { + $conditions['sample_search_force_keywords'] = $force_keys; + } + return $conditions; +} diff --git a/drupal-dev/modules/search/search.css b/drupal-dev/modules/search/search.css new file mode 100644 index 0000000..ff7230f --- /dev/null +++ b/drupal-dev/modules/search/search.css @@ -0,0 +1,34 @@ + +.search-form { + margin-bottom: 1em; +} +.search-form input { + margin-top: 0; + margin-bottom: 0; +} +.search-results { + list-style: none; +} +.search-results p { + margin-top: 0; +} +.search-results .title { + font-size: 1.2em; +} +.search-results li { + margin-bottom: 1em; +} +.search-results .search-snippet-info { + padding-left: 1em; /* LTR */ +} +.search-results .search-info { + font-size: 0.85em; +} +.search-advanced .criterion { + float: left; /* LTR */ + margin-right: 2em; /* LTR */ +} +.search-advanced .action { + float: left; /* LTR */ + clear: left; /* LTR */ +} diff --git a/drupal-dev/modules/search/search.extender.inc b/drupal-dev/modules/search/search.extender.inc new file mode 100644 index 0000000..6709466 --- /dev/null +++ b/drupal-dev/modules/search/search.extender.inc @@ -0,0 +1,536 @@ + array(), 'negative' => array()); + + /** + * Indicates whether the first pass query requires complex conditions (LIKE). + * + * @var boolean. + */ + protected $simple = TRUE; + + /** + * Conditions that are used for exact searches. + * + * This is always used for the second pass query but not for the first pass, + * unless $this->simple is FALSE. + * + * @var DatabaseCondition + */ + protected $conditions; + + /** + * Indicates how many matches for a search query are necessary. + * + * @var int + */ + protected $matches = 0; + + /** + * Array of search words. + * + * These words have to match against {search_index}.word. + * + * @var array + */ + protected $words = array(); + + /** + * Multiplier for the normalized search score. + * + * This value is calculated by the first pass query and multiplied with the + * actual score of a specific word to make sure that the resulting calculated + * score is between 0 and 1. + * + * @var float + */ + protected $normalize; + + /** + * Indicates whether the first pass query has been executed. + * + * @var boolean + */ + protected $executedFirstPass = FALSE; + + /** + * Stores score expressions. + * + * @var array + * + * @see addScore() + */ + protected $scores = array(); + + /** + * Stores arguments for score expressions. + * + * @var array + */ + protected $scoresArguments = array(); + + /** + * Stores multipliers for score expressions. + * + * @var array + */ + protected $multiply = array(); + + /** + * Whether or not search expressions were ignored. + * + * The maximum number of AND/OR combinations exceeded can be configured to + * avoid Denial-of-Service attacks. Expressions beyond the limit are ignored. + * + * @var boolean + */ + protected $expressionsIgnored = FALSE; + + /** + * Sets up the search query expression. + * + * @param $query + * A search query string, which can contain options. + * @param $module + * The search module. This maps to {search_index}.type in the database. + * + * @return + * The SearchQuery object. + */ + public function searchExpression($expression, $module) { + $this->searchExpression = $expression; + $this->type = $module; + + return $this; + } + + /** + * Applies a search option and removes it from the search query string. + * + * These options are in the form option:value,value2,value3. + * + * @param $option + * Name of the option. + * @param $column + * Name of the database column to which the value should be applied. + * + * @return + * TRUE if a value for that option was found, FALSE if not. + */ + public function setOption($option, $column) { + if ($values = search_expression_extract($this->searchExpression, $option)) { + $or = db_or(); + foreach (explode(',', $values) as $value) { + $or->condition($column, $value); + } + $this->condition($or); + $this->searchExpression = search_expression_insert($this->searchExpression, $option); + return TRUE; + } + return FALSE; + } + + /** + * Parses the search query into SQL conditions. + * + * We build two queries that match the dataset bodies. + */ + protected function parseSearchExpression() { + // Matchs words optionally prefixed by a dash. A word in this case is + // something between two spaces, optionally quoted. + preg_match_all('/ (-?)("[^"]+"|[^" ]+)/i', ' ' . $this->searchExpression , $keywords, PREG_SET_ORDER); + + if (count($keywords) == 0) { + return; + } + + // Classify tokens. + $or = FALSE; + $warning = ''; + $limit_combinations = variable_get('search_and_or_limit', 7); + // The first search expression does not count as AND. + $and_count = -1; + $or_count = 0; + foreach ($keywords as $match) { + if ($or_count && $and_count + $or_count >= $limit_combinations) { + // Ignore all further search expressions to prevent Denial-of-Service + // attacks using a high number of AND/OR combinations. + $this->expressionsIgnored = TRUE; + break; + } + $phrase = FALSE; + // Strip off phrase quotes. + if ($match[2]{0} == '"') { + $match[2] = substr($match[2], 1, -1); + $phrase = TRUE; + $this->simple = FALSE; + } + // Simplify keyword according to indexing rules and external + // preprocessors. Use same process as during search indexing, so it + // will match search index. + $words = search_simplify($match[2]); + // Re-explode in case simplification added more words, except when + // matching a phrase. + $words = $phrase ? array($words) : preg_split('/ /', $words, -1, PREG_SPLIT_NO_EMPTY); + // Negative matches. + if ($match[1] == '-') { + $this->keys['negative'] = array_merge($this->keys['negative'], $words); + } + // OR operator: instead of a single keyword, we store an array of all + // OR'd keywords. + elseif ($match[2] == 'OR' && count($this->keys['positive'])) { + $last = array_pop($this->keys['positive']); + // Starting a new OR? + if (!is_array($last)) { + $last = array($last); + } + $this->keys['positive'][] = $last; + $or = TRUE; + $or_count++; + continue; + } + // AND operator: implied, so just ignore it. + elseif ($match[2] == 'AND' || $match[2] == 'and') { + $warning = $match[2]; + continue; + } + + // Plain keyword. + else { + if ($match[2] == 'or') { + $warning = $match[2]; + } + if ($or) { + // Add to last element (which is an array). + $this->keys['positive'][count($this->keys['positive']) - 1] = array_merge($this->keys['positive'][count($this->keys['positive']) - 1], $words); + } + else { + $this->keys['positive'] = array_merge($this->keys['positive'], $words); + $and_count++; + } + } + $or = FALSE; + } + + // Convert keywords into SQL statements. + $this->conditions = db_and(); + $simple_and = FALSE; + $simple_or = FALSE; + // Positive matches. + foreach ($this->keys['positive'] as $key) { + // Group of ORed terms. + if (is_array($key) && count($key)) { + $simple_or = TRUE; + $any = FALSE; + $queryor = db_or(); + foreach ($key as $or) { + list($num_new_scores) = $this->parseWord($or); + $any |= $num_new_scores; + $queryor->condition('d.data', "% $or %", 'LIKE'); + } + if (count($queryor)) { + $this->conditions->condition($queryor); + // A group of OR keywords only needs to match once. + $this->matches += ($any > 0); + } + } + // Single ANDed term. + else { + $simple_and = TRUE; + list($num_new_scores, $num_valid_words) = $this->parseWord($key); + $this->conditions->condition('d.data', "% $key %", 'LIKE'); + if (!$num_valid_words) { + $this->simple = FALSE; + } + // Each AND keyword needs to match at least once. + $this->matches += $num_new_scores; + } + } + if ($simple_and && $simple_or) { + $this->simple = FALSE; + } + // Negative matches. + foreach ($this->keys['negative'] as $key) { + $this->conditions->condition('d.data', "% $key %", 'NOT LIKE'); + $this->simple = FALSE; + } + + if ($warning == 'or') { + drupal_set_message(t('Search for either of the two terms with uppercase OR. For example, cats OR dogs.')); + } + } + + /** + * Helper function for parseQuery(). + */ + protected function parseWord($word) { + $num_new_scores = 0; + $num_valid_words = 0; + // Determine the scorewords of this word/phrase. + $split = explode(' ', $word); + foreach ($split as $s) { + $num = is_numeric($s); + if ($num || drupal_strlen($s) >= variable_get('minimum_word_size', 3)) { + if (!isset($this->words[$s])) { + $this->words[$s] = $s; + $num_new_scores++; + } + $num_valid_words++; + } + } + // Return matching snippet and number of added words. + return array($num_new_scores, $num_valid_words); + } + + /** + * Executes the first pass query. + * + * This can either be done explicitly, so that additional scores and + * conditions can be applied to the second pass query, or implicitly by + * addScore() or execute(). + * + * @return + * TRUE if search items exist, FALSE if not. + */ + public function executeFirstPass() { + $this->parseSearchExpression(); + + if (count($this->words) == 0) { + form_set_error('keys', format_plural(variable_get('minimum_word_size', 3), 'You must include at least one positive keyword with 1 character or more.', 'You must include at least one positive keyword with @count characters or more.')); + return FALSE; + } + if ($this->expressionsIgnored) { + drupal_set_message(t('Your search used too many AND/OR expressions. Only the first @count terms were included in this search.', array('@count' => variable_get('search_and_or_limit', 7))), 'warning'); + } + $this->executedFirstPass = TRUE; + + if (!empty($this->words)) { + $or = db_or(); + foreach ($this->words as $word) { + $or->condition('i.word', $word); + } + $this->condition($or); + } + // Build query for keyword normalization. + $this->join('search_total', 't', 'i.word = t.word'); + $this + ->condition('i.type', $this->type) + ->groupBy('i.type') + ->groupBy('i.sid') + ->having('COUNT(*) >= :matches', array(':matches' => $this->matches)); + + // Clone the query object to do the firstPass query; + $first = clone $this->query; + + // For complex search queries, add the LIKE conditions to the first pass query. + if (!$this->simple) { + $first->join('search_dataset', 'd', 'i.sid = d.sid AND i.type = d.type'); + $first->condition($this->conditions); + } + + // Calculate maximum keyword relevance, to normalize it. + $first->addExpression('SUM(i.score * t.count)', 'calculated_score'); + $this->normalize = $first + ->range(0, 1) + ->orderBy('calculated_score', 'DESC') + ->execute() + ->fetchField(); + + if ($this->normalize) { + return TRUE; + } + return FALSE; + } + + /** + * Adds a custom score expression to the search query. + * + * Score expressions are used to order search results. If no calls to + * addScore() have taken place, a default keyword relevance score will be + * used. However, if at least one call to addScore() has taken place, the + * keyword relevance score is not automatically added. + * + * Also note that if you call orderBy() directly on the query, search scores + * will not automatically be used to order search results. Your orderBy() + * expression can reference 'calculated_score', which will be the total + * calculated score value. + * + * @param $score + * The score expression, which should evaluate to a number between 0 and 1. + * The string 'i.relevance' in a score expression will be replaced by a + * measure of keyword relevance between 0 and 1. + * @param $arguments + * Query arguments needed to provide values to the score expression. + * @param $multiply + * If set, the score is multiplied with this value. However, all scores + * with multipliers are then divided by the total of all multipliers, so + * that overall, the normalization is maintained. + * + * @return object + * The updated query object. + */ + public function addScore($score, $arguments = array(), $multiply = FALSE) { + if ($multiply) { + $i = count($this->multiply); + // Modify the score expression so it is multiplied by the multiplier, + // with a divisor to renormalize. + $score = "CAST(:multiply_$i AS DECIMAL) * COALESCE(( " . $score . "), 0) / CAST(:total_$i AS DECIMAL)"; + // Add an argument for the multiplier. The :total_$i argument is taken + // care of in the execute() method, which is when the total divisor is + // calculated. + $arguments[':multiply_' . $i] = $multiply; + $this->multiply[] = $multiply; + } + + $this->scores[] = $score; + $this->scoresArguments += $arguments; + + return $this; + } + + /** + * Executes the search. + * + * If not already done, this executes the first pass query. Then the complex + * conditions are applied to the query including score expressions and + * ordering. + * + * @return + * FALSE if the first pass query returned no results, and a database result + * set if there were results. + */ + public function execute() + { + if (!$this->executedFirstPass) { + $this->executeFirstPass(); + } + if (!$this->normalize) { + return new DatabaseStatementEmpty(); + } + + // Add conditions to query. + $this->join('search_dataset', 'd', 'i.sid = d.sid AND i.type = d.type'); + $this->condition($this->conditions); + + if (empty($this->scores)) { + // Add default score. + $this->addScore('i.relevance'); + } + + if (count($this->multiply)) { + // Re-normalize scores with multipliers by dividing by the total of all + // multipliers. The expressions were altered in addScore(), so here just + // add the arguments for the total. + $i = 0; + $sum = array_sum($this->multiply); + foreach ($this->multiply as $total) { + $this->scoresArguments[':total_' . $i] = $sum; + $i++; + } + } + + // Replace the pseudo-expression 'i.relevance' with a measure of keyword + // relevance in all score expressions, using string replacement. Careful + // though! If you just print out a float, some locales use ',' as the + // decimal separator in PHP, while SQL always uses '.'. So, make sure to + // set the number format correctly. + $relevance = number_format((1.0 / $this->normalize), 10, '.', ''); + $this->scores = str_replace('i.relevance', '(' . $relevance . ' * i.score * t.count)', $this->scores); + + // Add all scores together to form a query field. + $this->addExpression('SUM(' . implode(' + ', $this->scores) . ')', 'calculated_score', $this->scoresArguments); + + // If an order has not yet been set for this query, add a default order + // that sorts by the calculated sum of scores. + if (count($this->getOrderBy()) == 0) { + $this->orderBy('calculated_score', 'DESC'); + } + + // Add tag and useful metadata. + $this + ->addTag('search_' . $this->type) + ->addMetaData('normalize', $this->normalize) + ->fields('i', array('type', 'sid')); + + return $this->query->execute(); + } + + /** + * Builds the default count query for SearchQuery. + * + * Since SearchQuery always uses GROUP BY, we can default to a subquery. We + * also add the same conditions as execute() because countQuery() is called + * first. + */ + public function countQuery() { + // Clone the inner query. + $inner = clone $this->query; + + // Add conditions to query. + $inner->join('search_dataset', 'd', 'i.sid = d.sid AND i.type = d.type'); + $inner->condition($this->conditions); + + // Remove existing fields and expressions, they are not needed for a count + // query. + $fields =& $inner->getFields(); + $fields = array(); + $expressions =& $inner->getExpressions(); + $expressions = array(); + + // Add the sid as the only field and count them as a subquery. + $count = db_select($inner->fields('i', array('sid')), NULL, array('target' => 'slave')); + + // Add the COUNT() expression. + $count->addExpression('COUNT(*)'); + + return $count; + } +} diff --git a/drupal-dev/modules/search/search.info b/drupal-dev/modules/search/search.info new file mode 100644 index 0000000..3c0495d --- /dev/null +++ b/drupal-dev/modules/search/search.info @@ -0,0 +1,15 @@ +name = Search +description = Enables site-wide keyword searching. +package = Core +version = VERSION +core = 7.x +files[] = search.extender.inc +files[] = search.test +configure = admin/config/search/settings +stylesheets[all][] = search.css + +; Information added by Drupal.org packaging script on 2014-01-15 +version = "7.26" +project = "drupal" +datestamp = "1389815930" + diff --git a/drupal-dev/modules/search/search.install b/drupal-dev/modules/search/search.install new file mode 100644 index 0000000..f0113b3 --- /dev/null +++ b/drupal-dev/modules/search/search.install @@ -0,0 +1,182 @@ + 'Stores items that will be searched.', + 'fields' => array( + 'sid' => array( + 'type' => 'int', + 'unsigned' => TRUE, + 'not null' => TRUE, + 'default' => 0, + 'description' => 'Search item ID, e.g. node ID for nodes.', + ), + 'type' => array( + 'type' => 'varchar', + 'length' => 16, + 'not null' => TRUE, + 'description' => 'Type of item, e.g. node.', + ), + 'data' => array( + 'type' => 'text', + 'not null' => TRUE, + 'size' => 'big', + 'description' => 'List of space-separated words from the item.', + ), + 'reindex' => array( + 'type' => 'int', + 'unsigned' => TRUE, + 'not null' => TRUE, + 'default' => 0, + 'description' => 'Set to force node reindexing.', + ), + ), + 'primary key' => array('sid', 'type'), + ); + + $schema['search_index'] = array( + 'description' => 'Stores the search index, associating words, items and scores.', + 'fields' => array( + 'word' => array( + 'type' => 'varchar', + 'length' => 50, + 'not null' => TRUE, + 'default' => '', + 'description' => 'The {search_total}.word that is associated with the search item.', + ), + 'sid' => array( + 'type' => 'int', + 'unsigned' => TRUE, + 'not null' => TRUE, + 'default' => 0, + 'description' => 'The {search_dataset}.sid of the searchable item to which the word belongs.', + ), + 'type' => array( + 'type' => 'varchar', + 'length' => 16, + 'not null' => TRUE, + 'description' => 'The {search_dataset}.type of the searchable item to which the word belongs.', + ), + 'score' => array( + 'type' => 'float', + 'not null' => FALSE, + 'description' => 'The numeric score of the word, higher being more important.', + ), + ), + 'indexes' => array( + 'sid_type' => array('sid', 'type'), + ), + 'foreign keys' => array( + 'search_dataset' => array( + 'table' => 'search_dataset', + 'columns' => array( + 'sid' => 'sid', + 'type' => 'type', + ), + ), + ), + 'primary key' => array('word', 'sid', 'type'), + ); + + $schema['search_total'] = array( + 'description' => 'Stores search totals for words.', + 'fields' => array( + 'word' => array( + 'description' => 'Primary Key: Unique word in the search index.', + 'type' => 'varchar', + 'length' => 50, + 'not null' => TRUE, + 'default' => '', + ), + 'count' => array( + 'description' => "The count of the word in the index using Zipf's law to equalize the probability distribution.", + 'type' => 'float', + 'not null' => FALSE, + ), + ), + 'primary key' => array('word'), + ); + + $schema['search_node_links'] = array( + 'description' => 'Stores items (like nodes) that link to other nodes, used to improve search scores for nodes that are frequently linked to.', + 'fields' => array( + 'sid' => array( + 'type' => 'int', + 'unsigned' => TRUE, + 'not null' => TRUE, + 'default' => 0, + 'description' => 'The {search_dataset}.sid of the searchable item containing the link to the node.', + ), + 'type' => array( + 'type' => 'varchar', + 'length' => 16, + 'not null' => TRUE, + 'default' => '', + 'description' => 'The {search_dataset}.type of the searchable item containing the link to the node.', + ), + 'nid' => array( + 'type' => 'int', + 'unsigned' => TRUE, + 'not null' => TRUE, + 'default' => 0, + 'description' => 'The {node}.nid that this item links to.', + ), + 'caption' => array( + 'type' => 'text', + 'size' => 'big', + 'not null' => FALSE, + 'description' => 'The text used to link to the {node}.nid.', + ), + ), + 'primary key' => array('sid', 'type', 'nid'), + 'indexes' => array( + 'nid' => array('nid'), + ), + ); + + return $schema; +} + +/** + * Replace unique keys in 'search_dataset' and 'search_index' by primary keys. + */ +function search_update_7000() { + db_drop_unique_key('search_dataset', 'sid_type'); + $dataset_type_spec = array( + 'type' => 'varchar', + 'length' => 16, + 'not null' => TRUE, + 'description' => 'Type of item, e.g. node.', + ); + db_change_field('search_dataset', 'type', 'type', $dataset_type_spec); + db_add_primary_key('search_dataset', array('sid', 'type')); + + db_drop_index('search_index', 'word'); + db_drop_unique_key('search_index', 'word_sid_type'); + $index_type_spec = array( + 'type' => 'varchar', + 'length' => 16, + 'not null' => TRUE, + 'description' => 'The {search_dataset}.type of the searchable item to which the word belongs.', + ); + db_change_field('search_index', 'type', 'type', $index_type_spec); + db_add_primary_key('search_index', array('word', 'sid', 'type')); +} + diff --git a/drupal-dev/modules/search/search.module b/drupal-dev/modules/search/search.module new file mode 100644 index 0000000..7542f98 --- /dev/null +++ b/drupal-dev/modules/search/search.module @@ -0,0 +1,1356 @@ +' . t('About') . ''; + $output .= '

    ' . t('The Search module provides the ability to index and search for content by exact keywords, and for users by username or e-mail. For more information, see the online handbook entry for Search module.', array('@search-module' => 'http://drupal.org/documentation/modules/search/', '@search' => url('search'))) . '

    '; + $output .= '

    ' . t('Uses') . '

    '; + $output .= '
    '; + $output .= '
    ' . t('Searching content and users') . '
    '; + $output .= '
    ' . t('Users with Use search permission can use the search block and Search page. Users with the View published content permission can search for content containing exact keywords. Users with the View user profiles permission can search for users containing the keyword anywhere in the user name, and users with the Administer users permission can search for users by email address. Additionally, users with Use advanced search permission can find content using more complex search methods and filtering by choosing the Advanced search option on the Search page.', array('@search' => url('search'))) . '
    '; + $output .= '
    ' . t('Indexing content with cron') . '
    '; + $output .= '
    ' . t('To provide keyword searching, the search engine maintains an index of words found in the content and its fields, along with text added to your content by other modules (such as comments from the core Comment module, and taxonomy terms from the core Taxonomy module). To build and maintain this index, a correctly configured cron maintenance task is required. Users with Administer search permission can further configure the cron settings on the Search settings page.', array('@cron' => 'http://drupal.org/cron', '@searchsettings' => url('admin/config/search/settings'))) . '
    '; + $output .= '
    ' . t('Content reindexing') . '
    '; + $output .= '
    ' . t('Content-related actions on your site (creating, editing, or deleting content and comments) automatically cause affected content items to be marked for indexing or reindexing at the next cron run. When content is marked for reindexing, the previous content remains in the index until cron runs, at which time it is replaced by the new content. Unlike content-related actions, actions related to the structure of your site do not cause affected content to be marked for reindexing. Examples of structure-related actions that affect content include deleting or editing taxonomy terms, enabling or disabling modules that add text to content (such as Taxonomy, Comment, and field-providing modules), and modifying the fields or display parameters of your content types. If you take one of these actions and you want to ensure that the search index is updated to reflect your changed site structure, you can mark all content for reindexing by clicking the "Re-index site" button on the Search settings page. If you have a lot of content on your site, it may take several cron runs for the content to be reindexed.', array('@searchsettings' => url('admin/config/search/settings'))) . '
    '; + $output .= '
    ' . t('Configuring search settings') . '
    '; + $output .= '
    ' . t('Indexing behavior can be adjusted using the Search settings page. Users with Administer search permission can control settings such as the Number of items to index per cron run, Indexing settings (word length), Active search modules, and Content ranking, which lets you adjust the priority in which indexed content is returned in results.', array('@searchsettings' => url('admin/config/search/settings'))) . '
    '; + $output .= '
    ' . t('Search block') . '
    '; + $output .= '
    ' . t('The Search module includes a default Search form block, which can be enabled and configured on the Blocks administration page. The block is available to users with the Search content permission.', array('@blocks' => url('admin/structure/block'))) . '
    '; + $output .= '
    ' . t('Extending Search module') . '
    '; + $output .= '
    ' . t('By default, the Search module only supports exact keyword matching in content searches. You can modify this behavior by installing a language-specific stemming module for your language (such as Porter Stemmer for American English), which allows words such as walk, walking, and walked to be matched in the Search module. Another approach is to use a third-party search technology with stemming or partial word matching features built in, such as Apache Solr or Sphinx. These and other search-related contributed modules can be downloaded by visiting Drupal.org.', array('@contrib-search' => 'http://drupal.org/project/modules?filters=tid%3A105')) . '
    '; + $output .= '
    '; + return $output; + case 'admin/config/search/settings': + return '

    ' . t('The search engine maintains an index of words found in your site\'s content. To build and maintain this index, a correctly configured cron maintenance task is required. Indexing behavior can be adjusted using the settings below.', array('@cron' => url('admin/reports/status'))) . '

    '; + case 'search#noresults': + return t('
      +
    • Check if your spelling is correct.
    • +
    • Remove quotes around phrases to search for each word individually. bike shed will often show more results than "bike shed".
    • +
    • Consider loosening your query with OR. bike OR shed will often show more results than bike shed.
    • +
    '); + } +} + +/** + * Implements hook_theme(). + */ +function search_theme() { + return array( + 'search_block_form' => array( + 'render element' => 'form', + 'template' => 'search-block-form', + ), + 'search_result' => array( + 'variables' => array('result' => NULL, 'module' => NULL), + 'file' => 'search.pages.inc', + 'template' => 'search-result', + ), + 'search_results' => array( + 'variables' => array('results' => NULL, 'module' => NULL), + 'file' => 'search.pages.inc', + 'template' => 'search-results', + ), + ); +} + +/** + * Implements hook_permission(). + */ +function search_permission() { + return array( + 'administer search' => array( + 'title' => t('Administer search'), + ), + 'search content' => array( + 'title' => t('Use search'), + ), + 'use advanced search' => array( + 'title' => t('Use advanced search'), + ), + ); +} + +/** + * Implements hook_block_info(). + */ +function search_block_info() { + $blocks['form']['info'] = t('Search form'); + // Not worth caching. + $blocks['form']['cache'] = DRUPAL_NO_CACHE; + $blocks['form']['properties']['administrative'] = TRUE; + return $blocks; +} + +/** + * Implements hook_block_view(). + */ +function search_block_view($delta = '') { + if (user_access('search content')) { + $block['content'] = drupal_get_form('search_block_form'); + return $block; + } +} + +/** + * Implements hook_menu(). + */ +function search_menu() { + $items['search'] = array( + 'title' => 'Search', + 'page callback' => 'search_view', + 'access callback' => 'search_is_active', + 'type' => MENU_SUGGESTED_ITEM, + 'file' => 'search.pages.inc', + ); + $items['admin/config/search/settings'] = array( + 'title' => 'Search settings', + 'description' => 'Configure relevance settings for search and other indexing options.', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('search_admin_settings'), + 'access arguments' => array('administer search'), + 'weight' => -10, + 'file' => 'search.admin.inc', + ); + $items['admin/config/search/settings/reindex'] = array( + 'title' => 'Clear index', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('search_reindex_confirm'), + 'access arguments' => array('administer search'), + 'type' => MENU_VISIBLE_IN_BREADCRUMB, + 'file' => 'search.admin.inc', + ); + + // Add paths for searching. We add each module search path twice: once without + // and once with %menu_tail appended. The reason for this is that we want to + // preserve keywords when switching tabs, and also to have search tabs + // highlighted properly. The only way to do that within the Drupal menu + // system appears to be having two sets of tabs. See discussion on issue + // http://drupal.org/node/245103 for details. + + drupal_static_reset('search_get_info'); + $default_info = search_get_default_module_info(); + if ($default_info) { + foreach (search_get_info() as $module => $search_info) { + $path = 'search/' . $search_info['path']; + $items[$path] = array( + 'title' => $search_info['title'], + 'page callback' => 'search_view', + 'page arguments' => array($module, ''), + 'access callback' => '_search_menu_access', + 'access arguments' => array($module), + 'type' => MENU_LOCAL_TASK, + 'file' => 'search.pages.inc', + 'weight' => $module == $default_info['module'] ? -10 : 0, + ); + $items["$path/%menu_tail"] = array( + 'title' => $search_info['title'], + 'load arguments' => array('%map', '%index'), + 'page callback' => 'search_view', + 'page arguments' => array($module, 2), + 'access callback' => '_search_menu_access', + 'access arguments' => array($module), + // The default local task points to its parent, but this item points to + // where it should so it should not be changed. + 'type' => MENU_LOCAL_TASK, + 'file' => 'search.pages.inc', + 'weight' => 0, + // These tabs are not subtabs. + 'tab_root' => 'search/' . $default_info['path'] . '/%', + // These tabs need to display at the same level. + 'tab_parent' => 'search/' . $default_info['path'], + ); + } + } + return $items; +} + +/** + * Determines access for the ?q=search path. + */ +function search_is_active() { + // This path cannot be accessed if there are no active modules. + return user_access('search content') && search_get_info(); +} + +/** + * Returns information about available search modules. + * + * @param $all + * If TRUE, information about all enabled modules implementing + * hook_search_info() will be returned. If FALSE (default), only modules that + * have been set to active on the search settings page will be returned. + * + * @return + * Array of hook_search_info() return values, keyed by module name. The + * 'title' and 'path' array elements will be set to defaults for each module + * if not supplied by hook_search_info(), and an additional array element of + * 'module' will be added (set to the module name). + */ +function search_get_info($all = FALSE) { + $search_hooks = &drupal_static(__FUNCTION__); + + if (!isset($search_hooks)) { + foreach (module_implements('search_info') as $module) { + $search_hooks[$module] = call_user_func($module . '_search_info'); + // Use module name as the default value. + $search_hooks[$module] += array('title' => $module, 'path' => $module); + // Include the module name itself in the array. + $search_hooks[$module]['module'] = $module; + } + } + + if ($all) { + return $search_hooks; + } + + $active = variable_get('search_active_modules', array('node', 'user')); + return array_intersect_key($search_hooks, array_flip($active)); +} + +/** + * Returns information about the default search module. + * + * @return + * The search_get_info() array element for the default search module, if any. + */ +function search_get_default_module_info() { + $info = search_get_info(); + $default = variable_get('search_default_module', 'node'); + if (isset($info[$default])) { + return $info[$default]; + } + // The variable setting does not match any active module, so just return + // the info for the first active module (if any). + return reset($info); +} + +/** + * Access callback for search tabs. + */ +function _search_menu_access($name) { + return user_access('search content') && (!function_exists($name . '_search_access') || module_invoke($name, 'search_access')); +} + +/** + * Clears a part of or the entire search index. + * + * @param $sid + * (optional) The ID of the item to remove from the search index. If + * specified, $module must also be given. Omit both $sid and $module to clear + * the entire search index. + * @param $module + * (optional) The machine-readable name of the module for the item to remove + * from the search index. + */ +function search_reindex($sid = NULL, $module = NULL, $reindex = FALSE) { + if ($module == NULL && $sid == NULL) { + module_invoke_all('search_reset'); + } + else { + db_delete('search_dataset') + ->condition('sid', $sid) + ->condition('type', $module) + ->execute(); + db_delete('search_index') + ->condition('sid', $sid) + ->condition('type', $module) + ->execute(); + // Don't remove links if re-indexing. + if (!$reindex) { + db_delete('search_node_links') + ->condition('sid', $sid) + ->condition('type', $module) + ->execute(); + } + } +} + +/** + * Marks a word as "dirty" (changed), or retrieves the list of dirty words. + * + * This is used during indexing (cron). Words that are dirty have outdated + * total counts in the search_total table, and need to be recounted. + */ +function search_dirty($word = NULL) { + $dirty = &drupal_static(__FUNCTION__, array()); + if ($word !== NULL) { + $dirty[$word] = TRUE; + } + else { + return $dirty; + } +} + +/** + * Implements hook_cron(). + * + * Fires hook_update_index() in all modules and cleans up dirty words. + * + * @see search_dirty() + */ +function search_cron() { + // We register a shutdown function to ensure that search_total is always up + // to date. + drupal_register_shutdown_function('search_update_totals'); + + foreach (variable_get('search_active_modules', array('node', 'user')) as $module) { + // Update word index + module_invoke($module, 'update_index'); + } +} + +/** + * Updates the {search_total} database table. + * + * This function is called on shutdown to ensure that {search_total} is always + * up to date (even if cron times out or otherwise fails). + */ +function search_update_totals() { + // Update word IDF (Inverse Document Frequency) counts for new/changed words. + foreach (search_dirty() as $word => $dummy) { + // Get total count + $total = db_query("SELECT SUM(score) FROM {search_index} WHERE word = :word", array(':word' => $word), array('target' => 'slave'))->fetchField(); + // Apply Zipf's law to equalize the probability distribution. + $total = log10(1 + 1/(max(1, $total))); + db_merge('search_total') + ->key(array('word' => $word)) + ->fields(array('count' => $total)) + ->execute(); + } + // Find words that were deleted from search_index, but are still in + // search_total. We use a LEFT JOIN between the two tables and keep only the + // rows which fail to join. + $result = db_query("SELECT t.word AS realword, i.word FROM {search_total} t LEFT JOIN {search_index} i ON t.word = i.word WHERE i.word IS NULL", array(), array('target' => 'slave')); + $or = db_or(); + foreach ($result as $word) { + $or->condition('word', $word->realword); + } + if (count($or) > 0) { + db_delete('search_total') + ->condition($or) + ->execute(); + } +} + +/** + * Simplifies a string according to indexing rules. + * + * @param $text + * Text to simplify. + * + * @return + * Simplified text. + * + * @see hook_search_preprocess() + */ +function search_simplify($text) { + // Decode entities to UTF-8 + $text = decode_entities($text); + + // Lowercase + $text = drupal_strtolower($text); + + // Call an external processor for word handling. + search_invoke_preprocess($text); + + // Simple CJK handling + if (variable_get('overlap_cjk', TRUE)) { + $text = preg_replace_callback('/[' . PREG_CLASS_CJK . ']+/u', 'search_expand_cjk', $text); + } + + // To improve searching for numerical data such as dates, IP addresses + // or version numbers, we consider a group of numerical characters + // separated only by punctuation characters to be one piece. + // This also means that searching for e.g. '20/03/1984' also returns + // results with '20-03-1984' in them. + // Readable regexp: ([number]+)[punctuation]+(?=[number]) + $text = preg_replace('/([' . PREG_CLASS_NUMBERS . ']+)[' . PREG_CLASS_PUNCTUATION . ']+(?=[' . PREG_CLASS_NUMBERS . '])/u', '\1', $text); + + // Multiple dot and dash groups are word boundaries and replaced with space. + // No need to use the unicode modifer here because 0-127 ASCII characters + // can't match higher UTF-8 characters as the leftmost bit of those are 1. + $text = preg_replace('/[.-]{2,}/', ' ', $text); + + // The dot, underscore and dash are simply removed. This allows meaningful + // search behavior with acronyms and URLs. See unicode note directly above. + $text = preg_replace('/[._-]+/', '', $text); + + // With the exception of the rules above, we consider all punctuation, + // marks, spacers, etc, to be a word boundary. + $text = preg_replace('/[' . PREG_CLASS_UNICODE_WORD_BOUNDARY . ']+/u', ' ', $text); + + // Truncate everything to 50 characters. + $words = explode(' ', $text); + array_walk($words, '_search_index_truncate'); + $text = implode(' ', $words); + + return $text; +} + +/** + * Splits CJK (Chinese, Japanese, Korean) text into tokens. + * + * The Search module matches exact words, where a word is defined to be a + * sequence of characters delimited by spaces or punctuation. CJK languages are + * written in long strings of characters, though, not split up into words. So + * in order to allow search matching, we split up CJK text into tokens + * consisting of consecutive, overlapping sequences of characters whose length + * is equal to the 'minimum_word_size' variable. This tokenizing is only done if + * the 'overlap_cjk' variable is TRUE. + * + * @param $matches + * This function is a callback for preg_replace_callback(), which is called + * from search_simplify(). So, $matches is an array of regular expression + * matches, which means that $matches[0] contains the matched text -- a string + * of CJK characters to tokenize. + * + * @return + * Tokenized text, starting and ending with a space character. + */ +function search_expand_cjk($matches) { + $min = variable_get('minimum_word_size', 3); + $str = $matches[0]; + $length = drupal_strlen($str); + // If the text is shorter than the minimum word size, don't tokenize it. + if ($length <= $min) { + return ' ' . $str . ' '; + } + $tokens = ' '; + // Build a FIFO queue of characters. + $chars = array(); + for ($i = 0; $i < $length; $i++) { + // Add the next character off the beginning of the string to the queue. + $current = drupal_substr($str, 0, 1); + $str = substr($str, strlen($current)); + $chars[] = $current; + if ($i >= $min - 1) { + // Make a token of $min characters, and add it to the token string. + $tokens .= implode('', $chars) . ' '; + // Shift out the first character in the queue. + array_shift($chars); + } + } + return $tokens; +} + +/** + * Simplifies and splits a string into tokens for indexing. + */ +function search_index_split($text) { + $last = &drupal_static(__FUNCTION__); + $lastsplit = &drupal_static(__FUNCTION__ . ':lastsplit'); + + if ($last == $text) { + return $lastsplit; + } + // Process words + $text = search_simplify($text); + $words = explode(' ', $text); + + // Save last keyword result + $last = $text; + $lastsplit = $words; + + return $words; +} + +/** + * Helper function for array_walk in search_index_split. + */ +function _search_index_truncate(&$text) { + if (is_numeric($text)) { + $text = ltrim($text, '0'); + } + $text = truncate_utf8($text, 50); +} + +/** + * Invokes hook_search_preprocess() in modules. + */ +function search_invoke_preprocess(&$text) { + foreach (module_implements('search_preprocess') as $module) { + $text = module_invoke($module, 'search_preprocess', $text); + } +} + +/** + * Update the full-text search index for a particular item. + * + * @param $sid + * An ID number identifying this particular item (e.g., node ID). + * @param $module + * The machine-readable name of the module that this item comes from (a module + * that implements hook_search_info()). + * @param $text + * The content of this item. Must be a piece of HTML or plain text. + * + * @ingroup search + */ +function search_index($sid, $module, $text) { + $minimum_word_size = variable_get('minimum_word_size', 3); + + // Link matching + global $base_url; + $node_regexp = '@href=[\'"]?(?:' . preg_quote($base_url, '@') . '/|' . preg_quote(base_path(), '@') . ')(?:\?q=)?/?((?![a-z]+:)[^\'">]+)[\'">]@i'; + + // Multipliers for scores of words inside certain HTML tags. The weights are stored + // in a variable so that modules can overwrite the default weights. + // Note: 'a' must be included for link ranking to work. + $tags = variable_get('search_tag_weights', array( + 'h1' => 25, + 'h2' => 18, + 'h3' => 15, + 'h4' => 12, + 'h5' => 9, + 'h6' => 6, + 'u' => 3, + 'b' => 3, + 'i' => 3, + 'strong' => 3, + 'em' => 3, + 'a' => 10)); + + // Strip off all ignored tags to speed up processing, but insert space before/after + // them to keep word boundaries. + $text = str_replace(array('<', '>'), array(' <', '> '), $text); + $text = strip_tags($text, '<' . implode('><', array_keys($tags)) . '>'); + + // Split HTML tags from plain text. + $split = preg_split('/\s*<([^>]+?)>\s*/', $text, -1, PREG_SPLIT_DELIM_CAPTURE); + // Note: PHP ensures the array consists of alternating delimiters and literals + // and begins and ends with a literal (inserting $null as required). + + $tag = FALSE; // Odd/even counter. Tag or no tag. + $link = FALSE; // State variable for link analyzer + $score = 1; // Starting score per word + $accum = ' '; // Accumulator for cleaned up data + $tagstack = array(); // Stack with open tags + $tagwords = 0; // Counter for consecutive words + $focus = 1; // Focus state + + $results = array(0 => array()); // Accumulator for words for index + + foreach ($split as $value) { + if ($tag) { + // Increase or decrease score per word based on tag + list($tagname) = explode(' ', $value, 2); + $tagname = drupal_strtolower($tagname); + // Closing or opening tag? + if ($tagname[0] == '/') { + $tagname = substr($tagname, 1); + // If we encounter unexpected tags, reset score to avoid incorrect boosting. + if (!count($tagstack) || $tagstack[0] != $tagname) { + $tagstack = array(); + $score = 1; + } + else { + // Remove from tag stack and decrement score + $score = max(1, $score - $tags[array_shift($tagstack)]); + } + if ($tagname == 'a') { + $link = FALSE; + } + } + else { + if (isset($tagstack[0]) && $tagstack[0] == $tagname) { + // None of the tags we look for make sense when nested identically. + // If they are, it's probably broken HTML. + $tagstack = array(); + $score = 1; + } + else { + // Add to open tag stack and increment score + array_unshift($tagstack, $tagname); + $score += $tags[$tagname]; + } + if ($tagname == 'a') { + // Check if link points to a node on this site + if (preg_match($node_regexp, $value, $match)) { + $path = drupal_get_normal_path($match[1]); + if (preg_match('!(?:node|book)/(?:view/)?([0-9]+)!i', $path, $match)) { + $linknid = $match[1]; + if ($linknid > 0) { + $node = db_query('SELECT title, nid, vid FROM {node} WHERE nid = :nid', array(':nid' => $linknid), array('target' => 'slave'))->fetchObject(); + $link = TRUE; + $linktitle = $node->title; + } + } + } + } + } + // A tag change occurred, reset counter. + $tagwords = 0; + } + else { + // Note: use of PREG_SPLIT_DELIM_CAPTURE above will introduce empty values + if ($value != '') { + if ($link) { + // Check to see if the node link text is its URL. If so, we use the target node title instead. + if (preg_match('!^https?://!i', $value)) { + $value = $linktitle; + } + } + $words = search_index_split($value); + foreach ($words as $word) { + // Add word to accumulator + $accum .= $word . ' '; + // Check wordlength + if (is_numeric($word) || drupal_strlen($word) >= $minimum_word_size) { + // Links score mainly for the target. + if ($link) { + if (!isset($results[$linknid])) { + $results[$linknid] = array(); + } + $results[$linknid][] = $word; + // Reduce score of the link caption in the source. + $focus *= 0.2; + } + // Fall-through + if (!isset($results[0][$word])) { + $results[0][$word] = 0; + } + $results[0][$word] += $score * $focus; + + // Focus is a decaying value in terms of the amount of unique words up to this point. + // From 100 words and more, it decays, to e.g. 0.5 at 500 words and 0.3 at 1000 words. + $focus = min(1, .01 + 3.5 / (2 + count($results[0]) * .015)); + } + $tagwords++; + // Too many words inside a single tag probably mean a tag was accidentally left open. + if (count($tagstack) && $tagwords >= 15) { + $tagstack = array(); + $score = 1; + } + } + } + } + $tag = !$tag; + } + + search_reindex($sid, $module, TRUE); + + // Insert cleaned up data into dataset + db_insert('search_dataset') + ->fields(array( + 'sid' => $sid, + 'type' => $module, + 'data' => $accum, + 'reindex' => 0, + )) + ->execute(); + + // Insert results into search index + foreach ($results[0] as $word => $score) { + // If a word already exists in the database, its score gets increased + // appropriately. If not, we create a new record with the appropriate + // starting score. + db_merge('search_index') + ->key(array( + 'word' => $word, + 'sid' => $sid, + 'type' => $module, + )) + ->fields(array('score' => $score)) + ->expression('score', 'score + :score', array(':score' => $score)) + ->execute(); + search_dirty($word); + } + unset($results[0]); + + // Get all previous links from this item. + $result = db_query("SELECT nid, caption FROM {search_node_links} WHERE sid = :sid AND type = :type", array( + ':sid' => $sid, + ':type' => $module + ), array('target' => 'slave')); + $links = array(); + foreach ($result as $link) { + $links[$link->nid] = $link->caption; + } + + // Now store links to nodes. + foreach ($results as $nid => $words) { + $caption = implode(' ', $words); + if (isset($links[$nid])) { + if ($links[$nid] != $caption) { + // Update the existing link and mark the node for reindexing. + db_update('search_node_links') + ->fields(array('caption' => $caption)) + ->condition('sid', $sid) + ->condition('type', $module) + ->condition('nid', $nid) + ->execute(); + search_touch_node($nid); + } + // Unset the link to mark it as processed. + unset($links[$nid]); + } + elseif ($sid != $nid || $module != 'node') { + // Insert the existing link and mark the node for reindexing, but don't + // reindex if this is a link in a node pointing to itself. + db_insert('search_node_links') + ->fields(array( + 'caption' => $caption, + 'sid' => $sid, + 'type' => $module, + 'nid' => $nid, + )) + ->execute(); + search_touch_node($nid); + } + } + // Any left-over links in $links no longer exist. Delete them and mark the nodes for reindexing. + foreach ($links as $nid => $caption) { + db_delete('search_node_links') + ->condition('sid', $sid) + ->condition('type', $module) + ->condition('nid', $nid) + ->execute(); + search_touch_node($nid); + } +} + +/** + * Changes a node's changed timestamp to 'now' to force reindexing. + * + * @param $nid + * The node ID of the node that needs reindexing. + */ +function search_touch_node($nid) { + db_update('search_dataset') + ->fields(array('reindex' => REQUEST_TIME)) + ->condition('type', 'node') + ->condition('sid', $nid) + ->execute(); +} + +/** + * Implements hook_node_update_index(). + */ +function search_node_update_index($node) { + // Transplant links to a node into the target node. + $result = db_query("SELECT caption FROM {search_node_links} WHERE nid = :nid", array(':nid' => $node->nid), array('target' => 'slave')); + $output = array(); + foreach ($result as $link) { + $output[] = $link->caption; + } + if (count($output)) { + return '(' . implode(', ', $output) . ')'; + } +} + +/** + * Implements hook_node_update(). + */ +function search_node_update($node) { + // Reindex the node when it is updated. The node is automatically indexed + // when it is added, simply by being added to the node table. + search_touch_node($node->nid); +} + +/** + * Implements hook_comment_insert(). + */ +function search_comment_insert($comment) { + // Reindex the node when comments are added. + search_touch_node($comment->nid); +} + +/** + * Implements hook_comment_update(). + */ +function search_comment_update($comment) { + // Reindex the node when comments are changed. + search_touch_node($comment->nid); +} + +/** + * Implements hook_comment_delete(). + */ +function search_comment_delete($comment) { + // Reindex the node when comments are deleted. + search_touch_node($comment->nid); +} + +/** + * Implements hook_comment_publish(). + */ +function search_comment_publish($comment) { + // Reindex the node when comments are published. + search_touch_node($comment->nid); +} + +/** + * Implements hook_comment_unpublish(). + */ +function search_comment_unpublish($comment) { + // Reindex the node when comments are unpublished. + search_touch_node($comment->nid); +} + +/** + * Extracts a module-specific search option from a search expression. + * + * Search options are added using search_expression_insert(), and retrieved + * using search_expression_extract(). They take the form option:value, and + * are added to the ordinary keywords in the search expression. + * + * @param $expression + * The search expression to extract from. + * @param $option + * The name of the option to retrieve from the search expression. + * + * @return + * The value previously stored in the search expression for option $option, + * if any. Trailing spaces in values will not be included. + */ +function search_expression_extract($expression, $option) { + if (preg_match('/(^| )' . $option . ':([^ ]*)( |$)/i', $expression, $matches)) { + return $matches[2]; + } +} + +/** + * Adds a module-specific search option to a search expression. + * + * Search options are added using search_expression_insert(), and retrieved + * using search_expression_extract(). They take the form option:value, and + * are added to the ordinary keywords in the search expression. + * + * @param $expression + * The search expression to add to. + * @param $option + * The name of the option to add to the search expression. + * @param $value + * The value to add for the option. If present, it will replace any previous + * value added for the option. Cannot contain any spaces or | characters, as + * these are used as delimiters. If you want to add a blank value $option: to + * the search expression, pass in an empty string or a string that is composed + * of only spaces. To clear a previously-stored option without adding a + * replacement, pass in NULL for $value or omit. + * + * @return + * $expression, with any previous value for this option removed, and a new + * $option:$value pair added if $value was provided. + */ +function search_expression_insert($expression, $option, $value = NULL) { + // Remove any previous values stored with $option. + $expression = trim(preg_replace('/(^| )' . $option . ':[^ ]*/i', '', $expression)); + + // Set new value, if provided. + if (isset($value)) { + $expression .= ' ' . $option . ':' . trim($value); + } + return $expression; +} + +/** + * @defgroup search Search interface + * @{ + * The Drupal search interface manages a global search mechanism. + * + * Modules may plug into this system to provide searches of different types of + * data. Most of the system is handled by search.module, so this must be enabled + * for all of the search features to work. + * + * There are three ways to interact with the search system: + * - Specifically for searching nodes, you can implement + * hook_node_update_index() and hook_node_search_result(). However, note that + * the search system already indexes all visible output of a node; i.e., + * everything displayed normally by hook_view() and hook_node_view(). This is + * usually sufficient. You should only use this mechanism if you want + * additional, non-visible data to be indexed. + * - Implement hook_search_info(). This will create a search tab for your module + * on the /search page with a simple keyword search form. You will also need + * to implement hook_search_execute() to perform the search. + * - Implement hook_update_index(). This allows your module to use Drupal's + * HTML indexing mechanism for searching full text efficiently. + * + * If your module needs to provide a more complicated search form, then you need + * to implement it yourself without hook_search_info(). In that case, you should + * define it as a local task (tab) under the /search page (e.g. /search/mymodule) + * so that users can easily find it. + */ + +/** + * Builds a search form. + * + * @param $action + * Form action. Defaults to "search/$path", where $path is the search path + * associated with the module in its hook_search_info(). This will be + * run through url(). + * @param $keys + * The search string entered by the user, containing keywords for the search. + * @param $module + * The search module to render the form for: a module that implements + * hook_search_info(). If not supplied, the default search module is used. + * @param $prompt + * Label for the keywords field. Defaults to t('Enter your keywords') if NULL. + * Supply '' to omit. + * + * @return + * A Form API array for the search form. + */ +function search_form($form, &$form_state, $action = '', $keys = '', $module = NULL, $prompt = NULL) { + $module_info = FALSE; + if (!$module) { + $module_info = search_get_default_module_info(); + } + else { + $info = search_get_info(); + $module_info = isset($info[$module]) ? $info[$module] : FALSE; + } + + // Sanity check. + if (!$module_info) { + form_set_error(NULL, t('Search is currently disabled.'), 'error'); + return $form; + } + + if (!$action) { + $action = 'search/' . $module_info['path']; + } + if (!isset($prompt)) { + $prompt = t('Enter your keywords'); + } + + $form['#action'] = url($action); + // Record the $action for later use in redirecting. + $form_state['action'] = $action; + $form['#attributes']['class'][] = 'search-form'; + $form['module'] = array('#type' => 'value', '#value' => $module); + $form['basic'] = array('#type' => 'container', '#attributes' => array('class' => array('container-inline'))); + $form['basic']['keys'] = array( + '#type' => 'textfield', + '#title' => $prompt, + '#default_value' => $keys, + '#size' => $prompt ? 40 : 20, + '#maxlength' => 255, + ); + // processed_keys is used to coordinate keyword passing between other forms + // that hook into the basic search form. + $form['basic']['processed_keys'] = array('#type' => 'value', '#value' => ''); + $form['basic']['submit'] = array('#type' => 'submit', '#value' => t('Search')); + + return $form; +} + +/** + * Form builder; Output a search form for the search block's search box. + * + * @ingroup forms + * @see search_box_form_submit() + * @see search-block-form.tpl.php + */ +function search_box($form, &$form_state, $form_id) { + $form[$form_id] = array( + '#type' => 'textfield', + '#title' => t('Search'), + '#title_display' => 'invisible', + '#size' => 15, + '#default_value' => '', + '#attributes' => array('title' => t('Enter the terms you wish to search for.')), + ); + $form['actions'] = array('#type' => 'actions'); + $form['actions']['submit'] = array('#type' => 'submit', '#value' => t('Search')); + $form['#submit'][] = 'search_box_form_submit'; + + return $form; +} + +/** + * Process a block search form submission. + */ +function search_box_form_submit($form, &$form_state) { + // The search form relies on control of the redirect destination for its + // functionality, so we override any static destination set in the request, + // for example by drupal_access_denied() or drupal_not_found() + // (see http://drupal.org/node/292565). + if (isset($_GET['destination'])) { + unset($_GET['destination']); + } + + // Check to see if the form was submitted empty. + // If it is empty, display an error message. + // (This method is used instead of setting #required to TRUE for this field + // because that results in a confusing error message. It would say a plain + // "field is required" because the search keywords field has no title. + // The error message would also complain about a missing #title field.) + if ($form_state['values']['search_block_form'] == '') { + form_set_error('keys', t('Please enter some keywords.')); + } + + $form_id = $form['form_id']['#value']; + $info = search_get_default_module_info(); + if ($info) { + $form_state['redirect'] = 'search/' . $info['path'] . '/' . trim($form_state['values'][$form_id]); + } + else { + form_set_error(NULL, t('Search is currently disabled.'), 'error'); + } +} + +/** + * Process variables for search-block-form.tpl.php. + * + * The $variables array contains the following arguments: + * - $form + * + * @see search-block-form.tpl.php + */ +function template_preprocess_search_block_form(&$variables) { + $variables['search'] = array(); + $hidden = array(); + // Provide variables named after form keys so themers can print each element independently. + foreach (element_children($variables['form']) as $key) { + $type = isset($variables['form'][$key]['#type']) ? $variables['form'][$key]['#type'] : ''; + if ($type == 'hidden' || $type == 'token') { + $hidden[] = drupal_render($variables['form'][$key]); + } + else { + $variables['search'][$key] = drupal_render($variables['form'][$key]); + } + } + // Hidden form elements have no value to themers. No need for separation. + $variables['search']['hidden'] = implode($hidden); + // Collect all form elements to make it easier to print the whole form. + $variables['search_form'] = implode($variables['search']); +} + +/** + * Performs a search by calling hook_search_execute(). + * + * @param $keys + * Keyword query to search on. + * @param $module + * Search module to search. + * @param $conditions + * Optional array of additional search conditions. + * + * @return + * Renderable array of search results. No return value if $keys are not + * supplied or if the given search module is not active. + */ +function search_data($keys, $module, $conditions = NULL) { + if (module_hook($module, 'search_execute')) { + $results = module_invoke($module, 'search_execute', $keys, $conditions); + if (module_hook($module, 'search_page')) { + return module_invoke($module, 'search_page', $results); + } + else { + return array( + '#theme' => 'search_results', + '#results' => $results, + '#module' => $module, + ); + } + } +} + +/** + * Returns snippets from a piece of text, with certain keywords highlighted. + * Used for formatting search results. + * + * @param $keys + * A string containing a search query. + * + * @param $text + * The text to extract fragments from. + * + * @return + * A string containing HTML for the excerpt. + */ +function search_excerpt($keys, $text) { + // We highlight around non-indexable or CJK characters. + $boundary = '(?:(?<=[' . PREG_CLASS_UNICODE_WORD_BOUNDARY . PREG_CLASS_CJK . '])|(?=[' . PREG_CLASS_UNICODE_WORD_BOUNDARY . PREG_CLASS_CJK . ']))'; + + // Extract positive keywords and phrases + preg_match_all('/ ("([^"]+)"|(?!OR)([^" ]+))/', ' ' . $keys, $matches); + $keys = array_merge($matches[2], $matches[3]); + + // Prepare text by stripping HTML tags and decoding HTML entities. + $text = strip_tags(str_replace(array('<', '>'), array(' <', '> '), $text)); + $text = decode_entities($text); + + // Slash-escape quotes in the search keyword string. + array_walk($keys, '_search_excerpt_replace'); + $workkeys = $keys; + + // Extract fragments around keywords. + // First we collect ranges of text around each keyword, starting/ending + // at spaces, trying to get to 256 characters. + // If the sum of all fragments is too short, we look for second occurrences. + $ranges = array(); + $included = array(); + $foundkeys = array(); + $length = 0; + while ($length < 256 && count($workkeys)) { + foreach ($workkeys as $k => $key) { + if (strlen($key) == 0) { + unset($workkeys[$k]); + unset($keys[$k]); + continue; + } + if ($length >= 256) { + break; + } + // Remember occurrence of key so we can skip over it if more occurrences + // are desired. + if (!isset($included[$key])) { + $included[$key] = 0; + } + // Locate a keyword (position $p, always >0 because $text starts with a + // space). First try bare keyword, but if that doesn't work, try to find a + // derived form from search_simplify(). + $p = 0; + if (preg_match('/' . $boundary . $key . $boundary . '/iu', $text, $match, PREG_OFFSET_CAPTURE, $included[$key])) { + $p = $match[0][1]; + } + else { + $info = search_simplify_excerpt_match($key, $text, $included[$key], $boundary); + if ($info['where']) { + $p = $info['where']; + if ($info['keyword']) { + $foundkeys[] = $info['keyword']; + } + } + } + // Now locate a space in front (position $q) and behind it (position $s), + // leaving about 60 characters extra before and after for context. + // Note that a space was added to the front and end of $text above. + if ($p) { + if (($q = strpos(' ' . $text, ' ', max(0, $p - 61))) !== FALSE) { + $end = substr($text . ' ', $p, 80); + if (($s = strrpos($end, ' ')) !== FALSE) { + // Account for the added spaces. + $q = max($q - 1, 0); + $s = min($s, strlen($end) - 1); + $ranges[$q] = $p + $s; + $length += $p + $s - $q; + $included[$key] = $p + 1; + } + else { + unset($workkeys[$k]); + } + } + else { + unset($workkeys[$k]); + } + } + else { + unset($workkeys[$k]); + } + } + } + + if (count($ranges) == 0) { + // We didn't find any keyword matches, so just return the first part of the + // text. We also need to re-encode any HTML special characters that we + // entity-decoded above. + return check_plain(truncate_utf8($text, 256, TRUE, TRUE)); + } + + // Sort the text ranges by starting position. + ksort($ranges); + + // Now we collapse overlapping text ranges into one. The sorting makes it O(n). + $newranges = array(); + foreach ($ranges as $from2 => $to2) { + if (!isset($from1)) { + $from1 = $from2; + $to1 = $to2; + continue; + } + if ($from2 <= $to1) { + $to1 = max($to1, $to2); + } + else { + $newranges[$from1] = $to1; + $from1 = $from2; + $to1 = $to2; + } + } + $newranges[$from1] = $to1; + + // Fetch text + $out = array(); + foreach ($newranges as $from => $to) { + $out[] = substr($text, $from, $to - $from); + } + + // Let translators have the ... separator text as one chunk. + $dots = explode('!excerpt', t('... !excerpt ... !excerpt ...')); + + $text = (isset($newranges[0]) ? '' : $dots[0]) . implode($dots[1], $out) . $dots[2]; + $text = check_plain($text); + + // Slash-escape quotes in keys found in a derived form and merge with original keys. + array_walk($foundkeys, '_search_excerpt_replace'); + $keys = array_merge($keys, $foundkeys); + + // Highlight keywords. Must be done at once to prevent conflicts ('strong' and ''). + $text = preg_replace('/' . $boundary . '(' . implode('|', $keys) . ')' . $boundary . '/iu', '\0', $text); + return $text; +} + +/** + * @} End of "defgroup search". + */ + +/** + * Helper function for array_walk() in search_excerpt(). + */ +function _search_excerpt_replace(&$text) { + $text = preg_quote($text, '/'); +} + +/** + * Find words in the original text that matched via search_simplify(). + * + * This is called in search_excerpt() if an exact match is not found in the + * text, so that we can find the derived form that matches. + * + * @param $key + * The keyword to find. + * @param $text + * The text to search for the keyword. + * @param $offset + * Offset position in $text to start searching at. + * @param $boundary + * Text to include in a regular expression that will match a word boundary. + * + * @return + * FALSE if no match is found. If a match is found, return an associative + * array with element 'where' giving the position of the match, and element + * 'keyword' giving the actual word found in the text at that position. + */ +function search_simplify_excerpt_match($key, $text, $offset, $boundary) { + $pos = NULL; + $simplified_key = search_simplify($key); + $simplified_text = search_simplify($text); + + // Return immediately if simplified key or text are empty. + if (!$simplified_key || !$simplified_text) { + return FALSE; + } + + // Check if we have a match after simplification in the text. + if (!preg_match('/' . $boundary . $simplified_key . $boundary . '/iu', $simplified_text, $match, PREG_OFFSET_CAPTURE, $offset)) { + return FALSE; + } + + // If we get here, we have a match. Now find the exact location of the match + // and the original text that matched. Start by splitting up the text by all + // potential starting points of the matching text and iterating through them. + $split = array_filter(preg_split('/' . $boundary . '/iu', $text, -1, PREG_SPLIT_OFFSET_CAPTURE), '_search_excerpt_match_filter'); + foreach ($split as $value) { + // Skip starting points before the offset. + if ($value[1] < $offset) { + continue; + } + + // Check a window of 80 characters after the starting point for a match, + // based on the size of the excerpt window. + $window = substr($text, $value[1], 80); + $simplified_window = search_simplify($window); + if (strpos($simplified_window, $simplified_key) === 0) { + // We have a match in this window. Store the position of the match. + $pos = $value[1]; + // Iterate through the text in the window until we find the full original + // matching text. + $length = strlen($window); + for ($i = 1; $i <= $length; $i++) { + $keyfound = substr($text, $value[1], $i); + if ($simplified_key == search_simplify($keyfound)) { + break; + } + } + break; + } + } + + return $pos ? array('where' => $pos, 'keyword' => $keyfound) : FALSE; +} + +/** + * Helper function for array_filter() in search_search_excerpt_match(). + */ +function _search_excerpt_match_filter($var) { + return strlen(trim($var[0])); +} + +/** + * Implements hook_forms(). + */ +function search_forms() { + $forms['search_block_form']= array( + 'callback' => 'search_box', + 'callback arguments' => array('search_block_form'), + ); + return $forms; +} + diff --git a/drupal-dev/modules/search/search.pages.inc b/drupal-dev/modules/search/search.pages.inc new file mode 100644 index 0000000..9dd00a6 --- /dev/null +++ b/drupal-dev/modules/search/search.pages.inc @@ -0,0 +1,158 @@ + ''); + // Process the search form. Note that if there is $_POST data, + // search_form_submit() will cause a redirect to search/[module path]/[keys], + // which will get us back to this page callback. In other words, the search + // form submits with POST but redirects to GET. This way we can keep + // the search query URL clean as a whistle. + if (empty($_POST['form_id']) || $_POST['form_id'] != 'search_form') { + $conditions = NULL; + if (isset($info['conditions_callback']) && function_exists($info['conditions_callback'])) { + // Build an optional array of more search conditions. + $conditions = call_user_func($info['conditions_callback'], $keys); + } + // Only search if there are keywords or non-empty conditions. + if ($keys || !empty($conditions)) { + // Log the search keys. + watchdog('search', 'Searched %type for %keys.', array('%keys' => $keys, '%type' => $info['title']), WATCHDOG_NOTICE, l(t('results'), 'search/' . $info['path'] . '/' . $keys)); + + // Collect the search results. + $results = search_data($keys, $info['module'], $conditions); + } + } + // The form may be altered based on whether the search was run. + $build['search_form'] = drupal_get_form('search_form', NULL, $keys, $info['module']); + $build['search_results'] = $results; + + return $build; +} + +/** + * Process variables for search-results.tpl.php. + * + * The $variables array contains the following arguments: + * - $results: Search results array. + * - $module: Module the search results came from (module implementing + * hook_search_info()). + * + * @see search-results.tpl.php + */ +function template_preprocess_search_results(&$variables) { + $variables['search_results'] = ''; + if (!empty($variables['module'])) { + $variables['module'] = check_plain($variables['module']); + } + foreach ($variables['results'] as $result) { + $variables['search_results'] .= theme('search_result', array('result' => $result, 'module' => $variables['module'])); + } + $variables['pager'] = theme('pager', array('tags' => NULL)); + $variables['theme_hook_suggestions'][] = 'search_results__' . $variables['module']; +} + +/** + * Process variables for search-result.tpl.php. + * + * The $variables array contains the following arguments: + * - $result + * - $module + * + * @see search-result.tpl.php + */ +function template_preprocess_search_result(&$variables) { + global $language; + + $result = $variables['result']; + $variables['url'] = check_url($result['link']); + $variables['title'] = check_plain($result['title']); + if (isset($result['language']) && $result['language'] != $language->language && $result['language'] != LANGUAGE_NONE) { + $variables['title_attributes_array']['xml:lang'] = $result['language']; + $variables['content_attributes_array']['xml:lang'] = $result['language']; + } + + $info = array(); + if (!empty($result['module'])) { + $info['module'] = check_plain($result['module']); + } + if (!empty($result['user'])) { + $info['user'] = $result['user']; + } + if (!empty($result['date'])) { + $info['date'] = format_date($result['date'], 'short'); + } + if (isset($result['extra']) && is_array($result['extra'])) { + $info = array_merge($info, $result['extra']); + } + // Check for existence. User search does not include snippets. + $variables['snippet'] = isset($result['snippet']) ? $result['snippet'] : ''; + // Provide separated and grouped meta information.. + $variables['info_split'] = $info; + $variables['info'] = implode(' - ', $info); + $variables['theme_hook_suggestions'][] = 'search_result__' . $variables['module']; +} + +/** + * As the search form collates keys from other modules hooked in via + * hook_form_alter, the validation takes place in _submit. + * search_form_validate() is used solely to set the 'processed_keys' form + * value for the basic search form. + */ +function search_form_validate($form, &$form_state) { + form_set_value($form['basic']['processed_keys'], trim($form_state['values']['keys']), $form_state); +} + +/** + * Process a search form submission. + */ +function search_form_submit($form, &$form_state) { + $keys = $form_state['values']['processed_keys']; + if ($keys == '') { + form_set_error('keys', t('Please enter some keywords.')); + // Fall through to the form redirect. + } + + $form_state['redirect'] = $form_state['action'] . '/' . $keys; +} diff --git a/drupal-dev/modules/search/search.test b/drupal-dev/modules/search/search.test new file mode 100644 index 0000000..09c879b --- /dev/null +++ b/drupal-dev/modules/search/search.test @@ -0,0 +1,2079 @@ + 'Search engine queries', + 'description' => 'Indexes content and queries it.', + 'group' => 'Search', + ); + } + + /** + * Implementation setUp(). + */ + function setUp() { + parent::setUp('search'); + } + + /** + * Test search indexing. + */ + function testMatching() { + $this->_setup(); + $this->_testQueries(); + } + + /** + * Set up a small index of items to test against. + */ + function _setup() { + variable_set('minimum_word_size', 3); + + for ($i = 1; $i <= 7; ++$i) { + search_index($i, SEARCH_TYPE, $this->getText($i)); + } + for ($i = 1; $i <= 5; ++$i) { + search_index($i + 7, SEARCH_TYPE_2, $this->getText2($i)); + } + // No getText builder function for Japanese text; just a simple array. + foreach (array( + 13 => '以呂波耳・ほへとち。リヌルヲ。', + 14 => 'ドルーパルが大好きよ!', + 15 => 'コーヒーとケーキ', + ) as $i => $jpn) { + search_index($i, SEARCH_TYPE_JPN, $jpn); + } + search_update_totals(); + } + + /** + * _test_: Helper method for generating snippets of content. + * + * Generated items to test against: + * 1 ipsum + * 2 dolore sit + * 3 sit am ut + * 4 am ut enim am + * 5 ut enim am minim veniam + * 6 enim am minim veniam es cillum + * 7 am minim veniam es cillum dolore eu + */ + function getText($n) { + $words = explode(' ', "Ipsum dolore sit am. Ut enim am minim veniam. Es cillum dolore eu."); + return implode(' ', array_slice($words, $n - 1, $n)); + } + + /** + * _test2_: Helper method for generating snippets of content. + * + * Generated items to test against: + * 8 dear + * 9 king philip + * 10 philip came over + * 11 came over from germany + * 12 over from germany swimming + */ + function getText2($n) { + $words = explode(' ', "Dear King Philip came over from Germany swimming."); + return implode(' ', array_slice($words, $n - 1, $n)); + } + + /** + * Run predefine queries looking for indexed terms. + */ + function _testQueries() { + /* + Note: OR queries that include short words in OR groups are only accepted + if the ORed terms are ANDed with at least one long word in the rest of the query. + + e.g. enim dolore OR ut = enim (dolore OR ut) = (enim dolor) OR (enim ut) -> good + e.g. dolore OR ut = (dolore) OR (ut) -> bad + + This is a design limitation to avoid full table scans. + */ + $queries = array( + // Simple AND queries. + 'ipsum' => array(1), + 'enim' => array(4, 5, 6), + 'xxxxx' => array(), + 'enim minim' => array(5, 6), + 'enim xxxxx' => array(), + 'dolore eu' => array(7), + 'dolore xx' => array(), + 'ut minim' => array(5), + 'xx minim' => array(), + 'enim veniam am minim ut' => array(5), + // Simple OR queries. + 'dolore OR ipsum' => array(1, 2, 7), + 'dolore OR xxxxx' => array(2, 7), + 'dolore OR ipsum OR enim' => array(1, 2, 4, 5, 6, 7), + 'ipsum OR dolore sit OR cillum' => array(2, 7), + 'minim dolore OR ipsum' => array(7), + 'dolore OR ipsum veniam' => array(7), + 'minim dolore OR ipsum OR enim' => array(5, 6, 7), + 'dolore xx OR yy' => array(), + 'xxxxx dolore OR ipsum' => array(), + // Negative queries. + 'dolore -sit' => array(7), + 'dolore -eu' => array(2), + 'dolore -xxxxx' => array(2, 7), + 'dolore -xx' => array(2, 7), + // Phrase queries. + '"dolore sit"' => array(2), + '"sit dolore"' => array(), + '"am minim veniam es"' => array(6, 7), + '"minim am veniam es"' => array(), + // Mixed queries. + '"am minim veniam es" OR dolore' => array(2, 6, 7), + '"minim am veniam es" OR "dolore sit"' => array(2), + '"minim am veniam es" OR "sit dolore"' => array(), + '"am minim veniam es" -eu' => array(6), + '"am minim veniam" -"cillum dolore"' => array(5, 6), + '"am minim veniam" -"dolore cillum"' => array(5, 6, 7), + 'xxxxx "minim am veniam es" OR dolore' => array(), + 'xx "minim am veniam es" OR dolore' => array() + ); + foreach ($queries as $query => $results) { + $result = db_select('search_index', 'i') + ->extend('SearchQuery') + ->searchExpression($query, SEARCH_TYPE) + ->execute(); + + $set = $result ? $result->fetchAll() : array(); + $this->_testQueryMatching($query, $set, $results); + $this->_testQueryScores($query, $set, $results); + } + + // These queries are run against the second index type, SEARCH_TYPE_2. + $queries = array( + // Simple AND queries. + 'ipsum' => array(), + 'enim' => array(), + 'enim minim' => array(), + 'dear' => array(8), + 'germany' => array(11, 12), + ); + foreach ($queries as $query => $results) { + $result = db_select('search_index', 'i') + ->extend('SearchQuery') + ->searchExpression($query, SEARCH_TYPE_2) + ->execute(); + + $set = $result ? $result->fetchAll() : array(); + $this->_testQueryMatching($query, $set, $results); + $this->_testQueryScores($query, $set, $results); + } + + // These queries are run against the third index type, SEARCH_TYPE_JPN. + $queries = array( + // Simple AND queries. + '呂波耳' => array(13), + '以呂波耳' => array(13), + 'ほへと ヌルヲ' => array(13), + 'とちリ' => array(), + 'ドルーパル' => array(14), + 'パルが大' => array(14), + 'コーヒー' => array(15), + 'ヒーキ' => array(), + ); + foreach ($queries as $query => $results) { + $result = db_select('search_index', 'i') + ->extend('SearchQuery') + ->searchExpression($query, SEARCH_TYPE_JPN) + ->execute(); + + $set = $result ? $result->fetchAll() : array(); + $this->_testQueryMatching($query, $set, $results); + $this->_testQueryScores($query, $set, $results); + } + } + + /** + * Test the matching abilities of the engine. + * + * Verify if a query produces the correct results. + */ + function _testQueryMatching($query, $set, $results) { + // Get result IDs. + $found = array(); + foreach ($set as $item) { + $found[] = $item->sid; + } + + // Compare $results and $found. + sort($found); + sort($results); + $this->assertEqual($found, $results, "Query matching '$query'"); + } + + /** + * Test the scoring abilities of the engine. + * + * Verify if a query produces normalized, monotonous scores. + */ + function _testQueryScores($query, $set, $results) { + // Get result scores. + $scores = array(); + foreach ($set as $item) { + $scores[] = $item->calculated_score; + } + + // Check order. + $sorted = $scores; + sort($sorted); + $this->assertEqual($scores, array_reverse($sorted), "Query order '$query'"); + + // Check range. + $this->assertEqual(!count($scores) || (min($scores) > 0.0 && max($scores) <= 1.0001), TRUE, "Query scoring '$query'"); + } +} + +/** + * Tests the bike shed text on no results page, and text on the search page. + */ +class SearchPageText extends DrupalWebTestCase { + protected $searching_user; + + public static function getInfo() { + return array( + 'name' => 'Search page text', + 'description' => 'Tests the bike shed text on the no results page, and various other text on search pages.', + 'group' => 'Search' + ); + } + + function setUp() { + parent::setUp('search'); + + // Create user. + $this->searching_user = $this->drupalCreateUser(array('search content', 'access user profiles')); + } + + /** + * Tests the failed search text, and various other text on the search page. + */ + function testSearchText() { + $this->drupalLogin($this->searching_user); + $this->drupalGet('search/node'); + $this->assertText(t('Enter your keywords')); + $this->assertText(t('Search')); + $title = t('Search') . ' | Drupal'; + $this->assertTitle($title, 'Search page title is correct'); + + $edit = array(); + $edit['keys'] = 'bike shed ' . $this->randomName(); + $this->drupalPost('search/node', $edit, t('Search')); + $this->assertText(t('Consider loosening your query with OR. bike OR shed will often show more results than bike shed.'), 'Help text is displayed when search returns no results.'); + $this->assertText(t('Search')); + $this->assertTitle($title, 'Search page title is correct'); + + $edit['keys'] = $this->searching_user->name; + $this->drupalPost('search/user', $edit, t('Search')); + $this->assertText(t('Search')); + $this->assertTitle($title, 'Search page title is correct'); + + // Test that search keywords containing slashes are correctly loaded + // from the path and displayed in the search form. + $arg = $this->randomName() . '/' . $this->randomName(); + $this->drupalGet('search/node/' . $arg); + $input = $this->xpath("//input[@id='edit-keys' and @value='{$arg}']"); + $this->assertFalse(empty($input), 'Search keys with a / are correctly set as the default value in the search box.'); + + // Test a search input exceeding the limit of AND/OR combinations to test + // the Denial-of-Service protection. + $limit = variable_get('search_and_or_limit', 7); + $keys = array(); + for ($i = 0; $i < $limit + 1; $i++) { + $keys[] = $this->randomName(3); + if ($i % 2 == 0) { + $keys[] = 'OR'; + } + } + $edit['keys'] = implode(' ', $keys); + $this->drupalPost('search/node', $edit, t('Search')); + $this->assertRaw(t('Your search used too many AND/OR expressions. Only the first @count terms were included in this search.', array('@count' => $limit))); + } +} + +class SearchAdvancedSearchForm extends DrupalWebTestCase { + protected $node; + + public static function getInfo() { + return array( + 'name' => 'Advanced search form', + 'description' => 'Indexes content and tests the advanced search form.', + 'group' => 'Search', + ); + } + + function setUp() { + parent::setUp('search'); + // Create and login user. + $test_user = $this->drupalCreateUser(array('access content', 'search content', 'use advanced search', 'administer nodes')); + $this->drupalLogin($test_user); + + // Create initial node. + $node = $this->drupalCreateNode(); + $this->node = $this->drupalCreateNode(); + + // First update the index. This does the initial processing. + node_update_index(); + + // Then, run the shutdown function. Testing is a unique case where indexing + // and searching has to happen in the same request, so running the shutdown + // function manually is needed to finish the indexing process. + search_update_totals(); + } + + /** + * Test using the search form with GET and POST queries. + * Test using the advanced search form to limit search to nodes of type "Basic page". + */ + function testNodeType() { + $this->assertTrue($this->node->type == 'page', 'Node type is Basic page.'); + + // Assert that the dummy title doesn't equal the real title. + $dummy_title = 'Lorem ipsum'; + $this->assertNotEqual($dummy_title, $this->node->title, "Dummy title doesn't equal node title"); + + // Search for the dummy title with a GET query. + $this->drupalGet('search/node/' . $dummy_title); + $this->assertNoText($this->node->title, 'Basic page node is not found with dummy title.'); + + // Search for the title of the node with a GET query. + $this->drupalGet('search/node/' . $this->node->title); + $this->assertText($this->node->title, 'Basic page node is found with GET query.'); + + // Search for the title of the node with a POST query. + $edit = array('or' => $this->node->title); + $this->drupalPost('search/node', $edit, t('Advanced search')); + $this->assertText($this->node->title, 'Basic page node is found with POST query.'); + + // Advanced search type option. + $this->drupalPost('search/node', array_merge($edit, array('type[page]' => 'page')), t('Advanced search')); + $this->assertText($this->node->title, 'Basic page node is found with POST query and type:page.'); + + $this->drupalPost('search/node', array_merge($edit, array('type[article]' => 'article')), t('Advanced search')); + $this->assertText('bike shed', 'Article node is not found with POST query and type:article.'); + } +} + +class SearchRankingTestCase extends DrupalWebTestCase { + public static function getInfo() { + return array( + 'name' => 'Search engine ranking', + 'description' => 'Indexes content and tests ranking factors.', + 'group' => 'Search', + ); + } + + /** + * Implementation setUp(). + */ + function setUp() { + parent::setUp('search', 'statistics', 'comment'); + } + + function testRankings() { + // Login with sufficient privileges. + $this->drupalLogin($this->drupalCreateUser(array('skip comment approval', 'create page content'))); + + // Build a list of the rankings to test. + $node_ranks = array('sticky', 'promote', 'relevance', 'recent', 'comments', 'views'); + + // Create nodes for testing. + foreach ($node_ranks as $node_rank) { + $settings = array( + 'type' => 'page', + 'title' => 'Drupal rocks', + 'body' => array(LANGUAGE_NONE => array(array('value' => "Drupal's search rocks"))), + ); + foreach (array(0, 1) as $num) { + if ($num == 1) { + switch ($node_rank) { + case 'sticky': + case 'promote': + $settings[$node_rank] = 1; + break; + case 'relevance': + $settings['body'][LANGUAGE_NONE][0]['value'] .= " really rocks"; + break; + case 'recent': + $settings['created'] = REQUEST_TIME + 3600; + break; + case 'comments': + $settings['comment'] = 2; + break; + } + } + $nodes[$node_rank][$num] = $this->drupalCreateNode($settings); + } + } + + // Update the search index. + module_invoke_all('update_index'); + search_update_totals(); + + // Refresh variables after the treatment. + $this->refreshVariables(); + + // Add a comment to one of the nodes. + $edit = array(); + $edit['subject'] = 'my comment title'; + $edit['comment_body[' . LANGUAGE_NONE . '][0][value]'] = 'some random comment'; + $this->drupalGet('comment/reply/' . $nodes['comments'][1]->nid); + $this->drupalPost(NULL, $edit, t('Preview')); + $this->drupalPost(NULL, $edit, t('Save')); + + // Enable counting of statistics. + variable_set('statistics_count_content_views', 1); + + // Then View one of the nodes a bunch of times. + for ($i = 0; $i < 5; $i ++) { + $this->drupalGet('node/' . $nodes['views'][1]->nid); + } + + // Test each of the possible rankings. + foreach ($node_ranks as $node_rank) { + // Disable all relevancy rankings except the one we are testing. + foreach ($node_ranks as $var) { + variable_set('node_rank_' . $var, $var == $node_rank ? 10 : 0); + } + + // Do the search and assert the results. + $set = node_search_execute('rocks'); + $this->assertEqual($set[0]['node']->nid, $nodes[$node_rank][1]->nid, 'Search ranking "' . $node_rank . '" order.'); + } + } + + /** + * Test rankings of HTML tags. + */ + function testHTMLRankings() { + // Login with sufficient privileges. + $this->drupalLogin($this->drupalCreateUser(array('create page content'))); + + // Test HTML tags with different weights. + $sorted_tags = array('h1', 'h2', 'h3', 'h4', 'a', 'h5', 'h6', 'notag'); + $shuffled_tags = $sorted_tags; + + // Shuffle tags to ensure HTML tags are ranked properly. + shuffle($shuffled_tags); + $settings = array( + 'type' => 'page', + 'title' => 'Simple node', + ); + foreach ($shuffled_tags as $tag) { + switch ($tag) { + case 'a': + $settings['body'] = array(LANGUAGE_NONE => array(array('value' => l('Drupal Rocks', 'node'), 'format' => 'full_html'))); + break; + case 'notag': + $settings['body'] = array(LANGUAGE_NONE => array(array('value' => 'Drupal Rocks'))); + break; + default: + $settings['body'] = array(LANGUAGE_NONE => array(array('value' => "<$tag>Drupal Rocks", 'format' => 'full_html'))); + break; + } + $nodes[$tag] = $this->drupalCreateNode($settings); + } + + // Update the search index. + module_invoke_all('update_index'); + search_update_totals(); + + // Refresh variables after the treatment. + $this->refreshVariables(); + + // Disable all other rankings. + $node_ranks = array('sticky', 'promote', 'recent', 'comments', 'views'); + foreach ($node_ranks as $node_rank) { + variable_set('node_rank_' . $node_rank, 0); + } + $set = node_search_execute('rocks'); + + // Test the ranking of each tag. + foreach ($sorted_tags as $tag_rank => $tag) { + // Assert the results. + if ($tag == 'notag') { + $this->assertEqual($set[$tag_rank]['node']->nid, $nodes[$tag]->nid, 'Search tag ranking for plain text order.'); + } else { + $this->assertEqual($set[$tag_rank]['node']->nid, $nodes[$tag]->nid, 'Search tag ranking for "<' . $sorted_tags[$tag_rank] . '>" order.'); + } + } + + // Test tags with the same weight against the sorted tags. + $unsorted_tags = array('u', 'b', 'i', 'strong', 'em'); + foreach ($unsorted_tags as $tag) { + $settings['body'] = array(LANGUAGE_NONE => array(array('value' => "<$tag>Drupal Rocks", 'format' => 'full_html'))); + $node = $this->drupalCreateNode($settings); + + // Update the search index. + module_invoke_all('update_index'); + search_update_totals(); + + // Refresh variables after the treatment. + $this->refreshVariables(); + + $set = node_search_execute('rocks'); + + // Ranking should always be second to last. + $set = array_slice($set, -2, 1); + + // Assert the results. + $this->assertEqual($set[0]['node']->nid, $node->nid, 'Search tag ranking for "<' . $tag . '>" order.'); + + // Delete node so it doesn't show up in subsequent search results. + node_delete($node->nid); + } + } + + /** + * Verifies that if we combine two rankings, search still works. + * + * See issue http://drupal.org/node/771596 + */ + function testDoubleRankings() { + // Login with sufficient privileges. + $this->drupalLogin($this->drupalCreateUser(array('skip comment approval', 'create page content'))); + + // See testRankings() above - build a node that will rank high for sticky. + $settings = array( + 'type' => 'page', + 'title' => 'Drupal rocks', + 'body' => array(LANGUAGE_NONE => array(array('value' => "Drupal's search rocks"))), + 'sticky' => 1, + ); + + $node = $this->drupalCreateNode($settings); + + // Update the search index. + module_invoke_all('update_index'); + search_update_totals(); + + // Refresh variables after the treatment. + $this->refreshVariables(); + + // Set up for ranking sticky and lots of comments; make sure others are + // disabled. + $node_ranks = array('sticky', 'promote', 'relevance', 'recent', 'comments', 'views'); + foreach ($node_ranks as $var) { + $value = ($var == 'sticky' || $var == 'comments') ? 10 : 0; + variable_set('node_rank_' . $var, $value); + } + + // Do the search and assert the results. + $set = node_search_execute('rocks'); + $this->assertEqual($set[0]['node']->nid, $node->nid, 'Search double ranking order.'); + } +} + +class SearchBlockTestCase extends DrupalWebTestCase { + public static function getInfo() { + return array( + 'name' => 'Block availability', + 'description' => 'Check if the search form block is available.', + 'group' => 'Search', + ); + } + + function setUp() { + parent::setUp('search'); + + // Create and login user + $admin_user = $this->drupalCreateUser(array('administer blocks', 'search content')); + $this->drupalLogin($admin_user); + } + + function testSearchFormBlock() { + // Set block title to confirm that the interface is available. + $this->drupalPost('admin/structure/block/manage/search/form/configure', array('title' => $this->randomName(8)), t('Save block')); + $this->assertText(t('The block configuration has been saved.'), 'Block configuration set.'); + + // Set the block to a region to confirm block is available. + $edit = array(); + $edit['blocks[search_form][region]'] = 'footer'; + $this->drupalPost('admin/structure/block', $edit, t('Save blocks')); + $this->assertText(t('The block settings have been updated.'), 'Block successfully move to footer region.'); + } + + /** + * Test that the search block form works correctly. + */ + function testBlock() { + // Enable the block, and place it in the 'content' region so that it isn't + // hidden on 404 pages. + $edit = array('blocks[search_form][region]' => 'content'); + $this->drupalPost('admin/structure/block', $edit, t('Save blocks')); + + // Test a normal search via the block form, from the front page. + $terms = array('search_block_form' => 'test'); + $this->drupalPost('node', $terms, t('Search')); + $this->assertText('Your search yielded no results'); + + // Test a search from the block on a 404 page. + $this->drupalGet('foo'); + $this->assertResponse(404); + $this->drupalPost(NULL, $terms, t('Search')); + $this->assertResponse(200); + $this->assertText('Your search yielded no results'); + + // Test a search from the block when it doesn't appear on the search page. + $edit = array('pages' => 'search'); + $this->drupalPost('admin/structure/block/manage/search/form/configure', $edit, t('Save block')); + $this->drupalPost('node', $terms, t('Search')); + $this->assertText('Your search yielded no results'); + + // Confirm that the user is redirected to the search page. + $this->assertEqual( + $this->getUrl(), + url('search/node/' . $terms['search_block_form'], array('absolute' => TRUE)), + 'Redirected to correct url.' + ); + + // Test an empty search via the block form, from the front page. + $terms = array('search_block_form' => ''); + $this->drupalPost('node', $terms, t('Search')); + $this->assertText('Please enter some keywords'); + + // Confirm that the user is redirected to the search page, when form is submitted empty. + $this->assertEqual( + $this->getUrl(), + url('search/node/', array('absolute' => TRUE)), + 'Redirected to correct url.' + ); + } +} + +/** + * Tests that searching for a phrase gets the correct page count. + */ +class SearchExactTestCase extends DrupalWebTestCase { + public static function getInfo() { + return array( + 'name' => 'Search engine phrase queries', + 'description' => 'Tests that searching for a phrase gets the correct page count.', + 'group' => 'Search', + ); + } + + function setUp() { + parent::setUp('search'); + } + + /** + * Tests that the correct number of pager links are found for both keywords and phrases. + */ + function testExactQuery() { + // Login with sufficient privileges. + $this->drupalLogin($this->drupalCreateUser(array('create page content', 'search content'))); + + $settings = array( + 'type' => 'page', + 'title' => 'Simple Node', + ); + // Create nodes with exact phrase. + for ($i = 0; $i <= 17; $i++) { + $settings['body'] = array(LANGUAGE_NONE => array(array('value' => 'love pizza'))); + $this->drupalCreateNode($settings); + } + // Create nodes containing keywords. + for ($i = 0; $i <= 17; $i++) { + $settings['body'] = array(LANGUAGE_NONE => array(array('value' => 'love cheesy pizza'))); + $this->drupalCreateNode($settings); + } + + // Update the search index. + module_invoke_all('update_index'); + search_update_totals(); + + // Refresh variables after the treatment. + $this->refreshVariables(); + + // Test that the correct number of pager links are found for keyword search. + $edit = array('keys' => 'love pizza'); + $this->drupalPost('search/node', $edit, t('Search')); + $this->assertLinkByHref('page=1', 0, '2nd page link is found for keyword search.'); + $this->assertLinkByHref('page=2', 0, '3rd page link is found for keyword search.'); + $this->assertLinkByHref('page=3', 0, '4th page link is found for keyword search.'); + $this->assertNoLinkByHref('page=4', '5th page link is not found for keyword search.'); + + // Test that the correct number of pager links are found for exact phrase search. + $edit = array('keys' => '"love pizza"'); + $this->drupalPost('search/node', $edit, t('Search')); + $this->assertLinkByHref('page=1', 0, '2nd page link is found for exact phrase search.'); + $this->assertNoLinkByHref('page=2', '3rd page link is not found for exact phrase search.'); + } +} + +/** + * Test integration searching comments. + */ +class SearchCommentTestCase extends DrupalWebTestCase { + protected $admin_user; + + public static function getInfo() { + return array( + 'name' => 'Comment Search tests', + 'description' => 'Verify text formats and filters used elsewhere.', + 'group' => 'Search', + ); + } + + function setUp() { + parent::setUp('comment', 'search'); + + // Create and log in an administrative user having access to the Full HTML + // text format. + $full_html_format = filter_format_load('full_html'); + $permissions = array( + 'administer filters', + filter_permission_name($full_html_format), + 'administer permissions', + 'create page content', + 'skip comment approval', + 'access comments', + ); + $this->admin_user = $this->drupalCreateUser($permissions); + $this->drupalLogin($this->admin_user); + } + + /** + * Verify that comments are rendered using proper format in search results. + */ + function testSearchResultsComment() { + $comment_body = 'Test comment body'; + + variable_set('comment_preview_article', DRUPAL_OPTIONAL); + // Enable check_plain() for 'Filtered HTML' text format. + $filtered_html_format_id = 'filtered_html'; + $edit = array( + 'filters[filter_html_escape][status]' => TRUE, + ); + $this->drupalPost('admin/config/content/formats/' . $filtered_html_format_id, $edit, t('Save configuration')); + // Allow anonymous users to search content. + $edit = array( + DRUPAL_ANONYMOUS_RID . '[search content]' => 1, + DRUPAL_ANONYMOUS_RID . '[access comments]' => 1, + DRUPAL_ANONYMOUS_RID . '[post comments]' => 1, + ); + $this->drupalPost('admin/people/permissions', $edit, t('Save permissions')); + + // Create a node. + $node = $this->drupalCreateNode(array('type' => 'article')); + // Post a comment using 'Full HTML' text format. + $edit_comment = array(); + $edit_comment['subject'] = 'Test comment subject'; + $edit_comment['comment_body[' . LANGUAGE_NONE . '][0][value]'] = '

    ' . $comment_body . '

    '; + $full_html_format_id = 'full_html'; + $edit_comment['comment_body[' . LANGUAGE_NONE . '][0][format]'] = $full_html_format_id; + $this->drupalPost('comment/reply/' . $node->nid, $edit_comment, t('Save')); + + // Invoke search index update. + $this->drupalLogout(); + $this->cronRun(); + + // Search for the comment subject. + $edit = array( + 'search_block_form' => "'" . $edit_comment['subject'] . "'", + ); + $this->drupalPost('', $edit, t('Search')); + $this->assertText($node->title, 'Node found in search results.'); + $this->assertText($edit_comment['subject'], 'Comment subject found in search results.'); + + // Search for the comment body. + $edit = array( + 'search_block_form' => "'" . $comment_body . "'", + ); + $this->drupalPost('', $edit, t('Search')); + $this->assertText($node->title, 'Node found in search results.'); + + // Verify that comment is rendered using proper format. + $this->assertText($comment_body, 'Comment body text found in search results.'); + $this->assertNoRaw(t('n/a'), 'HTML in comment body is not hidden.'); + $this->assertNoRaw(check_plain($edit_comment['comment_body[' . LANGUAGE_NONE . '][0][value]']), 'HTML in comment body is not escaped.'); + + // Hide comments. + $this->drupalLogin($this->admin_user); + $node->comment = 0; + node_save($node); + + // Invoke search index update. + $this->drupalLogout(); + $this->cronRun(); + + // Search for $title. + $this->drupalPost('', $edit, t('Search')); + $this->assertNoText($comment_body, 'Comment body text not found in search results.'); + } + + /** + * Verify access rules for comment indexing with different permissions. + */ + function testSearchResultsCommentAccess() { + $comment_body = 'Test comment body'; + $this->comment_subject = 'Test comment subject'; + $this->admin_role = $this->admin_user->roles; + unset($this->admin_role[DRUPAL_AUTHENTICATED_RID]); + $this->admin_role = key($this->admin_role); + + // Create a node. + variable_set('comment_preview_article', DRUPAL_OPTIONAL); + $this->node = $this->drupalCreateNode(array('type' => 'article')); + + // Post a comment using 'Full HTML' text format. + $edit_comment = array(); + $edit_comment['subject'] = $this->comment_subject; + $edit_comment['comment_body[' . LANGUAGE_NONE . '][0][value]'] = '

    ' . $comment_body . '

    '; + $this->drupalPost('comment/reply/' . $this->node->nid, $edit_comment, t('Save')); + + $this->drupalLogout(); + $this->setRolePermissions(DRUPAL_ANONYMOUS_RID); + $this->checkCommentAccess('Anon user has search permission but no access comments permission, comments should not be indexed'); + + $this->setRolePermissions(DRUPAL_ANONYMOUS_RID, TRUE); + $this->checkCommentAccess('Anon user has search permission and access comments permission, comments should be indexed', TRUE); + + $this->drupalLogin($this->admin_user); + $this->drupalGet('admin/people/permissions'); + + // Disable search access for authenticated user to test admin user. + $this->setRolePermissions(DRUPAL_AUTHENTICATED_RID, FALSE, FALSE); + + $this->setRolePermissions($this->admin_role); + $this->checkCommentAccess('Admin user has search permission but no access comments permission, comments should not be indexed'); + + $this->setRolePermissions($this->admin_role, TRUE); + $this->checkCommentAccess('Admin user has search permission and access comments permission, comments should be indexed', TRUE); + + $this->setRolePermissions(DRUPAL_AUTHENTICATED_RID); + $this->checkCommentAccess('Authenticated user has search permission but no access comments permission, comments should not be indexed'); + + $this->setRolePermissions(DRUPAL_AUTHENTICATED_RID, TRUE); + $this->checkCommentAccess('Authenticated user has search permission and access comments permission, comments should be indexed', TRUE); + + // Verify that access comments permission is inherited from the + // authenticated role. + $this->setRolePermissions(DRUPAL_AUTHENTICATED_RID, TRUE, FALSE); + $this->setRolePermissions($this->admin_role); + $this->checkCommentAccess('Admin user has search permission and no access comments permission, but comments should be indexed because admin user inherits authenticated user\'s permission to access comments', TRUE); + + // Verify that search content permission is inherited from the authenticated + // role. + $this->setRolePermissions(DRUPAL_AUTHENTICATED_RID, TRUE, TRUE); + $this->setRolePermissions($this->admin_role, TRUE, FALSE); + $this->checkCommentAccess('Admin user has access comments permission and no search permission, but comments should be indexed because admin user inherits authenticated user\'s permission to search', TRUE); + + } + + /** + * Set permissions for role. + */ + function setRolePermissions($rid, $access_comments = FALSE, $search_content = TRUE) { + $permissions = array( + 'access comments' => $access_comments, + 'search content' => $search_content, + ); + user_role_change_permissions($rid, $permissions); + } + + /** + * Update search index and search for comment. + */ + function checkCommentAccess($message, $assume_access = FALSE) { + // Invoke search index update. + search_touch_node($this->node->nid); + $this->cronRun(); + + // Search for the comment subject. + $edit = array( + 'search_block_form' => "'" . $this->comment_subject . "'", + ); + $this->drupalPost('', $edit, t('Search')); + $method = $assume_access ? 'assertText' : 'assertNoText'; + $verb = $assume_access ? 'found' : 'not found'; + $this->{$method}($this->node->title, "Node $verb in search results: " . $message); + $this->{$method}($this->comment_subject, "Comment subject $verb in search results: " . $message); + } + + /** + * Verify that 'add new comment' does not appear in search results or index. + */ + function testAddNewComment() { + // Create a node with a short body. + $settings = array( + 'type' => 'article', + 'title' => 'short title', + 'body' => array(LANGUAGE_NONE => array(array('value' => 'short body text'))), + ); + + $user = $this->drupalCreateUser(array('search content', 'create article content', 'access content')); + $this->drupalLogin($user); + + $node = $this->drupalCreateNode($settings); + // Verify that if you view the node on its own page, 'add new comment' + // is there. + $this->drupalGet('node/' . $node->nid); + $this->assertText(t('Add new comment'), 'Add new comment appears on node page'); + + // Run cron to index this page. + $this->drupalLogout(); + $this->cronRun(); + + // Search for 'comment'. Should be no results. + $this->drupalLogin($user); + $this->drupalPost('search/node', array('keys' => 'comment'), t('Search')); + $this->assertText(t('Your search yielded no results'), 'No results searching for the word comment'); + + // Search for the node title. Should be found, and 'Add new comment' should + // not be part of the search snippet. + $this->drupalPost('search/node', array('keys' => 'short'), t('Search')); + $this->assertText($node->title, 'Search for keyword worked'); + $this->assertNoText(t('Add new comment'), 'Add new comment does not appear on search results page'); + } + +} + +/** + * Tests search_expression_insert() and search_expression_extract(). + * + * @see http://drupal.org/node/419388 (issue) + */ +class SearchExpressionInsertExtractTestCase extends DrupalUnitTestCase { + public static function getInfo() { + return array( + 'name' => 'Search expression insert/extract', + 'description' => 'Tests the functions search_expression_insert() and search_expression_extract()', + 'group' => 'Search', + ); + } + + function setUp() { + drupal_load('module', 'search'); + parent::setUp(); + } + + /** + * Tests search_expression_insert() and search_expression_extract(). + */ + function testInsertExtract() { + $base_expression = "mykeyword"; + // Build an array of option, value, what should be in the expression, what + // should be retrieved from expression. + $cases = array( + array('foo', 'bar', 'foo:bar', 'bar'), // Normal case. + array('foo', NULL, '', NULL), // Empty value: shouldn't insert. + array('foo', ' ', 'foo:', ''), // Space as value: should insert but retrieve empty string. + array('foo', '', 'foo:', ''), // Empty string as value: should insert but retrieve empty string. + array('foo', '0', 'foo:0', '0'), // String zero as value: should insert. + array('foo', 0, 'foo:0', '0'), // Numeric zero as value: should insert. + ); + + foreach ($cases as $index => $case) { + $after_insert = search_expression_insert($base_expression, $case[0], $case[1]); + if (empty($case[2])) { + $this->assertEqual($after_insert, $base_expression, "Empty insert does not change expression in case $index"); + } + else { + $this->assertEqual($after_insert, $base_expression . ' ' . $case[2], "Insert added correct expression for case $index"); + } + + $retrieved = search_expression_extract($after_insert, $case[0]); + if (!isset($case[3])) { + $this->assertFalse(isset($retrieved), "Empty retrieval results in unset value in case $index"); + } + else { + $this->assertEqual($retrieved, $case[3], "Value is retrieved for case $index"); + } + + $after_clear = search_expression_insert($after_insert, $case[0]); + $this->assertEqual(trim($after_clear), $base_expression, "After clearing, base expression is restored for case $index"); + + $cleared = search_expression_extract($after_clear, $case[0]); + $this->assertFalse(isset($cleared), "After clearing, value could not be retrieved for case $index"); + } + } +} + +/** + * Tests that comment count display toggles properly on comment status of node + * + * Issue 537278 + * + * - Nodes with comment status set to Open should always how comment counts + * - Nodes with comment status set to Closed should show comment counts + * only when there are comments + * - Nodes with comment status set to Hidden should never show comment counts + */ +class SearchCommentCountToggleTestCase extends DrupalWebTestCase { + protected $searching_user; + protected $searchable_nodes; + + public static function getInfo() { + return array( + 'name' => 'Comment count toggle', + 'description' => 'Verify that comment count display toggles properly on comment status of node.', + 'group' => 'Search', + ); + } + + function setUp() { + parent::setUp('search'); + + // Create searching user. + $this->searching_user = $this->drupalCreateUser(array('search content', 'access content', 'access comments', 'skip comment approval')); + + // Create initial nodes. + $node_params = array('type' => 'article', 'body' => array(LANGUAGE_NONE => array(array('value' => 'SearchCommentToggleTestCase')))); + + $this->searchable_nodes['1 comment'] = $this->drupalCreateNode($node_params); + $this->searchable_nodes['0 comments'] = $this->drupalCreateNode($node_params); + + // Login with sufficient privileges. + $this->drupalLogin($this->searching_user); + + // Create a comment array + $edit_comment = array(); + $edit_comment['subject'] = $this->randomName(); + $edit_comment['comment_body[' . LANGUAGE_NONE . '][0][value]'] = $this->randomName(); + $filtered_html_format_id = 'filtered_html'; + $edit_comment['comment_body[' . LANGUAGE_NONE . '][0][format]'] = $filtered_html_format_id; + + // Post comment to the test node with comment + $this->drupalPost('comment/reply/' . $this->searchable_nodes['1 comment']->nid, $edit_comment, t('Save')); + + // First update the index. This does the initial processing. + node_update_index(); + + // Then, run the shutdown function. Testing is a unique case where indexing + // and searching has to happen in the same request, so running the shutdown + // function manually is needed to finish the indexing process. + search_update_totals(); + } + + /** + * Verify that comment count display toggles properly on comment status of node + */ + function testSearchCommentCountToggle() { + // Search for the nodes by string in the node body. + $edit = array( + 'search_block_form' => "'SearchCommentToggleTestCase'", + ); + + // Test comment count display for nodes with comment status set to Open + $this->drupalPost('', $edit, t('Search')); + $this->assertText(t('0 comments'), 'Empty comment count displays for nodes with comment status set to Open'); + $this->assertText(t('1 comment'), 'Non-empty comment count displays for nodes with comment status set to Open'); + + // Test comment count display for nodes with comment status set to Closed + $this->searchable_nodes['0 comments']->comment = COMMENT_NODE_CLOSED; + node_save($this->searchable_nodes['0 comments']); + $this->searchable_nodes['1 comment']->comment = COMMENT_NODE_CLOSED; + node_save($this->searchable_nodes['1 comment']); + + $this->drupalPost('', $edit, t('Search')); + $this->assertNoText(t('0 comments'), 'Empty comment count does not display for nodes with comment status set to Closed'); + $this->assertText(t('1 comment'), 'Non-empty comment count displays for nodes with comment status set to Closed'); + + // Test comment count display for nodes with comment status set to Hidden + $this->searchable_nodes['0 comments']->comment = COMMENT_NODE_HIDDEN; + node_save($this->searchable_nodes['0 comments']); + $this->searchable_nodes['1 comment']->comment = COMMENT_NODE_HIDDEN; + node_save($this->searchable_nodes['1 comment']); + + $this->drupalPost('', $edit, t('Search')); + $this->assertNoText(t('0 comments'), 'Empty comment count does not display for nodes with comment status set to Hidden'); + $this->assertNoText(t('1 comment'), 'Non-empty comment count does not display for nodes with comment status set to Hidden'); + } +} + +/** + * Test search_simplify() on every Unicode character, and some other cases. + */ +class SearchSimplifyTestCase extends DrupalWebTestCase { + public static function getInfo() { + return array( + 'name' => 'Search simplify', + 'description' => 'Check that the search_simply() function works as intended.', + 'group' => 'Search', + ); + } + + /** + * Tests that all Unicode characters simplify correctly. + */ + function testSearchSimplifyUnicode() { + // This test uses a file that was constructed so that the even lines are + // boundary characters, and the odd lines are valid word characters. (It + // was generated as a sequence of all the Unicode characters, and then the + // boundary chararacters (punctuation, spaces, etc.) were split off into + // their own lines). So the even-numbered lines should simplify to nothing, + // and the odd-numbered lines we need to split into shorter chunks and + // verify that simplification doesn't lose any characters. + $input = file_get_contents(DRUPAL_ROOT . '/modules/search/tests/UnicodeTest.txt'); + $basestrings = explode(chr(10), $input); + $strings = array(); + foreach ($basestrings as $key => $string) { + if ($key %2) { + // Even line - should simplify down to a space. + $simplified = search_simplify($string); + $this->assertIdentical($simplified, ' ', "Line $key is excluded from the index"); + } + else { + // Odd line, should be word characters. + // Split this into 30-character chunks, so we don't run into limits + // of truncation in search_simplify(). + $start = 0; + while ($start < drupal_strlen($string)) { + $newstr = drupal_substr($string, $start, 30); + // Special case: leading zeros are removed from numeric strings, + // and there's one string in this file that is numbers starting with + // zero, so prepend a 1 on that string. + if (preg_match('/^[0-9]+$/', $newstr)) { + $newstr = '1' . $newstr; + } + $strings[] = $newstr; + $start += 30; + } + } + } + foreach ($strings as $key => $string) { + $simplified = search_simplify($string); + $this->assertTrue(drupal_strlen($simplified) >= drupal_strlen($string), "Nothing is removed from string $key."); + } + + // Test the low-numbered ASCII control characters separately. They are not + // in the text file because they are problematic for diff, especially \0. + $string = ''; + for ($i = 0; $i < 32; $i++) { + $string .= chr($i); + } + $this->assertIdentical(' ', search_simplify($string), 'Search simplify works for ASCII control characters.'); + } + + /** + * Tests that search_simplify() does the right thing with punctuation. + */ + function testSearchSimplifyPunctuation() { + $cases = array( + array('20.03/94-28,876', '20039428876', 'Punctuation removed from numbers'), + array('great...drupal--module', 'great drupal module', 'Multiple dot and dashes are word boundaries'), + array('very_great-drupal.module', 'verygreatdrupalmodule', 'Single dot, dash, underscore are removed'), + array('regular,punctuation;word', 'regular punctuation word', 'Punctuation is a word boundary'), + ); + + foreach ($cases as $case) { + $out = trim(search_simplify($case[0])); + $this->assertEqual($out, $case[1], $case[2]); + } + } +} + + +/** + * Tests keywords and conditions. + */ +class SearchKeywordsConditions extends DrupalWebTestCase { + + public static function getInfo() { + return array( + 'name' => 'Keywords and conditions', + 'description' => 'Verify the search pulls in keywords and extra conditions.', + 'group' => 'Search', + ); + } + + function setUp() { + parent::setUp('search', 'search_extra_type'); + // Create searching user. + $this->searching_user = $this->drupalCreateUser(array('search content', 'access content', 'access comments', 'skip comment approval')); + // Login with sufficient privileges. + $this->drupalLogin($this->searching_user); + // Test with all search modules enabled. + variable_set('search_active_modules', array('node' => 'node', 'user' => 'user', 'search_extra_type' => 'search_extra_type')); + menu_rebuild(); + } + + /** + * Verify the kewords are captured and conditions respected. + */ + function testSearchKeyswordsConditions() { + // No keys, not conditions - no results. + $this->drupalGet('search/dummy_path'); + $this->assertNoText('Dummy search snippet to display'); + // With keys - get results. + $keys = 'bike shed ' . $this->randomName(); + $this->drupalGet("search/dummy_path/{$keys}"); + $this->assertText("Dummy search snippet to display. Keywords: {$keys}"); + $keys = 'blue drop ' . $this->randomName(); + $this->drupalGet("search/dummy_path", array('query' => array('keys' => $keys))); + $this->assertText("Dummy search snippet to display. Keywords: {$keys}"); + // Add some conditions and keys. + $keys = 'moving drop ' . $this->randomName(); + $this->drupalGet("search/dummy_path/bike", array('query' => array('search_conditions' => $keys))); + $this->assertText("Dummy search snippet to display."); + $this->assertRaw(print_r(array('search_conditions' => $keys), TRUE)); + // Add some conditions and no keys. + $keys = 'drop kick ' . $this->randomName(); + $this->drupalGet("search/dummy_path", array('query' => array('search_conditions' => $keys))); + $this->assertText("Dummy search snippet to display."); + $this->assertRaw(print_r(array('search_conditions' => $keys), TRUE)); + } +} + +/** + * Tests that numbers can be searched. + */ +class SearchNumbersTestCase extends DrupalWebTestCase { + protected $test_user; + protected $numbers; + protected $nodes; + + public static function getInfo() { + return array( + 'name' => 'Search numbers', + 'description' => 'Check that numbers can be searched', + 'group' => 'Search', + ); + } + + function setUp() { + parent::setUp('search'); + + $this->test_user = $this->drupalCreateUser(array('search content', 'access content', 'administer nodes', 'access site reports')); + $this->drupalLogin($this->test_user); + + // Create content with various numbers in it. + // Note: 50 characters is the current limit of the search index's word + // field. + $this->numbers = array( + 'ISBN' => '978-0446365383', + 'UPC' => '036000 291452', + 'EAN bar code' => '5901234123457', + 'negative' => '-123456.7890', + 'quoted negative' => '"-123456.7890"', + 'leading zero' => '0777777777', + 'tiny' => '111', + 'small' => '22222222222222', + 'medium' => '333333333333333333333333333', + 'large' => '444444444444444444444444444444444444444', + 'gigantic' => '5555555555555555555555555555555555555555555555555', + 'over fifty characters' => '666666666666666666666666666666666666666666666666666666666666', + 'date', '01/02/2009', + 'commas', '987,654,321', + ); + + foreach ($this->numbers as $doc => $num) { + $info = array( + 'body' => array(LANGUAGE_NONE => array(array('value' => $num))), + 'type' => 'page', + 'language' => LANGUAGE_NONE, + 'title' => $doc . ' number', + ); + $this->nodes[$doc] = $this->drupalCreateNode($info); + } + + // Run cron to ensure the content is indexed. + $this->cronRun(); + $this->drupalGet('admin/reports/dblog'); + $this->assertText(t('Cron run completed'), 'Log shows cron run completed'); + } + + /** + * Tests that all the numbers can be searched. + */ + function testNumberSearching() { + $types = array_keys($this->numbers); + + foreach ($types as $type) { + $number = $this->numbers[$type]; + // If the number is negative, remove the - sign, because - indicates + // "not keyword" when searching. + $number = ltrim($number, '-'); + $node = $this->nodes[$type]; + + // Verify that the node title does not appear on the search page + // with a dummy search. + $this->drupalPost('search/node', + array('keys' => 'foo'), + t('Search')); + $this->assertNoText($node->title, $type . ': node title not shown in dummy search'); + + // Verify that the node title does appear as a link on the search page + // when searching for the number. + $this->drupalPost('search/node', + array('keys' => $number), + t('Search')); + $this->assertText($node->title, format_string('%type: node title shown (search found the node) in search for number %number.', array('%type' => $type, '%number' => $number))); + } + } +} + +/** + * Tests that numbers can be searched, with more complex matching. + */ +class SearchNumberMatchingTestCase extends DrupalWebTestCase { + protected $test_user; + protected $numbers; + protected $nodes; + + public static function getInfo() { + return array( + 'name' => 'Search number matching', + 'description' => 'Check that numbers can be searched with more complex matching', + 'group' => 'Search', + ); + } + + function setUp() { + parent::setUp('search'); + + $this->test_user = $this->drupalCreateUser(array('search content', 'access content', 'administer nodes', 'access site reports')); + $this->drupalLogin($this->test_user); + + // Define a group of numbers that should all match each other -- + // numbers with internal punctuation should match each other, as well + // as numbers with and without leading zeros and leading/trailing + // . and -. + $this->numbers = array( + '123456789', + '12/34/56789', + '12.3456789', + '12-34-56789', + '123,456,789', + '-123456789', + '0123456789', + ); + + foreach ($this->numbers as $num) { + $info = array( + 'body' => array(LANGUAGE_NONE => array(array('value' => $num))), + 'type' => 'page', + 'language' => LANGUAGE_NONE, + ); + $this->nodes[] = $this->drupalCreateNode($info); + } + + // Run cron to ensure the content is indexed. + $this->cronRun(); + $this->drupalGet('admin/reports/dblog'); + $this->assertText(t('Cron run completed'), 'Log shows cron run completed'); + } + + /** + * Tests that all the numbers can be searched. + */ + function testNumberSearching() { + for ($i = 0; $i < count($this->numbers); $i++) { + $node = $this->nodes[$i]; + + // Verify that the node title does not appear on the search page + // with a dummy search. + $this->drupalPost('search/node', + array('keys' => 'foo'), + t('Search')); + $this->assertNoText($node->title, format_string('%number: node title not shown in dummy search', array('%number' => $i))); + + // Now verify that we can find node i by searching for any of the + // numbers. + for ($j = 0; $j < count($this->numbers); $j++) { + $number = $this->numbers[$j]; + // If the number is negative, remove the - sign, because - indicates + // "not keyword" when searching. + $number = ltrim($number, '-'); + + $this->drupalPost('search/node', + array('keys' => $number), + t('Search')); + $this->assertText($node->title, format_string('%i: node title shown (search found the node) in search for number %number', array('%i' => $i, '%number' => $number))); + } + } + + } +} + +/** + * Test config page. + */ +class SearchConfigSettingsForm extends DrupalWebTestCase { + public $search_user; + public $search_node; + + public static function getInfo() { + return array( + 'name' => 'Config settings form', + 'description' => 'Verify the search config settings form.', + 'group' => 'Search', + ); + } + + function setUp() { + parent::setUp('search', 'search_extra_type'); + + // Login as a user that can create and search content. + $this->search_user = $this->drupalCreateUser(array('search content', 'administer search', 'administer nodes', 'bypass node access', 'access user profiles', 'administer users', 'administer blocks')); + $this->drupalLogin($this->search_user); + + // Add a single piece of content and index it. + $node = $this->drupalCreateNode(); + $this->search_node = $node; + // Link the node to itself to test that it's only indexed once. The content + // also needs the word "pizza" so we can use it as the search keyword. + $langcode = LANGUAGE_NONE; + $body_key = "body[$langcode][0][value]"; + $edit[$body_key] = l($node->title, 'node/' . $node->nid) . ' pizza sandwich'; + $this->drupalPost('node/' . $node->nid . '/edit', $edit, t('Save')); + + node_update_index(); + search_update_totals(); + + // Enable the search block. + $edit = array(); + $edit['blocks[search_form][region]'] = 'content'; + $this->drupalPost('admin/structure/block', $edit, t('Save blocks')); + } + + /** + * Verify the search settings form. + */ + function testSearchSettingsPage() { + + // Test that the settings form displays the correct count of items left to index. + $this->drupalGet('admin/config/search/settings'); + $this->assertText(t('There are @count items left to index.', array('@count' => 0))); + + // Test the re-index button. + $this->drupalPost('admin/config/search/settings', array(), t('Re-index site')); + $this->assertText(t('Are you sure you want to re-index the site')); + $this->drupalPost('admin/config/search/settings/reindex', array(), t('Re-index site')); + $this->assertText(t('The index will be rebuilt')); + $this->drupalGet('admin/config/search/settings'); + $this->assertText(t('There is 1 item left to index.')); + + // Test that the form saves with the default values. + $this->drupalPost('admin/config/search/settings', array(), t('Save configuration')); + $this->assertText(t('The configuration options have been saved.'), 'Form saves with the default values.'); + + // Test that the form does not save with an invalid word length. + $edit = array( + 'minimum_word_size' => $this->randomName(3), + ); + $this->drupalPost('admin/config/search/settings', $edit, t('Save configuration')); + $this->assertNoText(t('The configuration options have been saved.'), 'Form does not save with an invalid word length.'); + } + + /** + * Verify that you can disable individual search modules. + */ + function testSearchModuleDisabling() { + // Array of search modules to test: 'path' is the search path, 'title' is + // the tab title, 'keys' are the keywords to search for, and 'text' is + // the text to assert is on the results page. + $module_info = array( + 'node' => array( + 'path' => 'node', + 'title' => 'Content', + 'keys' => 'pizza', + 'text' => $this->search_node->title, + ), + 'user' => array( + 'path' => 'user', + 'title' => 'User', + 'keys' => $this->search_user->name, + 'text' => $this->search_user->mail, + ), + 'search_extra_type' => array( + 'path' => 'dummy_path', + 'title' => 'Dummy search type', + 'keys' => 'foo', + 'text' => 'Dummy search snippet to display', + ), + ); + $modules = array_keys($module_info); + + // Test each module if it's enabled as the only search module. + foreach ($modules as $module) { + // Enable the one module and disable other ones. + $info = $module_info[$module]; + $edit = array(); + foreach ($modules as $other) { + $edit['search_active_modules[' . $other . ']'] = (($other == $module) ? $module : FALSE); + } + $edit['search_default_module'] = $module; + $this->drupalPost('admin/config/search/settings', $edit, t('Save configuration')); + + // Run a search from the correct search URL. + $this->drupalGet('search/' . $info['path'] . '/' . $info['keys']); + $this->assertNoText('no results', $info['title'] . ' search found results'); + $this->assertText($info['text'], 'Correct search text found'); + + // Verify that other module search tab titles are not visible. + foreach ($modules as $other) { + if ($other != $module) { + $title = $module_info[$other]['title']; + $this->assertNoText($title, $title . ' search tab is not shown'); + } + } + + // Run a search from the search block on the node page. Verify you get + // to this module's search results page. + $terms = array('search_block_form' => $info['keys']); + $this->drupalPost('node', $terms, t('Search')); + $this->assertEqual( + $this->getURL(), + url('search/' . $info['path'] . '/' . $info['keys'], array('absolute' => TRUE)), + 'Block redirected to right search page'); + + // Try an invalid search path. Should redirect to our active module. + $this->drupalGet('search/not_a_module_path'); + $this->assertEqual( + $this->getURL(), + url('search/' . $info['path'], array('absolute' => TRUE)), + 'Invalid search path redirected to default search page'); + } + + // Test with all search modules enabled. When you go to the search + // page or run search, all modules should be shown. + $edit = array(); + foreach ($modules as $module) { + $edit['search_active_modules[' . $module . ']'] = $module; + } + $edit['search_default_module'] = 'node'; + + $this->drupalPost('admin/config/search/settings', $edit, t('Save configuration')); + + foreach (array('search/node/pizza', 'search/node') as $path) { + $this->drupalGet($path); + foreach ($modules as $module) { + $title = $module_info[$module]['title']; + $this->assertText($title, format_string('%title search tab is shown', array('%title' => $title))); + } + } + } +} + +/** + * Tests the search_excerpt() function. + */ +class SearchExcerptTestCase extends DrupalWebTestCase { + public static function getInfo() { + return array( + 'name' => 'Search excerpt extraction', + 'description' => 'Tests that the search_excerpt() function works.', + 'group' => 'Search', + ); + } + + function setUp() { + parent::setUp('search'); + } + + /** + * Tests search_excerpt() with several simulated search keywords. + * + * Passes keywords and a sample marked up string, "The quick + * brown fox jumps over the lazy dog", and compares it to the + * correctly marked up string. The correctly marked up string + * contains either highlighted keywords or the original marked + * up string if no keywords matched the string. + */ + function testSearchExcerpt() { + // Make some text with entities and tags. + $text = 'The quick brown fox & jumps

    over

    the lazy dog'; + // Note: The search_excerpt() function adds some extra spaces -- not + // important for HTML formatting. Remove these for comparison. + $expected = 'The quick brown fox & jumps over the lazy dog'; + $result = preg_replace('| +|', ' ', search_excerpt('nothing', $text)); + $this->assertEqual(preg_replace('| +|', ' ', $result), $expected, 'Entire string is returned when keyword is not found in short string'); + + $result = preg_replace('| +|', ' ', search_excerpt('fox', $text)); + $this->assertEqual($result, 'The quick brown fox & jumps over the lazy dog ...', 'Found keyword is highlighted'); + + $longtext = str_repeat($text . ' ', 10); + $result = preg_replace('| +|', ' ', search_excerpt('nothing', $longtext)); + $this->assertTrue(strpos($result, $expected) === 0, 'When keyword is not found in long string, return value starts as expected'); + + $entities = str_repeat('készítése ', 20); + $result = preg_replace('| +|', ' ', search_excerpt('nothing', $entities)); + $this->assertFalse(strpos($result, '&'), 'Entities are not present in excerpt'); + $this->assertTrue(strpos($result, 'í') > 0, 'Entities are converted in excerpt'); + + // The node body that will produce this rendered $text is: + // 123456789 HTMLTest +123456789+‘ +‘ +‘ +‘ +12345678    +‘ +‘ +‘ ‘ + $text = "

    123456789 HTMLTest +123456789+‘ +‘ +‘ +‘ +12345678    +‘ +‘ +‘ ‘

    \n
    "; + $result = search_excerpt('HTMLTest', $text); + $this->assertFalse(empty($result), 'Rendered Multi-byte HTML encodings are not corrupted in search excerpts'); + } + + /** + * Tests search_excerpt() with search keywords matching simplified words. + * + * Excerpting should handle keywords that are matched only after going through + * search_simplify(). This test passes keywords that match simplified words + * and compares them with strings that contain the original unsimplified word. + */ + function testSearchExcerptSimplified() { + $lorem1 = 'Lorem ipsum dolor sit amet, consectetur adipiscing elit. Etiam vitae arcu at leo cursus laoreet. Curabitur dui tortor, adipiscing malesuada tempor in, bibendum ac diam. Cras non tellus a libero pellentesque condimentum. What is a Drupalism? Suspendisse ac lacus libero. Ut non est vel nisl faucibus interdum nec sed leo. Pellentesque sem risus, vulputate eu semper eget, auctor in libero.'; + $lorem2 = 'Ut fermentum est vitae metus convallis scelerisque. Phasellus pellentesque rhoncus tellus, eu dignissim purus posuere id. Quisque eu fringilla ligula. Morbi ullamcorper, lorem et mattis egestas, tortor neque pretium velit, eget eleifend odio turpis eu purus. Donec vitae metus quis leo pretium tincidunt a pulvinar sem. Morbi adipiscing laoreet mauris vel placerat. Nullam elementum, nisl sit amet scelerisque malesuada, dolor nunc hendrerit quam, eu ultrices erat est in orci.'; + + // Make some text with some keywords that will get simplified. + $text = $lorem1 . ' Number: 123456.7890 Hyphenated: one-two abc,def ' . $lorem2; + // Note: The search_excerpt() function adds some extra spaces -- not + // important for HTML formatting. Remove these for comparison. + $result = preg_replace('| +|', ' ', search_excerpt('123456.7890', $text)); + $this->assertTrue(strpos($result, 'Number: 123456.7890') !== FALSE, 'Numeric keyword is highlighted with exact match'); + + $result = preg_replace('| +|', ' ', search_excerpt('1234567890', $text)); + $this->assertTrue(strpos($result, 'Number: 123456.7890') !== FALSE, 'Numeric keyword is highlighted with simplified match'); + + $result = preg_replace('| +|', ' ', search_excerpt('Number 1234567890', $text)); + $this->assertTrue(strpos($result, 'Number: 123456.7890') !== FALSE, 'Punctuated and numeric keyword is highlighted with simplified match'); + + $result = preg_replace('| +|', ' ', search_excerpt('"Number 1234567890"', $text)); + $this->assertTrue(strpos($result, 'Number: 123456.7890') !== FALSE, 'Phrase with punctuated and numeric keyword is highlighted with simplified match'); + + $result = preg_replace('| +|', ' ', search_excerpt('"Hyphenated onetwo"', $text)); + $this->assertTrue(strpos($result, 'Hyphenated: one-two') !== FALSE, 'Phrase with punctuated and hyphenated keyword is highlighted with simplified match'); + + $result = preg_replace('| +|', ' ', search_excerpt('"abc def"', $text)); + $this->assertTrue(strpos($result, 'abc,def') !== FALSE, 'Phrase with keyword simplified into two separate words is highlighted with simplified match'); + + // Test phrases with characters which are being truncated. + $result = preg_replace('| +|', ' ', search_excerpt('"ipsum _"', $text)); + $this->assertTrue(strpos($result, 'ipsum ') !== FALSE, 'Only valid part of the phrase is highlighted and invalid part containing "_" is ignored.'); + + $result = preg_replace('| +|', ' ', search_excerpt('"ipsum 0000"', $text)); + $this->assertTrue(strpos($result, 'ipsum ') !== FALSE, 'Only valid part of the phrase is highlighted and invalid part "0000" is ignored.'); + + // Test combination of the valid keyword and keyword containing only + // characters which are being truncated during simplification. + $result = preg_replace('| +|', ' ', search_excerpt('ipsum _', $text)); + $this->assertTrue(strpos($result, 'ipsum') !== FALSE, 'Only valid keyword is highlighted and invalid keyword "_" is ignored.'); + + $result = preg_replace('| +|', ' ', search_excerpt('ipsum 0000', $text)); + $this->assertTrue(strpos($result, 'ipsum') !== FALSE, 'Only valid keyword is highlighted and invalid keyword "0000" is ignored.'); + } +} + +/** + * Test the CJK tokenizer. + */ +class SearchTokenizerTestCase extends DrupalWebTestCase { + public static function getInfo() { + return array( + 'name' => 'CJK tokenizer', + 'description' => 'Check that CJK tokenizer works as intended.', + 'group' => 'Search', + ); + } + + function setUp() { + parent::setUp('search'); + } + + /** + * Verifies that strings of CJK characters are tokenized. + * + * The search_simplify() function does special things with numbers, symbols, + * and punctuation. So we only test that CJK characters that are not in these + * character classes are tokenized properly. See PREG_CLASS_CKJ for more + * information. + */ + function testTokenizer() { + // Set the minimum word size to 1 (to split all CJK characters) and make + // sure CJK tokenizing is turned on. + variable_set('minimum_word_size', 1); + variable_set('overlap_cjk', TRUE); + $this->refreshVariables(); + + // Create a string of CJK characters from various character ranges in + // the Unicode tables. + + // Beginnings of the character ranges. + $starts = array( + 'CJK unified' => 0x4e00, + 'CJK Ext A' => 0x3400, + 'CJK Compat' => 0xf900, + 'Hangul Jamo' => 0x1100, + 'Hangul Ext A' => 0xa960, + 'Hangul Ext B' => 0xd7b0, + 'Hangul Compat' => 0x3131, + 'Half non-punct 1' => 0xff21, + 'Half non-punct 2' => 0xff41, + 'Half non-punct 3' => 0xff66, + 'Hangul Syllables' => 0xac00, + 'Hiragana' => 0x3040, + 'Katakana' => 0x30a1, + 'Katakana Ext' => 0x31f0, + 'CJK Reserve 1' => 0x20000, + 'CJK Reserve 2' => 0x30000, + 'Bomofo' => 0x3100, + 'Bomofo Ext' => 0x31a0, + 'Lisu' => 0xa4d0, + 'Yi' => 0xa000, + ); + + // Ends of the character ranges. + $ends = array( + 'CJK unified' => 0x9fcf, + 'CJK Ext A' => 0x4dbf, + 'CJK Compat' => 0xfaff, + 'Hangul Jamo' => 0x11ff, + 'Hangul Ext A' => 0xa97f, + 'Hangul Ext B' => 0xd7ff, + 'Hangul Compat' => 0x318e, + 'Half non-punct 1' => 0xff3a, + 'Half non-punct 2' => 0xff5a, + 'Half non-punct 3' => 0xffdc, + 'Hangul Syllables' => 0xd7af, + 'Hiragana' => 0x309f, + 'Katakana' => 0x30ff, + 'Katakana Ext' => 0x31ff, + 'CJK Reserve 1' => 0x2fffd, + 'CJK Reserve 2' => 0x3fffd, + 'Bomofo' => 0x312f, + 'Bomofo Ext' => 0x31b7, + 'Lisu' => 0xa4fd, + 'Yi' => 0xa48f, + ); + + // Generate characters consisting of starts, midpoints, and ends. + $chars = array(); + $charcodes = array(); + foreach ($starts as $key => $value) { + $charcodes[] = $starts[$key]; + $chars[] = $this->code2utf($starts[$key]); + $mid = round(0.5 * ($starts[$key] + $ends[$key])); + $charcodes[] = $mid; + $chars[] = $this->code2utf($mid); + $charcodes[] = $ends[$key]; + $chars[] = $this->code2utf($ends[$key]); + } + + // Merge into a string and tokenize. + $string = implode('', $chars); + $out = trim(search_simplify($string)); + $expected = drupal_strtolower(implode(' ', $chars)); + + // Verify that the output matches what we expect. + $this->assertEqual($out, $expected, 'CJK tokenizer worked on all supplied CJK characters'); + } + + /** + * Verifies that strings of non-CJK characters are not tokenized. + * + * This is just a sanity check - it verifies that strings of letters are + * not tokenized. + */ + function testNoTokenizer() { + // Set the minimum word size to 1 (to split all CJK characters) and make + // sure CJK tokenizing is turned on. + variable_set('minimum_word_size', 1); + variable_set('overlap_cjk', TRUE); + $this->refreshVariables(); + + $letters = 'abcdefghijklmnopqrstuvwxyz'; + $out = trim(search_simplify($letters)); + + $this->assertEqual($letters, $out, 'Letters are not CJK tokenized'); + } + + /** + * Like PHP chr() function, but for unicode characters. + * + * chr() only works for ASCII characters up to character 255. This function + * converts a number to the corresponding unicode character. Adapted from + * functions supplied in comments on several functions on php.net. + */ + function code2utf($num) { + if ($num < 128) { + return chr($num); + } + + if ($num < 2048) { + return chr(($num >> 6) + 192) . chr(($num & 63) + 128); + } + + if ($num < 65536) { + return chr(($num >> 12) + 224) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128); + } + + if ($num < 2097152) { + return chr(($num >> 18) + 240) . chr((($num >> 12) & 63) + 128) . chr((($num >> 6) & 63) + 128) . chr(($num & 63) + 128); + } + + return ''; + } +} + +/** + * Tests that we can embed a form in search results and submit it. + */ +class SearchEmbedForm extends DrupalWebTestCase { + /** + * Node used for testing. + */ + public $node; + + /** + * Count of how many times the form has been submitted. + */ + public $submit_count = 0; + + public static function getInfo() { + return array( + 'name' => 'Embedded forms', + 'description' => 'Verifies that a form embedded in search results works', + 'group' => 'Search', + ); + } + + function setUp() { + parent::setUp('search', 'search_embedded_form'); + + // Create a user and a node, and update the search index. + $test_user = $this->drupalCreateUser(array('access content', 'search content', 'administer nodes')); + $this->drupalLogin($test_user); + + $this->node = $this->drupalCreateNode(); + + node_update_index(); + search_update_totals(); + + // Set up a dummy initial count of times the form has been submitted. + $this->submit_count = 12; + variable_set('search_embedded_form_submitted', $this->submit_count); + $this->refreshVariables(); + } + + /** + * Tests that the embedded form appears and can be submitted. + */ + function testEmbeddedForm() { + // First verify we can submit the form from the module's page. + $this->drupalPost('search_embedded_form', + array('name' => 'John'), + t('Send away')); + $this->assertText(t('Test form was submitted'), 'Form message appears'); + $count = variable_get('search_embedded_form_submitted', 0); + $this->assertEqual($this->submit_count + 1, $count, 'Form submission count is correct'); + $this->submit_count = $count; + + // Now verify that we can see and submit the form from the search results. + $this->drupalGet('search/node/' . $this->node->title); + $this->assertText(t('Your name'), 'Form is visible'); + $this->drupalPost('search/node/' . $this->node->title, + array('name' => 'John'), + t('Send away')); + $this->assertText(t('Test form was submitted'), 'Form message appears'); + $count = variable_get('search_embedded_form_submitted', 0); + $this->assertEqual($this->submit_count + 1, $count, 'Form submission count is correct'); + $this->submit_count = $count; + + // Now verify that if we submit the search form, it doesn't count as + // our form being submitted. + $this->drupalPost('search', + array('keys' => 'foo'), + t('Search')); + $this->assertNoText(t('Test form was submitted'), 'Form message does not appear'); + $count = variable_get('search_embedded_form_submitted', 0); + $this->assertEqual($this->submit_count, $count, 'Form submission count is correct'); + $this->submit_count = $count; + } +} + +/** + * Tests that hook_search_page runs. + */ +class SearchPageOverride extends DrupalWebTestCase { + public $search_user; + + public static function getInfo() { + return array( + 'name' => 'Search page override', + 'description' => 'Verify that hook_search_page can override search page display.', + 'group' => 'Search', + ); + } + + function setUp() { + parent::setUp('search', 'search_extra_type'); + + // Login as a user that can create and search content. + $this->search_user = $this->drupalCreateUser(array('search content', 'administer search')); + $this->drupalLogin($this->search_user); + + // Enable the extra type module for searching. + variable_set('search_active_modules', array('node' => 'node', 'user' => 'user', 'search_extra_type' => 'search_extra_type')); + menu_rebuild(); + } + + function testSearchPageHook() { + $keys = 'bike shed ' . $this->randomName(); + $this->drupalGet("search/dummy_path/{$keys}"); + $this->assertText('Dummy search snippet', 'Dummy search snippet is shown'); + $this->assertText('Test page text is here', 'Page override is working'); + } +} + +/** + * Test node search with multiple languages. + */ +class SearchLanguageTestCase extends DrupalWebTestCase { + public static function getInfo() { + return array( + 'name' => 'Search language selection', + 'description' => 'Tests advanced search with different languages enabled.', + 'group' => 'Search', + ); + } + + /** + * Implementation setUp(). + */ + function setUp() { + parent::setUp('search', 'locale'); + + // Create and login user. + $test_user = $this->drupalCreateUser(array('access content', 'search content', 'use advanced search', 'administer nodes', 'administer languages', 'access administration pages')); + $this->drupalLogin($test_user); + } + + function testLanguages() { + // Check that there are initially no languages displayed. + $this->drupalGet('search/node'); + $this->assertNoText(t('Languages'), 'No languages to choose from.'); + + // Add predefined language. + $edit = array('langcode' => 'fr'); + $this->drupalPost('admin/config/regional/language/add', $edit, t('Add language')); + $this->assertText('fr', 'Language added successfully.'); + + // Now we should have languages displayed. + $this->drupalGet('search/node'); + $this->assertText(t('Languages'), 'Languages displayed to choose from.'); + $this->assertText(t('English'), 'English is a possible choice.'); + $this->assertText(t('French'), 'French is a possible choice.'); + + // Ensure selecting no language does not make the query different. + $this->drupalPost('search/node', array(), t('Advanced search')); + $this->assertEqual($this->getUrl(), url('search/node/', array('absolute' => TRUE)), 'Correct page redirection, no language filtering.'); + + // Pick French and ensure it is selected. + $edit = array('language[fr]' => TRUE); + $this->drupalPost('search/node', $edit, t('Advanced search')); + $this->assertFieldByXPath('//input[@name="keys"]', 'language:fr', 'Language filter added to query.'); + + // Change the default language and disable English. + $path = 'admin/config/regional/language'; + $this->drupalGet($path); + $this->assertFieldChecked('edit-site-default-en', 'English is the default language.'); + $edit = array('site_default' => 'fr'); + $this->drupalPost(NULL, $edit, t('Save configuration')); + $this->assertNoFieldChecked('edit-site-default-en', 'Default language updated.'); + $edit = array('enabled[en]' => FALSE); + $this->drupalPost('admin/config/regional/language', $edit, t('Save configuration')); + $this->assertNoFieldChecked('edit-enabled-en', 'Language disabled.'); + + // Check that there are again no languages displayed. + $this->drupalGet('search/node'); + $this->assertNoText(t('Languages'), 'No languages to choose from.'); + } +} + +/** + * Tests node search with node access control. + */ +class SearchNodeAccessTest extends DrupalWebTestCase { + public $test_user; + + public static function getInfo() { + return array( + 'name' => 'Search and node access', + 'description' => 'Tests search functionality with node access control.', + 'group' => 'Search', + ); + } + + function setUp() { + parent::setUp('search', 'node_access_test'); + node_access_rebuild(); + + // Create a test user and log in. + $this->test_user = $this->drupalCreateUser(array('access content', 'search content', 'use advanced search')); + $this->drupalLogin($this->test_user); + } + + /** + * Tests that search returns results with punctuation in the search phrase. + */ + function testPhraseSearchPunctuation() { + $node = $this->drupalCreateNode(array('body' => array(LANGUAGE_NONE => array(array('value' => "The bunny's ears were fuzzy."))))); + + // Update the search index. + module_invoke_all('update_index'); + search_update_totals(); + + // Refresh variables after the treatment. + $this->refreshVariables(); + + // Submit a phrase wrapped in double quotes to include the punctuation. + $edit = array('keys' => '"bunny\'s"'); + $this->drupalPost('search/node', $edit, t('Search')); + $this->assertText($node->title); + } +} + +/** + * Tests searching with locale values set. + */ +class SearchSetLocaleTest extends DrupalWebTestCase { + + public static function getInfo() { + return array( + 'name' => 'Search with numeric locale set', + 'description' => 'Check that search works with numeric locale settings', + 'group' => 'Search', + ); + } + + function setUp() { + parent::setUp('search'); + + // Create a simple node so something will be put in the index. + $info = array( + 'body' => array(LANGUAGE_NONE => array(array('value' => 'Tapir'))), + ); + $this->drupalCreateNode($info); + + // Run cron to index. + $this->cronRun(); + } + + /** + * Verify that search works with a numeric locale set. + */ + public function testSearchWithNumericLocale() { + // French decimal point is comma. + setlocale(LC_NUMERIC, 'fr_FR'); + + // An exception will be thrown if a float in the wrong format occurs in the + // query to the database, so an assertion is not necessary here. + db_select('search_index', 'i') + ->extend('searchquery') + ->searchexpression('tapir', 'node') + ->execute(); + } +} diff --git a/drupal-dev/modules/search/tests/UnicodeTest.txt b/drupal-dev/modules/search/tests/UnicodeTest.txt new file mode 100644 index 0000000..af8a65c --- /dev/null +++ b/drupal-dev/modules/search/tests/UnicodeTest.txt @@ -0,0 +1,333 @@ + + !"#$%&'()*+,-./ +0123456789 +:;<=>?@ +ABCDEFGHIJKLMNOPQRSTUVWXYZ +[\]^_` +abcdefghijklmnopqrstuvwxyz +{|}~€‚ƒ„…†‡ˆ‰Š‹ŒŽ‘’“”•–—˜™š›œžŸ ¡¢£¤¥¦§¨© +ª +«¬­®¯°± +²³ +´ +µ +¶·¸ +¹º +» +¼½¾ +¿ +ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖ +× +ØÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö +÷ +øùúûüýþÿĀāĂ㥹ĆćĈĉĊċČčĎďĐđĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħĨĩĪīĬĭĮįİıIJijĴĵĶķĸĹĺĻļĽľĿŀŁłŃńŅņŇňʼnŊŋŌōŎŏŐőŒœŔŕŖŗŘřŚśŜŝŞşŠšŢţŤťŦŧŨũŪūŬŭŮůŰűŲųŴŵŶŷŸŹźŻżŽžſƀƁƂƃƄƅƆƇƈƉƊƋƌƍƎƏƐƑƒƓƔƕƖƗƘƙƚƛƜƝƞƟƠơƢƣƤƥƦƧƨƩƪƫƬƭƮƯưƱƲƳƴƵƶƷƸƹƺƻƼƽƾƿǀǁǂǃDŽDždžLJLjljNJNjnjǍǎǏǐǑǒǓǔǕǖǗǘǙǚǛǜǝǞǟǠǡǢǣǤǥǦǧǨǩǪǫǬǭǮǯǰDZDzdzǴǵǶǷǸǹǺǻǼǽǾǿȀȁȂȃȄȅȆȇȈȉȊȋȌȍȎȏȐȑȒȓȔȕȖȗȘșȚțȜȝȞȟȠȡȢȣȤȥȦȧȨȩȪȫȬȭȮȯȰȱȲȳȴȵȶȷȸȹȺȻȼȽȾȿɀɁɂɃɄɅɆɇɈɉɊɋɌɍɎɏɐɑɒɓɔɕɖɗɘəɚɛɜɝɞɟɠɡɢɣɤɥɦɧɨɩɪɫɬɭɮɯɰɱɲɳɴɵɶɷɸɹɺɻɼɽɾɿʀʁʂʃʄʅʆʇʈʉʊʋʌʍʎʏʐʑʒʓʔʕʖʗʘʙʚʛʜʝʞʟʠʡʢʣʤʥʦʧʨʩʪʫʬʭʮʯʰʱʲʳʴʵʶʷʸʹʺʻʼʽʾʿˀˁ +˂˃˄˅ +ˆˇˈˉˊˋˌˍˎˏːˑ +˒˓˔˕˖˗˘˙˚˛˜˝˞˟ +ˠˡˢˣˤ +˥˦˧˨˩˪˫ +ˬ +˭ +ˮ +˯˰˱˲˳˴˵˶˷˸˹˺˻˼˽˾˿ +̴̵̶̷̸̡̢̧̨̛̖̗̘̙̜̝̞̟̠̣̤̥̦̩̪̫̬̭̮̯̰̱̲̳̹̺̻̼͇͈͉͍͎̀́̂̃̄̅̆̇̈̉̊̋̌̍̎̏̐̑̒̓̔̽̾̿̀́͂̓̈́͆͊͋͌̕̚ͅ͏͓͔͕͖͙͚͐͑͒͗͛ͣͤͥͦͧͨͩͪͫͬͭͮͯ͘͜͟͢͝͞͠͡ͰͱͲͳʹ +͵ +Ͷͷͺͻͼͽ +;΄΅ +Ά +· +ΈΉΊΌΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώϏϐϑϒϓϔϕϖϗϘϙϚϛϜϝϞϟϠϡϢϣϤϥϦϧϨϩϪϫϬϭϮϯϰϱϲϳϴϵ +϶ +ϷϸϹϺϻϼϽϾϿЀЁЂЃЄЅІЇЈЉЊЋЌЍЎЏАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюяѐёђѓєѕіїјљњћќѝўџѠѡѢѣѤѥѦѧѨѩѪѫѬѭѮѯѰѱѲѳѴѵѶѷѸѹѺѻѼѽѾѿҀҁ +҂ +҃҄҅҆҇҈҉ҊҋҌҍҎҏҐґҒғҔҕҖҗҘҙҚқҜҝҞҟҠҡҢңҤҥҦҧҨҩҪҫҬҭҮүҰұҲҳҴҵҶҷҸҹҺһҼҽҾҿӀӁӂӃӄӅӆӇӈӉӊӋӌӍӎӏӐӑӒӓӔӕӖӗӘәӚӛӜӝӞӟӠӡӢӣӤӥӦӧӨөӪӫӬӭӮӯӰӱӲӳӴӵӶӷӸӹӺӻӼӽӾӿԀԁԂԃԄԅԆԇԈԉԊԋԌԍԎԏԐԑԒԓԔԕԖԗԘԙԚԛԜԝԞԟԠԡԢԣԤԥԱԲԳԴԵԶԷԸԹԺԻԼԽԾԿՀՁՂՃՄՅՆՇՈՉՊՋՌՍՎՏՐՑՒՓՔՕՖՙ +՚՛՜՝՞՟ +աբգդեզէըթժիլխծկհձղճմյնշոչպջռսվտրցւփքօֆև +։֊ +ְֱֲֳִֵֶַָֹֺֻּֽ֑֖֛֢֣֤֥֦֧֪֚֭֮֒֓֔֕֗֘֙֜֝֞֟֠֡֨֩֫֬֯ +־ +ֿ +׀ +ׁׂ +׃ +ׅׄ +׆ +ׇאבגדהוזחטיךכלםמןנסעףפץצקרשתװױײ +׳״؀؁؂؃؆؇؈؉؊؋،؍؎؏ +ؘؙؚؐؑؒؓؔؕؖؗ +؛؞؟ +ءآأؤإئابةتثجحخدذرزسشصضطظعغػؼؽؾؿـفقكلمنهوىيًٌٍَُِّْٕٖٜٓٔٗ٘ٙٚٛٝٞ٠١٢٣٤٥٦٧٨٩ +٪٫٬٭ +ٮٯٰٱٲٳٴٵٶٷٸٹٺٻټٽپٿڀځڂڃڄڅچڇڈډڊڋڌڍڎڏڐڑڒړڔڕږڗژڙښڛڜڝڞڟڠڡڢڣڤڥڦڧڨکڪګڬڭڮگڰڱڲڳڴڵڶڷڸڹںڻڼڽھڿۀہۂۃۄۅۆۇۈۉۊۋیۍێۏېۑےۓ +۔ +ەۖۗۘۙۚۛۜ +۝ +۞ۣ۟۠ۡۢۤۥۦۧۨ +۩ +۪ۭ۫۬ۮۯ۰۱۲۳۴۵۶۷۸۹ۺۻۼ +۽۾ +ۿ +܀܁܂܃܄܅܆܇܈܉܊܋܌܍܏ +ܐܑܒܓܔܕܖܗܘܙܚܛܜܝܞܟܠܡܢܣܤܥܦܧܨܩܪܫܬܭܮܯܱܴܷܸܹܻܼܾ݂݄݆݈ܰܲܳܵܶܺܽܿ݀݁݃݅݇݉݊ݍݎݏݐݑݒݓݔݕݖݗݘݙݚݛݜݝݞݟݠݡݢݣݤݥݦݧݨݩݪݫݬݭݮݯݰݱݲݳݴݵݶݷݸݹݺݻݼݽݾݿހށނރބޅކއވމފދތލގޏސޑޒޓޔޕޖޗޘޙޚޛޜޝޞޟޠޡޢޣޤޥަާިީުޫެޭޮޯްޱ߀߁߂߃߄߅߆߇߈߉ߊߋߌߍߎߏߐߑߒߓߔߕߖߗߘߙߚߛߜߝߞߟߠߡߢߣߤߥߦߧߨߩߪ߲߫߬߭߮߯߰߱߳ߴߵ +߶߷߸߹ +ߺࠀࠁࠂࠃࠄࠅࠆࠇࠈࠉࠊࠋࠌࠍࠎࠏࠐࠑࠒࠓࠔࠕࠖࠗ࠘࠙ࠚࠛࠜࠝࠞࠟࠠࠡࠢࠣࠤࠥࠦࠧࠨࠩࠪࠫࠬ࠭ +࠰࠱࠲࠳࠴࠵࠶࠷࠸࠹࠺࠻࠼࠽࠾ +ऀँंःऄअआइईउऊऋऌऍऎएऐऑऒओऔकखगघङचछजझञटठडढणतथदधनऩपफबभमयरऱलळऴवशषसह़ऽािीुूृॄॅॆेैॉॊोौ्ॎॐ॒॑॓॔ॕक़ख़ग़ज़ड़ढ़फ़य़ॠॡॢॣ +।॥ +०१२३४५६७८९ +॰ +ॱॲॹॺॻॼॽॾॿঁংঃঅআইঈউঊঋঌএঐওঔকখগঘঙচছজঝঞটঠডঢণতথদধনপফবভমযরলশষসহ়ঽািীুূৃৄেৈোৌ্ৎৗড়ঢ়য়ৠৡৢৣ০১২৩৪৫৬৭৮৯ৰৱ +৲৳ +৴৵৶৷৸৹ +৺৻ +ਁਂਃਅਆਇਈਉਊਏਐਓਔਕਖਗਘਙਚਛਜਝਞਟਠਡਢਣਤਥਦਧਨਪਫਬਭਮਯਰਲਲ਼ਵਸ਼ਸਹ਼ਾਿੀੁੂੇੈੋੌ੍ੑਖ਼ਗ਼ਜ਼ੜਫ਼੦੧੨੩੪੫੬੭੮੯ੰੱੲੳੴੵઁંઃઅઆઇઈઉઊઋઌઍએઐઑઓઔકખગઘઙચછજઝઞટઠડઢણતથદધનપફબભમયરલળવશષસહ઼ઽાિીુૂૃૄૅેૈૉોૌ્ૐૠૡૢૣ૦૧૨૩૪૫૬૭૮૯ +૱ +ଁଂଃଅଆଇଈଉଊଋଌଏଐଓଔକଖଗଘଙଚଛଜଝଞଟଠଡଢଣତଥଦଧନପଫବଭମଯରଲଳଵଶଷସହ଼ଽାିୀୁୂୃୄେୈୋୌ୍ୖୗଡ଼ଢ଼ୟୠୡୢୣ୦୧୨୩୪୫୬୭୮୯ +୰ +ୱஂஃஅஆஇஈஉஊஎஏஐஒஓஔகஙசஜஞடணதநனபமயரறலளழவஶஷஸஹாிீுூெேைொோௌ்ௐௗ௦௧௨௩௪௫௬௭௮௯௰௱௲ +௳௴௵௶௷௸௹௺ +ఁంఃఅఆఇఈఉఊఋఌఎఏఐఒఓఔకఖగఘఙచఛజఝఞటఠడఢణతథదధనపఫబభమయరఱలళవశషసహఽాిీుూృౄెేైొోౌ్ౕౖౘౙౠౡౢౣ౦౧౨౩౪౫౬౭౮౯౸౹౺౻౼౽౾ +౿ +ಂಃಅಆಇಈಉಊಋಌಎಏಐಒಓಔಕಖಗಘಙಚಛಜಝಞಟಠಡಢಣತಥದಧನಪಫಬಭಮಯರಱಲಳವಶಷಸಹ಼ಽಾಿೀುೂೃೄೆೇೈೊೋೌ್ೕೖೞೠೡೢೣ೦೧೨೩೪೫೬೭೮೯ +ೱೲ +ംഃഅആഇഈഉഊഋഌഎഏഐഒഓഔകഖഗഘങചഛജഝഞടഠഡഢണതഥദധനപഫബഭമയരറലളഴവശഷസഹഽാിീുൂൃൄെേൈൊോൌ്ൗൠൡൢൣ൦൧൨൩൪൫൬൭൮൯൰൱൲൳൴൵ +൹ +ൺൻർൽൾൿංඃඅආඇඈඉඊඋඌඍඎඏඐඑඒඓඔඕඖකඛගඝඞඟචඡජඣඤඥඦටඨඩඪණඬතථදධනඳපඵබභමඹයරලවශෂසහළෆ්ාැෑිීුූෘෙේෛොෝෞෟෲෳ +෴ +กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู +฿ +เแโใไๅๆ็่้๊๋์ํ๎ +๏ +๐๑๒๓๔๕๖๗๘๙ +๚๛ +ກຂຄງຈຊຍດຕຖທນບປຜຝພຟມຢຣລວສຫອຮຯະັາຳິີຶືຸູົຼຽເແໂໃໄໆ່້໊໋໌ໍ໐໑໒໓໔໕໖໗໘໙ໜໝༀ +༁༂༃༄༅༆༇༈༉༊་༌།༎༏༐༑༒༓༔༕༖༗ +༘༙ +༚༛༜༝༞༟ +༠༡༢༣༤༥༦༧༨༩༪༫༬༭༮༯༰༱༲༳ +༴ +༵ +༶ +༷ +༸ +༹ +༺༻༼༽ +༾༿ཀཁགགྷངཅཆཇཉཊཋཌཌྷཎཏཐདདྷནཔཕབབྷམཙཚཛཛྷཝཞཟའཡརལཤཥསཧཨཀྵཪཫཬཱཱཱིིུུྲྀཷླྀཹེཻོཽཾཿ྄ཱྀྀྂྃ +྅ +྆྇ྈྉྊྋྐྑྒྒྷྔྕྖྗྙྚྛྜྜྷྞྟྠྡྡྷྣྤྥྦྦྷྨྩྪྫྫྷྭྮྯྰྱྲླྴྵྶྷྸྐྵྺྻྼ +྾྿࿀࿁࿂࿃࿄࿅ +࿆ +࿇࿈࿉࿊࿋࿌࿎࿏࿐࿑࿒࿓࿔࿕࿖࿗࿘ +ကခဂဃငစဆဇဈဉညဋဌဍဎဏတထဒဓနပဖဗဘမယရလဝသဟဠအဢဣဤဥဦဧဨဩဪါာိီုူေဲဳဴဵံ့း္်ျြွှဿ၀၁၂၃၄၅၆၇၈၉ +၊။၌၍၎၏ +ၐၑၒၓၔၕၖၗၘၙၚၛၜၝၞၟၠၡၢၣၤၥၦၧၨၩၪၫၬၭၮၯၰၱၲၳၴၵၶၷၸၹၺၻၼၽၾၿႀႁႂႃႄႅႆႇႈႉႊႋႌႍႎႏ႐႑႒႓႔႕႖႗႘႙ႚႛႜႝ +႞႟ +ႠႡႢႣႤႥႦႧႨႩႪႫႬႭႮႯႰႱႲႳႴႵႶႷႸႹႺႻႼႽႾႿჀჁჂჃჄჅაბგდევზთიკლმნოპჟრსტუფქღყშჩცძწჭხჯჰჱჲჳჴჵჶჷჸჹჺ +჻ +ჼᄀᄁᄂᄃᄄᄅᄆᄇᄈᄉᄊᄋᄌᄍᄎᄏᄐᄑᄒᄓᄔᄕᄖᄗᄘᄙᄚᄛᄜᄝᄞᄟᄠᄡᄢᄣᄤᄥᄦᄧᄨᄩᄪᄫᄬᄭᄮᄯᄰᄱᄲᄳᄴᄵᄶᄷᄸᄹᄺᄻᄼᄽᄾᄿᅀᅁᅂᅃᅄᅅᅆᅇᅈᅉᅊᅋᅌᅍᅎᅏᅐᅑᅒᅓᅔᅕᅖᅗᅘᅙᅚᅛᅜᅝᅞᅟᅠᅡᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵᅶᅷᅸᅹᅺᅻᅼᅽᅾᅿᆀᆁᆂᆃᆄᆅᆆᆇᆈᆉᆊᆋᆌᆍᆎᆏᆐᆑᆒᆓᆔᆕᆖᆗᆘᆙᆚᆛᆜᆝᆞᆟᆠᆡᆢᆣᆤᆥᆦᆧᆨᆩᆪᆫᆬᆭᆮᆯᆰᆱᆲᆳᆴᆵᆶᆷᆸᆹᆺᆻᆼᆽᆾᆿᇀᇁᇂᇃᇄᇅᇆᇇᇈᇉᇊᇋᇌᇍᇎᇏᇐᇑᇒᇓᇔᇕᇖᇗᇘᇙᇚᇛᇜᇝᇞᇟᇠᇡᇢᇣᇤᇥᇦᇧᇨᇩᇪᇫᇬᇭᇮᇯᇰᇱᇲᇳᇴᇵᇶᇷᇸᇹᇺᇻᇼᇽᇾᇿሀሁሂሃሄህሆሇለሉሊላሌልሎሏሐሑሒሓሔሕሖሗመሙሚማሜምሞሟሠሡሢሣሤሥሦሧረሩሪራሬርሮሯሰሱሲሳሴስሶሷሸሹሺሻሼሽሾሿቀቁቂቃቄቅቆቇቈቊቋቌቍቐቑቒቓቔቕቖቘቚቛቜቝበቡቢባቤብቦቧቨቩቪቫቬቭቮቯተቱቲታቴትቶቷቸቹቺቻቼችቾቿኀኁኂኃኄኅኆኇኈኊኋኌኍነኑኒናኔንኖኗኘኙኚኛኜኝኞኟአኡኢኣኤእኦኧከኩኪካኬክኮኯኰኲኳኴኵኸኹኺኻኼኽኾዀዂዃዄዅወዉዊዋዌውዎዏዐዑዒዓዔዕዖዘዙዚዛዜዝዞዟዠዡዢዣዤዥዦዧየዩዪያዬይዮዯደዱዲዳዴድዶዷዸዹዺዻዼዽዾዿጀጁጂጃጄጅጆጇገጉጊጋጌግጎጏጐጒጓጔጕጘጙጚጛጜጝጞጟጠጡጢጣጤጥጦጧጨጩጪጫጬጭጮጯጰጱጲጳጴጵጶጷጸጹጺጻጼጽጾጿፀፁፂፃፄፅፆፇፈፉፊፋፌፍፎፏፐፑፒፓፔፕፖፗፘፙፚ፟ +፠፡።፣፤፥፦፧፨ +፩፪፫፬፭፮፯፰፱፲፳፴፵፶፷፸፹፺፻፼ᎀᎁᎂᎃᎄᎅᎆᎇᎈᎉᎊᎋᎌᎍᎎᎏ +᎐᎑᎒᎓᎔᎕᎖᎗᎘᎙ +ᎠᎡᎢᎣᎤᎥᎦᎧᎨᎩᎪᎫᎬᎭᎮᎯᎰᎱᎲᎳᎴᎵᎶᎷᎸᎹᎺᎻᎼᎽᎾᎿᏀᏁᏂᏃᏄᏅᏆᏇᏈᏉᏊᏋᏌᏍᏎᏏᏐᏑᏒᏓᏔᏕᏖᏗᏘᏙᏚᏛᏜᏝᏞᏟᏠᏡᏢᏣᏤᏥᏦᏧᏨᏩᏪᏫᏬᏭᏮᏯᏰᏱᏲᏳᏴ +᐀ +ᐁᐂᐃᐄᐅᐆᐇᐈᐉᐊᐋᐌᐍᐎᐏᐐᐑᐒᐓᐔᐕᐖᐗᐘᐙᐚᐛᐜᐝᐞᐟᐠᐡᐢᐣᐤᐥᐦᐧᐨᐩᐪᐫᐬᐭᐮᐯᐰᐱᐲᐳᐴᐵᐶᐷᐸᐹᐺᐻᐼᐽᐾᐿᑀᑁᑂᑃᑄᑅᑆᑇᑈᑉᑊᑋᑌᑍᑎᑏᑐᑑᑒᑓᑔᑕᑖᑗᑘᑙᑚᑛᑜᑝᑞᑟᑠᑡᑢᑣᑤᑥᑦᑧᑨᑩᑪᑫᑬᑭᑮᑯᑰᑱᑲᑳᑴᑵᑶᑷᑸᑹᑺᑻᑼᑽᑾᑿᒀᒁᒂᒃᒄᒅᒆᒇᒈᒉᒊᒋᒌᒍᒎᒏᒐᒑᒒᒓᒔᒕᒖᒗᒘᒙᒚᒛᒜᒝᒞᒟᒠᒡᒢᒣᒤᒥᒦᒧᒨᒩᒪᒫᒬᒭᒮᒯᒰᒱᒲᒳᒴᒵᒶᒷᒸᒹᒺᒻᒼᒽᒾᒿᓀᓁᓂᓃᓄᓅᓆᓇᓈᓉᓊᓋᓌᓍᓎᓏᓐᓑᓒᓓᓔᓕᓖᓗᓘᓙᓚᓛᓜᓝᓞᓟᓠᓡᓢᓣᓤᓥᓦᓧᓨᓩᓪᓫᓬᓭᓮᓯᓰᓱᓲᓳᓴᓵᓶᓷᓸᓹᓺᓻᓼᓽᓾᓿᔀᔁᔂᔃᔄᔅᔆᔇᔈᔉᔊᔋᔌᔍᔎᔏᔐᔑᔒᔓᔔᔕᔖᔗᔘᔙᔚᔛᔜᔝᔞᔟᔠᔡᔢᔣᔤᔥᔦᔧᔨᔩᔪᔫᔬᔭᔮᔯᔰᔱᔲᔳᔴᔵᔶᔷᔸᔹᔺᔻᔼᔽᔾᔿᕀᕁᕂᕃᕄᕅᕆᕇᕈᕉᕊᕋᕌᕍᕎᕏᕐᕑᕒᕓᕔᕕᕖᕗᕘᕙᕚᕛᕜᕝᕞᕟᕠᕡᕢᕣᕤᕥᕦᕧᕨᕩᕪᕫᕬᕭᕮᕯᕰᕱᕲᕳᕴᕵᕶᕷᕸᕹᕺᕻᕼᕽᕾᕿᖀᖁᖂᖃᖄᖅᖆᖇᖈᖉᖊᖋᖌᖍᖎᖏᖐᖑᖒᖓᖔᖕᖖᖗᖘᖙᖚᖛᖜᖝᖞᖟᖠᖡᖢᖣᖤᖥᖦᖧᖨᖩᖪᖫᖬᖭᖮᖯᖰᖱᖲᖳᖴᖵᖶᖷᖸᖹᖺᖻᖼᖽᖾᖿᗀᗁᗂᗃᗄᗅᗆᗇᗈᗉᗊᗋᗌᗍᗎᗏᗐᗑᗒᗓᗔᗕᗖᗗᗘᗙᗚᗛᗜᗝᗞᗟᗠᗡᗢᗣᗤᗥᗦᗧᗨᗩᗪᗫᗬᗭᗮᗯᗰᗱᗲᗳᗴᗵᗶᗷᗸᗹᗺᗻᗼᗽᗾᗿᘀᘁᘂᘃᘄᘅᘆᘇᘈᘉᘊᘋᘌᘍᘎᘏᘐᘑᘒᘓᘔᘕᘖᘗᘘᘙᘚᘛᘜᘝᘞᘟᘠᘡᘢᘣᘤᘥᘦᘧᘨᘩᘪᘫᘬᘭᘮᘯᘰᘱᘲᘳᘴᘵᘶᘷᘸᘹᘺᘻᘼᘽᘾᘿᙀᙁᙂᙃᙄᙅᙆᙇᙈᙉᙊᙋᙌᙍᙎᙏᙐᙑᙒᙓᙔᙕᙖᙗᙘᙙᙚᙛᙜᙝᙞᙟᙠᙡᙢᙣᙤᙥᙦᙧᙨᙩᙪᙫᙬ +᙭᙮ +ᙯᙰᙱᙲᙳᙴᙵᙶᙷᙸᙹᙺᙻᙼᙽᙾᙿ +  +ᚁᚂᚃᚄᚅᚆᚇᚈᚉᚊᚋᚌᚍᚎᚏᚐᚑᚒᚓᚔᚕᚖᚗᚘᚙᚚ +᚛᚜ +ᚠᚡᚢᚣᚤᚥᚦᚧᚨᚩᚪᚫᚬᚭᚮᚯᚰᚱᚲᚳᚴᚵᚶᚷᚸᚹᚺᚻᚼᚽᚾᚿᛀᛁᛂᛃᛄᛅᛆᛇᛈᛉᛊᛋᛌᛍᛎᛏᛐᛑᛒᛓᛔᛕᛖᛗᛘᛙᛚᛛᛜᛝᛞᛟᛠᛡᛢᛣᛤᛥᛦᛧᛨᛩᛪ +᛫᛬᛭ +ᛮᛯᛰᜀᜁᜂᜃᜄᜅᜆᜇᜈᜉᜊᜋᜌᜎᜏᜐᜑᜒᜓ᜔ᜠᜡᜢᜣᜤᜥᜦᜧᜨᜩᜪᜫᜬᜭᜮᜯᜰᜱᜲᜳ᜴ +᜵᜶ +ᝀᝁᝂᝃᝄᝅᝆᝇᝈᝉᝊᝋᝌᝍᝎᝏᝐᝑᝒᝓᝠᝡᝢᝣᝤᝥᝦᝧᝨᝩᝪᝫᝬᝮᝯᝰᝲᝳកខគឃងចឆជឈញដឋឌឍណតថទធនបផពភមយរលវឝឞសហឡអឣឤឥឦឧឨឩឪឫឬឭឮឯឰឱឲឳ +឴឵ +ាិីឹឺុូួើឿៀេែៃោៅំះៈ៉៊់៌៍៎៏័៑្៓ +។៕៖ +ៗ +៘៙៚៛ +ៜ៝០១២៣៤៥៦៧៨៩៰៱៲៳៴៵៶៷៸៹ +᠀᠁᠂᠃᠄᠅᠆᠇᠈᠉᠊ +᠋᠌᠍ +᠎ +᠐᠑᠒᠓᠔᠕᠖᠗᠘᠙ᠠᠡᠢᠣᠤᠥᠦᠧᠨᠩᠪᠫᠬᠭᠮᠯᠰᠱᠲᠳᠴᠵᠶᠷᠸᠹᠺᠻᠼᠽᠾᠿᡀᡁᡂᡃᡄᡅᡆᡇᡈᡉᡊᡋᡌᡍᡎᡏᡐᡑᡒᡓᡔᡕᡖᡗᡘᡙᡚᡛᡜᡝᡞᡟᡠᡡᡢᡣᡤᡥᡦᡧᡨᡩᡪᡫᡬᡭᡮᡯᡰᡱᡲᡳᡴᡵᡶᡷᢀᢁᢂᢃᢄᢅᢆᢇᢈᢉᢊᢋᢌᢍᢎᢏᢐᢑᢒᢓᢔᢕᢖᢗᢘᢙᢚᢛᢜᢝᢞᢟᢠᢡᢢᢣᢤᢥᢦᢧᢨᢩᢪᢰᢱᢲᢳᢴᢵᢶᢷᢸᢹᢺᢻᢼᢽᢾᢿᣀᣁᣂᣃᣄᣅᣆᣇᣈᣉᣊᣋᣌᣍᣎᣏᣐᣑᣒᣓᣔᣕᣖᣗᣘᣙᣚᣛᣜᣝᣞᣟᣠᣡᣢᣣᣤᣥᣦᣧᣨᣩᣪᣫᣬᣭᣮᣯᣰᣱᣲᣳᣴᣵᤀᤁᤂᤃᤄᤅᤆᤇᤈᤉᤊᤋᤌᤍᤎᤏᤐᤑᤒᤓᤔᤕᤖᤗᤘᤙᤚᤛᤜᤠᤡᤢᤣᤤᤥᤦᤧᤨᤩᤪᤫᤰᤱᤲᤳᤴᤵᤶᤷᤸ᤻᤹᤺ +᥀᥄᥅ +᥆᥇᥈᥉᥊᥋᥌᥍᥎᥏ᥐᥑᥒᥓᥔᥕᥖᥗᥘᥙᥚᥛᥜᥝᥞᥟᥠᥡᥢᥣᥤᥥᥦᥧᥨᥩᥪᥫᥬᥭᥰᥱᥲᥳᥴᦀᦁᦂᦃᦄᦅᦆᦇᦈᦉᦊᦋᦌᦍᦎᦏᦐᦑᦒᦓᦔᦕᦖᦗᦘᦙᦚᦛᦜᦝᦞᦟᦠᦡᦢᦣᦤᦥᦦᦧᦨᦩᦪᦫᦰᦱᦲᦳᦴᦵᦶᦷᦸᦹᦺᦻᦼᦽᦾᦿᧀᧁᧂᧃᧄᧅᧆᧇᧈᧉ᧐᧑᧒᧓᧔᧕᧖᧗᧘᧙᧚ +᧞᧟᧠᧡᧢᧣᧤᧥᧦᧧᧨᧩᧪᧫᧬᧭᧮᧯᧰᧱᧲᧳᧴᧵᧶᧷᧸᧹᧺᧻᧼᧽᧾᧿ +ᨀᨁᨂᨃᨄᨅᨆᨇᨈᨉᨊᨋᨌᨍᨎᨏᨐᨑᨒᨓᨔᨕᨖᨘᨗᨙᨚᨛ +᨞᨟ +ᨠᨡᨢᨣᨤᨥᨦᨧᨨᨩᨪᨫᨬᨭᨮᨯᨰᨱᨲᨳᨴᨵᨶᨷᨸᨹᨺᨻᨼᨽᨾᨿᩀᩁᩂᩃᩄᩅᩆᩇᩈᩉᩊᩋᩌᩍᩎᩏᩐᩑᩒᩓᩔᩕᩖᩗᩘᩙᩚᩛᩜᩝᩞ᩠ᩡᩢᩣᩤᩥᩦᩧᩨᩩᩪᩫᩬᩭᩮᩯᩰᩱᩲᩳᩴ᩿᩵᩶᩷᩸᩹᩺᩻᩼᪀᪁᪂᪃᪄᪅᪆᪇᪈᪉᪐᪑᪒᪓᪔᪕᪖᪗᪘᪙ +᪠᪡᪢᪣᪤᪥᪦ +ᪧ +᪨᪩᪪᪫᪬᪭ +ᬀᬁᬂᬃᬄᬅᬆᬇᬈᬉᬊᬋᬌᬍᬎᬏᬐᬑᬒᬓᬔᬕᬖᬗᬘᬙᬚᬛᬜᬝᬞᬟᬠᬡᬢᬣᬤᬥᬦᬧᬨᬩᬪᬫᬬᬭᬮᬯᬰᬱᬲᬳ᬴ᬵᬶᬷᬸᬹᬺᬻᬼᬽᬾᬿᭀᭁᭂᭃ᭄ᭅᭆᭇᭈᭉᭊᭋ᭐᭑᭒᭓᭔᭕᭖᭗᭘᭙ +᭚᭛᭜᭝᭞᭟᭠᭡᭢᭣᭤᭥᭦᭧᭨᭩᭪ +᭬᭫᭭᭮᭯᭰᭱᭲᭳ +᭴᭵᭶᭷᭸᭹᭺᭻᭼ +ᮀᮁᮂᮃᮄᮅᮆᮇᮈᮉᮊᮋᮌᮍᮎᮏᮐᮑᮒᮓᮔᮕᮖᮗᮘᮙᮚᮛᮜᮝᮞᮟᮠᮡᮢᮣᮤᮥᮦᮧᮨᮩ᮪ᮮᮯ᮰᮱᮲᮳᮴᮵᮶᮷᮸᮹ᰀᰁᰂᰃᰄᰅᰆᰇᰈᰉᰊᰋᰌᰍᰎᰏᰐᰑᰒᰓᰔᰕᰖᰗᰘᰙᰚᰛᰜᰝᰞᰟᰠᰡᰢᰣᰤᰥᰦᰧᰨᰩᰪᰫᰬᰭᰮᰯᰰᰱᰲᰳᰴᰵᰶ᰷ +᰻᰼᰽᰾᰿ +᱀᱁᱂᱃᱄᱅᱆᱇᱈᱉ᱍᱎᱏ᱐᱑᱒᱓᱔᱕᱖᱗᱘᱙ᱚᱛᱜᱝᱞᱟᱠᱡᱢᱣᱤᱥᱦᱧᱨᱩᱪᱫᱬᱭᱮᱯᱰᱱᱲᱳᱴᱵᱶᱷᱸᱹᱺᱻᱼᱽ +᱾᱿ +᳐᳑᳒ +᳓ +᳔᳕᳖᳗᳘᳙᳜᳝᳞᳟᳚᳛᳠᳡᳢᳣᳤᳥᳦᳧᳨ᳩᳪᳫᳬ᳭ᳮᳯᳰᳱᳲᴀᴁᴂᴃᴄᴅᴆᴇᴈᴉᴊᴋᴌᴍᴎᴏᴐᴑᴒᴓᴔᴕᴖᴗᴘᴙᴚᴛᴜᴝᴞᴟᴠᴡᴢᴣᴤᴥᴦᴧᴨᴩᴪᴫᴬᴭᴮᴯᴰᴱᴲᴳᴴᴵᴶᴷᴸᴹᴺᴻᴼᴽᴾᴿᵀᵁᵂᵃᵄᵅᵆᵇᵈᵉᵊᵋᵌᵍᵎᵏᵐᵑᵒᵓᵔᵕᵖᵗᵘᵙᵚᵛᵜᵝᵞᵟᵠᵡᵢᵣᵤᵥᵦᵧᵨᵩᵪᵫᵬᵭᵮᵯᵰᵱᵲᵳᵴᵵᵶᵷᵸᵹᵺᵻᵼᵽᵾᵿᶀᶁᶂᶃᶄᶅᶆᶇᶈᶉᶊᶋᶌᶍᶎᶏᶐᶑᶒᶓᶔᶕᶖᶗᶘᶙᶚᶛᶜᶝᶞᶟᶠᶡᶢᶣᶤᶥᶦᶧᶨᶩᶪᶫᶬᶭᶮᶯᶰᶱᶲᶳᶴᶵᶶᶷᶸᶹᶺᶻᶼᶽᶾᶿ᷐᷎᷂᷊᷏᷽᷿᷀᷁᷃᷄᷅᷆᷇᷈᷉᷋᷌᷑᷒ᷓᷔᷕᷖᷗᷘᷙᷚᷛᷜᷝᷞᷟᷠᷡᷢᷣᷤᷥᷦ᷾᷍ḀḁḂḃḄḅḆḇḈḉḊḋḌḍḎḏḐḑḒḓḔḕḖḗḘḙḚḛḜḝḞḟḠḡḢḣḤḥḦḧḨḩḪḫḬḭḮḯḰḱḲḳḴḵḶḷḸḹḺḻḼḽḾḿṀṁṂṃṄṅṆṇṈṉṊṋṌṍṎṏṐṑṒṓṔṕṖṗṘṙṚṛṜṝṞṟṠṡṢṣṤṥṦṧṨṩṪṫṬṭṮṯṰṱṲṳṴṵṶṷṸṹṺṻṼṽṾṿẀẁẂẃẄẅẆẇẈẉẊẋẌẍẎẏẐẑẒẓẔẕẖẗẘẙẚẛẜẝẞẟẠạẢảẤấẦầẨẩẪẫẬậẮắẰằẲẳẴẵẶặẸẹẺẻẼẽẾếỀềỂểỄễỆệỈỉỊịỌọỎỏỐốỒồỔổỖỗỘộỚớỜờỞởỠỡỢợỤụỦủỨứỪừỬửỮữỰựỲỳỴỵỶỷỸỹỺỻỼỽỾỿἀἁἂἃἄἅἆἇἈἉἊἋἌἍἎἏἐἑἒἓἔἕἘἙἚἛἜἝἠἡἢἣἤἥἦἧἨἩἪἫἬἭἮἯἰἱἲἳἴἵἶἷἸἹἺἻἼἽἾἿὀὁὂὃὄὅὈὉὊὋὌὍὐὑὒὓὔὕὖὗὙὛὝὟὠὡὢὣὤὥὦὧὨὩὪὫὬὭὮὯὰάὲέὴήὶίὸόὺύὼώᾀᾁᾂᾃᾄᾅᾆᾇᾈᾉᾊᾋᾌᾍᾎᾏᾐᾑᾒᾓᾔᾕᾖᾗᾘᾙᾚᾛᾜᾝᾞᾟᾠᾡᾢᾣᾤᾥᾦᾧᾨᾩᾪᾫᾬᾭᾮᾯᾰᾱᾲᾳᾴᾶᾷᾸᾹᾺΆᾼ +᾽ +ι +᾿῀῁ +ῂῃῄῆῇῈΈῊΉῌ +῍῎῏ +ῐῑῒΐῖῗῘῙῚΊ +῝῞῟ +ῠῡῢΰῤῥῦῧῨῩῪΎῬ +῭΅` +ῲῳῴῶῷῸΌῺΏῼ +´῾           ​‌‍‎‏‐‑‒–—―‖‗‘’‚‛“”„‟†‡•‣․‥…‧

‪‫‬‭‮ ‰‱′″‴‵‶‷‸‹›※‼‽‾‿⁀⁁⁂⁃⁄⁅⁆⁇⁈⁉⁊⁋⁌⁍⁎⁏⁐⁑⁒⁓⁔⁕⁖⁗⁘⁙⁚⁛⁜⁝⁞ ⁠⁡⁢⁣⁤ +⁰ⁱ⁴⁵⁶⁷⁸⁹ +⁺⁻⁼⁽⁾ +ⁿ₀₁₂₃₄₅₆₇₈₉ +₊₋₌₍₎ +ₐₑₒₓₔ +₠₡₢₣₤₥₦₧₨₩₪₫€₭₮₯₰₱₲₳₴₵₶₷₸ +⃒⃓⃘⃙⃚⃐⃑⃔⃕⃖⃗⃛⃜⃝⃞⃟⃠⃡⃢⃣⃤⃥⃦⃪⃫⃨⃬⃭⃮⃯⃧⃩⃰ +℀℁ +ℂ +℃℄℅℆ +ℇ +℈℉ +ℊℋℌℍℎℏℐℑℒℓ +℔ +ℕ +№℗℘ +ℙℚℛℜℝ +℞℟℠℡™℣ +ℤ +℥ +Ω +℧ +ℨ +℩ +KÅℬℭ +℮ +ℯℰℱℲℳℴℵℶℷℸℹ +℺℻ +ℼℽℾℿ +⅀⅁⅂⅃⅄ +ⅅⅆⅇⅈⅉ +⅊⅋⅌⅍ +ⅎ +⅏ +⅐⅑⅒⅓⅔⅕⅖⅗⅘⅙⅚⅛⅜⅝⅞⅟ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫⅬⅭⅮⅯⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅺⅻⅼⅽⅾⅿↀↁↂↃↄↅↆↇↈ↉ +←↑→↓↔↕↖↗↘↙↚↛↜↝↞↟↠↡↢↣↤↥↦↧↨↩↪↫↬↭↮↯↰↱↲↳↴↵↶↷↸↹↺↻↼↽↾↿⇀⇁⇂⇃⇄⇅⇆⇇⇈⇉⇊⇋⇌⇍⇎⇏⇐⇑⇒⇓⇔⇕⇖⇗⇘⇙⇚⇛⇜⇝⇞⇟⇠⇡⇢⇣⇤⇥⇦⇧⇨⇩⇪⇫⇬⇭⇮⇯⇰⇱⇲⇳⇴⇵⇶⇷⇸⇹⇺⇻⇼⇽⇾⇿∀∁∂∃∄∅∆∇∈∉∊∋∌∍∎∏∐∑−∓∔∕∖∗∘∙√∛∜∝∞∟∠∡∢∣∤∥∦∧∨∩∪∫∬∭∮∯∰∱∲∳∴∵∶∷∸∹∺∻∼∽∾∿≀≁≂≃≄≅≆≇≈≉≊≋≌≍≎≏≐≑≒≓≔≕≖≗≘≙≚≛≜≝≞≟≠≡≢≣≤≥≦≧≨≩≪≫≬≭≮≯≰≱≲≳≴≵≶≷≸≹≺≻≼≽≾≿⊀⊁⊂⊃⊄⊅⊆⊇⊈⊉⊊⊋⊌⊍⊎⊏⊐⊑⊒⊓⊔⊕⊖⊗⊘⊙⊚⊛⊜⊝⊞⊟⊠⊡⊢⊣⊤⊥⊦⊧⊨⊩⊪⊫⊬⊭⊮⊯⊰⊱⊲⊳⊴⊵⊶⊷⊸⊹⊺⊻⊼⊽⊾⊿⋀⋁⋂⋃⋄⋅⋆⋇⋈⋉⋊⋋⋌⋍⋎⋏⋐⋑⋒⋓⋔⋕⋖⋗⋘⋙⋚⋛⋜⋝⋞⋟⋠⋡⋢⋣⋤⋥⋦⋧⋨⋩⋪⋫⋬⋭⋮⋯⋰⋱⋲⋳⋴⋵⋶⋷⋸⋹⋺⋻⋼⋽⋾⋿⌀⌁⌂⌃⌄⌅⌆⌇⌈⌉⌊⌋⌌⌍⌎⌏⌐⌑⌒⌓⌔⌕⌖⌗⌘⌙⌚⌛⌜⌝⌞⌟⌠⌡⌢⌣⌤⌥⌦⌧⌨〈〉⌫⌬⌭⌮⌯⌰⌱⌲⌳⌴⌵⌶⌷⌸⌹⌺⌻⌼⌽⌾⌿⍀⍁⍂⍃⍄⍅⍆⍇⍈⍉⍊⍋⍌⍍⍎⍏⍐⍑⍒⍓⍔⍕⍖⍗⍘⍙⍚⍛⍜⍝⍞⍟⍠⍡⍢⍣⍤⍥⍦⍧⍨⍩⍪⍫⍬⍭⍮⍯⍰⍱⍲⍳⍴⍵⍶⍷⍸⍹⍺⍻⍼⍽⍾⍿⎀⎁⎂⎃⎄⎅⎆⎇⎈⎉⎊⎋⎌⎍⎎⎏⎐⎑⎒⎓⎔⎕⎖⎗⎘⎙⎚⎛⎜⎝⎞⎟⎠⎡⎢⎣⎤⎥⎦⎧⎨⎩⎪⎫⎬⎭⎮⎯⎰⎱⎲⎳⎴⎵⎶⎷⎸⎹⎺⎻⎼⎽⎾⎿⏀⏁⏂⏃⏄⏅⏆⏇⏈⏉⏊⏋⏌⏍⏎⏏⏐⏑⏒⏓⏔⏕⏖⏗⏘⏙⏚⏛⏜⏝⏞⏟⏠⏡⏢⏣⏤⏥⏦⏧⏨␀␁␂␃␄␅␆␇␈␉␊␋␌␍␎␏␐␑␒␓␔␕␖␗␘␙␚␛␜␝␞␟␠␡␢␣␤␥␦⑀⑁⑂⑃⑄⑅⑆⑇⑈⑉⑊ +①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛ +⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵ⒶⒷⒸⒹⒺⒻⒼⒽⒾⒿⓀⓁⓂⓃⓄⓅⓆⓇⓈⓉⓊⓋⓌⓍⓎⓏⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ +⓪⓫⓬⓭⓮⓯⓰⓱⓲⓳⓴⓵⓶⓷⓸⓹⓺⓻⓼⓽⓾⓿ +─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋╌╍╎╏═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡╢╣╤╥╦╧╨╩╪╫╬╭╮╯╰╱╲╳╴╵╶╷╸╹╺╻╼╽╾╿▀▁▂▃▄▅▆▇█▉▊▋▌▍▎▏▐░▒▓▔▕▖▗▘▙▚▛▜▝▞▟■□▢▣▤▥▦▧▨▩▪▫▬▭▮▯▰▱▲△▴▵▶▷▸▹►▻▼▽▾▿◀◁◂◃◄◅◆◇◈◉◊○◌◍◎●◐◑◒◓◔◕◖◗◘◙◚◛◜◝◞◟◠◡◢◣◤◥◦◧◨◩◪◫◬◭◮◯◰◱◲◳◴◵◶◷◸◹◺◻◼◽◾◿☀☁☂☃☄★☆☇☈☉☊☋☌☍☎☏☐☑☒☓☔☕☖☗☘☙☚☛☜☝☞☟☠☡☢☣☤☥☦☧☨☩☪☫☬☭☮☯☰☱☲☳☴☵☶☷☸☹☺☻☼☽☾☿♀♁♂♃♄♅♆♇♈♉♊♋♌♍♎♏♐♑♒♓♔♕♖♗♘♙♚♛♜♝♞♟♠♡♢♣♤♥♦♧♨♩♪♫♬♭♮♯♰♱♲♳♴♵♶♷♸♹♺♻♼♽♾♿⚀⚁⚂⚃⚄⚅⚆⚇⚈⚉⚊⚋⚌⚍⚎⚏⚐⚑⚒⚓⚔⚕⚖⚗⚘⚙⚚⚛⚜⚝⚞⚟⚠⚡⚢⚣⚤⚥⚦⚧⚨⚩⚪⚫⚬⚭⚮⚯⚰⚱⚲⚳⚴⚵⚶⚷⚸⚹⚺⚻⚼⚽⚾⚿⛀⛁⛂⛃⛄⛅⛆⛇⛈⛉⛊⛋⛌⛍⛏⛐⛑⛒⛓⛔⛕⛖⛗⛘⛙⛚⛛⛜⛝⛞⛟⛠⛡⛣⛨⛩⛪⛫⛬⛭⛮⛯⛰⛱⛲⛳⛴⛵⛶⛷⛸⛹⛺⛻⛼⛽⛾⛿✁✂✃✄✆✇✈✉✌✍✎✏✐✑✒✓✔✕✖✗✘✙✚✛✜✝✞✟✠✡✢✣✤✥✦✧✩✪✫✬✭✮✯✰✱✲✳✴✵✶✷✸✹✺✻✼✽✾✿❀❁❂❃❄❅❆❇❈❉❊❋❍❏❐❑❒❖❗❘❙❚❛❜❝❞❡❢❣❤❥❦❧❨❩❪❫❬❭❮❯❰❱❲❳❴❵ +❶❷❸❹❺❻❼❽❾❿➀➁➂➃➄➅➆➇➈➉➊➋➌➍➎➏➐➑➒➓ +➔➘➙➚➛➜➝➞➟➠➡➢➣➤➥➦➧➨➩➪➫➬➭➮➯➱➲➳➴➵➶➷➸➹➺➻➼➽➾⟀⟁⟂⟃⟄⟅⟆⟇⟈⟉⟊⟌⟐⟑⟒⟓⟔⟕⟖⟗⟘⟙⟚⟛⟜⟝⟞⟟⟠⟡⟢⟣⟤⟥⟦⟧⟨⟩⟪⟫⟬⟭⟮⟯⟰⟱⟲⟳⟴⟵⟶⟷⟸⟹⟺⟻⟼⟽⟾⟿⠀⠁⠂⠃⠄⠅⠆⠇⠈⠉⠊⠋⠌⠍⠎⠏⠐⠑⠒⠓⠔⠕⠖⠗⠘⠙⠚⠛⠜⠝⠞⠟⠠⠡⠢⠣⠤⠥⠦⠧⠨⠩⠪⠫⠬⠭⠮⠯⠰⠱⠲⠳⠴⠵⠶⠷⠸⠹⠺⠻⠼⠽⠾⠿⡀⡁⡂⡃⡄⡅⡆⡇⡈⡉⡊⡋⡌⡍⡎⡏⡐⡑⡒⡓⡔⡕⡖⡗⡘⡙⡚⡛⡜⡝⡞⡟⡠⡡⡢⡣⡤⡥⡦⡧⡨⡩⡪⡫⡬⡭⡮⡯⡰⡱⡲⡳⡴⡵⡶⡷⡸⡹⡺⡻⡼⡽⡾⡿⢀⢁⢂⢃⢄⢅⢆⢇⢈⢉⢊⢋⢌⢍⢎⢏⢐⢑⢒⢓⢔⢕⢖⢗⢘⢙⢚⢛⢜⢝⢞⢟⢠⢡⢢⢣⢤⢥⢦⢧⢨⢩⢪⢫⢬⢭⢮⢯⢰⢱⢲⢳⢴⢵⢶⢷⢸⢹⢺⢻⢼⢽⢾⢿⣀⣁⣂⣃⣄⣅⣆⣇⣈⣉⣊⣋⣌⣍⣎⣏⣐⣑⣒⣓⣔⣕⣖⣗⣘⣙⣚⣛⣜⣝⣞⣟⣠⣡⣢⣣⣤⣥⣦⣧⣨⣩⣪⣫⣬⣭⣮⣯⣰⣱⣲⣳⣴⣵⣶⣷⣸⣹⣺⣻⣼⣽⣾⣿⤀⤁⤂⤃⤄⤅⤆⤇⤈⤉⤊⤋⤌⤍⤎⤏⤐⤑⤒⤓⤔⤕⤖⤗⤘⤙⤚⤛⤜⤝⤞⤟⤠⤡⤢⤣⤤⤥⤦⤧⤨⤩⤪⤫⤬⤭⤮⤯⤰⤱⤲⤳⤴⤵⤶⤷⤸⤹⤺⤻⤼⤽⤾⤿⥀⥁⥂⥃⥄⥅⥆⥇⥈⥉⥊⥋⥌⥍⥎⥏⥐⥑⥒⥓⥔⥕⥖⥗⥘⥙⥚⥛⥜⥝⥞⥟⥠⥡⥢⥣⥤⥥⥦⥧⥨⥩⥪⥫⥬⥭⥮⥯⥰⥱⥲⥳⥴⥵⥶⥷⥸⥹⥺⥻⥼⥽⥾⥿⦀⦁⦂⦃⦄⦅⦆⦇⦈⦉⦊⦋⦌⦍⦎⦏⦐⦑⦒⦓⦔⦕⦖⦗⦘⦙⦚⦛⦜⦝⦞⦟⦠⦡⦢⦣⦤⦥⦦⦧⦨⦩⦪⦫⦬⦭⦮⦯⦰⦱⦲⦳⦴⦵⦶⦷⦸⦹⦺⦻⦼⦽⦾⦿⧀⧁⧂⧃⧄⧅⧆⧇⧈⧉⧊⧋⧌⧍⧎⧏⧐⧑⧒⧓⧔⧕⧖⧗⧘⧙⧚⧛⧜⧝⧞⧟⧠⧡⧢⧣⧤⧥⧦⧧⧨⧩⧪⧫⧬⧭⧮⧯⧰⧱⧲⧳⧴⧵⧶⧷⧸⧹⧺⧻⧼⧽⧾⧿⨀⨁⨂⨃⨄⨅⨆⨇⨈⨉⨊⨋⨌⨍⨎⨏⨐⨑⨒⨓⨔⨕⨖⨗⨘⨙⨚⨛⨜⨝⨞⨟⨠⨡⨢⨣⨤⨥⨦⨧⨨⨩⨪⨫⨬⨭⨮⨯⨰⨱⨲⨳⨴⨵⨶⨷⨸⨹⨺⨻⨼⨽⨾⨿⩀⩁⩂⩃⩄⩅⩆⩇⩈⩉⩊⩋⩌⩍⩎⩏⩐⩑⩒⩓⩔⩕⩖⩗⩘⩙⩚⩛⩜⩝⩞⩟⩠⩡⩢⩣⩤⩥⩦⩧⩨⩩⩪⩫⩬⩭⩮⩯⩰⩱⩲⩳⩴⩵⩶⩷⩸⩹⩺⩻⩼⩽⩾⩿⪀⪁⪂⪃⪄⪅⪆⪇⪈⪉⪊⪋⪌⪍⪎⪏⪐⪑⪒⪓⪔⪕⪖⪗⪘⪙⪚⪛⪜⪝⪞⪟⪠⪡⪢⪣⪤⪥⪦⪧⪨⪩⪪⪫⪬⪭⪮⪯⪰⪱⪲⪳⪴⪵⪶⪷⪸⪹⪺⪻⪼⪽⪾⪿⫀⫁⫂⫃⫄⫅⫆⫇⫈⫉⫊⫋⫌⫍⫎⫏⫐⫑⫒⫓⫔⫕⫖⫗⫘⫙⫚⫛⫝̸⫝⫞⫟⫠⫡⫢⫣⫤⫥⫦⫧⫨⫩⫪⫫⫬⫭⫮⫯⫰⫱⫲⫳⫴⫵⫶⫷⫸⫹⫺⫻⫼⫽⫾⫿⬀⬁⬂⬃⬄⬅⬆⬇⬈⬉⬊⬋⬌⬍⬎⬏⬐⬑⬒⬓⬔⬕⬖⬗⬘⬙⬚⬛⬜⬝⬞⬟⬠⬡⬢⬣⬤⬥⬦⬧⬨⬩⬪⬫⬬⬭⬮⬯⬰⬱⬲⬳⬴⬵⬶⬷⬸⬹⬺⬻⬼⬽⬾⬿⭀⭁⭂⭃⭄⭅⭆⭇⭈⭉⭊⭋⭌⭐⭑⭒⭓⭔⭕⭖⭗⭘⭙ +ⰀⰁⰂⰃⰄⰅⰆⰇⰈⰉⰊⰋⰌⰍⰎⰏⰐⰑⰒⰓⰔⰕⰖⰗⰘⰙⰚⰛⰜⰝⰞⰟⰠⰡⰢⰣⰤⰥⰦⰧⰨⰩⰪⰫⰬⰭⰮⰰⰱⰲⰳⰴⰵⰶⰷⰸⰹⰺⰻⰼⰽⰾⰿⱀⱁⱂⱃⱄⱅⱆⱇⱈⱉⱊⱋⱌⱍⱎⱏⱐⱑⱒⱓⱔⱕⱖⱗⱘⱙⱚⱛⱜⱝⱞⱠⱡⱢⱣⱤⱥⱦⱧⱨⱩⱪⱫⱬⱭⱮⱯⱰⱱⱲⱳⱴⱵⱶⱷⱸⱹⱺⱻⱼⱽⱾⱿⲀⲁⲂⲃⲄⲅⲆⲇⲈⲉⲊⲋⲌⲍⲎⲏⲐⲑⲒⲓⲔⲕⲖⲗⲘⲙⲚⲛⲜⲝⲞⲟⲠⲡⲢⲣⲤⲥⲦⲧⲨⲩⲪⲫⲬⲭⲮⲯⲰⲱⲲⲳⲴⲵⲶⲷⲸⲹⲺⲻⲼⲽⲾⲿⳀⳁⳂⳃⳄⳅⳆⳇⳈⳉⳊⳋⳌⳍⳎⳏⳐⳑⳒⳓⳔⳕⳖⳗⳘⳙⳚⳛⳜⳝⳞⳟⳠⳡⳢⳣⳤ +⳥⳦⳧⳨⳩⳪ +ⳫⳬⳭⳮ⳯⳰⳱ +⳹⳺⳻⳼ +⳽ +⳾⳿ +ⴀⴁⴂⴃⴄⴅⴆⴇⴈⴉⴊⴋⴌⴍⴎⴏⴐⴑⴒⴓⴔⴕⴖⴗⴘⴙⴚⴛⴜⴝⴞⴟⴠⴡⴢⴣⴤⴥⴰⴱⴲⴳⴴⴵⴶⴷⴸⴹⴺⴻⴼⴽⴾⴿⵀⵁⵂⵃⵄⵅⵆⵇⵈⵉⵊⵋⵌⵍⵎⵏⵐⵑⵒⵓⵔⵕⵖⵗⵘⵙⵚⵛⵜⵝⵞⵟⵠⵡⵢⵣⵤⵥⵯⶀⶁⶂⶃⶄⶅⶆⶇⶈⶉⶊⶋⶌⶍⶎⶏⶐⶑⶒⶓⶔⶕⶖⶠⶡⶢⶣⶤⶥⶦⶨⶩⶪⶫⶬⶭⶮⶰⶱⶲⶳⶴⶵⶶⶸⶹⶺⶻⶼⶽⶾⷀⷁⷂⷃⷄⷅⷆⷈⷉⷊⷋⷌⷍⷎⷐⷑⷒⷓⷔⷕⷖⷘⷙⷚⷛⷜⷝⷞⷠⷡⷢⷣⷤⷥⷦⷧⷨⷩⷪⷫⷬⷭⷮⷯⷰⷱⷲⷳⷴⷵⷶⷷⷸⷹⷺⷻⷼⷽⷾⷿ +⸀⸁⸂⸃⸄⸅⸆⸇⸈⸉⸊⸋⸌⸍⸎⸏⸐⸑⸒⸓⸔⸕⸖⸗⸘⸙⸚⸛⸜⸝⸞⸟⸠⸡⸢⸣⸤⸥⸦⸧⸨⸩⸪⸫⸬⸭⸮ +ⸯ +⸰⸱⺀⺁⺂⺃⺄⺅⺆⺇⺈⺉⺊⺋⺌⺍⺎⺏⺐⺑⺒⺓⺔⺕⺖⺗⺘⺙⺛⺜⺝⺞⺟⺠⺡⺢⺣⺤⺥⺦⺧⺨⺩⺪⺫⺬⺭⺮⺯⺰⺱⺲⺳⺴⺵⺶⺷⺸⺹⺺⺻⺼⺽⺾⺿⻀⻁⻂⻃⻄⻅⻆⻇⻈⻉⻊⻋⻌⻍⻎⻏⻐⻑⻒⻓⻔⻕⻖⻗⻘⻙⻚⻛⻜⻝⻞⻟⻠⻡⻢⻣⻤⻥⻦⻧⻨⻩⻪⻫⻬⻭⻮⻯⻰⻱⻲⻳⼀⼁⼂⼃⼄⼅⼆⼇⼈⼉⼊⼋⼌⼍⼎⼏⼐⼑⼒⼓⼔⼕⼖⼗⼘⼙⼚⼛⼜⼝⼞⼟⼠⼡⼢⼣⼤⼥⼦⼧⼨⼩⼪⼫⼬⼭⼮⼯⼰⼱⼲⼳⼴⼵⼶⼷⼸⼹⼺⼻⼼⼽⼾⼿⽀⽁⽂⽃⽄⽅⽆⽇⽈⽉⽊⽋⽌⽍⽎⽏⽐⽑⽒⽓⽔⽕⽖⽗⽘⽙⽚⽛⽜⽝⽞⽟⽠⽡⽢⽣⽤⽥⽦⽧⽨⽩⽪⽫⽬⽭⽮⽯⽰⽱⽲⽳⽴⽵⽶⽷⽸⽹⽺⽻⽼⽽⽾⽿⾀⾁⾂⾃⾄⾅⾆⾇⾈⾉⾊⾋⾌⾍⾎⾏⾐⾑⾒⾓⾔⾕⾖⾗⾘⾙⾚⾛⾜⾝⾞⾟⾠⾡⾢⾣⾤⾥⾦⾧⾨⾩⾪⾫⾬⾭⾮⾯⾰⾱⾲⾳⾴⾵⾶⾷⾸⾹⾺⾻⾼⾽⾾⾿⿀⿁⿂⿃⿄⿅⿆⿇⿈⿉⿊⿋⿌⿍⿎⿏⿐⿑⿒⿓⿔⿕⿰⿱⿲⿳⿴⿵⿶⿷⿸⿹⿺⿻ 、。〃〄 +々〆〇 +〈〉《》「」『』【】〒〓〔〕〖〗〘〙〚〛〜〝〞〟〠 +〡〢〣〤〥〦〧〨〩〪〭〮〯〫〬 +〰 +〱〲〳〴〵 +〶〷 +〸〹〺〻〼 +〽〾〿 +ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんゔゕゖ゙゚ +゛゜ +ゝゞゟ +゠ +ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶヷヸヹヺ +・ +ーヽヾヿㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩㄪㄫㄬㄭㄱㄲㄳㄴㄵㄶㄷㄸㄹㄺㄻㄼㄽㄾㄿㅀㅁㅂㅃㅄㅅㅆㅇㅈㅉㅊㅋㅌㅍㅎㅏㅐㅑㅒㅓㅔㅕㅖㅗㅘㅙㅚㅛㅜㅝㅞㅟㅠㅡㅢㅣㅤㅥㅦㅧㅨㅩㅪㅫㅬㅭㅮㅯㅰㅱㅲㅳㅴㅵㅶㅷㅸㅹㅺㅻㅼㅽㅾㅿㆀㆁㆂㆃㆄㆅㆆㆇㆈㆉㆊㆋㆌㆍㆎ +㆐㆑ +㆒㆓㆔㆕ +㆖㆗㆘㆙㆚㆛㆜㆝㆞㆟ +ㆠㆡㆢㆣㆤㆥㆦㆧㆨㆩㆪㆫㆬㆭㆮㆯㆰㆱㆲㆳㆴㆵㆶㆷ +㇀㇁㇂㇃㇄㇅㇆㇇㇈㇉㇊㇋㇌㇍㇎㇏㇐㇑㇒㇓㇔㇕㇖㇗㇘㇙㇚㇛㇜㇝㇞㇟㇠㇡㇢㇣ +ㇰㇱㇲㇳㇴㇵㇶㇷㇸㇹㇺㇻㇼㇽㇾㇿ +㈀㈁㈂㈃㈄㈅㈆㈇㈈㈉㈊㈋㈌㈍㈎㈏㈐㈑㈒㈓㈔㈕㈖㈗㈘㈙㈚㈛㈜㈝㈞ +㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩ +㈪㈫㈬㈭㈮㈯㈰㈱㈲㈳㈴㈵㈶㈷㈸㈹㈺㈻㈼㈽㈾㈿㉀㉁㉂㉃㉄㉅㉆㉇㉈㉉㉊㉋㉌㉍㉎㉏㉐ +㉑㉒㉓㉔㉕㉖㉗㉘㉙㉚㉛㉜㉝㉞㉟ +㉠㉡㉢㉣㉤㉥㉦㉧㉨㉩㉪㉫㉬㉭㉮㉯㉰㉱㉲㉳㉴㉵㉶㉷㉸㉹㉺㉻㉼㉽㉾㉿ +㊀㊁㊂㊃㊄㊅㊆㊇㊈㊉ +㊊㊋㊌㊍㊎㊏㊐㊑㊒㊓㊔㊕㊖㊗㊘㊙㊚㊛㊜㊝㊞㊟㊠㊡㊢㊣㊤㊥㊦㊧㊨㊩㊪㊫㊬㊭㊮㊯㊰ +㊱㊲㊳㊴㊵㊶㊷㊸㊹㊺㊻㊼㊽㊾㊿ +㋀㋁㋂㋃㋄㋅㋆㋇㋈㋉㋊㋋㋌㋍㋎㋏㋐㋑㋒㋓㋔㋕㋖㋗㋘㋙㋚㋛㋜㋝㋞㋟㋠㋡㋢㋣㋤㋥㋦㋧㋨㋩㋪㋫㋬㋭㋮㋯㋰㋱㋲㋳㋴㋵㋶㋷㋸㋹㋺㋻㋼㋽㋾㌀㌁㌂㌃㌄㌅㌆㌇㌈㌉㌊㌋㌌㌍㌎㌏㌐㌑㌒㌓㌔㌕㌖㌗㌘㌙㌚㌛㌜㌝㌞㌟㌠㌡㌢㌣㌤㌥㌦㌧㌨㌩㌪㌫㌬㌭㌮㌯㌰㌱㌲㌳㌴㌵㌶㌷㌸㌹㌺㌻㌼㌽㌾㌿㍀㍁㍂㍃㍄㍅㍆㍇㍈㍉㍊㍋㍌㍍㍎㍏㍐㍑㍒㍓㍔㍕㍖㍗㍘㍙㍚㍛㍜㍝㍞㍟㍠㍡㍢㍣㍤㍥㍦㍧㍨㍩㍪㍫㍬㍭㍮㍯㍰㍱㍲㍳㍴㍵㍶㍷㍸㍹㍺㍻㍼㍽㍾㍿㎀㎁㎂㎃㎄㎅㎆㎇㎈㎉㎊㎋㎌㎍㎎㎏㎐㎑㎒㎓㎔㎕㎖㎗㎘㎙㎚㎛㎜㎝㎞㎟㎠㎡㎢㎣㎤㎥㎦㎧㎨㎩㎪㎫㎬㎭㎮㎯㎰㎱㎲㎳㎴㎵㎶㎷㎸㎹㎺㎻㎼㎽㎾㎿㏀㏁㏂㏃㏄㏅㏆㏇㏈㏉㏊㏋㏌㏍㏎㏏㏐㏑㏒㏓㏔㏕㏖㏗㏘㏙㏚㏛㏜㏝㏞㏟㏠㏡㏢㏣㏤㏥㏦㏧㏨㏩㏪㏫㏬㏭㏮㏯㏰㏱㏲㏳㏴㏵㏶㏷㏸㏹㏺㏻㏼㏽㏾㏿ +㐀䶵 +䷀䷁䷂䷃䷄䷅䷆䷇䷈䷉䷊䷋䷌䷍䷎䷏䷐䷑䷒䷓䷔䷕䷖䷗䷘䷙䷚䷛䷜䷝䷞䷟䷠䷡䷢䷣䷤䷥䷦䷧䷨䷩䷪䷫䷬䷭䷮䷯䷰䷱䷲䷳䷴䷵䷶䷷䷸䷹䷺䷻䷼䷽䷾䷿ +一鿋ꀀꀁꀂꀃꀄꀅꀆꀇꀈꀉꀊꀋꀌꀍꀎꀏꀐꀑꀒꀓꀔꀕꀖꀗꀘꀙꀚꀛꀜꀝꀞꀟꀠꀡꀢꀣꀤꀥꀦꀧꀨꀩꀪꀫꀬꀭꀮꀯꀰꀱꀲꀳꀴꀵꀶꀷꀸꀹꀺꀻꀼꀽꀾꀿꁀꁁꁂꁃꁄꁅꁆꁇꁈꁉꁊꁋꁌꁍꁎꁏꁐꁑꁒꁓꁔꁕꁖꁗꁘꁙꁚꁛꁜꁝꁞꁟꁠꁡꁢꁣꁤꁥꁦꁧꁨꁩꁪꁫꁬꁭꁮꁯꁰꁱꁲꁳꁴꁵꁶꁷꁸꁹꁺꁻꁼꁽꁾꁿꂀꂁꂂꂃꂄꂅꂆꂇꂈꂉꂊꂋꂌꂍꂎꂏꂐꂑꂒꂓꂔꂕꂖꂗꂘꂙꂚꂛꂜꂝꂞꂟꂠꂡꂢꂣꂤꂥꂦꂧꂨꂩꂪꂫꂬꂭꂮꂯꂰꂱꂲꂳꂴꂵꂶꂷꂸꂹꂺꂻꂼꂽꂾꂿꃀꃁꃂꃃꃄꃅꃆꃇꃈꃉꃊꃋꃌꃍꃎꃏꃐꃑꃒꃓꃔꃕꃖꃗꃘꃙꃚꃛꃜꃝꃞꃟꃠꃡꃢꃣꃤꃥꃦꃧꃨꃩꃪꃫꃬꃭꃮꃯꃰꃱꃲꃳꃴꃵꃶꃷꃸꃹꃺꃻꃼꃽꃾꃿꄀꄁꄂꄃꄄꄅꄆꄇꄈꄉꄊꄋꄌꄍꄎꄏꄐꄑꄒꄓꄔꄕꄖꄗꄘꄙꄚꄛꄜꄝꄞꄟꄠꄡꄢꄣꄤꄥꄦꄧꄨꄩꄪꄫꄬꄭꄮꄯꄰꄱꄲꄳꄴꄵꄶꄷꄸꄹꄺꄻꄼꄽꄾꄿꅀꅁꅂꅃꅄꅅꅆꅇꅈꅉꅊꅋꅌꅍꅎꅏꅐꅑꅒꅓꅔꅕꅖꅗꅘꅙꅚꅛꅜꅝꅞꅟꅠꅡꅢꅣꅤꅥꅦꅧꅨꅩꅪꅫꅬꅭꅮꅯꅰꅱꅲꅳꅴꅵꅶꅷꅸꅹꅺꅻꅼꅽꅾꅿꆀꆁꆂꆃꆄꆅꆆꆇꆈꆉꆊꆋꆌꆍꆎꆏꆐꆑꆒꆓꆔꆕꆖꆗꆘꆙꆚꆛꆜꆝꆞꆟꆠꆡꆢꆣꆤꆥꆦꆧꆨꆩꆪꆫꆬꆭꆮꆯꆰꆱꆲꆳꆴꆵꆶꆷꆸꆹꆺꆻꆼꆽꆾꆿꇀꇁꇂꇃꇄꇅꇆꇇꇈꇉꇊꇋꇌꇍꇎꇏꇐꇑꇒꇓꇔꇕꇖꇗꇘꇙꇚꇛꇜꇝꇞꇟꇠꇡꇢꇣꇤꇥꇦꇧꇨꇩꇪꇫꇬꇭꇮꇯꇰꇱꇲꇳꇴꇵꇶꇷꇸꇹꇺꇻꇼꇽꇾꇿꈀꈁꈂꈃꈄꈅꈆꈇꈈꈉꈊꈋꈌꈍꈎꈏꈐꈑꈒꈓꈔꈕꈖꈗꈘꈙꈚꈛꈜꈝꈞꈟꈠꈡꈢꈣꈤꈥꈦꈧꈨꈩꈪꈫꈬꈭꈮꈯꈰꈱꈲꈳꈴꈵꈶꈷꈸꈹꈺꈻꈼꈽꈾꈿꉀꉁꉂꉃꉄꉅꉆꉇꉈꉉꉊꉋꉌꉍꉎꉏꉐꉑꉒꉓꉔꉕꉖꉗꉘꉙꉚꉛꉜꉝꉞꉟꉠꉡꉢꉣꉤꉥꉦꉧꉨꉩꉪꉫꉬꉭꉮꉯꉰꉱꉲꉳꉴꉵꉶꉷꉸꉹꉺꉻꉼꉽꉾꉿꊀꊁꊂꊃꊄꊅꊆꊇꊈꊉꊊꊋꊌꊍꊎꊏꊐꊑꊒꊓꊔꊕꊖꊗꊘꊙꊚꊛꊜꊝꊞꊟꊠꊡꊢꊣꊤꊥꊦꊧꊨꊩꊪꊫꊬꊭꊮꊯꊰꊱꊲꊳꊴꊵꊶꊷꊸꊹꊺꊻꊼꊽꊾꊿꋀꋁꋂꋃꋄꋅꋆꋇꋈꋉꋊꋋꋌꋍꋎꋏꋐꋑꋒꋓꋔꋕꋖꋗꋘꋙꋚꋛꋜꋝꋞꋟꋠꋡꋢꋣꋤꋥꋦꋧꋨꋩꋪꋫꋬꋭꋮꋯꋰꋱꋲꋳꋴꋵꋶꋷꋸꋹꋺꋻꋼꋽꋾꋿꌀꌁꌂꌃꌄꌅꌆꌇꌈꌉꌊꌋꌌꌍꌎꌏꌐꌑꌒꌓꌔꌕꌖꌗꌘꌙꌚꌛꌜꌝꌞꌟꌠꌡꌢꌣꌤꌥꌦꌧꌨꌩꌪꌫꌬꌭꌮꌯꌰꌱꌲꌳꌴꌵꌶꌷꌸꌹꌺꌻꌼꌽꌾꌿꍀꍁꍂꍃꍄꍅꍆꍇꍈꍉꍊꍋꍌꍍꍎꍏꍐꍑꍒꍓꍔꍕꍖꍗꍘꍙꍚꍛꍜꍝꍞꍟꍠꍡꍢꍣꍤꍥꍦꍧꍨꍩꍪꍫꍬꍭꍮꍯꍰꍱꍲꍳꍴꍵꍶꍷꍸꍹꍺꍻꍼꍽꍾꍿꎀꎁꎂꎃꎄꎅꎆꎇꎈꎉꎊꎋꎌꎍꎎꎏꎐꎑꎒꎓꎔꎕꎖꎗꎘꎙꎚꎛꎜꎝꎞꎟꎠꎡꎢꎣꎤꎥꎦꎧꎨꎩꎪꎫꎬꎭꎮꎯꎰꎱꎲꎳꎴꎵꎶꎷꎸꎹꎺꎻꎼꎽꎾꎿꏀꏁꏂꏃꏄꏅꏆꏇꏈꏉꏊꏋꏌꏍꏎꏏꏐꏑꏒꏓꏔꏕꏖꏗꏘꏙꏚꏛꏜꏝꏞꏟꏠꏡꏢꏣꏤꏥꏦꏧꏨꏩꏪꏫꏬꏭꏮꏯꏰꏱꏲꏳꏴꏵꏶꏷꏸꏹꏺꏻꏼꏽꏾꏿꐀꐁꐂꐃꐄꐅꐆꐇꐈꐉꐊꐋꐌꐍꐎꐏꐐꐑꐒꐓꐔꐕꐖꐗꐘꐙꐚꐛꐜꐝꐞꐟꐠꐡꐢꐣꐤꐥꐦꐧꐨꐩꐪꐫꐬꐭꐮꐯꐰꐱꐲꐳꐴꐵꐶꐷꐸꐹꐺꐻꐼꐽꐾꐿꑀꑁꑂꑃꑄꑅꑆꑇꑈꑉꑊꑋꑌꑍꑎꑏꑐꑑꑒꑓꑔꑕꑖꑗꑘꑙꑚꑛꑜꑝꑞꑟꑠꑡꑢꑣꑤꑥꑦꑧꑨꑩꑪꑫꑬꑭꑮꑯꑰꑱꑲꑳꑴꑵꑶꑷꑸꑹꑺꑻꑼꑽꑾꑿꒀꒁꒂꒃꒄꒅꒆꒇꒈꒉꒊꒋꒌ +꒐꒑꒒꒓꒔꒕꒖꒗꒘꒙꒚꒛꒜꒝꒞꒟꒠꒡꒢꒣꒤꒥꒦꒧꒨꒩꒪꒫꒬꒭꒮꒯꒰꒱꒲꒳꒴꒵꒶꒷꒸꒹꒺꒻꒼꒽꒾꒿꓀꓁꓂꓃꓄꓅꓆ +ꓐꓑꓒꓓꓔꓕꓖꓗꓘꓙꓚꓛꓜꓝꓞꓟꓠꓡꓢꓣꓤꓥꓦꓧꓨꓩꓪꓫꓬꓭꓮꓯꓰꓱꓲꓳꓴꓵꓶꓷꓸꓹꓺꓻꓼꓽ +꓾꓿ +ꔀꔁꔂꔃꔄꔅꔆꔇꔈꔉꔊꔋꔌꔍꔎꔏꔐꔑꔒꔓꔔꔕꔖꔗꔘꔙꔚꔛꔜꔝꔞꔟꔠꔡꔢꔣꔤꔥꔦꔧꔨꔩꔪꔫꔬꔭꔮꔯꔰꔱꔲꔳꔴꔵꔶꔷꔸꔹꔺꔻꔼꔽꔾꔿꕀꕁꕂꕃꕄꕅꕆꕇꕈꕉꕊꕋꕌꕍꕎꕏꕐꕑꕒꕓꕔꕕꕖꕗꕘꕙꕚꕛꕜꕝꕞꕟꕠꕡꕢꕣꕤꕥꕦꕧꕨꕩꕪꕫꕬꕭꕮꕯꕰꕱꕲꕳꕴꕵꕶꕷꕸꕹꕺꕻꕼꕽꕾꕿꖀꖁꖂꖃꖄꖅꖆꖇꖈꖉꖊꖋꖌꖍꖎꖏꖐꖑꖒꖓꖔꖕꖖꖗꖘꖙꖚꖛꖜꖝꖞꖟꖠꖡꖢꖣꖤꖥꖦꖧꖨꖩꖪꖫꖬꖭꖮꖯꖰꖱꖲꖳꖴꖵꖶꖷꖸꖹꖺꖻꖼꖽꖾꖿꗀꗁꗂꗃꗄꗅꗆꗇꗈꗉꗊꗋꗌꗍꗎꗏꗐꗑꗒꗓꗔꗕꗖꗗꗘꗙꗚꗛꗜꗝꗞꗟꗠꗡꗢꗣꗤꗥꗦꗧꗨꗩꗪꗫꗬꗭꗮꗯꗰꗱꗲꗳꗴꗵꗶꗷꗸꗹꗺꗻꗼꗽꗾꗿꘀꘁꘂꘃꘄꘅꘆꘇꘈꘉꘊꘋꘌ +꘍꘎꘏ +ꘐꘑꘒꘓꘔꘕꘖꘗꘘꘙꘚꘛꘜꘝꘞꘟ꘠꘡꘢꘣꘤꘥꘦꘧꘨꘩ꘪꘫꙀꙁꙂꙃꙄꙅꙆꙇꙈꙉꙊꙋꙌꙍꙎꙏꙐꙑꙒꙓꙔꙕꙖꙗꙘꙙꙚꙛꙜꙝꙞꙟꙢꙣꙤꙥꙦꙧꙨꙩꙪꙫꙬꙭꙮ꙯꙰꙱꙲ +꙳ +꙼꙽ +꙾ +ꙿꚀꚁꚂꚃꚄꚅꚆꚇꚈꚉꚊꚋꚌꚍꚎꚏꚐꚑꚒꚓꚔꚕꚖꚗꚠꚡꚢꚣꚤꚥꚦꚧꚨꚩꚪꚫꚬꚭꚮꚯꚰꚱꚲꚳꚴꚵꚶꚷꚸꚹꚺꚻꚼꚽꚾꚿꛀꛁꛂꛃꛄꛅꛆꛇꛈꛉꛊꛋꛌꛍꛎꛏꛐꛑꛒꛓꛔꛕꛖꛗꛘꛙꛚꛛꛜꛝꛞꛟꛠꛡꛢꛣꛤꛥꛦꛧꛨꛩꛪꛫꛬꛭꛮꛯ꛰꛱ +꛲꛳꛴꛵꛶꛷꜀꜁꜂꜃꜄꜅꜆꜇꜈꜉꜊꜋꜌꜍꜎꜏꜐꜑꜒꜓꜔꜕꜖ +ꜗꜘꜙꜚꜛꜜꜝꜞꜟ +꜠꜡ +ꜢꜣꜤꜥꜦꜧꜨꜩꜪꜫꜬꜭꜮꜯꜰꜱꜲꜳꜴꜵꜶꜷꜸꜹꜺꜻꜼꜽꜾꜿꝀꝁꝂꝃꝄꝅꝆꝇꝈꝉꝊꝋꝌꝍꝎꝏꝐꝑꝒꝓꝔꝕꝖꝗꝘꝙꝚꝛꝜꝝꝞꝟꝠꝡꝢꝣꝤꝥꝦꝧꝨꝩꝪꝫꝬꝭꝮꝯꝰꝱꝲꝳꝴꝵꝶꝷꝸꝹꝺꝻꝼꝽꝾꝿꞀꞁꞂꞃꞄꞅꞆꞇꞈ +꞉꞊ +Ꞌꞌꟻꟼꟽꟾꟿꠀꠁꠂꠃꠄꠅ꠆ꠇꠈꠉꠊꠋꠌꠍꠎꠏꠐꠑꠒꠓꠔꠕꠖꠗꠘꠙꠚꠛꠜꠝꠞꠟꠠꠡꠢꠣꠤꠥꠦꠧ +꠨꠩꠪꠫ +꠰꠱꠲꠳꠴꠵ +꠶꠷꠸꠹ +ꡀꡁꡂꡃꡄꡅꡆꡇꡈꡉꡊꡋꡌꡍꡎꡏꡐꡑꡒꡓꡔꡕꡖꡗꡘꡙꡚꡛꡜꡝꡞꡟꡠꡡꡢꡣꡤꡥꡦꡧꡨꡩꡪꡫꡬꡭꡮꡯꡰꡱꡲꡳ +꡴꡵꡶꡷ +ꢀꢁꢂꢃꢄꢅꢆꢇꢈꢉꢊꢋꢌꢍꢎꢏꢐꢑꢒꢓꢔꢕꢖꢗꢘꢙꢚꢛꢜꢝꢞꢟꢠꢡꢢꢣꢤꢥꢦꢧꢨꢩꢪꢫꢬꢭꢮꢯꢰꢱꢲꢳꢴꢵꢶꢷꢸꢹꢺꢻꢼꢽꢾꢿꣀꣁꣂꣃ꣄ +꣎꣏ +꣐꣑꣒꣓꣔꣕꣖꣗꣘꣙꣠꣡꣢꣣꣤꣥꣦꣧꣨꣩꣪꣫꣬꣭꣮꣯꣰꣱ꣲꣳꣴꣵꣶꣷ +꣸꣹꣺ +ꣻ꤀꤁꤂꤃꤄꤅꤆꤇꤈꤉ꤊꤋꤌꤍꤎꤏꤐꤑꤒꤓꤔꤕꤖꤗꤘꤙꤚꤛꤜꤝꤞꤟꤠꤡꤢꤣꤤꤥꤦꤧꤨꤩꤪ꤫꤬꤭ +꤮꤯ +ꤰꤱꤲꤳꤴꤵꤶꤷꤸꤹꤺꤻꤼꤽꤾꤿꥀꥁꥂꥃꥄꥅꥆꥇꥈꥉꥊꥋꥌꥍꥎꥏꥐꥑꥒ꥓ +꥟ +ꥠꥡꥢꥣꥤꥥꥦꥧꥨꥩꥪꥫꥬꥭꥮꥯꥰꥱꥲꥳꥴꥵꥶꥷꥸꥹꥺꥻꥼꦀꦁꦂꦃꦄꦅꦆꦇꦈꦉꦊꦋꦌꦍꦎꦏꦐꦑꦒꦓꦔꦕꦖꦗꦘꦙꦚꦛꦜꦝꦞꦟꦠꦡꦢꦣꦤꦥꦦꦧꦨꦩꦪꦫꦬꦭꦮꦯꦰꦱꦲ꦳ꦴꦵꦶꦷꦸꦹꦺꦻꦼꦽꦾꦿ꧀ +꧁꧂꧃꧄꧅꧆꧇꧈꧉꧊꧋꧌꧍ +ꧏ꧐꧑꧒꧓꧔꧕꧖꧗꧘꧙ +꧞꧟ +ꨀꨁꨂꨃꨄꨅꨆꨇꨈꨉꨊꨋꨌꨍꨎꨏꨐꨑꨒꨓꨔꨕꨖꨗꨘꨙꨚꨛꨜꨝꨞꨟꨠꨡꨢꨣꨤꨥꨦꨧꨨꨩꨪꨫꨬꨭꨮꨯꨰꨱꨲꨳꨴꨵꨶꩀꩁꩂꩃꩄꩅꩆꩇꩈꩉꩊꩋꩌꩍ꩐꩑꩒꩓꩔꩕꩖꩗꩘꩙ +꩜꩝꩞꩟ +ꩠꩡꩢꩣꩤꩥꩦꩧꩨꩩꩪꩫꩬꩭꩮꩯꩰꩱꩲꩳꩴꩵꩶ +꩷꩸꩹ +ꩺꩻꪀꪁꪂꪃꪄꪅꪆꪇꪈꪉꪊꪋꪌꪍꪎꪏꪐꪑꪒꪓꪔꪕꪖꪗꪘꪙꪚꪛꪜꪝꪞꪟꪠꪡꪢꪣꪤꪥꪦꪧꪨꪩꪪꪫꪬꪭꪮꪯꪰꪱꪴꪲꪳꪵꪶꪷꪸꪹꪺꪻꪼꪽꪾ꪿ꫀ꫁ꫂꫛꫜꫝ +꫞꫟ +ꯀꯁꯂꯃꯄꯅꯆꯇꯈꯉꯊꯋꯌꯍꯎꯏꯐꯑꯒꯓꯔꯕꯖꯗꯘꯙꯚꯛꯜꯝꯞꯟꯠꯡꯢꯣꯤꯥꯦꯧꯨꯩꯪ +꯫ +꯬꯭꯰꯱꯲꯳꯴꯵꯶꯷꯸꯹가힣ힰힱힲힳힴힵힶힷힸힹힺힻힼힽힾힿퟀퟁퟂퟃퟄퟅퟆퟋퟌퟍퟎퟏퟐퟑퟒퟓퟔퟕퟖퟗퟘퟙퟚퟛퟜퟝퟞퟟퟠퟡퟢퟣퟤퟥퟦퟧퟨퟩퟪퟫퟬퟭퟮퟯퟰퟱퟲퟳퟴퟵퟶퟷퟸퟹퟺퟻ + +豈更車賈滑串句龜龜契金喇奈懶癩羅蘿螺裸邏樂洛烙珞落酪駱亂卵欄爛蘭鸞嵐濫藍襤拉臘蠟廊朗浪狼郎來冷勞擄櫓爐盧老蘆虜路露魯鷺碌祿綠菉錄鹿論壟弄籠聾牢磊賂雷壘屢樓淚漏累縷陋勒肋凜凌稜綾菱陵讀拏樂諾丹寧怒率異北磻便復不泌數索參塞省葉說殺辰沈拾若掠略亮兩凉梁糧良諒量勵呂女廬旅濾礪閭驪麗黎力曆歷轢年憐戀撚漣煉璉秊練聯輦蓮連鍊列劣咽烈裂說廉念捻殮簾獵令囹寧嶺怜玲瑩羚聆鈴零靈領例禮醴隸惡了僚寮尿料樂燎療蓼遼龍暈阮劉杻柳流溜琉留硫紐類六戮陸倫崙淪輪律慄栗率隆利吏履易李梨泥理痢罹裏裡里離匿溺吝燐璘藺隣鱗麟林淋臨立笠粒狀炙識什茶刺切度拓糖宅洞暴輻行降見廓兀嗀﨎﨏塚﨑晴﨓﨔凞猪益礼神祥福靖精羽﨟蘒﨡諸﨣﨤逸都﨧﨨﨩飯飼館鶴侮僧免勉勤卑喝嘆器塀墨層屮悔慨憎懲敏既暑梅海渚漢煮爫琢碑社祉祈祐祖祝禍禎穀突節練縉繁署者臭艹艹著褐視謁謹賓贈辶逸難響頻恵𤋮舘並况全侀充冀勇勺喝啕喙嗢塚墳奄奔婢嬨廒廙彩徭惘慎愈憎慠懲戴揄搜摒敖晴朗望杖歹殺流滛滋漢瀞煮瞧爵犯猪瑱甆画瘝瘟益盛直睊着磌窱節类絛練缾者荒華蝹襁覆視調諸請謁諾諭謹變贈輸遲醙鉶陼難靖韛響頋頻鬒龜𢡊𢡄𣏕㮝䀘䀹𥉉𥳐𧻓齃龎fffiflffifflſtstﬓﬔﬕﬖﬗיִﬞײַﬠﬡﬢﬣﬤﬥﬦﬧﬨ +﬩ +שׁשׂשּׁשּׂאַאָאּבּגּדּהּוּזּטּיּךּכּלּמּנּסּףּפּצּקּרּשּתּוֹבֿכֿפֿﭏﭐﭑﭒﭓﭔﭕﭖﭗﭘﭙﭚﭛﭜﭝﭞﭟﭠﭡﭢﭣﭤﭥﭦﭧﭨﭩﭪﭫﭬﭭﭮﭯﭰﭱﭲﭳﭴﭵﭶﭷﭸﭹﭺﭻﭼﭽﭾﭿﮀﮁﮂﮃﮄﮅﮆﮇﮈﮉﮊﮋﮌﮍﮎﮏﮐﮑﮒﮓﮔﮕﮖﮗﮘﮙﮚﮛﮜﮝﮞﮟﮠﮡﮢﮣﮤﮥﮦﮧﮨﮩﮪﮫﮬﮭﮮﮯﮰﮱﯓﯔﯕﯖﯗﯘﯙﯚﯛﯜﯝﯞﯟﯠﯡﯢﯣﯤﯥﯦﯧﯨﯩﯪﯫﯬﯭﯮﯯﯰﯱﯲﯳﯴﯵﯶﯷﯸﯹﯺﯻﯼﯽﯾﯿﰀﰁﰂﰃﰄﰅﰆﰇﰈﰉﰊﰋﰌﰍﰎﰏﰐﰑﰒﰓﰔﰕﰖﰗﰘﰙﰚﰛﰜﰝﰞﰟﰠﰡﰢﰣﰤﰥﰦﰧﰨﰩﰪﰫﰬﰭﰮﰯﰰﰱﰲﰳﰴﰵﰶﰷﰸﰹﰺﰻﰼﰽﰾﰿﱀﱁﱂﱃﱄﱅﱆﱇﱈﱉﱊﱋﱌﱍﱎﱏﱐﱑﱒﱓﱔﱕﱖﱗﱘﱙﱚﱛﱜﱝﱞﱟﱠﱡﱢﱣﱤﱥﱦﱧﱨﱩﱪﱫﱬﱭﱮﱯﱰﱱﱲﱳﱴﱵﱶﱷﱸﱹﱺﱻﱼﱽﱾﱿﲀﲁﲂﲃﲄﲅﲆﲇﲈﲉﲊﲋﲌﲍﲎﲏﲐﲑﲒﲓﲔﲕﲖﲗﲘﲙﲚﲛﲜﲝﲞﲟﲠﲡﲢﲣﲤﲥﲦﲧﲨﲩﲪﲫﲬﲭﲮﲯﲰﲱﲲﲳﲴﲵﲶﲷﲸﲹﲺﲻﲼﲽﲾﲿﳀﳁﳂﳃﳄﳅﳆﳇﳈﳉﳊﳋﳌﳍﳎﳏﳐﳑﳒﳓﳔﳕﳖﳗﳘﳙﳚﳛﳜﳝﳞﳟﳠﳡﳢﳣﳤﳥﳦﳧﳨﳩﳪﳫﳬﳭﳮﳯﳰﳱﳲﳳﳴﳵﳶﳷﳸﳹﳺﳻﳼﳽﳾﳿﴀﴁﴂﴃﴄﴅﴆﴇﴈﴉﴊﴋﴌﴍﴎﴏﴐﴑﴒﴓﴔﴕﴖﴗﴘﴙﴚﴛﴜﴝﴞﴟﴠﴡﴢﴣﴤﴥﴦﴧﴨﴩﴪﴫﴬﴭﴮﴯﴰﴱﴲﴳﴴﴵﴶﴷﴸﴹﴺﴻﴼﴽ +﴾﴿ +ﵐﵑﵒﵓﵔﵕﵖﵗﵘﵙﵚﵛﵜﵝﵞﵟﵠﵡﵢﵣﵤﵥﵦﵧﵨﵩﵪﵫﵬﵭﵮﵯﵰﵱﵲﵳﵴﵵﵶﵷﵸﵹﵺﵻﵼﵽﵾﵿﶀﶁﶂﶃﶄﶅﶆﶇﶈﶉﶊﶋﶌﶍﶎﶏﶒﶓﶔﶕﶖﶗﶘﶙﶚﶛﶜﶝﶞﶟﶠﶡﶢﶣﶤﶥﶦﶧﶨﶩﶪﶫﶬﶭﶮﶯﶰﶱﶲﶳﶴﶵﶶﶷﶸﶹﶺﶻﶼﶽﶾﶿﷀﷁﷂﷃﷄﷅﷆﷇﷰﷱﷲﷳﷴﷵﷶﷷﷸﷹﷺﷻ +﷼﷽ +︀︁︂︃︄︅︆︇︈︉︊︋︌︍︎️ +︐︑︒︓︔︕︖︗︘︙ +︠︡︢︣︤︥︦ +︰︱︲︳︴︵︶︷︸︹︺︻︼︽︾︿﹀﹁﹂﹃﹄﹅﹆﹇﹈﹉﹊﹋﹌﹍﹎﹏﹐﹑﹒﹔﹕﹖﹗﹘﹙﹚﹛﹜﹝﹞﹟﹠﹡﹢﹣﹤﹥﹦﹨﹩﹪﹫ +ﹰﹱﹲﹳﹴﹶﹷﹸﹹﹺﹻﹼﹽﹾﹿﺀﺁﺂﺃﺄﺅﺆﺇﺈﺉﺊﺋﺌﺍﺎﺏﺐﺑﺒﺓﺔﺕﺖﺗﺘﺙﺚﺛﺜﺝﺞﺟﺠﺡﺢﺣﺤﺥﺦﺧﺨﺩﺪﺫﺬﺭﺮﺯﺰﺱﺲﺳﺴﺵﺶﺷﺸﺹﺺﺻﺼﺽﺾﺿﻀﻁﻂﻃﻄﻅﻆﻇﻈﻉﻊﻋﻌﻍﻎﻏﻐﻑﻒﻓﻔﻕﻖﻗﻘﻙﻚﻛﻜﻝﻞﻟﻠﻡﻢﻣﻤﻥﻦﻧﻨﻩﻪﻫﻬﻭﻮﻯﻰﻱﻲﻳﻴﻵﻶﻷﻸﻹﻺﻻﻼ +!"#$%&'()*+,-./ +0123456789 +:;<=>?@ +ABCDEFGHIJKLMNOPQRSTUVWXYZ +[\]^_` +abcdefghijklmnopqrstuvwxyz +{|}~⦅⦆。「」、・ +ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚ᅠᄀᄁᆪᄂᆬᆭᄃᄄᄅᆰᆱᆲᆳᆴᆵᄚᄆᄇᄈᄡᄉᄊᄋᄌᄍᄎᄏᄐᄑ하ᅢᅣᅤᅥᅦᅧᅨᅩᅪᅫᅬᅭᅮᅯᅰᅱᅲᅳᅴᅵ +¢£¬ ̄¦¥₩│←↑→↓■○� +𐀀 \ No newline at end of file diff --git a/drupal-dev/modules/search/tests/search_embedded_form.info b/drupal-dev/modules/search/tests/search_embedded_form.info new file mode 100644 index 0000000..6413e94 --- /dev/null +++ b/drupal-dev/modules/search/tests/search_embedded_form.info @@ -0,0 +1,12 @@ +name = "Search embedded form" +description = "Support module for search module testing of embedded forms." +package = Testing +version = VERSION +core = 7.x +hidden = TRUE + +; Information added by Drupal.org packaging script on 2014-01-15 +version = "7.26" +project = "drupal" +datestamp = "1389815930" + diff --git a/drupal-dev/modules/search/tests/search_embedded_form.module b/drupal-dev/modules/search/tests/search_embedded_form.module new file mode 100644 index 0000000..4845796 --- /dev/null +++ b/drupal-dev/modules/search/tests/search_embedded_form.module @@ -0,0 +1,70 @@ + 'Search_Embed_Form', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('search_embedded_form_form'), + 'access arguments' => array('search content'), + 'type' => MENU_CALLBACK, + ); + + return $items; +} + +/** + * Builds a form for embedding in search results for testing. + * + * @see search_embedded_form_form_submit(). + */ +function search_embedded_form_form($form, &$form_state) { + $count = variable_get('search_embedded_form_submitted', 0); + + $form['name'] = array( + '#type' => 'textfield', + '#title' => t('Your name'), + '#maxlength' => 255, + '#default_value' => '', + '#required' => TRUE, + '#description' => t('Times form has been submitted: %count', array('%count' => $count)), + ); + + $form['actions'] = array('#type' => 'actions'); + $form['actions']['submit'] = array( + '#type' => 'submit', + '#value' => t('Send away'), + ); + + $form['#submit'][] = 'search_embedded_form_form_submit'; + + return $form; +} + +/** + * Submit handler for search_embedded_form_form(). + */ +function search_embedded_form_form_submit($form, &$form_state) { + $count = variable_get('search_embedded_form_submitted', 0) + 1; + variable_set('search_embedded_form_submitted', $count); + drupal_set_message(t('Test form was submitted')); +} + +/** + * Adds the test form to search results. + */ +function search_embedded_form_preprocess_search_result(&$variables) { + $form = drupal_get_form('search_embedded_form_form'); + $variables['snippet'] .= drupal_render($form); +} diff --git a/drupal-dev/modules/search/tests/search_extra_type.info b/drupal-dev/modules/search/tests/search_extra_type.info new file mode 100644 index 0000000..d4296c8 --- /dev/null +++ b/drupal-dev/modules/search/tests/search_extra_type.info @@ -0,0 +1,12 @@ +name = "Test search type" +description = "Support module for search module testing." +package = Testing +version = VERSION +core = 7.x +hidden = TRUE + +; Information added by Drupal.org packaging script on 2014-01-15 +version = "7.26" +project = "drupal" +datestamp = "1389815930" + diff --git a/drupal-dev/modules/search/tests/search_extra_type.module b/drupal-dev/modules/search/tests/search_extra_type.module new file mode 100644 index 0000000..80c050c --- /dev/null +++ b/drupal-dev/modules/search/tests/search_extra_type.module @@ -0,0 +1,69 @@ + 'Dummy search type', + 'path' => 'dummy_path', + 'conditions_callback' => 'search_extra_type_conditions', + ); +} + +/** + * Test conditions callback for hook_search_info(). + */ +function search_extra_type_conditions() { + $conditions = array(); + + if (!empty($_REQUEST['search_conditions'])) { + $conditions['search_conditions'] = $_REQUEST['search_conditions']; + } + return $conditions; +} + +/** + * Implements hook_search_execute(). + * + * This is a dummy search, so when search "executes", we just return a dummy + * result containing the keywords and a list of conditions. + */ +function search_extra_type_search_execute($keys = NULL, $conditions = NULL) { + if (!$keys) { + $keys = ''; + } + return array( + array( + 'link' => url('node'), + 'type' => 'Dummy result type', + 'title' => 'Dummy title', + 'snippet' => "Dummy search snippet to display. Keywords: {$keys}\n\nConditions: " . print_r($conditions, TRUE), + ), + ); +} + +/** + * Implements hook_search_page(). + * + * Adds some text to the search page so we can verify that it runs. + */ +function search_extra_type_search_page($results) { + $output['prefix']['#markup'] = '

    Test page text is here

      '; + + foreach ($results as $entry) { + $output[] = array( + '#theme' => 'search_result', + '#result' => $entry, + '#module' => 'search_extra_type', + ); + } + $output['suffix']['#markup'] = '
    ' . theme('pager'); + + return $output; +} diff --git a/drupal-dev/modules/shortcut/shortcut-rtl.css b/drupal-dev/modules/shortcut/shortcut-rtl.css new file mode 100644 index 0000000..5dec957 --- /dev/null +++ b/drupal-dev/modules/shortcut/shortcut-rtl.css @@ -0,0 +1,48 @@ + +div#toolbar a#edit-shortcuts { + position: absolute; + left: 0; + top: 0; + padding: 5px 5px 5px 10px; +} +div#toolbar div.toolbar-shortcuts ul { + float: none; + margin-right: 5px; + margin-left: 10em; +} +div#toolbar div.toolbar-shortcuts ul li a { + margin-left: 5px; + margin-right: 0; + padding: 0 5px; +} +div#toolbar div.toolbar-shortcuts span.icon { + float: right; +} +div.add-or-remove-shortcuts a span.icon { + float: right; + margin-right: 8px; + margin-left: 0; +} +div.add-or-remove-shortcuts a span.text { + float: right; + padding-right: 10px; + padding-left: 0; +} +div.add-or-remove-shortcuts a:focus span.text, +div.add-or-remove-shortcuts a:hover span.text { + -moz-border-radius: 5px 0 0 5px; + -webkit-border-top-left-radius: 5px; + -webkit-border-bottom-left-radius: 5px; + border-radius: 5px 0 0 5px; + padding-left: 6px; +} +#shortcut-set-switch .form-item-new { + padding-right: 17px; + padding-left: 0; +} +div.add-shortcut a:hover span.icon { + background-position: 0 -24px; +} +div.remove-shortcut a:hover span.icon { + background-position: -12px -24px; +} diff --git a/drupal-dev/modules/shortcut/shortcut.admin.css b/drupal-dev/modules/shortcut/shortcut.admin.css new file mode 100644 index 0000000..8ca03be --- /dev/null +++ b/drupal-dev/modules/shortcut/shortcut.admin.css @@ -0,0 +1,8 @@ + +.shortcut-slot-hidden { + display: none; +} + +div.form-item-set div.form-item-new { + display: inline; +} diff --git a/drupal-dev/modules/shortcut/shortcut.admin.inc b/drupal-dev/modules/shortcut/shortcut.admin.inc new file mode 100644 index 0000000..2e8ddb4 --- /dev/null +++ b/drupal-dev/modules/shortcut/shortcut.admin.inc @@ -0,0 +1,788 @@ + $set) { + $options[$name] = check_plain($set->title); + } + + // Only administrators can add shortcut sets. + $add_access = user_access('administer shortcuts'); + if ($add_access) { + $options['new'] = t('New set'); + } + + if (count($options) > 1) { + $form['account'] = array( + '#type' => 'value', + '#value' => $account, + ); + + $form['set'] = array( + '#type' => 'radios', + '#title' => $user->uid == $account->uid ? t('Choose a set of shortcuts to use') : t('Choose a set of shortcuts for this user'), + '#options' => $options, + '#default_value' => $current_set->set_name, + ); + + $form['new'] = array( + '#type' => 'textfield', + '#title' => t('Name'), + '#title_display' => 'invisible', + '#description' => t('The new set is created by copying items from your default shortcut set.'), + '#access' => $add_access, + ); + + if ($user->uid != $account->uid) { + $default_set = shortcut_default_set($account); + $form['new']['#description'] = t('The new set is created by copying items from the %default set.', array('%default' => $default_set->title)); + } + + $form['#attached'] = array( + 'css' => array(drupal_get_path('module', 'shortcut') . '/shortcut.admin.css'), + 'js' => array(drupal_get_path('module', 'shortcut') . '/shortcut.admin.js'), + ); + + $form['actions'] = array('#type' => 'actions'); + $form['actions']['submit'] = array( + '#type' => 'submit', + '#value' => t('Change set'), + ); + } + else { + // There is only 1 option, so output a message in the $form array. + $form['info'] = array( + '#markup' => '

    ' . t('You are currently using the %set-name shortcut set.', array('%set-name' => $current_set->title)) . '

    ', + ); + } + + return $form; +} + +/** + * Validation handler for shortcut_set_switch(). + */ +function shortcut_set_switch_validate($form, &$form_state) { + if ($form_state['values']['set'] == 'new') { + // Check to prevent creating a shortcut set with an empty title. + if (trim($form_state['values']['new']) == '') { + form_set_error('new', t('The new set name is required.')); + } + // Check to prevent a duplicate title. + if (shortcut_set_title_exists($form_state['values']['new'])) { + form_set_error('new', t('The shortcut set %name already exists. Choose another name.', array('%name' => $form_state['values']['new']))); + } + } +} + +/** + * Submit handler for shortcut_set_switch(). + */ +function shortcut_set_switch_submit($form, &$form_state) { + global $user; + $account = $form_state['values']['account']; + + if ($form_state['values']['set'] == 'new') { + // Save a new shortcut set with links copied from the user's default set. + $default_set = shortcut_default_set($account); + $set = (object) array( + 'title' => $form_state['values']['new'], + 'links' => menu_links_clone($default_set->links), + ); + shortcut_set_save($set); + $replacements = array( + '%user' => $account->name, + '%set_name' => $set->title, + '@switch-url' => url(current_path()), + ); + if ($account->uid == $user->uid) { + // Only administrators can create new shortcut sets, so we know they have + // access to switch back. + drupal_set_message(t('You are now using the new %set_name shortcut set. You can edit it from this page or switch back to a different one.', $replacements)); + } + else { + drupal_set_message(t('%user is now using a new shortcut set called %set_name. You can edit it from this page.', $replacements)); + } + $form_state['redirect'] = 'admin/config/user-interface/shortcut/' . $set->set_name; + } + else { + // Switch to a different shortcut set. + $set = shortcut_set_load($form_state['values']['set']); + $replacements = array( + '%user' => $account->name, + '%set_name' => $set->title, + ); + drupal_set_message($account->uid == $user->uid ? t('You are now using the %set_name shortcut set.', $replacements) : t('%user is now using the %set_name shortcut set.', $replacements)); + } + + // Assign the shortcut set to the provided user account. + shortcut_set_assign_user($set, $account); +} + +/** + * Menu page callback: builds the page for administering shortcut sets. + */ +function shortcut_set_admin() { + $shortcut_sets = shortcut_sets(); + $header = array(t('Name'), array('data' => t('Operations'), 'colspan' => 4)); + + $rows = array(); + foreach ($shortcut_sets as $set) { + $row = array( + check_plain($set->title), + l(t('list links'), "admin/config/user-interface/shortcut/$set->set_name"), + l(t('edit set name'), "admin/config/user-interface/shortcut/$set->set_name/edit"), + ); + if (shortcut_set_delete_access($set)) { + $row[] = l(t('delete set'), "admin/config/user-interface/shortcut/$set->set_name/delete"); + } + else { + $row[] = ''; + } + + $rows[] = $row; + } + + return theme('table', array('header' => $header, 'rows' => $rows)); +} + +/** + * Form callback: builds the form for adding a shortcut set. + * + * @param $form + * An associative array containing the structure of the form. + * @param $form_state + * An associative array containing the current state of the form. + * + * @return + * An array representing the form definition. + * + * @ingroup forms + * @see shortcut_set_add_form_validate() + * @see shortcut_set_add_form_submit() + */ +function shortcut_set_add_form($form, &$form_state) { + $form['new'] = array( + '#type' => 'textfield', + '#title' => t('Set name'), + '#description' => t('The new set is created by copying items from your default shortcut set.'), + '#required' => TRUE, + ); + + $form['actions'] = array('#type' => 'actions'); + $form['actions']['submit'] = array( + '#type' => 'submit', + '#value' => t('Create new set'), + ); + + return $form; +} + +/** + * Validation handler for shortcut_set_add_form(). + */ +function shortcut_set_add_form_validate($form, &$form_state) { + // Check to prevent a duplicate title. + if (shortcut_set_title_exists($form_state['values']['new'])) { + form_set_error('new', t('The shortcut set %name already exists. Choose another name.', array('%name' => $form_state['values']['new']))); + } +} + +/** + * Submit handler for shortcut_set_add_form(). + */ +function shortcut_set_add_form_submit($form, &$form_state) { + // Save a new shortcut set with links copied from the user's default set. + $default_set = shortcut_default_set(); + $set = (object) array( + 'title' => $form_state['values']['new'], + 'links' => menu_links_clone($default_set->links), + ); + shortcut_set_save($set); + drupal_set_message(t('The %set_name shortcut set has been created. You can edit it from this page.', array('%set_name' => $set->title))); + $form_state['redirect'] = 'admin/config/user-interface/shortcut/' . $set->set_name; +} + +/** + * Form callback: builds the form for customizing shortcut sets. + * + * @param $form + * An associative array containing the structure of the form. + * @param $form_state + * An associative array containing the current state of the form. + * @param $shortcut_set + * An object representing the shortcut set which is being edited. + * + * @return + * An array representing the form definition. + * + * @ingroup forms + * @see shortcut_set_customize_submit() + */ +function shortcut_set_customize($form, &$form_state, $shortcut_set) { + $form['#shortcut_set_name'] = $shortcut_set->set_name; + $form['shortcuts'] = array( + '#tree' => TRUE, + '#weight' => -20, + 'enabled' => array(), + 'disabled' => array(), + ); + + foreach ($shortcut_set->links as $link) { + $mlid = $link['mlid']; + $status = $link['hidden'] ? 'disabled' : 'enabled'; + $form['shortcuts'][$status][$mlid]['name']['#markup'] = l($link['link_title'], $link['link_path']); + $form['shortcuts'][$status][$mlid]['weight'] = array( + '#type' => 'weight', + '#title' => t('Weight'), + '#delta' => 50, + '#default_value' => $link['weight'], + '#attributes' => array('class' => array('shortcut-weight')), + ); + $form['shortcuts'][$status][$mlid]['status'] = array( + '#type' => 'select', + '#title' => t('Status'), + '#options' => array('disabled' => t('Disabled'), 'enabled' => t('Enabled')), + '#default_value' => $status, + '#attributes' => array('class' => array('shortcut-status-select')), + ); + + $form['shortcuts'][$status][$mlid]['edit']['#markup'] = l(t('edit'), 'admin/config/user-interface/shortcut/link/' . $mlid); + $form['shortcuts'][$status][$mlid]['delete']['#markup'] = l(t('delete'), 'admin/config/user-interface/shortcut/link/' . $mlid . '/delete'); + } + + $form['#attached'] = array( + 'css' => array(drupal_get_path('module', 'shortcut') . '/shortcut.admin.css'), + 'js' => array(drupal_get_path('module', 'shortcut') . '/shortcut.admin.js'), + ); + + $form['actions'] = array( + '#type' => 'actions', + '#access' => !empty($shortcut_set->links), + ); + $form['actions']['submit'] = array( + '#type' => 'submit', + '#value' => t('Save changes'), + ); + + return $form; +} + +/** + * Submit handler for shortcut_set_customize(). + */ +function shortcut_set_customize_submit($form, &$form_state) { + foreach ($form_state['values']['shortcuts'] as $group => $links) { + foreach ($links as $mlid => $data) { + $link = menu_link_load($mlid); + $link['hidden'] = $data['status'] == 'enabled' ? 0 : 1; + $link['weight'] = $data['weight']; + menu_link_save($link); + } + } + drupal_set_message(t('The shortcut set has been updated.')); +} + +/** + * Returns HTML for a shortcut set customization form. + * + * @param $variables + * An associative array containing: + * - form: A render element representing the form. + * + * @see shortcut_set_customize() + * @ingroup themeable + */ +function theme_shortcut_set_customize($variables) { + $form = $variables['form']; + $map = array('disabled' => t('Disabled'), 'enabled' => t('Enabled')); + $shortcuts_by_status = array( + 'enabled' => element_children($form['shortcuts']['enabled']), + 'disabled' => element_children($form['shortcuts']['disabled']), + ); + // Do not add any rows to the table if there are no shortcuts to display. + $statuses = empty($shortcuts_by_status['enabled']) && empty($shortcuts_by_status['disabled']) ? array() : array_keys($shortcuts_by_status); + + $rows = array(); + foreach ($statuses as $status) { + drupal_add_tabledrag('shortcuts', 'match', 'sibling', 'shortcut-status-select'); + drupal_add_tabledrag('shortcuts', 'order', 'sibling', 'shortcut-weight'); + $rows[] = array( + 'data' => array(array( + 'colspan' => 5, + 'data' => '' . $map[$status] . '', + )), + 'class' => array('shortcut-status', 'shortcut-status-' . $status), + ); + + foreach ($shortcuts_by_status[$status] as $key) { + $shortcut = &$form['shortcuts'][$status][$key]; + $row = array(); + $row[] = drupal_render($shortcut['name']); + $row[] = drupal_render($shortcut['weight']); + $row[] = drupal_render($shortcut['status']); + $row[] = drupal_render($shortcut['edit']); + $row[] = drupal_render($shortcut['delete']); + $rows[] = array( + 'data' => $row, + 'class' => array('draggable'), + ); + } + + if ($status == 'enabled') { + for ($i = 0; $i < shortcut_max_slots(); $i++) { + $rows['empty-' . $i] = array( + 'data' => array(array( + 'colspan' => 5, + 'data' => '' . t('Empty') . '', + )), + 'class' => array('shortcut-slot-empty'), + ); + } + $count_shortcuts = count($shortcuts_by_status[$status]); + if (!empty($count_shortcuts)) { + for ($i = 0; $i < min($count_shortcuts, shortcut_max_slots()); $i++) { + $rows['empty-' . $i]['class'][] = 'shortcut-slot-hidden'; + } + } + } + } + + $header = array(t('Name'), t('Weight'), t('Status'), array('data' => t('Operations'), 'colspan' => 2)); + $output = theme('table', array('header' => $header, 'rows' => $rows, 'attributes' => array('id' => 'shortcuts'), 'empty' => t('No shortcuts available. Add a shortcut.', array('@link' => url('admin/config/user-interface/shortcut/' . $form['#shortcut_set_name'] . '/add-link'))))); + $output .= drupal_render($form['actions']); + $output = drupal_render_children($form) . $output; + return $output; +} + +/** + * Form callback: builds the form for adding a new shortcut link. + * + * @param $form + * An associative array containing the structure of the form. + * @param $form_state + * An associative array containing the current state of the form. + * @param $shortcut_set + * An object representing the shortcut set to which the link will be added. + * + * @return + * An array representing the form definition. + * + * @ingroup forms + * @see shortcut_link_edit_validate() + * @see shortcut_link_add_submit() + */ +function shortcut_link_add($form, &$form_state, $shortcut_set) { + drupal_set_title(t('Add new shortcut')); + $form['shortcut_set'] = array( + '#type' => 'value', + '#value' => $shortcut_set, + ); + $form += _shortcut_link_form_elements(); + return $form; +} + +/** + * Form callback: builds the form for editing a shortcut link. + * + * @param $form + * An associative array containing the structure of the form. + * @param $form_state + * An associative array containing the current state of the form. + * @param $shortcut_link + * An array representing the link that is being edited. + * + * @return + * An array representing the form definition. + * + * @ingroup forms + * @see shortcut_link_edit_validate() + * @see shortcut_link_edit_submit() + */ +function shortcut_link_edit($form, &$form_state, $shortcut_link) { + drupal_set_title(t('Editing @shortcut', array('@shortcut' => $shortcut_link['link_title']))); + $form['original_shortcut_link'] = array( + '#type' => 'value', + '#value' => $shortcut_link, + ); + $form += _shortcut_link_form_elements($shortcut_link); + return $form; +} + +/** + * Helper function for building a form for adding or editing shortcut links. + * + * @param $shortcut_link + * (optional) An array representing the shortcut link that will be edited. If + * not provided, a new link will be created. + * + * @return + * An array of form elements. + */ +function _shortcut_link_form_elements($shortcut_link = NULL) { + if (!isset($shortcut_link)) { + $shortcut_link = array( + 'link_title' => '', + 'link_path' => '' + ); + } + else { + $shortcut_link['link_path'] = ($shortcut_link['link_path'] == '') ? '' : drupal_get_path_alias($shortcut_link['link_path']); + } + + $form['shortcut_link']['#tree'] = TRUE; + $form['shortcut_link']['link_title'] = array( + '#type' => 'textfield', + '#title' => t('Name'), + '#description' => t('The name of the shortcut.'), + '#size' => 40, + '#maxlength' => 255, + '#default_value' => $shortcut_link['link_title'], + '#required' => TRUE, + ); + + $form['shortcut_link']['link_path'] = array( + '#type' => 'textfield', + '#title' => t('Path'), + '#description' => t('The path to the shortcut.'), + '#size' => 40, + '#maxlength' => 255, + '#field_prefix' => url(NULL, array('absolute' => TRUE)) . (variable_get('clean_url', 0) ? '' : '?q='), + '#default_value' => $shortcut_link['link_path'], + ); + + $form['#validate'][] = 'shortcut_link_edit_validate'; + + $form['actions'] = array('#type' => 'actions'); + $form['actions']['submit'] = array( + '#type' => 'submit', + '#value' => t('Save'), + ); + + return $form; +} + +/** + * Validation handler for the shortcut link add and edit forms. + */ +function shortcut_link_edit_validate($form, &$form_state) { + if (!shortcut_valid_link($form_state['values']['shortcut_link']['link_path'])) { + form_set_error('shortcut_link][link_path', t('The link must correspond to a valid path on the site.')); + } +} + +/** + * Submit handler for shortcut_link_edit(). + */ +function shortcut_link_edit_submit($form, &$form_state) { + // Normalize the path in case it is an alias. + $shortcut_path = drupal_get_normal_path($form_state['values']['shortcut_link']['link_path']); + if (empty($shortcut_path)) { + $shortcut_path = ''; + } + $form_state['values']['shortcut_link']['link_path'] = $shortcut_path; + + $shortcut_link = array_merge($form_state['values']['original_shortcut_link'], $form_state['values']['shortcut_link']); + + menu_link_save($shortcut_link); + $form_state['redirect'] = 'admin/config/user-interface/shortcut/' . $shortcut_link['menu_name']; + drupal_set_message(t('The shortcut %link has been updated.', array('%link' => $shortcut_link['link_title']))); +} + +/** + * Submit handler for shortcut_link_add(). + */ +function shortcut_link_add_submit($form, &$form_state) { + // Add the shortcut link to the set. + $shortcut_set = $form_state['values']['shortcut_set']; + $shortcut_link = $form_state['values']['shortcut_link']; + $shortcut_link['menu_name'] = $shortcut_set->set_name; + shortcut_admin_add_link($shortcut_link, $shortcut_set, shortcut_max_slots()); + shortcut_set_save($shortcut_set); + $form_state['redirect'] = 'admin/config/user-interface/shortcut/' . $shortcut_link['menu_name']; + drupal_set_message(t('Added a shortcut for %title.', array('%title' => $shortcut_link['link_title']))); +} + +/** + * Adds a link to the end of a shortcut set, keeping within a prescribed limit. + * + * @param $link + * An array representing a shortcut link. + * @param $shortcut_set + * An object representing the shortcut set which the link will be added to. + * The links in the shortcut set will be re-weighted so that the new link is + * at the end, and some existing links may be disabled (if the $limit + * parameter is provided). + * @param $limit + * (optional) The maximum number of links that are allowed to be enabled for + * this shortcut set. If provided, existing links at the end of the list that + * exceed the limit will be automatically disabled. If not provided, no limit + * will be enforced. + */ +function shortcut_admin_add_link($shortcut_link, &$shortcut_set, $limit = NULL) { + if (isset($limit)) { + // Disable any existing links at the end of the list that would cause the + // limit to be exceeded. Take into account whether or not the new link will + // be enabled and count towards the total. + $number_enabled = !empty($shortcut_link['hidden']) ? 0 : 1; + foreach ($shortcut_set->links as &$link) { + if (!$link['hidden']) { + $number_enabled++; + if ($number_enabled > $limit) { + $link['hidden'] = 1; + } + } + } + } + + // Normalize the path in case it is an alias. + $shortcut_link['link_path'] = drupal_get_normal_path($shortcut_link['link_path']); + if (empty($shortcut_link['link_path'])) { + $shortcut_link['link_path'] = ''; + } + + // Add the link to the end of the list. + $shortcut_set->links[] = $shortcut_link; + shortcut_set_reset_link_weights($shortcut_set); +} + +/** + * Form callback: builds the form for editing the shortcut set name. + * + * @param $form + * An associative array containing the structure of the form. + * @param $form_state + * An associative array containing the current state of the form. + * @param object $shortcut_set + * An object representing the shortcut set, as returned from + * shortcut_set_load(). + * + * @return + * An array representing the form definition. + * + * @ingroup forms + * @see shortcut_set_edit_form_validate() + * @see shortcut_set_edit_form_submit() + */ +function shortcut_set_edit_form($form, &$form_state, $shortcut_set) { + $form['shortcut_set'] = array( + '#type' => 'value', + '#value' => $shortcut_set, + ); + $form['title'] = array( + '#type' => 'textfield', + '#title' => t('Set name'), + '#default_value' => $shortcut_set->title, + '#maxlength' => 255, + '#required' => TRUE, + '#weight' => -5, + ); + $form['actions'] = array('#type' => 'actions'); + $form['actions']['submit'] = array( + '#type' => 'submit', + '#value' => t('Save'), + '#weight' => 5, + ); + + return $form; +} + +/** + * Validation handler for shortcut_set_edit_form(). + */ +function shortcut_set_edit_form_validate($form, &$form_state) { + // Check to prevent a duplicate title, if the title was edited from its + // original value. + if ($form_state['values']['title'] != $form_state['values']['shortcut_set']->title && shortcut_set_title_exists($form_state['values']['title'])) { + form_set_error('title', t('The shortcut set %name already exists. Choose another name.', array('%name' => $form_state['values']['title']))); + } +} + +/** + * Submit handler for shortcut_set_edit_form(). + */ +function shortcut_set_edit_form_submit($form, &$form_state) { + $shortcut_set = $form_state['values']['shortcut_set']; + $shortcut_set->title = $form_state['values']['title']; + shortcut_set_save($shortcut_set); + drupal_set_message(t('Updated set name to %set-name.', array('%set-name' => $shortcut_set->title))); + $form_state['redirect'] = "admin/config/user-interface/shortcut/$shortcut_set->set_name"; +} + +/** + * Form callback: builds the confirmation form for deleting a shortcut set. + * + * @param $form + * An associative array containing the structure of the form. + * @param $form_state + * An associative array containing the current state of the form. + * @param object $shortcut_set + * An object representing the shortcut set, as returned from + * shortcut_set_load(). + * + * @return + * An array representing the form definition. + * + * @ingroup forms + * @see shortcut_set_delete_form_submit() + */ +function shortcut_set_delete_form($form, &$form_state, $shortcut_set) { + $form['shortcut_set'] = array( + '#type' => 'value', + '#value' => $shortcut_set->set_name, + ); + + // Find out how many users are directly assigned to this shortcut set, and + // make a message. + $number = db_query('SELECT COUNT(*) FROM {shortcut_set_users} WHERE set_name = :name', array(':name' => $shortcut_set->set_name))->fetchField(); + $info = ''; + if ($number) { + $info .= '

    ' . format_plural($number, + '1 user has chosen or been assigned to this shortcut set.', + '@count users have chosen or been assigned to this shortcut set.') . '

    '; + } + + // Also, if a module implements hook_shortcut_default_set(), it's possible + // that this set is being used as a default set. Add a message about that too. + if (count(module_implements('shortcut_default_set')) > 0) { + $info .= '

    ' . t('If you have chosen this shortcut set as the default for some or all users, they may also be affected by deleting it.') . '

    '; + } + + $form['info'] = array( + '#markup' => $info, + ); + + return confirm_form( + $form, + t('Are you sure you want to delete the shortcut set %title?', array('%title' => $shortcut_set->title)), + 'admin/config/user-interface/shortcut/' . $shortcut_set->set_name, + t('This action cannot be undone.'), + t('Delete'), + t('Cancel') + ); +} + +/** + * Submit handler for shortcut_set_delete_form(). + */ +function shortcut_set_delete_form_submit($form, &$form_state) { + $shortcut_set = shortcut_set_load($form_state['values']['shortcut_set']); + shortcut_set_delete($shortcut_set); + $form_state['redirect'] = 'admin/config/user-interface/shortcut'; + drupal_set_message(t('The shortcut set %title has been deleted.', array('%title' => $shortcut_set->title))); +} + +/** + * Form callback: builds the confirmation form for deleting a shortcut link. + * + * @param $form + * An associative array containing the structure of the form. + * @param $form_state + * An associative array containing the current state of the form. + * @param $shortcut_link + * An array representing the link that will be deleted. + * + * @return + * An array representing the form definition. + * + * @ingroup forms + * @see shortcut_link_delete_submit() + */ +function shortcut_link_delete($form, &$form_state, $shortcut_link) { + $form['shortcut_link'] = array( + '#type' => 'value', + '#value' => $shortcut_link, + ); + + return confirm_form( + $form, + t('Are you sure you want to delete the shortcut %title?', array('%title' => $shortcut_link['link_title'])), + 'admin/config/user-interface/shortcut/' . $shortcut_link['menu_name'], + t('This action cannot be undone.'), + t('Delete'), + t('Cancel') + ); +} + +/** + * Submit handler for shortcut_link_delete_submit(). + */ +function shortcut_link_delete_submit($form, &$form_state) { + $shortcut_link = $form_state['values']['shortcut_link']; + menu_link_delete($shortcut_link['mlid']); + $form_state['redirect'] = 'admin/config/user-interface/shortcut/' . $shortcut_link['menu_name']; + drupal_set_message(t('The shortcut %title has been deleted.', array('%title' => $shortcut_link['link_title']))); +} + +/** + * Menu page callback: creates a new link in the provided shortcut set. + * + * After completion, redirects the user back to where they came from. + * + * @param $shortcut_set + * Returned from shortcut_set_load(). + */ +function shortcut_link_add_inline($shortcut_set) { + if (isset($_REQUEST['token']) && drupal_valid_token($_REQUEST['token'], 'shortcut-add-link') && shortcut_valid_link($_GET['link'])) { + $item = menu_get_item($_GET['link']); + $title = ($item && $item['title']) ? $item['title'] : $_GET['name']; + $link = array( + 'link_title' => $title, + 'link_path' => $_GET['link'], + ); + shortcut_admin_add_link($link, $shortcut_set, shortcut_max_slots()); + if (shortcut_set_save($shortcut_set)) { + drupal_set_message(t('Added a shortcut for %title.', array('%title' => $link['link_title']))); + } + else { + drupal_set_message(t('Unable to add a shortcut for %title.', array('%title' => $link['link_title']))); + } + drupal_goto(); + } + + return MENU_ACCESS_DENIED; +} diff --git a/drupal-dev/modules/shortcut/shortcut.admin.js b/drupal-dev/modules/shortcut/shortcut.admin.js new file mode 100644 index 0000000..422cc4c --- /dev/null +++ b/drupal-dev/modules/shortcut/shortcut.admin.js @@ -0,0 +1,115 @@ +(function ($) { + +/** + * Handle the concept of a fixed number of slots. + * + * This behavior is dependent on the tableDrag behavior, since it uses the + * objects initialized in that behavior to update the row. + */ +Drupal.behaviors.shortcutDrag = { + attach: function (context, settings) { + if (Drupal.tableDrag) { + var table = $('table#shortcuts'), + visibleLength = 0, + slots = 0, + tableDrag = Drupal.tableDrag.shortcuts; + $('> tbody > tr, > tr', table) + .filter(':visible') + .filter(':odd').filter('.odd') + .removeClass('odd').addClass('even') + .end().end() + .filter(':even').filter('.even') + .removeClass('even').addClass('odd') + .end().end() + .end() + .filter('.shortcut-slot-empty').each(function(index) { + if ($(this).is(':visible')) { + visibleLength++; + } + slots++; + }); + + // Add a handler for when a row is swapped. + tableDrag.row.prototype.onSwap = function (swappedRow) { + var disabledIndex = $(table).find('tr').index($(table).find('tr.shortcut-status-disabled')) - slots - 2, + count = 0; + $(table).find('tr.shortcut-status-enabled').nextAll(':not(.shortcut-slot-empty)').each(function(index) { + if (index < disabledIndex) { + count++; + } + }); + var total = slots - count; + if (total == -1) { + var disabled = $(table).find('tr.shortcut-status-disabled'); + // To maintain the shortcut links limit, we need to move the last + // element from the enabled section to the disabled section. + var changedRow = disabled.prevAll(':not(.shortcut-slot-empty)').not($(this.element)).get(0); + disabled.after(changedRow); + if ($(changedRow).hasClass('draggable')) { + // The dropped element will automatically be marked as changed by + // the tableDrag system. However, the row that swapped with it + // has moved to the "disabled" section, so we need to force its + // status to be disabled and mark it also as changed. + var changedRowObject = new tableDrag.row(changedRow, 'mouse', false, 0, true); + changedRowObject.markChanged(); + tableDrag.rowStatusChange(changedRowObject); + } + } + else if (total != visibleLength) { + if (total > visibleLength) { + // Less slots on screen than needed. + $('.shortcut-slot-empty:hidden:last').show(); + visibleLength++; + } + else { + // More slots on screen than needed. + $('.shortcut-slot-empty:visible:last').hide(); + visibleLength--; + } + } + }; + + // Add a handler so when a row is dropped, update fields dropped into new regions. + tableDrag.onDrop = function () { + tableDrag.rowStatusChange(this.rowObject); + return true; + }; + + tableDrag.rowStatusChange = function (rowObject) { + // Use "status-message" row instead of "status" row because + // "status-{status_name}-message" is less prone to regexp match errors. + var statusRow = $(rowObject.element).prevAll('tr.shortcut-status').get(0); + var statusName = statusRow.className.replace(/([^ ]+[ ]+)*shortcut-status-([^ ]+)([ ]+[^ ]+)*/, '$2'); + var statusField = $('select.shortcut-status-select', rowObject.element); + statusField.val(statusName); + }; + + tableDrag.restripeTable = function () { + // :even and :odd are reversed because jQuery counts from 0 and + // we count from 1, so we're out of sync. + // Match immediate children of the parent element to allow nesting. + $('> tbody > tr:visible, > tr:visible', this.table) + .filter(':odd').filter('.odd') + .removeClass('odd').addClass('even') + .end().end() + .filter(':even').filter('.even') + .removeClass('even').addClass('odd'); + }; + } + } +}; + +/** + * Make it so when you enter text into the "New set" textfield, the + * corresponding radio button gets selected. + */ +Drupal.behaviors.newSet = { + attach: function (context, settings) { + var selectDefault = function() { + $(this).closest('form').find('.form-item-set .form-type-radio:last input').attr('checked', 'checked'); + }; + $('div.form-item-new input').focus(selectDefault).keyup(selectDefault); + } +}; + +})(jQuery); diff --git a/drupal-dev/modules/shortcut/shortcut.api.php b/drupal-dev/modules/shortcut/shortcut.api.php new file mode 100644 index 0000000..717a7c9 --- /dev/null +++ b/drupal-dev/modules/shortcut/shortcut.api.php @@ -0,0 +1,42 @@ +roles)) { + return variable_get('mymodule_shortcut_admin_default_set'); + } +} + +/** + * @} End of "addtogroup hooks". + */ diff --git a/drupal-dev/modules/shortcut/shortcut.css b/drupal-dev/modules/shortcut/shortcut.css new file mode 100644 index 0000000..3afcb94 --- /dev/null +++ b/drupal-dev/modules/shortcut/shortcut.css @@ -0,0 +1,106 @@ +div#toolbar a#edit-shortcuts { + float: right; + padding: 5px 10px 5px 5px; + line-height: 24px; + color: #fefefe; +} +div#toolbar a#edit-shortcuts:focus, +div#toolbar a#edit-shortcuts:hover, +div#toolbar a#edit-shortcuts.active { + color: #fff; + text-decoration: underline; +} + +div#toolbar div.toolbar-shortcuts ul { + padding: 5px 0 2px 0; + height: 28px; + line-height: 24px; + float: left; /* LTR */ + margin-left:5px; /* LTR */ +} + +div#toolbar div.toolbar-shortcuts ul li a { + padding: 0 5px 0 5px; + margin-right: 5px; /* LTR */ + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; +} + +div#toolbar div.toolbar-shortcuts ul li a:focus, +div#toolbar div.toolbar-shortcuts ul li a:hover, +div#toolbar div.toolbar-shortcuts ul li a.active:focus { + background: #555; +} + +div#toolbar div.toolbar-shortcuts ul li a.active:hover, +div#toolbar div.toolbar-shortcuts ul li a.active { + background: #000; +} + +div#toolbar div.toolbar-shortcuts span.icon { + float: left; /* LTR */ + background: #444; + width: 30px; + height: 30px; + margin-right: 5px; /* LTR */ + -moz-border-radius: 5px; + -webkit-border-radius: 5px; + border-radius: 5px; +} + +div.add-or-remove-shortcuts { + padding-top: 5px; +} + +div.add-or-remove-shortcuts a span.icon { + display: block; + width: 12px; + background: transparent url(shortcut.png) no-repeat scroll 0 0; + height: 12px; + float: left; + margin-left:8px; +} + +div.add-shortcut a:focus span.icon, +div.add-shortcut a:hover span.icon { + background-position: 0 -12px; +} +div.remove-shortcut a span.icon { + background-position: -12px 0; +} +div.remove-shortcut a:focus span.icon, +div.remove-shortcut a:hover span.icon { + background-position: -12px -12px; +} + +div.add-or-remove-shortcuts a span.text { + float: left; + padding-left:10px; + display: none; +} + +div.add-or-remove-shortcuts a:focus span.text, +div.add-or-remove-shortcuts a:hover span.text { + font-size: 10px; + line-height: 12px; + color: #fff; + background-color: #5f605b; + display: block; + padding-right: 6px; /* LTR */ + cursor: pointer; + -moz-border-radius: 0 5px 5px 0; /* LTR */ + -webkit-border-top-right-radius: 5px; /* LTR */ + -webkit-border-bottom-right-radius: 5px; /* LTR */ + border-radius: 0 5px 5px 0; /* LTR */ +} + +#shortcut-set-switch .form-type-radios { + padding-bottom: 0; + margin-bottom: 0; +} + +#shortcut-set-switch .form-item-new { + padding-top: 0; + padding-left: 17px; /* LTR */ +} diff --git a/drupal-dev/modules/shortcut/shortcut.info b/drupal-dev/modules/shortcut/shortcut.info new file mode 100644 index 0000000..4b8f7b5 --- /dev/null +++ b/drupal-dev/modules/shortcut/shortcut.info @@ -0,0 +1,13 @@ +name = Shortcut +description = Allows users to manage customizable lists of shortcut links. +package = Core +version = VERSION +core = 7.x +files[] = shortcut.test +configure = admin/config/user-interface/shortcut + +; Information added by Drupal.org packaging script on 2014-01-15 +version = "7.26" +project = "drupal" +datestamp = "1389815930" + diff --git a/drupal-dev/modules/shortcut/shortcut.install b/drupal-dev/modules/shortcut/shortcut.install new file mode 100644 index 0000000..60ee6be --- /dev/null +++ b/drupal-dev/modules/shortcut/shortcut.install @@ -0,0 +1,115 @@ +title = $t('Default'); + $shortcut_set->links = array( + array( + 'link_path' => 'node/add', + 'link_title' => $t('Add content'), + 'weight' => -20, + ), + array( + 'link_path' => 'admin/content', + 'link_title' => $t('Find content'), + 'weight' => -19, + ), + ); + // If Drupal is being installed, rebuild the menu before saving the shortcut + // set, to make sure the links defined above can be correctly saved. (During + // installation, the menu might not have been built at all yet, or it might + // have been built but without the node module's links in it.) + if (drupal_installation_attempted()) { + menu_rebuild(); + } + shortcut_set_save($shortcut_set); +} + +/** + * Implements hook_uninstall(). + */ +function shortcut_uninstall() { + drupal_load('module', 'shortcut'); + // Delete the menu links associated with each shortcut set. + foreach (shortcut_sets() as $shortcut_set) { + menu_delete_links($shortcut_set->set_name); + } +} + +/** + * Implements hook_schema(). + */ +function shortcut_schema() { + $schema['shortcut_set'] = array( + 'description' => 'Stores information about sets of shortcuts links.', + 'fields' => array( + 'set_name' => array( + 'type' => 'varchar', + 'length' => 32, + 'not null' => TRUE, + 'default' => '', + 'description' => "Primary Key: The {menu_links}.menu_name under which the set's links are stored.", + ), + 'title' => array( + 'type' => 'varchar', + 'length' => 255, + 'not null' => TRUE, + 'default' => '', + 'description' => 'The title of the set.', + ), + ), + 'primary key' => array('set_name'), + 'foreign keys' => array( + 'menu_name' => array( + 'table' => 'menu_links', + 'columns' => array('set_name' => 'menu_name'), + ), + ), + ); + + $schema['shortcut_set_users'] = array( + 'description' => 'Maps users to shortcut sets.', + 'fields' => array( + 'uid' => array( + 'type' => 'int', + 'unsigned' => TRUE, + 'not null' => TRUE, + 'default' => 0, + 'description' => 'The {users}.uid for this set.', + ), + 'set_name' => array( + 'type' => 'varchar', + 'length' => 32, + 'not null' => TRUE, + 'default' => '', + 'description' => "The {shortcut_set}.set_name that will be displayed for this user.", + ), + ), + 'primary key' => array('uid'), + 'indexes' => array( + 'set_name' => array('set_name'), + ), + 'foreign keys' => array( + 'set_user' => array( + 'table' => 'users', + 'columns' => array('uid' => 'uid'), + ), + 'set_name' => array( + 'table' => 'shortcut_set', + 'columns' => array('set_name' => 'set_name'), + ), + ), + ); + + return $schema; +} diff --git a/drupal-dev/modules/shortcut/shortcut.module b/drupal-dev/modules/shortcut/shortcut.module new file mode 100644 index 0000000..2f6db0a --- /dev/null +++ b/drupal-dev/modules/shortcut/shortcut.module @@ -0,0 +1,767 @@ +' . t('About') . ''; + $output .= '

    ' . t('The Shortcut module allows users to create sets of shortcut links to commonly-visited pages of the site. Shortcuts are contained within sets. Each user with Select any shortcut set permission can select a shortcut set created by anyone at the site. For more information, see the online handbook entry for Shortcut module.', array('@shortcut' => 'http://drupal.org/documentation/modules/shortcut/')) . '

    '; + $output .= '

    ' . t('Uses') . '

    '; + $output .= '
    ' . t('Administering shortcuts') . '
    '; + $output .= '
    ' . t('Users with the Administer shortcuts permission can manage shortcut sets and edit the shortcuts within sets from the Shortcuts administration page.', array('@shortcuts' => url('admin/config/user-interface/shortcut'))) . '
    '; + $output .= '
    ' . t('Choosing shortcut sets') . '
    '; + $output .= '
    ' . t('Users with permission to switch shortcut sets can choose a shortcut set to use from the Shortcuts tab of their user account page.') . '
    '; + $output .= '
    ' . t('Adding and removing shortcuts') . '
    '; + $output .= '
    ' . t('The Shortcut module creates an add/remove link for each page on your site; the link lets you add or remove the current page from the currently-enabled set of shortcuts (if your theme displays it and you have permission to edit your shortcut set). The core Seven administration theme displays this link next to the page title, as a small + or - sign. If you click on the + sign, you will add that page to your preferred set of shortcuts. If the page is already part of your shortcut set, the link will be a - sign, and will allow you to remove the current page from your shortcut set.') . '
    '; + $output .= '
    ' . t('Displaying shortcuts') . '
    '; + $output .= '
    ' . t('You can display your shortcuts by enabling the Shortcuts block on the Blocks administration page. Certain administrative modules also display your shortcuts; for example, the core Toolbar module displays them near the top of the page, along with an Edit shortcuts link.', array('@blocks' => url('admin/structure/block'), '@toolbar-help' => url('admin/help/toolbar'))) . '
    '; + $output .= '
    '; + return $output; + + case 'admin/config/user-interface/shortcut': + case 'admin/config/user-interface/shortcut/%': + if (user_access('switch shortcut sets')) { + $output = '

    ' . t('Define which shortcut set you are using on the Shortcuts tab of your account page.', array('@shortcut-link' => url("user/{$user->uid}/shortcuts"))) . '

    '; + return $output; + } + } +} + +/** + * Implements hook_permission(). + */ +function shortcut_permission() { + return array( + 'administer shortcuts' => array( + 'title' => t('Administer shortcuts'), + ), + 'customize shortcut links' => array( + 'title' => t('Edit current shortcut set'), + 'description' => t('Editing the current shortcut set will affect other users if that set has been assigned to or selected by other users. Granting "Select any shortcut set" permission along with this permission will grant permission to edit any shortcut set.'), + ), + 'switch shortcut sets' => array( + 'title' => t('Select any shortcut set'), + 'description' => t('From all shortcut sets, select one to be own active set. Without this permission, an administrator selects shortcut sets for users.'), + ), + ); +} + +/** + * Implements hook_menu(). + */ +function shortcut_menu() { + $items['admin/config/user-interface/shortcut'] = array( + 'title' => 'Shortcuts', + 'description' => 'Add and modify shortcut sets.', + 'page callback' => 'shortcut_set_admin', + 'access arguments' => array('administer shortcuts'), + 'file' => 'shortcut.admin.inc', + ); + $items['admin/config/user-interface/shortcut/add-set'] = array( + 'title' => 'Add shortcut set', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('shortcut_set_add_form'), + 'access arguments' => array('administer shortcuts'), + 'type' => MENU_LOCAL_ACTION, + 'file' => 'shortcut.admin.inc', + ); + $items['admin/config/user-interface/shortcut/%shortcut_set'] = array( + 'title' => 'Edit shortcuts', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('shortcut_set_customize', 4), + 'title callback' => 'shortcut_set_title_callback', + 'title arguments' => array(4), + 'access callback' => 'shortcut_set_edit_access', + 'access arguments' => array(4), + 'file' => 'shortcut.admin.inc', + ); + $items['admin/config/user-interface/shortcut/%shortcut_set/links'] = array( + 'title' => 'List links', + 'type' => MENU_DEFAULT_LOCAL_TASK, + ); + $items['admin/config/user-interface/shortcut/%shortcut_set/edit'] = array( + 'title' => 'Edit set name', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('shortcut_set_edit_form', 4), + 'access callback' => 'shortcut_set_edit_access', + 'access arguments' => array(4), + 'type' => MENU_LOCAL_TASK, + 'file' => 'shortcut.admin.inc', + 'weight' => 10, + ); + $items['admin/config/user-interface/shortcut/%shortcut_set/delete'] = array( + 'title' => 'Delete shortcut set', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('shortcut_set_delete_form', 4), + 'access callback' => 'shortcut_set_delete_access', + 'access arguments' => array(4), + 'file' => 'shortcut.admin.inc', + ); + $items['admin/config/user-interface/shortcut/%shortcut_set/add-link'] = array( + 'title' => 'Add shortcut', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('shortcut_link_add', 4), + 'access callback' => 'shortcut_set_edit_access', + 'access arguments' => array(4), + 'type' => MENU_LOCAL_ACTION, + 'file' => 'shortcut.admin.inc', + ); + $items['admin/config/user-interface/shortcut/%shortcut_set/add-link-inline'] = array( + 'title' => 'Add shortcut', + 'page callback' => 'shortcut_link_add_inline', + 'page arguments' => array(4), + 'access callback' => 'shortcut_set_edit_access', + 'access arguments' => array(4), + 'type' => MENU_CALLBACK, + 'file' => 'shortcut.admin.inc', + ); + $items['admin/config/user-interface/shortcut/link/%menu_link'] = array( + 'title' => 'Edit shortcut', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('shortcut_link_edit', 5), + 'access callback' => 'shortcut_link_access', + 'access arguments' => array(5), + 'file' => 'shortcut.admin.inc', + ); + $items['admin/config/user-interface/shortcut/link/%menu_link/delete'] = array( + 'title' => 'Delete shortcut', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('shortcut_link_delete', 5), + 'access callback' => 'shortcut_link_access', + 'access arguments' => array(5), + 'file' => 'shortcut.admin.inc', + ); + $items['user/%user/shortcuts'] = array( + 'title' => 'Shortcuts', + 'page callback' => 'drupal_get_form', + 'page arguments' => array('shortcut_set_switch', 1), + 'access callback' => 'shortcut_set_switch_access', + 'access arguments' => array(1), + 'type' => MENU_LOCAL_TASK, + 'file' => 'shortcut.admin.inc', + ); + + return $items; +} + +/** + * Implements hook_admin_paths(). + */ +function shortcut_admin_paths() { + $paths = array( + 'user/*/shortcuts' => TRUE, + ); + return $paths; +} + +/** + * Implements hook_theme(). + */ +function shortcut_theme() { + return array( + 'shortcut_set_customize' => array( + 'render element' => 'form', + 'file' => 'shortcut.admin.inc', + ), + ); +} + +/** + * Implements hook_block_info(). + */ +function shortcut_block_info() { + $blocks['shortcuts']['info'] = t('Shortcuts'); + // Shortcut blocks can't be cached because each menu item can have a custom + // access callback. menu.inc manages its own caching. + $blocks['shortcuts']['cache'] = DRUPAL_NO_CACHE; + return $blocks; +} + +/** + * Implements hook_block_view(). + */ +function shortcut_block_view($delta = '') { + if ($delta == 'shortcuts') { + $shortcut_set = shortcut_current_displayed_set(); + $data['subject'] = t('@shortcut_set shortcuts', array('@shortcut_set' => $shortcut_set->title)); + $data['content'] = shortcut_renderable_links($shortcut_set); + return $data; + } +} + +/** + * Access callback for editing a shortcut set. + * + * @param object $shortcut_set + * (optional) The shortcut set to be edited. If not set, the current user's + * shortcut set will be used. + * + * @return + * TRUE if the current user has access to edit the shortcut set, FALSE + * otherwise. + */ +function shortcut_set_edit_access($shortcut_set = NULL) { + // Sufficiently-privileged users can edit their currently displayed shortcut + // set, but not other sets. Shortcut administrators can edit any set. + if (user_access('administer shortcuts')) { + return TRUE; + } + if (user_access('customize shortcut links')) { + return !isset($shortcut_set) || $shortcut_set == shortcut_current_displayed_set(); + } + return FALSE; +} + +/** + * Access callback for deleting a shortcut set. + * + * @param $shortcut_set + * The shortcut set to be deleted. + * + * @return + * TRUE if the current user has access to delete shortcut sets and this is + * not the site-wide default set; FALSE otherwise. + */ +function shortcut_set_delete_access($shortcut_set) { + // Only admins can delete sets. + if (!user_access('administer shortcuts')) { + return FALSE; + } + + // Never let the default shortcut set be deleted. + if ($shortcut_set->set_name == SHORTCUT_DEFAULT_SET_NAME) { + return FALSE; + } + + return TRUE; +} + +/** + * Access callback for switching the shortcut set assigned to a user account. + * + * @param object $account + * (optional) The user account whose shortcuts will be switched. If not set, + * permissions will be checked for switching the logged-in user's own + * shortcut set. + * + * @return + * TRUE if the current user has access to switch the shortcut set of the + * provided account, FALSE otherwise. + */ +function shortcut_set_switch_access($account = NULL) { + global $user; + + if (user_access('administer shortcuts')) { + // Administrators can switch anyone's shortcut set. + return TRUE; + } + + if (!user_access('switch shortcut sets')) { + // The user has no permission to switch anyone's shortcut set. + return FALSE; + } + + if (!isset($account) || $user->uid == $account->uid) { + // Users with the 'switch shortcut sets' permission can switch their own + // shortcuts sets. + return TRUE; + } + + return FALSE; +} + +/** + * Access callback for editing a link in a shortcut set. + */ +function shortcut_link_access($menu_link) { + // The link must belong to a shortcut set that the current user has access + // to edit. + if ($shortcut_set = shortcut_set_load($menu_link['menu_name'])) { + return shortcut_set_edit_access($shortcut_set); + } + return FALSE; +} + +/** + * Loads the data for a shortcut set. + * + * @param $set_name + * The name of the shortcut set to load. + * + * @return object + * If the shortcut set exists, an object containing the following properties: + * - 'set_name': The internal name of the shortcut set. + * - 'title': The title of the shortcut set. + * - 'links': An array of links associated with this shortcut set. + * If the shortcut set does not exist, the function returns FALSE. + */ +function shortcut_set_load($set_name) { + $set = db_select('shortcut_set', 'ss') + ->fields('ss') + ->condition('set_name', $set_name) + ->execute() + ->fetchObject(); + if (!$set) { + return FALSE; + } + $set->links = menu_load_links($set_name); + return $set; +} + +/** + * Saves a shortcut set. + * + * @param $shortcut_set + * An object containing the following properties: + * - 'title': The title of the shortcut set. + * - 'set_name': (optional) The internal name of the shortcut set. If + * omitted, a new shortcut set will be created, and the 'set_name' property + * will be added to the passed-in object. + * - 'links': (optional) An array of menu links to save for the shortcut set. + * Each link is an array containing at least the following keys (which will + * be expanded to fill in other default values after the shortcut set is + * saved): + * - 'link_path': The Drupal path or external path that the link points to. + * - 'link_title': The title of the link. + * Any other keys accepted by menu_link_save() may also be provided. + * + * @return + * A constant which is either SAVED_NEW or SAVED_UPDATED depending on whether + * a new set was created or an existing one was updated. + * + * @see menu_link_save() + */ +function shortcut_set_save(&$shortcut_set) { + // First save the shortcut set itself. + if (isset($shortcut_set->set_name)) { + $return = drupal_write_record('shortcut_set', $shortcut_set, 'set_name'); + } + else { + $shortcut_set->set_name = shortcut_set_get_unique_name(); + $return = drupal_write_record('shortcut_set', $shortcut_set); + } + // If links were provided for the set, save them. + if (isset($shortcut_set->links)) { + foreach ($shortcut_set->links as &$link) { + // Do not specifically associate these links with the shortcut module, + // since other modules may make them editable via the menu system. + // However, we do need to specify the correct menu name. + $link['menu_name'] = $shortcut_set->set_name; + $link['plid'] = 0; + menu_link_save($link); + } + // Make sure that we have a return value, since if the links were updated + // but the shortcut set was not, the call to drupal_write_record() above + // would not return an indication that anything had changed. + if (empty($return)) { + $return = SAVED_UPDATED; + } + } + return $return; +} + +/** + * Deletes a shortcut set. + * + * Note that the default set cannot be deleted. + * + * @param $shortcut_set + * An object representing the shortcut set to delete. + * + * @return + * TRUE if the set was deleted, FALSE otherwise. + */ +function shortcut_set_delete($shortcut_set) { + // Don't allow deletion of the system default shortcut set. + if ($shortcut_set->set_name == SHORTCUT_DEFAULT_SET_NAME) { + return FALSE; + } + + // First, delete any user assignments for this set, so that each of these + // users will go back to using whatever default set applies. + db_delete('shortcut_set_users') + ->condition('set_name', $shortcut_set->set_name) + ->execute(); + + // Next, delete the menu links for this set. + menu_delete_links($shortcut_set->set_name); + + // Finally, delete the set itself. + $deleted = db_delete('shortcut_set') + ->condition('set_name', $shortcut_set->set_name) + ->execute(); + + return (bool) $deleted; +} + +/** + * Resets the link weights in a shortcut set to match their current order. + * + * This function can be used, for example, when a new shortcut link is added to + * the set. If the link is added to the end of the array and this function is + * called, it will force that link to display at the end of the list. + * + * @param object $shortcut_set + * An object representing a shortcut set. The link weights of the passed-in + * object will be reset as described above. + */ +function shortcut_set_reset_link_weights(&$shortcut_set) { + $weight = -50; + foreach ($shortcut_set->links as &$link) { + $link['weight'] = $weight; + $weight++; + } +} + +/** + * Assigns a user to a particular shortcut set. + * + * @param $shortcut_set + * An object representing the shortcut set. + * @param $account + * A user account that will be assigned to use the set. + */ +function shortcut_set_assign_user($shortcut_set, $account) { + db_merge('shortcut_set_users') + ->key(array('uid' => $account->uid)) + ->fields(array('set_name' => $shortcut_set->set_name)) + ->execute(); + drupal_static_reset('shortcut_current_displayed_set'); +} + +/** + * Unassigns a user from any shortcut set they may have been assigned to. + * + * The user will go back to using whatever default set applies. + * + * @param $account + * A user account that will be removed from the shortcut set assignment. + * + * @return + * TRUE if the user was previously assigned to a shortcut set and has been + * successfully removed from it. FALSE if the user was already not assigned + * to any set. + */ +function shortcut_set_unassign_user($account) { + $deleted = db_delete('shortcut_set_users') + ->condition('uid', $account->uid) + ->execute(); + return (bool) $deleted; +} + +/** + * Returns the current displayed shortcut set for the provided user account. + * + * @param $account + * (optional) The user account whose shortcuts will be returned. Defaults to + * the currently logged-in user. + * + * @return + * An object representing the shortcut set that should be displayed to the + * current user. If the user does not have an explicit shortcut set defined, + * the default set is returned. + */ +function shortcut_current_displayed_set($account = NULL) { + $shortcut_sets = &drupal_static(__FUNCTION__, array()); + global $user; + if (!isset($account)) { + $account = $user; + } + // Try to return a shortcut set from the static cache. + if (isset($shortcut_sets[$account->uid])) { + return $shortcut_sets[$account->uid]; + } + // If none was found, try to find a shortcut set that is explicitly assigned + // to this user. + $query = db_select('shortcut_set', 's'); + $query->addField('s', 'set_name'); + $query->join('shortcut_set_users', 'u', 's.set_name = u.set_name'); + $query->condition('u.uid', $account->uid); + $shortcut_set_name = $query->execute()->fetchField(); + if ($shortcut_set_name) { + $shortcut_set = shortcut_set_load($shortcut_set_name); + } + // Otherwise, use the default set. + else { + $shortcut_set = shortcut_default_set($account); + } + + $shortcut_sets[$account->uid] = $shortcut_set; + return $shortcut_set; +} + +/** + * Returns the default shortcut set for a given user account. + * + * @param object $account + * (optional) The user account whose default shortcut set will be returned. + * If not provided, the function will return the currently logged-in user's + * default shortcut set. + * + * @return + * An object representing the default shortcut set. + */ +function shortcut_default_set($account = NULL) { + global $user; + if (!isset($account)) { + $account = $user; + } + + // Allow modules to return a default shortcut set name. Since we can only + // have one, we allow the last module which returns a valid result to take + // precedence. If no module returns a valid set, fall back on the site-wide + // default, which is the lowest-numbered shortcut set. + $suggestions = array_reverse(module_invoke_all('shortcut_default_set', $account)); + $suggestions[] = SHORTCUT_DEFAULT_SET_NAME; + foreach ($suggestions as $name) { + if ($shortcut_set = shortcut_set_load($name)) { + break; + } + } + + return $shortcut_set; +} + +/** + * Returns a unique, machine-readable shortcut set name. + */ +function shortcut_set_get_unique_name() { + // Shortcut sets are numbered sequentially, so we keep trying until we find + // one that is available. For better performance, we start with a number + // equal to one more than the current number of shortcut sets, so that if + // no shortcut sets have been deleted from the database, this will + // automatically give us the correct one. + $number = db_query("SELECT COUNT(*) FROM {shortcut_set}")->fetchField() + 1; + do { + $name = shortcut_set_name($number); + $number++; + } while ($shortcut_set = shortcut_set_load($name)); + return $name; +} + +/** + * Returns the name of a shortcut set, based on a provided number. + * + * All shortcut sets have names like "shortcut-set-N" so that they can be + * matched with a properly-namespaced entry in the {menu_links} table. + * + * @param $number + * A number representing the shortcut set whose name should be retrieved. + * + * @return + * A string representing the expected shortcut name. + */ +function shortcut_set_name($number) { + return "shortcut-set-$number"; +} + +/** + * Returns an array of all shortcut sets, keyed by the set name. + * + * @return + * An array of shortcut sets. Note that only the basic shortcut set + * properties (name and title) are returned by this function, not the list + * of menu links that belong to the set. + */ +function shortcut_sets() { + return db_select('shortcut_set', 'ss') + ->fields('ss') + ->execute() + ->fetchAllAssoc('set_name'); +} + +/** + * Check to see if a shortcut set with the given title already exists. + * + * @param $title + * Human-readable name of the shortcut set to check. + * + * @return + * TRUE if a shortcut set with that title exists; FALSE otherwise. + */ +function shortcut_set_title_exists($title) { + return (bool) db_query_range('SELECT 1 FROM {shortcut_set} WHERE title = :title', 0, 1, array(':title' => $title))->fetchField(); +} + +/** + * Determines if a path corresponds to a valid shortcut link. + * + * @param $path + * The path to the link. + * @return + * TRUE if the shortcut link is valid, FALSE otherwise. Valid links are ones + * that correspond to actual paths on the site. + * + * @see menu_edit_item_validate() + */ +function shortcut_valid_link($path) { + // Do not use URL aliases. + $normal_path = drupal_get_normal_path($path); + if ($path != $normal_path) { + $path = $normal_path; + } + // An empty path is valid too and will be converted to . + return (!url_is_external($path) && menu_get_item($path)) || empty($path) || $path == ''; +} + +/** + * Returns an array of shortcut links, suitable for rendering. + * + * @param $shortcut_set + * (optional) An object representing the set whose links will be displayed. + * If not provided, the user's current set will be displayed. + * @return + * An array of shortcut links, in the format returned by the menu system. + * + * @see menu_tree() + */ +function shortcut_renderable_links($shortcut_set = NULL) { + if (!isset($shortcut_set)) { + $shortcut_set = shortcut_current_displayed_set(); + } + return menu_tree($shortcut_set->set_name); +} + +/** + * Implements hook_preprocess_page(). + */ +function shortcut_preprocess_page(&$variables) { + // Only display the shortcut link if the user has the ability to edit + // shortcuts and if the page's actual content is being shown (for example, + // we do not want to display it on "access denied" or "page not found" + // pages). + if (shortcut_set_edit_access() && ($item = menu_get_item()) && $item['access']) { + $link = $_GET['q']; + $query_parameters = drupal_get_query_parameters(); + if (!empty($query_parameters)) { + $link .= '?' . drupal_http_build_query($query_parameters); + } + $query = array( + 'link' => $link, + 'name' => drupal_get_title(), + ); + $query += drupal_get_destination(); + + $shortcut_set = shortcut_current_displayed_set(); + + // Check if $link is already a shortcut and set $link_mode accordingly. + foreach ($shortcut_set->links as $shortcut) { + if ($link == $shortcut['link_path']) { + $mlid = $shortcut['mlid']; + break; + } + } + $link_mode = isset($mlid) ? "remove" : "add"; + + if ($link_mode == "add") { + $query['token'] = drupal_get_token('shortcut-add-link'); + $link_text = shortcut_set_switch_access() ? t('Add to %shortcut_set shortcuts', array('%shortcut_set' => $shortcut_set->title)) : t('Add to shortcuts'); + $link_path = 'admin/config/user-interface/shortcut/' . $shortcut_set->set_name . '/add-link-inline'; + } + else { + $query['mlid'] = $mlid; + $link_text = shortcut_set_switch_access() ? t('Remove from %shortcut_set shortcuts', array('%shortcut_set' => $shortcut_set->title)) : t('Remove from shortcuts'); + $link_path = 'admin/config/user-interface/shortcut/link/' . $mlid . '/delete'; + } + + if (theme_get_setting('shortcut_module_link')) { + $variables['title_suffix']['add_or_remove_shortcut'] = array( + '#attached' => array('css' => array(drupal_get_path('module', 'shortcut') . '/shortcut.css')), + '#prefix' => '', + ); + } + } +} + +/** + * Implements hook_page_alter(). + */ +function shortcut_page_alter(&$page) { + if (isset($page['page_top']['toolbar'])) { + // If the toolbar is available, add a pre-render function to display the + // current shortcuts in the toolbar drawer. + $page['page_top']['toolbar']['#pre_render'][] = 'shortcut_toolbar_pre_render'; + } +} + +/** + * Pre-render function for adding shortcuts to the toolbar drawer. + */ +function shortcut_toolbar_pre_render($toolbar) { + $links = shortcut_renderable_links(); + $links['#attached'] = array('css' => array(drupal_get_path('module', 'shortcut') . '/shortcut.css')); + $links['#prefix'] = '
    '; + $links['#suffix'] = '
    '; + $shortcut_set = shortcut_current_displayed_set(); + $configure_link = NULL; + if (shortcut_set_edit_access($shortcut_set)) { + $configure_link = array( + '#type' => 'link', + '#title' => t('Edit shortcuts'), + '#href' => 'admin/config/user-interface/shortcut/' . $shortcut_set->set_name, + '#options' => array('attributes' => array('id' => 'edit-shortcuts')), + ); + } + + $drawer = array( + 'shortcuts' => $links, + 'configure' => $configure_link, + ); + + $toolbar['toolbar_drawer'][] = $drawer; + return $toolbar; +} + +/** + * Returns the sanitized title of a shortcut set. + * + * Deprecated. This function was previously used as a menu item title callback + * but has been replaced by shortcut_set_title_callback() (which does not + * sanitize the title, since the menu system does that automatically). In + * Drupal 7, use that function for title callbacks, and call check_plain() + * directly if you need a sanitized title. In Drupal 8, this function will be + * restored as a title callback and therefore will no longer sanitize its + * output. + * + * @param $shortcut_set + * An object representing the shortcut set, as returned by + * shortcut_set_load(). + */ +function shortcut_set_title($shortcut_set) { + return check_plain($shortcut_set->title); +} + +/** + * Returns the title of a shortcut set. + * + * Title callback for the editing pages for shortcut sets. + * + * @param $shortcut_set + * An object representing the shortcut set, as returned by + * shortcut_set_load(). + */ +function shortcut_set_title_callback($shortcut_set) { + return $shortcut_set->title; +} diff --git a/drupal-dev/modules/shortcut/shortcut.png b/drupal-dev/modules/shortcut/shortcut.png new file mode 100644 index 0000000000000000000000000000000000000000..2924557bfaab7bee329231c8bd3d821a32b9e031 GIT binary patch literal 558 zcmeAS@N?(olHy`uVBq!ia0vp^5kPc*TmOBdg~b>rc~2iI?0`~Ktm?c29*-n_AN>7u&2y7u;VKR>^moE&Ls zX%7#Ny?gh%y1EJp2~|{7Y}vBqU1$1oy9>?JqOST2Oq_5rMaa|f zNwG!U9R0H!CED$}6aGKUVQTc*bish<*F^6$KRwO5+m6!4#kXd-&Hb12DO2r)#Sh12 zN7i}?ZP!vP-P}Am>Dinq>#9@VY+JT2xi)0N_Vb6|$+g(M77jJx*(mh?<`2!&u3_Kz zp1*ef&(-QTe?m-+cAYv9+O{t3K~|fWSBi|z#EYR^>w-$QvV~_Cq`tB$tJ5l0_%MI| z)i0}$6yCpnbCJ%^c&BCmO!fQDKK*myzmU<@tIwiSyt zJRV{e=4|e?Om&Y!@T)M@mC;i#{7PXrKYC`TW^DOw!+77=admin_user = $this->drupalCreateUser(array('access toolbar', 'administer shortcuts', 'view the administration theme', 'create article content', 'create page content', 'access content overview')); + $this->shortcut_user = $this->drupalCreateUser(array('customize shortcut links', 'switch shortcut sets')); + + // Create a node. + $this->node = $this->drupalCreateNode(array('type' => 'article')); + + // Log in as admin and grab the default shortcut set. + $this->drupalLogin($this->admin_user); + $this->set = shortcut_set_load(SHORTCUT_DEFAULT_SET_NAME); + shortcut_set_assign_user($this->set, $this->admin_user); + } + + /** + * Creates a generic shortcut set. + */ + function generateShortcutSet($title = '', $default_links = TRUE) { + $set = new stdClass(); + $set->title = empty($title) ? $this->randomName(10) : $title; + if ($default_links) { + $set->links = array(); + $set->links[] = $this->generateShortcutLink('node/add'); + $set->links[] = $this->generateShortcutLink('admin/content'); + } + shortcut_set_save($set); + + return $set; + } + + /** + * Creates a generic shortcut link. + */ + function generateShortcutLink($path, $title = '') { + $link = array( + 'link_path' => $path, + 'link_title' => !empty($title) ? $title : $this->randomName(10), + ); + + return $link; + } + + /** + * Extracts information from shortcut set links. + * + * @param object $set + * The shortcut set object to extract information from. + * @param string $key + * The array key indicating what information to extract from each link: + * - 'link_path': Extract link paths. + * - 'link_title': Extract link titles. + * - 'mlid': Extract the menu link item ID numbers. + * + * @return array + * Array of the requested information from each link. + */ + function getShortcutInformation($set, $key) { + $info = array(); + foreach ($set->links as $link) { + $info[] = $link[$key]; + } + return $info; + } +} + +/** + * Defines shortcut links test cases. + */ +class ShortcutLinksTestCase extends ShortcutTestCase { + + public static function getInfo() { + return array( + 'name' => 'Shortcut link functionality', + 'description' => 'Create, view, edit, delete, and change shortcut links.', + 'group' => 'Shortcut', + ); + } + + /** + * Tests that creating a shortcut works properly. + */ + function testShortcutLinkAdd() { + $set = $this->set; + + // Create an alias for the node so we can test aliases. + $path = array( + 'source' => 'node/' . $this->node->nid, + 'alias' => $this->randomName(8), + ); + path_save($path); + + // Create some paths to test. + $test_cases = array( + array('path' => ''), + array('path' => 'admin'), + array('path' => 'admin/config/system/site-information'), + array('path' => "node/{$this->node->nid}/edit"), + array('path' => $path['alias']), + ); + + // Check that each new shortcut links where it should. + foreach ($test_cases as $test) { + $title = $this->randomName(10); + $form_data = array( + 'shortcut_link[link_title]' => $title, + 'shortcut_link[link_path]' => $test['path'], + ); + $this->drupalPost('admin/config/user-interface/shortcut/' . $set->set_name . '/add-link', $form_data, t('Save')); + $this->assertResponse(200); + $saved_set = shortcut_set_load($set->set_name); + $paths = $this->getShortcutInformation($saved_set, 'link_path'); + $test_path = empty($test['path']) ? '' : $test['path']; + $this->assertTrue(in_array(drupal_get_normal_path($test_path), $paths), 'Shortcut created: '. $test['path']); + $this->assertLink($title, 0, 'Shortcut link found on the page.'); + } + } + + /** + * Tests that the "add to shortcut" link changes to "remove shortcut". + */ + function testShortcutQuickLink() { + $this->drupalGet($this->set->links[0]['link_path']); + $this->assertRaw(t('Remove from %title shortcuts', array('%title' => $this->set->title)), '"Add to shortcuts" link properly switched to "Remove from shortcuts".'); + } + + /** + * Tests that shortcut links can be renamed. + */ + function testShortcutLinkRename() { + $set = $this->set; + + // Attempt to rename shortcut link. + $new_link_name = $this->randomName(10); + + $this->drupalPost('admin/config/user-interface/shortcut/link/' . $set->links[0]['mlid'], array('shortcut_link[link_title]' => $new_link_name, 'shortcut_link[link_path]' => $set->links[0]['link_path']), t('Save')); + $saved_set = shortcut_set_load($set->set_name); + $titles = $this->getShortcutInformation($saved_set, 'link_title'); + $this->assertTrue(in_array($new_link_name, $titles), 'Shortcut renamed: ' . $new_link_name); + $this->assertLink($new_link_name, 0, 'Renamed shortcut link appears on the page.'); + } + + /** + * Tests that changing the path of a shortcut link works. + */ + function testShortcutLinkChangePath() { + $set = $this->set; + + // Tests changing a shortcut path. + $new_link_path = 'admin/config'; + + $this->drupalPost('admin/config/user-interface/shortcut/link/' . $set->links[0]['mlid'], array('shortcut_link[link_title]' => $set->links[0]['link_title'], 'shortcut_link[link_path]' => $new_link_path), t('Save')); + $saved_set = shortcut_set_load($set->set_name); + $paths = $this->getShortcutInformation($saved_set, 'link_path'); + $this->assertTrue(in_array($new_link_path, $paths), 'Shortcut path changed: ' . $new_link_path); + $this->assertLinkByHref($new_link_path, 0, 'Shortcut with new path appears on the page.'); + } + + /** + * Tests deleting a shortcut link. + */ + function testShortcutLinkDelete() { + $set = $this->set; + + $this->drupalPost('admin/config/user-interface/shortcut/link/' . $set->links[0]['mlid'] . '/delete', array(), 'Delete'); + $saved_set = shortcut_set_load($set->set_name); + $mlids = $this->getShortcutInformation($saved_set, 'mlid'); + $this->assertFalse(in_array($set->links[0]['mlid'], $mlids), 'Successfully deleted a shortcut.'); + } + + /** + * Tests that the add shortcut link is not displayed for 404/403 errors. + * + * Tests that the "Add to shortcuts" link is not displayed on a page not + * found or a page the user does not have access to. + */ + function testNoShortcutLink() { + // Change to a theme that displays shortcuts. + variable_set('theme_default', 'seven'); + + $this->drupalGet('page-that-does-not-exist'); + $this->assertNoRaw('add-shortcut', 'Add to shortcuts link was not shown on a page not found.'); + + // The user does not have access to this path. + $this->drupalGet('admin/modules'); + $this->assertNoRaw('add-shortcut', 'Add to shortcuts link was not shown on a page the user does not have access to.'); + + // Verify that the testing mechanism works by verifying the shortcut + // link appears on admin/content/node. + $this->drupalGet('admin/content/node'); + $this->assertRaw('add-shortcut', 'Add to shortcuts link was shown on a page the user does have access to.'); + } +} + +/** + * Defines shortcut set test cases. + */ +class ShortcutSetsTestCase extends ShortcutTestCase { + + public static function getInfo() { + return array( + 'name' => 'Shortcut set functionality', + 'description' => 'Create, view, edit, delete, and change shortcut sets.', + 'group' => 'Shortcut', + ); + } + + /** + * Tests creating a shortcut set. + */ + function testShortcutSetAdd() { + $new_set = $this->generateShortcutSet($this->randomName(10)); + $sets = shortcut_sets(); + $this->assertTrue(isset($sets[$new_set->set_name]), 'Successfully created a shortcut set.'); + $this->drupalGet('user/' . $this->admin_user->uid . '/shortcuts'); + $this->assertText($new_set->title, 'Generated shortcut set was listed as a choice on the user account page.'); + } + + /** + * Tests switching a user's own shortcut set. + */ + function testShortcutSetSwitchOwn() { + $new_set = $this->generateShortcutSet($this->randomName(10)); + + // Attempt to switch the default shortcut set to the newly created shortcut + // set. + $this->drupalPost('user/' . $this->admin_user->uid . '/shortcuts', array('set' => $new_set->set_name), t('Change set')); + $this->assertResponse(200); + $current_set = shortcut_current_displayed_set($this->admin_user); + $this->assertTrue($new_set->set_name == $current_set->set_name, 'Successfully switched own shortcut set.'); + } + + /** + * Tests switching another user's shortcut set. + */ + function testShortcutSetAssign() { + $new_set = $this->generateShortcutSet($this->randomName(10)); + + shortcut_set_assign_user($new_set, $this->shortcut_user); + $current_set = shortcut_current_displayed_set($this->shortcut_user); + $this->assertTrue($new_set->set_name == $current_set->set_name, "Successfully switched another user's shortcut set."); + } + + /** + * Tests switching a user's shortcut set and creating one at the same time. + */ + function testShortcutSetSwitchCreate() { + $edit = array( + 'set' => 'new', + 'new' => $this->randomName(10), + ); + $this->drupalPost('user/' . $this->admin_user->uid . '/shortcuts', $edit, t('Change set')); + $current_set = shortcut_current_displayed_set($this->admin_user); + $this->assertNotEqual($current_set->set_name, $this->set->set_name, 'A shortcut set can be switched to at the same time as it is created.'); + $this->assertEqual($current_set->title, $edit['new'], 'The new set is correctly assigned to the user.'); + } + + /** + * Tests switching a user's shortcut set without providing a new set name. + */ + function testShortcutSetSwitchNoSetName() { + $edit = array('set' => 'new'); + $this->drupalPost('user/' . $this->admin_user->uid . '/shortcuts', $edit, t('Change set')); + $this->assertText(t('The new set name is required.')); + $current_set = shortcut_current_displayed_set($this->admin_user); + $this->assertEqual($current_set->set_name, $this->set->set_name, 'Attempting to switch to a new shortcut set without providing a set name does not succeed.'); + } + + /** + * Tests that shortcut_set_save() correctly updates existing links. + */ + function testShortcutSetSave() { + $set = $this->set; + $old_mlids = $this->getShortcutInformation($set, 'mlid'); + + $set->links[] = $this->generateShortcutLink('admin', $this->randomName(10)); + shortcut_set_save($set); + $saved_set = shortcut_set_load($set->set_name); + + $new_mlids = $this->getShortcutInformation($saved_set, 'mlid'); + $this->assertTrue(count(array_intersect($old_mlids, $new_mlids)) == count($old_mlids), 'shortcut_set_save() did not inadvertently change existing mlids.'); + } + + /** + * Tests renaming a shortcut set. + */ + function testShortcutSetRename() { + $set = $this->set; + + $new_title = $this->randomName(10); + $this->drupalPost('admin/config/user-interface/shortcut/' . $set->set_name . '/edit', array('title' => $new_title), t('Save')); + $set = shortcut_set_load($set->set_name); + $this->assertTrue($set->title == $new_title, 'Shortcut set has been successfully renamed.'); + } + + /** + * Tests renaming a shortcut set to the same name as another set. + */ + function testShortcutSetRenameAlreadyExists() { + $set = $this->generateShortcutSet($this->randomName(10)); + $existing_title = $this->set->title; + $this->drupalPost('admin/config/user-interface/shortcut/' . $set->set_name . '/edit', array('title' => $existing_title), t('Save')); + $this->assertRaw(t('The shortcut set %name already exists. Choose another name.', array('%name' => $existing_title))); + $set = shortcut_set_load($set->set_name); + $this->assertNotEqual($set->title, $existing_title, format_string('The shortcut set %title cannot be renamed to %new-title because a shortcut set with that title already exists.', array('%title' => $set->title, '%new-title' => $existing_title))); + } + + /** + * Tests unassigning a shortcut set. + */ + function testShortcutSetUnassign() { + $new_set = $this->generateShortcutSet($this->randomName(10)); + + shortcut_set_assign_user($new_set, $this->shortcut_user); + shortcut_set_unassign_user($this->shortcut_user); + $current_set = shortcut_current_displayed_set($this->shortcut_user); + $default_set = shortcut_default_set($this->shortcut_user); + $this->assertTrue($current_set->set_name == $default_set->set_name, "Successfully unassigned another user's shortcut set."); + } + + /** + * Tests deleting a shortcut set. + */ + function testShortcutSetDelete() { + $new_set = $this->generateShortcutSet($this->randomName(10)); + + $this->drupalPost('admin/config/user-interface/shortcut/' . $new_set->set_name . '/delete', array(), t('Delete')); + $sets = shortcut_sets(); + $this->assertFalse(isset($sets[$new_set->set_name]), 'Successfully deleted a shortcut set.'); + } + + /** + * Tests deleting the default shortcut set. + */ + function testShortcutSetDeleteDefault() { + $this->drupalGet('admin/config/user-interface/shortcut/' . SHORTCUT_DEFAULT_SET_NAME . '/delete'); + $this->assertResponse(403); + } +} diff --git a/drupal-dev/modules/simpletest/drupal_web_test_case.php b/drupal-dev/modules/simpletest/drupal_web_test_case.php new file mode 100644 index 0000000..6d0e59a --- /dev/null +++ b/drupal-dev/modules/simpletest/drupal_web_test_case.php @@ -0,0 +1,3706 @@ + 0, + '#fail' => 0, + '#exception' => 0, + '#debug' => 0, + ); + + /** + * Assertions thrown in that test case. + * + * @var Array + */ + protected $assertions = array(); + + /** + * This class is skipped when looking for the source of an assertion. + * + * When displaying which function an assert comes from, it's not too useful + * to see "drupalWebTestCase->drupalLogin()', we would like to see the test + * that called it. So we need to skip the classes defining these helper + * methods. + */ + protected $skipClasses = array(__CLASS__ => TRUE); + + /** + * Flag to indicate whether the test has been set up. + * + * The setUp() method isolates the test from the parent Drupal site by + * creating a random prefix for the database and setting up a clean file + * storage directory. The tearDown() method then cleans up this test + * environment. We must ensure that setUp() has been run. Otherwise, + * tearDown() will act on the parent Drupal site rather than the test + * environment, destroying live data. + */ + protected $setup = FALSE; + + protected $setupDatabasePrefix = FALSE; + + protected $setupEnvironment = FALSE; + + /** + * Constructor for DrupalTestCase. + * + * @param $test_id + * Tests with the same id are reported together. + */ + public function __construct($test_id = NULL) { + $this->testId = $test_id; + } + + /** + * Internal helper: stores the assert. + * + * @param $status + * Can be 'pass', 'fail', 'exception'. + * TRUE is a synonym for 'pass', FALSE for 'fail'. + * @param $message + * The message string. + * @param $group + * Which group this assert belongs to. + * @param $caller + * By default, the assert comes from a function whose name starts with + * 'test'. Instead, you can specify where this assert originates from + * by passing in an associative array as $caller. Key 'file' is + * the name of the source file, 'line' is the line number and 'function' + * is the caller function itself. + */ + protected function assert($status, $message = '', $group = 'Other', array $caller = NULL) { + // Convert boolean status to string status. + if (is_bool($status)) { + $status = $status ? 'pass' : 'fail'; + } + + // Increment summary result counter. + $this->results['#' . $status]++; + + // Get the function information about the call to the assertion method. + if (!$caller) { + $caller = $this->getAssertionCall(); + } + + // Creation assertion array that can be displayed while tests are running. + $this->assertions[] = $assertion = array( + 'test_id' => $this->testId, + 'test_class' => get_class($this), + 'status' => $status, + 'message' => $message, + 'message_group' => $group, + 'function' => $caller['function'], + 'line' => $caller['line'], + 'file' => $caller['file'], + ); + + // Store assertion for display after the test has completed. + try { + $connection = Database::getConnection('default', 'simpletest_original_default'); + } + catch (DatabaseConnectionNotDefinedException $e) { + // If the test was not set up, the simpletest_original_default + // connection does not exist. + $connection = Database::getConnection('default', 'default'); + } + $connection + ->insert('simpletest') + ->fields($assertion) + ->execute(); + + // We do not use a ternary operator here to allow a breakpoint on + // test failure. + if ($status == 'pass') { + return TRUE; + } + else { + return FALSE; + } + } + + /** + * Store an assertion from outside the testing context. + * + * This is useful for inserting assertions that can only be recorded after + * the test case has been destroyed, such as PHP fatal errors. The caller + * information is not automatically gathered since the caller is most likely + * inserting the assertion on behalf of other code. In all other respects + * the method behaves just like DrupalTestCase::assert() in terms of storing + * the assertion. + * + * @return + * Message ID of the stored assertion. + * + * @see DrupalTestCase::assert() + * @see DrupalTestCase::deleteAssert() + */ + public static function insertAssert($test_id, $test_class, $status, $message = '', $group = 'Other', array $caller = array()) { + // Convert boolean status to string status. + if (is_bool($status)) { + $status = $status ? 'pass' : 'fail'; + } + + $caller += array( + 'function' => t('Unknown'), + 'line' => 0, + 'file' => t('Unknown'), + ); + + $assertion = array( + 'test_id' => $test_id, + 'test_class' => $test_class, + 'status' => $status, + 'message' => $message, + 'message_group' => $group, + 'function' => $caller['function'], + 'line' => $caller['line'], + 'file' => $caller['file'], + ); + + return db_insert('simpletest') + ->fields($assertion) + ->execute(); + } + + /** + * Delete an assertion record by message ID. + * + * @param $message_id + * Message ID of the assertion to delete. + * @return + * TRUE if the assertion was deleted, FALSE otherwise. + * + * @see DrupalTestCase::insertAssert() + */ + public static function deleteAssert($message_id) { + return (bool) db_delete('simpletest') + ->condition('message_id', $message_id) + ->execute(); + } + + /** + * Cycles through backtrace until the first non-assertion method is found. + * + * @return + * Array representing the true caller. + */ + protected function getAssertionCall() { + $backtrace = debug_backtrace(); + + // The first element is the call. The second element is the caller. + // We skip calls that occurred in one of the methods of our base classes + // or in an assertion function. + while (($caller = $backtrace[1]) && + ((isset($caller['class']) && isset($this->skipClasses[$caller['class']])) || + substr($caller['function'], 0, 6) == 'assert')) { + // We remove that call. + array_shift($backtrace); + } + + return _drupal_get_last_caller($backtrace); + } + + /** + * Check to see if a value is not false (not an empty string, 0, NULL, or FALSE). + * + * @param $value + * The value on which the assertion is to be done. + * @param $message + * The message to display along with the assertion. + * @param $group + * The type of assertion - examples are "Browser", "PHP". + * @return + * TRUE if the assertion succeeded, FALSE otherwise. + */ + protected function assertTrue($value, $message = '', $group = 'Other') { + return $this->assert((bool) $value, $message ? $message : t('Value @value is TRUE.', array('@value' => var_export($value, TRUE))), $group); + } + + /** + * Check to see if a value is false (an empty string, 0, NULL, or FALSE). + * + * @param $value + * The value on which the assertion is to be done. + * @param $message + * The message to display along with the assertion. + * @param $group + * The type of assertion - examples are "Browser", "PHP". + * @return + * TRUE if the assertion succeeded, FALSE otherwise. + */ + protected function assertFalse($value, $message = '', $group = 'Other') { + return $this->assert(!$value, $message ? $message : t('Value @value is FALSE.', array('@value' => var_export($value, TRUE))), $group); + } + + /** + * Check to see if a value is NULL. + * + * @param $value + * The value on which the assertion is to be done. + * @param $message + * The message to display along with the assertion. + * @param $group + * The type of assertion - examples are "Browser", "PHP". + * @return + * TRUE if the assertion succeeded, FALSE otherwise. + */ + protected function assertNull($value, $message = '', $group = 'Other') { + return $this->assert(!isset($value), $message ? $message : t('Value @value is NULL.', array('@value' => var_export($value, TRUE))), $group); + } + + /** + * Check to see if a value is not NULL. + * + * @param $value + * The value on which the assertion is to be done. + * @param $message + * The message to display along with the assertion. + * @param $group + * The type of assertion - examples are "Browser", "PHP". + * @return + * TRUE if the assertion succeeded, FALSE otherwise. + */ + protected function assertNotNull($value, $message = '', $group = 'Other') { + return $this->assert(isset($value), $message ? $message : t('Value @value is not NULL.', array('@value' => var_export($value, TRUE))), $group); + } + + /** + * Check to see if two values are equal. + * + * @param $first + * The first value to check. + * @param $second + * The second value to check. + * @param $message + * The message to display along with the assertion. + * @param $group + * The type of assertion - examples are "Browser", "PHP". + * @return + * TRUE if the assertion succeeded, FALSE otherwise. + */ + protected function assertEqual($first, $second, $message = '', $group = 'Other') { + return $this->assert($first == $second, $message ? $message : t('Value @first is equal to value @second.', array('@first' => var_export($first, TRUE), '@second' => var_export($second, TRUE))), $group); + } + + /** + * Check to see if two values are not equal. + * + * @param $first + * The first value to check. + * @param $second + * The second value to check. + * @param $message + * The message to display along with the assertion. + * @param $group + * The type of assertion - examples are "Browser", "PHP". + * @return + * TRUE if the assertion succeeded, FALSE otherwise. + */ + protected function assertNotEqual($first, $second, $message = '', $group = 'Other') { + return $this->assert($first != $second, $message ? $message : t('Value @first is not equal to value @second.', array('@first' => var_export($first, TRUE), '@second' => var_export($second, TRUE))), $group); + } + + /** + * Check to see if two values are identical. + * + * @param $first + * The first value to check. + * @param $second + * The second value to check. + * @param $message + * The message to display along with the assertion. + * @param $group + * The type of assertion - examples are "Browser", "PHP". + * @return + * TRUE if the assertion succeeded, FALSE otherwise. + */ + protected function assertIdentical($first, $second, $message = '', $group = 'Other') { + return $this->assert($first === $second, $message ? $message : t('Value @first is identical to value @second.', array('@first' => var_export($first, TRUE), '@second' => var_export($second, TRUE))), $group); + } + + /** + * Check to see if two values are not identical. + * + * @param $first + * The first value to check. + * @param $second + * The second value to check. + * @param $message + * The message to display along with the assertion. + * @param $group + * The type of assertion - examples are "Browser", "PHP". + * @return + * TRUE if the assertion succeeded, FALSE otherwise. + */ + protected function assertNotIdentical($first, $second, $message = '', $group = 'Other') { + return $this->assert($first !== $second, $message ? $message : t('Value @first is not identical to value @second.', array('@first' => var_export($first, TRUE), '@second' => var_export($second, TRUE))), $group); + } + + /** + * Fire an assertion that is always positive. + * + * @param $message + * The message to display along with the assertion. + * @param $group + * The type of assertion - examples are "Browser", "PHP". + * @return + * TRUE. + */ + protected function pass($message = NULL, $group = 'Other') { + return $this->assert(TRUE, $message, $group); + } + + /** + * Fire an assertion that is always negative. + * + * @param $message + * The message to display along with the assertion. + * @param $group + * The type of assertion - examples are "Browser", "PHP". + * @return + * FALSE. + */ + protected function fail($message = NULL, $group = 'Other') { + return $this->assert(FALSE, $message, $group); + } + + /** + * Fire an error assertion. + * + * @param $message + * The message to display along with the assertion. + * @param $group + * The type of assertion - examples are "Browser", "PHP". + * @param $caller + * The caller of the error. + * @return + * FALSE. + */ + protected function error($message = '', $group = 'Other', array $caller = NULL) { + if ($group == 'User notice') { + // Since 'User notice' is set by trigger_error() which is used for debug + // set the message to a status of 'debug'. + return $this->assert('debug', $message, 'Debug', $caller); + } + + return $this->assert('exception', $message, $group, $caller); + } + + /** + * Logs verbose message in a text file. + * + * The a link to the vebose message will be placed in the test results via + * as a passing assertion with the text '[verbose message]'. + * + * @param $message + * The verbose message to be stored. + * + * @see simpletest_verbose() + */ + protected function verbose($message) { + if ($id = simpletest_verbose($message)) { + $class_safe = str_replace('\\', '_', get_class($this)); + $url = file_create_url($this->originalFileDirectory . '/simpletest/verbose/' . $class_safe . '-' . $id . '.html'); + $this->error(l(t('Verbose message'), $url, array('attributes' => array('target' => '_blank'))), 'User notice'); + } + } + + /** + * Run all tests in this class. + * + * Regardless of whether $methods are passed or not, only method names + * starting with "test" are executed. + * + * @param $methods + * (optional) A list of method names in the test case class to run; e.g., + * array('testFoo', 'testBar'). By default, all methods of the class are + * taken into account, but it can be useful to only run a few selected test + * methods during debugging. + */ + public function run(array $methods = array()) { + // Initialize verbose debugging. + $class = get_class($this); + simpletest_verbose(NULL, variable_get('file_public_path', conf_path() . '/files'), str_replace('\\', '_', $class)); + + // HTTP auth settings (:) for the simpletest browser + // when sending requests to the test site. + $this->httpauth_method = variable_get('simpletest_httpauth_method', CURLAUTH_BASIC); + $username = variable_get('simpletest_httpauth_username', NULL); + $password = variable_get('simpletest_httpauth_password', NULL); + if ($username && $password) { + $this->httpauth_credentials = $username . ':' . $password; + } + + set_error_handler(array($this, 'errorHandler')); + // Iterate through all the methods in this class, unless a specific list of + // methods to run was passed. + $class_methods = get_class_methods($class); + if ($methods) { + $class_methods = array_intersect($class_methods, $methods); + } + foreach ($class_methods as $method) { + // If the current method starts with "test", run it - it's a test. + if (strtolower(substr($method, 0, 4)) == 'test') { + // Insert a fail record. This will be deleted on completion to ensure + // that testing completed. + $method_info = new ReflectionMethod($class, $method); + $caller = array( + 'file' => $method_info->getFileName(), + 'line' => $method_info->getStartLine(), + 'function' => $class . '->' . $method . '()', + ); + $completion_check_id = DrupalTestCase::insertAssert($this->testId, $class, FALSE, t('The test did not complete due to a fatal error.'), 'Completion check', $caller); + $this->setUp(); + if ($this->setup) { + try { + $this->$method(); + // Finish up. + } + catch (Exception $e) { + $this->exceptionHandler($e); + } + $this->tearDown(); + } + else { + $this->fail(t("The test cannot be executed because it has not been set up properly.")); + } + // Remove the completion check record. + DrupalTestCase::deleteAssert($completion_check_id); + } + } + // Clear out the error messages and restore error handler. + drupal_get_messages(); + restore_error_handler(); + } + + /** + * Handle errors during test runs. + * + * Because this is registered in set_error_handler(), it has to be public. + * @see set_error_handler + */ + public function errorHandler($severity, $message, $file = NULL, $line = NULL) { + if ($severity & error_reporting()) { + $error_map = array( + E_STRICT => 'Run-time notice', + E_WARNING => 'Warning', + E_NOTICE => 'Notice', + E_CORE_ERROR => 'Core error', + E_CORE_WARNING => 'Core warning', + E_USER_ERROR => 'User error', + E_USER_WARNING => 'User warning', + E_USER_NOTICE => 'User notice', + E_RECOVERABLE_ERROR => 'Recoverable error', + ); + + // PHP 5.3 adds new error logging constants. Add these conditionally for + // backwards compatibility with PHP 5.2. + if (defined('E_DEPRECATED')) { + $error_map += array( + E_DEPRECATED => 'Deprecated', + E_USER_DEPRECATED => 'User deprecated', + ); + } + + $backtrace = debug_backtrace(); + $this->error($message, $error_map[$severity], _drupal_get_last_caller($backtrace)); + } + return TRUE; + } + + /** + * Handle exceptions. + * + * @see set_exception_handler + */ + protected function exceptionHandler($exception) { + $backtrace = $exception->getTrace(); + // Push on top of the backtrace the call that generated the exception. + array_unshift($backtrace, array( + 'line' => $exception->getLine(), + 'file' => $exception->getFile(), + )); + require_once DRUPAL_ROOT . '/includes/errors.inc'; + // The exception message is run through check_plain() by _drupal_decode_exception(). + $this->error(t('%type: !message in %function (line %line of %file).', _drupal_decode_exception($exception)), 'Uncaught exception', _drupal_get_last_caller($backtrace)); + } + + /** + * Generates a random string of ASCII characters of codes 32 to 126. + * + * The generated string includes alpha-numeric characters and common + * miscellaneous characters. Use this method when testing general input + * where the content is not restricted. + * + * Do not use this method when special characters are not possible (e.g., in + * machine or file names that have already been validated); instead, + * use DrupalWebTestCase::randomName(). + * + * @param $length + * Length of random string to generate. + * + * @return + * Randomly generated string. + * + * @see DrupalWebTestCase::randomName() + */ + public static function randomString($length = 8) { + $str = ''; + for ($i = 0; $i < $length; $i++) { + $str .= chr(mt_rand(32, 126)); + } + return $str; + } + + /** + * Generates a random string containing letters and numbers. + * + * The string will always start with a letter. The letters may be upper or + * lower case. This method is better for restricted inputs that do not + * accept certain characters. For example, when testing input fields that + * require machine readable values (i.e. without spaces and non-standard + * characters) this method is best. + * + * Do not use this method when testing unvalidated user input. Instead, use + * DrupalWebTestCase::randomString(). + * + * @param $length + * Length of random string to generate. + * + * @return + * Randomly generated string. + * + * @see DrupalWebTestCase::randomString() + */ + public static function randomName($length = 8) { + $values = array_merge(range(65, 90), range(97, 122), range(48, 57)); + $max = count($values) - 1; + $str = chr(mt_rand(97, 122)); + for ($i = 1; $i < $length; $i++) { + $str .= chr($values[mt_rand(0, $max)]); + } + return $str; + } + + /** + * Converts a list of possible parameters into a stack of permutations. + * + * Takes a list of parameters containing possible values, and converts all of + * them into a list of items containing every possible permutation. + * + * Example: + * @code + * $parameters = array( + * 'one' => array(0, 1), + * 'two' => array(2, 3), + * ); + * $permutations = DrupalTestCase::generatePermutations($parameters) + * // Result: + * $permutations == array( + * array('one' => 0, 'two' => 2), + * array('one' => 1, 'two' => 2), + * array('one' => 0, 'two' => 3), + * array('one' => 1, 'two' => 3), + * ) + * @endcode + * + * @param $parameters + * An associative array of parameters, keyed by parameter name, and whose + * values are arrays of parameter values. + * + * @return + * A list of permutations, which is an array of arrays. Each inner array + * contains the full list of parameters that have been passed, but with a + * single value only. + */ + public static function generatePermutations($parameters) { + $all_permutations = array(array()); + foreach ($parameters as $parameter => $values) { + $new_permutations = array(); + // Iterate over all values of the parameter. + foreach ($values as $value) { + // Iterate over all existing permutations. + foreach ($all_permutations as $permutation) { + // Add the new parameter value to existing permutations. + $new_permutations[] = $permutation + array($parameter => $value); + } + } + // Replace the old permutations with the new permutations. + $all_permutations = $new_permutations; + } + return $all_permutations; + } +} + +/** + * Test case for Drupal unit tests. + * + * These tests can not access the database nor files. Calling any Drupal + * function that needs the database will throw exceptions. These include + * watchdog(), module_implements(), module_invoke_all() etc. + */ +class DrupalUnitTestCase extends DrupalTestCase { + + /** + * Constructor for DrupalUnitTestCase. + */ + function __construct($test_id = NULL) { + parent::__construct($test_id); + $this->skipClasses[__CLASS__] = TRUE; + } + + /** + * Sets up unit test environment. + * + * Unlike DrupalWebTestCase::setUp(), DrupalUnitTestCase::setUp() does not + * install modules because tests are performed without accessing the database. + * Any required files must be explicitly included by the child class setUp() + * method. + */ + protected function setUp() { + global $conf; + + // Store necessary current values before switching to the test environment. + $this->originalFileDirectory = variable_get('file_public_path', conf_path() . '/files'); + + // Reset all statics so that test is performed with a clean environment. + drupal_static_reset(); + + // Generate temporary prefixed database to ensure that tests have a clean starting point. + $this->databasePrefix = Database::getConnection()->prefixTables('{simpletest' . mt_rand(1000, 1000000) . '}'); + + // Create test directory. + $public_files_directory = $this->originalFileDirectory . '/simpletest/' . substr($this->databasePrefix, 10); + file_prepare_directory($public_files_directory, FILE_CREATE_DIRECTORY | FILE_MODIFY_PERMISSIONS); + $conf['file_public_path'] = $public_files_directory; + + // Clone the current connection and replace the current prefix. + $connection_info = Database::getConnectionInfo('default'); + Database::renameConnection('default', 'simpletest_original_default'); + foreach ($connection_info as $target => $value) { + $connection_info[$target]['prefix'] = array( + 'default' => $value['prefix']['default'] . $this->databasePrefix, + ); + } + Database::addConnectionInfo('default', 'default', $connection_info['default']); + + // Set user agent to be consistent with web test case. + $_SERVER['HTTP_USER_AGENT'] = $this->databasePrefix; + + // If locale is enabled then t() will try to access the database and + // subsequently will fail as the database is not accessible. + $module_list = module_list(); + if (isset($module_list['locale'])) { + // Transform the list into the format expected as input to module_list(). + foreach ($module_list as &$module) { + $module = array('filename' => drupal_get_filename('module', $module)); + } + $this->originalModuleList = $module_list; + unset($module_list['locale']); + module_list(TRUE, FALSE, FALSE, $module_list); + } + $this->setup = TRUE; + } + + protected function tearDown() { + global $conf; + + // Get back to the original connection. + Database::removeConnection('default'); + Database::renameConnection('simpletest_original_default', 'default'); + + $conf['file_public_path'] = $this->originalFileDirectory; + // Restore modules if necessary. + if (isset($this->originalModuleList)) { + module_list(TRUE, FALSE, FALSE, $this->originalModuleList); + } + } +} + +/** + * Test case for typical Drupal tests. + */ +class DrupalWebTestCase extends DrupalTestCase { + /** + * The profile to install as a basis for testing. + * + * @var string + */ + protected $profile = 'standard'; + + /** + * The URL currently loaded in the internal browser. + * + * @var string + */ + protected $url; + + /** + * The handle of the current cURL connection. + * + * @var resource + */ + protected $curlHandle; + + /** + * The headers of the page currently loaded in the internal browser. + * + * @var Array + */ + protected $headers; + + /** + * The content of the page currently loaded in the internal browser. + * + * @var string + */ + protected $content; + + /** + * The content of the page currently loaded in the internal browser (plain text version). + * + * @var string + */ + protected $plainTextContent; + + /** + * The value of the Drupal.settings JavaScript variable for the page currently loaded in the internal browser. + * + * @var Array + */ + protected $drupalSettings; + + /** + * The parsed version of the page. + * + * @var SimpleXMLElement + */ + protected $elements = NULL; + + /** + * The current user logged in using the internal browser. + * + * @var bool + */ + protected $loggedInUser = FALSE; + + /** + * The current cookie file used by cURL. + * + * We do not reuse the cookies in further runs, so we do not need a file + * but we still need cookie handling, so we set the jar to NULL. + */ + protected $cookieFile = NULL; + + /** + * Additional cURL options. + * + * DrupalWebTestCase itself never sets this but always obeys what is set. + */ + protected $additionalCurlOptions = array(); + + /** + * The original user, before it was changed to a clean uid = 1 for testing purposes. + * + * @var object + */ + protected $originalUser = NULL; + + /** + * The original shutdown handlers array, before it was cleaned for testing purposes. + * + * @var array + */ + protected $originalShutdownCallbacks = array(); + + /** + * HTTP authentication method + */ + protected $httpauth_method = CURLAUTH_BASIC; + + /** + * HTTP authentication credentials (:). + */ + protected $httpauth_credentials = NULL; + + /** + * The current session name, if available. + */ + protected $session_name = NULL; + + /** + * The current session ID, if available. + */ + protected $session_id = NULL; + + /** + * Whether the files were copied to the test files directory. + */ + protected $generatedTestFiles = FALSE; + + /** + * The number of redirects followed during the handling of a request. + */ + protected $redirect_count; + + /** + * Constructor for DrupalWebTestCase. + */ + function __construct($test_id = NULL) { + parent::__construct($test_id); + $this->skipClasses[__CLASS__] = TRUE; + } + + /** + * Get a node from the database based on its title. + * + * @param $title + * A node title, usually generated by $this->randomName(). + * @param $reset + * (optional) Whether to reset the internal node_load() cache. + * + * @return + * A node object matching $title. + */ + function drupalGetNodeByTitle($title, $reset = FALSE) { + $nodes = node_load_multiple(array(), array('title' => $title), $reset); + // Load the first node returned from the database. + $returned_node = reset($nodes); + return $returned_node; + } + + /** + * Creates a node based on default settings. + * + * @param $settings + * An associative array of settings to change from the defaults, keys are + * node properties, for example 'title' => 'Hello, world!'. + * @return + * Created node object. + */ + protected function drupalCreateNode($settings = array()) { + // Populate defaults array. + $settings += array( + 'body' => array(LANGUAGE_NONE => array(array())), + 'title' => $this->randomName(8), + 'comment' => 2, + 'changed' => REQUEST_TIME, + 'moderate' => 0, + 'promote' => 0, + 'revision' => 1, + 'log' => '', + 'status' => 1, + 'sticky' => 0, + 'type' => 'page', + 'revisions' => NULL, + 'language' => LANGUAGE_NONE, + ); + + // Use the original node's created time for existing nodes. + if (isset($settings['created']) && !isset($settings['date'])) { + $settings['date'] = format_date($settings['created'], 'custom', 'Y-m-d H:i:s O'); + } + + // If the node's user uid is not specified manually, use the currently + // logged in user if available, or else the user running the test. + if (!isset($settings['uid'])) { + if ($this->loggedInUser) { + $settings['uid'] = $this->loggedInUser->uid; + } + else { + global $user; + $settings['uid'] = $user->uid; + } + } + + // Merge body field value and format separately. + $body = array( + 'value' => $this->randomName(32), + 'format' => filter_default_format(), + ); + $settings['body'][$settings['language']][0] += $body; + + $node = (object) $settings; + node_save($node); + + // Small hack to link revisions to our test user. + db_update('node_revision') + ->fields(array('uid' => $node->uid)) + ->condition('vid', $node->vid) + ->execute(); + return $node; + } + + /** + * Creates a custom content type based on default settings. + * + * @param $settings + * An array of settings to change from the defaults. + * Example: 'type' => 'foo'. + * @return + * Created content type. + */ + protected function drupalCreateContentType($settings = array()) { + // Find a non-existent random type name. + do { + $name = strtolower($this->randomName(8)); + } while (node_type_get_type($name)); + + // Populate defaults array. + $defaults = array( + 'type' => $name, + 'name' => $name, + 'base' => 'node_content', + 'description' => '', + 'help' => '', + 'title_label' => 'Title', + 'body_label' => 'Body', + 'has_title' => 1, + 'has_body' => 1, + ); + // Imposed values for a custom type. + $forced = array( + 'orig_type' => '', + 'old_type' => '', + 'module' => 'node', + 'custom' => 1, + 'modified' => 1, + 'locked' => 0, + ); + $type = $forced + $settings + $defaults; + $type = (object) $type; + + $saved_type = node_type_save($type); + node_types_rebuild(); + menu_rebuild(); + node_add_body_field($type); + + $this->assertEqual($saved_type, SAVED_NEW, t('Created content type %type.', array('%type' => $type->type))); + + // Reset permissions so that permissions for this content type are available. + $this->checkPermissions(array(), TRUE); + + return $type; + } + + /** + * Get a list files that can be used in tests. + * + * @param $type + * File type, possible values: 'binary', 'html', 'image', 'javascript', 'php', 'sql', 'text'. + * @param $size + * File size in bytes to match. Please check the tests/files folder. + * @return + * List of files that match filter. + */ + protected function drupalGetTestFiles($type, $size = NULL) { + if (empty($this->generatedTestFiles)) { + // Generate binary test files. + $lines = array(64, 1024); + $count = 0; + foreach ($lines as $line) { + simpletest_generate_file('binary-' . $count++, 64, $line, 'binary'); + } + + // Generate text test files. + $lines = array(16, 256, 1024, 2048, 20480); + $count = 0; + foreach ($lines as $line) { + simpletest_generate_file('text-' . $count++, 64, $line); + } + + // Copy other test files from simpletest. + $original = drupal_get_path('module', 'simpletest') . '/files'; + $files = file_scan_directory($original, '/(html|image|javascript|php|sql)-.*/'); + foreach ($files as $file) { + file_unmanaged_copy($file->uri, variable_get('file_public_path', conf_path() . '/files')); + } + + $this->generatedTestFiles = TRUE; + } + + $files = array(); + // Make sure type is valid. + if (in_array($type, array('binary', 'html', 'image', 'javascript', 'php', 'sql', 'text'))) { + $files = file_scan_directory('public://', '/' . $type . '\-.*/'); + + // If size is set then remove any files that are not of that size. + if ($size !== NULL) { + foreach ($files as $file) { + $stats = stat($file->uri); + if ($stats['size'] != $size) { + unset($files[$file->uri]); + } + } + } + } + usort($files, array($this, 'drupalCompareFiles')); + return $files; + } + + /** + * Compare two files based on size and file name. + */ + protected function drupalCompareFiles($file1, $file2) { + $compare_size = filesize($file1->uri) - filesize($file2->uri); + if ($compare_size) { + // Sort by file size. + return $compare_size; + } + else { + // The files were the same size, so sort alphabetically. + return strnatcmp($file1->name, $file2->name); + } + } + + /** + * Create a user with a given set of permissions. + * + * @param array $permissions + * Array of permission names to assign to user. Note that the user always + * has the default permissions derived from the "authenticated users" role. + * + * @return object|false + * A fully loaded user object with pass_raw property, or FALSE if account + * creation fails. + */ + protected function drupalCreateUser(array $permissions = array()) { + // Create a role with the given permission set, if any. + $rid = FALSE; + if ($permissions) { + $rid = $this->drupalCreateRole($permissions); + if (!$rid) { + return FALSE; + } + } + + // Create a user assigned to that role. + $edit = array(); + $edit['name'] = $this->randomName(); + $edit['mail'] = $edit['name'] . '@example.com'; + $edit['pass'] = user_password(); + $edit['status'] = 1; + if ($rid) { + $edit['roles'] = array($rid => $rid); + } + + $account = user_save(drupal_anonymous_user(), $edit); + + $this->assertTrue(!empty($account->uid), t('User created with name %name and pass %pass', array('%name' => $edit['name'], '%pass' => $edit['pass'])), t('User login')); + if (empty($account->uid)) { + return FALSE; + } + + // Add the raw password so that we can log in as this user. + $account->pass_raw = $edit['pass']; + return $account; + } + + /** + * Internal helper function; Create a role with specified permissions. + * + * @param $permissions + * Array of permission names to assign to role. + * @param $name + * (optional) String for the name of the role. Defaults to a random string. + * @return + * Role ID of newly created role, or FALSE if role creation failed. + */ + protected function drupalCreateRole(array $permissions, $name = NULL) { + // Generate random name if it was not passed. + if (!$name) { + $name = $this->randomName(); + } + + // Check the all the permissions strings are valid. + if (!$this->checkPermissions($permissions)) { + return FALSE; + } + + // Create new role. + $role = new stdClass(); + $role->name = $name; + user_role_save($role); + user_role_grant_permissions($role->rid, $permissions); + + $this->assertTrue(isset($role->rid), t('Created role of name: @name, id: @rid', array('@name' => $name, '@rid' => (isset($role->rid) ? $role->rid : t('-n/a-')))), t('Role')); + if ($role && !empty($role->rid)) { + $count = db_query('SELECT COUNT(*) FROM {role_permission} WHERE rid = :rid', array(':rid' => $role->rid))->fetchField(); + $this->assertTrue($count == count($permissions), t('Created permissions: @perms', array('@perms' => implode(', ', $permissions))), t('Role')); + return $role->rid; + } + else { + return FALSE; + } + } + + /** + * Check to make sure that the array of permissions are valid. + * + * @param $permissions + * Permissions to check. + * @param $reset + * Reset cached available permissions. + * @return + * TRUE or FALSE depending on whether the permissions are valid. + */ + protected function checkPermissions(array $permissions, $reset = FALSE) { + $available = &drupal_static(__FUNCTION__); + + if (!isset($available) || $reset) { + $available = array_keys(module_invoke_all('permission')); + } + + $valid = TRUE; + foreach ($permissions as $permission) { + if (!in_array($permission, $available)) { + $this->fail(t('Invalid permission %permission.', array('%permission' => $permission)), t('Role')); + $valid = FALSE; + } + } + return $valid; + } + + /** + * Log in a user with the internal browser. + * + * If a user is already logged in, then the current user is logged out before + * logging in the specified user. + * + * Please note that neither the global $user nor the passed-in user object is + * populated with data of the logged in user. If you need full access to the + * user object after logging in, it must be updated manually. If you also need + * access to the plain-text password of the user (set by drupalCreateUser()), + * e.g. to log in the same user again, then it must be re-assigned manually. + * For example: + * @code + * // Create a user. + * $account = $this->drupalCreateUser(array()); + * $this->drupalLogin($account); + * // Load real user object. + * $pass_raw = $account->pass_raw; + * $account = user_load($account->uid); + * $account->pass_raw = $pass_raw; + * @endcode + * + * @param $account + * User object representing the user to log in. + * + * @see drupalCreateUser() + */ + protected function drupalLogin(stdClass $account) { + if ($this->loggedInUser) { + $this->drupalLogout(); + } + + $edit = array( + 'name' => $account->name, + 'pass' => $account->pass_raw + ); + $this->drupalPost('user', $edit, t('Log in')); + + // If a "log out" link appears on the page, it is almost certainly because + // the login was successful. + $pass = $this->assertLink(t('Log out'), 0, t('User %name successfully logged in.', array('%name' => $account->name)), t('User login')); + + if ($pass) { + $this->loggedInUser = $account; + } + } + + /** + * Generate a token for the currently logged in user. + */ + protected function drupalGetToken($value = '') { + $private_key = drupal_get_private_key(); + return drupal_hmac_base64($value, $this->session_id . $private_key); + } + + /* + * Logs a user out of the internal browser, then check the login page to confirm logout. + */ + protected function drupalLogout() { + // Make a request to the logout page, and redirect to the user page, the + // idea being if you were properly logged out you should be seeing a login + // screen. + $this->drupalGet('user/logout'); + $this->drupalGet('user'); + $pass = $this->assertField('name', t('Username field found.'), t('Logout')); + $pass = $pass && $this->assertField('pass', t('Password field found.'), t('Logout')); + + if ($pass) { + $this->loggedInUser = FALSE; + } + } + + /** + * Generates a database prefix for running tests. + * + * The generated database table prefix is used for the Drupal installation + * being performed for the test. It is also used as user agent HTTP header + * value by the cURL-based browser of DrupalWebTestCase, which is sent + * to the Drupal installation of the test. During early Drupal bootstrap, the + * user agent HTTP header is parsed, and if it matches, all database queries + * use the database table prefix that has been generated here. + * + * @see DrupalWebTestCase::curlInitialize() + * @see drupal_valid_test_ua() + * @see DrupalWebTestCase::setUp() + */ + protected function prepareDatabasePrefix() { + $this->databasePrefix = 'simpletest' . mt_rand(1000, 1000000); + + // As soon as the database prefix is set, the test might start to execute. + // All assertions as well as the SimpleTest batch operations are associated + // with the testId, so the database prefix has to be associated with it. + db_update('simpletest_test_id') + ->fields(array('last_prefix' => $this->databasePrefix)) + ->condition('test_id', $this->testId) + ->execute(); + } + + /** + * Changes the database connection to the prefixed one. + * + * @see DrupalWebTestCase::setUp() + */ + protected function changeDatabasePrefix() { + if (empty($this->databasePrefix)) { + $this->prepareDatabasePrefix(); + // If $this->prepareDatabasePrefix() failed to work, return without + // setting $this->setupDatabasePrefix to TRUE, so setUp() methods will + // know to bail out. + if (empty($this->databasePrefix)) { + return; + } + } + + // Clone the current connection and replace the current prefix. + $connection_info = Database::getConnectionInfo('default'); + Database::renameConnection('default', 'simpletest_original_default'); + foreach ($connection_info as $target => $value) { + $connection_info[$target]['prefix'] = array( + 'default' => $value['prefix']['default'] . $this->databasePrefix, + ); + } + Database::addConnectionInfo('default', 'default', $connection_info['default']); + + // Indicate the database prefix was set up correctly. + $this->setupDatabasePrefix = TRUE; + } + + /** + * Prepares the current environment for running the test. + * + * Backups various current environment variables and resets them, so they do + * not interfere with the Drupal site installation in which tests are executed + * and can be restored in tearDown(). + * + * Also sets up new resources for the testing environment, such as the public + * filesystem and configuration directories. + * + * @see DrupalWebTestCase::setUp() + * @see DrupalWebTestCase::tearDown() + */ + protected function prepareEnvironment() { + global $user, $language, $conf; + + // Store necessary current values before switching to prefixed database. + $this->originalLanguage = $language; + $this->originalLanguageDefault = variable_get('language_default'); + $this->originalFileDirectory = variable_get('file_public_path', conf_path() . '/files'); + $this->originalProfile = drupal_get_profile(); + $this->originalCleanUrl = variable_get('clean_url', 0); + $this->originalUser = $user; + + // Set to English to prevent exceptions from utf8_truncate() from t() + // during install if the current language is not 'en'. + // The following array/object conversion is copied from language_default(). + $language = (object) array('language' => 'en', 'name' => 'English', 'native' => 'English', 'direction' => 0, 'enabled' => 1, 'plurals' => 0, 'formula' => '', 'domain' => '', 'prefix' => '', 'weight' => 0, 'javascript' => ''); + + // Save and clean the shutdown callbacks array because it is static cached + // and will be changed by the test run. Otherwise it will contain callbacks + // from both environments and the testing environment will try to call the + // handlers defined by the original one. + $callbacks = &drupal_register_shutdown_function(); + $this->originalShutdownCallbacks = $callbacks; + $callbacks = array(); + + // Create test directory ahead of installation so fatal errors and debug + // information can be logged during installation process. + // Use temporary files directory with the same prefix as the database. + $this->public_files_directory = $this->originalFileDirectory . '/simpletest/' . substr($this->databasePrefix, 10); + $this->private_files_directory = $this->public_files_directory . '/private'; + $this->temp_files_directory = $this->private_files_directory . '/temp'; + + // Create the directories + file_prepare_directory($this->public_files_directory, FILE_CREATE_DIRECTORY | FILE_MODIFY_PERMISSIONS); + file_prepare_directory($this->private_files_directory, FILE_CREATE_DIRECTORY); + file_prepare_directory($this->temp_files_directory, FILE_CREATE_DIRECTORY); + $this->generatedTestFiles = FALSE; + + // Log fatal errors. + ini_set('log_errors', 1); + ini_set('error_log', $this->public_files_directory . '/error.log'); + + // Set the test information for use in other parts of Drupal. + $test_info = &$GLOBALS['drupal_test_info']; + $test_info['test_run_id'] = $this->databasePrefix; + $test_info['in_child_site'] = FALSE; + + // Indicate the environment was set up correctly. + $this->setupEnvironment = TRUE; + } + + /** + * Sets up a Drupal site for running functional and integration tests. + * + * Generates a random database prefix and installs Drupal with the specified + * installation profile in DrupalWebTestCase::$profile into the + * prefixed database. Afterwards, installs any additional modules specified by + * the test. + * + * After installation all caches are flushed and several configuration values + * are reset to the values of the parent site executing the test, since the + * default values may be incompatible with the environment in which tests are + * being executed. + * + * @param ... + * List of modules to enable for the duration of the test. This can be + * either a single array or a variable number of string arguments. + * + * @see DrupalWebTestCase::prepareDatabasePrefix() + * @see DrupalWebTestCase::changeDatabasePrefix() + * @see DrupalWebTestCase::prepareEnvironment() + */ + protected function setUp() { + global $user, $language, $conf; + + // Create the database prefix for this test. + $this->prepareDatabasePrefix(); + + // Prepare the environment for running tests. + $this->prepareEnvironment(); + if (!$this->setupEnvironment) { + return FALSE; + } + + // Reset all statics and variables to perform tests in a clean environment. + $conf = array(); + drupal_static_reset(); + + // Change the database prefix. + // All static variables need to be reset before the database prefix is + // changed, since DrupalCacheArray implementations attempt to + // write back to persistent caches when they are destructed. + $this->changeDatabasePrefix(); + if (!$this->setupDatabasePrefix) { + return FALSE; + } + + // Preset the 'install_profile' system variable, so the first call into + // system_rebuild_module_data() (in drupal_install_system()) will register + // the test's profile as a module. Without this, the installation profile of + // the parent site (executing the test) is registered, and the test + // profile's hook_install() and other hook implementations are never invoked. + $conf['install_profile'] = $this->profile; + + // Perform the actual Drupal installation. + include_once DRUPAL_ROOT . '/includes/install.inc'; + drupal_install_system(); + + $this->preloadRegistry(); + + // Set path variables. + variable_set('file_public_path', $this->public_files_directory); + variable_set('file_private_path', $this->private_files_directory); + variable_set('file_temporary_path', $this->temp_files_directory); + + // Set the 'simpletest_parent_profile' variable to add the parent profile's + // search path to the child site's search paths. + // @see drupal_system_listing() + // @todo This may need to be primed like 'install_profile' above. + variable_set('simpletest_parent_profile', $this->originalProfile); + + // Include the testing profile. + variable_set('install_profile', $this->profile); + $profile_details = install_profile_info($this->profile, 'en'); + + // Install the modules specified by the testing profile. + module_enable($profile_details['dependencies'], FALSE); + + // Install modules needed for this test. This could have been passed in as + // either a single array argument or a variable number of string arguments. + // @todo Remove this compatibility layer in Drupal 8, and only accept + // $modules as a single array argument. + $modules = func_get_args(); + if (isset($modules[0]) && is_array($modules[0])) { + $modules = $modules[0]; + } + if ($modules) { + $success = module_enable($modules, TRUE); + $this->assertTrue($success, t('Enabled modules: %modules', array('%modules' => implode(', ', $modules)))); + } + + // Run the profile tasks. + $install_profile_module_exists = db_query("SELECT 1 FROM {system} WHERE type = 'module' AND name = :name", array( + ':name' => $this->profile, + ))->fetchField(); + if ($install_profile_module_exists) { + module_enable(array($this->profile), FALSE); + } + + // Reset/rebuild all data structures after enabling the modules. + $this->resetAll(); + + // Run cron once in that environment, as install.php does at the end of + // the installation process. + drupal_cron_run(); + + // Ensure that the session is not written to the new environment and replace + // the global $user session with uid 1 from the new test site. + drupal_save_session(FALSE); + // Login as uid 1. + $user = user_load(1); + + // Restore necessary variables. + variable_set('install_task', 'done'); + variable_set('clean_url', $this->originalCleanUrl); + variable_set('site_mail', 'simpletest@example.com'); + variable_set('date_default_timezone', date_default_timezone_get()); + + // Set up English language. + unset($conf['language_default']); + $language = language_default(); + + // Use the test mail class instead of the default mail handler class. + variable_set('mail_system', array('default-system' => 'TestingMailSystem')); + + drupal_set_time_limit($this->timeLimit); + $this->setup = TRUE; + } + + /** + * Preload the registry from the testing site. + * + * This method is called by DrupalWebTestCase::setUp(), and preloads the + * registry from the testing site to cut down on the time it takes to + * set up a clean environment for the current test run. + */ + protected function preloadRegistry() { + // Use two separate queries, each with their own connections: copy the + // {registry} and {registry_file} tables over from the parent installation + // to the child installation. + $original_connection = Database::getConnection('default', 'simpletest_original_default'); + $test_connection = Database::getConnection(); + + foreach (array('registry', 'registry_file') as $table) { + // Find the records from the parent database. + $source_query = $original_connection + ->select($table, array(), array('fetch' => PDO::FETCH_ASSOC)) + ->fields($table); + + $dest_query = $test_connection->insert($table); + + $first = TRUE; + foreach ($source_query->execute() as $row) { + if ($first) { + $dest_query->fields(array_keys($row)); + $first = FALSE; + } + // Insert the records into the child database. + $dest_query->values($row); + } + + $dest_query->execute(); + } + } + + /** + * Reset all data structures after having enabled new modules. + * + * This method is called by DrupalWebTestCase::setUp() after enabling + * the requested modules. It must be called again when additional modules + * are enabled later. + */ + protected function resetAll() { + // Reset all static variables. + drupal_static_reset(); + // Reset the list of enabled modules. + module_list(TRUE); + + // Reset cached schema for new database prefix. This must be done before + // drupal_flush_all_caches() so rebuilds can make use of the schema of + // modules enabled on the cURL side. + drupal_get_schema(NULL, TRUE); + + // Perform rebuilds and flush remaining caches. + drupal_flush_all_caches(); + + // Reload global $conf array and permissions. + $this->refreshVariables(); + $this->checkPermissions(array(), TRUE); + } + + /** + * Refresh the in-memory set of variables. Useful after a page request is made + * that changes a variable in a different thread. + * + * In other words calling a settings page with $this->drupalPost() with a changed + * value would update a variable to reflect that change, but in the thread that + * made the call (thread running the test) the changed variable would not be + * picked up. + * + * This method clears the variables cache and loads a fresh copy from the database + * to ensure that the most up-to-date set of variables is loaded. + */ + protected function refreshVariables() { + global $conf; + cache_clear_all('variables', 'cache_bootstrap'); + $conf = variable_initialize(); + } + + /** + * Delete created files and temporary files directory, delete the tables created by setUp(), + * and reset the database prefix. + */ + protected function tearDown() { + global $user, $language; + + // In case a fatal error occurred that was not in the test process read the + // log to pick up any fatal errors. + simpletest_log_read($this->testId, $this->databasePrefix, get_class($this), TRUE); + + $emailCount = count(variable_get('drupal_test_email_collector', array())); + if ($emailCount) { + $message = format_plural($emailCount, '1 e-mail was sent during this test.', '@count e-mails were sent during this test.'); + $this->pass($message, t('E-mail')); + } + + // Delete temporary files directory. + file_unmanaged_delete_recursive($this->originalFileDirectory . '/simpletest/' . substr($this->databasePrefix, 10)); + + // Remove all prefixed tables. + $tables = db_find_tables($this->databasePrefix . '%'); + $connection_info = Database::getConnectionInfo('default'); + $tables = db_find_tables($connection_info['default']['prefix']['default'] . '%'); + if (empty($tables)) { + $this->fail('Failed to find test tables to drop.'); + } + $prefix_length = strlen($connection_info['default']['prefix']['default']); + foreach ($tables as $table) { + if (db_drop_table(substr($table, $prefix_length))) { + unset($tables[$table]); + } + } + if (!empty($tables)) { + $this->fail('Failed to drop all prefixed tables.'); + } + + // Get back to the original connection. + Database::removeConnection('default'); + Database::renameConnection('simpletest_original_default', 'default'); + + // Restore original shutdown callbacks array to prevent original + // environment of calling handlers from test run. + $callbacks = &drupal_register_shutdown_function(); + $callbacks = $this->originalShutdownCallbacks; + + // Return the user to the original one. + $user = $this->originalUser; + drupal_save_session(TRUE); + + // Ensure that internal logged in variable and cURL options are reset. + $this->loggedInUser = FALSE; + $this->additionalCurlOptions = array(); + + // Reload module list and implementations to ensure that test module hooks + // aren't called after tests. + module_list(TRUE); + module_implements('', FALSE, TRUE); + + // Reset the Field API. + field_cache_clear(); + + // Rebuild caches. + $this->refreshVariables(); + + // Reset public files directory. + $GLOBALS['conf']['file_public_path'] = $this->originalFileDirectory; + + // Reset language. + $language = $this->originalLanguage; + if ($this->originalLanguageDefault) { + $GLOBALS['conf']['language_default'] = $this->originalLanguageDefault; + } + + // Close the CURL handler. + $this->curlClose(); + } + + /** + * Initializes the cURL connection. + * + * If the simpletest_httpauth_credentials variable is set, this function will + * add HTTP authentication headers. This is necessary for testing sites that + * are protected by login credentials from public access. + * See the description of $curl_options for other options. + */ + protected function curlInitialize() { + global $base_url; + + if (!isset($this->curlHandle)) { + $this->curlHandle = curl_init(); + + // Some versions/configurations of cURL break on a NULL cookie jar, so + // supply a real file. + if (empty($this->cookieFile)) { + $this->cookieFile = $this->public_files_directory . '/cookie.jar'; + } + + $curl_options = array( + CURLOPT_COOKIEJAR => $this->cookieFile, + CURLOPT_URL => $base_url, + CURLOPT_FOLLOWLOCATION => FALSE, + CURLOPT_RETURNTRANSFER => TRUE, + CURLOPT_SSL_VERIFYPEER => FALSE, // Required to make the tests run on HTTPS. + CURLOPT_SSL_VERIFYHOST => FALSE, // Required to make the tests run on HTTPS. + CURLOPT_HEADERFUNCTION => array(&$this, 'curlHeaderCallback'), + CURLOPT_USERAGENT => $this->databasePrefix, + ); + if (isset($this->httpauth_credentials)) { + $curl_options[CURLOPT_HTTPAUTH] = $this->httpauth_method; + $curl_options[CURLOPT_USERPWD] = $this->httpauth_credentials; + } + // curl_setopt_array() returns FALSE if any of the specified options + // cannot be set, and stops processing any further options. + $result = curl_setopt_array($this->curlHandle, $this->additionalCurlOptions + $curl_options); + if (!$result) { + throw new Exception('One or more cURL options could not be set.'); + } + + // By default, the child session name should be the same as the parent. + $this->session_name = session_name(); + } + // We set the user agent header on each request so as to use the current + // time and a new uniqid. + if (preg_match('/simpletest\d+/', $this->databasePrefix, $matches)) { + curl_setopt($this->curlHandle, CURLOPT_USERAGENT, drupal_generate_test_ua($matches[0])); + } + } + + /** + * Initializes and executes a cURL request. + * + * @param $curl_options + * An associative array of cURL options to set, where the keys are constants + * defined by the cURL library. For a list of valid options, see + * http://www.php.net/manual/function.curl-setopt.php + * @param $redirect + * FALSE if this is an initial request, TRUE if this request is the result + * of a redirect. + * + * @return + * The content returned from the call to curl_exec(). + * + * @see curlInitialize() + */ + protected function curlExec($curl_options, $redirect = FALSE) { + $this->curlInitialize(); + + // cURL incorrectly handles URLs with a fragment by including the + // fragment in the request to the server, causing some web servers + // to reject the request citing "400 - Bad Request". To prevent + // this, we strip the fragment from the request. + // TODO: Remove this for Drupal 8, since fixed in curl 7.20.0. + if (!empty($curl_options[CURLOPT_URL]) && strpos($curl_options[CURLOPT_URL], '#')) { + $original_url = $curl_options[CURLOPT_URL]; + $curl_options[CURLOPT_URL] = strtok($curl_options[CURLOPT_URL], '#'); + } + + $url = empty($curl_options[CURLOPT_URL]) ? curl_getinfo($this->curlHandle, CURLINFO_EFFECTIVE_URL) : $curl_options[CURLOPT_URL]; + + if (!empty($curl_options[CURLOPT_POST])) { + // This is a fix for the Curl library to prevent Expect: 100-continue + // headers in POST requests, that may cause unexpected HTTP response + // codes from some webservers (like lighttpd that returns a 417 error + // code). It is done by setting an empty "Expect" header field that is + // not overwritten by Curl. + $curl_options[CURLOPT_HTTPHEADER][] = 'Expect:'; + } + curl_setopt_array($this->curlHandle, $this->additionalCurlOptions + $curl_options); + + if (!$redirect) { + // Reset headers, the session ID and the redirect counter. + $this->session_id = NULL; + $this->headers = array(); + $this->redirect_count = 0; + } + + $content = curl_exec($this->curlHandle); + $status = curl_getinfo($this->curlHandle, CURLINFO_HTTP_CODE); + + // cURL incorrectly handles URLs with fragments, so instead of + // letting cURL handle redirects we take of them ourselves to + // to prevent fragments being sent to the web server as part + // of the request. + // TODO: Remove this for Drupal 8, since fixed in curl 7.20.0. + if (in_array($status, array(300, 301, 302, 303, 305, 307)) && $this->redirect_count < variable_get('simpletest_maximum_redirects', 5)) { + if ($this->drupalGetHeader('location')) { + $this->redirect_count++; + $curl_options = array(); + $curl_options[CURLOPT_URL] = $this->drupalGetHeader('location'); + $curl_options[CURLOPT_HTTPGET] = TRUE; + return $this->curlExec($curl_options, TRUE); + } + } + + $this->drupalSetContent($content, isset($original_url) ? $original_url : curl_getinfo($this->curlHandle, CURLINFO_EFFECTIVE_URL)); + $message_vars = array( + '!method' => !empty($curl_options[CURLOPT_NOBODY]) ? 'HEAD' : (empty($curl_options[CURLOPT_POSTFIELDS]) ? 'GET' : 'POST'), + '@url' => isset($original_url) ? $original_url : $url, + '@status' => $status, + '!length' => format_size(strlen($this->drupalGetContent())) + ); + $message = t('!method @url returned @status (!length).', $message_vars); + $this->assertTrue($this->drupalGetContent() !== FALSE, $message, t('Browser')); + return $this->drupalGetContent(); + } + + /** + * Reads headers and registers errors received from the tested site. + * + * @see _drupal_log_error(). + * + * @param $curlHandler + * The cURL handler. + * @param $header + * An header. + */ + protected function curlHeaderCallback($curlHandler, $header) { + // Header fields can be extended over multiple lines by preceding each + // extra line with at least one SP or HT. They should be joined on receive. + // Details are in RFC2616 section 4. + if ($header[0] == ' ' || $header[0] == "\t") { + // Normalize whitespace between chucks. + $this->headers[] = array_pop($this->headers) . ' ' . trim($header); + } + else { + $this->headers[] = $header; + } + + // Errors are being sent via X-Drupal-Assertion-* headers, + // generated by _drupal_log_error() in the exact form required + // by DrupalWebTestCase::error(). + if (preg_match('/^X-Drupal-Assertion-[0-9]+: (.*)$/', $header, $matches)) { + // Call DrupalWebTestCase::error() with the parameters from the header. + call_user_func_array(array(&$this, 'error'), unserialize(urldecode($matches[1]))); + } + + // Save cookies. + if (preg_match('/^Set-Cookie: ([^=]+)=(.+)/', $header, $matches)) { + $name = $matches[1]; + $parts = array_map('trim', explode(';', $matches[2])); + $value = array_shift($parts); + $this->cookies[$name] = array('value' => $value, 'secure' => in_array('secure', $parts)); + if ($name == $this->session_name) { + if ($value != 'deleted') { + $this->session_id = $value; + } + else { + $this->session_id = NULL; + } + } + } + + // This is required by cURL. + return strlen($header); + } + + /** + * Close the cURL handler and unset the handler. + */ + protected function curlClose() { + if (isset($this->curlHandle)) { + curl_close($this->curlHandle); + unset($this->curlHandle); + } + } + + /** + * Parse content returned from curlExec using DOM and SimpleXML. + * + * @return + * A SimpleXMLElement or FALSE on failure. + */ + protected function parse() { + if (!$this->elements) { + // DOM can load HTML soup. But, HTML soup can throw warnings, suppress + // them. + $htmlDom = new DOMDocument(); + @$htmlDom->loadHTML($this->drupalGetContent()); + if ($htmlDom) { + $this->pass(t('Valid HTML found on "@path"', array('@path' => $this->getUrl())), t('Browser')); + // It's much easier to work with simplexml than DOM, luckily enough + // we can just simply import our DOM tree. + $this->elements = simplexml_import_dom($htmlDom); + } + } + if (!$this->elements) { + $this->fail(t('Parsed page successfully.'), t('Browser')); + } + + return $this->elements; + } + + /** + * Retrieves a Drupal path or an absolute path. + * + * @param $path + * Drupal path or URL to load into internal browser + * @param $options + * Options to be forwarded to url(). + * @param $headers + * An array containing additional HTTP request headers, each formatted as + * "name: value". + * @return + * The retrieved HTML string, also available as $this->drupalGetContent() + */ + protected function drupalGet($path, array $options = array(), array $headers = array()) { + $options['absolute'] = TRUE; + + // We re-using a CURL connection here. If that connection still has certain + // options set, it might change the GET into a POST. Make sure we clear out + // previous options. + $out = $this->curlExec(array(CURLOPT_HTTPGET => TRUE, CURLOPT_URL => url($path, $options), CURLOPT_NOBODY => FALSE, CURLOPT_HTTPHEADER => $headers)); + $this->refreshVariables(); // Ensure that any changes to variables in the other thread are picked up. + + // Replace original page output with new output from redirected page(s). + if ($new = $this->checkForMetaRefresh()) { + $out = $new; + } + $this->verbose('GET request to: ' . $path . + '
    Ending URL: ' . $this->getUrl() . + '
    ' . $out); + return $out; + } + + /** + * Retrieve a Drupal path or an absolute path and JSON decode the result. + */ + protected function drupalGetAJAX($path, array $options = array(), array $headers = array()) { + return drupal_json_decode($this->drupalGet($path, $options, $headers)); + } + + /** + * Execute a POST request on a Drupal page. + * It will be done as usual POST request with SimpleBrowser. + * + * @param $path + * Location of the post form. Either a Drupal path or an absolute path or + * NULL to post to the current page. For multi-stage forms you can set the + * path to NULL and have it post to the last received page. Example: + * + * @code + * // First step in form. + * $edit = array(...); + * $this->drupalPost('some_url', $edit, t('Save')); + * + * // Second step in form. + * $edit = array(...); + * $this->drupalPost(NULL, $edit, t('Save')); + * @endcode + * @param $edit + * Field data in an associative array. Changes the current input fields + * (where possible) to the values indicated. A checkbox can be set to + * TRUE to be checked and FALSE to be unchecked. Note that when a form + * contains file upload fields, other fields cannot start with the '@' + * character. + * + * Multiple select fields can be set using name[] and setting each of the + * possible values. Example: + * @code + * $edit = array(); + * $edit['name[]'] = array('value1', 'value2'); + * @endcode + * @param $submit + * Value of the submit button whose click is to be emulated. For example, + * t('Save'). The processing of the request depends on this value. For + * example, a form may have one button with the value t('Save') and another + * button with the value t('Delete'), and execute different code depending + * on which one is clicked. + * + * This function can also be called to emulate an Ajax submission. In this + * case, this value needs to be an array with the following keys: + * - path: A path to submit the form values to for Ajax-specific processing, + * which is likely different than the $path parameter used for retrieving + * the initial form. Defaults to 'system/ajax'. + * - triggering_element: If the value for the 'path' key is 'system/ajax' or + * another generic Ajax processing path, this needs to be set to the name + * of the element. If the name doesn't identify the element uniquely, then + * this should instead be an array with a single key/value pair, + * corresponding to the element name and value. The callback for the + * generic Ajax processing path uses this to find the #ajax information + * for the element, including which specific callback to use for + * processing the request. + * + * This can also be set to NULL in order to emulate an Internet Explorer + * submission of a form with a single text field, and pressing ENTER in that + * textfield: under these conditions, no button information is added to the + * POST data. + * @param $options + * Options to be forwarded to url(). + * @param $headers + * An array containing additional HTTP request headers, each formatted as + * "name: value". + * @param $form_html_id + * (optional) HTML ID of the form to be submitted. On some pages + * there are many identical forms, so just using the value of the submit + * button is not enough. For example: 'trigger-node-presave-assign-form'. + * Note that this is not the Drupal $form_id, but rather the HTML ID of the + * form, which is typically the same thing but with hyphens replacing the + * underscores. + * @param $extra_post + * (optional) A string of additional data to append to the POST submission. + * This can be used to add POST data for which there are no HTML fields, as + * is done by drupalPostAJAX(). This string is literally appended to the + * POST data, so it must already be urlencoded and contain a leading "&" + * (e.g., "&extra_var1=hello+world&extra_var2=you%26me"). + */ + protected function drupalPost($path, $edit, $submit, array $options = array(), array $headers = array(), $form_html_id = NULL, $extra_post = NULL) { + $submit_matches = FALSE; + $ajax = is_array($submit); + if (isset($path)) { + $this->drupalGet($path, $options); + } + if ($this->parse()) { + $edit_save = $edit; + // Let's iterate over all the forms. + $xpath = "//form"; + if (!empty($form_html_id)) { + $xpath .= "[@id='" . $form_html_id . "']"; + } + $forms = $this->xpath($xpath); + foreach ($forms as $form) { + // We try to set the fields of this form as specified in $edit. + $edit = $edit_save; + $post = array(); + $upload = array(); + $submit_matches = $this->handleForm($post, $edit, $upload, $ajax ? NULL : $submit, $form); + $action = isset($form['action']) ? $this->getAbsoluteUrl((string) $form['action']) : $this->getUrl(); + if ($ajax) { + $action = $this->getAbsoluteUrl(!empty($submit['path']) ? $submit['path'] : 'system/ajax'); + // Ajax callbacks verify the triggering element if necessary, so while + // we may eventually want extra code that verifies it in the + // handleForm() function, it's not currently a requirement. + $submit_matches = TRUE; + } + + // We post only if we managed to handle every field in edit and the + // submit button matches. + if (!$edit && ($submit_matches || !isset($submit))) { + $post_array = $post; + if ($upload) { + // TODO: cURL handles file uploads for us, but the implementation + // is broken. This is a less than elegant workaround. Alternatives + // are being explored at #253506. + foreach ($upload as $key => $file) { + $file = drupal_realpath($file); + if ($file && is_file($file)) { + // Use the new CurlFile class for file uploads when using PHP + // 5.5 or higher. + if (class_exists('CurlFile')) { + $post[$key] = curl_file_create($file); + } + else { + $post[$key] = '@' . $file; + } + } + } + } + else { + foreach ($post as $key => $value) { + // Encode according to application/x-www-form-urlencoded + // Both names and values needs to be urlencoded, according to + // http://www.w3.org/TR/html4/interact/forms.html#h-17.13.4.1 + $post[$key] = urlencode($key) . '=' . urlencode($value); + } + $post = implode('&', $post) . $extra_post; + } + $out = $this->curlExec(array(CURLOPT_URL => $action, CURLOPT_POST => TRUE, CURLOPT_POSTFIELDS => $post, CURLOPT_HTTPHEADER => $headers)); + // Ensure that any changes to variables in the other thread are picked up. + $this->refreshVariables(); + + // Replace original page output with new output from redirected page(s). + if ($new = $this->checkForMetaRefresh()) { + $out = $new; + } + $this->verbose('POST request to: ' . $path . + '
    Ending URL: ' . $this->getUrl() . + '
    Fields: ' . highlight_string('' . $out); + return $out; + } + } + // We have not found a form which contained all fields of $edit. + foreach ($edit as $name => $value) { + $this->fail(t('Failed to set field @name to @value', array('@name' => $name, '@value' => $value))); + } + if (!$ajax && isset($submit)) { + $this->assertTrue($submit_matches, t('Found the @submit button', array('@submit' => $submit))); + } + $this->fail(t('Found the requested form fields at @path', array('@path' => $path))); + } + } + + /** + * Execute an Ajax submission. + * + * This executes a POST as ajax.js does. It uses the returned JSON data, an + * array of commands, to update $this->content using equivalent DOM + * manipulation as is used by ajax.js. It also returns the array of commands. + * + * @param $path + * Location of the form containing the Ajax enabled element to test. Can be + * either a Drupal path or an absolute path or NULL to use the current page. + * @param $edit + * Field data in an associative array. Changes the current input fields + * (where possible) to the values indicated. + * @param $triggering_element + * The name of the form element that is responsible for triggering the Ajax + * functionality to test. May be a string or, if the triggering element is + * a button, an associative array where the key is the name of the button + * and the value is the button label. i.e.) array('op' => t('Refresh')). + * @param $ajax_path + * (optional) Override the path set by the Ajax settings of the triggering + * element. In the absence of both the triggering element's Ajax path and + * $ajax_path 'system/ajax' will be used. + * @param $options + * (optional) Options to be forwarded to url(). + * @param $headers + * (optional) An array containing additional HTTP request headers, each + * formatted as "name: value". Forwarded to drupalPost(). + * @param $form_html_id + * (optional) HTML ID of the form to be submitted, use when there is more + * than one identical form on the same page and the value of the triggering + * element is not enough to identify the form. Note this is not the Drupal + * ID of the form but rather the HTML ID of the form. + * @param $ajax_settings + * (optional) An array of Ajax settings which if specified will be used in + * place of the Ajax settings of the triggering element. + * + * @return + * An array of Ajax commands. + * + * @see drupalPost() + * @see ajax.js + */ + protected function drupalPostAJAX($path, $edit, $triggering_element, $ajax_path = NULL, array $options = array(), array $headers = array(), $form_html_id = NULL, $ajax_settings = NULL) { + // Get the content of the initial page prior to calling drupalPost(), since + // drupalPost() replaces $this->content. + if (isset($path)) { + $this->drupalGet($path, $options); + } + $content = $this->content; + $drupal_settings = $this->drupalSettings; + + // Get the Ajax settings bound to the triggering element. + if (!isset($ajax_settings)) { + if (is_array($triggering_element)) { + $xpath = '//*[@name="' . key($triggering_element) . '" and @value="' . current($triggering_element) . '"]'; + } + else { + $xpath = '//*[@name="' . $triggering_element . '"]'; + } + if (isset($form_html_id)) { + $xpath = '//form[@id="' . $form_html_id . '"]' . $xpath; + } + $element = $this->xpath($xpath); + $element_id = (string) $element[0]['id']; + $ajax_settings = $drupal_settings['ajax'][$element_id]; + } + + // Add extra information to the POST data as ajax.js does. + $extra_post = ''; + if (isset($ajax_settings['submit'])) { + foreach ($ajax_settings['submit'] as $key => $value) { + $extra_post .= '&' . urlencode($key) . '=' . urlencode($value); + } + } + foreach ($this->xpath('//*[@id]') as $element) { + $id = (string) $element['id']; + $extra_post .= '&' . urlencode('ajax_html_ids[]') . '=' . urlencode($id); + } + if (isset($drupal_settings['ajaxPageState'])) { + $extra_post .= '&' . urlencode('ajax_page_state[theme]') . '=' . urlencode($drupal_settings['ajaxPageState']['theme']); + $extra_post .= '&' . urlencode('ajax_page_state[theme_token]') . '=' . urlencode($drupal_settings['ajaxPageState']['theme_token']); + foreach ($drupal_settings['ajaxPageState']['css'] as $key => $value) { + $extra_post .= '&' . urlencode("ajax_page_state[css][$key]") . '=1'; + } + foreach ($drupal_settings['ajaxPageState']['js'] as $key => $value) { + $extra_post .= '&' . urlencode("ajax_page_state[js][$key]") . '=1'; + } + } + + // Unless a particular path is specified, use the one specified by the + // Ajax settings, or else 'system/ajax'. + if (!isset($ajax_path)) { + $ajax_path = isset($ajax_settings['url']) ? $ajax_settings['url'] : 'system/ajax'; + } + + // Submit the POST request. + $return = drupal_json_decode($this->drupalPost(NULL, $edit, array('path' => $ajax_path, 'triggering_element' => $triggering_element), $options, $headers, $form_html_id, $extra_post)); + + // Change the page content by applying the returned commands. + if (!empty($ajax_settings) && !empty($return)) { + // ajax.js applies some defaults to the settings object, so do the same + // for what's used by this function. + $ajax_settings += array( + 'method' => 'replaceWith', + ); + // DOM can load HTML soup. But, HTML soup can throw warnings, suppress + // them. + $dom = new DOMDocument(); + @$dom->loadHTML($content); + // XPath allows for finding wrapper nodes better than DOM does. + $xpath = new DOMXPath($dom); + foreach ($return as $command) { + switch ($command['command']) { + case 'settings': + $drupal_settings = drupal_array_merge_deep($drupal_settings, $command['settings']); + break; + + case 'insert': + $wrapperNode = NULL; + // When a command doesn't specify a selector, use the + // #ajax['wrapper'] which is always an HTML ID. + if (!isset($command['selector'])) { + $wrapperNode = $xpath->query('//*[@id="' . $ajax_settings['wrapper'] . '"]')->item(0); + } + // @todo Ajax commands can target any jQuery selector, but these are + // hard to fully emulate with XPath. For now, just handle 'head' + // and 'body', since these are used by ajax_render(). + elseif (in_array($command['selector'], array('head', 'body'))) { + $wrapperNode = $xpath->query('//' . $command['selector'])->item(0); + } + if ($wrapperNode) { + // ajax.js adds an enclosing DIV to work around a Safari bug. + $newDom = new DOMDocument(); + $newDom->loadHTML('
    ' . $command['data'] . '
    '); + $newNode = $dom->importNode($newDom->documentElement->firstChild->firstChild, TRUE); + $method = isset($command['method']) ? $command['method'] : $ajax_settings['method']; + // The "method" is a jQuery DOM manipulation function. Emulate + // each one using PHP's DOMNode API. + switch ($method) { + case 'replaceWith': + $wrapperNode->parentNode->replaceChild($newNode, $wrapperNode); + break; + case 'append': + $wrapperNode->appendChild($newNode); + break; + case 'prepend': + // If no firstChild, insertBefore() falls back to + // appendChild(). + $wrapperNode->insertBefore($newNode, $wrapperNode->firstChild); + break; + case 'before': + $wrapperNode->parentNode->insertBefore($newNode, $wrapperNode); + break; + case 'after': + // If no nextSibling, insertBefore() falls back to + // appendChild(). + $wrapperNode->parentNode->insertBefore($newNode, $wrapperNode->nextSibling); + break; + case 'html': + foreach ($wrapperNode->childNodes as $childNode) { + $wrapperNode->removeChild($childNode); + } + $wrapperNode->appendChild($newNode); + break; + } + } + break; + + // @todo Add suitable implementations for these commands in order to + // have full test coverage of what ajax.js can do. + case 'remove': + break; + case 'changed': + break; + case 'css': + break; + case 'data': + break; + case 'restripe': + break; + } + } + $content = $dom->saveHTML(); + } + $this->drupalSetContent($content); + $this->drupalSetSettings($drupal_settings); + return $return; + } + + /** + * Runs cron in the Drupal installed by Simpletest. + */ + protected function cronRun() { + $this->drupalGet($GLOBALS['base_url'] . '/cron.php', array('external' => TRUE, 'query' => array('cron_key' => variable_get('cron_key', 'drupal')))); + } + + /** + * Check for meta refresh tag and if found call drupalGet() recursively. This + * function looks for the http-equiv attribute to be set to "Refresh" + * and is case-sensitive. + * + * @return + * Either the new page content or FALSE. + */ + protected function checkForMetaRefresh() { + if (strpos($this->drupalGetContent(), 'parse()) { + $refresh = $this->xpath('//meta[@http-equiv="Refresh"]'); + if (!empty($refresh)) { + // Parse the content attribute of the meta tag for the format: + // "[delay]: URL=[page_to_redirect_to]". + if (preg_match('/\d+;\s*URL=(?P.*)/i', $refresh[0]['content'], $match)) { + return $this->drupalGet($this->getAbsoluteUrl(decode_entities($match['url']))); + } + } + } + return FALSE; + } + + /** + * Retrieves only the headers for a Drupal path or an absolute path. + * + * @param $path + * Drupal path or URL to load into internal browser + * @param $options + * Options to be forwarded to url(). + * @param $headers + * An array containing additional HTTP request headers, each formatted as + * "name: value". + * @return + * The retrieved headers, also available as $this->drupalGetContent() + */ + protected function drupalHead($path, array $options = array(), array $headers = array()) { + $options['absolute'] = TRUE; + $out = $this->curlExec(array(CURLOPT_NOBODY => TRUE, CURLOPT_URL => url($path, $options), CURLOPT_HTTPHEADER => $headers)); + $this->refreshVariables(); // Ensure that any changes to variables in the other thread are picked up. + return $out; + } + + /** + * Handle form input related to drupalPost(). Ensure that the specified fields + * exist and attempt to create POST data in the correct manner for the particular + * field type. + * + * @param $post + * Reference to array of post values. + * @param $edit + * Reference to array of edit values to be checked against the form. + * @param $submit + * Form submit button value. + * @param $form + * Array of form elements. + * @return + * Submit value matches a valid submit input in the form. + */ + protected function handleForm(&$post, &$edit, &$upload, $submit, $form) { + // Retrieve the form elements. + $elements = $form->xpath('.//input[not(@disabled)]|.//textarea[not(@disabled)]|.//select[not(@disabled)]'); + $submit_matches = FALSE; + foreach ($elements as $element) { + // SimpleXML objects need string casting all the time. + $name = (string) $element['name']; + // This can either be the type of or the name of the tag itself + // for + + + + + + + + +

    Humans (and frogs): please leave this field blank.

    + + + + + + + + + + + + + + \ No newline at end of file diff --git a/shirts4mike/css/style.css b/shirts4mike/css/style.css new file mode 100755 index 0000000..6c0b32a --- /dev/null +++ b/shirts4mike/css/style.css @@ -0,0 +1,786 @@ +/*! normalize.css - http://github.com/necolas/normalize.css */ + +/* ========================================================================== + HTML5 display definitions + ========================================================================== */ + +/* + * Corrects `block` display not defined in IE6/7/8/9 & FF3. + */ + +article, +aside, +details, +figcaption, +figure, +footer, +header, +hgroup, +nav, +section, +summary { + display: block; +} + +/* + * Corrects `inline-block` display not defined in IE6/7/8/9 & FF3. + */ + +audio, +canvas, +video { + display: inline-block; + *display: inline; + *zoom: 1; +} + +/* + * Prevents modern browsers from displaying `audio` without controls. + * Remove excess height in iOS5 devices. + */ + +audio:not([controls]) { + display: none; + height: 0; +} + +/* + * Addresses styling for `hidden` attribute not present in IE7/8/9, FF3, S4. + * Known issue: no IE6 support. + */ + +[hidden] { + display: none; +} + +/* ========================================================================== + Base + ========================================================================== */ + +/* + * 1. Corrects text resizing oddly in IE6/7 when body `font-size` is set using + * `em` units. + * 2. Prevents iOS text size adjust after orientation change, without disabling + * user zoom. + */ + +html { + font-size: 100%; /* 1 */ + -webkit-text-size-adjust: 100%; /* 2 */ + -ms-text-size-adjust: 100%; /* 2 */ +} + +/* + * Addresses `font-family` inconsistency between `textarea` and other form + * elements. + */ + +html, +button, +input, +select, +textarea { + font-family: sans-serif; +} + +/* + * Addresses margins handled incorrectly in IE6/7. + */ + +body { + margin: 0; +} + +/* ========================================================================== + Links + ========================================================================== */ + +/* + * Addresses `outline` inconsistency between Chrome and other browsers. + */ + +a:focus { + outline: thin dotted; +} + +/* + * Improves readability when focused and also mouse hovered in all browsers. + * people.opera.com/patrickl/experiments/keyboard/test + */ + +a:active, +a:hover { + outline: 0; +} + +/* ========================================================================== + Typography + ========================================================================== */ + +/* + * Addresses font sizes and margins set differently in IE6/7. + * Addresses font sizes within `section` and `article` in FF4+, Chrome, S5. + */ + +h1 { + font-size: 2em; + margin: 0.67em 0; +} + +h2 { + font-size: 1.5em; + margin: 0.83em 0; +} + +h3 { + font-size: 1.17em; + margin: 1em 0; +} + +h4 { + font-size: 1em; + margin: 1.33em 0; +} + +h5 { + font-size: 0.83em; + margin: 1.67em 0; +} + +h6 { + font-size: 0.75em; + margin: 2.33em 0; +} + +/* + * Addresses styling not present in IE7/8/9, S5, Chrome. + */ + +abbr[title] { + border-bottom: 1px dotted; +} + +/* + * Addresses style set to `bolder` in FF3+, S4/5, Chrome. + */ + +b, +strong { + font-weight: bold; +} + +blockquote { + margin: 1em 40px; +} + +/* + * Addresses styling not present in S5, Chrome. + */ + +dfn { + font-style: italic; +} + +/* + * Addresses styling not present in IE6/7/8/9. + */ + +mark { + background: #ff0; + color: #000; +} + +/* + * Addresses margins set differently in IE6/7. + */ + +p, +pre { + margin: 1em 0; +} + +/* + * Corrects font family set oddly in IE6, S4/5, Chrome. + * en.wikipedia.org/wiki/User:Davidgothberg/Test59 + */ + +code, +kbd, +pre, +samp { + font-family: monospace, serif; + _font-family: 'courier new', monospace; + font-size: 1em; +} + +/* + * Improves readability of pre-formatted text in all browsers. + */ + +pre { + white-space: pre; + white-space: pre-wrap; + word-wrap: break-word; +} + +/* + * Addresses CSS quotes not supported in IE6/7. + */ + +q { + quotes: none; +} + +/* + * Addresses `quotes` property not supported in S4. + */ + +q:before, +q:after { + content: ''; + content: none; +} + +small { + font-size: 75%; +} + +/* + * Prevents `sub` and `sup` affecting `line-height` in all browsers. + * gist.github.com/413930 + */ + +sub, +sup { + font-size: 75%; + line-height: 0; + position: relative; + vertical-align: baseline; +} + +sup { + top: -0.5em; +} + +sub { + bottom: -0.25em; +} + +/* ========================================================================== + Lists + ========================================================================== */ + +/* + * Addresses margins set differently in IE6/7. + */ + +dl, +menu, +ol, +ul { + margin: 1em 0; +} + +dd { + margin: 0 0 0 40px; +} + +/* + * Addresses paddings set differently in IE6/7. + */ + +menu, +ol, +ul { + padding: 0 0 0 40px; +} + +/* + * Corrects list images handled incorrectly in IE7. + */ + +nav ul, +nav ol { + list-style: none; + list-style-image: none; +} + +/* ========================================================================== + Embedded content + ========================================================================== */ + +/* + * 1. Removes border when inside `a` element in IE6/7/8/9, FF3. + * 2. Improves image quality when scaled in IE7. + * code.flickr.com/blog/2008/11/12/on-ui-quality-the-little-things-client-side-image-resizing/ + */ + +img { + border: 0; /* 1 */ + -ms-interpolation-mode: bicubic; /* 2 */ +} + +/* + * Corrects overflow displayed oddly in IE9. + */ + +svg:not(:root) { + overflow: hidden; +} + +/* ========================================================================== + Figures + ========================================================================== */ + +/* + * Addresses margin not present in IE6/7/8/9, S5, O11. + */ + +figure { + margin: 0; +} + +/* ========================================================================== + Forms + ========================================================================== */ + +/* + * Corrects margin displayed oddly in IE6/7. + */ + +form { + margin: 0; +} + +/* + * Define consistent border, margin, and padding. + */ + +fieldset { + border: 1px solid #c0c0c0; + margin: 0 2px; + padding: 0.35em 0.625em 0.75em; +} + +/* + * 1. Corrects color not being inherited in IE6/7/8/9. + * 2. Corrects text not wrapping in FF3. + * 3. Corrects alignment displayed oddly in IE6/7. + */ + +legend { + border: 0; /* 1 */ + padding: 0; + white-space: normal; /* 2 */ + *margin-left: -7px; /* 3 */ +} + +/* + * 1. Corrects font size not being inherited in all browsers. + * 2. Addresses margins set differently in IE6/7, FF3+, S5, Chrome. + * 3. Improves appearance and consistency in all browsers. + */ + +button, +input, +select, +textarea { + font-size: 100%; /* 1 */ + margin: 0; /* 2 */ + vertical-align: baseline; /* 3 */ + *vertical-align: middle; /* 3 */ +} + +/* + * Addresses FF3/4 setting `line-height` on `input` using `!important` in the + * UA stylesheet. + */ + +button, +input { + line-height: normal; +} + +/* + * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` + * and `video` controls. + * 2. Corrects inability to style clickable `input` types in iOS. + * 3. Improves usability and consistency of cursor style between image-type + * `input` and others. + * 4. Removes inner spacing in IE7 without affecting normal text inputs. + * Known issue: inner spacing remains in IE6. + */ + +button, +html input[type="button"], /* 1 */ +input[type="reset"], +input[type="submit"] { + -webkit-appearance: button; /* 2 */ + cursor: pointer; /* 3 */ + *overflow: visible; /* 4 */ +} + +/* + * Re-set default cursor for disabled elements. + */ + +button[disabled], +input[disabled] { + cursor: default; +} + +/* + * 1. Addresses box sizing set to content-box in IE8/9. + * 2. Removes excess padding in IE8/9. + * 3. Removes excess padding in IE7. + * Known issue: excess padding remains in IE6. + */ + +input[type="checkbox"], +input[type="radio"] { + box-sizing: border-box; /* 1 */ + padding: 0; /* 2 */ + *height: 13px; /* 3 */ + *width: 13px; /* 3 */ +} + +/* + * 1. Addresses `appearance` set to `searchfield` in S5, Chrome. + * 2. Addresses `box-sizing` set to `border-box` in S5, Chrome (include `-moz` + * to future-proof). + */ + +input[type="search"] { + -webkit-appearance: textfield; /* 1 */ + -moz-box-sizing: content-box; + -webkit-box-sizing: content-box; /* 2 */ + box-sizing: content-box; +} + +/* + * Removes inner padding and search cancel button in S5, Chrome on OS X. + */ + +input[type="search"]::-webkit-search-cancel-button, +input[type="search"]::-webkit-search-decoration { + -webkit-appearance: none; +} + +/* + * Removes inner padding and border in FF3+. + */ + +button::-moz-focus-inner, +input::-moz-focus-inner { + border: 0; + padding: 0; +} + +/* + * 1. Removes default vertical scrollbar in IE6/7/8/9. + * 2. Improves readability and alignment in all browsers. + */ + +textarea { + overflow: auto; /* 1 */ + vertical-align: top; /* 2 */ +} + +/* ========================================================================== + Tables + ========================================================================== */ + +/* + * Remove most spacing between table cells. + */ + +table { + border-collapse: collapse; + border-spacing: 0; +} + + +html {overflow-y: scroll; overflow-x: hidden;} +body {font-family: 'Oswald', sans-serif; background:#f0eeed; color: #676767;} + +.wrapper {width: 980px; margin: 0 auto;} +.header:after {content:"";height:0;display:block;visibility:hidden;clear:both;} +.header {background: #ff8400; border-bottom: 5px solid #f16702;} +.header .branding-title {float: left; margin: 0 0 0 12px; font: 0/0 serif; text-shadow: none; color: transparent; width:122px;height:77px;background:url(../img/branding-title.png) 0 14px no-repeat;padding: 14px 0;} +.header .branding-title a {display: block; height: 77px; width: 122px;} +.header .nav {float: right; top: 0; right: 0; margin: 0; position: relative; left: 15px; z-index: 99999999;} +.header .nav li {display: inline-block; margin: 0; list-style: none;} +.header .nav li.cart {margin-left: 44px; border: 0 solid #f16702; border-width: 0 8px;} +.header .nav li a { + color: white; + text-decoration: none; + display: block; + line-height: 95px; + padding: 10px 0 0; + margin: 0 0 0 40px; + width: 90px; + text-align: right; + background: url('../img/nav-sprite.png') no-repeat 0px 105px; + text-transform: uppercase; + white-space: nowrap; +} +.header .nav li.on a {text-decoration: underline;} +.header .nav li a:hover, .header .nav li a:active {color: #FFE200;} +.header .nav li.shirts a {background-position: 0px 0px;} +.header .nav li.contact a {background-position: 0px -105px;} +.header .nav li.search a {background-position: 0px -419px;} +.header .nav li.cart a { + width: 122px; + font-size: 0/95px serif; + text-shadow: none; + color: transparent; + background-position: 16px -216px; + margin: 0; +} +.header .nav li.cart a:hover {background-position: 16px -321px;} +#content {min-height: 400px; background: white;} +.section.banner {height: 290px; background: #3d3d3d url('../img/banner-background.jpg') center center no-repeat;} +.section.banner .wrapper {position: relative;} +.section.banner .hero {position: absolute; top: -89px; left: 117px; z-index: 999;} +.section.banner .button { + display: block; + position: absolute; + top: 97px; + left: 530px; + margin: 0; + background-image: linear-gradient(bottom, rgb(35,124,219) 0%, rgb(39,136,232) 16%, rgb(119,184,249) 100%); + background-image: -o-linear-gradient(bottom, rgb(35,124,219) 0%, rgb(39,136,232) 16%, rgb(119,184,249) 100%); + background-image: -moz-linear-gradient(bottom, rgb(35,124,219) 0%, rgb(39,136,232) 16%, rgb(119,184,249) 100%); + background-image: -webkit-linear-gradient(bottom, rgb(35,124,219) 0%, rgb(39,136,232) 16%, rgb(119,184,249) 100%); + background-image: -ms-linear-gradient(bottom, rgb(35,124,219) 0%, rgb(39,136,232) 16%, rgb(119,184,249) 100%); + background-image: -webkit-gradient( + linear, + left bottom, + left top, + color-stop(0, rgb(35,124,219)), + color-stop(0.16, rgb(39,136,232)), + color-stop(1, rgb(119,184,249)) + ); + -webkit-border-radius: 10px; + border-radius: 10px; + border: 5px solid #029af1; + z-index: 0; +} +.section.banner a { + width: 200px; + padding: 20px 20px 20px 50px; + display: block; + text-decoration: none; + background: url(../img/banner-link-arrow.png) 100% 50% no-repeat; + color: #FFF; +} +.section.banner a:hover { + color: #ffe200; +} +.section.banner h2 { + font-size: 18px; + font-weight: normal; + margin: 0; + line-height: 1.3; +} +.section.banner p { + color: #ffe200; + font-style: italic; + font-size: 14px; + margin: 0; +} +.section.page:after {content:"";display:block;visibility:hidden;height:0;clear:both;} +.section.page {padding: 34px 0; background: white;} +.section.page h1 { + font-size: 24px; + text-align: center; + text-transform: uppercase; + line-height: 1.6; + font-weight: normal; +} +.section.page .shirt-details h1 { + text-align: left; +} +.section.page p {width: 375px; margin-left: auto; margin-right: auto; } +.section.page .shirt-details h1 .price {color: #9d9f4e; padding-right: 10px; font-size: 34px;} +.section.shirts {padding-bottom: 42px; background: #fff;} +.section.shirts h2 { + font-size: 24px; + color: #c0bfbe; + text-align: center; + text-transform: uppercase; + line-height: 1.6; + font-weight: normal; +} +.section.shirts ul.products {margin: 0 0 -17px 0; padding: 0; width: 997px;} +.section.shirts ul.products li { + display: inline-block; + list-style: none; + border: 1px solid #e3e1e0; + -webkit-border-radius: 2px; + border-radius: 2px; + width: 202px; + text-align: center; + text-transform: lowercase; + padding: 14px; + background: #f0eeed; + margin: 0 0 17px 17px; + position: relative; + left: -17px; +} +.section.shirts ul.products li a:hover:after { + content: '+'; + font-size: 50px; position: absolute; top: -10px; right: 25px; color: #f16702; vertical-align: top; +} +.section.shirts ul.products li a { + background: white; + display: block; + padding: 30px 0 10px; + text-decoration: none; + color: #999; + opacity: .9; +} +.section.shirts ul.products li a:hover { + opacity: 1; + color: #666; +} +.section.shirts ul.products li img { + width: 190px; +} +.section.shirts ul.products li p { + margin-left: 0; + margin-right: 0; + width: auto; +} + +.shirt-picture { + float: left; + width: 460px; + text-align: center; + border: 1px solid #d9d9d9; + padding: 14px; + background: #f0eeed; +} +.shirt-picture span { + background: white; + display: block; + width: 100%; + padding: 36px 0 61px; +} +.shirt-picture img {width: 292px;} +.shirt-details { + width: 460px; + float: right; +} +.shirt-details form { + margin-left: 0; +} +form {width: 375px; margin: 34px auto;} +form tr { + border: 1px solid #CCC; + background: #f4f3f2; +} +form table {width: 375px; margin-bottom: 16px;} +form th { + width: 85px; + border-right: 1px solid #CCC; + vertical-align: middle; + padding: 8px; +} +form td { + padding: 15px 15px; +} +form td select, +form td input, +form td textarea { + width: 100%; +} +form input[type="submit"] { + width: 375px; + text-align: center; + border: 1px solid #8e8e46; + background: #9c9f4e; + color: #FFF; + -webkit-border-radius: 2px; + border-radius: 2px; + font-size: 14px; + text-transform: uppercase; + padding: 14px; +} +.search form { + width: auto; + text-align: center; +} +.search form input[type="text"] { + font-size: 24px; + width: 70%; + line-height: 1.5; + vertical-align: top; + padding: 3px; +} +.search form input[type="submit"] { + width: auto; + vertical-align: top; +} +.section.page.search p {text-align: center;} + +.pagination { + text-align: right; + margin: 1em 0; +} +.pagination a, +.pagination span { + padding: 5px 20px; + border: 1px solid #e3e1e0; + display: inline-block; + text-decoration: none; + color: #676767; +} +.pagination span {background: #CCC; border-color: #999; color: #444;} +.pagination a:hover {background: #f0eeed;} + +.page p.message { + background: #ffeca4; + border: 1px solid #f16702; + padding: 1em; + width: 344px; +} + + + + + +.breadcrumb { + font-family: Helvetica, Arial, sans-serif; + font-size: 14px; + font-weight: normal; + padding: 14px 0 48px; +} +.note-designer { + font-family: Georgia, serif; + font-size: 14px; + font-style: italic; + font-weight: bold; +} + +.footer { + background: #f0eeed; + padding: 42px 0; + font-size: 12px; + color: #a5a5a5; + font-family: Helvetica, Arial, sans-serif; +} +.footer ul {margin: 0; padding: 0; float: left;} +.footer ul li { + margin: 0; + padding: 0; + list-style: none; + display: inline-block; + text-transform: lowercase; +} +.footer ul li:after {content:" | "} +.footer ul li:last-child:after {content:"";} +.footer p {margin: 0; text-align: right; padding-right: 3px;} +.footer a {text-decoration: none; color: #539def; margin: 0 10px;} +.footer li:first-child a {margin-left: 4px;} +.footer a:hover, .footer a:active {text-decoration: underline;} \ No newline at end of file diff --git a/shirts4mike/favicon.ico b/shirts4mike/favicon.ico new file mode 100755 index 0000000000000000000000000000000000000000..4ea5a00f9f2927b7158a432e7f1de5a30a1c8068 GIT binary patch literal 637 zcmV-@0)qXCP)94nR~wPoSAd)6~-9o1QI%gg3{r?Chxo&fa1aVe-wy>qgh+u zTA%j!JAtfJR_yz@d=2Tf^EQSH`EKuYT7~%^PU3aLv(94i=L(aBoxRPcM+a+CNuI~n zxq9l-lh3^)o)+WWMVd!r!#~G|axLx}gkp5M)botIa!oS0erzZ*&s7Zg0l*d%9@J-@nLdGbC=B-mqGz~q(9?DGkKs{ zLt65ncZX^PvWmIE{*3}I78Q)_5-eVFRXnI=-{LrNT*B^c0!T}6wOo+%jpUWL-!r^0 zR*;;;qVRGt8y9#{&OsB4P>wVN@}T!TwOO1gt%a{kDHzDQfYXH!wKN-k|AL3JeXxC9 z6L7c4$a=&#D)2GXh8Nn43>}0J_+hly2?-9Kxi{5JoHwD-LW(c))4SSxA>gjp(%?El zEU=V>WLh!lc@@5^!9(H=xQX5}PYNp)?UYpsLvya#@Vhaxh&ppID~i~N3f3(puA=!y zd=l}6_U`iVo}SxX*~A1spFrl3d+BeGv&b^?F>(s^&L2m46_{AYFxlpRL3DbZe+e)E XDxB+G2FQ@N00000NkvXXu0mjf*oG%T literal 0 HcmV?d00001 diff --git a/shirts4mike/img/banner-background.jpg b/shirts4mike/img/banner-background.jpg new file mode 100755 index 0000000000000000000000000000000000000000..a0c6b7ea112585479eb573f206d0a97dc9304f9d GIT binary patch literal 66831 zcmaI72UJr{w=jHCNazrHl?aGP@4Y0_6%Z5@L2021q4%1AASfMCq(((Rih@)@igf8s zTIdJ}O7H#WdGGt)`+aNO|Jy4o=ggeF_w1S3XJ&Re7h@N50E>p7qa6U~=m-F$!2iI- zUjU)*jdAh^Kmhcz+5iA9<{-ijUS4hrqM|OIB33r8*0v%TSFEU?m7A!zh?pp#r0VBp zg>ka=LR#C}JGv-yZ`3w$BOPs&xgSXDiRrni**Z9C2YA@t3(z;h1UO;jZMaockV<|E zepolGt(O(j59{pWsokYydSW~r-Mk!KU6B89 zw6b>f_EP4)l=Q#4fOXT;`)|ho>u6!I|Mcr$*q&Z@ZU0A%{}tQQ$luLY^scR^tG5Tn z_7a`vKg5?~_y2C_AH+*(6x3ZY-dI}~FCBGd?#mhx8%G-j4K;ZUw3?=dx`dp(xVVP+ zO|-^MO)&`>w3xKKn3}BQe`s}FJiV-3Ft-1pb^IS%_5UZWf|`e|m6xlBk*lloe`e3X z!PU#v)4|mZsdi5W$**UHadi2o;>JIN`)^roJsf>(Z8SYxvB-aoj)LR=CV@IyON}vw4#^7i2gIR|HoASr|MFF z{<-~c#l0;2x9Z!vTPw)Z`4`f^FO>gP`oHP^ zyL8bAAV@*nP&o()0e}%82m*A`0+ay%NCpA@&-)LC03axw1V%~*0)c?bNB_q&5EKT6 zkibc40Wb&*g}_L_Bv1eb2H+qt0=O!Urh^z-LEZ6*-1H=yZ%ZX$-{AvuTQ_;`N-~gI zdxWV;G4e7cNjF`)=P84@WDNpCU{Dh9CCh)BxGW){SH(%thF0!$^p`wfZ%e-qNZgd% zoV&}zz_?}Yp(e$2F#%9sVuKM71fU8WEu;AU@6Zqk6?&sLo4x+rqbQ{N zYU$T+gRMG^Ju9vvQZK&5(p`;7FG7ro5srz6aJ>rvvboU~fO_WI|J%o>iTyjpcuN{p z>`*;{hf0E`ot#EGWPR_(*CUnAKO+GlFR@>GVV)alKLc7TdJwa}e<+!LW1#2bUdZCg zd64wycFLfK43fAq;UL&y^JR<-PQBg%4*wcLQBhI5POR;Ira#?Gf@xR%_H{~Y)q5$X;Nj^8iF+*zv+^LCSjsk{l<*Zj46&` z;}C1^{S5+67Y-whRI1i;V*tOs?e9w}{t9wc$vW(LGEyuIR2?71$PnoJ(1TgKJ@uUT zr-qVrH%fvz@i2`9#@FnrYoTi=v57}}m>j(}6aLG6v|R_in}$c?gz~bvM(}f;wZ+AIsS;cc1q^QfyxJW;#di`l=(jQUfo%G|AM>! z3UQhHu%eVb&)y$8=Lhz4`sB z=>-(gHW^GUZrV3_MpviiDqE!W^|8JA;j*~$Ib~1Q!bD|e@}Wv1_E?eVSXWx(D^mqv z>%NniaD2Zaz2&4nV#lXMWYEv0qt#9SvG|ho$efUGoW!WE+pEfwMut_u_v>`k9+3lA z@z;DUWAe#m!!mWrqN$?dxNbeqz3UEqWeSJ1*|X)VNnX7xqZ96@T(9In!XfnvN_7vm z+|@-6s~mr$%~n4szr0|mR{azamw_~=QONg*5ImqAK*YNa_e0>{bz(4FFHG?^=rDZ( zQoDPOC^sGc;-EfZ&wTXf-x6NVN)Obmk{@~3*suMa`$5(!&cQ#GP1df^^`BTVwch}; z?kCG`etv(4%<&zzHH_+q1oPFFE3D+tZ*t~dO@n|fF@YC=DZKMN%Cd$?6ed8tp>e26XFx9Bxj2@8Sr|XUX{z`-F_|$O3m{aHFz46)Xor zU?NJJaM~c8QJ64b7JXzI_5yvyOdIUK`L~W6wsZQxzJK35ftI05VP_cKz}A1l64BvXBn+{~4U?eWG42l81d6J58e-Y^HtM(wJgQ(H7|!fY%**^tu= zWdT3Cd*v9N4iW&qX<8R>Rn;W#SDhnaO5ga|NbRopAlqb=7ZURe1xgQI*tli!70}N8 zRnyLh3vI${n0%hrNkDqEFB+;oFZV*`zAaw>#VeVWbyd0Wj)JGSS)D6Z9!~4Q@SLGMY@tbf0p?-Ww364MbaAhL zmw#4o+ZS8f(Z`0r%rOY_A&&ZVN1w`FreU-KOL`pO!9aNdJkRx&!dvRiE2_K%e5SO4 zq})mOz9R$8J*gC9S^%ofzDamnTk{+W2foJ_lQ^+Q7_AlR;hCyv261m56@|7x7DTj- z?>`4?+=ot?@_{zv7trf8$KxkS=NkhXAFA=JzuN&tE7T7RX!%GwGU`(Z%7zgpW{$7})-A%d{tmq# z&@oKhqu+D}k|Igk&b+2tgS&80I2AH+GNkG`sn6sM>$lN3Z8=?g)b$gS9I`5VTaqrR zL@Eg$YJ`gy;%6sHO-`pP8=HTX{W*b=juiS!o{eHqM<{n7b9U0uN>>)FJ!sj+nZ=;N z%)&jos}MRDM(D`mF`+_Fg8CK&V)=BXvWO#9#Sm5I~Wg*Ug;r#J*Q z6{3%#KV#nOzsXhNOg*ZTc%1qokzPzwx?FMM;6Uxe)Spn-2GJFt#dP0^gC=RUn}u7&qkn-N?!Z6kqv_W^1ZTBl7qR& zK?R|emfz*9P-;b5iEPH}EbNc6xN#PNekE6DDHT&1V#RcZ^I%^TI!<1NI;pu* z@1UJlu|#a;6jdAXjvv&6mS3_iJ0IH@w4arpKk-rUzVI-bo=eVEzOGK=uda7&{Yws5NHgj|nG^pMPHn@#K&P6I``IAN;0@?5$N|Xtr31I^3^tuG*V${?p3F zAPBY_c-Fh=q7SPUW2~cXyY2|Wqf!{Q_I9gj@ z`0*E>r@GHIGvEIn{R>}g-p+3F2?%*RxtG;)0c=)DzY)o&NjqoUimwfDJyrfSA#bky zNM5rpHXM^asy$lvv?@w6{0TBclm037#LqWvsKJ)h+55ZX*9a}(w#JwpF)>1%Qk8*Q zbypQRN$k}(F&)v!_9y~308;bO#YmBOf=28H;aqrBfciKZ`UbHlzx3pWDIli)*#$hh z)>J@M?r6wo^Ml16hIhd~n>5zH`HPF%i0Qq=Aqx5;I~=V8xfhAxUB45;ISl$Hjoo-J zk^Hst4@Xq**M&@B3%S!t53M1Udq+we!)q#|hIQot#5tAq0Fx3d%6Vq|!ngTWU9e2* z7DfUgJ3KZ$weu(gh2B20WT#WCFQ*wUT@uh%G2A^P0Y@940J0KfNJCTDYt7nHB>RpM zrU}1IV5Ff(e&R_u?uTIM3e-r_+n5jxU`yRi)=zK?5bNuO?W7Hz_J%A$n6w6jOOSe|g8 zn@D!OEvQ%WO`oSZ)+1^@Y1g9S@29>>uY&%V+FLh&>5?(-JpOs+kCmKJP51t8p|5bH zc2&1jNM_cOZ>!P0w{)s7_T9uTZHvFA3YP#m;P~@HFsR!d?0Or4vvT-Fxo!8W}+hl)A&nmV)P(A^l$bO z=bbMhf)#&*sdv52FMyibV3#q6td}i`j&B%i&QgZnyVqn?#xcZVE`a2oRr%cV-F8=+ zXHLr#W6-O3bnYaKe*5#MJIqgi7-xUg4Q}&TmZDI}N+R6gO^$qYJr*W-oRdJtRL+VJ zKXc&bn|+AYK!@1{@(aCYGkX09nc?0W)>Lxs=?aS$wPYrwTxc~`5GTp}w+<3FX7HG! z`%(Baa%ky5ux9fydLe)svvsGVCcCwPXTKqIh1X@5{r53RxP=bvpj0}#VSLm#>=1iq zs7gI*CzSO<Tz)0;A{tFCmW~|I=Xy1mdAAaF6L!-P@d+% z?SOY2VUqOTyv3j0LqE|!*4I{ZJkgXeijiZ3)77Xq3JHT1EzLNd+|V`miX<0@kR6#W z2@nS2rawYqnRo5WmZg|{rC089!>8zgUQGrH%UUN-W@h;y^RR$1cGkI_HA2Z8PNj&o zu|>N{s~3+`A=g;Z(Ippvvv1_+Vz4}=VHN#tH{{|1}p6xxW7XT6r z;$=-?_3^zw(c#_DS;?M%8aQ3qvd%f3?5;VD>}aGOLT|Nii<)7!xk8Ck_cd0|+Kcpx zKUNz}x)q?K8V%fTSJr;|SW_l8r=I@E-bIQgxH#d1FRAT!gSPvCsk4K4CttIq`dgks zGb_m}3`|3-f~!|Pwgh8Q3fi}M7%zY(K7CJA^sNfPy(49$OyB%A@p&m!E5&&Mr0FX2~NHC~abFt94J z*Ww?dsJ{fYUwz%_ATbo`s682y@$8;>ywXVoOmoJttZq@!fWUc=Y1aOW9wcb_!__<2#WlaebFKAM$|y{CP*qy#W*H077qOAvRE zY-e8xWuxH=v8`PVF*`z7k`h;^fF=Ok{7dlGjQ-b+Wg#=q*AIr4gvgSFMmF#!Q7Q}77BdQ~-D1Uc!9Q80Q*1IKiI2tm z(!U*}J0zsqAiqK?KG)#_oLK<3HpylhmI8dF1SjUr@#eDO&DA#Y5`OrEpU07b#)AvM zKr+UB>f7qO@01{60vMtxroxSXn{e%ium@%LDH~}~EKDaFhMnmnC%*9&VLIUbqs2@kIY$}bBNNwX0t1`md2?X%iTzqt zjTceG$M@`e<&bka9cV|(b+9tKta5t8ps3p|>P_}Q_^|LwyHXIBypXpJ5Qb%)xgz0e zVej$c<3W7WJvjyU~@&q$MaSXa+h8>#@>Xf=JnR=9vGGJX%7oSu8zksP=YEbNw0GdPW4Dutgb%2 z(PFJaQjCJe^TX6T;#BX&0$-Y6-6&@HF{>hs5^2?Cyv8)3B=#Jj1Vww-^MFNB10S`y zN#(*(PY#g$PTv9B*PZWj-*wwNtE-v1o;`W%jB88Rn1COv>ye0jzeb3*)TTdh<3&uN zrQY7J-VtKt0pXAIOyE1Vk0&>N6*ij) zb_Qml{d9tk{IJ|c@xJ956xFr4uhIpT!IG1-{Crm z)}W)qG`Je+pq1WO77GULMnR{2owautuagtTJ2n~QlLjxmIx|kGtT8EOy)QrfZRO$6 zS0}b^Wva@~I+;dA!}Du^zTqify<_sxM3DWCOZDM>)pkoBS5F}i=IDiO#*ro0T*%|N z`;9>u)RV|N$2y7K%P8tRhlCt4p6s~batLqLOENsZOVI#$C1euTLVrlgpRy?J=lQxihmjjx9Rk;NLYhyy)2D#IEp)Q*bXG3$zRMT3>*`B77m}7ZDOe0Ac9Bnt zC@uwi`%>x+3!?cKKLd(M(VEwEZ0m0?UQ1h|17ZW3^WP#It6cyV!Bb~5`+ej42PW&@ z!H7w{W!X0>79b0zlLjnHO~me^f^JChGb^lnTfN>0z3yv~FP4oN;uWV(CU&1>OufZv z#g3CvTCUE~&~jQ7d?6P6#+Xci1>{rrewm0ef15~Z330oAd}u(rCr*ny>*Bfvr-d9nJ&Z(io}-#j|8X|A|Xw~j8*07 z0cx}`%Tp^awGd3Dqy&A{>!KdZ>C9eP^9{ELK)J5`H(g8>VuP<^GZIeHbSh#3;d?scvU29~%3yM2ym6Ih&k%;gC7+0$2;_Cq)J{WyC4{ltfmmrf^O$KdHwmE?$gVXmOUfLpoH6+TKkzHk{|6txeTw^%+YpYF`E6pgWkUTDkeBmZa^ zc;0mi#U2=E95<*Ynvl=EEV_UmYoM5!R82k?R~U6Z`K)(98QNI|^;kgfgM2A-)2FGm zs@lR+#{_CLGu2o#ghNx{@t3yHpsMg`yyOL-=%LlFFzDMb(~!<|x;ToC6cg7kD?lH4}Z5Tg>h3(yP&(i8Bk}oUbD5*_!VUBAlQp$Vp9j_ zEs#SMTvjttmb{dTe$%2THjYXjFl27rrIXa=5zbOKX6u{*Dl5~W0HSo3*V?HAF;lu+ z)lSa506u_X-N5p^?zAC%VUCkb3SnE!8=Hh;eM;%4{&~^se+k=pXP^GiW5ya-S6;lF z{Nq~{d@b67pErC?y5TH54x4`MoxHl!mj7e@8C|XT6&mW*DG7DP7|cR!u*L!lr0pFg z3zAmljd_?thZqE`gj$|=pyyWCp(BYQK4YWUO<0Ylk&BbpUXY?7CuO&46MxDfxyV3m zY(s0^rn4qzHIC|G<7OLh(^TGt6ipj}DJNz@T}?RZIa+V9QBRvmuq%r4S2K&CB&1E= zhF_NE?}G;oWhe1})oh=~p0(=Dihi^iI~e(T@Ys4v<+z=HL}@&bbx26%RsGnco%LJI zcRJu%s~HP~v+=L&ttGFDccSqkem%wy$0tqhs_PzkEbb75#hQP@kWm>l3eexN3i!5` z&CauzOleX5)X*r|>~K^QxSCdK;<}Q&8=+V(8b_MCp=xHpB7hzSz32@-8z%LLco88O zT}5HW293RT0aR;Iv-CxfM7o*k>O&6wK&bs;Ylbiw59vIOU_bmrH6H-##&fKzcx6Fu zo}*X-M{AIJz(#4sCz$fyu1mJUT50zMkjv(?F4g0=<@UkyRU^U;+R_rAVk_Q%WCF4# zebsci!z+-kLxl1zL-_b9T|Sni41*xFih(`9fu}Cb)=gU26Mke00vXLm+D>r?OOkvY z^zw@Aw|>MmmhW`^q;300ZUph_!UG!qHW&ESreVnHapWz$JK#>AjU|CG!-7Vr=%>XR z?~)YJsaF(z5nE`(-I7W!AR%lWZPh_{8-{#n-RfYjsF;B1R51|sETupDsJZ_TXWsWd z8us?|{#qN(%n#P^1d_ja4!6%~#Ms;*VlhS=PgVSt+607$NIo*U^Zvdqx@3+k$KXZ` zj>%dF%tO}gNucfFr4fVD>R*2yDMhCf?w!cYy5A4NSlNBk<|;CP1U%EW=iUKq+sO!D zy;3o-7WS5)O@h=b!GinhV2Q<Gm1n3z`^N51p<`H%C+xR#Kh6$4&PduZeeN{-Cc?(p_#m<0n;25lDZK-lj(H zA16h-s^Cqf;I3rPGadmVq5R;TKo!Ld!4v2RVr=2;FSrKrE&fkSc}c^M`zaX6K~N`{ zx*rWWN&Jn>yUt|Xjh?LiQm!mvHBZs5dA9k`r`{qAbR${g4bkB6$%Z}8(4VK6spI?5 z>$hv_Gg4^>kkm|{U!EOk$M#@3OBL$s(-ns1_t**mUiK-xcrQHI;j^yI8tYx;3;K}z z%EM%~u7Y3`2GGU%85s(ENxp6XJN;^`kvW*;MIZ5g@A4oT|MKIurHw{I-bh&LM@w%_ zyHQmI$W0~#>0Cf*7PEk|O4j|D+9|A@xl6LzmI~1+jcHv9dC7P#VJS{T>OI};D(}CC zt=N;l+8V{hYH%Ylhs43kTK)95!oi|I`*_Wi{!NFZ>wBN?ia2*_;Vgpy?xP)yh)UoOC|j)e6K058*jT07z5S|j|*H{F9VbEu)=fq>_; zk|>jCcq&&Phm(g*b)T2f1@LURHF_KaFQfdeA`#-%jM)k8-j(DGIaw#~*27)e`_+11 z0Q2wym)NN`%?V=FL9~QvptVE=I32tH+VHwFgtjcGu>r}?QqcMkjj84OCH(RiT(Dom zI3@Fk1X7I4J9nW5-#qjH;^`;z-kTgHzc9uRE&DvltnTlj%1mHX41DTHDhjl=<}-gS z$-Au`^$nE;j|F#P8?ULyAb%Vg7)3=uHNpJ+Z@T-9p@f&T24d!ToSPIi=&L8e?PnCK zC8`a7Lbdpc$d6`b?hTEABWoRuBxwmzbp14tIVo0^PZ8U);O1*`GnK>SM5?d(;E%%W z5q>(*_)NI<>FswEM-LW=wYU-sj};_6i%Ze+7{5yG+Iui75aymW^9S9vc0-UYXnY%f zb(^rYu|%%5n4NI;{f_A-W=U?zNoV>32sw8)+j$KoO`x2U;Ca2x_~IQji6$||0wLG8 zBLyxdC#z(esq7ckR@-dbRtU_fL(rn4mOVr}zSA)4Q0pPai3k=ES!G@?n}n z(;lRB)GC}qXplE8$6V7s^TId^`bX8>1w~Z)tyFsfI0jr_Rb|~*Df)XHJ-D$RnlLjo zO!d7}!!_IL*Y3LLWB(Snje*5IxslT5s$D-@bvhvzbvrHcIf$ewNh$gG3Il~1*M2j{eA@-k%P)KVudMFWgY`RQ z326^L*iKD4>yl-4j?}OHU|89YyNq1MIKAS!ovuB_$MH%6-H1+|iw)9eXYjZ!1{-iI zdrhx_0F_{n#Ee-*zMqE7Fe>+$r9hfkjeCr|l}Y3jSG&qRDvSUww+Bq&(2%+mMrS6Y zMwxG?tM54LzH~CEf#epp0w@O2!>ljEbQ4us4TL{QJ-gcyvz75~vIh{TDYXMq=9=*= zHvCi)8xG;qCl)?CDQ`&~kh0z1!I-hy`uLecmu%t~U5mc_h9Su{-o{9&!-jvs^>fzL3*~O!;hn`I6~fq}xqnsLG$GyAvPlGGd)Y;Ivs4M?}i^lo6g}HZky* zu}bi8Y-4|ClzJ$-AkPh*JE3I+da@)@#$g_SEtDrzV4bpiN zijG9*f_HQ^>rG^h9p&cyWF&D#HaPL>zN3DG1DaB5QjG63K0-s9Li;Lyuv2~6Eu{Q4 zyGKyN*~b3z{>Eg(4_S8G*B3z9D*H!j-PHtWobdry#m-5cDwk+3x9aw&Y{igJh5E-~ z-J%!CE<_sgF_w=WQUSO&7;b=p>RJ?~8*7aAu>pd#Qi%7_oPS4*gAnHz=|T~J4n`l} zVL*veDF2>(%8#f~mIAISG$ygDX5GZWiz(ltA2yb&&!vD~r=Y7#jMS4OrI@%Ov}C** z>wa3XkYMHPb<0TCpc6%Y<;!)$ag_Ji8nYOtnt#@6auHfO$ z0c#au^K9)4V0W}9Vpz4*?uD?eqCL_w^h)Q?u(?W8Sn&$yrSd#*HVrKJ@*{>zzG zN>x?j`kj}0rCcz4?fG2&Cq|jbLlX%mvc$e!LaW75VA10Tw-G`T4GNG+;&ckOedO1z zJloZOSbizT^hOSqg+!4vAgbRFKptG8O~SBuqGTjqovz z;`u)jLtHB;JmSbe*@mLuhD6~(4}{JdH{?y=FHa2dIdhPBBU=S~TdgdgDH&)xhw4fE z`R&s$1oPx0;im`v9)TV*yPWT8Y!V4pjdKYL=*~c`y8*8L`^EFC1q$mK37~X^4)bH0 zPbxk2b$6<~%uZ~M1JfP4+Wt5yC!)tH**cqC?GD!n+n?9342+-VP4VhXO^UoaCq7CW zs(I;{)$O$7rQv(G(?_!u!@AA6RKjuZZt@5GU3hxpInF@*A^8+q_8P7wDw*Rmx=Iyd zeLnh=%78h9`HNVw>bk&6TG^$e&HDHLD92H4IxPg;)qFoh-rjU)44(fMfYa*m&C-g1 zHW>}r^7Qc05;T;jc45Oe!hR)5BOKT0$4~@M+Af7A7YL9c{APooo{02+we7j&KDU=& zxF^*ZZOseWwA%$f_2fS(ZA@&YI9+|)mBXn(TAq~4^LhpK1ow)^FRZ!w*&oCE6lYB= z5*bz<@$ll;=m8+m074I#vn=|264Q45Kq}N_OM@?3A$Uu<+OPQ)n&cmT++}*^ytrAxdK`Dv9UMaeu() z^TKnvllqg5&?FcAWxdkD3!sIVh;)VVwa1v2b2a!TK9c%Q-~QPC$I5Q!odWFUsrigC z^2dvL7rAz?1qNKAF2>5;mPi)~>j$0SrY2S&bX5Z60<^P{`!W$c`+4!kER z)#!ADeRXdR<-G4^aKnkCUepj(!-IyBlrM0!M;K{D8x(m5nYH0K>LZhG6_kow`)zg@ z$4T7oGhe+Om~ByA6BXP{K+NrY&cX8NN=5&Td|jRCVb;@L2rw{R`s9NC)D1h3Ja3G7 zN;6uCd+$z}!^jjj8F~*5I7P`YgGc0PQoys}0xcxsTQey29I!5(o%LuNKaFO84bY2~ z0_)F=)4GnqcL-WzFvYDG)F--Am2r+Ga&1L##&@)8RYKW2+B|w|CKLN7GrzQ0%gwx!qJ=_5!bnQG zXa?Wqmpx0c)L5WgS6oed))hSoO(ike4|$2^7qtW`;;$GpfONEn#K>X|t>QZi_+iF) zKAY&S#0`SUJw9EqojW9fAQ5LWNrw`XlwXKM8pvD$xXHvZycpSXVl3!4uMnVJ&aTPQ zPljzpTzMoKI4!zE*vvlraO&%sa~eOPik!GtHQ*gA`nI-OOmPv<(ZM8l>CK_oU zqhGrCzIoMT`6tt1h^T<^qr> z2n)0U039g(PAECVnEZoL#4ovh0}AIZv?JmT0a67xk;KmLaAy3bWEd>7E2j_Q`RxGI zS75any2IKp|qiB4fx~8+$$5zG)ij z#;~M7g|w9d^^6dPatWl>FJ@KBDQpe6|8k3Xbb!$8ooF3;2PQs`a|W8bU?w|gI=W&9 zFwiTdv%xusK8ql!dec3(Kaa2^)E@a$LJ zEte3DjZdtyGF5fWA18?u;I+@*(ZjASshs5;;!_^SyCTtWNA87kuDD}Tnd7LtBwZ*6 z4y>4*IX(~L4a-w>?zYK?a{ZBF=&VVJ`=F6n9nQXWWMI8PoyEd$xy|iI-xl_%vzsAS zMu{X}ylbO2_!#%FX(0mmBY7?DR1{?x+ii<7xO%w(yTKs!VFtIz(AM~HHW;Xd93~Jt z-$xEFT(`_cwS>H+nYg)aDrDJua$e5*cK_0#(fCCg^{{%A&^Io!U07ZDkQz!VcV5oe zF!JSAGc&ihC{1-#?>^zv>nRggXT>$_+6B<=&EIBi)WJQHKm{L}X$)xj6H0&TTEMG+ z0jQOI{TMQMYq8ToaUM&Tl(*jE<3`xgTK{}YLABE-SIt{l^`ob?4TK|i>SuxX^OZCu z%zYK@`H{5GGHtr7%4hGKI^6_4&FChelMy_>0(&42?iPg8zUO(fynrri08hK#E*!JH zR`F+;@`dh|@nVa0g{`7P<@H!B_rOA-Wx1mQHy>Gh<(QReEm02@zu$PT@lg;PjQ?&m ziurmxk8=TkBe^)$D=synF+ev^C@I0Gr2tCUS$uUFIki0e<-om$EqEhF$}D$kiWe#b z)=E=OP!iWmwi#fQI=o~6Or9<@reE5K%1|MVGAdl&mzShYKN}hx)#2?7S?m@E2PewIY8E3GLulV@9qEgqhmP)Hz z*UT}$ey>%x03EDrJXKl7s|rRksZ0Xesk}Y!_bMQH&a`(@qIttJf;2#4&}=b5d5Z12 z%{H7GC>u=DEnO24DV0Bu_dHj+cLh8g?kPa=XomHM#De$htQa21a-q@!iE-OX8DtpuG>~?wN<2+Xpcvnbw zVV2y;UOdZX+Kqn7o6YPW%dt}%X1>AabJhJcj(8R6-I@mjCZEG^mH)v8nKXiVb;BXg z8lV4~=jC<7UB%a3=2?Pd4iiZ=^IxSK2yKWD6Ii+JMHVh2JDSdA)**5RHdM_yRI;)- zQH~IIl*sdLlQ5>s^U7fx?t!BwG6CIAPs{`w?o{5i&`mNLcy8OZSKsY;JM|p0XDx}r}Q~#5%NeInQ(oNkpHdX*LU$<0^O`-j-6jC z2xi^c`jq1{GL1rrYJ!s9(q^$kz28Z6YNKgCRQi->QbDgcv36aVRQW*_p#T2cyGDzu zrn;G`fY+x~i&)9sJ_`Ta%)ZYib6SG9#14F_WPC01CfQ_l}PrSA#?{iM3{D5`|pUed)AZ408My_K#BY!fCz%R(a> zmO|6L%-GYNzOGG=JSaF&WKpyngNVmTe?IFPUci)uuWQ#cH961{Baydh-P3*i`tL}0FNacY6Ur$|7pb_f zF9=Y_p5TX%L&k^J67=hSOE!r@nks3k99MfBH~l%SCooZ4Pwp5c*VXma|?5Q1s!mIOGvLniHEBgMm)Au4dNxoBE(;alo^g{ha+tAB92AxZm=amHIsX^Gt+^F~x z_;1VB(P2ONoEk37=h-R*U-Q{-` z2Qqq~bPtWS9KjFJ$#bp>t6RQz`tJ0QuvgY7>zkL}(J; z4D6!BFM*Kec7aK%cw>+hR?Xxz`7>XF{SRD;8&=jecQi^ATrYrdZpGiSs``cxt>Wor zm=>oP*i;Xa-^G0<)_re#_v807ne&y>W$90QHNnPJ--li)nxd1@bY~M=-hVZ`bCP;eUoAtj~mPP&If@P59Wbr}LW5zL{Gv=bDt;`%cffaWBVA zw~RAQWO_Oa8pV?YiOMeLhi_KDPWwkX2&G52 zNC0(SexC!wy%V{HZqL$MxeQbo^cUtwzljkZ$4N04-c8I2bAc|j|Ki3gL^-{^OG@7u zvnnvQmc*n`4r-9z|Al~lUU6A{d(B?kQW)#GFzbrexOa^wHH#$?ee0Hbte7)3^h^{T@?QEm znCuPT)VDH1+PY>G^NX#Hg9%(SoEAOoPQOJ&qu;7`MuGK;o7rgeLPsxv3EzVYz>9cV zI}@O%GO!jyqxNN9IhaV>eoCO`xh&@A@j&m0MnI@<}x)`0BB z6>xzNihHXsl~C6L?=~luBR!lmG+9Nxbg+Kk-QqqUq-Uh)%$j1!MEUuu6o=|B_MU-2 z^YfLOrvicI8mCT@dGiO7Bc(H+f5g}R_}%Jw7&Jj~k7S78=qg_Mpt+|0g~X6$gFIbw z9)8{$qx6J-fQ@_AfBW2sQs4(t%ubRolRjWduvh!o6c zH%adO$B^rQHg_?annsWhqGpTi_9OY=^Z*VqqdJ)^|EpycgnWZ0LEoF)IP&rBKElTF*weO~R85rA;14 z+dc#R$X(JsGGy!1g;NIxGec6g!xBk&)wkyqY?|s<*c$X#AqrAQrfi<9hg#$$FCRk1 zlKI5`{;hyQJi&!aF`_}|?&y$o|0o0UFsat}@ez!3Gbiv9joP)x=F3Ynab8w+wFM2e zyXn>^qMk(nZ=~2A^5g9B3&2hDNoZS-s!=Fw*4TR1n&Oo!7l4y=_G3)nfj>%Rt%yx8 zgB2PqWLGsKn|ck~BnIxk<4X=<5BN|4puaYq@;vQFTrM`etGtWWDt>I_!ZmsEA<8cq zi0Qd%LNS+Sy%d8irgQG*gih7vJ}ecco1hPsdBh#AN~~-6e9&8!x8LWqGV}3IKs$RN zyEd65Pq!AJoy_#<+xSXYa?%dMB-YM;d&i^LZU{kpYo8|3|BM zJ#d~^5mU*=iwi8A=W_FY;Vs-kJm!hOG&kt)w^k5Oq=%Nqmz}&nu~?9BP+#UvbfRPd za@#a(x3#KX{Ch0^-dnE(EQ;2Mi`VVN{$Y=X#>nNq0r=<4aTE|1X~T3N{O#Y!pHtcC zCwN0J*%459NKj8cwfO6npBfiHN-2{5K;uN%&}bf(uza7n+k?dlC2%YCD_8_W|2o!4 zOdu5pEYON(0?8g=JiYKZ>Pu%41-MNtBlOZOTCA${$Hy!%cSTxkFx)M_?lA6n;(W6G z12#0g@elI?qtlnpX@hPXnj7VD-e0~Mu{7Qvc9#O3YcSn&iVNOlKiR+cA@23$@%EQs zi(B)jZtbzokLj}YiZ^}c8eK#A_L^#wTwEOs(+gT8{d;oU`&H?PVJITtke*`o5X^m zF)G%ce4cIL{CvMB=|D!j+(|Z9nEw)Di*3gl=D}Hz%-{5XSZEe;HtckExGu>jlw{%p zm4DX=2E>PU{&#tG`#AD>ldTq65_`jd=zDPv*Pw(_lr_FUH4~CR zK_|A1PJ$(|-(Z?Uow-3;lYz>^3Ygullm~fzQ^0wjE6IO9Y&`T)B7zF+~FAf~JTsh{am;csRhrB2JVfWI> z=E1>x9h9xUynSzYQ=@O>G^hW`1u(T9e*R!#N@YG#nfb0P%LOpUawgdEhvm%VU0`+1 zwiZ0?fqByHOf5?7y4G5!`(9+vVbIdMP|9z2Y@v@UC{5PG^wN)go>QBR%RbXvpSm)? zI=Ig47QcInFbUS;`danPPq+EHeW>P>qu(>2f!78IS*ZORp7PONV%Yxv)XNG&{EaNc z%YH+mtxVED^jv$J9)MrGmJ16yqAKd6;=VQHg;QJh8t40ea?g*!6n+)_ZN3i%k~%(13!r zk#5kf(mnz}B~3)PM#nw4Oz>&5<&7Awj-ONBWh(i8Yu%B1w5gqIB)q%fTWASUHCg1~ z*X0*t*iU`ma>tb|sy@690cBF0zwfQeuB>0p{FLfTFRA}yEnXG=rgl8wykO^an(@zB zRq=jYSs>v+B;NPkpBk+j4MQ$r_iH&M1zs$E$S#AFk-5zE= zF0Z>2wX*V4I^^>l2`BE{so?kJA8NDjp6(Jj;3o2^`95 z#?JJ@W4WdOrZLo#l$NxSvQ3U0htnC0} zCOv;eSh2|PzLhl?VA&#b5?1&_pU(ZWFTr|L^>fYjE&pIMzSQ!KS6M=u^yElQ-pw;X zPp6wYP$$Zq7!SGcm;P*=8_5sJ=&#_Rz7(kOq_xtv-se+MBFe^ZHUsP38MQ`k)zxQ3*5uVc{ES+|-j`m06lJ8Z7X^){nn^uU&6uU^SUJambpS&cvalMV z&(<3V21M91UuQF&WH{g=q$bk`)UZhn@P?tq2{1`rB(_I0eB9QD<~*S=(@(_)^X%a) zjwV~a({1z+X8SC`68z6;bB>}wWL7N2h+b@n^P4%MaKc|qEn4q%qm*D*V z+9V|nm9ms{injk-NISjl8&s@2`#Y%P7W+IY5?78QM!n6I_Oy|@Kj9dh9M=@Q_UCwa zV4Jz+T*>TPjNVDi*Iykk)&r}L%0I4+LK+r!lAEH7nIz#!MPb3hr>LoVhfeBB=fI#8A9M~ZWr-{*ub4ywmc>CpJ_ zq@}_eQ)Sot-|&RKa86!&JT_65ZL;YA`P38_c5G~+g$%M1!jEMzynh0q=%(quNt7d5 zM!?H;OM7GAB)tVGBr+!V|3GcCvkwu!O0e5AZ$6%7 z^qw@Jb5d*EcJ2_nE_e!Ma8lA_wGB1w+vtHU^kt8io(8)W?7E!6;lw4UzJ0H3&Qv!Y9m8QEF{;LBM!i`}ezd_NB3WN^uU$P&TuDl1y)(S=Ai zo};@k?`q;Rt1L|z2_@uMjROA@J{^~B%(Y~^>dzAsL@&xGyMiop1L=WLw_>M^smA|r zDvc>!MLL>9PjO#keC7gvLSPiFsUOC@4EQYU_c;yvuzz=R`aT}1C?gaS@(};jxbE(4 zM1`-i5NDBg=s1A+4ef(wvsZ?ha?9a#(3ip@K7Z9Zf7;*5Zxve8=^JDhD5WT-0!#Jd zF^_gj=Fh81G3#I7c;9$U_3fv?UslwiEC|z}@9mc%aDeKKxwo@U{tqBU6q@UiI15oNoNoK(C3lRUk4v` zuYL4w8&GbTeg8v_{O8e(ekmdlI&lk7p`L@eY_U>nHGHH9bBGb_1`;X*kfTPkE6eUz zvemm}JT%DX@c_fDWNX%nSd&S1PQZS4zqZ{PWL}=&_a9(b=R-N#+E|EJF-+T(8D@4z zl0Ah5k}V?M^$nFn9HdLTt+u3I*N@eSC8}55aE-hW2N3#w)Gl`xAD(IadV%^@MLCEqKH|oG>bCj^x=OW9 zul|0SF>O8%DOPg~>phh{@Oho5Jg~bjz1sQr?f!4i`Gxrlw{R_?jgbC|(CdxAlri<9 ztB-DP{s)NM3H0Dz`Krn17^9IPCT-FYoBC^QB4+g@adrN4n_|SmK-;$vnP`n?!Ks>y zA`M>dq`y+cu)pS4W8_)25d44UiI0Xlcl{;+~epmv&*1xQqMNM=Da4%!N}Fk6`SKZ?6`+ znnq~5^nZZ5^U?9A3v&->64?~AdB0o5fBX1n&i7`8R$1}aez%oTffB}e*}W3^1*tR4 zcE$Yktc3T@ClX1A?rk?aJ>67=tK0q3)c4B@F4u7lT`z>!F_$6lB+Na~0K~Fyo>q;8 zw0D;(USG~PNj(ZcXwdml0Y6RVWW|E}aU$Lc*$mk(e&F}3NE7%^c$P!PA>PcouKjVf zHD+LERLJS@O=`E|lR|Ke;=m~k#cWDs&on@Yd~i5mXGxQwfvz#0|EYQtt4|r|5xkxF zWca_KuR*u(Fo+0z#Gv=VJ$>K zo2qYu#lfV=`IX7Tw$76>!+xGb_u*#2=09h$6bQ;UtsJ|p9~$?CJ4TcE&7S#R_psuR-1&u#W(3aRQrJYy7 z+fzT?hJk+ir;Y^!I3%NbS;FWu<-5JzuTP+(5_}}Y611+Ptz7|`0C|}5iZ2h~MnFNT zX63p<7JXhXN8?D;M>CYm9WY~nJ)82M)I9|j`72kF)a|1N2GQnibwU6)SR%zvYV8U^ zrr$bQiV0$~&b~>jl;0T}P3?4X=k4QX^ASGYTwXzPogU{#GX>K!=k1Xmd`<=#--;(2 zBII@7fBK-1i4uCW^SSw#4a^HD#Ue$0gU=Pm-yy+`nqnyE_$ZY|_4ejrRdPxA{?1MI zokrLiP(RxM9`J`?wSNwxsXkhPy9J3-*Vjw=rnBL41M>pcnRo_W(kE=gG4OSC-wAWyJ-+hX@8zTIPTL6 z({%4MyHLgHi*LbMoHZe?G%dmj&ksCGDGiQ`7V||PshVFR@==>Ib|z@iL)76XNVc^m z=heTj?cX;aL|g2Z&Lx(*7!?;qF0C;S#{P0!e>l_LayhhdzM!3;`>Sn7J;1u7thwgd z{JDBPYaSwJj#V{k-qoZyTgB*(d1S`U@!I?}Y2eKfQ_YMk)B4Ls621u8;SE>qA5$zT z%37-Km91$WdN{zo zv4Er69}DD#2(r#br=aB&MLXJu?=U%ML+JL81p^K*1Su248(KMS?drsBU*F#U09)&3 zZRZd4)*db^PSGwL6&EIGQ4TG=Rn3&xp= zK#U9T<@1S)KOT~4v&V?26jZ%*C+Fh(k2F4Vpewwr3kqqP>N_?N-({kDO|x#R41!kq{&`6X%9;0O0EO5Vm+xoBP9eqSEAzVOJPFN0KmS4~9sS@vbS zar-*@`fHbZTgpMM3G`?67t>FnNe?d^S9=A1vlZducoNq2-KfHT=j-e`z?|C~I3g=_u;i%R0W#YR5kFipf)+M6q%(j>`sSANzRa|$ z2bz`Km%C^xsMY+j`H|w1+FMmJfSvNQ0qL*CJFAiH5byFXu~k%`(s?z1`eKWtD1*4r zmTrBc#oLi=9#@?H9EEB_xj!9{I$S>`b%N%in04!hahU@*mP*~{G>S=T%6QihlvUN9`a zEv_WH&(1`eeQAsf#(Q2MZ=r`)TO{vFQ6QTJX)zh`^X6$N7%*?lJ`0cBGGi>*K`=I8DzIb!2|cfnyhPmxqm0tvFI1TIvDFFaZIQ%b z9L_^ZRKE)h>j$o*BAxj~tnJGH4#JG_%a~>kERVhr49pGlKP2!sVftR!s1KyBj}fu9 zV@++`N-T=x(Y&rdy*5(V8*P^S|#kDpAf`2W89);Q(_V_WVR?Bn-;H&Ml9(_)~`euVUpkgSE^YQp=6 zT?~nmR5sJDj#s2K^9#by$!EF8f_}eLTUAT_pX&F5kY~oxf*uJn%QYhHj|z>+F2@1J zAM9+QbR2{{S!%X`Q>)wMqSxO;g*dTQcBVAL##GueNYq^^LH*}Yh{v}#0UxQ`Ff(2j zrwIs}I-&yAQ62;b*+{n@H;(jvWOlvWk%=$Hg3f|zURM%XARs3S1?i~{b$i^eOtKnV;a zo0bjrLEzpBisLD-vQpBRT2^rtyzqHMTBQzPyP=K`o2@2c^YP7yX;AlcP<|=D?SBAL z#M57An$KR_MkLX|l%1AcKl--zC@qH$-5t29HADq%9 z3)?HEdfSkVv}!cHF-*rSVZdhn39!(>uwV6Zva!$2lZ)+ps7}N4DnL?iu?|w%QLg)t zVUiWXohc=tY=gi}Oixm045-rieTF4x+DcQ%Y62y7eNR2^+G}6vSV$74)Cq&h@Sl+5 zi;WvRa2A?R`pN->k^)>%@0xt~A-E-x+r5qJq=&xc+e;4>J-z9lX>SK<7j zYN8=%&LvB9&?z=~P(V-?srux#gg#;#{Wym4w!XQq^5psloU;LI*5yqNnUefR?@r*? z`Ac5~Jb=(jRmpPezWq{5*3r3D<1Y8rRcXbuss_%LsvPYODZ|T%GU&upQNjC$c9aHF zH{c-d0{9UVf9ts9cKQ9}s|1}dfHMdE)*OHJgC!(#JB5`Bi8D<)wXm?DO6vlHYasg`8f>;ImpLq9n3vmEL7S9~o$^O{;pabeZc&u0%XD)LiCWzWm zlnup+z%V9JIj3%je>np1oQq9-toxix6iu%3ZK(o*Taj+6vxNYyw6++$g8hYWi{T=^9<9^(U?@H_&S ze783qrYO>wQZlkZ!)P=CmZ7+pozBLkFA7}^$&XIpdjx(IA(x?hL?&nS)CQZ++&I)# zB$CJ=e(jj47=o?B3F-OrP`PKNGOU!uurpd_ij6oPq^2qdu+w>!?sD6#)Q$YF)Kbbr z7-K;86zdvj!*G+6RW>o!`#BV`wiu7=1p=1#ayL|G)-*Spzn+`#;CVZ&4>3?0G1;@3 z+OHw=N6TUjA6(Y|O3u$;+goBp*a2z2Cp-G@t=mpDIaJrP>|6C*Uy1Uh+V##A>Sojb z{6El+&i;-;|IAJ&9mptVM5Z+NG6=$2$Y#o*pYt?ToHpb$;8v!Ey*$N<+Lf)L?hK;t z4`PGjP;&afrucBOtL!6UP{jmoBC6vt_ z0}Dx0vPslyutyB@%vte`{{W~DCLQl&Z_U)ZQGp2o_3I(DWlL{2aRI5a1-4h;YGoV)Df&6l} zq4x)8!~K?!n)$3Os2nFQxE|k@xW2uWw1|kkETmw`5)!Q=jy&K)b^o~75F#V!;Z|oS zM`+e)p`mZeuayPn+2N}(3$1Qf_7%9QQ`8h-NAqjgA%H<3ci;{IK{nl$b2ZACDTb(F z^d}^5^rZFu89fBnJU6$-0JS8=MY#M~n8Bpa#gHTi|MajNipfTV%T)}$-L=XNQ8cjf zK?41K^Hll(xxzPP`jJ|cL=8IAA&y41{J6*sh`c@3>cYsqa)!2jtFNk$cK!nStFZXW zSI$=xij#O>czTap?2wT5THl-pQx83LK)GPxY)GhaUuPO1?yr5GC~Q?omz~p$!^X%J zfw7O5`SjPCMVf^293v8~Mad=95>EgljtE&Xu-J*EPBPa46y#T+z;u^eUkJ}B)&<`# z+c2ZHv#Ww1tfQ^ohodb9$Z9LZHwym&)-)GY7lL?c4w}9)3T0eaCl#gn@-zEvFa0(0 zZ{|L^nO<2qlcT>K47!5>g#_|3`$RG;G}QI-cc7B8C8Y{RaV#_rR4CT5HvG8O`>Bx3%@^-15;3OJiScm8u|aZP>0t68RRd+lse zXXq~m4qt+>al4*V%*FZ+ z@Im<)%gDd`B8i;8F9ON;$Q`wnWXEV90xT*e8Gdi9tz_m>)1%gTF9Shp7~5S*E{UrA zGWs3`dwT~i$Tc!kGQ!hJ$7S_))<0dO1#RZ8>STd`+x#pI)Faa_mDX5jn^aYu8!m$+ z`fG8$!6JYnBP~^YJBco!{)R3%)ZWJTjAE^#2XG3-yBB6uhdl>fRqV}m>3B+pr_j+v z3*UrZX~-zWJg52(kcPFCb7OH@iPvEv8A~#R*M#qt1f!j)hO#Gn7nDye(3DRwQ$3%( zW_?pbzF5FE=xCgvi$)hVIO?mnPMKb}2y64|c@Q`y^osr71APUQc>q4SLT#TMsnYG# zL}zjM%!F|tC?b44mx{Kaj=QQpRUDBwbIkeCiRqHhou5m%AM*XvHf8pSWd($of)|ik z5=J*(CI49}T1U})T|qi1;r$QOE!Zc(9=dExd;-7#H_ zt7ce-(JmPGWlVai{7 zYtvt7kKb}LkPxNcF9}^midLb$;no>XFB@Uz>W($}6mNlg)wLcdn-QP0(*n}}RTDG` z^I1&YXk0gB%Ks|}aP|e{OMT%iNjf!#kc^kVFtLN_RgTf}fnHU&)IZ0+Gwo-mbDd{l z5@BNqHDwy6%COE%b)59VCWtj)7IkrxLKl>v6pc`xoNSTUwX<=Vitp%PD#Rbz#&sl- z#8?g$H7Xb(ttzlk-vI?EE{zsomRzzfNsVMahl9#`Knm&lL7+XAM7Ei zujR!XwIO8o8uQ>@=7i>hDHe6sDp>#If+x^L7u^#e`okzmaL@w1;)7c3yHx&m`znnL z1{2jh=mIk{AChB#_4D50<4J`v#FTvzkX50$a3|WKL#OIM2g7@7LG=W%WteRP`KIK&`XyLZhrn>69Roa@=tz`%ls*?efmV|a=ZfW#p zTFiMJ-uYtSwEzP0 zdcLrv-0ApDYatMl(PL4*yX^H71${}!?*?z;H}f z|IF&)fRD=lbk@Q^H~hTlYYN|3A`}-AaGq{!+s^5#OrH7bWnHbU7m}vw_Dx=nEd^`_ zOZpf)o%AUC?CD5>(3tl;Uc}8Q@Xg%p<`K|m=jdxAbARYN%j#LjI*k`6>%^e>vF&2! z=EDuM5aPFD)3baKIk0BI=ZUP-lYu~q`f~TRC$A^$3-xn6f8WE#?)+Z$`F5Vsc*$R9 z(b-&i@vhc0X5|Brbkzt1F;RC{_iAl!qc(kE88V@7FUElvUN-&$(Cj}pqI;oM-EaTX z#6D!)DXZmEVZi7(2o}g+p3Y8dId_ip`8;@C*`q6I1=;bbEvU1yvG-lJaaZp{tWly5 z=|M?+GpLsJnUQ+(?E!>qYZ4D7?#d z?bm@g+XC{~>9MjE;-ak2T>k&-^-&nREG?u1HuwIHe{Fh9>759Ma)NT7QQSs@&8iIl zveVk7s;=FdZI_I(VDwqA#Ar*EBgyVLiM%W9@V=w3z%X1d48kHT%h`>WulxntOuhmv6mf;LC0#T|#F=;nLIpCq~lMYth0%b23;;f#0?fR7;sn?=|c+ZC(# zjTHRZfhLizPex)ibbFb_p%4>}%D+;bP0xc?)g3azCLZtyB^&^}rMXu%j%zhOc{P-0 zONRmY`sEjp9g@5TqHK(RGzR+dEtev@Qsa@B&4sX9(`h)3@47d`ce=f^>9P5~t)#QJ zry4g3T8|ncT*FM)$a>x&ppO;KB#a#GrRTkJxTO0ORurw7%bx4=sj66?aI618r)rh` zJwHAoLN|mvT3j58_Yt!GvKF{UxT|t*myO^YkLh^IBzY6Wlqm}E7hOc{5zHBHIIatT zPEH(9+PfZ#5bdig+yklr$?;djPf`-wHt78^4kQ&|PFjh0qRm1N|Ielm90n zQR=TV)B}RL`jS0g*o@;P*^VJdf+RqoY$!>%M_FB*su?cRB6)1;}Ua+~w|&pjR@bllN&W9aH@*e1Yr{1NthMS-%Tc`5EQ@ujViwmqRl3?$0jbR{yIrCCnM1X@K~l*g8hp8NN>hCTFDCu z-GjeQUJ_Av=YDNee;_Uz-*G|*VdH+zfW(+U{L|$R2^5UTbEDe;=@_jmC`1s>aqoM8 zavz}Dj=$$;M?IxE4+*cA;(V+HLj}w*uF29NR|a|~sLC5g7!6S#T&cYwK-86dmJOiq zHHTyZ`a7uISZ|Ss;<+=rsHbX>sM{j!a@ZfbiP>V`P+wdNg;k{hoYr;egYwUmt}Y{w3c5R zxx|_h5zfSbMxA4MZeSW|yIFP=1LjKxBrmNb+`>flqv*PZ zl2iOfG2`)O9#n+*OLp*UziSX{@P+$z^HK?ny;BdXCur6xNpvLJe3`=FVQaW=QJ}&E z`{!Bq%%3(FT~2S5wCqlA)09MnDefq+?D!C_>dgfxhX%5Po8LF;Obd^juwHD?PEP=m zGvzwP33u743JQ&vkr=-wAoT}ojDIthx}mJ5$Wyij1*h2NV3w@8^t9nAv}21FmZI17 zs$3B(w8`@E7BZ@AH*7J=2PIoi;(WTSpr}o^V%Qv6m zg7E58X=|9{W1?BmPVz*|l2EElkq;d0q~=3kJV0msl&@VJ-rJBgZ}tX>kX`@o4!6EW zCFpBdn_oEM<_WlKSI@+2a0SE1^hlL{d~GMV5C&g~plU|}41_5RO|Klc4-R{yxbU6u zb(FSZD1nZGj};;~K8NBL6c}!~3iYDZW$B&3>!{L(bx!oEJ$`^vLTXK4eSywp67gn$ ziVDnv-ST;#CoJaL`ggB<#FEr_ZQEnAuT2~L1r}dLwt$rh!vY`4-fyZ%4^#~@+EYWu zrIbweAIp0`y?#}nm25m?#3FXOY`$JhIj1MawVbM4sq(|No?+Ey>SzA?9tQ}|@2qnXQ`Rd2<=u@`FuuJ3A}*nB;@7GJ zq^P}JoRRzHb&-h2gfnkRZ3m6RN$Uv{nYq%`bHcHyuUQMFwY>g{wJnif39yjnUTo{~ zAAnbKQ_yHHLvw9r^7!GAa`HN#*m2;CV-T(!FI%~JPZ@cPvyprg`(ls3P zJyl<5y=WXbC!vs%@IkPAT#p{MiRl7-9gr>tIT?Ux2aIMV#Eau!=}U+f#oQakV2nj` zRzZW>da?tmKrwHCNnN=e!-{&?H|+;s2+h6LU@tzgIyx{zbsZ4Srkwvdeh29}Y|v^6 z7|wz_M(z>fUs1_LWVXz^O~H0nFK$pjt1UJV~jE^W@A||MVf{g03RIag()$S4B~2 zSho8RMVzQZ4+}liHK*+SFcS5!I%hCk0rOJM^L;e%eygyivL&kC$8d*8YYt@+o*~p4 zTPHwL>={aSISC2QSSoFDIyVnh8_vRzs=!g4_orwQpk9nG9{AKc!$>A+im`Xmovn|a z;~Ky?LvZGbnE}I10CBJ}>U8f-qPU`>s9Rj99pgWoFOl^Hmc$9d=@e`i&#LENK@ za5;jyF2!66z9kjM;o!8#PQU+sFu9RdW%fBXxi_1ki(2!+A%x>L+oqyYZ)RkqE9S2q zhQ{8F2JaoYdBx{#pb-^-R=wTSZ5k8JKT%%D;y;+&<%U8BW!^87XVa8MNxs~n^5%Au z#?dUC0h@_5k_fz*aah-VI1fZP;ZaW<${)BGx9y;kUgj0keuk=Ml7}wBl8^0 zJei*)3Re7l*a569d();Ja#1CmD+#ZXl#Z$_1}D=Htn*|lQm7R3jFFpSX|<(3EHzF$ znKX4^fdx7s?+jJ8Xz%Jxc1?otzH^uCv%NQXCc{kHTrmTc{WCNZu9NIcHvNUltl^a9 zL+GnliC~Oulid5=PS96Bhl|qZb5e#7W)vnn5(pQpr7*7SfkbD)mRLGEOjjdZd8qjp z5*Rc@dqYy_BI6H1=;x3Ad^T;g&2LV})CwIeeKEi@v3E1MWvL(YQ&t2iYX6-%nIfSu z_$$^4QvB&1dekG&1Gp$)8R6B`s@7!wr>sdi_CQVh0NG^1VyEzN&{5}OGWi?t`MmK{ z_=0RdQ}D*&m!jQ(%^!TOk?J2MHFnoz%pcC9zrIr{E({F~YL}hb4V(Qr{U3niNw2nE zj(I_$NyA$kqa6RikgrfMJ;p!f!jE8~`3o`noxZ*8Q^-(fK^^#GwVwUo<0Zk2olA{v zekJ2o($-m~YI>tTSsDAoHm}EbdpT(`Ln{SAvA;y9X}8nOmTT-kY<-G~*Uv zmbzLM`_Oyp+xhS-<|=l!#Xuh)pVzrkEll1}{txc(kV#K5bM7wOggf`D#d)5xZj=-X zx9)fISe<~$^r1|&1ztdkCH0=qY!eipwt$qe5dbl@140?ON-UT{%;S_L$Z`=J|MX*r zbs_n~cq#Sr*Arb>VG2~{&0DHsB!=1rs{6yj2VhbLeVf!R&foHmgt~~sznw~Q@1gAg zo{`)))?mgdfy>JCnC9k?P)j4u!?f@E2qWa~bMWJ2r>XCL)ifdZaVElygB{R^yT4A^ zck}4!-c;+9A;Pc*HhZojW@6qCKYo|JvHcn|b<;rpV7LFnF(~h6cs=CP66OEVPG}e*z2|$s zg8Ce3+V=STo^A6tAMhrQ+N@FA)9z`he*u>hL9@$y-dDOg2z4Le=ti$oE*k)JFpwe(pe6SiMxiY}cQ5e;9mr2C) z$`p#TXajQ%gvzs1<^cu>$qHE~>?l9##_AzURWL#YD_m#K!6fVbcZ=8g_YMe-5})dn zl2`w^UqQliS;ByO-MD1Ap!fkJqGCt8G2l*8w|)y>peEl2-^2^{Ptc!JcNdq4-^r%5 zmzL;A@6X3}^*wxH;1#nw)6Yi?UzZB) zZvw2bVuiJ65Z(v)5Ac-5!gHBwhw@xTpg?F`*-=Z8FA7wEx4+>$FL#Q*Z|}ILxTv-UM&+Sf&E~T!loVI_=vIrcU?i)XgeK)`JGA>~6S;jY|nCIsdWN2yJO)m+& zpnr~2!ODtl(C3F@7f+CP8Ay$M>Qq#(>NqPsVvOX{4ZmY-&RU%+3%7)mx&# zLCHw;)rw^O45tJ7L?l+Y87Hl9)6rB0db5R$=yS?13}Z}omqZCl??a1fJ*nTV$go%m z;TT)U7aLT=axC36O?9QyIHYw#SCTp4!fsqw%@vw2DtHaT%6|yX^3k*xqV0_39XE1B zVNiEz)ME|l7&wAGK7E)g7zg;jV;Z-IWQS8mwIGaw@LLumFf=L*O`XXq(Kl*AcjF0? zEmQqR$^{QKqjtD6EKzF{$+XK(C1%kj>hSEK;$=t7l~eFx;m}U88MRZ@$Isfgf0p^N zKBTtWyxfVN9e}T|@c({P@%SI-q3tub(m?MmG6aczynFlO-%3Rh_%%qED0!g^h|1Xf zb)F}N9gVtS40fF)*o?Rd1c7vhEN~PECk2paPWwO#)8C`g{|2&CF4M@1)8hd@GL`C! zS6LtY0=ZV6O_#i`xV_EJ$wP}{-0jJr15A(o1k}89XW~N|+;uZhZ`toId*RdLQ7k;U z6f;}ZQP-B=mjtkJBbL2Io0nsJ;Za*ho#qSkSBHL_>6`d1L7Sw>n8|zKIwC1z>0AoaEdeF-tIqDB#7~DOT9Qx@hEHYiUIgwo!`` z&!dF%cQw}k12p|o#Gl6^O|$a8v^bk+G4%=3bSg=ov?C0Hp939hLZR@1o^0_H>{%GINXeXv~+aq1CjLkn!hr zJ*(Fz!Z&@AefDiN8GOI?5Mq+^46lh5Mv%wgzVx{zL9|wKpck9bH??U`G>9ejJvG)%r^0>!M_yawp2F zycmMdhilT|2-@8zK+3i7XJ8WM?mlWhES}=OB)FX#y&L_xFldxA-~uKpHGf7FXW92X%>tbSE}@EB8$S~j7rgFc zLWa&Ql-$y&5MO^}?0K0pbny!APIBu|P%h`T(dIs#Z_tuBD5t!)d{H?1TAR-hFo}mY z#7Nuu>*y49)7Ew?&1f}-W6ml`ctV~lXHG%TtkWr0ORzA8e`4pa+LP#&*{l%Ne+4a; z@w(97!Spl6IS8Irsa{=^ks5t5xi@u@^CR>u8W3Cv*bORNAXfur)cmS7j;7^To*y0E zNqbwZ9z9j^vSMz2^DNh==3n0RcB0NFn9v_t8=to~3zARjpQxotAn#g(X!&GeBs&ze zF&AKuT))r(Zb7isc5YGXfoJGY-`?myhqlS%!D`sH2P>CcV%sWAgSFH(K?@NdS4Fnc z{TKKzeeYHLj&41)2@5d|^lr{Iuxiv7Uc~2X{H@sc&QdK?ur9Fbl>LWfXQ_Dm9Txmk zEhd-)S;r+*l*q(Q;rdlL060`#4Kh+UBsdE1RuH~-4S&^`f-0g@=zFm;;j8^+iT=>J zZ}(9`Y|`=&iEOJq{%J=6s`#}&6Nq7oJ{TNFJENtJ@`(WuibI#qbykrf%-a7%fle*bT`zw#OPEYx zvS4x`nh#GywF@cRDXvJ4Fq!`to@a*{;h7pB;#ynWuu)u(is(a~?^(iHm2|X4cHBks zgvE}7Ibw8aS@eL`rS5imsju2P-&?K9ZJ)Lwj>$yt%T(jFwU%r0wE~0gmoEbYt0~U$ zc`|R|JD22@R3@$(N)SkOrP`{#TSVV8^uz3=$CV~+eLFzvNs(91lN-4bcl5ngj&uXr zLF2-U+P%?w(Et>=RfwIKpZ02e8&|>PRXqwya^m&ju)RcCDdlRjbz;xwN1ttD6F;11Q^J-f1SC!2fLn;-lBQH=H6 z7ykiVKTkG)+=*7aG&^a}<`U(MOm$;jNPF88k&0`NOnOW&o2e$NKy$em^c1A?Cq0NW z6i8WlBZs0a**fUQ;kl?RQtk7*eg+VT53V%H)OXon?Ozjfv#&an`i}{+MBd$x-g=rK zoU)qd48q7RY6EOYELHi|b;IT-1?R#b};O0}>C{^-p@-P9$p zlx6I431}*CZGymChyc)I`GO`;T-vR@D5@1XcN#U|(U)qPf>o4ZU&bjMEGs}kgQ6m` z-r2}aa>|e5<}Ab|5L5^Ffi|qm&G3X*A@ZR8u)Z1@ak!#&l~)cM?aGfID6`h!2d%I* z`6%DN?3~s~Pp=@e4MuTIH@k7=^r=!>!??yg+naG7l!4)2SkXH(P=p7Vh-Ac4`jprvC>}Y@cfW*m`Ic7IJc;DuWPWv7pg-pBV4WETpOp zx96ehSt$mAej7~9CeVA!bmKFR{sTOoKQ?KvINHq;i>wN^z zVTo2=>!%z8Lq*s=;o&}lMA@F)-3!{yr(dS2%S3Jyy8c>r+*LFw1B=r`0=Wv4y2ioG z_k8B`o&!kaY+8|jw@%1t=fgsWpyJU2;z&OI>Nd5yJ7nkOV-;bR`U(9`b@yw>ioHI# z*^x|w3H%FGjrfw<-3CZ`svPE!Qe->?{JID!4g6s0s^p}{JaoI#26xO?a#kz7Er zvu@@9NC)5{%esP8{vS?HToMhZd_hyMNQn59$-~6XE&fLH0OrKbO)_wV7%vu5@+GPa z9mK;=lH-6hGjCzMc)eQnA|tD+;g^H-9|S$~*4CCKD<(8TKlKzXFg?9Tb`cwl+qCK! zbv^#g4(+%m5#);?ajWWqWWju>VO)+=pmR>!lRJPnpOOT(U{E7Aaaj>3FKf-}D$y2l zzM?z?#iBgxuB5d+w##`;;UZ}WT9AI8$3A%JG^c2iO$V#A8#~I;m=d%&llI$;xGeN~ zyK($1^3~SYM{eQFxw#1~ku1dor8*C0WtJXzaKI z3Ap}fizIzHJ5aj2IrMP)$x{iSfWDCaik9Kb@&iNGa&afuWR2;-Bj30H2yud*AQF zoy#_-4}05`j4!k|+aesyCI#;o)aR(tAiUdjqb;wvtA{xozdujPrh(aa!v7Ft%nca8 zGzo%~Wm^w0BDc7^^arEpo-~rZ9(H$|`W_Gx{gWrl9lfiG=I?#@J72M@}S&Cg1aZ_h_XbJA5^Bf*v?Ij zua=8B!8M^T1kP*@V~4VKT}h$2+!dpb+TaYLF_;uW3G2xtHFI9dPSwDx zdrg9vEy+|*#O+Vm+}^L6>F!*~#j<$o2Bsc=Ln?TjW8jpEnBgb4lM{gc!e)wH=~l6P zI`}W;E`#rs%Hb$4Z*A!S4@d@pKtjOXu{D6FAjVO6swRN&qHVg4C6EVMM6szwSW?Dd zg)C7q7Syi{;P1l5=uf8Z@$bg0PoCeq)B5fAE~ttr4zV4OK07?S92wx7_H{KpUnBgIKvTY`RBqCo|MT zd#3H9RiUS7|iN5>UIU${-zPL_-HX? z+^Xg}2JY~edt7K&{2L%Y+urHNGYPP9|5SCuccUa0m2s6P?{5-#hn9)~0FHdm6gKJb zq6}IBzm{`T0_@-;J7XwdO9$Gx!|*@F@LowbKeI#2zoO8elyV~7{3^CsEb#o3 zc5+VdY`*yLT^*)C91&OBVg-(CI>R>~uUxv0gQG=hMP!t%lBe3DiO-fU+@2C^^7iFt z28jHrK6#IBETQ!e=u3jv-fKrIj2kFvI>v+$I4ER{354~?EN&2~%?bkq4(mYd-}LS} z5|(46ZnE=)tkGhhxjvGpNKE@epoMlh$}KWSv(&$i&);uKq|lt{Xc(-R5aiydcnc@_ z*Q&R3M86Mq%^xx|{Xdq@!=K9kkNam^$3FJvWJTFK&XHNhsVI>gdmei$&LOflk{~5ufPHT~^BqTbT~0cXna38wX2efKM=DlahgK z_w&-NxQ|JMm?7WA3-x$B*0d5BEhUTABzf)QRT5tTaBsv|F$$>%xI^qXh0hDlwyYs@SZ+(^4e`@M` zJr;UnW~%6vDv8NS&x9dFu zeDQjX?)gJ`M6=0Vifp4sAA4P8g+w}4@1XcB=*ZQ_Z<1d~3T(m0VwCCV7S*#s z1OsVp+rF`>Sk_1Rs*P&Uyz((<(0zx6^5de$q8nNBNh!{{pOMtDd>~7US=q(XTpc&% z-AjVnasCPlZJKY)K7d~a`4R21M+KFr{eer+WPRWaVUQt@7(UyBR!^k4xxm7HUdLnH z^4Y007e>nu3*@2L6hy4Qb5h6$@S6l60H17Pk5Vb=N+|RrdEzD89dq|C1t}z}!mNWl zX^Lzue(K#(KE{?*QiVzL*Dt9`AP!73*H3K4GdqNU?RexQQet5??cJ}dA+O`07Tja9 zskZ{c;ndgm^uRBvgJrfNwKZI~uNdV~kIrjM`BY)RW+$-eR^lNGH-8B^BIM%Z#m3go z@3hWqYeBttYK;#~&-WGHMa|Hpvi?ACImH4krdHM0{t}rgN(Br?cFf!AR9hY|z7FF9 zDQ=g0e0k-74PD#!ahUn%vv;M6au@o>fua^5%_au7r>=J@DEE0D0@N3SQOqst4#8xnm5XFOzhbK5d>gwden8=u1<#Iav?HSi=O^H548h#1NmFVwzYI3r4SxY#lpQd3ps($j6{BXp6H&Y zB*c41Mxw;b)X%*WJje?cyCpHcmjwT)W1R@NCU;F)kvn)fG6>ToWA(X7n1u9SjMWEB z*F-zA(NYDFi(1Vds>u+#to^b#xf;=fS5FgGUZlKxl^^2$_$FVheYZxU4I>$EwI=o? zDKh8Q)5(ZuH@DhUtG;=^18Cu2DEjmJDF0}r*j;;7pSHIjrQ#Bz@f@x+Ea;(VWGtCaYOe#@t1WwS0kuvgJ-hu8#tn)@|$`BB8WOzBVoirSOnPg$o4a6_?z zkmVx|j_s0AjBHJ@4i7sDS62e0a-||=QR%T-10~7NHr*6jt~8dfpQf}|l+ySFc%>Ku z2E@@HDvza#iwk<02fs`w$=29>yYF3Pe>DGWUc*`H)5hPM8m9rN6~ThrE@yPmy&5MHw4>Hjd*a<$*d@9w_ur%leK4s$0pJ)) ze4g1!O#6QP1#)j6i%bIhBw-*Q-5CH6@;$SrQBhuH1#~;y$7EKRv1m6)TYe-uZc64& z9y=asz-@uq!FjRK3IB1?Dc-SI}f?uc{~q>TawyCd?mDsJOkO$GmBK@S$!e74e)IFg=O1SIo z8*Dd!5wJcBKvI0eR3_E$6jL~&1foPFsc58uIo08@u(9)+e^TdXvoy^?6#KTumskUe z-QAxzC~Ap+TU-X`8b8dw-hHNV?_Sw6=is;^7e+Y%`^PnXG_qC~s9CdJKye~8cfc$P>Eknc$f5iH3cTZ0xHr=u^yd1u--!i- ze%Y5l>eSJoj~ z8B9;uYps+o>vGpP=H}?FKCCxWSOa>stuRiFrVX#m{?M0zUO^6v2j~T^n%H(}zbt;O z%Kf9k4enKDNe(P)C-_mv^p>+h)Wt=9%#s`8u|6+MBjFo_70vFK=MB45lKF&u7w^5g zv=F5MidaDLU?jGB`FBt>AKRnX|39)WF+!bu4KQIN4X-bd%i_knDX<#NHd6&|au*1m z2>PXvYjQoR8G0s%=Ip4S6dYec)uvazL;%j)w-qB2-ZuAs)Rd>uDE+m$meCGz)Rcq` zp_6oAK=cC>RB>{jhfki$fGkR*gw_|*Edj}cS3*)OrqWLX!B3s z3?^p?O;vB6L_?Qmv4W@YFO=SpalQx-B5Q?wz@sXkMRawPN885$>O+ff2lw>)kw#JG zc`$i)mJ%KO`j!lB*H7|ecM5fMHY4`*F+IQ^nMXkGst{dP52xuvq1Z{-^&iYYKHr^IikFZ9>45TQenqaltHC-)>qkG$F(eam&Z6{1V{__2Sw>cdjh zuJsi;T83{j<=$rEQb5;DAh;D4ysoMV>PQ11jCx={VR+5C1HMN(p`hT3jx@u!CMN(d z*?bp4Cl=&uE5qjiLwX|^22{|8_iU@cF^`q+C6PkZ@$zklQS)a&p%UqDMK?WF5~ z=1j!g`Et~}MpoMd3qnYI^f3NKF-Pm~!@!yGajX5}X%9-umyeYDFC=|Gh(9XHIPaF( z`dj%HjYW((J@LdV^j_XW&?MwLC=^~WLi7E2(QE&3)JdkLl^X$T?Joq1mc9)13!qwj zcuGl~eTtmjlD~=f_gF;gMj32$HjELKmR6s~mVlgz0Jle27VPL1CCCl@yDl_4X|{~U zOH!6q+QpG|l+XsOWHSa*vuWl&K>&BrU#!SVaYk_M)g*`)m8uVJ;K(f~I31D*i!mtWr15Iz9H3aDc+=J5tR(bjS7351Rs)Cb2UH zuCdCD6Ho3d&Bk|kbh&W>y@jjX<9p(XjhEWTl=(nT=3my?SP1~EpYZVU5j9Qj?$C!# zOFgA$gtv!@e*GsYy=Ip;FB-5iFN@9@`)hm8a6;nFxRALYtwt~WDfjcmXB_^Mo}mjX zX_sm!-|o&HUL8=mHf`|TQb5P9-c{G2Xwc!c%;lS#w&E1`f_wMhE(@|v2ixj4zaH0; zJvq^IiS^m}n&0+5g1>?kev`M42IJof@0X``RSPo%-^30Tet{JETSFeOT-AaC6LO?G z8{vwJX#FYqy?E{~XOaxIcwwI2v`!+Y)2))r*ZK5UUnTXSfITFrV{iLAu-Qx=cTyY= z^CHTp7C>XCMy322W0YB36liF>S5U8vAEOgsBL4LdaqrGUCeDsPjCHj;Q7|o{507>&;AXtDZOXZ55Xac&&4Le zjD2LQka-oXic=;VB#r^7^LOokEuhM$;5H)9P6_fCD8A2dJf9=LKtOTHpMz zkJr1b7s~IWh}K!H%;ueeu)iJ>6`!8RhlCuOh>!G3>v?$c`-!o8Ksapc`95_l`Z?ih zo)kkq50UM%9hJrdS6`FFDY^N61}HLf>r4wg~G zS&cdSs@1J95-tXD5PUoWH=J5PpjHxLzYhvN6R`~m4png8;N8aiEAGJ z8HkDd_xiDhPVeLI@4mlj&~OcG>raAL+45DK%3DVS-Zaao=rOxycPHRM`_2hGBWxgy z-CAp;)#~M45wtISs=xcmbNoRTgIfZGO+pN9Qi>H37Lv&q$mS@&PL+tHzkfPfHw;w( z!Ago9X_p5i5fsgcTqetjK9RKeYjpyHQ#ulxZ54**-#9nJMSw29W7K*ID|$Dti58^b z%((u|r;e9Vn8&@9|JfM6*=)J$KlAW)iC-EKZM= z_NX^T@2#8iK%*=k*5vWLO~Jn>Pj8YvHcr_zQfo{+ zVU~W75kKYagNvj`r*;zb7mACo2j_#NmnZ9&bz<)P{d8_eJ|U=}f8l_w0i!aROJjOQ^gj7yN{RivN| zjAY*_Em9}LBs@>Zgn%HdWLu4#xk))0dRDX*}!I(Ix1>G2DMm5gpC z82(9YHJlG%f+A)CjD+oJ(!|0+e911$nyk6E=1>yfggvmr>2TlCB4~7CC)K|J7+XarJ+W1~4}$kcMm zdjw4IC#*puKIx%ki{!Rm7?5kiU)aHvg`uU_-{LZiJEmCg1ur~dJQ$tq4o-o}88rj4 zKvPWjh#-9ay;~qyd9ON=pjFzLYVe4v6?xYuhvSMDSZ&_(O*_I5?9OnqLy zuQ*o(eF8|6V+|l(rAAM=jh$`#;lk;D-GaJ!f)&d`hC|Pi|BE6Z4K2LLDOrCzGLKBZ zol@;&9XX3TheA7NkulsoizAxD`WREVQjVOQ+KNY6=Mi(jM%zc{qww0`0DzEuDp;eB zvgPmESekM6XimKm@r8HBI_n2@4gKqU{4S|aK-GY5uRP@u-H@sGH63aU#og1d@#lBd zBHihxd$CbmRxI5EC>Oo1}=J!sx3&Pv3-)4S3I)Gw0{;b(b0HeOZKkKRK0choU!$fe8$74CLM3J!rb@$ zOLoJ5o+c}85YCCai`pDb3J-i*4}2yg3_l$Z!2bdIsl$aLiL<1wYLMwi;_-{^i|>s0nK6Fl{7C^9!9_MQ&+W*VJpCNO!7DD43nX*f74OxSH0k0EN?i zVw)dA*CAUeb197n^lomKCN1*#)i78uIdDKgsOX?>Sp#QNa+ze12e(`AgT51b@LxOM z(|2Wo5Bgfy5D13W>{*Mu+Sscwyp3zvYrjH;IGEZBfp`s&>sXnp!V;BFq_MCkfY+(S zeA5yxHd<2jq6JD@2^>0@Lk;k-MSlU)jNm&9sPV=)Syf^mWnRIuM9H+oIz|V#_0GXp zc$j2+z&P!lmw+sTsPbPGjZu6YJWy`iV<>?^TFpQq_iSYwHtB2?iOb$fa0}_{R~GZ> zf9sh)R|bwmw+Re?70htW9P44T;In!_3nHA^@$Zz_?7UK2|g#5 z9`^XAWK#mMNGT6H*z9aO`S{aRUpkJP0Tc1*;%$UB=|}yA;r1sR>6&k;`5~S7duFfX z2R~{sJCvm8LYA!ElpD9J9)=5%LO26ctAc`^{&=-s9-@LHxm`(tzWo~4`!@&ZU!vaV z_mL*gJ#RZEe)XkIVjqb1mKvhaaeq$ZU#GismvQwzuleYz8+hD-)*-Nb+$Xt=nGt6GQH_n!hTh_j zHa%g7y;+S+o=ZiZI!yguqfY<66MtC-w`^=^WCnVw-1|Ke;dy8NKqjxgLFb+3C&%F( zT=<)-UH>FH+UDA9-vhHxQAbNkqO;QSL z6+@G1$65ALiXpq>h&@6tYt9m+G7|)CaC-DUR~O%Di616L(-Gu#AY_B_BM;u{E;V=< z88cwgNBD;>d($xg>ZSn^Cl+gA{8d4Ih_096-@4kU|ItX=47s@C9couILU-l0^x(|z z+HHv&dMAh1g|s*G9Bs@$S3X|byXctXI1G2+I90TNJJ>W=%9w)tB$$%s^QMaQBc^jM z=<>?qLzYd3R|e(q>Ajw#FH|1Jxd=+fpDM|nrVc{Dx9W_9d*ZLP)u0;qGVi0PFcI~| zeWJQ^oFc2Qelr;vH=$KaTtM0#W7ulb>IY_Ru2PwqExBjtx=j7{LP^Qb4qy3E%P59- zH{uk4HKNCh`ybHn4@c5zj%=iwPU)98c?PD%jP|M<3A;qQ6S{O-R$1|g_ULFu7CO(h zhzG9AD6$g(5PfyA2(&8xx#JJ@N|wHS=>@p%OIKj?46DRxne*1DtrH2R#FXPY9^=EE~O5t3jy{w8rHVY)5FYXw;U%ZcU!sDBeQ}K&~ zT?Coy_$4tY(k{PvhW;)FGz4Y&*sFPn;jz`lGI4Q}t!%$Iyi%60QDd4{0$iWF?}fEm zK{LJBhCHO{bqPf1h9%bQ^ZWmK4)XxG0~7kvQB)u3Em^V zM9Pm{30qlb8bgX-qHX_9Jo9q9=Ew7S0$XM!7B z1@XEm?QcDA!A{X^j33*A?Hfz~=IunQcT)B+#T7NKX-fp0xM%YHSgHmDp9fvUI^u;@%lW$EARA`FZl=^q<* zx~D@5@(AHH+ z)&l@_dh`>S9%cz5l3k9LCrwkc&W6 zo*RsBKf_gDvM26|JHkzYpPDH1cUqo1alVl018;z0tcJKO5i?wdY7{JT~5Em8307DyF7wJTd8jh`Mbn1owl~SXc+435v zIkRG{oQb;{a~+iU-EZHXWsN#7^qBy2L8dhq%I|NMU_oyxOQteqP%9&Dv`C<|pk4)d z9~8~$LSq!?1w7%Ux5U<>tLwOTh}Fr$cK41R1&;~eE47GY24Ja(GmH)N8!tXuFV%wk zQ?+mfSQVoeoEpd=y<%A@JhdkF)R_i**b#Z8<2Am%!(MA%VE;3Y5Lzf>z!B53F%=>- zAoj37l|((QO|;%VO>&IzSv{w@ThaLK#iOx+Bw9 z;N08>oFsgkvWpxKq-%r&aeF2ZCTT&4qjv9K`64SAe2)=;VgH&}SH-mah=A98DZ0jD zv0z^A`)`aFyBElYw?vIJ^gd>I-^wXdOa1iYaRueG<~jCT0-x)BR?_~+$KZ1vm9Vk; z<58FjZeGi7AnI=Gk zOY3b07u#pBA2MgjJ^5KbB7=6ua!T~{^un|%tZ^Dc1X!kUe_k?Os=B3q?3I}`20&y8 zv5og?WjYDSuc!nAW=IV9zsSEb~NCVyh)Qq?h1UnlOT%ArV8sUSize(c_z zvgA>c1%1mPOu@mm2*Niq1bgM5KX@=i=6YuKGPqEpBL|x8vY#m~FGdwf1vj&Gb;*cH zL({LLTl*jjn(m;lEa#IA55nwXp=#jsyNj{AtZ1&UV^`2B0^LuZ=pb(g)up#iroDxWt7GvXE&E31(MR@A>1c8)yhr=J8xv%;Mo8$g{ znmup4p(yzF?HviP0{u$(2xryRpfS0%$-uFQ{6b-CSjHVAg?Z^+u?##` zXC;{XxG7#tZocdwkB~IIX2A~^aWpbXZ~!!6#p2bOEca)N*gdxy9$BoaQS^6)7FSNp zTY&4g*H5Q0?nQCu?>%Ms`95^0mt^Z&_3sC9im46OzZn88xR(u5<6rpxss1eLQe9zI zNvL1g{nPr(Rj-s^WZ48=9Bpf_|DH2Ak%X7d8!xGC|I4z=oD)?= z_D@}{XjtYtN7LD>+EuGX#ZVd^{Xz*U^bycyPhd=55GBMKxsMsE0A3WD0y0aYC+WQv z+9Q=%-X*w;Ux65g!~)zYDifX5r2DNjUWUuO*xdZ~C|0zimwanORSw2Pg?KWOk0*BTRlpZ0%BtP z_bE2y@@mxi%k`Gjm?N>f0~`;lN=(lU&+=0p|w;CadG^2(wgy*0f( zxXai*)2KoJv(FaVBuYl^J&fAp$ zw5+QMD(uTBJr-2lH-9q(z{S-Z2i1G{KQMMSrz9LBuOBbgPS_~nn~p>9R5Ynxa@bW{ zl~aNxwHPe3iYj(rHrtLUF}6~&H~1kh2lMlfQMPGrTbeuQn$OU z>;L*vi6uYp`HX2~G+4RITxal$j@l#B6pGA})7IjEt>gZ5;Nn0SO2a`KD9EfJYwtv{8E?7CcZt|o~jX*(p`G9T~r-nlR3vs-a7@EFepSuoD9q+}7 zPr{slPlPsYET04v2I9|?A*bTR8Y5VnW zNt=JJ;`P7YnWKTCx$ZG4>V2?RGjVtS;2KH$7Uy2LT1)BWfFiBAr;f84OeIoNo54pn zUEZf!uKuJr_x`Jp8!ipE%kGxhmP{Wjq0MKV*5)8@(P|nRPX;C+;A2G4hp9ew^W;AW zb{l}4x1!jxMq-7r46XQ2IMs@0f$;>F>2(&^6I51EakIwIxJ+YlZ_P(;h;xGx^3~=R zmCp)6a%>72efOltCNJcrR1)|73Vvin+`B0j^{+wJ6|>OqZ~4WH>_-I^veI)H z4oNOQNW?cTRP1RD>)^>6$~qe~pLhE$iv%h9TS*3h6{|xiRzg^!_R*lF33l^SE4>+1 z@9F$=df^94v^}ofIe_`Nm;1vY8GE25`jkQ#+zyzb<)v5e3(~$cFqmS!^)TW!fm^^@w!KJis5n$e- zWL*~LFu)$q=m5d#<)xlH(W{*57j-OB;)wXQ44qEQL;M38dyw`x`!w3L4%8J7nc_Rr zUuO*dhGJxe(8)(47+9Z}IMDV*QQ=Gy_jT!1GrB>Mb?_%O!kpr0n#&j2oE#FE{gFpu z)clMvI57t61|bONe3y{_OMLRXJfkKKVAH6r1OZ@;}KQwB@GB>WR&0T9tKbUiTCwqQLp`kfr+JiJ)_ocv&>aVPyOY_U(+Rfkl9h{nW z#5}7q%hXs(nKRBJhP^se5cTXGJv`Km@*WrTG32_}8YP()Q-AQH;LOkhF#Bx`z387nv#-|-eb|C`c32mD)P!k3?{xJ6`dq3>@!i9i$SY`t{Yu5;h39sgqslyKCh#33JW-^%|96!gjqc~Pl=}SLpZm3cO&TY~jQ-8t zE8h(NP!$~hq5LSmNybZVr0tPadD1bJIxyOP(=MgdDgC*gNiuNx!CzmQmonE>EQkI* zS{Ip_g%sU4vIeldW00v&-oJQZ&Cs08X%@!64%cLEI5l8@<`WC3cCe}*-9R_zjnB`ARmDqhd-ZnABOB=JZdhL+11`O+T z80Pq1B%X;sg>#iq;9O7qw%=2n<<&e_;LoGDgLV0M#yV#Y&o4{$?>An|;eu%P(_H2? z*LCKEv>WU#bq$zsEIUr8C9>K(^? z7!H+oPgjI8t3U4o?Yo%J#xlnCC8Q3}NZcN6`J_4EH1~iXotG6~K)%)^obo#F@74Y{sem}4GsI3= z|GTJTqWo|eZTQVx@=hs3`;Mqf%oWub8Yum>uOw{*LRIyKwB}`?3~SsafB9ZsSovm* z_Ro=SmZ1_8yTXaVWrNXM2TDB(;qsj>Z2N`n)Wa~}jl{&@17xgx4Y!YAOcW7lOS?)vx@?lnOK zpR+}@smC1xBekLIK&;og6&LovrCJTlPtJ;B_mjd&P)Ph&F z+-Pgr7{Ht`f_Ytt_N2%w8p#HMI{NsxKeb)kU$s}a6RL3DMfxIHk^G17AG;nVumpce%n=FGMB z@=nx-clyrP0$<#DH=zjX)%kTFu@T|1SMiSWdveW{WzOv4SIz9>{W1sRw931-ez$8% z?rNL3_q(qt?&r!`Vj0whV@evXHGUX*PzV7+Vu7zFd+Sz3UnP6Dl<_(UQ$a8%WZj>- z#dH4MNN-tFJ8rs#zE2EoDT-aX68o(ffEfO`K+lz11KwZU@q$n89ykd@W2?RI&q7t>8 zmQn1)hjc2JuVo=1$uAAkjq|epK8MwOV}mRqDa-T_wM?EY3zt?onoT#+oc1@lU9@!+ zdiq%k)HnkI(ENBx##r_zfN50*TwCx73O5RA6>wC5O^vgdb$^e^?l}}9A0g8AK23y# zR|1*V#q|Dkp;E9#;%ij*vN$j5V6S?#rxW`6`5B>I^5YPOsb&6A9EfR_xv3-_BE(>q zOtv=d3}eOWFE?0gWglJCD!~9i0mQb=0t1R!62Yj@r zM;Kk!cu}*1OYj7P^OVVcVa|OY8IGxmEce5cuQVvErpR;YM_}`Nu)c^;O;O?0QG1!?!OG@Zno^3G4tl|0n< z?K+Nf;wDNS1RaJPeBV}7i$#FUav6!%;$%9lh;`n#KEXjilDPbZ1?%BqAAK$Iv(TI7 zZ_6O^w#Y|s+0r3Y>eqpi9&@KhDXwi9HQNF%om9Tty_UC}m!{+Hf*V?PVg#0rD<8d_ ze$Yr|X%#jz{|B%?D#}y}>KzVMRS@4-PV#=%(5Uh0SNkx3rN@QsPJD@A6Tk~ifgJgN zC|{=-FK@gkC=BA?J-@YgJJNQihx->A*13M`+W4J|EZ2+t6KVl=+I1%_`)a^m)ni|d zmP!)cTdlqimg{HM)GX@K@-;)P{{VNG1AaWF_!imTsfoT(ncAmlJF!6t->X!!3Co@R z-8uJ5<9&De(b06Wp8S#%Ve!7@7wQviTDJV!rMHEnBUV3Y&gN!adbL$Q_%6v|=pdAo zQIfJUr&9jcrrX$JIfZjcz(C(!S=BE_EP&+r{OQO$xy|iN8#0+ntDKmd~R&CXxKkq znDoF#C=AK5AjkEG_yBMt_fl!kj64x*FkWs%tH;gFzs}x-!EJ9`$^$DX5)UO7o~JFf z55M&qC4zxJ!smi@rmM2V3yb}gW* zxd~!gOQD$1wuV#F!x>zUi_^EC4s`7<-}^AGErIy0&5sHhALyD%0qSJt_a7Tx<_30Z z7=L-6?F_&$C~SMHtj_n@c7bKLufnE``D>JTC`C7=Swil!UD~G4WL!vvq!rO{HGR@d zDlZ6XY%t0^$@E6$H-QK?4>Lc?ZA{01E{I=D0oOM?oi*(+E$vK4E_-571B*9vtq6`Z z1me>&J`;@hl-(WW<%a0+0-Rjt@L`g*8{}zBsHX>E86`7vyN_(zucJXVO|fb25;^fs z5AohUd&Io|6-FI-Vf3&H);ZMhEeJ3*kQpZv{k3f13vlaq3aSt8%WaR&zA!jr{4&6U zG~-%97d19FSz2&Qtr}y(Se1Apggp(fHelUl&`BwxBtPPiKNs$qHMj*B!=8+%$~Ogq z!C6fsO7V9>)33N3jkw9*54m>NU?~EjT-dIox73Le^j2*B20F;aX7oIex zO=g{ogWrliXLsD;3ALzMm`+RmcH>Cx#^CU4OI2znAqLqeTo@b5^wJGZD=f9lCD1mG z5>~4b4>;ax1FAE)s|q@JX==%$J@kqFkp3;A2r(TMjYAsx{h_J{OErwL!nQ8zxIYK) zFj;^A7loCQ3O9;OmIDDsmm<}voWF&8W2b|5$xPQ{0q?faa395#SNJ2|K_mx=j&qmz zMx?5ez^2!SBq?#e%vrrImBK*sJE5mlMZ`_MA^}qQp%BK#w^AT;?1crHPVz=dv!l9D zvN18*j5zZOYYtM_AwrFC_r{SzsV;=4#*O8WG)XS-v&UtUP=J7wu^Lsru+AywYb18N z0Pk=@X0crr!E;_L_z&P?yd}q+U`-hgq0|ccWRH;KUd-#X9?a#SBG3ke?NT1o{24Fg z!|Lh{qq@Gn-Fo1M)lzq;ga44@J~2tAr=Ko0pA?k?P4Bz^_STCApKu0!S>A@9@@i4M zw3G;OV^bv7%yu>wki!t@wO|6uHcW$90Ba_`E@&&TnBfD}RX~q*(^T5pYl56x8YO zbt98*O$!Q$9y8|66%NK;^`hDpF<=&xg%>yXx}vA@fZ1^>UM0by*vvfQ|s|wrc zl05762i5YB04kZh<>_QKn$49-s|jWW?~b_1*1WF7);?2^=WG3^xrzzc%RL}3~7Cyji3bAJvi@P)}W0+ zT}sG{rvVna#zNngksDZjWuII$5XH)kkZjN)`&|T!@=zIdllGjRH@g~S;5QiCL`~N; zyN!Lep6fmaBAC8Z(uDlkDgidvXgIk(?ZMpAM;bAqk{SOu$$^uh>_tETT`N>hzI(wG zDxRZSgIuFB=5!H_xyC~7op$p3#Nxa(IY5@8&YS&G{7q;+<`1M;*#3Y>$Zq}*ATa!A z;P8}eL(>PS!E=d8onVAHZ5XTdV_1{<*A=(|({D;aXjyzuc8T{bRI^}@IzJPQSRyCY z?S3he-01T9QuKx%Jt_kk6vBr_T>_{Z>>%k42%Xv#)BGtABd)ywaet8mzMW-o)xa_F%}3J!oQ1f0(%!jrN5CLRIzZC#=zDACT(%usmgcdi@f#w1jC`Ke=A z^z<-E`Cn{PXHrj!E8&5#~_gCVGVvf{|C5z7J*@g8VriiILOpe)pP|)qm>nQ7kyi3&-B_ z@v@Wd_oj?AMbsb5jKJTmiscI4bgIZ;TH?Trq?IC0(Hoc7MvQS3I(d)2Q85u+Tz~^~ zoAA{1jNFEDIxc+Azb73g-g@&A*UY`W(ZY+rDE8#+yvATh$|2NT| zQX@lJLMOBbZxMBjY2_k>KOZZx>$%6Ms4ck`TYzqLH3NRIYiXXDg5uqqoP{<7y{PHN zzqYz^W0U)|HEGMJJ*D%K^(7{O*@4?Wxh;W-^f_I_LPvR?-Q}V(;dwmQ1SgD1 zF;z#=h-If(tDn$gs;F!5+zRsGdDUTm33PO@B>C}jXh+Guw*b# zU&a(8G#n=blqFbq7TVs!=gw5{Hqh7s>T(m7X3<1MS%l|@mal8XTJ~+hOH1z zn~B3WwPM(*ZL=)c?q38u%2{Jj=5e=90+Ac#)EdX~KDPM}Q4DAnx9_W(zqW`*grkYxd(jTb=Nn_NF?fq`)}CR6oU- z00)q+qV%6%O>agZlnQwdc~QMDlAnXIJsG7Wpbj_|P+5}B*e|?HnMT{^l`Bv~c^BCr zj;XlTp?^<*p`b7G=rZM%*ze>d?DP4vqb6{J3Aexgh+2?@JoC8>OzB&spo)Y~g7h8$ zaJvZj$QaUITSaS~@ora7Urzk-A}Zxe))5TXYuJMDO!|-{49zd2|dE7y#u?q zcCJzSo&(95^7TK-bm@T~9Db(iXe)tkq^L!e{^->JU9!lakraLqjIoN)?^Jc}escIw zlEx|z;xS~%yn^;nZXcP2{k1cydpt$ACf=;)DR=Gt@x}a(`S0TIwf2v-i?~dNtgJml zDc?UAflP1xhPGbSN<9f+Q)hEyuka1CasLm{hjyTCiWYZMY)G#a-4UP{&KI2~->Ev0 z;riNHXu6Z;49L!DYF)g z;UzTnaeU2kPppfk{XaFGcRZE<|NpNutz(O0uaiwycAQgY8Aq8>SsB?|3FlZ*wiF>( zC6tuCW$ziXj+xB25eX&wUZ3CX_WRTAc5z(SIoG*fugCN8xIeOujvWb4m4i~T)M}a3 zlU$BGzEx%5z^@0+82zw<>+l`Vte4X5Tyz`#0*qB()jjR5NOf^gsXRtOXEIF`em{e; zV$@VtNdTJA*M4z(wfjDZq3xH>Pq{j;r%@y~m1vi*yObecu*}{r`GPSbVmzsif6qJo za8TcP_+~>7`1^77RHIKRZzW%?*g*6KdkV1VsX%xa5p>$%|KYE_br2yu?;T|hWq8wD zxUKPHnTZ8|!nIGLqM3(>bC+%70diu+snNZpSmUST0hR0=>FtX|#|&M+H$IQN#pLD= zK#|LE0||L@EXVH=43l}3Aq&kPE}HX=koET@Iq1>>n^JBstg*~}(N&7Rh5dIsTn@BY zmc_YAv32u&BCv*_FlLDYcGAUpiHONS>lZh!MHGCI<`;UclLj<@0_oy)MOTP_v6p}v_Nzf+@?fqJ7LF2L#! zmtA3F!xr%~|GmF^$V4T0MGsT)l^h+NwO zBGQF$6W4S+_|`g;*Vm7*40$u7EBM8bx8+tYWsNZJ_X5iy$BSYTR++eG9j{KsxRjeK z4Yjk@+G~l@<7HV?M&RG%hod^zwEwH@OoXu(*$i@wYnxzq3trvLAVk|ummWVxaX36& zlyvb5I%8v3Ld5|w9Z}30jjmkv7J>SJ(NE|ZAL)kJ_Kk1R0oqxQSUHe9$Cx5XYcvgx z^*;ZnFodILX9wJ;RuQp5t;RLA{1Zf9rWT7o2pVs7#6VX=nFD zWX8k=kx_il-8NExB#g>99bx{XAA+q#rLm_9ie-7 zojS$PaEii=zgBCOjp%SuL=SGVpvbKL2Ropt9tW+Jq1Essh=~FvwBvfL{<`3CWa&7l z7S2`jD(9-oEF>l0L?wz*rFC~Pa^1t_oYQ-%^Fvr{EfIPo-BFrieF^mi0=gJ4-|7Ig zrLR}bpw30q+a>E3w@B(5U+~r2LNkHJtnN&Z9w_D~ayIIm$+9t<#~h^O-}ZbK+$F~N z1t;fX^C?Y-(DVBcsk6faTv)?EsGK*6nUiMW%ZZ zbuj}_ZF=iH%!0?X=RY9ua4=hCZnOGnTqcU7C9&1XS3Dv7nO$&uFgLZTqN<|$jqwc1 zd@&-mWJg#(E|&Oq;I|#Z4>|1gm0u_#>{5H^tX4pTRM=-QeKfEkn;R9EDBLHY4UMbD zgo6X<4L=uufFm-f$g1(BO^Cz#!MU-z@&;Vd*-@A*DxQp6G}aK~YiNi=my`xoCm*-w zDR7chItGTh(2|l{)yuE9(DEPAmxZA#hQ`ee^>32>+63mM<8i%J@IWuGb6>|2@pH9) zNj+e{>F8FG#m@*|dr?>(EuH6&!D?nF?q{q^5776fecuIj|G~1xtkaE~2kDs8MJqW$ z9HMUZm-g>szV|>;$f$d9&pIL3E)kc7%lzrH1+rY8SvxgjG0Wm(W1-pyS;QnD7a=sO zBFZv{cB^5ca|j|)f>`P-CTVn(@O7yMNmXG6HpY#^N{-3;7ObE_rEvf!-)mse+9<;o zqp-(DA6B5QE%9a}llXAdXgdbZ5h61~WwB8mlUa%*+2M!29Wc&pRv%({6GxZG@$f+I z6g>~36LRB7&!ncQ8uXIYT27Q^fy&-Tf{aiWa9%xPJ4 zRa;oS#T}TJcv9Vi+>PjVNKJb6P-W=clg7eN^lw_bzI?dWS+sq~*aR4LdL(|IIW}_h z=kj-CykUqZc~76Z$0fXdy(nAifnRhL|C*WMR(b8OKgcAIE}~T#WQ3Fz{TpLw``twX z1{5j7^f_|0tvZoX^F;1}0%&d1M+Wn%1Ld+j8eOTYXYUCa2;kfNL6Ri>b=1$Llpmlm za<*eCJ89<+EmyWRz?p)a4;f){5aiaXHR&vf{Ni=>Vm_-|Z8F68@5?w(78dRzziSX$ z(U-?SP-PogsaHC!PwZ#J1Sx6{OK=M&UP5AWO}bW-ZgLN(D&BB2yDww!;;-T0$Q)xc zj{0_ePgHy<3;J?+01Y0KMlJbB!RQK&okp2^N<b7L==YpHh;I3|{hmb@MK3^s~F)98wOTEwA{vRGMZU|%LStL@=AZ|G8 zI(Yw?C&xiq^EiIN_)C*u^;}F!{^u@XKy83pfrWAEFYpo}Usgz~b|y4*m3+6F#5D57$8TsHJLgh+5JpQM zx@^j%H01I~%Dp^ubuKokrs21$#r{F`>!sD^z+=k*&%d^nMtQyFvkY$v#1+o)6TDN) z29%?#u3HpdP%4*IG&luUg{&ZJ4S9B_l^w<%I`$hv(e7BA#nZCNWV01Cx-WS8TZ@>z`-Co2tehTD*5%p_9|{jXHeC zQ~R?iP~ak9Rl)49Aw4WX8)L6_(Amx;$Ft7+b`dHZ$i4C(B_327zaRiD=a{>~&FEqU zuF2w3*zVAoKv|01&aVhl0N-J@@fHHHvu%b+qKia}>@>rk(&Jr_iZ13C9bw2< zk=Yz{vopZ8sLqo>4Au5bX31eF>&x50N|1TSQ|@J0-5_-UfkjAz z;)PwAmCx>|0S>SeOg335>CRO;I)Tm#9FZrZwOyZ7nCuBW6_rzNS>~NBLPi2ew1d|a zWLbyVV)h=>BKc*QeM7rx8TL-@Z!gbANUaA2G|2QR?a6tc|4*yH@z+}1kF4LS%SjjR z6j4*tI$_T4A5MJh@tyzK41H(KT$(J#dA!WapP!#>AJcVHaTe1Q2{+u{y}i3Lzd5H} zQx{0zXgv-OOhwM?yve14lqJS92~W+P|8{nswE?@zBnMweVwsu8fS%ju=nvOZa0paI z2Q4PnT>U|1ZaE0(1O5s7pze`LdA6=qoih_s4DCJ8S_RjgyjCIn0KEizx|x~t$gT-d zP04pAf95bNix=^W!k0`=yO`hVDow>Q^Y@XepF4pg!Pb`NH1tLf;6eB@3u0SGjthc~ z9Rht_<77FPbX$>T;>-$AJV(b~3SMd!_-XsZ9cRm6#vXu(SKH?#(hx-e4I_ZtPZ1%? zMWY11ry-yaCQT&&7@TVOX4hFX1uDhpnD-?d1vi z9ml$Mi}XcGdRxQIzchz`{{xmUIr8hd1eeTg)K@#Ms)xohSZ1Y|&@z_LG}L~VB~m=j z+c0wy)(E$B|K}vDK6-p^j?3EN%TRt-BQE65zPIQ6;cn;=&T49bvKh?D#xLnP{FIr! zhIZ87lG1x`AgG_+(cnu*z~{wWYjq)xcQdICmF|;A@lUrhF{PxACEB6I?$cp z(FHu}FMJ_Ej9ONuM>-@ySm7rad~L!jAT++A^gGktac<_! z1X+l}_Qv3R`5)s7m-ib=M`;8f=}Zmk?N6Ft4+h%FuljnWM(F=G4`=u?{EFt45j_?C ztm#ZnJ8lC^UdZ;zf%IZDGSoN+olkrmAgrp=i_0>8I3bv5MH#V*`^?(kt%lt7zF<<* z&|D9FoM*0gJYk{|`)JClfv!1Xs0sZv@A=KjGcrsuTUVPQ=)>l9NiJ1w*X2H0h(X`~ z-*BQo@j=2hn*C1{4HY6+WI!q`rZtVxV2xmugQGqRfT!Uk-I|{omBc~KNA|eBA;2yW_Gje!#!sMy zn*6+rjkU+Bm!6|)HS$pbP9GIMeOAfV`yOrT>ODfdV8B1q!XiWe=Ff=2h~PD}hzDkb zHWrOZX<3e`C7P-7>63j!Swdza#b!lqTC0|q1@Rr}^7&W}-i5Bne6;+;kmue#xWfmi z9R(tjCIz*n%!l-028eu9!~tAUP7D)Ol}L7*;f6%TE$(4T4y$lV9a z1a~e&@=&E6Djzs0}#Mj^En$_S^*7=~2FZP&AzZ^gqgT=|=X6JAj z^1h|XsbDqnBA!Fuq}z@SxGJg?CyY_psRPUE4cAks=#CDJP;V;ljk&3uRdRg5(!;%l zmlX&w1$%*B>E|7^v~=~e0KZ4)o4iCAeKkkk#opv7ed-K)oLr-!6@%6d!d-$VQD3Bm zF`1Um=^xN$HE+1cD858!fQTGTRYx_a!?S%%O1weUH+{!zl6pQxympxIjEGkE)pP%X za4U1pCR~50um(Xp3jP7%5VdOIulM03H2SVVgci|^;vCQX^HZmAFBnr#PLi%xzOm|o z=IwUQd&p!2zJM|{OXc||<>WCTFg5{$vAgLH_NiS?$sT;?K)?}F1mc%T;59ELB*lAB zE+oqJo2y74?_71T9q~tLR^5#x1r9K1qT8T|cO0;am0)y9p)ZyLC@S>az<1+0-}njkK3Yz-D))6gG$-I8^z?C97u9gV+v9-Y|vwu zm!NCZrR@s$Wifj6a1b4|X0~0~@SyU+{9Sh@p&xpI@N}1=1=)df36i=DDo?&aRBh#J z`Sj{(?+M(`zQT2R(+O$(?u90MUe9QM)()c$+C+1UL`^5r>S8Z~^jmbSLVDq|N3<-j~uwQ^Im7a?ZAW{br=R=}{sDizeP+1bIqTsz zk_IJrKG?r-g7CE8*L%5)OB5zf`~n{YSBn;IGWB^qx%b_XuWx@NOvOa>cKx~0lcc3t z-U~Kod{t5(!smJhe6l`Tc2jts+4mYI>d=&}O1IS$Z$2%)Hy$~)Xfn)&dYvg`rSnn6 z9)FLVNq-q%tEB?^UVlwk5^=K01zk9khVA+W%q*F~LsVSUWEX>OR(_r$E;?#+ z5o)2?3TT|DR$2H`JNs01hU|p8UgqCnA8oJ;Hk7?9L8U5@9x04v260 z5CDz!zB!cY@EW4{D$+&LhzRqq@caN-T3A1DiUJp?MF2 z%e;@*lVa_ysA$MN%$V|VMXGvpph%Qv`G*k##)NYOva@}`BAC-QRCMRk6;*d8_xVHi z2_|+>x#;&<>Wauny}(RyKnt67SNVLvZ}8yqk6{ebc&ZOwUr^k*VOi0SEz> zi*Wi!0V6iITN`4KR0ENLzS-%+D@MpVfAF`9V5oLfU*tHv4Yq$efI^Dd@(PgXNoSgD zP;YMBM0620yXOy)W)?_e+f0|_Bs#&P;a8;Sj8K;m@8WX=Z1q7w%)CWRa*e#JxK8JG z&O<*CJc}UDkD@7Y$qUg!~Lbpqd*|-iN6HwS)Ay% zag>L#>~uXrA`kSK3Xelu|1ZV(ZAGtFQ9dHho0UQ)7)FTYFCCfm+Vnn0S5=DF&Ft=se1 z__ZNxwnV{FbG*D^Dsss2+t-(?dmN`-N2i_ZTKs<<^MwN+9EF|LxXN-_dL+urEkpX* zVLehiVAjeha3#_@6!S$C^^=F*M)$RCl4Ir?pjI*71Ki8|kRkqYlV7}&NXI2fTG zZFJ3VToPALq%}~^N)?!ClLxzR?dm7KH47^w-hBadnb6Uw5bsuROpE__jv~F1>SsV= z42wZDe=pdf6n^NhmO>g^g%F`5D5^Mu0dt>*A(7Fvvifdt(=UVVKSba8vYLSAh%dSP&QdXr=kXCuZ{{?t7MT+bCXe;p~ON1s1CHBWvp0ED7YECs4W zWbh#Be`F{zOb`((kYks`#z}3Moecr^#q9)o@?^mtb3OCX4z*bX8>eI8M5*pG6Vx_=VZtmcl_xP_$T5V#gyq}+XZfjP^n51xH2)tQDLQPX0!tGkw=(XZVdlBkn z$QD)j)^xn-$rFNU;@MN|n(rM~fX=P-OJZ-NvkA1qj|pnhox4?oNx^1!5a9mIaPnZ| z2adpq4l7rEu4e>!ePwJO4cIfweg27;2U#AGz(~#P2HcKX&pW;Ix7dA73p4*W^h~d$ zdCO+Nn!?LnvI6)CbW#;s2}Tul_9Dc?Ih8c}8yhHm_ z?IWWwx3I5D;OB^~n=i)l}TS_Bm~h>zm~L_xe3 z-;pBYBz5zl^fVF4ZdWb}$0zt-szhEtXLeJj%V%YYaF1MIUqO|(55C0|TD-}PZdn=pE7jmvh#OBkb^tn!u>S=hDVh1lho-%yvAnLJH;_Cr55I?rfXe3~5YZwq9ZBWp)G z(OlPj$;QrGWs4|e@!j456&W4y0`Uk zF~_FItN63AH59WDxvjPTo)k&gwV23pMA`W((lVHBu$$V4cFQc`9erO#Ns%zjznJk~ z>dD%M?Aeo-Wa&y}QT>F+H@jQ;y*f z@&8RM?3p$T)OaLcalc8>7l}Z~>;%x6zQ(adMITezqF#j_`|gA`By=gajCA-={hkP- znW$I25~cR-JEp8LNo%yh{JO)%d)R+~3Mdb|z(O1WW>VbNSl=EwUHUS7GPBt*OYv_`SIHlwtag?2O+o6=vHSE4rES zNSix$6igAg`=H;C)k{!f01S#xQe;w^cDOv-@k0*J@WP5LsGpkS_d}8AQ>Dk}-P(XY z?7gn=x=BpM!9aes>{o>%aiktY@TW_ioYz>cAo8>liUe_G2zNTT95ncg!=`W4$f@pw zf;H8c=gl;=(3Qt#0^UTKB@w*Nz{UdrNl0j)p z5zgVaW-!hm0r@r9aqMN z9Dc+K)4V@CL}FNhoU9^7%gJ1TebJ&(>CzC%?p|aE^%=(=C}Jg92y@LV0bK3I1f9Q7 zpzhsLscF2*(ho85dY{qH??g`uW7e4=C)e9Zoe!cbyay@UrRxdxSF#iJAg@SEfSVMj zexwj`|Iz_dh7w67t8dm-0x#Nwi9@>r(mUTbnEZK?HQCtBt*HHroTPb*g?8oUU>yU$xBG{q8=JqJwgT``RTXEY3htEOlO6*%qWyPo8~;46DTj(# zhTRWK5MMk;Zp+fvG>7@kd^;+iX!_al!CmcAaaC!yx{Zxp3x)WE{Y0Dbt=HE?A;G8e zx^k<0?A>c-43G(RjcuuZ_b6Z^_Yv_c)2%S_|RmQsJ&Beb4P*HVs~b z;~J&enPu$A&iL-OsAtpEZ19fisd~dh#QqPk*K+!LoFwLw?gR4!@-8ynQ@x1QXY0Q1E%O!tYIdLKiG3gq2PC(RFbl@&P=+qi?n4!u#5cZr!-d8Br1okl@aIwkT) z!=vkQ0<%Fx>4g$E6Vuxd3q506lY}BYYphF$`YYcjl?tRH$lIl0_?k^E6JN3Y-F~5+ zVjW7{A`R#~Y5L`LvF8qNm5-%QmXP$LAb))8*Mq&PjllCOkIU=7QKt_q(A~x7&upA~ zkT}Y5rbu-iVR-vX;vQHzL#X{8c_RSN!D5W$5#WD|h6K41t<=DX$7lDeph~C3P|L=D z!11Xy&W(zKu(HWxU3=&;A?x z)kEt|ZeR(bsTEcI_+9-7!2E*i@ACD2a?NV>9r#Q>#1(QI!7)P~)I4b52F1Q7T znkb6GJ#4-TL-wi>ga$~rL!OK{#q7Tu8>N3`_U)QEepq=WQ?qf^fwn1KF6X3u}k+AMp6MR)&MC($7>zfjq+U08U?^1$>8Ed+v?!;?k~ zXha$0ASn`LMN-s*LYDA)cvrv<1|RWWegFtk%@`n9eE$%2X6U5j(A^B{JnO;-D}NV! zm2YS$fc%8Alal9s3<2nK;JfoelS}>nCvGbGaLpq`eZ+IsJYlae~H@_QXJK=7- z2}d6-cpEnq-WtsIK4>%7#W_11J>F@LFkCNFQ)Bhq5V3vM#bA5C=ffnL}3Om99pgK5`)ZX5)tUy^|D%EuNp1K2>(N z=ifc2d1mp9{=S+vb6%H7eXBZPa@?U4r{MjOjV-&V(>OI`h47$|vBvVn@1POBN`<#Q zbpp%^to?~_>oC3ZnJ89H!w3mvATRsEjj`P=g{xk00Q=-F&$l{@`K+a>E4Kn)&ee^0 z^CteftFYo59pZB?&qn8sm4A|y^kAWixE+J;-`z#YlrE=OQemI$-taR;&MTfnQ>jJY zfp0#%QZn3ceby9?`X}`4$q?qyRB!k8@hx@u3t{ne)NoSeqF^3QJfQfY~ z0ES<-y&(o3n=Z6CqtJdlA}etYai`G7O92#!xe}4W*_2>4JVB1S$|%bkuW}SJf-7># zxa@(~fGUZZfUNO+D;Qa$2qSF$iy2O>nz~HEOVLaOW}4z&?v9Sb5%g#PH5*A~ey|4atnQrg{JO;)2*p0%@w3R$RX-s9Zpc?@cxfnuVwanvJD(0bOs z&QE*V5kYuRgG<9E=x_Cri}Qa!PLst^x+1%#>193`pR5}q5$@7zl)_(f;y*@vFHASvIZ^(*^bfet_`9%h z>PDQHQ|V60lh=z&s-k_G3|qc43lMmSW)x{0HdnQ)4rO+Zl=p|8|JZGVerLh>2W9ht zSGrGt4ZhvWiyLS(T8&zMZav9Y^KMhQCK#b*T7S}zmE|mD5Xqp3?azPkXux!&Z@n&V zn0dxkmU~vs%wQy#{o$4fL0-i3X(vK!&BN<~cK&>dxm!r za+hV}vL9o*Dcm}D-18}6O>M7zlN2;CA;b$->NYP9o0tscMD`q2ec@z%bk9WYHO&#+ zIU)bXoLxnFb;?~x8oY8s=J#0g$J->q6PtmVf;X03pz(Kpn!(aNx;sXCQ-$OlG1RJAqHqTM$~w*}9rCl7WoG7Oz=HqZ)(h%9 z1O2+4T<}vu7=2{{7eZQM3JMBMfZwZ+c!PT5=|lIxdtREGZPCco*M2(^wo5uj2 z?jGaAVZIqO|E*y3^10b;s7B^*c@yH|)((okrm049)ml#J(r-tC_o$$tW#EfZ8X=cI z2tw>oJ$0^hbvKb&#KSNsMH=s3U1XZVPbAf|*)kRgyrA;d{3KE|OY@4T(^`xEJry*< z@jl4(+_m>`1Pk5mGdCnQOODWcz-rn5a zd9$_iy1o_3{M^$jSEXe`b9t*FSGdM}yYRYrF5)DlWx(jJ;~;CBZIu?K8JE_ib+gcv zNx33Dbea9#L*7!??RDKB+)oO9srl?fE>$JUy@{)QU&-WfVVVfz%HJymW+Nm}=+W?r zgzq*NMu_U3X|&W!@D5{5+=!TljZt*wkh;1U4?I4S*eVv zeY=)~VL>A#WDOq$DtJQI*_rrDdu=Z~9~K91Ke~MJ8IWbQk^mV>OGlho^BI1hRZ=Iu z@xSUvl0BTxn)K^Zxl{J}g#FFo&yn$SP|X@g%%$g#0gD9@eTK-c$>b6Q z!*@W2rkj-DOwv}ovXLPD^d{q7px3mJsIru}#vMGu6sefOj!e<(d3hO<)qD>%pO^T5 zjy{+paERgLG(5dFcM9A-(OBj3(48sosJpNQC|$q#J%Vs+?`82j%AKUp*yZF~u@k-U zrBAcss{f%s_K$>`TpOV__v}{wWy9B+=(vEJ?z-DYV9_R@cFg~c38WR(>8SBcmL%fM z3%VQ(ctTxe4=S+ZJv1a=_MxcrL1xtIuM!42LWqd1r@~h{azq)}knb1o2UIIS^ndNz zbZ}s$C4}gE8f-9j@)*LoIc1jbFxHw3)s6nVEh=g?`!}M9;>@eG6qsgdJ?j1UKM`eS z3d7Bm=H$@qx?h}d*=}P0bGzc*$&RnXClSk(OA7ScbIVP2EmPtvU56jD*Rqyqic3H2 zXg}Sb(n%~&>RTt2I*s21(j8nfha#W*aKqf9cs|o#gzF1}*;Wbbl24-Q_Sn$x6K1l$^FSv?H(D(1 zpVB4704J{-oqge`g%(d4(+}IIwOl!N6lue{okdVRy!k%ht45mZ1ajQo85>itHPP<$ z3m>1z3sk89dIDgAX>pF+jFrE2#b_~jhBWj=P&aca^e_r9Uc({d#H4?!UJ4e3wK)>w z_P%L|q0Hu2ZIXZWkq*DQ46as2nm_`vM@s9}MBF@Pm~O{mcxm zQQ=2NH>B!FxEbtm4Iwf{xOs<|CXmVB-bJdsC**~ycmlcC;oP$D;u;~<75sy%aSFba zKO^U>yI#4%J37xq$e|}q%2!_&UjM_6gC&bCXZV#kcc?wG+-VA~t=kBz@f>sOq4Gyi zDYTWlKdwylSSbvBe%O5Pj`u%6;X?6OX3Xjz7bcb7q5AT>*?tDOwx0{M{8)kHB=gaP z1&{UMrpZ|~uc$(cu=(NuVdhgXQ+i6Wf?c)O^+QlEbMegC@QCM$R@Ff`WvnPE&sCT? z3%JHNGxy_Lg4yG4e+gkdq0Yp|35GTo;y->3xo|dj=2F-E^+b7zZ(a|oJkz@~=_Rf_ zLHizC83_Y_Jo^U}SKjD(F$3KI%J4wMjmOVt@3q6#_qVlT?Y?>v<8OUPQ5!jwj6C z%JxlY-TAhFla-plf-z1DWw|L8I-;mgK+_e^3Y7_Z(1|+IMBb&I%-wJ`;N$#%(4#-o zL0>M}k4%X{eLnm#@-}W3&&!0BayAgA<0d}XJ^K*8SW^?aV1E3(cDMdu{)g_-wYoZ{ zhRyoRjDI21EkD6@>0@i5u=|K(XtK#z;M@h%FTd38xEE2xo2bqSEoT%bZg6}|pL-=& z+}WIZA_L95=l8}>!uMT?oqsIis9dwG`zlK&Xxh`pV5W}FDE<()O@E%YWDgW?g9M z75?Tb-e{S7Nw{U?V;09^yG z5;NrQ|WQ|&&*5Xu=RY$mE^Dpq8Y@%R+gTe6*SaBbk zJA7xIHUjvKp1OHgX324^?1Ob^wk$iloD)}$jWj2w_KS}Z+{o^1!`stc{OV%_gR1<2 z_&Nlu$M2hwUc%=f{zk{zGDLuasIK(*Cufz&U`0|($ICBMVp5H%Of6*Zq@VZ^8&m$k z{Ev{4RYKn?*g_yu6rJ_r9+vegr$9PH>3~zNc9bb6D{|j`&gF{q*v=ToMY(tGB^(oV zxb57kO5Av)m+_b%#Kjo>I7Dt!;(;+~yto77LVd~ZbxTI`%%)<7Yj zm(Q87Kto$>(Ia6R^lARXBJmWavRW^%@Cy)jzqE8#xjhkSJ${~Yy+s3BpQT6zn?7NO z;YHRESzReA7krM+@(M-W3%zYZl{tt$wau*`5<)~m`Z`p2KPDF+rzAea`3c<^$<6g8&rG{KmfKbB;?VagTSL z`@h2{dy%aE`M5r=tH{X2;_{{T5=!rsD9#@+`Dy;|pwE<|h^udebyU1ZkJ_HCOlv*08Qx9UR6O^|Q(#kBc^NMp?D1W{&jI=uo?Bqu65g!g<#P6U!~~=t zKr^uOsK;>7Z@|igi%N!>il>N=^@eU*$J7ftcI!cx=`QCqZ)p;63Jvmg*vu1qfow@R@LF>EdL)maMo`ssw zF|>+Iy1TKH?H)2-kFl znAUAjHBG;gr#m=^4N>&jr=8sFDIk_8i+=5bg|H6A)M=wW0&8>71kjcM6mTrJLolwh zY1S-P6+ON`fTbtVaK`9E2+f}nl^uy`a_OR-OR@y;wR)}3JLU{(6(K05wahMx$k*|B z<16Bx$=43uhq|Oa`%48_Fi||=wIf!v`umY~`fzH?g844ERNqqF|Rk;A5y4metzxW zk~JJihvWAk`!ZaADQAQ|y5&BJIs88H1_~MXM5p!+EiF;!8E+z)|5FT*M-+Fc7Li^! zXo64YWQ=y~Z4Dn2b$`iLc6K=3??h|OY{MqLmtjfX%+qX`TP=Do=vz7Bh52*Q27ytp zP`~Ym(xf)XzBs#(pu-Wa?QQOkmZtq-$lxF-@V-Y&Yb6my|IzTZM>{Pox0DAL8#i_Q z?-Bi3A~U$bj0@@Z7%?k~>@g~h10#_D#z89v#YVKxSal+F$%8R?s;gyBS_fWgibRTc zM9B(6Nl!L*YKz`CV%;w_T!kwXQS2>I_c{L-QCUQ@k9I872;=Roqn|OyX(S?;>Z+E! zCjSr-)r*?$n8L*sJgk-cfxg|HTaWJx-qkMs!|dsv!gL?$V*ULq9eZUO;butmDsIT} z>5pBIUM)W5CNlnbiNH(>Nh6%i^B!=#*Tsvs#DnF1UO^pXwdj?XJgzD)Yvvy?#9hv_ z^k*(FQC>8(k=QN}FYmaw$?MV(_<5ynW1E9=BXCMLZ;fJY)_qgz%Co~y-BZlXlkdjl zl~htYmJ7jCuxSb6@dx zv4_82A~Ab~Osrkikz~fC(-l&vQEuE z&ri|CB{)ZQJZV%`y6E`}8g<0DGbao?8KGs?OuuR_-D46fGax?}AmkEzk`%GL7CTdSJ)71nJC=|)r-EoP!V{k5JF>SX z)H)&wB#}O}$_oT#KJ07Q`LQwkjZy*ItY)4Vv@^v^f_JbJsxhIObxd}J2J#=@27Rgi zs_%e%2Ba&m5aKuAKS-L1l96pmvSdRxxftVNc25YdyP4qqJEq1PmC!-2uhj#(+pnycTvu%IkHmQO#2Zo^8B+^$~!hzvdb@bZ`#T9*BwqU)P*OJBdk} zoQeOhpoC~OL|Vs0cquY!xt^4PgEMCf4LkjxqvW8`>e(#S+>97DZzsZgDttELE!wwb z=`csOe+BP$wj6}f+^vs1`UlLToshG7WlnSqz@01 zllst%r=MyVx1q!EU!Y9oL#^5VDqpCwNN6!{J8bYUY>EpbQ*pZU9Ah&5=m5NZG!MOe zSOn!%b#INZll%wT=kG7{H2=P{lYA6${15mOvF8gO-d>y4oIMdkK-hK9(i85*{dXGq zAr%YFXZ|}2&`W)en1NVrJP?V$_H4WEp_Z<6UH$Kqe?SA2Ep)j>&HAWgd2b&y*y&&Q z$)|2!ND2ui-iA(xG58;F;pnt(*`jfYtGVPK@ZBq{_8+i)nz25aUK$P+?+lnU^PlD& zN!&@9;nv#rJe`iHJGz^!_H%p4mOi59#OG`?ibHz1rU9b>iu?mS9G@vtV;Lta)bt0Z zPrBz0S7H@YY{UQhcVpJMAOhBw%Ha#l#eaaW&q+j0c@%DOYU#OG0G)SJ1C=wUDSNZ) zNoZNOjG1|aYy0*vj~MLi%Td_$5*x zaEziJnUk8?DDb;OE`sFofPrtvv)M`v(|v2HDAi^aG_Q4eKmE-W3dgkkG}Q zI&#cFaGZYHg-Vn;PjpohpsrrM>6cn___wV-9YOzqtJHEHnzKLJNRMXJL-+b3ha_Va zu_wn+a(HJK>U;|SavzwT)=rwC z@Vm?I$AGozJ+AiP)5(*);hk=^1L3Et4a&<}yUNpf3r9;C0WROuc1<1~1urjHboqC`h40u(+OOx7^#A$?v^PLm z!OF1dWlC=7&KKnw-xL4cwy5RcwST}rVD`)s%B@2V@A)Dh^XW!OdHDAk0S@bc6kJ zJOJCKPM+_aocy>00TWg^w$64NWM+%xDW^Gmwh&xMYvxV^RQpSG5IupeK-Wp~++HFY zQZ^uoq2^H_l_->xEQM|~W2_6|QPUAm#My_>0ob+Ovn{O#o^|@q3tRowk)9|lw^r(L`iUdT1k0gQ7VIDN`6wR zf@f}GdTLN=VoGJ<$y6H#24v4 zq}24xJX@vryZ0+8WTx0Eg`4^s_!c;)W@LI)6{QAO`Gq7`WhYyvDB0U7*i={n4aiL` zNmQuF&B-gas<2f8n`;GRgM{^!6u?SKvTcwn`GuBNuFf>#!Gt)CP zF*P$Y)KM@pFf`IP03tJ8LlY}gGbUo-h6WQb!1OB;3-k^33_xCjDfIQluQWFouDZA+C>7yetOgf{R2HP_ z2c;J0mlh=hBQ8xDWL1Hcb5UwyNq$jCetr%t6azByOY(~|@(UE4gUu8)d=ry1^FRWc zU>&}`R-SpqC5d^-sh%#jN=1y1vz zdQ)(_#S*7peV}9XK~ako)i5Do`T;TF2^YwLC;iksV0teCChXJiiyIjj7&|>(978H@ z9hq_3>#&1J+u|L9hN4l6^=kOmKDu^9%dR2%{vmOJ`_2J-Ld^AIDj8Yj5A1Dv>vVgU zz#Wdh|BWo{XJ>jU*giiH9yRH}@tO5%#tQEP5u`!GMlBX#qn(>Hi$T%7Q! z_5Z%CjYj6Xr*-evy1sD}f54CV5*yhK)+@TMY0`Jg*}qD>Xy&TMT!U%FYx!@5?wimp z(4@S~dCS+EQ_h9(&arN}wlrOybFP6?eu8t=+*u6EdoEaKc&>kOWudX#3)8!9-TQv4 z9o!hw*5%=A>EtWfwe)-N!o|*e6I*Vni&ibGRod&mJYc)5^EIPG%V%1)Ur?~M?Vdkj zyNs+?&!vsEGH?D0zT&UGCC>Y6ovKJSr{FiS6!w}X_kxu_{V()0Ff-I_zW3Z_I>%Q~ OQRV6C=d#Wzp$P!RGs%Pi literal 0 HcmV?d00001 diff --git a/shirts4mike/img/branding-title.png b/shirts4mike/img/branding-title.png new file mode 100755 index 0000000000000000000000000000000000000000..dd79d883b8d1935f388797b77a5e1216e34e6ef6 GIT binary patch literal 3674 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 literal 0 HcmV?d00001 diff --git a/shirts4mike/img/logo-paypal-classic.png b/shirts4mike/img/logo-paypal-classic.png new file mode 100755 index 0000000000000000000000000000000000000000..7dcecc67c3650d7355fb33432ec030d89368ad32 GIT binary patch literal 3856 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 I8hOY4AKjd`Q2+n{ literal 0 HcmV?d00001 diff --git a/shirts4mike/img/logo-paypal.png b/shirts4mike/img/logo-paypal.png new file mode 100755 index 0000000000000000000000000000000000000000..80a09ce1fca9792805056eb0947a5fc69b856de4 GIT binary patch literal 2816 zcmbVOc|4T)AE&acqay1}#^lT~hcV5JbIjo=6tkHk8Z!?Da~Q*nW3wTfBPn5pqS!4= zZ7C5$LPVs)@pI*fvaYa>T(-J&WSpx>qX_jDjGbgAM z8wdE)?ISpVTZA)-8WBiE)4g#0B%T7pHMehz`bc5?bg%nbRGC{fBFdfmr(plx!C0bG&$fLk|OJL=KAq`jlY|{U1EQ!Lg=j0v-+j5;;l~ zH4%$5wM9V*2owPU{(`0bKUsr_oPlh%$N#j;SCOa(H@DxKUv&63J^)iRGaS)yK(pot z#Ka^`9Pn5Yzh}||c5t_yqOjjQNm0JtM!9cLS0%B$*}&jMLvU&zx+$X)uYcr${p}lj zOYG?kg0mmi$WwQ zjkSK9srl&FCQ~Dj%^q0O+J^ItFP9BAxY3cbfPi;yysI2+wy?r0yLfE0T??S1qu$od zdw4wexY8NB5_=-TYhyw~cwKPZdUfTBe}!7h#>Uu({`fhCndQR!HAnly<1WuaR`Ac( zV)kdudPVtnWj@O49qJyfzrU*9v2c2B3ZP9+CRxW8^Az&VOkjUX5L)k6eKzS0b=v~{miw?WoTU!LbC3Gt!Mfb#tA}e#ldo}N zlX#r#WP@PI$Lj&tR_67*CTx!0M|HhvD6CM^R#xo~Q^8l9{L9wMy-#wfX-T01k)abd zx+1T%t2p1od`+fry#Cx7gFyj|nE5L3n4nXfd}VfJJpA7MIli*iZ!1yf?S9{QD6AgT zE!p2K0oIVkf0ULrlNzvG{qq*vM``=Pk!}wMmG|{Idzhx~=F~@M_NiPSQl0{9MlU(B zNyl)YVoZ5?-{f$Qb%<5;4Q-JcR@OQVz|%38gy{kD zo}OoTWgd`*zLkT@3id3Vs6pXWsRL^xPry#=%&Q)f9(08mQWhdoh0Z^`|*PKpaM_Yv9mmXaqcm{qq*mtim5po zv05Pgp=Ti}q4UX`>b&H;C8gm4|f&Q%YEI=z$LjQR-!@n2*Bq=UpQ{e>WFpC$>_vq!>Oo;uFA z6{%ZwqkKAWRoWT36FqYWQhk&$US-&QjC(rMW1ej#0>#6(@XP^c!MZ;O$!a&Y+0grC z7WPDq5E>}2iY!eoKU(1(u_jYIbM&Utv|l;nEX}C#Pl2s>|*m z@=4keI)+5Qz_5ZPF&nvl%$b)MecGG27D=51iCj>thxJzfWMSOP{VE?N)9C#3?v;a? zUMaEehOGRv?mdy~_ue;G)=C5xnxf+g>dzk7sT_Z`j~*1gw$(5N6G?ZUx!b_J_}X(} z(z5H6<~YK6T393hw9j`B^X8?$oSET{y)#*fho_1CJ(!x_rsUe`snezzPUG)a>Q=&I zx8(i06ik+h38t)9jRnk{z>P0HN~tqGr`^}6a51hXDOPT>EjiMYJCmNT)oj#fW)yky zdBgloR5yDgJS`!g8B8fwm|D5uSE8VtY-RMj&4>V^|4S0Pf$jC(`dyY)3&C~0JEZMyX0^pXCxUmTug?lUYQ2T+?J~HP&7)42s zKyq?_AAWS{psI0HU{2dHaotmj^q7&%ylyt9(|n*XaYs_qn;?9h1ODnFt3@bmsybrH z{j+ScJ3Ac|T2fo6H!~bTa*e%Rq9LaH0+mts@akfg%ZK>HvTCaxR}P1)l()Q`eGoZ1?^6KNiPTQ>D#h|Yf;JH5xtJKC-}v$kCNQ>oQ-$EqVa zH>mB^o!1v<%*x6^c79|}vYaOh1CMQwoLANO*fw1GQ~+=MaM*hM+$rT3VG@ROB-|Vp zQ<__yEBi9GjALjXI68D8yhI9lCG1?vmZT($A`c>A3>@uZTe{CNb#6_Kv5?{RThWgu zcOAxoLVttrGQICrp77k)Uph=`MC`H8S34AvzSAIIfdn>b{?J2mdS&=i03ETu2&}|| zb%CF@awre&_ErteP+p@3G=|~zz?qhvnIEaEE9N&o-= literal 0 HcmV?d00001 diff --git a/shirts4mike/img/mike-the-frog.png b/shirts4mike/img/mike-the-frog.png new file mode 100755 index 0000000000000000000000000000000000000000..530b5573e80dadbac76d1f224e1003a4a0a2371c GIT binary patch literal 172429 zcmaI6V|1m@(=Hs_wrx*r+qP}nwv&l%I};ldI}=+IJK1^j`{Oz9hx44hdar%oy$V-% z*Y2w7>L^8d33wPB7$6`ZcqvIyWgsBnsqe2h6vTIrd#X#u_YbzKn5L_WgSo4Rk+T_) zkg0>Q8IhEok%gJEnUSfN(}Wo>5D+Mtm8zzzrkpIdiGv-3(LXc{o_3Dk+(1CQ0-laW zCN^fSM8;+oR`z@(*WG<2L{_GJBpU2;OmdDQW|mfx-p*z!-twv@-Zmy&rX&LVM7*Bd z-vaE+T#bl4?QHE`xIOtu{w0_D`}v=4MiQcbk+|CMk^CE!rko;?h=a2k5jz7by$KUD zGZ6;|12Y>t2M0495epMD3nSBayN|LFRD<0G+j zb#>%sWc2XxVDMmNaB#L@Wai@H`bP!}3;j0*y^EK`Bd z6a6F6$k@Tnm5<~b>A#0y=lDNj?OpyeP2Us7=xOB0$jrd>&yfC0C@1&-CbhHsA8Hp@ zWwZZ-_x~!`Mb*pEj8WOl#lg+ll?Mqh7 z&q)f()Y?CO9G`9bl;J#WuYWaosO9?Td&pR~ZeP`%yS?@L{KY1-Om90DVdJWxVJkJTD3$qI4cOXW`})k z_6v-atZWpj95vLGfkH0N2@o&R$Te*vosOK9;eEMwes$iwH_b^OXt`&ox z#>C&pc6~C9A$w$FxoaM3NNtHkQlJ zbiKA`7o!Bmq%&up3h%}`=<4TRPd;8DD+O3@QdJ?8-|FacU9{mp?xp>6&TktJP?x{x z2bwcxdHx`_?%pG_1l*4ql+I0wCzg>mj0XGw=(dT^ds!CVB;3xrn7qX|v)$LLy}B?x zpN#$K(-1oW_n!sO6wJn!r;NCazb!71|01OQ!F%=Q%OB?R!JhQuC;Lfl?G%vvlpt-@ zce~NDl5YS2Dyi(_Q2zSyQ&<33Bpco`-*IOFjZolb%sxXtzyzNTW7Uvj$|%p^A;0$F zqg$Gk({sWy1u$8XP_u^;VfeHEt>USW_$Z_ z22rpbA3%SFFc1TK`K#eAte=t7e}GdR{q<~NTAtzVb92(!sk?R(breHKE$unRdiyzM zcf3BsPdhIq2vVRS)V)KQDjw+rrRzH5_ZHdwYRk&|%vsjT1h35dy?(vGmDv!j|3F8D zoBKpxbV9u9-wc)$U@QZ+V9RzloqsjMSG8$jvT9J5q8f}H(>ShNOsGVkdWPtUtftIM z&wf1Ip9wj&DAT^o)ukm!jY&;fUyLb=WkH-1Skop7xL@oqU-@r{lx995MzG za*H`yd{y4Gyz@K3j!dDLeG@?94wQaYx z^4)^W+WoAMpeH@2Su356CSHxd;_hF!+v%ex+R=^aBs3sJ?8jBbFs)qGX z{_yldh^|-xR5CUVuxec;4u}fyBv5*$lK639GTaggIeV(rnIC$ZC;k9F3U(5<)h8@@ z8Cc5Ui}S^&GPEfhQYw=jxS~6)q`jJ`Wc8z^qd=*AU?*kVECNeEOrK|h?ptNo@i%G zup;eaiW!T>i*Zz$vfvDAH>VnTVd5)mUOIt{J3tHl0o5Rbpx#p#yyU}%Jcv9w5oUr8 zw5c>H@m0IX!hs?B(+9J8%R#!iHGq$R@atw{qcH+9B-bh#4%?Kc;y=>JGfPNY+hi$Dd!L<>Y^YeYXX$%iZ-wa z-f_bNPY}jTSf=#xC1;G7qjS22D7#rS8#A>bwHB#)DZs02+Hb|OVMh8#DeHt`=W|qd z$;W3@9VpNr2aw6CR40YR{(PJ{_0!b#|h!r1Ih+{432`%>E zR`UfU5ZC0uHs~G+EezGRTGtW77|`vmwfU|$)Y9DELMqCgCaStGLR?%*e-pNi*FOb) z_D!a{27L^)9{=66?k32^f=bTSmLGbWM@IUZ1h~H3%o;PiC2!C4q$a6rHV#Z{LVQA{ z{Sg;2*)W8U)G(HW0-J=_j64r*m$Vp)wW(uJIIWSC5iGK$lAY9}Z>(#n_B7Ak7F^)B z%d>7o67I3fmKRQ3K`e8ma7;`M60cO0yjHM|uQjJrp(~h0=!xYdYb}O0_OF%!56fOo zM?2VYZ2@My+_#0bkDGbt#9tA+z2>Lx|HX^4)nQu|DQA6U>&M;maq{%U2skS0dZIZg z)652w69x_kQj$`~k}8TGSdj8USK(#I;wE{`th&ppDx798FPI$nnfe{R3VHUUi<3Ke zonXdj;egFN2ara~@a)V1lW1D0z=97<(%V8jCogFn>og5C+|vY>xMBq&k^Tx=AyX4C zJ*c}P$7lJLU%Adu>-AhhWuPH{@1R=xd2;Yr+*e%q<2tbEKbtbPEn8lp-`~tx5BKN1 zj{!0NqtCRgZQw*yMUpwH36#dmC|PxQb#v^XwK8SdxKfQ^12AbsPS1l;6RNEZZIi{j zamao9j#;Vt1#a`B-FGdD-^l=)C#u`)LK7^(OjkQvk*;j5jR-cGlIMvmva=nU#A!7w z@qU+FT{$yD^L~WS6`1QZC&fNOHLn=f*LMa3tzY&5&bI;B@a}*SPv67Jmep&f=Kp}L zv?nR3tFnIU+UgneH&oK~&JP-aPD87pkjTO@_m%D!O{QiIJ%1en0AYkbF)??5t(k$S_&Cyp4fnhx)0}1KPWEs4T#;GgY9KQO)|@CNXzD)z1DqbbSDYmC>;P zFPHnJusi~{a`pcN0}BJv)gI3?Jw6;g52$ABUd<|Ot-|8i=pJB(!r_#r1d{}M zihICK^&~<-bj3yViAObX-8s?Xf+#fA!J6Soq4;29i~tXGtZG$)72&reSwtZuoutgh z4WQ}htOmf&S~nRkCGJ~txIT{*2vLYH2DX&Y6YYleS*nn>xWVbYme`Z*%D%~qNs(9v z%i4+P0&;v#Nu~P8YPz|YXdyS9Iu0&flO+mCdY*717( zdsFYHdTbt_7!_Eef>3GcbX}IXP<%+GA_jy=q6*^v@o`At!hIBq9Sd?;R3{K@Xd??* zid7`72vv7cexM*2>}s%zXmjS<@-~_#?R9}glsW6VW@p5dMWOjvwWO$@if8OctL{cK zDpJteA}be4XBi*h(3+@Sx8pG{MmRELf zvnPEABl%JdFe!3uaxXd_Y*1hZojW>X#U&?pNg=8{7GQDc;stLKWuQW&ZOILdK;8L^D47O3v@_gt{HL-~A3 z^(;k*Nj_!Narr+UX-1i&GD;ZM^J&{m54hasyv{0Vx_54q#$6xW0lxqTQ;9iGv!4>U z2M77fRfJRh|C(z%e9i5aSF$wy1UZY7080*^xw1h}YYS^JC>#vHP4RU4rMCj<6(Qd^NWg+0pN8)F-Fg#?-Y;HOgisH9)aY#;%GdI_wH?+REpD_*#9LTiWh=i zG^7NVonYEfGsdIou^i4%F(aD|Pn~;>`DMCHd z?|0nAnx*@0Z?jl?OZAm?J36t0|B#>#wPK~DAj+DpZ}-9%g>mPtm{_$ zE(HFcs%yn$vr^2a;;&p&Ul2IkCrJpSe7F`!aY&{WWLB{as#%}fY9uaygQ+th*9{@5 zFV*vUT1WsxGryt2PxYccWoY5n$bJV-^^&)eLch2U)~GA35gRV&`K-?QzoJ(v8yzyv&)WBR!^Qvm?cER8lzcN)?8 z-u{xS|7-oV!pv89+SZkkc+@1XX*szmL7q{I6R&U-3IbGRSU(zVcG0zTtfra`lHzEj zfFe~-O_48N6e6cTAqItD0e#kz39YvQh}l%&@-t^<+*?CuC-l&KWEdn`u$i=(2E8CS zJgVg+%B|3;4t0;3JGN4iVoNh?coUod4j!5r@crxH4ioA~uengcnXd34s3bgz;3_wc zEDzY+Qc|Wj(ja-0?cllKMih`?j(#N-XFs;=41-rJICe*13F*OG%Gs;KEs%pu058YN zl>|f&J+S{W7j>JHWyc+@J!Ae5PCyx}4VMZ&6@=T?C$DPF0GkGUV6m|NGZ1lm4HahmOTb z#Y^^7%zBbrZ4|q9h2cq0%A8TEAYz7e&SU^|{eHI@JoF=SGHNJ=skdO zK4cco`$Bbvy{OQqInUrf;ltjhqY@<&8V03sQC5!!ci&BZ`to-ALZ{>!v!@nyPx24) z$V@Ka_~>*sQy22>6z%0I?g5Y~6spObLX#ligJzbltQ>uT!W!74D>$pFCvRxDcTmK5 zzI?Ixf}M-0rBGrfk%r}LbW>1RbW@B4_7gs0(|F~;_ao|Xi zX{L=PF~t(-r;^V*vd;I`X0-YH0C|--`m+za+m5Bv*r+4Lw;yrNs)kAP=d15|v)iKtSdgFmu`9faPs)=yRHPv}&HR+Y zK=En*Yu8PUe}`u=?pnC*T&q_|ocMqp;{qhg8PD#8VVOGVYRBEkezRb~CA@xa2VQie zuKm0mGFDO)mzxyoQaCynrN*utNNzDfdK^k5YFjC-~ zYR&NCa+UMd-B)?m9AfwFR3Xz121aCLuu&kde_J+oyn)_-pJ0Jbf9yDC=N>XcV~A41 z($ZB<8rz#~CyDLROsWp;MiLv{CYuvtx6{#H&1FgeO&RXS3X&*0`{x=M5c>3M-3u_s z3{S(dN|0)4*mADG@C;O5h!aUh8F|hr@1yrK7g^$(4cB{EITW~mfdPYT!h*%ZNrDC|P#%g} zzr1_4%GG^Hco`82@Y#_0q3W97D|JWBn=t7NK+(BWyXPp#==Ep*&Sk<3WpZ)qq-9L%Z+%Q9or+GZgG zEEcJn95s`|qr8EdwdrX7o)2JOaR)@{lWi-YvJg5y#|(XZK;J?Lw#N8|!prE`TFf%W ze>Ey#ivl5#91F3SQ+0PifK)xHWcy8lO!=l39v&gVALe8|Wq?3~~7}fr~I+`RSIsh@c}&FTx^MH27=gpUJwuM6|d&63sph zKs9NdW**A8ey5UfxTw+Z-u%=V^MCdmMRRyu-~Cye+qWU)w9&NyS~}qi#C-#Nyf)^q zrKfHIZ+w(p3#_IA&})7$fOK9tYjmFI0f_c*dL)S!FNPUJ=RNcZl*!$dFrQPaktYq`qH(;5P504Gdi-N>@&$xb#;I+8_HAGNZSGkA6c3BhpZ0*HiKV#$;VQGS z@thtOsTZk8#{|bl-`JXxFW3zv%X~0Y)?5TN=^{zu@wnr;x3wE`ioWuUUFuYj`Lx)r z#*z2i05Lrhzg8I zvyReC-;@sJA&MvOTtOcPrq!TG6)lyY={}~eA!Q5%6+3-3`SwWxf6FjwZ$Bh&&CQ!> zEmB&ZJ=355IqFq-ct21u?E!@F-_Yowr+&NSdR|R}H%@__Z@+sdI69y z#XOnseHhcS=t&M+Kr0lUmQYQ0=^uC@SY1gwT9N&U(sE*lM2LBHc^NHgz@PdcV+r}8 zq!MkFgq2Aj!X>0CKk3>r7%1nRiS8=I1Dx3v>-b@2)7ffb>57QFX_4U#6^B|QM|GeM z@Lt&Pgt)vu)W5t|_x^-6Gv&%kGDF1`hnypi2g~pojAU5{Z?rbOB#(Ec-4gIJY&0p9 z??fB_$d%jL{LFarmF#io^(K-cmHhlx4C&o7ATZ@UWblm074XvhZhyft zh3UjRS4HA1YZkN0aNI4RoBAH529-+Qa6T<`l1h8r|&h=FWhyejqBP+|a~i%i!kwkUgC|tr~p6WNa?X4=T$ZcRAHrCUR94T|@Sg z5NLGt0O!lLw<-pKs^KsaML!_~@^9Q79(hG-v42`J*iKSzN<*g;T%PY8bBE_Gc7?BC z@IEwmYsa_Lfhq^SwQG;<|l*-dao@8I;>vK~m7vOgt0pjPUsByoV9mFM-ax&-;(J+?A*x z)?_a*V9sE(f+iMzlQs;)ZVtlN=TErK1v3`E z1M=yg5EanHY)$NvQ#IdhMc+iM$J21b0DA1QWQ+J~J5FQXEYKFmpOZRw__kKrR&$En4-lXqAi$M-g+Oa7p>f|WD|7{yBxmOV9! zX^L$hL0BG#oS8Gm7^XN0GMd%GSDmX2d}xD<*~sQ6EiUW0yBBH+7%ck*#RJq<6*hZ2 zNtmi456_g}xuNm;hu&6!b$8S6C_eH@FcfaJ9MiNQ$f6W!D~n0|XvWMrOr z0v@$slAGs=D)wga0|2-DN1u~3y<-N=*UM7ZgfA|S)VA*w3M>O3$n##aoXj9u4EYO!y9Q;^V9Ujo6H4LZ7Wy!f8n(xdz z4D?630cWzNr1CPr94c9R?1V}!e-RH0oTH;c=JivAQ8QUw^vtkYG`Oh*NHs~HIY57! zBMpeMS1dTIqADDK_2Fi6)lRPc8Tz$Y?=Iup-ZMR*OrqImscm;EOe@pfIbMFf10Xu#3p9?B!{n`Z?ettE?#Urp1q zroYcloiK!0`v6rFhktk$O+PC496MrYgc#lXnB=@2_XbTG+C8x4bGu?bq#a-iT#q(u zetxAk-?#fTlrUFnKQZCGYAbY5%SZ-A9qr1;)an2+*^1rJHKoV)LGaeBYkQ(NwMr|(sl`Oi3S;A}fCs9`D131QZeS$C>Bl(70T1;I zo!Sd8S!SN_;&3vHIHf4OVR=2Y%79PR z5LtbYW@asp20F@%nAhcYhU3+1!JAM_zef|q`F_h@DQ)D*t`7&S=4T^|r=7o-)7Lt{ z9B<9x{$5zXPHxZ~Id*XXFD4pFMAh8ket9WsHShsnuV+Kux{@Z5fr{qF5oF1&+dnoK z(s&jHzIjs$aJ_ikPls&v)63XS7Xt+3dhK}A>S}u-y5Bd3n58_NuSx-5(9IimxA^8N|VBpyR0A?Ft{`;!UUYmn|}jm+E#)TkNWrZdRJ#|ra$6@Q%@EAf^u2ba(z8fa>SA{I`x(4?FJ_bfOa4{{4l?l5$M*W)9-6_ zdl>s9toNAmZ|{knY={*9vp9&}T2*%K#KcqPhJ5nN*05g~E6|aS+c1PE5S8Kv*6#R!!6gGOD1iDGe?L!yGkqHSQ5>WK%(JOM2{3 z$E%YGg#+u+L%V9gy=^w!t{ArT^NtuJ?qCSwCq|CI7t|k@*`IycpAqjhdcOUGe?8vw z{XnQl{cDyOWvzwafn}>|E3^Y=I*|ms)+9_@$rD*9LNt&l8^X0J(=0I}FhZmXfPxThaigD2xl2=ZBlY1+z)lGqn*(F0^0qc4XqH5;)_G^pK7BQw%W#@d*?Gd#nbRG z9}Ga3LT#wBiA7ZB3s09q39_PC&3%JFQy0eQVo<_|-13!raoXDAU)Z;l9LA6xL!mU@ zvK3i4V^RsUoCg*(BOg-GmgWQCOWnn2JV8}#+Ea}nq3&C#Ha3x4YFz$EO@(pF!$yeeS=xb>Q}I@XD>Xo zy5AKB=;dEylc6nAx2785nt#y%CI2DIYpNrz#Tua!ww&<7)q`B?TXIv#%-loK4GuJ{ z0Hk=>AZ_fjCDF2m^BE5vv>K<=r}VvQx1fxJKNH|`g2(q5BVQiyHX%$ZIO{2i+l~ ziO5ehFcf3Tk_ta5KT`bx_}Tc%jpgA9!*(0#ph~p|HS7fh;kGFe!oP-MZMC!)d19g2 z6KoA+VFd*YdyPV_C{vA2s$f#+AnDP7+^E1Fxb}lf>L@`h8auJM%5dGKHDa?0|nG=njUJl;3Ml$S6@-snkonB|1 z^vAu4asblPGvngglm;l3-_7mN%HPix#L-b+gpm_k2sfzX%q^wYCa2z20kz`VIfT(v zrojorKhADI4&&0L$~K9jErqMI17wzY(JjiA(2d%`fsqbTCIZSBW?2-}?Gl^ViAr?l zmv4%Z)i`ws>4Gwds;sEkqL0*))W!|5tGd5E>m7(zyery9o;;x+2d11IHdS9|ZTS4< z7;!(p2y$Y;E43FZK zZ<40DaHNNcril>ar%V()K4?6!@D*PteMTl4aL9TkDMhB0CX0Tsz^{Z@Cd*QfU{O~5 zX%25!;!-=UL{Dsj%4YX|?PLU-D+TF>*pyXMRmy+lT&yDFr6%352azLZ12Pjj3;`t= zgsBeJJN*@LDQQ!(bHpmEd)n6SZpgnG0-G@_lKfa8plLx-DlL}TJCT~opN)8wnzR7) zTvkYRa?!lL+e@sC zH&4O|I{|53tg5PY37r6#movf~S;VnESx}*AIB>x}rvq6xv==mCOz<E{nx*;der)qYAt-ZX<`Q?M1i#=~y(_@dsaVSND>Rk@fn9#N=c_AnAByP~ zhvI^_LX=o?TO~rv>O+URSUOs@-FNpfW8kR%{4pL-5wK8Urp@eH%7p zo1!2RiYr#JQ%&qH7`CgPIYzbuuO?llVm{PsV$@5jh+(EVtk)t2dKkvAl|7@IxU<~f z0{4XEC!%UxKv{x5uF>0qZ|Qzmq8PNVc;!3bnP206Bz-CgjbKLJdSP+IBnlXu z#WW$G6TEa5!Ga%(dBs9xLNGIA0H+^t~h9-O86Fws{S#F6Z4Z^9W)9%Eif(xb^u2x=ALLm1G+_NUB_m`@uEvcbP+(syvr+lh= z?8223_3yU<)zQ^Tq^M-h{7O^VFuZ_=2my4fX9I1kPv$x^@d-ss*-sQ!*;4le*;|1$~?3Y(@l+to1Eo< zDj8W+rtGwk#T;T2HI4T6K06JjEf%43INc%tcpWb@;n}{AJ%UL}OSuM%ntgV1f2q_-Z6u9v(5G#rk1A{o6SPZ@TTq8M(`O`kPt3y) zD)4a+ZZu#6m#&Bq)$cI%mD8B((I87hQb)WVtPs`=G^UjA4vv&lcMPodhvh+wprOSsget+o%?o(;7*peND0#V)B})Met!RaA9K{CwcC11gOsU7+_^-~yEMz%QBhqK(CJ)!~Av&Tc9G?26 zp}&hIITH`l>Ix@iy$7y+2#fW!x;uSUAO8E69-u%91wkJl2^kLwBLqFgc>0^f1+m8& zc7_QbHBh}I@yhuQzKLWR1PC9$Fl)U!1FNN#l7jU~?~=T2hmXi@OCYXi>g8>2Tr@4U z4J2{TVsP6``o~qXjAGAt0~k#hx#)QRa&j4uW8*V+X>n3AGTfLA)7DPum@{^U7?h)s z*ej1NZ!Y_zWXO@NRJwRh_cX;~wF3@Z`*z3orA^W7x}IIyoTu+1G@?Hg|MSh5zGy+o z++e`U$2Aqt7f_zW;qBRZ5|X-JO{U^BW`k*}I!dpiaqaJEFNDTu!?R(dVJXCvNG1TE zH)m5wmZjE&EnW4oDL1LGj#wQtmf$0i%<6ZwYVk9OSF}cJ=tvI@yCU*%1lVdXU^b@n zi;rBuDy^W;X4D)EK=~wDs~fXqAS&2ab6T7zyLuYOA<<~uRw4AZvv7dWqlQi+<%@u< zveG2y<|uS4G*M79X&||9I}RBvusI;yUOPjFSjYgZ53+K6%}_P*GZ%(GNteP|CS7As z7@-bh+?M_>rym9902>NS)13y>@+58Gs(lNx9j^~}!E{Q14zRPch?G<(7 zWB;=7y5I?g;-)d(=xX|YnKNtg}7*iaXP~hfJmmdeS;!-+4I36&Up?x@g?;{C7YI0AS3sKDHVA~O!RymguRq@4Oz?#! zlsSg-lI%R(DeeuQA~15$DLaT zGL&^0M>ZS(f>BH}smTT#E&n9%x1tCFf;Y<-+>5{{LUHHx=+~dd$0}H&4@(c(tp>tD z@wOj9wlgx8R8F%IAR>|iI|{{W%nT!@Wlvh?grk8=Gyg2oH9GtKhWZLITZkxc}>s z=4E}+OaJyZ`QP#$suMQ<<%y3ZH*dwogUMn z&ungKr{BLr|1$LrAu+Sl;Tzx-GpCy{J`$S|J}Yq_JklD`pwRP-S$7KCW6ZRk|3ic%lA*Vk@pEwD!&m}J)zH#OK2dd+a7fx(N$8d@jz~azOliR5_DYvD`m%TNB&+i!mM~VAg&DY=+B1A9&At7sR}0K^)|i6 zC}UH}_Jzu>K6W6NDgW#j?uGs~B-h83kcoDvNt)Us5hXby&FBf$swsnwESPyR!51?! zQ!Nov8$q;w3$3B-*IAAGS75T1@8fl+_>OEt#_#Ayw}~CVW#+065q|16r%YD9pHYcM z{yQoP{UglwJYKwoF&3S;1)vcp~FN#P} z!KEi@CZ5X2CxT-l%DJk_FiHac7&C{NNH{!a9qA=Lu5i^m2`TdaG9R3`Bf2KCTw|(A z9zVDUy58{WU5|mAA#;;!%WKtDMpv97rI5io6;{<9IWR!2bXVbvqmP^)cO7315& zT^dj`F;^4E2wo*h;&q%Ki4`mrhMBBb4Lee93BW;EF|;wkWiaRr97r%2hEUaaHJ(L# zb67hmF%*oL=T*-vY%*Zy>DAQz%5KW`8@B*wC90odj5`xy@oR$m+8*OSZJwm%*YRf# zMEP4WeVE}Z{`!bvzN9SJW1>5jWIHNU5UV}@r#dY*xnI~6LMv0li9%{Vyy8u6$hneY31x#TUO;9U)42gULu)5FKl-EHY+Joa0TY48f#8=0%~Iva4|zvgHptvpvVG1ul`q zQertS_k4X>^DoMIR=rxg3!;eetf0+Dcf&AnQXttH>WB&ve|lbahE z{epf^B_KnlYvo|lCmehm<%Wyk!+L;#!%?OAz0M>k6W~CtsChQLBsjbiAmGYrm7axpCU zhq)Ou!rBoGV$0^{HC*d{zy&o~Fx1#6K>fo>7$i9VG4M4K@ri#!NUR;7#BMEiQfL&d z{NDE~Ze|9R4%I1&D*40)BFC*rd%q|bDc!iH@+!)c7pR~HOHpCldBY;D{TXD@+j}tsys0_mio%ftx2=ZX#cu6 z4#NP#<|ybI3lkbH<6kC+@1#FqWrc2@IS)<=Rfx4nHN2R6JUF_as+>&#on+YSj0ALk zGe6-Cxwpa+_-Z!>RcH!MKrWBV(z)X5lBm4a1QHmdoyoF@5$j>nIXMdaZke%6mt7|bsW+uZ zX6eoGGv9sWK;w~QQ_#yq$I2rR8kcNImF*%87aSIxN@Z9qT2P(F1Fs-8`3xwnV(2A` z{evN7FR`hk6A~)1msP+(dXXV@FxND*FmSgb$ENBvDr}Zv%K0te$w%j%D8a9{AS|KB zaZl;xkTL+jPOlrPXZwbWw$mU!fnpXZ`v)V&>eqA8AD-Y7CUX{{rvx#2Th%FYT-vFf zAhrEY>vd~}OnQ?rC6ltN=JBRXAthPA^fri1iTJ@cPbfby^vjbAX_}*K=>l2Rl*w>6 z`V|+l_E6=jZe*{THZ}n!l4a9ae8v1KpX>QB3F%@sp9=x)?9zrU!l4aEpo81-00m4w zPx*cf?1u-O3kF&QG@5g%GPZJTU)Bq`v0fSoB97!^>v>T6VPa=|W!*Q97IC!a7qoke z57xft;|BBZTNe7W%J|7#GL-3ZYOmt?dVe|fV0f07*1uKKlmG>@>c>CQ5vSfOHY=Z< z&cp*{m*BX^|Jld$}DwzUO4%%eZi zSst}D&8f@FicMo#ecEqSr~Aup6Z!jPt-kjD$5qq7N@9M~KkKiMGk zE6=2Nmkg9$sD@nO&zz$gNLkf7A!G%+OGz0j!E;WYQx&m@*2Q}V6$QyEfk6SmE()jD zKG@|YUP$$7{m{D0NkK&!z{#(Yv!DZnpd1(s8Kf|zwO`wYIR^saQ20g)r^7R^IHSr9 zMG_aKf0tzW!*AD{aK-!O-bl7)Q$O6$i>hFuo`|34HprFzZhiQtFI%2=h6o?c0@g1N zHM`EED(yr;tQ@vjJa60z4=uEY)}AZO3{-&I8=w;ur^zBX%ILf|xQ%5F*aA_*qHTe4 zFHD@xM29S&;!FY`h;DV#+gfiL*A)?WP=E$TwtJa6Q1tq|pSvu*hwdk~csKI~6}HA; z%%c`3LO!k%6AIFy7EeC?c{0AFBZj(n{L1oOz#6-V`6a+qSTvtt#yD9w4`o}LQ@v|O zKlD=){HkgR@aXWoz9eNbH6}%T{2E*ec`iW+@I&-hLEQK}5rY>-nM<2e7;kO{ zWO{XZ@LvAAeUzU!&4A~@LGHS^W2s@XS(|CKPDojdTiTGYZdY8!2! ztSc63DOhW%H_N%Dq5!)Uk`i9Wng4E&9o-`H^-Gs7!i7s0{ImLy^~Mx%kfdLj9o5bK zvQp8gTNql*^AIS>;mo;6@NrTx4)TF`pMU({(=hm?2jY)+VEHlyOLrK)c#k;73|*Xspn6NaVxKu#693LIr;5i>L1X&BFGKyo5Z2b#VKQCN>tZHkmAG0oMr2|D zA)l9s9n5wnho9aDVL$I=3|e20{-CBA0o0*Yu@2GK(8nlaOLVbIDP9Y zpSM=5qKtI^J0`P>Z!4=^NV5`X(gn{IB~pIEY}J8%ExM{aE6JIpGAtlKA`MCurxyFL zJ{-U;r%wCqSW(8GqWQ53nPkWub(CLhiucEsK%)77f9^rIRrdrP^1Vv|g~9LD{H-mb;#{ke{w52I#K0HKrZxFL(`ounpOK&M0P|(pv%LAgbjo53DehHJfQ<6ImOwa3N~DU z%}6c9f_jSN#v%$wl$BGda8B8!a|=J zlgdWQ)hZp*DRTmxDpWeH;(i8dT~;MCFfn7%44$P~!20+&jE5)v^EY@YBEaKWNF}Fh%QhIdE7&WyFU5gdi&MpH?DyO3S^(wq{4qDx!8(*fjQHr$^9YYJ0 z-O}Uh(wL3F>4ahuWb{~BrQ%_EA8^oU2a$PXVboSE%Vc4r+Ez|CXW0=3M}HKs5)w-T z8v2QA)S%a=L3!*UVv$iNLwYYO0tG0wmPFD2uz1RNp{dsV>)%j@u@c8>Ls%ZC zAl(Mxc0>JTaK*R!-1g@|4gNh%%&cyE`GBP@Z~m60{J(PLz1CI7qb*R#?366jxWu^N zG9uZ62ugG2sl>6}FDuB@tO~!-Z27Emgz}l}sGy8QwMo2)qAsP9ED{MTwiE+iS-_l- zjf5N!eKjM1&yvNK(Z+b}gS|EGO^PcCvpYlL->7Uf46^zCnwE9$S?6rqR&H&3H@6h{ zHOW8CZX_H4S!l@ksi^51`--h|7yw{dZ-T)L`Rhlnu0@vO!EL3{<|)-#(coqo3{|r0ZGU zT#03!UY+(?$NlQpSm=*N01a@|gaMoIhjF_s` zVw6lKhYWLF1HF zNpqE?(`$pEglf<8sgU)H6&M(wz!b;xVt1z~_8;l@Mh7_FxBym#&nO@KO?cvoKVYk< zFDHQW?{MM5({S|IT{7st`WX9c{Ek_E>2H?R#GiXp|GWY+%924U69N{zN(;D_kmo)l z@AZg*hbl9QjzdLbA!zn|n!y}JA412rhV7zvO zvTS^YcA6b#EmvBC4IHfxHmoJGSDJxUi5(q}_!<#A5F0skeS!QZA?<(I2O$r3F!C}1 zOM8gw?nc>7i+t8-yH(YCs!~p}(bQH*J#q`9AWp_bQ2+DTv7;~=jd`FO>YgWF7?^>8 z^o~@>?j#d(G!V{W;U8WK5z{F%wB3CA34&e^BqV+E3dhrmWPz-%yFgUeU0dO(;% zlCdZ^jt$UPff=P@nm-kCsjQ|U38h#l*XPCV2C_mo#-|j!knm?gVDtbA4?g@`@aUr- zXBMmd@sVJSP>g(MCm z1bjj3(o(+&7kw^81^_6d@1SdCUx7(yS4YeWZZH79I?{Gh-c$|ZMN22mr<&z08+%=JT$O>^V%JKKvcZ<5%+rW^k&HYv99=+|uytTj$#H5rWe5OkWT*~_ z=!1(^mS)t?v-17XOr0P~+*oI0an%;I;IR`KHIefe8lI%F9N#L%>w3;IWO{DN z|E7`E-za!SM^Bto6uQEf48xsZ11zu=$@>I{UN!8~tDhB`*W8)Gv-$ z^b69tEb{5VI8$FLE)Wvxq3U|Nqt21IXK5lPu$u(3V7Gm?l5nQza$10R7C(`6rHZ{! zT9_QW5`YL!liZ$=dtB_vRnP?VNSbL%*}2ur3y~RI18^Fw!uBE-Wq{hYUQsBeL7-^N zqN;|zEWHmEsd`J1JTA9Jz+R-!B1uC=4;qVb5UsbOxD!g`q+W#N9t2AQxe!2@_?Y++ zCFto5`Y;>~2o#wWno{X3^uowV!AQUSDY)hIy|MqyS5 z?}%g=#k|>B+sML{zd#dMkZE!SCyt)i8tIVUrE7RKHhYzBX>D-M!D{-BlAH8blAiQh zLQ7Gxd9Y$HPbd1ZwbG90(y8QN-%8a=JseGIXnA6a`*a*l5VsH)GirQ(5ob;v)XFH% znTG#n=z~c)FtJePXb!yayEUjq6yz9iZ&b0Tqm==2TKKB%vRu6D`tGIQm@TG{W9jng zr=EbzmoE7%bwo0Tyr7yF_`KBQ4ubo4?C5DI3JZC$fIOePb&>D?2gc0(xr3(46#=|f z%yLZQ*><RdxFSwtxPQGG}e6jjXb*X^Df#;6iBDfO(G=IY8$`uRYljPp>25`5QZ)h^r=lS+jzOg9 z5hyDSSFi2C)hkzFJ}anf*Qa1$1nXme+Z4tm?k{D;MqW8c!x=Vm4%w;-BQlj73wN;S z=9;X>UwL<>y1wJ|H7!HR+>PZ&m;cQsLqcTC-5a*-Bgpk@ab1?#)49!`eoV#XU<^NgXJw9_&&E3oIQ)#g!UD z)?0&X9uOY<)MwxiKKUp-@#JN{AWXrQmPj$ZUgAGv4~`z)fqP&13V6+H?}ei~Ls(ny z`@jJKe<4{&O8cymDwJ4b1M?PkS%rc z+kC}ja`Atg&d%Ov?H&aw7^q=Sl9XfO;?5Ng7DhL+I5W|NNG2XA^Totxt0&;}>D%bI z+Bl*j;HN`Xp`jL~>d-*77XSKetJ{~2@tZJb*|?V46O5jDs^z|A^j&F5G*VI3AJ2`AO@I8(z+;a;3gvtX!?nI>ZrNCza&rFF zddO0pvMg55f*c`0VVf^h527j+nmH)-o&K8q`%0yM)G7PClzWzk!p}0~c!}Y4HYks% z#sy*;y}o*U#75^2?!U1KbOocqz^^ryRZ@@^joO7Z}U_JIMUM{u}@E`#cDJ#(#g0``;h&PrcwDbk0BIDSz8znh?BTKq@nP+q2ol zUz$vxc~e#GQRy{H6Ox|8va6`6#Zoy6rB_uE!4f1O)BdU~iz$ppeK>vU6!g-B0*D~T z#yBTZY^}1gjuvh0eY4G9YDXMZ&jC9XvfY~O6$6`wCuPWno7A$Vyp4%NVv*GMHdsDOE`#iV-52kNmT#GI8%fHtsW z8zSj})PojXl9417&9&OB3|EQ<@UY+wt=aOIOu6VG$=rg{j{hK`DANaI?;R|0} zW0N!7qL`1LIs3W4J)K^BOHo_{je_vVe#P^SbXt?xpTm!a!|nu>hK1wNrVKNd8G3t8 z=diIphEu0bV>FAJvI4M)=*DVR=@Eq{Qcnsk1E-+rHI-A<>Sml`E=-*ujArOK6dVn%9GBT^DL)xAWjErxtP=h)=2#Q}%kLpnwYa zm}OZCCr_M#y}f_G`*4CpHWGdmo0L!iy zE?$NI;pcuGKK{|muyYjU`Nkd;QYbJZ6lN=#HB~$(nm8Hc_E~4DhcKI$@Yz4U4#n(2 zs0t0Qd(*uzTwC|g-Ip?QpGRSAK{iJ&_ODiaghr2eIb&{Rp$(A)2My-36X*!?gi`9J z3{0aTckThj_#lAAwQa~gq&ya^<-+-3Lo3iRS*9ooA2hhSWC<{^&YW^|bJ3kblSXJ} zk|f>p3+qLHNj&CHhI2lfxaOa;>-YJrf4u))`@g|;{}g0+`S{D0j_TrOxVLxtRZ11# zy}myBPGe?%Cl&w@g#J|o9w&hTmSZbpQep8Q~)L>TwnL7{~ zs^xRO)y-US9jxT@G*3J&pq@q|9+%@o1{#QGp$DnyvBS{_ZomD0c>M9t!DRnB42J8{ zN6zH25GzqiUb8K}rx-*V@h=n1lsLnny4c_wKxO||mtDS8!SaxxrHt7pp%fMRkF3&T zg&km>eO$TS+uj1=^+4~LRq!UZO%sziXoLQVe#$}*9iN`}Cd71_gv z*P`M8N(aqRMZ)Ahj;gl(9orttUdg7*{2adkSAH?v^UuBNlf}#ajb>UCSmLvL{!17y z=ChN2Ek5Rhi_DlQW$0A;Y+YIsxM8J3GL&$PP;%1b1reg~Kp)*X4(sddB*}-MMm^6Y zZ2&+#{qFlNrpj9PWC6L!1Z_?sf*<;atl}NxPSGfeeq`0d>Y1#)MM{e`Mhx6zE z=X~Zr_vihHIS52NpVR*V5K*kLKi>OKCv>cH|P3zp6v8nE;y z>m*nKQRXPwoE1TJ7t62~mW>Z&@PNun7218_tRza=#S$tnj?_28C|&q1P2PfQ_}$fp z&U^t`5hPGc4i2snK{x*ma06*-w>;{dKwfJ2;J^GZeC&Y>fOD~VvFX?75tU)tha!|g zEd*(2^5VpDpKVl5{fDWLXks_v>@y4a{ongT*xVYy9d~b2{}NzIiz#O=1@|s>+HebN zFIlST^DFbO(99m8rsK!&P`oMIAQH;6oH-@_W~4fZAVFmT9I0?hGM_qs;kK0{tyn9- zfxSS?F3ZvpX{!#Lgr=fc)F1$2-7?iNOAAK9eqT}#OgsKTJN|Rrjf*cjtb{qeG*vW$ zlx3QnanLn|OUfXsF#O__`MIEF%iyJhtOB`<_&jg152-&Tx3^Dnzt$8i>(^4)L9$Sf z`^=4AB?2V|LrFS{i#yM^R<&9Y1$sV<)Ip;cWVRO{UAC$q2LMwtOBd|$R8uFQVUX_J ziUd(Dl~S9wYpc>pcc6>kYPp6|G-c#HVs%Hblz^9+?cp&={O(VjxYuWvIh;NF1=#8P z?=6*#Q8$X$7DG$AMv!AP-{#M)|H6aw)ec%-iakqxSO`9NK4#DO z3!(Bsed=WH&r1KQ9+a=EJwf}i9k|vWeo-_)$<>cy))-y7F!tfvN+@o*2NP05ThA;y z*H*-ID|(fUOz42M$daCBl8oRJpZq+0=r=zHETH3o#0_bIFkz7~Jg%astfm@eHy6RB z#5qhnW|o=0uu$;X&prdkZ+R4s9(xmPZH>XGxs>RH#A8JOBCsl(vjnn;IIC{3zAX(2 z)B~C~Fbh*s7EMUl9(#ERD%uAGL3WJ#l`B)BM5FYZ{zLuPfFrvCj3FcAp3JV(H*!e>)5 z)=)CLl0?3>2(fcnbUfZB;Q~|U)LUl>JF!JmLHP$W$UcvG=%Aj2+Pay4ZlCl^`B>w* zoXTh=Gq_cg)FbR|Vt@;anFATUf{3+rF|NAH9UKo?r9%Zvb%nO6`a%EKpfnYGq^+?P z&N3;$b^LGTg9*G&T+o4~3W-!{{6BBK?bR@u&R}nH9X7UlkYp@@$2J(j^clg)&e*fM4beCPe1i>;*4$sc|lmD#GJaAfljN<3U<_82& zRbyzH&f-S4=0va>7e|f}8n#7)fxk7XT%T#jCQN4J>G8Rc&b`_ zhNSKmz~xx2L-r^oblo`qEE+3dW@A#0V;Xp37lolLGukZS`xw@njrzR=M7r)13mX!H z4P(SX#t2w)SvE3pvy90jNy=qDVp`MuE0=M#t}|;Zny-!+uqAW5NlB(6o#N^A3T%u= zu(`SEBUomu>Xt5#iv3p~H2TH4CnZ-F&!}+LSLej?1iMj}BZCAZfdGD;7*I_P>{?VzSUplV(1QTUw5dEt7M-?3*O z%CdOku5S$Bjynwe(L*04!*QHLwjy=`k;ucNODBz_yF=B zNV%%pUP@r84@qVz+rlqW1@+*pt0PV+kt$J?QA(|hWy8Wnk-pX~SyUzLHW%dFY!zkW zAe8Nz5(usqaBf*~wTLgaU1oC7RvKymylntfkha4`_=zVj!K0tQL<^cBbLvbMz>uL@ z=}(F}t1M)k9r=4GN;b3$RJcav5}6-O^%yQ)*@MTQI19JmwgKZ!6(jeCg`oguqa3Ij zPAU;FRotJt=W6SMo`NL5taOLTqhw_D2|WG(hGyN zB#De{j@dMcOO&Od2Xc9xjl7v)RNm#Eev5zf(;d9LI^K_<(Syib5zj|sJ^&WB>%Y9(EWjaOsgd6+IK_K$-bR^ zk{p-+=NBG*5-wdpQ{R+EVCrEEsCC)}Oo)~sL?4|<$&M_AB%71C$dUne3YE`P_ofCe zUAoGpN+%__6&0j9n^^v%ZDqp^HdG^jRE;c-dqj0I;aUj>mRW;DA(Jx{GnK8323cF{ zoT@qt3Yi~{Ul3ziapuYR#0*;oDF**~UQ|kNDyd(eGG|2@D#^}8>njFLhrLdtXg|Sc z|G_SdjyZ}DNaaF>%u;&W(Q7q?NcbK^8z^C8eGNAKjWmjhohqzP$&i?fhquh{L*Ktx zpMU!MQib}mnnt1K3;+DVWg>+sGm3pqetxj13a&A!lwNs8Ht769qd)imv-hU4mSp#R z*#Deb?(){&W`;8&XE+qeAtf%hNDWPjS}0q)rO3)cN6LpF`CueK5ae^d1xO48F#;P2 zf+$XaAc6xqkz_}u6~$=Z7)@y0r-1nD5QGF`*R9n@Et zR=~SkLe7dvcF?f3v1RSLPH8DBNTDdl5S$BRA|jH})U8tzyWt>FgxO~yRS?Bw{=FtH z`3m4_kmjnJC9KyAc+=xInfr@wC4ttMUd3&=6<+(-8Oywq+ptpx^>7gIKhqq0wRsuN z=P$y(c^oFy#DC68=6O-rAN!6qWF9~!$wV27nV^l&4F<`{bps;mI!{u2V-S-xTeoJ` zgX(d}%FI$@)gR82Wt$Q<4Arqp@5L%p!94{0(Q9b!h|e3Hr^1Z+b*R06{n|b}_2j$Z zk3Rp8q4cqJG9AU0&uw{LKmId^#R@*L$Bd#5dK?nY3^{ILJw*RR6M zB@331SoU-7Gqz<}j{K%pGLS(yc-eeKff!wsvodkheP0BIr)q)Ys`_p{^0J(u&s*$Rf zs-=9K+JWPEu~C2KQT0Q5JWzLHmc|@ zYxRj~-Nla+gw@sh&F!%CO6rXdM@!rGuf*s%8LngCROXd01Ds3|wQuP>7dvnb%% z*segvnyEoK$Q7}lX>@a!){w7y$R&k0lup1We2k5Myak}PXV*d^ci_&+5k^`};9B%| zylrXQK49s7AdXPDN{dvk)0Qc)8B!3GG!yN*LeEY2$c=nm^hA)2gx3Vsc>=~Sl>m1!gZmyzc8GKfV`VWTA zhFmM>@M(1RFDk4 zJ<-h422ENLizpcp+fl;dgC&o^RgEWrj;JCbI*G$JsspmH>JY}$< zogE!Wf&x*Y=+`36GObiwR!yH}_Bw{i_!ewtbCUe?pN|Cd_f(vtkV?>W+QKY206EM8 zQYIvhy?~veLI(>YT|&%Mo6L@s>)Q()rWZJO{Z{Yp*eS9s(!gh$tIL{Ou>y|r=d)B= zkN>>nJoL6_-w$8?`sd*MbO}d?d%luv5?Bs{1fKG6nXW1t$byQdHD{pdWL*;Y$5*1a z{O_OiRqj==yi~!mc$Cnv=EM}`zd$G(L{o+KqYKth5debs$yx>CPxC30&r<@AEBa9O zl}L=vNu0@i{%{Z&^M4QeQaR|aXP1lazW3AKUIlwo@YQ89AHxgsci!YxqAqM`&V<%y zE4rcqgF)3&LDFz*7*8fJnvm4pA`5PTqnSb{nyyztib#MN_THd(_&DIx4Kb0N$OP0U z35Zk0@3=*lbU%}Uw^Kht=P)X$M5QI2Us4-a5V2M=e?|m54h}6ekUU%yh>O8CWO=5+ zQrfl1fl<_Rq@tkPr6#gol(X~SBp#sPpJZPq-$FluG~2U=--FKV#s{;hKktVJ2OKCv zFg1GI7=5-a1H6LN8*0Fe-lb|?Cf#T{<^%sZ4`I{1<~Q+EsLAR~XOR{uV3s=nP64@J z!DX5|L3lkgh6XSfbRLGQ;iBvQfC}@Xn25Pl-oOeh@?VACQy6K(GGdr!)V9b(3XF1J zg(rNle-m!qcm`g2<@5epXoAG{XRZ7V>dZMPgQ<^d4$hNWz2j=MFu0G{KJEf%`ReO( z1j{bk{yYMq((g!qt^R>u$_sy69>tqFp!D1jnVP^V;c*hI-q0*-v&x0+dbhg4jIt1F zi-5Mpghb76>|8^$w@skiU8TVwu=YyJ@X0JZ_Sg{|9=;5#rHek4Hjwhc^nyBIfY%$v zu3)CL5}qsMb4F}ZC1V@7^~5n$Bdftj+fV~3Y!lA|WFVbE$93onfp$P5*ar2OXt7j6 z+c-F%&3rH!!+5;MnY==?q$=#h0fmB%Q^EYsJbGB+yihzn(KTxjwvh z%vB`?|3D?__qIi@&1f5zKs*)#_zAPwcNddE8dFTi*I>Rp2Xa5D>T5u#-8geIDgoG= zQQHhqlgl^4pe2kK2Dl+?C%4c_D_|#lY)4*;y}tq6C4vXrC2p`AGtkr0jk0%PHXB7M zeRWwKaCLe2c+ULdKZ+t$eg`YjZ=gJTk@ZS5KI@WOhVs|_<~f2*UF#;N7DTESnuL?p zLlQGy;jl+)cFpH@H=N7`iF2rmVMqekn~sc&AAjO;*gyC(y!y(Tfd+)g>;|t`AjBYU z3?>>4wUj#>c580n65-vNR;b(E0&d(G!8_metUoWV=leOdQQ8Xl**rILCa* z*w0P-ul^OGV3&)z4@CQd>D9`$LqR4|`%CmY<+3r(Ik=w$n@pZ3b?gTz@i6cyMUjPq zTv-Z-PG*^ff{ajuB}Cq&W#N6PKvE^rv4RkR%xKQYVic@S~;c{h^+~8cBhYZy>rc=7CU0@WoZ}wx>sARa9!nmJfak& z$&J~8-rmu64I_>m0%v@n4+eg=r))TEgI!|gLXCuGcXaeQ3j*7F+ zHIEsvR}tni1BxBr@EnvD=Hhtq;Xq8>o+Uf zFl!SK<;4Fr2RE)zU4kv20 z%gRjzWOF{zVm(-C$4ei+ivsJtS$B@m9@KTXet?gR>i%XL|u zQxK2y8hTm|yb0%0jtXPeQ+H*Dt9~gzZ$BIGP zuFlBs3fjO63b-w7R!hG@JNVFt|2*vNlg8ynH-OxX1_c3~p5%iB5onD&-<| z7NJaR)-BH!%c|BXoQc4u&Sfe-91JpZC>0%OH!ZAJE7pB2{DxK#ncQZQXo{lj7}Hd$ zl%DY$`#P#i++dQ(&j1eafHW=BlqF|3=mirHy^#*Cthy z*RMV1H)YGB1SW!cvY?@Y1k!@l%FKyl2npUhBTgsK|`C zgQ|}h0cfHS)!qf16_OOpi@#U_2NbspsgEX@VihO%iq3VxWvk;pl#*P@$0Rep0J_T+ zqQd&#O2CqKrG9rp;jt!hM|FMkx*`gdzn-^lz1b(IQ@;)uK8YEz7byekP=x&1(n|qY zVg;DpC&pz0Dg0T#)BlcCAr@C*=8^-ENG_oJx)hzjB{K?5~w4dpG_a3l8cqqv=Y2jaci)q27mTZYLu40-iY zUBNq_dk1{uYp=rH*S-ShvsT}gs>3nQu##h>gi3C|stg#%d-dj&imCCL@fyy3VERix z@*en}54_i(uT%fs@Zas8uu4X6ODVEUsQTH7=*pUwT|KK4Pbj#Xy} zK7!a)Svn`uY_xGvpksq;A0U@L2vL$m*RN0xWC*UYyI@3&orJc@;)&*kR4I^{dC^EU zW)<+m*R4YdG6vYJS>}_59ZgEAJj)9Dk`F06iYbOs7ZVd;IL=q5Bbbb9weoUNv^y;X zn|u`ma0oiB2wU->WKON572K{w4f!e*oq`4g4la8j-w!4w*@)m!d zjuka`^>rD7r7@4%N49fotIt_eE&PI?a@I{8LZ%0F3{nXq1wjbe1*tRww&>8G$i$1q z5{?e`Ssb}<8?F}Aq2x`>(HtJxI}&}?@PqGwzxwlk8LFD> z%I5yh);&F<;lY|Mxw5{MQ*YL3v^RX=fH#lFY9>X>Jv7g&Mj905x`FEWmZprluqmMs z)f7g+l0bRa^7XIk8b%|19eN(=ei{o=-WG*NXO)&itzXwjpbfeS5->|H?z)X^v;-`w z8DS~33vukxYDKk%gNCljOr4mc38DcjPA=#-lwK#l15CVlFuTkvB) z`B9k9{|UVC!YRyszFOBlV8R+2H}Qc}bUqpAq1B}5kFs!{|JM@MJ~`O5E&Rxjy%&D| z-}-4dIyC;@cm3;c04|(e_XYjTj@jduTtkmaWA6X5`t**~P<(aggC)Ch&^0qH>vB@- zll&^1^+tXNCMG{(_T2Gt%@;G42po+{aR6cSWW%%HqAs}-G{JI-lO_QVHBHNpQzc5e z!(tL0JW55b&S}-%cAd5aWu9qFW*Mac*l2(cTuI{mvfUPt7{-b#!%;njBpEmqO_Yiz z0E+}*CU#mBe2`4KNyd%VhJ&PbgDzUu(ce~7p|j;&vfSeJ0inf;oNzf_JC)9MF#>1A zs)}x=F&j~Lq+1Iks78cHrgrucx_05u$(*Z562~ZDrh*rh1~Kew#}4lp+>t=#pfD2< zwL1_;Cfpw#Wv*(wed1^?})*}!_UX7no0t;;xzQqN?ob4yKaOjc29@Nz1& zO|xN{eH-SrQs5bl>ZB0WOOb4xtsA9;h^W6NLR`gJ25C7oYWQ8KhO1PLDPdFtZx zJprTffj?iT{&;8p^HCr__wPF4&(uLyK%%+dO_9q|4Jys;PDhf6>=?vjSX{&L{89M8 zEpsceGb;5bXm~PvE{Yb;&%fmZ<`kyYvEKyuRsG7r(ZLY|09UIe;{_-=qiffNb*7xk z2x7|l)oO(%$%`BNgyjg0yNWWGC0Np|>e2dQK*yb`+WYOoPJX0m=Z64FAU48BBg0;D zo)GbC;1-)>xcPYIOpzGhFPZjSZprt{-tT z`WnWzZ4RkHcDN^6!&7g*2|sc3`{B8FzXg8pvtNWi{OpVH>fIU476O5%JtN3)5g4TM z6~Mt!1@HRMo8iZQ;v?{`cfHLAfZM(*Sa3xtC`G(b;%?_i6(Fp26u=tPpDj;|w`Q(LO20G$t-ZxW@* zfhy|IJknp|$!H`J^%&H0f+~}*SXoCHxuwf3L0&qAD!>%k`p^o~s!+R20vQ{B4255x zbt!gQjaDr-0#vdg8!AGRKW?NjG1+8 z8@)fq`aT;4@s!YR9K7(t7vM9W`Ca(>*S`j{+1y{7G9p74%NZ=@cL`t$Pe1b%eE1{p zgFpX0Z-;Bgx1ibFlliwP*c_Ses}|1&or{4`ff?F~$T6ll=yp3l0Qo3s;MTTnB}por zdYiU_P}Ot5CfHWMJ!7JdQNM*+vi?3G2OhCKbIk80a2V+_PsU>nyq5P3*;5E*U8LY| z()}%sVLQa^yhfB+5*~ zL-jxD2H^TnLy$WbDp@EZ1d2=z%QarauV2(oV~T z6jokf08C2gx8Bkzu6bxiPZot=DVb zU`Y%dO)$>R<3)yBou@3 z2jD;v+q6;vZlrQ5bj)b9;pYeyU8y^U`j+ynQ2kf2h%PnOPz!ja)mWj)$08zS3tPj> zuiSzE^ArCR{`d=DgXMxyqBmeXdBO)vA6_>d-y_p;2cz;WuvnbIAAjx?KK}>*2;Tbk z--ciKH-8$w`#o>>$-qgh^w{LuSD6l$u*1l;*LKAylAtZ)K>CkoyvI=PfsPzkmyL2( z%P2~ZT2&ir>0=SWT9bNT@k^!7R~x=3D4`;t&$^jO!eiAK-lM!~|;@v?(Lu9N9ZnZ{tdJxqfq6Iiix142{dVtl^ zZyudg38=2~AwWsX)g@TINu?lSc2i$)4iOLrmX66QIUC6&1nE}cB{iSvbKiKz=MRP~ zot}C220Z=NC%FYjGuYK~&Bt4hYN)H4+mB5*^XFvc&qtH(H)e}`4)^UA4@`kCIA(D{ z$=p-=(k_E9sq$$KxT0#S8Z+rzXp=U%f?=w*SzLfsR9dalTE2!3O^)%(Y3xRS^G-Suc1mR z-U5nLA!a(NK{T)|OP*aaScy4*nP5GJpcwF;$!d<GVYudN;R^HH*G{Uin)>;C~5wUjEtU) zk72&J9ru(F{3uDY>d6WN1by#z2%K5JSg$I}%QUlmM8Ar%x?5G_KeV>`QAD2#qB>2O zki|>&!#p?WQ?xk8w=%q+FBX0?Xkjv{7~Ka-p2k34&WQmb3+^d+?e=Ee0Cqr$zbSvS zBN*ivn6022JO^Ex3FmU=fRO+e_5i;P=Y)C{zx&6_|xi^bf3 zFZkRMkf-KAIbt*{1!Ix0g1RA1hZ8DwsB&790LxPV{ z()?;QV*>i#{ytRXcNi!qDr#YD)($nI9E9qFNr616@d$9Z$Qt1sIK}Tm%*#0t6f$#k zD(=gHvy}D9i0D$xoJ|n{WkNggLCW3n_ryXgsI~trV-A{*QLQTu5MTZ3*WuUy-amrZ z?l%6sJ>k#8h{eI_xQS8I(D|ld*-G#sXi+>MJ?w!J4`MDnj zau)IXU(mtwv z0#mf3>fke_-G8NPR!E~L@VSmG$SnIj`@o*yDC)dWvqBXMQ0#Ms&zQ5e({3n{dzkJxZ~&C z{C7JuFvGxWa>ZGx)M)cPKR@R{SdaE%Pt)j}h$|^-g>_*g(%Qh#%(;QHvlHgak~H9G zM4GY_AB;+I1gQ(2QPPI*XeLKsE^6~K?^ertcBmP%4tAp=$W(d$MtSXzg~8x?+M%K?5m9zh`dTa!@QM)|Cqp#bQgCG5|@AKz!#m3SkqR=w{F#Y?n zr+)}G`d3;$p3r+9N+v4ki8-bnpBqXPot_Iphf7sy6pJA1Du}~d)psq$aFjX_KJhF` znaQ7*PTTVkTl)UJfOqKy7h+|Bfvrm_2=L^`M?)mJv)SIu18@%a-+U#d7S2271 zK1EkgJmG!_L zNVx~C%~Oa7nvq#ks2C(g-rK2V=WAph|V`miB6Jrf@D*k6jnvTQp@MGWjE@DXYtc zuh$7k#h6U^9ivPe&q56tKx5}Fo1Rx^tBuZ`I>{^@BiNK!&koi zO{mA;;VWjtd{r9XH=WTyDV4SGSz8Vi(gqhQ4I|9C%}D^NYy95-@E?2%o_Xst@XqHR z<94q#I#Wz0l!HVnODKcrxqfpJn~w}476|ozEtPB9NphRa=^636BAzQb5*ceH*EaO86j!J`pvl>O<_5|3$ytG#*=G$ zGuVD$%Tz?b3~3=3E7k1k%nscX`a*KsKA6MKCuY@IF02hvKi&2}m$}GL>Hp8`mZa(y zL`U$I-DGl*ssNidc5700FLP+606A%u64I4|YY+ZfPp^HN#ew| zS!%OHfFgPg32?$Qq~J@f$skWhTX)4SB*+w&)oLNsk~MNro=nC%a|D@thNEL@iZl}0 z!K7Prbs6X-(q`;>ZT=qm8l3{WLZGy9pVCH z8ddP}OSj?kpL>CAy}(tX8p+-LRx8U+f~Aw$seDU->@e7-Nm5X7`;(HDW4LqYCHUkg ze;b~9%TL4Jbi^%RGfdoaX}iqEAfX0SjVM-}!}|gi(1)?ZB8gb5U5_?PQ|-?gL6Vbl=5Xd?ljM@(A9$y=^~C?Myb3j!AXx51Fg`lL z(r=D?pYV(N(}?yjqx4yL^DQbt%CV>i`xI6Texc-`wwk$;$uJ2fuWC5=oA%++zTbEY zZRzOT2Z95F-KJLrX{(DzlCZ1B!wc#@6Do+PFKJSxXmWJrMHT3_+3ugEK$!r+hFe;@I^wtIX<32=XeyW@N6(@^+{i!BkmVkvVicj<^HK{lmp(FKP>% zB>O)1hyMazefiuU=S_e9jkH~T1-+rRtD_cd%jcTguTEx_!8bJWmlXijsdGs~G!wHA z|NNi50Ds{lAAtA2?ZHyx`noNvU-O6ZL7!E>iQMEJit9atDpX1=APUR6RxpPsv{W>^ob1E=>^7X8pTmvo zN7DX@)<+1*-)}p^#rSwX=$XjD+S(N|j$tBhV76&MUbF)A06=kW3J^UucSk1ku+83w z%}jd19q{$fJY&{PGdUmR=BKADKXzmPacNsQ0gYf6)NqQZgyVWXrIxE5(vzi%uO@{a z79A+Li@<>^p4lL*Ei=MSZO*9W+c`mebxtT8+;LzLgkZ@e4kM&9+cr{NF^H%daivIs zgHX6GGXqW?i6H8aENnoQVVl*A0Wa3(-Z3Vr_VhI8gF6Ps$`E7AxQuj&pg_f&denxc z3TdJGrY4RZf@B=m%KkoC_~h~HU;l}^yb3PKYytChJk zy1++PaG#D+BEtz>%s+83959(J9#^F(LLF2&lSaPGv|TSrrt`r9{QTZ7DoTZ8;rXVq z`~F%VT?Na_Qdz>ItuWy?I5(N>e{$0t{IgB7{28BF8rqPAz$Zg~-a!2S$I}UP8)+S} zY#E}?wwjt&pmipi;HH4bdJcK(2URaK+t)yN^+;eFXxf=jnARW&YqHM6^r z98OAmEzXCTIlkU0rs+X*Ak*G_K!^;$9utnnGLe4itGc@<_n`2Ved~g%jOesd@CqK0 z1jw;0R-Td%3RLsOoUN{eB2xRL$BNBWG;#uNqZ(C0;>r<3utBOK$D5tB5nHWfgRB{< zn++x!hx%JmtCwb&v^mb_XUq@XtX43cOtih6xnNMT#;DzvgDTBe3)AY14Aaa~*M!Sj z=J9NsP{CQPu8Np2uu2U|i?LJPp8&d|IU&X)>XI0JFpKu*`}}+cCq7}Z=eKgDoLlnp5Axf*+dDl^l4mc;VWPK8l0al;M$Es6P~1}JhbEq?MtzM+o;$= zp`Fi0=Fb>=6CyM~pq|J{R?!M9vZ~aiWEXNRkW^&{TR%?9v_f_2R02f;_{Az(jS6Vp zBq_Xz^)f8R9q_jR4QDLf||K>+L+(QLR9 zVF@rYLZ-?AMOTzmUh1*0E@!u4HebTE;{%1c4`U);pa{3^;%E?ie8ZhVO(QCrEbJ-T z4iLYMAcqef2F(M1iw}I4hpH!|wUW{RjJVaG+=$Ha@&tvmBd`M zyh&HiF&Kp<*fuSk`3-(PJLT&-9*VPwp}In);y9BkOA#6f4jh=t&FSZ}=#!OK;q>&(KYYjmlJ$8Rw4=iG z`neq@6s%P3@){krJXLHx%A7j|`#72XpPkM9_qh+2qr_Rx*H}-~NnR-}{Z=bQBXWHq zX^pp47j3wV3NK)mF!XiWU4KLh$>6{!YFOoAks&p-oL z)<8y6U6I$|MaV+aw!qS&4-J4Yl9oNb#j3 zk!`<0*ivrNdb|g#%>wS6o^S;!TA_{Vae_L4n5yLfHd$Kb218}~J#`>R=ar=Pmdh!W)d9~xqrf`9S;45ul7h?hP~2Ty zsGxArwoOP_6DdzQ;(CVxd2bY8GFiMXYg^~-+@LaJ`CM}=x%G);xAuuj!6;ZcFCu*5 zGP;NWT0(FXwWDY_tyQMQ)J`>J4YSz_?%g?sr=NM#1D6Wsz?(pfjvUOsZzaYSyHvVd z4V$jNO0!!P@gg}!qv+~FL><(bg}=Eai%DHcU(Dvn+HC5P^c0l4tD}XhuS*gvjd}EW zKxI9(dwVy(in#vt*?jeUhfU2hN+w;4>=r4x5TRXKVk_P>Xck2qbF1R&d;3SQnBVc6 z@oRAX`jOv^tvabEzsxPjOq?s_(Dp%ai@$Tw*T~uxdA1{ApDyw+Vd_C}BmB0)=j#oa zm_~StP%U}BcIVD3K>Fm@Z`|}7vdjp1UPu?CX%)pP8yp2ll6q_W|A@XZ^A#nX$AiN| zo*hyfmj0IQtFpPO)7CBpMKSF)@mf}u1Wp33L}GcUM$?c>$>Qp?ehApZ zpSdWsLWHOx8afLcq(NvLG-ljCxCYoPB*-vWDNAk;dLEdlGjn5d|C<~!tMr>}-J#9^ zT#$O*_>=#$j^0EX=c=RPEkWGL`d-G9q{Hbz%`m^nN z_MKo>4CYa}&j@el*%J}7ZN$*U#a@&nb|YCVmvGQdI9Mt+qz9(Spb06An1QD3g&}6w zOwSC&)^VUoyW>xHytIKGpdK`_)oUIi2wpsUbc2LEw_bv+*=-P{51SiP8vJrQJD+n^ zd3g9FyV7@!_)vspIYmk0?kAkoc0V_%jNh5@Ho8*It8Uj)IMau>yQtn01<<$;h@wf}rg;TtZuT zd$JMMnSzpxi(>OZC)VWPwW!)CZD+TYAllwa4@pQ`vU+}uiwJ5G{)0uY&)12|4JTsiK^jq; zaXcpuDIA!!^=|U|Dl$i$h=>n5u6Z(+C`-MRZHMy>_S%wRNzpux=DlTI!u)hW5)Xcf zkJ!=*BFHImTAf;;G2kbX{iSg%?b&1vh8mQNYoMB_$#z}=57r(IKC2+fLl?)w?#wZ> z$%?P!H19AG8W#mdviHcHVv+}S<|O2Vze{v8WSKjX!xR2*xHlbFnMI$@l2!P!-il>i zO|CeWmnK-^z@rjc&wS;KeW`WQB@hsv&z|W!Sl((gXu@b= zV2uh>Afsp3GHYV`Ntl0WP*vi(praid{!*JaY@j>?HS&3+atx-*v`#8+8B?o&y;;KT zJ1=oEcB^`lg$!sQx$%E9s$?VI_^R3RY_NrvXMXB<0$ULy&V(KJv8~@Q%GFhvxg^1|?JnE=xi~jw z{6AYWeSh1QKiRd`RQ1#^aE$66CXMo9mdvglI{OmUA79Ft5uBXPxI#JD8%ui(+t|`e zNLPSduInOZq`6PYmRh$du$qg?yLgwI*V#CI$f^-`x6AI^wlx_K6EUj9(56Uj)RVJQ zt|sYpt(!)q?O24`#@VLKi&~YQQ=tH(LYoC>;4HX0YE)`Xf5FdhDUee8jD*YmwOsm2 zmO2C+)cj*i?NDNW^ojJZP}w5xrflnGOl%|5-$Yu6B0}kTBxX?&!q)%u;NTj}=I3xe zJA=ve0QL_KSS*1y-ZifI^*a=TKLrpu#xjPD00-#U?CwKb#`sb{8X?OX5ztRlj04m`UR)B?Z(i#%Rl#yBC>B zJSgRb1@?9J%?)B}(-q9L6@u%CEy_D(H9EZtGnb{Zw3o|ojk3P!-th}ym;ZxvtGBy$ z{Z4MB_^QyUUZgb&q(Gf%P)o^*t2zNn7>#NCW;oh|wm~>OKWFQwaW!HPgnCBBxk=z_ z#lgQZJ0>w%donY1-gYK|3}Kr^Qsw3KiQEqghz|NM@TY9O?#TKhc*H4XZR8z8-0O_Fzo%sP!)c3Blh;0iC&Cq!?Sf-=2tr|)s&`r~l#czXubN%fm*21DaJD%uIKoKTjOk zgP43I1DST|*1RU0*r3@peAyk*whWv9Wu4XS3e(2akdD-|@lYd_ISxYfte^ ztn=rsYgKDg{YKgTs1zU&&6d@dSw+)BA|aa;J3JC7&7s&MS+T}qY6nq)T&KFRjw?#y zVlv2!+Ndg!PEvQ)bviGVmLwL1N}t*Injtu$x@|2z70^hrpnw6>ORr2gnb7^t<3K z&yq&SUH_Rjs$=^QbMqWkZOjGp@m*x7pp4}psQm1rS7J;gP0#{@ps0j;tX7TW$pwd3 zoeE9#H7qfSya#rfKBo{~?{6%Z_pYMMWeJw%(gjP&`0D!T?BKxtlD{dwYtyWM)>i-} z^DbFSQ~6m6R$#XT;$Oz#1iTsZCS3Xrw{oyrp2EwE85|!R!13Xsn7z79YQY#6^ysSjc9CfqmOfOw-R z;pFthSCy~9!O@f4#9)#;m?$S#Y1PNAZ(j{=+NE5RprV49IC3f^Uuf0WSxGSp4Q`+a z*HHaI=2Vh`9EhehfN5~y z&()IG>4!i1Ed0O^ey=~~6aR6}fdF#QYdk+}mWDg?KJ(xyXPWWmGu^H6Lf=;wwd%KO z|K%`g^z!<#l2BokU+ki)W%7mRl{xeO{Y=+gF-I;<*E0IcU9xXdY^g^_U*6k)?7!XL zfBdsWIT2YkC&sp2C!0~QVdBaKQGNSFHcKcE6^!Zwn2fLczbWDF$+@qTRzA}#l{aTo zHq4~XAeH4Ja$O1iUgr+H`)%z7&OByNrVIp zOVtImYjEpmRoonP?#PmPG+V4Ht^h-I&Q2jjYp8|KNvKx?x%dPod9|J!#_;@-kosD^ zCLOPb@p#IwM>2TLW+Pg^iVG+efJDkUB!uCDRNV!aaA=;L&mjBSKD%fbN})hAPyou7 z3|me4`(b?!-}$yD;pczhFT(M)ih)jbweZPItFuT8g|;85+6rxOQCFgtWd~L1&u2xH zo(|sgo?GzKKl4Ly{Tc<>bAnkZH`KwmE9n1v{z~K`MPME?t1kf+sjQv)l?+V`sIx(e zM&dx?VpSdFD=n>~Z0*O~I>DZ_+O~h}6Tz=WC8?{gOE9y%q+hgT3p>K;Apn6HX`621MnV zMaw1UphujGb4uH9wW8@$01&rbwz4^o%t~Cpaoh9eQ(`;jlc{YFL9=sKgeilLHck*_ z`V8hcUrZ!qWKILOUwai^dF2(@JGcdVdpBT3;`OamQ$iy&GAa*X8z+@~p`XMl zUlNQG_$?|*6XHCn;Q3;vx)Tw~GLIBcPo?x&#}xrGHAqc`ji6mi=5!WPIl83U;+#>b zJBSF~kaVzmj}=ig%sdkrAjYj=5jUs_wd)f!yMM?DfKm4pt}H>?{Gl4(Szcy9qnwg3 zL|B`PKw(ir(Ig+#99*MRmJZikL4NP^@8!1j-}$9az!yGu>JuGbITwe}Ut|*MDlapR2E{ zVEO+^LzXk&(Wb5se`Rm)*3;|F?B8!^%`vHz7)!0SHLG=Sp2=>|DoD*LFTxKLo}E)* z+}KwRg}<5RTsfhu+1QrnTS460h+wl>HHdA?Y?DMiO$iH!G zQgb1C5+KQ<4O)0nX$CMuy_#5^NT8&u-NI|Hy$pBm-h=(aCtxzY<{vA>6~nc#-Zb3O ztb!2(N?>&1oEZs*lzbSf3L~IJGkI-^MZH!d)gK2>rI9p^5XwiRF+Z0nC~YufmI{?C zPX9NXW-YVLqE=)h^tgnqPg@2>o-WR`SxFYlo?1)zT%j7KYL>h$V(C?m0D5lZVz0f*>AFX()7sr+k|}qCz)QrHCuB-$97(Aa}Pf7fp@`^Pd)*^ z_P>4#e&@IT7;fKw1;%?5FmyZwYVybJNEgph_0{k-oi{DK>B$lN@L&8O{P17;KDcqC zhGzY$KOZZ9({w$s&93Iw!ndK!uxFA7QmV0-m)0_W&+peB$ zy5{4{)vFT&t0+hiW?IymLsoK;R!gfef4UKF_)n=E2X9vV}C3^P}L)CYr& z-!xx&`9;4;I=Fe`8L;J)k+5y}b|f#?@NrdPgUS$~j7sG>vTQ_T*lmK~K#)Z$)AO61g!jn(kgxXh`U3V9X(rG6^5XWFJtKw|765aNp?8p?%pp}Bru_c#XHfctk z1;TuO8NpK7{9TfYk{xZ9EAkti`21#1Yl*}cra8QgqWYzpZ%a~z2vNx2pX+-*d3%8z zVy?a}QLuFAF8x80631k6{VNXJzu94Xt!vjmwcfOT_aJ}?4f6%5l*%#&B1a}des zRC&5s3HqC*+UEc;TP$GHo%(>e?>FE=6-?R)>kmMmIO7O1VG&q|ksuv4X7m5{_C?%{ zejVj6L#^C_U1;+m07=c zB0|)}IrI^f5U@cqEVAF!^@AunR$F)2tEhBq$1ZD4Vv?J)R)9o0JMOeAz^zo9R|?iw zpA%7OQS@vOVCOThoI3Frm0%ep^kPB-Dwh~loLu&p&MK{#N{0=VIu%tt_Cd+7oAubQ zOM73wtl5%y+nsZn9ka{6T{i{ETDt_BNar`b&?2_?Gl$!+p0cLw{=q&x_0;1WAousk;>stEn^!sb(ft&{{Wh7ysB~!_NKRfzbwkXVNG##@1*|0W^>oH-JCg?wnUy)BvlSE zcx`>PDI2X}(mSdLCD{*E#St_sA263QSo09K_lkNl*AZ@*cJS@4mmp zggo9bz(|r3ftCdb3|*uRsUP`&J@Lc@o_f=PKbXhWxkp?$XhF0-u+rK`T!TnLhEJ&6 zRU5RZDF|m9wn)Gkrh~95 zPe37Ap(2s2T~$>4-h}R@_b$|1v-AP;{Coxn`%@T?tyXoWXE6RSu^`L?bFG`m$J}Z_ z(D71G^N9{l{exp}y~>+$YltSTe~LbaE6S^cKy#_cC=cD z{;Utme3=)9!G9=DFo6q>zNb#%7yiE;D-ubn^p=-F|ZiI_M2sW-$nVb8y zYU(dosPw#EeO;np`9}JprCqsEb?pyxTXhf%8+b?`*zmc<1E!jxvkKG+l*;1~^yg$j|&iJ<4R zlwIc-P(yZJj@?VjI0vR{%T<9^i`J+WRoC{;PH@*?@cz#!Itj`4`pfqa5N0hQXsh^#@p!UmR0I*%g_FxacMb~&3~REnAV)>B!Jf)j(a z683$SiHAhG0SbeLl;MqtqDPLfR+++`O;o5{{YE&cx_*c12Sdu|MUP+9irpDx;R3GA z!`u_wO3n1OUaw)jT>1NbEL{kvAIu>KNXJr(bpml=FkleZ9HIXbN_({NukoAWds$pX zm`l}$eS;jR>T1ZXQP|d18>C*Wx!2nK8OyO6y>~p>`i_gv9r(Me5A7>|g=8u4hDh_UD#)b$KDI=RxzH z9h;NswRAzG{(3-LC7cJnRzd{(Qji=%R_i&;ef5k!Yo1K6`-*$QXjg7;qPAE;(6KIZ z7HterMuR0)Xf)p?PAeeBRUU%a4vxpjXh{9sTIG=+Ck5N- zWRC+V1!$UMjz&|Tbe#If{m+vk&WHOs(fx+h4>_*ReaVfQ27ptO?Tv2g^t~soVh#Az zYNW$#6{rL%7GbnQLiSZgJwkge{$1@;ge^e#edm<<-^AvJ>N*EE9+QnJ0Qy=7I|64o zu9QH?T|k^yG8U(fNi`Zp=|mEEk_1TZb5@W-F`_nljq|Ccc(9KDFJsMT94_A=O}jTx zuq@s%LulEk>2RB7{^7QpeW)tXOvYpXt3#NtC>SpMCO+o29#35g5#L@c&Kb$cGt5qu zTO@N#iaE^5EP`~F%&S)G)>oS6yh)D7HE*VREBFjsP*Kob zKZotZaS+WQGtctsFi6D|l>2_1hQ%A^i#g2ZD;66d3$vn_`u7?6KdU%cv`$;K>i!Ud zaV$)XAZt9PIKK>SHND17<5ayTlbs9aPIY7RS)&bVMwCDiH<4Svmgjw- za((nEOaIuySLBOT1>?!STr0DSxNja%HsQ`ft9RLZzN-N=6*8z!=u>=h!kj=|I8emK z(WI7Tys-J_G6M$F!&HVB%qGJ)bJqdw^z9so1nfjR!9eLMa}6SK`xTk18h?Fkt^8Tc zXiKUQ>{Qp6_XeSp7&QU_LeN{fzw2M_I&#jvnpa-BVEIP6qyh$6y=S$#_aAMVyYB?E zVp4Tc`OF?k^Yy?7%eC4;Ii53#+KK>3cs7=Cw^+nmQL>-{;8GdTe6QwByxBN7Kc|Yd z@Eh~kf71-BU=(hsj;zT7Ow6)FwPG(wzXL_Z#6-YkWb=HNNESjeJwy${HV~+3!#6gY zXc|8D#d77pmmCZU;aZhb|Jlb}X;LL3?N-C~XS|_yfs+{o%8NKpgFpuffl>oI$q5$B zVJ)?-*{0*RCeGlJn0RPk+sKXVYc3!wut*ENiu2jnIt&}8!vBp5uczP$EKXt6o+$)s zsw`;s$dm!DhP!M|=XxUg!OzmEKs*K0jzt+ZtY^#B7=dHx+E*i0H?m>_r`3K!jRtP3 z*%4@x3G*)GWsV*On;}XgVZ+FXK(&nnNJYRt3F5`EpWn*{Qe#hFwHG5VqV?_!j9EK3 zi*xRR5rgUfY36kq=vFQ}Cm>q1eF5F5%9PfNh52j_OP|;l^}dgJBfcj>$0OWdLSa%Z z<0w!u{IaiDQ~Ym;R}y!ZvkhCkQRJ8ibkQ7~&tLv)&E~a_*Z^+pSDTxSo?J zeQs52_w$3>5yf1n=uI+SHp6Pp1e0ypVts6Vw1?Fq9tuqDXvHQ|^b0C%%*xT;IoQ#{ zj_rO~W7PdQU-)b6?}>_4d&C@E=v;E0X_g$QV4VDbR+zLNbdF8WE6UL?`+MP~q=S3) zb;)Ly?u`*D{lea~iyv#-)1LvD)rLS0KC3RQsyh0Ne=?aex^KhA#02nZGdVHCZP|(x zU5MP?bi5H-JB<}hFzbzia*-k-8!B(u{%@(JN%JqRGHYtjSw+nHn@_6>-pB_)pqNSL zg6%u{RMIjV!h;~2uBhK0TTDsol;)0&|6Z+0(3}DVRgwE_*35xYXI-reyijc)+ahw$ zK;#CXw1rYWY^*X_VvHy?)~LC#Y*rL#t3dUjAk+wW26JnvxbbN_)@0s+QHWm1;q+jk z=+)j4ThR)QZCd>eOWxHL1C*$m2p*h?!x;cSf|?DQwW4=`kr5wNe;|l8=vzu-f?RTTED(fK_{3 zdL1#j#z^aNsw```A`hMm^jPVta{t$;`+`^e%F7unMXu?M5G--rxy8rPte!GXISx3|vMQGg!aH9|uW$UX%zp*zYHeG1VXRXodA;Aj=%B=$#Q)T zckkYT8`qCB#HCY&X_7)WueW09&8lICg&Xc3A({c5*IZDs4y(e~g-*p3D{+U=0&Z8u zyHy?o#@i&5p9`GRgWv}R%GJ8zsTlaztXD1SaQ3&3sK!3;XE9AT~ z@%PpAcgk}7+X#47R9@PdrF&y!K^-ptO4FYG0P)PoC4n~f0K$lxsOph88c&oLXnAf? zwq;b75w{X)r7=pja}jwdqSUfMvdJ)(F^gsDMYrMGjROjZ*J0y>E=g=rOStwyb~2eT z)qqI()VeE4PqavSsIrlCv9)S?@cmR0u&yd^`i3his%VK5$&!9<&4Hdji_$67*_{Js zpnnLm)kuq3WxZ&|$g$8VsxojQgD<6jJ*pHXp^({)2?14sJ`!Ywg0Ufo2LpWUoKR>$ zN;An+8AJ?mXwAhSl~)ovV`T1Q7XxNc_YpOpQq_Gro*$Qm=)6+m(6t*@sNvaXv*FjE zB!>RWJV_43GSlUDD+}!l#U+|{E2;ExDdAk;@z`tMBj)i)KU3eXDz#gOje6V>1o7eyFZP3_f$ab|q*nH-P`H>Ga-W{^ z1B&ZhSR!v{tHql??|1LrgVhSioyf1jniZ%p%=EQmU<*xNU2YW?(71A*Y*9mL_x`K4 zC8K9|6;&>68`fO*G>DxcZf@2mANRrX27!8vO+bKjbID@_?x8svdo5OLDazD;(Xj=T zW7iCB4iz?T+Ci(7f@d%lE{p`tjw?N?)(UGHziNKnh66qFWAynb zzy%H^A*Sgy7K@ob#~T)HCmIr`F~rGpPE~PqRvsuJDkhGidnXBmUmUG}^U358mh(Gs z_s(nZ*kiXyj9au^O>zvEb+)4wJB&2LHejes&32%K97UQ3SA$y;!b26>;Y@Q_^<5+* zp3^OcL2kFiF>cK?&29tGZ9yx@#5W?vr(nv^dPVDz+-V53R>8UzSwj=nr_Q5kT~mT2 z(ur!-Wm2VI*wG(U)%aJVxW(1iC9Nzkxi+jgMXbNK>1OXGGB#z2VGhB81;S>LHYKBh zux1q=nageb<~g5lgklipQmEv0L9y#CrHCfb=De7n!E!lg8!F;Da;4NspcbONh{1CmVM5j8gOA@7 z*xQlbi+~BXh#(&}IQD;AsJSr%bO;fOW!(N)u-ulB3kfPN?sPM=3TnXsxA(6@d4=Q_ zA{9vIBzS#N5F#Ec^VdQkGa7XL`$#T;kv@_+f^iZQg6F5FPRN=X97-8<;>fF_;HkmI;9QJNUGt9Jh zchz+GkagbusJ=tdjr)yV`@b-QX6)|Q?bWK-b7GgdxRDXTY`$dS0g@h+S*4MY3!R># zh_n5m@yqu_JfAjES18yP)4y3&c6BwYyyU^M9@m#PNH%QG)YO}1_Ja;rZ(`(WWLMFA z$^}O{7}6|)P?8@vQCz^U9Ip5t&`*;3>XRV%atan=Fl9-C_l@KskLiN{*AR!oJ9Xh^MrKKeO2 zo|TKgW6OXhLo_1Q5-!RS)UXft?wxRuJw7_p&A!Wur`(U!Y=cSe6VdRZQgINthFTZf zgeAC;*EtM<`IL2AR%$!imR_n9xQ+LSN_4JJTMBB&p-b?@YItx z-rKt6$NctJv#ghTN=k<96u{y{8z%87w5l-54;;a@;yQ1F_wFJrNz$%WU<_3bQPkTg zpvUs|M)5%^ww9mMc7m)Vw+otcPzBaeHKf%@r&I*GS=XyMSHV?XF;bN%58S!*6<1mB zvx3fex*w6OR5gQbSgxyJgJY=@xy5Lc@h-LETrx(|AR&SP3~jI`s?%UlNl^e#6rVPj zJ#KmaYZR11$p8gQt0L&Ajw{siWlziXQWbeB0S%c1kfC$M@2v?#0MpR94*IU3mAcF} zG3vjvY#l;G+A_ydxsnkmWNn;P2B(o6$znnk>CfMIGL`dc(v}~w#au;O@pa5vfZTqK zfFzN~lPknf#gV@#5+|uZWV11Uou-Sq48G25_PCQXmYS)dFamqGly;P#n;<7>yf zv7OIOV6j-ha=zg9Dgs8X8^0QD&`y9Qk@|r|4?#x8vMY%SHPeRC5>=p4?N}zTuUV^7 zL_@?eqaKYEF)Gcux*F>zSAx9{4&nW1kSP<07rwcEo8f;Hf>oXzsdj>3gLkr zIaIb#(5sSkp)vZ|KrOpv{Y2z!r}Jjoj16%6w{;s9-XB*ZzDDB-aW5U*JH6+hcU`RC zoT7w-xIzQ~;lNZG`|37%l*9q72D9qVn2a`p13NScRW>77Mh$>1u_?3Do6^8Q^A>yE z)z|fvKE@EvV<7kKF=}8SiGcujPEJnz{X2)l!#BZbd?0d-JXz(|eAtzJ{ZYY^06 zT%;GRP@pJc+VTHwO#Kh3>vQ$>1_+k>ADdjd_Ui}S`-ubrv&EgK&u1_HkgqfMoEqOo zGiJTndCoY{cm##E$Q_;Pu+fNgVh{aIR>5+yg!9oEoS&a^V53c)o>p2LMbSZ})#!b? zMtF<@YVnm=>hS2ah6*V*r}Wr(K!5NmU|@pH?bC;%QcbQZ1M$ zt*S57CPJCDg#gB!$G|Y*ip4TzCaBrC0FOtb?PjLbvktB}fe2tnc$bM*6OC^bSR-Jk zP7{Ve5pa+!Dx^9jicX@5n7AoLnLBi`y(@D>h!haZ?N@0T%O)z+kMOtjKhk{_(2ike ziBK(~K2KV-LXRN;7ukx5aC@m6rFv|-RM}(ZOd?f0a7$H0*$soSxJB=@dZqUPQFIcH z?k1`km0SS}K#Bw(B-#_=mgblD{A=EZTQ?u0#82C~UDlROKA9JeGjmx)Ou9R;1?n-` z^K~#Wtd_!iA#4ZSsK~Qz$z||9;ssmsjTg*fFPMYws)U2yF?UUjbZv;rb#ivXPA}u} zHJ@1S2|}H_LV|cD&`;<>gzFnRD0H1!xr&lrk}Y&)+quzy+~T^u@~wP>1k2~A-+$>2 z>K9-6&*5KL{3x`e;sXxX@AKc{s=%79oo+bNdX;S|Ra`2a9V@6PZN*iR%$=ykR~}X@ zVlds?gW2qyN$qRh_(A33+Kux;^&HO6&KRl6v3ODWeJn1 ze_a+xa7+_nL@A3}`=BmLQr?EjU%#3G>TrV^h6Y zsaP^6`@l)m%9Am^CRgvlm~e!E;?y)3)U%PkDPXbXQ`_lm(Q-fwo{`cXHnEcCgu`T; zx5~d^cyFVbKLy0qI=aOGZ$Oa0P+$ucV+g9w+Fqy9={(k|XD0J9TWRSwO`~nul4n=! zG=pMf%~ozf@h7%69nX&$D8%pQs}^ke^(Yt@SZYP3=O4vn7}V;EbcciX6Uz%$4V<07 z=HKho2h1BR?k;Di)BK??0DyxbV^0Zh(7g@92`2vIesCM3*B<(_{mf2mdmx!l4|lXo zgYGIq-wZl*JuuN`Y+i+`s6>y-qWoi{j~k=>*%&A*Hg&#p_m2O$_V?|vKjkH?8%dJ* zzVeBwYeJ_)l1RBf1VtQB-E_UI89`A^{*F(`|M8Uu>>DUpUdDr3PyA-qPWNWb?dKgX zZc(tLc^(HB&i30R6(>W+)T|1k%)BY;z@LP+v&t#lxwN_O@9zVNv6IXCY&L_%V$QZp zL?Jjozvlzx2?vA`NyqsBczAHciZRh-*x!g1g9tjMfEd1UiR(v|)RF?QMVTp5Yp|4{ z$j%-vh#}~_%?6Qn!!t03n>g7Fg6MY=F)6YtEhGgd-<7y!%+*W?VAd#aQ>r|~yle

    -@T27Q{i=R!z2#D4Zv^;I( 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 H^8Eh*)HXtm literal 0 HcmV?d00001 diff --git a/shirts4mike/img/shirts/shirt-101.jpg b/shirts4mike/img/shirts/shirt-101.jpg new file mode 100755 index 0000000000000000000000000000000000000000..3f43ea23e024f15d74b35152b77fd1c7e73438ac GIT binary patch literal 134917 zcmbTdcUV(Tls_DbB8nga(z}4v5JGPe5D;lX=v8`=4$>hCBAw8CQ>1rLiXb2@bWlJ_ z=%GnZ5J)73m+!vY{@C4T_czbI^V~Z#=S;ch%$)hmxmWX7>i`DTKo>^YSjWIF_@$kUJr_ig zLq1S8(A~@3!Ow;x(A~|$S2j?A>tC45UO)en4CLbYmm+>I6}XiCsg=V-`#Fb-r;h`N zga}yJP80;$)}{dq-LQCu;v% z*Y%qM*S~fuARs^_04(C^;{*iB$jJP|LrhHgx`eQAkcXd5psT;~^ZA!D|Mc(QsI;~JX9{=se=qIp zr|<9|jsGwC`x*p!IRNz?d_7?sel`JZ#*ac-p;kckuAjc%s1d>XnPVtdfefnu>(Dn$#1qCr?yCASF>X)hDWI zGRh!H6)|xs(SKv`p9!z)60yIgm68#c788{KtBT8rgFvd+v`Wg#($XqYqEag2U{U3N zqt)>6^|SG?bNHvye`sC)gI4T+q?J|iaj^08^fB=Cbo)1HdhYD$=jrS0>BXS}mE?G& zZDZ%+@lOK(KOg&=`*mlZIQY2uJJ_rFc)D}^%ec$B{1+`yQf)oc$-c`?sWPVgBdw-?ixa<=^$t!Q=X~ z`CMz+)e(U5Uvvjx-*c_aL{~__TL97jJ`n#$Ao=(3ujIr;MAy03_rGWSZy&CD0MxgL zpAtVMA)*ElQxlO;6J7NKMy{uvYlb95ME^b=-MC3gMoe<+_8lVf>(qbp{yhr-AiYU) zgNT^y);$0TfQW>I^!mPzh={0(h)GBR)b}}QZh*LMlF=%0-_jE!x1qc3tqgwn;7yAD zd-_IO6>%OriEqtM{CN2osEGjABqU^HH*b@XkrIg9&gefXi`D=zT>ZCBF#@QJ}jWSS&Ot&fNPY7szj-BMy| z5^4YhaDkl?zf1D?{}7Sg*7wf)IivCH=}f8fNLnt3(8N){09VCQsy~T3hz9)DJtwey z>k3e?+S^UCQ;qfn;_C>CFYu|1bp73tU>wE@>*`GR zc^P%~NfEYoxQ!8vo7N26`qX4SNF_D$T7;-=%!ffJ)@V`Q5p!zY7l(>xkp*od{N?x@ z9~l&~o>&Wv2ZiwquUaUn$9jl3jM~{kFnI8Z%?cLNM zaBO{VXvo|I&Mm)#TB11Bc08Nur}Ld#7pF#I-xC*GPJJewMwkou9?!n2&S$&>6}Njk zC-C>rN_1&}Qop~Bn>y#mY@nVOGX0oWjMZte4tYt{^>Kl?A)4?20} zG>5{PG4*uGfZm#IHmf^>;wKv>32|Frs%t%^DwfA4s1FvCw6SNWXC5KO(Rk+a-OTNd zqOQqV8X8}BdFeq0^Iq?gUr*4dS{}hup)@17RrudXbPb$()3*ULJ+Y=#E88t+7Z+7! zAnkF?D0ugLHN0crs!f-7wXb;#_>29`W%>4exG@QYeoF@HRu@SFMmTP6*keCa9LuQ# z@29xA5_e=mSD1s3>sY!Qt^n$=0#D4H-x;CSi6`B!;0=mA>rVW3p~i>Zcix<80Xbu2*zTTEVw1?i(X21sy}9aL5eiRFXwaRZo4FDAa{^UwR>#TCxj9S;}D>>R2AM8 z^ufE(+UZu#A3dNSY|RO0P7u2SNOwtWgu>!+*3o}Xj~OCsCQ{XhGJHaWsX0VkO5||Iz3&3 zVcM?%Ojm$MkBa!Pa~Q!j+5m+9ithd-^$utw%R^xliCPtyaJYZwRk33;9rm=`bX51N zwzq=bzKh4-#r^b&2X$Lj<-ZKs8-XI7Wcce*=`SjL{TY%reFE&6LWRcfA2;B`pBj4b zy($`PDtmgiizsUvtW7OA)AH9Xp=B-#An=qdfA;9APAAO#NT0j{Bs*bKd*Wtbf_R+} zX`u%6>WxcoK90mz=Fuxa?0fwyz`#%NFCseUj`Ml$_XGo_;f#B0b*9|LaT=&ANwj^&u0S!n)TBD zd-cc@hARLFW6aX>&^rh9mwaBm-W+~#IH3UEJ8PA(?zodCz2oaQAU~rA-m0=YbHKkK zXkGz^N$~k$hq0UTQs25%Pdrh^gJ7#YnqOA{cz%64i!42LeCYo6gHuJ#2N85E$59kU z%R!GUA9qx4A05QCx!?;5EeVFLx+lQsCI&;p%5Hxdk4f6_1RM1*F#-jCZmV1D^3Em! zx(&0zXKg_gaIN{ZV)*hgMZ0Z$)^NDy7Fdk-QJrVjsVSo=E`c~HANv;I24H@3_RGvz;Y}5pTyl*crBCKMoAvp}m!cBp!k@Uw!k~4m zD-gU7t!I($kiNJxHhl;a<x!=A)QSWLpvwL*=i+3sCqZp*x5X_0f@3>vL<)8|A1ijn@*;b|xBz zgM!JU?h_RL&lN!83Xmwcj;9}y|3=XG>zQPeP(*fVEVhpsgD_OoPNJ+G9(wMS{fH&z z&o6vNBv-5ixbY?|saqZ+z?XuCf99g^nH1u8vY={^S9S=sz$sJ$(!hQfcl@nu;N%2H z)uU*KhUEncRgSa~>^8zf2Jn%CKmB!l?8nijrY1YNuheA z$#2~^j%;_`k?;Z$FR^UW=)w-%lk*mVTY<_6Zy(oRof7V}c3 zn-?>V-z0ywM0U;$9_18#X9a_(3?MrQdSfOlgnnVVVNcrCA!Ns+H0dx2ui*@Xf`<+80zbnNA46r}fq zfA}l!)+YFmf=PYgS6J4nPuTjYI&KwXchH?1R&eS#?m0M#gXa%n64&HI=IzNhY;=ka z+1Yztms%k3UPPSNa?I_#yF8;=BC`k|$Eq(@Md`y^Vv=^iv{uz>(6H7Mb!)BDvBN@R zxT4CIscum|(9m=6R8f~}SmGnYj>D{rzd?oCvyZ06cEcu=E{*Pf8sU!k#=O4JYBq+3 zA-8UFv+q?)iH%Mv%s~`}ws^A~X;*ykk#f1dfXbR>HoBkVPF5V3P_^S?4|+W_19tZGh?J} z_ncA>R;#i(po!6m__a7P>!k8N9`9iT|wMR*PX!pZI zv!pY_dpbvt`APay1M^BU|K+dZ_Z#|8O-Iz&=$hzonIB7^zR|Ts2Y(SN6&_OKxB>)N z6&~Kmy0gD3oXm=!??da^hts&`*L*Q96(m<9@@hQf2pjv&z1-51Na~b1hP56*kHxLy z@IUic$kR86OjYkqL^zL{KPndisRMiz)Yi!2yQyWYj5i^or|pdbVq))6jX?l<56=|S zSk~R9WJA(aO4PKwuiX2eIXP9{u`#i|Qtk^h3BK+*i5>pFFBVSIh~=IoUwoerpl;Ra zUK|NYAcjAeB0a2Q&C^_GfE=01cvwk|oe;zptYkZT0wse~CjpFKXj_N{XdUEA?seBi z+Nh&)ILe&j5e@@-t3znJR@uOs+RPkiU!lPj*%L7oEJ4vS z*GB({qH;=Fh!t){Y|sjNGk?-OlJ@|4M0_@7N%(ZxcW?!$?3^K}{%&1dmH$(|X)-Pt zA4;;-^>U+2sWR!_{C40fdm4OsIQtbPoQt>!I>R;4_T}SsI6nCbkkPFby{^1%4-4)eH-4AxLb6i_M!l1WEFQo<9t&AK2~t?Kl2t zS@w9^{AF;R{$>bNd{Qg8G3Y3uN0Dp9@Uq&^x`g$&A)86{yO2g0H2mu&bRW{v`LIj# zEMOi&aY@x%z3UXB2mIWZJ7=v2k+)}2{2 zTy&~SP=F;A@`(|k$Lx2`Cr3EimDx%Dh|I$rLz5PyKbcH3gSmUR+2Mi4W^J2bu#FD$ zmlA=r3aQURrP&v4RomsBSpgZY)1fpQchxF#nk9ws`(2Z-6!C;4R?)K^tq{ajtQ6(F$D z4mPxuGahR(7Eb&8KrD0jv!e`uOqpCsR_TYGt_rWlP$7okD zc7vll9GqSHhE$3zcQ?6VEmV*l(Z@XcdHU~!>Gv^w{(QKR$Q_BHA;ZW#Nh?z)$L+1` z%=v?_;!M-q-#>O~Y@=3=5F-@2phUCbAV*097`tS@u7kc9X!5Y`o3YKWmWYmxQ@g}8 z!PLxD{m=~#fvlJCE?#D*!?li!ib4_QG$fN79&jdGr!pS&_eZWrUf|J<%`u&h@a6A$ z?$;B2qxw9IZa6z@R1uW(dP%9EDb%No&avlq+y`9&y8Fn~6zzA*N~=mtIo$>;BVL_} z-b^J0)$APDQ;NTf6tIC>OLtjDvy1_oOUeW`GcmN#I16x6qKRH<*YgvY=Fv5fJ5%tVdIfJJ2s0{&bAKE6D4xiK z!|}OOnhDwV>dg0-2W^Hbo#qoKE|dLO4KL}p783SRcuEnL+=Cn7p?;n3avw9@aP7W& zLj}EWhWLNWISVXgUjg_r`wpk!0sOt0kjQA>IJ-C>o~^vppS}{St^z0iOW`F-MtC6@ zyB7Sfu|*_B+DnIp+6?8mvF@~&^fq5)HsX+X|B5pmueX^#KRGD@KgCgWP73TlexQO8 zdz9=xc_cEOnlfiAiBxLbA)~d(l6#v!-=?F`d$Wh=$jVfB=Fi!$;tIae&gj9;xlKEb z)ltl_ z;_hGeWw$ymHoLk|Qgn56>(r=h&@oQLwBYwFHAo??@xTx-e+5X3#(1v%L_^pJ8hCRQ zWQZzZ+%7(C`#ptqUDs5?Wn8&P(268IHfyL-=H^YKZ~e{F9!C4MrHR%c&s!Z)eiyp1 zI$BHU(XsmYfUy{jl^Omh=DY&2J28)6{J@=asE60S0tjBCBCu@=QBlS2OY1?r@lKA( zkI!Armpo_!JLZ>u%$VJ4a1+%#9Ff)CE5H%HGmFG_@9mq~@kA9tn7v`2wfF)4{;9V4 zx5e!=u%Un1xfO(MMMB-pWnW-3?OAIj*z{lRxU8P{NDgW|1Fq& zjSsdG4*tM*sovrsjfDM6<_(BRD0|;{k=$kx=+q>f86aw<86S@mH^;GadTQ9&@%RX= z%&76X+qL^I=LQ~KTlPP)Qiq%*n7?NYA?pr*ZI*%h%AEYvwZ>F_%HcGwfd+W3B4kT` zwZA)>T^(oL3XD6BMTO5?NO=&md+514=zfN_*r~sxqWSz zX&GNMQ0IDgjR!vaK{ynd)3TgBKC#1Qp5!Eb*J3F!bmxsZhPTwX zY%jB}w0>~0V*Md*g5Y%I?*O&5pH~-66ny`#Lp?=!RU{VIk3FDbBnb_Fh=TKMQcwrB z*NIch`?K*rC4DE{R&_T9Sym$DTmli!($3=s8C26rPxYf!TK`tESt&4!o-f4O&R7Y+ z+6rPQhw-k;A~=I%T{ftz9fG|Xo_sHPy7sxzxz!6cx9fe@3{7!N_qFweiaSJg+CoXt zKX);_pJSS7H1x`%^LYc4{V5N~_QdJp|3)&dG)y3xC+fd6fb&pa%lo*$&@AxOJciT_ z`0x7BS<7s8!t&83D|Y0UwQJ*0-e%H9G*FKv36&`ijCLq^{haDr^t697VGk2iXP%pq zQ#?v+e}T9VG_dRl{kBAO1+cs^v7*Q>fR;9Sj#z~-Y_e0Oy^Nja4FX82#}+RE2}jFA zAbCDRjstcj9W24$GY&)B8@_30Xkb7-(KM`VKRVoUQO+hL8wL4QykteQi5_;ru5xm< zAQt38-)N=pRX*W(lRPjl)lqf@_*L9=1^67QIXeDxA3mJ&?s1Kslkm6{_%8U1M}Z^< zkfvcu1xNKZP)KL19EHa4EiOXcSPZ$HHVPsPQ|t9t2pvi0iRT<-5Y}~hie!59{01gF z5iKkqRR3y4P3##tkp8wL(u=IVc*?S|vD5MXMB9oSAmdrt0EkukQ&wAX!YgPHh{Xc* zyrgpK)y!INLC9#Ee#-f*LDb(JpSNC=C^%8KPWgMJQWB1Vu5566?V*ttt(uFJtx%og zbIK~(SKM`%yP|c?F=l#l4Jxg)9yU*{H2X_lUrOosg%{{VRBq$LIzJdwQR?_qB)Xcm z@i`6Z1tP_7IGVLnj?(FCD%>O#5L4s*#*;*Z#JG|RMcCxsC6tu`b&U^CNSIv7%8izG z!TSl5@<3+VAv~N*kYTc=oz_sze|&gA((l<6id*dRwXqyb`-bKwjC6Q7D(^;hVrpFt zLzaP0#|JgP%|Tj2D>)x~var@E*Ad-K>;szWtyA?!^^(BWPf1$>~ksVH7}^_L$WN)N7PW7+Df@$yHGU(No?{?4 zG`1*W?@Tn*$+597CtEVSj=LkNl^zjd5A*M<_*GnO*SERKfG;|?ILO&>dOz^7@%D#B z?Z^5ug+LBPHa!Emj;42j)EaW6(lk{jf{(3X_@wPHjdF7)D6o2@R1Eig|)`^muAClq<$F(igSqws6deL~X2V4yUl0|*Q%SLup$ z4TPn%#uq;9+}p$sm6qPXmg=GDmht}6SqR_zka>fx;gF)zA^Guo)uxM=S zT+c|{S7#p28uzn)U4h-NEhy>b*iP11Bu>Db^p^0Yl22kY^OA7%y-Y&PT_6~ZChhI?JQG;GcvrGnDIcgGX02F9~WBI>Yb zh|!nh5}qBkQ2xYm$%?Us?FDV`1#q9Sg_ah6?gF||B#dpHAjqtD*_^;r1A$q1-Axk) zf^ko19!k-iY$A|d0_C$Um{_!dZ%ydZxf#y0-BZe=X2ce4ZsuC{#kPu`R(nYW$n)fVP|esB#FJER>o%#}F7}7?-<8Ba?E&{F(4(!7wchHAvFxH&Y zD?mDqD*44)3pCAc9n{$jC*Szdl5JFYQ><0h^4ySV*4U>bZQvgi%8Bj@Ae=t3d59M( z{UU6Z^vosBZus7JV+`Xfgx#Co!1tP4EVW~p04wqIvN6xxon-rCu`$*hr#9K$MK_gO4@lAMNeJuM|LxT;%ZxLi3($OP<$m#c6lRrrOFEpD zp{DQlI5e5N2qa8NDc!=L$Rv-_}BP>;`LF3Hw&7SG{|ZVaC&8vh+d=~yF>k&alA z--nVz&u#Ve-jKsngtwAA05Ys!{pf(4YjX%k3YM5HWywKnzKxK{ML+bx0T9J@&{>~> zdSoWl=QI4RWxseUVLHE$lZxKM#vkmQ+-XZk`%Yc?D+AHd>YrUPb4m#JaOU$x2uJFJ zk%4~>xJ=bqn;YI;vWqv9V7O{1A6soiEWM!^8xt=|)Edk_-bkJa4^97N}jRu zUPJB+Eh$hT4K`ExdrI4QaBXK8%srfAQW5YWwX?u5Huu0X*nR5gdSO1i6-#d8?Y88f zDc5}f2~O7v8u-fW+tfj<{GPes&#NhoA?%!5WtprPNdr%7GKVZ?dsj`lQly8n!@Vmq z5js$Xap`?+kQ!qdlF)z7_PU%65P_tO4jWvg6u=t!CM5^>70D-JX*2nkE*56!(lfrQ ztsI`8$x_VQ4mNDjhx)|*5Yl~k@yMX|8IaLG?St0clsvD1DP_&U&PuKPFCR@+J&{e<0}zs5gn%54d>28ahR;pH1KfzLG&rfY; zr0E37`7c;qA4Yu-oQ}_QWPV3hzvn*{_;-sSj!kmetk)t}D|mx^G5D=F?RLQsCH#ov zzI4I6$bc{h%%8vm3m6MrFB))~Z+tHIh^XY*T^$tV72saK_j%D=*e5m>8%46rL41wb zN#!l%II+NN4DcuZTM68S1HeFhy%TjHfX~;OyX=?uh|8UIdEKD3AGdIiyn$QXpFYl&p{A{fdkdr3m&7pP*v5Ww16=qG+>n3VWX*E6z z19_(}Xw8ewmWey?+BF};hluL77-`3=Kj>?60|d>oy#Np`CEn=k!%yB}^={_O%0UZm zm|;d?bjGK!dq;1na0@HS%X_6N?&N}09h2-o)fJkSZyfHD?Av{hcPBjm%ZP9NGu{8U@i+S<9x_4T z+1%kw!5W$1>fu2TQh%)6*|NGl5L$!?-DY&JOiUB^$j?fpvwPVX{?j%|4w?{TSGy)# zmR9ur6r3@M%oXv`-I!(hJ@E@Jvi1ra|7-j%BQ(Waj)M-Ku&1 zOzoCaL=389Jn5)ge}BFH#`f7FpG0<*o4p-{K(2Q#4$I{zsV)p{X6)ti%2!~6U7tvA zvExkfe{deKtjnxzW9&|kLqWWCLKxM_C{CC0Y_1pe*2HF27LulQoQhB5PBZ6P5Vk0@ z>t{f{O`Y>)tX`;UtDBg3x|uYox$w!IOna&(lqG{2&8twgLta<+rD1uT`mMSoaK|%M z+?rJ$|CYX*hd(i9l+$$6?Qw=EdiKQoIp`ef`utvv$(f~^$MZtSP~c?Bt*8ULE`X7cB? zxlN<&tx3*vEpvuGdLnn*gRyiKaRYAGeDANORh?gm{XH#j*cO43;Vdo>{EVu5zuVLK zd=y%cLg_;L3tEs$mI#>4jsU;QvX|!fT<70BP%kTAVAGpXetlDX+iQuc?k`wBn~;YJ_5_vHdfA}IICtBEH4^~r8~DoZk7UE?d3 zsEc<2LF*P?->U=mpNSiYiA9xYQ1Mr_kz}z}PJ2!(y&SyM+?a)G6^5Z?^?bOWtV_vJ za{7d2dchhF{~Q({jAB;lF6sOE;xpBNi5L^((0Zb6d}8X|$jyjbBbg-rUG&Li)5CEQ zR$-5C80?CFMs0d^7J4RPrmj`bq#0U3J@6B{+np1ux(OB)MC7~h?!EPFBn9N8@1CZ8 zWz6OhZ3+=&n)H?9CbqcWz1X+hzCY#6Te{tV*~TjR8$7A}2hu@}iGcy{fSX=fPOiYe z3p5mCkgpp1#hjN4uDOT7Y&*CFA>S6V`$g|;q!_>|cXso#`$!r1Aw{`F4;vI4C z#U>lqfcBg6tW$>#M}?aUEl@@I9`3M7oiCJRgErhc%`~(=6q;T~J~m?&&pdiVB!3G@ zJ%?G|gyMthR6M0W?le+L8&*OObcAjgbl*2jS|gb{Ln`G^Fs@&;mwFHAy1!S2nv)+& z3_G1;Ug+Q%-a`L)=tTZjM>}YsT3@mrFGe&K*9Q)>F8A} zP_zzB6!4?RoN}a3N~(iuYJxc}oRKm9Xs=<*@o3GIzN&Xqnn5t~ty3b*Ji{y3X;9)K z^l`j4vfz?KWPNKo{an?36!@E*>aHj7)`RK=FEP!x$K2e{@ckq9Q};u3l{JK7!RbgD| zIwEFC#AIZbS+@5=lzvY+GuYv%;5#XC7s=$EM@w%n^P?F*E%{Iei|i~SN#>L~yQndp z{o&#tT_m40Y80ZK)Ls~+Ew`j!%s-Nkeh$%&9G0hO-+3SWHIGZMf76Z=NE|r#>D_Do zhmfz?-hkKS?qnYJAEzY>b>vku=*6cyXq-Q^1}B)@l%xm}btDx*dKSMAk~g+-{p$Fs zk2Y1}<;&g?1++oX8TDe&T(A&!0Y>Za+zrbrKN0Z|9Zs5^J_G9-OOyd}9xKq$E2z679D!FJQE^x$dI2X&1 zJ>3!zH=O_6_PeT80^8&JBXt^b1vmT9UFL`&H;FD<$mxK~QUQ6A1o_qgG@BJsa^}RH zWtDgLH=7OY-W4FHDD2wPr)vrgaSdZX?dCo?PDbg0I+Jb`$qjGbQDu%r;G@Pa@+p%l+jxf_@dC6+p9c zl8R9<6a?QK#!65Qr+O2K3+LXq-UP<=37)c-cSdKWP0MB@O9`rHD;~zS-2&K&=T^U- zK=V*Ie+=|RW^FlNh1s||#idkx`=2fo+zR!E?ya3qOxtG+%hQhj7BNU2xesldg+>1U zHg6{>U?!gx^!{4}@IPg+8h3(h-174@nVFdky3|y6Q{HmYir3bf(dC!&S2{X!JYp`) z)#_IRw~vd@TIy+ozy=f4)Ll-wZ1vV#)&%8lz#qs!X#MWw+PPEA<;$a&s32GpKJq9* zD0b(s`|pcX=JmxD3V%WPx%!ysH{Tlw*m=JB+YmFnIpe4HWusg!cZYH&oa<&%UC^)P zpTAcr0&kz&R{1V&fjxzrTt0uP>M9ZzC+L2a@09O~%CU0VW*5To4G|1afyp>nS`b`e z3miH*tf-BVKY(*$bU|Cbo+)W*7?vvl&}nFF1jloFbj~O=*g3qq*zei_21`#YWHsrj zO8$y_6jK&wcPnOrn)(Zu3>S?_mvAF!Yj8Vz=k9}WokW4{ojR?M60Y}#r99PFfW_)R z9vZUi3-_)1XwcccY82n9-v4sTbR=m{NF&M#3en|0wCny=Jj>2~GJ)fk<-+C&hf59_ z<#S9U?I<$x+@Y*3d^6YfD@&WAz(|C3!fb^*GQ(rzHJY5~#w~qBrAMa@s(8xL2CqlM zjj@d62s+>!zGzqoaf2V_R~-O~SAB~=X|Aux$+)}43|i))hG)6-a_dY-vhH3QY*2Ca zEjK7gO5SK`t1>MD_wg-kqiuF*tnU-`sBXOXX^)psw0Y4ANsbF6q8jl-J<!0vNl zH=l$zoMwOKHKrR>CAEmCjmH)!Q$dUh!mPyQfX z=KNw^xj_NIdYaEi^sBpHc0~ly7T2(U@R&nZv@H3%4^os5hn`c4nLXMWoz7BYJ`%s* z1^l)d82uG*h~e~wOBKw;$lNDvMXCmk@;UA|d-(sAl5+-TGm`N7T7%Zs1DvPDjqh-C z4{&q(8-dn@xlIj-0ngty>Ju&PilGUdYrhO?=SBnfOcU2%4G)69)@UR&seB`Td-u!1 zEkakM*BAne=SfSUD@rbVc-OK%&80Zw#hMu|V7svn z+&rrGi-`Na&{t_ZWVRqYZKtoq_nXy^AxL5;x!L=nu@$3K@#1#Awg*mvav)pk12H9P zidg(!kf{}r=E18L4e2(8y&pL`CgyDiy*WV-Cj*-sxU@QBiPSE41)T=Aajq1r$s+#r zQ6+XQY@{FTHu3Wz?G|gF3~J<+qllwkH*;fu)3o1;z+rHyorv z6q_QLI-%^$pW^~Z@85$tKirk{v||_WWq9cp(@LF$#iMsfnLnda0qk@D;-GrNy5$_zLLFV@ynX261%PR5RP4QEEtBv|li3o(uy)eyBF0wAS_#YD{uIKS4_#0+ z`*@@|S(>lUO(E|N`;zwpkicq$pYol?bGYu=T^{(RFnX2SIr~Osot%Ey*Yf+Rf)lzU zHjK;_BJVX}UVGwfYN0CIRF}e9d5dWuZl5=qJZr9RdW4Vr8JTw9v7;)byDSn0y|)>z z@YBWNQxp%lH&*>Q3F*-Dd&4wUnatsDkEfOH7DecLRLA|GIXf1t;bpkA0(0mm3I2&} zxK`pBMI%l4cBnu97SrgE+nx_IS9X1Jjn#?rl2652>Ikf^uUz{^-Mq`&$onF0Y}X!5 zh2K1kBJSpk4?X$oZ!@b~wn!;W01Gf?cR|^_A(szXN1ip8J`-fn%eiyF?ucBBzlQH` zwvH)kK*53um`40|K<4_V93DOuQ7yV$IIL_D7EAR2^ZTm@ZM-GlL7$$-35Ge#IZLYFW=KfzH5)3spfLH445#2_$nSp z2Bby*m=5Uc&nlO?oDXfWAMD6uku)sRR9@`p{VM>kb=2e_-foY5Cps2K7LQ>dk6*XJ zrIbLRrTcKL0Qu^E zNI=p3FQ>V*{aS~4;3m+uFOkviZdq;0uz?yi8?yTrZmv&p6k8sNo0}^VxON;E?_$Kb z-3ro$<4ZOO=6A-iKoAP^T;8WaJ`4UC?Zex15ZJQU6G24!GDOwSqD=6EtxKUvkeZz^ zj6b-h%QdccwahEmHGx--Z+Mc~=&QfYe_CY!%ilW4Vqs&e+dJqI za(d`933d7Cyztjkf>A4qVYaKP+(8_n0ByZ>oU=?V_M7I~g=KYz1}A~P0t{h_D6sTt zm@9zN6@URFm-6jTD~ipb6jPsX(`hE0a=to>huS&>$!rZTUjY`p7UZ>Ndkq|Z*bX-4 z%>W(CqnAIAvwRIDIJIL#dYSwqwXE`it}Lwr@PH37$iBH_T}5X00eRgNr-wW5n(rTG zZ!Z>f0Xw9RxyzLf=?vU*)p^%KUFhhmg1!PpD z?R=;5jz{!;%UVq?ZMwZfTNa{EVjbPo9JO1J_H5--AcEnub#h*6GkUs)7H}(n2kWoZ z{UN;;yEddJ;VUs8BXGytAu+H@&7rqsSRIDmzI%u1kLkC+Qg*Gsx+0m_8Q;;VT7hXe zQ+=pN-gCh#=?3dwz^fJrDIGXqTU>X5L#E zU+K+=QRVecF0wpd@|^oU<%A&pe7!-7&*0O5FuqM_pAvo4{>(U0vzS!iO*^YND;kZp zKsd;asj8`{uyj3jN^8{6?=*5Seazf~s@HxO*%dA`CZ@OZXt+e=g2k7mMXt5O5wc?X zcqwY5FPkrnj4?1F-gofjGfapoPsWoiQ~E641gA#Hk#Kp0I8jTcl?&RK07kn{QY zPk9Yn$PCv#%C2bDq<2dTjZ!waxW^~{Dbb(gMF&@MaBu`6fF<0dP^+j_X7kReSOC*-lK7x?TkNfEJ?~*0og8BrLG$yqv6$(PiM?HQK>0(tCvr|H=z4bP$5X{s z?dWym$kGt*bHlh>Wk0Hpo&^?>o3XfQRE8njmrMLOTbZ3j?qQeZ<2DuOxiSjOxw=!U z0~b|qR}Q-m%&|qiR(=Z>y{)!*+cN|EQ(31prPRWQxM9H&4=~x-;_jNxEg_bUnCN#? z`*V9W4hKv-$uhMErr$|)Nf>(_Fa7P&*!wbeWYd6dYnCL*6zeDE$Uy>C4nnJl_1ZZldE%Qf8k5K=8z~|@A zU-}z@a(&~aSzh8_S@?{zxb-|csaAHK--o7}pW^$9zluAiZnO*BkRh5ijYYcu*%hZ@ zIga111wC5hajw&>G&JWh^q@3lA=18>FXZ#SR_9S*ZP!aG5QH7&l458dKL825p~Fdk zK^LR??5(Xy>c_-MXz@~3|I->wX=*K8;q}_5kBtk`w+8N1HwY`sCTX@KEBKU36~BF} z#IVU-|CLgj3jUGkMW6YY87xrVDO z-W}I#55AO5=@urfPt%K!OAmV5I53WP@ea)oG*PN)F1?U|9#VX~n^vKid)IKYfu7RH zDbvOTdtj4VwTISh5y+DEqx@JM_ke@AMoMm10vPjcMd!|Vx9cav9W_@vdF*6#?OYgq zx4bT5AJyd3_<=Ksr$dVmZhEY$;rA+%_0mWe+O_^=7b150pfR_dweox=-F>#K4)Hl& ze5w5vw>#23(vOf!DLQTgc8mFV*HC$2XW${gUB+{20paNCL~g0XM^}x^o5Pf}z;mf(BZNclMo~d*B-o;n2=CBK+$%y@^ky+6g7f-$%@^nxuN`A}mK`rf=(s~a@;KS)dv4V-UYhfya zY*};j|J^$V@ez+ehA+oGWm5Plfy|17Pz!UZ5(uzx7v3q!{%x z=7$3^-8NQk&&ZD-2aS0&4+lxz(^#G?*G`I*I`JX;3gg%uOMhv0N2|n_o{#0j%`3pq zMkH(|L=9!v5-9_csg3)DzO<}TxU1cGG`7>}sjQjnMiNXibp@DK%KtG?;+Z06Kb>7B zx&5^!ap=(kBTu_-v3}RQv$X&^=W-t_*sPhr_?^FX8HcdCTOe2 ze5}|196&*YE^K{z1KXW`+$6K~PiVci&7L)5 zVZD58XyXeKijeY2A-R+^A9?Q`l$AwLQV7`RdDj}5<&7xC?mw4(wz`T}08_Yxo0(YS zX;;7~PUy~Pc51G+Sor{s`xSq0To~jzbx^p}a8Q(@90JSEj@G4q!#BiWO^cqN7ftY1 z_jJq89%bhf)v;$gtT4Th*Q744mL$vUt+L-*<+2eAMgrM``N$4OSu0o}vLYWZ-#l!! zyn(zkX}2{Vl0h@r_$@q}G5T~_H z!Asn9uZ~W@nM&8hW+YgSY@uj_JySkiYNYdA<{d~{#@{7{#iKL(%6DE^f|?sY@WJR( z$i*$~b-lO+B<1AZQzX#)^i3x%-Yr0R587?yzR;u}G7hIM%?!;^;YqajFA(ZHf3Bgg z;Ez;_PuoDU8D<*$GS!?*2Ovg{0=&7Z=zvLlj+u-CWG6m zHN4PvwauVRmL=4WCk{eP~6?!U4m=z;tnki zMT)x@C>GqcxVvj95?o60;6aNec#(JWoBzem&g|}WZl1|Z@|^RP&+$WtK5UI~mNOf% zlmDop0Mt!y?ui_0Y5#4SNBAXaL()toW93XagqzK4a`J6UqR&yP6}EVWYx78*$AW~M z&YwxOVJR)|ogh6K&wfoPhbzf?I1Ig=@=dS3iD(+mi`iqtw0+0=Y;$*;`GIcyL~rOX zyLHFIUwg2hX^0yx=2R16^i8_u%7N;a5^ zh|&HBAPAYc8gvdOyAI{J-JX#!?GW&HqZ!ajx|U+ik+P3|v`m<}cxX(1aIT>h{xy+7 zu#h~nWMtFsbCA1t(4F0YC(unWPQ91)$Nc54G+)3<;Pxp@1m{K6CAJH_zvLGFNW~UW=Nkgc<*Ew(pl}w$9Ht)6PTQL(q){PKfFR!^05@~clos0g^bF%DQuUgM@ z&65Ue7~4xtsh4wNYwMB7oit=n`sqKwp(Xc|;dx_0P~;g+TZrR9*3@(Fku=Mc**3?K zz_EeOPT2cUvi&A^Jie6l`3d&OhK9fI~qq43n3zd;n3qaE~-<%!7Gx`&o4udz98+uxWLRY1*eMz_Ev8N>J z99!QI6rr;r!fcVT_8UusiPh1K)F#V0U?WZr0rvM-U~JRoH!meao_x>hI~{)sHlb4-CqUq}9C z!@45^wm-mvIl-aoQHuBi@gG2cJ6%c~s?Kt7I;MLwXp^*y`*4V_f38~f)G|@xiwY1? zlAC(V3w=^SbG7w-@gl|{#GHm2vYI;F{jRH|hGR(y93-fzxw5!)Y=HJFB21{I>Ot(+ zi4NnSB$o5EpE>^l&Q$);IfS7;MX|LCLys8`_DrHkGT=63bxq$Pmb54pN{q+5Z?nFy z{wu|sa=9UvcqfDmZUzY_hpd|yq`U4~&plDlV|IYOxJ8g3&j*HM=jC@T zI?Lff(SbuQQf?w90-d;liWbaiwq6$Mq~1Dy|L}^7Mgq<4Q(`3oM$A-?%i;b|0EQ)X z<{LeHTPA<}8r0!1Dmm?@GQE0v=%1PGxGCxpDGfQ^3pB@aOdhUu>axgxR46=CL0`y; ziqd2JJtEfK)fqFa`4bH9A8O0$wO$Wxvy+2Gj`2kOjY<8@Th|KZ6zogQ(HNZzmb>v; zHoZg4MULCFyH}|q&UYoIe#jO;aR&tW|3n049|a$!3CYOwyRXN0ap}$n9P_-2rx&#F zGXbkRWSxWS+Q$9Aqg5v3(xtdDK}5JM=g-hSf^f}3Ssp!8Y^SVMY{D3`*AU_(Sn(Mo zoucfEy?8S5AHagbL7Kt&u-!iS+}gfgQ&P`*G~;p&Q%c^~)E)8-C{irl5V0AX!aSU3 z+rY?z{DJTtwwlofq+4Ps1EvD?k$(v*GDk&mhpQO-jQ*ITYqVlfk1yBuv*u(3#=wRE zZ-IBSPl=#i!&z7x*nq!?JzJ>Exs~)BMD8dEZnCXvYmJJRPuKQbD=WW8m86 zA&W87j&y&G$U`}YmWK?Hi9Sk+@N9pWTvRu_nE72-r>HTEZd{bb#E4&7>MHIa5uKcr zIgCvuD$KtFogLN2t!d@;W=>q&^iMmMfo@ks8u?QyzzPG=F!;G2(@W*jvXN9vf#Sal zbUqUb+(0)H|2Yd1yUmS~`dsa^=0`OUjuvY4RM_baGIXT5@~5W1jIlf!70Gu*nj>Hp z@A3StzM7IWEU34SUwLN-=P{7}_M9-tu{EzAFZJ3+j86f)G_bTNg@WVB-|1#8JzjQ` zU;t}8(g5^g*eY0f-p1N58sE9YVL?-F|ITiaPQhrRG?-`kHl}t#bNktRt^)>UeGTkd z_qqaEY!@EliYD^y zf@fa2;6;f++xvwChcwvNTMP%%M2|cP!`GJ7k2GO$(gD+7kBtOS`fgGSwK0EA_6-6N z9CmCnHeuUO!QNICHDCUZqHdUI*&N7)5Y(-5s|FQz1*bprN%9u1*fIQnG%0C*X~C0T zJwn1>vHgbKvj+P==; z*@0c~AgI*KW6T;&XmHXsP4~dT<96EP(R%17|1bWCTyN0!+yS$aTP8dsca8=d zH^s_7#)__ zi4q@rhgfH?=iP*MnKU;mP5sQgrb5{HYO=ze1ELvqd}ASE6q&2ul3w_s)DKDE=g!2T zX-i^8O>BV|BiXwe>HFj{|@-&D8?a>m5UCX1qIgj z41m4gtHKel(s@lQzq$$NG8gDYH(D|Z7aY*!YrJV(ZsHR?^loo%Wl?r>hYv*T-8^a7 z4G~hRN>j9?n`HIA7xclpWS9p?Vn?hw17+snqeNxkfmnqo{Q@V$)>b^T>L#`(>iiFX z2O{~c5^k(gF@NEf^j|{pxn7BoOfanPsZ<2;4 zHW-R51JX9$hQ!EXWl{F{43bP+WUr|`qUw5QLz>R_&xX@c1z7KxM-ax--{RICDDC;| zO@EY2Qe={7e{~uTt^Su;JS6UB!N0v;_uh;SOidmZZPUJ!6H^z8wdfS2N)dX+#k99r zllDnnK&nAGFZ?fAqAFnlQEbNVTnubg*$YFfllF=A2oM$B3*Qadr`Y|=T<%9P9~j(L zJ=5UbW$gM6vcf@WIqS5RY%eRP;ff0y-oC`AA0rLc2WrFCTelLT2 zo%WFlOh(3LXDIs;v9}Cn?Vej7)`a=eyxdQZm+AXhPNE^^6MFS#Ir1fZm0PE@&GI`V#*%cMlC(S}T<-=jVnS*Oq=qv@Q#h(M0H zV$lys#*5hO?Kc_BZ2TwX&`6i33V%j+uO9QUgy+WdWnjTFs2>pDbSVi% zCR4m9LDOl!KP>=Z$a5wDm$N1U1QbT)tPiXy5`Ixe?a*BgXYUb~BA)gsu=9VLa@Mn4 zNGSNo`oOBLZb~h|Vxnv&KC0cIPEO7b{+7K{$#dZRkAno;VA9Nk{nREx^W_eAU)mc| z)h{{Upoc@_6IhYn_Zu5lQBa3>@da(?WhI94?P+RCT)l;FdHPsQin`|4s9Nunz7d7H zmcIDRyX5(^`zKt2{F%!v3$3IKZcNItEm+UTdqbY5(6As-?EUIvK}rF>79c6sdqkds z1D>z$v}#tLZ6)m4_7^iE2bHuOpPO>g!1Qdq#(`mx_ewRPYx~HXS8WJfxj7;qJDAbO!>oO}Qw1z+8O4>#7t*Q7u6mIY$o>CkQ zcUtXw4kc}wU|})Ijq5vpK61=-3tj?uMUZ?){&&ot(s$xI^g+91f~1~vb+KaWsFQY* z$oCjcMg~YwyiRIN6P4X!%fpf2U?7-k9m73p*EKs`M-QbgBLZA#9=W`|aAlmMknsuf zF_5b_;uqNavDrU3TY8a^hZPt#Cc z&l#X`ys!294?y>)he>YD-d146BkfzDLAO;f>Ebf&`d&rPkpe4|M%ecXhK<79A_LpWo zJ73M-%abi5 zgIfWQg?lrb!PV%g^Q3D-mcb2Yhx^j}Ipc(Fj_xGGm~mXo&8>$SnVq1gQ)esB>lAN5 z4GmvP8O+G+S5mQ^l4helU8=6KvY!9tV*5Wp@rGw{?}4>jyqW87bH{}FGHqdn@y1ti zI7)tv6g1fv5UF#K5vP)|HVjr*QMILsx(Bg5S}>FRFQisSH{l-utK=EE-!92 zy{J|n*0d*0noI>)zR;%WVULR;G4It6x+v57G8VmlV@CWnl8%hUbSG%Dus9bU3VQIH z-jz*hJo0jlMi42w|8tP`baBRbA3?%GAoOeY;Vy)cvkOmH#>Z-^$JMB$8ZG!O(UX)4 zh)X96CFNU6wY#9lsH19EF=3TPT$m`{O2s;6<5SRAt1gib(8+rCWzvT~woML%IrUDh z_BMbQLTj3+ydx-5&?T_<}C>=A(=4WJU*mHmS*W7Nhcl_{}%1A#yEEzT-vC;&tnR z+(+K0=<_~8{59wD;=WPM7e(DHqqt4_pOXlLNRLtzzeD?!wJgFX_%iKknJbjt3W2>0 zs;3L?I&0?w#=eIjxh|a=xeJwf&rjBC6Ec5I?t8zig&gf0^*luyq}82H^s-;s?Y`iA z3=5@#wzfE%#3byL$48HTtE&1T>>=t?1L{MvG7e|>=fHcp%kK{RrVlcaw5bq`qFom7 zwX07zMX*I&Svsq>7guE02g#%LcB+#ewM_4k&T}ZeY>`?x*lOUZgq;0mFp4K|v8jE0 zR1|FzMf8{lPi7mY@qidA*?Vmt(lyJ~jkg~IsBWk*DKuqlpxpZOE|#0Dje@z+stf`K z8Oa5zD2z?FXw|ghc2O-H61KgX+1DKsr%MOaKY5a~kCD|Pk(%U!`$bNbB6B+w%8iZr z-L~J?KH1anJsdlE!B0wc zyu4t~{P+!*^a8n58f?`Aa7&403G&LA)GyGb2K}{-RWPykN0A-N4|C~c@GKtDA_0xx zcxlI^iTRc-6jW2jxNc|w0PnP8XeVWSR$Ufl(GFf2Buql|jF&S#=-;%v|J*Zhr^@79 zeqRR}->U+9Xh!r#{^bm(q4`xgN|b&k2qYZHRqS$i&cHVCR2mPoI+0HK? zGCi@cqk;dsT>T4iyukyG5ZC76rZ3PLhY5mpLl%O3Xp9FQ8VPC`Z6-D{Utq)D5_Fyt z)|tdj=ys0E^XPT^SAco|%lUi2H-MM^_@;lmV36KDqhdQI7HX2Bl!i}0oQm85Ft9#G znm6q$$|PH>ExhQeq;l27=uxJk88GN`-L%(E;?>u?xZU)fSALXWx*mA1i~Bw(=fEHv zW|Hw70Kzu-2H4C^KY>V+o_GG3{}L1ctxUBW?@>r&$R`TVm%RgBvC49O0=n_=B!CkPwSlpD&=EyT#FlWiDHvR}E$jKPtQZ7N_-Ka}*sQwmEX(@SdGaY-0g-{h z6~np*Vxd?b6e=@}X$RR6_LBHB*g!KVUiS%v6CP?zK)vkOtGEFU49{K=nL-L7xheW| zuGtS^3)|k-Tb-@dH0uGbUZi5760kx6HkPEklsqWx9Q1$-tJNO|R|t4!s_fQ<(Bjo1-|K1 zIMmiutu21r)$1(Ks>AfkYu6dp5sm}Do;Fhk11hGuI!o3crp|A?tuC~ ziv$9a$+wY+#-KFZ^B>EpdML{k&dzoWY!2YY^ z9kmY^K^CRkFlI z!rrl{?yaGFV|$YKT>feo$|9W;%33)Unkwxb)O-G%VAgAiJp8DB`}2VZ%$7EKo&>XO z?Bo9&q&u{$Vil#{Jfo>_{f)r|4|hu8lj_)qCz#W>|ug+sUi767v&RwY!xF&uQqp z)dbktS%~=Mn`~3ZG0u7fM(Mao?JremP=DfavH0=_`5ch)w@zi6vrd|}kAd?nIU^;o za9xYiI)h#j&org6k#@rym}K6Di-kJcuV%byZcIjA-_FKlUPIDIw&=cMg-+o$uk~qb zI&oXyTduC9@C;T-l>@NbG>nTz^e%tgh~uoc96WyQP341?CI47WZ=#yL4R_`IRVUB= z68g8e_fzcmrMJ5*smWFK2JBJcp&Hpj7|C^r_PIvCAW2@qgk@PpW1fc+vR66fVxvu_l zGnk4Oac^#Mmi>__Aa%L{XP7@nWP;JgxQXqv#^Ib`O54wejW{8fX6VLPFxDErw4;+X6m8gNsNcQd9u-9$C;_%@?6YBf#ZvX}J;@9y8Jn|Y&9QqZW zZ;}YHg8G8EDQflF)Bwo7XzY76$*hxwdq?-Ag#})?)IfsiM~R~=DL#Scq_{k8^(;;w z+azSo4Z)gc4vE|!oZkmVE#+5ad#*x+_Me66eJ)pLrm#n;=AZ|^4AD*2{m$1j+?P~} zX}z?YI5l^NN@?iw&j%h9CQbqv^1pCC^(RaoEZJepRZJrRoRyBUG*I21T)7B!QSjgR zI$<2jZKrkz7m}$EaDP_A6>GAXnd>{qF%X(S!2%bZ?0D&2 zR&^FrR61h%z`^LQQN{cwOj^qvZ4auGEmE|v6yMj(CJn~FK#!cDW#0Xg8is)lb4jyB z3+Z{M-gu8zD;K_uM#cORrR5`6o6BDogKiyVp5J(PhJyfP+!?h^@@5|-C`lI31ql3+ z#VF&avK{rCqrE5-;Y#BAeo~yNMU)foH?h~$ZVM{k=rp?g>bTX_+qky~^iYe07&pHz z&8w)Qk=4+&tzKhHso1W|xvy$`vTf>jFFX5Si<|-geRCyC0q4W*#aNX}EOeY}Ijn6y zm-$RJ>AQNS3j;7ZX*Vv!;q#yE_ClzXTp&8W`Q(Br+37pzdl_SRn0#B5!NnaTp-Yi~ zR~sJR?2v0IxhZ1iv<(tAe19=A^l>HFIsHXhy-~qWiu2-Q^=hlGvB~i9KnS;dtRx2n zyHRyiBc-z24y$>m4*PYnBeI>9j@ykgZi9eT)7!D0Z;+;c0tpX0`_{|HRswWBcnd@c z|MG=wNA|SMpx4F@zmv=e=RZL6yWG&-DM1M%ua9xUw0M6QC~%|e{s?ja+KUiCpJf!+ z#N>3<)JA1iw!gzJ(f`n&RSs-p=Y)BSygfo$zO)C0+%v!&leqcu@vQ$4G1A?LW8maJ z1i?La2_rCTm*@;!@!{{jPdL~0RdO0qeQ7B{d07U8NqP}dLMR8Rsc8}wG4;Pr*d*6* z|N3CF$VCIzm&g}Bma*t9KyhQ?vPM+XeoW`hwWVWY+><~$iY@*ErSbg%ccQS``6vfZDU`uSGz>&uQy13Ob8srg_>^oc z!n^&ch&i|gJLzx=pr9W+vbuTgfO9(52f4qJdCcqLz`D-TrDW(!#*A4Mqw_ne0GHzD z>EUQDEL1EIXXzT5Ip}~z1T<>8)h%pq-5$Wo(pbD9TOnn9RVU3A={uak;*Q<`vk4$C z-jX~sf<1r#Bf#o@p@;T|>Zjj963iH(`O}#>CpfA48B{k&Dd=Xv*&|sx`SntV{*c|W z8(NiN-4GWwB2fc(;y!hgUS3O!{>+biHJRvh%aW=o(am4;@qOFO(dsHlVL!er&wv%7 z_{1(pbUs=R8i}`t+UR%I>Ig%%9})|eu%=9KasTOCTeb#>PHO3GmB1Qk zD;Hf$(j65&yhFG)gZ&{*lzd9s5vul=f`{EGekaM3NPc52P z*VM4Y$i|N&37CpO2lYA## zgdi25Jpx}pNFlHvN1;K_7qwSOcn4f*w=2JCNG8UA{;T|}9stYF8+!=o^n^+?^UCl` z%%xo(=#MR)%_U@ZXU|wnFOB;6cqlV^D^FU?lpdS7##rw_9e#BuIdyNCTdFoHd{*~R zkZ`~1(s@J`x1D1DjDh=by{`>P%_ubo{UY+-h&{&M6r$?-Ft=~q!q9QbHiXg2#D$ys zHcp%H0_3|E8JPXlF>mrUgnRYc_BqU?S7d)uG3(QWqJv)8Y&Sy)OEHB@N2D~v@E}@S z%4sPbqtlSO`%_r7bGkS8Bq1PF(M{uq=pNQ}I@>XFZZ0ntP4AgF@_l{27A9bVUF^1k z_!zHg>|5(9?~jiyYBuRs>4j(7`6c|*(<$>rRoK^qpLh?f3nthxDpONgUPU2)$rJ`wuSCu@{;AaDH38O)E65 zyq5lyuTH$F5_g)|c{n&6AR^oOKU1BDW|-@5tavTff`P8h*HdMw1-n&R2#Ble2Du{g zbFep}3Dg^F#paw)e%=b`TBK9e(YL3a>M8wX-@RQ-;a0rn`D=0xUc@?dX-E=n7<)-p zk7Wyzut_zV_kQopFaUL1!ahGK?)dz$&cvtBBhKD}eT%ngKYsnA7M6FZEwx6A0wH+q z!4$19t0!G#legNMdem|CjMG;`x7MsW6nek?sGsfqchDSFD#Ydr3a@jAZ7pqfv5l8# z9mgP2f>l}+laCw&l%BS?5iNPb6U*1?eg|p%X*nIlbXug8pI4L$9HU;WKShW0apZ214AL= z!n=&C90uSL3a#|gWV{;ONF^JC^Fo0ZI!dDpdG`&3{J+UqB3Y;RM@pJ|o00S}xYDG0 zpL{GoUzCl6$@jkC=Z0)dPIy!T17|HztnDcNJ9U=R;da34FLj-8`bf~<`3y=#-H@G{ z&&a^fG&0qL%YlFTz9b4iN7Oh0gO#o8E4tN2VvKC@Nre(M>E!T$0lAI(_~&tAMrka{@_;LYag|KynEdPVZKrU?g9InvFCy+eynAA`q>N z-DVaP#9rEt{g|DWg+nK<4QO}F$s}>=*tmlN<2yBm$gwX+JJ@O(-l&vfk{RM8G8q(+ zX*lyMi`n)*k$hjvk+IY*)-#Tlx6Sp=R8< z8KRzR^rWrA)JBR77T>&P*m{oIt1;;E&@uV3Y#E0_o+)@R?DqBJJK)W{l_Y=k!;Y%p z=;epy94_%u9thU=+6q3VD=N_|nkndZD zTUVXZTi1cj8!FL-;d0hLL0xFgc9_Y1O$9y~?)!-|_2PYh&c{(8X8@L9RIl!qJY@lX z9NyofhLJo_+?sYlCu$e5dZY`$+@_KR(AA4T)L!}~Q8wTJ#UpBiF}w5i}(#Li&=bSbWSlqN}3DrtjH zMKt>l^Lbi7nvyt8y0L6=%h+s2LtZ|sfWZcrJh_qab@%4lIg@Gx>tAnJEAu!RKO{EVO zKN(!2SU=R&YA(8-B0+_180_8#M6bc5oXGG-Qh0owXCd*ml*wTNN><}PS}>~_qcGxs zdI1YiB5HLupP;xNVodJ$6(((;lS{h;2T{TNCiri-&-!IK26oY)`$^tqjajjYA3cn$ z0Yk%V`LHODP6lr66fn+^U#-GP0evmna?~?Bs`wr*=LzkNcG3H-c0o#byB*0=so)1;>|)g z)YX$HV{6cc8nZtcomIXLn@}ri z4E>C3;TNs4`|awJ;&a%`97EiL7&dL4i9*irY`^S{s?7>ki!~3Zy!aU*&b(Xk3R#Hw zD~s@ALZF5CiHWsN&Bz`7w9hu=cUlUBQ#hd3>ts=A?7||%AP!C$ z!S(s^i8Rc(I{>SVvO0Q8xt;8uAvSi+)atro)pjynb+wtOmJxZ-{Gl0n-hqRL{ei5! z5-LHh(e)?^=h~0q2OW8d6xd-*5`CTal`3rj%hr1YFiz?`QTFfnzkgV7(+5Pqroe-u=F%qi*ZJDtCF?8x$af#6-i$dJcv1Qf zP!Z|-%mPKsOfKr|W0^8xZsc)2(*;%7&wqMYh)|RcL=ezVe@-)>=Y;CYcWYyCJtsoF z?A*6$fJ@%mUVwP$?Yw@P01A}@A?HTcrE{ITi^!Xfx}Qj7eqlaTB>!OZ{>{(wubwa4 z&uouLh-*!+(l4b4uk_tHU4zf@yZ*%g0sJ4(rblw@vIp57Kn4nZTB*+8dl_5pnr6n{ z&u}n&kxUpp>o+r~$u45N9X75${^!$dz2ih&-B75qsV^zGL}5K6(ad}AilCTFABjAy zJWoyi{P*|h27JZvDJ6RYaW0{f$Yw1_cT#y^c1 zwe*zdJ!t!4aQm}#rqu)<{O=l6*ew-LJYOZu&O^J?CIp^+QXzQ^GO0evsmKofsvilM zl;;3UPRhQ22f>zkN7;q!}0(`}S%He^Eg8kO{5hnXrxZvz^ z6Ydqv?JyX^!dFn~Mr3iOB`N5-HZeNNH%PS_aQMjfY&o^7OB}+)2I4VGNC;XmY*}tl z>#sYgb&fNRmt5)w7ObZFF1LF-4hq~}sGGwF#J>oAo$fNQvite;jc#i@%~>1)fb05S z-<0k#bgack)n29%PhW1=C-+IdcufVZ3KHrQY3mo-FY%3*51zwWzIOVJbRHn=3INnA zGdv+SRfmV|p1u${bwkjotb4Ou8Yd|LbqD1W>dd?g0&lcdC~_8x45d=!l77-zKC8v( z_I8~bwY)D07R^L!*twZEb?>W;fZKtp*~+)ZoAEdqRB)VhW-fJu=WvTEUj(U)rD&Rx z6zkkK$vl`ToG51Wwf~4;lz(^Wbo1x{-$J69UL`Zc=Ekj|$Q;P@#n<}f%;WFVy7Dv% zWDd~?H@+%G_C4(J;rCKTMEEV`f;dQ0VOuUe_w^s2Ggcr+A(1XOcqc$Pzu&tGitTc- zrK}ins=c*H^atojvcS&c00+9D3RK`&MoN7=u@gsiL2oZLcUfTgS23jS?W$D=Mk%s* zagUtu`-%Se%Mgv|pE>Q3TuiB>>DZF~RI`!pe$MKp8E^_5D&lS6@Qy*Zmt9$lDH!Eq z-v;xC65z=Q#F&`p@(*RPZraU2S0*bThzCGd3G9CVQ-s?G;MPn>T9}ts90?C`mJyJf z-pt@dN7oO%c0bw@EId0(xjDx9C`f8Vtz_I@Tm-e#V${$!0wl&1Dz3U;TLe)ZUBewz3Z-3JQdbQp_V?!D;uA%7ouXzOF2lacg@ zPCdDQq;k=i@!_|fV;;34AAR}5*H1F;C*9k!8R9C1WLT`59#fuXA!rQPsYEJ9!U~@< zg4~{iEx)4EIsn~U*fTOd{J;h^8^{|+CXCH()m!#*s26GycG63hfqJlw*KVT$-ebB- z-W?pXe^ZQ@PQyFFB_v*qfZr^!x>Hs2pGQ4f&a}7{4+4&?J+iKf;2+Cynn$zF0agR)^e=e;F`NOA!&SE7nKPc#4##-#4buv0=e7|`jRO>>>svA{9dgrveJ4lmdPqZc)H>0 zGcUiTUR-6e3+*l0W7xNLfe6u&u4VIEFk9yhwk7F;DPmL6X;#)PTx2=DZPE@8}c_++SKlI0a6_krUm%4L!cbOOVkV8gTYHK4`4XW1X z{?%-x?#qqO{ic|m5l3r9)&Q2H%*L?~Z3}|-*8L`lC~G#B_qon2o3V=tAv%86916yc z)DMb5e-;#b6>-Y8w0TBcd5oTj6X0h{O8xX3I?K8iVM~hh`Pkok-n=iP*9mFdF5Mhz z%O+Scme7tR?6PM34$$!&D<^(l98s6j1k%taUD)7i&T`JZ%js%GG@)DU+3|b~e5k{` z<_)fvV0}r@cWH45h?kegC7*}i`~tFZ1<1E;d^7I$?%%g9A1Pv^@zDvPi80Y9F!#G! z;o5@op2c{D|H{I!5VH>F9li%i<cS;@s;R#P95bb1 zt9N7y<~o|@CnN;-#($u{-%Lpd5bFYPE~>O&d(dfU^0F|clZrFdozradb3M0&ZIb0b zu`Yf!R>44%(bAZh|Lkvxw*NdTD#Q#c_wxn1aUa-~Am~FE1FKIt9;oALYSXLq9s2Lc9VZ-;b$;a^Pm71it`_}qV6WUSbQ?3T z-mPk+3~H|=vQ@lnsd<|gP1}ZthBzIRixs{TqWh(D&)?Rmq$wjXZx(bmno!}RpOYIl zt7UME)(}}c{n^Tv$(2RIv=w^MEkHm!>w1tIwqQ@25anb)-4-!0HMJ5d z-+fAhK$`4sKZd^|oHPRXD{$Za)$>ql@81y?3uR+f$RfO(T5Y%pO@Q>3=U0e+4lpQY z=N@L1Mw3vo^7H+NAOi|4&8btegaJH)QMX)QA5ZpwbKksN?ARL)2BY$d&RN$Cq%$aL zPR96#y@nx|57w`Wp$XfwJPB6*JT)PfJVe)C!|efD)BgZ-Nu!~O zo{xsG`v*5@AJ1H9vW0+v$j_jsv%F79LRVU4aK3EoM@mXWnIP%0agDT%GyXeyp)}ao zck)uaL%412T!+iro~Pr86RvD1@yJkq5<+yvSy+0O?)k;LLnG`2@bbGaeve87|FJf`OD9ue~GBn5)xn#hM~9DhLvGRaB%z(_RgGZ-mUbCY|xdoD13l@)I)Va z3|X(@!m{zzCHAEy@nstUesQA#1;@v3pl6%>t`+-Q9tQ7~%5FHN^^m)71tw$vLqGHMH%3p#D+moTQLyH{ z*O}rk%{EKd?j!~PvHp3@8-LkGmk;{63Oj$r67aDfi_$w!A}M0m@N+H4fV~%iTnJM6 zk7gUG8cnp+S?S`@A#vu=PuHuFS@ni(EJeBopisR-6~yg+cY8TOM}6S%XQvfsJ*elN z+~2ubLN7x90k@Y5%_a{hfX(^-aeXF9rIK7_r;SpvxjVs*YlOzP*Scfh1udx0r5Ulm z(J!XJmik%8%E?6`HmL*xKg{BFd&uPq5krNbW`sCqLD_c-6%2?zHl{1jmNJsmSZxpx$BBFrr1+4Zj`b@@JSum5%pE% zp&-R|F=Htm3!P-8tfZe2az*het<^O`(UcVI%2_-si?NbQUwk-vJBoY@8fH&(%#vDt z>|E#e#$LBRJbqfzy1!uWC&AfkpNQ7wZ<>NL6reN5E4uHUY|tTqF$cLcjaU^%jK`Mt0G~+;CS1ee(1-YI16-65L}G?CmzE+-5^YEWhphO&&ee z9wc#T(J2g%I(+h}2f3RvxoEWTa~U`{vxmihjzgI@LQ_P$nWUqy|>L z=N(>-xuWs*yG-*BrGVv!COxW)z;k}sfw@Uk7K&eb49VHh@>Lt}&>%GKEXLf3S6FN# z>1u4oO1)hx;lbXfwvZ<2K6YbT@NPKFGR5A{de6=BuKB^35IjeB4TMKgyI-JI@Hcuj z8VJ5k`}a5A-?&@BFhPmg&Ac;XT0bk#TVHVY**cdc$MwN*-4B6>w`7H9uZk5)SrUPx zy@wC2A-|3BW^4S8-x>?T>k5U!p`=Z;F3sEKu10y@x|*UeRV6ip&irDWpG|v!_d;=; z>YI5+V|+9`z|Woroo;kW0S*YPTOIEh-@(C|9vWPEj65ajDw8%>RXCK3&~lV#HZ)y& z;|pl+Nkx+C?9ic)|7W zCCml7RMl$!hT>jTrD2fW8R9XU!Z^W+IuhALdMQ3p@=54(NKQwta31s{!q!N7+Jd$&*|+eOWL}6SjPLQaiyRU%_5VYlT&h@>-8P z1J78L2{fQb^=UhuJ%1@z(&;Rpw>pbSiL(NRp9iMTApO9xm(y98ZIS&xU;2ZK<4sOYN_G6@yTg8&f4J#B=C7|b;^qc?UaqPO zHZ_iX`wB+KDjkTyiRHy!?Q(DuY&Pp!iu|USKb=y97_xmN2`W!1EtpweI756DdXovzZ3DMNTBcVJ{*rtGgbB zywZxy-0Rh{jz(_EjeR7e>EV~vdegIzJ~TF9&Z8a$iYC$3vQJ-jPq}>_IL(8WeZk8D zdktm~n+Wn`hw(`VX8VjX=KbWqCf^eqjMPO7d8o-cxn*04OH%k{V(u=8}218L2QX#>4IIth}XtNTp)7rvJQXGIh*{`lGINac1548p_5`wKd2 zwdX>R&Vl>gjN4;XiY0~VY(S?jSdKp7GD?%eIc;(51*K8SM6}OdMli$2<7bu-hW_qn zFYJYn?2A-_hnK`r$gd+rS($1TdGH^gFP2*mODkM#WTi3FkhY4OJ2<3`=mUp3oJRD+ z1#!+sHm`a&^S{rgp{fBZS95+tGbN1PE+T^OV5wVUmA6>+&9y_J=qrq1j~rCO4RGUD7`~)x&q+2*SH>aft9V&+i#&53cz`)g zY--;K^fUHxa59Im&@%E==BVurTU0RL%gA>`FELZBr1AsrczUjIycuE@2&4u2a5|we&%ZO48qx10Dwd-^i(09O zsV+dCY$dTf_&`VJL^Y|P($<07cUU8zIyqKQ z0Scif$9~aX_#d?AJ)(_Zw<(kU%{C^m8xMQXp!8rD_UG_4kueeSf3~i5uY60)aVJ*n zD$LUE`VUs=`0~T1v-%Ipn%7c%bp1Qa4f8m7yiIeV0@%qHM(hS4_AUy;Iu*eyyL=vO zblZ3^z#fqr78rxYR6`Nrp4Ua^?}FXB3qf(_oImeg4DD+BX_iN@=0s(Ni|CwO7B-Ib zAdYUkIUO|~2=8a5Fh7?cex)b#@&T@UM`V}bYa23cGr|x>!)~w8A1+hp7ufk)hR*{? zqX+u;sJ*-5^Z#%rtW*CP;~#qN0N+)PnL}*f{yLWnyR#c9Ll?U3GTx$K$8t$FlM{CS zgrH+aCe=fN+QZd|=m_ZisqtR&JqELRbQ4w=HlSW4dyLhaIe5h#bcmlnq>yPVDv6(k z{2|Uo^}1DzMHgp{kUwLjD=!4HWDlJ%zbW(IShmHHD!E*$j*ti56;q2?oYAT{IRJSH z98@Qp;2zk#^drR-3kB(b=Ul{CEE=Dz0a%#sB(+D($1P6Z%W}YNX>yI0<1TQ8f9;|B zWo%{gI2Pb#!?0L)I}~3|={0do-(xc_m2>@dOTh>kgns1*Nbb=;Qe>tXQ+JCEgHTGx zKzzjR{pj<;fh&XD3hE>H@PLFA=clE760cM|6N|>_)z{h9hIbRVrA7xuaPrvOocHdRwX{C7rIGh|^EHH7&E`f{=Y~2}Z&TS@9>h-;A7o%}iv0X<3Cj z-S08jNCn$IyBDZ37hyPD%T58f8QeS^4QrMt`|El3ZJ}tf5AR->76Xgm%ft?NvxuLh zXZK=SJ`$DGNv#&q3c`++0pJ(%?CjJc-s?&88(pJ~eJa;y2mKf)DQQ{4(o3RAjW6XN0-LPX za;zcs+3l1crUU$?UX{D!PO|I25^0WjtJiN0fTbpOnF&9Iw^hAZ`wRrHkbZfE-w-K9 zMl3YGJK*lonK4eA(^-}I)Rry#s{`1>0^8g1ZQlsCbWaus%=VkPJfgOt4|mzy2-7{xzyH ztURX@CO$e6ZasdlU%HrO706U{$!r3?Ey5BOoB;vw$Y92_v*z9pf+U8Vjpeh!%W_uQ^oFJb< zy|_4=;l~!C)Tx%2^oEeh2`PsyHZA``Zz5&D*-U-PrP>WuPb8PA617}+`a0K3f;p8X zD%GsXu}sbAN)Za7AK%KpQ#w+B^VxiGq`Y`k*GuG&#ZP>7x~>uT#j6P|54)jWS{A$H z4{T2uxFUN0!vR9v@uL{!Bwk#kWVc+##GHxlD203}<@vfJun5j_czNf&A8S-2< zPZS67cx^<@h{#GT2zX<*NJG1%^CTanlK%-2>cclbjDNJd#^}gOk(#m@c9HUb&rfg~ zc}G*5iyK8j>p4B%MS|&!Kk}c@�+R+A*A`D+G`&r~Zp~Yox!jPP|BmAS0~qmdPg2 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

    bH-h=J!q1- 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 U-=c6u2#{y#|6fxn;(qS`03LOt4*&oF literal 0 HcmV?d00001 diff --git a/shirts4mike/img/shirts/shirt-103.jpg b/shirts4mike/img/shirts/shirt-103.jpg new file mode 100755 index 0000000000000000000000000000000000000000..a5a013e542a60dad8c53d3e5361f8b6498349469 GIT binary patch literal 150096 zcmb??byU<{x9}hciVA{)G$t{e07XSszyrX)((N{Y=&h@T zy(a(*fOA)E2>{$KVmI2lxHyV(ae4zATg6e<$`<&}3u>k1rK)Y=Wp5#3`ASNXPTWJ(1LO#@ zaxtUx06Bo2MLi^5{f)TjUH-3Xu2*z_197pJc=hHlu5=$%)ahg)P%AnCPCgC`ZXO;w zK|xL)egQ#29(FojZXRAP?z^8L2M@offS@R^5Z&L?t2=H`OKVZhxAK4Ibyt#j^>?A% z-Q79e`8Xj^8!jFZ5s|-W@bYrpL2x*Gf?do!IKa;I|Df>J%Gm-6baVkiz;u66G&6^| zx=6gb>*@a!0pzF&w6S$@{wMMOa>Ss2gZWFoe_*Mo{P!3j&_AJ_T{Nx!)%pLDzO%Nc zqZOB?l{3T@YGHK;PXC`+{r8Oi0{puSqAF%kd#k%yls9v5w)$Ixii)V(UFU&dGl#bj z3s;a8*hTTJ#4A@}^!y_om%P++J4+8%g z@s1a#0h|O zf8omhx45FRP%ASR2vi#aarlQesoO$aAkMZBM><(8LAuu}W)?v3UllBWP4*r2J7M2i zL4j^omhw;ti0*IWE(-iFdLS<&B+tVm#Lq3n%PlC(!z0Ws%=hLEpRA0$fV`}b49}~- z<68dPL&kO26RyAX>_6$~`sPdl^%-%T6z&dP2v0D`~S4#4u~oi$_K zq5xk2SpWNU?_UY~pXu-D_pq?;TJQe%1Jf2t2-#pOZrGIE9LxS)0iI0IaTJuMx`3qTo#$Qk^i?;$J zi=SO;n8?WQx`Ks`bsq=!KHmLD_&7Lt0IYjNcRXJ5ydlQbFnfmQ^eOtsE8faqGS46E zX_`Z0=t)LCXI1enwvWm>2gYVsGm!3US^VbLwq$%khJ5Q1hprJ29FwzRVtz<|I|F!p zC)gc5B7hX&@@ySXS`=%TAixDXlN#{v7x*<}!{_U=lr-gY+2pm;MzE~i-Ck;t$mhgn zQp+*Tk?uEa!niIm*YSJe$G(P%*Aq7jj=nMEBpq#dY6-rK@OPHK`ga~JDktZn^@pG8 z1kgoRg-H-jc#@8zL{)RyAkH5q3$AH#7c^`$+I|=&GWPfD2>hB0K2u=3fDF+-xC(h2 z_2a5#KfhrGbwxesr&QG7T&qJ!oR+r3{La}~RFobb@EHr|seESSpTHx!o6O_zM6IEJDFqgC zcW!7Gd6IicbrinqevR;H+A>L?4?SIykQ9Ng+{m2tM?65Fuk}VfPRqsmELTv9r8u#q z4nHTVr9W7ubB$0dPmtpe21kfYujZ8XEml7nUu`(iVS+JumI)lR%fWOfYf6bHLtt(^ z>8zP`gNCPapzK_c^j8_@^oRR5JEjX-r&8BHhotsxy4+U%AyT!1M%z5=CY3{m&zAjT zDn9HazC1wGI_U#ANo=?e{+xAXP$@@88`bN$Zq0u?aF^duCOCONFJCLHsB~rj&~Q~n zAQHJ+`}P)48>W{!lmDRJVYKlUU}R(eLWI53@K<=O?i@p|g2AkI&X!vA)k6oTSS5u4 zysU%f-SVrzEfFdO`t;z0v=ai6DxE$&$dx>T7TMKYqYd zA4xrIsTVWOd(+0aOg7Z1u_3XY1vZ{DA|7#J7TP3ZRWNSkR=MGH&NvO)IAigK;O3%j z_QfLWz7OQl;fHhVF%QMw5A($b3y(fwl0^1pBArsF@t3^8oJ1*AYMp5&^c7Dsv5mGe zv|LErSmt_u2BpFCFZ-TM$3S+Vzlx#p#`a>+;sveO$cw&$niVpG?zrvFt9s%T`>Lw5 zQA~Keu==IK^;dt_aunBY*hE8yRM<%?J$fk3BILoP&2P!^9)-x NJcX|Gb%?-Qn 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%0DvsyLaq_as8 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 VPxOB#?jK+_)!K*~qZq0d)4JR@qfaUfpGDcPt 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 + + + \ No newline at end of file diff --git a/shirts4mike/inc/header.php b/shirts4mike/inc/header.php new file mode 100644 index 0000000..f18b606 --- /dev/null +++ b/shirts4mike/inc/header.php @@ -0,0 +1,26 @@ + + + <?php echo $pageTitle; ?> + + + + + + +
      + +
      + +

      Shirts 4 Mike

      + + + +
      + +
      + +
      \ No newline at end of file diff --git a/shirts4mike/inc/phpmailer/class.phpmailer.php b/shirts4mike/inc/phpmailer/class.phpmailer.php new file mode 100644 index 0000000..af089d5 --- /dev/null +++ b/shirts4mike/inc/phpmailer/class.phpmailer.php @@ -0,0 +1,2532 @@ +exceptions = ($exceptions == true); + } + + /** + * Sets message type to HTML. + * @param bool $ishtml + * @return void + */ + public function IsHTML($ishtml = true) { + if ($ishtml) { + $this->ContentType = 'text/html'; + } else { + $this->ContentType = 'text/plain'; + } + } + + /** + * Sets Mailer to send message using SMTP. + * @return void + */ + public function IsSMTP() { + $this->Mailer = 'smtp'; + } + + /** + * Sets Mailer to send message using PHP mail() function. + * @return void + */ + public function IsMail() { + $this->Mailer = 'mail'; + } + + /** + * Sets Mailer to send message using the $Sendmail program. + * @return void + */ + public function IsSendmail() { + if (!stristr(ini_get('sendmail_path'), 'sendmail')) { + $this->Sendmail = '/var/qmail/bin/sendmail'; + } + $this->Mailer = 'sendmail'; + } + + /** + * Sets Mailer to send message using the qmail MTA. + * @return void + */ + public function IsQmail() { + if (stristr(ini_get('sendmail_path'), 'qmail')) { + $this->Sendmail = '/var/qmail/bin/sendmail'; + } + $this->Mailer = 'sendmail'; + } + + ///////////////////////////////////////////////// + // METHODS, RECIPIENTS + ///////////////////////////////////////////////// + + /** + * Adds a "To" address. + * @param string $address + * @param string $name + * @return boolean true on success, false if address already used + */ + public function AddAddress($address, $name = '') { + return $this->AddAnAddress('to', $address, $name); + } + + /** + * Adds a "Cc" address. + * Note: this function works with the SMTP mailer on win32, not with the "mail" mailer. + * @param string $address + * @param string $name + * @return boolean true on success, false if address already used + */ + public function AddCC($address, $name = '') { + return $this->AddAnAddress('cc', $address, $name); + } + + /** + * Adds a "Bcc" address. + * Note: this function works with the SMTP mailer on win32, not with the "mail" mailer. + * @param string $address + * @param string $name + * @return boolean true on success, false if address already used + */ + public function AddBCC($address, $name = '') { + return $this->AddAnAddress('bcc', $address, $name); + } + + /** + * Adds a "Reply-to" address. + * @param string $address + * @param string $name + * @return boolean + */ + public function AddReplyTo($address, $name = '') { + return $this->AddAnAddress('Reply-To', $address, $name); + } + + /** + * Adds an address to one of the recipient arrays + * Addresses that have been added already return false, but do not throw exceptions + * @param string $kind One of 'to', 'cc', 'bcc', 'ReplyTo' + * @param string $address The email address to send to + * @param string $name + * @return boolean true on success, false if address already used or invalid in some way + * @access protected + */ + protected function AddAnAddress($kind, $address, $name = '') { + if (!preg_match('/^(to|cc|bcc|Reply-To)$/', $kind)) { + $this->SetError($this->Lang('Invalid recipient array').': '.$kind); + if ($this->exceptions) { + throw new phpmailerException('Invalid recipient array: ' . $kind); + } + if ($this->SMTPDebug) { + echo $this->Lang('Invalid recipient array').': '.$kind; + } + return false; + } + $address = trim($address); + $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim + if (!self::ValidateAddress($address)) { + $this->SetError($this->Lang('invalid_address').': '. $address); + if ($this->exceptions) { + throw new phpmailerException($this->Lang('invalid_address').': '.$address); + } + if ($this->SMTPDebug) { + echo $this->Lang('invalid_address').': '.$address; + } + return false; + } + if ($kind != 'Reply-To') { + if (!isset($this->all_recipients[strtolower($address)])) { + array_push($this->$kind, array($address, $name)); + $this->all_recipients[strtolower($address)] = true; + return true; + } + } else { + if (!array_key_exists(strtolower($address), $this->ReplyTo)) { + $this->ReplyTo[strtolower($address)] = array($address, $name); + return true; + } + } + return false; +} + +/** + * Set the From and FromName properties + * @param string $address + * @param string $name + * @return boolean + */ + public function SetFrom($address, $name = '', $auto = 1) { + $address = trim($address); + $name = trim(preg_replace('/[\r\n]+/', '', $name)); //Strip breaks and trim + if (!self::ValidateAddress($address)) { + $this->SetError($this->Lang('invalid_address').': '. $address); + if ($this->exceptions) { + throw new phpmailerException($this->Lang('invalid_address').': '.$address); + } + if ($this->SMTPDebug) { + echo $this->Lang('invalid_address').': '.$address; + } + return false; + } + $this->From = $address; + $this->FromName = $name; + if ($auto) { + if (empty($this->ReplyTo)) { + $this->AddAnAddress('Reply-To', $address, $name); + } + if (empty($this->Sender)) { + $this->Sender = $address; + } + } + return true; + } + + /** + * Check that a string looks roughly like an email address should + * Static so it can be used without instantiation + * Tries to use PHP built-in validator in the filter extension (from PHP 5.2), falls back to a reasonably competent regex validator + * Conforms approximately to RFC2822 + * @link http://www.hexillion.com/samples/#Regex Original pattern found here + * @param string $address The email address to check + * @return boolean + * @static + * @access public + */ + public static function ValidateAddress($address) { + if (function_exists('filter_var')) { //Introduced in PHP 5.2 + if(filter_var($address, FILTER_VALIDATE_EMAIL) === FALSE) { + return false; + } else { + return true; + } + } else { + return preg_match('/^(?:[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+\.)*[\w\!\#\$\%\&\'\*\+\-\/\=\?\^\`\{\|\}\~]+@(?:(?:(?:[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!\.)){0,61}[a-zA-Z0-9_-]?\.)+[a-zA-Z0-9_](?:[a-zA-Z0-9_\-](?!$)){0,61}[a-zA-Z0-9_]?)|(?:\[(?:(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\.){3}(?:[01]?\d{1,2}|2[0-4]\d|25[0-5])\]))$/', $address); + } + } + + ///////////////////////////////////////////////// + // METHODS, MAIL SENDING + ///////////////////////////////////////////////// + + /** + * Creates message and assigns Mailer. If the message is + * not sent successfully then it returns false. Use the ErrorInfo + * variable to view description of the error. + * @return bool + */ + public function Send() { + try { + if(!$this->PreSend()) return false; + return $this->PostSend(); + } catch (phpmailerException $e) { + $this->SentMIMEMessage = ''; + $this->SetError($e->getMessage()); + if ($this->exceptions) { + throw $e; + } + return false; + } + } + + protected function PreSend() { + try { + $mailHeader = ""; + if ((count($this->to) + count($this->cc) + count($this->bcc)) < 1) { + throw new phpmailerException($this->Lang('provide_address'), self::STOP_CRITICAL); + } + + // Set whether the message is multipart/alternative + if(!empty($this->AltBody)) { + $this->ContentType = 'multipart/alternative'; + } + + $this->error_count = 0; // reset errors + $this->SetMessageType(); + //Refuse to send an empty message + if (empty($this->Body)) { + throw new phpmailerException($this->Lang('empty_message'), self::STOP_CRITICAL); + } + + $this->MIMEHeader = $this->CreateHeader(); + $this->MIMEBody = $this->CreateBody(); + + // To capture the complete message when using mail(), create + // an extra header list which CreateHeader() doesn't fold in + if ($this->Mailer == 'mail') { + if (count($this->to) > 0) { + $mailHeader .= $this->AddrAppend("To", $this->to); + } else { + $mailHeader .= $this->HeaderLine("To", "undisclosed-recipients:;"); + } + $mailHeader .= $this->HeaderLine('Subject', $this->EncodeHeader($this->SecureHeader(trim($this->Subject)))); + // if(count($this->cc) > 0) { + // $mailHeader .= $this->AddrAppend("Cc", $this->cc); + // } + } + + // digitally sign with DKIM if enabled + if ($this->DKIM_domain && $this->DKIM_private) { + $header_dkim = $this->DKIM_Add($this->MIMEHeader, $this->EncodeHeader($this->SecureHeader($this->Subject)), $this->MIMEBody); + $this->MIMEHeader = str_replace("\r\n", "\n", $header_dkim) . $this->MIMEHeader; + } + + $this->SentMIMEMessage = sprintf("%s%s\r\n\r\n%s",$this->MIMEHeader,$mailHeader,$this->MIMEBody); + return true; + + } catch (phpmailerException $e) { + $this->SetError($e->getMessage()); + if ($this->exceptions) { + throw $e; + } + return false; + } + } + + protected function PostSend() { + try { + // Choose the mailer and send through it + switch($this->Mailer) { + case 'sendmail': + return $this->SendmailSend($this->MIMEHeader, $this->MIMEBody); + case 'smtp': + return $this->SmtpSend($this->MIMEHeader, $this->MIMEBody); + case 'mail': + return $this->MailSend($this->MIMEHeader, $this->MIMEBody); + default: + return $this->MailSend($this->MIMEHeader, $this->MIMEBody); + } + + } catch (phpmailerException $e) { + $this->SetError($e->getMessage()); + if ($this->exceptions) { + throw $e; + } + if ($this->SMTPDebug) { + echo $e->getMessage()."\n"; + } + return false; + } + } + + /** + * Sends mail using the $Sendmail program. + * @param string $header The message headers + * @param string $body The message body + * @access protected + * @return bool + */ + protected function SendmailSend($header, $body) { + if ($this->Sender != '') { + $sendmail = sprintf("%s -oi -f %s -t", escapeshellcmd($this->Sendmail), escapeshellarg($this->Sender)); + } else { + $sendmail = sprintf("%s -oi -t", escapeshellcmd($this->Sendmail)); + } + if ($this->SingleTo === true) { + foreach ($this->SingleToArray as $key => $val) { + if(!@$mail = popen($sendmail, 'w')) { + throw new phpmailerException($this->Lang('execute') . $this->Sendmail, self::STOP_CRITICAL); + } + fputs($mail, "To: " . $val . "\n"); + fputs($mail, $header); + fputs($mail, $body); + $result = pclose($mail); + // implement call back function if it exists + $isSent = ($result == 0) ? 1 : 0; + $this->doCallback($isSent, $val, $this->cc, $this->bcc, $this->Subject, $body); + if($result != 0) { + throw new phpmailerException($this->Lang('execute') . $this->Sendmail, self::STOP_CRITICAL); + } + } + } else { + if(!@$mail = popen($sendmail, 'w')) { + throw new phpmailerException($this->Lang('execute') . $this->Sendmail, self::STOP_CRITICAL); + } + fputs($mail, $header); + fputs($mail, $body); + $result = pclose($mail); + // implement call back function if it exists + $isSent = ($result == 0) ? 1 : 0; + $this->doCallback($isSent, $this->to, $this->cc, $this->bcc, $this->Subject, $body); + if($result != 0) { + throw new phpmailerException($this->Lang('execute') . $this->Sendmail, self::STOP_CRITICAL); + } + } + return true; + } + + /** + * Sends mail using the PHP mail() function. + * @param string $header The message headers + * @param string $body The message body + * @access protected + * @return bool + */ + protected function MailSend($header, $body) { + $toArr = array(); + foreach($this->to as $t) { + $toArr[] = $this->AddrFormat($t); + } + $to = implode(', ', $toArr); + + if (empty($this->Sender)) { + $params = "-oi "; + } else { + $params = sprintf("-oi -f %s", $this->Sender); + } + if ($this->Sender != '' and !ini_get('safe_mode')) { + $old_from = ini_get('sendmail_from'); + ini_set('sendmail_from', $this->Sender); + if ($this->SingleTo === true && count($toArr) > 1) { + foreach ($toArr as $key => $val) { + $rt = @mail($val, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params); + // implement call back function if it exists + $isSent = ($rt == 1) ? 1 : 0; + $this->doCallback($isSent, $val, $this->cc, $this->bcc, $this->Subject, $body); + } + } else { + $rt = @mail($to, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params); + // implement call back function if it exists + $isSent = ($rt == 1) ? 1 : 0; + $this->doCallback($isSent, $to, $this->cc, $this->bcc, $this->Subject, $body); + } + } else { + if ($this->SingleTo === true && count($toArr) > 1) { + foreach ($toArr as $key => $val) { + $rt = @mail($val, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params); + // implement call back function if it exists + $isSent = ($rt == 1) ? 1 : 0; + $this->doCallback($isSent, $val, $this->cc, $this->bcc, $this->Subject, $body); + } + } else { + $rt = @mail($to, $this->EncodeHeader($this->SecureHeader($this->Subject)), $body, $header, $params); + // implement call back function if it exists + $isSent = ($rt == 1) ? 1 : 0; + $this->doCallback($isSent, $to, $this->cc, $this->bcc, $this->Subject, $body); + } + } + if (isset($old_from)) { + ini_set('sendmail_from', $old_from); + } + if(!$rt) { + throw new phpmailerException($this->Lang('instantiate'), self::STOP_CRITICAL); + } + return true; + } + + /** + * Sends mail via SMTP using PhpSMTP + * Returns false if there is a bad MAIL FROM, RCPT, or DATA input. + * @param string $header The message headers + * @param string $body The message body + * @uses SMTP + * @access protected + * @return bool + */ + protected function SmtpSend($header, $body) { + require_once $this->PluginDir . 'class.smtp.php'; + $bad_rcpt = array(); + + if(!$this->SmtpConnect()) { + throw new phpmailerException($this->Lang('smtp_connect_failed'), self::STOP_CRITICAL); + } + $smtp_from = ($this->Sender == '') ? $this->From : $this->Sender; + if(!$this->smtp->Mail($smtp_from)) { + throw new phpmailerException($this->Lang('from_failed') . $smtp_from, self::STOP_CRITICAL); + } + + // Attempt to send attach all recipients + foreach($this->to as $to) { + if (!$this->smtp->Recipient($to[0])) { + $bad_rcpt[] = $to[0]; + // implement call back function if it exists + $isSent = 0; + $this->doCallback($isSent, $to[0], '', '', $this->Subject, $body); + } else { + // implement call back function if it exists + $isSent = 1; + $this->doCallback($isSent, $to[0], '', '', $this->Subject, $body); + } + } + foreach($this->cc as $cc) { + if (!$this->smtp->Recipient($cc[0])) { + $bad_rcpt[] = $cc[0]; + // implement call back function if it exists + $isSent = 0; + $this->doCallback($isSent, '', $cc[0], '', $this->Subject, $body); + } else { + // implement call back function if it exists + $isSent = 1; + $this->doCallback($isSent, '', $cc[0], '', $this->Subject, $body); + } + } + foreach($this->bcc as $bcc) { + if (!$this->smtp->Recipient($bcc[0])) { + $bad_rcpt[] = $bcc[0]; + // implement call back function if it exists + $isSent = 0; + $this->doCallback($isSent, '', '', $bcc[0], $this->Subject, $body); + } else { + // implement call back function if it exists + $isSent = 1; + $this->doCallback($isSent, '', '', $bcc[0], $this->Subject, $body); + } + } + + + if (count($bad_rcpt) > 0 ) { //Create error message for any bad addresses + $badaddresses = implode(', ', $bad_rcpt); + throw new phpmailerException($this->Lang('recipients_failed') . $badaddresses); + } + if(!$this->smtp->Data($header . $body)) { + throw new phpmailerException($this->Lang('data_not_accepted'), self::STOP_CRITICAL); + } + if($this->SMTPKeepAlive == true) { + $this->smtp->Reset(); + } + return true; + } + + /** + * Initiates a connection to an SMTP server. + * Returns false if the operation failed. + * @uses SMTP + * @access public + * @return bool + */ + public function SmtpConnect() { + if(is_null($this->smtp)) { + $this->smtp = new SMTP(); + } + + $this->smtp->do_debug = $this->SMTPDebug; + $hosts = explode(';', $this->Host); + $index = 0; + $connection = $this->smtp->Connected(); + + // Retry while there is no connection + try { + while($index < count($hosts) && !$connection) { + $hostinfo = array(); + if (preg_match('/^(.+):([0-9]+)$/', $hosts[$index], $hostinfo)) { + $host = $hostinfo[1]; + $port = $hostinfo[2]; + } else { + $host = $hosts[$index]; + $port = $this->Port; + } + + $tls = ($this->SMTPSecure == 'tls'); + $ssl = ($this->SMTPSecure == 'ssl'); + + if ($this->smtp->Connect(($ssl ? 'ssl://':'').$host, $port, $this->Timeout)) { + + $hello = ($this->Helo != '' ? $this->Helo : $this->ServerHostname()); + $this->smtp->Hello($hello); + + if ($tls) { + if (!$this->smtp->StartTLS()) { + throw new phpmailerException($this->Lang('tls')); + } + + //We must resend HELO after tls negotiation + $this->smtp->Hello($hello); + } + + $connection = true; + if ($this->SMTPAuth) { + if (!$this->smtp->Authenticate($this->Username, $this->Password)) { + throw new phpmailerException($this->Lang('authenticate')); + } + } + } + $index++; + if (!$connection) { + throw new phpmailerException($this->Lang('connect_host')); + } + } + } catch (phpmailerException $e) { + $this->smtp->Reset(); + if ($this->exceptions) { + throw $e; + } + } + return true; + } + + /** + * Closes the active SMTP session if one exists. + * @return void + */ + public function SmtpClose() { + if(!is_null($this->smtp)) { + if($this->smtp->Connected()) { + $this->smtp->Quit(); + $this->smtp->Close(); + } + } + } + + /** + * Sets the language for all class error messages. + * Returns false if it cannot load the language file. The default language is English. + * @param string $langcode ISO 639-1 2-character language code (e.g. Portuguese: "br") + * @param string $lang_path Path to the language file directory + * @access public + */ + function SetLanguage($langcode = 'en', $lang_path = 'language/') { + //Define full set of translatable strings + $PHPMAILER_LANG = array( + 'provide_address' => 'You must provide at least one recipient email address.', + 'mailer_not_supported' => ' mailer is not supported.', + 'execute' => 'Could not execute: ', + 'instantiate' => 'Could not instantiate mail function.', + 'authenticate' => 'SMTP Error: Could not authenticate.', + 'from_failed' => 'The following From address failed: ', + 'recipients_failed' => 'SMTP Error: The following recipients failed: ', + 'data_not_accepted' => 'SMTP Error: Data not accepted.', + 'connect_host' => 'SMTP Error: Could not connect to SMTP host.', + 'file_access' => 'Could not access file: ', + 'file_open' => 'File Error: Could not open file: ', + 'encoding' => 'Unknown encoding: ', + 'signing' => 'Signing Error: ', + 'smtp_error' => 'SMTP server error: ', + 'empty_message' => 'Message body empty', + 'invalid_address' => 'Invalid address', + 'variable_set' => 'Cannot set or reset variable: ' + ); + //Overwrite language-specific strings. This way we'll never have missing translations - no more "language string failed to load"! + $l = true; + if ($langcode != 'en') { //There is no English translation file + $l = @include $lang_path.'phpmailer.lang-'.$langcode.'.php'; + } + $this->language = $PHPMAILER_LANG; + return ($l == true); //Returns false if language not found + } + + /** + * Return the current array of language strings + * @return array + */ + public function GetTranslations() { + return $this->language; + } + + ///////////////////////////////////////////////// + // METHODS, MESSAGE CREATION + ///////////////////////////////////////////////// + + /** + * Creates recipient headers. + * @access public + * @return string + */ + public function AddrAppend($type, $addr) { + $addr_str = $type . ': '; + $addresses = array(); + foreach ($addr as $a) { + $addresses[] = $this->AddrFormat($a); + } + $addr_str .= implode(', ', $addresses); + $addr_str .= $this->LE; + + return $addr_str; + } + + /** + * Formats an address correctly. + * @access public + * @return string + */ + public function AddrFormat($addr) { + if (empty($addr[1])) { + return $this->SecureHeader($addr[0]); + } else { + return $this->EncodeHeader($this->SecureHeader($addr[1]), 'phrase') . " <" . $this->SecureHeader($addr[0]) . ">"; + } + } + + /** + * Wraps message for use with mailers that do not + * automatically perform wrapping and for quoted-printable. + * Original written by philippe. + * @param string $message The message to wrap + * @param integer $length The line length to wrap to + * @param boolean $qp_mode Whether to run in Quoted-Printable mode + * @access public + * @return string + */ + public function WrapText($message, $length, $qp_mode = false) { + $soft_break = ($qp_mode) ? sprintf(" =%s", $this->LE) : $this->LE; + // If utf-8 encoding is used, we will need to make sure we don't + // split multibyte characters when we wrap + $is_utf8 = (strtolower($this->CharSet) == "utf-8"); + + $message = $this->FixEOL($message); + if (substr($message, -1) == $this->LE) { + $message = substr($message, 0, -1); + } + + $line = explode($this->LE, $message); + $message = ''; + for ($i = 0 ;$i < count($line); $i++) { + $line_part = explode(' ', $line[$i]); + $buf = ''; + for ($e = 0; $e $length)) { + $space_left = $length - strlen($buf) - 1; + if ($e != 0) { + if ($space_left > 20) { + $len = $space_left; + if ($is_utf8) { + $len = $this->UTF8CharBoundary($word, $len); + } elseif (substr($word, $len - 1, 1) == "=") { + $len--; + } elseif (substr($word, $len - 2, 1) == "=") { + $len -= 2; + } + $part = substr($word, 0, $len); + $word = substr($word, $len); + $buf .= ' ' . $part; + $message .= $buf . sprintf("=%s", $this->LE); + } else { + $message .= $buf . $soft_break; + } + $buf = ''; + } + while (strlen($word) > 0) { + $len = $length; + if ($is_utf8) { + $len = $this->UTF8CharBoundary($word, $len); + } elseif (substr($word, $len - 1, 1) == "=") { + $len--; + } elseif (substr($word, $len - 2, 1) == "=") { + $len -= 2; + } + $part = substr($word, 0, $len); + $word = substr($word, $len); + + if (strlen($word) > 0) { + $message .= $part . sprintf("=%s", $this->LE); + } else { + $buf = $part; + } + } + } else { + $buf_o = $buf; + $buf .= ($e == 0) ? $word : (' ' . $word); + + if (strlen($buf) > $length and $buf_o != '') { + $message .= $buf_o . $soft_break; + $buf = $word; + } + } + } + $message .= $buf . $this->LE; + } + + return $message; + } + + /** + * Finds last character boundary prior to maxLength in a utf-8 + * quoted (printable) encoded string. + * Original written by Colin Brown. + * @access public + * @param string $encodedText utf-8 QP text + * @param int $maxLength find last character boundary prior to this length + * @return int + */ + public function UTF8CharBoundary($encodedText, $maxLength) { + $foundSplitPos = false; + $lookBack = 3; + while (!$foundSplitPos) { + $lastChunk = substr($encodedText, $maxLength - $lookBack, $lookBack); + $encodedCharPos = strpos($lastChunk, "="); + if ($encodedCharPos !== false) { + // Found start of encoded character byte within $lookBack block. + // Check the encoded byte value (the 2 chars after the '=') + $hex = substr($encodedText, $maxLength - $lookBack + $encodedCharPos + 1, 2); + $dec = hexdec($hex); + if ($dec < 128) { // Single byte character. + // If the encoded char was found at pos 0, it will fit + // otherwise reduce maxLength to start of the encoded char + $maxLength = ($encodedCharPos == 0) ? $maxLength : + $maxLength - ($lookBack - $encodedCharPos); + $foundSplitPos = true; + } elseif ($dec >= 192) { // First byte of a multi byte character + // Reduce maxLength to split at start of character + $maxLength = $maxLength - ($lookBack - $encodedCharPos); + $foundSplitPos = true; + } elseif ($dec < 192) { // Middle byte of a multi byte character, look further back + $lookBack += 3; + } + } else { + // No encoded character found + $foundSplitPos = true; + } + } + return $maxLength; + } + + + /** + * Set the body wrapping. + * @access public + * @return void + */ + public function SetWordWrap() { + if($this->WordWrap < 1) { + return; + } + + switch($this->message_type) { + case 'alt': + case 'alt_inline': + case 'alt_attach': + case 'alt_inline_attach': + $this->AltBody = $this->WrapText($this->AltBody, $this->WordWrap); + break; + default: + $this->Body = $this->WrapText($this->Body, $this->WordWrap); + break; + } + } + + /** + * Assembles message header. + * @access public + * @return string The assembled header + */ + public function CreateHeader() { + $result = ''; + + // Set the boundaries + $uniq_id = md5(uniqid(time())); + $this->boundary[1] = 'b1_' . $uniq_id; + $this->boundary[2] = 'b2_' . $uniq_id; + $this->boundary[3] = 'b3_' . $uniq_id; + + $result .= $this->HeaderLine('Date', self::RFCDate()); + if($this->Sender == '') { + $result .= $this->HeaderLine('Return-Path', trim($this->From)); + } else { + $result .= $this->HeaderLine('Return-Path', trim($this->Sender)); + } + + // To be created automatically by mail() + if($this->Mailer != 'mail') { + if ($this->SingleTo === true) { + foreach($this->to as $t) { + $this->SingleToArray[] = $this->AddrFormat($t); + } + } else { + if(count($this->to) > 0) { + $result .= $this->AddrAppend('To', $this->to); + } elseif (count($this->cc) == 0) { + $result .= $this->HeaderLine('To', 'undisclosed-recipients:;'); + } + } + } + + $from = array(); + $from[0][0] = trim($this->From); + $from[0][1] = $this->FromName; + $result .= $this->AddrAppend('From', $from); + + // sendmail and mail() extract Cc from the header before sending + if(count($this->cc) > 0) { + $result .= $this->AddrAppend('Cc', $this->cc); + } + + // sendmail and mail() extract Bcc from the header before sending + if((($this->Mailer == 'sendmail') || ($this->Mailer == 'mail')) && (count($this->bcc) > 0)) { + $result .= $this->AddrAppend('Bcc', $this->bcc); + } + + if(count($this->ReplyTo) > 0) { + $result .= $this->AddrAppend('Reply-To', $this->ReplyTo); + } + + // mail() sets the subject itself + if($this->Mailer != 'mail') { + $result .= $this->HeaderLine('Subject', $this->EncodeHeader($this->SecureHeader($this->Subject))); + } + + if($this->MessageID != '') { + $result .= $this->HeaderLine('Message-ID', $this->MessageID); + } else { + $result .= sprintf("Message-ID: <%s@%s>%s", $uniq_id, $this->ServerHostname(), $this->LE); + } + $result .= $this->HeaderLine('X-Priority', $this->Priority); + if($this->XMailer) { + $result .= $this->HeaderLine('X-Mailer', $this->XMailer); + } else { + $result .= $this->HeaderLine('X-Mailer', 'PHPMailer '.$this->Version.' (http://code.google.com/a/apache-extras.org/p/phpmailer/)'); + } + + if($this->ConfirmReadingTo != '') { + $result .= $this->HeaderLine('Disposition-Notification-To', '<' . trim($this->ConfirmReadingTo) . '>'); + } + + // Add custom headers + for($index = 0; $index < count($this->CustomHeader); $index++) { + $result .= $this->HeaderLine(trim($this->CustomHeader[$index][0]), $this->EncodeHeader(trim($this->CustomHeader[$index][1]))); + } + if (!$this->sign_key_file) { + $result .= $this->HeaderLine('MIME-Version', '1.0'); + $result .= $this->GetMailMIME(); + } + + return $result; + } + + /** + * Returns the message MIME. + * @access public + * @return string + */ + public function GetMailMIME() { + $result = ''; + switch($this->message_type) { + case 'plain': + $result .= $this->HeaderLine('Content-Transfer-Encoding', $this->Encoding); + $result .= $this->TextLine('Content-Type: '.$this->ContentType.'; charset="'.$this->CharSet.'"'); + break; + case 'inline': + $result .= $this->HeaderLine('Content-Type', 'multipart/related;'); + $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1] . '"'); + break; + case 'attach': + case 'inline_attach': + case 'alt_attach': + case 'alt_inline_attach': + $result .= $this->HeaderLine('Content-Type', 'multipart/mixed;'); + $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1] . '"'); + break; + case 'alt': + case 'alt_inline': + $result .= $this->HeaderLine('Content-Type', 'multipart/alternative;'); + $result .= $this->TextLine("\tboundary=\"" . $this->boundary[1] . '"'); + break; + } + + if($this->Mailer != 'mail') { + $result .= $this->LE.$this->LE; + } + + return $result; + } + + /** + * Returns the MIME message (headers and body). Only really valid post PreSend(). + * @access public + * @return string + */ + public function GetSentMIMEMessage() { + return $this->SentMIMEMessage; + } + + + /** + * Assembles the message body. Returns an empty string on failure. + * @access public + * @return string The assembled message body + */ + public function CreateBody() { + $body = ''; + + if ($this->sign_key_file) { + $body .= $this->GetMailMIME(); + } + + $this->SetWordWrap(); + + switch($this->message_type) { + case 'plain': + $body .= $this->EncodeString($this->Body, $this->Encoding); + break; + case 'inline': + $body .= $this->GetBoundary($this->boundary[1], '', '', ''); + $body .= $this->EncodeString($this->Body, $this->Encoding); + $body .= $this->LE.$this->LE; + $body .= $this->AttachAll("inline", $this->boundary[1]); + break; + case 'attach': + $body .= $this->GetBoundary($this->boundary[1], '', '', ''); + $body .= $this->EncodeString($this->Body, $this->Encoding); + $body .= $this->LE.$this->LE; + $body .= $this->AttachAll("attachment", $this->boundary[1]); + break; + case 'inline_attach': + $body .= $this->TextLine("--" . $this->boundary[1]); + $body .= $this->HeaderLine('Content-Type', 'multipart/related;'); + $body .= $this->TextLine("\tboundary=\"" . $this->boundary[2] . '"'); + $body .= $this->LE; + $body .= $this->GetBoundary($this->boundary[2], '', '', ''); + $body .= $this->EncodeString($this->Body, $this->Encoding); + $body .= $this->LE.$this->LE; + $body .= $this->AttachAll("inline", $this->boundary[2]); + $body .= $this->LE; + $body .= $this->AttachAll("attachment", $this->boundary[1]); + break; + case 'alt': + $body .= $this->GetBoundary($this->boundary[1], '', 'text/plain', ''); + $body .= $this->EncodeString($this->AltBody, $this->Encoding); + $body .= $this->LE.$this->LE; + $body .= $this->GetBoundary($this->boundary[1], '', 'text/html', ''); + $body .= $this->EncodeString($this->Body, $this->Encoding); + $body .= $this->LE.$this->LE; + $body .= $this->EndBoundary($this->boundary[1]); + break; + case 'alt_inline': + $body .= $this->GetBoundary($this->boundary[1], '', 'text/plain', ''); + $body .= $this->EncodeString($this->AltBody, $this->Encoding); + $body .= $this->LE.$this->LE; + $body .= $this->TextLine("--" . $this->boundary[1]); + $body .= $this->HeaderLine('Content-Type', 'multipart/related;'); + $body .= $this->TextLine("\tboundary=\"" . $this->boundary[2] . '"'); + $body .= $this->LE; + $body .= $this->GetBoundary($this->boundary[2], '', 'text/html', ''); + $body .= $this->EncodeString($this->Body, $this->Encoding); + $body .= $this->LE.$this->LE; + $body .= $this->AttachAll("inline", $this->boundary[2]); + $body .= $this->LE; + $body .= $this->EndBoundary($this->boundary[1]); + break; + case 'alt_attach': + $body .= $this->TextLine("--" . $this->boundary[1]); + $body .= $this->HeaderLine('Content-Type', 'multipart/alternative;'); + $body .= $this->TextLine("\tboundary=\"" . $this->boundary[2] . '"'); + $body .= $this->LE; + $body .= $this->GetBoundary($this->boundary[2], '', 'text/plain', ''); + $body .= $this->EncodeString($this->AltBody, $this->Encoding); + $body .= $this->LE.$this->LE; + $body .= $this->GetBoundary($this->boundary[2], '', 'text/html', ''); + $body .= $this->EncodeString($this->Body, $this->Encoding); + $body .= $this->LE.$this->LE; + $body .= $this->EndBoundary($this->boundary[2]); + $body .= $this->LE; + $body .= $this->AttachAll("attachment", $this->boundary[1]); + break; + case 'alt_inline_attach': + $body .= $this->TextLine("--" . $this->boundary[1]); + $body .= $this->HeaderLine('Content-Type', 'multipart/alternative;'); + $body .= $this->TextLine("\tboundary=\"" . $this->boundary[2] . '"'); + $body .= $this->LE; + $body .= $this->GetBoundary($this->boundary[2], '', 'text/plain', ''); + $body .= $this->EncodeString($this->AltBody, $this->Encoding); + $body .= $this->LE.$this->LE; + $body .= $this->TextLine("--" . $this->boundary[2]); + $body .= $this->HeaderLine('Content-Type', 'multipart/related;'); + $body .= $this->TextLine("\tboundary=\"" . $this->boundary[3] . '"'); + $body .= $this->LE; + $body .= $this->GetBoundary($this->boundary[3], '', 'text/html', ''); + $body .= $this->EncodeString($this->Body, $this->Encoding); + $body .= $this->LE.$this->LE; + $body .= $this->AttachAll("inline", $this->boundary[3]); + $body .= $this->LE; + $body .= $this->EndBoundary($this->boundary[2]); + $body .= $this->LE; + $body .= $this->AttachAll("attachment", $this->boundary[1]); + break; + } + + if ($this->IsError()) { + $body = ''; + } elseif ($this->sign_key_file) { + try { + $file = tempnam('', 'mail'); + file_put_contents($file, $body); //TODO check this worked + $signed = tempnam("", "signed"); + if (@openssl_pkcs7_sign($file, $signed, "file://".$this->sign_cert_file, array("file://".$this->sign_key_file, $this->sign_key_pass), NULL)) { + @unlink($file); + $body = file_get_contents($signed); + @unlink($signed); + } else { + @unlink($file); + @unlink($signed); + throw new phpmailerException($this->Lang("signing").openssl_error_string()); + } + } catch (phpmailerException $e) { + $body = ''; + if ($this->exceptions) { + throw $e; + } + } + } + + return $body; + } + + /** + * Returns the start of a message boundary. + * @access protected + * @return string + */ + protected function GetBoundary($boundary, $charSet, $contentType, $encoding) { + $result = ''; + if($charSet == '') { + $charSet = $this->CharSet; + } + if($contentType == '') { + $contentType = $this->ContentType; + } + if($encoding == '') { + $encoding = $this->Encoding; + } + $result .= $this->TextLine('--' . $boundary); + $result .= sprintf("Content-Type: %s; charset=\"%s\"", $contentType, $charSet); + $result .= $this->LE; + $result .= $this->HeaderLine('Content-Transfer-Encoding', $encoding); + $result .= $this->LE; + + return $result; + } + + /** + * Returns the end of a message boundary. + * @access protected + * @return string + */ + protected function EndBoundary($boundary) { + return $this->LE . '--' . $boundary . '--' . $this->LE; + } + + /** + * Sets the message type. + * @access protected + * @return void + */ + protected function SetMessageType() { + $this->message_type = array(); + if($this->AlternativeExists()) $this->message_type[] = "alt"; + if($this->InlineImageExists()) $this->message_type[] = "inline"; + if($this->AttachmentExists()) $this->message_type[] = "attach"; + $this->message_type = implode("_", $this->message_type); + if($this->message_type == "") $this->message_type = "plain"; + } + + /** + * Returns a formatted header line. + * @access public + * @return string + */ + public function HeaderLine($name, $value) { + return $name . ': ' . $value . $this->LE; + } + + /** + * Returns a formatted mail line. + * @access public + * @return string + */ + public function TextLine($value) { + return $value . $this->LE; + } + + ///////////////////////////////////////////////// + // CLASS METHODS, ATTACHMENTS + ///////////////////////////////////////////////// + + /** + * Adds an attachment from a path on the filesystem. + * Returns false if the file could not be found + * or accessed. + * @param string $path Path to the attachment. + * @param string $name Overrides the attachment name. + * @param string $encoding File encoding (see $Encoding). + * @param string $type File extension (MIME) type. + * @return bool + */ + public function AddAttachment($path, $name = '', $encoding = 'base64', $type = 'application/octet-stream') { + try { + if ( !@is_file($path) ) { + throw new phpmailerException($this->Lang('file_access') . $path, self::STOP_CONTINUE); + } + $filename = basename($path); + if ( $name == '' ) { + $name = $filename; + } + + $this->attachment[] = array( + 0 => $path, + 1 => $filename, + 2 => $name, + 3 => $encoding, + 4 => $type, + 5 => false, // isStringAttachment + 6 => 'attachment', + 7 => 0 + ); + + } catch (phpmailerException $e) { + $this->SetError($e->getMessage()); + if ($this->exceptions) { + throw $e; + } + if ($this->SMTPDebug) { + echo $e->getMessage()."\n"; + } + if ( $e->getCode() == self::STOP_CRITICAL ) { + return false; + } + } + return true; + } + + /** + * Return the current array of attachments + * @return array + */ + public function GetAttachments() { + return $this->attachment; + } + + /** + * Attaches all fs, string, and binary attachments to the message. + * Returns an empty string on failure. + * @access protected + * @return string + */ + protected function AttachAll($disposition_type, $boundary) { + // Return text of body + $mime = array(); + $cidUniq = array(); + $incl = array(); + + // Add all attachments + foreach ($this->attachment as $attachment) { + // CHECK IF IT IS A VALID DISPOSITION_FILTER + if($attachment[6] == $disposition_type) { + // Check for string attachment + $bString = $attachment[5]; + if ($bString) { + $string = $attachment[0]; + } else { + $path = $attachment[0]; + } + + $inclhash = md5(serialize($attachment)); + if (in_array($inclhash, $incl)) { continue; } + $incl[] = $inclhash; + $filename = $attachment[1]; + $name = $attachment[2]; + $encoding = $attachment[3]; + $type = $attachment[4]; + $disposition = $attachment[6]; + $cid = $attachment[7]; + if ( $disposition == 'inline' && isset($cidUniq[$cid]) ) { continue; } + $cidUniq[$cid] = true; + + $mime[] = sprintf("--%s%s", $boundary, $this->LE); + $mime[] = sprintf("Content-Type: %s; name=\"%s\"%s", $type, $this->EncodeHeader($this->SecureHeader($name)), $this->LE); + $mime[] = sprintf("Content-Transfer-Encoding: %s%s", $encoding, $this->LE); + + if($disposition == 'inline') { + $mime[] = sprintf("Content-ID: <%s>%s", $cid, $this->LE); + } + + $mime[] = sprintf("Content-Disposition: %s; filename=\"%s\"%s", $disposition, $this->EncodeHeader($this->SecureHeader($name)), $this->LE.$this->LE); + + // Encode as string attachment + if($bString) { + $mime[] = $this->EncodeString($string, $encoding); + if($this->IsError()) { + return ''; + } + $mime[] = $this->LE.$this->LE; + } else { + $mime[] = $this->EncodeFile($path, $encoding); + if($this->IsError()) { + return ''; + } + $mime[] = $this->LE.$this->LE; + } + } + } + + $mime[] = sprintf("--%s--%s", $boundary, $this->LE); + + return implode("", $mime); + } + + /** + * Encodes attachment in requested format. + * Returns an empty string on failure. + * @param string $path The full path to the file + * @param string $encoding The encoding to use; one of 'base64', '7bit', '8bit', 'binary', 'quoted-printable' + * @see EncodeFile() + * @access protected + * @return string + */ + protected function EncodeFile($path, $encoding = 'base64') { + try { + if (!is_readable($path)) { + throw new phpmailerException($this->Lang('file_open') . $path, self::STOP_CONTINUE); + } + if (function_exists('get_magic_quotes')) { + function get_magic_quotes() { + return false; + } + } + $magic_quotes = get_magic_quotes_runtime(); + if ($magic_quotes) { + if (version_compare(PHP_VERSION, '5.3.0', '<')) { + set_magic_quotes_runtime(0); + } else { + ini_set('magic_quotes_runtime', 0); + } + } + $file_buffer = file_get_contents($path); + $file_buffer = $this->EncodeString($file_buffer, $encoding); + if ($magic_quotes) { + if (version_compare(PHP_VERSION, '5.3.0', '<')) { + set_magic_quotes_runtime($magic_quotes); + } else { + ini_set('magic_quotes_runtime', $magic_quotes); + } + } + return $file_buffer; + } catch (Exception $e) { + $this->SetError($e->getMessage()); + return ''; + } + } + + /** + * Encodes string to requested format. + * Returns an empty string on failure. + * @param string $str The text to encode + * @param string $encoding The encoding to use; one of 'base64', '7bit', '8bit', 'binary', 'quoted-printable' + * @access public + * @return string + */ + public function EncodeString($str, $encoding = 'base64') { + $encoded = ''; + switch(strtolower($encoding)) { + case 'base64': + $encoded = chunk_split(base64_encode($str), 76, $this->LE); + break; + case '7bit': + case '8bit': + $encoded = $this->FixEOL($str); + //Make sure it ends with a line break + if (substr($encoded, -(strlen($this->LE))) != $this->LE) + $encoded .= $this->LE; + break; + case 'binary': + $encoded = $str; + break; + case 'quoted-printable': + $encoded = $this->EncodeQP($str); + break; + default: + $this->SetError($this->Lang('encoding') . $encoding); + break; + } + return $encoded; + } + + /** + * Encode a header string to best (shortest) of Q, B, quoted or none. + * @access public + * @return string + */ + public function EncodeHeader($str, $position = 'text') { + $x = 0; + + switch (strtolower($position)) { + case 'phrase': + if (!preg_match('/[\200-\377]/', $str)) { + // Can't use addslashes as we don't know what value has magic_quotes_sybase + $encoded = addcslashes($str, "\0..\37\177\\\""); + if (($str == $encoded) && !preg_match('/[^A-Za-z0-9!#$%&\'*+\/=?^_`{|}~ -]/', $str)) { + return ($encoded); + } else { + return ("\"$encoded\""); + } + } + $x = preg_match_all('/[^\040\041\043-\133\135-\176]/', $str, $matches); + break; + case 'comment': + $x = preg_match_all('/[()"]/', $str, $matches); + // Fall-through + case 'text': + default: + $x += preg_match_all('/[\000-\010\013\014\016-\037\177-\377]/', $str, $matches); + break; + } + + if ($x == 0) { + return ($str); + } + + $maxlen = 75 - 7 - strlen($this->CharSet); + // Try to select the encoding which should produce the shortest output + if (strlen($str)/3 < $x) { + $encoding = 'B'; + if (function_exists('mb_strlen') && $this->HasMultiBytes($str)) { + // Use a custom function which correctly encodes and wraps long + // multibyte strings without breaking lines within a character + $encoded = $this->Base64EncodeWrapMB($str); + } else { + $encoded = base64_encode($str); + $maxlen -= $maxlen % 4; + $encoded = trim(chunk_split($encoded, $maxlen, "\n")); + } + } else { + $encoding = 'Q'; + $encoded = $this->EncodeQ($str, $position); + $encoded = $this->WrapText($encoded, $maxlen, true); + $encoded = str_replace('='.$this->LE, "\n", trim($encoded)); + } + + $encoded = preg_replace('/^(.*)$/m', " =?".$this->CharSet."?$encoding?\\1?=", $encoded); + $encoded = trim(str_replace("\n", $this->LE, $encoded)); + + return $encoded; + } + + /** + * Checks if a string contains multibyte characters. + * @access public + * @param string $str multi-byte text to wrap encode + * @return bool + */ + public function HasMultiBytes($str) { + if (function_exists('mb_strlen')) { + return (strlen($str) > mb_strlen($str, $this->CharSet)); + } else { // Assume no multibytes (we can't handle without mbstring functions anyway) + return false; + } + } + + /** + * Correctly encodes and wraps long multibyte strings for mail headers + * without breaking lines within a character. + * Adapted from a function by paravoid at http://uk.php.net/manual/en/function.mb-encode-mimeheader.php + * @access public + * @param string $str multi-byte text to wrap encode + * @return string + */ + public function Base64EncodeWrapMB($str) { + $start = "=?".$this->CharSet."?B?"; + $end = "?="; + $encoded = ""; + + $mb_length = mb_strlen($str, $this->CharSet); + // Each line must have length <= 75, including $start and $end + $length = 75 - strlen($start) - strlen($end); + // Average multi-byte ratio + $ratio = $mb_length / strlen($str); + // Base64 has a 4:3 ratio + $offset = $avgLength = floor($length * $ratio * .75); + + for ($i = 0; $i < $mb_length; $i += $offset) { + $lookBack = 0; + + do { + $offset = $avgLength - $lookBack; + $chunk = mb_substr($str, $i, $offset, $this->CharSet); + $chunk = base64_encode($chunk); + $lookBack++; + } + while (strlen($chunk) > $length); + + $encoded .= $chunk . $this->LE; + } + + // Chomp the last linefeed + $encoded = substr($encoded, 0, -strlen($this->LE)); + return $encoded; + } + + /** + * Encode string to quoted-printable. + * Only uses standard PHP, slow, but will always work + * @access public + * @param string $string the text to encode + * @param integer $line_max Number of chars allowed on a line before wrapping + * @return string + */ + public function EncodeQPphp( $input = '', $line_max = 76, $space_conv = false) { + $hex = array('0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'A', 'B', 'C', 'D', 'E', 'F'); + $lines = preg_split('/(?:\r\n|\r|\n)/', $input); + $eol = "\r\n"; + $escape = '='; + $output = ''; + while( list(, $line) = each($lines) ) { + $linlen = strlen($line); + $newline = ''; + for($i = 0; $i < $linlen; $i++) { + $c = substr( $line, $i, 1 ); + $dec = ord( $c ); + if ( ( $i == 0 ) && ( $dec == 46 ) ) { // convert first point in the line into =2E + $c = '=2E'; + } + if ( $dec == 32 ) { + if ( $i == ( $linlen - 1 ) ) { // convert space at eol only + $c = '=20'; + } else if ( $space_conv ) { + $c = '=20'; + } + } elseif ( ($dec == 61) || ($dec < 32 ) || ($dec > 126) ) { // always encode "\t", which is *not* required + $h2 = floor($dec/16); + $h1 = floor($dec%16); + $c = $escape.$hex[$h2].$hex[$h1]; + } + if ( (strlen($newline) + strlen($c)) >= $line_max ) { // CRLF is not counted + $output .= $newline.$escape.$eol; // soft line break; " =\r\n" is okay + $newline = ''; + // check if newline first character will be point or not + if ( $dec == 46 ) { + $c = '=2E'; + } + } + $newline .= $c; + } // end of for + $output .= $newline.$eol; + } // end of while + return $output; + } + + /** + * Encode string to RFC2045 (6.7) quoted-printable format + * Uses a PHP5 stream filter to do the encoding about 64x faster than the old version + * Also results in same content as you started with after decoding + * @see EncodeQPphp() + * @access public + * @param string $string the text to encode + * @param integer $line_max Number of chars allowed on a line before wrapping + * @param boolean $space_conv Dummy param for compatibility with existing EncodeQP function + * @return string + * @author Marcus Bointon + */ + public function EncodeQP($string, $line_max = 76, $space_conv = false) { + if (function_exists('quoted_printable_encode')) { //Use native function if it's available (>= PHP5.3) + return quoted_printable_encode($string); + } + $filters = stream_get_filters(); + if (!in_array('convert.*', $filters)) { //Got convert stream filter? + return $this->EncodeQPphp($string, $line_max, $space_conv); //Fall back to old implementation + } + $fp = fopen('php://temp/', 'r+'); + $string = preg_replace('/\r\n?/', $this->LE, $string); //Normalise line breaks + $params = array('line-length' => $line_max, 'line-break-chars' => $this->LE); + $s = stream_filter_append($fp, 'convert.quoted-printable-encode', STREAM_FILTER_READ, $params); + fputs($fp, $string); + rewind($fp); + $out = stream_get_contents($fp); + stream_filter_remove($s); + $out = preg_replace('/^\./m', '=2E', $out); //Encode . if it is first char on a line, workaround for bug in Exchange + fclose($fp); + return $out; + } + + /** + * Encode string to q encoding. + * @link http://tools.ietf.org/html/rfc2047 + * @param string $str the text to encode + * @param string $position Where the text is going to be used, see the RFC for what that means + * @access public + * @return string + */ + public function EncodeQ($str, $position = 'text') { + // There should not be any EOL in the string + $encoded = preg_replace('/[\r\n]*/', '', $str); + + switch (strtolower($position)) { + case 'phrase': + $encoded = preg_replace("/([^A-Za-z0-9!*+\/ -])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded); + break; + case 'comment': + $encoded = preg_replace("/([\(\)\"])/e", "'='.sprintf('%02X', ord('\\1'))", $encoded); + case 'text': + default: + // Replace every high ascii, control =, ? and _ characters + //TODO using /e (equivalent to eval()) is probably not a good idea + $encoded = preg_replace('/([\000-\011\013\014\016-\037\075\077\137\177-\377])/e', + "'='.sprintf('%02X', ord(stripslashes('\\1')))", $encoded); + break; + } + + // Replace every spaces to _ (more readable than =20) + $encoded = str_replace(' ', '_', $encoded); + + return $encoded; + } + + /** + * Adds a string or binary attachment (non-filesystem) to the list. + * This method can be used to attach ascii or binary data, + * such as a BLOB record from a database. + * @param string $string String attachment data. + * @param string $filename Name of the attachment. + * @param string $encoding File encoding (see $Encoding). + * @param string $type File extension (MIME) type. + * @return void + */ + public function AddStringAttachment($string, $filename, $encoding = 'base64', $type = 'application/octet-stream') { + // Append to $attachment array + $this->attachment[] = array( + 0 => $string, + 1 => $filename, + 2 => basename($filename), + 3 => $encoding, + 4 => $type, + 5 => true, // isStringAttachment + 6 => 'attachment', + 7 => 0 + ); + } + + /** + * Adds an embedded attachment. This can include images, sounds, and + * just about any other document. Make sure to set the $type to an + * image type. For JPEG images use "image/jpeg" and for GIF images + * use "image/gif". + * @param string $path Path to the attachment. + * @param string $cid Content ID of the attachment. Use this to identify + * the Id for accessing the image in an HTML form. + * @param string $name Overrides the attachment name. + * @param string $encoding File encoding (see $Encoding). + * @param string $type File extension (MIME) type. + * @return bool + */ + public function AddEmbeddedImage($path, $cid, $name = '', $encoding = 'base64', $type = 'application/octet-stream') { + + if ( !@is_file($path) ) { + $this->SetError($this->Lang('file_access') . $path); + return false; + } + + $filename = basename($path); + if ( $name == '' ) { + $name = $filename; + } + + // Append to $attachment array + $this->attachment[] = array( + 0 => $path, + 1 => $filename, + 2 => $name, + 3 => $encoding, + 4 => $type, + 5 => false, // isStringAttachment + 6 => 'inline', + 7 => $cid + ); + + return true; + } + + public function AddStringEmbeddedImage($string, $cid, $filename = '', $encoding = 'base64', $type = 'application/octet-stream') { + // Append to $attachment array + $this->attachment[] = array( + 0 => $string, + 1 => $filename, + 2 => basename($filename), + 3 => $encoding, + 4 => $type, + 5 => true, // isStringAttachment + 6 => 'inline', + 7 => $cid + ); + } + + /** + * Returns true if an inline attachment is present. + * @access public + * @return bool + */ + public function InlineImageExists() { + foreach($this->attachment as $attachment) { + if ($attachment[6] == 'inline') { + return true; + } + } + return false; + } + + public function AttachmentExists() { + foreach($this->attachment as $attachment) { + if ($attachment[6] == 'attachment') { + return true; + } + } + return false; + } + + public function AlternativeExists() { + return strlen($this->AltBody)>0; + } + + ///////////////////////////////////////////////// + // CLASS METHODS, MESSAGE RESET + ///////////////////////////////////////////////// + + /** + * Clears all recipients assigned in the TO array. Returns void. + * @return void + */ + public function ClearAddresses() { + foreach($this->to as $to) { + unset($this->all_recipients[strtolower($to[0])]); + } + $this->to = array(); + } + + /** + * Clears all recipients assigned in the CC array. Returns void. + * @return void + */ + public function ClearCCs() { + foreach($this->cc as $cc) { + unset($this->all_recipients[strtolower($cc[0])]); + } + $this->cc = array(); + } + + /** + * Clears all recipients assigned in the BCC array. Returns void. + * @return void + */ + public function ClearBCCs() { + foreach($this->bcc as $bcc) { + unset($this->all_recipients[strtolower($bcc[0])]); + } + $this->bcc = array(); + } + + /** + * Clears all recipients assigned in the ReplyTo array. Returns void. + * @return void + */ + public function ClearReplyTos() { + $this->ReplyTo = array(); + } + + /** + * Clears all recipients assigned in the TO, CC and BCC + * array. Returns void. + * @return void + */ + public function ClearAllRecipients() { + $this->to = array(); + $this->cc = array(); + $this->bcc = array(); + $this->all_recipients = array(); + } + + /** + * Clears all previously set filesystem, string, and binary + * attachments. Returns void. + * @return void + */ + public function ClearAttachments() { + $this->attachment = array(); + } + + /** + * Clears all custom headers. Returns void. + * @return void + */ + public function ClearCustomHeaders() { + $this->CustomHeader = array(); + } + + ///////////////////////////////////////////////// + // CLASS METHODS, MISCELLANEOUS + ///////////////////////////////////////////////// + + /** + * Adds the error message to the error container. + * @access protected + * @return void + */ + protected function SetError($msg) { + $this->error_count++; + if ($this->Mailer == 'smtp' and !is_null($this->smtp)) { + $lasterror = $this->smtp->getError(); + if (!empty($lasterror) and array_key_exists('smtp_msg', $lasterror)) { + $msg .= '

      ' . $this->Lang('smtp_error') . $lasterror['smtp_msg'] . "

      \n"; + } + } + $this->ErrorInfo = $msg; + } + + /** + * Returns the proper RFC 822 formatted date. + * @access public + * @return string + * @static + */ + public static function RFCDate() { + $tz = date('Z'); + $tzs = ($tz < 0) ? '-' : '+'; + $tz = abs($tz); + $tz = (int)($tz/3600)*100 + ($tz%3600)/60; + $result = sprintf("%s %s%04d", date('D, j M Y H:i:s'), $tzs, $tz); + + return $result; + } + + /** + * Returns the server hostname or 'localhost.localdomain' if unknown. + * @access protected + * @return string + */ + protected function ServerHostname() { + if (!empty($this->Hostname)) { + $result = $this->Hostname; + } elseif (isset($_SERVER['SERVER_NAME'])) { + $result = $_SERVER['SERVER_NAME']; + } else { + $result = 'localhost.localdomain'; + } + + return $result; + } + + /** + * Returns a message in the appropriate language. + * @access protected + * @return string + */ + protected function Lang($key) { + if(count($this->language) < 1) { + $this->SetLanguage('en'); // set the default language + } + + if(isset($this->language[$key])) { + return $this->language[$key]; + } else { + return 'Language string failed to load: ' . $key; + } + } + + /** + * Returns true if an error occurred. + * @access public + * @return bool + */ + public function IsError() { + return ($this->error_count > 0); + } + + /** + * Changes every end of line from CR or LF to CRLF. + * @access public + * @return string + */ + public function FixEOL($str) { + $str = str_replace("\r\n", "\n", $str); + $str = str_replace("\r", "\n", $str); + $str = str_replace("\n", $this->LE, $str); + return $str; + } + + /** + * Adds a custom header. + * @access public + * @return void + */ + public function AddCustomHeader($custom_header) { + $this->CustomHeader[] = explode(':', $custom_header, 2); + } + + /** + * Evaluates the message and returns modifications for inline images and backgrounds + * @access public + * @return $message + */ + public function MsgHTML($message, $basedir = '') { + preg_match_all("/(src|background)=[\"'](.*)[\"']/Ui", $message, $images); + if(isset($images[2])) { + foreach($images[2] as $i => $url) { + // do not change urls for absolute images (thanks to corvuscorax) + if (!preg_match('#^[A-z]+://#', $url)) { + $filename = basename($url); + $directory = dirname($url); + ($directory == '.') ? $directory='': ''; + $cid = 'cid:' . md5($filename); + $ext = pathinfo($filename, PATHINFO_EXTENSION); + $mimeType = self::_mime_types($ext); + if ( strlen($basedir) > 1 && substr($basedir, -1) != '/') { $basedir .= '/'; } + if ( strlen($directory) > 1 && substr($directory, -1) != '/') { $directory .= '/'; } + if ( $this->AddEmbeddedImage($basedir.$directory.$filename, md5($filename), $filename, 'base64', $mimeType) ) { + $message = preg_replace("/".$images[1][$i]."=[\"']".preg_quote($url, '/')."[\"']/Ui", $images[1][$i]."=\"".$cid."\"", $message); + } + } + } + } + $this->IsHTML(true); + $this->Body = $message; + if (empty($this->AltBody)) { + $textMsg = trim(strip_tags(preg_replace('/<(head|title|style|script)[^>]*>.*?<\/\\1>/s', '', $message))); + if (!empty($textMsg)) { + $this->AltBody = html_entity_decode($textMsg, ENT_QUOTES, $this->CharSet); + } + } + if (empty($this->AltBody)) { + $this->AltBody = 'To view this email message, open it in a program that understands HTML!' . "\n\n"; + } + return $message; + } + + /** + * Gets the MIME type of the embedded or inline image + * @param string File extension + * @access public + * @return string MIME type of ext + * @static + */ + public static function _mime_types($ext = '') { + $mimes = array( + 'hqx' => 'application/mac-binhex40', + 'cpt' => 'application/mac-compactpro', + 'doc' => 'application/msword', + 'bin' => 'application/macbinary', + 'dms' => 'application/octet-stream', + 'lha' => 'application/octet-stream', + 'lzh' => 'application/octet-stream', + 'exe' => 'application/octet-stream', + 'class' => 'application/octet-stream', + 'psd' => 'application/octet-stream', + 'so' => 'application/octet-stream', + 'sea' => 'application/octet-stream', + 'dll' => 'application/octet-stream', + 'oda' => 'application/oda', + 'pdf' => 'application/pdf', + 'ai' => 'application/postscript', + 'eps' => 'application/postscript', + 'ps' => 'application/postscript', + 'smi' => 'application/smil', + 'smil' => 'application/smil', + 'mif' => 'application/vnd.mif', + 'xls' => 'application/vnd.ms-excel', + 'ppt' => 'application/vnd.ms-powerpoint', + 'wbxml' => 'application/vnd.wap.wbxml', + 'wmlc' => 'application/vnd.wap.wmlc', + 'dcr' => 'application/x-director', + 'dir' => 'application/x-director', + 'dxr' => 'application/x-director', + 'dvi' => 'application/x-dvi', + 'gtar' => 'application/x-gtar', + 'php' => 'application/x-httpd-php', + 'php4' => 'application/x-httpd-php', + 'php3' => 'application/x-httpd-php', + 'phtml' => 'application/x-httpd-php', + 'phps' => 'application/x-httpd-php-source', + 'js' => 'application/x-javascript', + 'swf' => 'application/x-shockwave-flash', + 'sit' => 'application/x-stuffit', + 'tar' => 'application/x-tar', + 'tgz' => 'application/x-tar', + 'xhtml' => 'application/xhtml+xml', + 'xht' => 'application/xhtml+xml', + 'zip' => 'application/zip', + 'mid' => 'audio/midi', + 'midi' => 'audio/midi', + 'mpga' => 'audio/mpeg', + 'mp2' => 'audio/mpeg', + 'mp3' => 'audio/mpeg', + 'aif' => 'audio/x-aiff', + 'aiff' => 'audio/x-aiff', + 'aifc' => 'audio/x-aiff', + 'ram' => 'audio/x-pn-realaudio', + 'rm' => 'audio/x-pn-realaudio', + 'rpm' => 'audio/x-pn-realaudio-plugin', + 'ra' => 'audio/x-realaudio', + 'rv' => 'video/vnd.rn-realvideo', + 'wav' => 'audio/x-wav', + 'bmp' => 'image/bmp', + 'gif' => 'image/gif', + 'jpeg' => 'image/jpeg', + 'jpg' => 'image/jpeg', + 'jpe' => 'image/jpeg', + 'png' => 'image/png', + 'tiff' => 'image/tiff', + 'tif' => 'image/tiff', + 'css' => 'text/css', + 'html' => 'text/html', + 'htm' => 'text/html', + 'shtml' => 'text/html', + 'txt' => 'text/plain', + 'text' => 'text/plain', + 'log' => 'text/plain', + 'rtx' => 'text/richtext', + 'rtf' => 'text/rtf', + 'xml' => 'text/xml', + 'xsl' => 'text/xml', + 'mpeg' => 'video/mpeg', + 'mpg' => 'video/mpeg', + 'mpe' => 'video/mpeg', + 'qt' => 'video/quicktime', + 'mov' => 'video/quicktime', + 'avi' => 'video/x-msvideo', + 'movie' => 'video/x-sgi-movie', + 'doc' => 'application/msword', + 'word' => 'application/msword', + 'xl' => 'application/excel', + 'eml' => 'message/rfc822' + ); + return (!isset($mimes[strtolower($ext)])) ? 'application/octet-stream' : $mimes[strtolower($ext)]; + } + + /** + * Set (or reset) Class Objects (variables) + * + * Usage Example: + * $page->set('X-Priority', '3'); + * + * @access public + * @param string $name Parameter Name + * @param mixed $value Parameter Value + * NOTE: will not work with arrays, there are no arrays to set/reset + * @todo Should this not be using __set() magic function? + */ + public function set($name, $value = '') { + try { + if (isset($this->$name) ) { + $this->$name = $value; + } else { + throw new phpmailerException($this->Lang('variable_set') . $name, self::STOP_CRITICAL); + } + } catch (Exception $e) { + $this->SetError($e->getMessage()); + if ($e->getCode() == self::STOP_CRITICAL) { + return false; + } + } + return true; + } + + /** + * Strips newlines to prevent header injection. + * @access public + * @param string $str String + * @return string + */ + public function SecureHeader($str) { + $str = str_replace("\r", '', $str); + $str = str_replace("\n", '', $str); + return trim($str); + } + + /** + * Set the private key file and password to sign the message. + * + * @access public + * @param string $key_filename Parameter File Name + * @param string $key_pass Password for private key + */ + public function Sign($cert_filename, $key_filename, $key_pass) { + $this->sign_cert_file = $cert_filename; + $this->sign_key_file = $key_filename; + $this->sign_key_pass = $key_pass; + } + + /** + * Set the private key file and password to sign the message. + * + * @access public + * @param string $key_filename Parameter File Name + * @param string $key_pass Password for private key + */ + public function DKIM_QP($txt) { + $tmp = ''; + $line = ''; + for ($i = 0; $i < strlen($txt); $i++) { + $ord = ord($txt[$i]); + if ( ((0x21 <= $ord) && ($ord <= 0x3A)) || $ord == 0x3C || ((0x3E <= $ord) && ($ord <= 0x7E)) ) { + $line .= $txt[$i]; + } else { + $line .= "=".sprintf("%02X", $ord); + } + } + return $line; + } + + /** + * Generate DKIM signature + * + * @access public + * @param string $s Header + */ + public function DKIM_Sign($s) { + $privKeyStr = file_get_contents($this->DKIM_private); + if ($this->DKIM_passphrase != '') { + $privKey = openssl_pkey_get_private($privKeyStr, $this->DKIM_passphrase); + } else { + $privKey = $privKeyStr; + } + if (openssl_sign($s, $signature, $privKey)) { + return base64_encode($signature); + } + } + + /** + * Generate DKIM Canonicalization Header + * + * @access public + * @param string $s Header + */ + public function DKIM_HeaderC($s) { + $s = preg_replace("/\r\n\s+/", " ", $s); + $lines = explode("\r\n", $s); + foreach ($lines as $key => $line) { + list($heading, $value) = explode(":", $line, 2); + $heading = strtolower($heading); + $value = preg_replace("/\s+/", " ", $value) ; // Compress useless spaces + $lines[$key] = $heading.":".trim($value) ; // Don't forget to remove WSP around the value + } + $s = implode("\r\n", $lines); + return $s; + } + + /** + * Generate DKIM Canonicalization Body + * + * @access public + * @param string $body Message Body + */ + public function DKIM_BodyC($body) { + if ($body == '') return "\r\n"; + // stabilize line endings + $body = str_replace("\r\n", "\n", $body); + $body = str_replace("\n", "\r\n", $body); + // END stabilize line endings + while (substr($body, strlen($body) - 4, 4) == "\r\n\r\n") { + $body = substr($body, 0, strlen($body) - 2); + } + return $body; + } + + /** + * Create the DKIM header, body, as new header + * + * @access public + * @param string $headers_line Header lines + * @param string $subject Subject + * @param string $body Body + */ + public function DKIM_Add($headers_line, $subject, $body) { + $DKIMsignatureType = 'rsa-sha1'; // Signature & hash algorithms + $DKIMcanonicalization = 'relaxed/simple'; // Canonicalization of header/body + $DKIMquery = 'dns/txt'; // Query method + $DKIMtime = time() ; // Signature Timestamp = seconds since 00:00:00 - Jan 1, 1970 (UTC time zone) + $subject_header = "Subject: $subject"; + $headers = explode($this->LE, $headers_line); + foreach($headers as $header) { + if (strpos($header, 'From:') === 0) { + $from_header = $header; + } elseif (strpos($header, 'To:') === 0) { + $to_header = $header; + } + } + $from = str_replace('|', '=7C', $this->DKIM_QP($from_header)); + $to = str_replace('|', '=7C', $this->DKIM_QP($to_header)); + $subject = str_replace('|', '=7C', $this->DKIM_QP($subject_header)) ; // Copied header fields (dkim-quoted-printable + $body = $this->DKIM_BodyC($body); + $DKIMlen = strlen($body) ; // Length of body + $DKIMb64 = base64_encode(pack("H*", sha1($body))) ; // Base64 of packed binary SHA-1 hash of body + $ident = ($this->DKIM_identity == '')? '' : " i=" . $this->DKIM_identity . ";"; + $dkimhdrs = "DKIM-Signature: v=1; a=" . $DKIMsignatureType . "; q=" . $DKIMquery . "; l=" . $DKIMlen . "; s=" . $this->DKIM_selector . ";\r\n". + "\tt=" . $DKIMtime . "; c=" . $DKIMcanonicalization . ";\r\n". + "\th=From:To:Subject;\r\n". + "\td=" . $this->DKIM_domain . ";" . $ident . "\r\n". + "\tz=$from\r\n". + "\t|$to\r\n". + "\t|$subject;\r\n". + "\tbh=" . $DKIMb64 . ";\r\n". + "\tb="; + $toSign = $this->DKIM_HeaderC($from_header . "\r\n" . $to_header . "\r\n" . $subject_header . "\r\n" . $dkimhdrs); + $signed = $this->DKIM_Sign($toSign); + return "X-PHPMAILER-DKIM: phpmailer.worxware.com\r\n".$dkimhdrs.$signed."\r\n"; + } + + protected function doCallback($isSent, $to, $cc, $bcc, $subject, $body) { + if (!empty($this->action_function) && function_exists($this->action_function)) { + $params = array($isSent, $to, $cc, $bcc, $subject, $body); + call_user_func_array($this->action_function, $params); + } + } +} + +class phpmailerException extends Exception { + public function errorMessage() { + $errorMsg = '' . $this->getMessage() . "
      \n"; + return $errorMsg; + } +} +?> diff --git a/shirts4mike/inc/products.php b/shirts4mike/inc/products.php new file mode 100644 index 0000000..efcf493 --- /dev/null +++ b/shirts4mike/inc/products.php @@ -0,0 +1,75 @@ +"; + $output = $output . ''; + $output = $output . '' . $product['; + $output = $output . "

      View Details

      "; + $output = $output . "
      "; + $output = $output . ""; + + return $output; +} + +$products = array(); +$products[101] = array( + "name" => "Logo Shirt, Red", + "img" => "img/shirts/shirt-101.jpg", + "price" => 18, + "paypal" => "9P7DLECFD4LKE", + "sizes" => array("Small","Medium","Large","X-Large") +); +$products[102] = array( + "name" => "Mike the Frog Shirt, Black", + "img" => "img/shirts/shirt-102.jpg", + "price" => 20, + "paypal" => "SXKPTHN2EES3J", + "sizes" => array("Small","Medium","Large","X-Large") +); +$products[103] = array( + "name" => "Mike the Frog Shirt, Blue", + "img" => "img/shirts/shirt-103.jpg", + "price" => 20, + "paypal" => "7T8LK5WXT5Q9J", + "sizes" => array("Small","Medium","Large","X-Large") +); +$products[104] = array( + "name" => "Logo Shirt, Green", + "img" => "img/shirts/shirt-104.jpg", + "price" => 18, + "paypal" => "YKVL5F87E8PCS", + "sizes" => array("Small","Medium","Large","X-Large") +); +$products[105] = array( + "name" => "Mike the Frog Shirt, Yellow", + "img" => "img/shirts/shirt-105.jpg", + "price" => 25, + "paypal" => "4CLP2SCVYM288", + "sizes" => array("Small","Medium","Large","X-Large") +); +$products[106] = array( + "name" => "Logo Shirt, Gray", + "img" => "img/shirts/shirt-106.jpg", + "price" => 20, + "paypal" => "TNAZ2RGYYJ396", + "sizes" => array("Small","Medium","Large","X-Large") +); +$products[107] = array( + "name" => "Logo Shirt, Teal", + "img" => "img/shirts/shirt-107.jpg", + "price" => 20, + "paypal" => "S5FMPJN6Y2C32", + "sizes" => array("Small","Medium","Large","X-Large") +); +$products[108] = array( + "name" => "Mike the Frog Shirt, Orange", + "img" => "img/shirts/shirt-108.jpg", + "price" => 25, + "paypal" => "JMFK7P7VEHS44", + "sizes" => array("Large","X-Large") +); + +?> \ No newline at end of file diff --git a/shirts4mike/index.php b/shirts4mike/index.php new file mode 100755 index 0000000..1909844 --- /dev/null +++ b/shirts4mike/index.php @@ -0,0 +1,47 @@ + + + +
      + +
      + +

      Mike’s Latest Shirts

      + + +
        + $product) { + $position = $position + 1; + if ($total_products - $position < 4) { + $list_view_html = get_list_view_html($product_id,$product) . $list_view_html; + } + } + echo $list_view_html; + ?> +
      + +
      + +
      + + \ No newline at end of file diff --git a/shirts4mike/receipt/index.php b/shirts4mike/receipt/index.php new file mode 100644 index 0000000..0c6af65 --- /dev/null +++ b/shirts4mike/receipt/index.php @@ -0,0 +1,20 @@ + + +
      + +
      + +

      Thank You!

      + +

      Thank you for your payment. Your transaction has been completed, and a receipt for your purchase has been emailed to you. You may log into your account at www.paypal.com/us to view details of this transaction.

      + +

      Need another shirt already? Visit the Shirts Listing page again.

      + +
      + +
      + + \ No newline at end of file diff --git a/shirts4mike/sass/test.scss b/shirts4mike/sass/test.scss new file mode 100644 index 0000000..e69de29 diff --git a/shirts4mike/shirt/index.php b/shirts4mike/shirt/index.php new file mode 100644 index 0000000..1eb4e3b --- /dev/null +++ b/shirts4mike/shirt/index.php @@ -0,0 +1,64 @@ + + +
      + +
      + + + +
      + + " alt=""> + +
      + +
      + +

      $

      + +
      + + "> + "> + + + + + +
      + + + + +
      + +
      + +

      * All shirts are designed by Mike the Frog.

      + +
      + +
      + +
      + + \ No newline at end of file diff --git a/shirts4mike/shirts/index.php b/shirts4mike/shirts/index.php new file mode 100644 index 0000000..a29fbc2 --- /dev/null +++ b/shirts4mike/shirts/index.php @@ -0,0 +1,23 @@ + + +
      + +
      + +

      Mike’s Full Catalog of Shirts

      + +
        + $product) { + echo get_list_view_html($product_id,$product); + } + ?> +
      + +
      + +
      + + \ No newline at end of file

      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�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 literal 0 HcmV?d00001 diff --git a/shirts4mike/inc/footer.php b/shirts4mike/inc/footer.php new file mode 100644 index 0000000..a4fa264 --- /dev/null +++ b/shirts4mike/inc/footer.php @@ -0,0 +1,19 @@ + + +

      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 literal 0 HcmV?d00001 diff --git a/shirts4mike/img/shirts/shirt-105.jpg b/shirts4mike/img/shirts/shirt-105.jpg new file mode 100755 index 0000000000000000000000000000000000000000..f9242ba447942d96b591b8536089b1db62422162 GIT binary patch literal 108067 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 XE`W0FGzNff6mnkh1JowEF%&ZCu`g`j=lx6w0 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