From 1f2d0b645329e07c133f43fc1c1a59a87e87b563 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Lebleu?= Date: Fri, 15 Jul 2016 14:44:22 +0200 Subject: [PATCH] [clean] Remove old sources and configurations --- conf/caldav.php | 103 - conf/config.php | 290 - conf/database.php | 62 - sources/CHANGELOG | 159 - sources/LICENSE | 674 - sources/README.md | 36 - sources/artwork/agendav_300transp.png | Bin 5677 -> 0 bytes sources/artwork/agendav_logo.svg | 99 - sources/artwork/favicon.ico | Bin 14118 -> 0 bytes sources/artwork/favicon128.png | Bin 969 -> 0 bytes sources/artwork/favicon16.png | Bin 300 -> 0 bytes sources/artwork/favicon32.png | Bin 421 -> 0 bytes sources/artwork/favicon64.png | Bin 606 -> 0 bytes sources/artwork/raw.png | Bin 1670 -> 0 bytes sources/bin/.gitignore | 3 - sources/bin/agendavcli | 15 - sources/bin/prepare-static.php | 121 - sources/doc/Makefile | 130 - sources/doc/source/_themes/LICENSE | 45 - .../doc/source/_themes/flask_theme_support.py | 86 - .../doc/source/_themes/proBlue/LICENSE.txt | 9 - sources/doc/source/_themes/proBlue/README.txt | 9 - .../source/_themes/proBlue/static/proBlue.css | 316 - sources/doc/source/_themes/proBlue/theme.conf | 3 - sources/doc/source/admin/configuration.rst | 461 - sources/doc/source/admin/index.rst | 10 - sources/doc/source/admin/installation.rst | 134 - sources/doc/source/admin/troubleshooting.rst | 83 - sources/doc/source/admin/upgrading.rst | 74 - sources/doc/source/agendav_160px.png | Bin 3098 -> 0 bytes sources/doc/source/conf.py | 223 - sources/doc/source/index.rst | 20 - sources/doc/source/releasenotes.rst | 171 - sources/doc/source/translations.rst | 31 - sources/libs/awl/AWLUtilities.php | 543 - sources/libs/awl/Translation.php | 118 - sources/libs/awl/XMLDocument.php | 307 - sources/libs/awl/XMLElement.php | 345 - sources/libs/caldav-client/README | 8 - sources/libs/caldav-client/caldav-client.php | 1219 -- sources/libs/font-awesome/.gitignore | 29 - .../libs/font-awesome/FontAwesome-Vectors.pdf | 3169 ----- sources/libs/font-awesome/FontAwesome.ttf | Bin 23156 -> 0 bytes sources/libs/font-awesome/README.md | 18 - .../font-awesome/css/font-awesome-ie7.css | 645 - .../libs/font-awesome/css/font-awesome.css | 303 - .../docs/assets/css/font-awesome-ie7.css | 213 - .../docs/assets/css/font-awesome.css | 303 - .../font-awesome/docs/assets/css/prettify.css | 30 - .../font-awesome/docs/assets/css/site.css | 4904 -------- .../docs/assets/font/fontawesome-webfont.eot | Bin 38708 -> 0 bytes .../docs/assets/font/fontawesome-webfont.svg | 255 - .../docs/assets/font/fontawesome-webfont.ttf | Bin 68476 -> 0 bytes .../docs/assets/font/fontawesome-webfont.woff | Bin 41752 -> 0 bytes .../assets/font/museo_slab_300-webfont.eot | Bin 51440 -> 0 bytes .../assets/font/museo_slab_300-webfont.ttf | Bin 51260 -> 0 bytes .../assets/font/museo_slab_500-webfont.eot | Bin 55516 -> 0 bytes .../assets/font/museo_slab_500-webfont.ttf | Bin 55336 -> 0 bytes .../docs/assets/font/proximanova-webfont.eot | Bin 31323 -> 0 bytes .../docs/assets/font/proximanova-webfont.ttf | Bin 89732 -> 0 bytes .../font-awesome/docs/assets/ico/favicon.ico | Bin 1150 -> 0 bytes .../docs/assets/js/backbone.min.js | 37 - .../docs/assets/js/index/index.js | 89 - .../docs/assets/js/jquery-1.7.1.min.js | 4 - .../docs/assets/js/prettify.min.js | 28 - .../assets/js/tw-bs-201/bootstrap-alert.js | 94 - .../assets/js/tw-bs-201/bootstrap-button.js | 98 - .../assets/js/tw-bs-201/bootstrap-carousel.js | 157 - .../assets/js/tw-bs-201/bootstrap-collapse.js | 136 - .../assets/js/tw-bs-201/bootstrap-dropdown.js | 92 - .../assets/js/tw-bs-201/bootstrap-modal.js | 210 - .../assets/js/tw-bs-201/bootstrap-popover.js | 95 - .../js/tw-bs-201/bootstrap-scrollspy.js | 125 - .../docs/assets/js/tw-bs-201/bootstrap-tab.js | 130 - .../assets/js/tw-bs-201/bootstrap-tooltip.js | 270 - .../js/tw-bs-201/bootstrap-transition.js | 51 - .../js/tw-bs-201/bootstrap-typeahead.js | 271 - .../docs/assets/js/underscore.min.js | 31 - .../docs/assets/less/font-awesome-ie7.less | 245 - .../docs/assets/less/font-awesome.less | 327 - .../docs/assets/less/font-site.less | 26 - .../font-awesome/docs/assets/less/mixins.less | 43 - .../font-awesome/docs/assets/less/site.less | 300 - .../docs/assets/less/twbs-203/accordion.less | 33 - .../docs/assets/less/twbs-203/alerts.less | 58 - .../docs/assets/less/twbs-203/bootstrap.less | 62 - .../assets/less/twbs-203/breadcrumbs.less | 24 - .../assets/less/twbs-203/button-groups.less | 191 - .../docs/assets/less/twbs-203/buttons.less | 191 - .../docs/assets/less/twbs-203/carousel.less | 121 - .../docs/assets/less/twbs-203/close.less | 29 - .../docs/assets/less/twbs-203/code.less | 57 - .../less/twbs-203/component-animations.less | 20 - .../docs/assets/less/twbs-203/dropdowns.less | 143 - .../docs/assets/less/twbs-203/forms.less | 584 - .../docs/assets/less/twbs-203/grid.less | 5 - .../docs/assets/less/twbs-203/hero-unit.less | 22 - .../assets/less/twbs-203/labels-badges.less | 55 - .../docs/assets/less/twbs-203/layouts.less | 17 - .../docs/assets/less/twbs-203/mixins.less | 631 - .../docs/assets/less/twbs-203/modals.less | 90 - .../docs/assets/less/twbs-203/navbar.less | 364 - .../docs/assets/less/twbs-203/navs.less | 363 - .../docs/assets/less/twbs-203/pager.less | 36 - .../docs/assets/less/twbs-203/pagination.less | 56 - .../docs/assets/less/twbs-203/popovers.less | 49 - .../assets/less/twbs-203/progress-bars.less | 117 - .../docs/assets/less/twbs-203/reset.less | 126 - .../less/twbs-203/responsive-1200px-min.less | 26 - .../less/twbs-203/responsive-767px-max.less | 149 - .../less/twbs-203/responsive-768px-979px.less | 17 - .../less/twbs-203/responsive-navbar.less | 146 - .../less/twbs-203/responsive-utilities.less | 41 - .../docs/assets/less/twbs-203/responsive.less | 48 - .../assets/less/twbs-203/scaffolding.less | 29 - .../docs/assets/less/twbs-203/sprites.less | 191 - .../docs/assets/less/twbs-203/tables.less | 176 - .../docs/assets/less/twbs-203/thumbnails.less | 47 - .../docs/assets/less/twbs-203/tooltip.less | 35 - .../docs/assets/less/twbs-203/type.less | 235 - .../docs/assets/less/twbs-203/utilities.less | 23 - .../docs/assets/less/twbs-203/variables.less | 205 - .../docs/assets/less/twbs-203/wells.less | 27 - .../docs/assets/less/variables.less | 206 - sources/libs/font-awesome/docs/index.html | 1087 -- .../font-awesome/font/fontawesome-webfont.eot | Bin 38708 -> 0 bytes .../font-awesome/font/fontawesome-webfont.svg | 255 - .../font-awesome/font/fontawesome-webfont.ttf | Bin 68476 -> 0 bytes .../font/fontawesome-webfont.woff | Bin 41752 -> 0 bytes .../font-awesome/less/font-awesome-ie7.less | 245 - .../libs/font-awesome/less/font-awesome.less | 329 - .../libs/font-awesome/sass/font-awesome.sass | 712 -- .../libs/font-awesome/sass/font-awesome.scss | 329 - .../libs/icalcreator/iCalcreator.class.php | 10472 ---------------- sources/sql/changes/1.0_to_1.1.sql | 15 - sources/sql/changes/1.1.1_to_1.2.mysql | 5 - sources/sql/changes/1.1_to_1.1.1.sql | 2 - sources/sql/mysql.schema.sql | 28 - sources/sql/pgsql.schema.sql | 28 - sources/web/application/.htaccess | 1 - sources/web/application/cache/.htaccess | 1 - sources/web/application/cache/index.html | 10 - .../application/controllers/caldav2json.php | 143 - .../web/application/controllers/calendar.php | 443 - sources/web/application/controllers/cli.php | 74 - .../controllers/dialog_generator.php | 363 - sources/web/application/controllers/event.php | 850 -- .../web/application/controllers/index.html | 10 - .../application/controllers/js_generator.php | 80 - sources/web/application/controllers/login.php | 122 - sources/web/application/controllers/main.php | 81 - sources/web/application/controllers/prefs.php | 184 - .../web/application/controllers/strings.php | 41 - sources/web/application/core/index.html | 10 - sources/web/application/errors/error_404.php | 34 - sources/web/application/errors/error_db.php | 34 - .../web/application/errors/error_general.php | 34 - sources/web/application/errors/error_php.php | 10 - sources/web/application/errors/index.html | 10 - .../application/helpers/MY_html_helper.php | 121 - sources/web/application/helpers/index.html | 10 - sources/web/application/hooks/Defs.php | 75 - sources/web/application/hooks/index.html | 10 - sources/web/application/index.html | 10 - .../language/english/calendar_lang.php | 51 - .../language/english/date_lang.php | 61 - .../application/language/english/db_lang.php | 29 - .../language/english/email_lang.php | 24 - .../language/english/form_validation_lang.php | 28 - .../application/language/english/ftp_lang.php | 18 - .../language/english/imglib_lang.php | 24 - .../application/language/english/index.html | 10 - .../language/english/migration_lang.php | 13 - .../language/english/number_lang.php | 10 - .../language/english/profiler_lang.php | 25 - .../language/english/unit_test_lang.php | 25 - .../language/english/upload_lang.php | 22 - .../application/language/et/calendar_lang.php | 48 - .../web/application/language/et/date_lang.php | 57 - .../web/application/language/et/db_lang.php | 28 - .../application/language/et/email_lang.php | 21 - .../language/et/form_validation_lang.php | 21 - .../web/application/language/et/ftp_lang.php | 16 - .../application/language/et/imglib_lang.php | 21 - .../language/et/migration_lang.php | 13 - .../application/language/et/number_lang.php | 8 - .../application/language/et/profiler_lang.php | 21 - .../language/et/unit_test_lang.php | 23 - .../application/language/et/upload_lang.php | 19 - .../language/et/validation_lang.php | 18 - .../language/french/calendar_lang.php | 48 - .../application/language/french/date_lang.php | 57 - .../application/language/french/db_lang.php | 27 - .../language/french/email_lang.php | 21 - .../language/french/form_validation_lang.php | 21 - .../application/language/french/ftp_lang.php | 15 - .../language/french/imglib_lang.php | 21 - .../language/french/migration_lang.php | 13 - .../language/french/number_lang.php | 8 - .../language/french/profiler_lang.php | 20 - .../language/french/unit_test_lang.php | 22 - .../language/french/upload_lang.php | 19 - .../language/french/validation_lang.php | 18 - .../language/german/calendar_lang.php | 48 - .../application/language/german/date_lang.php | 57 - .../application/language/german/db_lang.php | 27 - .../language/german/email_lang.php | 21 - .../language/german/form_validation_lang.php | 21 - .../application/language/german/ftp_lang.php | 15 - .../language/german/imglib_lang.php | 21 - .../language/german/migration_lang.php | 13 - .../language/german/number_lang.php | 8 - .../language/german/profiler_lang.php | 20 - .../language/german/unit_test_lang.php | 22 - .../language/german/upload_lang.php | 19 - .../language/german/validation_lang.php | 18 - .../language/italian/calendar_lang.php | 48 - .../language/italian/date_lang.php | 57 - .../application/language/italian/db_lang.php | 27 - .../language/italian/email_lang.php | 21 - .../language/italian/form_validation_lang.php | 21 - .../application/language/italian/ftp_lang.php | 15 - .../language/italian/imglib_lang.php | 21 - .../language/italian/migration_lang.php | 13 - .../language/italian/number_lang.php | 8 - .../language/italian/profiler_lang.php | 20 - .../language/italian/unit_test_lang.php | 22 - .../language/italian/upload_lang.php | 19 - .../language/italian/validation_lang.php | 18 - .../application/language/nl/calendar_lang.php | 48 - .../web/application/language/nl/date_lang.php | 57 - .../web/application/language/nl/db_lang.php | 27 - .../application/language/nl/email_lang.php | 21 - .../language/nl/form_validation_lang.php | 21 - .../web/application/language/nl/ftp_lang.php | 15 - .../application/language/nl/imglib_lang.php | 21 - .../language/nl/migration_lang.php | 13 - .../application/language/nl/number_lang.php | 8 - .../application/language/nl/profiler_lang.php | 20 - .../language/nl/unit_test_lang.php | 22 - .../application/language/nl/upload_lang.php | 19 - .../language/nl/validation_lang.php | 18 - .../language/pt_BR/calendar_lang.php | 48 - .../application/language/pt_BR/date_lang.php | 57 - .../application/language/pt_BR/db_lang.php | 27 - .../application/language/pt_BR/email_lang.php | 21 - .../language/pt_BR/form_validation_lang.php | 21 - .../application/language/pt_BR/ftp_lang.php | 15 - .../language/pt_BR/imglib_lang.php | 21 - .../language/pt_BR/migration_lang.php | 13 - .../language/pt_BR/number_lang.php | 8 - .../language/pt_BR/profiler_lang.php | 20 - .../language/pt_BR/unit_test_lang.php | 22 - .../language/pt_BR/upload_lang.php | 19 - .../language/pt_BR/validation_lang.php | 18 - .../language/spanish/calendar_lang.php | 46 - .../language/spanish/date_lang.php | 55 - .../application/language/spanish/db_lang.php | 25 - .../language/spanish/email_lang.php | 19 - .../language/spanish/form_validation_lang.php | 19 - .../application/language/spanish/ftp_lang.php | 13 - .../language/spanish/imglib_lang.php | 19 - .../language/spanish/migration_lang.php | 13 - .../language/spanish/number_lang.php | 6 - .../language/spanish/profiler_lang.php | 18 - .../language/spanish/unit_test_lang.php | 20 - .../language/spanish/upload_lang.php | 17 - .../language/spanish/validation_lang.php | 16 - sources/web/application/libraries/Caldav.php | 851 -- .../application/libraries/CalendarInfo.php | 41 - sources/web/application/libraries/Dates.php | 431 - .../application/libraries/Extended_logs.php | 44 - .../web/application/libraries/Icshelper.php | 1038 -- sources/web/application/libraries/MY_Log.php | 135 - .../web/application/libraries/Preferences.php | 63 - .../web/application/libraries/Reminder.php | 131 - sources/web/application/libraries/Session.php | 657 - .../application/libraries/Timezonemanager.php | 51 - sources/web/application/libraries/index.html | 10 - .../web/application/libraries/recurrence.php | 151 - sources/web/application/logs/index.html | 10 - .../migrations/001_share_write_access.php | 22 - .../migrations/002_user_preferences.php | 9 - .../migrations/003_prefs_no_eav.php | 36 - .../web/application/migrations/004_ipv6.php | 25 - sources/web/application/models/auth.php | 100 - sources/web/application/models/i18n.php | 139 - sources/web/application/models/index.html | 10 - .../application/models/shared_calendars.php | 259 - sources/web/application/models/userpref.php | 70 - .../web/application/third_party/index.html | 10 - .../web/application/views/calendar_page.php | 15 - sources/web/application/views/center.php | 2 - .../web/application/views/common_header.php | 47 - .../views/dialogs/create_or_modify_event.php | 254 - .../views/dialogs/on_the_fly_form.php | 8 - sources/web/application/views/footer.php | 88 - sources/web/application/views/index.html | 10 - .../views/js_code/calendar_colors.php | 17 - .../js_code/close_dialog_and_show_error.php | 11 - .../application/views/js_code/preferences.php | 44 - .../views/js_code/session_expired.php | 7 - .../views/js_code/session_refresh.php | 7 - sources/web/application/views/layouts/app.php | 18 - .../web/application/views/layouts/plain.php | 14 - sources/web/application/views/login.php | 61 - sources/web/application/views/navbar.php | 20 - .../views/preferences_calendars.php | 37 - .../application/views/preferences_page.php | 44 - sources/web/application/views/sidebar.php | 56 - .../web/application/views/welcome_message.php | 64 - sources/web/codeigniter_license.txt | 51 - sources/web/config/.gitignore | 8 - sources/web/config/advanced.php | 284 - sources/web/config/autoload.php | 126 - sources/web/config/caldav.php.template | 102 - sources/web/config/config.php.template | 289 - sources/web/config/constants.php | 41 - sources/web/config/database.php.template | 62 - sources/web/config/defaults.php | 243 - sources/web/config/doctypes.php | 15 - sources/web/config/foreign_chars.php | 64 - sources/web/config/hooks.php | 32 - sources/web/config/index.html | 10 - sources/web/config/languages.php | 36 - sources/web/config/migration.php | 41 - sources/web/config/mimes.php | 106 - sources/web/config/profiler.php | 17 - sources/web/config/routes.php | 46 - sources/web/config/smileys.php | 66 - sources/web/config/user_agents.php | 178 - sources/web/css_src/Makefile | 36 - sources/web/css_src/agendav.less | 406 - sources/web/css_src/agendav.print.less | 56 - sources/web/css_src/custom_bootstrap.less | 79 - sources/web/css_src/variables_agendav.less | 203 - sources/web/lang/de_DE/de_DE.php | 250 - sources/web/lang/en/en.php | 250 - sources/web/lang/es_ES/es_ES.php | 255 - sources/web/lang/et/et.php | 249 - sources/web/lang/fi/fi.php | 250 - sources/web/lang/fr_FR/fr_FR.php | 250 - sources/web/lang/it_IT/it_IT.php | 248 - sources/web/lang/nl_NL/nl_NL.php | 249 - sources/web/lang/pt_BR/pt_BR.php | 250 - sources/web/public/configtest.php | 229 - sources/web/public/css/Aristo_20111229.css | 735 -- sources/web/public/css/agendav-1.2.6.2.css | 3 - .../web/public/css/agendav-1.2.6.2.print.css | 1 - sources/web/public/css/app.css | 321 - sources/web/public/css/app.print.css | 43 - sources/web/public/css/bootstrap.agendav.css | 3366 ----- sources/web/public/css/colorpicker.css | 34 - sources/web/public/css/freeow.css | 114 - sources/web/public/css/fullcalendar.css | 724 -- sources/web/public/css/jquery.qtip.min.css | 1 - sources/web/public/css/timePicker.css | 29 - sources/web/public/favicon.ico | Bin 14118 -> 0 bytes .../web/public/font/fontawesome-webfont.eot | Bin 38708 -> 0 bytes .../web/public/font/fontawesome-webfont.svg | 255 - .../web/public/font/fontawesome-webfont.ttf | Bin 68476 -> 0 bytes .../web/public/font/fontawesome-webfont.woff | Bin 41752 -> 0 bytes sources/web/public/img/US.gif | Bin 3888 -> 0 bytes sources/web/public/img/add.png | Bin 698 -> 0 bytes sources/web/public/img/agendav_100transp.png | Bin 1830 -> 0 bytes sources/web/public/img/agendav_300transp.png | Bin 5677 -> 0 bytes sources/web/public/img/agendav_small.png | Bin 1852 -> 0 bytes sources/web/public/img/arrow_colorpicker.gif | Bin 111 -> 0 bytes sources/web/public/img/bg_11.png | Bin 2079 -> 0 bytes sources/web/public/img/bg_calendar_header.png | Bin 296 -> 0 bytes .../public/img/button-icons/arrow_left.png | Bin 371 -> 0 bytes .../public/img/button-icons/calendar_add.png | Bin 733 -> 0 bytes .../img/button-icons/calendar_delete.png | Bin 749 -> 0 bytes .../public/img/button-icons/calendar_edit.png | Bin 794 -> 0 bytes .../web/public/img/button-icons/cancel.png | Bin 727 -> 0 bytes sources/web/public/img/button-icons/ok.png | Bin 451 -> 0 bytes sources/web/public/img/calendar-small.png | Bin 1626 -> 0 bytes sources/web/public/img/calendar_add.png | Bin 733 -> 0 bytes sources/web/public/img/calendar_link.png | Bin 815 -> 0 bytes sources/web/public/img/close.png | Bin 617 -> 0 bytes sources/web/public/img/delete.png | Bin 473 -> 0 bytes sources/web/public/img/exit.png | Bin 995 -> 0 bytes .../public/img/glyphicons-halflings-white.png | Bin 8777 -> 0 bytes .../web/public/img/glyphicons-halflings.png | Bin 12799 -> 0 bytes sources/web/public/img/icon_date_label.png | Bin 745 -> 0 bytes sources/web/public/img/icon_generic_label.png | Bin 372 -> 0 bytes .../web/public/img/icon_location_label.png | Bin 808 -> 0 bytes .../bg_fallback.png | Bin 3721 -> 0 bytes .../icon_sprite.png | Bin 3217 -> 0 bytes .../progress_bar.gif | Bin 502 -> 0 bytes .../slider_handles.png | Bin 4453 -> 0 bytes .../ui-icons_222222_256x240.png | Bin 4369 -> 0 bytes .../ui-icons_454545_256x240.png | Bin 4369 -> 0 bytes sources/web/public/img/loading.gif | Bin 847 -> 0 bytes sources/web/public/img/logo_us.png | Bin 9282 -> 0 bytes sources/web/public/img/popup_error.png | Bin 2009 -> 0 bytes sources/web/public/img/popup_ok.png | Bin 1863 -> 0 bytes sources/web/public/img/setting_tools.png | Bin 1017 -> 0 bytes sources/web/public/img/share.png | Bin 553 -> 0 bytes sources/web/public/img/share_big.png | Bin 1139 -> 0 bytes sources/web/public/img/user.png | Bin 593 -> 0 bytes sources/web/public/index.php | 209 - sources/web/public/js/agendav-1.2.6.2.js | 298 - sources/web/public/js/app.js | 2044 --- sources/web/public/js/jquery-base-1.2.6.2.js | 128 - sources/web/public/js/libs/dust-core-1.0.0.js | 727 -- .../web/public/js/libs/fullcalendar.min.js | 134 - .../web/public/js/libs/jquery-1.7.2.min.js | 4 - .../js/libs/jquery-ui-1.8.23.custom.min.js | 125 - .../web/public/js/libs/jquery.colorPicker.js | 164 - .../web/public/js/libs/jquery.colorhelpers.js | 179 - sources/web/public/js/libs/jquery.cookie.js | 47 - .../web/public/js/libs/jquery.freeow.min.js | 16 - sources/web/public/js/libs/jquery.qtip.min.js | 2 - .../public/js/libs/jquery.serializeobject.js | 25 - .../js/libs/jquery.timePicker.20110318.js | 277 - sources/web/public/js/templates/templates.js | 1 - sources/web/public/js/translation.js | 92 - sources/web/system/.htaccess | 1 - sources/web/system/core/Benchmark.php | 118 - sources/web/system/core/CodeIgniter.php | 402 - sources/web/system/core/Common.php | 564 - sources/web/system/core/Config.php | 379 - sources/web/system/core/Controller.php | 64 - sources/web/system/core/Exceptions.php | 193 - sources/web/system/core/Hooks.php | 248 - sources/web/system/core/Input.php | 850 -- sources/web/system/core/Lang.php | 160 - sources/web/system/core/Loader.php | 1248 -- sources/web/system/core/Model.php | 57 - sources/web/system/core/Output.php | 574 - sources/web/system/core/Router.php | 522 - sources/web/system/core/Security.php | 877 -- sources/web/system/core/URI.php | 654 - sources/web/system/core/Utf8.php | 165 - sources/web/system/core/index.html | 10 - sources/web/system/database/DB.php | 162 - sources/web/system/database/DB_active_rec.php | 2045 --- sources/web/system/database/DB_cache.php | 195 - sources/web/system/database/DB_driver.php | 1410 --- sources/web/system/database/DB_forge.php | 382 - sources/web/system/database/DB_result.php | 410 - sources/web/system/database/DB_utility.php | 414 - .../database/drivers/cubrid/cubrid_driver.php | 792 -- .../database/drivers/cubrid/cubrid_forge.php | 288 - .../database/drivers/cubrid/cubrid_result.php | 202 - .../drivers/cubrid/cubrid_utility.php | 108 - .../system/database/drivers/cubrid/index.html | 10 - .../web/system/database/drivers/index.html | 10 - .../system/database/drivers/mssql/index.html | 10 - .../database/drivers/mssql/mssql_driver.php | 667 - .../database/drivers/mssql/mssql_forge.php | 248 - .../database/drivers/mssql/mssql_result.php | 169 - .../database/drivers/mssql/mssql_utility.php | 88 - .../system/database/drivers/mysql/index.html | 10 - .../database/drivers/mysql/mysql_driver.php | 779 -- .../database/drivers/mysql/mysql_forge.php | 273 - .../database/drivers/mysql/mysql_result.php | 174 - .../database/drivers/mysql/mysql_utility.php | 210 - .../system/database/drivers/mysqli/index.html | 10 - .../database/drivers/mysqli/mysqli_driver.php | 776 -- .../database/drivers/mysqli/mysqli_forge.php | 258 - .../database/drivers/mysqli/mysqli_result.php | 174 - .../drivers/mysqli/mysqli_utility.php | 87 - .../system/database/drivers/oci8/index.html | 10 - .../database/drivers/oci8/oci8_driver.php | 808 -- .../database/drivers/oci8/oci8_forge.php | 248 - .../database/drivers/oci8/oci8_result.php | 219 - .../database/drivers/oci8/oci8_utility.php | 87 - .../system/database/drivers/odbc/index.html | 10 - .../database/drivers/odbc/odbc_driver.php | 637 - .../database/drivers/odbc/odbc_forge.php | 266 - .../database/drivers/odbc/odbc_result.php | 228 - .../database/drivers/odbc/odbc_utility.php | 103 - .../system/database/drivers/pdo/index.html | 10 - .../database/drivers/pdo/pdo_driver.php | 812 -- .../system/database/drivers/pdo/pdo_forge.php | 266 - .../database/drivers/pdo/pdo_result.php | 182 - .../database/drivers/pdo/pdo_utility.php | 103 - .../database/drivers/postgre/index.html | 10 - .../drivers/postgre/postgre_driver.php | 703 -- .../drivers/postgre/postgre_forge.php | 299 - .../drivers/postgre/postgre_result.php | 169 - .../drivers/postgre/postgre_utility.php | 88 - .../system/database/drivers/sqlite/index.html | 10 - .../database/drivers/sqlite/sqlite_driver.php | 658 - .../database/drivers/sqlite/sqlite_forge.php | 265 - .../database/drivers/sqlite/sqlite_result.php | 179 - .../drivers/sqlite/sqlite_utility.php | 96 - .../system/database/drivers/sqlsrv/index.html | 10 - .../database/drivers/sqlsrv/sqlsrv_driver.php | 599 - .../database/drivers/sqlsrv/sqlsrv_forge.php | 248 - .../database/drivers/sqlsrv/sqlsrv_result.php | 169 - .../drivers/sqlsrv/sqlsrv_utility.php | 88 - sources/web/system/database/index.html | 10 - sources/web/system/fonts/index.html | 10 - sources/web/system/fonts/texb.ttf | Bin 143830 -> 0 bytes sources/web/system/helpers/array_helper.php | 119 - sources/web/system/helpers/captcha_helper.php | 246 - sources/web/system/helpers/cookie_helper.php | 103 - sources/web/system/helpers/date_helper.php | 611 - .../web/system/helpers/directory_helper.php | 80 - .../web/system/helpers/download_helper.php | 107 - sources/web/system/helpers/email_helper.php | 62 - sources/web/system/helpers/file_helper.php | 479 - sources/web/system/helpers/form_helper.php | 1054 -- sources/web/system/helpers/html_helper.php | 436 - sources/web/system/helpers/index.html | 10 - .../web/system/helpers/inflector_helper.php | 203 - .../web/system/helpers/language_helper.php | 58 - sources/web/system/helpers/number_helper.php | 76 - sources/web/system/helpers/path_helper.php | 72 - .../web/system/helpers/security_helper.php | 128 - sources/web/system/helpers/smiley_helper.php | 281 - sources/web/system/helpers/string_helper.php | 307 - sources/web/system/helpers/text_helper.php | 535 - .../web/system/helpers/typography_helper.php | 93 - sources/web/system/helpers/url_helper.php | 594 - sources/web/system/helpers/xml_helper.php | 71 - sources/web/system/index.html | 10 - .../system/language/english/calendar_lang.php | 51 - .../web/system/language/english/date_lang.php | 61 - .../web/system/language/english/db_lang.php | 29 - .../system/language/english/email_lang.php | 24 - .../language/english/form_validation_lang.php | 29 - .../web/system/language/english/ftp_lang.php | 18 - .../system/language/english/imglib_lang.php | 24 - .../web/system/language/english/index.html | 10 - .../language/english/migration_lang.php | 13 - .../system/language/english/number_lang.php | 10 - .../system/language/english/profiler_lang.php | 25 - .../language/english/unit_test_lang.php | 25 - .../system/language/english/upload_lang.php | 22 - sources/web/system/language/index.html | 10 - sources/web/system/libraries/Cache/Cache.php | 216 - .../libraries/Cache/drivers/Cache_apc.php | 151 - .../libraries/Cache/drivers/Cache_dummy.php | 129 - .../libraries/Cache/drivers/Cache_file.php | 196 - .../Cache/drivers/Cache_memcached.php | 218 - sources/web/system/libraries/Calendar.php | 475 - sources/web/system/libraries/Cart.php | 552 - sources/web/system/libraries/Driver.php | 229 - sources/web/system/libraries/Email.php | 2092 --- sources/web/system/libraries/Encrypt.php | 547 - .../web/system/libraries/Form_validation.php | 1382 -- sources/web/system/libraries/Ftp.php | 660 - sources/web/system/libraries/Image_lib.php | 1537 --- sources/web/system/libraries/Javascript.php | 871 -- sources/web/system/libraries/Log.php | 114 - sources/web/system/libraries/Migration.php | 338 - sources/web/system/libraries/Pagination.php | 340 - sources/web/system/libraries/Parser.php | 212 - sources/web/system/libraries/Profiler.php | 558 - sources/web/system/libraries/Session.php | 777 -- sources/web/system/libraries/Sha1.php | 251 - sources/web/system/libraries/Table.php | 531 - sources/web/system/libraries/Trackback.php | 548 - sources/web/system/libraries/Typography.php | 410 - sources/web/system/libraries/Unit_test.php | 383 - sources/web/system/libraries/Upload.php | 1136 -- sources/web/system/libraries/User_agent.php | 549 - sources/web/system/libraries/Xmlrpc.php | 1423 --- sources/web/system/libraries/Xmlrpcs.php | 612 - sources/web/system/libraries/Zip.php | 423 - sources/web/system/libraries/index.html | 10 - .../system/libraries/javascript/Jquery.php | 1071 -- sources/web/templates_src/compile.sh | 3 - sources/web/templates_src/duster.js | 49 - .../src/calendar_basic_form_part.dust | 21 - .../src/calendar_create_dialog.dust | 5 - .../src/calendar_delete_dialog.dust | 16 - .../src/calendar_list_entry.dust | 24 - .../src/calendar_modify_dialog.dust | 41 - .../src/calendar_share_access_options.dust | 2 - .../templates_src/src/calendar_share_row.dust | 16 - .../src/calendar_share_table.dust | 42 - .../templates_src/src/datepicker_button.dust | 5 - .../src/event_delete_dialog.dust | 20 - .../src/event_details_popup.dust | 42 - sources/web/templates_src/src/form_close.dust | 1 - .../templates_src/src/form_element_end.dust | 3 - .../templates_src/src/form_element_start.dust | 4 - sources/web/templates_src/src/form_open.dust | 4 - .../src/reminder_description.dust | 14 - .../web/templates_src/src/reminder_row.dust | 63 - .../templates_src/src/reminders_table.dust | 35 - 586 files changed, 113214 deletions(-) delete mode 100755 conf/caldav.php delete mode 100755 conf/config.php delete mode 100755 conf/database.php delete mode 100644 sources/CHANGELOG delete mode 100644 sources/LICENSE delete mode 100644 sources/README.md delete mode 100644 sources/artwork/agendav_300transp.png delete mode 100644 sources/artwork/agendav_logo.svg delete mode 100644 sources/artwork/favicon.ico delete mode 100644 sources/artwork/favicon128.png delete mode 100644 sources/artwork/favicon16.png delete mode 100644 sources/artwork/favicon32.png delete mode 100644 sources/artwork/favicon64.png delete mode 100644 sources/artwork/raw.png delete mode 100644 sources/bin/.gitignore delete mode 100755 sources/bin/agendavcli delete mode 100755 sources/bin/prepare-static.php delete mode 100644 sources/doc/Makefile delete mode 100644 sources/doc/source/_themes/LICENSE delete mode 100644 sources/doc/source/_themes/flask_theme_support.py delete mode 100644 sources/doc/source/_themes/proBlue/LICENSE.txt delete mode 100644 sources/doc/source/_themes/proBlue/README.txt delete mode 100644 sources/doc/source/_themes/proBlue/static/proBlue.css delete mode 100644 sources/doc/source/_themes/proBlue/theme.conf delete mode 100644 sources/doc/source/admin/configuration.rst delete mode 100644 sources/doc/source/admin/index.rst delete mode 100644 sources/doc/source/admin/installation.rst delete mode 100644 sources/doc/source/admin/troubleshooting.rst delete mode 100644 sources/doc/source/admin/upgrading.rst delete mode 100644 sources/doc/source/agendav_160px.png delete mode 100644 sources/doc/source/conf.py delete mode 100644 sources/doc/source/index.rst delete mode 100644 sources/doc/source/releasenotes.rst delete mode 100644 sources/doc/source/translations.rst delete mode 100644 sources/libs/awl/AWLUtilities.php delete mode 100644 sources/libs/awl/Translation.php delete mode 100644 sources/libs/awl/XMLDocument.php delete mode 100644 sources/libs/awl/XMLElement.php delete mode 100644 sources/libs/caldav-client/README delete mode 100644 sources/libs/caldav-client/caldav-client.php delete mode 100644 sources/libs/font-awesome/.gitignore delete mode 100644 sources/libs/font-awesome/FontAwesome-Vectors.pdf delete mode 100644 sources/libs/font-awesome/FontAwesome.ttf delete mode 100644 sources/libs/font-awesome/README.md delete mode 100644 sources/libs/font-awesome/css/font-awesome-ie7.css delete mode 100644 sources/libs/font-awesome/css/font-awesome.css delete mode 100644 sources/libs/font-awesome/docs/assets/css/font-awesome-ie7.css delete mode 100644 sources/libs/font-awesome/docs/assets/css/font-awesome.css delete mode 100755 sources/libs/font-awesome/docs/assets/css/prettify.css delete mode 100644 sources/libs/font-awesome/docs/assets/css/site.css delete mode 100755 sources/libs/font-awesome/docs/assets/font/fontawesome-webfont.eot delete mode 100755 sources/libs/font-awesome/docs/assets/font/fontawesome-webfont.svg delete mode 100755 sources/libs/font-awesome/docs/assets/font/fontawesome-webfont.ttf delete mode 100755 sources/libs/font-awesome/docs/assets/font/fontawesome-webfont.woff delete mode 100755 sources/libs/font-awesome/docs/assets/font/museo_slab_300-webfont.eot delete mode 100755 sources/libs/font-awesome/docs/assets/font/museo_slab_300-webfont.ttf delete mode 100755 sources/libs/font-awesome/docs/assets/font/museo_slab_500-webfont.eot delete mode 100755 sources/libs/font-awesome/docs/assets/font/museo_slab_500-webfont.ttf delete mode 100755 sources/libs/font-awesome/docs/assets/font/proximanova-webfont.eot delete mode 100755 sources/libs/font-awesome/docs/assets/font/proximanova-webfont.ttf delete mode 100644 sources/libs/font-awesome/docs/assets/ico/favicon.ico delete mode 100644 sources/libs/font-awesome/docs/assets/js/backbone.min.js delete mode 100644 sources/libs/font-awesome/docs/assets/js/index/index.js delete mode 100644 sources/libs/font-awesome/docs/assets/js/jquery-1.7.1.min.js delete mode 100644 sources/libs/font-awesome/docs/assets/js/prettify.min.js delete mode 100755 sources/libs/font-awesome/docs/assets/js/tw-bs-201/bootstrap-alert.js delete mode 100755 sources/libs/font-awesome/docs/assets/js/tw-bs-201/bootstrap-button.js delete mode 100755 sources/libs/font-awesome/docs/assets/js/tw-bs-201/bootstrap-carousel.js delete mode 100755 sources/libs/font-awesome/docs/assets/js/tw-bs-201/bootstrap-collapse.js delete mode 100755 sources/libs/font-awesome/docs/assets/js/tw-bs-201/bootstrap-dropdown.js delete mode 100755 sources/libs/font-awesome/docs/assets/js/tw-bs-201/bootstrap-modal.js delete mode 100755 sources/libs/font-awesome/docs/assets/js/tw-bs-201/bootstrap-popover.js delete mode 100755 sources/libs/font-awesome/docs/assets/js/tw-bs-201/bootstrap-scrollspy.js delete mode 100755 sources/libs/font-awesome/docs/assets/js/tw-bs-201/bootstrap-tab.js delete mode 100755 sources/libs/font-awesome/docs/assets/js/tw-bs-201/bootstrap-tooltip.js delete mode 100755 sources/libs/font-awesome/docs/assets/js/tw-bs-201/bootstrap-transition.js delete mode 100755 sources/libs/font-awesome/docs/assets/js/tw-bs-201/bootstrap-typeahead.js delete mode 100644 sources/libs/font-awesome/docs/assets/js/underscore.min.js delete mode 100644 sources/libs/font-awesome/docs/assets/less/font-awesome-ie7.less delete mode 100644 sources/libs/font-awesome/docs/assets/less/font-awesome.less delete mode 100644 sources/libs/font-awesome/docs/assets/less/font-site.less delete mode 100644 sources/libs/font-awesome/docs/assets/less/mixins.less delete mode 100644 sources/libs/font-awesome/docs/assets/less/site.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/accordion.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/alerts.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/bootstrap.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/breadcrumbs.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/button-groups.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/buttons.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/carousel.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/close.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/code.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/component-animations.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/dropdowns.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/forms.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/grid.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/hero-unit.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/labels-badges.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/layouts.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/mixins.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/modals.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/navbar.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/navs.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/pager.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/pagination.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/popovers.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/progress-bars.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/reset.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/responsive-1200px-min.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/responsive-767px-max.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/responsive-768px-979px.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/responsive-navbar.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/responsive-utilities.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/responsive.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/scaffolding.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/sprites.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/tables.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/thumbnails.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/tooltip.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/type.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/utilities.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/variables.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/twbs-203/wells.less delete mode 100755 sources/libs/font-awesome/docs/assets/less/variables.less delete mode 100644 sources/libs/font-awesome/docs/index.html delete mode 100755 sources/libs/font-awesome/font/fontawesome-webfont.eot delete mode 100755 sources/libs/font-awesome/font/fontawesome-webfont.svg delete mode 100755 sources/libs/font-awesome/font/fontawesome-webfont.ttf delete mode 100755 sources/libs/font-awesome/font/fontawesome-webfont.woff delete mode 100644 sources/libs/font-awesome/less/font-awesome-ie7.less delete mode 100644 sources/libs/font-awesome/less/font-awesome.less delete mode 100644 sources/libs/font-awesome/sass/font-awesome.sass delete mode 100644 sources/libs/font-awesome/sass/font-awesome.scss delete mode 100644 sources/libs/icalcreator/iCalcreator.class.php delete mode 100644 sources/sql/changes/1.0_to_1.1.sql delete mode 100644 sources/sql/changes/1.1.1_to_1.2.mysql delete mode 100644 sources/sql/changes/1.1_to_1.1.1.sql delete mode 100644 sources/sql/mysql.schema.sql delete mode 100644 sources/sql/pgsql.schema.sql delete mode 100755 sources/web/application/.htaccess delete mode 100755 sources/web/application/cache/.htaccess delete mode 100755 sources/web/application/cache/index.html delete mode 100644 sources/web/application/controllers/caldav2json.php delete mode 100644 sources/web/application/controllers/calendar.php delete mode 100644 sources/web/application/controllers/cli.php delete mode 100644 sources/web/application/controllers/dialog_generator.php delete mode 100644 sources/web/application/controllers/event.php delete mode 100755 sources/web/application/controllers/index.html delete mode 100644 sources/web/application/controllers/js_generator.php delete mode 100644 sources/web/application/controllers/login.php delete mode 100644 sources/web/application/controllers/main.php delete mode 100644 sources/web/application/controllers/prefs.php delete mode 100644 sources/web/application/controllers/strings.php delete mode 100755 sources/web/application/core/index.html delete mode 100755 sources/web/application/errors/error_404.php delete mode 100755 sources/web/application/errors/error_db.php delete mode 100755 sources/web/application/errors/error_general.php delete mode 100755 sources/web/application/errors/error_php.php delete mode 100755 sources/web/application/errors/index.html delete mode 100644 sources/web/application/helpers/MY_html_helper.php delete mode 100755 sources/web/application/helpers/index.html delete mode 100644 sources/web/application/hooks/Defs.php delete mode 100755 sources/web/application/hooks/index.html delete mode 100755 sources/web/application/index.html delete mode 100755 sources/web/application/language/english/calendar_lang.php delete mode 100755 sources/web/application/language/english/date_lang.php delete mode 100755 sources/web/application/language/english/db_lang.php delete mode 100755 sources/web/application/language/english/email_lang.php delete mode 100755 sources/web/application/language/english/form_validation_lang.php delete mode 100755 sources/web/application/language/english/ftp_lang.php delete mode 100755 sources/web/application/language/english/imglib_lang.php delete mode 100755 sources/web/application/language/english/index.html delete mode 100644 sources/web/application/language/english/migration_lang.php delete mode 100755 sources/web/application/language/english/number_lang.php delete mode 100755 sources/web/application/language/english/profiler_lang.php delete mode 100755 sources/web/application/language/english/unit_test_lang.php delete mode 100755 sources/web/application/language/english/upload_lang.php delete mode 100644 sources/web/application/language/et/calendar_lang.php delete mode 100644 sources/web/application/language/et/date_lang.php delete mode 100644 sources/web/application/language/et/db_lang.php delete mode 100644 sources/web/application/language/et/email_lang.php delete mode 100644 sources/web/application/language/et/form_validation_lang.php delete mode 100644 sources/web/application/language/et/ftp_lang.php delete mode 100644 sources/web/application/language/et/imglib_lang.php delete mode 100644 sources/web/application/language/et/migration_lang.php delete mode 100644 sources/web/application/language/et/number_lang.php delete mode 100644 sources/web/application/language/et/profiler_lang.php delete mode 100644 sources/web/application/language/et/unit_test_lang.php delete mode 100644 sources/web/application/language/et/upload_lang.php delete mode 100644 sources/web/application/language/et/validation_lang.php delete mode 100644 sources/web/application/language/french/calendar_lang.php delete mode 100644 sources/web/application/language/french/date_lang.php delete mode 100644 sources/web/application/language/french/db_lang.php delete mode 100644 sources/web/application/language/french/email_lang.php delete mode 100644 sources/web/application/language/french/form_validation_lang.php delete mode 100644 sources/web/application/language/french/ftp_lang.php delete mode 100644 sources/web/application/language/french/imglib_lang.php delete mode 100644 sources/web/application/language/french/migration_lang.php delete mode 100644 sources/web/application/language/french/number_lang.php delete mode 100644 sources/web/application/language/french/profiler_lang.php delete mode 100644 sources/web/application/language/french/unit_test_lang.php delete mode 100644 sources/web/application/language/french/upload_lang.php delete mode 100644 sources/web/application/language/french/validation_lang.php delete mode 100644 sources/web/application/language/german/calendar_lang.php delete mode 100644 sources/web/application/language/german/date_lang.php delete mode 100644 sources/web/application/language/german/db_lang.php delete mode 100644 sources/web/application/language/german/email_lang.php delete mode 100644 sources/web/application/language/german/form_validation_lang.php delete mode 100644 sources/web/application/language/german/ftp_lang.php delete mode 100644 sources/web/application/language/german/imglib_lang.php delete mode 100644 sources/web/application/language/german/migration_lang.php delete mode 100644 sources/web/application/language/german/number_lang.php delete mode 100644 sources/web/application/language/german/profiler_lang.php delete mode 100644 sources/web/application/language/german/unit_test_lang.php delete mode 100644 sources/web/application/language/german/upload_lang.php delete mode 100644 sources/web/application/language/german/validation_lang.php delete mode 100644 sources/web/application/language/italian/calendar_lang.php delete mode 100644 sources/web/application/language/italian/date_lang.php delete mode 100644 sources/web/application/language/italian/db_lang.php delete mode 100644 sources/web/application/language/italian/email_lang.php delete mode 100644 sources/web/application/language/italian/form_validation_lang.php delete mode 100644 sources/web/application/language/italian/ftp_lang.php delete mode 100644 sources/web/application/language/italian/imglib_lang.php delete mode 100644 sources/web/application/language/italian/migration_lang.php delete mode 100644 sources/web/application/language/italian/number_lang.php delete mode 100644 sources/web/application/language/italian/profiler_lang.php delete mode 100644 sources/web/application/language/italian/unit_test_lang.php delete mode 100644 sources/web/application/language/italian/upload_lang.php delete mode 100644 sources/web/application/language/italian/validation_lang.php delete mode 100644 sources/web/application/language/nl/calendar_lang.php delete mode 100644 sources/web/application/language/nl/date_lang.php delete mode 100644 sources/web/application/language/nl/db_lang.php delete mode 100644 sources/web/application/language/nl/email_lang.php delete mode 100644 sources/web/application/language/nl/form_validation_lang.php delete mode 100644 sources/web/application/language/nl/ftp_lang.php delete mode 100644 sources/web/application/language/nl/imglib_lang.php delete mode 100644 sources/web/application/language/nl/migration_lang.php delete mode 100644 sources/web/application/language/nl/number_lang.php delete mode 100644 sources/web/application/language/nl/profiler_lang.php delete mode 100644 sources/web/application/language/nl/unit_test_lang.php delete mode 100644 sources/web/application/language/nl/upload_lang.php delete mode 100644 sources/web/application/language/nl/validation_lang.php delete mode 100644 sources/web/application/language/pt_BR/calendar_lang.php delete mode 100644 sources/web/application/language/pt_BR/date_lang.php delete mode 100644 sources/web/application/language/pt_BR/db_lang.php delete mode 100644 sources/web/application/language/pt_BR/email_lang.php delete mode 100644 sources/web/application/language/pt_BR/form_validation_lang.php delete mode 100644 sources/web/application/language/pt_BR/ftp_lang.php delete mode 100644 sources/web/application/language/pt_BR/imglib_lang.php delete mode 100644 sources/web/application/language/pt_BR/migration_lang.php delete mode 100644 sources/web/application/language/pt_BR/number_lang.php delete mode 100644 sources/web/application/language/pt_BR/profiler_lang.php delete mode 100644 sources/web/application/language/pt_BR/unit_test_lang.php delete mode 100644 sources/web/application/language/pt_BR/upload_lang.php delete mode 100644 sources/web/application/language/pt_BR/validation_lang.php delete mode 100644 sources/web/application/language/spanish/calendar_lang.php delete mode 100644 sources/web/application/language/spanish/date_lang.php delete mode 100644 sources/web/application/language/spanish/db_lang.php delete mode 100644 sources/web/application/language/spanish/email_lang.php delete mode 100644 sources/web/application/language/spanish/form_validation_lang.php delete mode 100644 sources/web/application/language/spanish/ftp_lang.php delete mode 100644 sources/web/application/language/spanish/imglib_lang.php delete mode 100644 sources/web/application/language/spanish/migration_lang.php delete mode 100644 sources/web/application/language/spanish/number_lang.php delete mode 100644 sources/web/application/language/spanish/profiler_lang.php delete mode 100644 sources/web/application/language/spanish/unit_test_lang.php delete mode 100644 sources/web/application/language/spanish/upload_lang.php delete mode 100644 sources/web/application/language/spanish/validation_lang.php delete mode 100644 sources/web/application/libraries/Caldav.php delete mode 100644 sources/web/application/libraries/CalendarInfo.php delete mode 100644 sources/web/application/libraries/Dates.php delete mode 100644 sources/web/application/libraries/Extended_logs.php delete mode 100644 sources/web/application/libraries/Icshelper.php delete mode 100644 sources/web/application/libraries/MY_Log.php delete mode 100644 sources/web/application/libraries/Preferences.php delete mode 100644 sources/web/application/libraries/Reminder.php delete mode 100644 sources/web/application/libraries/Session.php delete mode 100644 sources/web/application/libraries/Timezonemanager.php delete mode 100755 sources/web/application/libraries/index.html delete mode 100644 sources/web/application/libraries/recurrence.php delete mode 100755 sources/web/application/logs/index.html delete mode 100644 sources/web/application/migrations/001_share_write_access.php delete mode 100644 sources/web/application/migrations/002_user_preferences.php delete mode 100644 sources/web/application/migrations/003_prefs_no_eav.php delete mode 100644 sources/web/application/migrations/004_ipv6.php delete mode 100644 sources/web/application/models/auth.php delete mode 100644 sources/web/application/models/i18n.php delete mode 100755 sources/web/application/models/index.html delete mode 100644 sources/web/application/models/shared_calendars.php delete mode 100644 sources/web/application/models/userpref.php delete mode 100755 sources/web/application/third_party/index.html delete mode 100644 sources/web/application/views/calendar_page.php delete mode 100644 sources/web/application/views/center.php delete mode 100644 sources/web/application/views/common_header.php delete mode 100644 sources/web/application/views/dialogs/create_or_modify_event.php delete mode 100644 sources/web/application/views/dialogs/on_the_fly_form.php delete mode 100644 sources/web/application/views/footer.php delete mode 100755 sources/web/application/views/index.html delete mode 100644 sources/web/application/views/js_code/calendar_colors.php delete mode 100644 sources/web/application/views/js_code/close_dialog_and_show_error.php delete mode 100644 sources/web/application/views/js_code/preferences.php delete mode 100644 sources/web/application/views/js_code/session_expired.php delete mode 100644 sources/web/application/views/js_code/session_refresh.php delete mode 100644 sources/web/application/views/layouts/app.php delete mode 100644 sources/web/application/views/layouts/plain.php delete mode 100644 sources/web/application/views/login.php delete mode 100644 sources/web/application/views/navbar.php delete mode 100644 sources/web/application/views/preferences_calendars.php delete mode 100644 sources/web/application/views/preferences_page.php delete mode 100644 sources/web/application/views/sidebar.php delete mode 100755 sources/web/application/views/welcome_message.php delete mode 100755 sources/web/codeigniter_license.txt delete mode 100644 sources/web/config/.gitignore delete mode 100755 sources/web/config/advanced.php delete mode 100755 sources/web/config/autoload.php delete mode 100755 sources/web/config/caldav.php.template delete mode 100755 sources/web/config/config.php.template delete mode 100755 sources/web/config/constants.php delete mode 100755 sources/web/config/database.php.template delete mode 100755 sources/web/config/defaults.php delete mode 100755 sources/web/config/doctypes.php delete mode 100755 sources/web/config/foreign_chars.php delete mode 100755 sources/web/config/hooks.php delete mode 100755 sources/web/config/index.html delete mode 100644 sources/web/config/languages.php delete mode 100644 sources/web/config/migration.php delete mode 100755 sources/web/config/mimes.php delete mode 100755 sources/web/config/profiler.php delete mode 100755 sources/web/config/routes.php delete mode 100755 sources/web/config/smileys.php delete mode 100755 sources/web/config/user_agents.php delete mode 100644 sources/web/css_src/Makefile delete mode 100644 sources/web/css_src/agendav.less delete mode 100644 sources/web/css_src/agendav.print.less delete mode 100644 sources/web/css_src/custom_bootstrap.less delete mode 100644 sources/web/css_src/variables_agendav.less delete mode 100644 sources/web/lang/de_DE/de_DE.php delete mode 100644 sources/web/lang/en/en.php delete mode 100644 sources/web/lang/es_ES/es_ES.php delete mode 100644 sources/web/lang/et/et.php delete mode 100644 sources/web/lang/fi/fi.php delete mode 100644 sources/web/lang/fr_FR/fr_FR.php delete mode 100644 sources/web/lang/it_IT/it_IT.php delete mode 100644 sources/web/lang/nl_NL/nl_NL.php delete mode 100644 sources/web/lang/pt_BR/pt_BR.php delete mode 100644 sources/web/public/configtest.php delete mode 100644 sources/web/public/css/Aristo_20111229.css delete mode 100644 sources/web/public/css/agendav-1.2.6.2.css delete mode 100644 sources/web/public/css/agendav-1.2.6.2.print.css delete mode 100644 sources/web/public/css/app.css delete mode 100644 sources/web/public/css/app.print.css delete mode 100644 sources/web/public/css/bootstrap.agendav.css delete mode 100644 sources/web/public/css/colorpicker.css delete mode 100644 sources/web/public/css/freeow.css delete mode 100644 sources/web/public/css/fullcalendar.css delete mode 100644 sources/web/public/css/jquery.qtip.min.css delete mode 100644 sources/web/public/css/timePicker.css delete mode 100644 sources/web/public/favicon.ico delete mode 100755 sources/web/public/font/fontawesome-webfont.eot delete mode 100755 sources/web/public/font/fontawesome-webfont.svg delete mode 100755 sources/web/public/font/fontawesome-webfont.ttf delete mode 100755 sources/web/public/font/fontawesome-webfont.woff delete mode 100644 sources/web/public/img/US.gif delete mode 100644 sources/web/public/img/add.png delete mode 100644 sources/web/public/img/agendav_100transp.png delete mode 100644 sources/web/public/img/agendav_300transp.png delete mode 100644 sources/web/public/img/agendav_small.png delete mode 100644 sources/web/public/img/arrow_colorpicker.gif delete mode 100644 sources/web/public/img/bg_11.png delete mode 100644 sources/web/public/img/bg_calendar_header.png delete mode 100644 sources/web/public/img/button-icons/arrow_left.png delete mode 100644 sources/web/public/img/button-icons/calendar_add.png delete mode 100644 sources/web/public/img/button-icons/calendar_delete.png delete mode 100644 sources/web/public/img/button-icons/calendar_edit.png delete mode 100644 sources/web/public/img/button-icons/cancel.png delete mode 100644 sources/web/public/img/button-icons/ok.png delete mode 100644 sources/web/public/img/calendar-small.png delete mode 100644 sources/web/public/img/calendar_add.png delete mode 100644 sources/web/public/img/calendar_link.png delete mode 100644 sources/web/public/img/close.png delete mode 100644 sources/web/public/img/delete.png delete mode 100644 sources/web/public/img/exit.png delete mode 100644 sources/web/public/img/glyphicons-halflings-white.png delete mode 100644 sources/web/public/img/glyphicons-halflings.png delete mode 100644 sources/web/public/img/icon_date_label.png delete mode 100644 sources/web/public/img/icon_generic_label.png delete mode 100644 sources/web/public/img/icon_location_label.png delete mode 100644 sources/web/public/img/jquery-ui-theme-aristo-1.2/bg_fallback.png delete mode 100644 sources/web/public/img/jquery-ui-theme-aristo-1.2/icon_sprite.png delete mode 100644 sources/web/public/img/jquery-ui-theme-aristo-1.2/progress_bar.gif delete mode 100644 sources/web/public/img/jquery-ui-theme-aristo-1.2/slider_handles.png delete mode 100644 sources/web/public/img/jquery-ui-theme-aristo-1.2/ui-icons_222222_256x240.png delete mode 100644 sources/web/public/img/jquery-ui-theme-aristo-1.2/ui-icons_454545_256x240.png delete mode 100644 sources/web/public/img/loading.gif delete mode 100644 sources/web/public/img/logo_us.png delete mode 100644 sources/web/public/img/popup_error.png delete mode 100644 sources/web/public/img/popup_ok.png delete mode 100644 sources/web/public/img/setting_tools.png delete mode 100644 sources/web/public/img/share.png delete mode 100644 sources/web/public/img/share_big.png delete mode 100644 sources/web/public/img/user.png delete mode 100755 sources/web/public/index.php delete mode 100644 sources/web/public/js/agendav-1.2.6.2.js delete mode 100644 sources/web/public/js/app.js delete mode 100644 sources/web/public/js/jquery-base-1.2.6.2.js delete mode 100644 sources/web/public/js/libs/dust-core-1.0.0.js delete mode 100644 sources/web/public/js/libs/fullcalendar.min.js delete mode 100644 sources/web/public/js/libs/jquery-1.7.2.min.js delete mode 100644 sources/web/public/js/libs/jquery-ui-1.8.23.custom.min.js delete mode 100644 sources/web/public/js/libs/jquery.colorPicker.js delete mode 100644 sources/web/public/js/libs/jquery.colorhelpers.js delete mode 100644 sources/web/public/js/libs/jquery.cookie.js delete mode 100644 sources/web/public/js/libs/jquery.freeow.min.js delete mode 100644 sources/web/public/js/libs/jquery.qtip.min.js delete mode 100644 sources/web/public/js/libs/jquery.serializeobject.js delete mode 100644 sources/web/public/js/libs/jquery.timePicker.20110318.js delete mode 100644 sources/web/public/js/templates/templates.js delete mode 100644 sources/web/public/js/translation.js delete mode 100644 sources/web/system/.htaccess delete mode 100755 sources/web/system/core/Benchmark.php delete mode 100755 sources/web/system/core/CodeIgniter.php delete mode 100644 sources/web/system/core/Common.php delete mode 100755 sources/web/system/core/Config.php delete mode 100644 sources/web/system/core/Controller.php delete mode 100755 sources/web/system/core/Exceptions.php delete mode 100755 sources/web/system/core/Hooks.php delete mode 100755 sources/web/system/core/Input.php delete mode 100755 sources/web/system/core/Lang.php delete mode 100644 sources/web/system/core/Loader.php delete mode 100755 sources/web/system/core/Model.php delete mode 100755 sources/web/system/core/Output.php delete mode 100755 sources/web/system/core/Router.php delete mode 100755 sources/web/system/core/Security.php delete mode 100755 sources/web/system/core/URI.php delete mode 100644 sources/web/system/core/Utf8.php delete mode 100644 sources/web/system/core/index.html delete mode 100755 sources/web/system/database/DB.php delete mode 100644 sources/web/system/database/DB_active_rec.php delete mode 100644 sources/web/system/database/DB_cache.php delete mode 100644 sources/web/system/database/DB_driver.php delete mode 100644 sources/web/system/database/DB_forge.php delete mode 100644 sources/web/system/database/DB_result.php delete mode 100644 sources/web/system/database/DB_utility.php delete mode 100644 sources/web/system/database/drivers/cubrid/cubrid_driver.php delete mode 100644 sources/web/system/database/drivers/cubrid/cubrid_forge.php delete mode 100644 sources/web/system/database/drivers/cubrid/cubrid_result.php delete mode 100644 sources/web/system/database/drivers/cubrid/cubrid_utility.php delete mode 100644 sources/web/system/database/drivers/cubrid/index.html delete mode 100644 sources/web/system/database/drivers/index.html delete mode 100644 sources/web/system/database/drivers/mssql/index.html delete mode 100644 sources/web/system/database/drivers/mssql/mssql_driver.php delete mode 100644 sources/web/system/database/drivers/mssql/mssql_forge.php delete mode 100644 sources/web/system/database/drivers/mssql/mssql_result.php delete mode 100644 sources/web/system/database/drivers/mssql/mssql_utility.php delete mode 100644 sources/web/system/database/drivers/mysql/index.html delete mode 100644 sources/web/system/database/drivers/mysql/mysql_driver.php delete mode 100644 sources/web/system/database/drivers/mysql/mysql_forge.php delete mode 100644 sources/web/system/database/drivers/mysql/mysql_result.php delete mode 100644 sources/web/system/database/drivers/mysql/mysql_utility.php delete mode 100644 sources/web/system/database/drivers/mysqli/index.html delete mode 100644 sources/web/system/database/drivers/mysqli/mysqli_driver.php delete mode 100644 sources/web/system/database/drivers/mysqli/mysqli_forge.php delete mode 100644 sources/web/system/database/drivers/mysqli/mysqli_result.php delete mode 100644 sources/web/system/database/drivers/mysqli/mysqli_utility.php delete mode 100644 sources/web/system/database/drivers/oci8/index.html delete mode 100644 sources/web/system/database/drivers/oci8/oci8_driver.php delete mode 100644 sources/web/system/database/drivers/oci8/oci8_forge.php delete mode 100644 sources/web/system/database/drivers/oci8/oci8_result.php delete mode 100644 sources/web/system/database/drivers/oci8/oci8_utility.php delete mode 100644 sources/web/system/database/drivers/odbc/index.html delete mode 100644 sources/web/system/database/drivers/odbc/odbc_driver.php delete mode 100644 sources/web/system/database/drivers/odbc/odbc_forge.php delete mode 100644 sources/web/system/database/drivers/odbc/odbc_result.php delete mode 100644 sources/web/system/database/drivers/odbc/odbc_utility.php delete mode 100644 sources/web/system/database/drivers/pdo/index.html delete mode 100644 sources/web/system/database/drivers/pdo/pdo_driver.php delete mode 100644 sources/web/system/database/drivers/pdo/pdo_forge.php delete mode 100644 sources/web/system/database/drivers/pdo/pdo_result.php delete mode 100644 sources/web/system/database/drivers/pdo/pdo_utility.php delete mode 100644 sources/web/system/database/drivers/postgre/index.html delete mode 100644 sources/web/system/database/drivers/postgre/postgre_driver.php delete mode 100644 sources/web/system/database/drivers/postgre/postgre_forge.php delete mode 100644 sources/web/system/database/drivers/postgre/postgre_result.php delete mode 100644 sources/web/system/database/drivers/postgre/postgre_utility.php delete mode 100644 sources/web/system/database/drivers/sqlite/index.html delete mode 100644 sources/web/system/database/drivers/sqlite/sqlite_driver.php delete mode 100644 sources/web/system/database/drivers/sqlite/sqlite_forge.php delete mode 100644 sources/web/system/database/drivers/sqlite/sqlite_result.php delete mode 100644 sources/web/system/database/drivers/sqlite/sqlite_utility.php delete mode 100644 sources/web/system/database/drivers/sqlsrv/index.html delete mode 100644 sources/web/system/database/drivers/sqlsrv/sqlsrv_driver.php delete mode 100644 sources/web/system/database/drivers/sqlsrv/sqlsrv_forge.php delete mode 100644 sources/web/system/database/drivers/sqlsrv/sqlsrv_result.php delete mode 100644 sources/web/system/database/drivers/sqlsrv/sqlsrv_utility.php delete mode 100644 sources/web/system/database/index.html delete mode 100644 sources/web/system/fonts/index.html delete mode 100644 sources/web/system/fonts/texb.ttf delete mode 100644 sources/web/system/helpers/array_helper.php delete mode 100644 sources/web/system/helpers/captcha_helper.php delete mode 100644 sources/web/system/helpers/cookie_helper.php delete mode 100644 sources/web/system/helpers/date_helper.php delete mode 100644 sources/web/system/helpers/directory_helper.php delete mode 100644 sources/web/system/helpers/download_helper.php delete mode 100644 sources/web/system/helpers/email_helper.php delete mode 100644 sources/web/system/helpers/file_helper.php delete mode 100644 sources/web/system/helpers/form_helper.php delete mode 100644 sources/web/system/helpers/html_helper.php delete mode 100644 sources/web/system/helpers/index.html delete mode 100644 sources/web/system/helpers/inflector_helper.php delete mode 100644 sources/web/system/helpers/language_helper.php delete mode 100644 sources/web/system/helpers/number_helper.php delete mode 100644 sources/web/system/helpers/path_helper.php delete mode 100644 sources/web/system/helpers/security_helper.php delete mode 100644 sources/web/system/helpers/smiley_helper.php delete mode 100644 sources/web/system/helpers/string_helper.php delete mode 100644 sources/web/system/helpers/text_helper.php delete mode 100644 sources/web/system/helpers/typography_helper.php delete mode 100644 sources/web/system/helpers/url_helper.php delete mode 100644 sources/web/system/helpers/xml_helper.php delete mode 100644 sources/web/system/index.html delete mode 100644 sources/web/system/language/english/calendar_lang.php delete mode 100644 sources/web/system/language/english/date_lang.php delete mode 100644 sources/web/system/language/english/db_lang.php delete mode 100644 sources/web/system/language/english/email_lang.php delete mode 100644 sources/web/system/language/english/form_validation_lang.php delete mode 100644 sources/web/system/language/english/ftp_lang.php delete mode 100644 sources/web/system/language/english/imglib_lang.php delete mode 100644 sources/web/system/language/english/index.html delete mode 100644 sources/web/system/language/english/migration_lang.php delete mode 100644 sources/web/system/language/english/number_lang.php delete mode 100644 sources/web/system/language/english/profiler_lang.php delete mode 100644 sources/web/system/language/english/unit_test_lang.php delete mode 100644 sources/web/system/language/english/upload_lang.php delete mode 100644 sources/web/system/language/index.html delete mode 100644 sources/web/system/libraries/Cache/Cache.php delete mode 100644 sources/web/system/libraries/Cache/drivers/Cache_apc.php delete mode 100644 sources/web/system/libraries/Cache/drivers/Cache_dummy.php delete mode 100644 sources/web/system/libraries/Cache/drivers/Cache_file.php delete mode 100644 sources/web/system/libraries/Cache/drivers/Cache_memcached.php delete mode 100644 sources/web/system/libraries/Calendar.php delete mode 100644 sources/web/system/libraries/Cart.php delete mode 100644 sources/web/system/libraries/Driver.php delete mode 100644 sources/web/system/libraries/Email.php delete mode 100644 sources/web/system/libraries/Encrypt.php delete mode 100644 sources/web/system/libraries/Form_validation.php delete mode 100644 sources/web/system/libraries/Ftp.php delete mode 100644 sources/web/system/libraries/Image_lib.php delete mode 100644 sources/web/system/libraries/Javascript.php delete mode 100644 sources/web/system/libraries/Log.php delete mode 100644 sources/web/system/libraries/Migration.php delete mode 100644 sources/web/system/libraries/Pagination.php delete mode 100644 sources/web/system/libraries/Parser.php delete mode 100644 sources/web/system/libraries/Profiler.php delete mode 100644 sources/web/system/libraries/Session.php delete mode 100644 sources/web/system/libraries/Sha1.php delete mode 100644 sources/web/system/libraries/Table.php delete mode 100644 sources/web/system/libraries/Trackback.php delete mode 100644 sources/web/system/libraries/Typography.php delete mode 100644 sources/web/system/libraries/Unit_test.php delete mode 100644 sources/web/system/libraries/Upload.php delete mode 100644 sources/web/system/libraries/User_agent.php delete mode 100644 sources/web/system/libraries/Xmlrpc.php delete mode 100644 sources/web/system/libraries/Xmlrpcs.php delete mode 100644 sources/web/system/libraries/Zip.php delete mode 100644 sources/web/system/libraries/index.html delete mode 100644 sources/web/system/libraries/javascript/Jquery.php delete mode 100755 sources/web/templates_src/compile.sh delete mode 100644 sources/web/templates_src/duster.js delete mode 100644 sources/web/templates_src/src/calendar_basic_form_part.dust delete mode 100644 sources/web/templates_src/src/calendar_create_dialog.dust delete mode 100644 sources/web/templates_src/src/calendar_delete_dialog.dust delete mode 100644 sources/web/templates_src/src/calendar_list_entry.dust delete mode 100644 sources/web/templates_src/src/calendar_modify_dialog.dust delete mode 100644 sources/web/templates_src/src/calendar_share_access_options.dust delete mode 100644 sources/web/templates_src/src/calendar_share_row.dust delete mode 100644 sources/web/templates_src/src/calendar_share_table.dust delete mode 100644 sources/web/templates_src/src/datepicker_button.dust delete mode 100644 sources/web/templates_src/src/event_delete_dialog.dust delete mode 100644 sources/web/templates_src/src/event_details_popup.dust delete mode 100644 sources/web/templates_src/src/form_close.dust delete mode 100644 sources/web/templates_src/src/form_element_end.dust delete mode 100644 sources/web/templates_src/src/form_element_start.dust delete mode 100644 sources/web/templates_src/src/form_open.dust delete mode 100644 sources/web/templates_src/src/reminder_description.dust delete mode 100644 sources/web/templates_src/src/reminder_row.dust delete mode 100644 sources/web/templates_src/src/reminders_table.dust diff --git a/conf/caldav.php b/conf/caldav.php deleted file mode 100755 index c3d3f50..0000000 --- a/conf/caldav.php +++ /dev/null @@ -1,103 +0,0 @@ - - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The GNU General Public License is a free, copyleft license for -software and other kinds of works. - - The licenses for most software and other practical works are designed -to take away your freedom to share and change the works. By contrast, -the GNU General Public License is intended to guarantee your freedom to -share and change all versions of a program--to make sure it remains free -software for all its users. We, the Free Software Foundation, use the -GNU General Public License for most of our software; it applies also to -any other work released this way by its authors. You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -them if you wish), that you receive source code or can get it if you -want it, that you can change the software or use pieces of it in new -free programs, and that you know you can do these things. - - To protect your rights, we need to prevent others from denying you -these rights or asking you to surrender the rights. Therefore, you have -certain responsibilities if you distribute copies of the software, or if -you modify it: responsibilities to respect the freedom of others. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must pass on to the recipients the same -freedoms that you received. You must make sure that they, too, receive -or can get the source code. And you must show them these terms so they -know their rights. - - Developers that use the GNU GPL protect your rights with two steps: -(1) assert copyright on the software, and (2) offer you this License -giving you legal permission to copy, distribute and/or modify it. - - For the developers' and authors' protection, the GPL clearly explains -that there is no warranty for this free software. For both users' and -authors' sake, the GPL requires that modified versions be marked as -changed, so that their problems will not be attributed erroneously to -authors of previous versions. - - Some devices are designed to deny users access to install or run -modified versions of the software inside them, although the manufacturer -can do so. This is fundamentally incompatible with the aim of -protecting users' freedom to change the software. The systematic -pattern of such abuse occurs in the area of products for individuals to -use, which is precisely where it is most unacceptable. Therefore, we -have designed this version of the GPL to prohibit the practice for those -products. If such problems arise substantially in other domains, we -stand ready to extend this provision to those domains in future versions -of the GPL, as needed to protect the freedom of users. - - Finally, every program is threatened constantly by software patents. -States should not allow patents to restrict development and use of -software on general-purpose computers, but in those that do, we wish to -avoid the special danger that patents applied to a free program could -make it effectively proprietary. To prevent this, the GPL assures that -patents cannot be used to render the program non-free. - - The precise terms and conditions for copying, distribution and -modification follow. - - TERMS AND CONDITIONS - - 0. Definitions. - - "This License" refers to version 3 of the GNU General Public License. - - "Copyright" also means copyright-like laws that apply to other kinds of -works, such as semiconductor masks. - - "The Program" refers to any copyrightable work licensed under this -License. Each licensee is addressed as "you". "Licensees" and -"recipients" may be individuals or organizations. - - To "modify" a work means to copy from or adapt all or part of the work -in a fashion requiring copyright permission, other than the making of an -exact copy. The resulting work is called a "modified version" of the -earlier work or a work "based on" the earlier work. - - A "covered work" means either the unmodified Program or a work based -on the Program. - - To "propagate" a work means to do anything with it that, without -permission, would make you directly or secondarily liable for -infringement under applicable copyright law, except executing it on a -computer or modifying a private copy. Propagation includes copying, -distribution (with or without modification), making available to the -public, and in some countries other activities as well. - - To "convey" a work means any kind of propagation that enables other -parties to make or receive copies. Mere interaction with a user through -a computer network, with no transfer of a copy, is not conveying. - - An interactive user interface displays "Appropriate Legal Notices" -to the extent that it includes a convenient and prominently visible -feature that (1) displays an appropriate copyright notice, and (2) -tells the user that there is no warranty for the work (except to the -extent that warranties are provided), that licensees may convey the -work under this License, and how to view a copy of this License. If -the interface presents a list of user commands or options, such as a -menu, a prominent item in the list meets this criterion. - - 1. Source Code. - - The "source code" for a work means the preferred form of the work -for making modifications to it. "Object code" means any non-source -form of a work. - - A "Standard Interface" means an interface that either is an official -standard defined by a recognized standards body, or, in the case of -interfaces specified for a particular programming language, one that -is widely used among developers working in that language. - - The "System Libraries" of an executable work include anything, other -than the work as a whole, that (a) is included in the normal form of -packaging a Major Component, but which is not part of that Major -Component, and (b) serves only to enable use of the work with that -Major Component, or to implement a Standard Interface for which an -implementation is available to the public in source code form. A -"Major Component", in this context, means a major essential component -(kernel, window system, and so on) of the specific operating system -(if any) on which the executable work runs, or a compiler used to -produce the work, or an object code interpreter used to run it. - - The "Corresponding Source" for a work in object code form means all -the source code needed to generate, install, and (for an executable -work) run the object code and to modify the work, including scripts to -control those activities. However, it does not include the work's -System Libraries, or general-purpose tools or generally available free -programs which are used unmodified in performing those activities but -which are not part of the work. For example, Corresponding Source -includes interface definition files associated with source files for -the work, and the source code for shared libraries and dynamically -linked subprograms that the work is specifically designed to require, -such as by intimate data communication or control flow between those -subprograms and other parts of the work. - - The Corresponding Source need not include anything that users -can regenerate automatically from other parts of the Corresponding -Source. - - The Corresponding Source for a work in source code form is that -same work. - - 2. Basic Permissions. - - All rights granted under this License are granted for the term of -copyright on the Program, and are irrevocable provided the stated -conditions are met. This License explicitly affirms your unlimited -permission to run the unmodified Program. The output from running a -covered work is covered by this License only if the output, given its -content, constitutes a covered work. This License acknowledges your -rights of fair use or other equivalent, as provided by copyright law. - - You may make, run and propagate covered works that you do not -convey, without conditions so long as your license otherwise remains -in force. You may convey covered works to others for the sole purpose -of having them make modifications exclusively for you, or provide you -with facilities for running those works, provided that you comply with -the terms of this License in conveying all material for which you do -not control copyright. Those thus making or running the covered works -for you must do so exclusively on your behalf, under your direction -and control, on terms that prohibit them from making any copies of -your copyrighted material outside their relationship with you. - - Conveying under any other circumstances is permitted solely under -the conditions stated below. Sublicensing is not allowed; section 10 -makes it unnecessary. - - 3. Protecting Users' Legal Rights From Anti-Circumvention Law. - - No covered work shall be deemed part of an effective technological -measure under any applicable law fulfilling obligations under article -11 of the WIPO copyright treaty adopted on 20 December 1996, or -similar laws prohibiting or restricting circumvention of such -measures. - - When you convey a covered work, you waive any legal power to forbid -circumvention of technological measures to the extent such circumvention -is effected by exercising rights under this License with respect to -the covered work, and you disclaim any intention to limit operation or -modification of the work as a means of enforcing, against the work's -users, your or third parties' legal rights to forbid circumvention of -technological measures. - - 4. Conveying Verbatim Copies. - - You may convey verbatim copies of the Program's source code as you -receive it, in any medium, provided that you conspicuously and -appropriately publish on each copy an appropriate copyright notice; -keep intact all notices stating that this License and any -non-permissive terms added in accord with section 7 apply to the code; -keep intact all notices of the absence of any warranty; and give all -recipients a copy of this License along with the Program. - - You may charge any price or no price for each copy that you convey, -and you may offer support or warranty protection for a fee. - - 5. Conveying Modified Source Versions. - - You may convey a work based on the Program, or the modifications to -produce it from the Program, in the form of source code under the -terms of section 4, provided that you also meet all of these conditions: - - a) The work must carry prominent notices stating that you modified - it, and giving a relevant date. - - b) The work must carry prominent notices stating that it is - released under this License and any conditions added under section - 7. This requirement modifies the requirement in section 4 to - "keep intact all notices". - - c) You must license the entire work, as a whole, under this - License to anyone who comes into possession of a copy. This - License will therefore apply, along with any applicable section 7 - additional terms, to the whole of the work, and all its parts, - regardless of how they are packaged. This License gives no - permission to license the work in any other way, but it does not - invalidate such permission if you have separately received it. - - d) If the work has interactive user interfaces, each must display - Appropriate Legal Notices; however, if the Program has interactive - interfaces that do not display Appropriate Legal Notices, your - work need not make them do so. - - A compilation of a covered work with other separate and independent -works, which are not by their nature extensions of the covered work, -and which are not combined with it such as to form a larger program, -in or on a volume of a storage or distribution medium, is called an -"aggregate" if the compilation and its resulting copyright are not -used to limit the access or legal rights of the compilation's users -beyond what the individual works permit. Inclusion of a covered work -in an aggregate does not cause this License to apply to the other -parts of the aggregate. - - 6. Conveying Non-Source Forms. - - You may convey a covered work in object code form under the terms -of sections 4 and 5, provided that you also convey the -machine-readable Corresponding Source under the terms of this License, -in one of these ways: - - a) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by the - Corresponding Source fixed on a durable physical medium - customarily used for software interchange. - - b) Convey the object code in, or embodied in, a physical product - (including a physical distribution medium), accompanied by a - written offer, valid for at least three years and valid for as - long as you offer spare parts or customer support for that product - model, to give anyone who possesses the object code either (1) a - copy of the Corresponding Source for all the software in the - product that is covered by this License, on a durable physical - medium customarily used for software interchange, for a price no - more than your reasonable cost of physically performing this - conveying of source, or (2) access to copy the - Corresponding Source from a network server at no charge. - - c) Convey individual copies of the object code with a copy of the - written offer to provide the Corresponding Source. This - alternative is allowed only occasionally and noncommercially, and - only if you received the object code with such an offer, in accord - with subsection 6b. - - d) Convey the object code by offering access from a designated - place (gratis or for a charge), and offer equivalent access to the - Corresponding Source in the same way through the same place at no - further charge. You need not require recipients to copy the - Corresponding Source along with the object code. If the place to - copy the object code is a network server, the Corresponding Source - may be on a different server (operated by you or a third party) - that supports equivalent copying facilities, provided you maintain - clear directions next to the object code saying where to find the - Corresponding Source. Regardless of what server hosts the - Corresponding Source, you remain obligated to ensure that it is - available for as long as needed to satisfy these requirements. - - e) Convey the object code using peer-to-peer transmission, provided - you inform other peers where the object code and Corresponding - Source of the work are being offered to the general public at no - charge under subsection 6d. - - A separable portion of the object code, whose source code is excluded -from the Corresponding Source as a System Library, need not be -included in conveying the object code work. - - A "User Product" is either (1) a "consumer product", which means any -tangible personal property which is normally used for personal, family, -or household purposes, or (2) anything designed or sold for incorporation -into a dwelling. In determining whether a product is a consumer product, -doubtful cases shall be resolved in favor of coverage. For a particular -product received by a particular user, "normally used" refers to a -typical or common use of that class of product, regardless of the status -of the particular user or of the way in which the particular user -actually uses, or expects or is expected to use, the product. A product -is a consumer product regardless of whether the product has substantial -commercial, industrial or non-consumer uses, unless such uses represent -the only significant mode of use of the product. - - "Installation Information" for a User Product means any methods, -procedures, authorization keys, or other information required to install -and execute modified versions of a covered work in that User Product from -a modified version of its Corresponding Source. The information must -suffice to ensure that the continued functioning of the modified object -code is in no case prevented or interfered with solely because -modification has been made. - - If you convey an object code work under this section in, or with, or -specifically for use in, a User Product, and the conveying occurs as -part of a transaction in which the right of possession and use of the -User Product is transferred to the recipient in perpetuity or for a -fixed term (regardless of how the transaction is characterized), the -Corresponding Source conveyed under this section must be accompanied -by the Installation Information. But this requirement does not apply -if neither you nor any third party retains the ability to install -modified object code on the User Product (for example, the work has -been installed in ROM). - - The requirement to provide Installation Information does not include a -requirement to continue to provide support service, warranty, or updates -for a work that has been modified or installed by the recipient, or for -the User Product in which it has been modified or installed. Access to a -network may be denied when the modification itself materially and -adversely affects the operation of the network or violates the rules and -protocols for communication across the network. - - Corresponding Source conveyed, and Installation Information provided, -in accord with this section must be in a format that is publicly -documented (and with an implementation available to the public in -source code form), and must require no special password or key for -unpacking, reading or copying. - - 7. Additional Terms. - - "Additional permissions" are terms that supplement the terms of this -License by making exceptions from one or more of its conditions. -Additional permissions that are applicable to the entire Program shall -be treated as though they were included in this License, to the extent -that they are valid under applicable law. If additional permissions -apply only to part of the Program, that part may be used separately -under those permissions, but the entire Program remains governed by -this License without regard to the additional permissions. - - When you convey a copy of a covered work, you may at your option -remove any additional permissions from that copy, or from any part of -it. (Additional permissions may be written to require their own -removal in certain cases when you modify the work.) You may place -additional permissions on material, added by you to a covered work, -for which you have or can give appropriate copyright permission. - - Notwithstanding any other provision of this License, for material you -add to a covered work, you may (if authorized by the copyright holders of -that material) supplement the terms of this License with terms: - - a) Disclaiming warranty or limiting liability differently from the - terms of sections 15 and 16 of this License; or - - b) Requiring preservation of specified reasonable legal notices or - author attributions in that material or in the Appropriate Legal - Notices displayed by works containing it; or - - c) Prohibiting misrepresentation of the origin of that material, or - requiring that modified versions of such material be marked in - reasonable ways as different from the original version; or - - d) Limiting the use for publicity purposes of names of licensors or - authors of the material; or - - e) Declining to grant rights under trademark law for use of some - trade names, trademarks, or service marks; or - - f) Requiring indemnification of licensors and authors of that - material by anyone who conveys the material (or modified versions of - it) with contractual assumptions of liability to the recipient, for - any liability that these contractual assumptions directly impose on - those licensors and authors. - - All other non-permissive additional terms are considered "further -restrictions" within the meaning of section 10. If the Program as you -received it, or any part of it, contains a notice stating that it is -governed by this License along with a term that is a further -restriction, you may remove that term. If a license document contains -a further restriction but permits relicensing or conveying under this -License, you may add to a covered work material governed by the terms -of that license document, provided that the further restriction does -not survive such relicensing or conveying. - - If you add terms to a covered work in accord with this section, you -must place, in the relevant source files, a statement of the -additional terms that apply to those files, or a notice indicating -where to find the applicable terms. - - Additional terms, permissive or non-permissive, may be stated in the -form of a separately written license, or stated as exceptions; -the above requirements apply either way. - - 8. Termination. - - You may not propagate or modify a covered work except as expressly -provided under this License. Any attempt otherwise to propagate or -modify it is void, and will automatically terminate your rights under -this License (including any patent licenses granted under the third -paragraph of section 11). - - However, if you cease all violation of this License, then your -license from a particular copyright holder is reinstated (a) -provisionally, unless and until the copyright holder explicitly and -finally terminates your license, and (b) permanently, if the copyright -holder fails to notify you of the violation by some reasonable means -prior to 60 days after the cessation. - - Moreover, your license from a particular copyright holder is -reinstated permanently if the copyright holder notifies you of the -violation by some reasonable means, this is the first time you have -received notice of violation of this License (for any work) from that -copyright holder, and you cure the violation prior to 30 days after -your receipt of the notice. - - Termination of your rights under this section does not terminate the -licenses of parties who have received copies or rights from you under -this License. If your rights have been terminated and not permanently -reinstated, you do not qualify to receive new licenses for the same -material under section 10. - - 9. Acceptance Not Required for Having Copies. - - You are not required to accept this License in order to receive or -run a copy of the Program. Ancillary propagation of a covered work -occurring solely as a consequence of using peer-to-peer transmission -to receive a copy likewise does not require acceptance. However, -nothing other than this License grants you permission to propagate or -modify any covered work. These actions infringe copyright if you do -not accept this License. Therefore, by modifying or propagating a -covered work, you indicate your acceptance of this License to do so. - - 10. Automatic Licensing of Downstream Recipients. - - Each time you convey a covered work, the recipient automatically -receives a license from the original licensors, to run, modify and -propagate that work, subject to this License. You are not responsible -for enforcing compliance by third parties with this License. - - An "entity transaction" is a transaction transferring control of an -organization, or substantially all assets of one, or subdividing an -organization, or merging organizations. If propagation of a covered -work results from an entity transaction, each party to that -transaction who receives a copy of the work also receives whatever -licenses to the work the party's predecessor in interest had or could -give under the previous paragraph, plus a right to possession of the -Corresponding Source of the work from the predecessor in interest, if -the predecessor has it or can get it with reasonable efforts. - - You may not impose any further restrictions on the exercise of the -rights granted or affirmed under this License. For example, you may -not impose a license fee, royalty, or other charge for exercise of -rights granted under this License, and you may not initiate litigation -(including a cross-claim or counterclaim in a lawsuit) alleging that -any patent claim is infringed by making, using, selling, offering for -sale, or importing the Program or any portion of it. - - 11. Patents. - - A "contributor" is a copyright holder who authorizes use under this -License of the Program or a work on which the Program is based. The -work thus licensed is called the contributor's "contributor version". - - A contributor's "essential patent claims" are all patent claims -owned or controlled by the contributor, whether already acquired or -hereafter acquired, that would be infringed by some manner, permitted -by this License, of making, using, or selling its contributor version, -but do not include claims that would be infringed only as a -consequence of further modification of the contributor version. For -purposes of this definition, "control" includes the right to grant -patent sublicenses in a manner consistent with the requirements of -this License. - - Each contributor grants you a non-exclusive, worldwide, royalty-free -patent license under the contributor's essential patent claims, to -make, use, sell, offer for sale, import and otherwise run, modify and -propagate the contents of its contributor version. - - In the following three paragraphs, a "patent license" is any express -agreement or commitment, however denominated, not to enforce a patent -(such as an express permission to practice a patent or covenant not to -sue for patent infringement). To "grant" such a patent license to a -party means to make such an agreement or commitment not to enforce a -patent against the party. - - If you convey a covered work, knowingly relying on a patent license, -and the Corresponding Source of the work is not available for anyone -to copy, free of charge and under the terms of this License, through a -publicly available network server or other readily accessible means, -then you must either (1) cause the Corresponding Source to be so -available, or (2) arrange to deprive yourself of the benefit of the -patent license for this particular work, or (3) arrange, in a manner -consistent with the requirements of this License, to extend the patent -license to downstream recipients. "Knowingly relying" means you have -actual knowledge that, but for the patent license, your conveying the -covered work in a country, or your recipient's use of the covered work -in a country, would infringe one or more identifiable patents in that -country that you have reason to believe are valid. - - If, pursuant to or in connection with a single transaction or -arrangement, you convey, or propagate by procuring conveyance of, a -covered work, and grant a patent license to some of the parties -receiving the covered work authorizing them to use, propagate, modify -or convey a specific copy of the covered work, then the patent license -you grant is automatically extended to all recipients of the covered -work and works based on it. - - A patent license is "discriminatory" if it does not include within -the scope of its coverage, prohibits the exercise of, or is -conditioned on the non-exercise of one or more of the rights that are -specifically granted under this License. You may not convey a covered -work if you are a party to an arrangement with a third party that is -in the business of distributing software, under which you make payment -to the third party based on the extent of your activity of conveying -the work, and under which the third party grants, to any of the -parties who would receive the covered work from you, a discriminatory -patent license (a) in connection with copies of the covered work -conveyed by you (or copies made from those copies), or (b) primarily -for and in connection with specific products or compilations that -contain the covered work, unless you entered into that arrangement, -or that patent license was granted, prior to 28 March 2007. - - Nothing in this License shall be construed as excluding or limiting -any implied license or other defenses to infringement that may -otherwise be available to you under applicable patent law. - - 12. No Surrender of Others' Freedom. - - If conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot convey a -covered work so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you may -not convey it at all. For example, if you agree to terms that obligate you -to collect a royalty for further conveying from those to whom you convey -the Program, the only way you could satisfy both those terms and this -License would be to refrain entirely from conveying the Program. - - 13. Use with the GNU Affero General Public License. - - Notwithstanding any other provision of this License, you have -permission to link or combine any covered work with a work licensed -under version 3 of the GNU Affero General Public License into a single -combined work, and to convey the resulting work. The terms of this -License will continue to apply to the part which is the covered work, -but the special requirements of the GNU Affero General Public License, -section 13, concerning interaction through a network will apply to the -combination as such. - - 14. Revised Versions of this License. - - The Free Software Foundation may publish revised and/or new versions of -the GNU General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - - Each version is given a distinguishing version number. If the -Program specifies that a certain numbered version of the GNU General -Public License "or any later version" applies to it, you have the -option of following the terms and conditions either of that numbered -version or of any later version published by the Free Software -Foundation. If the Program does not specify a version number of the -GNU General Public License, you may choose any version ever published -by the Free Software Foundation. - - If the Program specifies that a proxy can decide which future -versions of the GNU General Public License can be used, that proxy's -public statement of acceptance of a version permanently authorizes you -to choose that version for the Program. - - Later license versions may give you additional or different -permissions. However, no additional obligations are imposed on any -author or copyright holder as a result of your choosing to follow a -later version. - - 15. Disclaimer of Warranty. - - THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY -APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT -HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY -OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, -THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR -PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM -IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF -ALL NECESSARY SERVICING, REPAIR OR CORRECTION. - - 16. Limitation of Liability. - - IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS -THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY -GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE -USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF -DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD -PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), -EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF -SUCH DAMAGES. - - 17. Interpretation of Sections 15 and 16. - - If the disclaimer of warranty and limitation of liability provided -above cannot be given local legal effect according to their terms, -reviewing courts shall apply local law that most closely approximates -an absolute waiver of all civil liability in connection with the -Program, unless a warranty or assumption of liability accompanies a -copy of the Program in return for a fee. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -state the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - - Copyright (C) - - This program is free software: you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation, either version 3 of the License, or - (at your option) any later version. - - This program is distributed in the hope that it will be useful, - but WITHOUT ANY WARRANTY; without even the implied warranty of - MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program. If not, see . - -Also add information on how to contact you by electronic and paper mail. - - If the program does terminal interaction, make it output a short -notice like this when it starts in an interactive mode: - - Copyright (C) - This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, your program's commands -might be different; for a GUI interface, you would use an "about box". - - You should also get your employer (if you work as a programmer) or school, -if any, to sign a "copyright disclaimer" for the program, if necessary. -For more information on this, and how to apply and follow the GNU GPL, see -. - - The GNU General Public License does not permit incorporating your program -into proprietary programs. If your program is a subroutine library, you -may consider it more useful to permit linking proprietary applications with -the library. If this is what you want to do, use the GNU Lesser General -Public License instead of this License. But first, please read -. diff --git a/sources/README.md b/sources/README.md deleted file mode 100644 index c1b3da7..0000000 --- a/sources/README.md +++ /dev/null @@ -1,36 +0,0 @@ -AgenDAV - CalDAV web client -=========================== - -AgenDAV is a CalDAV web client which features an AJAX interface to allow -users to manage their own calendars and shared ones. It's released under -the GPLv3 license. - -Requisites ----------- - -* A CalDAV server (developed mainly with [DAViCal](http://www.davical.org/)) -* A web server -* PHP >= 5.3.0 -* PHP mbstring extension -* PHP cURL extension -* MySQL > 5.1 or PostgreSQL >= 8.1 - -Thanks ------- - -AgenDAV is possible thanks to the following projects: - -* [CodeIgniter](http://codeigniter.com) -* [DAViCal](http://www.davical.org/) -* [AWL, Andrew's Web Libraries](http://andrew.mcmillan.net.nz/projects/awl) -* [iCalCreator](http://www.kigkonsult.se/iCalcreator/) -* [FullCalendar](http://arshaw.com/fullcalendar/) -* [jQuery](http://jquery.com) -* [jQuery UI](http://jqueryui.com) -* [Freeow!](http://pjdietz.com/jquery-plugins/freeow/) -* [Really Simple Color Picker](http://laktek.com/2008/10/27/really-simple-color-picker-in-jquery/) -* [qTip2](http://craigsworks.com/projects/qtip2/) -* [timePicker](https://github.com/perifer/timePicker) -* [LoadMask](http://code.google.com/p/jquery-loadmask/) -* [FatCow.com free icons](http://www.fatcow.com/free-icons) -* And other projects I may forget (please, ask for credit!) diff --git a/sources/artwork/agendav_300transp.png b/sources/artwork/agendav_300transp.png deleted file mode 100644 index ed3e5fc72c661aa887921bd10e39d42c81c10984..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 5677 zcmV+|7Sid7P)BTo45o*Tp~*X!LWo?!XUTUedpfyUcFQIp6!|>+QrPefjs`QAO{WBGC+V+k3$LlEsY&RnNX`dRe;aUWMY3yZYHENAW>{vnJun|vQqBAg*hrTL9zm?|*F5F$x%o-&@_u{~O24z)Q*TH{c=Q zL0~R0ThgKdd@BH$*^a;&8J8DJ`gEk6-GHqkyS-D=-y_>bV`c{fYZWx>l{B;Jz6T6R zEg!&daF1Z#F}SJ&nz}6Apd8^06z;xhXlG*+Y`)eL}c4orbf0qui}0Oly;2n=}-oMZviV)=UxFE(?&lvYbM(P-vkzz*$2$5 zst}xJ-T`b_(B?QZTf0b*q~*Z(Bm3PF_?O7Gg_xO9tat&Q0Df9kzn!3^n;?1Wg*5uL zz?{JOka8Ok%xsLAZJhkuuFbA&-=oZIoSD7K%r@$Wr)rt8j7`R|$v}S&ZL&G=ZQvF& z8(*>PnAy|%z&j)5orf>GVmK+XT@3pH6C&DOD5$~}*0`;y6Fdz}mNctfL1s1qcz|$7PMTXK9TX||M*Kb~VmUBQ($g_=3;O&H#ev$r zz_yYeY`4Eo(yGF`6WAwp`WKQ8GqX1XHw0dGp`?>r7-QZzHo$EjAI9Up+T}6edf+li zH${%&mB43#X+SG8sNVx;NV+|zkDYNP*UaXUo=mmd1o#53s9sTG49kJ<0%s;mn@l>a zumF|;hfDf(J3`Fti$IhIFkuHt_eaQ`0$dp>^K?n)lo&&(zqNqJ@rQFBzmRlTrksE8A8@rhofGs6G+tOfHA450rIp8DoojFv& zOi6Dk7{dtQ%fLr*SAIJPI2ZVcq?ZGIg%s8?k}hv*b0Y8!ifuA^{1!MO@2Nis6c+gX zwZEkFXA(v7-93cQJY)H)q|nMCEqf$BbKfjN<{U{AON=4Z-%-GiBAUKK(ocdiPGLXb zsggS^vK3oKmObhg07=Wt><;>R5Z3`t0RFFqK39>=jhGsT3q_hG|0xnN}d_Mq=tzaDcC9>XHfvgMh_^KuN3~mL!EZGRR zOKkz{0lc9F*&6^?o7rAPGr|lGrJS+?m}X{YOG-PHRzp&cnOz8cDnjNyX12SezmyzH zGcn%5$AIfHuZmF^Ox*UNq8P4@v3SWC=0CPYxxi5~%kua=&+5kZU(#1$fv>Y$R#;}X z6>u}|K`NpL_&YwcTMu6%wL24PI2?YB+syJ1o(1qM{$pJq|B>X~6vrg5`L~FnOiGm1 z#Z>Esoor_Bla#hmmgUlzWwn{T3jfiaM%=8V!Op?GQxYxbiK- z8D_RknHQMZX0$$oj8b%oVLN2U4RL(3jBJJXQ2Y??1uke&{-C3*!pd3>e!KY(Ne=-( z&uDvE$vzu=h3w_Sv-omzqNM3ro;OJ^NqSV$^^(4T8_J_Gv#B|+`5CaIq?0AxAnCb` z{%?|WJa7O$RZr6md_8hVJEs1A6raWJEa{7qu8=fG(le5tlr&e;Ig;K0ydU?NhIo~k z?H@UYN|5xlq!WPm5+52c3OKuDSJTK&NfSOB&f-uri(N{_254@AKR{a{W;ytCNu9Pi zRz|eKN^am?1D9@-bXVZ~cQQmBm4pC9V`h5-XJuSo1RNmgVzuJ(j32`&;Hw#zFTst~ zAq5m9@d{4H^Xk&P#mqJ?ImF)sJ4re}X8NBj`97S}q$8C!Bz+HGPQ`MpnWe)=^2qa4 z--X-ovKT>p{M2>$y&1!MBipUQ%(ewyAJKG3N4BRaW5bG?T{Uq%?oCQh*+=1D(0`Ta z`{NnsSKx6uA%$5r@5T+qY3>D1k`!73=OXD(X7)|s-&2=H07nu(mHz{9n50l@R344^ zojn8B_9`i>G9-Q7%w7i^714ZMJYv0YIhmLvcF1XRJ1~p`O%tM@cW6*#*FV z6pafw%*-}Rhp7}06WP89{~bp0%(9TRXK=7=xto5Y6jt)I4?S_8BEzLBsn^VA;DMxR z-fw1Ki}{f!(arD9xcoUubBknD#78sEf4ohD=DD~>DILH#nK*^@Ebx}l60`_OGPCI! z{p?;=Ud4P2Hz<#eXnPQG_OBuvR6}9qF#!(@y)mM{3vgRvQG8xEzP$VI2$>CHmV*~W zd7MYF&|cQkdmh=c%uIE_8PTPAv6WlR^ zF-G@EghL5_uDHCUtS@YG5;dJkk|UUV<-whEm{uFZhH6>Eem7H(lnS!_5&eJp+P@!{=6qb*03_RH;7SKSu>$5 zV|$vLfKU$B2;hAMuic64A5Fg`QfIJt#`&xtdRblwoLeWNx}}- zr%K)uEhg!{*_(DV;bN4{>}F=KjgSi-OdM0zWqsV^nMbU#y$VysprdGpbqZlm;`t>% zkna<7ZEyoVWUD#<1xWk=?rN}A+Gs(=hQ#hR_>qc8rw(~aWL{0j~JJ9D~BsLf}>;8(F z1zi$2cMERt&vOio!42Sr4{%90nc02h2d;uoBBlXf3|xy@4wg5zuWjS$?wUz&?_e+i zWYgXKmpp})71=%#cx8pdu%xe0>P=Q&*FcxSSW4d?#7o4bMzl)o%wo7xSWi8n&#c?b zw!Z zrTd?|uohY__{Zx?~i40{zOTr@w zf6)&E|5HJq`xD+a=?#H$v3+a{35FNZyRFT!gv#ZFm`!*exdVudN2_U>*oQ(oUaQ^Z zV1vu?{SosN(nfgv)D=a-B>mRR?xOg8t%n=@AEvmvEezAh_B0`dm1S%{SJJoI?a<7w z#+70yiu*L+gH3-g#65zc+0@%;UtxW)xCxNGEI5?DrD19+!pzp8@9sV+C2dLDzfh(&1wqE%ys|{4zybVe6NZQ zB`q?upAwGfJ>JYduB5J$B$?S?2yclFr0jgc_8GNW-Su-;Nab)qBd*e5_ zV8)=`HOG2-x-jdrYtE^JJrO^a^i+lYpF>z-jm5L-&u=<+3t@#d9*rAsxKh2 z9+;#j&1@!N&*|CtY_FzzPKa!`DoQ=E`*gwv+vxYRMGYlAXJ(gCyliclEb?Yp?N272 z*KZkX9~trdbAx+dLNT|w#?ENGYCx#A&OuezwZRjILw)@*)ozE3cEWcr-nNClzmX%e zPd%*UHE+*pe`-aa$;gcJS@p24si@!2XUKndpzVOv!@_NbG5rYNqpf;e$ zMCAK>O@zEzc(zAgn=7jRZ4Tz6d5JTHa4O7vNw);fw@X&FhgUZzmCA$qvUYjd4EUv) z#n?G8vyIH`Tw2>!={mB@giJTHR<@2>g_#`#{HcVuY1m@EoALigHh)0UZ<_vY>w9RE zt$^GOcpFHXjhD90V;73;S8If^y+O0W$}+b1*9USDzU_F3bcjQqVRQnXDs+*V9iAk+ zuENaLGqb(T>|=PDo0fL%k=x2bg$%)?|7V!lrDhiEd2EdDz+}1kL;MDf@oo)UnznN* za^p8x_25gAgJbHz_a|i(W>JX4Sn?CM@5d`ktT`mp)7=SAH($i}*Xx(*9j**R{l1Xy z7q@H0Ov_)!6Nm4`OBlB@wePbeEHRE=;8r}fVlr+pod9f%r!-B(e^k>6FN+@rMy2{( zBbJ1C%GD1`d{0jS>omRo^cKJGDvusuv&i>51`m#IwXd@}y+j-6qhWN;nq6Hf>6wgc zRd5a-Ri9>U+@RhZM)5Jcpx*%nGP`i)P_#|fa=hsOr=v#tPtL#%{-L-maO3NN$Mg!-NrXgdmb30LtHJR*@7x}G`1O2#n~U()u+6M88rBR<1) zhK1W8--lPnEc-eA4zMO!6C+;J3ruL^bJ{0zY=xU*G|Akf#rx!kou2J<;^@Z12tuWB z=SnKt(!2`JA)JN2qnRBn>E^}>d92M;GrJgf9~Wh>hqxB_grs|0HE>Jn0j8PRt@t)( z<64oEq8Be3cc!G+I_86!ubbICTmdh|9}?@}I~8q$XH)D%YdNcnfn$~Y;uB(KS2s&q z*g}5*NSb42cjC%1j~xQZ%ULq#n%OMibtQ*WnQhtT*vQcfIZK_X`xZ@?F{hh>H@2tw z5pHV=B{ZK#z^Eu`CNR^?_Qv;!I|xr-*qGHz&-CCo_n+`c;2X61rmJo394YBSGrJsL zCZ0%mvyLL}$7gF7X?X2&vNy$b)LUUWFhxxPnn^_bF%hq=q7vtM6e}!n1zM=E623z@ zg*8vottHy$GI}BV2|m32*zIG=ICq3)E0=XW{?g+|+v*Rgp^urZi$5urNXo4#WoFv| z4+Sn=D=DvZbC$gExNU1+TzPJY=b4Sdm)(tHKA!F~ThgOt`{^V}HO#C{EBc!kfg_U# z)+)?w8pZaUXYqX&+bRc?++UATyg|o{Nq>dA8YQ0XM}Z9@hjFH)D)M>(So=ylSY2HD znO$SDlsd!wCG)xJk*j*jY*jxbkk{jm-LEiflZ#MorI@}S#CJ%E-6f?ao<;b~Dzu|b z%yRIuc9j+Q{goKXi}Fw#wdBu@kolsST}1Zo;?2B7T>0i<$za%Ipp#^6$3D=TT-4-q z4X}4eS((|6cmt7$5W+Q(2nc7 zrX`l(J1@@!u2Niy7Vs(=n-;WLL3mf3cDWKSXjx<^KhDg~k`%Mg$m9_2IeP(5M_GhdH&_7Ntzo)Taaqi4U$W!+Zj@B{7I$MVv&|Se z@?tF7OW6_3m_4KvR`O$coPWk_Jq7#(kCwj!xIca4C(DLi@z|Mn0f&%X-0gl~7fCCt zAAL)7c%WwN z)=&*z0Nz?FtD2g@%~10aW>rXNhueTXWAeUgYHB*mP*Yel@SMOZ*0HzYn^V3~(t--) z)zsAVGegRT)xgX)#-p3}$LlA(64(a!Sf!P4FK(Y&gl`2k8~ByH^m0v2%@E=rTPlIz T5dSUx00000NkvXXu0mjf_Y3oo diff --git a/sources/artwork/agendav_logo.svg b/sources/artwork/agendav_logo.svg deleted file mode 100644 index a9ac516..0000000 --- a/sources/artwork/agendav_logo.svg +++ /dev/null @@ -1,99 +0,0 @@ - - - - - - - - - - image/svg+xml - - - - - - - - AgenDAV - - - - - - diff --git a/sources/artwork/favicon.ico b/sources/artwork/favicon.ico deleted file mode 100644 index 1602e72b3f20df67f6fbf64b201f0d433e1c8394..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 14118 zcmeHNU1%It6h2u?ks`9&Eqy2`OAMtbKBOtFRIsbAQYcD6qp82CrO{9bYSg7|grzYs zQEAeLZn`fjD3k_#@vpJF3O-aTJM&cNgP944FDaN{OA!f@@tkw#PIrdg*}XGcwvjnA zbI(2Z-1Bq4xifQTX92ok9VC-U=G(deo&+76%Of#!TwTjuOrDEFJ|s zg68>_ZX4`TfU8qG!9MjUZ2G!~?+HiVz78Y#zu@;zU*&tlz^^axeSz)=)AOg@dH#jC zP8*f`8Y$d%%WzJ)DNlVZ&*dybH+9`KO=iwjV(7YIpu)=KsNFOTlDQSDrbSKEZlGQe zDrsX^SRn&6L3{RZk~1d5AVXcZn4`UgDhoYf4zwdjJK;ySI6mdXYEHp4(Zay+Ih z$-1p;w6TT3EG{o&FR^1C_qNd>UVj0!K0qf_MR|*=!)J~Hi05xjSu70~U9pZ{=$tMM z^^S+zUq3uNRP^mdqM7$*@}S75N|}NZ=~Y(X7>G^w+|ZM0OsF>dV}>FgD;<0`+rA()|mwwB)+2t ztur^@i|fpH0QNj#!;Sa*;F*_iz=4A{Z2V>`uQw0Bb&c1VD{~rXzfHlpKhA-@aLHX~ zUa9l=Q)n7d=zE)X^)LMtzFW8Q?7=|LrI!YX$+C&De zl%5R8-ihBblgZP1m*aCr7#bC=lo&|5D2IvfBuYMHe1+i?L{+DMnd1vdrF1fI;=7Vk zg&}bBS2DeMwjKK_j!138csy4^XrE*4e#`w|l zSC8*R7V$Gt@l%gqDxKkt6KK=;Crc_@&3S55{2GsH)lSF9^B->hI>SWsX!AGv_1E$E zdm|8@|ISh(((?o0&Z~jHV>eZPa_gV4afBFw7=ajp7=d~SEP4NLr7A5n`HmO-l`oar z(yT)heY%Oh1$7^O5avCt!g}!|a=MS)d;ZU+Bpk~}vH$#Rp6!u^rYP|#XbSNU9h~eV z;TOq%H|O7;_`65*qi1*Jl^DZD<3F~GtD%ZDjK4enPy=_2;_*kn{%8(%jMBZ)LZ>fB bvwx(suU~QW7=ajp7=ajp7=ajpP9X3f6V=8) diff --git a/sources/artwork/favicon128.png b/sources/artwork/favicon128.png deleted file mode 100644 index fe81adfad644c3e7f1d5744fc2c8b44e5a4ee5e0..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 969 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H1|$#LC7uRSjKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85lMyf-vKYDXh1vg|(bMKk zV47@lLGP~o#5*5aZvH;c~0}BHa17ib&1A_vC00Rdy z*JWj%W5-F$$;Q*#j-GhC;mLZn2A%J-;&16EH&)DHw3xhl_N|0v`|C|UNBxaUTe7Hc z!LJ(qp8*L0llK0rJ~{vO)J<~^dYlbYixn0Cpbz2w)2G6o*b z^Nd(*MRSAz!@utg5yG?dj9F`=C(HSHt&d;%aId0^^+zj9jo4jE>C^RR%(GAZ6x{RR zPsg0ncgB@@tdp*6i=KDVKVsh1eRA`}yMGy$c%3q0Q+HEb@h2zhKVMb&_r?x^EjRD$ zhidVJ^-TY}Ol|7&`73^{kuTe2`G8w- zCp)`Nd#~Z>3f*{P!>`+s-x>LSglye*N;`dfN6O46rAZSSJ+6L;wEVp(X;*dhtog~u zCxkpvn=3hOUEJi&Hs*2M-d}|hawI2P$*~Bc20unX03)Ztg2l6H=PxI3d;60c^=vrR zg40)e*XI5$GEZB7`^h0@)1PW?YKqb~+m7|!o$`8~RmRMX_6}WqTeqAx{`oTM_tvoA zRXZk!aHW21Z1Awmtj&&H_sVy}EQTm9)m}Ntt6}?&Cb+J+X`cP(?GC4_TiSo^KCE;8 zNUEZr=;{wLh?K!{KmfySLKilqo=MwxvTK3I%*exs>aTyCA?rM;JE7V)A^V2v`QwK! zKg!z1X7F=ek@@0DD;BS{{q+5p+Lq;&>n((rluEwPDt#UHUiL5BDY4s*S46YF0rMGy Mr>mdKI;Vst0Af~)E&u=k diff --git a/sources/artwork/favicon16.png b/sources/artwork/favicon16.png deleted file mode 100644 index 4941837a1edda5166906a181dbfe65bb38715cae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 300 zcmeAS@N?(olHy`uVBq!ia0vp^0wB!61|;P_|4#%`jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85lMyf-vKYDXhW9m@pN$vu{eG9 z;$Fd~00EWx#;5OK#^;={kUh2D&uX=>liGw6Gk!O;PfWCYDv)0KyO!zN(a@HoTPC-fVgIUs54o3_Uzqlx!=e3l+@;7>OkMtreur2h p=d5hlqc;{wIy#czL!PC{xWt~$(696D)b76VOD^>lFzi8%ar znynXeqCngHn>CR~-5wpgx`ySblfatGkw>#%Sh9%PG(3pi!t;_Pa7|F>+}N1H-UY4N z_j`^$65YqUqqy<;+?nNdDeryWzV%+Ad~G`K_g|WC-rGGi<>D%zSoC>EGxLXATzU`m zUoAX0nSp(Q)`~XMMIKXkzb@}N`MFH@X1-e6jG2G4`AwLfCGfn@OZ*ncU#se<^ZJJW zHpXR%4}~tCTW;~lOupUSBa-cDw9Mtbdsdh!#tHI9GX}FRnc1|8)tmo&$M?kO2T=-5 zFMf8OT*KhBKees&@-qojrdQ$$%O@vmpIRjLtrA3zL6`KnEc1+n52OR z+Z3s95=R5iWLRbSMBHUk=hJVrRk*6I5Pf~-SFvghsU2Sgf0m!q=Zs3adf?&K%fK*X N@O1TaS?83{1OQ>rtttQj diff --git a/sources/artwork/favicon64.png b/sources/artwork/favicon64.png deleted file mode 100644 index 4acc5bd680245063f7a68992810e0817722ca1fd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 606 zcmeAS@N?(olHy`uVBq!ia0vp^4j|0I1|(Ny7TyC=jKx9jP7LeL$-D$|*pj^6T^Rm@ z;DWu&Cj&(|3p^r=85lMyf-vKYDXh5UykqhvTnTlTb6#$GT;6C{2P~THI%NH9KNP{;mO2U7PEuL zzJy-+X`X*gzb+|5^~fdn#m8>%+`51tJy9t|uUwqNfT2&l6B zW&iN{d(a$(5UK7b@v|K}?&@oAeD^nLR;!%<+v&RvPhXgOTERMw_f)I`qYxZ1thga~ z{>XD>Mf;kBdwbZLrZVzu&r@EnC(XR}Xw<)qmSf3U9O558zq2)&eKexxdf}&|#WR>2 zSPrK&@$n~zJltnr_3o+J3Htlrn}S*&@( gJ7`AlaU703)Bl)78&qol`;+0BxK8%m4rY diff --git a/sources/artwork/raw.png b/sources/artwork/raw.png deleted file mode 100644 index a75099199ebab82c616e76ce12beb5baf954f372..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1670 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5-f^%2$!p#>6@U~=v6E*A2N2Y7q;vrJoCO|{ z#S9D^6+xKs#T3@(Ktah8*NBqf{Irtt#G+J&^73-M%)IR4Dv*@E_v+Z_c=SSmzItGM9 zv4pSN^zvA*wx|e;xo+ScPu*!PN#?sWImCRjS&X-=^j%eGbuz`y=(uavOSSUSV!s*B zzen?aKKJP6o&RTMUM`8fuDdqm@3)z&j{l1(eK(b9+oEMz_s^|rw~PI{^Khtd@YR@I zmrCVpmt*0kbzir#&e*g%`*G*@PR1K`x3gq#eZ3UI&iJ?T znSAxDThDs`U--_!a1f}2lYvE;fkTZ!z=uI$27`kEV?zQHwIzVATEDLU^?dPr_pXa2 zoHE;;_NX?A;o3F#ub=A6eM$uiUVnf%W^4XEvo9F)ov+!qYVW_@|En14zIa?c>AqU;Z~B2!2mNpIYpQ;*haT?>zij(A zBs~82sSA@E?6&4!4X$4`Q~30MyTIr1GF5yRmakhqtJ>T2?!Vo;7H(%?w)h~I&!}+i zswiVa3NS|9Cih8OmtQ+Ik^eg=Y3#hbeAUf}{SSfhu}UVt?a? z=m|7R2*^QlBjZtN^5V3(*jJfc2Bop)AMcd>en0Dv@PTVvs_!W?sDM-DgjJcV)*hCZ z0Hp+e*_GS&)%?F;+^`Sm`S1JUbMF@CU)}gP)Ytfn$^!n!g;&k@$CiHBd$r_lwm#SV z-_cjs*F|o9v)4Yy(>M6*KmM@0zmKlkzVGd??Q#4J0>`6io$8T2izR27ty=Z#`qk;L z%)8ZJKY5hAwc_cW3$q($r@a5R_v_te{_BVS)S70wUEQ;(YUA%8EBmjU+B$XNc1BxE zgYpIQemr@ZRbTfl-R_UTvp1h^T7CUA*|hlIjYpkd&wgF_oxwKxUc|a@pN>6USkAy) z@$c&MJ*==ake_wD^!JaxecKp<%L>0Hm0rF3!OoCjcUn2nzC%~s8UOxxdA~kr_4R9c z74$72^w-3#IDXz9TtHkiH&?r-&h`N41FOv?X{(wWqTAiU(Y0o-^jY4$j1mXlK9;?D zZ*z6x3)uq$`NtnxeO/dev/null` -if [ "x$PHPCLI" == "x" ]; then - PHPCLI=`which php 2>/dev/null` -fi - -# Find path to web/public dir -realpath() { - [[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}" -} - -PUBLIC_DIR=`realpath "$0"|sed 's_agendavcli\$__g'`../web/public - -$PHPCLI "${PUBLIC_DIR}"/index.php cli ${1-} diff --git a/sources/bin/prepare-static.php b/sources/bin/prepare-static.php deleted file mode 100755 index a7e9b99..0000000 --- a/sources/bin/prepare-static.php +++ /dev/null @@ -1,121 +0,0 @@ -#!/usr/bin/php - - 'http://closure-compiler.googlecode.com/files/compiler-latest.zip', - 'yuicompressor-2.4.7/build/yuicompressor-2.4.7.jar' => - 'http://yui.zenfs.com/releases/yuicompressor/yuicompressor-2.4.7.zip' - ); - -$web_dir = getcwd() . '/../web/'; -$public_dir = $web_dir . 'public/'; -$js_dir = $web_dir . 'public/js/'; -$css_dir = $web_dir . 'public/css/'; -$app_dir = $web_dir . 'application/'; - -// Google Closure Compiler and YUI -foreach ($compilers as $path => $url) { - $file = basename($path); - if (!file_exists($file)) { - $zip = '/tmp/tmp_'.$file.'.zip'; - $ziphandle = fopen($zip, 'w'); - $options = array( - CURLOPT_FILE => $ziphandle, - CURLOPT_TIMEOUT => 28800, - CURLOPT_URL => $url, - ); - $ch = curl_init(); - curl_setopt_array($ch, $options); - curl_exec($ch); - - // Use -j to extract here - exec('unzip -j ' . $zip . ' ' . $path); - fclose($ziphandle); - } -} - -// Load file list -define('BASEPATH', $app_dir); -require_once($app_dir . 'hooks/Defs.php'); - -$defs = new Defs(); -$defs->definitions(); - - -// JS -$jsmin = $js_dir . 'jquery-base-' . AGENDAV_VERSION . '.js'; -$jsfull = $js_dir . 'agendav-' . AGENDAV_VERSION . '.js'; - -$jsfullhandle = fopen($jsfull, 'w'); -$jsminhandle = fopen($jsmin, 'w'); -$i = 0; -foreach (Defs::$jsfiles as $js) { - echo "Processing $js..."; - $contents = ''; - if (strpos($js, '.min.') !== FALSE) { - echo " already minimized.\n"; - $contents = file_get_contents($js_dir . $js); - } else { - echo " using compiler.jar.\n"; - $cmd = 'java -jar compiler.jar --compilation_level ' - .'SIMPLE_OPTIMIZATIONS --js ' . $js_dir . $js; - $cmdhandle = popen($cmd, 'r'); - while (!feof($cmdhandle)) { - $contents .= fread($cmdhandle, 8192); - } - } - - // Write on two files - if ($i < 2) { - fwrite($jsminhandle, $contents); - } else { - fwrite($jsfullhandle, $contents); - } - $i++; -} -fclose($jsfullhandle); -fclose($jsminhandle); - - -// CSS -$cssmin = $css_dir . 'agendav-' . AGENDAV_VERSION . '.css'; -$cssprint = $css_dir . 'agendav-' . AGENDAV_VERSION . '.print.css'; -$tmp = array_keys($compilers); -$yuicompressor = basename($tmp[1]); - -$csshandle = fopen($cssmin, 'w'); -$cssprinthandle = fopen($cssprint, 'w'); -$tasks = array('cssfiles', 'printcssfiles'); -foreach ($tasks as $task) { - foreach (Defs::$$task as $css) { - echo "Processing $css..."; - $contents = ''; - if (strpos($css, '.min.') !== FALSE) { - echo " already minimized.\n"; - $contents = file_get_contents($css_dir . $css); - } else { - echo " using ".$yuicompressor."\n"; - $cmd = 'java -jar '.$yuicompressor.' --type css' - .' ' . $css_dir . $css; - $cmdhandle = popen($cmd, 'r'); - while (!feof($cmdhandle)) { - $contents .= fread($cmdhandle, 8192); - } - } - - // Write - if ($task == 'cssfiles') { - fwrite($csshandle, $contents); - } else { - fwrite($cssprinthandle, $contents); - } - } -} -fclose($csshandle); -fclose($cssprinthandle); - diff --git a/sources/doc/Makefile b/sources/doc/Makefile deleted file mode 100644 index b516c1f..0000000 --- a/sources/doc/Makefile +++ /dev/null @@ -1,130 +0,0 @@ -# Makefile for Sphinx documentation -# - -# You can set these variables from the command line. -SPHINXOPTS = -SPHINXBUILD = sphinx-build -PAPER = -BUILDDIR = build - -# Internal variables. -PAPEROPT_a4 = -D latex_paper_size=a4 -PAPEROPT_letter = -D latex_paper_size=letter -ALLSPHINXOPTS = -d $(BUILDDIR)/doctrees $(PAPEROPT_$(PAPER)) $(SPHINXOPTS) source - -.PHONY: help clean html dirhtml singlehtml pickle json htmlhelp qthelp devhelp epub latex latexpdf text man changes linkcheck doctest - -help: - @echo "Please use \`make ' where is one of" - @echo " html to make standalone HTML files" - @echo " dirhtml to make HTML files named index.html in directories" - @echo " singlehtml to make a single large HTML file" - @echo " pickle to make pickle files" - @echo " json to make JSON files" - @echo " htmlhelp to make HTML files and a HTML help project" - @echo " qthelp to make HTML files and a qthelp project" - @echo " devhelp to make HTML files and a Devhelp project" - @echo " epub to make an epub" - @echo " latex to make LaTeX files, you can set PAPER=a4 or PAPER=letter" - @echo " latexpdf to make LaTeX files and run them through pdflatex" - @echo " text to make text files" - @echo " man to make manual pages" - @echo " changes to make an overview of all changed/added/deprecated items" - @echo " linkcheck to check all external links for integrity" - @echo " doctest to run all doctests embedded in the documentation (if enabled)" - -clean: - -rm -rf $(BUILDDIR)/* - -html: - $(SPHINXBUILD) -b html $(ALLSPHINXOPTS) $(BUILDDIR)/html - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/html." - -dirhtml: - $(SPHINXBUILD) -b dirhtml $(ALLSPHINXOPTS) $(BUILDDIR)/dirhtml - @echo - @echo "Build finished. The HTML pages are in $(BUILDDIR)/dirhtml." - -singlehtml: - $(SPHINXBUILD) -b singlehtml $(ALLSPHINXOPTS) $(BUILDDIR)/singlehtml - @echo - @echo "Build finished. The HTML page is in $(BUILDDIR)/singlehtml." - -pickle: - $(SPHINXBUILD) -b pickle $(ALLSPHINXOPTS) $(BUILDDIR)/pickle - @echo - @echo "Build finished; now you can process the pickle files." - -json: - $(SPHINXBUILD) -b json $(ALLSPHINXOPTS) $(BUILDDIR)/json - @echo - @echo "Build finished; now you can process the JSON files." - -htmlhelp: - $(SPHINXBUILD) -b htmlhelp $(ALLSPHINXOPTS) $(BUILDDIR)/htmlhelp - @echo - @echo "Build finished; now you can run HTML Help Workshop with the" \ - ".hhp project file in $(BUILDDIR)/htmlhelp." - -qthelp: - $(SPHINXBUILD) -b qthelp $(ALLSPHINXOPTS) $(BUILDDIR)/qthelp - @echo - @echo "Build finished; now you can run "qcollectiongenerator" with the" \ - ".qhcp project file in $(BUILDDIR)/qthelp, like this:" - @echo "# qcollectiongenerator $(BUILDDIR)/qthelp/AgenDAV.qhcp" - @echo "To view the help file:" - @echo "# assistant -collectionFile $(BUILDDIR)/qthelp/AgenDAV.qhc" - -devhelp: - $(SPHINXBUILD) -b devhelp $(ALLSPHINXOPTS) $(BUILDDIR)/devhelp - @echo - @echo "Build finished." - @echo "To view the help file:" - @echo "# mkdir -p $$HOME/.local/share/devhelp/AgenDAV" - @echo "# ln -s $(BUILDDIR)/devhelp $$HOME/.local/share/devhelp/AgenDAV" - @echo "# devhelp" - -epub: - $(SPHINXBUILD) -b epub $(ALLSPHINXOPTS) $(BUILDDIR)/epub - @echo - @echo "Build finished. The epub file is in $(BUILDDIR)/epub." - -latex: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo - @echo "Build finished; the LaTeX files are in $(BUILDDIR)/latex." - @echo "Run \`make' in that directory to run these through (pdf)latex" \ - "(use \`make latexpdf' here to do that automatically)." - -latexpdf: - $(SPHINXBUILD) -b latex $(ALLSPHINXOPTS) $(BUILDDIR)/latex - @echo "Running LaTeX files through pdflatex..." - make -C $(BUILDDIR)/latex all-pdf - @echo "pdflatex finished; the PDF files are in $(BUILDDIR)/latex." - -text: - $(SPHINXBUILD) -b text $(ALLSPHINXOPTS) $(BUILDDIR)/text - @echo - @echo "Build finished. The text files are in $(BUILDDIR)/text." - -man: - $(SPHINXBUILD) -b man $(ALLSPHINXOPTS) $(BUILDDIR)/man - @echo - @echo "Build finished. The manual pages are in $(BUILDDIR)/man." - -changes: - $(SPHINXBUILD) -b changes $(ALLSPHINXOPTS) $(BUILDDIR)/changes - @echo - @echo "The overview file is in $(BUILDDIR)/changes." - -linkcheck: - $(SPHINXBUILD) -b linkcheck $(ALLSPHINXOPTS) $(BUILDDIR)/linkcheck - @echo - @echo "Link check complete; look for any errors in the above output " \ - "or in $(BUILDDIR)/linkcheck/output.txt." - -doctest: - $(SPHINXBUILD) -b doctest $(ALLSPHINXOPTS) $(BUILDDIR)/doctest - @echo "Testing of doctests in the sources finished, look at the " \ - "results in $(BUILDDIR)/doctest/output.txt." diff --git a/sources/doc/source/_themes/LICENSE b/sources/doc/source/_themes/LICENSE deleted file mode 100644 index 81f4d30..0000000 --- a/sources/doc/source/_themes/LICENSE +++ /dev/null @@ -1,45 +0,0 @@ -Modifications: - -Copyright (c) 2010 Kenneth Reitz. - - -Original Project: - -Copyright (c) 2010 by Armin Ronacher. - - -Some rights reserved. - -Redistribution and use in source and binary forms of the theme, with or -without modification, are permitted provided that the following conditions -are met: - -* Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above - copyright notice, this list of conditions and the following - disclaimer in the documentation and/or other materials provided - with the distribution. - -* The names of the contributors may not be used to endorse or - promote products derived from this software without specific - prior written permission. - -We kindly ask you to only use these themes in an unmodified manner just -for Flask and Flask-related products, not for unrelated projects. If you -like the visual style and want to use it for your own projects, please -consider making some larger changes to the themes (such as changing -font faces, sizes, colors or margins). - -THIS THEME IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE -ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE -LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR -CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF -SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS -INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN -CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) -ARISING IN ANY WAY OUT OF THE USE OF THIS THEME, EVEN IF ADVISED OF THE -POSSIBILITY OF SUCH DAMAGE. diff --git a/sources/doc/source/_themes/flask_theme_support.py b/sources/doc/source/_themes/flask_theme_support.py deleted file mode 100644 index 33f4744..0000000 --- a/sources/doc/source/_themes/flask_theme_support.py +++ /dev/null @@ -1,86 +0,0 @@ -# flasky extensions. flasky pygments style based on tango style -from pygments.style import Style -from pygments.token import Keyword, Name, Comment, String, Error, \ - Number, Operator, Generic, Whitespace, Punctuation, Other, Literal - - -class FlaskyStyle(Style): - background_color = "#f8f8f8" - default_style = "" - - styles = { - # No corresponding class for the following: - #Text: "", # class: '' - Whitespace: "underline #f8f8f8", # class: 'w' - Error: "#a40000 border:#ef2929", # class: 'err' - Other: "#000000", # class 'x' - - Comment: "italic #8f5902", # class: 'c' - Comment.Preproc: "noitalic", # class: 'cp' - - Keyword: "bold #004461", # class: 'k' - Keyword.Constant: "bold #004461", # class: 'kc' - Keyword.Declaration: "bold #004461", # class: 'kd' - Keyword.Namespace: "bold #004461", # class: 'kn' - Keyword.Pseudo: "bold #004461", # class: 'kp' - Keyword.Reserved: "bold #004461", # class: 'kr' - Keyword.Type: "bold #004461", # class: 'kt' - - Operator: "#582800", # class: 'o' - Operator.Word: "bold #004461", # class: 'ow' - like keywords - - Punctuation: "bold #000000", # class: 'p' - - # because special names such as Name.Class, Name.Function, etc. - # are not recognized as such later in the parsing, we choose them - # to look the same as ordinary variables. - Name: "#000000", # class: 'n' - Name.Attribute: "#c4a000", # class: 'na' - to be revised - Name.Builtin: "#004461", # class: 'nb' - Name.Builtin.Pseudo: "#3465a4", # class: 'bp' - Name.Class: "#000000", # class: 'nc' - to be revised - Name.Constant: "#000000", # class: 'no' - to be revised - Name.Decorator: "#888", # class: 'nd' - to be revised - Name.Entity: "#ce5c00", # class: 'ni' - Name.Exception: "bold #cc0000", # class: 'ne' - Name.Function: "#000000", # class: 'nf' - Name.Property: "#000000", # class: 'py' - Name.Label: "#f57900", # class: 'nl' - Name.Namespace: "#000000", # class: 'nn' - to be revised - Name.Other: "#000000", # class: 'nx' - Name.Tag: "bold #004461", # class: 'nt' - like a keyword - Name.Variable: "#000000", # class: 'nv' - to be revised - Name.Variable.Class: "#000000", # class: 'vc' - to be revised - Name.Variable.Global: "#000000", # class: 'vg' - to be revised - Name.Variable.Instance: "#000000", # class: 'vi' - to be revised - - Number: "#990000", # class: 'm' - - Literal: "#000000", # class: 'l' - Literal.Date: "#000000", # class: 'ld' - - String: "#4e9a06", # class: 's' - String.Backtick: "#4e9a06", # class: 'sb' - String.Char: "#4e9a06", # class: 'sc' - String.Doc: "italic #8f5902", # class: 'sd' - like a comment - String.Double: "#4e9a06", # class: 's2' - String.Escape: "#4e9a06", # class: 'se' - String.Heredoc: "#4e9a06", # class: 'sh' - String.Interpol: "#4e9a06", # class: 'si' - String.Other: "#4e9a06", # class: 'sx' - String.Regex: "#4e9a06", # class: 'sr' - String.Single: "#4e9a06", # class: 's1' - String.Symbol: "#4e9a06", # class: 'ss' - - Generic: "#000000", # class: 'g' - Generic.Deleted: "#a40000", # class: 'gd' - Generic.Emph: "italic #000000", # class: 'ge' - Generic.Error: "#ef2929", # class: 'gr' - Generic.Heading: "bold #000080", # class: 'gh' - Generic.Inserted: "#00A000", # class: 'gi' - Generic.Output: "#888", # class: 'go' - Generic.Prompt: "#745334", # class: 'gp' - Generic.Strong: "bold #000000", # class: 'gs' - Generic.Subheading: "bold #800080", # class: 'gu' - Generic.Traceback: "bold #a40000", # class: 'gt' - } diff --git a/sources/doc/source/_themes/proBlue/LICENSE.txt b/sources/doc/source/_themes/proBlue/LICENSE.txt deleted file mode 100644 index b90e2b5..0000000 --- a/sources/doc/source/_themes/proBlue/LICENSE.txt +++ /dev/null @@ -1,9 +0,0 @@ -Copyright (c) 2010, Kasey Kelly, Issac Kelly -All rights reserved. - -Redistribution and use in source and binary forms, with or without modification, are permitted provided that the following conditions are met: - -Redistributions of source code must retain the above copyright notice, this list of conditions and the following disclaimer. -Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following disclaimer in the documentation and/or other materials provided with the distribution. -Neither the name "Kelly Creative Tech" nor the names of its contributors may be used to endorse or promote products derived from this software without specific prior written permission. -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. \ No newline at end of file diff --git a/sources/doc/source/_themes/proBlue/README.txt b/sources/doc/source/_themes/proBlue/README.txt deleted file mode 100644 index 51e822c..0000000 --- a/sources/doc/source/_themes/proBlue/README.txt +++ /dev/null @@ -1,9 +0,0 @@ -This is the proBlue theme for Sphinx. - -http://www.kellycreativetech.com/Blog/entry/ProBlue_Sphinx_Theme/ - -You can install it by putting it in your docs directory (next to _static) -then you can set in your conf.py - - html_theme = 'proBlue' - html_theme_path = ["."] \ No newline at end of file diff --git a/sources/doc/source/_themes/proBlue/static/proBlue.css b/sources/doc/source/_themes/proBlue/static/proBlue.css deleted file mode 100644 index e6ac7f6..0000000 --- a/sources/doc/source/_themes/proBlue/static/proBlue.css +++ /dev/null @@ -1,316 +0,0 @@ -/** - * Sphinx stylesheet -- default theme - * ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - */ - -@import url("basic.css"); - -/* -- fontfaces ----------------------------------------------------------- */ -@import url(http://fonts.googleapis.com/css?family=Open+Sans:400,700); -@import url(http://fonts.googleapis.com/css?family=PT+Mono); - -@import url(http://fonts.googleapis.com/css?family=Source+Sans+Pro); -/* -- page layout ----------------------------------------------------------- */ - -body { - font-family: 'Open Sans', helvetica, arial, serif; - font-size: 100%; - background-color: #111111; - color: #555555; - margin: 0; - padding: 0; -} - -div.documentwrapper { - float: left; - width: 100%; -} - -div.bodywrapper { - margin: 0 0 0 300px; -} - -hr{ - border: 1px solid #B1B4B6; -} - -div.document { - background-color: #ececec; -} - -div.body { - background-color: #fafafa; - color: #3E4349; - padding: 1em 30px 30px 30px; - font-size: 0.9em; - border-left:1px solid #ddd; -} - -div.footer { - color: #999; - width: 100%; - padding: 9px 0 18px; - text-align: center; - font-size: 60%; - background: #fff; -} - -div.footer a { - color: #444; -} -div.footer a:hover, div.related a:hover { -border-bottom:1px solid #4362b0; -} -div.related { - background-color: #0046c0; - background-image: -moz-linear-gradient(top, #0046c0, #173fa2); /* FF3.6 */ - background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #0046c0),color-stop(1, #173fa2)); /* Saf4+, Chrome */ - filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#0046c0', EndColorStr='#173fa2'); /* IE6,IE7 */ - -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#0046c0', EndColorStr='#173fa2')"; /* IE8 */ - line-height: 54px; - color: #ffffff; - text-shadow: 0px 1px 1px rgba(0,0,0,0.4); - font-size: 1.1em; -} - -div.related a { - color: #fff; -} - -div.related .right { - font-size: 0.9em; -} - -div.sphinxsidebar { - font-size: 0.9em; - line-height: 1.5em; - width: 300px -} -div.sphinxsidebar a{ -display:block; -border-bottom:1px solid #ccc; -} - -div.sphinxsidebarwrapper{ - padding: 20px 0; -} - -div.sphinxsidebar h3, -div.sphinxsidebar h4 { - font-family: 'Source Sans Pro', arial, serif; - color: #222; - font-size: 1.6em; - font-weight: normal; - margin: 0; - padding: 24px 10px 0; - text-shadow: 1px 1px 1px white; -} - -div.sphinxsidebar h3 a { - color: #222; -} - -div.sphinxsidebar p { - color: #888888; - padding: 5px 20px; - margin: 0.5em 0px; -} - -div.sphinxsidebar p.topless { -} - -div.sphinxsidebar ul { - margin: 10px 10px 10px 20px; - padding: 0; -} - -div.sphinxsidebar ul ul, div.sphinxsidebar ul.want-points{ - list-style:none; - margin: 10px 0 10px 20px; -} -div.sphinxsidebar ul li{ -font-size:16px; -} - -div.sphinxsidebar ul li li{ -font-size:12px; -} - -div.sphinxsidebar li a { - color: #333; - display:block; - border-bottom:1px solid #ccc; -} -div.sphinxsidebar li a:hover, div.sphinxsidebar a:hover { - border-bottom:1px solid #c07100; -} -div.sphinxsidebar li li a { - color: #555; - border-bottom:1px solid #ddd; -} - -div.sphinxsidebar a:hover { - color: #c07100; -} - -div.sphinxsidebar input { - border: 1px solid #ddd; - border-bottom: 1px solid #bbb; - font-family: 'Open Sans', helvetica, arial, serif; - font-size: 1.3em; - padding: 0.2em 0.4em; - -moz-box-shadow: 0px 0px 3px rgba(0,0,0,0.1); - -webkit-box-shadow: 0px 0px 3px rgba(0,0,0,0.1); - box-shadow: 0px 0px 3px rgba(0,0,0,0.1); -} -div.sphinxsidebar input:focus { - border: 1px solid #bbb; - border-bottom: 1px solid #999; -} -div.sphinxsidebar input[type=text]{ - margin-left: 20px; - padding: 0.23em 0.4em; - color:#333; -} -div.sphinxsidebar input[type=submit]{ - background-color: #0046c0; - background-image: -moz-linear-gradient(top, #0046c0, #173fa2); /* FF3.6 */ - background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #0046c0),color-stop(1, #173fa2)); /* Saf4+, Chrome */ - filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#0046c0', EndColorStr='#173fa2'); /* IE6,IE7 */ - -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#0046c0', EndColorStr='#173fa2')"; /* IE8 */ - color:#fff; - cursor: pointer; -} -div.sphinxsidebar input[type=submit]:hover{ - background-color: #0353e3; - background-image: -moz-linear-gradient(top, #0353e3, #063da0); /* FF3.6 */ - background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #0353e3),color-stop(1, #063da0)); /* Saf4+, Chrome */ - filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#0353e3', EndColorStr='#063da0'); /* IE6,IE7 */ - -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#0353e3', EndColorStr='#063da0')"; /* IE8 */ -} - -div.sphinxsidebar input[type=submit]:active{ - background-image: -moz-linear-gradient(top, #0b34ce, #052392); /* FF3.6 */ - background-image: -webkit-gradient(linear,left top,left bottom,color-stop(0, #0b34ce),color-stop(1, #052392)); /* Saf4+, Chrome */ - filter: progid:DXImageTransform.Microsoft.gradient(startColorStr='#0b34ce', EndColorStr='#052392'); /* IE6,IE7 */ - -ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorStr='#0b34ce', EndColorStr='#052392')"; /* IE8 */ -} - - - -/* -- body styles ----------------------------------------------------------- */ - -a { - color: #0046c0; - text-decoration: none; -} - -a:hover { - color: #c07100; - border-bottom:1px solid #eee; -} - -div.body h1, -div.body h2, -div.body h3, -div.body h4, -div.body h5, -div.body h6 { - font-family: 'Source Sans Pro', arial, serif; - font-weight: normal; - color: #000; - margin: 36px 0px 9px 0px; - padding: 5px 0 5px 0px; - text-shadow: 0px 1px 0 white; - border-bottom: 1px solid #ddd; -} - -div.body h1 { margin-top: 0; font-size: 280%; } -div.body h2 { font-size: 200%; } -div.body h3 { font-size: 180%; } -div.body h4 { font-size: 150%; } -div.body h5 { font-size: 130%; } -div.body h6 { font-size: 120%; } - -a.headerlink { - color: #c07100; - font-size: 0.8em; - padding: 0 4px 0 4px; - text-decoration: none; -} - -a.headerlink:hover { - background-color: #c07100; - color: white; -} - -div.body p, div.body dd, div.body li { - line-height: 1.5em; -} -div.body p{ -margin:1.2em 0; -} -div.admonition p.admonition-title + p { - display: inline; -} - -div.highlight{ - background-color: white; -} - -div.note { - background-color: #eeeeee; - border: 1px solid #cccccc; -} - -div.seealso { - background-color: #ffffcc; - border: 1px solid #ffff66; -} - -div.topic { - background-color: #fafafa; - border-width: 0; -} - -div.warning { - background-color: #ffe4e4; - border: 1px solid #ff6666; -} - -p.admonition-title { - display: inline; -} - -p.admonition-title:after { - content: ":"; -} - -pre { - font: 12px/18px 'PT Mono', arial, serif; - padding: 10px; - background-color: #fcfadd; - border:1px solid #ddd; - color: #222222; - line-height: 1.5em; - font-size: 1.1em; - margin: 1.5em 0 1.5em 0; - -webkit-box-shadow: 0px 0px 4px #d8d8d8; - -moz-box-shadow: 0px 0px 4px #d8d8d8; - box-shadow: 0px 0px 4px #d8d8d8; -} -.pre{ - font-family: 'PT Mono', arial, serif; - font-size: 0.9em; -} - -tt { - color: #222222; - padding: 1px 2px; - font-size: 1.2em; - font-family: 'PT Mono', monospace; -} - -#table-of-contents ul { - padding-left: 2em; -} diff --git a/sources/doc/source/_themes/proBlue/theme.conf b/sources/doc/source/_themes/proBlue/theme.conf deleted file mode 100644 index d083625..0000000 --- a/sources/doc/source/_themes/proBlue/theme.conf +++ /dev/null @@ -1,3 +0,0 @@ -[theme] -inherit = nature -stylesheet = proBlue.css diff --git a/sources/doc/source/admin/configuration.rst b/sources/doc/source/admin/configuration.rst deleted file mode 100644 index 83466b7..0000000 --- a/sources/doc/source/admin/configuration.rst +++ /dev/null @@ -1,461 +0,0 @@ -Configuration -============= - -Configuring AgenDAV requires modifying some PHP text files located in the -``web/config/`` directory. - -The following files are usually found as ``filename.php.template``, so make -a copy of them with the correct file name to make them work. - -.. note:: - - ``ldap.php`` was removed in AgenDAV 1.1.1 - -General configuration (config.php) ----------------------------------- - -``config.php`` file specifies general options about AgenDAV environment. It -loads a set of default option values from ``defaults.php``, but it is -recommended to configure all of the following variables. - -Please, do not modify ``defaults.php``, as it is a file that updates on -every AgenDAV upgrade to avoid problems if you forget any configuration -setting. - -.. confval:: base_url - - Specify here your full public URL to access AgenDAV, adding a trailing - slash. Example:: - - $config['base_url'] = 'https://agendav.host/'; - -.. confval:: show_in_log - - Array of logging levels which will appear in logs. Possible logging - levels are: - - * ``ERROR``: error messages, recommended - * ``INFO``: informational messages, recommended - * ``AUTHERR``: authentication errors - * ``AUTHOK``: successful authentications - * ``INTERNALS``: AgenDAV internal processing actions, not recommended unless - you are having problems or you want to debug AgenDAV - * ``DEBUG``: CodeIgniter internal debug. Do not enable unless you know - what you are doing - - Example:: - - $config['show_in_log']= array('ERROR','INFO','AUTHERR', 'AUTHOK'); - -.. confval:: log_path - - Full path where logs will be created. Add a trailing slash. Example:: - - $config['log_path'] = '/var/log/agendav/'; - - Make sure the user that runs your web server has write permission on that - directory. - -.. confval:: encryption_key - - Random string which will be used to encrypt some cookie values. - -.. confval:: cookie_prefix - - Prefix that should be prepended to your cookie names. Useful if you have - several sites hosted on the same hostname and you want to avoid name - collisions - -.. confval:: cookie_domain - - Domain the cookie will be defined for. Use ``.domain.tld`` or - ``full.host.domain.tld``, depending on what you want. - -.. confval:: cookie_path - - Path the cookie will be defined for. - -.. confval:: cookie_secure - - Create cookies only for use in https environments. Set it TRUE if your - users access AgenDAV via https. - -.. confval:: proxy_ips - - Comma delimited IPs of your proxies, which will make CodeIgniter - framework to trust the HTTP_X_FORWARDED_FOR header. Leave it blank if - your AgenDAV installation isn't being accessed via HTTP proxy. - -.. confval:: site_title - - Title of every page - -.. confval:: logo - - Image filename which will be used as a logo. Has to be a valid filename - placed inside ``web/public/img/`` directory. - -.. confval:: login_page_logo - - Image filename which will be used as a logo only for login page. It's - usually bigger than the normal logo. Has to be a valid filename placed - inside ``web/public/img/`` directory. - - .. versionadded:: 1.2.6 - -.. confval:: footer - - Text to be placed in the footer. - -.. confval:: logout_redirect_to - - When logging out from AgenDAV, the URL the user will be redirected to. - - Can be left empty to redirect user to login page again. - -.. confval:: additional_js - - Array of additional JavaScript files which you will be loading on every - page. They have to be placed inside ``web/public/js`` - -.. confval:: show_public_caldav_url - - Whether to show CalDAV URL links or not in the edit dialog - - .. seealso:: :confval:`public_caldav_url` - -.. confval:: default_language - - Language to be used in AgenDAV interface. - - Have a look at directory ``web/lang`` for a list of available languages. - - Note that the value given to this setting will be used as application - locale with ``setlocale()``. - - .. versionadded:: 1.2 - -.. confval:: default_time_format - - Preferred time format: 12 hours (e.g. 3pm / 2:30am) or 24 hours - (e.g. 15:00 / 2:30). - - Set this option using a **string** (``'12'`` or ``'24'``). - - .. versionadded:: 1.2 - -.. confval:: default_date_format - - Preferred date format to be used inside date fields (only in forms). - Possible values are: - - * ``ymd``: e.g. 2011/10/22 - * ``dmy``: e.g. 22/10/2011 - * ``mdy``: e.g. 10/22/2011 - - .. versionadded:: 1.2 - -.. confval:: format_full_date - - Human readable format for dates, using ``strftime`` syntax - (http://php.net/strftime). Some examples: - - * ``%a %e %B %Y``: Mon 5 March 2012 - * ``%a %e de %B de %Y``: Lun 5 de marzo de 2012 (localized using ``es_ES`` as :confval:`default_language`) - - .. versionadded:: 1.2.5 - -.. confval:: format_column_month - - Sets how the UI calendar should format the column header in month view. - Uses `FullCalendar own syntax `_ - - .. versionadded:: 1.2.5 - -.. confval:: format_column_week - - Sets how the UI calendar should format the column header in week view. - Uses `FullCalendar own syntax `_ - - .. versionadded:: 1.2.5 - -.. confval:: format_column_day - - Sets how the UI calendar should format the column header in day view. - Uses `FullCalendar own syntax `_ - - .. versionadded:: 1.2.5 - -.. confval:: format_column_table - - Sets how the UI calendar should format the column header in table (called *agenda*) view. Uses `FullCalendar own syntax `_ - - .. versionadded:: 1.2.5 - -.. confval:: format_title_month - - Sets how the UI calendar should format the title in month view. - Uses `FullCalendar own syntax `_ - - .. versionadded:: 1.2.5 - -.. confval:: format_title_week - - Sets how the UI calendar should format the title in week view. - Uses `FullCalendar own syntax `_ - - .. versionadded:: 1.2.5 - -.. confval:: format_title_day - - Sets how the UI calendar should format the title in day view. - Uses `FullCalendar own syntax `_ - - .. versionadded:: 1.2.5 - -.. confval:: format_title_table - - Sets how the UI calendar should format the title header in table (called *agenda*) view. Uses `FullCalendar own syntax `_ - - .. versionadded:: 1.2.5 - -.. confval:: default_first_day - - Which day should be considered the first of the week. Starting with 0 - (Sunday), 1 means Monday and so on. - - Use a numerical value, not an integer. - - .. versionadded:: 1.2 - -.. confval:: default_timezone - - Timezone to be used internally. Will be used for recalculating other - timezone dates and hours to be sent to the browser, ignoring browser - configured timezone. - - Make sure you use a valid timezone from http://php.net/timezones - - .. versionadded:: 1.2 - -.. confval:: default_calendar_color - - .. deprecated:: 1.2.3 - - Default background and foreground colors for calendars. Has to be - specified as an associative array. Example:: - - // Default background color: #B5C7EB - // Default foreground (text) color: #000000 - $config['default_calendar_color'] = array('B5C7EB' => '000000'); - -.. confval:: additional_calendar_colors - - .. deprecated:: 1.2.3 - - List of selectable background and foreground color combinations. Specify - them as an associative array. Example:: - - // background color => foreground color - $config['additional_calendar_colors'] = array( - 'FAC5C0' => '000000', - 'B7E3C0' => '000000', - 'CAB2FC' => '000000', - 'F8F087' => '000000', - 'E6D5C1' => '000000', - 'FFC48C' => '000000', - 'DAF5FF' => '000000', - 'C4C4BC' => '000000', - ); - -.. confval:: calendar_colors - - List of selectable background colors. Foreground color will be - automatically calculated depending on the darkness of the color. Specify - them as an array. Example:: - - $config['calendar_colors'] = array( - '9CC4E4', - '3A89C9', - '107FC9', - 'FAC5C0', - 'FF4E50', - 'BD3737', - 'C9DF8A', - '77AB59', - '36802D', - 'F8F087', - 'E6D5C1', - '3E4147', - ); - - -Database configuration (database.php) -------------------------------------- - -``database.php`` contains how to connect to your MySQL database. Just follow -inline comments, it's pretty straight forward. - -CalDAV specific options (caldav.php) ------------------------------------- - -Here you will configure every single aspect of your CalDAV server. - -.. confval:: caldav_url - - .. deprecated:: 1.2.4 - - .. seealso:: :confval:`caldav_principal_url` :confval:`caldav_calendar_url` - -.. confval:: caldav_http_auth_method - - You can specify which HTTP authentication method does your CalDAV server - require. Use any of the cURL ``CURLOPT_HTTPAUTH`` valid values (see - http://www.php.net/manual/en/function.curl-setopt.php), or leave it empty - to make AgenDAV auto-detect which authentication method to use. - - Using the auto-detect feature will slow down requests when using Basic - auth. If you know which authentication method does your server use you're - advised to set the right value on this option. - - Example:: - - // Automatic guess - $config['caldav_http_auth_method'] = null; - - // SabreDAV - $config['caldav_http_auth_method'] = CURLAUTH_DIGEST; - - // DAViCal - $config['caldav_http_auth_method'] = CURLAUTH_BASIC; - - .. versionadded:: 1.2.5 - - -.. confval:: caldav_principal_url - - Used by AgenDAV to generate a principal URL for your CalDAV server. The - placeholder ``%u`` will be replaced by an username. - - Needs a trailing slash. - - Example:: - - // Example 1: DAViCal - $config['caldav_principal_url'] = 'http://10.0.0.12/caldav.php/%u/'; - - // Example 2: SabreDAV - $config['caldav_principal_url'] = 'http://10.0.0.12/calendarserver.php/principals/%u/'; - - // Example 3: Calendar server - $config['caldav_principal_url'] = 'http://10.0.0.12/calendars/users/%u/'; - - Principal URL for user ``my_user`` for example 2 will be: - - http://10.0.12/calendarserver.php/principals/my_user/ - - .. seealso:: :confval:`caldav_calendar_url` - -.. confval:: caldav_calendar_url - - Used by AgenDAV to generate a calendar collection URL or resource URL for - your CalDAV server. The placeholder ``%s`` will be replaced by AgenDAV - with required values. - - Example:: - - // DAViCal - $config['caldav_calendar_url'] = 'http://10.0.0.12/caldav.php/%s/'; - - Resource with UID=aaa0001 on calendar 'work' for user3 will become: - - http://10.0.12/caldav.php/user3/work/aaa0001/ - - Calendar 'test' for user1 will become: - - http://10.0.12/caldav.php/user3/test/ - - .. seealso:: :confval:`caldav_principal_url` - -.. confval:: public_caldav_url - - The URL that will be shown to users if :confval:`show_public_caldav_url` is - enabled. It's not used for internal connections. Placeholder ``%s`` will - be replaced by current username and calendar. - - Needs a trailing slash. - - Example:: - - $config['public_caldav_url'] = 'https://public.caldav.tld/caldav.php/%s/'; - - Will become for user ``user2`` and calendar ``myhomecalendar``: - - https://public.caldav.tld/caldav.php/user2/myhomecalendar/ - -.. confval:: enable_calendar_sharing - - Enables an option to share calendars between users. - - Note that calendar sharing requires full WebDAV ACL support on your - CalDAV server. Some servers, such as SabreDAV (at least on current - release, 1.5.6), don't support them, so you should set this option - to FALSE if your server can't handle ACLs. - -.. confval:: owner_permissions - - List of DAV permissions used for the calendar owner when sharing a - calendar. As DAV ACLs are used, when editing a calendar sharing options a - full ACL has to be built with the following structure: - - * Permissions given to the owner (this option) - * Permissions given to users with read-only profile (:confval:`read_profile_permissions`) - * Permissions given to users with read and write profile (:confval:`read_write_profile_permissions`) - * Permissions given to the rest of users (:confval:`default_permissions`) - - Please, refer to your CalDAV server documentation to know which - permissions does it support. - - For DAViCal you can follow `Permissions page on DAViCal wiki - `_. Default values of this option - will work all right for DAViCal. - -.. confval:: share_permissions - - .. deprecated:: 1.2.5 - - .. seealso:: See :confval:`read_profile_permissions` and - :confval:`read_write_profile_permissions` - -.. confval:: read_profile_permissions - - List of DAV permissions used for users given read-only permission on a - calendar. - - .. versionadded:: 1.2.5 - -.. confval:: read_write_profile_permissions - - List of DAV permissions used for users given read and write permission on - a calendar. - - .. versionadded:: 1.2.5 - -.. confval:: default_permissions - - List of DAV permissions used for users which are not owner neither - granted users when some user shares a calendar with other ones. - - Please, refer to your CalDAV server documentation to know which - permissions does it support. - - Default value lets users just to make free/busy queries in DAViCal. - -Other configuration files -------------------------- - -Advanced options (advanced.php) -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -This file should be kept untouched unless you know what you are trying to -modify. It contains several options that make AgenDAV work by default. diff --git a/sources/doc/source/admin/index.rst b/sources/doc/source/admin/index.rst deleted file mode 100644 index cbac376..0000000 --- a/sources/doc/source/admin/index.rst +++ /dev/null @@ -1,10 +0,0 @@ -Installation and configuration -============================== - -.. toctree:: - :numbered: - - installation - upgrading - configuration - troubleshooting diff --git a/sources/doc/source/admin/installation.rst b/sources/doc/source/admin/installation.rst deleted file mode 100644 index b0428dd..0000000 --- a/sources/doc/source/admin/installation.rst +++ /dev/null @@ -1,134 +0,0 @@ -Installation -============ - -In this section you will be able to install AgenDAV. - -Prerequisites -------------- - -AgenDAV |release| requires the following software to be installed: - -* A CalDAV server (developed mainly with `DAViCal `_ -* A web server -* PHP >= 5.3.0 -* PHP mbstring extension -* PHP cURL extension -* MySQL > 5.1 or PostgreSQL >= 8.1 - -Downloading AgenDAV and uncompressing -------------------------------------- - -AgenDAV |release| can be obtained at `AgenDAV official webpage -`_, but you can use GitHub to download latest version. -Have a look at ``_. - -Uncompress it using ``tar``:: - - $ tar xzf adobo-agendav-...tar.gz - $ cd adobo-agendav-.../ - -Database and tables -------------------- - -AgenDAV requires a database to store some information. Supported RDBMs are -MySQL and PostgreSQL. - -First of all you have to create a user and a database for that user. - -Second, you'll have to create initial AgenDAV tables using provided SQL -files inside ``sql/`` directory. - -Last step is applying database upgrades to initial database tables. - -Steps 1&2: MySQL -**************** -Create an user in MySQL like this:: - - $ mysql --default-character-set=utf8 -uroot -p - Enter password: - [...] - mysql> GRANT ALL PRIVILEGES ON agendav.* TO agendav@localhost IDENTIFIED BY 'yourpassword' - mysql> CREATE DATABASE agendav CHARACTER SET utf8 COLLATE utf8_general_ci; - mysql> FLUSH PRIVILEGES; - mysql> ^D - -And then run the initial schema creation file:: - - $ mysql --default-character-set=utf8 -uagendav \ - -p agendav < sql/mysql.schema.sql - Enter password: - $ - -Note the UTF8 parts on the previous commands. If you don't specify them you -will have some issues with special characters. - -Steps 1&2: PostgreSQL -********************* - -Use the special ``postgres`` system user to manage your installation. You -can add a new user and a new database the following way:: - - # su postgres - $ psql - postgres=# CREATE USER agendav WITH PASSWORD 'somepassword'; - postgres=# CREATE DATABASE agendav ENCODING 'UTF8'; - postgres=# GRANT ALL PRIVILEGES ON DATABASE agendav TO agendav; - postgres=# \q - $ exit - -Then you have to edit the file ``pg_hba.conf``, which is usually located at -``/var/lib/pgsql/``. Add the following line before other definitions:: - - # TYPE DATABASE USER CIDR-ADDRESS METHOD - local agendav agendav trust - -After that just restart PostgreSQL and load the initial schema:: - - $ psql -U agendav agendav < sql/pgsql.schema.sql - - -Step 3: Apply latest database schema -************************************ - -Initial database structure created with `*.sql` files provides only a base -structure for AgenDAV. It has to be modified to apply latest release -changes. To do this, follow instructions on :ref:`dbupgrade`. - - -Configuring Apache web server ------------------------------ - -Apache has to be configured to point to ``web/public`` directory, using its -own VirtualHost or just an Alias. - -Example using a dedicated virtualhost:: - - - ServerAdmin admin@email.host - DocumentRoot /path/to/agendav/web/public - ServerName agendav.host - ErrorLog logs/agendav_error_log - CustomLog logs/agendav_access_log common - - -Example using the Alias directive:: - - Alias /agendav /path/to/agendav/web/public - -.. note:: - Make sure that you have the following PHP settings *disabled*: - - * ``magic_quotes_gpc`` - * ``magic_quotes_runtime`` - -Other web servers -***************** - -AgenDAV should work on all other web server software if they support PHP -scripts, but this is untested. - -Configure AgenDAV ------------------ - -Now you can proceed to configure AgenDAV following the :doc:`configuration` -section. diff --git a/sources/doc/source/admin/troubleshooting.rst b/sources/doc/source/admin/troubleshooting.rst deleted file mode 100644 index 113e254..0000000 --- a/sources/doc/source/admin/troubleshooting.rst +++ /dev/null @@ -1,83 +0,0 @@ -Troubleshooting AgenDAV -======================= - -If you are having problems with AgenDAV, check you have met all the -requisites and search AgenDAV logs/web server logs for error lines. - -You can write to `AgenDAV general list -`_ asking for help. Make -sure you include the following information: - -* Software details (OS, PHP version, web server you're using, CalDAV server) -* Clear description of your problem -* Important log lines - -Try the following before writing: - -Check configuration and installation environment ------------------------------------------------- - -AgenDAV ships, since version 1.2.4, a simple script that checks installation -environment and configuration files to make sure you meet all basic -requisites. - -To run it, edit file :file:`web/public/configtest.php` to set the constant -``ENABLE_SETUP_TESTS`` to ``TRUE``. - -Once you save the file with that change, point your browser to -``http://host/path/agendav/configtest.php`` and look for red cells. You'll -find some suggestions to fix the problems. - -Remember to set ``ENABLE_SETUP_TESTS`` back to ``FALSE`` inside -``configtest.php``. - -More verbose logs ------------------ - -Edit ``web/config/config.php`` and add the value ``INTERNALS`` inside -``show_in_log`` variable. For example:: - - $config['show_in_log']= array('ERROR','INFO','AUTHERR', 'AUTHOK','INTERNALS'); - -Check AgenDAV logs (make sure you have Check AgenDAV logs (make sure you -have a valid path configured in :confval:`log_path` and the user which runs -the webserver has writing access to it) and your webserver logs. - -You can add the value ``DEBUG`` to make CodeIgniter (the PHP framework) log -some more lines. - -Show errors ------------ - -You can switch to ``development`` environment to force PHP to print errors -on generated pages. By default AgenDAV is configured to hide errors to -users. - -To achieve that just edit the file ``web/public/index.php`` and replace the -following line:: - - define('ENVIRONMENT', 'production'); - -with:: - - define('ENVIRONMENT', 'development'); - - -Capture traffic ---------------- - -Sometimes CalDAV servers send unexpected data to AgenDAV or AgenDAV tries to -do an unsupported operation on your CalDAV server. When this happens it's a -good idea to run a traffic capture tool (like ``tcpdump`` or ``Wireshark``) -to see what's happening under the hood. This is only possible if you use -plain HTTP on your AgenDAV<->CalDAV server communication. - -Debug your browser status -------------------------- - -Most browsers can show you network activity and JavaScript errors using its -own interfaces. They can be very handful if you happen to find a bug on -AgenDAV. Some examples of browser which include this support are: - -* Mozilla Firefox with Firebug extension -* Google Chrome/Chromium with Developer Tools (no addon required) diff --git a/sources/doc/source/admin/upgrading.rst b/sources/doc/source/admin/upgrading.rst deleted file mode 100644 index 9e42163..0000000 --- a/sources/doc/source/admin/upgrading.rst +++ /dev/null @@ -1,74 +0,0 @@ -.. _upgrading: - -Upgrading -========= - -AgenDAV upgrades can be split into two simple steps. - -Before starting this process, make sure you have a backup of your current -AgenDAV directory, specially the ``web/config/`` directory, and dump your -database schema and contents. - -Please, do not continue unless you have both backups. - -Read all the :ref:`releasenotes` from the version you were using -to current release, because some configuration files may have changed. Apply -those changes after updating the files from AgenDAV. - -.. _filesupgrade: - -Files upgrade -------------- - -a) Updating from tar.gz file -**************************** - -You can replace the whole AgenDAV directory with the new files, but it's -recommended to keep your old folder with a different name (e.g. -``agendav_old/``). You'll need it to copy back your configuration files. - -After downloading the new tar.gz file and uncompressing it, copy your -configuration files from the old directory:: - - $ cd agendav_old/web/config/ - $ cp -a advanced.php caldav.php config.php database.php \ - /path/to/new/agendav/web/config/ - - -b) Updating from git -******************** - -If you downloaded AgenDAV from the git repository at GitHub then you can -checkout latest stable release from the ``master`` branch, or an specific -version using its tag. - -Just pull latest changes and checkout the release you want. For example, -checking out AgenDAV 1.2.5 can be achieved with:: - - $ git pull - [...] - $ git checkout 1.2.5 - -.. _dbupgrade: - -Database upgrade ----------------- - -.. note:: - - AgenDAV <= 1.2.5.1 have a bug that makes database upgrades to fail, - complaining about a missing ``migration_lang.php`` file. If you have - AgenDAV configured to use a language other than English, set - :confval:`default_language` to ``en`` before running ``agendav dbupdate`` - -The database upgrade process included in AgenDAV since 1.2.5 lets you -apply the latest schema changes without having to deal with ``.sql`` files -and with no need to check which files you should apply to your current -version. - -Just use the provided ``bin/agendavcli`` script this way:: - - $ ./bin/agendavcli dbupdate - - - diff --git a/sources/doc/source/agendav_160px.png b/sources/doc/source/agendav_160px.png deleted file mode 100644 index d4b52ba7a39ec2335a24bdc1d0d49956d0d761d8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3098 zcmV+#4CV8QP)0018d1^@s6U{l7800004b3#c}2nYxW zdjTbLZT9cVT%bU)8C5PESuypE-SIx_jnalSDC?*&yIz;CV^EFIr(2cA-RAi3a!z za12llbe6QPsTJFWuLhbGV=%MBamEMG1~{`xHQI%*6v|8BIX`lJZxiUU!^6x*1HFI_ zKr3K3TpyMLWw;q)C9n*b4NRA`tdVW?!nr*eye{d%2;Zqd=YTBW0ZE%mY^yi$?SQ;m z(v$|M+&D-|J%E!Q!dH@T&J}Bj=2WA4NlDIn!XzQ*()^eaC!gobV z+k+a=*5i@-cW#qDEuz?HPoYWP`2*YA7k#u{pHq2}UFc#Rm0jeD->1|I& zE1chXMv;1Tz&(d~K!XvN1jmDqi9{6Fn(Xb4-z|0m(8XJf@z|02Ye5=ZYRs$@=1r%L9-nPI5GkacA zb)kC%&XTk+(78P@3b>y9K(7*b0Qf=5{dNbwlhT#}BY|HB^y$C{xLL|a6_9FxX4WOr z)+(G&m_@zHD%(_7R5ULsrYRZAs#~v$reVyiEilw0-S7Qo-hy6cmex@u58F4s_km+1 zb&%9w(m+Yymed{C6Bj|oa2HwQTMb+YbduCh(hy0R>Dce+>&@&N5m{4l1~3=+G0;*{ zZ%O;%UWUmYZwGRt(2^l(Wis-df_u?IoNQ)&QmT){8CnLP1m#s`Ru;4;;GT%AUS{^q z0;--#ek$$}Ni_xPY*nO}c>p%=iM_ zlC%xbFH*h{7#td3fP2UqV3$%AO@pMrnc2U9!-JyO>@k4+oZeHw)d77JfdNWdZe~vc z!-D!l%yU8Jai?NY4v9P=!*--oog4`2s)LiWG zToI8m-YcJ7Vme@jSEo-xo8{52DnUjMkAHDO8|Tp;EkVZq7NQqw0}>xhkj{9ihJ=e zv%PVCsgI0%GXv)iWKfQqs&DX_CCxOmd61VfslxMblQdMgq`DG#qQE^g4T86#1KFfx z9Vv-Z+|*P{_RSd(lz-@zUDKEm5SPYiY|>Z2lE?@+zC>O8ByjJoFamZ=(XqeBb9tov zM6dp)pzK2;t1G}o5jpk1{vOYX5uV#p?*U9u(F8~Ha0EOX*gZMl1WYkAQm_fLJMGz;QBqB4_7MQZ)CgR9@y4IEE0y?fZ?2=Y%wmqf}}6Z>^X8r$R0R9 zaz;?^5#UC0`_FLCc1&_TJfcf1iUy#zbGtFLYv$A&81AbUp*QRY6OQX>Cu_;S7=YY)Y1mJ6plvRdX zH_l+CcV22FnKRTTo$vc>;RD*4uwM%O^W--i{UCoS?pa)t*vDx}(mO_$odEvDCw1T)(Ww|WyI(;q|0CjB!gBYin8#3%v-OfZrB9Byx*dq8_g(uP6} z)NiPHsKrau!(8tcqgh@3@=R3Z?<9)3oJ@SL-G6W|-(g$9_ykNyX@6qm8TbRkjO}TB83R1oQ)oTV zzJUT-kekE1Iia^9zSA~5>VaFy&As^sSOz>=pl)@9UJG>DUIqvpg>&rdQ}iB`@ZAZ~St83R3zEYkNwx3>Y7lN)S2A<2(mi$cvVjZtuaeuwG{nrN zCY{=Y{LK#wfQ#hTONSDHq`G8-=3Bs3C=YX#};6QnXSO(Mcd*= z<5)nI!30T9C!2J`%>WyKTM9h`Gn)%shI_#?XoK63I?3mi^p=^;24XvdmH~e%pyy_E zdS=h6vSv2I%v1`0sn}4zah>7T4>N}Go*Logn^^~P7u(;Iv?kzbj@$Ql0B%}Zq-0~I zxo~fzr$(#$OtBxwct8TpWB6V3sStx$9%YkV7VTjOIgs)0WzN2$7flqRo0 zoq}8D8-c~ZuOvO}(PFv3aBF-TCX#P}{miVVr1=4T3eF7)v&h>m_vfSNcfs2TBfazY zRa=Z&)vhY(uQ?hEGrJl1CGLSt z$8F78hT9h36*!vQZ2df3POD&IbQiunXles|oBZXVG|UH1m-J3i&RzJ@ps9VpTW|qG o+MgM%#idt90Eg}}zONqs52KCW9V<{907*qoM6N<$f`_2M3jhEB diff --git a/sources/doc/source/conf.py b/sources/doc/source/conf.py deleted file mode 100644 index fad34e7..0000000 --- a/sources/doc/source/conf.py +++ /dev/null @@ -1,223 +0,0 @@ -# -*- coding: utf-8 -*- -# -# AgenDAV documentation build configuration file, created by -# sphinx-quickstart on Mon Sep 12 13:51:17 2011. -# -# This file is execfile()d with the current directory set to its containing dir. -# -# Note that not all possible configuration values are present in this -# autogenerated file. -# -# All configuration values have a default; values that are commented out -# serve to show the default. - -import sys, os - -# If extensions (or modules to document with autodoc) are in another directory, -# add these directories to sys.path here. If the directory is relative to the -# documentation root, use os.path.abspath to make it absolute, like shown here. -#sys.path.insert(0, os.path.abspath('.')) - -# -- General configuration ----------------------------------------------------- - -# If your documentation needs a minimal Sphinx version, state it here. -#needs_sphinx = '1.0' - -# Add any Sphinx extension module names here, as strings. They can be extensions -# coming with Sphinx (named 'sphinx.ext.*') or your custom ones. -extensions = [] - -# Add any paths that contain templates here, relative to this directory. -templates_path = ['_templates'] - -# The suffix of source filenames. -source_suffix = '.rst' - -# The encoding of source files. -#source_encoding = 'utf-8-sig' - -# The master toctree document. -master_doc = 'index' - -# General information about the project. -project = u'AgenDAV' -copyright = u'2011-2012, Jorge López Pérez' - -# The version info for the project you're documenting, acts as replacement for -# |version| and |release|, also used in various other places throughout the -# built documents. -# -# The short X.Y version. -version = '1.2.6.2' -# The full version, including alpha/beta/rc tags. -release = '1.2.6.2' - -# The language for content autogenerated by Sphinx. Refer to documentation -# for a list of supported languages. -#language = None - -# There are two options for replacing |today|: either, you set today to some -# non-false value, then it is used: -#today = '' -# Else, today_fmt is used as the format for a strftime call. -#today_fmt = '%B %d, %Y' - -# List of patterns, relative to source directory, that match files and -# directories to ignore when looking for source files. -exclude_patterns = [] - -# The reST default role (used for this markup: `text`) to use for all documents. -#default_role = None - -# If true, '()' will be appended to :func: etc. cross-reference text. -#add_function_parentheses = True - -# If true, the current module name will be prepended to all description -# unit titles (such as .. function::). -#add_module_names = True - -# If true, sectionauthor and moduleauthor directives will be shown in the -# output. They are ignored by default. -#show_authors = False - -highlight_language = 'php' - -# The name of the Pygments (syntax highlighting) style to use. -pygments_style = 'sphinx' - -# A list of ignored prefixes for module index sorting. -#modindex_common_prefix = [] - - -# -- Options for HTML output --------------------------------------------------- - -sys.path.append(os.path.abspath('_themes')) -html_theme_path = ['_themes'] - -# The theme to use for HTML and HTML Help pages. See the documentation for -# a list of builtin themes. -html_theme = 'proBlue' - -# Theme options are theme-specific and customize the look and feel of a theme -# further. For a list of options available for each theme, see the -# documentation. -#html_theme_options = {} - -# The name for this set of Sphinx documents. If None, it defaults to -# " v documentation". -#html_title = None - -# A shorter title for the navigation bar. Default is the same as html_title. -#html_short_title = None - -# The name of an image file (relative to this directory) to place at the top -# of the sidebar. -html_logo = 'agendav_160px.png' - -# The name of an image file (within the static path) to use as favicon of the -# docs. This file should be a Windows icon file (.ico) being 16x16 or 32x32 -# pixels large. -#html_favicon = None - -# Add any paths that contain custom static files (such as style sheets) here, -# relative to this directory. They are copied after the builtin static files, -# so a file named "default.css" will overwrite the builtin "default.css". -html_static_path = ['_static'] - -# If not '', a 'Last updated on:' timestamp is inserted at every page bottom, -# using the given strftime format. -#html_last_updated_fmt = '%b %d, %Y' - -# If true, SmartyPants will be used to convert quotes and dashes to -# typographically correct entities. -#html_use_smartypants = True - -# Custom sidebar templates, maps document names to template names. -#html_sidebars = {} - -# Additional templates that should be rendered to pages, maps page names to -# template names. -#html_additional_pages = {} - -# If false, no module index is generated. -#html_domain_indices = True - -# If false, no index is generated. -#html_use_index = True - -# If true, the index is split into individual pages for each letter. -#html_split_index = False - -# If true, links to the reST sources are added to the pages. -html_show_sourcelink = False - -# If true, "Created using Sphinx" is shown in the HTML footer. Default is True. -#html_show_sphinx = True - -# If true, "(C) Copyright ..." is shown in the HTML footer. Default is True. -#html_show_copyright = True - -# If true, an OpenSearch description file will be output, and all pages will -# contain a tag referring to it. The value of this option must be the -# base URL from which the finished HTML is served. -#html_use_opensearch = '' - -# This is the file name suffix for HTML files (e.g. ".xhtml"). -#html_file_suffix = None - -# Output file base name for HTML help builder. -htmlhelp_basename = 'AgenDAVdoc' - - -# -- Options for LaTeX output -------------------------------------------------- - -# The paper size ('letter' or 'a4'). -#latex_paper_size = 'letter' - -# The font size ('10pt', '11pt' or '12pt'). -#latex_font_size = '10pt' - -# Grouping the document tree into LaTeX files. List of tuples -# (source start file, target name, title, author, documentclass [howto/manual]). -latex_documents = [ - ('index', 'AgenDAV.tex', u'AgenDAV Documentation', - u'Jorge López Pérez', 'manual'), -] - -# The name of an image file (relative to this directory) to place at the top of -# the title page. -#latex_logo = None - -# For "manual" documents, if this is true, then toplevel headings are parts, -# not chapters. -#latex_use_parts = False - -# If true, show page references after internal links. -#latex_show_pagerefs = False - -# If true, show URL addresses after external links. -#latex_show_urls = False - -# Additional stuff for the LaTeX preamble. -#latex_preamble = '' - -# Documents to append as an appendix to all manuals. -#latex_appendices = [] - -# If false, no module index is generated. -#latex_domain_indices = True - - -# -- Options for manual page output -------------------------------------------- - -# One entry per manual page. List of tuples -# (source start file, name, description, authors, manual section). -man_pages = [ - ('index', 'agendav', u'AgenDAV Documentation', - [u'Jorge López Pérez'], 1) -] - -def setup(app): - app.add_object_type('confval', 'confval', - objname='configuration value', - indextemplate='pair: %s; configuration value') diff --git a/sources/doc/source/index.rst b/sources/doc/source/index.rst deleted file mode 100644 index 55e8899..0000000 --- a/sources/doc/source/index.rst +++ /dev/null @@ -1,20 +0,0 @@ -.. AgenDAV documentation master file, created by - sphinx-quickstart on Mon Sep 12 13:51:17 2011. - You can adapt this file completely to your liking, but it should at least - contain the root `toctree` directive. - -AgenDAV |release| documentation -=============================== - -AgenDAV is a CalDAV web client which features an AJAX interface to allow -users to manage their own calendars and shared ones. It's released under -the GPLv3 license. - -Contents: - -.. toctree:: - :maxdepth: 2 - - admin/index - translations - releasenotes diff --git a/sources/doc/source/releasenotes.rst b/sources/doc/source/releasenotes.rst deleted file mode 100644 index e1dfef5..0000000 --- a/sources/doc/source/releasenotes.rst +++ /dev/null @@ -1,171 +0,0 @@ -.. _releasenotes: - -Release notes -============= - -.. _v1.2.6.2: - - -1.2.6.1 and 1.2.6.2 (2012-10-15) --------------------------------- - -This release just fixes a problem with some timezones which have three -components, such as America/Argentina/Cordoba. AgenDAV 1.2.6 refused to parse calendars -that contained events with those kind of timezones. - -.. _v1.2.6: - - -1.2.6 (2012-09-03) ------------------- - -* This release requires neither configuration changes nor DB schema updates. -* Reminders feature has been added. Reminders will be attached to events, but this version of AgenDAV is not capable of showing popups for them yet. Other CalDAV clients, such as smartphones and desktop applications, will understand them. -* A new ``log_create_permissions`` option has been added to ``advanced.php`` configuration file. Default is ``0640`` - -.. _v1.2.5.1: - -1.2.5.1 (2012-06-11) --------------------- - -.. note:: - - This version has a bug that will make :ref:`dbupgrade` to fail if you - have AgenDAV configured to use a language other than English. Please, set - :confval:`default_language` to ``en`` before running ``agendav - dbupdate`` - -* This release fixes some invalid SQL queries included in the database update process - - -.. _v1.2.5: - -1.2.5 (2012-06-07) ------------------- - -* DB schema needs to be updated, but a new database upgrade process is now available. No more ``*.sql`` files, just read :ref:`dbupgrade` section. - -* This release requires PHP cURL support. Make sure your PHP installation - has the cURL module enabled - -* Now you can share a calendar in read-only mode. You're advised to create a - new ``caldav.php`` configuration file using the provided template - -* Date and time format options have been moved inside ``config.php``. Prior - to this release they were set inside lang files, which didn't make much - sense. Have a look at new options :confval:`format_full_date`, - :confval:`format_column_month`, :confval:`format_column_week`, - :confval:`format_column_day`, :confval:`format_column_table`, - :confval:`format_title_month`, :confval:`format_title_week`, - :confval:`format_title_day` and :confval:`format_title_table` - -* Translations are now managed using `Transifex `_. Note that default language has been renamed from ``en_US`` to ``en``, as I think it's a neutral English - -.. _v1.2.4: - -1.2.4 (2012-01-16) ------------------- - -This release requires no database changes. Contains a fix for localization -support for IE7, and lots of aesthetical changes, besides upgraded libraries -(jQuery 1.7.1, qTip2 and iCalcreator). Session cookies are now smaller and -contain only session identifiers. - -* You have to create a new ``caldav.php`` config file using the provided template (``caldav.php.template``) because :confval:`caldav_url` has been split into two new configuration parameters. Some CalDAV servers use different URLs for principals and calendar collections/resources, and the previous model didn't work with them: - - * :confval:`caldav_principal_url` will be used to generate principal URLs - * :confval:`caldav_calendar_url` will be used to generate calendar and resource URLs - -* A new :confval:`enable_calendar_sharing` setting has been added to ``caldav.php`` to disable calendar sharing for those servers that don't support WebDAV ACLs - -* ``advanced.php`` configuration file has been updated, make sure you don't overwrite your own changes. - -* Note that required PHP version is 5.3.0 and not 5.2, there was an error on the requisites list. - -* A setup test script has been included to check if your system meets some basic requisites. Follow the :doc:`admin/troubleshooting` section for more details. - -.. _v1.2.3: - -1.2.3 (2011-11-08) ------------------- - -This release fixes some bugs with am/pm indicators under some circumstances, -editing recurring events, include_path problems and other bugs. - -It also introduces dynamic text color calculation and new default calendar -colors, so it's recommended to remove the following settings from -``config.php``: - -* :confval:`default_calendar_color`: now the first color from :confval:`calendar_colors` is used -* :confval:`additional_calendar_colors`: this option has been replaced by :confval:`calendar_colors` - -Copy :confval:`calendar_colors` definition from ``config.php.template`` to your ``config.php`` - -This release requires no database upgrades. - -.. _v1.2.2: - -1.2.2 (2011-10-25) ------------------- - -This release fixes important issues with recurrent events. It also fixes -the am/pm indicator on times. - -It requires no database upgrades. - -.. _v1.2.1: - -1.2.1 (2011-10-24) ------------------- - -This release mainly fixes issues with timezone differences and Daylight Save -Time problems. - -Also updates iCalcreator library to latest version (2.10.15) and qTip2. - -It requires no database upgrades. - - -.. _v1.2: - -1.2 (2011-10-17) ----------------- - -* DB schema needs to be altered. UTF8 wasn't being used by default, and - sessions table wasn't using InnoDB. Apply the changes on - ``sql/changes/1.1.1_to_1.2.mysql``, which are the following:: - - ALTER DATABASE agendav CHARACTER SET utf8 COLLATE utf8_general_ci; - ALTER TABLE sessions CONVERT TO CHARACTER SET utf8; - ALTER TABLE sessions ENGINE InnoDB; - ALTER TABLE shared CONVERT TO CHARACTER SET utf8; - -* Main configuration file (``config.php``) has been completely **rewritten** - to make it easier to write. Please, use the provided ``config.php.template`` - as the base for a new ``config.php`` - -* Interface translation and timezone configuration is now possible in - AgenDAV. Please, make sure you set correct values on ``config.php`` - -* AgenDAV has lots of corrections and fixes. See the ``CHANGELOG`` - -.. _v1.1.1: - -1.1.1 (2011-09-24) ------------------- - -* Fix DB schema. Wasn't properlty updated on sql/schema.sql, which - caused a problem with sessions - - To correct this issue without completely recreating your current database, - run the following two queries:: - - CREATE INDEX last_activity_idx ON sessions(last_activity); - ALTER TABLE sessions MODIFY user_agent VARCHAR(120); - -* Remove LDAP dependency. AgenDAV now authenticates against CalDAV - server. - - Before this change, AgenDAV authenticated users at first using LDAP, and - then your CalDAV server had to authenticate them again. With this change, - AgenDAV completely relies on your CalDAV server. diff --git a/sources/doc/source/translations.rst b/sources/doc/source/translations.rst deleted file mode 100644 index 97aa895..0000000 --- a/sources/doc/source/translations.rst +++ /dev/null @@ -1,31 +0,0 @@ -Translating AgenDAV -=================== - -AgenDAV translation system is based on labels which get translated into -full sentences/paragraphs. They can contain placeholders which get replaced -by the system depending on the context. - -How to add a translation ------------------------- -1. Access `AgenDAV project in Transifex - `_ and use the - *Create language_* to add the missing language. You'll have to wait - until I approve the request. Once you have it created, you'll be able - to use Transifex interface to translate AgenDAV strings. - -2. Search the corresponding `CodeIgniter translation - `_ and download its zip file. - -3. Uncompress the CodeIgniter translation into ``web/application/language`` - -4. Edit ``web/config/languages.php`` and add a new entry like this:: - - $config['lang_rels']['fr_FR'] = array( - 'codeigniter' => 'french', - ); - - This supposes the language file you downloadad for CodeIgniter resulted - in a directory called ``french/`` - -5. You're done! Set :confval:`default_language` to your new language name -(``fr_FR`` in our example) diff --git a/sources/libs/awl/AWLUtilities.php b/sources/libs/awl/AWLUtilities.php deleted file mode 100644 index 6c3cafb..0000000 --- a/sources/libs/awl/AWLUtilities.php +++ /dev/null @@ -1,543 +0,0 @@ - -* @copyright Catalyst IT Ltd, Morphoss Ltd -* @license http://www.gnu.org/licenses/lgpl-3.0.txt GNU LGPL version 3 or later -*/ - -if ( !function_exists('dbg_error_log') ) { - /** - * Writes a debug message into the error log using printf syntax. If the first - * parameter is "ERROR" then the message will _always_ be logged. - * Otherwise, the first parameter is a "component" name, and will only be logged - * if $c->dbg["component"] is set to some non-null value. - * - * If you want to see every log message then $c->dbg["ALL"] can be set, to - * override the debugging status of the individual components. - * - * @var string $component The component to identify itself, or "ERROR", or "LOG:component" - * @var string $format A format string for the log message - * @var [string $parameter ...] Parameters for the format string. - */ - function dbg_error_log() { - global $c; - $args = func_get_args(); - $type = "DBG"; - $component = array_shift($args); - if ( substr( $component, 0, 3) == "LOG" ) { - // Special escape case for stuff that always gets logged. - $type = 'LOG'; - $component = substr($component,4); - } - else if ( $component == "ERROR" ) { - $type = "***"; - } - else if ( isset($c->dbg["ALL"]) ) { - $type = "ALL"; - } - else if ( !isset($c->dbg[strtolower($component)]) ) return; - - $argc = func_num_args(); - if ( 2 <= $argc ) { - $format = array_shift($args); - } - else { - $format = "%s"; - } - @error_log( $c->sysabbr.": $type: $component:". vsprintf( $format, $args ) ); - } -} - - - -if ( !function_exists('apache_request_headers') ) { - /** - * Compatibility so we can use the apache function name and still work with CGI - * @package awl - */ - eval(' - function apache_request_headers() { - foreach($_SERVER as $key=>$value) { - if (substr($key,0,5)=="HTTP_") { - $key=str_replace(" ","-",ucwords(strtolower(str_replace("_"," ",substr($key,5))))); - $out[$key]=$value; - } - } - return $out; - } - '); -} - - - -if ( !function_exists('dbg_log_array') ) { - /** - * Function to dump an array to the error log, possibly recursively - * - * @var string $component Which component should this log message identify itself from - * @var string $name What name should this array dump identify itself as - * @var array $arr The array to be dumped. - * @var boolean $recursive Should the dump recurse into arrays/objects in the array - */ - function dbg_log_array( $component, $name, $arr, $recursive = false ) { - if ( !isset($arr) || (gettype($arr) != 'array' && gettype($arr) != 'object') ) { - dbg_error_log( $component, "%s: array is not set, or is not an array!", $name); - return; - } - foreach ($arr as $key => $value) { - dbg_error_log( $component, "%s: >>%s<< = >>%s<<", $name, $key, - (gettype($value) == 'array' || gettype($value) == 'object' ? gettype($value) : $value) ); - if ( $recursive && (gettype($value) == 'array' || (gettype($value) == 'object' && "$key" != 'self' && "$key" != 'parent') ) ) { - dbg_log_array( $component, "$name"."[$key]", $value, $recursive ); - } - } - } -} - - - -if ( !function_exists("session_simple_md5") ) { - /** - * Make a plain MD5 hash of a string, identifying the type of hash it is - * - * @param string $instr The string to be salted and MD5'd - * @return string The *MD5* and the MD5 of the string - */ - function session_simple_md5( $instr ) { - global $c; - if ( isset($c->dbg['password']) ) dbg_error_log( "Login", "Making plain MD5: instr=$instr, md5($instr)=".md5($instr) ); - return ( '*MD5*'. md5($instr) ); - } -} - - - -if ( !function_exists("session_salted_md5") ) { - /** - * Make a salted MD5 string, given a string and (possibly) a salt. - * - * If no salt is supplied we will generate a random one. - * - * @param string $instr The string to be salted and MD5'd - * @param string $salt Some salt to sprinkle into the string to be MD5'd so we don't get the same PW always hashing to the same value. - * @return string The salt, a * and the MD5 of the salted string, as in SALT*SALTEDHASH - */ - function session_salted_md5( $instr, $salt = "" ) { - if ( $salt == "" ) $salt = substr( md5(rand(100000,999999)), 2, 8); - global $c; - if ( isset($c->dbg['password']) ) dbg_error_log( "Login", "Making salted MD5: salt=$salt, instr=$instr, md5($salt$instr)=".md5($salt . $instr) ); - return ( sprintf("*%s*%s", $salt, md5($salt . $instr) ) ); - } -} - - - -if ( !function_exists("session_salted_sha1") ) { - /** - * Make a salted SHA1 string, given a string and (possibly) a salt. PHP5 only (although it - * could be made to work on PHP4 (@see http://www.openldap.org/faq/data/cache/347.html). The - * algorithm used here is compatible with OpenLDAP so passwords generated through this function - * should be able to be migrated to OpenLDAP by using the part following the second '*', i.e. - * the '{SSHA}....' part. - * - * If no salt is supplied we will generate a random one. - * - * @param string $instr The string to be salted and SHA1'd - * @param string $salt Some salt to sprinkle into the string to be SHA1'd so we don't get the same PW always hashing to the same value. - * @return string A *, the salt, a * and the SHA1 of the salted string, as in *SALT*SALTEDHASH - */ - function session_salted_sha1( $instr, $salt = "" ) { - if ( $salt == "" ) $salt = substr( str_replace('*','',base64_encode(sha1(rand(100000,9999999),true))), 2, 9); - global $c; - if ( isset($c->dbg['password']) ) dbg_error_log( "Login", "Making salted SHA1: salt=$salt, instr=$instr, encoded($instr$salt)=".base64_encode(sha1($instr . $salt, true).$salt) ); - return ( sprintf("*%s*{SSHA}%s", $salt, base64_encode(sha1($instr.$salt, true) . $salt ) ) ); - } -} - - -if ( !function_exists("session_validate_password") ) { - /** - * Checks what a user entered against the actual password on their account. - * @param string $they_sent What the user entered. - * @param string $we_have What we have in the database as their password. Which may (or may not) be a salted MD5. - * @return boolean Whether or not the users attempt matches what is already on file. - */ - function session_validate_password( $they_sent, $we_have ) { - if ( preg_match('/^\*\*.+$/', $we_have ) ) { - // The "forced" style of "**plaintext" to allow easier admin setting - return ( "**$they_sent" == $we_have ); - } - - if ( preg_match('/^\*(.+)\*{[A-Z]+}.+$/', $we_have, $regs ) ) { - if ( function_exists("session_salted_sha1") ) { - // A nicely salted sha1sum like "**{SSHA}" - $salt = $regs[1]; - $sha1_sent = session_salted_sha1( $they_sent, $salt ) ; - return ( $sha1_sent == $we_have ); - } - else { - dbg_error_log( "ERROR", "Password is salted SHA-1 but you are using PHP4!" ); - echo << - -Salted SHA1 Password format not supported with PHP4 - - -

Salted SHA1 Password format not supported with PHP4

-

At some point you have used PHP5 to set the password for this user and now you are - using PHP4. You will need to assign a new password to this user using PHP4, or ensure - you use PHP5 everywhere (recommended).

-

AWL has now switched to using salted SHA-1 passwords by preference in a format - compatible with OpenLDAP.

- - -EOERRMSG; - exit; - } - } - - if ( preg_match('/^\*MD5\*.+$/', $we_have, $regs ) ) { - // A crappy unsalted md5sum like "*MD5*" - $md5_sent = session_simple_md5( $they_sent ) ; - return ( $md5_sent == $we_have ); - } - else if ( preg_match('/^\*(.+)\*.+$/', $we_have, $regs ) ) { - // A nicely salted md5sum like "**" - $salt = $regs[1]; - $md5_sent = session_salted_md5( $they_sent, $salt ) ; - return ( $md5_sent == $we_have ); - } - - // Anything else is bad - return false; - - } -} - - - -if ( !function_exists("replace_uri_params") ) { - /** - * Given a URL (presumably the current one) and a parameter, replace the value of parameter, - * extending the URL as necessary if the parameter is not already there. - * @param string $uri The URI we will be replacing parameters in. - * @param array $replacements An array of replacement pairs array( "replace_this" => "with this" ) - * @return string The URI with the replacements done. - */ - function replace_uri_params( $uri, $replacements ) { - $replaced = $uri; - foreach( $replacements AS $param => $new_value ) { - $rxp = preg_replace( '/([\[\]])/', '\\\\$1', $param ); // Some parameters may be arrays. - $regex = "/([&?])($rxp)=([^&]+)/"; - dbg_error_log("core", "Looking for [%s] to replace with [%s] regex is %s and searching [%s]", $param, $new_value, $regex, $replaced ); - if ( preg_match( $regex, $replaced ) ) - $replaced = preg_replace( $regex, "\$1$param=$new_value", $replaced); - else - $replaced .= "&$param=$new_value"; - } - if ( ! preg_match( '/\?/', $replaced ) ) { - $replaced = preg_replace("/&(.+)$/", "?\$1", $replaced); - } - $replaced = str_replace("&", "--AmPeRsAnD--", $replaced); - $replaced = str_replace("&", "&", $replaced); - $replaced = str_replace("--AmPeRsAnD--", "&", $replaced); - dbg_error_log("core", "URI <<$uri>> morphed to <<$replaced>>"); - return $replaced; - } -} - - -if ( !function_exists("uuid") ) { -/** - * Generates a Universally Unique IDentifier, version 4. - * - * RFC 4122 (http://www.ietf.org/rfc/rfc4122.txt) defines a special type of Globally - * Unique IDentifiers (GUID), as well as several methods for producing them. One - * such method, described in section 4.4, is based on truly random or pseudo-random - * number generators, and is therefore implementable in a language like PHP. - * - * We choose to produce pseudo-random numbers with the Mersenne Twister, and to always - * limit single generated numbers to 16 bits (ie. the decimal value 65535). That is - * because, even on 32-bit systems, PHP's RAND_MAX will often be the maximum *signed* - * value, with only the equivalent of 31 significant bits. Producing two 16-bit random - * numbers to make up a 32-bit one is less efficient, but guarantees that all 32 bits - * are random. - * - * The algorithm for version 4 UUIDs (ie. those based on random number generators) - * states that all 128 bits separated into the various fields (32 bits, 16 bits, 16 bits, - * 8 bits and 8 bits, 48 bits) should be random, except : (a) the version number should - * be the last 4 bits in the 3rd field, and (b) bits 6 and 7 of the 4th field should - * be 01. We try to conform to that definition as efficiently as possible, generating - * smaller values where possible, and minimizing the number of base conversions. - * - * @copyright Copyright (c) CFD Labs, 2006. This function may be used freely for - * any purpose ; it is distributed without any form of warranty whatsoever. - * @author David Holmes - * - * @return string A UUID, made up of 32 hex digits and 4 hyphens. - */ - - function uuid() { - - // The field names refer to RFC 4122 section 4.1.2 - - return sprintf('%04x%04x-%04x-%03x4-%04x-%04x%04x%04x', - mt_rand(0, 65535), mt_rand(0, 65535), // 32 bits for "time_low" - mt_rand(0, 65535), // 16 bits for "time_mid" - mt_rand(0, 4095), // 12 bits before the 0100 of (version) 4 for "time_hi_and_version" - bindec(substr_replace(sprintf('%016b', mt_rand(0, 65535)), '01', 6, 2)), - // 8 bits, the last two of which (positions 6 and 7) are 01, for "clk_seq_hi_res" - // (hence, the 2nd hex digit after the 3rd hyphen can only be 1, 5, 9 or d) - // 8 bits for "clk_seq_low" - mt_rand(0, 65535), mt_rand(0, 65535), mt_rand(0, 65535) // 48 bits for "node" - ); - } -} - -if ( !function_exists("translate") ) { - require("Translation.php"); -} - - if ( !function_exists("clone") && version_compare(phpversion(), '5.0') < 0) { - /** - * PHP5 screws with the assignment operator changing so that $a = $b means that - * $a becomes a reference to $b. There is a clone() that we can use in PHP5, so - * we have to emulate that for PHP4. Bleargh. - */ - eval( 'function clone($object) { return $object; }' ); -} - -if ( !function_exists("quoted_printable_encode") ) { - /** - * Process a string to fit the requirements of RFC2045 section 6.7. Note that - * this works, but replaces more characters than the minimum set. For readability - * the spaces aren't encoded as =20 though. - */ - function quoted_printable_encode($string) { - return preg_replace('/[^\r\n]{73}[^=\r\n]{2}/', "$0=\r\n", str_replace("%","=",str_replace("%20"," ",rawurlencode($string)))); - } -} - - -if ( !function_exists("check_by_regex") ) { - /** - * Verify a value is OK by testing a regex against it. If it is an array apply it to - * each element in the array recursively. If it is an object we don't mess - * with it. - */ - function check_by_regex( $val, $regex ) { - if ( is_null($val) ) return null; - switch( $regex ) { - case 'int': $regex = '#^\d+$#'; break; - } - if ( is_array($val) ) { - foreach( $val AS $k => $v ) { - $val[$k] = check_by_regex($v,$regex); - } - } - else if ( ! is_object($val) ) { - if ( preg_match( $regex, $val, $matches) ) { - $val = $matches[0]; - } - else { - $val = ''; - } - } - return $val; - } -} - - -if ( !function_exists("param_to_global") ) { - /** - * Convert a parameter to a global. We first look in _POST and then in _GET, - * and if they passed in a bunch of valid characters, we will make sure the - * incoming is cleaned to only match that set. - * - * @param string $varname The name of the global variable to put the answer in - * @param string $match_regex The part of the parameter matching this regex will be returned - * @param string $alias1 An alias for the name that we should look for first. - * @param " ... More aliases, in the order which they should be examined. $varname will be appended to the end. - */ - function param_to_global( ) { - $args = func_get_args(); - - $varname = array_shift($args); - $GLOBALS[$varname] = null; - - $match_regex = null; - $argc = func_num_args(); - if ( $argc > 1 ) { - $match_regex = array_shift($args); - } - - $args[] = $varname; - foreach( $args AS $k => $name ) { - if ( isset($_POST[$name]) ) { - $result = $_POST[$name]; - break; - } - else if ( isset($_GET[$name]) ) { - $result = $_GET[$name]; - break; - } - } - if ( !isset($result) ) return null; - - if ( isset($match_regex) ) { - $result = check_by_regex( $result, $match_regex ); - } - - $GLOBALS[$varname] = $result; - return $result; - } -} - - -if ( !function_exists("get_fields") ) { - /** - * @var array $_AWL_field_cache is a cache of the field names for a table - */ - $_AWL_field_cache = array(); - - /** - * Get the names of the fields for a particular table - * @param string $tablename The name of the table. - * @return array of string The public fields in the table. - */ - function get_fields( $tablename ) { - global $_AWL_field_cache; - - if ( !isset($_AWL_field_cache[$tablename]) ) { - dbg_error_log( "core", ":get_fields: Loading fields for table '$tablename'" ); - $qry = new AwlQuery(); - $db = $qry->GetConnection(); - $qry->SetSQL($db->GetFields($tablename)); - $qry->Exec("core"); - $fields = array(); - while( $row = $qry->Fetch() ) { - $fields[$row->fieldname] = $row->typename . ($row->precision >= 0 ? sprintf('(%d)',$row->precision) : ''); - } - $_AWL_field_cache[$tablename] = $fields; - } - return $_AWL_field_cache[$tablename]; - } -} - - -if ( !function_exists("force_utf8") ) { - function define_byte_mappings() { - global $byte_map, $nibble_good_chars; - - # Needed for using Grant McLean's byte mappings code - $ascii_char = '[\x00-\x7F]'; - $cont_byte = '[\x80-\xBF]'; - - $utf8_2 = '[\xC0-\xDF]' . $cont_byte; - $utf8_3 = '[\xE0-\xEF]' . $cont_byte . '{2}'; - $utf8_4 = '[\xF0-\xF7]' . $cont_byte . '{3}'; - $utf8_5 = '[\xF8-\xFB]' . $cont_byte . '{4}'; - - $nibble_good_chars = "/^($ascii_char+|$utf8_2|$utf8_3|$utf8_4|$utf8_5)(.*)$/s"; - - # From http://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP1252.TXT - $byte_map = array( - "\x80" => "\xE2\x82\xAC", # EURO SIGN - "\x82" => "\xE2\x80\x9A", # SINGLE LOW-9 QUOTATION MARK - "\x83" => "\xC6\x92", # LATIN SMALL LETTER F WITH HOOK - "\x84" => "\xE2\x80\x9E", # DOUBLE LOW-9 QUOTATION MARK - "\x85" => "\xE2\x80\xA6", # HORIZONTAL ELLIPSIS - "\x86" => "\xE2\x80\xA0", # DAGGER - "\x87" => "\xE2\x80\xA1", # DOUBLE DAGGER - "\x88" => "\xCB\x86", # MODIFIER LETTER CIRCUMFLEX ACCENT - "\x89" => "\xE2\x80\xB0", # PER MILLE SIGN - "\x8A" => "\xC5\xA0", # LATIN CAPITAL LETTER S WITH CARON - "\x8B" => "\xE2\x80\xB9", # SINGLE LEFT-POINTING ANGLE QUOTATION MARK - "\x8C" => "\xC5\x92", # LATIN CAPITAL LIGATURE OE - "\x8E" => "\xC5\xBD", # LATIN CAPITAL LETTER Z WITH CARON - "\x91" => "\xE2\x80\x98", # LEFT SINGLE QUOTATION MARK - "\x92" => "\xE2\x80\x99", # RIGHT SINGLE QUOTATION MARK - "\x93" => "\xE2\x80\x9C", # LEFT DOUBLE QUOTATION MARK - "\x94" => "\xE2\x80\x9D", # RIGHT DOUBLE QUOTATION MARK - "\x95" => "\xE2\x80\xA2", # BULLET - "\x96" => "\xE2\x80\x93", # EN DASH - "\x97" => "\xE2\x80\x94", # EM DASH - "\x98" => "\xCB\x9C", # SMALL TILDE - "\x99" => "\xE2\x84\xA2", # TRADE MARK SIGN - "\x9A" => "\xC5\xA1", # LATIN SMALL LETTER S WITH CARON - "\x9B" => "\xE2\x80\xBA", # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK - "\x9C" => "\xC5\x93", # LATIN SMALL LIGATURE OE - "\x9E" => "\xC5\xBE", # LATIN SMALL LETTER Z WITH CARON - "\x9F" => "\xC5\xB8", # LATIN CAPITAL LETTER Y WITH DIAERESIS - ); - - for( $i=160; $i < 256; $i++ ) { - $ch = chr($i); - $byte_map[$ch] = iconv('ISO-8859-1', 'UTF-8', $ch); - } - } - define_byte_mappings(); - - function force_utf8( $input ) { - global $byte_map, $nibble_good_chars; - - $output = ''; - $char = ''; - $rest = ''; - while( $input != '' ) { - if ( preg_match( $nibble_good_chars, $input, $matches ) ) { - $output .= $matches[1]; - $rest = $matches[2]; - } - else { - preg_match( '/^(.)(.*)$/s', $input, $matches ); - $char = $matches[1]; - $rest = $matches[2]; - if ( isset($byte_map[$char]) ) { - $output .= $byte_map[$char]; - } - else { - # Must be valid UTF8 already - $output .= $char; - } - } - $input = $rest; - } - return $output; - } - -} - - -/** -* Try and extract something like "Pacific/Auckland" or "America/Indiana/Indianapolis" if possible. -*/ -function olson_from_tzstring( $tzstring ) { - if ( in_array($tzstring,timezone_identifiers_list()) ) return $tzstring; - if ( preg_match( '{((Antarctica|America|Africa|Atlantic|Asia|Australia|Indian|Europe|Pacific)/(([^/]+)/)?[^/]+)$}', $tzstring, $matches ) ) { -// dbg_error_log( 'INFO', 'Found timezone "%s" from string "%s"', $matches[1], $tzstring ); - return $matches[1]; - } - switch( $tzstring ) { - case 'New Zealand Standard Time': case 'New Zealand Daylight Time': return 'Pacific/Auckland'; break; - case 'Central Standard Time': case 'Central Daylight Time': return 'America/Chicago'; break; - case 'Eastern Standard Time': case 'Eastern Daylight Time': return 'America/New_York'; break; - case 'Pacific Standard Time': case 'Pacific Daylight Time': return 'America/Los_Angeles'; break; - } - return null; -} - - -/** - * Return the AWL version - */ -function awl_version() { - global $c; -$c->awl_library_version = 0.46; - return $c->awl_library_version; -} \ No newline at end of file diff --git a/sources/libs/awl/Translation.php b/sources/libs/awl/Translation.php deleted file mode 100644 index 755367f..0000000 --- a/sources/libs/awl/Translation.php +++ /dev/null @@ -1,118 +0,0 @@ - -* @copyright Catalyst IT Ltd -* @license http://gnu.org/copyleft/gpl.html GNU GPL v2 or later -*/ - -if ( !function_exists('i18n') ) { - /** - * Mark a string as being internationalized. This is a semaphore method; it - * does nothing but it allows us to easily identify strings that require - * translation. Generally this is used to mark strings that will be stored - * in the database (like descriptions of permissions). - * - * AWL uses GNU gettext for internationalization (i18n) and localization (l10n) of - * text presented to the user. Gettext needs to know about all places involving strings, - * that must be translated. Mark any place, where localization at runtime shall take place - * by using the function translate(). - * - * In the help I have used 'xlate' rather than 'translate' and 'x18n' rather than 'i18n' - * so that the tools skip this particular file for translation :-) - * - * E.g. instead of: - * print 'TEST to be displayed in different languages'; - * use: - * print xlate('TEST to be displayed in different languages'); - * and you are all set for pure literals. The translation teams will receive that literal - * string as a job to translate and will translate it (when the message is clear enough). - * At runtime the message is then localized when printed. - * The input string can contain a hint to assist translators: - * print xlate('TT '); - * The hint portion of the string will not be printed. - * - * But consider this case: - * $message_to_be_localized = 'TEST to be displayed in different languages'; - * print xlate($message_to_be_localized); - * - * The translate() function is called in the right place for runtime handling, but there - * is no message at gettext preprocessing time to be given to the translation teams, - * just a variable name. Translation of the variable name would break the code! So all - * places potentially feeding this variable have to be marked to be given to translation - * teams, but not translated at runtime! - * - * This method resolves all such cases. Simply mark the candidates: - * $message_to_be_localized = x18n('TEST to be displayed in different languages'); - * print xlate($message_to_be_localized); - * - * @param string the value - * @return string the same value - */ - function i18n($value) { - return $value; /* Just pass the value through */ - } -} - - -if ( !function_exists('translate') ) { - /** - * Convert a string in English to whatever this user's locale is - */ - if ( function_exists('gettext') ) { - function translate( $en ) { - if ( ! isset($en) || $en == '' ) return $en; - $xl = gettext($en); - dbg_error_log('I18N','Translated =%s= into =%s=', $en, $xl ); - return $xl; - } - } - else { - function translate( $en ) { - return $en; - } - } -} - - -if ( !function_exists('init_gettext') ) { - /** - * Initialise our use of Gettext - */ - function init_gettext( $domain, $location ) { - if ( !function_exists('bindtextdomain') ) return; - bindtextdomain( $domain, $location ); - $codeset = bind_textdomain_codeset( $domain, 'UTF-8' ); - textdomain( $domain ); - dbg_error_log('I18N','Bound domain =%s= to location =%s= using character set =%s=', $domain, $location, $codeset ); - } -} - - -if ( !function_exists('awl_set_locale') ) { - /** - * Set the translation to the user's locale. At this stage all we do is - * call the gettext function. - */ - function awl_set_locale( $locale ) { - global $c; - - if ( !is_array($locale) && ! preg_match('/^[a-z]{2}(_[A-Z]{2})?\./', $locale ) ) { - $locale = array( $locale, $locale.'.UTF-8'); - } - if ( !function_exists('setlocale') ) { - dbg_log_array('WARN','No "setlocale()" function? PHP gettext support missing?' ); - return; - } - if ( $newlocale = setlocale( LC_ALL, $locale) ) { - dbg_error_log('I18N','Set locale to =%s=', $newlocale ); - $c->current_locale = $newlocale; - } - else { - dbg_log_array('I18N','Unsupported locale: ', $locale, false ); - } - } -} - diff --git a/sources/libs/awl/XMLDocument.php b/sources/libs/awl/XMLDocument.php deleted file mode 100644 index 6bdb1cc..0000000 --- a/sources/libs/awl/XMLDocument.php +++ /dev/null @@ -1,307 +0,0 @@ - -* @copyright Morphoss Ltd - http://www.morphoss.com/ -* @license http://www.gnu.org/licenses/lgpl-3.0.txt GNU LGPL version 3 or later -* -*/ - -require_once("XMLElement.php"); - -/** -* A class for XML Documents which will contain namespaced XML elements -* -* @package awl -*/ -class XMLDocument { - - /**#@+ - * @access private - */ - /** - * holds the namespaces which this document has been configured for. - * @var namespaces - */ - var $namespaces; - - /** - * holds the prefixes which are shorthand for the namespaces. - * @var prefixes - */ - var $prefixes; - - /** - * Holds the root document for the tree - * @var root - */ - var $root; - - /** - * Simple XMLDocument constructor - * - * @param array $namespaces An array of 'namespace' => 'prefix' pairs, where the prefix is used as a short form for the namespace. - */ - function __construct( $namespaces = null ) { - $this->namespaces = array(); - $this->prefixes = array(); - if ( $namespaces != null ) { - foreach( $namespaces AS $ns => $prefix ) { - $this->namespaces[$ns] = $prefix; - $this->prefixes[$prefix] = $prefix; - } - } - $this->next_prefix = 0; - } - - /** - * Add a new namespace to the document, optionally specifying it's short prefix - * - * @param string $namespace The full namespace name to be added - * @param string $prefix An optional short form for the namespace. - */ - function AddNamespace( $namespace, $prefix = null ) { - if ( !isset($this->namespaces[$namespace]) ) { - if ( isset($prefix) && ($prefix == "" || isset($this->prefixes[$prefix])) ) $prefix = null; - if ( $prefix == null ) { - // Try and build a prefix based on the first alphabetic character of the last element of the namespace - if ( preg_match('/^(.*):([^:]+)$/', $namespace, $matches) ) { - $alpha = preg_replace( '/[^a-z]/i', '', $matches[2] ); - $prefix = strtoupper(substr($alpha,0,1)); - } - else { - $prefix = 'X'; - } - $i = ""; - if ( isset($this->prefixes[$prefix]) ) { - for ( $i=1; $i<10 && isset($this->prefixes["$prefix$i"]); $i++ ) { - } - } - if ( isset($this->prefixes["$prefix$i"]) ) { - dbg_error_log("ERROR", "Cannot find a free prefix for this namespace"); - exit; - } - $prefix = "$prefix$i"; - dbg_error_log("XMLDocument", "auto-assigning prefix of '%s' for ns of '%s'", $prefix, $namespace ); - } - else if ( $prefix == "" || isset($this->prefixes[$prefix]) ) { - dbg_error_log("ERROR", "Cannot assign the same prefix to two different namespaces"); - exit; - } - - $this->prefixes[$prefix] = $prefix; - $this->namespaces[$namespace] = $prefix; - } - else { - if ( isset($this->namespaces[$namespace]) && $this->namespaces[$namespace] != $prefix ) { - dbg_error_log("ERROR", "Cannot use the same namespace with two different prefixes"); - exit; - } - $this->prefixes[$prefix] = $prefix; - $this->namespaces[$namespace] = $prefix; - } - } - - - /** - * Return a tag with namespace stripped and replaced with a short form, and the ns added to the document. - * - */ - function GetXmlNsArray() { - - $ns = array(); - foreach( $this->namespaces AS $n => $p ) { - if ( $p == "" ) $ns["xmlns"] = $n; else $ns["xmlns:$p"] = $n; - } - - return $ns; - } - - - /** - * Return a tag with namespace stripped and replaced with a short form, and the ns added to the document. - * - * @param string $in_tag The tag we want a namespace prefix on. - * @param string $namespace The namespace we want it in (which will be parsed from $in_tag if not present - * @param string $prefix The prefix we would like to use. Leave it out and one will be assigned. - * - * @return string The tag with a namespace prefix consistent with previous tags in this namespace. - */ - function Tag( $in_tag, $namespace=null, $prefix=null ) { - - if ( $namespace == null ) { - // Attempt to split out from namespace:tag - if ( preg_match('/^(.*):([^:]+)$/', $in_tag, $matches) ) { - $namespace = $matches[1]; - $tag = $matches[2]; - } - else { - // There is nothing we can do here - return $in_tag; - } - } - else { - $tag = $in_tag; - } - - if ( !isset($this->namespaces[$namespace]) ) { - $this->AddNamespace( $namespace, $prefix ); - } - $prefix = $this->namespaces[$namespace]; - - return $prefix . ($prefix == "" ? "" : ":") . $tag; - } - - - /** - * Special helper for namespaced tags. - * - * @param object $element The tag are adding a new namespaced element to - * @param string $tag the tag name, possibly prefixed with the namespace - * @param mixed $content The content of the tag - * @param array $attributes An array of key/value pairs of attributes. - * @param string $namespace The namespace for the tag - * - */ - function NSElement( &$element, $in_tag, $content=false, $attributes=false, $namespace=null ) { - if ( $namespace == null && preg_match('/^(.*):([^:]+)$/', $in_tag, $matches) ) { - $namespace = $matches[1]; - $tag = $matches[2]; - } - else { - $tag = $in_tag; - } - - if ( isset($namespace) && !isset($this->namespaces[$namespace]) ) $this->AddNamespace( $namespace ); - return $element->NewElement( $tag, $content, $attributes, $namespace ); - } - - - /** - * Special helper for tags in the DAV: namespace. - * - * @param object $element The tag are adding a new namespaced element to - * @param string $tag the tag name - * @param mixed $content The content of the tag - * @param array $attributes An array of key/value pairs of attributes. - */ - function DAVElement( &$element, $tag, $content=false, $attributes=false ) { - return $this->NSElement( $element, $tag, $content, $attributes, 'DAV:' ); - } - - - /** - * Special helper for tags in the urn:ietf:params:xml:ns:caldav namespace. - * - * @param object $element The tag are adding a new namespaced element to - * @param string $tag the tag name - * @param mixed $content The content of the tag - * @param array $attributes An array of key/value pairs of attributes. - */ - function CalDAVElement( &$element, $tag, $content=false, $attributes=false ) { - if ( !isset($this->namespaces['urn:ietf:params:xml:ns:caldav']) ) $this->AddNamespace( 'urn:ietf:params:xml:ns:caldav', 'C' ); - return $this->NSElement( $element, $tag, $content, $attributes, 'urn:ietf:params:xml:ns:caldav' ); - } - - - /** - * Special helper for tags in the urn:ietf:params:xml:ns:carddav namespace. - * - * @param object $element The tag are adding a new namespaced element to - * @param string $tag the tag name - * @param mixed $content The content of the tag - * @param array $attributes An array of key/value pairs of attributes. - */ - function CardDAVElement( &$element, $tag, $content=false, $attributes=false ) { - if ( !isset($this->namespaces['urn:ietf:params:xml:ns:carddav']) ) $this->AddNamespace( 'urn:ietf:params:xml:ns:carddav', 'VC' ); - return $this->NSElement( $element, $tag, $content, $attributes, 'urn:ietf:params:xml:ns:carddav' ); - } - - - /** - * Special helper for tags in the urn:ietf:params:xml:ns:caldav namespace. - * - * @param object $element The tag are adding a new namespaced element to - * @param string $tag the tag name - * @param mixed $content The content of the tag - * @param array $attributes An array of key/value pairs of attributes. - */ - function CalendarserverElement( &$element, $tag, $content=false, $attributes=false ) { - if ( !isset($this->namespaces['http://calendarserver.org/ns/']) ) $this->AddNamespace( 'http://calendarserver.org/ns/', 'A' ); - return $this->NSElement( $element, $tag, $content, $attributes, 'http://calendarserver.org/ns/' ); - } - - - /** - * @param string $in_tag The tag name of the new element, possibly namespaced - * @param mixed $content Either a string of content, or an array of sub-elements - * @param array $attributes An array of attribute name/value pairs - * @param array $xmlns An XML namespace specifier - */ - function NewXMLElement( $in_tag, $content=false, $attributes=false, $xmlns=null ) { - if ( $xmlns == null && preg_match('/^(.*):([^:]+)$/', $in_tag, $matches) ) { - $xmlns = $matches[1]; - $tagname = $matches[2]; - } - else { - $tagname = $in_tag; - } - - if ( isset($xmlns) && !isset($this->namespaces[$xmlns]) ) $this->AddNamespace( $xmlns ); - return new XMLElement($tagname, $content, $attributes, $xmlns ); - } - - /** - * Render the document tree into (nicely formatted) XML - * - * @param mixed $root A root XMLElement or a tagname to create one with the remaining parameters. - * @param mixed $content Either a string of content, or an array of sub-elements - * @param array $attributes An array of attribute name/value pairs - * @param array $xmlns An XML namespace specifier - * - * @return A rendered namespaced XML document. - */ - function Render( $root, $content=false, $attributes=false, $xmlns=null ) { - if ( is_object($root) ) { - /** They handed us a pre-existing object. We'll just use it... */ - $this->root = $root; - } - else { - /** We got a tag name, so we need to create the root element */ - $this->root = $this->NewXMLElement( $root, $content, $attributes, $xmlns ); - } - - /** - * Add our namespace attributes here. - */ - foreach( $this->namespaces AS $n => $p ) { - $this->root->SetAttribute( 'xmlns'.($p == '' ? '' : ':') . $p, $n); - } - - /** And render... */ - return $this->root->Render(0,''); - } - - /** - * Return a DAV::href XML element, or an array of them - * @param mixed $url The URL (or array of URLs) to be wrapped in DAV::href tags - * - * @return XMLElement The newly created XMLElement object. - */ - function href($url) { - if ( is_array($url) ) { - $set = array(); - foreach( $url AS $href ) { - $set[] = $this->href( $href ); - } - return $set; - } - return $this->NewXMLElement('href', $url, false, 'DAV:'); - } - -} - - diff --git a/sources/libs/awl/XMLElement.php b/sources/libs/awl/XMLElement.php deleted file mode 100644 index 7134ec5..0000000 --- a/sources/libs/awl/XMLElement.php +++ /dev/null @@ -1,345 +0,0 @@ - -* @copyright Catalyst .Net Ltd, Morphoss Ltd -* @license http://www.gnu.org/licenses/lgpl-3.0.txt GNU LGPL version 3 or later -*/ - -require_once('AWLUtilities.php'); - -/** -* A class for XML elements which may have attributes, or contain -* other XML sub-elements -* -* @package awl -*/ -class XMLElement { - protected $tagname; - protected $xmlns; - protected $attributes; - protected $content; - protected $_parent; - - /** - * Constructor - nothing fancy as yet. - * - * @param string $tagname The tag name of the new element - * @param mixed $content Either a string of content, or an array of sub-elements - * @param array $attributes An array of attribute name/value pairs - * @param array $xmlns An XML namespace specifier - */ - function __construct( $tagname, $content=false, $attributes=false, $xmlns=null ) { - $this->tagname=$tagname; - if ( gettype($content) == "object" ) { - // Subtree to be parented here - $this->content = array(&$content); - } - else { - // Array or text - $this->content = $content; - } - $this->attributes = $attributes; - if ( isset($this->attributes['xmlns']) ) { // Oversimplification to be removed - $this->xmlns = $this->attributes['xmlns']; - } - if ( isset($xmlns) ) { - $this->xmlns = $xmlns; - } - } - - - /** - * Count the number of elements - * @return int The number of elements - */ - function CountElements( ) { - if ( $this->content === false ) return 0; - if ( is_array($this->content) ) return count($this->content); - if ( $this->content == '' ) return 0; - return 1; - } - - /** - * Set an element attribute to a value - * - * @param string The attribute name - * @param string The attribute value - */ - function SetAttribute($k,$v) { - if ( gettype($this->attributes) != "array" ) $this->attributes = array(); - $this->attributes[$k] = $v; - if ( strtolower($k) == 'xmlns' ) { - $this->xmlns = $v; - } - } - - /** - * Set the whole content to a value - * - * @param mixed The element content, which may be text, or an array of sub-elements - */ - function SetContent($v) { - $this->content = $v; - } - - /** - * Accessor for the tag name - * - * @return string The tag name of the element - */ - function GetTag() { - return $this->tagname; - } - - /** - * Accessor for the full-namespaced tag name - * - * @return string The tag name of the element, prefixed by the namespace - */ - function GetNSTag() { - return $this->xmlns . ':' . $this->tagname; - } - - /** - * Accessor for a single attribute - * @param string $attr The name of the attribute. - * @return string The value of that attribute of the element - */ - function GetAttribute( $attr ) { - if ( $attr == 'xmlns' ) return $this->xmlns; - if ( isset($this->attributes[$attr]) ) return $this->attributes[$attr]; - return null; - } - - /** - * Accessor for the attributes - * - * @return array The attributes of this element - */ - function GetAttributes() { - return $this->attributes; - } - - /** - * Accessor for the content - * - * @return array The content of this element - */ - function GetContent() { - return $this->content; - } - - /** - * Return an array of elements matching the specified tag, or all elements if no tag is supplied. - * Unlike GetContent() this will always return an array. - * - * @return array The XMLElements within the tree which match this tag - */ - function GetElements( $tag=null, $recursive=false ) { - $elements = array(); - if ( gettype($this->content) == "array" ) { - foreach( $this->content AS $k => $v ) { - if ( !isset($tag) || (isset($v->tagname) && $v->tagname == $tag) ) { - $elements[] = $v; - } - if ( $recursive ) { - $elements = $elements + $v->GetElements($tag,true); - } - } - } - else if ( !isset($tag) || (isset($v->content->tagname) && $this->content->tagname == $tag) ) { - $elements[] = $this->content; - } - return $elements; - } - - - /** - * Return an array of elements matching the specified path - * - * @return array The XMLElements within the tree which match this tag - */ - function GetPath( $path ) { - $elements = array(); - // printf( "Querying within '%s' for path '%s'\n", $this->tagname, $path ); - if ( !preg_match( '#(/)?([^/]+)(/?.*)$#', $path, $matches ) ) return $elements; - // printf( "Matches: %s -- %s -- %s\n", $matches[1], $matches[2], $matches[3] ); - if ( $matches[2] == '*' || strtolower($matches[2]) == strtolower($this->tagname) ) { - if ( $matches[3] == '' ) { - /** - * That is the full path - */ - $elements[] = $this; - } - else if ( gettype($this->content) == "array" ) { - /** - * There is more to the path, so we recurse into that sub-part - */ - foreach( $this->content AS $k => $v ) { - $elements = array_merge( $elements, $v->GetPath($matches[3]) ); - } - } - } - - if ( $matches[1] != '/' && gettype($this->content) == "array" ) { - /** - * If our input $path was not rooted, we recurse further - */ - foreach( $this->content AS $k => $v ) { - $elements = array_merge( $elements, $v->GetPath($path) ); - } - } - // printf( "Found %d within '%s' for path '%s'\n", count($elements), $this->tagname, $path ); - return $elements; - } - - - /** - * Add a sub-element - * - * @param object An XMLElement to be appended to the array of sub-elements - */ - function AddSubTag(&$v) { - if ( gettype($this->content) != "array" ) $this->content = array(); - $this->content[] =& $v; - return count($this->content); - } - - /** - * Add a new sub-element - * - * @param string The tag name of the new element - * @param mixed Either a string of content, or an array of sub-elements - * @param array An array of attribute name/value pairs - * - * @return objectref A reference to the new XMLElement - */ - function &NewElement( $tagname, $content=false, $attributes=false, $xmlns=null ) { - if ( gettype($this->content) != "array" ) $this->content = array(); - $element = new XMLElement($tagname,$content,$attributes,$xmlns); - $this->content[] =& $element; - return $element; - } - - - /** - * Render just the internal content - * - * @return string The content of this element, as a string without this element wrapping it. - */ - function RenderContent($indent=0, $nslist=null ) { - $r = ""; - if ( is_array($this->content) ) { - /** - * Render the sub-elements with a deeper indent level - */ - $r .= "\n"; - foreach( $this->content AS $k => $v ) { - if ( is_object($v) ) { - $r .= $v->Render($indent+1, "", $nslist); - } - } - $r .= substr(" ",0,$indent); - } - else { - /** - * Render the content, with special characters escaped - * - */ - $r .= htmlspecialchars($this->content, ENT_NOQUOTES ); - } - return $r; - } - - - /** - * Render the document tree into (nicely formatted) XML - * - * @param int The indenting level for the pretty formatting of the element - */ - function Render($indent=0, $xmldef="", $nslist=null) { - $r = ( $xmldef == "" ? "" : $xmldef."\n"); - - $attr = ""; - $tagname = $this->tagname; - if ( gettype($this->attributes) == "array" ) { - /** - * Render the element attribute values - */ - foreach( $this->attributes AS $k => $v ) { - if ( preg_match('#^xmlns(:?(.+))?$#', $k, $matches ) ) { - if ( !isset($nslist) ) $nslist = array(); - $prefix = (isset($matches[2]) ? $matches[2] : ''); - if ( isset($nslist[$v]) && $nslist[$v] == $prefix ) continue; // No need to include in list as it's in a wrapping element - $nslist[$v] = $prefix; - if ( !isset($this->xmlns) ) $this->xmlns = $v; - } - $attr .= sprintf( ' %s="%s"', $k, htmlspecialchars($v) ); - } - } - if ( isset($this->xmlns) && isset($nslist[$this->xmlns]) && $nslist[$this->xmlns] != '' ) { - $tagname = $nslist[$this->xmlns] . ':' . $tagname; - } - - $r .= substr(" ",0,$indent) . '<' . $tagname . $attr; - - if ( (is_array($this->content) && count($this->content) > 0) || (!is_array($this->content) && strlen($this->content) > 0) ) { - $r .= ">"; - $r .= $this->RenderContent($indent,$nslist); - $r .= '\n"; - } - else { - $r .= "/>\n"; - } - return $r; - } - - - function __tostring() { - return $this->Render(); - } -} - - -/** -* Rebuild an XML tree in our own style from the parsed XML tags using -* a tail-recursive approach. -* -* @param array $xmltags An array of XML tags we get from using the PHP XML parser -* @param intref &$start_from A pointer to our current integer offset into $xmltags -* @return mixed Either a single XMLElement, or an array of XMLElement objects. -*/ -function BuildXMLTree( $xmltags, &$start_from ) { - $content = array(); - - if ( !isset($start_from) ) $start_from = 0; - - for( $i=0; $i < 50000 && isset($xmltags[$start_from]); $i++) { - $tagdata = $xmltags[$start_from++]; - if ( !isset($tagdata) || !isset($tagdata['tag']) || !isset($tagdata['type']) ) break; - if ( $tagdata['type'] == "close" ) break; - $attributes = ( isset($tagdata['attributes']) ? $tagdata['attributes'] : false ); - if ( $tagdata['type'] == "open" ) { - $subtree = BuildXMLTree( $xmltags, $start_from ); - $content[] = new XMLElement($tagdata['tag'], $subtree, $attributes ); - } - else if ( $tagdata['type'] == "complete" ) { - $value = ( isset($tagdata['value']) ? $tagdata['value'] : false ); - $content[] = new XMLElement($tagdata['tag'], $value, $attributes ); - } - } - - /** - * If there is only one element, return it directly, otherwise return the - * array of them - */ - if ( count($content) == 1 ) { - return $content[0]; - } - return $content; -} - diff --git a/sources/libs/caldav-client/README b/sources/libs/caldav-client/README deleted file mode 100644 index 6449e84..0000000 --- a/sources/libs/caldav-client/README +++ /dev/null @@ -1,8 +0,0 @@ -This directory contains code from the following Open Source projects: - -* DAViCal -* AWL - -(c) Andrew McMillan - - diff --git a/sources/libs/caldav-client/caldav-client.php b/sources/libs/caldav-client/caldav-client.php deleted file mode 100644 index 4b0659f..0000000 --- a/sources/libs/caldav-client/caldav-client.php +++ /dev/null @@ -1,1219 +0,0 @@ - - * - * This file is part of AgenDAV but it's heavily based on DAViCal - * caldav-client-v2.php by Andrew McMillan - * - * AgenDAV is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * any later version. - * - * AgenDAV is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with AgenDAV. If not, see . - */ - -require_once('XMLDocument.php'); - -class CalDAVClient { - /** - * Server, username, password, calendar - * - * @var string - */ - protected $base_url, $user, $pass, $entry, $protocol, $server, $port; - - /** - * The principal-URL we're using - */ - protected $principal_url; - - /** - * The calendar-URL we're using - */ - protected $calendar_url; - - /** - * The calendar-home-set we're using - */ - protected $calendar_home_set; - - /** - * The calendar_urls we have discovered - */ - protected $calendar_urls; - - /** - * The useragent which is send to the caldav server - * - * @var string - */ - public $user_agent = 'DAViCalClient'; - - protected $headers = array(); - protected $body = ""; - protected $requestMethod = "GET"; - protected $httpRequest = ""; // for debugging http headers sent - protected $xmlRequest = ""; // for debugging xml sent - protected $httpResponse = ""; // http headers received - protected $xmlResponse = ""; // xml received - protected $httpResultCode = ""; - - protected $parser; // our XML parser object - - // Requests timeout - private $timeout; - - // cURL handle - private $ch; - - // Full URL - private $full_url; - - /** - * Constructor - * - * Valid options are: - * - * $options['auth'] : Auth type. Can be any of values for - * CURLOPT_HTTPAUTH (from - * http://www.php.net/manual/es/function.curl-setopt.php). Default: - * basic or digest - * - * $options['timeout'] : Timeout in seconds - */ - - // TODO: proxy options, interface used, - function __construct( $base_url, $user, $pass, $options = array()) { - $this->user = $user; - $this->pass = $pass; - $this->headers = array(); - - if ( preg_match( '#^(https?)://([a-z0-9.-]+)(:([0-9]+))?(/.*)$#', $base_url, $matches ) ) { - $this->server = $matches[2]; - $this->base_url = $matches[5]; - if ( $matches[1] == 'https' ) { - $this->protocol = 'ssl'; - $this->port = 443; - } - else { - $this->protocol = 'tcp'; - $this->port = 80; - } - if ( $matches[4] != '' ) { - $this->port = intval($matches[4]); - } - } else { - trigger_error("Invalid URL: '".$base_url."'", E_USER_ERROR); - } - - $this->timeout = isset($options['timeout']) ? - $options['timeout'] : 10; - $this->ch = curl_init(); - curl_setopt_array($this->ch, array( - CURLOPT_CONNECTTIMEOUT => $this->timeout, - CURLOPT_FAILONERROR => FALSE, - CURLOPT_MAXREDIRS => 2, - CURLOPT_FORBID_REUSE => FALSE, - CURLOPT_RETURNTRANSFER => TRUE, - CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1, - CURLOPT_HTTPAUTH => - isset($options['auth']) ? $options['auth'] : - (CURLAUTH_BASIC | CURLAUTH_DIGEST), - CURLOPT_USERAGENT => 'cURL based CalDAV client', - CURLINFO_HEADER_OUT => TRUE, - CURLOPT_HEADER => TRUE, - CURLOPT_SSL_VERIFYPEER => FALSE, - )); - - $this->full_url = $base_url; - } - - /** - * Check with OPTIONS if calendar-access is enabled - * - * Can be used to check authentication against server - * - */ - function CheckValidCalDAV() { - // Clean headers - $this->headers = array(); - $dav_options = $this->DoOptionsRequestAndGetDAVHeader(); - $valid_caldav_server = isset($dav_options['calendar-access']); - - return $valid_caldav_server; - } - - /** - * Issues an OPTIONS request - * - * @param string $url The URL to make the request to - * - * @return array DAV options - */ - function DoOptionsRequestAndGetDAVHeader( $url = null ) { - $this->requestMethod = "OPTIONS"; - $this->body = ""; - $headers = $this->DoRequest($url); - - $result = array(); - - $headers = preg_split('/\r?\n/', $headers); - - // DAV header(s) - $dav_header = preg_grep('/^DAV:/', $headers); - if (is_array($dav_header)) { - $dav_header = array_values($dav_header); - $dav_header = preg_replace('/^DAV: /', '', $dav_header); - - $dav_options = array(); - - foreach ($dav_header as $d) { - $dav_options = array_merge($dav_options, - array_flip(preg_split('/[, ]+/', $d))); - } - - $result = $dav_options; - - } - - return $result; - } - - - /** - * Adds an If-Match or If-None-Match header - * - * @param bool $match to Match or Not to Match, that is the question! - * @param string $etag The etag to match / not match against. - */ - function SetMatch( $match, $etag = '*' ) { - $this->headers['match'] = sprintf( "%s-Match: \"%s\"", ($match ? "If" : "If-None"), $etag); - } - - /** - * Add a Depth: header. Valid values are 0, 1 or infinity - * - * @param int $depth The depth, default to infinity - */ - function SetDepth( $depth = '0' ) { - $this->headers['depth'] = 'Depth: '. ($depth == '1' ? "1" : ($depth == 'infinity' ? $depth : "0") ); - } - - /** - * Add a Depth: header. Valid values are 1 or infinity - * - * @param int $depth The depth, default to infinity - */ - function SetUserAgent( $user_agent = null ) { - $this->user_agent = $user_agent; - curl_setopt($this->ch, CURLOPT_USERAGENT, $user_agent); - } - - /** - * Add a Content-type: header. - * - * @param string $type The content type - */ - function SetContentType( $type ) { - $this->headers['content-type'] = "Content-type: $type"; - } - - /** - * Set the calendar_url we will be using for a while. - * - * @param string $url The calendar_url - */ - function SetCalendar( $url ) { - $this->calendar_url = $url; - } - - /** - * Split response into httpResponse and xmlResponse - * - * @param string Response from server - */ - function ParseResponse( $response ) { - $pos = strpos($response, 'httpResponse = trim($response); - } - else { - $this->httpResponse = trim(substr($response, 0, $pos)); - $this->xmlResponse = trim(substr($response, $pos)); - $this->xmlResponse = preg_replace('{>[^>]*$}s', '>',$this->xmlResponse ); - $parser = xml_parser_create_ns('UTF-8'); - xml_parser_set_option ( $parser, XML_OPTION_SKIP_WHITE, 1 ); - xml_parser_set_option ( $parser, XML_OPTION_CASE_FOLDING, 0 ); - - if ( xml_parse_into_struct( $parser, $this->xmlResponse, $this->xmlnodes, $this->xmltags ) === 0 ) { - //printf( "XML parsing error: %s - %s\n", xml_get_error_code($parser), xml_error_string(xml_get_error_code($parser)) ); - // debug_print_backtrace(); - // echo "\nNodes array............................................................\n"; print_r( $this->xmlnodes ); - // echo "\nTags array............................................................\n"; print_r( $this->xmltags ); - //printf( "\nXML Reponse:\n%s\n", $this->xmlResponse ); - log_message('ERROR', 'XML parsing error: ' - . xml_get_error_code($parser) . ', ' - . xml_error_string(xml_get_error_code($parser))); - } - - xml_parser_free($parser); - } - } - - /** - * Parse response headers - */ - function ParseResponseHeaders($headers) { - $lines = preg_split('/[\r\n]+/', $headers); - $this->httpResultCode = preg_replace('/^[\S]+ (\d+).+$/', '\1', - $lines[0]); - } - - /** - * Output http request headers - * - * @return HTTP headers - */ - function GetHttpRequest() { - return $this->httpRequest; - } - /** - * Output http response headers - * - * @return HTTP headers - */ - function GetResponseHeaders() { - return $this->httpResponseHeaders; - } - /** - * Output http response body - * - * @return HTTP body - */ - function GetResponseBody() { - return $this->httpResponseBody; - } - /** - * Output xml request - * - * @return raw xml - */ - function GetXmlRequest() { - return $this->xmlRequest; - } - /** - * Output xml response - * - * @return raw xml - */ - function GetXmlResponse() { - return $this->xmlResponse; - } - /** - * Output HTTP status code - * - * @return string HTTP status code - */ - function GetHttpResultCode() { - return $this->httpResultCode; - } - - /** - * Send a request to the server - * - * @param string $url The URL to make the request to - * - * @return string The content of the response from the server - */ - function DoRequest( $url = null ) { - if (is_null($url)) { - $url = $this->full_url; - } - - $this->request_url = $url; - - curl_setopt($this->ch, CURLOPT_URL, $url); - - // Request method - curl_setopt($this->ch, CURLOPT_CUSTOMREQUEST, $this->requestMethod); - - // Empty body. If not used, cURL will spend ~5s on this request - if ($this->requestMethod == 'HEAD' || empty($this->body)) { - curl_setopt($this->ch, CURLOPT_NOBODY, TRUE); - } else { - curl_setopt($this->ch, CURLOPT_NOBODY, FALSE); - } - - // Headers - if (!isset($this->headers['content-type'])) $this->headers['content-type'] = "Content-type: text/plain"; - - // Remove cURL generated 'Expect: 100-continue' - $this->headers['disable_expect'] = 'Expect:'; - curl_setopt($this->ch, CURLOPT_HTTPHEADER, - array_values($this->headers)); - - curl_setopt($this->ch, CURLOPT_USERPWD, $this->user . ':' . - $this->pass); - - // Request body - curl_setopt($this->ch, CURLOPT_POSTFIELDS, $this->body); - - $response = curl_exec($this->ch); - - if (FALSE === $response) { - // TODO better error handling - log_message('ERROR', 'Error requesting ' . $url . ': ' - . curl_error($this->ch)); - return false; - } - - $info = curl_getinfo($this->ch); - - // Get headers (idea from SabreDAV WebDAV client) - $this->httpResponseHeaders = substr($response, 0, $info['header_size']); - $this->httpResponseBody = substr($response, $info['header_size']); - - // Get only last headers (needed when using unspecific HTTP auth - // method or request got redirected) - $this->httpResponseHeaders = preg_replace('/^.+\r\n\r\n(.+)/sU', '$1', - $this->httpResponseHeaders); - - // Parse response - $this->ParseResponseHeaders($this->httpResponseHeaders); - $this->ParseResponse($this->httpResponseBody); - - //TODO debug - - /* - log_message('INTERNALS', 'REQh: ' . var_export($info['request_header'], TRUE)); - log_message('INTERNALS', 'REQb: ' . var_export($this->body, TRUE)); - log_message('INTERNALS', 'RPLh: ' . var_export($this->httpResponseHeaders, TRUE)); - log_message('INTERNALS', 'RPLb: ' . var_export($this->httpResponseBody, TRUE)); - */ - - return $response; - } - - /** - * Send an OPTIONS request to the server - * - * @param string $url The URL to make the request to - * - * @return array The allowed options - */ - function DoOptionsRequest( $url = null ) { - $this->requestMethod = "OPTIONS"; - $this->body = ""; - $headers = $this->DoRequest($url); - $options_header = preg_replace( '/^.*Allow: ([a-z, ]+)\r?\n.*/is', '$1', $headers ); - $options = array_flip( preg_split( '/[, ]+/', $options_header )); - return $options; - } - - - - /** - * Send an XML request to the server (e.g. PROPFIND, REPORT, MKCALENDAR) - * - * @param string $method The method (PROPFIND, REPORT, etc) to use with the request - * @param string $xml The XML to send along with the request - * @param string $url The URL to make the request to - * - * @return array An array of the allowed methods - */ - function DoXMLRequest( $request_method, $xml, $url = null ) { - $this->body = $xml; - $this->requestMethod = $request_method; - $this->SetContentType("text/xml"); - return $this->DoRequest($url); - } - - - - /** - * Get a single item from the server. - * - * @param string $url The URL to GET - */ - function DoGETRequest( $url ) { - $this->body = ""; - $this->requestMethod = "GET"; - return $this->DoRequest( $url ); - } - - - /** - * Get the HEAD of a single item from the server. - * - * @param string $url The URL to HEAD - */ - function DoHEADRequest( $url ) { - $this->body = ""; - $this->requestMethod = "HEAD"; - return $this->DoRequest( $url ); - } - - - /** - * PUT a text/icalendar resource, returning the etag - * - * @param string $url The URL to make the request to - * @param string $icalendar The iCalendar resource to send to the server - * @param string $etag The etag of an existing resource to be overwritten, or '*' for a new resource. - * - * @return string The content of the response from the server - */ - function DoPUTRequest( $url, $icalendar, $etag = null ) { - $this->body = $icalendar; - - $this->requestMethod = "PUT"; - if ( $etag != null ) { - $this->SetMatch( ($etag != '*'), $etag ); - } - $this->SetContentType('text/calendar; encoding="utf-8"'); - $this->DoRequest($url); - - $etag = null; - if ( preg_match( '{^ETag:\s+"([^"]*)"\s*$}im', $this->httpResponseHeaders, $matches ) ) $etag = $matches[1]; - if ( !isset($etag) || $etag == '' ) { - // Try with HEAD - $save_request = $this->httpRequest; - $save_response_headers = $this->httpResponseHeaders; - $save_http_result = $this->httpResultCode; - $this->DoHEADRequest( $url ); - if ( preg_match( '{^Etag:\s+"([^"]*)"\s*$}im', $this->httpResponseHeaders, $matches ) ) $etag = $matches[1]; - /* - if ( !isset($etag) || $etag == '' ) { - printf( "Still No etag in:\n%s\n", $this->httpResponseHeaders ); - } - */ - $this->httpRequest = $save_request; - $this->httpResponseHeaders = $save_response_headers; - $this->httpResultCode = $save_http_result; - } - return $etag; - } - - - /** - * DELETE a text/icalendar resource - * - * @param string $url The URL to make the request to - * @param string $etag The etag of an existing resource to be deleted, or '*' for any resource at that URL. - * - * @return int The HTTP Result Code for the DELETE - */ - function DoDELETERequest( $url, $etag = null ) { - $this->body = ""; - - $this->requestMethod = "DELETE"; - if ( $etag != null ) { - $this->SetMatch( true, $etag ); - } - $this->DoRequest($url); - return $this->httpResultCode; - } - - - /** - * Get a single item from the server. - * - * @param string $url The URL to PROPFIND on - */ - function DoPROPFINDRequest( $url, $props, $depth = 0 ) { - $this->SetDepth($depth); - $xml = new XMLDocument( array( 'DAV:' => '', 'urn:ietf:params:xml:ns:caldav' => 'C' ) ); - $prop = new XMLElement('prop'); - foreach( $props AS $v ) { - $xml->NSElement($prop,$v); - } - - $this->body = $xml->Render('propfind',$prop ); - - $this->requestMethod = "PROPFIND"; - $this->SetContentType("text/xml"); - $this->DoRequest($url); - return $this->GetXmlResponse(); - } - - - /** - * Get/Set the Principal URL - * - * @param $url string The Principal URL to set - */ - function PrincipalURL( $url = null ) { - if ( isset($url) ) { - $this->principal_url = $url; - } - return $this->principal_url; - } - - - /** - * Get/Set the calendar-home-set URL - * - * @param $url array of string The calendar-home-set URLs to set - */ - function CalendarHomeSet( $urls = null ) { - if ( isset($urls) ) { - if ( ! is_array($urls) ) $urls = array($urls); - $this->calendar_home_set = $urls; - } - return $this->calendar_home_set; - } - - - /** - * Get/Set the calendar-home-set URL - * - * @param $urls array of string The calendar URLs to set - */ - function CalendarUrls( $urls = null ) { - if ( isset($urls) ) { - if ( ! is_array($urls) ) $urls = array($urls); - $this->calendar_urls = $urls; - } - return $this->calendar_urls; - } - - - /** - * Return the first occurrence of an href inside the named tag. - * - * @param string $tagname The tag name to find the href inside of - */ - function HrefValueInside( $tagname ) { - foreach( $this->xmltags[$tagname] AS $k => $v ) { - $j = $v + 1; - if ( $this->xmlnodes[$j]['tag'] == 'DAV::href' ) { - return rawurldecode($this->xmlnodes[$j]['value']); - } - } - return null; - } - - - /** - * Return the href containing this property. Except only if it's inside a status != 200 - * - * @param string $tagname The tag name of the property to find the href for - * @param integer $which Which instance of the tag should we use - */ - function HrefForProp( $tagname, $i = 0 ) { - if ( isset($this->xmltags[$tagname]) && isset($this->xmltags[$tagname][$i]) ) { - $j = $this->xmltags[$tagname][$i]; - while( $j-- > 0 && $this->xmlnodes[$j]['tag'] != 'DAV::href' ) { - // printf( "Node[$j]: %s\n", $this->xmlnodes[$j]['tag']); - if ( $this->xmlnodes[$j]['tag'] == 'DAV::status' && $this->xmlnodes[$j]['value'] != 'HTTP/1.1 200 OK' ) return null; - } - // printf( "Node[$j]: %s\n", $this->xmlnodes[$j]['tag']); - if ( $j > 0 && isset($this->xmlnodes[$j]['value']) ) { - // printf( "Value[$j]: %s\n", $this->xmlnodes[$j]['value']); - return rawurldecode($this->xmlnodes[$j]['value']); - } - } - else { - printf( "xmltags[$tagname] or xmltags[$tagname][$i] is not set\n"); - } - return null; - } - - - /** - * Return the href which has a resourcetype of the specified type - * - * @param string $tagname The tag name of the resourcetype to find the href for - * @param integer $which Which instance of the tag should we use - */ - function HrefForResourcetype( $tagname, $i = 0 ) { - if ( isset($this->xmltags[$tagname]) && isset($this->xmltags[$tagname][$i]) ) { - $j = $this->xmltags[$tagname][$i]; - while( $j-- > 0 && $this->xmlnodes[$j]['tag'] != 'DAV::resourcetype' ); - if ( $j > 0 ) { - while( $j-- > 0 && $this->xmlnodes[$j]['tag'] != 'DAV::href' ); - if ( $j > 0 && isset($this->xmlnodes[$j]['value']) ) { - return rawurldecode($this->xmlnodes[$j]['value']); - } - } - } - return null; - } - - - /** - * Return the ... of a propstat where the status is OK - * - * @param string $nodenum The node number in the xmlnodes which is the href - */ - function GetOKProps( $nodenum ) { - $props = null; - $level = $this->xmlnodes[$nodenum]['level']; - $status = ''; - while ( $this->xmlnodes[++$nodenum]['level'] >= $level ) { - if ( $this->xmlnodes[$nodenum]['tag'] == 'DAV::propstat' ) { - if ( $this->xmlnodes[$nodenum]['type'] == 'open' ) { - $props = array(); - $status = ''; - } - else { - if ( $status == 'HTTP/1.1 200 OK' ) break; - } - } - elseif ( !isset($this->xmlnodes[$nodenum]) || !is_array($this->xmlnodes[$nodenum]) ) { - break; - } - elseif ( $this->xmlnodes[$nodenum]['tag'] == 'DAV::status' ) { - $status = $this->xmlnodes[$nodenum]['value']; - } - else { - $props[] = $this->xmlnodes[$nodenum]; - } - } - return $props; - } - - - /** - * Attack the given URL in an attempt to find a principal URL - * - * @param string $url The URL to find the principal-URL from - */ - function FindPrincipal( $url = null ) { - $xml = $this->DoPROPFINDRequest( $url, array('resourcetype', 'current-user-principal', 'owner', 'principal-URL', - 'urn:ietf:params:xml:ns:caldav:calendar-home-set'), 1); - - $principal_url = $this->HrefForProp('DAV::principal'); - - if ( !isset($principal_url) ) { - foreach( array('DAV::current-user-principal', 'DAV::principal-URL', 'DAV::owner') AS $href ) { - if ( !isset($principal_url) ) { - $principal_url = $this->HrefValueInside($href); - } - } - } - - return $this->PrincipalURL($principal_url); - } - - - /** - * Attack the given URL in an attempt to find a principal URL - * - * @param string $url The URL to find the calendar-home-set from - */ - function FindCalendarHome( $recursed=false ) { - if ( !isset($this->principal_url) ) { - $this->FindPrincipal(); - } - if ( $recursed ) { - $this->DoPROPFINDRequest( $this->principal_url, array('urn:ietf:params:xml:ns:caldav:calendar-home-set'), 0); - } - - $calendar_home = array(); - foreach( $this->xmltags['urn:ietf:params:xml:ns:caldav:calendar-home-set'] AS $k => $v ) { - if ( $this->xmlnodes[$v]['type'] != 'open' ) continue; - while( $this->xmlnodes[++$v]['type'] != 'close' && $this->xmlnodes[$v]['tag'] != 'urn:ietf:params:xml:ns:caldav:calendar-home-set' ) { - // printf( "Tag: '%s' = '%s'\n", $this->xmlnodes[$v]['tag'], $this->xmlnodes[$v]['value']); - if ( $this->xmlnodes[$v]['tag'] == 'DAV::href' && isset($this->xmlnodes[$v]['value']) ) - $calendar_home[] = rawurldecode($this->xmlnodes[$v]['value']); - } - } - - if ( !$recursed && count($calendar_home) < 1 ) { - $calendar_home = $this->FindCalendarHome(true); - } - - return $this->CalendarHomeSet($calendar_home); - } - - /* - * Find own calendars - */ - function FindCalendars( $recursed=false ) { - if ( !isset($this->calendar_home_set[0]) ) { - $this->FindCalendarHome(); - } - $properties = - array( - 'resourcetype', - 'displayname', - 'http://calendarserver.org/ns/:getctag', - 'http://apple.com/ns/ical/:calendar-color', - 'http://apple.com/ns/ical/:calendar-order', - ); - $this->DoPROPFINDRequest( $this->calendar_home_set[0], $properties, 1); - - return $this->parse_calendar_info(); - } - - /** - * Do a PROPFIND on a calendar and retrieve its information - */ - function GetCalendarDetailsByURL($url) { - $properties = - array( - 'resourcetype', - 'displayname', - 'http://calendarserver.org/ns/:getctag', - 'http://apple.com/ns/ical/:calendar-color', - 'http://apple.com/ns/ical/:calendar-order', - ); - $this->DoPROPFINDRequest($url, $properties, 0); - - return $this->parse_calendar_info(); - } - - /** - * Find the calendars, from the calendar_home_set - */ - function GetCalendarDetails( $url = null ) { - if ( isset($url) ) $this->SetCalendar($url); - - $calendar_properties = array( 'resourcetype', 'displayname', 'http://calendarserver.org/ns/:getctag', 'urn:ietf:params:xml:ns:caldav:calendar-timezone', 'supported-report-set' ); - $this->DoPROPFINDRequest( $this->calendar_url, $calendar_properties, 0); - - $hnode = $this->xmltags['DAV::href'][0]; - $href = rawurldecode($this->xmlnodes[$hnode]['value']); - - $calendar = new CalendarInfo($href); - $ok_props = $this->GetOKProps($hnode); - foreach( $ok_props AS $k => $v ) { - $name = preg_replace( '{^.*:}', '', $v['tag'] ); - if ( isset($v['value'] ) ) { - $calendar->{$name} = $v['value']; - } - /* else { - printf( "Calendar property '%s' has no text content\n", $v['tag'] ); - }*/ - } - - return $calendar; - } - - - /** - * Get all etags for a calendar - */ - function GetCollectionETags( $url = null ) { - if ( isset($url) ) $this->SetCalendar($url); - - $this->DoPROPFINDRequest( $this->calendar_url, array('getetag'), 1); - - $etags = array(); - if ( isset($this->xmltags['DAV::getetag']) ) { - foreach( $this->xmltags['DAV::getetag'] AS $k => $v ) { - $href = $this->HrefForProp('DAV::getetag', $k); - if ( isset($href) && isset($this->xmlnodes[$v]['value']) ) $etags[$href] = $this->xmlnodes[$v]['value']; - } - } - - return $etags; - } - - - /** - * Get a bunch of events for a calendar with a calendar-multiget report - */ - function CalendarMultiget( $event_hrefs, $url = null ) { - - if ( isset($url) ) $this->SetCalendar($url); - - $hrefs = ''; - foreach( $event_hrefs AS $k => $href ) { - $href = str_replace( rawurlencode('/'),'/',rawurlencode($href)); - $hrefs .= ''.$href.''; - } - $this->body = << - - -$hrefs - -EOXML; - - $this->requestMethod = "REPORT"; - $this->SetContentType("text/xml"); - $this->DoRequest( $this->calendar_url ); - - $events = array(); - if ( isset($this->xmltags['urn:ietf:params:xml:ns:caldav:calendar-data']) ) { - foreach( $this->xmltags['urn:ietf:params:xml:ns:caldav:calendar-data'] AS $k => $v ) { - $href = $this->HrefForProp('urn:ietf:params:xml:ns:caldav:calendar-data', $k); - // echo "Calendar-data:\n"; print_r($this->xmlnodes[$v]); - $events[$href] = $this->xmlnodes[$v]['value']; - } - } - else { - foreach( $event_hrefs AS $k => $href ) { - $this->DoGETRequest($href); - $events[$href] = $this->httpResponseBody; - } - } - - return $events; - } - - - /** - * Given XML for a calendar query, return an array of the events (/todos) in the - * response. Each event in the array will have a 'href', 'etag' and '$response_type' - * part, where the 'href' is relative to the calendar and the '$response_type' contains the - * definition of the calendar data in iCalendar format. - * - * @param string $filter XML fragment which is the element of a calendar-query - * @param string $url The URL of the calendar, or null to use the 'current' calendar_url - * - * @return array An array of the relative URLs, etags, and events from the server. Each element of the array will - * be an array with 'href', 'etag' and 'data' elements, corresponding to the URL, the server-supplied - * etag (which only varies when the data changes) and the calendar data in iCalendar format. - */ - function DoCalendarQuery( $filter, $expand_filter, $url = null ) { - - if ( isset($url) ) $this->SetCalendar($url); - - $this->body = << - - - -$expand_filter - - -$filter - -EOXML; - - $this->requestMethod = "REPORT"; - $this->SetContentType("text/xml"); - $this->DoRequest( $this->calendar_url ); - - $report = array(); - foreach( $this->xmlnodes as $k => $v ) { - switch( $v['tag'] ) { - case 'DAV::response': - if ( $v['type'] == 'open' ) { - $response = array(); - } - elseif ( $v['type'] == 'close' ) { - $report[] = $response; - } - break; - case 'DAV::href': - $response['href'] = basename( rawurldecode($v['value']) ); - break; - case 'DAV::getetag': - $response['etag'] = preg_replace('/^"?([^"]+)"?/', '$1', $v['value']); - break; - case 'urn:ietf:params:xml:ns:caldav:calendar-data': - $response['data'] = $v['value']; - break; - } - } - return $report; - } - - - /** - * Get the events in a range from $start to $finish. The dates should be in the - * format yyyymmddThhmmssZ and should be in GMT. The events are returned as an - * array of event arrays. Each event array will have a 'href', 'etag' and 'event' - * part, where the 'href' is relative to the calendar and the event contains the - * definition of the event in iCalendar format. - * - * @param timestamp $start The start time for the period - * @param timestamp $finish The finish time for the period - * @param string $relative_url The URL relative to the base_url specified when the calendar was opened. Default null. - * - * @return array An array of the relative URLs, etags, and events, returned from DoCalendarQuery() @see DoCalendarQuery() - */ - function GetEvents( $start = null, $finish = null, $relative_url = null ) { - $this->SetDepth('1'); - $filter = ""; - if ( isset($start) && isset($finish) ) - { - $range = ""; - $expand_filter = ""; - } - else - { - $range = ''; - $expand_filter = ""; - } - - $filter = << - - -$range - - - -EOFILTER; - - - return $this->DoCalendarQuery($filter, $expand_filter, $relative_url); - } - - - /** - * Get the todo's in a range from $start to $finish. The dates should be in the - * format yyyymmddThhmmssZ and should be in GMT. The events are returned as an - * array of event arrays. Each event array will have a 'href', 'etag' and 'event' - * part, where the 'href' is relative to the calendar and the event contains the - * definition of the event in iCalendar format. - * - * @param timestamp $start The start time for the period - * @param timestamp $finish The finish time for the period - * @param boolean $completed Whether to include completed tasks - * @param boolean $cancelled Whether to include cancelled tasks - * @param string $relative_url The URL relative to the base_url specified when the calendar was opened. Default ''. - * - * @return array An array of the relative URLs, etags, and events, returned from DoCalendarQuery() @see DoCalendarQuery() - */ - function GetTodos( $start, $finish, $completed = false, $cancelled = false, $relative_url = "" ) { - - if ( $start && $finish ) { - $time_range = << -EOTIME; - $expand_filter = ""; - } - - // Warning! May contain traces of double negatives... - $neg_cancelled = ( $cancelled === true ? "no" : "yes" ); - $neg_completed = ( $cancelled === true ? "no" : "yes" ); - - $filter = << - - - -COMPLETED - - -CANCELLED -$time_range - - - -EOFILTER; - - return $this->DoCalendarQuery($filter, $expand_filter, $relative_url); - } - - - /** - * Get the calendar entry by UID - * - * @param uid - * @param string $relative_url The URL relative to the base_url specified when the calendar was opened. Default ''. - * - * @return array An array of the relative URL, etag, and calendar data returned from DoCalendarQuery() @see DoCalendarQuery() - */ - function GetEntryByUid( $uid, $relative_url = null ) { - $this->SetDepth('1'); - $filter = ""; - if ( $uid ) { - $filter = << - - - -$uid - - - - -EOFILTER; - } - - return $this->DoCalendarQuery($filter, $expand_filter, $relative_url); - } - - - /** - * Get the calendar entry by HREF - * - * @param string $href The href from a call to GetEvents or GetTodos etc. - * - * @return string The iCalendar of the calendar entry - */ - function GetEntryByHref( $href ) { - $href = str_replace( rawurlencode('/'),'/',rawurlencode($href)); - return $this->DoGETRequest( $href ); - } - - /** - * Get calendar info after a PROPFIND - */ - function parse_calendar_info() { - $calendars = array(); - if ( isset($this->xmltags['urn:ietf:params:xml:ns:caldav:calendar']) ) { - $calendar_urls = array(); - foreach( $this->xmltags['urn:ietf:params:xml:ns:caldav:calendar'] AS $k => $v ) { - $calendar_urls[$this->HrefForProp('urn:ietf:params:xml:ns:caldav:calendar', $k)] = 1; - } - - foreach( $this->xmltags['DAV::href'] AS $i => $hnode ) { - $href = rawurldecode($this->xmlnodes[$hnode]['value']); - - if ( !isset($calendar_urls[$href]) ) continue; - - // printf("Seems '%s' is a calendar.\n", $href ); - - - $calendar = new CalendarInfo($href); - - /* - * Transform href into calendar - * /xxxxx/yyyyy/caldav.php/principal/resource/ - * t-3 t-2 - */ - $pieces = preg_split('/\//', $href); - $total = count($pieces); - $calendar_id = $pieces[$total-3] . ':' . $pieces[$total-2]; - $calendar->calendar = $calendar_id; - - $ok_props = $this->GetOKProps($hnode); - foreach( $ok_props AS $v ) { - switch( $v['tag'] ) { - case 'http://calendarserver.org/ns/:getctag': - $calendar->getctag = isset($v['value']) ? - $v['value'] : ''; - break; - case 'DAV::displayname': - $calendar->displayname = isset($v['value']) ? - $v['value'] : 'calendar'; - break; - case 'http://apple.com/ns/ical/:calendar-color': - $rgba_color = isset($v['value']) ? - $v['value'] : '#ffffffff'; - $calendar->rgba_color = $rgba_color; - $calendar->color = - $this->_rgba2rgb($rgba_color); - break; - case 'http://apple.com/ns/ical/:calendar-order': - $calendar->order = isset($v['value']) ? - $v['value'] : '1'; - break; - } - } - $calendars[$calendar_id] = $calendar; - } - } - - return $calendars; - } - /** - * Issues a PROPPATCH on a resource - * - * @param string XML request - * @param string URL - * @return TRUE on success, FALSE otherwise - */ - function DoPROPPATCH($xml_text, $url) { - $this->DoXMLRequest('PROPPATCH', $xml_text, $url); - - $errmsg = ''; - - if ($this->httpResultCode == '207') { - $errmsg = $this->httpResultCode; - // Find propstat tag(s) - if (isset($this->xmltags['DAV::propstat'])) { - foreach ($this->xmltags['DAV::propstat'] as $i => $node) { - if ($this->xmlnodes[$node]['type'] == 'close') { - continue; - } - // propstat @ $i: open - // propstat @ $i + 1: close - // Search for prop and status - $level = $this->xmlnodes[$node]['level']; - $level++; - - while ($this->xmlnodes[++$node]['level'] >= $level) { - if ($this->xmlnodes[$node]['tag'] == 'DAV::status' - && $this->xmlnodes[$node]['value'] != - 'HTTP/1.1 200 OK') { - return $this->xmlnodes[$node]['value']; - } - } - } - } - } else if ($this->httpResultCode != 200) { - return 'Unknown HTTP code'; - } - - return TRUE; - } - - /** - * Queries server using a principal-property search - * - * @param string XML request - * @param string URL - * @return FALSE on error, array with results otherwise - */ - function principal_property_search($xml_text, $url) { - $result = array(); - $this->DoXMLRequest('REPORT', $xml_text, $url); - - if ($this->httpResultCode == '207') { - $errmsg = $this->httpResultCode; - // Find response tag(s) - if (isset($this->xmltags['DAV::response'])) { - foreach ($this->xmltags['DAV::response'] as $i => $node) { - if ($this->xmlnodes[$node]['type'] == 'close') { - continue; - } - - $result[$i]['href'] = - $this->HrefForProp('DAV::response', $i+1); - - $level = $this->xmlnodes[$node]['level']; - $level++; - - $ok_props = $this->GetOKProps($node); - - foreach ($ok_props as $v) { - switch($v['tag']) { - case 'DAV::displayname': - $result[$i]['displayname'] = - isset($v['value']) ? $v['value'] : ''; - break; - case 'DAV::email': - $result[$i]['email'] = - isset($v['value']) ? $v['value'] : ''; - break; - } - } - - } - } - } else if ($this->httpResultCode != 200) { - return 'Unknown HTTP code'; - } - - return $result; - } - - /** - * Converts a RGBA hexadecimal string (#rrggbbXX) to RGB - */ - private function _rgba2rgb($s) { - if (strlen($s) == '9') { - return substr($s, 0, 7); - } else { - // Unknown string - return $s; - } - } - -} diff --git a/sources/libs/font-awesome/.gitignore b/sources/libs/font-awesome/.gitignore deleted file mode 100644 index 51d8053..0000000 --- a/sources/libs/font-awesome/.gitignore +++ /dev/null @@ -1,29 +0,0 @@ -*.pyc -*.egg-info -*.db -*.db.old -*.swp -*.db-journal - -.coverage -.DS_Store -.installed.cfg - -.idea/* -.svn/* -src/website/static/* -src/website/media/* - -bin -build -cfcache -develop-eggs -dist -downloads -eggs -parts -tmp -.sass-cache - -src/website/settingslocal.py -stunnel.log \ No newline at end of file diff --git a/sources/libs/font-awesome/FontAwesome-Vectors.pdf b/sources/libs/font-awesome/FontAwesome-Vectors.pdf deleted file mode 100644 index 0e86cb9..0000000 --- a/sources/libs/font-awesome/FontAwesome-Vectors.pdf +++ /dev/null @@ -1,3169 +0,0 @@ -%PDF-1.5 %âãÏÓ -1 0 obj <>/OCGs[5 0 R 31 0 R 62 0 R 110 0 R 166 0 R]>>/Pages 3 0 R/Type/Catalog>> endobj 2 0 obj <>stream - - - - - 2012-06-03T23:44:11-04:00 - Adobe Illustrator CS5.1 - 2012-06-03T23:52:53-04:00 - 2012-06-03T23:52:53-04:00 - - - - 92 - 256 - JPEG - /9j/4AAQSkZJRgABAgEASABIAAD/7QAsUGhvdG9zaG9wIDMuMAA4QklNA+0AAAAAABAASAAAAAEA AQBIAAAAAQAB/+4ADkFkb2JlAGTAAAAAAf/bAIQABgQEBAUEBgUFBgkGBQYJCwgGBggLDAoKCwoK DBAMDAwMDAwQDA4PEA8ODBMTFBQTExwbGxscHx8fHx8fHx8fHwEHBwcNDA0YEBAYGhURFRofHx8f Hx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8fHx8f/8AAEQgBAABcAwER AAIRAQMRAf/EAaIAAAAHAQEBAQEAAAAAAAAAAAQFAwIGAQAHCAkKCwEAAgIDAQEBAQEAAAAAAAAA AQACAwQFBgcICQoLEAACAQMDAgQCBgcDBAIGAnMBAgMRBAAFIRIxQVEGE2EicYEUMpGhBxWxQiPB UtHhMxZi8CRygvElQzRTkqKyY3PCNUQnk6OzNhdUZHTD0uIIJoMJChgZhJRFRqS0VtNVKBry4/PE 1OT0ZXWFlaW1xdXl9WZ2hpamtsbW5vY3R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo+Ck5SVlpeYmZ qbnJ2en5KjpKWmp6ipqqusra6voRAAICAQIDBQUEBQYECAMDbQEAAhEDBCESMUEFURNhIgZxgZEy obHwFMHR4SNCFVJicvEzJDRDghaSUyWiY7LCB3PSNeJEgxdUkwgJChgZJjZFGidkdFU38qOzwygp 0+PzhJSktMTU5PRldYWVpbXF1eX1RlZmdoaWprbG1ub2R1dnd4eXp7fH1+f3OEhYaHiImKi4yNjo +DlJWWl5iZmpucnZ6fkqOkpaanqKmqq6ytrq+v/aAAwDAQACEQMRAD8An9hZeTLW3Mt3a+bbCeJm kW6u7KT1lmCtDGUkt4XUuy3BCcTtx3pTFU3fSND1AcnvvN6zmaW/jR7e7SSKYxcDFFLJbUQhHZU4 vTc0bFU20Ty5Z6oLl7fXvNEfKOFGivWurT0+MDwfuzPBFyc15uVLfGAx7Yqj/wDlXURt1jk8wa1L NHI0kV490huEDrGhjSQRghKQjbuSak1xVQuvyz9XTpbVPMutGchGtbqe7MjQyRtIwdSojf4vWKvR gSoCgimKqsn5a2hZ3i1vVraSVGWSS3uER2do1j9ZnMbO8ihfhZ2Yip7UAVU9O/Lq/tLiK5l806vd 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 SmxKkH3xVOsVf//Z - - - - - - Mac OS X 10.7.4 Quartz PDFContext - - - application/pdf - - - Dave Gandy - - - - - Font Awesome, the iconic font designed for use with Twitter Bootstrap - - - - - 1 - False - False - - 612.000000 - 1600.000000 - Pixels - - - - - MuseoSlab-500 - Museo Slab - 500 - Open Type - Version 1.000 - False - Museo_Slab_500.otf - - - ProximaNova-Regular - Proxima Nova - Regular - Open Type - Version 1.101;PS 001.001;hotconv 1.0.38 - False - ProximaNova-Regular.otf - - - - - - Cyan - Magenta - Yellow - Black - - - - - - Default Swatch Group - 0 - - - - - - xmp.did:F77F1174072068118C14B0E4C7F9F15B - uuid:7ea95d81-b16b-ec41-8602-038d82e980f5 - xmp.did:F77F1174072068118C14B0E4C7F9F15B - proof:pdf - - - - - saved - xmp.iid:F77F1174072068118C14B0E4C7F9F15B - 2012-06-03T23:44:11-04:00 - Adobe Illustrator CS5.1 - / - - - - - - - - - - - - - - - - - - - - - - - - - - - - endstream endobj 3 0 obj <> endobj 7 0 obj <>/Resources<>/Font<>/ProcSet[/PDF/Text]/Properties<>>>/Thumb 171 0 R/TrimBox[0.0 0.0 612.0 1600.0]/Type/Page>> endobj 168 0 obj <>stream -H‰ÄWɎǽ÷WÔq|èbîËQ¢è`†Ðч#ÊR)‘4ÿ½ß{‘YU=cŠšƒdœ®ÈŒŒŒ-#^¼øÛËåÅ__ºåË?¾\N_ޞܖùÿý›Ó‹¿üÃ-o>œ^ÜúºÅ/·ßž|[c‹‹Ã¿ñéÛâsuk*¹-·§›/þpû=$UŸÀtûúts±…Ðêõ‚óe¹½[n–?¿{ûqùâçûïîíiý+~¶µÔ6ÎÝqáæÿúÕ×2–ß~Ðúbë)ÎõWÿ¹Z/y¬¿Ôò7¶zËï¹r†^.òþññóróæÝ¦”ÓÂ{Iö~u¡7sÆø–7RZk”/¾6Kûv÷ý«+’ë›ÓýãrÒÍ¿Œ±õ~僡¼wa*¿s»µô¹ün,„iäÛýzª5]õ•-ÄMÏ_tõŸnO?Á¾8·–³¾Þߟ¾^Þž~Z¼yd‰CqŸCYc*a¹{8q‹áç'ÁÉ•ß5(ëO5XâAG¥qúƒ Zfˆ–w£•×}z?ž”|5g\ú˶I_H—Ü7nägé›$de.‡{âÚÓ®¨ÖLÃz XÇ·µÝ¼ ÏÔi½èÒ¬X±ãdøfø­‘ꡚWT2”rùD™;Ä£ å-ñf{ñŒæ…4»È5©àg-|KÒeËŸ3ëlœ©ŠESÅ#©Û ¯#0º;h>ÐQ$¡h0"”È'Nˆ£ëXA|šµƒÀäáÙÍ¢ÝLfÓ&¢¼“Oó#’TÐ3¨ÅæÄ®.4¬1ŸFëÀæî(t8bÂÜk‘bàš%IÔ~È<ÁJ5 Y±ìHP³›¦NZsV60«ÐMœ_FÊ¡lmÖiœ·DgºVËä!ÄÒ|»ÀÞ@šÝ‹ÏƒjåðyX›=öîÌZ‘|”ô„^hVñ%~™þG}\ßjÀpºŃuÅç6bua•²0:EÖâ+è1#Ï2FRXý²lq#‰ÔŸrO[Š}÷ܶ€°öˆVùû¶…ÿ]ãî·…÷çò)åžýá9XÇ!•|ªð~Ljsèó$4lèF)™ 1æLæ4a&!çÀ:ÂÃD˜FïGF½F•ÎpíløG¼ûóá;òÁÒᔄo–Jr%=åÒ„¯ó·;e¤ãXcj¨^ -$³-6rIÍRõ¹Zçôa40.j/›»X÷#zÄÃi FŽ©"#ÊÁÀ¦—ª*÷DÄDKæÓnÞ† -¾ì\ª½Xo/ÛZ½˜ (ØT!äFŸÓSèÀÉåëÃøD&§ŽT"_(À’JJ±ê<* -|ÅŠu®ÆH'»7$†2ĬT /ñºäK¹Fe¡FGpMœLOòó½kWôÊ(\`îš^¤?Qçᦢ |ÖD`H>é›fõc® -š¬OÔeÎU*Ä–„Ñ]–rqÎ#(¬1…FújH>h’qQÈsÙǜ͉ƒ0 Jö `)È -™ ºó ÙÕ†…M©“™²Ôw@h3dbëd¨å1b– ÈwÌΖ¡Ûúy ö ô·Oiç ¸kÜÇAä¾éw>ê~>5F•i¯Æ˜ÃLcþ0íl)8GÆ1%Õ1?Æ)q†â|ŒÒù¾¡äŒì°` rsr°0»g¢œ·ÙÑùmLdnÍ„{ö”‘ªgñŒ¿u;yõx¬xÔ_Þ>îO$<¹ú‰rOΓ#—ÇGî?Ûp0Ÿ$‹O©(Òðz¯¬u îO,êç÷„¢íÃÓ±^ï=P(Á}$ÉSñ~­8Äí†l@K =î\­2l“¡ÃíÙTzàJè‡М3D³ªv¤7’UûŽXFµÂ.HºŽd6:”4Nô¡µÓ(µ¯@3Ú7e‚®1ì·‚.aÈ0µ°’á‹MmÐ ¯a3lÐ8Á©¡í+®„zX‰ÌÁz‰÷¨t¼Õ€×®*Ji½7Ú,Ó [Ö_®VäŸ)súoÞº{xê5B0Õžš† únÀÂ_ÿŠÍþþÿ~ÅO^àç_ñwþçD~üü“¹èû|S ut·7U\ºÚ'êß÷ëÚ®wÛõ®#˜8ìG 1û~ѬñéÛQõKû…ÛÑ/H»}Ÿ³ÙµuD»Ç}¯õƒïöíðdûúz/ v­þaÿyyiB~óaåÙyù‰›^ϛүƒ'nð#Zh„ês Aµ—ÈËÉÀ'ú}*Ep>3@í5Ex•5'â…GÁ¢P ÔQà ”§N ‘»À‚ÁuLD‚BU ½@’#xçà{6X8„ƒKâóA{AP—Å„°<ý Bñ&œgL°¶ñ‹Àñó!Cïå1AQò˜rMg^äÊ™t¿â?V®”LØÍñ¿óKfi˜pкªÃy‘ý°t;µfh¬“7 -ŒQ7^0è@:óf‚VÞ$*mQÎy£©9ŸL÷$¦ÄääÀóR],H–*(/õ5º;Gc“ó¡â@^Å¥ÆØ;ú;BW¢™…Ã4JPS¹Ÿ[©Öq–aKæbÓs6K¯­~ÿÆÏQ .Îíck—±9Úõ•Þ…Žê?$[Võººš--Ag5x~ YŒ"õeÞÈ>dXð‰ÏÕgÁòqnH9§h²Ë½ h‹–ÀDœ{¦nGí©XüÐè›ÈúEdÔúâíÎp©ª²R@E¾ð{€ø -—Q­½ØUs ÇÖ¨>|êMo -w8dF14|°zmÑð„ð_eIÂA¸t´œÁ–çüÖîÅþévmÄÇÓìâm¬ÁÞT;?þ¥Ã•vY›°ÝÆ ´¨>· KèS3Ó3­«4 {µF‹Ö7Øòl½´a_NTºq©FïÊ"ƒç uo9)–äÔ:{°Æ}­2gª^Ö$‚<ï]vÏH¶ê`†¦Ñðu“}?|ãÈõ+¯þcq™.0NÕ ˜º™ÆA^‰Sô^³ê~Ú✦ˆÛxÚ†¯²½£aÈ2ü£Ù^/Å+:üýëW(žž0û° ™‡ÅóhxmÊ·Óv[]—@¡Mè]ìþjÄ:c×%wæ‡ú±‚Ÿ? „.2¦±–°G,†ÞÑïÎÆ> ‚JÒJÞP§çèûرbaõ¯>àgÝ 9‡6™>Ž>ßÞ´­4Þæ/s+í‘[Ì5§?f1Q³Bò/zJµŸ•ñ£ölå=K>÷ -}“Ÿ†)©œjFaÈ(«Ú‡jˆJ(Ó²l_ø x.´ýì7àþI-|뉦˜ #fáãzâà-m^Ųº¥Æpbãššê+Ø¡4™ó¨ó¬D™<ê¦;”ù:a0]ÆEŸÌ3{ð·òï0mÞª¾»˜!Ôž–Yˆ:#±ÄbƒúÓ“iÙØèý’¨£r²ÂàëÔ–,+OÌdïfÏr-®Ðea,,¸.¸¼+—APôÒ¹ÜD=ׯ32'¥óøé<¤Ùc`¢Á¥$8Èú¦·ÈŽ¢¦r ò ' -X¡D«œ¹æŽõf7f°ìEðÍYηùuŒ¹—²¸98Ô@#êQÆhN®Ó¤®¡>HýEÕƪ:jø<Ür9§’œsî -5P%8¡“ìêZ"(Ó½i˜wî$l[³K›²Hü<üS½ÐÅñ6uëÃB­Ù:þAâò‘‹2¾Æ~¾ ×8ï\BÙ¥€z¡ƒœ2.´GÓkêTcç5ÚÛVsöQ(§òh’zt6m—wú¾ãå:;X²Ž½¢&©‹;Õ8¶­îOƪÉÕ™.¥W÷7ëv{×Þ²È]É2B–T·!ÇÎ}L©4•_zEæ®éŒ«…„Ëžòj3aK€™ëì2)û,ýMS@cž?³¼•ïç­Æü_“/„Þ[CªRµÂÍ\ôÁu˜é‰dU¬U´(!r0¢ËÔ›ŸÐ+ØhüWÌ hõÙ ™©©¢±}¸ÀEÓÞæî^¾ˆ5“4¦§ÁO¤óšãR±(¢X ¡Ùê</–ò“¶ÄÎÒ“o‚q£ã–ÞêÀ†øÚ¤O¸uÐët¹EixT }Š?·´e€d[+A¡!ص*š¼¨ƒ¢xãþêk­N«QRÍ߆tÛH´ÆHó(à>5&iׯ4’¾F ?ÚØ°1ŒF«‡(#!7^r3Xoâ¦ÞoY\à¦{šéž[¯kè£&Æ2Aø:§™*—w$º„¹N–ÑË=OŒMÝ—œzT€hÉ|Á¸‘¬ ^œ„ÒhJT¸•–÷Š— "–˜Açrê’t²˜… dÃG!ÏŒb$ù…ÎnOÝ Ô/øÎÈTóühÌjyù?¯k…V†“!®N'1Œ$·WïdÙã0-<ËäõÇÞ¨Uh˜±ÎµÐÊ® D.s_L‘<çB’ÌûMÊŽ5¿Ü(QêÝ%¢F§ÌX<ŒËx`â^höù67Æy£Æ<”“Æ·÷z˜Ì<çvK‹zªÄœKj+B*õï/O&HO¶ŸÑyùæÏz^Wÿÿ¢‰ëyó/õfÁÚ¼ã_ªl/'„'EéÇC¢º5Ð@A«›ÓáôÈéâç5HÔxÔÎÆâ‹n-yÉ/{I¥'ÛCȧ3_:õÛ³¡˜Ì¸†×sg+%ô-²áp¦UA´gZ!o«ÅLúí›! ǵ¾Ò#–]öçÝ ðœq u•”ìž’ ˆgÃ!ƹÓªõöú¶ÈWݤRsræÝvCµ `QK<Óö¦¼õ¼[ø\×Áä9ä7^w€6–å׬Š]¨iªNb½èlñ9EÜ8šÖ)ö;Ø%Âu¹ôÂ{sœ"ÑÆt§±ns++&ªÉŸ}PÒÖ¦›ét! #þ©z7&ÍA9ÂiÐ$ýG&nÝ=8©QFJ&*J.عµNuk”!↳鰃­ Ú`Q³œ%ØHÛá ³vG™_²û N4·ú°ò‚Î/Àq ¤€€ -²çXLÄ$Oº£XJõ©¢²Ð‘»¡ÑÔN»,ò.€wT9ëÇBCH!ûÞÝ% \æ‘m.¨q­|#}ô-U¹ËP¼C!$ƒ²D†aþ„É$ˆ¶TÂÑÄñ ã¿GŠÒ3ÿûª5üÏ^XÔË]?âHö~zVïE›§ÖòÛóú¯TÿõÖ@mr)ÐÊ$UÛ6•Ïê mOyšïk“{ë¾· mÒë÷öMKÉzY“ ÌW™›Ðaܪ[Ý“Z¨»0fX 9¶ Ê­:«»hHãÞ6øtC}ðä„¡1²¬»'=?•!Kr—2Ñ»µßKE‡q¹«pàÉ«* 4RhPGjñ·qªÃÍ¡µéú28Fkw-ò¹¥†ÛÙÙÌpË¢b Ùc(ÓT˜®  -†áE»put½³týË:¢­s²ÍúëíîÄókó}‹#%äÉ?C*ly{Ü@©Íw*Ä“«A*8ÃÀ -ÜD•j`+nSWØçÅÊ~m¨J‚é{Û`9ƒîó­³Pl0YOZACw’¼¹+~Ès\у‡ñd^Y%>§rì4„«.¤È-0iUj×nKÆ>ù·7ˆGιTVá꘢陕µ«,¦Â½U¹nï(,By°M”ʘԽà2+]#Ê4É{ŒšžÝX6'Ÿ=5å þ ©0BÆöši»i•Sû›£ -'º$¾åw¯À™j£ /1è>@ÀXÓ3K’×ûì¯÷^YO—À„ö©ƒ¼™eËÛÚ÷ŸNŽþ…ÀÃ3G^þÿ÷÷;z/— ¹]iÜm;šRÜÔ’C]çðµ?è¬mÎb­„4¤‰ªl[WhwÖã<Û¦¸ê§Y?eÑ;ºBÔÑ"/ã.bz—q….€¦WžòµÆky¦*b$ÍQŸq“1:ZcŠ8ñIÃ¥%^ڗϼôúæwÅ‘º|î][ôaÆôˆr². „¹ Œk#è‰ò;”­ÒÖj[¸,]8p¸¥ äqiÜ8îê1ÅLpži)9lHdÑtãX^´,³Ùoû˜3J­›Ú.á)_k¼WjßgúÏ7ÙÛV À?ÖQÄõĈ…-«pÛªý²µA†+mm±¾[Ø:€Ûú@×øÐxE²´#,¶†¡ÁK/K#ëFXÚ@i—¾UÕÁŸB;ñ‘‰ÍÍŸŸ8†i;l–xµLäEV6h­(ÃH”w¿ÉÙ¹úaSÜ c‡N1²k‹[e\pá˶†I0­¸°,ß2ìA´äÇWi² 4AÆ þ`šürðoΛƒ?ßô#xu¾“ßûfÞO"ÿñ¶l½úm7º«•ÕÚç.cÀ¡ƒzFIc©ääÁ˜æ ¡kgÎ\#·å€ù—b‰Œ+EfcfÌ´.ñ빆ޡ”ßäjAú¸cÆ\ÉZv+ÈO½z¤Åæ¢ -ÔµºT%àK³¸0³5_{eÊ™a#Þ²ÜHY8AejÖüÃT…I äF]¹ÐXœ¤†}#[ )a¡4/.ÉÌÓ˜0•• H¡¬oç£ÉBTPæ·|„E -×ÜXí&U³ÅÝÈÂéJ] ì˜ÑÖûÞî£O“¯h²hƒ¨¼‡ìyÛ—K#½¨Áß‘CaÌAáEk÷ydë,¨VôíTÐ7º% ‰³ªgT…ßVöŒö4–•jw3Añ›Všö^ëMNh%“À5š%M0»i‚¬á[IE.5û. V·†nVÄzÆoö×ÚÖÙØfnÜ%”Vp -ìZ.Ë*Rò›nAI§\o`˜­¤,»«Xâ¤{*•I¿ :gÓ¿h[(Öx>zlöœ&È -iXÍ‘|›®U“¯úIÌ)—Tô}Ñç¡ÅÝ\PuS“ ©ÄÀ¥Rçd¥~ž>F - «€¨¥ææ:@–t(#û)Yß%†cü:ùÌ5‘3]Íð³^ ð·12ôl·ˆBÉ¥û￳C?¶ä7êl¹@ÃýG·¨—ŽóŸgI/¢_ºÖS úEpž;žÖÿù¬ÃËk~¯ò¿=«ö"éççvùë—úãÀc¥' ”„°¸ú#È,‹?›ò0‹³³´.ݲÍ{y³: ËjÑÔ”4ÚÊ^æÆêYç8˜ƒ”¹ëšµª® Ëm"§{ˆ…—rC5j0±éQ5YÎ4›-¯ÄéL?Nfւ¼ϑ&Ïz[Ü"y¬««J¤fG |uøˆÚ4ue΋lè@[ˆkyêd—2‰kmñÂT4ÅÊ<)g«²êÄ%6C}†ªt€jÞ¥s+…fËê7†§´*Uõ>¼$íâ§ÍEò+(M[^SPÎF”ŽŽ3RÓ± - ?Ý7êø‘ÎGd$©kðQ(þo¦ŒwO²zÃPÑ“ì(ö º’bÏ5ÛUW6=éÍÄêiñ—æØ“¸m²¤;ÑXRmƒÈ§Ÿd&Þ½¬€X'´;É53c|h²©¡ÍÈ,Úß‘ÚS*"žÚømœpUR&;é Xê1Võƒßǃ9Äžò‘ÆË-‹çذB¨ÕkߊçÛ‹õK’&ß¶‚ü¾{Eί^ýúlEѵëÏ‹*uÐÁ c&ÏÅGäI1ïí~ï¦MSÅPYX(Ó|M×J¼-ŽAR®ìà}íã ·.o:6~¹2SY~¾9ß¹ãæ|@çWR¥âØS¿'%`ª…±a£(g¤Àl/@REÒ$¹4>7•m&„K ´{—î@ŠRÌ6^ˉoÙ\Ü:ïáIA| §¼g0¨Ü;U6²/-JÕ´_ˆ*‡ù.ü\ÆÅQ(ÛÖ= eózÄW½V$Ÿ¤…ÕäŸU@}Ϩþ ·ÿ¹ú X>lù‹þÐÆ|•¯+¾Ó@4ÍRBþæë›þÿåíõÒw=™Ÿñí<­”sÇ?¥m:úé -?{D ³Ó«¶A:«"ÛLŸ+•êÓ[ -O"ÚÐlXÚBxÀåx)‘1R£³è™L–È‚~A¦é%2‘yÄIäÃïMÔØú+i©XÊ„¦±Î+Çš^Äl„€Š–ñ§Þ™ö©þc’Y4»V-´[9¡aq>Æîx´–ê§µÆo2!¦¸¾Ö6j.iÜ*‹„Àêõ©a4lOu&IÌLï¬`A -#ùfuš_©ˆËfQ©GØÙüÿGjv+QˆßÒË]ò!~7¡¥c勳ޯ¦«jÉJžB~–HÑÕLz¾.ÒtbyËN·y=¦®ë•×O]×UÔsrtícQE+Cz±OÑŠLëJÖîGÔ2ÙŽ~\t”J«"·u‰¥^‡ªv*«²8IÝ“‰ìãœ0ÖÓ-0G´u: &Qô˜©=ÝéÙ‰Æõœ›”3Óµ1o$Ï]¦ÎBöhi)’WL€0[E¹:—zwÓWÒ'eÃPÁTQÚNÊÕ§D«-й’r©¦$«)£“GMùµÙVš´ÅòlÖ)‘˨RÆÌa -ï‹’Á/eHó¿!ÅÝϙ⠒IeNó8"2Ú?HBÛûË×R$OïÛb¦iUNØE’}JÒ®*{쥵×Eßø¦û¶ËF´Ž†ïC–’UÁTKY÷Ï‘˜ZcÆf/­;=«JzÕDŠÚ!tß…(Ô»«ÚzN,>³°5A(¡¶rXÐÙ*ÊÄ´wÚ…Hµììñ½kW)ß®¦¸È¶«ª¯‘ êK›±Óul‘5šôRXÚ8ô¡ßÐÄX!Õ_Àp£°ù ¼¡j2.ë“aŽ.˜Ê¶²s7£è¾t¯_—š:-ª™òŒm¾cö|Ú¹ T&ñ=Ùñ@ítî. gˆF&¢?@is¡70ivMãyÍ¥<ï¥d‰÷‚ñB\R=“Õ¼£/˾F7c&ˆ ÕÚ@Î,i”>avoˆé©öˆÇüÁOÃë›=ïFPû`XçH³7ÉìîéÅþd&<§'¥r¯‹fö-OÕ¥dωdŽz*!Ç9 ^–ŸçÓ¼Ù©.\~Êî°î©Iª¬z -ÁnþÔòKý¡“Nø’¨ú† -jIÉ£=ê`è‰Î]ïrºêìxnÃBžg”XX6ß©[Uô†¢ïKIÅ„l -)ž´*Sx³\º[åBÓ˜Ú©ã@õ|˨ÿ6_9™31(麦œÅñ5= ZXõà/9Àj:N±çP4âçÆv4¦)x3Z†–Aáe1D³«¸JÕó•1®ÃðØh>z¹)5äQNSõ¸û ŠÄA'LF ÏN…÷œËÈsiQ‰‰¼ª¨DáM%Õv1ª8>H¯„šðã‚ðvñGøJƒÒuèG®Ê±hÒ`QÏ ¥nUâe¸g¤ôEÏ—EÄþœ¥œÐ5JÜ¿3ÐJÅÎH±Â -m‡NŠÛÉKX±˜—ÌÙBM‘É·ÎþöZ8_?¯l{LR3Lø?P¶?ÿ™—ý¤Ëüõ§O ×ÙäT»MÌ2㮈²üÏÀéÑR™UjO¥¥Ê›Æ»Iº¡Í^ЦŽàûÍù%áæ™lÅãMonDÎ¥M½~AŸÑ] ûØrå¼HŽÖR5M w¼¿à2iQgð(ÅòPˆvÒ„`ÙNë0]Ó£œºiin0!”X×%È×%—L)ñÚ÷Ûq&†4¢¦)ˆaÊ!øýêbqÜ“"ÄãåÄ߯í—sM·Óý$Õ˜iùäÌÃãLÒru«ÏëÇ‹àå'ýøþÃ).X³¼å ÔŽ#Ÿ&ÔºÃèÿaBýý÷Gÿ6ùó×þÀ¯ûþÈÆ}Óü×YüƒYÿþÚ‡þîœa¿vèÏŸäs‹Ñ,èµù/tæÔZØcËfº”!¾MÍU6ÇÝ) -H ¡ÿô/"Í™1Û¯Ú¨yAªäÁC$¾j^P6¿Õú& ò÷?™¯–]KŽ"¸¿_q—f1‡z?¶H|Ò•Ø ±0¶ š1òˆÿYY=^a4·£OuVU>"#}®Q™Û‘>? x\ŸC—HºÀ6Ð8Æ•¸úoªüUi©WèR[•««ÞÕ¾‹×"ˆ]†ûH‹Vʼny´éôâO”5äM¯ÛÓ+m¨ýÈ3_3Ý>eŒ2Žqà‹Ê³.^œÌ¦è˜UûíQØüHœ*Ä‹N|‹@÷¹E€Ë^%c(_%'=‹`œMXrî©‚‹NèMRÀyBœ€P<ø® -.A(œetô $^,øH¡ð• -…ÛP(Âþ<ös=ÞסâYŽ:Qr}WW,ÒµßB€(é˜G$\µx긾9y5OÍúFQH×=W?cþúÜÏÀ•Ž¿8rçBQ*à²CI¢ÔSæ€ 94/’Gð• -€ÛPÂþtû½„ÓýTÄr‚AE[?(wƒv©B!(g„À †'*Òu‚Š_©”ë  ·ï‚[ƒ!|ËEÑ î(ïŠAtÅÀ;bàô®CG'à¢(¾R1ðF œF0Ý|iÁ@ìçÑ[`h¡)†C -@ˆ! ó€+7´îZHð• -€k! ´ÐpûîøT‚(ÀQEk5Ð!@¢—í¹ ’êÂûYP5éÕ(˯7HGdæy–Ó…‚Bš° {¹q5M~‡} ¶Ì>ÁŸGAþ½-€_s8ü´^)ó¹¡,• Û†K©gc ?œé è‘5²eG.ðMŽwürœŸMÄ€ß|û“ýûÃÇÛï?ò_|ß?~|[¯®Á7½ûcÞå• -X¼îjÄezçãËÛwï¿ûøœµ0L|üíí»¿û‹|^|¯moñO¼øîgüohÕ_:–†¿øKªSïzöWŸmü ^üñãíËždªuT¦Ay5ÐI}ÕF áx¾²j,pEš¬ÊZ -Po lÝM¶ØÒç«áÌEúÃ*8qí­qí.ñcµYeæ±ɬw(²\8ìQ(f¨sÙð[OZ¾e -¦ÅL)[ÌY÷ "*®Ù] ¬tÄü'¦„=gæ`ÞCy³˜ƒ ->¥¥õ–>5°Ë6³H"§¬nV2<‰`ÖÆêýüf©‹‹úgÕRh=ŒÚÎ8™oi‹zœ¦™•âç´ ?ꆪ®B0Ä*¶‹¯­µ3gy¥àWL•pØãY¾Tšˆ`V, Òü74Ò~Ö²¿E¸i­»ëÜCËç¬üu&Z*“hÉIy±}ïîH -F“ÁÚ6ÓÊ -åÊB‹>À¯lîCy‘´K)¼hJECY÷µÞH“oíqB`¹G7·î+§ó³=#ó³ÎX)ëLv¨+TžùÎÜÁ"™aI•!¯Ë®Jûnñ±ÿód’QBEPLpa6.*š@ÍÛ«àY‰iÓAR¹­~Ÿó7«æÂ¶î£9 ÈweÐ&¶Yª CTñKâÄJú¦CúÏ™} b;§F.\HÖ\¸xÅVÅVØ·H¾í‚’/C/ÉÒM*=¿3ÍÑÕ fqÀ-¢ÂÙ4Ýy†qXTŒñé´ñP•z5{–Vj ß9K‚4îŒZC!1Ù÷’F[<¸3Ë»T¾^#«zør©7Žæœ9WÖ"%Þ—'BÑh­0Ǫ¤¼6$zåó— 6ÖÝÈ~¾y~ÅÑ%’»2)Ô]ŠWÖyÇìŠyt/Wº»dZ«%!—šR±ˆß–c‚¿f)ø‘öAž"ûñëRŠêr‹8«¬œ¶ÖUá]g"(J†/’ÔGz ’t¢ -¡TÝ "`¸¶‘2ŠØ`HÁ¥”åÜ®TYCªr¨:´¶)&yhi•[«k§"¿jª™_ Ô¸¶ì-îó*µFáŸêÖ§¯­Þ2Ün–ö-[/óƒÊA^âyý¨LÝõ±Ò»ƒöTçH?½¥ÀÖí6Êz§A|¼½G%¶­ß¬åHÎ<ü¿×r_…kÿFºýÇJmX‚jN22}(5Èaxÿç!ïJ‘‡·&Ú%&òLV0 P Jî|¾p‘Ǩÿ­SõMûli ~—‡ÙDsJêå‡b¿MNAuH`83m"MZ[`/“âXôÛ%8–úôd?ÛG)d—²Ó6ñéc7¨^¦Ã•`—´Ú’ìt[K}ö©ÆH%Æs:7D¢¢çJœ@ri—ÌeÊs4”Øž·N–š‹’œ…³lóƒ­côÚâRNqÀübKšP»¶jœ×(ò8ŠáUº²Iv 4]œ]ª`ØÁ4¯¡.‡)Ү͉f–ïr×Ú%ùÆ–jhéWT£OZð³i)+˜›ãfr…  -Ôóöµ’€»ŸáPx!n)±‘Þ‰nTŸðx -+­Ê_—bë÷ü‰bky;¤ê|ç͉˜œð k%˃Ðâ#ùSÍH6ù&†Â²9ŠÏÀ„²¨©ŸŠj¥)iŸÌ«¸'ÆÀ“€º¢ð7ä’ŠÑ £ÎÔÂBIØ™YÝ#e宆Þåkj*Êj&£J"´u*s]×Rõwjg¯# ]Qd ?Wk]üÜÕÔXZ꥛8°Ê‡0ØîÔ<ˆu:o{Àáînv㟊rg2Nì©óßÜWÍ’· ¼ë)òrñàã¨lG>|‰]¥¼Ý ÎÌ®*‡U•|Èe—ý‘C‚ Ðhü’GRÝTæ³Ú™<'ËwçØ…k‰# -¯'6n<àñE«Ð=­#²*Éiñ¶Œ ¨’î ¸’-aâñ$ý, €Æ0wq>Ð}†K{¥®²™ÖÝHt觨ânhƒæ9$¨JåJTŒCG²þ‘– ÇG _€h;riÐzÐh=Õ­Ÿó€`yò?ý´ú1ë˜Ì…‚ìb:N8xIIÈÁGelÑ?ËĈ§.°ÊÄ‚?>œÁàayTŽŸœÿ|¿µ>|ég™‡ŸË„±ö”ÈøáŠèïÎúÎÈ×ûkèðo²º\[TŽôBmk#Qr•Q"q…ð~}Ê>•ÉÞ-õ$ZC©ë,±c±¶»Iòj£]¨yWõƒ¿+Åc©YÛTÚ:µŽPɧ]ýSm®š)é`++jâ‹,!í®•ÅŠŒØ³(‚,×u„ؼ€f,«(¸zI–¢jvNAÀÅkºÊµÒ¬ÉþÞöc0ÿv%§-*ÇíÔJ–·.—:BB3!L2ýÑ_z¸”¿¸‰€Ûñ–`g+ÀÂí]rÏÑŒ„Òò1j$ÙVAlc6ñÐ’…s'$KÄ^¹240÷ ïkÿ —ÕÏу…;hç¹4Íõ¡ëÔ€µ™Y“®jÇ¿nˆ—P‰cƒÈŸ¢Ã8J!˜`#xbÐAÆä”w6[]xWp6ùÜYZ>@Ðìy¨€È)½!zȶóqó˜óî8Þýž[-#&·}¯c_×Exoœðë§Î¼¹^?ë¨ µÆQ=c¬>×kãgî¬y>À°»0b°ñ6Ÿ'aZñ¬7dUp§Gwåþ¼Å2Ë«¦tn*ãð_,€…u^ðuà¤Ou¦bÔƒðcÛñXØ"Œ1B´VáF‰vRûÜ9¤^{ ¾(GGOˆº`ól’áíÞÅ÷9Åf´´é°—K‰Ïuòïðêã³bòÒ ].ä^]ÞÕdFùÚO$½Xöz`WÓRü¼õ9å±AQrìSüë…”ˆå›ZPdïÕÍ꺬)DÔ[­™îÏs¦ó½«ÂqHïEyê–­BWt¶É`w‚¼ì`”2rÛÅ.¦ºy ’ˆõ(O.Hv¾ÚÅÏŽõ<¡Ž ²ë´ – Ú±2(Òs]%m¯²ô HkÓÅ9Ôvð -ÈéL‡á·v3ƒ“Þ@!ýšïà+JcQ°#TVAíHþ†` -_SÚd°Ê5Qòܸò!ƒ¯5÷bËš_żê™ÚF×IxוF ´jZ—•LvǙힻå]cCÞ@nˆßj¥p³ôZpèòË¡TK®µO^¢;‹)×KÈ®Hï1AòÌz õÖ! ΈmuBG‡dXéðŒ8Ùu…#-ÎPÕ=2ŠuÅ+ÄuûŒ¹%Sƒ»ÒèÄ_ß(‚ýg‹¿¯ïEÝw['ÿó!­úŠ0«­ôS½µZa-§Z«nOØv;0ÜêLËÊ“‰^Mòl66–3—ò·÷Œ®‡J8§ùÕjëÞqmWlë4Ø|ÌðBE'²ªïƒEŒîƒlä6Ÿ³@#ÈávΚã˜v#Ù}c\êþ÷½÷•3îCá©Û Föe.š˜Ûůƒ‹ -VcªíV{G±O­×ƒRp"KhÛ½õ¬™(üCSµBeÌAÔ … -Ð •¼%ˆCzjk½¶†•3O•!ú ÓÐʱ¯Õô¿;Ç^ï·þ’+~{Ò·¦Ü^(aѯ÷Ç{=S.¸°’éJa½-Íô#ÿvô»˜bRØ3‰‘ùKoY&fÛÅ -m¬ Ô´[<êPÞDHkgñÙΊ1ú=¦X¿¾¡ú6~a£=¾!>P9-Q¹µíe•£âfÁ_ìÝÊÊÞN]›-}Rg"Ô*^w{ÜUÔrÕæn[“m(ñÕ N6z­ØU»ÁÁzÚ²LT±ÕèÎ1Wõšc®b¥n”â '®ëºä`Õ¹öÛõ±²wЉÞh]'÷uz¨³l7Éž-ß4Þ}ù†ùÂ9¢>IËr<)Á~—ʤ/9†ßè…Q¢ ´‰ø`óYü:´°;TýqaŽéJãîtòB̹¤…qZµc‹îƒKcÌ«"…úžœ9õ©P ã†ÚkQ9ôÉUrÐX™Më@Ry]…l³.Äcð -Dë êÚð1u|¶&½ƒS)äFõ{Ü]¶ ÍÍ™vyCÉfõ×ëY\û2 šýìð"Où™ú îßÉ‹3ÍãÆ³U­’ÝT±ûáx&ðѲJ‹ƒºd$ߤóÄN¦éÜ—•´Y_åm¥¨ËÙLáãÝδnã êl22Û‚ºù¤-ß±íçŒrò¶™‹îD>¨Z*s²`]oÕŽÍë–Ùm­kû¶Óê’y‡ÜÇQʼ–Ÿ$ʸ¢ŽodîʤnqYnM®ªì­ B=]é[Ñ,ã*9Ï«8ä¢E_¹•d²VóÇX[%šyå‰Û”iжz¹#Ðii˜S†`‘ûªîż;·Qæ¥Øô`Ž(³}d¿DÔí9×Þ šhŒçJž=M»µUS/]XK'º X7ù|…gÍ"” ÅPe(CúUƒÇ«†áé…Ï3J{ Î@cZH°ŽPU…4\ð6ý9ÉçKGë,DÊ}‹knâÒ}OÂ$¢ñUš¡ïË|Ü£RÎ3(ÈjcK£èH‰ÂÕnPüZGhMsƒGm)šy5~”;„mò˜Rys)á­ã -µ¼B!FF 6ð/ŽBÅ7ø À´†ú ˜Qš´p=¦œ üòbfñœ¦uÆ…Óx -V€É…üÝ×mÎT.ƒöYT`!ðñ¶ÌÔ ”ÏÆdSU ( Ž\Y ¸ÐsÅÎW±½Ýâ%ytÝ„E BY€ ¡æb¡/5^&!ïìž[X}îos>æ†æª<µÓ(-,8ù—êf«þ—êjÇWy¯¢70}$@¿õLò‚ûöŸU…lwFY >¯ë5<1йdˆàhe×4B;‚Š/+Ðû0~ÒãÎŽ€ïÈÿÁ{wÅð 8Æ,”Ài¦e,cdTÅ¦ÆœëÆ¥nmܯ6ÁÉÐŽ,wxñØÏpiêy•‘÷àÂj  ÜçœFv22b‡,×\,º#,ü!Ì´Ä› 0È8ô[äw.œ!ñ­Ä ¶£-6]ž`É(#—Ñ K±–½pŸ€.6¿g´ { -A§ÀËRFÍþ¾þbL«"³ûÈçßpHE>Ò!V&ð - ¶¤à³(+˜Àà_ýÚå‰öÙ¸ B #d´Ziˆ¥°Àz ý ’cK3ViGN8RôÛc)›Šß(ôóAF>Þs+Ú=Ýp…Sž‹OÀìÃ×Ë -åø³®õ7aæüÁŸ“í…¹@{å|k°yp]äX3›lðiòÙ]Úýs46M¾}Ù:¥ëZ›½t÷Ëdõ¿ÓÒúåðW£9ÃÞ6Ϧ|ã½€œèësÆ ËÒ>®ñ•ÀÉwƒB+ÊÀÞà¾q]Íø *Ó™}qdþ‰¡,aÂâVfÀIvΣ -½þ¡¯_P5"KZ©Ò%ÛÙÁµŸüò?G-qì ßtÈDúÂŒo©ò˜Iž`Ìß•( ¢‰Ÿ°2eƒî -S#Ÿzwþ–­ÃÓdzä :‹6Zª«¯'È{f…<Õ)CÌØ¦: ›Çdß´¸z4 ŒÄ^0`~Ì*õÕVÇo®þ='4û":êÈ©va`´Íf> ‹èƒ~¢¶#Ê8 -Êk¼Hdt7²Eܧ\p±v€%™ævkI ãcEÜN ]“ BŒX|¶#®ÿÔ QRuÐÀ¸®Û„NFˈ'ÐmŒç©¢TÚBk°spŒGS^øSó8`zÌø€ë¶N <=U‚ÍPM[u ÔlSº ¯ôŸßÛ‚ñ±‹S›žE¢2ÉŽœiSgÐÉ —ž×ÏŒj‹ëç&Æ ýšc3t6|“‰ÌLïÅ×yd7¨h ´ö\º Oäqä-?Þ'}ßø2ÏÊ@Ûx?Íi„93MS­ñÇ5^ÛäC‘BJÔÓê Óé™íËxß. -)`×X«‘±Í Ä8K=,^ f|€—‰ØöNL¦ -Çɽ`ǰ^s-ŸI8ƒ5‘q®!´@ïw”'äÂÉ¡2±Ÿþ¼§p €C9Î,Äí½Æ×ÀÍ› CÏ3í6ÚXŒ×ÃÇHAG4ÍæxÛ˜ä©ÀshÀ _ƒºeîL€œ¾;~ÙQ‹IÉJEËÀPã¾u’=7³“ã\çœÁ}+H”š’F1ûÈ·!`­ZËv# œ¬‰Vãú¶:ÀÜbCsL4p‚¬³Û%A6=°–%w‘oã,V¨ÈÄØQD¹Ù%h]/w°Lvï“4î y´¾`—_ЭbÏ£öº ƒr…|•ÁèUº2ìõ89ó eÒmÑÂɉ‰ñ@œÙPÝa >ôôrÚ¾ŠqQ×^T+‚úK ÕÏîU¬TA?µO -ŽcuFŠ[½\^¶"Œö¬Â4ÙX¹ûÂ_T¹ÙJ±ðÐHŸŒjE‚CB ã#;ã2Gõ¤y6Ecãë´í£¿8¯Í+‘g^ô;¢‚Ù;,BÝA€­½š«wñ"h$ô”ÆÔu‘õï!|Æ{´~'ÛÆÑâö’U“hã Ü™h2Îù@a4em*›v±õúޤØãÜ2º[,寏ø€u;Õ95É)U»æó›¹ £â­$שÛhx¯[ˆìDA–gtlì1ÎÉ@%eÐÖ³Um8!’4~ße:‡Ý¥+!Ç‹£ÓCsš‡’ã÷7¤ÐÑ îüG4–ˆb«à³Àz wÿ°@côº=Œó•ª$\­T»é¨ŽôœhÔ_ìTZÇÕF×P´Ú–¦½‡>—‰+ÌdçÐ-íUoȰ6ß7ÎéUÏÚðwä¾ðiÞU€š°6S/¶Q°ß^¦EÏâ¥o»eòø`gtÏ7ìî 4– pY׉ÿjðvÆ=6ޏœÙ<Öd/šæBþqh€ÙꡇL»hóæLörwÑ¥”7Oh&æêGý‘3lCž*ø}Ñ1ºÀ²â:x+¬.É‹®•äµ1Õ¸AòîQúáNliN:n£ã½rµÑ©Žü¦`p _ß1«¿„´PcpI*z|™¸Kމ’fDV³Èl³ß;“nri,EÁ}êDr’v¹!ó+˜>èÕ4ƒ=i¹}f{ €Æ€gJ1Ñäâ/¸è<ëá_-ŠÏ2OÜŠ¿¨’SÈáØ•o)8¢¢âß^óÞZІ ÞØ}€»j–ÛäòGÎÀÍ}(䇞ÓkÀ; Žä½õ¾ ¥Å?¿0,ã6KhÁ¢!Ú`Á˜SÈ{¡Îr—4ÇÛ¢Yt4DöÉq³ó6“‹ZgµKd˜}Œ}¤³>¸0>aTo ä hǤõÌ0*ž8­|ψè‹àÿš—³s¤JZw͇wvNü’‹®š&0@ÉøœO‡öÕ5©cÈL¹•”©;•¼ØX³ŽîóÅp.ZXEgñhV¤ MJ“8ê\Ì”ª-¨ú<è¯vfìÜR)%<ÀLú¤™«éIm> ÈãžÌè$éûRwèûÅ"wè]X†|#Í¥/ÕðÏæ*БmŒ*cµåQºWßÍ:iî#”´•N ·ƒ)˜ªÜT JÎè 2¼œ¼:gà¤××â߇'\\Ï}|¤MþÄaò,†öP÷òIúpÏAÏÜ%Y '°ã.2¿{'8HëÏL´ÁþŒÕif¡‹' O -ù1òùØK»ÜZ(œ'ô×=£ná@% Ú;†²'š²æ|Oœ'+è£ÜòmìÒ/?'ÝO`Téë,ê×âXûCÓÞÞÅ•é98½‚¦XȘÅsJßϯGã"”DGEebpÛü ·ç6ÿq]-;²åDp__QËË¢À¯LÛ[$>©%–H43 ¨ï áÿdD¤Ï©;j©Úql§óýÐàéo6Å9ÌŘƒ4~Â¥î×÷6xÜ/yÛÅ%É+yy´kyŽ`=åIâŒÕ6ƒrõuñ‚Ê‹œ›Ôéd€ÍžÏ,(~šàNÖSÞžÒ¼;쀲Q€e  aõÎÆïc±é„0˜ŸØÜ_¬„Æ ÖW«“k©x ÞPÜxlWIÖè›Ýpkx^‚™tå­Ü„+Ý îv­]§ü7oÐZ¢´Ô„ꉥQ©“­ö¶®jÜ…00b½©: W\—d‹JqÆBÆ*‡­‡ôSç EH[éwFbUîlœÔè¥y¥1Ûg.¤×zzÏÎÐGo”Í0Xh²BþTkÞº£sJ£MFY9ÿDþ5ÇLæïlÅ•wT[µœ -Y2%¡m¦˜ªP ">ÉW*M]†B¨²V) «&#‚wŒC2"{Ž=•¼Æ¡êèavÆFìV&4¤6~sª…ëL*E÷Bí:š{­Ct‚¢%V–KaŸ¹é¯?. ca³¿Ù0ªùÃ+º§Î‰§DC¼hÍ.êU8½Á’v*k䦚Pýë²LøçK¢«)úÔ5ÂÈ+´ZÐ8kØVLjL;ªÿSäèQm&M…öÚbwÚеã:§²ÜôlW -àš…ˆG/ÚR/PEnÝk28L¹§f ÍBõ.}%EçÁÑ(Š3Ì0ô½0¬<¨îóìiMês[† -ϱ¼Œ0+ÖL`I|‘ÝQÏ9{ßcý‘ÓÈ…çÃYñfvÓB,© @ʆz ÒÊ|û€Áìþ1>Õzœµs¢¹PÕß«®°È´s,‹œÎ%x;7Ϋ"JyiÆAý1±Ç23Òñ¶3uR»›Ú@½\i×ÍŒ½^ª@æ¾§ç%\Ô¨ˆµH}e%Hõ²Üž-¥M‚‹Oí’öR‘ܲíΰîù°Üf³hÝpÑ03è‡òœ)K|„¸Î|–Bhý °¡x©Çr&G>jÄIñ·)<®$˜þk|޾Aíz 3’3«*"&‰tj ##^IÂó -©°ê|m“<¦gnW0 -*á 9ÀÕ3 èµ*ÿõ…ÔM>&o]ùÇ­&¤¼ï„ŒèF þK%‘~XZ¤È#$ˆyNç]{ƒ@ÙÎH½¦-¬ÆÔ‹Â SÁHÉFiÉÇ× U8™­(Û`ä² -5´Y¶N¨¤§£KIöFWvÕ̓Vm;SïJ ´ìëmoì$òRŸ£§u°Ìd ¹}“!@aÛ ß²ÉÖÜw½MrRhÈ&C7‚T`¡n“åBGÏìŸ ЮÂhœÚ6 Xˆ ò( @{ÔqŠ˜È [›œÂ¦µxXëÞ*ÌŽ‘•’¯Îyxà»rô êŒk—ÚpÏäð­CÔ<€®ú¶·ÀnÓÚÉ*½MÂzj§^»A9•”p(ÅèÖPqE=Í×r¥€kæ«ü4lX¿ÙÏ"(§º -d§¯äž\xYN…ì£%pÙ…k¼J3]£kk0ÂÑ•^±uy³â.½’Dzð“`=™°z}‹ÖÞ­tíÞÓÙxLqlt¼~‚Ÿw,%6¹¨í;ƒ '¹Á‘$áîÏëÖ¨oÇ8ùIn>«Rj»-d ¢ËzJŹçô°¡áôËqxt³[ÙîóR¶,™µaÉ¡NE¡¯µýT•]N‡UÎ×­,-šÈUÝÑÝȆfÃÆv_*ÍÎ €BúΦ4'½Ô¬û´3"Ä_gqõ5ç{±vn`5™å´"“¯j‹^â£FXƒ ûй -e:ÉU -¡¾FëóªÚ¤Ê‚Œê¦|Ú©ÊLøEØê}”Y¤ék­:x!Q§¶0î:ãÔ®îŠZÆÄ <Óv6uZ¿éȺ%æf^¨ï‰kˤjšæI,4E{Ï2êAŽÃ}µ¤õN“j^Æzkk®|š÷Â7¿‡ç¾ëAβ[6ÄÁ¾ƒ«²º÷Œ§ZQ8M½(U‡ˆ'Åyç‰ÊA+ öTßü&Ç›cNdž7ëb|¡‡øÉ"•Ã*’CÚ õbYÙ‘É¡Rü Ë9˜¹±„ºÁ+®„ZóœëòZ>oeŒÇzerå±ÍÌÐg*sÅU²Ö79wSbTÇqÎM[4síñÖàÓ -ìv½§=£:¶Is4Ì^oúnµTU˨ípþ¶|>~a‚ EÎ(·þü®ÒÝ¢§Z±.QÐÔC#‹–¥Òí<2Ô“ÊnÙ—Sc…‰I…;“ÃÚ—BÍçˆaButƒ G«ÔâÙñ¬Ù¡ ´¸áOžo|_„jð¤çðDX˜ûxº²5SÈÚ‹œS˜^° "…m¹Äcׇ$8ªçìÏT k$ƒÝ²*Γڽ ?×ÍxZWH5 EPèÁ;Œ*N^!àn‘åÅ~I ¹^Ò‰õv”`´žJJê»›—¤qÑ;¦È§d¥dBæKe“ùŒ0‰%gH‘Ÿ¤>äB©*ùÖ~÷ùøùñ×øûóÇãOõï!úóãçÇŠšŒ”øËeÝpìpþóF$ŽÈŽßßžøøÏ½“ÅÑ>¾ý;?ÔóáSF¼¨ÿŇo¿âi¥ççסäùá_ú`Qgõáë÷¤Eé‡ÒÈÏ?áÃ_>¿=ʳz)O‡ù¸úßO¿=}üRB¶úìSO„eLpo…Õ?¿?°÷]Ã#Þú:ËÆ&†ù¥7Ø"#ÂOæÉýs6‚¨}áEç.*W@cò3yØd†CEª,=ʘQMë•áQs*çRÜA¦c&¨­Á;“ùOVZ[Û_o°µw86sæŒªÖ €<ž:ÿ~¿Ð×|v~oÒ^¸ÎžïK¶|3p¹—¿°VmäŸê[ú_‚8VHUóªM„Â:óT˜0â/T€‡i|aÑ%2c¶°m‘‘ àÁLÐT8„јÀ »7ȇÌ%CâM­ã—¹ç èD7‚ˆ{RTu%³LXÆ|£nzOÎØ44Ól•xâÀÉŽ¬—1Õg 5µ­c(ù­g*0mýAîššSµ[u¼Ñmì Ϋ¡&5ä(òÜ^7»È;>Ž,|#f ™#¥ëèZ=µƒäÕSkg-} -IÓyE&HrÇ:ù– —lÈ¢Éã1v - ?HÙä )øå<ÒJ:––.÷îŽ(r-ÿ{€>w¢ˆþÅ%ÆeÁ+ÞjøÆDŽÃƸìÌ¿¬xZçm´§‘>TrujÀ¢¨4iÉbmuüŸø*É•,·û:E^  Q¥»xW蕳V† øöfDPzÙÕ6ÐÕ@Ù›Ÿ/¾&Š"Áû þ%‹4& àû˜ Ðkn W»»2p0اô´(€“îeë/ ²‘×+Õt½øVªéâ`:&(|E\Î -àp" ‚z³XjnâÜq}ßOÒ,ËCp>;²WZÆ ³I{é܉Zu¾òº}´<òã ©¸¥Þtz>„Ê›í¢xröWrÂ÷š«'Ëmôš÷ =t`)ƒašBãÚ­¨ÉK!šZ^qÖW ûñbs2jó¢òa‡ì@ª~ uWBë -E0ÄâΚ#.Þï]С«3~ ³lùý.kqr²¢œ_8BR9r™Ê²Êi¾›ThãD¼Ÿ B5`4ÁÖñ0ã#à70Äyâ@Ï6z©ÏÀ>ކÓ.€ÙœPwz_„ÛærCp<¤Ãå»4KNM›àÿ?¦¶ZÛÎ ²$Ìœ­?Ym}Ó?üþã¿,üõ¨2Ëüë‡ÔŠ)nU¹ArWl’]‡/F°Õù€ZÄ© g4µD·,ê™o³y -6c»ÚÙ¶øãcH31ýè! .¸Qû@£$¿GzÍ,¸U¤ü[%2N§úé -Ò‹[YÎEAåOŽ’Ìg«Šó¯E1L”eéòÀ¨ê_Ú–c±îí­öbt•ï[áše‰·‹ >XRUX±¥’qÎs¤’Qì?qòPåc3§N]lçÚÚ¶.ÊÄÍè„Àb‘¯¶>\–øºx„Yö{¬'úÄ™ì[’–MU{~²[=Q1Ã*»3#§×‰§˜ëQ ú‰·7ðh'n„>€Ñ{!"û®BÌç–E–à4ÅðûKš‚®¯´ HË ` ÝŠËÅ²Í -¸ÙÈÖj€žùz|ëãÒï &«l¡@¹PZ»¨æÖÆ1º2 ú>Ÿxæ­+9¿ž×VÀªïí/…+ãÑv£ÁjóD)ÀN>ftã¯@쥿_¿dfè/®{cjÙš´q(¡`ýò£[^LIš7V |= ~#x=©òðÔ+|À*õÑÙ„ðíT‘\å“«’e0(Dô÷ϰKtš‘ÏmþŸØåŸZX.™üúCdRáÜÂWè<ÜÃ&fè=‹¤Ú+½SÏÔrµÁ!c£ØvSÊ>ßmg׸ÝõçÂQØÒA  04¶ŸŒïeZg¨‘jcžBîÒô$‘Õ¾ÔÐ!Öô>ιû¬I±Á©,ÛwÑèb•é%îQvp¹Ò¤²ï¾Qåú<‡†|-=Û½X‹¤ç*‘&›ù½YÀÛšr@v~]˜.]hKލYvk‰³MäÊÛ®»oÿËÊÞ“göض¿Ž9Ñ6HÅ5#’[ç*]u9o ·®Iø¥‡Bìù|ï×µ|…œ8¤ÆshJíqž‹æØbDÍ¡ÁÍ(Îê™K Óg–Â*]P¯ù‰§«÷áã®F´3Ü.§xpNZJ¶!¡Åñ;<5·7âÞé·±ES¶Ô¹‘kêÖ¶³2!V@ÊÆŽäwÎÍ|±Ï•žf]Ò¬ÀM5$ÒpS¡Ú²“ˆ¬+S±dÙ¡Ps!œ;vêwî[tSˆ -{‘÷§ÈØÂÈIÓT•çËÆ˜W=nTït¡~Áò!#q€˜Ë9Q<—”µÚ7â¶æ‰ñÙVšr¾ë L}?¨a³]±²ìÊçK¦aÍâžÅ 8V™T@0°P‘:¤»‡ÿ¾BªÝ [¡0÷)#{6^)ΤÜFï‡ôðü†Çöä´„¸bãÕ™@t-“i,NëÒÅx¨%½C^¯ÝÕN¢dV›e€º¾nhb×@§‰Ò‚rÑØüÅ•Õ( Š8ä§€B@‘½«Ÿe¨*6ž=©¾Ç90ÐBÛ"S~¹Í‚Ì„R™~î€×z®?»¬{uì m¯°j­ã°É›‰åi,T¨ 9Èç}”·Ppz8g;_å»®|l^Š]›/–ç—°»*yçHªÆÞÐ ùÜð¿gãáœXŽêl„<“j›:Á-ajÇ*Œ0¶ÄÙ_t=k3©ö@3³Æ­çFa#=VÑ Y96î‰6UÛ™/#5%®§Ü®6x¼z1ü—kÞê<`éÆ(ú©ˆE ýPŸ¡É¹qµ¥l4Ké8_¾‰#¤PáQé|g¬@Ó«% 0ëV•›ó¬‘~löXÍÃÂ|¿fTv˜×ÄJE ëcíÓ`âÓç¹Èluæ£éÍ G -ÊÉÈ„™Þ¯Ùîní–/†(Yù”pl½¯,«ñíá¬9æ({œÅ0Ùks„;6ŒOÆ.b'š Š}uÏØ­L'5þS¿]W©¤=XÌ´pŒ?¥òOpvá6#2gkÞ_K?H¼E="ìêø ^Èxomäq_Së©„ú'×RílqêìYÆ\…&[šªÈšªç o·ÇQèf–?AsÖl¬Š¿“e;¶x©,¿-‚‰íÖ›a¤Q(É®TptU{IcfÉè„Ì…¡€Uü.óõ´oe0e¢¨ƒƒ ëu¸Â -.a‹—lùÜm¬ÁéeÝÝwîõõKèÛñRñnšqù3Œß y«O¬€Ä>Ãü.Q4OKa×lFß@Q¢ˆ(z†Ù{ëÞXkpͨØa?(„CÅG¢i¯ø¶Í,Óóe©Gv£:¡ÒبgÆBæ’dL®ˆ†N½VYŸ«ôØIzä‡ÓÊvl\íg§Õß~$¤(­í…ò?ŸtB‘§ô×)Õúz]!ÛUîEö©+ÎEÂΘ]cHeö©Ä£œÌÂ)9»DEÕ²I†óæÔ£$?×*m¸,ÕÁ‘5ÎL ¼˜C˘µ‘wRÖiÄ“'ÛäÊ%Êé•HÊ©+÷¶%ûÞ1&+ü‘SÁ[Ï.‘Ç¥~œØïñ`³zM 4Ý,CL=âdVœ¡¾qtª¬YÄæ¥ ~zÌÄm³ÐäÊ&µ–û6ËsJ!UúœºÌöô4³Åÿ.}»rÌVö§¶?Fý7+©:´/½»öÕr|ß´Ê‹ëg~ iíÌEzñmhüŠ'gqß{Œ(‘S–©Í­½S>,,¾ƒ4À*e·3‘¢t«Oñ|ÿÑIýR+$ò’9X?j£­›ª¦•ûLÔ2%éåÚÕ@ùU²ª¯q6g)º7¹†òÃ);ËÍ`{4—Z"X^x*ïiaò£%u$§ÍA¹¥_÷¦È~¥ù²°æHe –K¢²Ûx¶‹‡¤ú1µ.…&ÑY»öÁÁ¥ÿ›ù*É­,7‚{ŸBKoT ™ïá B£ð¯†á¶áëwFD’ïIrÁø”݉ñ‡œ32D‡õUJå%k—¶Ž#Ä`ŠWo µm+m´Mxá&·-õ¹x*ÕJ¼ß5wÁe!Mx3D=®=¡aH¨…l³ƒKVÛ÷.,ßv˜6F)yA'‘¾5N´9:ë¢cQý¼nÀãkr¢¨Œ,ò–²xã¤Ã5Ü2\FÅ%™ÑZf0ÕÆ Èlö©ÛÇØ`›õÀAŽÍC`“÷²/s¦Ñu’vê#ăG‚,@rwk7òucégàxS¶¬è„/Q.Üè}Ýò±¦P”ŒƒQ‘òqÔëv«)çõ¤£a! hÜä|û°­„£¾ÚÖÏÑÔð)åñ²0,ã(k~ƒÑ.XæÞ'鈸vû(Þ”ûBù5dÝ.— -†PA"Ýwô„]Xa²¹{4>Ïüm¦ûŸ04o‚y{‰Å¿_þü7måüáMwÍ6¾%Ä?ôƒµþ-©üôA°6Ýx6ܬæQq'Hµ¾œ¿d˜`¸X3ã£Ò'RO—Á’&¹¤©ˆAVü:s€§÷ns ³’ü€ç†]Ÿü´¡®êBFË»1Ë¢©ª)KÒê"Œ¹Ta­(åö±Œz;hñMù脲ø롬c÷+EA?X‘;HÚš7R~H‹øÚ{¾+{™u%‡Æx¦±iAgTƒöE­Ò)éY¯ºÏMˆKî§0”—}¥Çl -‚Ô'[d·*‹aSäŠÅiøæ#òÙ"ƒk3Rá´&ö—Ø{ŠÚÕÜÙ¤XD¬—³|R¬jjSzÇ¢GK¦Q¸·ÏwÿÄÇ ?ÉT¡Ý»¾ù«èk ÈF‹5 dΉ³äM,Ð!za\a–Eïà™} š…¯ì^iJ@%ØÛØúPeÐX2ÙŽ±ú95vÁÀ˜Y‚uˆ8Ç}àÛKôhëÞ8¢ªh¦¾Åƒ/r¨Qôq4†”Béµ­0:GYê@°£—OÁPˆW!†©ýGâ_=J¬œ“UyuîõMj=ê­÷#Oóº^nÒ6—ï¨âhÙÑòµÉvYÀ¡Ù¶ŽƒjÛn¶M„½uJŽÐ…ÛEñ˜¼rÈ­!äöxhÀXÕ"H¤÷ åp/Ø+Âî’ßѪú„ëÓª~û¯­êgý®ª~}²Zî3·–Öî(k -Ê9³ïL%k¿@eØÈâã¹ «æn,­‹K¨’gN¹®ºÔ ¥v•à1Žer *¯Í—ˆ±r}ëuìS¸«ÇJVJ§>ÂâUš=V/QjQ $ë˵±¬è|p$°¦¼hX¥òœõƒ¸·¦û×jív²öÛµÍ6••Õ‚†R½rFN UI|!5Ôƒ‡ñkœƒœ8î›_r“cc6•ŽYëÎÍ@ªåö±‰™ÇÁ[yí/ðY21ÇJƒ:‘ª4‹Ž;JCw[ejæÍM=½äÕ ÈÎÞ¿sßO÷ýº1ëO"<žLU«.D¶<O·TELÈñ8K†5 SkÛÀE:f.ð&%¡g…W׆˜K¨Ä%+?Ü}†ƒË³ˆ/XÝÎ/¨²Áz@ Áñ®P N"Y¼õqì~ûÓsœ€†}_X=—6ⱪqObx7̼" -¨{¸pñÍ£ŸšÅˆÑåÜÚØ÷k•U,äØ dܰjÄéÐL7n¥õXØCbK]V$·pä¿!ó‡·9e¶ûÂÝí•Íõ„Yªܳil„ÙаsñNÚHQÀijÆuˆ¸Ô—•{¸4ïqð*Žó‚ŠŒÓ *HÜ‹‚—DªŠXLÍ RI½rþ€Èfìì‘Ô«•]Å4˾`]o8,kí÷·5$ÚF›{¥Óã‚Ð6î‘ôƶO¼OÃ…d2hˆ-ðö=¥&wo<é‡Ï´*5qŸ¤ù÷ýóãÁ},FŸ&ÚçæUƒ6®xYN ÓzGR^jäèËIãQº­sKÈù §ð×4¤9Ä'Šzµuµsç•^«ñè@#v­tÑXDÝÆF1[ôyvˆœŒb;ÿ +›K6Ä„–3’5·¥Z‰†ä%ÒHà qˆ“φŒk-æÌÄš¬ Å{/ز(,Gd]žå¶É:dÁ°†J”äl5l²W_qW—ÊG‡Rgjª˜2e°°ªøf·H)Œ™Y­’ÌSÙâ³î%-Dnç W]IXÌÓm -6…óëpÆ?³  ç¬Ò””kÐ@o<•[Ù¬¼•c];W»TÎMÇÜ T¬¤˜!ꨪ8`€°®¸€Å|0\öpÄ·,MYtÚÙDZ0C-87 -[Ž+áå¼Å±˜xÅ„¸®%oRãA3Bv°ÊF_ÈT„«Râæï”ç€,GØÃ₤²·]êÔ/µZ”ÖÔÂb^ž¢U’ vN稉t*ænAÖrð¾³u–B°«'þN‘ÜÕ NMM<®¸S\è´.el¶ÊN0¾5užÚ!e¯Œ‹Ì1Ò¥JÍD1MØ{€7•ƒ~}+½ð3"Sb µÜÈ;ºb:nÚáÑÙ™U,L¹ÓQ²:Ùú^ç½É‘{P5C ȱꛫ„Ö4cÎ0FÒ R=Z=#—F¢ €Ð¢º5‘ÿÔö]l•Øú‡ÏªjA-è¯Ñ`¾E~Ÿk/ î¹ôåžô ¿O¡žw “«rØ‹d–å-Ó75)2ÜV›K;ëÊaLÈu5T÷JÇ}¼ÀK8/w÷´ÁS…´¤UÜ—E~Ú„c¡1ÏÊÆƒ½1äòÃÎ@ªêTÉU廊îZÝÕ+H->‡Æ,–°âÕ»lĆƒ»_íìöØJåÜähÝž±/K„—BTò~ -Øo(•è]ÄG=Õ™;nãØÞª¬cdåz‰ÓÄñ¼ ÑǨFÙ‚[ˆo÷Eòú~f‡ÄBñB'<æ’7DúQ*©bén)v‡Íû í„FӻɆ(ÿ£…ù'öMTnsZ„–¡&ü"@—Âm‚Œø4¶ÊÝq‰báܯ@‰·C…ãÜÕ슿ô}u¤7´½þª#ŸˆêoO§È]ÏK04¯ãWá@Wþ§ Ú’D1êz˜ä²;òŸy‰ôƺEUŸX¬{Ï‚ÞÔ;\êp#ØRÔc‡ƒ²P¤0BÂA˜kÏÛÈØ~‡v$Cªgª“Ú1Çæ*Ýu(ðìù%®à°%+½îÏ>ÑËPÍï0zth…Y?j]eDh˜fàWÂ0⾇E&WŽ.)Ž›.\Ž -ò*Ô[k»œÊF‡F<«8¸pÖbÐÿBã¤ÔÉœǯ|}Ì€¨Ožö¶'ÔáåÇ`‹x‚ñ@ˆŒQÅÊ1៺ò˜_ÑSfe$ÌÁùÎnäÙçÊøåͳ©Ñ™½!žzæ­Çep·DqÔTÛ¸ Fï•Û²‰ëçí^ߤjËW1õy$ªrqH >®8&àíf[IGC]Yp ¶K㼂o—mµ ɤeî8&?ÄÛEñ ¼²È­!çöx(¡`ý%¡ü‰ Y&¢KF‹¸»ÇäÛóeÞWÎ<íUæï|ºéÓŽOBþ¼/-wúé´:Ñ;òâTyZB†>öÒÿZe{MpDòðú -ïG ~lìñ5îˆÑë "Í{c˜ŽÒ?4v9LÈ×±¸±çï!¼r¬™B¶ê%`º–1Š™˜Ñü÷jI²Ü†aû9EŸ K_R:NªÉâ%‹|î lOO¥*“J²é6že}(I¯2Î}›&©©>ey÷æÛ)ª||)ùÄCG¡§¼tyrÁn¬“±¬T)ݶšº¦-§K÷\d5[CVäÃÇFá—êt ä[s¨n«ÞyzÄœ´W½eéõ¹o€=k$áÜ&3)h Âk[ë±ÊE¼¡ø¡½uÖ|îÝÙÕ•óˆ#ç¼áÓï y›b\Ð6£©Ð[ÐsK—@PTÐÐ>\Ãl=Q9òkàdL¿»T·!y¤Îh ªÌ~ÐåáE¾väGð¥¨/n4›ÌÛ×T’Ãç6»žÍM£xk½Ãì„f -/3|bñ¶z>Gˆ=b` _€ÑÝ& Ðż˜ãF]Ö7±V=0vÔúÙ3¦µy°ÌsTlmEÇSió]G»b†®£ø‰&º ïw¨Ñgô}n!Pßž÷ >þ‰M¯!Èëÿ…¿ÕÏ»­¿Zà—Ï„þûwúöP¤·ZwÌéÝ˶§ô˜3øãÑõKí.b‘@/Ž*(ª& /Ð$ùf¹í)z!;VŸ=[ó{ ži€:Ìa¼6Œ{)4ŸÖÔ*8ÿù–‡È ·lôXòŒùE¡=kƒ[°æV|íN5Ó›wr²‰®—u õ.3»Õ_hZ’P YÒ5Zúí-£[9võ2kIü«lÉB÷/¹Äc Q­SkΔÁy“Xj:sgêWIIéÙÂÖÉÅ9aSáòY Åè4Y{):iÛœcô3Î=ü õr·ùväØÎ Xô•œ"›êœ°lŽ-ÅW;áä­¹Ì4šúGdƒ'5oÔ2e<ï9 k©¶˜ãyt)â„YHYÕó”íGûà -C¾  D׉°Må›î— ´|7,“V‰P¨ÈqÝô޳“ŠÑ²bå1ª¼gðK=LÚyì€8\ªŒ.­¸³™cê38—€…Z±èY†ü.½©¯ -‹Ü!è¸h *PêjÁâ.iÜÛÐ<“Ï;§ rKŦ%ª–.Û š¬&kÈDMD É´0çµQxkðGSîÄŽ7mûÌ£­0ì-Ò‹ -‡¬hªa ŽúŽ ïXÂ:üýj – ‚•1¶‰àZ¯I¶S‡<ʬ31Չδ‡}4 EÚ ÏÃ5nGÊvÕo€‰¡TÓY¸”eWÕÎbêÆñ`Enƒ{‚$+Ü«*‹íÊO“®²½Óûgè>uàç$J”«ÂtE -U0>VrŒF8i yÍ<š'ÌP%øáÇmÓ]òÝ&; ìÝXMf,.¦ò+ã-ùĹ+ºT.V8p¶±¤ö8‰©1B£9ßÐa)õñ\U==~35åñÚ ‘l\ OÛ¨¨‚8)s`²ºËf^ÐrFHÀ… ‘H‚Í+˜ê[ªyRmÍšµ‰KïŽßGר1q¥pqñ¼gR ª†¢SsÔjL—NÍÂ(8‡˜ ~9R¥ªSâV'ß(K›s_rP¥íäð£×‹T Ñÿ_þŸÇýöy¾Ÿ>;|}˜Ñ1®Nàoÿ±àUqW³OQb—ó—CgNù®ºÖ§¤º"[ üúB*¬×°l,Ëqš@EŸáÑhS_º„MSdªùý¸GÍ+ÈäÅÞK~_rZZ¬Æå#>­Óä_¶NgèiÕ©:ðr‡õ>x {ž?R=ÏŸ!GZõš ?ëôcݹ‹@’îO¨ä0C1{õuÃUi| ÷¦k~ØGÖ$cÑ2Âå ÔnØJøú’ΡŠÅCR $ Š€©?X›ò8»¤ŸÈ‰Öu z¼OéŠOF`e¤O|¨ñWôP˜wd³‰Ô5ÄÊyeº†Øp»ÞÙ¾&š§Û¨Ç 4gÔAqƒB%‡h´uŠåݦÁ×3§:skX<”(M¥h4i¬òŽç¯ÇÍ‘ŠDΡ0]ó+†¹¶Â›»º¥Ž†l\döM±Ícš×G¼Œ¯ä}=Âç÷5„Â÷ú¸ éš{°0.WyÍkžëYuQµm\{4îk*9ŒÆÝê놵qþ­NÂÛ™?d¦¤sX£6è>–šŒp¹ey–^¾ä#ÎHÅ!çP®éÁ\ZÁÍM€ óüý\ŸÎÌ› \ÍÝ—cè<(ÙC1Ÿ”´ÔT\w°" nJ^¡Î7% }¶há¼_¸5¬@€;¸ ómjºé;ïl+!4±öZÔëú–༞w/žˆn“Cq¼q&‰³ïz/ Àäâ Yîê<³Uø»?VXÊm EÏ,ö?–øo´ü›©<âÞž*þTûò‡„¯ïQyß±™ ˆ:ËÀ¶ì¡ò‘¾÷Þ·ª­ÃAMSþTuL>²9‚÷#v~æ®.Î98 F m &Þ›A¢!+Ywæ‚Ë0¡Œ§îb-¤cÂpü2Š&<ç·0Ši5ÐèA¹«¨ðuíØè´q,fS¡}ä Ã>L§—ÄsëÆQ]™ÖCm­AÀÎ -(lsâ×…cOPìr?±Í$€M% "ÉcÑcc—ƒ\!V£·êuz?@QÁ@B†ìu£N<Ô Ö]ÏõVFïƒÉÙÕÂ.Øü)Ðx(=܇¾U⑾ª ªðˆýFlo*ÎlK3SŒæfºlé·­l@¶-©co‰Z×5ïZ]âf›!›mK}²Eœ¸Õ«´»\HzÚüùÖ”AØèÙ*ßÍ"]•Rs°£CÉœšÔ˜Ä2V” 6ÚW¸u0oÛ©õyÂwKM¢V3wÎõÈîš3¥•8šÃmZ&±ÄtÒœZ×"Ñ7ªÇÍ-¨u<ÛC7Æåæ…îà ¿.\ÙHݸȌeØéT j”ÓÌ X»‰Òë‰:ïÛdàˆïgï(‘pÿÏ´ƒ½¿ùä{»´ðAAA›û+þ.sÉA ’Kªæ¬½V+K¾mH:Ün*øÁ!ÈžÁ¢*3ûÑgWaÌ»`[6Ì:Zs!~»Ö|¼Ýjaºš©æ§ÙiK8QñüÂÔ‘ŒZ"ÖÄAp&3V÷xžê7G£QÓW}vy³)n‘£º‰oT–åPCðÌÓä º>ì Òež+¶CüªÓõ”BÉ’ÖÐ*c¿×i_F¥ú„È£ R(‚qõĺÃPºnüó÷§¿4šÁ]\ÚÀÑöî¤U&ˆÌ‡ n?ŒLÇÕ\5º¨…ƒßÍõ'õÕ–#ÉmÿuйÀ.Èäû8ÆZ–>z C`øöΈH²ª[2¬Ákûg†ÑE&“ùŒ$Qk¨Ö g}±`—LASJVåU®þXÚ»x®âÞµ=ß ö.¼9¥ ‹‚Ñg!Ǽ©Ù¾ÄÍÖ§ÎMÒòQI¢¡œ©/Hs7l‰7V àÓÆAŒÔAÆ(»·ÓPeË3èy2®Ö,›Å6|lèJÕRÚê3'¼«ªÃ¬ŒI¤Ì! “áe$ -ƒéâ#EË€q´q´m»Ç ÓUÃ>‘÷ì"ÑU |”Ô§âmÆ œ'>oŒxz|¤‚$¡[ôÿ ‚ë®_^ïúùu¼e×*×:æ ™ouœÚaFkâá(/æ}õ<‰‡‹1„®“}ƒ0PFÑ>@äŠXa@$hÈðHÙÒ}§x3Âß’’]%þécµ |. Q²k÷9Ù%¸+»ß6¯”B2>òbxÌã†MbÌȺRô2lÛQ9¸7”NÒ?/1ؽô|¶'¸Ø& ÆGé io›¤ @Ž FñÆ!-ú/3¥æ£W½ñ¤,ð¼dôû#•m<âíÐ ‡)(L;Ǔթ@øDz…»¤ïñlEßžušÑg›„ÒhëÇkÄõÞùJ9Šž |<{0rd¸ä«í…–”vé-´NWqJW]:Nêì6wØ{@€5éö;¿Ù^¢Is¢KºTZóYá•ëõš9Öí¡Ê6 ññîÁaD - -óò’cúP!Ó7uRé†ÆÇ½“ôæ¸wz´ïSí%„Lïz÷¼Î§J\ïëv)vPx7ðñîÁ|tÈ‘=â’c¬P!LIåÒ[蜢U×%ûÇrçí† ãÇðÆÙ@¯9ñ¼Ö9œ‹:*‰=|Ä'„‡À‰#Á[G zì49PJ1ê@ñ€vS¥v%‰Ãq²ÃX¾@ëíÊ‘ú¹¦u¥HÕ8'!ÖICLŠíJ#ËØùQYœBe/»N žZ[U.BKÉ‘¯"w«þÔ=d -@ãS«ôžÇ«xß £(ÿHW‡ñ¤T˜U - œ -|< xÜ¥r}ƒ9íh’Þ,»³LF¯Ç„ŠÀQÙí¢ö9_ jBÀ±Š™Ácû¿Îv~~=òý+ÛùªÆÙñ§Øðoï¡=cºß+ÆWs§{ÝXONM¬gU [ÖUJ5·–m´„¡ã; é‡õÖAFTØL0@`•+M±Vyëi§e0êl2HkošgÔ,Ç<Úµ5>Ž^o1•…X¥²Ø ®e.£¦†N&óÖö€ÓMÕ¢Žè$ºæ²¼©¶1~ÿ³ž§˜zc”п1Æœ„¶{B·—„Î/ =#¡Eežòy>çó²{>Û¹×tF‡{Jçi÷t¶{:Ûs:Û=g¹§s~IçzOç¶Ó™‹„ZYÅY£ÓÛÿ¥P»ü•¤?ïfdO’þ.ŒÅÏ}WÐ÷ò¸ ˆr‹YFVÌM$;d?)f²Ÿ— -ÙÂÕÖ`ø˜=@†$â‹Bko;`¼•a'â­xD%lo;V=T½Ëì/žu±ÃíRÅèQE¨îg J¯XJãME¦q‰„TX2*”MÏxûC!Ù'¦“oO„>’¿¼ò£÷ñwRò¹'—êÃúéSðe‹¾À&cÑâ ñhiuzµ3Á9µð$}SC¤1jg÷FÄ#4™²儘É¿ ÆT)NÃg¬¿ø®5Tïx±¿’FK¢ÁR=·ŒÏݺ#Ÿ'„ -ûzž§ 'Öû‘þaôx=ÎVF”µ˜³k\]h÷ÑqaŽÉ¹ º`‡~­¯ –Å'Íî+@ÍBPÄyñÀs½zqœáÐâƒçd@©}x<\ã#™ŒÎe%µ$:Híº,“…IÌ‘Fúá÷¼UǶQízØ2§º‹sÿö¼áW)ò2üô®|hîvà\ ô²Üó!{‚ˆxW} {Âi&ñT«/ôW@ã.ÒêSäùjÏáâÑ2/ÙNY¶ÇuÐ-Âï^ AjæÈP6°ì;–¤Ÿ]øcòPõ%ÙgªXÏ¥‚ŸI…ú‚ç«kaE ç§’ û:a=Šj32ÓÑBÒ› ­Ÿ§±:3McMÖ¾Qâ® -–#” &°Ã.væÑˆ[TR7¦Uó‡ømáد0qÌÆyª`mž‚J€Á+iƒØqÀ<,,-±ÞÛ„hßÒ(ºV1å.í艺(®ñZ«üÖ:NåQ7ÀÆœòõ-ªÔ*=5XIæŽ§Žˆñ·F Dz†ÛXÈ$áGÿYÙ®Ÿ0sÆ~Ì”œ$ŠôÈâ€sýÔë (|í–õƸLÏÿtlBZî3¡:jðWLŽ%95̔ݘhy 4€B%y’ÐÓX¥toc!ѧÙ6ƒnø7Ÿ/†ØÛtþã©áV¨ž|.J_jÕ9R ‡ ÝÝâëv:™‰i²,ôÙÕßÙ‹²žâ•e±oVPPÏÚÁiY\÷¦àkª¤Ü:‘¶’ b`x\°I¯˜Œ¯ùÀ{ðŒ+܈nÐÄOi€k¸¿ó -€14K4¶úp&äY°UÊX{«òÈZ`¸³C&2:“ºµj#óí+4Ý šõ.4ÿ®®üðž"0Á衼OSÞ~ž‹@fN优¤9F®ÆFlš_uj€Ž0(¬FOJd7¥˜ºY'}ªµî¨w„d³1è-iaî1ãXã¾ -iñ[ ï°íe#f¦¶¦¡ØdêU‘¦°itjt«j–&:È¡ |ˆ?̳…á ‚ÙØíØ0‘‹ÖáÍå³¢Ãõóé–ûÁÓ3šì9®˜ R|*9 ÚlC›]Öé Ï6«MW³óPÕ4^Ì"óãwŸ†SfpŽA -!è pƒ¾ÞȲ†î–d}ñߌ†ôá´°†Pnì2tj¬r \Ú¨ËÜ×™7C áRQ€ë°ë[O·Sà°7‰ÓÚ¾ÍÁü'ñÕ²b[RDçç+Îð:¨23ò=ü¡À¡àmµ«ZÚVü}c­¹e#­ Rpï‰Ø‘‘‘ñ\±Íˆßí›Ûø}„ÏÚêôbÝÎ ‡›N²qM3äÇ÷-9VMÓ²ÃU(ÌimZýÈHœÌG¶Jmä23£Ì¬Ø¥FURTãæÕ™urC÷»Ú9˜pq­¼y¾Õ­Õe§›† ²Ù2¡ -rú’‡¡Š’óß Ä°©ccÀ 3{r…ð¾Îß&SflÕLêE¶AQô„ @EYL‹sÉÂ99µ+70'̿ԽŽuO“¤_Ð|ïÙ¤síR‘ZáWŽÌ ‡0:Š•D3TÖœM‚•å?+'2‹Ÿ~4•~å9wWhœÃ^ŽUÞ§gÙ1rÊr–ýÏ÷«Ÿ5r0ì -†ÿí Âäáô7ó 䘕xx3w©S"»›æÚiù“ƒAªÏ[¢㺎îQÿ «cçÙ,0P•d4oûdŒ¨ !äœô€‰e:„U‰ŒRÆaeîCbù\ðü»1bøJ©§¤Gérq‰vr1Í]‡ùÎ(:Oà ßí"óNV¹²ÀÀòu*ÆA~½|`)íÁè‡ýʶx?=ð~ãÐI§ÂpãyéáêÓ°Çizì|ž(‹ÐÊ=Òb]œéŒ6®ŸÌî[¤•Ë5°ÓKwÝZ·Hûó9q‹µOºk¬5/WûŒ,ëëÎ’¸<À%_c-Æ-ÖbÝbÇN—†âÓíÇåghÂÀ#v´ÿ ôÀk´å…÷'{{º¨„+o×NîV·h#$óíÚù@1îÑ6o\sÝ¢¬Ó`´rq¹i£¸F¬t ®%”èàíõІü~gõ9®ñ^g—Q¼½g*íÅ}êîu4™··p¯›­£¨Â§¡øôû¾û Í:j*õ‹ýO¼Ä;üð~ãÐU‡ÒíÌãÞÓá‡m;(‡õ;lÇ ƒ±ã0ÕãÖÿ{,þøYñw?ñýçnjÃѽ›—c×忎U-V®[yqGI…ÿÙÐ -—†¶šR‰/óÄ¿E£2d‚Â]§duÐ}9Ò[,Kqéжk6¨´|=÷Iò} )ûôµS.û²›ŸŒ¼½à8•ç©Pï>.ƒSdFâ¡E³zÂuŸBX‰³†½Ô‘I±ƒ²½‰4R°§w&Êk{N8±sµ-•šj¦,+`ã l­9d²­TÖÎ[º5é%5rèm•ô¼ÆÀ V>_Ž,ÔÞ̃\¢ur_°¹­5.‹¥™`­Û1µ.X@[<ÁéNëàñ½w8jË·µ#kÑÀßyI³•ªßk³_j‰M…kŒ­µ•S27™â.~@ÑÕƒ—ÎQ6å²…½÷üÚG?Neõ¡?òq«û`R¶Ñ^¯µ!Ñ û”»(ƒ%Ä Å‰uîe©Æ Tî<×*¿»Ô%¾¨ÊÖNÑVh+ì÷íNX¸#qÁ£Ö!­KIa¿Û²¢Y …eˆÐ&,Uii!« ©e¾½7·K¶-æO'\Mr =¬Qí¬rHç2Ï2÷çÁ[:–ÚÚESíׯq’:?H0ZF.ÈÎÄïv¥êU«í nE‘¨dh(ݨ-M¦òZ²6¥•Q½ÒéXÑÊ”­K…ªRˆØVBe²Â™7^ :ȺĨ~%Aë4¯`ª»3˜¦¤ÍIé„ggË%õ¬ÞUÎ<̯CÉÁŽ–•\îJª­¡Œ“h+ù(¬ÆèT¢h‰²­Å†ú9ÛÅB²jÎlI6v¹Ü9R–:ONœSÉtàd™õ ß7í¸š°p¾Ê [ü]ÙÍÑ|ÓÎüüÊùùe™qú°ýæ¢a!'–Ý¥¨÷jø¬¬ˆâK­e'ç)”…ÍÂU=UÑåÓ8Ô²š”W.¨ûŒ!X;¿ÊÕÌÄhF“Ôm¼ìù[êš«ñ%M„S‰˜`ћɘ‰© D?UFQº*ÿÙŸœR?HûUáÃX_ Ñ›(êi-¦M®•C]udFÙ>»ªóy*½ I/‚³Ç¡G·æ …f/YÑ6Ùv -&DV nÃÜe»T»þ饱‹×9ZTmdžT*q–´ç4ûI”aæBŠ> ê)=ì_úš‡¾Ê£Ko‹>+dg¸….áàBÑž…ÚV„¦n±ÀLcu¢ú¼„ИZjv9!ûb2aä&N¦@CR«,dÉÎaþ®Ì‹(˜¼VìÌð‰Ÿ1G‚ù Èu|Ën& Ëà^?_xR£Éå91úúóíãñåù‹·?{oÄNÏ·o_þŒ¼_ŨÞÄø _¾Ç¿™Û®Ø/[SÆß>3þ(Fn!ãïŸbŒãÈï·„ãÇÏÖü˵ß|>"{ÿ!{^›øõÛã‡GzæžÒ³#ëøë¯xüöùýã‡g¦ó³°X|¼å>Ü:ï2_?øôAWÑѯ@͉¡Á@çÊ삘¹ì–êv>V2¦bNÂ[­i*HI[3€ ˜.Ÿ…Áü°äšðk®øÔ{k©õ$Zé$r Lº8µæÖçm´/Êí=—a…o†…ž‡}hŠöÁÈZUiO]Y£`Õ¶ˆ±€²!Jñƒ#ÊT“ _äB(ʧ:Œº}¼ÐÛ6^Hí´ãªöm>ÜÒ†^¦ñT„ò¶l#t[cÈiYΪJž·™C@Wùs&L¢ îŠjaŸû¡WA´Ì½gà™ [ÏMÌ~ä"Ñcç.U¸½¢šêáWöËEYåPDPßâ„«šiÝváíZ€`3l)Ê“™š³¼Ž0]»”·¶þI}Õ­XšÛÀû}Š~üoë]r³ é%òþDU%ù;³MØ™@Â@ϧc[–õS*yh¾H‘…W>Lã¦~RE‘¨6#’—*\iÖÞ(ÇS"â•‘á‚›:ï¯iõþ}ÂåÇ×_ð?Àc:¼üþ‹÷`‚¤aœþË`‹öËI¥kÔŽMƒ¤»Îç»Tî:á/ÿxDÀ¿ÎƒNÔªÁ%Úà9ÂÉ„;Cæ@ð×ËÒȾ^äŽ?õÊd9=õfÕçr'K øßHã©&%ô‰?ëã‘j4“#âŠtQÜ/ï…irëû«ÇEk ñCùÈ¢Mq;•qP,båû “˜ê´¢0§ ÈýpqUâ#ø^cÚb€X=Ôa™'$ A­¤ ¡ºûÕ]¹¬kaNs^-^Tþ¦g|ûQ®3ЦÚµ7°­ÿ1Õùtð× !ÿ‰×üöGæóOý€ ~Ñð£ôd"Ýuø%`Ü—`fíÌXlÝø ¾AíŽÝ{p¦íü$ÄMýU/—€à²s -…áŸÛØþ‰¸õqGâ/pN”¨=߉˔ve³â‰½úÕuŠØ“n9£½åågµkâYÚÕÆZ)hÌq@ð¬ÁNé\m˜FµÞ¯Ͷ¨ÛNQµ#ÉÓ]¸öT¨½Uý¢©÷×d|+%î­ã¼¬Ö—s±1•–{cICÔí½nÆflõ…C,ü¥¦‚çíCTCí‡5áHÃ{7$Œ?¢•ÕD¯ˆÃ%êœq1ô°åÌÞ¢?k’f°¥àQ -JŒŠµg ¯‹SxSmJ>#¯ƒãÎIKð(Ù‚3M@Jº¨ÿ†é妽[¯í-Ž(Vk¥ç'=gàÉ -¡/ï&Ÿ]Ò:™>»[‰4=Álò,PɳÄëJ¥mí膕iÛ›žerë[æÜø>O ,©Kã-Šd²ÓJ¦ðËfå…S£VõNe“\ —YÆä͆5ž‡ñ‰'‹ì4¥å`Ϩr@بPšÆñç²éÁ}Ä “”‘¤T‘”¬%ñh‰ÆÔ(M6[å¬ÄÚ4;òiûY³6ò”ÚçÕ–?ã2ü±4Ã×Ïylôf5V>cD>­ù;ëónoc2{ ÓV탷$mÁ—ÿÊî7™;AO-Þ$·È \7Ã*ÓaÃoÝ`|L…uñ‰$ÐE¥ÉåE…˰ õ”‰‡o¡j )¼¬#úÀê`BÍ(Â6ÀˆjÚ!ˆ+ôžH•|i¤Qfs¾¹‰G’³¼½Å·ìÂ÷{à¼A¶=ßQ€Ý[ó­¬ûì®vVÉï´~†ôÁ¯püž»¿´}Ë…¢”¾Ãz¥v§¤½c…àÑÀ5ͧ¿á 7ü{"§ØÎ²gçݤ½úÁå.—0òŽÎkC4…y7LÊae_ƽ ö`Û0‡$ ´—LZ2Ÿ #B~—yRó.ËïïzUÜiZšöH‡ù².ûxĸ zîU¸$Ü›&OÉ -¨â÷×ÿ‚vd†·ŠÿS~øhøtå§ŸTþëOüãg8¨yzt|ìÀtxI¨W»:ßF…Öbj‰ì¸…í -ÑÆû@ï,¤lÌ¥©«Ÿžô¨©œÅÎÅêÛ%FÛ¢öþÈѧˆp  ¶‰2Eý ìtÍ‚¯ˆ‹ˆ5q—éw!b؃8‚7æ5x‹Æ¬¤§«ïÐ)GsשßI;[ȶ´ -réh£g›Ã½“æNÊÇnOmŽVzÃÞ) \û|YT65QrßÔã=È£Ët‘ª¹>€• -±÷™‚\½‹er«m-µ)à.‹FÒÃз´©ÓŽÂ«lvíƒæÃ6ŒÀ—Å_g!Ì”Æ÷M!\9Ñ„WµSï.Œª7 ØBâÞcõeÕ¶ Ò¤}XþG0Ú•¯é޽ܢ!~ªuÊc¶{Ú!¸ï«y0 ž{¯ÛyY=×ÞÀø|ŒCVÛ÷¥.íz½0¶r‘ïIL=kÔÒÁÓí®×ùS é†fzQÙ Üts×éô”/Ÿ„õ̇é5q2S–Jö¦ÑúRÛͱ¥(ÒoifºÉ¹æËê­Hëåñž/Iï²r†%±HG²\®ÅôÈ•«ÓfVa¨¹%êò¼õëB{jÛí±×Êwyí‹ a-0ƒ'G9ªÅØÛ{Ο)ð)TÛ5„¦|ëv}Æ> ÷ñ€ÜvÿàNÔ‘ñÛù Ñb€Œ¹4©ã·WC(=Q:»HÖbÐÝ ÑÜèA ‡€©xñ|¯{oZšæ^÷–†¿)ÜoUa'Þ‹}FËà ÿî^ìäÈ›LE~ôl‘7¨[/'½ïp¡S¡ilµ&v¤:ZØŒà{¼ Œ©:ñ¹·q‘eŠØJA*µºp,…–÷JÄF ÂYJæ243“:4ÎxÉìdF;+D‚jÉìY«§tué-T°>á2K}‹bõۀĪäN¶Ì(s+ëgÂCgIr#°ÃE€`/ã)`Ž¿úŒ€+RÓV» Ñ6Hg3"›yö8jä-rÓÚI—1‡Á—ÇN~s@5W·ƒn ,ö¿§>PíìÑ–ø& Z«l%¶WžTJ?/Cç°»²‚J¯ì7ƒ…Æ}ˆ§k_„³±ø`B “3¸N®¢Uþ.´å®$&×ùh©5£n!«A#œlÓiõïÈ5÷›lü‘:¢‘Tâ 7áÀÎËZaÖ2M CyS Å2½E^"ñSˆ¢H‘#B¥$¶”U&&¥úÇŠº»5+võ,âæBr:`@ðžB¬èä±d‚±>ž©;R/äp$ʼn|¦vS X'}%~í±‚Øó^¾/ÃFi:K *o^\ÜþüDSý¢æóà_=ÑüùÄòiÞødÍßJß¡¦þàäôIéo?7³ÌƒÞT¬ÁKíGg–£&šewïø ):/þÜb|¢©¦¶Ù={ºÀÊ$ -Á‘D?—Nô›…ðVA)$úšS„gyóœd#–^î=çõ^ïåK £¼^^y‘—#Ä8û¼H{G y±ëÄÁyØþ¨Ö¥½±‰[·œ×4ÍkqMÕ±f—(JRÏjë®zÓêvOz×ÒØ½|^Õh°ÖŽÙÎCë®*Zë(Ñ9ŽˆJq^½»QˆAoõFQ”j¼éï»TéïW¯E2BN ®øwÔØ1fÕ+Èy•§?˜Ï‡™h¡8·¥q‘N{×xëz>a»è¤­À÷Vèöbtj NÖ:;‰F;9•‰ é?ÁxH¢EI‚}µ!Ò,oXìÛ_Ħ©`»™/ÚϽ÷ø³®MÇ7¼Z|¼Oíû-äC¼õ|Y/~p Ù^:Þ¿†$ÿr/eÀãå^¥w3¢ H¼ÅËs.„…-/lóCÖÒðÂunÄ«®<½Ã1 ¶_±{ˤÓÅö›Úè˜iïôHH×%!³€éØí~PšP“'²ØiÜã@Tæµ"*3 )å§»¨ÓGN7õ¯î¢ßþØE?µÕOGþþ3 Ïó€ê- “8r6<ÔapŸ\O4*SƒA¯jƒ5¦3ÆIH¢GÝÖ‹r©½Æ®%"¢ßÉ QÏTbÆ-çœMhÃ$ËÓ°©ð?HIÞ‹óómy¦änK nß9zxrçÝ%“¨Öü¦ÁØFIÏùxD¼5TÈ ¡>}WË´©ðlUƒj4¶-HÐd9ìA HtÊ¿™¯–ËŽ#¸¿_q—£E뙕µè ^zѲŒM·^ „þÞYçÞx1czNÞS§*+‘‹A°ÅßFD$‘…–ÎåÀÎ(5yJc}Ý ¤…ÊU™ðp’‰jÜ —¡œ¥™)«G8âb¹GqÖܱn‹ŸµT˜nTÕF”¼œÅL؃7ÚR¯„Õ8“„·‘¬íÉ©ûÖôÙˆGML%t”þ;•+“µÕÇJ“Õdç{8”>›Ã¯]ÏÁ˜]Ú>á?xËoFÞ{·sE{?îÿ‚ÎZ'8aYµ·ceUó”ÕÃîŠ7R¦ò˜“E¹ ü¦oJ¼ü>%‘wRµäuUD‹S_(•^†P%y€!ÇÑ×c©…—#vý?ÅR4gøùúvχßï_À«â{¼Ó.¨ù•+>´íº<ù™§2ñ`•úù¯ê + 'µà)ZèI˜ô¥¡îH³i¤IÖQ¹R£,NM4`ôä7´~ŒàEx&z"–£¾gkÒÎF©Ë†'ìÈ&Š8LXt ¬°ž;{Ѓ3`a…Rè¨xRꓲ¶Hï(„˜ª·¶Iï˜$É|jUÇf«Ô¾¯ÅѮՅ­o©œ$™R­Ä±âhEQæ%)¼È’v ²h7‚ÌTÞ¬wÒîÛ©Å’Š”¬h26žŒîI¯Ó®Üu[ª -þ(~3v(sqJcæ /á\§ÐjœwtžŸ–Á3ËX*©æXë˜m¢»9!p–‘I4½›3±¥p¼*àܨ-n;YqµfhçF0¤qD›Déñ02Çœ‚ó‰nù¼¶<áL[-Ïf -Êzà é•>Ɖ1xF"'¨|¥f¬¡ÆM’cU¼X6¬a ×0è ÝÅ=¯ePK.;fƒ3?¡Œ'ϾRtv ½µXb%È/Z‰ïÅ`ÆGI…‹Mì½Qïè«ñ ^?] […¹A†ú½Ffo¥VMLyâMÓ+Š0[µÄg2RîÍó.¢®ÄN6ÍçbÙynð5K¢ÁQ1•!Ó8ùXâp2JC[ÈcTŠ=½ÙFÝsß„fg½ð*ËT<Ùvãº%êc Õ`ê§ÉJœmóbž2VÜwp!u`üçXHR¥ÿ$\54 fò~ðäâ\7sŒíŒU§F¯v‚–œHÈý…ƒ½“.sáb}®sEíGšâ;¨Æ -G⊴4nÁ3Õ+˜:©ÿæÂÑPfä’ …•­ˆÑ/Tð´y Ý:æ;L«×kX#ù,kÔŒçÍ}ÐEûŽîªR3aç%*; ¶­ª}ͤò š•Äè½Ñ)´t¥d)k6ùÂÏ[o•FLæb¨ZÛ©`®uׯ]ÒG%'KBike£²ÊJ}‡ÝÔ'°aÙUðH…عºÑ8‡;c¥Äš,jµÓb/‚‹ì?Š,ÏÎ cëumÄ¢1€–†¥ÂB·?YRO6… êè¥ò©U‹¦ã(>x]•6:ê£*áy©¥¤Î%^ZL5ŽØ #9êâx骢ÙùYSeV=—ZåT*žØóèD ¢îÌuœn™¸µæ( B›h‚!zܳ Fã»é4¦„ytœH9­&¾N1çx2v†f$²`¦Ñ‘” -…qÅh9½Œ³É˜ÜønQLîwË.3I?­6$(itc;¹ÏÈrôÕïªNDg‹€Ø ê²g𬦆n˜A"A“¦gÞmo’}¾sÌæ2æ)¤pËS½€†‡ÓÁÞŸLW-E[Æí†Šuc@] +ØÅ”L§±Q̸¿Ÿ…ÓñÙ Ø7Ä”p«GŽBfÍt¸EãϯZ”Ñ ‰ÏF•‘}ÛžÞuìÑ& ЧØp§DÚŽMXo1†“0±ß³ŠÚMNå„AOÔÇv®‡X8}ã é;g±qú¡•Ic–6„ãaˆ7nn^´!»&}Áfnû€d¸Ãùó0Eìƒ"¡¸I§g6(ÀvÐ'7,´Ê¶ÆTñ}°Ã[ 0·ø ; í8W>SjDJe½c•ÇҀ䌧 v‘z´‹ºr5äjºÆM‚ìŽ Q+¬5Y/ëþep®¸qÚmUܰœáâ‡T'Jzº-2Oй¯”" µàEÀèÍENvÑ®„anÍLSå5JW^¸ÈY™Å+{wª”.Àè¸WEÉVÖùT¬e©Sæ˜FízÓX×M¤üj™è¦¹³›0ƒz¶&P½:ó'{SÃGM«Ù“íŒÁÓ³ÑEA…×óSOK«ŒtŸ¿6N«bÊ€°À‘.]×Éüâ¹éXɱL_•¤´’V7ÒfÑÔä§” ”f³U^“/¹òvûáö×ø÷íëí/¯õïùûë7Jué›|Q…èïZŠƒ÷øýõãöéþÍë¿£–årýþöé_ùC=?¼é‡`ª~Ÿ~Ä_¹ž?¿œì¿~øOüòÝëí—[¹W+ån3O¿þãö·û·_Â{ø‘_ÑäQrÛl0ûqÃü¥xƒãnÔ8ur”wò½øQ&}9h0Ég]Ç`GÚz¼[©Jø•ïù¼ãhl¥"¦sÙ…’³ŽìÊB…Ýè‰y2fø ì)L.þZ>cU_v½iäÌú¢òùìUæ9„çö”´ä qô抰=ìªpI)‹è à7¨ Ù -ˆQ€E]ülJöËxcvëã” ŠR`/7ì>Ð8 `§Oªë2Æœ¹Îx‰«²± ËeÖiBðÂ’Ÿ1ÛñN֘׻2®¯xáõØòåZʹ•‘¢'_†‘rLu1â–·$ÚàVÀÞU42hØÐ ’q6S1ð4Á"RšsGo5õ7³/3 I -C®ƒ|â:±UfUéFõur´*ÚìeÉ…Jb罋`ï'cL-LóY„³Ó‹JÈÖU$O*ÊŠí÷……#eL×dCŽAÑ«I`]“BpyXM -·ãàú®Ë%KÖ…ÂýÅ™À=KQTæ”5ÿnÉþ02nurý¤†„ý°ò3™§p¡À:þÒ«åœZÁÜÁcÌÂgn:An–LôÊ1mXo–õµQ"ØÀõ¤ØŒè©Õ&¶´æz`KÙß鯮ntÞ[iGŸJb[ÚÔ‡FK¶:'‰]‚ÔßÌ}žWd§%„¼8Wål‡–Jú9Ý*°» ƵnÐÑ)Yß[ÉZîk:=ÒÉÅ|n¢?à šF­Û‹ç[Wë¶ß`â/€ÒÞíc£&ŠbèùîoXQÈÓ¨kŠ·©Ö²þuý«r2ŒÂMqD!ªgÎþ1¦ð<ßÐÄå²Ìj"Ŭ§lꈤ 4ãùqq=GsmlHQTå/Ýì¬z= xX‰N ··±Br›»äx¢hÛUö)ç2Ez>Ô¾ñ̪ -wŠÛx¨«ñê*‰Å¥R–$æðþ’ý(…,÷Ul¦sT¦ztÑCõ0ü³ÈpÛ¿ÙüT.Lÿ³<Æ’nHé:˜$Êxä“džçÓë&CÜO°(;U}›¨ ¥˜…‘Frƒa!A5г§í|F²àªL?ž^H­4Imd¿o(ïÍZ¬u#¹FàÏkæÁÄbÿ§ÇÖ ]E|ÓóÛ›¾§¾'§Ü[Ñ9òŠÊ°eA¥jù))¦tŒ'íÐB -µ>Ÿ¹|¡–ñkbèT2bã®=ôךž@奰( 0«<’eu Ì¥¤óVZFNNI#2ÿ¾-JvAŸOfÝO«•ÐG#Öÿ nze½‚#õêÜ”/ ûÊÜ¥sÕ,E¨*|Jõ­n>¨¦Õ”IŠS´œiëBçDˆaRµ.7ÛôvYº&LxÇ©¢ìS X¡¦Ë ‚’sã M=-­¡I[¤ÂÈï,\{“òç½ëÿ†äÍoÇ4Lh…£¥ó4ú6ùÒÚ9êdþàþÀÂ8¹zs‚`bɦê!\]<õ˜ÐLC#z§^þtXoøŸ lÉÜ#Wa÷¿èí-c¡%oW§áP /lÊõ,GcKu¦Ÿ,ΖÙU.{É€luûÆÐ:§Ëªõ3e—(€Ã"!éyBç Qê½eò‰_àÊ«Ä=YþP\/:Ck(èZ/½×ý>u¼‡ß7TjR¥ømud>× vTµî SeÃi׊,蛼'rÝp ,´úRßJü¸H('ë' ýdhöB˜:ÁD2µ)‘Þ ÕÍmk@BêÃÕq™Ð~%ÌÝ8±z®+˜4:›p -ͦ–ËeYüïD*'Qkžz*Þ·–¼•¤v6P“Žì¹,TåðqL‚W†Â©¼²Œæ$@ú`ß-ulGóδ¢‘ ›…iŒ_ÅA‘Ш›ô½¿ÆLyŠFÙD+ ÙÖ|HE9l¼õ»Ó‹Y‹næN^{£Ý·+Z_“Z@=Ê¡ÞÈâ+rÕÉWüäè§ÿDzHW¼u5×¢£‹”ª¥sú‹„÷†XéºZCo'zB)êöàFçÑ&9K8pžTŠ!˜8hø„}EÈô -¢$§ƒ!ï“ ££ö"Íëÿ(>ß³q6^¥1VZy6¦KÚ&<&"ádºJ-O-㘱 Âá7¼ih¼óøx )·§_)Ã2¥Í™É2%Ïýè0­õO4.¶7—¸\cÊÈá“©2²² :ÞÀÐ$ë+ª´ yÍYá7dú^7£²d]swÔyåUœ2Wö¡k•½*±Éö7Nñ¤ÇÕÔ”rZÅw MÍÕ%ndš;— -3Bë¦Øcn^éÆ¸Û”¨9»¸~9ze¬‘Ûëë„Æ=ûÔX?ïf›xr³P®[`·ÈPóz_›Ú‡g²ì»Ïô¯hÕq_ìµ+êJCÏv²ûÏeeý”x}Ñö¡©«ºóäÅì‚€ æð;/c:´Çü4}ö¹QèÕçö#“*ƒgy\›Œ› …s¿X>¤+ˆãr2~êÓ3I€(J'—œèA!gHBø7šú'•SF«<“¼í½8ò¥o­»@—îZgxæ…$%Ro%AÊ>Õq~Ï trg§[-¤Þ&çœíºR’“q޼}Š4mlCÎ!¹?Ž6ËvOFÓV}a&wËæ/V4½yQV ‰ÑÇ|ê*]–vMV|œ[+.ë=2~eåRmg(åÞ¹ç~0Ê%9U¥^Y–`©vQ{/p„a…Žks'ñ%pL<ÄrªaüFÓ¬#Ñ)¿Ðj¹©"!Kw‚ŽÂ6Ò‰†”ϲÎpOù0áH·QÆ ƒ\ W_.&¢4÷ (%Lß»T²œB´µ­¯1gÁ[78ÚÙ¤¬ò¥tır¬Ï ˜IºïîÕDNuOhè‘Ö!/Ð^Ë'°Fìó×Oᵘ©ä¤¾ûóÒ–`°^)T¤§½ü'`´ŒkÃ`æ1HtéÙ¥ûÓˆøWT×ÿÄJ2í%nJnÿ¦õê'hSI¿Ñ˜ŸÉ¬¯çºzjÿ¾ežÖ?ï|cUóƒÈ^å¯x¾ ëÎ4 .q5ëìî½|ÇI0¼ªÅ›tH8à¬èTÊæñL”¬jN[2¥”Ž’ãg»˜}‰#fš­uŠuÒì)4[CZ&~©–úwô+ÇÇûóë¯2Tvm“(V?Õ!ìm£ŸÓ›4›¦.³o·sø]LÕKÉ(È”’(B²øäùFcñD­šxÏÎÉ5L‚\|×T"*ÐBÛ•Ì€ÁϬ{È8êÁnCÑc—Y'ãç;Æ6ì~hn.zþ--ÏäÑøüž¨Ž†ÐôwÑPÓ®âñ­ew4ƒûÎÜÑc;40Ð!óEš:¿ÆæÐéÎBvr¿W38P¸9]ã6rzé•i¬Á"ÿ‚‡¼‡ö8Øï“©ÁÑ%ÓÒN|s”±vœì„.ë`Æ;Ô±êì…t/+À,ÔÄ{~N¸â€î¥ ‚§”$0Œ‡µ0Ý(¯e¡ì¥±¦D sAD‰œlL¾`Òº¹;Ñ¢Ø5o¾õµÂü¿õç[ߘäç|Nv’sÖ¹oŒË -¸yQih]c¾—eîä Âj«¿¯çÏ þúrYÑl)¢ð¼ž¢†íàh^"oSÁ -Š´çˆÒÝrTðõX_ä®BAè‘HC×{çÎŒŒËZ+Fôä¸!š¤nÛ¤Öꊷ#¹<:jø"í³™ܦ1¢†¿„½ÊyjzH4f+ /Åó¡OƒmvÑR¼6-ú{ûMÇ’÷Þœ.föÓ·ª|ºz:(ž§çÝ=„ï–ôå; ×-î]»öí5UjúÐhúRµ¶¡u‡¶­pÜæfn3"îèÒ qÖÉè·c‰½?›q4ÇÆ‚ÇLJe(ìlº@Þ#fÂgèâ„÷ˆVÎ%M·BÀªØmÀ?x­œaÊÒÚU—qX;'œbºÖB³ç¹µq®”\»÷‚Å-‰ ñÑê¹6íâQüòÑ&¸¹SÞ=Ç­’\©ÆˆÃ„Û§.>Ò², KÐçS -© -&pŠ!3Ø -d_äpå¥~ÖwñåY؈íQ.Ê:³ÇTøž½Â±“q£hÜÐþ:­ÞúiºS!v‘±Óâµ/Ì ÅOˠɘ‹:Ž1³UãóÆ>wë˜GÕñ3gN»_v+óÄw.7ªŒ-d‰Õ/P»ED†W^a0*>¼[Ónœx³pÑ͸ŠT©CÑ -cA„•p7ðQëzX œjºÊèr·ê`»Ð§uÖ€ÅëúQ‡•p¢ïécŠÆÔX´Ñxp·$=ÔÞP (™~¶Èœ` -ˆr«—B<^*ÑœU <³â]eèrÎuÙ7k®‹¹­wÞKÞš¾éëÎYÞò˜_^’ûr)´˜›À™ÏþjÝó€ -HÛy÷7pxÝ»cÏ{KÈü‰\ŸÑ pnÜP7¤]å™Ñ¡AP!­*_)˜ò]hr.ì[2&øˆZU±B¬Ñ”¦ëM¥×R­˲ü"S ¶QÏ]Ͳ+P« -[–Ô­«»*¤™Ðª¬–Â;«*§+ÅJÝW³Ä²3Ýlçv-27ûù1,ekš} p§!~ŽØ ä\³ Rc]R@^ÞÕqç¥!¤lÀ{Ihâ6¼êv‡2fZ¨©v-MQüŒkŸ_~zù­ÿûõÛ˯Þêヲ^ß~zÙ1&zÌü_þ4 ¨¶W§þ ƒóúöõåÓë/ÞþòÂñåõí/Ÿþœê}𙨡Ÿ¾Åÿ^°Žf<þáî4ÿû‡ºZ>þ{<øÍÛËÏ/åµÎR^g°Å¯¿ýøò»×o/?û•â"õµ;, Æ™Ž%éëK¼ñÿÂåúÀyôPŽŸM¤î–,áNG=ëÝÜöšúÅ›lÇÂ~ç&¯—‘[©¶ -ý¹È“/ P‰x3 öíÒp•¤Ž{ÌíÕÁG¾‘ãnngÂç8ö ÝÊ —äƒß·žëŸ~3]D¾î×¼•sÍ|nìü$Ø&NÔjV„Ö*QùẸ̈ƒZ[Tâ€2Å>…ùÈ­AéZì·Ö árÂÊÉG¿‚ $œu&"¯†•è…Ý~­kídêèwƒ¥A2µ‘EøÜ2¬É»šÛŽD´7,²@Ì­r‡½´‘“N´²ïðæV_é€f$·ámèÈŽ ùïV[+5­m€z aº¼‹åB«:%RM é–’ú9U–ŽKU‘Ì;^Ná>R¶s8¹*…¬D7s¥6jIc"©ÐÌGÌ*M$)ÝL¼^ÀHH$µ§¹â|Oi¸¹ÚÀÑÀšçwZâΨüû–¦+ÖT¹Ÿ£µ§‚`å­hdW“ÖÆ“€÷J%SÍÿøÌ`zW[Ì DYau¨Mådi€80œ¹ÆhèTð2tB[ú ™0tÛé»?5ý˜®ò›h…u÷óó{ÕÁ:«ŠÊÒ ú+=¼½—ÞÓ˜y/z6ïœýœá ×3PBðù“ãYüf•’ óÆ78i˜>Ý·êGÈõ2xMÃÀÑ1uº´».'™î®ì4$”ëÌØÄ 2Ô:îNŠ[5B=ê¾”Ô gª£Ñ¾©DcÐùV]yHö«fŽsã&å1ƒŠó«®|äŽÑuUGë´.é—~8$¬.šø1ÖÉ{“ -«È=S:âÂB¯B–ƒä¢¯Žâ¦®ê-#zjΦðÌÁ´Óº…5ÑßÁ:ç&!›Þ]U8[‡¾\Ýž¦Âb6‹:È·M‘×—®—oså„4§,¥IÒ-mÉj–rlÉŸŽÄ:&¡<Ö^$œÆIÓ%ÀB¡F.,¢7,K‰3µÏ_»†{ÜöXZº×Ç·§!­Á¢ŽkI%'ý‰Ñڄδ¢ã!™´8väŸQ‡ tæ^éJ‚[Uª³w°‘ø”KŸØQa¡IkP©¹vP -‡yfY»Ã57ÙéBV†øü«2© ëIrmº¼AõtÆ'ârG}|ur1‘…Ó¨Dß8îD¶þºÙÑÄ ùêN{(ÙïÓ’õå©P{äD,T®™ÈN£<×þ`¥„H›¶ˆyO™ïp¡R¿P±™í¾ƒÉâB’;.Â:4€@r,„{]>ãz}"Øž˜JN¨˜xÛÔr‰ÅPG¢ôGÿnÁÝýëàÿ½àþxÚÿ‡ü$Í/ÿ~¯ï‘ìæ¾ÚðЕã à9${y&¤Â™Tõô# -j-%ÍœÊÛ,Âæ¢Òhe´¢Íº¾=59û:dèê͵+"nÞ ‡‘·ÄY[û Hì3ÈgŒLI˵¦àõ‘(ÎÖØ¶î¤Yú¿h¶ÊŸ6”¸Æ½+Pì‰È©"Eù°ƒt‰5HÊmÆ·q"í5Gˆ}0!&Ä•cJüÁ²ÕõØR0Rñ$?GÛŽ±ÌξfèÓÚ4‰N¨ §n¦î…l¹H‰T¸?åÒ†@º§nñÒPÆ.•km^н&º¥Œ”NýZ(‚fÏ[“jnËál/Ð4G£šÂ‘;̉ª„YÚ#Åa†H#,EvÏ/Ä - U:±@i^…ÈkP"ŒªÚ¡^eư*6 -cµO°XLM=ñckbÙv. …8Åg²°ì«ÅKhK/ÃGöGirö×w³ Ý?ø1¤» -¢´¸M¿SžPÓà˜Øþ÷Õ²bWr÷÷+îÒÉõΪ­Á`hðÒºfÆÿ3"²êµdF¶Á Ó Ý<õÊÊÊŒŒ/UÌÌ´U#šB?°ŠR•!ˆpÏ‚ ‚ì²Ð²D"]¶J­ÛâËö¯Ñ1éo™d³3©`mçSÑ\±É¤—/t!7A2ÅXazyŸdî9="|›³åŒZ¶I_ŒÌ…M‹½£¯“ÔIë“ÜŠ¹¥é'Ì[–ºéÌ™K=´Ü å_*¦©”¦`¤Šê/ÄÄ­"7klyl §›Êí¹4¹réÚ‡š”´8a’dLl?#ñÉPÜЦF}¿ãÈ eq»&p+ãÆ]Ñàt^°ù¡-kþše^¼rÚóÆ#Û7‰ã¼ÇÑnÄ‘‹M¼.æïgŽõm$<³²›óˆÃ¥_‰š‰¶QÛ¼£ás¼xý/Ÿ:ûbŒFaèm]³ã;¤–MS§y‰\t…™ùœ¦NÕ™=ïB`ÅÄ3w ¤š¸:R9ÉöécÝÔ°‚hq¨!>•牢ãN #Íß=”¥—ô@oª•†§<Ò1æ§€*±»`† -'ò¾ƒz¬G ËhB% ´MQ?ý‡Œ+ëþŽˆ.—±‹äešèH³±ó焞BÞi­…4Š­›ÊCcÊ"E¼ð<©ÆØG2•òÇp§„[ï;jˆ”1M˜áí >m1)úùùÖOÇ’H2mwPGErʉH[úw2Z®G¶W¦ˆÊ¾U¢QvõT"AÔ•‚xj®ù» —íBu¬Lë*âΫúîžvã*ü FV"²Çg“L°JÿݸûX`œ9E£hî†Ð1é!Ç’º5±cÕ¸þ0˜³©Í%@ޱSúÔ-â9˜k+Šuá%Õb—b[³‚žÎc !ìþ•ñ5Má1â Á¶.®jŠwâz̬UÀ„¹wôÄÞ/ŽÓÖ÷­…f5Ò–÷p˜ÝžÊX¶`m*ŒÁ¾!z}§ÄÌ"w÷CV 6=PêÔˆ@Ó>W¬ÉvkrËšÐtjê4jÃBæ¹ -O—_¼BWZž¹èu AX|÷ÌrQPÛDŸ„‘+˰k÷ÁíqpŸ,_ž<æÜ…íÞÛ¸Š~’Ý -&ï8¡¤;bÎölã‹‘,ò VËA¥ÁòkÊȘŒKÌË]fc™ÆNäïOò¿?¼<~ÿ’ÿâdãùòã#/ˆXül ©ï’Ïúàx¾¼=~÷Ü"rË̿LJ£;¿­a%G3Óçïåè·~Íûé?\ë¾½q*?òÃgØ%%–þ¤½g}øÇûÓ~}ÚWþü5öóõýE¹å_?»'y¤ôh'üõËçÇŸŸ?=ª¿ŽÃ¹s§ÝîsEævïÁ>¥z"8#?ìרgŸ§Ûì`p¬Ê*ìF~߯Gb=ìq€æ—〿⽲.¼þ¶Ýªžÿ0:¹… †UÙ¶ý$>@¾ÂôÒ™œ€Sgk:>tÏ_ÿzÿÖ´·ss”rŽs³Ö·7þÿ‡«n¤ ™>"£Ÿ¯ø€¶t¸Ó5Çn&”“N£· ÒÎxkª‰O®–»¹Šø—}½> ã»!Rmé°‘ìr¶8,ì@ÃÓ|½BÜ$ÌO¿±8¿»4yaÇ¡ÿuiþ¢µïŸßÜûCùWÞ|U’¿}ì»’üÊ‹~³$~f2#«z÷¦7+›—çÕÛ#þ¯w†›üœ‰í†ô>´+w!¡í€Ô¢`Ñv€û·ضL¬Œ+¦§ÈÞkõÎY8¬©>u2¸n¤ÿ?=‚©É„™+æ£}.;[´±âûôý;˜aXÁä´„ü|o§[ÆQ -@8‘øGÚSþ÷v™£“4J*,¯ƒÚ©5‚ç–I!Âãì’„×Zµ†Á£Íì­Çôúqmç·(ç(wߎÛ€ƒœ(s™DeAãÍ{dNÄa.77¸á†¢eð&’/A\KÛ‹t㳡¢‡í8Ñ{ É­ó„–Ýx£¢¤œ ÞíŽ4rH´:G’ea^ª© ²d]?Mdx›€‹XSÕw´„X0|^¹HÁ‡º%/ü“Á‰ Ä1æ—Xk¯òE9¨ ý=fÙgAk/¶n“ÛaMÜIÛûê¨ -øpbtÅOÛ1 ²Ë‘7šÆÍ….ŽÎú 6?Pqþ !Úº!ïÛ0*Æ*aC]‡ÃÓDæëdU'ú_%ÒBzêeÑóÂLñœ"#Ð_œ˜Èg^†ßÃy¥»ÉPûf‰õ‡D릎ë÷Öu´jH r׺P‘\䥎¨Ãžxl©¥;% ƒ‘ìg¬²a.j¬Öfqá΢lz= ¢#ƒ^”È\FØãžÐÅ‘mu–2Ӳ驘2“ AK0hÔ&ç–ÄDܶ¬Èü%mQýU?4ížè2¬Á1$$Ekƒ±,Ä™°a-¥aØþ¬¨k߇ÕÝ -=ŸâsC¬Ü}U¹kRp¸ŽR6,Fn 39ꉯ]‰ÓËmObµs¢¿šv¥3aWmSsžÑxFUØÛ6ÕÐ’oÇ@ªrO9Qi´Æ\s©ø›Êt#»¯Hž#µLÀn -Û*L6”oó‡:€½@Ãm)µ*0T;|Õi½ò#PY>Àî®në5fb÷óŽØ®¢.ÄžÇm„Û¤ÿZ7ÓŽçÖ:íD~œX]qäŽÕY¤¸!è° û!„¦èÐ~ )HÑ•f>}}Ñò·iq]®"Mðg¾(„Ÿ¶ò¦p¡nâ!×)Ž‹·±1úµÊì‹§Í}Ú ž…Û·Ùv­âÍöŽqk‘éyB÷Oî«%G²Üîû}*èOé8žÂ½È°a_ߌò½œ,xQ6fÞ$ùô¡(2¼*©Ç‰oLêŸÎ¶‚ž#¸ï`n }œ7]ø+úÝHT–¡j?œ$Qu¶( -ÑbЉßdbgsö‡q)Ž+/>2&¹g\bÎ/®*~ëŽaÞ9‘>§ÚBåhƒiØb'1¿ÔÆ<´ -ï—Aö:!8Ï$_ ŽápQ%'¦ƒ=Øn6žpE‡jŠBa­zS¤RœHû–Ê1jrv Åí²Äà±ïÙ‹56ÂósŸ§®; @,KÛ¼«-g܆;n­å­Ðóö¼¯ƒ!É&g8že¦§€BùM.D;þŠxÒ'ª~<Éfn¹¨ÕëÚ‘Õ•–ðíkL¬¥ET zwD ƒ´]„ä[W9ì•ᇽsÐs´^^ü”ççPÿ`óø…ö±ùÍÃén?õ‚/}Üß_7þñÚMþòºƒŽþ‹Ž.×ßÿ[Gè¡^ÚÅ£÷¥#,¼ ÔÆ’$!¥ T¦”ˆ(ÿç(y©ZùÚÛŠ¾©7±PC¢86&N©,à«ÕÐq+EWÚÓ'›Ï«v™¹§$üªy&uk’ R3”¦¬®¹PWÂý€Õ0@±«‘”¾W sõÁ~AqƒÇ;ÙA(œîª0ÿ/ìzpIªáZEÏfCãBöÇ€zŒs1•ìNöïÜb±0t’NÍCa|EÃa,l•À+TåmèŠ+kjâhKAÕ¾-[‘Ñ`œü…¿s•+×ÚîѦ­<­36Â@Ú6ö÷4ªB· -±vج†'À£…‡gŽ–îŒ%áè[¼ëâ°xZñv™1õrzÕ°>ž<.–á [ß¡"—d É[d¿ Á I?Ù]ô3c^R5CI ÖQFËvï³dq™|•¿Å9³h1•&c"É*Q‹T*3•bfR¨sÌ¡Sèß5îkû $©•ÅO‡ûá`øaÕ°é-’¹ð Ã=Þz¦™—Œ”[ôµ©7‚gðFʶµ.¤^öÜ_ѳôk¥—Êù¼mWfÇ¡ƒ— {<ÒAW¶zò&(Χå%Ñ€(xäÇ=Ø©QlSÃoJ4PÒ˱Dîýâaâ,=Y˜Á— Ÿ,Äqzþ¸ZÜL÷Î §D8É_gÏ1øe-QÜ´¶–ÐÂia£qøû·W ñx5á?Hˆ/)¤¶—8Ûˆô¶oŶ%cã !ÐU[ÕÀí¤<ÉÔ¤°B9²¡Æ)¥9h9íÆ\Ã3¸äˆ–µÙ³²îA,€ëÏfÒwˆÑÒagŒ|ëìw„ަšS±Xïc;×Î=vƙ϶äFrXÙ?ßÔÙ…úÌ;{FÔ¾ð1KªÜähöð ›…c±Ú‚pPoƒ¬jìpY¼l“–g¯¬V[€Ë¦1 fƒ¡¿¹ˆµ«öÜðÃEƒ‹C)/ö?Ôj9òñQEwó¼aéä%DÔÇ7‡F.¨…ßXJª;-Ç­,M;¬J‚-Qã· ¹ÞyPé ¤%ÇJL¡´Ô:tILë=¶¹N˜ŒÖ©,- \'­7éÊZk6_¼ÒˆR5ÄoÏcቴˆ€Ñ=f •Ó99³ðáÃi@uß^ƒ8Ý-ÝFáÚÓq7’ëû“¯ÆˆZíå5á’>î'ïèÀæ}Å©B®N†´Ìž®´íºß/r¤™?ç,ûÿƒ#ŸødÂK‡÷iã|…eÏû\®lnÄÃxíË@¢Gô@ª=›ã–a­¢wt|+›=ÏP6PÝ2Z#,Z3툶‚˜ðMªÂùÉgã¤ME:·¶a$_Z»¿X¯UÝwT$‹ëÊ>å †zQ¸7#±mþ›¨1ubjµÚ¼ˆxÔ½i´@‘×1w¸Æ•hð }/*³e”Ê&Š™¦NÓ±Tü.úZB| «8sôóô­Ž§eÝYúÚô]»E<þý'µÍáDh–´i²T×°x™zQJÍB6 -OÎN­WOSyÆÖh@­ë1‰½ ´ß㙜Èj4kDWcÅk¬÷²Ô=bÒògQüÖ§egÛ€Gô`¿å*&E¼­l¯PŹÖTj¶ ²]Ù=‘Ï5?î$~볃…F)627·>crv±%SÂÀíÜúlþö§Ú×åœÞJ¿.îû\nÙêyÃiŽÎíÐ ÁÝš ì¾+Lµ [¡MÜ ©³¯s -}ǵ´¢H݇…Eá/ûÉ œ‰»¡^|[û&ër‰çágÂ_ÈÑú]žDòr / (Çv~SÔYÎlÔáEÍ#‘0£-,wsª‡8“€ñpv À‰ûÞúŠGå#?ánv4U,G5¾¹buRÌ;¶VEv¼ˆ™"y=8_S¯\¸ð0úŠy -¢ŒÇ1þȹ–Fx@@„Ž@}a¾Ðå¾Àä×Ó/Œx/ýÚÉsqá».+"»Ã )¸¾\¥§§eu÷Wé__«ï§ªúé¬/UÍíÕͶæÙ[çsÕü>Ø„æÊÌ?Š#ô¨± mÂQÀ*DýÜ -“‰> äãÁ¸\„Õ!·wS`dô”ë»(N³à©¦Ql!ô)¾ÿço?x²óõb;sX;'.°¯sý^8ñ8ÏÆ·A–U¨5ûÞÑËÙ˜yÚxßž’aÇô”½MœhèÒ|pØáÅ‚î*/Í“)K£?ÈúÆVhn¦`¹}h~:̸6nç´îT¡'áDÀ¢²%à9àß~ÞpªÌ%Ê®Þ!dƒÐghµâpõTu0)ë†ü¥zwàOë‘ߣ \¹[t™c0Ì:)´îÞ›ºô˜KEÆÓÚݼY€Ö hGó`”¿¼íŽ«pÎÌäuÐ|‚àånƒGF<‚²¡qÁñl8åíÁªåPßæá³,twvbÞÀëÁ2è vwkQz´ÎwÍyµc?´†{ £Š9=¬J‚?œ»ÚÃxKþ,,ê+ãcN[fBo¡Gn„¨ÈUóÞl”õtN¯í6¡ÕÆy*8“_†{üõ¼’fçmÝÏŽðÁê飯Ò{ê“gù—×+«c—„óDZ|ªª$ïcñ£—Û|ß“Õúz{È^ÅÅ”÷©B>ÜšAQʼnݧDœA²×ŒÀ¸½¢³P°FäFnÄ´ó˜çÀï[\(‘ %òÆ»H(d˜ïâ²Hpè' )„`äô1@¤ì™>;»‰å«=´ -·u|i\¡qa޽é€Ç ;%ȲðÊÍá!öž:Þ£¶ @Äb¬ÂVTkGB²Aô¤²ëÉ] vÚ¾p!TúÊóNZv¥™'®ô¸.{È q@:(N—ïd—|*“5þ/ -só4g¡?»0ÿöúÇ?_·þ´äSÃû׿ýú•âí¡Œ^ÇŠç'z«xGÉfßÚ -¢§èi;%kÉŠ­Æ2$à€nR‡kì©y†Ô€D˸WFICJ1ëËfÜÖ­Æ«Ö&´ €–W` .ƒI¡ðª9Š€]å"&·Õ‰F-c]à¢zŒä¸È'4€Tår§úl¤rïYh€ºX¥¹œ´z:I¿PÙ”œoP-uQ+´ÂÓ6kH/à¶!‘épa"Z^5©n˨7@iÒ<ÂØ¢³´oÑK;[\À{ð¬%ë5©™í‰ñoê«e׎¤îïWxÉf.õÊzlù$ïò0 Ò5ƒü?™Õg ,¼`,ùtÜ®®ÊÊGd¤À—7ìÔ}¼á&‰üÛf±:Ù¹›û¹ÖâÜÁ О|”¥‰p‰AmÎË¡AÞ[û¶”7_ƒØå)oéC?•a8üð´n÷3{»Á±ÁꊢÊ&®ûö­•l[žlÃ{è:žHD½óožpÊ0O¾Õoòy^žyéÏ¥EÂz.Ÿ}sÙÓÜÏUšû—Lkä?HÙniŠU¯5HÒn™ùÛˆn„RwTQxYÊ WØ)Z ’/ o7(£Ëb­i–)¼rQo/aESF4^GovץŨËà›fšò(›ûëO-´f"ýt"hÃào°*…ôÝõBÒ‡Þ€i}¡ÐÎ!ðÜNÝ š ¬­ ÆQ¢rå’ ‘™¾ÁÒ‡Š#»2—‹®s‘-ŸR¸/ÛJ]PÛ³ŒEpqkÔ)•‹ÈøæðÖž¶FõêJ©ùIU $ÞHüñF¹˜B±ç>dö‚ª¿@{âCÙö .eZF\‹§t·B7HO¥“p"×Á}<>ÜŠç²Ãß Ç3#Ð’{G„`ên7x4gE\Tf>îù·Ö|’„n.ÆTµÆTÆ\í -ׂLÙd¸¶ ”s#³q·h=ȦôÔ'+³ÛcLÊR 6Y''óÜʇ/ß©&|8ôÑÌ“èÿSMðô?éôuÿþo§ÿ1¶úoýã;D‰qàçVï~(d~Êðß&ÿ!!RHž -W9’Í=±YfT3”½ŠzG¨ÓRɽ‘€¬e{†TVîlÊõ Áù€]{¬c˜·Œîϱƨ¾Ñ»ÄÇSG˜ÂÁ‘óOÆ@ý¤|œ;F¢>~žÐÿýî4×sðÙy:~º¥aøÙi4—Fùø•>ˆë¬tÁã#î6ÒÜÎÒ·@õÅñ0GõŒ¨¤é -nõM` ÊÂ{qRÍ7ö?’:f‘3¨G[¥ÛiŸ!-ï¬Ö¸4:ñ¾Ïû.sšã_Ù.jݰñXÚ?À…P64Ø>áJÜ«m,´ÆW5£µD+l:갚ݥI5l¸M#ÙÁÉ{k\³@‚»¾¼k»?_U¶Ø»cé]‡ùãšadÁ5Ï¿Ÿ#,GÕä•«Ïm¡`z8Bž¿é³D“J~´E/SŌƄŠÑHP%r2fEa,ìqÞ#nÎPóÇ2ÍM]œéí}pÇ÷Au[†Š}SÞ7{E!ó›ÂqÅ7‰§©ýèífÒuŒµ–B鼉Å0Ì[»Ì±ÑZZk…û²ò0q§hk†ü7 ײÅ:Ìx{Æ-=s…y4óörñð¨+1ߢo±ÅR…;ªMßržý\K€»ÐZ#ýµÄòÛÇ nC«‹dJÓ9àKG¯úvTEKç4‚ø®÷r2Ê\Yôe[ܵHmaÓé !P8ÇzYûÉØÁ¯ŽŠÞu-]zWñjn>W‹l䎭oanYUðÁô" Ùe5­ÅàŒÉÌ\£Rm‚µÈ=g1DF<èí.f¦ùæ2\°E›Æ‚†*Ì9LôÍ\ÂÜ ‰¥ç0Ñ6\6ßÕ­­À5´µhTà­JS¤-§RZwm¸ «xóÒòåìÌb‘6˜ÌÒ²¨ -©Owµ¬ª‘i@f–µ'U¹Èí/4ÖßI™|å¶-?òôê/6ŠJå:w]#\Wò£0Г+MoœâRH»÷õh±mK¨ÒI/¦wý»©žh+³³’nu´v"€KÉrÔh#Ø!Õkf²Ue‰v=B¢å~ -ï9–®¶>_Sm½ßÄ éܲ!{MyHéåàÏudTúí–fÜuë«’¯³öàéñR™Ž‡]ÇÜjþ£«€g¥ŠC½RɲRkvw”ê|iýޝC­®v5ÃL}Šb¦Â Þ˜IºÔ"S?W©L&\¨€vYö¢DBœŠǨzÉ«S’'T•#)¼Ð\S¤ŠÌ‘´¡]ÚFºn{ì~²›i©ƒs7ÙÞ\ÇËŽm]ö•^“ÈB¹H×¾Âîb^ÜQ;é€ùâ0à«$Èèj?t—@8ç†ÉQyBèwéë%¾û -wÞÂÞ Tp¼/–ÊÎ?®'¥Ýæp{¥Ý Ci§‹…¶K°s! •«î6§Ì«îàò“ênS„ºsƒz{Ô›LÍDuçvS©îZ ­ó¤Nó®KíHî[ìÌ—½·Ïõ¼k½?_Õrž½”öˆÃ¼–ÖÕ˜žY{>zÖ«M‘5ï5™%÷ΨŸt‡’þ>\ç%„Ìc%Xè<öÕ~…ŒàD¥ó ٳŊ¾¼ýôö{ÿ÷»Ïo¿ý\ÿ€|þé̓²œî!㱞†ö50 -ºÖ8îáÏ_ß~ó)ÇÏ/ÿòí¼ùåÛY÷²Õ [I>ÿqýs ²«Åþ®?t›¿ÚéŸßîô·ïšpÇûin?ï©ø:ázsÂeÍ -å^Õß{èíbª1èmÕÒô‚‘Â=¦Xêò³Å³ÝZ[Â\²‚c*NuÃVýR V‘ÅáÿZ‚õ?Äìš{q@™quzpAJÞ1Óìç£Ö^vÔeïqpDRrhðÌ^ÑR<¯GŒ†/ëѦÛËfÞªæÈ“HÓˆ‹FÌx%¥:i4¾‰Ç¦qçúêÙ®’}×^¤¢C½[µ¾|¶ÎùÕž[ˆ”ð SÒL¡¸B|¤ÛÅŽ÷êq^8¦”O×…”oÛ¯ìºÍ?ÿJè²Vð$,¸ßß ÍS~×EkqJRËЊþ\cÙ¡€ÃLõñ¦F”fíXJTs E<6/h÷\5™°ÉÁ:i-¦Ù¼É—·ŸQ¨d¤áÊùëE¤¼BN3MŠEc°QφÎr&e$2̃7âYR›eHP%°AìDR,T…CƉ>x0ß5ë™ -ÀV-Ô0ÑçÑ ¥Më1/jÕþKÕ‡uJv’ÕKÓ¸ œÍ €ˆÌ‰ }nà.'<Ä#†\$u4&ÞÁ©´k<F#Ï÷ÈW¸*”±žR~lÞSÄ„½Æû¢£2ó…;”YÕ™žÖŒÊ>ÈG Çf§[hþ^ÓBà›Ý:÷áàÑé{5Ûþ¸^èzþB~#§¨¡.#X½Ë½Û c8 -D|Ó¡‘•R¡oékN]K"ºÊŠS\4°¶Ó#ÜT ÌLéšZ/"HÑN„ ëÚ‚Æ,›Õ¤ãröRPú¸®£$ —f›oŽ ï!ê8 ±¦Ed?K ;°­\ÀtZÚÍL§mEqnž¡ ¿[tô…Æþ×¢ãç5þðã·*äÇïR˜,ÝgµÖãuæ.xQF!ƒ%iV–À´! ‡¶$^çŸgO DûS÷Í8nTÊÕîùÆôw§vͯY݇aÃá¿„g œ ;vRV€Á‚…'ã;0lšÓ(éjnÍ亲 ›GwJÝ–EXÉqÃóÝÏ<‘îÓÇ.Oº¾xÏû]ZÞUP¶‹n*p¨è,iÁ1»8Ft ÂÙFõª_œñÝ$š˜9ÄPÿ(c;ùŒe ±ü`ÁÏge­õÙ£hºÈíK?ÏÑ¥=6éærÙuñG ©ßû3›{wWÚ›çö`1Zä€ i­ÚI„Ýç¨Ïʹ׳}ÿìž¾gÓ¡aŸ3#.l mÅ 6ç·A°ØÙ™›¼ÞžDq6…œ#¿D>i›hé~(ì\ìp¯ý\=–=6šÕ¾;fއ s=Ì‘]¬Ì3v¿XÚ© -¹ä©ÑfÆ(°TÏñEŠhJŸ«+ ;5Ìr帤õ4¹H?£33MB¿eª›DùœIÙ”8\•µîž…DÃŽjiÄìFlwH_U@ßû²Z;ý‚¯æÀæ¾;/2¢¬Ó–aÎÉŽÍ‚µ»Ã-šÑëáÏ=S €ýLŒ~ÔÛ¦§Â_>®±Œ2ÚþtõÛ?ü%ø# ö;OúúãI`ÀOÛÿãCé¹keƒ 1¦ÝÎq§r¢Uà|±v$ K"®?)6há³øÎ(„ —ôØ(ˆyt³ˆÈd¬ z¦©ùrIÂEflµÞ8W”ÐîðѸ0a5¶­¢dì^;Z Ò‹%cÑÿ[)dÚά4Nçì¡ÐÙ%Åí–sWµ{Šp±w¸su5õ’\5E?¾³“õ÷5¼µá‘‹åà¡‹õP!ïÑûÙ–S‰IY 2îY«RšIݤ„QXÞ¦Y¬sȉK6j\÷b.çœÉªH~ù"…™tˆ%ÚSoZ[5HN¸f°4¨ú@Šâb ñ6¢}%”°Áz¦ Í]'¡p³þÈ6Ü[ƒRs[Y'KÑÏ«Ý) Çy;ù°ê±o$údê·>™Å¥Ê›¬¾å²ÜWœW´k­$MŒàµ$ÀY8ì4“k—v-õM4Zv”ÚXUs2ß­ð-Ù“6ì´Ì·Õöãå´ë;ã8vïj1Ùúu¦3hO*ôcl”¼&8Þ$ös¿n Fnj½ã X´Ö/óuYãæþ¯ñõß½Ÿþù!ÂE:î7¢ó¯¨£›pãïëÝkáM±kQb_«t -«·H:Eì8Œ‚—#þŒkšô½’M´Û\A]©E{ežn©ú>™u´‚TÐZᥪì.®–Jl)ßëÐZïÌíVÉîµ/©£¡ÙAêh¤µE̾+kd“£Jf¶$¾µž.°v„;†BÎ_Á] B¨úy¿ Ù¾çùp­}6JXëÙƒ_ÆmO×X$cƒ]u >ê›J2ÓvÝßâ]ÃG?<ÏòÚAh›øÄål6DBë8‹6'I5†/ŒS¸Ú¸…rq ¯+#¢HU)[@kvR©qt,ŸAqÎÚ †ceajRýb€m®"ÎA´ZQƒ80ÜV™¦º5ü=Ðp§h nM£‘Ñù<”„…M÷Z]Û+Á^hüu°+ŠËª>ƒ¹` mçX€†Ë€  3ÓçÝìã|„¹àÞ:PŽ!qy•.-òÎh‚”7’>`ÍkÆÅ½´~ß9ÛüËJx*–‹°åÅXqü‹T/vÌI7ääÄ7\y°]®6©—øLs·úèb³+Ç»9÷ù(@ÙgC‘@ÓÈç9VuøU鯦î_/Zˆlðì]u—ÃÒЀè¬ûUºÊ*dkÖá”PÅD‘¦æ5ùcSùVò9~^¬0?­½(ÙæÂ6¸SUéÌÍ/ÍU IL{¯bÊ@wOò¨-¦OhÚV•^ ‹;Á4|MPIœ¦ER”Ôú­ =}Gtg¤UÉó‹æþ&!½ñl™XñQ‘¤vÃ^ CÁq‘`cciÆ=¦Ôêì™H¨KÞ°¾N‚„=]:Y|aÚÔ%J£f†¼×ZÖhŽm,| *Ã{l‹¨Ò_a´sGÝ%2¡Ý·Œ,i–÷|Bã¥W’mÒ_!I½%jÌ+¹4m—ãƒîÆÎ˜t… -VÏ3ÇбÃ3ÄAþíê„¡¥×˜ã´A$ÍPî)Ÿ. d» 2šôä(é¿Ð£'·;é#Ó>ìéí®‰§¶³^‚óÕÏpãÎô»Ê¬ŸŠD çï,WìnjV«ÁÃ_?®¥[PÄÿ‡–znùÓ?mùM?ÌkÅï´6w˜ Ÿÿý!™†‘"BnÅ'jm?eâÿúÄ™ ¨SSïGÌUnP×Ñ2=e±%cæ¢8{öŒá‰èV;øuáÂì…q¥h”ø_ë#+•+¶}íÇyË.KÆ»h>ÍÑÍÖ¹C€î×õéÞZJéðâØSÑ£F$û+ríw’ ,œ¥¶¨‚§ê@wvÚJjë~-J{Ý‹ ãÙÅ>â¼FY†ç)Ù -ǡšÇ‚¿kç/Ÿ’·ðI¯×*Ñ]!Ó@«šá¢V>cxÓÕl¸Š<to¹ŽÞØ2-=¾yl@éo3nP/ã:9Pæn»—6?÷PÐð6Cͬt ¿›•ÃBu”:ŸtqÓW\ÖÎØa3Fhhú΀ѽ@—!´0ŠQIZ¡3-…uwSÁUR–ƒ9£7uˆ]Û±ãN6 ,~ÝpĉO88›Ì ÏBÍ1»‰å.¡s²ÁÃ|goˆÄPßn–“U»VÂaóì÷Ø?jrÙ9ZšF] ì\8¦¸âëWxÙC§Ã6/ëÃoúÐ/Šüí#97¨&J¹XÜgE3¼(tXèäWŠdu±ýDžA:8ç[«\¾û„%cT¯o§dÀìákq¤«æO8¥Š´v¼÷ï‘Fœ`Ç€кÚÒœ€Å\ÎÀF¹Ô5‰Š…¾~š±vªF¿t0DS¡*¥Õ*ÞØð`FâºA'e]Šx’uY¨'eÕæömq¡XAJk»c„IÀàL­k¢DLk¾IÄæ&¯ì>‚ºžã9ˆ­cÙJ'¦1wz=0. ÔÚñ -"Ý„S‘æô`š ט|ι‹ÄbÀy  ²?Ÿ¹I(ûÕÕ;Æ€‚Ý&µ~Ø Zú½)îPªB/(ÑvÖuª5}U:®U»ÎŒölÇ–Ab••¿¤òÊŠÑ,Bñ_f“ŸvúÛôò×óC=[ÿëCâË0•Úçhñ4ÿ‡öBe²½š†]­´!Ù¥`—)è욦€3 -þ¾Nj ÄÛÑH¥ë­½‹†°¼ñØß4ÇêlÑMZ%P´†= íu¡…xÅf0y“É=ÃnÙ„,…áBºQ<Ÿ»¢ ]W5¢Ñ9Œ.Ü8ýB16vŽ›j,a=ì]T9‰ÏÇc9Á1,àó džR3¹snEWÏM*]4 -oÉWò.]@~iÅV‹öë=8|¨wP³·×©ã?g£§aý`õ%‚R1ÝX«9“Ùùˆ ÉÁ½É5·rOÔÎ;^bœ)hhækyãMZìƒæ÷BZÏgOß· ä–f'ÖàÀ}Íyr¢dS¥ 2ò¨ß#‡bÅè "Æã€xüñÕ’cIn¯RKoz Q"EÝÃ4ffá²7^¾½ÌWÕíUÁxÓýXÉTJŸ5ŸEÐ.çã æz>ß}¥}C8¦r—Jºrã<ÑdjÚë$.À»Ø“Õám> Ê()l45ÿAóW /f}P؇Ü(6%Üh©J›(T钏Ŀ^Arþ:4–§ßªÇ³ äïæwñ­op@76Q§…ÍÒþ*Póhçbîu¤o‰Ì³ÖÏå·/à tç€Ty¾Ñ~¾u£*P3ÚâRAÍz \ŒÁzÖDs£ùø9œ2J©3Íø´ËŠ¡dú5ããtïùéè´D»ËjÏõ쉞j~Ä(õó¢náYv|¸^|T××ûéùÖfŸ+ï“°úˆj’>ÿÓ?]u–ʦŽû܋߿ʰ7kß« ïÿN°¿ÿüq-Ý+åKÐÿóç-ü×ÒüLÕÿøSWe -YnÀåg¢..åðú—a&=ÔØ­‚¤9.Øú*ªÜ"úÈÁ‚q(@ÒÁä>ÅoSD¾™w«¤ 5²V{ÇRϘ9]ú» „­Xe«;¢¦¿Wöôª+§j“eóÒêu]þ‘à‹9#Y”±EG/^µ_„Bµê]GÏšN¥Æ>¢×í\ÿ•h îÖ¤Bsº¸©¸Í“Ç|JCÝgÜíÖþ††hÿ2úòIá˜à´kѤAqI`Sƒ”X ÚíÎE·±¹Á$M_ʹׂö@¸6_%Ií½&³ÌiõjBcÛ -rºð¨‹s3SðOCø¬³Õk4_sq½Àï=ù¡#ÛŽÅq,,–/© ‰z–Tò\û8åýÏ52΢µ“£\“²-¡^—h-pzsö„$»BÓ‹Õºât²Wü0hLý_w°ëVà9L=X{¢9AiX‡NñÑ -gÀß-JeiŒ§N¡—*Ÿ{ k$s‡ móã“spDïdœ»E5@oYÈ1òÖ¼ý¨~½ïšùÙØšµx…Á{®9¨ß75•@Š©)—oM±È$RÌÁ&šÕg®6®[Ü‹¯œÞ |´[Óï=H@‡ÓO‚¯a¸`\pìC,péi¾ªý@ÞÄŸ ÉÏûí¯ßßúÇ¿Þ~“ã»|ŽgùMr஌Iàˆ«Ìw9¥Vx¼mbððÝo“4®¦kI|pîÖ¥H¡µ8’EÖüß\YšÔÅ©Œ­µlá3/E%f”©Ã.6-RgxJHºÄ7y—9Ÿ1Ù)“Új½}°àZ- -RG8„qli™ß÷“*ZÍÏd&Sóƒ”à¶V>cGœ †µÅp› ·Wˆï¸_' -0–`Ø\—ˆ `b@¬S‰[š$ü‡ÒSCÒü™Ç#"™;W>1€^Ÿþé½udŸ+ZЮ#|é9£ÑþKøÂ8D‚[Hç³)y¾¢5T -M -Íç‘âà¡f1[•äÓnÒ5Év[-J„°©§zÓØN…žÃH!À6Ðdý&àÞ#t ‚½—&4ò‘4pû(%’Lœ>å;/ñTc!_;ÔNlm‹oˇ|"IÜûzX®gƒ»Áÿözˆx³ß áp[s«ôÒMüÄ’Ùœ(ă-±Œ qé‹f«[DjdueêÆ„x~œP.F -±±HI„Q÷*bîÝÔ!€D)‘S)l–€!†#ÔªH¢³rqÉÜÅó0•Ÿ€V¨Ÿ*ÇÂÑ+J.¹5M^9|êøREÎòRšV”üDÌÎ¥ì]”ˆ‚[=ÎíÐ-Ê:æúfÓíøS-´zEDÝsy©[TæEÒG÷v]³'bîÕØ#.é’ž[Õº\¬t”jcQ¢*Á\V5Ô’Kò: -³4¿B޾\r;¡^ªÈ,–ÔÈTµíA+UpaÛ¥}jâëB}™ÛU¡­H݇ éeuÛzºŽ0cr] ‰hš ¯ÓkòÜ-Çãä«‚FðcÓÈâ>y3GüLã¿È®ó\ŒTÔšì1—K´Í‹!‚n_¸DE·CGË?çÎÞ‚{knйìp-{eo<[ðGî Z[ÖQ}ä/ë¨Ük»‘Ò|@dô˜ŒîíÜsBþƒ¹G.ñLUa \óée1õæp?Ë:Ø€_ž¦›s‰u&#!Sï -x Á‰VöÀ‡:òÝI­É'ô. vHu@°\xË?A¹§N|°°†7˜¹ÅIa¼²Á=«CjJ¾µ]äËÀ§—3’•Ý\PòÄ‘£…Ÿ€f ø _B×Áõm &ää Ü¿ü2 <†\~Eš™…3p?p@ìE’B–md³ p4.PëGBIU™E¢›$ o¢ hñV -[¼vâ Þ’E¿‘u¹=¹—O&ê‚f­µNŠB'$û&]ÎÀºÒjýþeá»jó(åÿ.|P¹ÏJÑxÿy¥ßô?³ÿðkÿ¡Ãß¿¨‚q¿w$F#Á<÷ãs ñkûìÃÙîHÍÀ»Ê¤™Äæã¶\[‡-$P™¯Ãù‰.€ÆdÍü¤¡^a¨ ™œ¾<ÝÐõ’ïМEVû7™SH¯GS¨ ¿Ç¹‘.&ÿét§ÄPJ´ÔÙL‚-]"qµð£Z¨ p²¦Ý"ÅÂÏa²q΂iÂò‰.qÖ§§¿Š6ß$/`¥ºtìÜT£¤5Là~Dÿ7Ís;&ɽ6Î\’\Äߨø§8wqèâ¯Ð½ZïA[Ñ8É”a|¯/lÐáæ,_ü"ˆ!û¸4Z>¡xæýôÔ”^?Zךy5pc Å.j•‚7díJ„ïÙÚºÕ#Ü~Ó=‰?ò8s?¤DÓ6óa!˜.J±}¬©6¿ÏÌùL:ƒôR`§è2º;’¢¶áîZTu˜Ò‹ ‰ý›Š>Ïl73t°©ï˜ÝÊ ¤ƒŠI{/{Sùø„dW⓹‚#±&!rµ]‚ÏÅ¿\#&±»W¿âTžY¨…Ó£Žóú£i–Ñ%…ûV4<šq³[f¥­69„c~ßàÙ®7­94&ö³£@Í…«Ø¯€/K iõ„8#PMAjtážÌÕì×ÐÆõé× òù ¬™2h;ñâ«%9²‰í纀:˜L~3á…1%ÏÊ÷wH¾zÕ¶',Gôx#=ÿd&€Ì0/¬*‰Ls…ø‚.”á4PÏ2\á¨ì÷ï´& eÈéd?™1bDZŽ9@Ç0 †~$„ÛNÀŽcû³ ²oJåBß -ÏŽ«CáÑ€[Lë…2Bü¨Ž‚*lWEÇ6ç¡G£ô’½·Ì Þ{º™XP¸r)’#$Ho iAïDy}j+Ð:%­ü !/‘ÖçþÇ…üçóCýce|IÙ)ëm­‰ 7i¿|´RáXcó>]Æ0o™ä¶ôV#¥­§°óT6ІÛ|×ñô]^ÝŒY>¤c›Á|‘ 瓾΂µ @Fj%ðAS®aÕ(ð,„D䑦UÙDGÛë<€–¡Ìg›‚°Ò”Ÿ-ÕÎ~Ëì¹ò©&\×›ºíÉQÌ™ñÚInÊx -šŸ“> Ñâ²¾Î(KEJMDq€¥(É•…ÁžT`_ò`{tÜÒP e°ù{cÇb>ªv¡³% _ƒ’.—»œ0îEBë´i–õà”3{–’ú–…ĦµæqMZòFË^EËmé¸ñè»BQp¿äy§–QZÙŠ2©JÕ)Q{iå:®¶šæQ5k‚b¼@8ñ½»ËÄÂù…,³Žc½â½F–n¨-—¼£³J¬êêh2¸h¸²0 =ÓÆe\rê`YXØá}Æ;Á®t˜Ò1UéÁ,NfÔ–B»q˜[r'¬°«ÈÄÎoªFQôÈ©ÑöÁà¶®vÚBMìC¦Lk¦Éó±µ!£Oî–+Ã[ˆ -ö[Ò¹àñŸ½kç~«,;j7 žc{UßEW2Ô× ¨ž'oêK+Ìu6[8‚"7…1aEìì>F6Ùý)a¤«/ìÉÑ“^—]QOfìÚŠÞS gƒg_9­3 - ¤C!Ò…|)z<»FD ;P8x¸]WF¨Qwà+gª[ñš[0ZGš·2´;ꊖ¾·iï>™ÐÃÜ-'2m¡)CXšÒÂ1³oÓÚL0 ü³ª+þö‘›Õd±ñìú—·]V®?¸xˆ[­Ê«ÑF®qŽåÄ3e4£å…0®zË«2¾>ßÎKg6]0 -Ú¼‚²ëÓ‡"&Ë81‘òà²ÕK¥.Ô¨˜ -¢YE½ªrgAq›u!Ø›N›b0JºëæªNÛ[Zr <Ã0ÕzYxekºtò‘MÛ\/¶æ¼ZÓ$@µñÞ(UÆèW§eLæZªL]•馶îyÊBiè.ªqm˪ÚdÓ¤®P¨£SU¬«ëؼ·*Éž}ÓtéÜÞÙZ¹e¶Qíq©ÏûÔgFoÜ[“—>„ç&Êœ<`Ú„µµMÙRۢѹË¼ŽæÇ,Ž…“âÊžV–2†é»É¾Ê6Õ¿m_ÔÅÙƒóþqûú©æ5ä¿¿|Ѱ¶t¿z`H^†õ j1¨|'Üj­øEÇ&›Á’…š¾{Sy&„ìÃ+8}-f7± -8\Syd ÅŒÉzµ*¸"l¯¶¡Ž5§½Ò(bPk úÊÅ/ }]°©ÊÙžGy?ûK!‚wlyÌ\̸v ºæC?5[¬sä-c¬ÃLö‰¦Ëf‚DbgAJ°L©ëžïV²×ço–G‰day²51¦§ÂTŽirðè„cÁ¾Ã½¦“Oª†¾>Èòv $ ]3@$Pšü=¹¦êxîè ú>Šäy’ÇvYy˜€Ù¦‹áŠ–w†ÍŒª’16ÙvÞ±”©í|ŸÇÎð N1~+DÆiè9nhÑ4Cäz–9 AØW†ÆŽasA!Áa€¤$Þ@ -É8X§fýWа(Ș ‘%B’ ì­k:cÙ¦•"¾÷ÔpoãÚd®ç¶c›ƒ1HJ•qP™Ý 0WE¸,¿O\|Y…:ZŽâ©¥–7RE”½~ fˆèÜ’R×Ca£'…]âsô£ËÔk¾òQò`Þ– -׳{ðìxº‚Ê4Ò•IÁ…qʧ„£@j¹WèËLožNLØwÊ·±6“zŸo½³ÐQk¬xGðÿB±ËÂoî¾^¦c ITy*tãKjmw¹®/z­rñ(¶Ý$Û^5»¾jv½k¶¿hvûN³Ç‹f×»f×WÍ®¯šMí”bÌ׿çYñšã -óekÛW‡+Í] €øZ­×Ý p’‚ƒøR¿ƒrê¼ä;ØhôToÐ_* -uÓÇæõ'ŠR1J\_T:Ø“ƒâuÖ¾¸é⬯Wh5~©Î?Xý¾ ûåû~ŒzŽàíx—U&,O{ª'üû ’ñ]©2òžx—}k÷Á ^-RÜk þ>rÚÓøA=DZ”ˆÀO ßf -N%Ä`¼(a5*ai ÕÁ[×ÂÑüQ°éjì=¿OПÙÈ<àJÙ -’k·¡j¬å6ÖV¥Á{Ïtð|»óyµ_­{%ìc>ŽøTÕ¡Öˆû½ïcÕŠ™¯±ç’?ÎRE«ö½®¶Ó‚4¾!´øDÈðg›ÕÛÀl¼F鉸œ ^gÔ@°Åƒé¤’n¯¡ÜÊgã7=Ä\ëj”_Šœ´Aª·¥×è |»&§ë޶eŒª¦ú¶Ïd$Ü%Þ Œæ¥’a{S¿êÂ$¶|W2zfêç{á¥Wš#.f£Ý@ÙQEá2»ñŃUz€e\z†y‹á!‡C±BeVìrª †hïƒbèŠÈXWëŠ!•m‚EPöRW×D…=}¨Q¨…ôF¨f-80ðœ¨SRæ&…|?ëT×1Ø:Ði»r¢°2³ôRÕöé=˰@•*‚y"<‰ú -›v0'§SaÉ%£íüzÉR"8 }?˜–?õü~øwÒrŸK×ÿ¹ô_¦ã)no®0|Åý¥˜éì¡ÀEI ;¯î*RL_6×–²€%ÏK’MwÙU:¡]¼Mâgk«ÆÁâ‘7u¾iGAœå|üô¯ãI„© ;Gæ¢[Sú a'4DÄÚèãŽQ·jvTÆóôXgÚ¹ ŠGËíF·‰Œ=šð:Ø¢Tå¡×˜Ï[ Ö*×­hó€Ä ›4äBËP†$c'gà4¿1_µ¹•Ü8ðÿœÂð@õyžI‚ñI6¹ÿ²ª(uÛoØ2»0à×ì¦(Š"‹EÔŸcû -1ohhCè <ìþ’)a÷j:di”áÜ3ÚÆ¢$…f†k¹lˆÝpð\¢“ RK$Œ Ø!é »Ð¼¾:çÂà+IýeCÙÚ›zÂÂéð§ë€Ç[hýœÅ•Jœsp=˜ec#‚¢¹³â£åªèÕ›d¡IQq9²_ -PÖÐuÉiÝk_±G1Ý3Ï—çÎåHÄP@^l>É9 -´zg þ‘¬ÁX@2ôºÆ>–*{VŸ•£ÞM¶õ‰cUð ›ÈKð~0ƒ–0©€'û:ïž™:E•hhIDw6°ã\×y6ËҢԲŘãMlްå…פ…]üýv´;Òg…_žSÞÃc?}‚¯ÃDCfûÁöÑÅ e3eUÿî1_¦øeF³–ˆvìÉ+}tã’)L0³Ä.˜zŠÅöhÔuÏ0*NcŒê“§é -‡ÅÙLŠèêYehÆyVж„pÆ -Å9¬í+ˆt;ხ-üÛ7¾ë²ãTÊ‚8ñNˆ†R'â”ø÷哇hµðñë‘RGL:°Æ‡…ÅØÁ¥FÄ.¨ŠÏV:'³NæÅ í (°7V9 –`R–cÉ›žú¬¢C¥T·¤{ãöÕJÛ 1DÖµ­²”aÚSí &VB"X7RaS{›Au­ê½GÄÑÕ’Ý/!îl‹#Q±s4Mæ+§V›»ßq¢Y}¢?¡I56%ßÄ=n‘ݳÄg¯Å42oÿ~ÒÉ”™õY/’tHA‡ÍU2翬 Wã­«·PeÈ·+¶ÀÞ5öv·<ã·[Èñ£s·8‰r^‡ôó—}þ)Ì=‡¾|à›/DCúü¯´Ëf›ï\ö»Dkûû/¯¿?t…ß?8KVð a^%ûÖJcWÆ€ÎãbQjú(À…Ú”H¨¶P[*&«PC*ì´€ÚÆ³Ÿ\…}ç*ìÁKÃZ[jµ_8GŒ¢ èY\Ï‘c nZ»iå䚣ŽK$á$° ‘gy¹‰8ç¶ÃìMvt¶ -½C‚Âëf1j~4•‹BcåïžÊ¦ÈÉŸo_üçCiˆaÒG€‘U–GöJçˆ_bcôÿ³ˆ~"+r”%ñ“j»=øÿÆž•Qh8áÝR|ùÄ'oUŸr޶­©b×c/ -yöò&Ð73g&rQIê4mnùåSø¶µå6,­`Ô2M*‰uOcΣM= æg6'ïCÆ‚úJä[Dúù­1\#‹Á´]`v‰ãá‘| ²Éš‰ÍJ'ë‚Û^JÜË29[ÿ†”ðFžÖ³Ñ^çg5¨…¸’=i j1ŒaêM|N¬ß -n ?Z ß0–M5¦Ì–] £‹Ó`Ý}6†TLgrhL‹åNêæÃìÒÌ˜Ž¤Nlý|õÆ…95Vz{[ãf·r`Õž•¤e{SÙ§OÎ)\hfû€. +×é]^’‰ÉòŽØ%)œ!+Ô±Lw6÷õĆº9¹¢ 7÷eǘq6eGüdŽ¢Y¥€E¾ÝsñÃ-º¯å·¿ÿ öOqí¾ùÃ.»|{ÖûK°4óƒVåîYÇ! ¬Ü³Ç•Ì;øÂ¸uWh¯P†´0?W;keˆ -g‹å1⥦øŸß(xó„þÊWËÓå¼z¹¿r¬,‹¯ŽoßxÕ¼Æj¼B¿ýÊö«²>Ëúã›Ë…sÔo¼òágœ&Þü|÷}x' ¬XqµzB …Q¡#Å9w(ÚÉúPà‡),W(7…¼+”Q¯«cܯ°_Ÿ)ÆÛÏÍ'™yV.?_>…ðù­ÂOï¨U³å¶æ|ù׋õ7êýÅ~iï‡m¯Þyñ;ù2h.C.ø1 ÿš€ØÁå&‘¼ddÑ«ÉesQ_¤"-âµJo•"ÙÀêvi®Õ· °JÝÖ1m}1DÎíQ¡Ôéã¨d)—<ÛS˜‡(Û8„à(ØâTÃé&N""SÚ–ÄgêEgR¾)Ç–aSãm—”·iû•¶Ã`3~¥£eõ6òõ•„™¡%J@a0`´´*â1A6Ê +@?ò‰1CkbÁL|PZTYb5 &RBŸË‰ÏžˆŽdî.MŽ© CgæÈz=¡hÉU(͉þš:‡Û\^ªÞ'k‹šl‘LƒáÔÎ>·FÇ Vô^5 ”í±üqÀsÁâ•g„°Ä­A¢ãwèä$ñ¹º1 Ôë>9o3Á%Ú± jI܈æçhÇÐØ§F0ãF ÅÊCyàÑæ{e2öÚ ½N½f4(ÊÙ4߃u³²ÁóÖÊÍÆ@XlJѰʲI±L\ F&u!ú‘§¹`@Ê‘‡Ø.¸ëH-ŽVWˆr¡"çÁ4MÄ©PÑíª"IÇbèVEš»ðe¶HçY o¿+™Á—r0m¸¸,ô:ójiiŠ*“:·@Ek·o¥)a:¶êjvc -‘àDêÃs;å©ö¡Ág4v6˜.#ÌÒÿ,s{¸Ó?ɵ÷m %°q*ÁÙYÒ½ÉeRßFaõÅú´%(Páö †Ø 6MuD^™ÙÙü~k‰;ªX—EŽ2(ÝváìùÂÀÄ{¹‰Jhõ|:ðZÛ QE}  ºMvÝs&ËÒA¿£©Í°ïf_{§p(…Ÿ_Ø_Æ%ÂÓ¢c MEpÑy¿-ÎO%Á)㳑O\`Éý<ÂÎü½º¤ÉQG_Pw°?ý¹ÔE4«+»¤HΫ×Ò®8Ì:gÃÝzv-ËdYK:k7; -‡^ÿí,Ršh¦Gd…Q…B^\Õ*ä°ì¤aíð,Q[#×l†S¸œ©á’íÇCxà@¢!f&M´8=Ø,C†°<ò1E,„Hˆó è7ö2—@ZM]5ÁbÃg€EWœ^e•ŸÜt¹©â …8Þ3º£c ReW²+…ë -dˆ -q¬bäÃྒྷØM׎èÃ˸á8€î>Φ¤ˆƒï|‰¨(•/¥Ø=ùÞ;Þ¨¥ ‡¿˜ïB-ÿ|«÷ãßÎz¼µôàÓ{]øW†Ä£5¿rpÉìAõ]W‡Ñz¬OÁ'ùû¹hRͱ—-³b˜ÍFÃ=×@ݶ–Úx슧ξT'ê¥â™“=”ƒK1JAFæ Â¸r¨2CBµ03SpM#y.ì—ìy<×–1Ú/@‘ðâ¶‹¡/Íg, TêFí-ÊK›€Ñ°FØ1Y”mçBDE‚ûg|œµÒ¸l-B´e).â°Ô}ã鬟:mõc7rIzÕ0=zàÆµ¡#”V¥X *PØ2Ñ m[4Ç©¯–ÜJ’¸ïSè-äÌÌãí1z!a€1àó›Á¬ª–† ÌÞHÅW•þ‚]'wÇ*Œå‘4RÐC-€pO\ª1¤¾P.^2ˆ (±AŸE´ˆ”ÈŒŒ+q2ߎ ¾ö‹Ù5¤Q¸–Ÿb¹î¥J -sL‘Kh¤Äc>~?ž½Ä· ZÁm‘5ÑbKV“ã $¦sˆJdLFQ0°Ñø³™Æ¹È ð¬.“¦»†1ýf2@Áv¨KXuŒ”2=oM_fÈ5ð¢üÉ ùýd<ø[²Ñ'}Rå¿d«¿¿‘®®Šz/;BÔ¢tµöÅd±C;!Ž9Æä.œ?Hl'`tuŸS”ÏM2kvI;Ãh‰€ê5 -·Ô.‹ºÇj¨wX[+}2¹Þµø)xΙk/[YFç¡HvKršüWŠkº³É"Qv¡"x,?õÊ9ƒÁª¼5†=´—ࢽJ¼î]ÕYuñÞs4¹HŸ¬M]Í…ÿI§—.^E‚‹Èsi<´k½Ñ+„Ð*†Y&‰^Û"ÄõÆÚ@˜E 1‰J•ÑG¢0¥ZYž7!•³g&\X]H{„ÌåÆ?''ù^5æA('2êÎ À&²®êŠ+?]R³&kÙ…q‚ëm˜€(b¼Þµœ ü¹rts8ÌÌr>Xxè Kì+YßrîÕµ³6ü›œ°D¤fx¬ñعÑh’[…‡”¥ñ7ÒÑs r®®YôŽÒÐÛrN ΊJ³ n…‰4Òî‘´¤\÷-µ$J®ºÙ1x0­²lÐàUÏÔ“¨(1‰Š-jWºßÄEŠDÙG@¸ªXúÉUÓt•ô4 óyê­q{Ì=’ᤅ­³;“܉øljƒFkŒ¤ÖÛi×Ébiø +Ál¦dc¶áìÝÝ›¨žC4¥¶äM¦¤s„—WM¹æDhðä´¸t·}½ ÜU}4ì—ÿ¤1â•â‚í¼ýqh´šõkm ®Ýûc×ãÔÀؽo-洛&M‘§NaUáÜà„OÉk “Ń X]âé²›u®ä¤Ó¾E½íza§ôf„]ˆC`Çèån·‘ó÷˜”Ze‚,íˆ/ïá!ÃǸÁûŒã0ö>bT—Õ@Žë]t{.Ьj¿+Kƒ" q<‡!Áý¬CîílˆÂh÷a,šë•éZ„ZËÊ|zË‚–·ªY„áz¬fW1#v5kA/%cM4q¿ óÿn¼@Žÿ=ܼë‡y-ÑÖÿÒÖåúî·/A -ˆ%® {¿ JWm—Ë€h+¿¬)P/άqˆxϲ{·ÙYß8ª -9VO–fCRjÎ4œSSmæ3lvqÁ¹Ž¥³Û~¼¥ÀºV®ÚϾ^bùk5‰§Qúã\µêYÝÄ¢rgPÀDZPˆíñÒÇc¯ú8ópo) ©dš˜&)×–œ¤´rÝ$xR媰J}9{*Ì*ðÖî œ÷ÊÐ}f‘ÐÊ‹ÈÌmõù8:n¼Ü+KßçÜ¢#á&R§ÐuwtDßFéúîNA!_eªWí×.Hf; ñï~F…ä&?¯m:ÙÓû·TTicÓ%M GÌéˆõ¬Ö6ꮚ–“…ªv1§RR±.ë.ó/‹–)£µòíÑ2#œ•‚gÔÛ@Z~|K³PŸæªB=–;Æm¨?KžÙ6^áñwå >*ƒ'(±*íbq ÈAŽñµ¡ß¬KˆrØz™/E⫞w–½žU‘k÷Ž¡¹Ïi;¯ç=% nÈ|tÝô’¡kâ¿%kŒþ‚‹J-"°Ö8q:Ö âm‰9®TðϾ'3yh¦-¯“Í»^éNG²ÒǬ’ À]CŠÎ©0îTß/µy•|Ñb©–ØX&RÅî4*ž…B‘Õ˜÷9'ðóX¾‘\HXTÔƒÜ ÙWѬ…÷Ó(P×E8Ä #b±¥ ëû'¶—i7æ*à”ç†hsç±ÁÒp.îåÔóvð}j4Oå³6´<¢Æ±tŠd'Œ#–œˆÔŒ,Tƒ_ûý6‚×ýZúâ±kWëç‘Q ó\¿I7é¦ kÞÒ È3Á ü£—ït2ÈÆ>NÈn+k5mû¬TrÛ“£ë<†¢®iS7£×s`“Ôcœô.!ê½¥UTá(Rþ¸ -‹ÓWÜÝ‘^q0¬m]HÎÜXžæB½J٬ϢsÎ,‹Â·ó[Ê‹oz ÕkKñ¥÷ó@ÙWGnјQŸúA`’ǫرOÇ'½A,Âóœíôr8H/Êãïaø¥-Mw‡{÷ÿ¨´}ý°´ýeïQ⇿}ªpytv¯5⮟ïu‹‡"¸$z(oJgÚå"·LÅžQœ_¬_ î¤5¦JÕý÷ðGÇ¥µ¿Ç>£=ÎvÒ`¡YLäapN <’¦?¿müÎ+o쨌[8¨½\Û;n¥í³úÚf]¨Jµ–íÆ}÷NôÄ>f{iÛ †}é9 O>à ‚ÎÞ~Òý SX®ñ¼šíxÞK>Lò$+óŒ[½üîWpzTV8݇i¿©G|íÇåÀ-\ž™©)þ‡  ÆU£›”°óÍÛ8tm÷†BÞvWë v´6ÁÅÏð‰]~–»Â,ù1L»»¿ù8îÒÝ}ÜsxÅ)u¬ãnGi»¸S\ìq)í¸Û”Ù»›™ë[ìZ)¶¯A¹¾ö1Ò˜ÿާ‰Ž£‰âªZnØ»†‹Úv«,8 «:ÊòÇ©˜´n›oGÄÁòQX$ç…±ðñ'é{M¯0Õ}ðÃÙ[;ż…¤âÏ?¿'Úoþý3Ì[Æ+ï«»̳íb^RGam ´œèh„¾É’ÿIsFqN’}â9/®ÈÐ:øÖ™:Çi®Q@¤8Ör7L%_pUy®š™äÊ ¡ti ŽóJRª”(l©ä#Y‰6·ï8 ÓÄõ‚„°<ë?õ•Œ¥ùxª®×;ùÞo¨ù>nد-2²Žò­*E'Œ€•“‰ãÖP¿üÎÿø¬ß¸è?ÞŸøSœðñ)Eæ&M¢åÒ¬² ^ŠŒ–)$.A6úA2¿mfD¦’ª©kMKœÐZQ’ósùOµ„}¸rørÑ–!ybS6K-ŸCÀ],¹ -ù¸M}¹ØB’ YlG2)¿Hû$r$ì«¡§CÖ)˜s¡ ubË‚&^6Œ·ô9ß0Ã0Qƒê~jÒøÍ® á‚fªæ±›”h‚®ÜC{DeÐëP”Jl…”áF v]«Ï$`A|-T›{eQ«¤}}nÛ‚ç>€KÛ( õ°¨µë2À©í›:JkˆVÉ›ŽÁ:/4 êã Hýâ¡ @Ѝ™Éoµ5Q„U$gÕD³LѱtD+²m97¶/cL¹¯{ºÞ`üžÚĽ5á‹Å#”Šî¡«éÍ Ÿà¨êꚘ×ÎhÍjàÝðR®I/-F™»}™è¼ô,£çí9j:* ia>Ž€ó½A›¼’ù1冇³öØØQV1ih 48·ÞÓñàÜŠŸ‡;ž!Rr¾¡œºæûÇ'üqƒæ¡'è€`mlLø{“ñް¨7ö/Sͤ±ë±…y31ÂÌ{+¼Í¬¦;޹àÀð ¥×|«€ËZé×7ôSgˆZÒáhvtœ‚ßÖ6¥±- #ñåf¿¯Ku_­yüå}g6¹>±»¸¬—{#6¾‡þ“ïPsûñôÿ íþª’×â?½’0úÕ‰m{þ¬m0!á›vùÝÍÚr·y8ÌéÌhÜÔ‹Óœ1œ#½oC~Qfú²ÞÈ ™Y•m¥†ôÐ`0)x†© ˜[(ûó¨“É"?êÔ Ë6„pHCŒbÑñe«opñsÏt$x} ¥}€I:ŠãVdÞ ª3ÙW5Ó–n%Ô÷ÉÇ9‘Y‡(9‰2•ੳìd•”fðàêýZ(ËÊ®Žä9ûÒ9y”ÐéÈs0?a®í ãLö8éw4)ù€|Ü9ö4öÙ½¶E‡/.i“ÖR)@˜rÖ-_?ŸcÞšú^ýoÄ´ð'-DìèçŸ?•#N‘ú³;%²LßÉ’ˆ@ÚbŒ½œÀ“$ômüîNNLdîÌâé•:¡³AÁ]Lá4Y`¨î`«‚¿Ÿ¡ÖPŽ1†Ä~}ò*n G²SÑS0{3©ÖB2E0vuÒ[T¦Kì†yK~^¢_"Hp[<.„ïÖ†¤{Ú+Hœ®Ú¼"÷Í>Ú:_d­+•zCr‹ÏîW”òiñ¾U±µÌ Y™ÓГ 8$>†D$<˜øX#:r V?Ã;ŒÁGO‰[WCëÂ4CÐ ëQm}íÔ_ò_&€ÂÇu5 >.®û£¾ñÅçDú×鉵)Ä+ju+Y‹ÂáÚžÙì±Ùß…oû8¨W gÊ·uxÉV窱D¦Èî™4hð ¦ä-àíS¨x‚È[T~<ªR\eM²ÿ -ï˜8ž;Ûp0$ewЃ¡Qqååv¡ÏPgˆ\ôV•‘_)нS›ø%qÚE/`ÃÊœ0÷ºëÃŒ‡œlƒÌ‚ºd»ÕD‚;0™V9§ŠD–ñ›ÂbÀŲ݂ÝÜ€¹ƒÝÄ+Šàîóì"û{gËr¦&õª¥PÉOqq/¼ÓÊ~QôBH Dd+e]\Ï›)ä-èþ© ¡ÐØÆÂ¡ »ÿètBÕÝNy¸”––©ñ©æSA ,|®Lõ’U"$¡?.ÜpñØ1¨[8pIâS-Î¥n”0m‡9û5†¯«dæ8g;a®ŽðqÐRš{˜»#­G˜÷x¡s÷¿Òa®Ø‹0øQÔ= »ûïE_ßïôõ“-ÃÄSÎꇌ{Ë€²†j^õ®ä>ðÜ›ž¶,!÷±Ì”ɺD*+þR6õµ‘Ò€Òòck™CÒ™©S*l"êHܺ@[M‹'·‘ô¹¤YŸ¦ö„¨mC$Ýc ƒq®Ðã)Ó±ÿ¦¾Jr-9nà^§øh ætCh@‹ß;¾¾dVµ^|àÍ{Ū8ƒÀ“ ¸©àÊv$•óã!ePžÒž€W§ˆäI÷—Çõž>=1IâV¿%C8mŠg}“»”ÀÙç!%Ø@!ˆf¯¢ÄöZмº‡R“8_騻K(TBO€'Rϲø)$•E<ýye4;É»‚Ù#‡Ëû\bõS$SB¹ûY³d5âòŒzÝè´`<¤ÀEÎä…êñ¬*êE`àhÖ 7e"Èt, -Ìoœë޾õ‰Õkð‹ÉÜ’ð‘_££¡ä9rUÖ<ò«Ö¼ -’† „R²¼¢4Xªò`©?×Ûl?¥ò­ý\­´ÂÉ{¾$¨ss04åÞ>Oš€MêÒÁ÷|,'‹Þ醬‚ÇP4g=îty2Ý*éýFÇb\8,Åæ2Å"lŽ Ï ;·(“×­Jïò3›† ­íÈœ+¨S„˜­â,Ƙäø‰ëA### ²œt¹h×c ´“Mm=mö¥}Ë7ð‡ÏU‹Î™¤¥SÜ^ì¤n\ØIe‹ü "ãŒmö jæ¸ÅH# v™!ÍK „8|ö9 'É"ÿ´h>À"á‹Ä ,w)×Ù;³zpò¹À2Î÷.ý1ö%ôBoâïâd¶¶³ôÒLU¥ r•gjÀŒœ¦—?Yùò³ !C ° g=+Â%dÉÀ~áµ~sþ× ïB÷ËIÁKq¶ù;C‚§¼iá÷ï\„ßòâUû»ç½@Viüç—¨äö™Îs—íÅè-ìE%öè7µª75 -ÂIl{Ì(Á‡ìš™Jìô4võù:ÑŠNŒÛ N¡ -Vàx”7Э¦üMLó8#+ÿ接ë»ç‹š*o©%ÇKY$o©ôÆóÖa—À©©ÈÄl*ëk‹š™‰ -´ÄúÌo˜qÆÝ†Œzé¢FVÞ(µR›G*1F…\tl]2R̦Ê:‹cÙÒÜ1GþžÚ!Û“½.‹°ñˆYÙ=ªã: ¨‹fèÎæ&ôY_ñÎE…wv̈́ޯ!Lìšg¤€…³ØómHÅÙ7ÛmÕ‰Ê5˜å{‚€a@#‡brAåH¹«(Y$Á"h¦ gþ3¸Öwˆ„Iž ÜG:{â;9å)á ó|¦“‚&LðbBMyY¢x½ÎTn»±²Ž -L3È+ë¯ X©p¥ÀÑÁ»?r#Ðpå±è{AËĪj›X£§®‚bAr·$î ½]æ³è£öÀ0µEÐYÌg£1ëÞ†'ã­;rÇjœÓòœÊèɈ«])nRÐ7Ôu;Ô´&Žk"̯i>cá˜xN§]q€ÑÕNnÇ,ÇIÅ®¶ÎKkˆKOßM‘óÇþûoqºâ§€7þÓœîû_¹Ö¿âÅÏïás¿\ýÇW¸YGu»zk£w€!¿¸™F@BrmF5Ù5õó*n¢u²)q áG•ìî‚N<¶94RSŒ@lŸUÝkªðZÕ—¨Ê^(ÍÝouáZŽ©”‘‘1“•²Rvi¨.«¦DÇ-ñäˆ)ùÄÐ{–šÂˆÊ{†³eêT“¨\G̤ Ó8@MnË–î’v{ð™éC½&²xÁB)O÷‘knœg¥Äµk­××íåðìÜ}þtîŽ{ -܃07”W²e±Vr;˜ÏRFEsïŠɘ!2¹ÎÖ^+r!•¨Á—ý¼aˆ‡ºG7a°5âûñ`‚Ø“´èÉu>¢LHGb¢ á<Áw¬r ÿ|Ä-@5w$˜Ûp$BÉOx«1r¿‚lèŒO÷?NÛŒ×:Ÿéw¾`,dúwí¬‡7æ@5µ‰Æ`9ÑKF••r¶Ñ”ÑØÅEl«yÚ6Œºÿµv:?íR2µMÀ}L$¤ÚP˜= wˆm´šìyókSÉìE©wF¥èH¾vÑ!B¶ûÙvç8h¹ºõuÍRa…ÛÿÖUp»£÷K}-ϾÆ9œ—~ wi×—[¶X^8m‹Î…CC’»µö0ã|¾ù|DRØò÷bkÚ ÜÐCÊyŠŒš»K5<Ê,ò0îz£3 W¡Sȇîhn{ùÌbimI"ü5–ÀBAáìçyÕ»(:˜q×Z0¬Gµ3š¶Žùr>‘•ÈÀö•¢  òÈ1E¹¢oœûVCoä… ‹´áy„«µlÙ+ñCö8Uz‡Ï‹ ­íJüð’fˆ9é±LXÉŸäVýÊHîb÷¤Šnùº§ª+…¡áE eÒ—)ˆã»¢›ñOS?¾JA¾•q ÷ÏèÞá^Œ£VrC0dÿK“Ø|„~4"„8`UîšHbàÑóÞ]Ä~€[Ùy‰R\]Z¢úÂõ¦û¨`ÛúQó¬B7JþW‚Pö:o3ŠG-±+‡0i¡74 kƒ½a²¼'ЬE2ÐÛRšj´"8%Q´)©¶l\U¼Ž,<¬¹®¹ÁÑå0Ù+òÐ#X´­µm±È—€°ktÚM³¸Ôî7âàïµQ~qÎlë§[¦±H ®hrgoý% ñCt6røqÞ“#rmÅÚ"W³¹:©^]DœÆYЍ“xÏ“ íw¢ÿƒl°iá&pÙ!V…ܧKO¼¯²ÒÛ.ÔþÄÜ!ȆĠ£û`±mÊ­éÂÈÜšß[üàc£HVÿ *F…sÆÿ T¼7ürÇ_Nøü«ò~ l¼ËÃj4Ü 6F´plmœr5ýbФ©†¿`JŒ½IÏXó¼ßÌ”M.QûãÙh‹+®Œg-8ÌS·.z¥¯^'ŽàíÍ›¶¸´©^ùhRSÀ2{¾¼rGý}ZãÞ×*D‚=é |¤Ê §3LA²k#²}Ðt¤zKï ¹×õØlµçSÛ-·T¶ü< -,/)µæí!ÄšhÜ$–Äa×̸'|*„{¤Þu\¨þ|Ôlû`ísª<‘wÊI¡N:ï÷ßüx?ßÞkòÇo(ú©êÏ“±»á¹ î9{ -  ŽM Ðq°h‰5ÝÁ^§BZlóaÂh$-ÏøfèÜV-ü=„Yâ‰gE~¤(Ds “º$Nøâ«eÇ®ãîïWÜ¥²Ód¿·òÈ2@;¶1’å<þ?¬*ö9 A`/uÝÃf³Ù|Mͯƒ‰Ö)÷èÕ–uµÚ8ÞÆÚð‰E÷ž øµZ¢W å‰Œ—6šëAòY'÷ îw¦bëó^Ó‡Bªû¯ÔŽ(ä¯mp;˜¢K3©‚TÞ™~罨ļb½…æ'Òc=5®ŠO\GÑßµ°f,vëJ›úfL5ƒà°)ÁV =©ußÔ&u=‰õÂâ Hì•S -·tn™;ÕuÚ´ô ¥ü›%’¥{Ê z*Ö þ)¥ ÀïE£m´ù‰°]›q0Êl~(B`ü½Ä2 #òwiˆu@шˆúXL<bI‘T‚¯€«Ùí)j¾nàâAuèQ!ŽŽUÈʤ‰h…ýçoÓ#)R2LôÚP±Åfœ`å¶Ú 'ç$äZ€¾4eœ „v0B >˜%9Ú„Á¢7ù°ñht÷šEÌp•>òè92ÍXCEÓ¸ƒ2€ÙX!W5À‡`•…Åa.(+ôEÕêõWpbûç"?}þL]?H×®çç/%ÿz~ðÿtÚWfþ7¢óKhJ5‰…XÜŸüloNoÞi F·V<û1—Ü{Æ¿ëÃ{äQqíE#*ÇÈ= æ’  }#3à`½¾ç± êú Ôܸ.g"8$£¤¶1°k;?!£uujC)‰fµZ^#¢"ZøR\1mgß`Ø– `¤<•Äõª˜*_¶JJÀ°HÞð' -šœ´"þYä™H›V¸'–êvt‰Ff ·lÂE’Q"'£Nsí6\‹þ%`˹8b‡À\¬¿kG@…b|•v¶ÙxäÈ)® -ŠœV^®‰¶V|¨{Ú»x=Û¢‡Œc! o•DùÇN¸}ÁÿMýÜ!‰ôplY\ qµ£9ƒ†ð±ý°9R¼YHCªiè¤\k~˜B'WtQ€Jú(@^i+©Df†³SjÍ~'ieãÇËä(%ËÔ˜Í3Û mTÆi8hƒÃp ±¬'Khžèõ ÄÝN쥌³õÝIædìôyxÏPô‰oõ¦ðM«J—–q°]!Xô›ŠVçk·ÁÀÝ–¡àŠþ=ôŸâ5+Àn) º½ùZ·vàU¢¬øšÌ˜Ò¥ICáJ½…¥j6zaÕ‘e¬PáÌ‘O÷¬~$éHð.QŸr˜æÆ<Ô÷~ƒNMˆbDD­¥¥(-¸ -©Wš‰Ä$â–=XK½±FïÚ$k’%錢Þ8ˆÍQŒÛÈ1U÷élj¦«7rèÕÅÎ:ÛXÑ©e×3ÔöëÖ•m ðí¡@U§)ü¶ÊxmF…ˆV+žlv§H¹-Ò/•Æ«¬)ôÎìüfº¾ÑÚ)DIÌœ÷WÚ{mìz‰£5ù>qôvY“è²õÂhÂgg\±´K­q²¤,…{øµ*ÃÒsoÜŠg˜ƒ”"¢¼ey%ÙhüëM®%ضU× ¶ÎÁ†Ñé3iòƒ&&”%DÂ&ãñŒ…Lü¶&¾5Å~aÈÔF[-kuåA'3aÂp.2Eöê™0¥pz-Õë„âJž¡®³2 zÏ wšUõ‚R -¿õüQoº»M¡y• u;ïç[œÜzÓIü±{v¼aK½…­m5þ׋6¦TnɆÈþÇ9P½ÆÕÀÑxËœ,·îešÕLÚ©OÕ:QÈN4‰_뼄cHQAe ÔhÆ¢æÚ:ÅLÀ`Þk²‚3úzƒPè%»êÕ¢ÙR6¹Ï¨Ê[Û`(ÃS–ŲZ€ÉÜÛJ¨®C>i‹= ”«Ä`/õÕ °ŽXÎÆÚ - ‚MÙd³k¶C‹·“w‹¤‘¯´¬œÎ¦µ ‚tEefáÛéÎ$w­o8ÈE %è÷ 6]râñ'¦7ÈU41†ˆÏG7‡àpÏ$zM‘ÁU³¯–&¹y0B;ƒœ#\²§.ð9WlãZM¾qR†ÆÌæ Þ5<x×T­Š/«´¤BÌo-~›ã§z—:‘‘÷¡i¢D8“ìèBø‹‡X6¡»Ÿ}x|÷øCüûÝËã·/ö§¾|÷Xá¹(À`¹ŒÂoüÆlÄk`Ôzùøx÷üÍËqŽG,—çË_ï~ÈìüðA?´ búá'üðîþ†iè`üùýÑ4ò‡|ùÃ÷ú¡£Ùò‡~ùÃGý0¯->ž?üýKk¾:ö+¥ŸñÃï_??ÊÓF)OÌ—ï¹úÛ·?>?=~~]©3gÌáb³¾F+þŒ!¾}$™ƒS -_Tñ¬.*h¦©M¶Ð±«"ÍÙóTÒ¢ â%_o¸ÈDRÉv0N¨ Tqs#11qB‹À/g¡iUcð+ðRæ„°’þzp:¢NgkǰÍ‘²ÀÆÁãõ†g¤]rœCГ8p°–¶©ª¥ávzG$EKÄ[8'®”4fJê(c^ê‘óœŒ{ø±é€6’–Ðý=Ïr;SíÇGV±Ä(.ªÞý<(ùS×4ÐT¿©Y]l¨¢Jˆ5­”ÒĹðu`F5Q@ðÁ‘UHGx™Ù_E8ë¬ -e¸"–<Ä=UAS£NÁ!(8^§Ó0Ø•1Ë:læc#®’÷T%¼†¹öTc_ 5ÐDWý¾Ú ò.•»B1IC;á3ÄJD#÷liú¿µËB0…ÞÓvpˆ6òR`k\÷ñ™® ‡H¡=KsKz;õ]O‘‡å;¥ï/CÈ(Ïûæ òíóryó+fÒ-'¢.b=²qß‘øáDf4ÞpsîñFlÐÓñž¤J1*Ä0‰*¹£ì«Ñ,øy–É™•O0ð´$’³£_za¦ðÂlè`˜°ôF;K}Þœ+º:'ýçG ¹1¥r‚Ý|KœK·¤Eïo“`,HZg£­|–z]3çäâvS®€_@?½]N¢W¿¿‚ ¯k§+3/½ ¡ãŠX~ì öu ¢=ó}ñq´y®h ñú1”…\ÈTäá³DEb\ÂùEžOuçIò,½VZ¡gL/ e¿?¯–7Ó½OÀ¤SK鯌²·ø+GQ­bèù_ޝTÅ/¾ýEÜ 3;HXôú ãjo¹>[7Ò£°àb¦BÃþñUŽ-Iný9E_à÷ãp9Žžœ6ª%=ÉÒí…ˆ™9²Ôch¬Ê¨d‚Øãã0ï Ý…¯×ó<–F„Ъè[ÃðÅî·_ƒò‹‡b.`•)$üá•bÈgWù›µúÆàl"j&†ÙICá¡ žéŸaFùLÎ1Û7í»ñÌŠ$®¯.I…ütíEûÅáxLû …f€{lÚ%é“]Q€Æ;ôj²õ#{½rÐ7±èÍ-¡‹‹TKo×J@2‚äjÆ™©ÇEåsœÉyÀ.•\Ù{üÏE£32TiÌÅ%ðÍ S¿¡Pt‚“)±ÛÊ´ùº¹Ä~Ûnå–mâçoXª¸µpÛâ^Óvçâ5¸‚4~ÂüX%ë´Ð½ßçÆ¥R(Œ(F–Æ)C öع*Y?€ÙûzUëù†ðˆã¢w®Âíí*Á­¶=âû:ö¼Öcæ¯×k4X(‹þ@#I¤£^÷’ÈZú"l߈à‚é¬/9AAL_iI†„J€™Ň o½•œ}Á²ºÄÇѸÇ`x|!ðÛü¤¾³0mÊ{À{.0+˜=‹<‡xdB f‘bÆí5¬µÅ¢¦G õ‹gp~6¨‘…TȼGÜ¿MÛÖ[ÆÿëÔŽÀè W­ü¢2ÜGXÏK*Ë]—Wºò¨^Û‹ -ƒáºUÂD0L’…fëQBe·4ö…ã±à/¾Ó™AÁz:¹qj÷GLÈj7‹¯ !dïjýƒ²Fž´HŸ?}PþM8ÆóÉÿ<(gøËF ÓV‡óï dÞ±ØJÍ1€^Jn9Ø4+Ëâ»JÎ×õj¢-Õ5àôšvà'“󵱯 ×ÞV[Pkºç|T)e ŠÎïh/Ÿ‘úÙT÷”ÏYA¸12€U:í‘–ýÚ„>¿iœžse·û}ññ’\Øïygª‘ºý«« -Kü|AÚϬ-*øµçŠÒ=ï˜;!EÝWc´¡:®Ê€c>G¹dPÆmäœ÷îÊ6"îs?-) ÑxÌ ¡€yR„ÒýÉÞÜ3À_w´Wí£MÓ¨ž…öÜÀZ̓”ŸPc&Ú˜2Þ*›ðÌs‘j‚z$PëܘIug8ë#Nƒ>9e)¾°µ.ÛHE¤ä*ô| ®@Ç×–ÏJΉ|Õ}=§F -ŒVVì\¦Fœj€çõTQC”|^КŽ6𭕤Ñ=#/À:âZ èF â ®5Íü©Ž 7 6ì¤h¬?Oò6Ò Lì©Ìø˜½=Å#¢®§8Îçä¬í‘s_òçÜÏÍs«R>«8‹DO% ‹CNqHúSº:sš:l—¾OmÈœ§6dësn¸rú«2ä»Sòê) ¡[ôÂKÍiruîÆŽ4–¶ 8hlíXJc%gÆÏÜ[¸•‚Ÿqì{«A²_h•dAÌÄ]Ü|梲³1’¶ëÔvГ!Ž´ÅÙb¢‹@‡g»~p fI6+PÇŸ«N°kù̓¥õg­¿”æQ`™Ä[ÀŠi,4h|.Ê;«ôO&Pqºk²2Æécöžˆ“¤=á㟄£à°µz3øk€‹-b‰mBƒ—+yb¯F -‡7mi÷™DÀ­­àû¦žT ©é¹eŸ™ ™.à€FÞ­<±‡ƒ·H„û -Œ5?BOXÀÑ=w»µ£*䪇èÑ>hŽp­š&!.k›nšÕÃÏ_F2 -u€Ö‡|çp œGú`Ì‹Ú/0Ç98äÿÏA½ÿÎo)Ñà ë\`¥ƒÀµYÙ÷ƒ áîѸq°©íF¶ )öÆWH¿ WAcÙ=ûL3Û@Ǥ™áògŒ•/ô\eÊO¸­1#Ÿ; Ó²øÂgSo n~âÛ@9Ue\êVc-i|ïêXêÌ”W6Ö €N´LNì ^“>ø€À\‘³lgBé9¦ûª 7ðì*ÒA~&2?S‚‚ëàÞvZ_€¾DÊ -ödR!íýe³mœªS}¬-fÓ9ê1gϳ†öAî"›‰Ð’°³†‹ù5ǰ¼¢² Dèß3>ÑÂÖ¾¡C±îŒjeÂ)ÜájexÕÊ$ _–™ÙS¹Å¼Š¢ã¤\ƒÃ¹¨~rÒôÇ/¯<±…E -þß+Ï?õG÷óÇ_råIø¯ÿ¾éǯl@+²£E&ÆÚAvL«³¡³aÕH*­Äê"P]ôÄ tJKË.Iwl$·ÍŽÈR`fV õ( ˳Xº8øw5öMÏy&d#×€iC•ÃZÐpªÞµSìÞ8l5l̼’–>D ßh<ÁiÌ•íý4C UÍî݈î"èb"Ú¹F%õ¦½…Vò“*&8*gE¹“?–üø´zwžµ.Anu6ØK·1½¹ÆWOMº†ûè9jp[—ºÐz qYÓ„¬9–šÎ¢áP3ªR]h´3™øí¬´¢ Ò:ž,F)ûH-_îEûJ×ôÔ¶8QíiVàÕtV”£*8–Ä"gÞrq„¹sÈ8ŽÆ{?mcëíP•#öFNÆ<%8‹XÙ¼ÅT×{ó¨[fÑikñèÐËå|9Õ±¥žµRÔfåÎ)Vµ·rx±4j9Ô5ˆR__D]+ïRè+§ù‚/QGߎ612³Gx;ˆµÆ²þÏ^ïéÜI%›¬¿n ¬£ÔÁI~~x7^Ú7£m.}Óî¸d_—ãz Úøõ¤sý¹nöL—v¬4;ý1ªÙÌŽ¨àÊ©½Þ¨Gc-þʉPDú0c \¹ÄŒ ÄÖâæÅȶ£‡+EùãJÂLàÀü´@;Ó 1-«§L¬:ùœOYBñ¨’aq…9Ó^¥¸Ö[˜a€Ù-ZTC{•tà[îÆæ´‚ÐcõW£Üöm#¦ÎÞ/×Ê”8Ûjùv®¸D-0Ûš‘½¦gšßÙÃÑ}¿Ú%Šõª¤Zg”¢Cr›Ô!Óˆ+ò0ÙsÕXÉåjîî:;÷Vëç[Ö´†Â×”SÎÄÜV=Ó$P×@À y¦wb ®1²áNÚ]te ½bPuÓwubna P@õ¢8w|,  Ù-áGo'k;Z‚½€Ÿï÷ÌbO¸³(@nÂ|l5·^‰ˆr—µì8 dX}ÀðbÌ®s½BÚÔ°Ç>U{”߆ltD5VöÅ´áÜÒF¹õÂrçË’ú:'EŠ$¢’ë_é ~nPìèý=hàÕí¾§)ñ\ö±±¦ºi?ö“gâq®t˜žéJ"ZÑ[?/ØH+—"°'‚uãZ8€NX‘0 -»‰ÙrSÕÌ&‘¥Ùyî4îl£€aÚŸ¿yüýõC¢æ½òß¿²qÌaF¾”Žm, ¹ì„Ö…t!èŸ*—Q© -ŠmD».âÀýtû}öÿP_-9–äFlß§¨¥7ÝBÿãô” 0¯/løú’!)k>‹À6¼©J¾TJ¡‚AVÙI¡Î7u wåX\‹8-›¸c©bh¦§„ªHñŸ­;·@p¼_¨ (Q$ÉgŠq¸òXƒj¤ÕÎÅ@qX$1ôörfÌ1¡ñŽ&1óœäÐ6—ìYEMjyF‡(g"ô­±×ð®ÅÛÊÕ7ˆÈ6ìz§¯¦„”&TÖb1¥M\1Æ:Üyw|¼êóäΛ8$rçÄ’Ú΃“ºxŽø)D}ÂMíérÌÖ缩h‘¥LÛ¬ohÆ tZdoGXŠ ]*$ºp-€&R< C¸"-عùïÇÎ#¤ôîŸ;”ìÞ³‹çGmÓ[¡ƒý3•·íVÕQ =À{aóNóнmôó0pyëŒá‡£åTÈ»›ö#„CXþ\;¸Òµ7#ïÓ £,a:Ç~Fº0 -(qÆ×AP¹úÞù®Õ˜ÙsV~ƒ5%…bIô±ŠRÏïe-Ðë¢ÚBÊŸK;U[Ex¢õóv11«¶ú®tVÊŠÎa7²u «º¸< ~€}@õ?©,Õí1Ò~PŦ|̾±ý ª~ØËl½²øIš;8›²n”_Ÿ;øúaoì¦ånͶl*‘¬ýܶwbŠ¡ËúÈ”Èi,dç÷˪ŒÅâ¸Öí„æŠT»`Ø®VÇcK.{•*nØòM=î°ÆFª ÃçI¤W–Re}€V侜Z$>\Ò‹1­÷ngÑ&õAyÍG¸¨â»—Æû¼÷ ƒd,Àwí 5Z—ÈÝq*ë&æËjQáH3'ÕÔd–i×3’Æoƒ%%(Þx]¸`x¤îñ2ä„•ã»Ö-é8Ê|iÆPDD†Á-Kã;h>?ä¨Êè¢g‡žb‡‹vÀønÀ9àW3‡ÉÈÎÝpEÔ™ȘG ]ŠçÑ¢I4v(¹Å 4Šú@Î6œw0i\?vh.§X˜¼NÅt¶[]ñ56ݽ…)L&Íòê*½‰+/‹Â*úÆE¯V󲂓Q!>•ÈNœ ð§Ôcu×ð?WÿÔ -â÷×úåS:Ò}XƒJ¹1oÙ2Ë=ÙVl¦¡ªd©ÂFæ(‰™Ø9‹¨f +öIÎ_ ×±HO€~ ·¾É§.Üù.*^}ràldÊâ W²‚ƒQ! -²ñ0óÀqW:Yðäà;ØCŸ÷:Þ€]ì®EZ¬”« d‚rWý¾›1ÉbM%¾÷ÂÀºÄßÔ"ˆÂ‰¡ƒÀذëz×Vô0ÚvBÚ…3îdMº4îÇY9ÁÀb\xs(ÒÕÑÍá»``Nw©Ùý*Ù0ˆ¯°Jý 3A‚ùb¨F+ Bïñ±wÝ ’÷yçLÊL-‡èŸd®ha6IO5ñË -éÅØlëy2Y—Dè‹D½¦óÕ\aUS!ƒ¯¡«„p‡·75k„ ıàäûv¬üørõö˜×¤'µ¨ŸÓ:á˜Rr‚5vŸ½¿âµŸmúáÛ3 FU½Sä— Ô½U \ -#ˆŸÓ¢ÝNå¢M¶Àj«xjË8²H&ë¡%ŸÏòè&ÍDZdêóN làÞyŸ“¾œÎQžÙ9Ø¿Î)ŒÊlæõ®¦UÇ91!޵ÒoÓlçKg‘öœRù,ê—¸÷ÐAn`]æÕ଺å“!©ÚÊ ³ÝêÀvòØ•ÃÍ•]T¸D­ÜŠC"Ê}ëhÞ/=½¹?æ5v¨qÛ:åó.órŸ5xc$#y§üû¼.Ý`5oñû-ìŒê=:*½Eo«o~C;¯‡úÐêÓA;Êx¾í‡OÃ;²…~PÇ-U.snŠÆ+Ѧø›ŸÖMkó>Ýâ¼Mák¥žŠŽD¦µ› "©v; vq›æÃÅI÷95ºÐ ‹f–á©’à½ÑŠÙ -nèž]:ºN©ó2KYš¾x—e:Ã3a*=KAŠÀþ”°Ió[žâÿ°°ùlù¡ÆñÓa$}þ†ßÕû›þÿëí9éëÅoøïþòýSZ¨¢åç·5)îíj!,Ê@yQÐ(e`óÀÑdÛæ•Îné>-¸we^b¹± ¯‰~š¹a'‹Œ6ÝýÜA#x¤šHRX#çýûhý ‡;ÓD”$Ýb‘—£f-ÖÉ(0ÆŽšxj+(lœ¨m1Þx‹§W<¡P¬|€Crít2pOŽC¿!ZØ_^|µ°ê%>S§ÌÙÈš|aciNMP¨`²æü*Á‘84£6íŠh<ÝŒ ¶ñó—ÓîÃ~8‚òQ›`€õÇJSâ \ø¤0™H:”‚¬+1ôƒWD‡pë2½Ý)Å•šdÒX©V „àLêèØNlÔý‡e_Ðj4ž“÷dQ£ v©èà¡*ÆŒ(,Zó¬è)tÀ:& Püˆ¸a´ Þ”0õ—ž R‘#?X¥/Ž7Õ|¢9÷G¬«ù ‘m/å×ëQÔv€Îè;öBmÕ}%´ç*ÆWB¼GÔ²s%8†OL¬Æ+ášjŸ…VÑ1añ½6¢Ú«€uæÚ‰î‚Éßè’h÷º=ÌŠ.Õóº½ÇåCßò<üàEú TYYܲ<$ ¨¼·t.¬kŠcIY©$õ0Rè§"·QX]UÖT(º(u…RL&)ØxaÐb¥Ð„xüÖx/uŠKEP·*ï¸Kú1 „¼<ñ)z_·'о´iìYE×1j&Eš¥ùÔ3’Fò/‹/\[´;U!£j8É«û 70—!Î~ŠÙ˲،‹ãy·ÙxÌÊ€kK´d&9 Êï")ÖD;ýZ"ŽFkëÌÕ×V’×Ãak'q´ÉsI´ÿ¸@AµºYnÝûgÅ7ÐÏú¯kƒ¿óÃ×VãÃ|ß5_::ᯟêñË÷æÙZÝo4ØíôxgH1.þùߌȅÌ?Ôî§(2‘m­h¸ô¤…ŒÌ°0TX€¯ a߯ÕrÏò…•…ÓE¨ë¸(9˜©b®S²>?\µoµƒ__xIîh\£vfrÎBËÅA¦~xP—Y |6çα}Ĥ€HŒ×†Õ“4X³r -ÜmgH"˜çÑHÐÁG«]«W pN²ðRÑPgp³Æô ð»6ë}WÙÒã+$K3¾S"4qgó„€¥›ŠÐÏD¨Ižé›œOâÁt -²!áCuÁZh2[eQî]sÊ#‘ìH ¶s߻伦<ìðf46v”÷,û ¼Òꯋp}|†)„>î¨6mhè»”´Áâƒú6¼ÈÃŽEˆ§7óIO~ôƒl§ÍAŸíæ ¸Î8 ²wPæõõE~ç×pïóŠöEÁ }º&mÔ6JŠb—ÖŽÚY¬Þ~ÚU­6Ü øÔÿÄùt\¿Yà{ŒØöêבÿãSÔ;ЕëÛ*Îd«õŠK Qå£dšä [gR ;ìPíC‰>!}›}ÓH6ChºŠåcC9––EÖùð/6íu?Ùµ.ÝUr>ãwNÆšX¢¹ÎŒäDÃi~¡Ð“o- ]fÛc 7»VáÚO"&:¬¤J$ šn\ñí2ò~O4Ú=QD@Ôh 3….»d‰r ¤Ü‹­5'ê‹wíœù†­â’h$×QpÎ$^®­&σ‚ Ÿ(Š¯ìø½"º=È-+(öˆoFfPŸïyfIŠÕ‚Φ,n6ÙAªãx4rÓèÀÚ4ÑÑwˆ) a0£”›n/ìÇcc¤uã/ç–˜eŒtW‘±¤¾ -Ú±@ÒâmÛœO½H)ôž­QåèE±•Ús]xߨ­cFµÆ·«]o ÍX=¹ã˜åެ\c^ß飌A†ìLäNRm‹½6?GV2g´•±ÃwçU†YZáþwÃ,ãV¬4¹I¦ÀLÆ´7üh °Ëž€6ÕùMcêK³š -³JÏ"í™WAÆEy¼F†f5özÈ †¬ÚRY» y¸Öãj‡³š2[aÒ¹UÍ,f:A:‚LP«ô^éa€2“q] ¯|vŠÀ±­ãŒF™§³Ï·¼º¬ŽP{£òXßĹ¢½œÕµ Ù"îÕ¹[ÓšJF'>ï²S ¦¤ª‘_ä3c§½áú,ƸÕ+®¼î--ãCc+$HÙé—H3ø;6È©ü•˜Ô·(Öe1Eo´XºÈ„gÚ¨VƒPŽ–à"‡22#à*‚ê'z|*så7=×rÆsRô•‚P¡‰ ‡e{O­ÁÊíê÷ƼN÷2>ÍᜨU“Â3w\Sã°;2 -h'3±¦Á{Wg9€Ñ!= º\—*•ÕmÔo`®Ì¬ö0FœHÓ©&+1ïî;2I»àmhÞã%Åé0&ÉÎ}C8¨…Ú{0qÈ^g Ï8° Ëf–­µ.kq¥¡Ðeq®íñ4JPÇJ¦cGᆕSG詇 š ©x—ܫΕ£ªލ7Y¨ÉýÇÒFÛU| G¾h˜ÍOCJC|Kú$eÉxÊ*“ < zFÙĘ=3L(`l×Dc!½Œx¤“C:ÂLR£J§øí1T-¯žmQP¡GîÎ#v¸7ºlI4¡TŸa›­=w¬F™k[¸ÎÞœH@m‰Ý•ðcÍv(ªÇÖ’åw?.‚Êùßk\út0äj¨²›¨Tåïœ5ÔiŠŽ3/Ñ‚,ru¹šÚ2 -wÔ±L$FŸ×:¦á$öV-ʾÌ,Üz—í—âØQ·—,צªƒCÖ4S­LhêÑc *¹óf™ª\2ûÐ8(“¸5Š@âÔwQ2–Ìp-óÂví+ --»>¹\ë:VÁ‹µ~Ï›x2¡ÓÿÎÊ4Èb3ÕËÚÈÓØÄðÉIˬ>ÎHøúëBQafªD °z±Éã›â+iªÐG=j⫺©”ÝêÆ"ñ²i”tΤK_šÖÉTSæ…”•wªü¨ Õûc™nÓÄ,rckPØÎÚ2}!Ü¥gnKCuMÇÌà -=§d™Rp6dTS=Šg㦪ÐuâM~Ù4z‘5“)@´¯b*2‰¸ àe˜ö™j,ß´^êÞô°f(§óÿ‰5ßÍñ×Ï@eoè^ÆÃÂϲâí‚ʇú0”m¢äêÍØeÅtq¹@(ù,TÂ5’P76§K6Y³”{¨zÞØ˜"˜Þ-ÖfÝ ­Óªr $Xìέk}¬. 奭ù¿ciØTCʆRv}QéFÙZÊ•zÔ.|æA„ O>nÍW‹Q0Q —›Ï^5Mt A¼kZ7 R» <ߣNÈÕëöÌôU–AØKÑS¶WK&Að%±€ØL2Õ›–3 ‹ ù'­w:¸~ ¬j>‰Ü|͉!¾¶ ó=mºŸBÜ[yÙd]Ó_ÛŸ§kæÝêˆ{/‡ê4”Þ¯–Q „,|_…®Ñ%Ñ•¢ÒC©aà˜ë´'TŠ:¥n‚Õ1q(¨_²B&÷öˆäß½Á¿M@="œÖ†D×w -±iûµg¹3Äû¹uJBTœI«SlŒƒ¬™å¥È³ðÎdÇÀ$O×€¹c]Ϭ%)æ¥_Xú®× Â>×,Èõ!ÞK .¤´Ö‡—i·’Ù›zÛ“nWTíÑMÑÇféÄ—ê»à?˜ »Îf˜Õ]¥‘ëX†MpØ}?Ëž·sÆ]pGÇ×O—“ô²sü•ËÉ?¼*\3ýÞs¾ËŸ%s]|{[ÞÙònÄŸÖé#+~ykþ»IßÍñíS¥ˆ°•½wdç´•"ö(Hq²±§L-hLÌÞƒ2I䎿©÷ë9¬QTe"wàê›±Cs1ðFóâ#bØïbÖŽ·þ¿2C\?3¹cdOJ!iiµ¹ ®Á Î,seÆ[È®K&ÕC}•.4£¶y­,;øïëO@Àò0:džC˜öð„„úÄsî¸Ñõs™4m—ÈÖ60¸PÕîBêÁ lÿqe¼ˆæ³dÆN[××М;šˆ/p‰øm'jWSÏHR£FWÈ“X/VØS,—ÙT¡Óý¸‘¸¥s²žå!æ.8•®.2¬ù%Þí¥9y} ®"é8²iHKMUºjUº;['§ŠLSň”ÂYSÊ*cìÝP<™NãP¡(J‘YØ244‘„*‹ffåJjN$<&–,êRÓìŒ$‰ -ÑÖÀDdê*Ãâ®QÕŠLˆI˜B+D2(à„Èœ\ˆj‹¬4˜ÃðŒß‹#Õm·ö}@  B«Í²ØHȯւVÄPxŒ¬›GZ,74F¡w°plöb˜•ÖÂ$Æ_Áϵ/dÃTcùìV«šÅ!#Éþêá–/UØHà åÄså‚®ÇÑe=­ï( èKq¸`eO³²|£B¥Ë„ðÌ?Òm ‘ÖÿvyxWÞuïÒÿ»ÅÿüÉ.b"p#§”3u¥îÊ jºþc•v¼Ü²2cã¼ ÝÓ Ä˜_%VF| -6ܵõ Ò?ëÒ/—ŽÄÀC …·ik{ -,Ï2C`ŠüHì”óÊÑmíì—&Ùf±Gcy­“Û¦`¿¥¾l¶;å)ñÒ#.m*Çán€ð¬'3’–•ÿ ä ¸öVð»ÆJÃÿ/›Æ™qfT·&܆í–#ê.'“%l€ƒ(+ëT6”Û$Etq¸¤»ù"`”öÏu¬ÁCÅ¡³¢º=‡zàõý’-w©øÚ$¯›®£`_S®vwMÓI´îœ®³Oh#-—eã¤[Kã1÷96M¶¨#ÓÍA^˜š`è$B÷¨Y'ôµS«ÚIÉ<¶¥´éZ®·và¡]_‚mâ6/JQ_«î ²Ô‘Ëm­Èk+(¾sí o˜+ý röŽÍ]w‰Ìù$ò¾¾S%ŸÐLÅ ý$,ÁÀB®AÙ’}èEvXÝ -íá›2'ÉìØì.ÎPp‡îª{Ê„î6Ü(¡ÂÚÇýî÷¯t6׌:8_MgêvèÀ—‰ ^t(Ú–GÑÚ±‡˜œqGÜtÆ&ÊRÂ÷V-À_½.}AñF ºš˜±/aõÑËÙ’ů¬Œu”1ÎXx{QqCÐa \öÄö« †·æm[úõ*¡*^†ËƯ¦0—kY3âà<;͞㌎õÈ=§Î=ÇÁÍåæÜÅ6Ôê®úDs^7BŠgYkÞÞÎF§]›\é¦TýÃóó»;Çð6bië‘ɦk'³”°§¥øUÜV›÷®)1sƒ4Lå ‹Ñg^J'êÚ6›è2|ˆ+׬à4­>€a9p£Œ³VÊ2Ò ÉUÃO )}t"tQ~ÀA·è£ih„NUõ§â¨†Š¼)¡Ôçz§žH_Áæ{ÂÀ⨵óɰÙò¼ì³[”–éö×FiKvÇ”áM¦xÁn[ëî=_®»dcg‹ã´“ÇjBì…¸E{Ç2w”x½•Î÷ó Wã¶­_äþõîC}ùª/燾3áÛÑ[F5žÂ[ÞámœðVxK;»'ì?†·ïŸø”|ÆN>éŸú|ÆðÉÿ|N–hOY¢,±RÑb‰~°Ä8Xbž,Qž D{Šý@‰þ%ú”hOP¢ì$1O’;Iô$êIåC’h'IÔ$âFù ‰²‘DßH"$Q¿—$òNe'‰r’DÙI"/IÔ$âI}'‰²“D>I"$Qgd$ÑO’¨;IŒ$ÆI}'‰²“D?Ibe§hq¡XÓ&û&R&ŽnP=æÕÉ ¤1Ž?ÛçYçóˆøÝ×&k=û˜Ÿ£]çÖP£¨ºöYÑrìz¶€ÊÓaÿx—Î3ãhz0›íï`],™d ÷?/ÞþTúÔo£æOoÿá{ègGôD¢x]¨©ÚE?0'”ér²`J§àŽ`XI¦ÚR&Œ/Íp¯1ýqÁÉ—k…bì„§éH…]»^± ôm¹´BnA¾žX@Qeûê£à礱ֵ ¢ežÍâÔ«æ)Nä8AHæs’i’ì>5{µ­˜–‡5]n 2°öé;ŸÅYç“sÁs¦ëÐ=ñ¯wÈ+>6,èÎ+E…KTT‡Îƒ=ÃÝ ÷†‚’ó†Ãi›Ö4Î2½DÇŽš46¦ùve/öN[ ¹ÙÓYX½ßòÓCä+…*Î=DZe3­‹7;ÈÅz]pÓ<Æ"ì:½çA@¦üP24;¯¤Ð÷qÅ8ÈŒA”Ô`ÀCÁšqAʰCCi¥’µò&M %4þø—½©¤Žö¢a¬“›:£¾H}'ɉ@¸˜R50!Ê -'VE6Kµf9pq3ª8¶sç‚Rµ™³"¬ AV…eä@oíꛪ yÜM›¿­êr -K?ž>n®ÁLç5¢î) 9„l 0 ï©ãžâe(;M ¸ZÄõ–ÕçÍ?Qù.kÕiX HŽ_2Xf˜› ¡I4·Ð9‚klçJÓ^#å%ŽtŸqkFý ŒûÌW6mïA}ªÔ :SêÀ®‹1•|g Ûa¨ ¾]/†®'†çY߬Ê=;ÀÒKV,°Gƒ–E²4E3Û‹q¸¢êBj9nÇGúòBjCÖ/> V^Å„H`v‰ö€RëÞtÅ¡Ï>¼M€Â ^=逞ÐÉb;¾1æõÜ .c0Ÿo­W_pÆ`ÊNz͸€•ë»îCáë7Õ9 ªkŒ|}Æñ»úÂ}"®:~÷’˵†wD¶#5¦,GÂÄ gØÀ-ÇóëéP^Aó ¨¯G®Y2~ü -Áõ6™8´V4Xµ¯Óæl´>d¬>LÙÃtÛɉp*MY -Èô²–È’uv+Ùµø§pŽíÌDciË$䯖I({n¶4[óNeB‹X¾XÚ{ U~z'U#§¶²™µC[§ÏâØ5Æk¯öJÞ]›†nÑ;ƒ±PâE?ë£Ö‘”‚i#ÅOWi¼Z¥žÆ‘ >ˆ¸³Ó*ÖH³NWk³’, P,âämü¢ê±”ëqÜœª÷œ[o•,m3² Lü˜Ô¾ùq³VÅ{×ôÃëŸ3ŒYP𪬆­ùd@¡»DÎÙ»¤ñ›(ßq+.VXSaæèB†l~¢dwaÄîbg£bà a©ìÞr 1–ViÙªˆ†ùêÐúªÐÈÑ‡È ã”ÏwU¥’3Ö»ÛD–4gE·…Ä·Ó÷8Bݘñ-c]Lè:Toä¼Òin* —Ýé- ß>6ÀÊ÷„Ç{¼À=n!³ç20¢sr™Ís®ÃÜÅ0oMª zvËcÉOkø¦+Lº±%ÓAWqÁœ”HXó¦ŠêB:M´1ƒØšr¤¤m8ßpŒ­§/èØzØ‹c }Ñétž—ïܨp̪xô†¹A@ÌMFΓ$¼ëc3® Ü À;Ú-·& fÀ;%)³ÁOѨTyö!‹ü‹ärŠ¥.'ŽŠ'ÿÛP§½üd,|ÒyÐ7f¦‡ÞÉjƒ ÖI›zÿ$•РqµÛ§%#™ÈXd$KÅåΖ;új÷{r[€Â}‘ml³/RŒ+®êo9‚%/áDݰŒUW€'@QÅç+Y²5:”ZX²~Kƒºtæl<³b%¢dᔆ@MƒÏÄUG@ÑEÕeî#N9Ó(ñÈûFíBÕ刺ts‚´6ýDCÚ5Øåk‚5Œ¾f‘ê:$@Pä8•XOœ°•©Ÿ_g©x`¼1¹x¡½ŠX©ws'Lñ pdóSl¡™ƒŽ*Õ4Àð#µ8@Šòæ¸&ëKÏ5Ë<ò=ÎíQØ9¼@á®p2(!7½€::-HÇ„±-E´[“Ê·t%q¡¾žmEåA(²äiyHn'ÞÍõôˆÅC‡ï·oˆ¿{»ýö­þ9õþöã <Wâ_6 Óƒi½F2ÖÕîo·O÷ß¼ý –'î¦Üßþrûô×ü¡ž¾ê@ýð3~øôþ‡¬÷üùóYÉÿÛÄé‡o£þ‰~ÿvûåVîÕK‰£!ŠÐúÇ·?Þºýr¯ü„H+x[\àÆ½Á?„Œž*Âh<Ô¨©Bï· í «¾8jÒ£=ÑØý -šÃ¸d Œ .7èÔĪ ¸ácL®kvÈgúKNëàÇCêl½#ù¶W¨~> ¡\CÑ)ãœÿã7ô’Õ)ò¦‹1—Uo!©ŽÇH+U‰¶¢x­<8ø‘!·u Ðù7°’_`)"0(n‰î¢ÕœpÖ(¼˜ã`¨Ú@2^0âá¡‚—fÕå.9-a¼½ ¼É.¨:ø_ ó=ÃâL5š“²h5ô¬ŠHr«Ïö°ÆQ@±?"ðqAz,€ö&ëR1}!6å°ÍAŸRs&µ'æ‡áIÓ¯u€ÖzîA—¿ÏþçFx² xIö#n,Íx—ýŠ\€0¦ ŽfmÒeyé]¸[(IÓQ`Á¢úµ ]Œ§6´…PR¶‚L5ç"“¯5DÀºÉÌÉÎê°J!:™¤ÒÍQ¾zÇûÖÊŒCx§9ã—Tw°(ÆÜ ;ïí©h*;ÒÆTéà ¦ÎúÑÃuT³…²ß§‚uu˜;'HÉÊÓ=›0W¤¯¨Æuáa­=á¾—“ÔLŸºIB•^~‘ƒ@hŠíJíQûëwËÂØ °xÆÿ·,üü÷,¦âðlX_d €â -ù®cJe” -â(ýÈy£’2|¡bxð#hª¬ÃL ag--!B:À&`ÛjS›³ŒeUö4õÔW0r\Â¥><½&ÛÖ×ÕCý²¡åLgÜPŸ–J&QêP[Ã|P)ßã¶À5[Z3u#¹|I íÝ®N*ß®‘%ci¼:³­¼Ú2ZõÁhi¬mE Óû7è³ -¤ÎvšïpÕSÒG¡;· û†ò‘Æ%‹,-½¸;¡œ¿£>ìÆIƒ%!é¶P'éægh€ÚÎq¢Õ®õŽzö@?ÆS=Áá/A1ÿÐ^m;rÝ8ðÝ_áC”D‰úà °“E°›Ýï_VÕݘ;€_fšçèèB‹UÏ0Œ\­Iàf D³jñc|§mfI;>CçÔq2zÿtzèh”€cþLN¨UÜÄ…Ó"1£Ñûã· ×? F7ªeæþ†š ²IÅ0IQƒMÚ;Å.m ‚Èø×9ª±Éó·FļÈx¿!Úâx WÇ2óõÔí“Ó°zÔ;´Sv§îî7Pçé~cÞÁQ×FŒ(4f’)¸HÙ±v´CßfjÏ+ â3ÂÎ9–qbdqEñoÜŒâŒ"4:šÑqµN'lv–›.ûWFjÐ-µÊ²O¯±‹½ÅÑBaON¨y3ã±Hv{MÈÛÐÞò(É_µq,ݾO…ì¬v_rGóÎ!:¸ÓçöÜîÊFÖžn`^¤‰Püð~éè%i½„B?É%ÞAY´N1hs¢f…ÍTÜú`Ã$îÎR‹§K.˜¾ÜÑOî’¿sÜWCƒÒãœïþú—½t,ô'Ï®|X¥#ŒèÄÛ•UMZµ))˜ -ïãËJêÂû‘EôìÌ'X6‡ !ì|z¢Ó_Ã}p/©š&ÊÿåÁÌ•Óå™Rn>–KBé¡ïá‰|–m†°. © à *ÊÁ‰ÜDiÅîhzÖT Á2Z -Ÿàµ¼N½Qû¯!ÎÁÑz Ä½¿>عõÇlY„Zkeå9k­˜Œó´Ü¦¢9Y§¨ðÛóŽôà—Ïvú¤¨Ù ap#X,˜ÿnÄ#?-™æ'#þÿ ýUîÄÿýøþ¯‘þ¢ë2,S7¤«)¡û¬S3R½&àŒ“-6›Ã7h.D!ˆ ´Zà •lúdRéh{Jkt2öO£ÄËH½Ðœ„¼BNź±ÑÒb Ëñ6—g¢¿úãoo˜¶‡Âod±! ¢˜Xµ‘; gMN@˜ xºuƒoŸ²«­qÙ˜ۈ¦(ˆT¡¶¨±Ü>™2)3¸yˆh Ôî-˜¬ÑåP³ï­Ü<õ¤³q'O5†=a˜Xnòþ†=å0F¹>ÉÄdOÕl(»ÎQX©HHcy ¿[Ë&|‚;î;]&ŽÃ¤ ”ºjO&©†•ãçŒYiÓo¤wžç›N눭ç$ “ò#X)ðŒRõàõæ•"×ùþæõœQ$f©'Dq¨=i!-L1èió¬„^FZûpò¼ãçìëþ¦ó -(»êwÂÏéM6k¢8ü`,Ó%¸:¦rº^è-c‹øF2èÜÐoÛÚƒeµñEtÍ…h’þÞ‘¯’›Y ¬¥L •–ßÈøp,9>à<õÁMe7¤q:ÄJ.Ý kv‡–nßgÒ4.ØL6Lั1¹Èu£úkýF“r9¿ÈßΪ…n¶7¯=-!çÐCðN‹Ä5H”cp±Îç$iÃ5ͬ²d'^Ö9ÈQ²º)Çžo–!÷p¬ú}ᯈÎÖ>ëTP¯ÉÐßYuZ‡ÖqÖÞ„*í Îeµm´ü‰úØ9ü †%xT*ðfb<„q1ÞE—;±})DðÈèN-³Çššƒº;yE<‡È6òÐ"êú^Ò΂Ï )¾,'×à–áOÈB£ˆ»g–(rç¶èfI4#?¨þlÑñ³{áªõ¡ùàŸürôש¿·F²ðPŽymv˜rÒ±šb;LWSÇêDSÛU¿‹*•ùÛ5}hœoÏÎiï–z[S¢S‚gä]99¯³¡ ΰ—,Q·œ'Q.}¨èÓL_,‚ªÓÇAòp¦¨õQVnÞHÎqFËégbZØü"7Çzî…ØÍZÏà ÛÆ‘Ry²Þá¨6˨­òaì‹ÍäeT}oP(‡§Ç´[›ÎL!%ŠÄ·ªdTß÷çNšÁÒׂR¤¶’9Ó>{NHéï`²…×Ñ žYB^&y R–Uãȧ‚8ˆŒz×ÙµÀù²½à‰¸·y T¹%eèD¥‹Ñ£¢¥ v‚N4;æfzé|0W6ŒÜîú¦9;Í.`ƒ†Ï>Ï@9RÒš[¡‹>š£MihEôÓwÐF1ˆà``WáàÒ¬ô BZwÖÚgŸ -vT@¸úñ -ß?1k7܇:¶6²õ8΄ÕN¡ƒÊ*P²%StP®Ò<\ w„Bì†ÙÁv¶]f“‚1–Üc+î­+àÀsö}7‰&PúfAáÅö‚Ñ¡òY@‡“ás}ÙNg«°¨JÃŒÚË æýXÂ9„ŸÑ>Ûh iŒêgU Üh°NñpÕÏ ¥§«ÕRÝ›åM ³øc‡ë-6(ø8û\'C½ã2xjôWAA I ÉBóÁGŠ˜Jìú¾…uÿ­Í«ø €±9–§€²g5Apb_ËÕ#MXzìÆÇS~b›þ 醥¡&±™¶™0{$.Vu…*†«R µìAUM7½Ï7LwÐ(q»Ê=^¬‡Sýþþ<#ò$™¢ŸÜŸÿ¥‹}íÏ¿s¦_?ÎôÁÓþñ#MÛ3ÉYÆsåþ—¦ ‡Ö¨ÉÅq”ÛS=¹õë¥ö­½¥ƒº_ã„ ]2.ñTd´qØ%‡4®³ÿmIw“-Xá¤FoÆ"X.åtÖ@yšÆ<Ì¡g²¥Òÿ\ §ëòO"_”Í,ü§¬ŠqËA…ºoX–qn4Tù|·¡-æMZ=á\׺T˜eLvt–5é&™ËLå"þeATYÃÚ•ÔT©Q¿ÄÛ)ÉϸI FÕ;(µQhí ƒâã4î¸vj·ÕöòW£‘¤ŽÌ‹.b_Ù„¾°ž[‡=#4"V¬ÐÕüùn çWónNé» ]\¨ái섀آ95]æžbÃnÕVûjÎö+Éy÷ \X¼aÐS„Ø®ã«=´¡iã»10ÉÚ&Ê„dYkÍáB·(rººœ~s1©^e0Ë|4@xˆhõ˜v ìÇžïºêÒ Ž”w¶™¨¶v™Ué U¢ä ÝIHkŒqUƒdöŒc޳û½0¼Ù¶â¾ƒ\¸åÝAAçÊ_À—€Ñâb V íj<@.tñ<.Я×Dä×ÓŸ]­Âöy‰ ¯Ø§.uêDjV¦V°K²7gG¢¶šK r£So°°÷¿„”$ùàÊi¥Û©@Š€8¼½¼#Jœ¶$+Nj¿1±YS„ÕáWOµwdZ1Û^DÊü²pg’;73µ××Ub¥bJŠí -Ä©JîMSä;¹2™Ø<ÖPÃÎóCt†šjT÷º„rKÉLl©{vs;‚‡F;›b‰% UÕÄãi·€‘,jðB±7Ѩת«z“gͤšìŠe‘ÈhsçV ŒzQ)W&¨¤igãÀ¼™ÙÃL‘3º”è?ß›GÛƒkÏñÊú --‰ÆÆf0X>šA¨…ÝH¯;;~º±Â+˜¨iHøÆøâ~p¼ÕÆÖF/drJr/æ0ÃJ=7’F‡WQ^ô韖r¨1Å‹Ñ8x’‰ÃO;'”(®C"A{èIJª¨¦Vœ2§,Ú¨’\§ÂVžÀµkB)eàÑk³ pcÍ+½Œ:*" 0¨¢_€ "˜ h*%oá\s݉œ=·ÇâZEúŠcVzQ¨XR˜s-úZ­¬=JÙšö9+v6Þ«ŒbSéµ|Vm#ýx¢[ƒäãï°¤qY y³ê+D×Ó+„èqÖBÎ+ü ÞxgýT- “¥É`O¦jRB|«i£SUWm4‚aG¹IÇrãŒö"½M¡‰@¿B?â 3««?>Èá?:ÓÆ-‚æ û#Ĥ…7ñPûßøE?جùÃÿ~4ýé•OF¿ýhã“ÑOø×ÙÑ~Ï?ûŸÞ~!–¯CÄóé?¿¼ýüø÷Û¯ÊXFt—AEYÔ¸ï ãPL½±5²rbü5õDìÄq½…Ü>ìvc ç•Qòü¹êŠæ1ú±Ù=ýö~Ñ{%Ý]4Á­I©V“žHú?bíÅÉãþN ]o'‚E¤¶š¨¨é4ô>®ïhçlì#­¯sv64Ò£‚´íÄëF©’. åv¿‰{œvKvŒøAuƒ5¯˜ÊÕ)2ÂPËŽ„ïIGFê fôŠ÷· ¢òž'°Ÿ 6¿@ªY$©N‘ÊëóÊsº&wÓiÕ‡ôþöM=‘ŒÕù]2JãOè„¶¥'$O*Løc_.ÀQDÓdLc§ V[7x¯¢Û­žþ~TuGµ € r³[4?8}¤r]jm`®[M,"VUö:xåvn´–(žGôçªÐXÍ -'€‘ð7¿ùÎ C¾F67“º'ÖÌÈÐÛqJk#7:ŒŒ=´Ö8æöp -ù¸_êõ68j;_ÆÇ0Áà­>_žG1ªNˆIQ&ã9ÓÎcõIo;‡™4Þ9¬Æ‡!”F£%xGÿ+æ÷Zri4Gdº”ÉàPƒl¬a àÜ8/?¸Ä¹ä0¦œW›.¬°Ž3p.©ŸCh£àÒFl€¤V†W QƒÏ8uÓ“º²¬àÿ °)ÿ1좺Öýâ;•¥ˆ)†ÛБ+š(«ð˜ñ(a*`nŒrCåòÙ±­ö¶æZó½ë%‡u+~6Ö€>SHèÈ~ä*渓Z ¶Ó` `­ƒýë¼ìy >£aä®ÉþÞζØÙ¢µ…þ „g6™ë¸ìÕsžPD£²öÜÎFÂŒß:[Ðò•jŽ}Ê9æ¾Û%¼§•F¹ÖÓ 3¥W·F§¼Û±‘Ær'\è§á‡ó&ƒÐ[OXЗLúÃÔ¶sßÚ⊢¢ÃŒv„2ŽÒÎ`@‹Ò¢]^Ué¥KÁþù¹¶B¤FÍýçÚßôì¿ëï?c?ýögÆØ9CJ"Eă¹ÆXŒ¤p‚,ÎÂh¤q ókŸ‚\ÅOŽ­ÝøËìùü™vVžÈÛ…VÐÈ÷—Žœ5É…ùEš…'~ž¹ä ÉYi5!º›^†h -’]Š&ç{ø$G&˜†/Cqoäf­Ki>ßt¼„ô+m( —}Å*¿]ŽGåxŠñ¬ Ææï|ª-ãÛ8>É$I=ñ´Ø‰o# É7=¿¿D†ÀóÍ8b ŵ,ÿç¾ZrìÈà¾OÑKoú²îá mÏFµã1 ßÞ™¬R?<0m$F¿bf2ø‰ÈæÓ;mVÄíôOÊhãÕTH —"g\J›·¨evkcÚ^eÌ´¦ªÄÌåO”h¢U½P+Äåj¶xˆ¸bH“W‘Tšµ÷Ó´òƒ#H¸&àA Jí=¤à3GóŠÔ°ìA©Æï/ÓêttB?(d—%gŸoãUvàÅFU)m|d/%Ɖb.d†„»¨.ṪZ-\ Õ g5ÝxU)6,£HƒU¡`Uˆ+æl1aÅ‘&/"yi`ÕlÁBûÕìëCkGFÎÞè‡!™Dã½ÖÁÊÍW «Ž¶íq¢ò Ù™H'K¨%ü›ÙÚTö¢¢”èsØÁ­â1U¤ÆA‚P D0½: }?a`)±ú®ÃàÅÙ¯^ôÉ–¢ï¹BŠ¥3ƒ8Qbq¥’4«ß¨eý€ï3#ðkÙ_ð{¤¬¡úóû«þÿ÷+šSý~*Ä/úY!S -úÇgñ{Êq~®öI/ú¼À_¿EÉ–¹òC4‹y¹ã&d¶Qˆhÿ|üq“ 6‘G§ò‡¥Jl#Þ;€ ê¨~ÆÚ]‰‚W«ªq‘ì©Lbu>Ô9•Æ—.±Å* üù@æ;Oàž÷‡†ÚÄ «J6ÝOÎz(9ýßœEumÚva,é¼á"Í@¢Â³MQ‚8ôòÒ«×xÄßtåð7ó’7\­£Ýñ7Yl\ò%WëÑuT°Ú褦,yÛk Ø»@„Mhû7íŠ&¿õ -oªœ"µëŒš6@ÁüNðè£ÏhÑž1dé–…2¤–±${X¨f¬Vàâ_˜üs¡ÂA‚âE‘Äéó–™UiϨ›;1Ô(˜8¸—Eo^°!¦ýv[`ÎA™2çÉî¥áÔ™áXœ˜˜uád¼¿@†»£ÓP_¬×Ä:!‹Äo=å•ÚÀUÕ(™ -u1_b½ÂÁ…âS‘ÄiTA°j»èFáß#ÅÃ,m³òâ§âž¤ø)Æÿïvù&±†U‚åk¶wÃvô®ÖÒêÕ¥3ƒm¡kõÒã_Ø€©ûw©.Õ.ãk©.ÕìNcKuw©^nå$º žô·†P×êØ…º¦JÖ{JhSøáÏS:¶åJ7ºKõ*±¤ó†CªÛp&"M°ExKª]ª×%Õ½Høš”Z°âR™ÖZ¤Ô-IéÒ«Y¥¿SRÕ]óM†€à¡}xrk8Ç -àüGpß×inšJÚåîý…^^ÛÛiØ=d²FxH踶·«óyd /·Wƒ÷—KX) -¥—À¾xf"zЦÔΨŠÚôC죅+Ò:Ò¿1åy>†]6 Žs•|’þiV·H[ù¶îœõP¶@ä_Cç_ÀIP'(¢;yH줪¢ Pî¦ -w\üCþ6ÿPÆáMC/ö L‘¡åÁÔ€‹ã„Ï.oæÒ‡ /;4›‘5ØTA·¨–ì/ {HP@þ†bn¨Té᪽H,¹ÇË’¡¤†ò!§€qZùçÈ©çØ ÀÜý² zíͼ·—äõ´ ´z1ì:·™‡¶?¹ŠÍ=´ÓÉÕ)\ |¾øâ|K|Ý -¬DôàL©ƒOUu±û½ê[Ç‘Žò#¨ï/úCíã·Êÿ9bDÐ/ÿSޝØÎi§Þî‰5kfÊæ]l±Dä:›W{M[›Ÿ*ž¦ÁG¸óßY}üþ¢Ý:±-óL<¾v2Öcb…|J1‡{ðë±(ÉV[ŒùFoh«ÔÑ0¨¹¦WX+wNCFÀ…È(ÅåÔÏ`h«–p³´ø‚RTÅ;¾ë©r§¨(y¡8Ú Þ×èþà(óµÅ{E³GڃݢKÈüx\\ƒ[‚ –@ëÔ\QAų‰5c”ì¢Úäf¾#šmÖÅž:ŵ1fe´ëS«›}ËÚ­BÁª«éb!‹¥L^FRmâ³ñƒŽr+Î' Âá¡`B^f -»Œj” -§BZ¢ækñX´(¥èR)1FAÁjµ‡g³j²µâÄVZ® ¬šfì¬Ú¸ gUã`U(XâŠ5]TD`‘¤”ÉËHª ¬*¾«Ÿ¨žA‘W¥6.×¹¢8ii&[ãÃâætÒØ˜%JÃ)0ïTŠîû)@JsL«8ò_*Qã @(("˜ ¯»Š”8XpjüµAœUóÉQ¦kÄ箾ˆ+gQ¢¼dJ¹&»¢å¡\?‚¢ýýsµÿú<域Ëê'ŸVüÓgNþó= f[‡9¿ô»ÌùÛ f½5˜}}Õ`¦ã«3o¦&ïÖ`ö¯Ìy5˜%LzÙjÝÜ|ϵ?4´ VÞ`VšÚ]U¾õ—ô¿ª*JÖ§ÂXÑyÃE-\¢$Âö2‹XI]®á ÒÐϹdãŸqzlY'<¶!èk0ÖLcÛµ+6S%á@ö ä|UŸMÇU|~ÌQ¢øüX=GíÙ´½\¥Ç›"Òƒ ¨ït =€Îã®ãȼÉkI^"ž|Õ~rÄ%éûrí¹ipsF‚>˜ôÊn<7 -ÜæYÐyn²¯âÙÀ16ÑíqŒ}ÌÍ ãØòm8Óíœw«l_RÇ>çÝ"Ö‹i“¹ºÏ¹ÚTì]*_Šþêê[öopúJLÆé»âÚ+rêÔy5f× -ÍÞ05’=¹¿ˆ©øàÅã#58ÃLªLÒŽ¹‡ªýZ4.‰dbãmœV+p5‘ÉõÂ¥yD‰wV®WÙ¬D-·WÙ,EŸûksW rÅ‚ªátäå)†êV|ß—/øîÀ© î(áÜ <¸ˆ…Ç©OÎ[÷×L…’ 6¨fá„·×WuªÆãXx!ÑZMÓÜŒ{1/a :û `ÒŸW^Ìi ¤y7`KQ š^BAë>h‡ß–ü|‡•Õ¾E—S é»åá;¶á8ºæ ®Ìy -.v‚µ¾J¿´W‚vòóq‡ž–„2µ\8ò©K:Ù=U¶ ‰®|ZcèVzÙïp€mÙRªIöìŸ"=º¿ÆÂòýíóOSžüÛSÚósÚ§ Oï×otx}àÕã1pån(<^:ôÄÓÈáåèUlðJ‹¿-¾x™ú`M7kSŠÏ^aCu´ƒi4v_z)]k,9›Jžzß>½©Ïí -ã+ÜÝ$Š·ÿ†þ˜Ÿ˜Ñ³?ãS/Màhþ€qbŸ´}…]VQy÷ wöµ¡Å¢BlTõø_8××kfÁC¸ã棫¤Â¦lÕªÕÚº$3ÜàøŽÚb)xö}Ö™(“Nbl0Ùâ´Ø_PÄÕÜŠ–ö ? ½I³Í 7©siAsâ‚ׯÕNK]å˜7 SBªå\v^a ¹0þÊá -̹(=Sm@´ïí*+zü—ûjÙµä¶{ÿ‹z”ô;#ñâ®òÿ‹°ª¨îãA xx“ͽª#µDQd±XÂß°Ÿ–&Ц¾_kø²õëAS&a‹ò„¶¨*êp3ÊÊVµs!€ìeLÙ7ùr]•>\Wí"cpö|ޝÐ’?nUs ‡³ÊÝç=t;õ¥I îMjÛÊîë6ÿxݶïÕO”õl’<<ÎÇû[´~O æ„–=vké\÷^_x#\j£Áï1ðÖ¸elÉ•œ¥}åæ2^ˆ¯R¿dW7©Õ@wŸl0žS²Ã8Ÿ—IŒÜ-û’æø@>>o“i·?.“™†v¯6jÒ^uL«ZwóÙs™Dm=—*Ñ4/¦øÚ+$yú<ÏN© E'uŽÑÓ× -ȱÇÀ ή…q¯öõBÞ»6)ŸÔÇÊ€ògGO—á¼ xþ}¢rÊÁó$Ɉs¼/’tÙži¢Ð ìyº ]ÕæyŸ4é÷5 ÁžÈJÍÕ>Þ"áZ÷)²~ôq_BàúHˆ.Úñ¬L¼üî‘ Íw£ële]Yu,þ~™D÷ùz!ïªMÊ :àñ/ïÉ,¹•søáÿTŒþúŸ¨\ã×=ƒ¤òø•éqyŠa½š€·óú?ûÂøðÿ”NÐ&É®þï&ÙXÈ8ŒsWP–YÀä'Ót¡¯£{ nYû*xõ&}Ò{œƒUr« æøÑ·‘Ü×2åþ?õí¿õÃô?µã_?ûû=å/ -Þ92œ Á²ƒŒø¼6ɸ­!_Ö -©ÞÉÜ4DH&ñ!7vwý.ò¿ £6a(%”„vléE;'Ùc#«}?¢ FG•ä1ðÁ·q”Þû^O ¦§4RhPÝ¨Ô ¤ 8mJ?GÛ&vÜlfµE_HõT²T}°”ÒlH£ù¦ºY“ÅØõo –b[RyݤѬKÈ©ŒÏÉbóß0Wõ)ÏãªßÂ|I8{ª=~â}kmèÛœuiKÈO(}mß%cÒ¯ Ô¸(”Ò éñÔG}ó Ý^äI;/Š|)Ë^×Σ¿ób@±Ý ×­M÷ç‹A…2DàËÔ4»Ó×B!!ÇÓ`¨z^Åœ1bFiÍ€T柜ƒGS>9K<ºTV]JbhÃpöa› QPÓxr¹ä?y|JPgølæV ŸTügRòxÃB˘eK8L‡¨Ù80¤ÖÆ.œ=Ôߌœ+=f©>'È -Ø6xdÌg€lq²r igÖ(ct2&sjo“¤ÃºÒwŽ S‚¨×ˆôêaŠÂž`¨CY6¹%Š28gœ;¶ ¨L‘ò\XÐ7/ÌÀ 2îé—ÚQùBK$¢ÓJ¯9Ú/áÝËYQsafõU‡¯$ØÛY\Ç*žpðîW…ºÊîzÏÕ‡ J¤/mâlÙdos…Ríᇱ|Ü.„_ÎÝW¼ûwF2m e˾·y¾ÃX]Ø9®–lqWvîŒ -$î¼ò>óí² rgtIû±iã<Êÿ­jÌ¥nâ…ªÒ”Äû‹lâfŠÌ¥Ô˜HYߌLÔ!Ð gÀ¯X6-CäpGe KÝ#3xŸÂ!U¾¹lV­raj"šm‘’mâC[¨0Is1àÑÊuÙ½i»ñHDÿŸöâ-BÓª±X¯£€Õ‡:Í‹òb:Ü] Y jÕK‰>û¬¼´Oåahíhjvƒ&´e—ñ“ãl¿Åáêü -Nz@‘w¨\íM×uá¯àÍÊcZÙÊnô<ÌÑÞªô·uå‡ag}¨Xÿ&ÙÀ^ uÚõæ2¡«ÊÕ•å"¼Ö/°>~°Ã_•|ÉÂiu>_Ø@Úùß-ùþùãÖòáÏê« ^ËŠž¼•!ðê+Ɔãq›‚ -,ØøøŒ!çSÍàœ ¡ÁúµÀw) ~aÖÿÃL0ëWºõ­´ÒdŠ|°êTî“Õ2®²®.b1«p’tžKTƒ‰ƒÝØf²ÐÚ†kˆ‚ËÖ¡ÃxòP„VuçIÒí ˜G€“V¿Rp°¨çIìì C´-‘7½Rf"z˜O §nмÆÊ’hÒå“{-áZg0}ˆÔ_… v‘¿NÁA¹Œ¤JD— ; e¬Ò“ûA‰xM\ýØâËîãž-N!<¥³ŸÃÑkcSÞØnÜ -¥"•HÛÏxõxŠHä/¶ô~öl þƒ¨pú˜)ßÞYÜ2fŚǩ1l·ç÷~ ¨VµT‚KÀ‚;\sܸ«_p(•7BX Ž4Ysnd:Eµ–åÕaõºmEŠ›õTA«ÖuèØ¥ô ¢¨uã’> ÊýëCëgÝ8W꟢Q)}5A6Äkã­dãö=sOq`JO–ƒ& Zõó¨-šW½oÊq$+÷ q„¦•Ò×¾}S«†nØMk'÷émÕZqI«š^alõŒö®•JŠ®îÍ¥ @§6¯Q QU2HXkœœk¦+zUìY²«Sßf䆠r;r d4 -8­ -*àu vvu·ÁÀ¨‹#©÷:Ko‚µ_‡eÔI²k<¤Þ5®nkmì·o¶‚sV¬fç éÁHJgékõ ¡ùüK˜yÛ„UÛAR‘BdAN½(-H@bÆ!Û5?5FòA×á‹móY·350“Ÿ¼öÝêw— sÞó;_]c²êz-C(ŽBé†MÃÀ§Öp :‹ŽW5#5»VQk!þC…c?puñò»-t±fÙ;¤‡Ä¡Û†xbžÂb=Ó—Næ¬;í(V=ëSØ5ÈÐ?Tšï?-‚û‚À·þ‡~]~ø¥Ÿe~þí§Dp°ôƒàŸ˜}‰ê)ûŸáÔE”‹3ãPBᯙdÈlFÑÇ*µ(SçùÁ‘Îr¶MÎÏ?PYCÑÃ)•Z6«uMø(ªESXS"ï†`ìgq-túÏüeI~Oþ¶§H4˜•½‡(µ!³m\‚e6QKnCöµØFyI–¡þ†^ÿ€®Ïÿøçx‰3ú„šÜùj½˜$;V¨Ø{ÿ@q–>ãJtnOÊ–ÄFQÅË))!…P±cä¦ñ‘ìD6™¹Ü+]Ññ6rQ¾Ä¢:þúE^ZehÒG!0I*ßEMYm5&áìøÂ3¥ï2”Ïúú´»-)1#$)qlŽÆ>±Õd³eÔ ‰$ gÆh3r¸éd® ½MqÜ(¦zJöe÷æ©@êëÙru»Ô·±êkä380ƒ¼PÊ"QâíëÉÔÒ––ˆ Nþ³)QhšÁcúq‰ú–J:hÁPB (<}KöHý–uõKN@ç¶LÍ/ ÒË‘I‰A¦€qy¢M“ŠAå¼£˜÷Xa{AÐ â¡ùÖ!îmKœ7}uÚà@$ó.èßiÂD˜ó ¢Ñ‰n -ö#¸‘/ - #òò–,zÆ]ž³ýŽX“ÿ@¶ -Q¶ë~¡f$¯N•׿9Á {Ⱥ ¹‰¦\èŠsÌ_4±R¶;¿šL…òŽ·¨oÛ7i®Ó”«š,%!ØB²Âãè+’ ³uvK>JÛÑ4÷êtSÕ ½,ÔÑf)»UÐ+¡™Æ^ZŒJ¾e1WÃë²çZê‹K©`l¿ -R4CúàWüÃW2DàÓTx¬¹&n¤Ql+ÁÐ(S¾B‚‚x[nšø}ànäøG_•= ¢yTò” Û³‚k7ÎXc)ò@x«øÛ%LgPDc yï$¯€k}P™[ÂÚÚ¥›dÓc­ŠÑ•œ6/6•zÒTD=ïƒ -«_y¨]¸æ )¹i$"ÃU·A%ÖzN~û‚ýÖ÷ Þ+–R‘ Sñ33,¨áLþîšNkÅßþTJ,†ÊK9ûû>°†çÛ!ë6µÒÃ2}';d½0[¨<íîsÁRm1K` ¦ˆx®…ß|^Å5‘p´©z?‡!» n^™B‰ãLwuÄ]€‚xçó Û8O15°k‘‚³Áð[Sû£kUÛX1àÛ*zs’¥»âÒ¨¾Š%'›1ëÀ V½³ã­Æ„PÃXç–\ÂPÖ82us’šr ®^€ræp ¨ ÔmÈØ3K®9àžq9Ë{Õß4ò¾u£#µC¶1f}uAÔàtÎ.GŸI8Ô‘»,èO[&â7mK”ÆPmäóþ””¢üè$M胫hñÊ Kvw¿¤\¿þnÎÊâ4çýç÷à¼ÿЂùoÒä¿ká¿\ý·Žüå{‰îúÿþ^ý¿Ýãý¤ÿɯm¤!3ì|f¥HçËId´ 26 ‰O é(,´$Bµ`cgé,ˆÄJIÆ€çàH˜+–ÉÏ—DÏÈÆÜ™á˜aw„v,f$VÀøgÓ™èÀè YN“žÚ ÁJ߈Œ+I€ ƒÔûÑŽ ÃÊî’òi<‰Ø1ù3Œ¼š°âBñ`4‘}7p%-¼@ßÞWöòïVΪ[©wü¹ÝK&a_þÊ…±¶š³Ú&öC8Éœ¸°t { Ä ÆÉij0«=Wšî :4X¤€AŒ€Qʼnýš¹Ç•=(¡ב+:,]Ю|ëµÒñˆ|ü(<ŒxÛ e®y>$b]|„ï 챯°ÎP™2¾sÞâ -Œ3FáI¼Ú ×­ÇŸ¹ Ýýµ'_J½i -muë¸o½´Rö>-„Ñ£2pûxa…2(ӻĊ+q˜>mîQ 6ï™cPb]- /=¤2×_•ÃCzöc’(-zrbÆpZ;f­€¾»ñÌO¼Ÿ w!óèÕܳ¼®wD¼âMöFÅ-×Ë*5ãøÇ ãÚ¬ }V F™êèÈÕTyZTh“Ìr…EÐ׎!­†xᶯ±µ‚pÚ%±ˆQò‰'ËÀÚW©æÆs+%T8P¢äÏM<×Uª3ë³µz·«x…¨Rgëéof$h‚¼'3€LÉÿQ8wXãÈòH$¶U8y=pÌ:ÐjÆGÖWºaä$lËÙÌCåv’ýceVÁ Ƀ=²Ú¦ ƒ¬²ª¾ìÀGFA™{`×¹î†Z|°ìnÈ3ûž¾ïŽ=¸Bþ¼ÊSQ*…°øWÜéÚnµƒµÒ“Cæ=rîfbVŽ®3ZdE;e†Šù£v¸"v =Ô«™ìêMÕ{îûî¹oëÄ©ø2†E¼Õ† €WšÁU­’(d¸V X;ÚŸw‡Ç™•¸äÊXÙ•gàÄvw âµâÁÚ±ªÏ]‰ˆÏ¢ÛwwxåîÕÂK ´Á{•›ucÜGU½`õÆ¥»*ü’íôÐ¥Á¦j·NžÇ;U߇ü±Çxjo£Y`ú{-Δw‰$­uÂ$žQ'Ø©N.bàÕ_zï«¥z:V|~JT‹‰!¸« ù½â4ÿ¸â¼u>@VÞ§óqå|¼âTOêk û¨~±î޲T;%Qïl¬(oxÜ wg÷:R1s¬t¼Q¸ï«ã¼…eÚ©XIaâ8ýÀ²§‚Ìô -¿|}Q쪘 ¼õ´£Ä¨ôZ¡Wõʾ5îŽ^ "Îx‹°ÅOìóFȳÒzIèÎY–„JÜ_;ÎOÉÃÅÐÌ -êóØ÷á½ëˆ%1´aԕ݄۹ÆíS¥ìœºÂÕåvìÂêrë¹"ªö­:Rßg;«+šÝ Û¸rLåvßÙܳßMõÚ·l?X QÑeY> ¾=ºUKˆŸ^©Fþ‰›æŒg%[ñºâü{îºRß× ý¨yû‡¥¶5êQ!ü抩Œrûà9ålZe°Œ•³§Z)B,±šhWÃQNü—öjÙ±ë6‚ûûg©Í•ù~l ä ¥‘L¤ØÈ\’mä÷ÓUÕä9Ű¼˜Ë"yšÍf?ª€òÓpq‰þŠ -%&àE±u^³­²œ²¨ÀˆJhb3è´DúPo†>ÄÓhUïU³2uæ3˜ì.,ž§Ê#æ×§ddÜÑpÉB—~òùöþöÃíû§ÛwOñÇxÄãéýÍèM7£ûó¡eP3ʽ &¢åéq{s¨ÛEë¡n÷gŸˆkâYÅ^L¿`âÍü7S²Oß—¤æ¿kž­‰¯'þµ&’O¼{½ã&îf»Ôó¡ßÿÚo®ë”)Ìe¬-ÅBˆW¡{º}´]±…pÀ î}zwûûñáöñˆ´”h^Ϩ q‚ÞÚ{?nXzàjmlO8èd¥3°¹1ÉìX"$ŒÈzhÀœ‡ü†u"Ìmm´p¢¢Zâ©€É<6³¶ÜÁmlw‡3™Âi®žÉ•î™%vƒª>oÁﵯLž+ˆ™mXSÆhá Âþ™ÙЀu„ÐûÏP·çãnôÍ.…˜IÙ„›Ê ãu«`.m°Z‘È?[ëòÃDqlh$ÈÇ¿ le¶¼ÀºâG™g”ðê†XÄ3$^l -¨XØáQt%–>ÀÂÅa9Èb(¥ÄµNöÆ”5"¥¦I{´ÎW´^(»nÕjɨóËZã¹X‡È½ü0j›aY{‡ -Ë£*?´\CÝ'µÍÌ.¸uá]{–—¹ÕÌ‚kÑ8)Ò ¹E„—4‘–Ï*÷µ.ŸÉXê! `,¿ )6TÛ¹2%À^! CÅxèÔ1ü ‚÷ΔÍo -ˆìñÀ#¥ë4—aLà¤( ‰ì=’Ñ‹m)W)w÷3±­y.¹ÉžÊ5s%†H¿EÉ´xAU0—†³[©ªçXqµažˆD+°#"žÊB¨*P¤ Âv˜Õ2„­)ÉÒî`ž•*¢ŸA„[Œp²HözõÒU"eT³Pd¬ CÐNðe°ãFSW\5¥Zb Üb0ÇAW(Ét T h+LGËDMÎ\†$LíE%îÜ[!à¸@o¶Zî€[[—ÅÆÅÜN½R•¬#OOמ‰;£Ô‘BB£®p -˜Óq¨C@eÁ¹Y8PÉ\™´[¹¥ã ö­w/ø>’`1V‹ö%4˜7Àè™>²ÎV1ð°lZŒÊFE‹A¶ËZ Å£=újÔÏ`A -X3Gev4o}œ(M¥u$ÑŠ@̤'fÀÓ3,’'ÞE½";6whDKÖFôVà<¬ âQጎ16™àšæBæÐQ>W+½{°”µá€6곬5øëäW´-b(¢þÉ–ôá¡¢‰3MÊ7…÷À‘eœ:¨°w-\ŠQO†KæîN‡¶Ð`Nz@\…iÔì=ªoÌ¬Ê ªwq±È´ˆ§ìÝ9Q`#x—2â/”+ˆ«`d¦·šW¶6 ?‚ö,m ³JI%pÑJð¸¬(uo{Oòb}52Rn›î:z÷¦ø‹ÜØäÉ© ¨gb„ ÒEø€šäò):Øñ°× -E0nJá7Ý#¬°Þ4¦„š9.Œ™Ê+/oh…u$r ? -cý!ÈrÖÆÁÂ4ä)³åCWuÿ #Æq.©èÁÃ)jSûŠ`bb­V‹j_U9¢e`VÁª4ÛÁóŒˆ+Us%¯“yS¥É`b'.A<Ý‹c¢>‡žÞ.rÖ:”ýåãÒXŒ¢U?¼Êç{QHQÎÀsJJŸE{=Ý‘Œ)ãÇîïÃ4jÓ tX·•›ØæNÏj"•¼eÛ¤lÖù©ÕÂŽ›=^V‘OÄ¥YÒ5Q6lYz30‚uû ûF^XC0?ù°±èìXXœt¼QN”M-ºj)CõSL\¾\’žÞ€~’D}ƒv½Õhý3Ö“!@:·x+Œ-”Å·DçÓ¤³‰ZLòÞA‹nriª,d$%‹¥6Ê,ÍX|uª¸%_cÙ#¤wy¯F1eHRµŸ:³ÖÏÄì´¼H(+N÷ýïÞŠX¢¨ $(C’Ÿ?ME¾•/êÙÉòXÛ -b©ëŠõ¸ÄçÛûÛö÷ýÓí»§ø£åôãéýÍ;^ÔOZ‰ƒá‡õuà¿öÜOÛ›cµ¬«×ýÙ'âšxÖL¨‰_0±z̈tÈéûô©LN_Ù§þçOûTËBv‹v”iÝǤÑr꟰Ç•ˆ|”1í’ Ÿ¹À^Í «É¾¶]d3Å¢aÍ×ê;r'F=n ^…™Þgl#àˆÚ]ÀÂLD{b ã¾íîeÌoK4 ’²Ï4ÜøÂ[+›)S‡Rk`óü}/ÇÏ´ŠÞšyá ÜxcN¸eŽŸŸj3– ¶ZɺJ@µ/xê3ºûËg4ŽKtÓ­OÛ.–õ—ÎëuÖ­?ß~¢÷µïëòæßÀ÷¯®þ¾hZÚaúwMÔ¾"à±v,I^ïøõëc¤™µK^Å -iËR”‡6(q" ,ÿõÉOŠ'}óù~{i•)øz½[M™—†ÅåÜ',yK½, ¥z©Ò=æË#Öº¼¡C_©¼W¥òãÌ •ÒU¥µ|Z ]Ä­Õó°ÿ·º[Ù-Zæ¿$ŸÙ! âôm¾3]Í€î´a¸u¸âJÆ|ÎdÒü—ÏfbÈgªiV¡z¾œŠò]®©ÆfP»·ÞÀ!©Æñ%ÕøÌ%Õ¬oVX/™+ðÏS=1,µVÞXj_°ú—sF—ùl†æY"ÝzûÌmߥÕz¥õz¡u/Ç=Ùèúñ['›ß^OüÃs†Ã®’V!~}ô»?Í)È;FK¡ˆD;Ë8‘TKÛV fÔŒ­Š§²U¨"jA3'25ö/¹©+h󹋿š;dPr‡–fØÎe¹È†3‰a¦ Âɳá£äG“¤ ¬YY1ÄYY‰ã8§I‚%¨çó´’×é@ÚÅ’ÖÚÛûºÔË'‘]J¢-Ö1ËNK‰Mw¡`8ïg ‡1IJ O ûÛ0,Ó«dç&«eµo°¦e‚^÷¸±£2o³xXV·Žg.£Û˜D‚­b”mq+Yì\é¬ÝÁ·¹·µýžúÜà‚Ý>:ÒM']HÍmfý9!®çBxm¿ âGËV®mèúr ;Ûîh›ÌÒ6¤`àuÌý>†b¿¼^±~ª¬§5æ~õäè /O_Ø=ʹ·ù1Û] ÷Ô²|‘^,¥OŸ,ѧϷqdžÔOAV:kº3X–†ê© £íòŽ·ËoÌË»$ÙÅÙFs%ܤÔ/®w¸¾„»½_Xo&SøcÊNû¡eDù€Ìëα€œßáò~‡îr’áÎ(ùËOu´»°;ˆœÛgÅ_eÅn¨º»Ëa–xÙÌO–9]'‚; äM%D&ømí–£N²¨´ÝQðu]fVª nÅj{-ßœiQü~zM˜¿øä‹ò÷ª^~Ìu}ðï×ô/ÕËŽ–èk‹ÖG’.éšÙO•2ÎÄøOjÉ“+RoæÌ*™®ìãç[²wêŽ^ Åá¥2)Ûçém.y‹M–ìªhã]k‡Œ~§™(ÕažýÐ×ì±]0xzüG¢ÕÀ™PãÑÐÒ MÏ ¢Òàv•(BÖØÒ=5èä°ô KOÅDþúà¨ÕîÖ5*Æø…<óÌ—u ôáæµ,£›Wãe^¡e^!Ýß÷ÿ_íHv$7ð*4åp¢ëß}Ý`o,º¾d&ª—±T„´ÖTΫÆ'»‘Hƒ¯'ù5—í!§5fRǨɱ%³JRlYþ| 5†åÛøµŠh‹üzùWÒ‹³Ø¹@‘²?~“ 7ü$µ†nÿ<Œ;þzpÎ+Œyû¾×@ÉΣ2X››ïdÁÀu3ó*¤³MìÉ‚ÉLÝ,˜6•IL³êMÃ-Ö±`Jw²àmþ& 8‹ ±,àq° Ã`./†q18û•A¿âUöûH–˜{x'p ®ÎÑЊML*^ëh.ìÇ`ü”ŠòýîÍ dý\13{;h•,ÀK­îÞØ‹†&XK´Ÿ…Fß(BFÅêdÈYÉß½šÆ.ej^¶)áR1;X÷áÄŠ~g†¬á)¼D(lâ ó]‘¯ÛXbÂÌÍRãìzÉŠh†,ý!jðµnèµH¢PŒäIÕHšPޤ uF–Tô¨ŠG¼ ŠP“¤HEI†P•Ì¥™õIeymèúGŠ €¤H -HŠ äâÆˆ¥‚ÌG2È\y,@É”ìA -É+´0Äð‡8B…~’# r„Š%G*Yr„šeâ(\U/¡J8¡fÛ¾XÈ䈕LŠPˤÌ€Uͤ0)âUPD# HöÁ]ƒ”¡1BI(¥$dª0B`? ‚o’‡¨H+"–^Æ|3šä¨ă‹ÓÄwâ> íG>µìò ÀKõ)6f½» iìo¥€oÊH?ç -†¼åhX‚Ï!G6^=oOÄCÓ⇗i¹åxáhm¹LD=¾à!ŽH6H$M“^ ßÚäÔ"æCÀMê‘`ƒ¤:SE;Ÿ•zž¨Gý˜HSê<¦!^E˜$¤‚„ô(HHœ‚$@ALA A‚ -¤ M¥!H‹*ƒSP -R?3Ò@AE)H ‚b)H)Hø -.ßBj‹›aÁÁEܳàú1Ÿ0hSÒ„ÂtyDÐHJ ÎA-ÃHÉLÉ uêH’à›j…¨¨cˆ8%ù¤äõc,$ 4†¶¤:y©¶Nkê0$ï÷·Î²>J¹ëß³uþå°[þÞë-Ý™|ßûaî,¦õ9VÂv¬„Í.³s½ Í9‰†}B•Ïû~Z6ôÈ¥½eN”]ç¸ñhž„ÙG㤿Y:¤sÑpèêϹOh.b 5Žoo.·p¾ï„ó‹p/.ô|)žKqþj'œÇN({.@çJ¸Ž•ðØ“Üâ6Òôg'p͹“ZHXó(Zž!8@. In‰Ž€Ç]ðeØåx&³®Ô“̇ˆó¹ –·m°ìmpÛàý¶ r\\ƒO˜÷2_Æéໜñæ= ¯ùÂPíîz’”<’óНynµ%q€ lxÞ%Oß—«áH\(;Ip]$çs\oËàÚË`?–Áñ¶ ®/—Á–Ë`ýõ2¸žs,Ç6¸Žmpý¼ 6mƒ‚{¬&¼¬Ü¯¶ÁþÕ6Ø~Úï·m3ü®°?/ƒY´ç28±çŒòì6RÕê±ät‘ò>–œµÉ—0Q^4vÒ˜£opʨræ”8$t… >p  s¨Â40déıg®ý -xuï™… ¥ý/öÌzî™í¿ºÆcŸ¡¢ËÐuY4å|ÄÒ±Búçßð÷ßßÎG^'~ößþñ/ØxêszùI®F÷›Ó¸Úû$wÅRÇI.Û‹…3ú9Éõ=ÉgOr¡Š6—c^3ô2Ô¢…8š=Ú¶¿´ÉžSG‰gÆ®6?f‰aÇZ'ÏñûD1QÂ(á´O3žõÂV³©Oå.3s‡o·Üð…=Õ/z9Çæˆ968ÈÉ>9ø¾Ð¥@5È]vƒ\©%9_O5ÈÕs’k£å$×nÑ‹³è½@ÈσŠàÔ!/’åˆÃœ€7xíf]Ý{ÒëÂ_É.ê!â¼g9G{–ÃÔÀYNƒ ç,·&‡¹~s1Ñ4pj+[§öeWqÚ?ÚUÅiçê®ûG¿Ä)ÎâHœ!E<äe8XG…HtöxÄi3åHN›½+~´Ífƒ›f[X§í£LRjÇ:I)Î{2t´'CGœ £„0¬Ã‹b¸˜3 -óæÛ.’ ÄcÿyT]v®ùQùƒÌÙ¤5>œ¯92𑘂_Œ059a×Q“€ay裲s8‹ 1ÄÁµÜZ“FŠfÝæ4EOüõØ|6F̯8y&¸ §N9#p ¦.~$½>Ë%!üŒ˜0šž¤0šÞH-t9‰¯µ°é-Ê¡€Fãµqc Z .Ñ|Š}SѵŽ1§.¾[ßÂhøi©ŒÖ寺-™¨^ ­’1¸øìøA%‰9Ç1m …y5"zF+bPd«ý5çd¼ŽÉ8¤)'ã‘D– N$)7‡rmy£CéƒáU„I#ž@šGjt¤”€f¿Â5úµ¡Ë7m@×úôž~Ñ -z£U3a.ê&Ì“WÁ€tæèœ2(4•ä?¤æs# Z*у‹ÞCÊŽ!K -™´Éò*h€ ç'ƒ9:§ I ?›}¨ùkCzÚ@ëê t‹¦Á€ÐM¬ÚSQßaš¼Šü»ç&€7º£ Jí'Ù‡Ê}nèL3aº -Ó=d˜A_´„˜)I‰™.¯‚ˆqP4vý:ycÒ -ENY&”6',¨7 -Ö%Ðô ‰fDÐeF+‘f.€ùx ÐØI`žA)C@ûûý½dÚÔíÙÿÁ^òÿ\2n“öbÆG/¶hôcÉÀŠ¢äaר#¾Go³ÑÜkBYÑVA,÷ ¯Š¸ø”'Æ€€öcl#FC)rP¼§¢Gµ?j5ìK¿t°wlŸà½„_ŽçS… ­[& ÜÚ0oP½Ô\;š -ŠãæT:¯ cû ° ¢ˆþ¹€ ´ëc¾ró˜s%ç@ÈÝÎM¬T{CIzýè÷"ͦüÏçúlÆ‹5õ•„ûdù¶×=: [ ˵Æ+æt‹ÄÝÂ@ï“jÀd‰ÆÃä@fI<‚:D¢óê+9Fü¯Dž e'ð -–èc¨`ÙDÌ*W,!åq;ȰsÝ4/wR;B,pîX¶FPz²ìâÿeW~ÚuÝßß´ ¿¯L‰äø“JŠ!WC¬x:Tïr‘ùzHx–K°(Ò¾ˆ0m·èóRÆ ^øPfjû ™†ÊqcÙ!`ðQjbÎÁG"ã#*äpB -¨Fvv4FU€U–×–#¥ôö팔=²QHjw0Y u½Fuk¢¤Ë#ª¢BÌN±J³]7”žQêá¤t“eN:MŽœ‘TÛád}Ù½8'ëËZËI) NV)^Å9)`,w)Ap2Þ!± -!ò =;‹q5+ó°Pé`Æ“'v-R(®Lz™7H<ó“ƒápq®RÏsLj -O³€©IZQ¦õÆÞ˸Á+_x3µß§à¨`Û!âë‡'ž,î ûŒÏ/üGŸÙ7ýÈ4Å™M\܆>ih1Áð®j:­©ýE{hÒàâ‹Â–ˆ®–븀µìC…½«ªs8×é&hÆqÀX•ëxøäáj’ä¦R_¿T©nÓÐCÐJÙ<誡)Êg€5D°î(É_[³]M=Ca§(2Ó ó—›-Õ¾ô㨔ð‹ÿÔ/ ¨ÿq3»_ -S—èåøEà -¿Hg€Ü°_÷ ‘û…ˆ÷E[éñÌŽCDëz-æ½97ÖGŸàL¸!Ú+ÜÄm>Pó7;/¯V¥F…*e½ƒ\óñO•l;î©ÂÙp€îËÊÅ=ûr÷x@ùëîá_wÿo)FîñÜvx‡¶=%z4¹s¿³GÊT ­½6&U–½Tt8)ÀrÅ¡åŠÃA=­(½}c˃;…Œ'`çÓ”ÊÉ£­³\ä˜Ï¿Obî)ãˆ)ˆ¹Î ¬ -ps«~°V3鿦^ýã)Æ2Åxu0€eadŽCpÚö Ùm{Ï -;ÚÓÂLŠOald.rÉ8\2²q瓦;Gybæcƒ¨ Ø<ê¶ZB“èZ¹—±„ó‹jÂÑ2€å‘Cæ‘#0Üö kmÏ;Þ“Ä,‹Oa3r,œ…ükÇYÈÍmªÂö¬éä€éä(­[,OÆ.l}Ü„’Ro9½»GÕ“NÔJRm—UµÖ.?]u´4Áf:b-8âÅ‘h—± O1àõ—©qå2· - •§•òµÆ3þâ+üêMàgƒbÛ€Š)œ\³JepPRòX̱™bJÝÛT‘ÂTÇ]·cqšø( €Â,Ã6‚j™ç Á­7à®10Ó Ðl~¹íN@¸­íA7Øî!;]}G³èR3™¡ù :“”Cgÿ”êìϦήÚìj­î?$ú!K@Ê^”göœEžɬÔèƒ?ýã믺·—0Ôu½¬Tïâ×Ô{Ó Yë¾âÞìÓþûqOÎä¦â»é·úé_ИÔ‘ªÐ’ÔÁ‰yõ*1Ù1ì§$¶õªd¬¥;ÒZÑÈQ{ÛYul¥Z¬dO.Ù¨»;ªREýmV¯´$8èU[®Ã1”×\5QÝ}GüÕªÐX†¦Vx@Ù1BVr,]—tJ°¼wåeéL¦«Ê œÂµÄåŒ63åö‡2ŽŽ'¸“WB"èfa•Þ!hôt™ýiŠšÊ:¸jÚó«„Z.Mð ?‰¾l¹ÄArÆ÷•(”eG&4%šb0R¿™qé4{…¿ØYyqi¹{˜GŠe„³ŠsþfÈJ_1k O‰ë‹b¬æf1“g†¦?3ÎŽš~Ëà†ïÚ| DI¥™Ìî`çÿ¡Bý—b’Ê@MºÛŠ–oýõë›’Å­åÖ;N|·õ_¼”'›laYóZNþ×Ä—|Ïhés‹ROå]⟱uéšýL~Ê…–û\…ÔÇø§lcЄ³NŠ„Y2;{¢óY¥ÿ(ñ†”á -Ëõ‰¯š2_v”ìy|iÚù°6jJºïÏÚc³»1½!O¬\`Æšªâ˜é‚.YÓÇ­5 !Ëð&I”Pú{ƒÆž™â\OXŒþ<¦~cùžà—@ÇQJ·Qm5Ax&Šm^f"¹‡=ûˆæ(ˆJ xñ;rý¼². åκ#Ûë-1ÝmCä»]w¯êQ˜j+Ùµ{” `–z§M ò=ÇŽOxQ#âp ËçMøwJäG¯Ùþñ×·÷ú÷Gr½ŒÝ%{ºdÙl—ÜêùÑÍ3,=_»ˆ¡Öò©½áFèb-4gõ&­ýØ¢Œ~êõwc‘®UêÄ[c•­4ÊYÛgÓÑî¯}8:~ÙºE[Þþ ýëJ@¶ÿ{´|ôß”@5‚f²g°Ÿ^ 5}xÝš>ÀÝÙ$€l„WˆW–øSŠÅA’Ëú FÒÚPd÷{Høc{Ý=º?öôÿ}3‹ â>„÷!A¸Š€^‚"˜ñL9d £øŠÑo±ÙlõI÷£éæÿFN:ãRQlû -vü† -ÑÅ«S–~Þ -ñÕ†>~Ë꿽 [C>T2šLŽ'‘ ½§õ¶bø_¨„«HðÁߨD°6¼ë"–èˆyÔ€–ëí©\ M$‹lùõT$Xî®uOm¨ UÇ’ÍR†?£•î6‚ô«šÏ¶|·×/L{WÕ^88B&ZEðEA¸ñ¾™×ðàDý¸(†»” w î:œÊÉà -B Øeèh¨k1‘´±Ý®ƒ8$8ŽA‡ê!¼Gùp -&$hÔR©ýî>“ñjØ;Ÿ¬êqáo7 ×½zœõCÅÛra”R~‡š(b!vÿ¼µâ—·‰ÿÏ$~—Ø•v+{¿´^ò»9A´¿Åˆ°¨(ië0BqHÈUÿ€•$ŸK£˜¤òáÜ®$Ä¥Ð[g"#äEðÆ††a¨Rñ÷ÂÊÖ¡5W¶ }Vïêo¨l ÅA3E‹K'Ì[s“9ãg¹à–e¡·÷jÛÎ ­ÿSióóY[ÕØ/»$É¿ï)xNÔ‘ç…¤‡•²Îod&Pät‡BÛrì8lëe†h²þP>ä¨7Eå@íÍPI†ðÒC®Srȧâ§Üýzf”ÓÚÈ”¾{Ÿý4ð dOÝñïCžpù­‹ÿðHÑIWèüüë )•çù6^²äêã!§“)þIðå–oV)§£@6óc ©§wá.k£t;<(UÝ1|¨Û݃—†Û«©ò­A˜Èç{ÿÒ?¡<¿šUXì`›=÷¢B0iPÈjF˜~®‚weYó%’ýHèqÔ­Ð)63³h¢í­AŸS’¬3~oi¬Ïk­>r!så£(̲Դ/ãD ÎZft…ªãSBN¶„÷§­P™Cjógz½·àôÒÚú.¾Æç5¯U ŽÇŠ…åL;YÏiè«T®íã[>²¶!Îl%õ(r…ïBJŒøYßé/&ýŒB$)6,$mÉžÝBóÇJyâ9±PNöê¶`‘û@÷ rQ(5/’mVØ]Á;ž -á³Q7ÍBh 3i@?Ó‹!áå–"Êm3¥¼28Å'ÌjïûÔúXkäÍ7c«—;-ü '*…ÑNo²rw<¶¸¾¯³ä²bÃMvþ“¹tø#.~·Úœ†>‡;¯y,ŒÑ\s«®õð…; j쨿›íogŠS ޶8 ÅÏ>ÞÂ%xZÎr~Ô×îbM´ü¯5t7ZÛoMÛZWªû}ë(:å -_áC·(ªnáöþ ʧù%¥%»´Ÿ ¡§©Ÿó4äëã'n}fWø]Èv7’e[µ‡4PNȶ(¢}š uQù¼Þg1ªM5Š‹B€õØ´«¬:¶ö|Ûejæd•!8{ÞöÜZÔªmï൸¶ƒW]`;hYÚ1µfX™Q×ÖÛ4fŒL>ãûUܤ¬ßMªÊQÇ>w¡në4J–ÃÎ…Øb%Uõ=€èkì@•}Ë<0Ååp$íâ˜ÓTé|j .òíB?” ö}½ÌÒê¶nFôã"§úÞ¢ÖC䶺ìØsã:‘ì¯á¿‹†tF`w4ŽºžU—µ­ï[ÉÛš+ ¨‚¤°ùå²CV°}ÑÕÍ,ˆj ”>¬]Ú‚@¢*¦8ÃPìÂñl^f‡ªÀ—Ø6@†”ê6p×vaYgX@ö1™ÝWLg“çé+&ÅwP˜]¾7¤ÀômƒK9äç‰ÓÌŽå -;¹¸à(”Á´sËaÈ1ACÎgîB×EÆæ›0¾°qR.¢2aØø,}8ÑLd«9¼c’öAiæíÁP"Ëyn©3×[ï:4ÐodÍê Ë"${mÆ/yít_'Ä)":tÀˆ8½–sR!we8óEFÖ٭Ÿ/Ôþëùç»ùñÑ¿½ˆË\M[ÕnŽH¨À%ˆÑ¶Í›þCJa!¹_猪©QNK¤‘„†Êò1o†ýP‚çcó$7!ßã-3 \Àá˜(¸8 -‰ÂÞµs·–zÆ„O¼Á }ÄæDôúDÜCÁˆ0lB"²iÖMPôŠ.(®E)¦` Ò˜i™%U7a|WŽè4€Ä®ôo”@âÂî”ιԠ>¤)$.³ˆÏ£i8[HÄâôzR×]61Ï7@Ôi‡{è8ápq7ûΓ.tçÝyÈ—Ã&uôQZê}s"†‘ ŒÎâÐ*š½¾ðÐWur0%3ðêŠ áÖ¥ÔÄ¡¬K ÖBÃ]E¬ÖnJ°{ íÂ})Aç$¥ #43÷_] †•t,S®Þ˜-EˆSìRléIÜÕ˜*Y-B—B\êEi¨Àóó%0Ó -Ò…$†ÖLbo 4¡ Gu—]&ú¼B’lK¦pb1",9^Ct'1›®«{%Á=jºâØœ.ŸÛVLè8Š– þˆ#9AáEßÜÂîuöu«3Óòáoö½È¾§ý>è§Gùóã~_ƒ!¢ÃêP-ómNëÛ?À0¤c€.ô#s±œ‚˶´ã q:bŠéQU™í*ÅÔ3!ÔØPŠs¸Áqc×;µÍ>*pÈ2b ëjç1?ȶ]’‘õ¶–yE„3{ÓXBíútø<,Q¿ÂžUÊEêoŒ¬¢.•è^#[|ÉÄrVëš”e&ßé!s—û`Ÿ§”¢È$ݘF †aªm_‚ï, ‘®ÝÒ•Ô¶ø[Û×yÜ&Jg¿-ü>×Écmî²Tïd߸H¹¼IÁ^¹’*ñ8/g"YÇõ®åû°Ú?¨GÛö_¸ÛæµÒ -2Y±’àüâd×u1 ¡Ù\Á²7xœ( úÓO:åýË~Ž¥µíÒmŸ,"`Üô%™†ÙµM³S´¼ÓF;s »Ù3ã ÉèóÓ:Ýx-½ |¼lxˆD\)è–b3à™¥êÙ˜í×´ K^‹ZQ©sm8ª·íª´}"+qLj½r¹€J0¯V°ŽãóÊg®$1b IL÷ãk…Œ¼^W‘ØbܵïiHÍDç^Á#§„€„»–fŒ@|žEÂz”¿éù"=ÿù¸ø?^Aá<-:,Ê,|íB!…ž(¨®ÁÆ¢çϵx)¡Õ¤›4¤SZNVïÈlõí(ŠÕB5yË« -•Þ÷zø3ÆŒQÖ›9óYô÷Ý”Amx_€Ö S1saÛ$©Ž¶ž—2Ð2"l1À¶`aLUˆ;”«å§œ“óâ¹0×2Èd«Øšp8ûe4bz™}­Ä·¼­g­<,ŽƒºbL†‡p^3kF†#` w‘ž1 -΋7UUKCàoŸˆx1ËyX†›·>;Ÿºº§ÄúýqÈS¶~ëâžÄ?>žü•³V«¿ÍÞ·4ж{™»ºÅ2YåÓ„ªÂzaÑFG)ÖO¶—ú°3&{îïkÙ¾g_ÃUs£ÙTÀ$’©»Ñ¼Ûœ5lÄâ`Е!ª¶Ó’!-Ǫì8{9|G0z½âË3_­OqJ³°ÝÄ–³©åüÖð¬õ„àµLµRÕ[û|TxÿCP­ñã°ùPõ =€Ÿ}1ôrµÆÉîÃf¶Bó¡¦OVóT³ -y“uª T<–h°Ð}™Ší¡UBÃt½sR·Œ>Õ¿'ÊEWš‡ —e¸Ü‘i3{5 B;Á`Ä„f̦`¹n ÕÕE£zš©Ù«¿5`Ïm˜hÏ2:vw+S¸GQ~óΖ¿1ñË'k¸­Ÿqµ/qïÏûÂ)uj»ÆHC'©œ"×|Ó€Ë* :kz}=ƒ¥=6_5ƒ¡ÆÔrÇ A)Ö|_ÄnÀ&QoûWŸ¦}hm6=ÖÎ`Ÿ‹$ÇDCoa`¢nq×¶õ¼l²Ò ¡wûÎ+4ßåWo\ë­:1Ì©@t5ÂC?.LZ+‰—_³Ð# -WìŽPõ¾~QMLöémë:”iÙªvÍD]­xJdn.ÊDõ^D Ex±›øa"®Í5 ¡ÞÑd‹u²QVXì£Þ+¨¤OLNŽ{K!O)n2ŽÙ"QϯzíHel0HˆÆðoÜ`TFÿ¸´3’7ðÁÉàºÕsFsU§ÏÙââ÷ÏØ]¸Ë»çI»sWνhè<Ü&º=´Ò `4u®.—Ð:Ån*ü•«S¥Ú“ƒInÜÖ‹Ä÷R’oqùÔîZ—ÉÈ9_žÍ8v9œ7Èà7z|\&TΣœr"k,•­¸VÆá‡ŽÊ’S¤x¾¥{5õ×B@yá0–ßÒ厇Cë±/µ²PVó×K´9‹ñ ‡Ç2RƒGZ|{a³wµù.åËþ0&}k'ëʇ-é?¥ÃYf‹Âìæ™srħ—Ë´ ‘vOö’¡)!Ë¢3¿Tì²££ ]2ç™=Ò¢ž€ç=7_J^zjU’ÓZëJÂÉxš)ÏlBUÃ…ÑœøRíÐõ!óA“LP_ãH’*<ÓÕÔãr˜­‹‰ÊÀ4¸¶W›ef.õ¼»t6Ayˆüýy‡tÏV·®0ĦIM.Þâ=‡S¼³ÀµHæÏ•\"a1©oÚuèÓŠÈtjìk‹½z‘I†FS*LC“ ˜¯UýDðm[ŒUŒ)Î|fÇöõû„q¸o®ä‰†ôîÜ5„;2ðýÂ<#Ô²Ó¤qªí4¹3aùTSW¹Lý*¤‚%Â(ð‰”îJÒëûFÇÝ­ÊCó1N£gÙÉEñIAìœyS&vúiPˆ¹K¯Zð»]bÖ0fl)‚pèœXÁ›ëN+ùÌCôÕ“gtq3ƒ­#ÑÁß…Z[fé$ÓèW5X$It2%e…4Õ±®’†…áLÌ}µm«“ÈM¾D; Æ›T«n2³üI]ª×³€öšò®Ô®Æ¨%ÅѹV$85™íÃb›VK‹î—œÝ·ÐP²«ˆ§THÖ‰DÅ -¾u±ñÃØ<ÄÔ «w¿Â~´Z‹è¨]Û¼š$ŽÁpñŠû«dV˜V#ŠYÆXB0&’"£%(î ±;½Í=Ýø'~øá;þfîdfêç/w'¯~Ñ–I þZ?üþßïº?Œÿ·åÿ¬-ÿ–-ƒ~¶þãÛ˯/íµ{k¯µÅ§ýíåϯß_~}ítNÍ #=™1·Sþøío¾¡ü:WQKfùMÎ[ϽzÍ\Dœ·†Ç繆Lw×÷¸yæXÔŠvµÇâîøB¶Õÿšg›8Vë¿üv+´†åu -&Ñ^ ËÈò~…>ÿìˆu4Oƒ®ü'"Î_¥°(¥RÊ鈣 ñuþ#×CÎ Ql‚ìíbã´;/v•ïâ”mhڭ͈2¤}fì+õ2'v|€Lÿ‹»nƒ¯píÓ%#胸º<ý¼Œ3 ¤!+[wT<›}œ;X#-z#GF ÆukÜØïÅzn%,ˆ(~/—ŽïK³;;µpZ(¸ ïÚJröPHïàK¸åÇQ¼—º[(¨k[ q†D„ó@ëóÒa! íãí`+Ã>š(÷æ.K‚1[³‰´‚]{.ž9«ÁkßáE9G¨Ô×–íÝÈþ rºàh-UeÓT -nÞDƒcE¦0 ÎûKÉOðd “ZɶàܳgoÌ»Ž{ cá8´™la4”Ïr¸’r2À¡ g™$‹w¬»wõí pUù1 "·âØ(Ÿ¤?!4º4ðyEˆ]J:ŸAôôóLÃUœžÌtrÆÇóq+jLy™©¨Åq,„¿Ù¹«±—j ËDJö—¤.tÑéÁºØÅµ])ý54œ<7ÁèxžQë:¶8âk³)póólèÜ#L¹Åw¡y¥yf!B(HÜ÷þX:‚‡;Éy-š¯-Z¦¬ ö«Ç}á3oGl…ÖY{à ˆêÆñÝT‰mZ1>1jÙFLÎ’^0„ò …—䜉QuèhSs‚*åiH„ŠO^#ïîÒ«ëÚ -]מü™œÆ¦fLd/’ÓËGfµa0M‚uŸÙ‰9€¡®¼XNbäãó¾2E€“âÎÄxÞÅD!°†>HÃ4©î4[…E•†7óÇ•‰1(ÕpÍÁ8q¯™ÀNšé2¾R`îFr²G™ -hˆµqß!I‚,ÆûxxÝ5=HÜÉiKœöÁ}j³eè³-*ìÁ[íy"ÖKcç“ÈN?ógXtuDñHä<Ùs¡Z<º§} GbºC ®ÈÅkt•ܦÁ`]§À(ÚŽ¥„Î@{±T뎚+#—ìJ™ÌWKWý Tø¯28úHMÁ&wוÓg„Èct-èÆ4ë[™›ý-Ð$br“Á"sX¸4”ò»ÙØZúÆW$QôK4§Öªµ(Åf{?ìŸt}6`ôU MÄÁ0Vu¶ˆE£ÑÜÂ5GÍ=Sa]ÌŽú`8öUÍ~4œÕBck¿!ÆAÆ+’i‹ÕdIW räÁï{_J;¨­-ºÄŠ,êMîÛÅäci.§Ð;§Y+”u«CTÍI£ yÇ…½ç¢Â:¨uÌ÷¹ÝUçrìû‚„Ôàø^[C Ðc:ÂaB¯5ÝÒþCw¹¬Hr3QxŸO‘Ëö¢m]B·­Á`(ðÒ˜¹xlºÛÌà÷çsN(«Ü?Ã@O†¤’BRèÄ OÃø°³tØ,)S/ÛÆyŠºêX K܈û# ðx< -›’°‡À!Dä ®Š†Èb,qŒî'å²µAƒ/&OGZåâ#Y¡àý¡wö¡_ªþS´DL±‹6R.Õ»E.¹ÞâuõvblŒ¨aš ñ ž­ŠžÖ‰kCätÂ}såóÛ¡Áóå`ÅÛ¤ŠÓðø‡ÂsºÕ"[ä)O™Ù¢@„‘¡‡/ÏBBñ3(îE´6|-¦ ¿,5ü,aöÉÌÒ ìp_ù§ë²q -üÈŸH̆ûŸÕø’ÚàlpAäîù‹•Òqhðdž#î¡ÍBˆR­;Ñœ<ˆ¾ùJ¶22ýV^Ž/ÇçãWÿ÷óíøé–÷gxÞ>:X¼Å§;*#_}¸Ì&Ç¿Ûëñtþpûû@1Rïöñxú+ònø CÝʆÐðô†¿(tÙü¼gêÑðE &þˆ†0ßÞ÷Ü å{S¾¼wîÓû9>¿ßÏ¿høåv|=Ò™{JgG,ñëÛ§ã·óíøzfž“‹û˜Ý`—ôÃ~=ÐóÊyšZŠéÕßm+ünT;”7‰/5Â`9wfÖYüÄè ã”ã‘"q¡93è=Œ3zJê”n,%ïßYf[#ãM”,wø&X|‚¼1 -ιü4=7ú¦}ïeÃ5Ó!í:»úèÔœì©q¤‹~´Ò„<ìc¼“܈a…^M‘4Á] ãAáPŽ’Œ˜—X$Ñ0¾ì;r“n*[ÍÈÛ4\à.òj¥žçÂFá_ÌÔmâ’g/‡HðS1 RŸŸW¦k•{Ub…953¾Tú0c@8 -™ñÂò©6ô%U‹¨¥Ò½Ê´…Wµ2ê­O"nËŸÛ®ÇàYR¼¢–B_ïtbõÅgÁ·2_¶‰÷,{Œm>«è‚5åfàtlj{qÌÊ$Þn<¼!itó¤Fç/ŠPhÝ['ïÌ¡0—AD &+'‚z xÓeé!ê·Ñ›«<±,ÂÉò«Ñqí¹D4tÁži".…„ Z›¹ÊÈÛ^ yÐQBpÕoÁ#A?Øàz´²ÅP™I”Wuz©Q¾È©eÓl>¦5¢wé)-ãcš+6VD€—© à"I¸Ú-¦MÙ -R$³ë£0Úø‰åÈ-Nš6™b=ÁÒOTIbr³=­»QGåÀm¢G@]ø]øYðÀKŽbö1n1Yc$[̪#ök}klÓ d–H¤­óZqxü¥¢µ År XC%«|mI׿5+J´Úy5#³sðDû¤3ôTG.é#{{u‹üaC»OÚ˜Eö’MuJxÖåëeçAdæ/‹ž‚¦Å l -¯KçÓÏíÏutçªà Fw—½×c'äîqôBL£ˆ!:Å67|7–ˆzˆ]£¼šJ¶†Q‘q›qT§%–t+iâI"‹%&‹‚Ù&%ß#­ë{‡¬:ÙÃ_Oõ{.Á„V‰ˆÖò*KäB²eŽƒÏ|Ñ…äÎ@´Êmê{jUd¨©bê¹´¾bÂ@\É Ì—CdDí¡6«\BÙ‰|kS¯‹‚êGD­ocí3ñáò9ëݘ2ÿ¬X  Pm+ÏeÙÜHs«vÌC—§¢jYÑ£gž˜ã”ð2]ôUŽùzê­yo†mÈ2[ºà§'“¼D£Þ]ÇrõιôCz™3=0ƒ\ËHç2ÌQ¦Ñ»¢—€2%aîaDr¦Åƒs+EZkƒÉ.5þ7ôC¹¹´±ï0qóæ*yíN¬ÛaåÈq<·#2 u‰½‡fy0€9ö•®·9Á4‰ˆkxå©ß‰°™£åšH5Ü–A‘J"çÉ]+ÛLZÁ†ÉCepŸsRj 0æLîyð!›BdT(GË1µ­›HB:zV™Š7SâÜ3ŸP@}œ¼ Ë7u•~_ [t•¨0h køËÕE"ó£ú¨YGO4I<ôˆéнÁ dþ ðøJˆÛ ØŸ¥*à³Uø¦.TÚ€9²èÉ´Š5ÜkÇp9ºyw6½HÑ· Qú,÷>s•1–BÄ~x¸VÛ^R(Üž/œ(;“PÝ{<ß!/Ä¡^1° -6}ÏšÑÍ ‡S^b!Jm}0¢†Ù&0¿J8ÒZ¤<ßÜ‚Wzª¼@ŠLï¼Ü*i¬#2ЇãËñùøÕÿý|;~ºåß=~ÏÛçcâX÷žñéªìScs õ¡ßÍíõx:¸ý å›àˆÛÇãé¯hÈ»áƒÌ£_ ÿ áé Ug©ùyÏԣወâlø#Â|{ßÿq7”ïMùM `Éïxûçû9þÏ‹ÑðËíøê—{Jgg™…¯oŸŽßηãë™ypùô«ró¸¨Å£Šùûõ@ÿ2q2a2‹*{f‰9‰wˆwUj`¦BzyN‘eêfiÄÃÕרWuSw}œq0Æj£÷»4b 2gÆÕPô–T÷|tfåq†ÏÿqòùÁKxqof~¸~‰?Λ«X5mg‚USÆp~ݦ3™ -siB1Ý®*¯0W6%Jª§k{”^øŽ’+,(&KªåF@\smî¬|¤hžˆ‡ë–JÏêãGC^uâSõ[—Áj´ïñ´~Ÿ èØë¸`ØØlãªaú”²¹³¹«H£k\ƒÐÕ¡ ]>ê5;  WdŽ&Ò ¶f•´•zU"ƒÆYa ; yq€€3ÁøP²˜Z3FU¬L7¦­ˆ™ñ«1˜G“zÆOõÞWû:Yߨš£Ä@¦¯¶˜Q)U4 ß;¥8ðÜÌ Ó -¹j_`?~U{ \Ì>·º²Ü‘‚ÿÃ2NAçSüf2³¥ppMPû ¬‰<ºTP,Êz$¬ÆÖBl¥Àã•õ+ˆüJÛ¿2iª‹Éü€ÌJ£h`çï&»1Ö€ò*{ÈõcîRf -íµ Õ¯høÛuy­c‘Ño¼À¨‹ÁP™“JӸ̃úA|È2¥…0§¢k4qޱø ÿÞ,=ÍÍœcMÈŠ&Ð4L¸ŸSm¤(‹w‡a¥œÄÆÜÏ“<·Ê¦ÓÄ["šÂ˜=f Ó*«ŒTþkø:Žð¥&ðQÈg¬µRTq#MVð¸˜XQVgUyÈÕådÕX“YŠ/B%ˆ•KF„ú£o‹©d¡fPþ­,œRPÄ“s‘^3€‡)§NP¬QöW>Œ©*ƒ2Ó7衃÷Ä‘2†™d=Œ&ÁOYß*i¬ß{&Öi‰YʌȨ»ìÔWMoǼ¿_ñŽÊÁÌÎ÷ÌÕ€¹%‘‡¢¡$¤lËqÿûtUuï>>F2i@NÔÖ¾Ùžžžîêj^1•·ZCJ‡Ï¡sàP÷î4a»« M*¸Q]9­Œ…sÓX½`TjÓÅ]¦ -ôßÊâ7q²JU«!ªÀ¥aùÛ¤ßLcvPô–½M$¶'@HÑD æ’©?Wwá[*\} ýÁ¶V«ÚûŠ*wwä‘0uoìö9Jn²}U–óf™a-g:ñ/»^ëLÙÇŽi ×®A To9}a¡—œaØfš*z[[124C½jìkè}¬£!ðœ8Èþ.Ë¿Êlha0ßÈzQÜ–»`ñœëð.óˆî¹”âLV`­çMäv…Ó"¥Þb'Ô^´h¢ \uÒHé…ŽDP53I×DÔ$qµÐ¨K‹œ…}%Ò¼ÂFÖ,Ji<‘*ª-‡àG)Ò!¾³Pš È}‚Ò*•¥õƒ2Ã"éƒñ€]ÿƒš÷86do Ñóõ#v”Øw„Tã`K¨ÿU -aè7mJ²ÎqʇP* ™´´¢èT!éœÚb’Ðt!™TRó"rÜÇ/(”¼¦éV£•Ï\(Ï>|V9÷×/þyýɽ@D_·ù.)hS€’5*‹„ŠÈŸ- LžXóKb‘?ÊH_{pÞÞˆÍr#‡¿àû¯åXeèñþ'÷cqÿá0u¦ç'íOâ®óJâ9½üð -n(غM…$„&» Bœà6(û¯—$sD$ú&xƒ‡Ì}£}¨žºÆ˜áZ["fÌ.åñÛ¡Úô_GÉ_¢}»]Ixß§°ÞÐ~!”U‹$M„¡•—\¤J–LV%6Iœu–UCY ÀÛàWZøÊ{¬.k#‘Ô‰cH­Qu"iñÆßÚŠ9“&k«[éVÖȪ9K‰¢ -Ñìzdݸ4tS3ñr&hÛ¤˜Ï¯å~£@vu”ôøÆV­,k¦äR•®Í8*/š`Yî[bwç!à·yê#E §åÇ…ª)Åg”m@×ÔAÑ,2»„Ç0{Ë÷¿eÊÿÊ¢ZóaÑúBï±[!s»V¿”¡î£5žâÞSa$?ÕeÞO ß"èÖ ’ƒˆß[ÿÌÃî6÷;ñ ý¾äŠß¤»¹_³ŸÁsÀù¡³É£ÀDj)fGÚ]$å]$i!‰1Gsˆ[TŽ]C €¦JÌ}X–GžŽ‹]™ÊãýŒÁ¡ :8SË%O™™™ y²ö2W­Ü9@0Wh¥úSDuGc>@[ØB]Ë Çјu¹c,siøŒ0ÎrÖaá¶ô ™LâA8éááøR÷X -1î%¿BqäýË"Ù°›-*xß´† ðŠx+‡³˜LšŸ“ˆH'Ä(¢ê®Ù› ­™RÏ)‚v ¥© "í_éÜbÜo§k“9¤y㤛ö( ülÊ?x$ŽGÅ“Jól»ÌÄ»—Š+ºh®‚dÝö3kª„7z=ö¦}%ñº6ÿóÚ癋ϔͳO®?¹MçŸ&ª1t¦eäÑž IbC?I}2gÆÈKÂa娼ŸLuþ6«Òg,fý²¤zžuªB -rmiX êÅÔ—Õ-ÍýGC£ìšRÍ»Y®Íe©Ô§ZÑ)(þ@½T_»0ón•?`B3–ËØ{”h(pÇPå”;×ÚŸqÀXõb­i›ÌÖ0I÷¿“¶/ϸ‘ÖÀ”žÍ”H‰¡4*.ÉÖòyK³Wêöš ÿ(ž‡Å—µÃDYB#VØFøÞ°÷ •É!£á-ÄÖ5¦¬PˆÂì¡%l¡)Ç~Õ7#Ü:|ÖÒ1âH8WW5BÛDœÂ ÑÜÎîù&•ió$/þ­Žíä>˜[­7Û±¥ípgGžõŽạ̃ʂà›ìª—wàžElåòqÝ´N¹¸‰n-·ï«»¨[ê7+_lcp¶ðAn†w;ò‹p¼_ÄŽyr7äQÑ.{ÄܧÜÛÎî÷ö -?-hcS`¿JáûÔ¹A³òõ^ø#ù‹®7xe/! ëàÈßÿ&ÌO‘ÁǹàÅø‰œÿ_Ø1šÔÏ®˜žeÖ?®W|ûÝ+r-Í0åY›%´={¶Y—ú.£Yt­‹K\ÔŽþ^4ûÕ ‰YóÔTkZ”?••¨K)ÊvÒÐ2 -…¶h\`d.«ög¦æ–í™ã<Án“{‚²íyAüJ`Ä䈽u@÷*@S9 Úýlkz`„“V˜áø‘b\lóM²Àš5ó5¥ -—V%Ï›4¹?œüȱZÑC -Õ±âN(ÄáàŽàþË 8-›ýrûõfžŸ¯àûëv¢¶ã–&S¯ÿë¢] Ðg.þýéïÿr»Ÿéêûg3ÓÛW1‹ÝK·:ÂHTŠUÒfiŸ`–òqfÑXò”Z.ˆ…£Î§˜…ãÈK©¥\PKyB-¤“qÁ,íŠYr0Kû³Ì§Ä2?A,V­ø¤bwÓÒ9ÔÖh:”ÝØY%ÙŽØ¡bËŒàу¬èÏ -Ÿcߎ@7¢jƒˆ 6'ÇOí]öH‘ ÚDø¼Ç—#n÷8úé"q¹P’GÓžE á¬Nø½<œ{ mQ»Éyd´ØŒOr¦fŽ“i㜠¢íÐÝ‹×Ï“T;C=Niz½DæHèçKËÍRyoö~l`kï8ÊîVgkÁƒ­wL2”™ JíqШ’•oAÀrü kë k:V+aIÁ:öQ$ÿÍ}µåV–ÛÀÿ¬ân Æõ^B¾“ =h7““`€¬>¬*Jç\»3¶{àI#?¾§,‰’(²X\§“× 7úVºNÕCÏÃþƒéúÇ禟‘äëtþÂäwÎÛödÓé:M¼#µ“·È颇.ÀRºj%›å¤´ŒŽ$òdšòJvÐtêmó©=p¿œë8G&ómà»ä«%@¥ 1·‘•ºßu&Î -Ö»Ÿå¤\,L“Fµ*'e`¨2qŸ fÄ3é¦Ëq:À¦¡^órÜḠ§2ž«²ÖÂ{àÊÒ¶ûÈ£Ké‚aÙ÷J¾9õsÈHíp!»¦²}H¦·pb<§Ž³ÜpûñÄùFΚcò«\‰³4[¾Ä¡ƒWÔÛâzo¾“Òô½‹ûæƒÙá;Oe§H4w© ¨v‘`EÉÖQ>^ëü¶D5³ *í^™q(ÎLQ±?Ž®Z”FVÙáFD¿lqm~•Ñ#(ùBcìÌÆI‘²]›ÂÔ3"ÂrAÓ.bˆ<ÊÚdG%(¸¢¨)1e ëë ÞÔø,¡q„ZºyôÄ!^baH·&w‡c›{t\Û¨þ—cÛÓ”0 ëúÓq”‹cËKk4V±ý)…ÝsM…›ŽuÔÛvìFáXáíØM»Õ«M¶cý´£,ÇúEàXÝòÛs½•§r”oÜ^(-Œ6~œÎ™œŒvÕý€MÏœFM9(ÌŒ¾#©ú¦ƒ¥¸µàu–õ$ÖºêDÏ|^¢)Á; eMu0—ä$žNóÉ#·¬­ôu&}Ç”Ž7o©É² ÜËË2¾»iô¢GQ¡iœÈ•J6*KÏ ³&á¢k6]° É=ç.òOp¬cë¸Ìú´JÓ1RßÏÝ'þ­ë@ô䣜7G5¼«(£·Í÷E<à§p?Rt³ôú™+%zŸûzèçe%ØFg¬¿ýӑĽËwAüTÝÀ7MWÔÆ-_Ðe¡½ŸÐjùcR´ôµÅ±Z? »±ì*èl;$hÌs™ŽEG/Žõ-ºmÇÆy³…kO¬£÷Ýœf÷ƒG;};@Û·#‘~ò »†•ÃK 'IJ=ë(æÊ³ã©·¾];D¬áÚµÂÛµ Òµ²¾Õ&Û·~ž¼\ëçÎ˳ºáéÙ·ñiÎÓOà¶\}{´Ûïϧ¿½³úN(:y©sB23~¯p_§èöEQ4³©—+E—GŠ.‹¢<):ˆÔ>Œ¢í×(zgÏ›(z¾¢Û«Ý?€¢û3ŠÏ(z>Pt¹ðo£èô5Žïçèô*IÏ+I÷[ÜòÛ©$yÒ[ýh*y*>¯F-Å?þAÓa ªú»bó¶7ùcŒñзM´šž]ý[#XVó1'{6v>¥ñ3ùÆTðÉ™m"oC‘0â9ÀŠÃ <,q7w8m“[b>êƒz¿²0{—ÞÛÂìdʲÁNæ´ÏV¡®ÍѺ¤¹Îu"ZmNšëN÷ Æ…—%ù"¶Y~Zgã|"’QH„_Ö-’w _áS‰`Ì’È1Üg:0kq('‹ G4b0QFôl°PÇŒŽÖ7õtÌI]jõ–ÑáŒÆ´Þ˜^¤ø_Ÿ›~1ãÅ^ÿ|G––>=K³ë%ï?k¿&iJðjJ$\ÖöÄ,lËRWòµL®Æß¢Œ=8-@êƒóUè~Â*)Ðiñe^†”Û†zá„¢ çF8ö·G’yá- ß âMûXYf€êÔ]këÔþeh4ë‡KJIú mÐT|›gCaÆä›ªŸc°·l­ ³êk=çÏY·uGάkgŒ]ŽUü†yÚ YÚ*î¦r¹~sMß/×÷|?18¡ž×Gö§ÓÅÈå”Âý,üë]6(mñY]/z?!^›F,â øe…·¯ -,b -‡.SR­:keyÉm¬ùC^óa]Dc»¸×uWCû1ëkô)¤9¼gÜÓÈ"ëjnbìÏQò¾$œÝöÝÙW,r’t)`+t-qEŒ¹­5Ð_UWŠ—à£âáuOKkª¼„vóX€yO"N°u¾E¹¡Ä5"Jü•ò8ËÖtF§WßlRÀˆJM+¶µ–Ž -»Ê‰ØQ ³O£lÒ9•gq%áº+3tݹ[Ër8Kù¾ü(&À®3¾?¿SP;^ì¾Qc·ÑT•,h -rw ’Õ$êb@Þäêñîñ$ŸÐè@vúh¥8A{sõ(£¡öäÿ]7ú/üƒYzû˧›~¹]«ÇýÎ5ÆØ’¡Óæ;MÈÂãXõÇøúåvUŠŸ??3ûÓ{ŠÒ@ôø™ˆ†|m>©ƒ(ŽŽÂc]•Œ­™%jË\øp9I3ªoŽŒýTXF\´cD"Zjs–úê…ÉФ>»¶Í˜—8!ãÎËÊQó²Ë¬nŒó£%k«êb™ä­÷. m´N×^«² ÐbnQó‘I”MÞ5ÙÓ®\¾yÎîЂ'ãæõQ´]r å‡oCͨGó*Þ‹é›/¶ 3›ÇLuon£ë¡&ÌÏXvÌë¨ð8„NI'}Áþ=giì õšår¿V.Ë7@£_P/õt•ãqh®Vß°;f‹=¯ß^aàÔƒ§tV>,¸u³(Ί³OZÿä\Dy85mÕj·xüQ¹ÉK÷×=«{¦k)B¢û³Ð\¶h´³åŽÁŒHAݼ€ƒòya÷`ŽMƒ.i‡}5mB‡a/.M…= R§Ë1:V͇™B"% -¨TB -|îaY¸#‚<¯ØÕà0QŠGñ¸¤‘Š9.£µÔËʺ¬¾]ÆŸDœªG¡?ÎqPä…Ÿ«öŸŸ›~±ù¿ŸÏxaãüÿ@÷Ïw¹¿³Y˜­£‚ÊA'u¶ ÀTÂ=H '[šŽº@Шéc•ùÿt'Sg%òé¤Jÿ–# -rž]Ê^¬/…Û2KAžj"R”ö"Å;rQÍMÚX’ó ‰íf_˜4™m£™5­I—Š=˜²vÉùܳš\@ÉöÀý-ÈXÐp2™Aáâ“­mïZV؇ A0,Øž¤:-¬~(–¸Z¥üŽ3R/€™âFÜ<Aæ‚i Ðsƒí]Œ ¶‚±ªSÉ+a¿°])«Æ‘¥§.§øËllH”HI÷È#‰Ä²Èõê¢ú½c€ÌÂ@‚æw=©ÕEV9Ï£vòÐØÌ2SÓBäßK¸µo†S’hBèÔ ËáØÄ…{v‚½´Çt_ó2÷ŸW<ÕÖäÉ2SÞ(Cµ’Ý„Ì[Æ*o{22ŠHÇìQ¼†Ëp/Ã"{²ÿ‹=ß?ýLô¬ü„ÑÕî轞9/mõk(+ -Ïv/ë̓ßtõ}›@ù±œ šÏÎåÕ<6Ž Y~ǶR ­ç$›!ß6—Sjâ‹yÎóØ&CNk/%-å:9"4Eˆîë½”šÆPË3$ìXÐ˲qWS&CᜣVŒÅë’tÞݘ˜7ú5ÆK–ctîª;=Œ§ž”;Ÿ¤¡«JÐ7ó‡Æì9¸NY§ù¿Îk޼3õ=è›Ô+dœ¼rK9¾#ÞÀ¨O –Í‚h.?x«ÈŒ¼“¬›~·˜TÙ¹_ï°»EpHR¬Î5Ô*î úqN} ÒeÆíw—ƒ»`­ -uÁ΀àPµ©LjO»·  á&Ï%y\iÄzÅ›½ÛêK±5;Ž®^4AÉ퇺ѦdûH°¤éè6H·ÞÅ‹âï=IÔÃÉ’û,ÍUkx¼¤ô¨Ù¡ õîqjS3ÈÑF:ŸA´CQÝ”6å-_¦#äW\6ƒ*†¿ÜìýÑâÌRAžY4E3ÉR$- þýôߚ椬€Ãh+ã¾~oËüOÎûùëyßxý¯ßg ×ÉðmÛ~s†ùÿ'üaGê4*^3äò¾ñ‘R4h$o<Ÿ^0‡‘`\³¢dðËȬ±#„³à³õtÍᇜæ‚^ÄÏâ ø%†jgÐ}~ÐÎ~ÀIº \céŠaúÉ2¯t¥Aì#årS†ENW* Ú£­ô2§Q>%X}m«Dèùú,[ -óe½¼Ï¡µ5¥ãa#-ø6Y³§ê`oÖ3ë ô’àеX‹U[ç56œ‹Ìòžtjiá1Ö×”ý¤ý¾>hÓŽÔŠ1éNd`¬Õ×FxÁÛ2\{XòV‡ÑYe»hÏ«4ÞÞh -.@ Û˜6Þ1L~UÔ: ı M„8*8ñ,ç1%}•ñó9B°\’¶@ÕmˆtT=Ü/éb =.õÏÒÐ¥è­%ƒ¡u¼A ‘UÜ|^[¢c´ÆòŽw®n•é2Q¸ã£wV§À] -Ïœr³ƒÉ%“¬$ŒÍy8yF!(’pŒP²!i-·ŒÈ`l*28+”_ž+ú.9B£ÍçŠðNC­Éø‘+€óJù!ÏÇꀉáå”&Pª5÷Ë!ÀXNúÝÇÝø÷–PGÙ ŽKw¼Ñì\÷D$krèFöp™,{7­ÓX…ÌXЙ-ºEt¡“ÆK®mqâáDÂG÷=Z\¸°Æéåí lŸèã¼q®€O­Gu5Í’_µÃöiZ÷”óÛòÄX"ä2Ó/ÃYýèôܽ#NS¼ÓH¯&AÖ̦ €¶iýÇD®AdÕulÀ¥þ¹]žý0ƒîr0ï™]ZΑÖÙë :ºv·‡FÄ$þÎ^+Ó_M@gA®úl7Ô‚6B ïLmJ“¥U‚‡^Ïä·ì—Ûí¸`¿FÅ“\ -à`Ëeuû”™s½^l£¶È‚€M6žÐQŽh¿ùVÏ+µèì5£© \^.Šº‡æ’Ê@±Aj²I2¹o¤ üY¾<2 ìZîë£U¾†Ê7_dq$ÑóûøMŠ ÓØ]²ä*d”3¹£.tT\5>JÆê›ü£ô^ªñ]Úqˆ7' þfÚÄ]&J®®WÔtêFwÓ$ç9!›ÌlàÒQ°’„pŒý¶ÕK¢ÑëßÉì"Ý·ço á(ItŸ/¸CñÞ¤#7ybiõW¸0ƒ²»î&UÍ‹MÃ;¨w.¡mÐEt5.ë34æ3‰.mc# ::ýâO`ÈoáDÐ)¬šÞå‡;¾{IÌn›ŒŽ{¼ý†BŒ/üЋ`Ö–ñMÛ çÀ€E×k]AçL˜ë Ú˽œÜè ÀµkL\µ ùÅÿÅÁ÷¶ÆÜîÍW$~úÃÏßé·wVúnÿ‹~ÕÖ¿µÞ¿¾ÞÈo¶ú÷»†Õÿøàáó Å¼¼ÇÅ£8ßDÕª aåY×Bëz`Ÿ²Éý­øMUUhJÁ¼m°Eˆ3ßáÒK€åò`&iì†Þ+¯_}Þ!ïêã\¯|4±Ìæçó4ú»¬¦•»*ËÕ5ì‚,ÁoR9×a„?ì”É/ð+B·Bõ”1–`IQâ`Éð$cloHáý"Ñüñ‹?i²U“œÝ!­“raëíxwPbR»{¡QbBüœ-Uwc<Ã@+2J_ÅÏJÂ`çxéÛ -ưM{P~Œ×úÂb ‚ºÙ».}<ŸÁ}×g¸¤ GCɸ5×÷¯³Ý¬{ᑊò`4|¢ñšbl˜u´1E„ |³r0)˜úAúŠ6(DlªÊ>Þòô°é]K™Êtklv¶«Ú:Ë@ŒÝØ`=ÚÜØXUUîô •¨tÑU¡Íñt©NŒ«ký°[Ãǽôøû¨Ö3‘ r¿3Õþíë¥ÿ\Lø­…öùš:ýõ—ï!Ï…lÜø›UúFžíK£æëZx+.+´ŠÄDt2Ø)¦iÌL“Ï9SA4ÊUqÀ:Ea‡Ö¤úñÃÊ+ż€ó\tõÌ‹lÂö˜Ü)ž‘á]/ÀRžÁœ¬4rȳ˜Àq-õÀ áÏg;‘F’UåjhLƦ}!—HÃD#T°´È‰;iz£&ì ݹvØ*‘ðƒm“Y@ CÞ½³à.³ŽàÔ.o7Õ.s7Õ©½N+ü:­±@ßqÀ†'jd0?$?ƒ=2V%×2‘¡wqªó͹ùJ³ D]ã<ƒIö®Ñà ÃEa™VsC Á@!ü!*:ÎÒÜ(ºŸîó24zÍëyÛng÷\A¡û|.îsíl•jK@ܬî›÷‘ÈL3ë6amymÈIìZëZS’Nâ•vö°|—½NeM¥P(šš;bª“CCP}Ýà‚{؃¤:êú€Ÿ;žr8oùy3dêD™MÊr·ZEvšÄ¹‚E½ZøÖAe=óÙ( Lz-Êù§¦î~„^û}*¬ðS‘°Ò_À˜óbxð°[ä°çb ]¼ì±íò¼FŒ©°;˜—qØE\*ðóâ)ðZÛ—Ä€Æ,z{©8/~¾a¾ÏeÐx=ß·ÍÛÕÍÞ­ÞìÙøåã{,ô¤ûã|7Ÿ€@Q§ÂpA£9ŠP6u+”ËïíMFî"Ïðÿ¨—ø…b~üé§zø÷ÇÑçù#`#c¼Ðߣ‘éû?ÜWMŽ» ÜûsyEýžÇ’…Ebà]?¬*JÝv ^d“ÍLó“DIYUŒ<ÐgY@ñ"ã2'Ã_k\ñ6É I¤šï‰½`”TsiÔ*ÖNÓé,¢MÇêIšü)#»Ä~‘Êêk(£˜ Ã·¤m<ÉØR¡šw:·iSÖÈþ©oº˜ò°Ô.i¯Ù%€­iêÚ‚ÎNˆ³BŽ]Hé/Ùmª¿`)wµK¢.#úæ¿Å{A…ìÛ~ €Ã} -ºrNÛD°nœÚ;‘o÷c|­;ˆ’%·Bk' ^l&[%B³"Ð:; n¥)¦F‘/?Qöa9ÙmÂíµ†ªÿ±å¶Û¥Ÿp«¶Í©­ŠŽ§úK!„Uæ±8—‰uG‰æ©}V׋ëfsŒKëSž …¹ô85ÁŠ™ û ^”ØYEù›m€ÍyÞM “ÄZ®©ÓNêØâÐ1’”4%{CQ²NP5ïê*y3oõeÕÄà4m¨!5ed»0POJ(£EðoÆ=J`oõƒ½'Ó¨+Û…¬â‚óÕEªªK5ÒÞ“±ì«KoÓëð[œ9ÄÆÁiÜ’MÓµüp˱MO$H©â¡!?µæ# Ÿ—]†¤`Xb"j) CNUSÆ{¬¢Î«¶PdzÀ>€ÿ¢ •ŠWGxÒŠÖ*’þ¡5Ð`ò!vÚm ÆÉ˜›2*Ƚ²Ue€3Kvq^í˜×š$Û[fã1f¯9‘æªÙLŒÍÜ®ð°»å¼(¬Ê´˜Ø1>]‡’¡óEDr,âá½ ?:,ÖöGf¸j!Ž$Y³ãÞ‘Ï5“=0ùÌ<ëAëvPè÷ÂÉiz¹7À¥L² !‰x³Ò”ìì&á®O¶v–óºždP¿5ç“Nôæn¶Ô^œ/”šÞSü5Ü«öœX:N r ¨Ü Gß4_+ÄÃ5Þ2Š€ÍO/Ã+ž#ŠÏ0}¨GrŒµU…ý+Œ>»&":èm8±ðýFa°‡§AêØe‘a<¦ c -¿ð8U{¬§]Ãtµ\ÈÌ!F2f¦” [ùW¦À¼Lª€¹ƒ&‰g›4…ƒiKB¹4$*ÊxÆœiÛY©€ºÒ»²Ë©”Eè× ¢V~SúìqGŒk j Ï)å8y—Š‚ÛÆÉï#¶hyƒûJ'xÞ ßLÎöI gÉÔ‘¤ÌY<‘|B>¾Yeùýõ˵²üxâÓ_ô{°l7`nu¨ønãùîÙKˆºštÈ ›TnŠ'‡Ñ€ö¡èr‡æÌ„¸¢)pk"> ¶9Ä‘œfNJ™Üxf³i¨© $¦ÐQŸ{Š5[½Ž&î‘Fë¦"3%&²)jíQa -'!ñ -cñŒÛ’…±*)<á®ø¦Z-ìE°‘óèϺ$,‰ÊÆ’žÝÙwÓºF}_éÝ*ÅuÝ<…¤†‘ð±ÛˆÜ§œ¦O—¶ÞZ§v£Û{ºÉÁܧÿ‰À >æh¯„F#Æí:ÆjaU›ôJMÆì$Ó†osÒ'ô¿ñšâj>.J o;3 ›ãÅÚLááQlÞœÚm'®ùÊP/Ü€ù)CE9)<6u(xMšçd¾TÎØÔFkDG´¨P%¶$娹¥¿û2©*D‚S á–4–„ñs@šêy7nC·AµfMóÍ¡!hâP&AÕ'SYÛ^©Ê& -‚Á¤­#PÚœÒrdF£ÑEËCó’ÚñöxˆÅ*§‚e'h0õŠ®ûƒ\5ªj&0½JÅë`ùn¡ð+W6ùj1}sîWÿÙÎÙrtê¹rêE®ß„¼– ‡W年Cḭ„uË5_[•ô'n´š‰Û&Õ%X˜º]`!=>ʵTÿÅ_£„S#ÉãÇJ+)÷™­ ‘Å?³OŠºš ÖäÕDÌ)(+ìzˆ¥¸ºRf] -áû)aHºâh¡RÛ‰Xí);#KtÅÈÑMP}H£VCù-öGñé¤~Ë…î«¿]«N -UUßH8œd]@ -M0mCvhØÁ®šVu:Ñ9a¨id~×Ê›mSEAÓ¨œ6¥·ðF&J;ö7Øû™Œ¶ug]²¥U­Ñ˜n#·£Y=‡‚µý9qØ}Þë„ŪÔ=a­ý!ìéûD–â…à=V62²õoYévòQ¬Ú"RWWÖþ®lÕÑâqË:ç>/—·|ð¶ áC‘À< =ç• ÈÈg%Áå÷×/ûÝFbE­¬òÿÕHDöñŸNòÏ_¯ðo—ü«~€€ÔÿÍî¤Y<}_AÀÉÛ|HŠ“ß@±®†2 ÍCŠØJ…=4æäÔ)¸i-¿9%~‡ÎzM68×áêöl¶öxŽA#' ØÎ@×îû¸#&Øa/‚ßüÈc&ãÓàTÖî¬ö^h¢™ë1ÑžåœDè ¢BÅÛB~Èpž‹†xv´ª¥[GЋåÝ÷"Wô},2‰ù~Ö2ïÊÊÎòñ[…–Ú4Œöœç±îÔ´é5×-k/¯«uMÍ=DÔ=ÏÚö:-,Ýl>£¸g½+…ùò‹ùÝõ ßúø9¶ÒÝI¶¡‘¾3(»ÇOZ%…4YÃóô½Ñ=ÿZ»8]Ö½N×Ü!·ÔkwÔ–,õÖsnW§bΨôš£²J; -ç6[j:ï‡þŸç†•Aá÷ŒØÐ`Ó¥ ÚÑ èac=¸Âk“FY¯€†¥-¤h¨…pt“îh¯‹]9bR;­Vy’¥àfÀÂ^õ†3 ÞNÄ3|ù8þ¼Ï„Ôx¿àë}ÉÌÐဧó) :™ýÀFpÐ ¢Â*¢‚·Š‚ΟF…æíþŒµöZå}½=B‘ßÍj½ÇH#' 1ÎÀ¼%w˜h¯5:Æ£¶qƤtgw{VJ×¥[Å$÷T´>o¸F!s‡œBÛûКƧ:1¼,_À³½UÖp«(5œ/ Ú¶ÓBìõŒumV‚V¥G?ýcƧø9…Â!#»Î}Æ‚º  ¤ª<õž§ ±ŠdCÐ%Ú®A<43íÑ©}XÕáǦ„ s³J\5¥e rÿ.ù>%lLy¼êéSUy[ýV7‚oQ>˜]©[šãD°µÇÍýû#,¡£ùOø ƒµÎœZ† Ddµ„mE__M³“ýšN«‰é˥쥋 ŠhWÉ£9,¡QÌM:šGúõÕ²k×Rçû+ö0 Úýî)€t$†Hœ{/N‚.ñû¸ªÜ½V$È€Š”³kõËm»íªT8O% t¼ªU‡JfCŒdÏêÑ8F#wŸ|L•øm¬k‚0‰c•ÍPI¯“®”bƒ‚á“&ê}-¦‡fµ -Cl G`!Jª†ás©»Ë÷Ì$ÛXmgÞýÕ¼><`{»ÑŸù®Þçý4rŒâ¹‰8èíNÝg†¨ìTMYJ°n¡ïK´D{¥RÉê9eÊ$eHø¤âÍ©š¨Ý³ HgãÉå|V"sçm_RÄsª?´¹íÁãQÌW蟮FÒ%c– - nø¾° _¼¾ãP²ð#t y-€í<Þ°šÆ2ò„±‡—ÍŠ&"EÜîÆÎz¾ePŠâ0ÔkúB"᱂wø Egt…S¤»¦ó§ÂݹÉäX[TaS*I¢P`öPo‚«jCŸ]$0¡…l׬é™^]ËVÖ”ª]èq¨ûè Ø¯6”VW¥ƒ_*ߦ.ŠýCT‚ðyE“ìþh¬0±g HTî¿ä‚ ;Öào©ºU"1ðÃ÷G*ø¡ûOÈK7Çí®»·ºå vM„Þq VNUYUß'쪙y—U¾ò÷…yƒéÑ4›q, õ]¬*JñU82ƒçõ‚uÕ6Ù­›äáEm·=þkTvÎv`°måE%õm„ªÑ10±¸„ñ^IJŽkù@jçÆþ†kgøÓÂK‰-f;•5‡oÁ‹-œ®ºãaT) -•±T#„`rW°AÃvp߀˜‚œ&[?°Dw:%+úd‚¡N n‹Ìc+')œ\ùjl»JdãvŽÃË-ÒÄÏâ]ìßz2á5).zfê9û:*9'ì²x´Æš¦÷Lãñ¶(L,Ó{Ÿ -DælU/'³Ÿ¢â9“rX± = -ѽè¿>~züÆÿýêåñËûú|ùé1Áäeaü´…îë>m^«óš—OwÏ_¼ü i†ò|ùáñîñÁö‡W}¨ µüð|x÷ÿ£–øü~ïÔãÃô¡¡#þû­ÿþõ’{‰Å‡|ýá÷øðë—ÇÏô´žÒSb¿þúãã·ÏÏŸŸÆ[»&².®üÔ×ODþŽÞ#üZƒd ¡g²{$’eˆÂ!¶ú•Ù[OŸ¢ø=VЀ•Ù‚¯Þ0lá`jnîÍ+ŒþÆÙáA㌙›”Œ7jY’bÿ`•éV6~»á\¾Ä&fÉéV6 §Ä‹¾¶xã‚ÉÅhYä(莎ÐC=FO”NëИh1lÞ£=w,öœü5±ùÕ`ø3Brf),rk²µˆ.õÎò>¥“æxås¡ˆôªçA…¥“8‹ÿåDUDÓód%Ÿb‰žD•ÞØ9ÚT‘éT} ­#!B>¢wA"Ã}y[G¹m]´³žåŽö¶‚cHI"ô¢„MtxAѺPL£âÈ6‚¥W›¶á`phRüÒ)£î&…?i*0EЪN·èdâçÆ%¹¬’Œs^ü<„ŠRnŠëW‹¹ËÔÕ@5µUÂÜ•†3´_‘T’˜aøMáÏ[T¶ò§Õ"¬XV^¦uF`È’Öcîl÷ÑÕ¯•¨òý¶¯÷ƒqõtíTØk/s‘|tU Õ¹†.:ú’rÖÜ!7ÐG…Œnû¯ˆ4ïz«[ýøÞ[â-.Þ,­ß¢æ­ô -iÝYÅpƒŒ[nÔí•HgÒÌ$¼ºu²ÌK°ŠIä šý8Z7IZH©}ÁÉçÊ Œ7Q%l3ßplBEIQ –Ó„|{‰Î#µ¤"*F“úPýÈùþÂÇó'¿-™^Î+ßPŽÀ^VŒeÊ]׺d‹» -Zx¡u­P ÛsF_›GAÛ¢VfFKÐ3Ä^QLü…õsŠ\Д°ŽÇÖ w%TÔ®GTYwXŸé<[R0Ú×Ó¦«zÏ!þL ?×27âT63Ê4qÔªî.zŽˆuZ?%Lê¶ý¢›mƒž‡{7u#ªBUþ.=tL3n‘G–s†Âª.¢BYõr’;ùH%‚H„PPY–ìÌý ´Â„À¥sÛ¥m«¬†Ìb@·š2XŸ‡œÒdW(ºVÂÜžâNÊ#ÍnÞ˜#æÊõ©«E2L¦kf†7×¾eã–û-±qWµOåA«‘³S]¼ç!ÅQp"dE·”3í6h™YÑUÝÖÐ6jø®SA™F.í×ÔɬEMΑáfÙs‰çè¥A L9‚¤‹÷Àù@¬¨_§…Ðô‡BÄòÆŒüÒZnm]l^®¢}ty•Sd˜H$'Ö²)æÛyŸššz7£Ö‚=ÔØ_Ì£6˜º°åcÉ&·HŒ!î3•¡hGÁ›êHb'àé`ÇEÜÓ3‘|ÆÇï ¬jþÿêû¦ßû·¯íýæØo ûü¢¦¿4–šyËB©¿©šÎˆx_^ -gƒv¬Ê‘-[§‰íy‚fjÒ…ë÷dy¨²üvAóÚj|£è›¿«–¶_éTMßK%)sb4«L;ÜžlB6E•vä¿sß{À³ëÚ­ì³”º:sb!K´.YFèæe¬3ò“Q±Ìĉи°,Xe ¡Ðõ‚ Å)ƒˆÁÝvÁvéí)ú„'©kˆß{Ö¶]LÈDžFh4…›Y¼¸ppéO=ˆv^‡óëÎtÑuÝùŽæ…MÔ¼ˆ*˜Œ.=_ÇÔt²¬EߊHI¬)¨ Mb+Š*ð:A]®g£¼“H§8ÃR>ÐG'°(°ÙëÛsg™ç.Žò>%N¦-Î3ÑÆ)ÙeœG£ $lËHWÕ’÷T÷Í(Ê 9ŠgÕXW*×•Ìøl"gî¿G‹«•òÕtÀ¤C7°Pwuª˦\ë@ж¥}Ü´O„inKAei!YhDÃ’’Ù赡¹¹ç*»?~σ#8ÜéÄmŠ;¨NÍeÈÃÀȆCI#wšÜqr§©¹Ål§3WaÙtøœãøT$6¦S«.éøäÏÁL m¤ü‰Cv…‘Am·^Q°ˆ$3è#y°»=“b}"Û÷ª"ªäš,óˆÊÆçx„à±Jl™ì+ ŒQî@Ø¡Ö*àÈŽŠº(;gEM‹NžæFR¡Øù}Ž>^R¢lP‚, å¤tà¢4×Þ0‘Ö( ,šd2Ã3vä°ÐKâ–n0Þ!/‚[y¿ÓíÙê½n4̓3j nŠÎ  -HrözÍiתµìÚQ6NS‚È ÐÞyYˆ®m¼Ç6·}­Æwz® ±U·;ÔµµAÙÄ(h¸ÑñÚðE‡EÀdF„R&ž0ËúÈÝëäî|Ëøc§uríÊÃ×ÿ’¥•²pW·# —,ãAÓPÐüø×§þþóy'PoÚ›ÃÛ{€hÆŸƒ@üñk’öÃd~ß˸Öpb=QRìC¸ž)Ú½eæ’Šj™È³µf°„Š·šÕqC¿=ÄA@}Nßc£3ÏÖP÷ÊMÌRe -²‘¹ÕÈÊä[¦‰€î·c‹Y< x”Õ®‰5MîØHøús!h¶_m Î²§ŸJ³2‹A«4k…nClv–¨6á‹Ui÷ @Üj¸˜&Ãû  ±×ÉQM…m@²†ÒçÚ˜<å6Ž?6ÿÅ}µ$Ù‘ÛÀ«èR >äy¼ð¦ᘙû‡L°^…4^háWý²‹_Hd~ë° X ù P„-N¹8¥‘Ðð5F–|½ ô“ öv©Ç ™ qGþE±ä¢‰œMÀ´Qû|«“w/›°¤Õó[uHzf$Iù°Ú[ý…ª@8Ôôõ ^Ç¢Ÿg˜ÔÏ3Lˆë~…ÉŽÜq­4µ×+´8y^¡´¸?£Ëúó -uR{½B uFtÜŸØ£ '…urýëg=}{r7›kt5ï -+ŒinøÑCxÜ47Ôç“æÉå7Ͱ8‹`\¹²˜ºß#¾µÌ~â›èÝêó oì `û^ÞêÞÄÌgeŸ¨¼¸áM¤û^eŸé„eän’?èhÊÏÏ”;¸­s4‰Ç7õŽì+wVƒ·IÅàժƑÐV€ª|¹U"Édz äþ}ìÚ,}uL#u?»¢cØéÿН'X)½g­uûî“ æ=Á}º Çi)¸ï°à½-·zq>ú4³'ÅT†? œQIšü¹«¤Ë#¬n˜pò§Æ7ö–•¥*ý;¯ˆ|#*2Ï£}} ÕqäHxíp&v‡`Úö6j5p騽þžÎqN!J™‡oÅm%× (—ñn‹ÖD±È<¨«f ¶½ZJ+~Ä(§Ô-œèÐz¬t^ß¿§I,ÑîoÖW¸Y*ú ŠÆfœ¾.\Ìýy†E²ËEwýÜß4ð­ôm¶Ÿ ‚†¶ÁõÁ•ÆÚÁ.LjI²O›œo ‚Y§tßlQÏô -:]QQyG¿Š1‘Ü¡‹˜/eÆ[;—ExlöþA¼ÖäC-o¯%w^ÃÓØŽçPÿ`lÌVM7|¨m&j²R3«•Ôo#¤w—ÊõI. ÅcÍ%ŒéáWQ"²ÑRòdt¿\RiÜþ1P/ã]o%c* >WÔUKª:vU‹S‹ ‘¼¬p âc°‚µý::º‰€³°Z«”_5À’G ò¥Êk”!}1 ¥Ò·Ž>}4òa ë>ãªP‹¸ñI$m!Ö\4[üÆ–©²ÀÎV y¹ÎZir³CÒ†Pbu=ž$øÉ¯(¼ÖÉY'»ŸZš[åÄDþov‘jЇã¯u3HÆVÁ¤®)ƒÝ8c“}Šº¼Oþ6&4\Gƒ¥´ 'ÆaNåK/'è¬Ø{åÛ/Þù–Z™ÓˆÉúúÊ<¯‹$ŸÞ¢Km¬yF-‰Æ~¡°¦ÜÉäÙ,áY/ºÈµóZ†Í h€Yàü¬ö¤¢éÏ@²Pbƒ±ŽË‘Èý.ËLœtÑÉ$+>YUÕOr vœe[ǬæA2ú*T$9Eë^Á&õ¡ÖkÅ€Rœ@Ä…y‹Vq¬B•p‚ «‚˜Z—H7eÙÜ Œ aqðÞêpDaÂVtO6–lñä†Ú¨S¥ØFÚ»âm¬«‰êl±ht…¥l‘×ûAWî~pIad¸_‘Œ·‚®#ˆ_y´Ó«¼k -Û=e9øo^ÍÞ*£å<ˆ}~´~%‚mdüÃÈ/¿é欂•Óÿnîm›þq½Ïò·~믟'þbâþà?Ê!ü—¿X´¿~Ç€-©rÌ)û=/þ2`R6£È›$:ÀêÔûÒ”×ܤåGŽ€!K×?à ÝfU%7~} XoST;ú'EtÒ?‹bÔâ¥Uª´Æ¼‡h‰t(ª”2Çê°ô%`áe(A ö'¡gY)*È¥þ>ô2…¿ü{Ý+ùi®F |78çŽm°pu¢$–µn©Ò•ÎûbéÒt`pmŽº&šŒ{våÖ}ªÊƒUI££‡Œ@ !ѥ˞‰æ. ƒB«ö@#â³yÆé‰‚šY)CÔªåA(ÆÓÆ–ÕíŠ=}Ç·«Ó N“MdQÐýÞ¥dœaqt·0ó=£¶ÝÍv7‚¤Ýœ°í…5»¡öØÛ^Çmà¶xÝÃfO/ ØÑ'0AjWE“EKÊ<£­‰€LØ$6 yu±‰NU½è°%µ0f»x4k+ Ú.³Ÿ>¢&áÁÐ=úkÞ‰¨ºl%—‚#d<¦Í;º:ÕI´ø$Oâ9¥Æ§(§ÝqTÀ'Z§ú)÷b  •Èü‚A*p€ZËi{]ɶWv?÷u !\1VÒ׋¾’WÊØµ -}ö;pJÕÀVþîP˜Ö’DÛÔ® [‹ùq²¸J8X*+9ô,;*,ÈS'ïMìÇÓŽÚÔ=;]cO­º§ˆƒpôË÷:¡ê5ÿ÷ÐsÒ·å½½ò¶óŸÏWÊséßè®Úô Û=5ç]Àk'Þe¯ähý«¯óÓ‰rº,| -5pw¬ñøåI—ê=æ-ÞvÕ]_x‹Ïøtÿüå‹XJí1ítýør ˆXÀ e[ †Tt«3Ùï½aŸ  ¾*´º"Ÿ¶hZà lÄf˜ž´•cRS‰ÄJÝhŸ,¨çVbWÍ!Gúth¦Éb6Ùv'OBM tÀõ^(ž{ÂÑ%¤¹YÄv?kÅ'E}Æ´;Þ \s§ê_ñrÝò– º.!Ý˨™qÓó†èÏ— ‰¯á“§uÚ6$U9Ç„mÈÏ ‚tWì`áQ¿Øí"“ -Ÿ_ ÎW )±jnÏéŒ6ËP(šÅU#IfdÎhPŽLh‚xåJ™GBéæ[}Ðîœx„é©Aé`Þ¯—Õ¤ -’Yä䔦 ÉJžGþ`m´1<ÔšdØBi×Dq5µá·?\N(šÄÇãk£Ï8GEQÖy·zlИwð+±†WI“ËõU?mJÈæŒ›iõZá¾·jÀ€Äaå`‚É1)Æ¡Ô)±ÖÅÑŠ·²t2Íg½ƒyRŽzH¨}3}YjmG†«E"pµgƒ ô¦ñŸË—î;ˆÉÇuüá~e@CQ ¡l1öç‚w=ó¼j‚rú‰¸+§mobä -8Óã‚sçE"ˆ±”z£ÞMbKùe9V\`7UL å¦Ã7Ûqmê3ë‡U L«öà-FµÑ»ÚK¨´Ž¥Ë/C¯Eadßaâx3 òhÈR¬'╔⒬™dã:ÎåïÀii—mÊ~´Æ xnˆ—›«¨…³C›xRZ?ð€êöÚŒ²ˆØ ×Φ^IÄ=OÅó-°4­WòäçŸÏ‰aU6³þô…P0Ž›šuÐ7&ß§^î¨[xŽˆ'cebö5£…))Z*çºìœ2 xÞkw <}¬+—sœO¡Ž›Ž®UÍæ£oëTcÐé;Ò*7Ëê' -Šî§p:™? -u| -8ÃðTXCJQdíÉû¶wE9DÝYÑô4;Ñ(ý¡±C$¦u”½‡ˆ(•ÌXÅ{©^lß -g{ƒ:N,çå‡s6ʼ}“Šò"GˆºAN–¢‡©’ZC}e.;ê"òpHSŽ©¯t4kèQ‹ÜœzTH{sf ¹ïˆïGÜñmRˆ„áÝ“¶^E^˜h“Ø…Šy…=ô®[¡Cs»ģ>wm”Pï¢Æc߆7î‰LvwZû¾QÉéÀºÎþMx0³LÁ Åìû#øôOôR++ãõÍFp7ò]Žûðsû,ÇíߌÔ?yógÞù |}þä›Ñû —ùúì2ÿõâ·z·±$sx¦ö_;·@ǹټoÂ3ôSnÍnãfáÜò=ès¨¯é?‡gpºʵ¥‰½ÚEòñˆ ¢‘TuUÍÕ*2¢^Ô«qûFàÄ2Àüͪ6Å«dú/Ñi÷6Áür˜KåÀ NwT Ú9ix VÔ5 \VÒê.ê3ødÐ Ëb`£Ð7vا°í4Ñ(8‡j5Üç -žuñpDšj…[B3"¨ùÔÑëø~âݲuyÓÁ®d2;Úémb¯Ú”©\a­ž®â­w©ì'lì¥wZ»;Ï.w‹N)œŒ›·ìaë’…6=(KAUÁ}wXÚsšäHkÌTö¥&áD›âAê)ÓɘG–²|ÌîâJÚÞÅb °W×6JÇϵ`È\€G¼•øªqÔU×êÔq +âµu¬YÁšiáôé^æCëíÃ=³F\X¦Ë„_ ênYQoÑÙgÉ'~!†åÄJ) À°ÊÀ.1Â2åŽþ%벎jßÇiØ·¥R+cl]À4RFbÅÂfðrj«‰ü¼¢èf ÞÖ¦8¹Ù!ZÌ@µcäÃÏŽKï ’oÕr" ižð¥XÁ6#Òþî<ÑÊ%×» l–ø/`6*Ü:à JY…¾)dØUi,÷ÈjD-süµˆ½X9±`§¤ö-tܰ˜–¢ºÚ©@Æ)CKëµa ˆÕå©UXW)g:¥ëù#Z§U¯2®™6Jv%W?gÑTÀZ& ƒ5­‹»À'žô,5È—žË‹½ÇU9ð:c*tlxÁaåâ¨*Âü꺔dMöMíæðáa²aRB»ö‹¨ªÿîJc×5×Uw¯îZý‰k¿wÓžY£ i±}Ô¯;]½”N5‡¿Ð1nâü½6¹†äèÕ(Ô¬ì«P3°âìƒú¶(X]a‚“÷Á!f^W±Ç Ü­ ¢ˆW+Ø·GV42fq™µUrÂrØÑÕ°Eß°äODÑ -®¸ã§Sóä+FéwÖ”¾tÕ™Jœ˜£Réš%ƪmìûOùØ#ÿ31RáŠVxWcBífO˜Ô)Kª'Iücǻʯùq\Ä⮈&?äPfŒ,M¼½Áû™—Į̈P£ˆuÍ ×Å•ªœNÁ -øh¢Ræ”ÓXÔØhR®Yã-‹-›hKQ§\<;,N¡(Ô&vP$¥±ûˆúˆi#®5J¸ÀˆªPòˆI»d=äf¨0$:UZë˜2UV‹ð"н˜Ót“]ÑÎ3Õ].ð…\2Åa.^óÖ–*óòQ»n¬Þ}šz}pO™P®’õ-¶w•ÅR¨X)Qÿò_¾†0yÅ>á½~ïmãV´båéRcƒ‡oV¢….|ý~ó4ýkéÿÇ<=ÿ6ÓÛˆ·xÛÇ?¾Ç‘Í]egD·Ýœˆ%“’§I‚§’nÝ‹É]:ýwüÄN `ÖÁeçq±µë¿‡7`Gd¹…¤1Ý4íŒÞ+S¡Ž°Û>ýQ¶r=U9Øì×0C‘¨5èA×r†JJK×ÓÊþ¤OD‰aþ³ Å_whþÝì6Ôéc{¾Ýp°L_<\CÏòþ_“…xºO¦}ö§³bW£œw§7•,¬×]a/3vÏþÕáùæ _:Ë}˜×AíCß3Öy®çZ†;¬Xnò-™þôßWĽ»ÊÔ?ºˆoyü×êýÛçWÞ:À_cÄoMù÷(ÁŸþòç¾ü[€Û0ÞO endstream endobj 171 0 obj <>stream -8;Z\75n:[Q#^[-_Igb/egqf@K9Etnuf96T5[#m5+)$EqrbPOR5q#*f.BsitV,"ga, -5).U`qE0.uaQ.PX+3Wf2-h"P'q=_dGIW$!MIh%1WW endstream endobj 172 0 obj [/Indexed/DeviceRGB 255 173 0 R] endobj 173 0 obj <>stream -8;X]O>EqN@%''O_@%e@?J;%+8(9e>X=MR6S?i^YgA3=].HDXF.R$lIL@"pJ+EP(%0 -b]6ajmNZn*!='OQZeQ^Y*,=]?C.B+\Ulg9dhD*"iC[;*=3`oP1[!S^)?1)IZ4dup` -E1r!/,*0[*9.aFIR2&b-C#soRZ7Dl%MLY\.?d>Mn -6%Q2oYfNRF$$+ON<+]RUJmC0InDZ4OTs0S!saG>GGKUlQ*Q?45:CI&4J'_2j$XKrcYp0n+Xl_nU*O( -l[$6Nn+Z_Nq0]s7hs]`XX1nZ8&94a\~> endstream endobj 166 0 obj <> endobj 174 0 obj [/View/Design] endobj 175 0 obj <>>> endobj 164 0 obj <> endobj 165 0 obj <> endobj 177 0 obj <> endobj 178 0 obj <> endobj 179 0 obj <>stream -H‰ŒT}PwÎv÷ô¼m/릜Ûfs'ÊW5 R?°B«‚€á£ŠxV„o hmƒOê¨UnT)=‚ˆB!TàÄ’TE# Ói«Wm…žEË»ôoî—¨½ëÍÍœ³ÿì쾿÷}Þç÷<!qu‘ÁÇć¬Xê£Î×¥g'Fé -çÅhS ²ó¿ñeBts_™Á¡ ”ò“uªï`éoÍ/O{Q&‘„kઔM)¡ºÜâüôÔ´­JÏd/edb~¦26=[—³E—óªr¯oÀ|åò¬,¥³d‹2_»E›_¨ÕÌW­ˆ+ÎÕ*}•mŠDBàGÂH$!¿“dÄ.‰D‰AJæH<%¯K0œ7‰£ÄC—c.×¥¤t´DzHúWo×,×ò2’¬$‡©™ÔRJO5SôLºˆîþÕÜp¿ú©ªzb¸Z¥âr?nê ôðñ4 Ös¨uª -Z)YT Z Q;¤PZ΂v„ÑÌ&ÃùÂBøè<¼0 3Ý„6v›/‡/i˜¶èS÷e‘yo­S4­#;Îvü¥—¿jNY-,¤Û4q•aü’€õˆXӾޏXÕÖ¢`·ÅѬ ¹áÞHhë¿dj»f>§×œTtrN¼~Ïì3XÓ Å`«Ìfƒîa¶¼á%tô™š>ãßø±Þ@¥2z™÷õ_Ïä lzÉufÛŒ}iŸó »sü@åÿ=bÃÕ™k5”ÓlÑcͬâ4+Ñ1,…VwÛlìlÖJnÎLÒ¯çç„ßšœù¡«µxS£ÐÕNv¦¬3úóÈݹ Ùhö’‚»ðohÃÐmc‹ÄÝò)U0*¥»5êÆpÉx"•À¶#¿;> û¼¯ÉdT°E¡r¿ÀyELNöÞïëKM¬P˜§NSó̆~¼ û‰Ž[på†: Üð@m§IH5‘Éš¸‚X~vÄÍoþ$ˆ³*(˜š‹ˆDJä3áî -ð‚SºJ]ßîë \:¼±W`Pke¡`·~â¾M -Ar1`ÜâÕL÷×~ÒõqÅïU4t’uÙ‡5ükqÑžBJ`Ø-{ÍìCñý0Ó*J­ýÓMGáŠç`:]0OsƒChvìéÒ¬¿R!ß;ó7›ŒB='H¸bÃñŽd…ö-2¦÷⻣|”b†~œìïëMMªP˜Š ÐW:H…`=qÓûmR1OßÒ֚憄%%e(à`ðc• ~¤[ê.{yËÙ-ºF3ø˜^ç¬ÿ¿}¤hâêNœ¨«+¨Òé¶nÕéª -êö^³Ýĉú`»žfðbâãÿwâ÷K8öÞ½®óß bm°½–ŽÊÈ{;» üØ;мXrK}ÁÄ3ÑÎÙ°YOØ0ÞÝr” Ç tä«:ˆJI1Ò YAŽÀr”Mb¬S*g1x;4ãP$”8÷Æ$c¥gÙ ó<…Wÿû£ÉÿÍð›r]ï%žáCWÇgb]Å[8x`G[jÌFÿYµ&J@£6˜¤[ª»›ºøË5ÎôSJŸ´>pƒsåpSzÎÃAiº‚mÿ¹×PËÉ Æ>~ -³z…fö<5Ê\‘B‹»@”* ‘òP9•§¼‹(ð¬®î1·¿ï¹=1Ñãïåãm²-*„`G—'Ì#ìXp#öö8ø‚Ÿÿ}Ä®\“–&°£ƒNžJéµ§{2-|‘•S«ØØƒ†ßÔ‡¿ ;>Ðû¿ú¶€Ù†û6\༣±{{GÆúúÒ~6ÖUÑ*ÎÒÓØ}Z@¥6Lf;qÌ”¶¦iåÕú!ßÛ^Àb§ìÄt-²•8вWð Áwtˉ˧:ø#‡?üð°0D‡Åj×k¶yÈ©#¥á’È]":A?(…b¼Ù‹£¨‘yÅ£Yg[?±\6ç¥T4™ÉmtÃbÑ«#‚´̃hÚ¬ IiËâ›3öˆ7Yòoñ j0XáŸâï7¥`àÎÖ–¯ -zÈ’íEÛ øÌwkŒtcû‚[rÃFÅ7jLT0…ÎLÒ;‰ÞïȤ\9V;:]lz4¶¹úK®£oéÙÝë ^>u¦§ÒJšYâ1±O,Â÷,‡¢ž\J¡»-•ä -6Úõ$¯=)+›Ú -r˜Ë–QhºC2‘#Ã)Äâ×éøõu -æã6 -d¢Èìn$ó쬘,ur{! d…xfA¹‚Pd@‘h/ùN7H€¹(d– x«(>gBÑÜ®òêÝGùÏöšjO^…â°Û/‘¾mß–B&¿SP’ÁŠ÷(=xh!ÄÅr ª¦¡ìd]4ª@?‘jš‰pæãÚ~Ù}„:Raà—Ay¼|׎2EEyDŸ ‡_ãñ,(Ù8ÿ?#çÔDNij Þ®wŒPÛØ{Ï?à0|ó,,v>ëãè¢u„×óæ9ˆž7úß/õeÊ¡P|™¨>xîÐàýC´âãdD˜1­rúW¿®¬«ž1ãÒŸÌø ̯pÿ`å‚M endstream endobj 176 0 obj <> endobj 180 0 obj <>stream -H‰dUmTWžI23 í¸fœè&t+µ®ò©ò!?Q©R×z¬ŠE¥âÆŠZ­%P´µÖUq”-”ŠÂ¿Ú¥rlýh -MˆxDŒüzoܳ7ý³çþ˜3÷}ïó<÷½Ï{/I(dI’ü¼…qS§ÇûÍÎÜ`ȘŸž²Ü?,0ÐÐJRòQHï½Ã£á(óÕ­Wj -Æ ¤¡'|/Ur’ IŒÏX¿É¸zUÚçº1©Ñ†ë–oÒÍÌØ ‹Ë\eX·*%@›ž®ëÏÙ 36ŒY†s2ŒŸ¥¤Ÿ:?yÓzƒ.P·Â°’ H<ˆ÷ ÂWNŒ%ˆ ‚%‰‰$§ ¦ÄL‚˜­ æËˆ…2B‹¥³ˆD¢Šô"דÕä}™B¶Vf‘+äsä-ŠÅ¿O¨TªžžEçÐÇ_&¹ìçUêõÜ{¬÷‘AòA):±Qr6’%’o£¼D%ö%¹ i0£+<І]tÑH‡šxðü¸K·¯J*e í¢ÞÎ÷ÿ±ì3±‚îÂùb¶ò0!Sß\dwëwL­1ôE¢ÀL_DA”~2ž™F£Ì>/ -QøûÚ‹šFClã¹N˜¨ÝÇÍå¢ÚL‹EÆ¯× ÈD±Àå;¤ ʆ§ÒÔ®I]\Oôñh9ø£‰&p]!áßÏ´ÉÌL¤Üô -@4 †H9~×ÓòòóÙÚä®H”X9-CA8+U`a‚Ø:¹]ªi¶*aäIùŒKoRÁEúÒÙâ}õZ~°c¨5èC€EšÓÂÞÅKÍItæ¾¾ç>ÂpéTÌK5@0õß›rk´WÿˆTjÄ'Ž[#ä®2|ªa÷yh ·²˜`«#ÁÁe6©¤rˆ €¾‚\0·#3dÓ\l wÀ$÷.š«úƒ„MÅ5Îj‡¼ŽÕkœë¬nõƒ,(lG…k"éÎ¥¹¶E(_l•ÎYI¼@Ž“+Zƒ¥sVTѦÙï1æÜv¨x£¨ª§§Á\E×T™÷œÔ¶;×¥~¸ØW)ìO[f^¦Aío ñœ*`SU±3ÿ¶6ëpÊ<õœ¿-Y’-|‘iܹVîÈï”ï)›D÷‚©+¼‡ëj‚4>– CLànÁp] ÷­U£ª˜RnQ·\<ñ«ÀY¯üœ¹\»¨ëwÆŠˆÚ‘h°nú3ÚÚ…½Ó±ú÷õáê„$CDìôÊóÂy†=‹÷[×Nw@ĈpÈácTâ]×A’9 Ùý%;@îº`šuŠ@†dõy[•{ •ôMC%PÂ¥ÁeÕ š;ú¼©ëVTÝJ£`·Ún,øLTÒbAÅörKªÕþ•f%(©ÌJî‡bi”È÷÷yó¿ÐôÚ›šA2Q¥åE•¢ºû:½Ô(€à6õ‡‚1Ë/dîTj§Ñ”!ª h±ðØÌò¡TMM Ñw5õ¥± £Ÿ¿ðØN‘I©”ÍŠŠivv¾%ѱ?wWyò1ä<â¶œ„‘<×0ʶÈC~x) -E4·E,ÈËVï`ÖÈ<#ôXÒ¹ÛK÷i!‹aÓ®! Š+ -5S)±¥áns}F¤°q-3­ÚŠB´\Ãã]¼BŠê…ò,:fAHØGkNØíù¶ø›ðÚ”EiwB‹ÛbW= ¹†ZæPá«X7¼Aí|az Z" -&Z48¢†<4SogºÿÄ£Ébûq -’!fÆÌ¨±‹;ï ì¬|ü×FÖº ªC^ %Z¦q  ®ßì=suã -mZG3ã@CŽé‘òFr4^`÷`¥xÕ¯ô´ jœÜ–Óð. -²#|@uªg J…Ûrþ¯JÒ 4CoC¡L¦ys¿øåvÄ ÿQ(Là\*`ZZÚ @Ê)ë'&ÝÀ¾ÆÇb}3h¬ä)}"?… ÑX|1ïÞ¾. -©7(1q^HPÔO øRh\”#ej®|ñ =ðO›xûÞŸÓ\½ði°YËîF+ÛAmƒ‡–x›²Î'»qÿ½ëϯ¥ŒÍ9ÿÑÀ0à®B¤VR3e»KË„KDÐ)›7®ÕrmyE;<ò¯d$”ÏР‘ˆ@ ÑˆÝoçN4Vhñ‰nÞ¬NeFŧ†œ3&±JÔâ›4‘L¾ù#ÃJƆ{¡%àmîpÂN®áœÊ ør]ê}ÔúõœºS,QÌ<¹àì¾]6Šg&g1À/hAŠI ó3ðÞÛs>©ŽÐ„Ç%Î5jMت¢¹l¿ú(SõÝ2Ñúfz﮹Zt/Šaobî—Üß:¹3Ä¡4gí¹ÖÕÛ¶×Csñ-Í_[–ä·~æáμAÎþné[ä-ZäÀÈ»ßúºÇ…}]Ê£üº(À€Ÿ6äØ¿~ˆÅö\ªç­–GÝwôç7ùö =ˆ[€²²ÄÙ•@9¡ö1ç¬BCy}¿ÌñÌÑ&¬ÃÏàO -\Û}胆¥ŒóxsŠEXg1S‘sp‰€otº+™néçó×›,ö7‰ÏÝQç}-‹àòtwÿOVÀàz#¼a¯Ø÷žkߥ؄/¼Ûùñ;ÃìéÝr¯Ù»ë{ëlK@vmèî5_j5û–²¹à09 {`e%SëçM¡Í<ß~w`ûVøÅæïŒ¢Ö_“žƒêöÇ^¿4Zc»TÞoAðüÝR[¶Îß ¬ öl.Ë‘Ïzp‚ýªòrcduý{™×ò•ÃÅ¢ÃÕR‰q%AÁþó·É­1Ú0µýî÷¯×?½aþôÝWô·íwÑòÓ f“ÞöÚTןä¾7~ç½ö›÷»¼Îoy`ÙÄ÷½¹û)0·1Ný^öCä{óÔ΢§Ø¾‹ýqfýÎÀöíû3Ö‰‹@-`8÷M,‘ûöûHâ»ØgÖS×~—9\`3ù½‹µµ¬³\zw.m] ÷›ù «1Ûoæ?,h2¦ßw±žjcã‹g+Æ ?:™7ˆ}—`{ÿÝœuÚœI³ÁVM®šZ#÷ñ·ëwÑkÀÖ” °ÆfýnËzãÚo)6ýßê¬ÕÍUÝRÀ’ªynÓ,9Ãïꬿ•î²}gùm÷›÷·«=_Áï´;?Ž\cœò½XF—0ŸVÍrbíÞž}ææÙí×Ê}ù1䃇3l¿Y~dm.m/…8taËB9`¡qõܵßÕ§Ù¾»þñ)‹dM®ÊÊMNÈ[Ü-ÏW?ýGßôïÓÙ~§Me¿Æõ†ûÚ$žGS{yx¿÷‰üø+ -`bø²€ endstream endobj 170 0 obj <> endobj 169 0 obj <> endobj 181 0 obj <> endobj 182 0 obj <>stream -%!PS-Adobe-3.0 %%Creator: Adobe Illustrator(R) 15.0 %%AI8_CreatorVersion: 15.1.0 %%For: (Dave Gandy) () %%Title: (Font-Awesome-Vectors.pdf) %%CreationDate: 6/3/12 11:52 PM %%Canvassize: 16383 %%BoundingBox: 18 -784 570 775 %%HiResBoundingBox: 18 -783.0645 569.957 774.6206 %%DocumentProcessColors: Cyan Magenta Yellow Black %AI5_FileFormat 11.0 %AI12_BuildNumber: 39 %AI3_ColorUsage: Color %AI7_ImageSettings: 0 %%RGBProcessColor: 0 0 0 ([Registration]) %AI3_Cropmarks: 0 -811.4707 612 788.5293 %AI3_TemplateBox: 305.5 396.5 305.5 396.5 %AI3_TileBox: 0 -407.4707 612 384.5293 %AI3_DocumentPreview: None %AI5_ArtSize: 14400 14400 %AI5_RulerUnits: 6 %AI9_ColorModel: 1 %AI5_ArtFlags: 0 0 0 1 0 0 1 0 0 %AI5_TargetResolution: 800 %AI5_NumLayers: 1 %AI9_OpenToView: -527.3682 836.3882 0.6667 1288 696 26 0 0 110 194 0 0 0 1 1 0 1 1 0 1 %AI5_OpenViewLayers: 7 %%PageOrigin:181 371 %AI7_GridSettings: 72 8 72 8 1 0 0.8 0.8 0.8 0.9 0.9 0.9 %AI9_Flatten: 1 %AI12_CMSettings: 00.MS %%EndComments endstream endobj 183 0 obj <>stream -%%BoundingBox: 18 -784 570 775 %%HiResBoundingBox: 18 -783.0645 569.957 774.6206 %AI7_Thumbnail: 48 128 8 %%BeginData: 8182 Hex Bytes %0000330000660000990000CC0033000033330033660033990033CC0033FF %0066000066330066660066990066CC0066FF009900009933009966009999 %0099CC0099FF00CC0000CC3300CC6600CC9900CCCC00CCFF00FF3300FF66 %00FF9900FFCC3300003300333300663300993300CC3300FF333300333333 %3333663333993333CC3333FF3366003366333366663366993366CC3366FF %3399003399333399663399993399CC3399FF33CC0033CC3333CC6633CC99 %33CCCC33CCFF33FF0033FF3333FF6633FF9933FFCC33FFFF660000660033 %6600666600996600CC6600FF6633006633336633666633996633CC6633FF %6666006666336666666666996666CC6666FF669900669933669966669999 %6699CC6699FF66CC0066CC3366CC6666CC9966CCCC66CCFF66FF0066FF33 %66FF6666FF9966FFCC66FFFF9900009900339900669900999900CC9900FF %9933009933339933669933999933CC9933FF996600996633996666996699 %9966CC9966FF9999009999339999669999999999CC9999FF99CC0099CC33 %99CC6699CC9999CCCC99CCFF99FF0099FF3399FF6699FF9999FFCC99FFFF %CC0000CC0033CC0066CC0099CC00CCCC00FFCC3300CC3333CC3366CC3399 %CC33CCCC33FFCC6600CC6633CC6666CC6699CC66CCCC66FFCC9900CC9933 %CC9966CC9999CC99CCCC99FFCCCC00CCCC33CCCC66CCCC99CCCCCCCCCCFF %CCFF00CCFF33CCFF66CCFF99CCFFCCCCFFFFFF0033FF0066FF0099FF00CC %FF3300FF3333FF3366FF3399FF33CCFF33FFFF6600FF6633FF6666FF6699 %FF66CCFF66FFFF9900FF9933FF9966FF9999FF99CCFF99FFFFCC00FFCC33 %FFCC66FFCC99FFCCCCFFCCFFFFFF33FFFF66FFFF99FFFFCC110000001100 %000011111111220000002200000022222222440000004400000044444444 %550000005500000055555555770000007700000077777777880000008800 %000088888888AA000000AA000000AAAAAAAABB000000BB000000BBBBBBBB %DD000000DD000000DDDDDDDDEE000000EE000000EEEEEEEE0000000000FF %00FF0000FFFFFF0000FF00FFFFFF00FFFFFF %524C457D527D7DA87DA852A87DA8A8A87DA87DA87DA8FD057DA87D7D7DA8 %FD13FF7DA8A8A87DA8A87D7DA87DA87D7DA8A87D7D7DA852A8A8A87D5252 %7D7DFD13FF7D7DFFA8A8A8FFFFA8A8FD26FFFD057DA87DA87D7DA8FD26FF %A8FFA8A8A8FD07FFFD04A87DA87DA87DFD04FFA8A8A87DA8A8FD07FFA8A8 %7DA8A8FD05FFA8A8FFA8FD09FFA8FFA8FFA8FFA8FFA8FFFFFFA8FFA8FFA8 %FD07FFA8FFA8FFA8FD06FFA8FFA8FFA8FD07FFA8A8A8FFA8FFA8FD07FFA8 %FFA8FD09FFA8FFA8FFA8FD04FFFD04A87DA8A8FD07FFA8A87DA87D7DA8FD %05FFA8A87DA87DFD07FFA8A87DA87DA8FD05FFA8FD25FFA8FFFFFFA8FD04 %FFFD04A87DA87DFD07FFA8A87DA87DA8FD06FFA8A87DA87DFD07FFFD04A8 %7D7DA8FD04FFA8FD1BFFA8FD0BFFA8FD06FFA87D7DA87DA87DFD06FFA87D %A87DA87DA8FD06FF7DA87DA8A8FD07FFA8A8A87D7DA8A8FD33FFA87D7DA8 %7DA87DFD06FFA87DA87DA87DA87DA8FD04FFA8A87D7DA8FD07FFA8A8A87D %7DFD35FFA8A87DA87DA8A8FD06FFA87DA87DA8FD08FF7DA87D7D7DA8A8FD %06FFA8FD057DFD33FFFD04A87DFD09FFA8A87DA8A8FD07FF7DA87DA87DA8 %FD07FFA87DA87D7DA8FD14FFA8FD0DFFA8FD09FFA8FFA8FD05FFA87DA87D %A8FD08FF7DA87DA8FD08FFA8A87D7D7DFD07FFA8A8A87D7DFD36FFA87DA8 %A8A8FD07FFA8A8A87DA8A8FD07FF7DA87D7D7DFD07FFA8A8A87D7DA87DA8 %FFFFFFA8FD18FFA8A8FD0BFFA8FD08FFFD06A87DFD07FFA8A87DA87D7DA8 %FD05FFA8A87D7D7DFD09FF7DA87D7DA8FD04FFA8FD11FFA8FD07FFA8FFA8 %FD0BFFA8FFA8FD06FFA8FFA8FFA8FFA8FD05FFA8FFA8FFA8FFA8FD05FFA8 %FFA8FFA8FD07FFA8A8A8FFA8FD06FFFD04A87DA8A87DA8FFFFFFFD04A87D %A87DFD07FFA8A87DA8FD08FFA8A87DA8FD06FFA8A8FFA8FFA8FD07FFA8FF %A8FD09FFA8FFA8FFA8FFA8FD05FFA8FFA8FFA8FD06FF7DFD05A8FD06FFFD %04A87DFD08FFA8A8A87DA87DFD07FFA8A87DA8A8FD06FFA8FFFFFFA8FD07 %FFA8FFA8FFA8FD07FFA8FFA8FFA8FD07FFA8FFA8FFA8FD06FFFD04A87DA8 %FD06FFFD04A87DFD08FFA8A8A87DA8FD08FF7DA87DA8A8FD04FFA8FFA8FF %A8FFA8FD07FFA8FFA8FFA8FD09FFA8FFA8FFA8FD07FFA8FFA8FFA8A8A8FF %FF7DA8A8A87DA8FD06FFFD04A87DFD08FFA8A8A87DA87DFD07FFA8A87DA8 %A8A87DFD33FF7DA8A8A87DFD07FFFD04A87DA8FD07FFA8A8A87DA8A8FD07 %FFA8A87DFD04A8FD04FFA8FFA8FD09FFA8FFA8A8A8FD07FFA8FFA8FFA8FD %07FFA8FFA8FFA8FFA8FD04FF7DA8A8A87DA87DFD05FFFD05A8FD08FFA8A8 %A87DA87DA8A8FD05FFA8A87DA8A8FD06FFA8FFA8FFA8FFA8FD05FFA8FFA8 %FD09FFA8FFA8FFA8FFA8A8FD08FFA8FD06FF7DA8A8A87D7DA8FD05FFFD06 %A87DA8FD05FFFD05A87DFD07FFA8A87DA8FD05FFA8FFA8FFA8FFA8FD07FF %A8FFA8FFA8FFA8FD07FFA8FFA8FD09FFA8FFA8FD06FF7DFD04A8FD07FFFD %05A8FD08FFFD06A8FD07FFA8A87DA8A8FD06FFA8FFA8FD09FFA8FFA8FD09 %FFA8FFA8FFA8FD09FFA8FFA8FD06FFFD04A87DA87DFD05FFFD04A87DA8A8 %A8FD06FFFD05A8FD07FFA8A87DA87DFD05FFA8A8FFA8FFA8FFA8FD05FFA8 %FFA8FFA8FFA8FD05FFA8FFA8FFA8FD07FFA8FFA8FFA8FD06FFA8FD0BFFA8 %FFFFFFA8FD09FFA8FFA8FD09FFA8FFA8FD07FFA87DA87DA8A8FD07FFA8A8 %7DA8A8FD07FFA8A87DA8A8A87DA8FD04FFFD04A87DA8FD05FFA8FD0FFFA8 %FD09FFA8FFFFFFA8FD07FFA8FFFFFFA8FD04FFFD04A87DFD09FFA8A87D7D %7DFD07FFA8A87DA8A8A852A8FD04FFA8A87DA87DA87DFD04FFA8FD29FFA8 %FD04FFA8A87DA87DA8FD07FFA87DA87DA87DA8FD06FF7DA87DA8A8A8FD06 %FFFD04A87DA8A8FD24FFA8FD07FFA8FD06FFA87D7DA87DA87DFD06FFA87D %A87DA8FD08FFA8A87DA87DA87DA87DFFFFFFA8A87D7D7DA87DFD34FFA87D %A87DA87D7DA8FD04FFA87DA87DA8FD08FFA8A87DA87DA87DA8FD04FFA8A8 %A87D7DFD0CFFA8FD17FFA8FFA8FD0EFFA8A87DA87DA87DA8FD05FFA87DA8 %7D7DA8FD07FF7DA87DA87DA8A8FD05FFA8A87DA87DA8A8FD14FFA8FD0DFF %A8FD10FFA8A87DA87DFD04A8FD04FFA87DA87DA87DFD07FFA8A87DA8A8FD %09FF7DA87D7D7DFD14FFA8FD17FFA8FD06FFA8A87DA87D7D7DA8FD05FFA8 %A8A87DA8A8FD07FFA8A87DA8A8FD07FFA8A87DA87DA87D7DA8FFFFA8FFFF %FFA8FD07FFA8FFFFFFA8FD0BFFA8FD0BFFA8FFA8FFA8FFFFFFA8A8FFA8FF %A8FD07FFA8FFA8FFA8FD07FFA8FFA8FFA8FFA8FD05FFA8A8A8FFA8FFA8FD %04FFFD04A87DA8A8FD05FFA8A87DA8A8A8FD08FFA8A87DA87DA8FD06FFA8 %A87DA87DA8A8FFFFA8A8A8FFA8FFA8FD07FFA8FFA8FD09FFA8FFA8FFA8FD %07FFA8FFA8FFA8FFA8FD04FFFD07A8FD07FFA8A87DA8FD08FFA8A87DA8A8 %FD07FFA8A87DA8A8A87DFD04FFA8FFA8FFA8FFA8FD05FFA8FFA8FFA8FD07 %FFA8FFA8FFA8FD09FFA8FD08FFFD04A87DA87DFD05FFFD04A87DA8FD07FF %A8A8A87DA8A8FD07FFA8A87DA8A8FD06FFA8FFA8FD09FFA8FFA8FFA8FFA8 %FD05FFA8FFA8FFA8FFA8FD05FFA8FFA8FFA8FFA8FD04FF7DFD04A8FD07FF %A8FFA8A87DA87DFD07FFA8A87DA87DFD07FFA8A87DA8A8FD06FFA8FFFFFF %A8FD07FFA8FFA8FFA8FD07FFA8FFA8FFA8FFA8FD07FFA8FFA8FFA8FD04FF %7DA8A8A87DA8A8FD07FF7DA87DA8FD07FFA8A8A87DA87DA8A8FD05FF7DA8 %7DA87DA8FFFFFFA8FD30FF7DA8A8A87DA87DFD05FFFD04A87DA87DFD20FF %A8FFA8FFA8FD07FFA8FFA8A8A8FD1BFF7DA8A8A8FFA8FD2AFF7DA87DA87D %A87DA8FD37FFA8FFA8FFA8FD09FFA8FD09FFA8FFA8FFA8FD05FFA87DA87D %FD08FFA87DA87DA87DA8A8FD05FFA8A87DA8A8FD07FFFD04A87D7DA8FD12 %FFA8FFFFFFA8FD09FFA8FD09FFA8FD08FFA8A87DA87DFD09FFA8A87DA87D %A8FD06FFA8A87D7D7DFD07FFA87D7DA8A8FD30FFA8FD04FFFD04A87DA8FD %07FFA8A8A87D7D7DA8FD06FFA8A87D7D7DFD07FFA87D7DA87DA8FD34FFA8 %A87DA87DA8A8FD06FFA87DA8FD047DA8FD05FFA8A87D7D7DA87DA8FD04FF %A8FD047DFD16FFA8FD0FFFA8FD0EFFA87D7DA87DA8FD07FFA87DA87D7D7D %A8FD06FF7DA87DA87DA8A8FD05FFFD04A87DA8FD15FFA8FFA8FD0BFFA8FD %10FFFD04A87DA8FD07FFA87DA8FD047DA8FD05FFA8A87DA8A8FD07FFA8A8 %7DA87DA8FD15FFA8FD15FFA8FD09FFA8A8A87DA8A8FD07FFA8A87DA87DA8 %A8FD05FFA8A87DA87DA8A8FD05FFA8A87DA87DA8A8FD04FFA8FFFFFFA8FD %0BFFA8FD0BFFA8FFA8FD07FFA8FFA8FFA8FD05FFA8A8FFA8FFA8FD06FFA8 %A8FFA8A8A8FFA8FD05FF7DFFA8A8A8FD12FFFD04A87DA8A8FD05FFFD04A8 %7DA87DA8FD05FFA8A8A87DA8FD41FFA8FFA8A8FF7DFD2AFF7DA87DA87D7D %7DA8A8FD28FFA8FD0BFFA8A8A8FFA8FFA8FFA8FD05FFA8FFA8FFA8FD07FF %A8FFA8FFA8FD05FFA8A8A87DFD04A8FD05FFA8A87DA8A8A87DA8A8FFFFFF %A8A87DA87DA87DFD05FFFD04A87DA87DA8FFFFFFA8FD0BFFA8FFFFFFA8FD %15FFA8FFA8FD06FFFD04A87DA87DFD06FFA87DA87DA87DA87DA8FD04FFA8 %A87DA87DA8A8FD05FFA8A87D7D7DA87DFD18FFA8FD1BFFFD05A87DA8FD05 %FFA87DA87DA87DA87D7DA8FFFFFFA8A87DA87DA8A8FD05FFA8A8A87D7DA8 %7DFD12FFA8FD1BFFA8FD04FFFD04A87DA8A8FD06FFA87DA87DA87DA87DA8 %FD04FFA8A87DA87DA8A8FD05FFA8A87D7D7DA8A8FD34FFA8A8A87DA87D7D %7DFD05FFA8A87DA87DA8A8FD05FFA8A87DA87DA87DA8FD05FFA87DA87DA8 %7DA8FD07FFA8FFA8FD07FFA8FFA8FFA8FD09FFA8FFFFFFA8FD07FFA8FFFF %FFA8FFFF7DFD04A8FF7DFD29FFA87DA87DA8A8A87DFD2AFFA8FFFFFFA8FD %07FFA8FFA8A8A8FFA8FD05FFA8FFA8FFA8FFA8FD05FFA8FFA8FFA8FFA8FD %04FFFD04A87DA8A8FD07FF7DA87DA87DA8A8FD04FFFD05A87DA8FD06FFA8 %A87DA87DA8FD05FFA8FFA8FD09FFA8FFA8FFA8FFA8FD07FFA8FFA8FFA8FD %07FFA8FFA8FFA8FD04FFFD05A8FD07FFFD08A8FD06FFA8A87DFD04A8FD05 %FFA8A87DA8A8A8FD05FFA8FFA8FD0BFFA8FFA8FD09FFA8FFA8FD09FFA8FF %A8FFA8FD04FF7DA8A8A87DFD07FFFD04A87DA87DFD06FFA8A8A87DA8FD08 %FFA8A87DFD04A8FD1CFFA8FD0BFFA8FD0AFF7DFD04A8FD07FFFD04A87DA8 %A8FD1EFFA8FFA8FD09FFA8FFA8FFA8FD1DFFFD04A8FD2CFF7DA87DA87DFD %30FFA8FD09FFA8FFA8FD09FFA8FFA8FFA8FD07FFA8FFA8FFA8FFA8FFFFFD %04A87DA8A8FD07FFA8A87DA8A8FD07FF7DA87DA87DA8FD06FFA8A8A87D7D %A87DA8FFFFFFA8FD05FFA8FD09FFA8FFA8FD09FFA8FD0BFFA8FFFFFFA8FF %FFA8A87DA8A8A87DA8FD05FFA87DA8FD047DA8FD05FF7DA87DA87DA87DA8 %FD04FFA8A8A87D7DA87D7D52A8FD11FFA8FD0BFFA8FD0BFFA8FD07FFA8A8 %A87DA87DFD06FFA87DA87D7D7DFD07FF7DA87D7D7DA8A8FD05FFA8A8A87D %7DA87DFD33FFA87D7DA87DA87D7D7DFD04FFA87DA8FD047DA8FD05FF7DA8 %7D7D7DA87DA8FD0DFFFF %%EndData endstream endobj 184 0 obj <>stream -H‰ìWévªJ}Q†"Æ¢€šh‚FMŒC4Ñh&‡÷ÿªP3Ý»ÖwãZçÇùÃjlì®®½k×îZÁéÛæ2xo4Û¨5Nä®´¼N†œ>Û$ªÀæÅIDzÁ£š|Ö8EœÞ ¢ÀU‘ûšmžÌød%æ´ìë廜Åiй€¿ÅN—¶ /‡5ø­ý.Në|DA>@ ³©N†ÓÓ„X†NÓ,>*1î:¬žËà 2IÝÙä•M=<-ö{ã§üR ©¢ÐY„V+´QñÁÄÇ}ŠØ-?DˆFÝ044 -Ë—ZºØiˆ¥Á^ãæR˜ëÎþˆmT²_÷S«mxnõ&uVq$ÎjwJÆÅõõõ·w¹Â|$Hx—îH6ž_+k<5K£MšL‰Â¸FΗbFê^[‚—„qG§cù–íËnRE6¬ŠhyE[ñ4Û°‡ínÁäTÖ¶­j[ лh.BøTå®ùïµ²^­dsޓőôËzm¨A4̳(ÈW‚0ךe4XV”ï â8Ìì¢/"ðùíZ²n5ô—?—¿õò‡âòp—“z+Èã©(lÅû5ž¬“Ì«Iõ¤•=-­Hæ%—Û ™ÊÕ/¬•’²O"fÏî:\Z–6HW.q”·°Ô¹ŽwÙIjþu]Àâ‚!–€£½±go丰_Küf¿aa–ºx3ãåZ^£Jåobwö€½¹@ì}gžËT¨ÙÅ‘93Nom¦T.#SOÝ“)˜¸N¸D3¿ -þÁ¯éb#‚ÏÌûò?T9í¤—0…ÑYä¤÷\ZšôÚÉé9@1tª(°ѺJNêgþ\'¯8Eï$Y„;ü\¦&éI´œŒ àùè=AK€FýõŒP‰ç´ÐäIlÄs…ò)ƒ'8¸iÞ–=WiµhÂyQ¦®P4›-­VZvlêÜ•cê̤'åÓg -<]ôÊiz9ñê…–bù'{wÈ4ŠjAóó~¹èÔ1Ë“,åãבl UUŒ"Xh v;YìЈÂTÊòø7ÞC¨W–Hy_CÞ™7Oòž™éûP˜)›¶cµLªVa—a•NÔ‹|ÅÑ'H¼×Á´°¦úQ’Õ|ÇéWÝ’Òì-®µ"ØÉE˜ªð$7„cÝ•WÓ†°Hý¶˜áÚÿ@‘£ˆY€ö4ë¨b¸`9;²˜&c9;²˜‘]<OÌ´_%Ç3ØËÙ‘ÅÌóÉG3¯¿YÌ`—=G³MäìÈb¶ïû‡b&NGƒè/ ÔËίh Wî<ÀñŠ&@ï=À÷ESFÿsÑ`oé{€Ã¢éÎÖ¢Èð™§OS\C ½’ZŸq­Ìêôñ%Ú²Ï,ù•Üm©è[+BÅgO6S*2z\¨ˆòj¨®K‘èMÁ« N!kúŠíˆßíw¢µäK#ÕŸ0^3ê]QÖýâ=M|ò Úµ–aRo¿åýÖR‰ô—hã&ï¶ëÖdÝÑ(X“3'#ígc×ãšù%ÿ3j§ýÅ\ï¦sµÆ‰Üõ¾^H<°¶ô‚GµýÅ?8NôÜtØå†‡¾ÏT]Ú"4¼ֈ´߽RYy7¨púyó—ÿùü²Wø¨_4Ò›(d»KíA…ùÐ5v#èûޱ…ÓQŸ˜{å8ôôîN -¯STŽf°ÔñX -™Ãe‘–¸ÅiV*ÞM„dÄ:³„ÙkJÃ:ö4m{v B-] -?ùRÑV?¯Eؾ³þ2»0Ä)È¢Aé1/žïð鳨ÃLë¶&>T)Åk`ÄV†.Yñá´“ƒô¸W²‘d„ŠZ€šSý²ö|[‚™´GŸâí;N%C¤‡ëß_¾œ@Iü°iØ œÅ!'„y·¦áæ7&+b_Z@C¶£&çRŠÓÙL·$8úì„€†æÓ0f óH GÖAw‚np‰G  q‹•Š…aW®ð[(LF.¯}߃2ŒoSe쓽_«¾ôV_0dú‡ÏUÈìÆÎ|þí‚y¾€ÑÂö(` øÂ£ôqûp,ÎØ±*–4,«v’ozIµ·/ß<^Ý.f¸‹ÉÏp:Î¥ŠœŽ€ÓF]Ns `ÑÊC‘,%Û@C*­`†ÚÂ|üXLFë{b«’ç>’ZýK :c®>‚•ÿC(øÆ‡þ1'¿²Ÿ>Áµÿ壨ëhoÌÄ!>ê{fÕ#¯ØØ¾´J ±±¤‹•Øխň¬{’âl¤]NÞ¼­°3sÛ Ðùû ¢ì~c&ïZ+ô6µEq`ßs©„‘¼¢‚#ˆe4õ‘hÿÐ›Ý ù*JzdDuѱž\Až}ŽŒ´×3Ž>¤«?ž´ýc³sQ¸YΟ¸ÜhOÊ=uès…QŒ8#k¾è’@ªzý–þû¤ÇNr4Ñ£D¾€TCÂ@p˲-]OuÒ©ªZêÈWJ£æ½s•×ö{)?W -ዞR..…r:‡ŸÈØfpƒ&2ö 8'z¿€(?¨æ!Ób@ò)o÷+–=¥¶È{ üFÖ‘ £A°? -ÖDƒ±=R´<‹î±:B—5$A¹k‰ú™1«,²Ë[ú^^Ç5DKÙä âkªÓ&•vô ‰'váTÌ:$úßÉR>xo -$«»³N"ˆüUV¤.’׬Q/ã=îh”±c0Œ”bÒ=2Ãj¼úä2™YRÌ523ûÅU2û>¸³zôÕ\%öÎwkÀ%°íû½Ìú¡ç=U’G¯¶pâ/ª-PR ¨QNt[€Œé5rÈÿÑ~ ©; “¼Yu//¼•»Ç]иM4¦@ÇÛ²Æcƒ‰˜Ðy—%U®š\Í|MŸ9êlJ ùÍI[~bW¡RKîݨʓï®Ôí]*óHqhÙ£‘„gé½A¥Š4}JŠ9C½÷±“ „W¦Ê´…qÓ+æÑÇ’ N3>߸ü qIoŽÿáòoÄe—&Òˆ Ǹ€§fN°,ή§:éTU-uä+¥Qó^À<Ëkj¿—òs¥¾è)…àâR(§sqø‰Œí3P'Ô®Nžú|pʪ!ÎÒÆ wìW ,{J©-ò^}"G‚Z›)„¥h*øÒ+Åì™w†Œí¢åYt%Ùu,àƒ‹Ê]KÔÏ||Çg³.Ë[ú^^Ç5DKÙä âkªÓ&•¶ÍÃ9ÞWß /~sø‡ù{Á™çc‰X$56n±V¬‰~>#—úþìs1ËN±ÌñP,wˆkñ§ùÂÅV8Žb!~痾ث()äZPNNH¿ „ˆÂÑSÞç?Øoê¡äu²±-õJÏC‚`ù*t«N諆Hß~hôbv4 -É;¦ˆIGFJwÈ)‚˜¨vüèÌ,ò•PÐFa\Fn–ó'.7Ú“rOzÅ\a+5Fü‰]ˆg ™ª^ÿ;!j%hG4!jRè§ ŠR‹@-êŸöR·©˜›ÃëÀꤽû9™Á.¨W]&3…éÌe2LJèÌe2³Ðw“Ì`Dg.“™‡Âtæ2™y¹LfhÃ˸GfâÚ\&3˜ûˆÎ\&3ì,NX—ÉŒìÂü”ÌrÔš&²©Ükei÷š2fj÷š3Œ®~Ô4³•ùï6‡²4€{MóÅÔî5 ê}C¸×4:ÃüIÓ´×ß¶3ê¡qE@%; + -ÀC½14®(P°NCó°ä¾Kf0‘†Æ2C5æ04®0ŒÓиBfê¡ù ™±ÿáòÇ¸ÐøŠp²×fÓ„ào}ÃÑÚ{좈³#¥µÓ|…)Ä1¦Ësùñ…©Ä¶oÌs£Ç0n)ã ‰ÈVl}Ëcu¡×„”®nnÄÉÆ[éâ©.ˆ\™”£¥i/mz±%ÅóåÜ$ŠÎû])´}?ðPŽGŠdÂÜy<“éÓ•†ÎÏ Y¾Þ>«`²†húm¨Ð}˜[¿Ä²Bõ–ÅŒ ¼9nIµù›M1úcàÃxž1 -ˆŽàdâº4¡¡²É8O þnS!Z -ñš8Þå¡ìU 2vŸ9$¤mp1ÂC6\ ŸXWyØ%›„c\ï¢þæ*‹–ƒ§q¨—×+ôw ‚ÇÌ€YÅÖkF 0Þ˜ --Tå+ÎC™l -wO¢¾¨ÿ|س:Ëfà­™÷šÆ\l>CðÉ‚ãåÅ/jöÍ=8K#¸iÀõ£ª—Ÿ: ð÷òJpn"0A5ôeH)J`ήœ;gC0_¹_zO}|VÁs¬âÑÚ[ƒ‘ŒÊoL(GO³•zÔŸk4<‚Lªý`L¨®6¨ˆšXÓ#È~9ïWpM áGYtÔÂÄk”þº ±;“¡ºÛ1áîtV´bÒ+Šq1¸êùúü6ê¡`³JûïÊÃ?­ÛѯZK†0#VxÚ”z² GD­pðÖ‹ ²€”ßR–®ñ ]‡%Úþ (Eï+nXX§-›[!mÒ~Aï ˜Ÿøålâ¤zaûy ¨_SÛÏCŽùO‰|f˜üñ‹œ2íãç e¿}«>ôÒÃ2øÕ:‡Gú‹Wî»ÐG¯x(kñLR_Ÿ?ýyÑuèV~쎱ŠFÛĉ¶*C=E ŸÉæÌ*<'Å‚8c`ò5ìGzÚ5Æ™ŒEÏ—G .Ô{+Ïó쪙N¤ºjæ¢+9M>0‰á¶Ü¶ådýÕ±E¤Y$ šKå&b`'îJ€6#ˆšÎKõì#%y“š°øÅåâuÿâòq)Íâ)È t+hãš~ò8…D7Yt®ÞVü3ö´p·Š‰‚º$ÊÆ¸ß[•rW>¼f¸ÑSá‚Ë¢Eª)¡ºos„h㆟tÌ)`âé·‘£*P¥åÚo3w5²sÿÓiæ*×ìósÇC¦Ñ¼sƾtg«/¤bü÷lÎØ.åoÄêƒ -KÃÈ”=ô)|*§î‚T› ®¯]ÓR¿7~ÉÎ#Nqè³FŒ0˜4áã¡ÇpÅV?$¨&²ÞL7uÄÛtM}_ô¦×/ÏÏ‹ÇLõů Ž]ŽÙª/ÇqÌ€@RÙ#3˜1¤3›ÉLß›ÉÌÐ{ÉlG_ŽCfÕ›vÏPEö¥ÈGtpŠéìsÐ1ÓØçöôå8àmý‹Ëßâ¢.ñÛV+ƒ~·±ò»$žisR­E˜ èêæ7XÜSÆfä€à'ù-«Æ&½”faOÙ¶¨âŽKÓÑÀ÷¯½ÖÇ*B@ñ<5²¬8K¸ÚEIœi·9e˜ëev_}d’ѲëÅÐväðe¸,Áݹe½qz‘‘e¯ ÊOYé||o&ÈŤôXe‚º€&vÖxé1ÖMCó3¨•<YŒcÜÀ­Y=xölS†Ÿ{¢ú•ÚKl¥‡èµ-JþÁ}{‡úú±ç!ñy©žÉ¥–Çí¸J¢üɑ̡;|7pÅä°7ÅÇÝøj*¼ø»]Ø»¡ºä»g¢íˆlY¸e!ÖMR,éý‟ÃYeØa -†©.à›ÀóÒôš©†PfœG±MZ~\ŒƒÒùÕ]vßzu pzÄ `yœ—<¾¿õí^sÈB›©ìœa¥‹ØûxËËKR+b¢',i¡œÃuIs.2:üîíNZ·0cŸŸàå•`H.É’,äÞÔÈ^ˆ3g8! ÒBQø4“Rò“й\è¯J'D -z‡³Z®ˆ³Ò}Q.‡.c²0P8íÜ@¡1„®‘–üîYœ}•8Ø~ñ»æÞàÇ̆l"ÑÊëÜŽv_/Ñ:È„(ñ3?ö‚¦^Mjîˆé.Ù¹%|%5a¼qõI(-†ÙòìÝšMÌSþ½Rv ñþßBŸ{…wÙ)%åÉWpû«òm!â^!pÊA)¼çÕâ24I€@–_|ñ±Ô9˜Ošx xÊêÕm0Ç%lm0|ª3Gl’ĤꡅÒÿV…Pz(Nà7¬½1< še•f¥˜£:ÅNå;üÖ`|çQ _—qä2$Åðî<}£³ô†z¸îD°·NÞðž×KÝ'ƒ]¢?)e?Bðœ'ÔáÚ)àÒç¥óõË9Â$ÃV¦—Tã²ÝÛÏ$s÷A=ÿ»ÎÞ¦'þ…þC ¿ Ô³•oŽ“nÈ$“oŽ“nÐó—oŽ“nÌ,ö‡|sœtƒûbä\>7¬³ÃOù‰šíÊ¿­6Ô:‹å2-.¾HÇ¥¶‹hæÝrp>žpù^Qkz£ª¼VRÁZPš:Ô )“¸>cDp§±'NbÕBtïô¦·¤/ÎæžÃï™ffÑ¡øeoOïÉÆ+üCwF° ÞRµ¢‘ -?˜0ùtHê9¤¦Žh4¡y©TçðýÆ8“±èùòâ(Á…zoåyþ‘]5Ó‰TW=a©C°„ºJ ·¥Ç=„°E¤YÄî%¾;qWܰIL’Ì ÌXõì#EeøÅåâuÿâòq)Í™½ÜyœÔ >ùÛÜyœÔ‰û.w'už°ÈòbÏíüñG§òoˆÿÔ‡6`™²‡>‡O¥ãfµÙàúÚ5-õ{ã—ì<⌠Íq¢Õ¡£jÂÇCክ ~HPMdmäJsD0hÔA7nÓ4·/©ðõ˳Ãó"O™›kVèM®%ÄOöÚÝ2ÁBéoîÓ'¬Ž†6R-h”Gë¨Ó•qš ƒÝ·D]]Ç]IšŽUHÁ¾j£ó¶ DùzqØÖryo„/ž°ÅBµ±î §ª¸–߇DÿݨšŸOHÚo¬µC¢8K6*Ê`~)‚ Ä)9}ÆNß­`Š’Ê/.?üSüÅåÇá"Vo>Øc‹ É•F¡¶‰ 苆"§ ÌØ,2f~±ˆÌZ>vÂÔýØîˆ=aÂ)[+f[ÂÇ ÞÒôÌö9ævë™ísÌÈ0†g¶Ï1Ÿ°[Ïl™á»žÙ>2}1=³}dFF÷Ì;dö¶þÅåoqQ—øÍXû ßm,ü.‰gÚœTkÙ0ººù t “+ØŽü$¿eŽØ¤—ÒL*ìX[TqÇ¥éhËÞÕëc! xžÙ@Vœ%\-[Ÿ—lâ„•B¹¾^h÷ÕG†!-»^ ªhGöOQ†Ëß]Ü8½ÈH²ƒW姬t>¾Ç·?ˆV“Òc• êFl¥³ÆK±nÚŸA­ä¹Ç¸ €Z³zðìÙ¦ ?öDõñ)Ý}`+=„zÌôŠìuðAß½–Å™P©H²l—v•Dñ“'¢/Í)C¾ ¸brØ›âãn|5ÐJãBÅIÀŸþ4XqÂ8 -u5¨á7`P¡À˥ܭh®+\sD§¹Õ=()î‘…6SAŸ¬_­Ô[]dáÔÎÏ#ÐÙuñì—g[êNÆ?4 @*Ò[€€t"x”"ؤ|ÿgv7 Årþšç:/|Ã¥$ìÎîÌÜ÷o⇖8¸@-2ŠWÖ8e„§àNÊ~xG2}ßÚ_›E¾Ÿ"+¢©•wÖÁ¾‡:úùÐRm·Ô[ª&Ðëe‘‹]¥„JœiBËMòJ·ê{(¢Z@­Šp;¥T«eþ~ÚÕ0æ M¾)çBÿÌEÁK³S¡¼Ù*"·Ú¤ål¡Ô’.·Þ¸Pñ6òB%v+âh-ï2ª¤¹Dè b¡Dí³"ºs£¡q>¨'›ô¦šôŽÑXcÉDóØ_rEY®‰¦Ü~(Ľâ«4sf“ú¬@Ð Ey±B9È6õòq à½S•üN(ÁOï$³û,b“\ö—w_:{þtÞò½WV晃¼ 7|çCY -Ãs¬1*þóñÀ#K%.¯‚œpüp¦ -@ 1w¬^âè·¨z¡_6 -×¶´Ýzd>h½!%€×õ:ÉgÕq­ŸÃÉ—Ô³¹:®Õsª¾À‚£¿À Èö™¢²iA´;Ƥ:ÖÁ%¶UM¾ÚÏEÁŽ‘ÛìÙîø¾0œ5(¢YOcérw•Ñac0Ql°Qšl£…4„3|Ù0Ôþ´Ë럞 Â|ªœà~¹TìÎ÷tF¸(ÛÒÆ½A.ï°šV¨õ"vL'¸TD×;È¿&Aýßêf½Vò÷èªü:õíÏ•à©ö©4zªòƒ‡ ú³ákg/Ô_1!Ò‡Tø3Lè¢>¦ÂŸaBÔ/Qáϰº®üïÒúaVy<¿yùóò·3Ôo^þOyy‰œ æ±kúásÕØr¤µl+wá¢ò•S÷8Z²´^§’Ó|ÚÖɧ½³¡¨F!ø ì¨ j[OÝ_(L°æØ5Œ\ßÏE‘3̼“?%ݺ#ÎE­ Õ"(—’?ÏQ;Í[:=E”ò˜‰WÝkxÐçlò¥$"¸~Ü »ˆ.å¯0¿è§Þ>(ÖHŸ_±7¹»Ð¶§ùØT<Ü xjÚ¸FEmþB¢QÎöIð°ùÃôj̧eþ~4cùK=AÂz¤Æ ëI7Ëe»t&‹L\ècÐ ò›P)ô4ѱüQEÜJéP=$Ì=ÊÎ -”XБ~A"„£_yW°ösQæŽãÜ]¸²Êv²Ï}’AõÂw¥Ø‹ŠÄ^ŸßÙè(öl¤Ã×fšzJZ9ç}Þ¸‚¾€*¹Ø¢Ñ©ƒF9ãÂòü$AŸ ¥§ü µédés…Œº6ªÀLE7ý?ƒ£ zqéTˆÚôÉÔŒ9•éq'‚² s¹¹Ã¼¹:JP_mÐ1Ô67 :‹Ù¦Ž5 T2j›ï6 ûqÓ¸(‹™ÿºix$­‘/3&X™#f4WÚÝ!bFÌo0³sÄì¢,fþ{bFÿò¿yùOye§d@Û¬¦º(]èÑ*ˆ²!“ä¶×õöÙñÇhY4¸–©héøÁPªæÀ&„Æ/pJð–ü[t³&ॲÈÅ®RB%Î4!ŠiX÷+%©¨TÌ@,šôBR‡rÉ&j»Wßߥ…·Ç gÙ{TA@µÕYá&vžAß   =¿L»™"Ú €~¡"}òH£Ò­*”§Õ‘¨ySKÁÏ6'©•w6°V&Ùo£µmÊÜ%uɤ«)œZR6û'?0¥Ô¡MÅâÕyNäjî"*û ¢‹¦¦¡ëÈÁо"l—á2%J¦v§'àìTÈŸfC”4fÏ£ðo8‰l«`o®I[ŵÄ}"—ëf-ñ„ï"ìR‰­*ðëjU?‹6b„ò Z€¼l‹ø;“Á9áé£f¾LówKÄÞûø»›° -9u°‰b¯¬=Ûá´@MÙ(\[÷)m÷lÿhÒKø`4½ ·Þ?-q²ä½m«²Êß'dºÐªò÷GÁŒ4–®â"×;R’³…D΃ç¾ã´4º8 £äý9Xr£…;#Üô|U´vXô?fÒîÖîT!ÖX€½Sƒ2Ö}º(r{OcG½È“+ÊT ~\¿{‡—€iæÌz 5—¨jE\4Â|2²á ä¥4.¾1ç+`†+©'˧¦Òòã@ Ø›ü»®ä>^On? $kn)F»|!É€Ag”X«g¡ÚR><¡ž- ÖÍí ebÞ„#Ê;¾zdâL?0FºnËsŠâÖ(G‡nÿЛqx¦ëæ$­îö_RÆ”d,ñf1ÓêL£ £²a[å…Ž>€¹ˆàÆÊxÎó¯ÔY=/X9ÄbÕ€º 'äìýuRà‹9Ž$Ïb$Æ(¤+žšâûB˜ßsd‘» -¿0^¸(<`8<^@ïï 4ÎŒXÇú‚Ãㅋ†Ãã…‹"¸ïìxoÌ>Ð82^¸(r ?1^xß/&ÀññBüÍË?™—ào^þɼðÈí#}à•úæäØÔ·?h:2ö¹(ýè?1öÙ‘|Ïü1õÙ(å?˜?_ëxYÌz¸„ùÜEW´b…]Dþh“ðwãëØí3ÓÕeIˆ‹Yui7w÷Ðö -oÝôä’Zj¶@I09|#z¿ °Xö ÷cîw’ê*õløræÕ38­%dá#X”ÇÜ ‘R¸6]ËÌIÉÙ\kOIÛÃbúS£¡´@³°­Í7´º²‰0¸ëd –óа©+ïÖ¸–G̳Küd†Â+¾±$bõ -l›~g¨‡·¥*¥­Pø/¡l[î $Ë—N D[n…“³P~̉¸7Žu–à)»qû÷ÙgN KˆRÚZ„XÛ%œ„³ÿºû£éC€×M¬‰Ê¬®)us]p€wƒ3˜Œ Î JdWºkÙNð»yö¹!ÞM¶Ø~At²¥½1 .AíÑ|ËW¡T¦3:¨oé hÓB±]¢ƒ¹pè`5Þ¡.›3´µÙÖ¶Û‚.†/ÂIõ«/CqÄ9" ;ªÄð–¶¾àl¸ÊË¥š/(ó‹X*œ›?¤%±TŒÞ 2Ýè’ÅH‡#? äo#&þK ÿMy’»\¯dá6Ú¥q£p`*Ô8‡Q8p—5ÎaŽ©Ç¾Õž‡Qž†¯`;J1*Ý3Fz ¦iš·¢åªj+®–ô\«ð«x^¡; _Òåå2“³|§[̲“+9OEá#8tÂ$§-Ò6sbz5†ð†}ɸ%66Î; L»ÅÊ$M[õÈt§ -¹ÏÉ®†à.S9Âg!³BWÙHBñ¡¡˜w^?E\ÒgzË=~G×}ý„Ë$cý ¯®êLÜð•¦W³FiñÌ’˜?礪}(B²Ú˜~ÕäýóÚµR¸ÉyÁ1dõËp‰,FÜäš•ÿÕ寬Kè_]þʺˆÈûªEŽeÖ¸—=KÚv.]7§¥›«ñSþY=R‘ÏŽ–Keu¼>é"¹_Ñ~½Å 8\]@EÕgA*èäA ¢ý ØÅéÚˆW¸V-½}ž:Ëu>çÚÕ¤)a5d^ëʹóˢÂÛ³Âü^”ñ”á}$÷òV[á«{°3ë8y%‰ãF¼iÃÆ=Ѽøx IÓqÄrô&âv“ÏFâ\Kõ‡…"¯rº®Õûê&¿`qðVn;sò§«F×+±Þe9¢kI+IÓ§) -ÌnÈíÅ£UŠï%—‰Ùk §§´È›¡½ï=?-ü~ê‚ -‹­iÿý Š}ÓI˜ãnô<˜s^P8ºΓvwšéE.r±› kÖïªCk‹8Ôâ—BjA1¤P`WßóV5j‚«L†š·CF…Pˆßî}uÜ9ìï¿äì¶hçŸC³“\£Ð½Ñ‹Ï¾‡\»{ m<»tæ…ÄC ›Û'lËSCj’f7%FqaÈ¡¬ü©(£‹QØ책/duœðzfP—ñÌ(ÆÀ,oÁ NA8ó̈N.m0ãÑìÅ f8ûúÐ0£sJ<3¨ ™Ç`fèä fž8rŠÙ@Þ9Šq¼ŒwNN±½ŒwN†b/ã“!Séê˜møJÏÀŒbmæ˜9¼ï3éQöñT}06 êd‡†bÈØx<4Èû06_‡&+WWÿêò÷Õ%sÔü8 b¦G3{§˜‰15³wŠxßÖÌÞ)f‚ü¦fv+æøGü€$C1ŽföŽdÈ]LÍìÉ@]lÍìÉPŒ£™7IF½6ŒF1ã¼XšÙ;ÅlúJ¢™½SÌè_,ÍìbL¶5óÅŒ?Åuùëê" ßìaÈN±½Œwä³½ŒwäO1Ž—ñŽü)Æñ2ÛäŸ{> ùã¼ý{LþCèßcò‡©Dú÷˜ü¡“‘þ¿!ÿ—õ¿ºü¿u‰¼á7k죡€54ò»$¦‡Ï$VׄY¥k‘o¨-ùºpU«a: - ˆ&E9“«ìЖ—îUIizÂE÷¶ŠVØY;΋óTدåk#·Ouù![¹5,‚¤2ñòñ“}õë)Êè­ÇV[/NÎsÒ£ìã”»ò,/UÇ·a¼K4-@‘õŒôX§£¦à# ytÁI‰Á¤?‡Ú’ó‡ýt@ƒªuë[{Ï?˰˜›íÓì¿b*Y=P£´ˆ^[7ˆ¿9´¯o¤“aÿÝ*ÉhdP,ŽÉŽH±eÄ ÔðqBŽñY.€»Àå"Ð"c 0Eôá{€ëÁž=Vî>ÛqØv³¨¨„Œbð³ðžyg'Ã/E–Dý. ‰Aô-[¶Ÿ&‹¿cyetIkêÖ_á“ÂóÎŒg¶¶„’Š×Œkq]G¥jãúÔõl~¤çM™È3¢“ÉÊ;5ì¿l©6Þ '— -¿D÷³£°/쿸ìnœ¬2Òt­'7£a-ܽ Ï(Ƶòœ}9‡o ݹ¿ôX˜É?üþ%™Ê=‹‚û—„~^BªÏýAv¤o—üÁ„á]~˜±¨4aÛC"r¥éj°(£`˜„‘XJb&Â…5þÚ»RŒ!°w¼Ú–Fè"”Õ-(zÁ(ÌTÓÁ\¸F õAæ[tÊÐL»ù[KÃaËöU_¤j”aŸ8¢$ “«D]ðÖ’ ŽìBä‚\ªù‚2¿ˆŽ…só‡´$– -‚qa¢ÌŒž&é°‚ZYLl±Ê^çdbòïôƒsº…þ»s¢˜]ÞéÐΉbvy§C;'à—ÞéÐÎ æe‡wúÉ9¥An‹Ê,é1hiÞŠ•«ª­¸ZÒs­Â¯ây…îÀ]éty¹Ì¤ÇÅ,ßé³ìäJÎÇSQø75¤mæJbÊtà8û’q/¾â—óÀ½ž¦Ýbe’¦­ -d]Sê*VCqU×®†à.S98v2+tU‘ -¹3Nåú)ò?öËs+u¦‹ãWÀEP’‰¤Ð¡CiÒ‹‰ GEAÊý¿{f’P,¯ç<²Öùà—¬˜½gþ»üö>0”Ù-{ŸûÚv´ 6©D:—®Š6©Pj[˜Žé¨Ô™’˜ãYnãAKGŒ¬è¯òáÔBü;½j Êè·"¦¿6g¨­WüÑåŸÔÅÿ£Ë?© ÆUÙjŽE/Ù›J+h}͆¶uϬ0Ù…ì–‘•Þ“õsÝɧ-¸Ü œ´Ö¡‹]\ÞžT4Ó]ƒ·;ƧeWì¬Ä^—'öX”ç™æÎó ¦uD-ѧvzÅÌU·;‘F»ÛtîAçELšCh·« E}5?5\±9Ø}ÜhóæÆž ÌŒ`Sß(x8ì.š”ÊEÙkmÒéçò>™Õ4µÒ‘û í -Ž·ŸÿBóÇV:¯ÔüùJËËbÇ¡$Ìg‡[þ_EÞ½‰ûÚÊ:6aÚÉq5¸ô%áßNfÕ¦ gyò‘­“Öç Nh©8J„æð™˜ù‚€ÙdK8±ç °Åp²¬f"£©×TpÐtªwO¯QPc(ÙjL©Î*k©Qæd"4c4üD!õ&Ï’;ÝUŽŒw ;Ï;0Ù…~‘©åZ#-¿pÝe­F5.ÓÝ}¾`o`mñå-ƒZG„QÓœ’,İ€(%î$iRÔ’ˆyrù‰Kžè ÿÕ¤qP8mΜ4ʲxΤÜGisæ¤!Æ÷ISM<ù¾JÌjÏÌç#fµgæó3Šd‹™ÏGÌ¸Ž™Ìü§Äœú2@³à|€öb3ÇÙÆf€ó€ƒÚ3À€O˜écæ Iã Nͳ$ƒ:4Ï’48’Í¿Nš:Ã|˜4êdÐüä¿tù/º¹ñ ™†´t@YÈ ÈÛÁ¾1™âé¬%£âÇË&WÞiSÕn·µðõÌ“4éa(î%‰TõTÿïÅŽ X6@ÂEþ÷}D Ðy]Û¡"Ü禠0]%MIô6(º‡Ýu²,œXQ²„\~† -sü)ZìïrQÇeP‹©†$ÜÇ$úµ¤4Q¦B}¨&ñÕP,&±žyÖ¤™Â•_(Õ5 A`n¿²©¾2z—¬ -tϼ^˜˜Ð{Ò‰´$lŽw 6.ãïí¯y±ð*”õ]€ÚɨÀŒ­ -Z±ƒJØ>ÝD})‰ÚJ“®S†ÇqC0^í†1i´¥¢¾äN¢ð)”?K0NeÅBnÈc&tPæ[wÀ «ÝÖ¾¸B;R¼"×qþ²ßU¬ì®¼ÀyFRG?–‡¶šrúî*¶º‚½¤Úå²™ñÚ˜áÅê Ƀ+òLJ=#rôn §3­Æ-‚×°äÚî/@Jæ}pi·ºlÀ£¨¥Óh+¦ãHKƒ`õäÝsF¼û%\ÁQJ±  b1¢`¿AgW¹ØmR¸R˜:ä‹î2Ẫ -ÃÂS; ÿá"’wþX’Ô‹l8@«q0æ…=ÞÜ!&fìRwmÞÕf!\ÌŠjq@è¨Ua+µ5žyÈÉÄŠÚWÔÀ8óp²Î@„­SÏ٦ЀT_¢ß‰85QÚ·Nq…ØòsWžäÕçŽyö…O¹Ä¹ÿ¹+‰íÿq$«o?wÑøãÌûþ ö™@¤í^Þ¹,QÔÌt³€§§è®²P2ziç$d%ÎÌÔlmEÛÑ•YQ· C£Ypß~À4óv ƒéTn;}×®_ -MDs§¯ðZtr•^ÁéÊe\¨ -DŽÓùãqÎül2¸“ÂáËèPݬ5©Õ¡ò›(ãùQ!û&9– U/àLF¬PÚ>–`Î{aãé%)ÌÙÞp}ËÍ—ýNOª©0Ÿ8ú7Sç6rа—úÚñ1B#@#Nþ¡¿ A—ú×äOæÎï5Ta>›;¿Ô}Ÿ;ÿ ûÜË.ÿ .GƒÍ.ÿŒ.……sþ@è1UËÈò¼{÷µ•ulþ´µ¸\’Vάڴ“ûýØ‚¦Ù:i}rÒ¡¥vÐIAE‹Š§Ý_Ðܹǰ'¼g/œl«™Èhê%™4êÝÓk”J™çey“¹êv'0>¬²¹Þ(søƒƒBŸt3ÐŒŽ<s ¹ƒñƒ#–î>stream -H‰ìWévªJ}&Af£‚‚&çDÍà1šhÞÿV78ä$çÜû}kµÎó›n쮪½«jw!c{Ê@µ«œ¥ðI™›{•Ì,•Ê\ÕÅÙ™œSØ¢÷À™zk¦ü·{™oßÁ'ëu þ!j>FûRas C¥T»,ÎFÃ’ÌO³†\R¾Ì_Œ}yxN%QhͪL©8lØx$£Õµ$1‚iÎÌ®Hm£l*ðêÎ¥1ÅsœY£ÞT«Mì"$ÞB*jgÝŒDIä* |Y[ʱ¼.ÿ—si2ì3œõ²UãÂR«{¯ghr¡[Õ2õ …3GÊòhH„üÎ…ÎÖÄ£)ßÂÿ«!›£!àËw¦Xòåæ×1Q­ÖVýÖ's¤1}J~Ç8å0†‡¶4Wlf…¶e¸ÂM§˜¿º½½“Ÿø²ÔÒ²ÿ(ðÒ3ýÁ‹³nÕTØÝX“yú…Ånÿ…SÚFãÈê^ˆß,Õ&‡þ÷'Îzóö rë¸=¯Û‹v¾Gž±ðqsõAÀµK ï!ûlˆÚUh3êÂ’¿.u¸‘í2âËÄ=— ÷y…7Æ™fÄÛ†Ÿø,ڥƕ“_žGa*ò>è#—$qøÁãòņ/•ØILýæã§†~13Ûø@û!Û¼Ýãâ -;¾j Æœé_QðïîZšÔJ·Œ¤Ø®¾÷C¤RX+—Fû¤l}[;Ÿø½Ñ«½0Î IìÌÏÖke3$øþ¸!áç©GP^[GIPËÆö@XÇrºSkwðÊ» q­µŽŽ+l½œýzž1Í7wç³Bo\“p¾´äŸÊÃî1ç̆¢,‰Ý¡–[–7haÁڦ…Q5ŽâÁûä;¼¶ÅÐñQG’&#-›>h­{n@Ä”E“,ð)¶î nºŽË¬ç*7ÆÁZ œz^1¦ºîÁS%L®àµ¼Y¯5w†‚Å"9`ÞP…Ñš¢83%¥¿(‹€AŸG†Æ÷ÝoÄJóƒÄù‰Ù&M^', -p´V’ųM†k§×Ówºíe -Ú’Ë6/½jS——×qî&·5œ8úÒ;1Q$Èd qRØ0Ã'[Òwç%̶vO>Œ™"Øk…§ùG -иSh TëfeïÑ(ó'0)á æB€PáÞeƒÑ0Zá±Ï*uó–Ç´ˆˆ {!LcùªÓzðÜEô)ßhÝÓ…QU•Ðçí«†m\lC5Ò“GöÙyÑ·7^Œ5ÓÉ›x´â *dꤿÖhÍÏâî?5Ô+1Wÿ­ùsÒ³å@áE…@'ëV|¶5ÑÎ^8ù6•~Ï¥¥›s,sq£ɋјÂŠKiòV±ôk]šDµÝÑЀ örã ˜œù‚ -Nò¶ôÍyç%yµŠùVþý6@о‹=z}öîJaŸ:³=-í +ùt€)BRwȽ÷!¸•`T§Ï¦3V˜½¸+3T¢÷V\¸Ï䦕ËX-Õ‘ÎN€RÍäÔù¹w…è#Є(IqJ¡¾¿D*9¦Kpj·xÀ˜‡Í Ö+Æï/. .`÷_\þ@\üñ6èû¨ýÿææ¸ öÿ››?Ü^÷·¨ßØü1ú{®þ6QöJ[¢Ñ>íuÞ'¼’Älwm=fÒ0!xõÃ(áP8Dc÷X9.Æ=«{·§!*Ñii2ì‹H80§›*¼!fÚ°U[œeT*SðÅ™W–ŸÎChhgÇd0SÅó×}¡¸1~~¨g2Ïx±Ó9Þ"U꺗ùéÁý%\B&ɇjÈׇ¶ Ú–©ßo o÷2ß¾Ò¬×- ’˜}¹šSó+¡RªˆôXGSN‹²¿ZYòÓ]ʇ†TCz˜~ŸÈg—Ä™éyÒCê2ÿ¸ÉKÏL¢ØÙ -›ÃÞ…”˜ tÖ‚’Ýõ(b5ê ú9±ÃéÜ©9º£ÆS[¢qíC[|Vã0§:áƒÛ Ź8©¥f—_†ÑêWAø²ÛfW䱪/üÒî_ I®Q¯ü¥)ã®më¹òKCD\ù¿7Å\1ãV.¨&¿yÔho_ÇdfÃ*²ŸÉŒá - -·¤ [[ùàÆ*<ñ)¨íßø~—ѯ] šˆÑ&¸z´Dðý§)ô^ñ® ®Çä`bÜ%ȉÁ³¹&uòQTÌ’Ÿió‹,hMW~ˆ’A.€ ˆ]x#ì̹à#ßþHÙdê×1ˆÓ+]n_/2„#· z“ݹ[S âè=Bûû/†ZùÿÐÈ·IŒ>Ð+ð`D®q`ãÄÞ×HöÒ¨§ ßË×;÷ªD4¡Àg‹ëµ™¹×l¹3îÉv*£Ã#Þý¤™7\_qMF²ToØÏíWïàzJ¡Í¨ûãy9zÒrKã,±—Èyϱ–r"w¡0ϱÜžÜò§J¸˜МŠà^IT¦ûTUBŸ·¯Ú±¦'ÿ°_¦[©+A~!„9až„@@fPPpQ†÷¿UŽW]çØkùÃ?,%!ÕéêÚûÛ7ž…üÞõ¯'“Œö'ue\gtG†cˆŽLÖ#¬F½Ú¿·syk±ÃŒcV¸q•‚ êÕN]PGòÁFëÐÎíƒîò™K¾šJà]þ!—|5•ؘÉ%_M%ª‹ým.ùj*Á3ðÛ—ØX÷o_~`_ÀÖþ2/~5-‚ZþC^üjZ´1ÿ’¿š5Ñó¢ðb¾o3à1g|@P é Sv«ÏñdO“Æjóá]Ë9/†Ó§ü2æˆ!æ86q;AÀê"v í.¥ÆVÛ™„8ri‰‰© –¸g èš/)zÚµôŸõb÷¹ó½ó±8œµxìŸà+ö/ˤâhsªõb0daéFy²‹ëmjÔFxsQ úiÓ6azÉóó©ÇŽ$k\ž3EÜÓVÆý\ðÅ<ŠR¬÷c‡ó¢ž§ºø pÜíßÚv³‘ -„ Éö§s&Þ.k@à­— MvìzËÕÏßzCƒU‡P8c86”‡ÆÆhé€êÐØ™ßâôˆ™$ ™é³1™™1Ì 5bFNÖ™Ó¦HEÌ0‹é~GO̰ -Èe1³ø E13ˆÆÞèo_~\_øÅÍ)O…˜‰‹é’J˜I™é3Ð…ÁÌôˆ4Ù`f_ÆÑz£bþà•I¥eþ¸c:3Ó3c23=óÇÙ×™™1ãì*bfäªbéÕ`fzbFHIcf"f‚ÿ&ün1#U´™¦'f6F×,šbUPÎ(‹™ÆÉb–b¾›˜59<"ßNÌPÅì5b¶1&3Ó#fÓ÷zÄlcL6£'fè•:›Ñ3c²=1ƒw1ØŒ™aJÒÙŒž˜a®ÔÙŒž˜A_ 6£'fèû:›YÅ ÖýÛ—¿ìK‹e¥­ä蘒6ŸÜJš\MÅµà•¯†¸Ú¡9aZë&¼ÞĤ ¥¤Ì«{ÖÃ}jÊÑŒ´çÎŒÆuÃPÙÜ¢hc’M“_[O<6ä²ÇÜÂI ål' Ê÷š¹ŠùQ˜|UÕ'6}¹ÅÃpa•ŠñºtT%™ïôáȵ\«£ ñò`/6æç×RK‰ü"áMæÍŒ8NÎB*£[pp"!zœ÷yM˜KÕ _i) -¹|\t´º­èÎÇuCÓ»Ë牞’ÔcsøB'z¿èÞÅ Ó›§âqe6ë-Áù,ýîE&ÄìÏ"0 -LØ—õøO`ÇÆö4|ÂI6äªß‡á­§rÅ. -v3ˆâ|­¢¨÷®&½‚_îåL˃ïb _M¼VáɵšÁÉÊ-ËWµ"Ø•ÈwóÃAóç1T<+ÆÍ.Øy_̪Øä»E4«.êjQû¢YmÇ, 8,¥–¯ºWÕÃ*,¿ïëB¡±ê6ŽŸ7ß)É£*Ÿ½úÁº™”8ö\ž­ÛømŒa"ô}eÿòŵÅZ -‡«ÂW…mß>kH¤a…ÍÓP®‘¯û²¢G|Ïr¸{Sr5ªgÜc©)#?\àß_ !O ‚¿÷Tß„#BIè”à9+)äòFàƒ™²‡ïÔž ³HE(޶%àÄ {t@l ô ¹áywõ© š~eL©Gñô‘ „ÕÚ÷ä0ö-ÙPy œpk@$¡@:¬à•¿9÷«ÈJT¾¸ O•Ç™KxùÚ‡´V]š ´N«×°-\@UþÒMÐÏ/Ø7¿®ü*$ÁÏ>x4SÃ_«¨Ùäëÿ]hÿA86›4—Ëë2á ¨RÎW0@‰g¹r¤[QâöåJUåÜ]{Ýf¤F¡mšG&^v>}ÌLê…™‹#,à&ENrýEK:͹We&6}îÅ›<êsT *¥AågqÑko@\ 7üú­%´¿ ¼^ô“UðøÒB¿Tÿ@»Öú£D.ñó§¹q)huMαMùzÉMâþ…í)©¢´ö¥;‘;ûÚsÙýO]»³ÝÙ]“{HDáµbÉj*ƒ#…ÔAD ©HxjkÕWïòïÕ‹dzR#ÍÜZhžÛ‹wÏoqÀÁ+Ñ@ãP¶ÿš'§rZó[²‘J«ÓNPEÅë‚GýkrR÷“w¹ú«œATü2xïÍ5åîH),Oîrî5[œN/̈jcTšÃ°JÓa,Â-‚dwjx¦wRÅݬ°Á&ÆMBZH{> ªKrÆç2•î“ê{9ÕÆ|wR}/§Ú˜ïNªïåTóÝIõ½œ -Ž Š.þöåÇõåw^~h_0¡nœU¤S5yÐ š™.ÒK'ä\Ï•|9Mò}'ñ3t¶rx9…ø…Îî‹KÂN̆a~~"íM$‚ -Ž ð.£|:TÁ模úð Ç¿So,?D«¯¹nîå9.毼7Ê­çª*zî.IšÄ†I¾‚ŸÙÛÅ]>; Ùè~é" ´B[F½àôW¿€N—Ú„‚ºüc¾Ld(p“”+2\•—…³íž¦²—R®zÉ;,þ‚´S crtýÁ=ßaþÈ0Ž”GEmd‚/ù@àæy}µžJ¬•”\[¾*TÏìç€9éòf“I#ew Y÷l(äã©0|Ët¯Ð‘!’i{¢Í @þI1^2®óØA½SvÞ-œÍÒv½—‚Rë1ì†Hº¡öx˜ßè†ßr©PNñ» Ö¡á™ nBá®)jï¼{’Ìc‘œßxòCx×W¼žL2ڜԕq‰Ì‹ºéü0ºh-1Étk±جÎnÌ -D®RPô̪ŒAý¼ 6d¢qÇvnf#–ÞÐ@Â!t‡Θ¥´†S’®iô†FõìÖÒN˜q*uf¦GÌ6ÆdfzÄlzÄ ‰OgfŽž˜‘î«~GQÌ ñ¡œQ3Ã_¨Š™–øPÌ"¿}ù‘}áp~cTˆ]L—TzÄŒUtf¦ĠþB‹˜QùufæégóÇ*†¤R3REcfzæ)Igfzæ³o03=b¯<8"tÄLÏ/tÅ ªÌLOÌÈÓ˜™1±M*CcæšCUƒ&•¡ÑxÌ24Y¡²ýíËÏë NÖo_~`_`Ý¿}ù˾´XVÚJþŽ8Á$ÍF¦âZðÊWC\íÐÄ8­u“N^obR$µ1™W÷¬‡ûÔ0ð´iÏ-ŸCes‹¢I6­þÚr"à±!—=ÞàLJ(g;IÑã\e?ky‘Íòg*óÃßéË-‡ +Ž×¥£*É|§G®åZ]ˆ—{Y˜œä8îa-%±”È/î ÷8hBJÇÉYˆŸ±W2qq®N$`)÷yþKÕ _i)ŠOxå㢣ÕmE'8>‹^‚Ó úòy¢6Vݱã7:ÔûE—~1äÚŒj𜤶ˆ-†²ýnŸØGaÚÁ»\Ç}Y‘Ù‰ã { þ½ø²ž$ ïRL®ÈVGázØùûUº•8DŸ€‡@ •}'!€l²/Š «("¾ÿWÝÙ€ÇÑsrÎ÷cþpb'vW×­{ë·â¢0>‘!xï<‰TmÒ¯¡U‘²MÇJîgxª½°ŸänÞOqƒ½°V‹N ®E=‰°h °CÈ]0¬f"Æêº¡3Yx¸•¼æ­ÏÁŠ.žñª¾Ë5§HÕûËõ€OLÐÈV¥ññØÃhHG¡ÿf2~‘ê7£ky¶Øªf T/[;ûÍBÜMã>|}Êõ5?9%CBÜ£äÙÅQ>5$ÿò»@ÿrÁ´¬yÑ(Ü\ñ€ŸßUÊbn3®@íoC<T„¤îE89Ãnf]oÀqÞàp¦Â"9ßÃü"ÐÙpT¤ -ý6|´(#,%(Vœ/¾yÊh³Wñ6®_óˆÂKùŒ:¸}E>’nj˟C‘Þ¾ -ä”~ûs x~™ñ %øe Ù?‚§×ÛýWÑÛ/_~Ò{ýô˜’ô†‡/÷¹ÿ2wÅÉñwŸhšl~4{ÿlŸî éXqð9-.~¤W­ÅL^ÈX¡7(å*ýþ=dž hÂ]|2ÜÊóÆ`áF“šÄ3ž'£¡ý7p±eö¸Ãg/š÷Ïg¬ã1ÅæòÓZ_Æ6-å…‘<¾a«yz·ªÂŸµ¹ÚÉ”'jÌíìäæ-ºGJu¥iÉ¿Á¡s×£ŸbùíÕ‚bq?÷êMDHŸ!KŸæz<©¶}Bk$Õ¼G1åã™x9&øˆz þ­Îàšv ª®Æõú68ÊNÄjù¿Šþ7홃¼2h¿Ø³Û§f~Á-Ÿ—42<Áó¾ÇºÞ“þnâ_¿xºj² ½úS­ðá9t)‚yzC¸•ȉ ×!‚ -½ª(á|âEZ‹f[vã¼%5¦á«]¼Ãýî¼pº+Õs‘ñ‹“ÔrÔ& -óí[ ,ÝÛ¿VßQÉM¡Ýòòæ‘å9vVe̺ߜµ°ýDíF¡µ§GgÁw©Þ>gz¢–ƒÌï‚k_®!wƪ²sÎs­Î½§0 dûZ´†GËcœ‘Ëȼ~q”¢ X¹uƒe ‰ +ÔX†ÿ„i}Ú€ÕÞÎÇnA-(wl‰bj+yµ}èL6aF›nÝËâx4{Î(r®ãQx$˜ÉáÂLæ#‚R»!ôÃA<ÑÓU‰ Æ7Ml›Bë’ݬ¦~=/ºÎµ?Ü›ÂhqËa¾txS¦Âøã!«£1|”ÎÐ(=žbL€„æ½f]VOÁlÀ£”°éX²Êº˜°k“&F7Õio(+þ(­ª…Z/zn› "A–‡Ê5$úŸÕ÷ãQR6(Y~œüË^)µYv“n•…É®Ê -ùÁ„A kÿŽº¡ð—ÿ.ÿøò?ÅeõåÀ­9ƒšãÐ4yØZSY¸›ŠË¹.•xÉ&¸ž÷3ÔÙJ¡ÝlA9HÜÞý1‰? ™P=Ä-Ò‡Õ±¤¢ÙVFâéÒú GsZv¹ßœ7•Ÿ"•C®“{ék9&äï|ꄾ«ô|°Ñ&BLò+ ù¡zKå² d"sãE? šÒ”‘eí³ÆÅû<5±gò?"ôã€Â>&©ðh_Ú)+ò½“MfR®2à\çàU˜_Šeùß¿mþ¸ÆŠ»¯š¿+IkNP32!Þ‹^øAà–y-ÄJßD›±hQÍ5å;¥R&Ú`sR¥ã1š.»£d¼‹Ÿ%Cð^êÝ£ié9ÑùBšÓTSK¹îÇ.ÎËz–¥¼H¨Wjxµ Ô¢ á °•[ æ¦R - ý ŽÐ¨Ìk)Pæ A¿óéY±‚SB…‘X>Ð+ù)tê©>:ˆôΚ:­‘±3¾hÑHíË¡B‡Ä2§ïÄØ£@²Zo(ùQs²À†ˆ*az­´Ð˜4*fxÔ9}òúyæ ÿ”4àùml&ƒÄ´±™4¸’qaØI¤c†ÀMò‡¤q˜66“X‰hc3i@-ÍÂøièo‘N9›"¾&ÍÏœÂÅðö9à‹éìsH-ÍQÊ6 £oÖª=ÀAZÀ>1s–°OÌ`z5=€}bf ÿ 1û€»˜À>1s–°OÌgÀ>€N1<Àߊ·|œx¾EÜ+ϳ-¤»4ζ2viœm!v -óMÒÜö^8Îdñ nù¼DêÏ„—g]ïI7qŒ¯_<]¨ädAzõ§Zá'ÂsèRóôÜ!ÜJäDPkè4¡WõLuµñÜɸt¾ p䀯e(v‡»:ÏAâÃé®TÏEÆ ¯ÞŽFm¢0ß¾ÅË;Ál-S1Ó;äÖReÎzŽVh³VPk7…{…Öž5P|k‘êísf—kåwÁµ/×;cUÙ9ç¹VçÞS˜²}‹/8Ø›AO‹þb\%:n W2ª}£V3ü‡ LëÓnB:U¶Î ’;î KÌÀ)]4¶ˆ™ƒ¼hl3¨äËÆ1ÃÊ>Ðü­˜‰îØ6ò·ÎÌAZÞÌ>gS’éÍìsf€‹éÍìsf¨¿Þì[ÎŒ­µßÈ¿3‰åÌf1ƒ»˜'Ú'fË™ÍbÉÙOÄ,vøø‡Ëÿ—ýé.?ÅEzEO†· =†XñŽM wG{fä ðšæSú«·„Ò!Cã](V·‹/F™¡Ù úç”= ä§Yx{ë?›’`[ -‹ä|Ÿèl8*R…f›Ý0r‘[ñΡè`ÀÅŽ•ÜÏFgïE¯O¦¯E8`ðŽ_§h¯|•Ú‘&¥už»™= û§YMs«Òî®:Í­âƒ,¤?‡< M‰á)jÚÕ¡€¾°ù(ÁçÞ˜^@ÈžB2½ØáêÐ"‹üË BOm‹ìÓÊ›©;Ên†4ô}°%3¼#j²²0¥Qp\|ÄŸ¡t5úË[þdœ¨ÝD`t!?šu¡zIAùÌ¢ú۹Š*}ð.†&.êÄÃ3ñAZCÚX£ ¨H^˜ö‰‚aík/°F&Q4YmÍô0pLRúìãZtBN©q¾X]F¹›Á,r±6‰ƒ¥©'M!¡Â%:y¦G”xÊovdòHú^ºX+pÜJ!ÂW' ±S¿89Ц×JüPTW«VbYpä -^Ó(gø#Ë£õâ½ZÓ_讜’èNn cuœo¾”i%øy™Ëó0”¡æ·!~¶îÆ¥ì)¥`Û-Ÿæ*rdŒ-9œ¼ªžé>ß Oâ¼›ŠÃ˜5Nˆ”/\‚Éb“NÁ¶™rŒŸ·Ä<·ª.4ž#êJZuøúûUº•:³DŸ  ‰0ÏF‘I@Á£"“¨¨Èðþ·º;!Á=7k}?Î$MwuíÚ»v5Ð7pT-ö .Nï°@=µ -v°õ‚ܨ‚5m@ü-Ř’ã–4g™@âÐÌÒÖ7Ò᪶¹Æz|+l›Z1Ö\ oËâGØÆÿi(f ‘õ7d¼úú£@([(H‰ƒ_çííûf t@ÿ›%Pc‡‹Ð]„¯÷âL¾Yr˜;ä`ß/Br-}½¨Î@þfÉÕf¬à%PÉŸ-BŠúá>¸qG~ÇíCæÀ]ЫôŠO®È¸cÎ wR@Z¼h ¥|- -òœ{°Â"}Õ[ð¸6ÈIËׄŽÕ5­}ãUÛªk`[¯SR.?:=/èÃÒ +Uòê°pU“êy~9¯ÃÏÙ#¼”óÅ pÆh ½m®ú£Ù&ôG‹/ÆD(J›Ð+näÅ”•XTY^sº;}6&ÑæÌGæS.uæCKx² é©å”4¾S}tîl&½êqãÛ~š÷âéýuó–e³ý4Ll_0ΨÆÌQ1ÈL¹*ˆOwñ ôj³À“ªËÅÑ6ïÉ£GlÞ“G1ŽØ¼7&ÐwÂ~¿1ßýcí÷ #$™ÕäÂûð™lbk>´myfå«áø!¿Œº£ÈÁ¹)f½V7·´p3íÂÇdH³¥^}ÈOt{Ð!§(AƒîT‘¹“@uo(¨|ù„…å6HôÕ¸üçpùÇ—ÿ(.óë¬ fÃ%×G4yЭ‰6ÜKÅ ¹›xÎ&ä¾÷3ŠA½­Zާ,îìþ˜¦lÕL¨’g.mgõ@"¨à˜ H<ݤ¿ pˆ‰ }xГ?8oD1…Eäd•ëæžÏQGŽ©ùKßu醿hVa$f×ü¼°mû%ŸNDú×iitÊÄl|!Ñhg‡Ó‰åK7ô§Cª:¯è”ÛרݱeQå§'4cˆfÅ Ö§·^¿"¬ -?# vg+‡I:†hã0ið,æ& 9Eø1i˜‘†b0m& Å% dŒÜúפá V˜Îë/HógF1–pÎPŒåœs€ËÞ8玙À9@1–pNÌ(ÆòΉÒdÓ8'f†òÿNÌŽvБ÷À91CwÙ˧cb -³÷Î9б<ÀÅL" BGˆżh3Šy3Ð8"fHaGÄ M|ÍÄL:={edÙ+J¸”äÙà q¨+ÚbU$7œ’ô÷ëøÝ3×+%‹Ú‹?Õ /hnÕciañÐ¥=zdK³·wNè¥d ”wYÀ91ø‚­ðuÌKve|dl">/œîi\äjê5žÑÅÉãk иT÷hŒ‚™þ*o¢Ql0uwD‚PñÎNI¹u -øÖA¶ÿ”Ûb'¿ï|¹f¡{UÒ—®I®ÓýÃÇì¹Å ì­<£oÍHŒ‹÷QŠ LcRî†dšŸQvª:jŒš5ƒ*.‘„ä‰Í¤#ÄÌtJΊÖä/脘QÌ›Æ1Cè 4?3 UIôk1³œ’“bF1ï½àÿ_Ì3½™sb†ÔÒôf¿ufðSú‡Ë¯pmÇEC“Á¨Y¤¡ʲ`DkZ:„F€FµaÀÈ«´í -þX{JÇ*žS7Z›«3ÿ„$±Â ÛjÕäe£ËµA=~;ž, -Jyá©ïùÓ-öI̓›Pä;ýÆá)m|<ÅN¼:A@µ¹¼<_dÑ3”¡ï²4WFÎ%€þ‘GêäRo*wy¹6®ˆDÍZ¥4ümN¯¼ÓÞÙ†~ím³± ë2©K.SOchIÙÞ òÀUÒªòOA=˜K[ØŸˆr­U*¡t`G_è¥ýéÊ™]5 icÀví·:Ò’€ä Ÿàä¹âÒ —ôCð“Ù©7»H}ª·&×0n#\ð÷Ò §ñ‹4ôoeÿŒ•óH^ÓEÓÕŸ>Ã3&©Žø‹,y¶Wb8/Á#©OÛŸFÇ!¨äZóOøàé,*×.Æ‘ƒg7qæFrßsájî KútõW§Ü»•¤\Ûlã -zr×…Œ¡Ñ õ’gûG‹}yÿŒ+lÚz!é*2“§ŒÊgÃÑ [¬œJ÷¡fQ©„ëqyî½Î(åú´Š©žŸïÐ¥ÂøÊ}p@(ØX§_©d: e"ú -ʤ“¬=q%ªT²\Eå/‹ 8JªÞ»ëœª?…5·Åx“¸­Â¬<»½9ìªH“›3¸ 6ÌÒfˆ5¡äškl01Ïa«c €ÅtU2¬„{Ñ;0:"Ú§UØ× ‡òU ÚëwlÓ¯XǾɱòe Ò·ð^씾YÄ¿ä›;cËû¿ßGø~IàÓ% cæ"ñÓE¸v~Sñ`h±cÄ«ð–þ¢šða£Žô·ˆdTÙº2å“+£hBçãØš>ƒh²J¦íÑþ¶«ŠºýíO?ê´ –ÊÆÏ¶+ƒ¼À€öOÄí*ä\È$DÞu»Cƒv¦b÷É+íŒÃ†ÒE¥äæMoÒz1ü-ز¤œ Ã>whhú­+^®mj¨a(Œì‹Ñ&..×àaL{ÒT^ÒÖým^öË@˜J0.Í%ÛÈsɱS °ò/æ’c§|—_Ï%ÇN%ó7sɱS‰éaÞÏ%~ÄJÔË%œ²"¤rЭhýT¼ë±‰çlBî{°+¥M¨ZŽÁ: Kƒ®?¦)[è/™P#$Ï\ÚÎ -””";ʉQyŒá‘ôžüÁy£Â"r²ÊusÏç¿ü¥ï2vÃ_ž¨üäâÞD£«ÙÑÈD&{˜$íRâsÉLÁ98ªr›EwÍrÆe1 èÒm’¥˜ðð©²Ôç̦›Mf.4ËÆ‰f­nð!”¢W›ƒ=œ‚Ì”«RLu£·©˜«Í[vÀj <ÿÃå?ˆ Äý—ÿ±_[©sAô xÀ$)$z ¡*H÷"‚ ¢(-¼ÿ7ç¤býnÉZþð+sæÌž={Ï7ÄD 5ü‚›?ΑgjG³-Ïú÷©P'¹K,^¨Žš*‰k]Ü©M‡ô2mùàâ%' ÉKJkÕ¡zK¥®‹¸yú‚À±­ìǽ·ßi¦#žçc£Y@Wdzxåõ¥»§m°¼òÏëú>ÖëÝ‚%ßðˆÇ±Ó:c½˜…6máºc°×ѯ&¾£ë,Ù}ÎÛcdaY=Dþ¢Ø©ÊÊw—oµQ¥i8׳õÇkó/ëûÛ╌äÿñŸ‡!ÆrÔ42•€¾Í%­h ’vy2/†ÓÇÂJöËÈæøw;a?A¶ª\Öá¢v$ôÃA<²öªD2ñr¿ ’x ,ж)ÐÍzúí~ò"u8Y–†³Káǃý -FCnrƒ‰è@£2Ñâ&Laˆ`>ö·ÖHÁ´Ïqó©x -ËŽDGY«+ÐgâtS½íŠJH¦UµÔèÊN¾èõTF*>P^CbÜÖ÷»¨,±'ÄÉ?¶C¬‡`—™VU¯ê,ØÀ1ƒ ›œþµg£Dä¯I¸ Ú¸L4½m\&‡À´q™4Pc–gþ4(PöoH¸ Ú¸LÝ'ó.“¦WD›ÿKXvZú}ÒÀ.ˆ6_‘fÞ ÿÆxÛ¸ç`zµ<€{¡oz÷®1øç_Là^3ó¶p¯™S²<€{Í øby÷îc†p¯™"[À½f³<€{v±<ÀçÍ ª(#üàòípÒ<Å~pùv¸p÷79îÅ:?’—Å&>$ÿ.‹?Vä[ÙeñG~̬կÄß¹ýCñ¾X³Œ{â¸X³Œ{â®ÏšeÜŒ¾Y«_ˆ‚§~pù†¸ÄŸµ\þq®Ìv,E(³™ñŽMV8V»ó.&xMë*,Œ´D ¥£È 3Åîè‰Ù0;¨tk‹Z]Ï™¢*•äæ“1 ov.*§àù‰»ç¬@çNå(Y*ÔÙåà±Áße«7F ý§0.†L¼ròh6ð®üzáv]†íûû7/‚g1îž÷Ѹ²(pµé :šÕ wßðJHD[†sñŸÓÜ}¢Ÿƒô皌’^ª¨µoÖ^*ðq ŽËU2ç ™, -´HUÞœ@ -°é•Ä.™X–gâɸÈôa6Åë!ëSôÂ-Ý—Q“Š…²t’BG@÷·I¸e|ÈÄ@í Юƒ@ãaN‚ÛD:” hû(™¼Žbüì‰ÈŒ«ñÂ.ý|Š«íµÔ˜!zð´!=;OYƵ™,ϲ1óÙâ€VCHÅïüØõóL@ ?;ñüôæ:|üÔ%Ï{º¥Ãå9‘ ®6¨—€Zù7w0!cÎ@õ§¡(ÙkÊGÏ -ˆrOªµÉ>ÜóEAV3Žd¼z†ÂÌl³6 ê!/ΟKrýæ™zX-E¨§ÐßjÜ¿WÐ!ó«#áïªÁ*°„ù2_Í˼wXrÎ.Ë7 T"}j¬Aa<¡o–žé<Öà?‚ÄÕ¤DN_sR” žÖØååLåjý)ÏO·”"”RwM ð£êl“VÁð–ê‹îµÈ˃›IoÛ¡fBG{†h½¼På²h±àr ÍSâq«G `c -GÖÈ)]Ì|Ý™Vn‰•C<2Saýy ÀøKöÓ@¬/Ÿ‡’ØH6q©}œ–¥¾H(Và«OöOô‡Ÿ˜ZyOmƒ_¬M!ôÕ'‰óÞ'ž£Š‘ðWëÔÅÈûŸˆLËèro €Îòæ)â ¥šÅÔ’ÐÑŠôQ̱8¹­ñ`ƒhî@ óèQ¼÷ÊPÈ·üÜñ†š¾*GÞPæIñ2‚ZÖo™F¿â ­Ä¦×WÌû@ÅtE“Ï¿ð=ú ñŠÂzU)£jóÓ†@¥q {ú'åÂö÷WŒþyR4¢¹šöXCôÄC&rkÝqú×»£Ñe®9%²•ÿG˜â•Aû {¦Åté'üÐÑBá¼`ê]“›q¹ì!Ô|³x­œU½W@âte·Ë¤§J6tÕV²Ù/ÄSü„Gs—>ï¶Œ&LãA³¨ŒOÁû¡Œ™;ª9jÞVª³´×Hû¼Y^mÁ1\‚Ü>YÃ%ãœ:+éz1Îa•Ç}Qî.ãÔÚ£h»¢äü†¾/>HZW Ò™d¬ö5ÔÛaú,Ó£¡S÷$cÂ4nÇsÐý½wÛ´X²Ó²’åhÜY u¹ˆ‘i°3Ò!Ü Gú"zƒÓ­æà"bÇzÚI'`—|‡L¾ä’\÷{4âV¤ÕtF*CuÐÅE^²Ò¹ÄÍ}âÁT/¤€('~Ý6#„tÂ)ïp†¾Ø;¢ýn‹±³M¾é鮃7꘾>è»þÒD£-:ÑÈÆî,˜Â$Í"ê?=§ó¥ÇÁu“D§Ž˜åŒ qVØIŠ<>WVÊ=±oçRÙ¾¨»5Ó6[Dò’v¿{…ðR´ÅÉÂnÝ"tA©¼Š3ª%oÛØ²†qÅ€~ãB™óòƒË7ÄâþÁåâ‚&,ä3ð ä¨htÒˆsàdý{‘ -u’»Äâ…ꨩ’¸Ö•ÚtH/óðØi^r²¼¤´V¨7T꺈›§¡/Û3À~Þ\Ÿµ#Þï4ÓÏó±Ñ, +2=¼ò–îž¶qÀòZ0æÁ^ï¦ÉM¡¸œ°<ÇNëŒõbbÚ´…ëŽÁ6vÁ×_ƒÑ•–ì>çQ´Id~Z…UdÌ_Û#UYùîò­ö/ª4 çz¶¾àh`mþÅéjÄз]ÊŸˆÿùÄrÔ42•€¾ -Í%­X BÒ.OæåÑpúXXÉ~ÿn'ì'à®fmd±†^RíH臃hdíUÀ°Óo‚$(Ë´íC -t³žÖý˜¾£¹Ÿ¼È_N–¥áì’Cò¡R·_Áh£ÃMÎ@c0hT&ZÜ„é"¬ÃÌÇ^ඃÐד0ís0œ‰§°ìHt¢°º"JLœnª·ÝAQ É´ª–]ÙɽžÊHÃÊk?fÔªïw;QYbWˆÓlˆXv™iU…ñªÎ‚ 3(аi~íÙÆ(ùœ4°‹UÄî‘j옦®¦WD—Iczþ¿% -“ý4ÐùEìiÀÁ"Ú¸LTÉ@›HXvZzÛÇŒKšyƒüмVdwʘéÜsºî³æÑ]rXÅŒ£»çÞ(²+Í gÌðî53S÷ÝmfX_Ì£»æÞSäßÌÀ]XÀ½fæ!làž0õå5³«-ñiÞWäM8˱qv…4X_œÆÙÒØúòOH“à©\¾!.ñÍá—ïˆË³öƒËŸâ"®Ñ•í-¥eÊ¿áØô`…£u9º¦u†žUjpæzÝncBó *…§ÊþÎWìjÌk Þ.­gÕRE·ŸYSâHÍA4è1üC.àÄ»{K&Ërm(¶à7¯#€°¢.r½ç*džOJÌC'),êÏb”F üÓð"-Mñnn2ëÂå~䣞‚¢QͽAÆj åÉÜrú V¨ëò„’Øv=½ÉÎæ{êCîòëì©8𵬠*öeR ¦qÖ®ÆðVÞªFùÖŒ;eº[eæboDÁöx; wA˜ßÉ@Bʼ-œ^.©"gÛÆ´?,è!•5Œb£¯n¢mo ÒŒê{FÂuõõj%ëO˜¬I¿3TÌ+J,žÊt*H¼”L8 4ŒèE¾Fü•þÕ寫˿yùKë²g§K Z˜<¼ˆØjœ˜Áó^:QÈõèä[6)ôÏŸfW^îf´>2†ÝP\MISšŠ0?•¿\ª¶ÄkÁÓoñ ÇÕ ˜±aOpÍçæ{ÓÂc¬ö‘ëæÞ®‘ãRþ:86&ìuMbïOÙdݷ‚É!£¾ ¦\©Hº»w^\…­FÓÛž0òïý -*]jÕqàŸ8¹QXçoSôùèµü¢/¨u7›Ò²eû¶Š#ÕÁR•|´+DíŒR)¿Cþþk cKÈ("ºWnž'g!ѲUµWKF®]¸Ökß%tyµÊ¤ït-tÙÕ5f6óñ”—ðpG¥X Ò±3bÏ µQŒíÊJº­Çv¾— Ì»ze–öÙ:j8¢ÔP±ÒV5دÙrS n»LåtŸEˆ³À*¢•ýþB²Om>Ën[$çcvQxT̾d3ÉX?|Ú0¦ *¾5/V4ò%³§Fm=f?˜Ì kßM@‡du>1ýê¶ ¢K‰Õ:(÷#N¿ WöD›LÀ2vÌ,u‘ôÌN([qy -f'3ÁÌÑcG³uù;ë"Ì×KöÉÀW¾ƒþÑIÆv¯“ ¨ ¤IÆÎØÑH¦õyÈav|Çv˜È/ŽÇôÎa=f{L嶺ǜ£ÿ©Ã„KÑ=0CëhfïÀÌžÁŒ(%[3{fXýMIŽf|£‹ì Q݈ÇC_Á±ñxh c>{:4{ür¬¡Ù³™Ž¶ôvhN¨=£éÉÐÛ6šž Íw;ÂÐü'À`Pß endstream endobj 186 0 obj <>stream -H‰ìWér¢L}€ìnQAQ£Æ%n1ÉÄ5›š—÷ÿn7¸%™oâTQ5?òÇºí»œÛçž{»*“ -¥è-?/úÚGŠcŠŸ‹Âu•Wõj_S²q%m¥ÏM£E%_3I±dµÈÕ‚V‘Bd6SVϾn² UZËzä2"Nüê»ÐaŸ5…ó¸›}[™ÂÓÄ -Hg†ÌøHV㬙¶`R VZ+`¯%~a¯o>ÅJ £i¼vÔ•\NÈÙ›³_ö=sS’™Q÷9“,K°ÒTY‹#7v¨P,Ê–ád%Ò ³Zúm*[uS@¯ð“/QèI„§:…¢æåì5›ƒoý8«E{aK¤¨ho^˜Y䪙Ié]Õ(uÅö5B˜LyÊGÂóª‚cÅìCG)zÇÉBV8VoQ`+4|ËÏrLªßŒ‹Âà=Œ²”ïVOaì«jï¢â¼¸L^& Š•wΙ`\”„À*Ŷ’ËóÇWºe§rê›nDŸzÑ¢îé¥I­Øš ‚мÙȼ¬¦êç2«Ù›™8¦oLqRã)áÙ_#}$†‡5Ãg u¥ëÈžø•½¨ÖR/ØÝ8„Ò‘•™Þ‘M߀älÌßÊ+£Ôéô½½ÈšÏA…a™Ã >- ÜB6påqRîÖbœ§¿Âᨪ=7·IEo®ÙÿxfTÍæmÍü#£Ñ¼¥sÃp¦ãøº' 'K¯>=WX·™wCG)â•r"èÔ†‹þ¶Vui#ËýË~¾µßqvDaêç—‚‰ùú—¿ÅE}spÙ^ûOo/´…ôõ {{pǶÐÕwOa «r%ÔβckÏçãž~-ÓéÆ;à—ªs˜¢"'ƒ{¹,+SQ…Íu™ÉDã -•*U…çH:#÷+‹‘ëfwÆÅ % -Á—-Q´ãŸ­Èý·<8Ð]}Z8+âƒägäûÂcV¼þBѧ9ÙÖć -õªÁjZh+pɈçÝ $ß•BŸ¡Š s€[³òéìçM¶‡nå'k”ʦsÄ^Ÿ"ˆ„÷F}ÇfkQH‚©aB:´Ü¶Q…®¡n;r-÷;D^‡qV­W -µ<Ë@ -Ú¬j´Ügºqì<Íê C þBr(‚¸ã-t†KôlÊå)oÞ»‹ ߊ_¡.;M FœK†$®Mwß*[ -®¼ -Oo1b9܇Kº¶“¿•BóÊj5j®ÌPì5ó¨WÖÞ€þ"&kt@h$lf_E¡:á`ßýz«a -}rv@ÿÚ5÷ -þT—˜¸agŽM/:7¬æùÿu„ýàˆ˱+±åW>:¢‡¬åÿ;ýe*ïA óÉá9aBÞÂì· »ÿõ¦³?Ÿó11_láðÜÅ~¿)üÛs´EhÜÄòb©Ñö¶¿H!;'Wâ(ÕÌÁig¸³¹ÜÖ\K;¬®Q$N›îÃXÙ7ã/Ô´÷x‹`ëþ"Á݉°¡Ôˆð¤4"ȉ4 ØŸ#ØÍ¹ rÅ‘"Ÿ ÚòP¾”WË¥j=#Ž¡Åí‘‹¹x!ID. nÐPc¸i³Û-— >÷a)_ö‡%vK)Æó(j,orNaÉãTN zR‚çfiÇ!ç_9ú;7Y|†ßÊÐ(ÏZ£(ßÏÊ‚œíÞ#ËðV—ß®$îWŒß$' $ .þn$9i ¥ôw#ÉI ž_þf$9i Aè{$I‘·9Õ— ×\¤Ivë+s¯'âyÛ¨›7V©H\H.Ë¥–Z:{Õ´ôи'e©ü„¯u -¤áæ ÁúdÞ‹½ 2!Óšßúh/COš>Ò*ŽÓÄÁ®´½ûMù f3žîÐàa*¤yôwê%'Ö¨*»1¯_T¸•»ÂHN~1æSdݶÏ-k‡ý»_!· -v«ñE:â;÷õ~b®ˆ;ÚÂâ«£íÝwÆ*σ8(5=òÛŠ¹^ºÃÉ:$ýàòOâÂÿàòOâ‚§Àø¶9BNŒžIîÆÚld] Nòw½áKvÄQ? \äÕšú¸‰:{ ìVýˆÐÅãë#ÝšŸi‰|·Þnè8Ícge¦^N¶„þrµ >çzãšˆÐØ\»[0JN_¾ÛüʘÏAÀª;Ýu:±0X'Ü…a36ÑÇ@[‚ø°+Â8£‚äŽÜ©hJÚϳ+2Ç%˜ºÝo_›gl;WiÇû Eé½¶¾Ûü]ô¿Ûü…J3Ä`uŒKIœ¼LPmò¾JB`•b[Éåùã+ݲS9´¥#»èE‹"¸§—&°Øš NäÍ>pÔ)úÆÄ9qï R{AöįìùȨÖR/ØÝ8ä"Ø»"r£é{и‘whô½½ÈnÑ(s09jfØà„užþ -‡cö‘ -Õž»Âhdgüã™Q5›w¶5óŒFó–ΠÙÎþ¾`oàléõpÚø¬K©éÌ/Xd"]ÚÈ0°õ«Žt*fêç±S0—LÔÓÉ ¬ :ó˜Ì|$¦3ÉÌçЙÇd†¬BfÑ\þI\w˜=¡É +Ðf·› ž_îT› ¶âΘßn2—é){Ò„‰­¸3¦w&ôýÝŒéÝ„ 5¶›1½›0+܇Zýó„ÉœDf `wšÙ;2ó‘{Íì™AÆvšÙ;2ÃÌïjfï³ÜkfïÈÌGî5³wd¸ì4³wdæ0?{:™2›Æ~pùçp*Wïäw'¹Ÿe¼›d –Eï&¹Ÿe¼›d|ä~–9y’¾Ûd@Áî4³wM©‹][ó¬Éóï4³wMÆGî5³wM+XW3{Gf>òˆ>="3Ä0[Íì™ùȽf>ÌЫðƒË_áÇs.'ƒ€Þ_ É<°¥ëíVj#4< .]erŽ]À/æZ¢|Ù2Uíëíÿد²­Ô• ú~DLBÂL Â< -"xŽ 8 Ãÿßêîzô®{.kùà bÒtW×®Úµ7QÛÎ/0$ˆ‹,þ-ºË®&`QYªÈkS*÷«ø xBá½W•YÍ[»@c~½É<+ÙZtE¶}Y?<¥…Ç w9xUA@µ×yi‡à™ÌpéWŠ-@¡õèYÄOeX¼ËJåI5@(jÖ´tøÙ:¬/¹i¿3A¿övÙ $ƒ$R—lºªchIÙÞ òÈõÞ¼KËEš*¡²‘oZJGvô ½LÕ¯oZ¥·¥0¤Ö ·šW2èßx -~øëMnÛQ@#¨ñôý TŸê®È5œ€[øÂŲ²¿ÒapEû½5d‚÷óHVõ¨¼ã¶j/ðŒN*#þ*Cží˜fW‚GT¯»×¢M*7~…Ï胧èÊôZÑÝ|O'¤ýïŸe9@Ka÷³sÕ£äÕNýàä(`µ±—/⹟˹÷1ã0êÉ£Sdá€ø`?ç.èÊha™Cóååë×]u'?êùÖ;6äb&PBwQxU5|üœëŠ*“Ì—‚Z;' ÒKë «ç茼) ÝÇ2ü"– r#£ÉtXe|a+øÐoè²p—ŠÊ…å2-ß^Ç Øqd‡ÈÂ] ÛYrͱ§±Âš‘´®žZî #âÆ»¢¥¶x (´fnWT@ÌZóõ¢Œ[Aš‡œX.¾JÁÆL -HmA?¹Ä–>Q^?ʹ< -*ù á£P‰¯¿$-—×G ¥t -¢õÓœ Ï}_,9Ì,êÊ÷‹Ð]„Ï÷2Õ_,ÒñÄcXôQ‚—yJ.AŒElRÑpôçó2Í"›òlû-ÄëZúÓ{‡„qч™‘ð¢®U8‹ÐLJ§éJ>¹´ ^¿ø@=ŠÁ5̉XØ×ÍÌ»ù’™æÃwævœ(ÂG¡šïe x‘´À½Žê|“ÕÍ–£žÍ…3 ÷òÛµížNäÅ” 2¨8GÈÔ^l1ܘù°D†¼_øp%Ÿód2‘ )Pt)¦ø¨:¥#º$¤<_'ýÝÄ*~÷Âv­d>ôŠm-Å.» %Ü?v(¯ÙPÌø³öjaõè&Tö:‡ÉÓž/œ’ øÚŽöìHÖ»¡ºù=ålQ=¸ ò·‹· y­ì$òHM_.³ŽD® -{í 5Ftæ¤+O€ÑiòäÛØSð­UæòÙØiõvöI¼ó\ç·e>ynv盟2½ý|ÁÑÀÎò úÖ8ÒÉÎÕQŠÀ;ļ¤6lôZMË[EÕG ,¥íѲðˆ$$ol€ êÞÉ85†¼ÌéœÌ½÷2§s2¨÷/s:'ƒ4ÿ!$ÿ‹“Ò•\¾.ÁÚŽ'3¸ ¢³“Ù¡³“ÙM€:%™…^‰æoœ€Ìž7?¸ü-.ކÑDÖi y)Sý'­K08еvßDÜw(9pwSs/‚âÓAº]êýñ[Ï¢›fã¡„@fÝÛò‰8ø³Œ)Íåë ÊÔ+…àCÿ:§ŒÌljæÕ"€‹A½Žê¹Œ¾?E½ €«õ»¾ŠxxeX¼ËJåÉ º}J-]š×(Ív¯˜‰Ïë¼4_e ù‡Ϩ Åæ·NíÝÞÛ",çbvf”Jë(s$ÅÞÝ@ ì=;<¶ >œ‹ Å|ꪎ†®ðÛéïˆÈ²Ã_EUo\Ž ²èj!Ȭ\ªp[e8È„Qå€vÜ*4JeÊgB§¨¼›Çí,þË>YÈu½Ù…gQZªÄ—ÐÛÕªš5d¥r¿š‡7ül×ê 0…¬ý’ÿµ°vË™àý«?JÊæxù¹ê•'7×çÙ]ÃuJ…{®nÅÊBüJWX+î˜ÿýÅh¯›G²Ê¨G屯7Õ—Ü´ƒå>êý—£”±ýƒ&³´Y@©&ÑoJªÑKª±ê @ûH`#£õl á’V Ÿ×’o[Ý„Âg¨´bNÃe9ÿ{]@6Ø×>Ô˜]ýÅRð¡pcÉÅp5Mõî ä-AM/br¡ÛÎÈ·"[À͇º)DJ©£oaá3`EmqoCá6s{-€ÕxóÈL“1õ¢-¸=ܰÜSº1`ÝpCìUqD?¹¨\ï /ÔÆ -“0- )RKšä±8 bSü4ÿ—DVŸ‚ÐçÌÕç¡À´X(Ÿü<ÒûÜ—Ñòü×K|\šßYôubøÀ—ü×JÖ¤)×îc“*ÍÖ ÖáÈ*ð“ñÙ_‡¥ âHÉoCB{?Nô%Ÿ\î¼ØÁ«÷ZÉ3e¡ÅÊ‘‰LÏäå¿«è#E ¥FDÂû¤¹$—Ö‹ ;§S~†ö¢iÔû<P/eHB dÂ2@è(£ŠâÄðþß>ç$!Úmß¾·ª«ºêóO -ÈÖ>k­Vaå/;Ó jV„¸´1`hÝÂG=á'ñ¦æC¦èëŽþ2@íÈJÆUü•Ä,†ërþ<´EÆIIXlô`Çjuà6-³ð ’ÄZÊï>€å£Ú¡PÍ6‹˜Ç°‚Ž“?+PéñsmcÝEwN¹  "·Ð=êÈ Þir G-zÇÍÂV †Ð÷(9º¤ë25uT$þIœ ‰ûõveîBÚ¶5_õÎ>1êT•“˜e£‹øó&f´u׆}LüÆå¯Ä…ûÆå¯Ä…G+¥ê‰c-F*`´rÞ_8ÔþâtUŒçÆF¨HÏ"i7 ±·K.‹qˆ²{)t@ÅÕýÑ…bBEKL²=Ð>8ÎqS•˜ÎyñÇxê=èËåát]//„†˜¨ô‡5½1L¥Éá¦l®g¼€Íwï f°âì³îƒy36 ÕgÀéÎ{¼[ø|(«¹:5Q¼Í‚lw›Ëh…Í2{Ú™VBel»Òì«A}Aà ª‚È?ŠÿÑõý–øóM'Æ`§‹GIX=®ét¸@®"Ù½ü6wÿB÷ìBEy…ZŠÝôCˆ~ëQÄgZ™}ˆšÝ8©W;(úÊÄ=qÏ rÄá"ágñN¢éROié™É2æ"8¾ UOïY@ãJòјÊZÿÍðÐ8g073ïr!Ø^òin²¸æ“¨LõŸu0ºÆ†»ëmÓ™ØÖ&¼Ð»Î5]™'˃ãyÁÙÀ»Å—=¨W8j±šhØO¢Ød ‘&$iÚš¶‰ $óæpR°cì3ÿžÌ -¢³?Lf'QLg˜ÌNýa2CQ€Îþ ™¥¿qù+qùâÿË÷yù¿Å%!²o¦ k½0GÚÕÊQ›;æšîs¦Þ£ò/å¼Ð­Äë,Zlk©Í|IYc{ä$²Š¸—´T+%¬ÂÊá˜(:ãug¢žDˆî#„JoLáÍkyOøüDœš™Æ›îè/‚ q¿±o™«†Ä,†k G ¢¡e>LI’ŽÉ£¯¼×‚˜¼j‡‚ŽAÕœ'Ëx0ÆI‹Ÿ¨ôø¹¶±î¢;§\ІŠÞ -‘ 3“ÎSðŠŸvͳèŽôŽ[E¢°ŸŒª]Òu™š:*B-I&f²{À>’ŒÒ7.ÿ— šVv -Û%m5»UÜC1—^Ÿy5F¹ŽÁ'ûÛoÖ5<K"~mé-¶ì¡>µ|wØNwV§%R1–kÇeZ3­HþëOª^+Mã3~=¿¯ˆ‹ÓLZbNŸ5X Î ‰Ö„:±¶tq¸CÃ0n Ó×ê§(y£Û‡‘» žÀÁ¢GÙÚè`‚¯ÕÁË¿*y±¦u%á.Þ~=j—¤i~)#ŽX‰o¥r9HäÞp·²jƒÎ.lùrósÐÉóíâd¡0@wô{Ü]w†O3-›ˆÝdáçAç[N¬•¶ä2¢+`â&â±áSQØj¹Î&4)º‡†Tø:O'´Ø~'SL;­Vexš:…³J€þ<À`Ø -#VÍ+Þ·ép/"‡‘ço œ#¹Bù˜ÈöCuÿ^Ó;ÝÍègFûðc5*¬övþã â"köô㽓(~­T‘ÖÏ_{'šH2J{Mu¥ -gÃy†ÜóÆÐÁǵååÓ}üù‚¶] ö±QBcò9hzÙîÄ+^¦*ƒK˜Àe]8ÛíeÙ Ö ±úžlÍäŠB#Ö¶„Fî^D¡®Q¨º¬4]Ö·NŠ¥ÑŒQ–Ä\%«èÝ%Y§[2µžä •šîž54ž£?)€®½Åk&Y,¾Eä‰è(g¢h½Ð¿ð½0}ÞŒÁ//^‘”‰øð¡ƒýQ¹Wo¯Xb60oÖ¦ÑM`?Àû*8†` Í€SRD–~`ÜÑE‚¡º>'¿}õ sýAPÁãl·E^7¦Í‰E¯//à ¥º56"²?øWN  ×Rݸ~´8Šaõ…!×±3»|¯uRÍ1ÞÁ=Ï@OR,\Δ˜ÍŒªOúÌÇúbdÀŒ-))¨µ”ê¿ÿ~¢`é~ÃÐáZ–NŒá(åU€ab´rÞ0#µ¿8]U'ãù£±Q#*¢ÛÈv+íf!övéÀe1Qv/….'Ÿ«{ˆòѾ”²Õa²=оßvŽ¥KLç¼øc<õ^¿<œ®+ãå…€üèOÓTšnÊ'Qs=ãE03E~=ß¡G3hÖ>ë>˜·±?b]á™÷x·ðùP9UТ1Q‚ú¹¹ŒVØ,Ó±§ý‘i%TÆÏ_iöÕ kðl4xdù•JîI%_ÏwÛ­b­Q³A$Ýåƒç×¥n]ºÝœó€À-K·¿6£ß>yı±*ð•i-LDjq®gà‡oÑÌK`>Ø_»ÖvLd¤ü4éJ¶–qQ¸´¤möO»÷™6¦£fZ0r|µ=ËWÎu%C…™l E‚™­HE¨m9 -¼Eɸ.q -²çNÃJáDÑy½nÚü ²œd„z™ß‰'|§øªòR…ßÖjæYô±Ÿ¯ jEèM ç¢ìA¼* IûK·_÷q·ÏÁ¸óî£%–µUQ¼Þ(çwêJp.åx„P×]Æ!¹(T]z“BmsvéÛ§þ<Û ’ú°•Æî¿ì2p :™"* -¤w‰øŠš‹‚hHV·SGh4D/Ás9§Æ^qðR«ÆÝyÙœ8GJ¤à›bS:^;âcβâø*CÑÙ]$ë>œ?£6Ь„Nà7ãýa…Ä®¹‘áaÙ˜PÎ@™o®1·‘ë“I¿P;DD*ŒßsQP7÷øE뜫v72»P> Dzý] ›Ì+xì³P5§å³@Øß’Ûâ@0]†òbk²ŠyìàM3„¶˜!‰æ²¢ˆôÙ -Á”ÁìnÞ¥0FvAñ+A:ëƒö/ÁD”¹Ì-/‹e-KGWÅõuœ…þ< ´)©¡µ,ÄÚµÈ@>y0÷qØT¬iW2™©¹`GùÓ Ô^¢É:D¸Ki¸âJ9!2îÒ§FÈ*XM1?Ù£2³OZØìA˜x—#ÝÈ'^ävó©A=v¬9Þ‹‚=ÎïEH]Žs#Ç{ä’Žu#Ÿx‘EøS¶M>š®Žg+2_Ž£«ãÙ -3ÿ‘tu<ó’ŒG½Ÿ2ï§^ä§.ÿk]~îË_Z—å(ÇŠxXÂD“M–°%ÁïèeZQó—¾äS.ÉwÏð<ã\~˜bõA'˜„˜•2¿ðHÛÝ$‚ -Щ"ñô’ù‚Šƒ!Ñ8žÃƒKþƒý&êm¬ú’ïäŸzØÝˆ…+f¤é«ªHÏúw¹dͽF“‚ZˆÚê£\µllf=è…q£ÑZ*â±g½•.µ05°–ück6 kÜMÊ>Ú’zëäRÙ¾´3{fqÀ"çàÛ¡™±ïþÞMøŽ€Œ,Ѓ ôXñŸEÁŠ–®Ä[‰xIÏ·Ô+­Zv_è¤õ:“žjÙàEGËæC¡HÉð'<؃)Ò m3#æ}¡0"’ûÒ"I7ylo¿œÑÑÊó´Ûª__Ћb=Žª!:ªAoç¿ìj„œe2Ò,¦‹KÄ@–’mÖÍSoî%‡]Œè¥z+oº:Cg’±nØS×'u*á¸/$éÂAÌN3>^¨oîk¿Éj¿¢ôÇ@ä+±"=¯¶ƒ³V¿ ÖæÞÀ“Rä@Ì ÇœXÌÌûrb1³xì´b¶Çcß"f\ýZaˆ™,ûÁ~#1Ã.63ŸŽ˜!c63ŸŽ˜æË·³"~êòÖ%ñxè0êòÇu‘žÑ§ÃȬߒ+á…çÒƒ­¬ÒµìO,²)¡d¨0xçÚnÚ)óav`¨Úe—¢²?É/nÆ<šDŒsY:©ÀèÌiüR¸â"¾bµÊÝ•jq¢ÝOÍ0û¿Â¸2 ãìÞšëÝøû]ÄÉs è¿áGÎL5xhql¬ -|e:B§O‡ Èz†_Öݲ xBz4¿Tú9H~1 ísQŸÛ_„ºuêïÖ¾Ûðz a6Péâ ¥2€9Ê,-B±w'ÛBõÍm+2Ìt!Rà înÐÌ ,™âÑUŠ݃H 1”@?:š™ýþ“>q<Ìq¸B»Ëeí\rQÜWHñ•·b±`ý‰«ÇÇ -@D#…¯.: àb(ë‡ï²1ë»UÓ,>†MÕ•à|Ùñ -¡€Î8î>Z¢ÈóKÍÝóL˜Ž®Âû[…Äñ##8¶B' wIÊû?Ò³‹ÂPŽg)$æ~*”T=/jå³"dBŒ‰ZxUf'½Y—»“k9ñz€“¶Ýª`P éd(l£ -¯ +ÜÝtUfg±¨0c¡ÅgíTª¦°YÏ]œ¨ÐÚq1°ÁVQ)ó˜wvÈf¥úüñ˜€Uõ¾ƒðL>h.B„˜‘“Á C=Ø9V:÷=BU›k¬xˆÜ¬Ò/ÔŽà¡U2aü8"÷ßhXå\µosìò.éõ ”wl2¯ÿø€©° ‘Ò»PØßæ$·ý,0Í€ÕÒüŒMÑ9 -¦êÊÍ5dÊ}¶BÄ`{±|å\×áßjÀ<†j“]P4¤¥ˆÚÃâ,œœ!;œ“LD™ËÜò²XÖ²tt¥mo’Fq=RFy#­ðí5vÓ.,`{±éJœH -–K•¼Œô`×È+%…F«Ô‘vÇ -2 Œ%«ŠôÃ("”FlØVþ›×ÐÞdƒŽó90ö} `Hp]~cIxÀá|`IŽ2$.ê‹–ä(CBèâ –ä(Cûš%9Ê [ù–äâ•:@¬£ ÕåKˆu`‘[ùÄ: -°@ù¿†¾G/¾/`I<žŸºü…uyoI~êòWÔå5AH‚ GYÀS3'X,§+ñV"^Òó-õJ«–Ý0ÏÒÆzIO]”– ^t´l`> -‰” Âç Ä ‡ ‹§9_(E°‡JXƒ|o¿œÑÑÊó´ÛžÈƒ¾ ÅzÕR j!j«Œrÿ¯\²æ^Ã^Èñ@3Òˆ¨z,ÉŽ6, øà¢6kŠæ™7÷Žê‚Zr1¢—ê­¼éê ý/ûÕ¹•<×D¯€‹I ”tz3 ©‚4 Uåïÿ›sN"òáûÖò‡X”pÎÌì™Ù{§‘Û «¬ÊTÌÆ/$ùÆ{Læœ&Ä•¸W¿"?2,~PŠ.–È<ÒcÝ*»w“áV*®)-:±¼Lð·n,s°Ê‚N^Œ&t¶§w›þ˜,ìÄL¨â§.ù}(iuµÕPM.ȼ „ö -îkñGîh/‘ÒÚA)MeÙ&ª}߃þÈôK"3îÌL4š²LdlÁ4 ©kH,·9³mÞÕi”3‹Û« ܽ`–&épïµ°È>QÛæe2Ó‘‰s´)ñ4SÞIï•÷!úF4!RÎæd ô­^ýÊÉTRó? …×Ù™—™ƒÂëìÌËÌA™ªéœËÌDÿ¼$óƒ Æ¥æñÈ[9Ð z:|”e5W‚Oë÷P¬=‘y­7pÛK´Ó“‡Õ,£ón‰NÞA.w1F¤vP@g>Ž ¶ï ‰ÎP± aï¾÷>! µ”=³ÁwQŠ/Å×%®ëkk*õG_ì^çà‚]gY.è§€Š<Ý\·¦¡¼þè~1Û¾ÜÂè¡Ü‡r äxþ)ë |Ò%æ¤fÅ -¯Œ»ÖúûòøKÍ£…Þy»þ “ˆCe/p }N¢sjŽ›ÕZy¾$øC’JßçE¦áÑ áxRº·::+c¡Þ•Ò§Ö\Ce¾Â•x¿£ i$©()I)0ˆ‹¤ø¤²¤T22šæ~¥¤c÷/xW[! àAÃ÷QX ZªND¨áÝVP ›ÁEí ˆê†ç¡s‘`€•™ZSû] h¤ƒøIÈÊùZEçÔ4kÉú¾ D~CÚòt(»ôÛé@ uGÂÉ@XÎ&^G "!`dîå‰ÕDfñ ¡üƒÖö -ì5#<)úl™Y3§Å2ê1Ë¿#–yjÝÐo‰et Èå3‹e…åò™Å2ž—{ùÌbßbaùÅrùæÂ«w?ý5eP X;ÛqÛ¤¿•ØÄŸ—ž–ƒÒ“9yåO5Â/NϺE;/¿šNw6²sÒÃg'´Òm’A\‰jb˜K¤ÌÈ„‘$›üÁ} -ßN·äйŸx {7ÎÜxþ4ú¢…Æ–þZ5ѸØ`"*sÔ` B¹»,CÞ ]eŠ·ãäŽÑÿo“¿D¼ËbÒÅ™Gz¬[e÷±†[©¸¦´èÄÒA]&ø[7:,· B‹Ñ„ÆË“…˜ UBüÔ%¿ï% ŽVC5¹ ó‚" -Ç(y‹·ûJëÆö)­•¦²lÕ¾ïAdú%‘wf&MÙŽF&2¶` -Ô5¤§ÛœY‚6:9_§QÖ¬Ùθ1zÁ,7LÒáÞka‘}¢¶ÍËd¦#+¥aWâuYAú“ü4Gzsªé ’¨‰çJ¢Í(B-H:YS’?Ý ,pù†¸@Ü?¸ü!.#‰±Œ›ŠŒ©l,«‘ŽUë÷€‘!ÚÞ^`v?éa¼“ªSÅb»j¸>u§ ‚êI…}‰"•a&Eþ‹jl9>8V´{En6zÎ cw$,Œú þI›(@ôájOª³EÍж»„Á*pKBmÜBËÕèWüƒq þ)Vè¾kÀÓ -h“•œ -™†È?ÅA«ÌºÕ´8HL$",Wp•P<.2îgÕpeùËkºŽt†vp©ƒJÜ¿>MnƒÝã5ìNg>$К^ÓžÐ&_Ú»øé®“CvÔ#ÑNOÎA,i–щ·ˆZvË]ÌŸ©ÐÝ”h¦ÃŒŒêZÃU7Þé!ï¤!`oÁúŽæ^ž"*°–3G·¼„o©¤8`:—ä;‹A:$Ä´iÛÃåè(Ä«wáÓ8(YÏÊeiI£X;/Ï$âPË,ÐdŸ“èd½'º"ȳE$•nçøRÂY„ÄEIÈ ý¼Pˆ$cèø;˜¸àJRÚER6Í„Ü IÊ,êqÞRÑÙiøO5#œ±Dç’:jüD?nÇ|Áó©vÕi€è(¼z -já l¢ Q>QÝ`LŽH§ÖÔ~"À -+ÌùRŒEçÔ4ë*¤˜k+ôœ€ ©r±Ka},{ óèút àw»üA  ”>„<Š5û_â*Ó”qÈê¢ÂÀÀu.‘öaõŒ[mÁÊ`m\€v-QõƺúüÖhŸu2؇(8 §¿îºrÇÏè]ÕTÄ2–ПPµþm|¼Þn6rv†f-‚~Œ-*¾Rv$¦%Èeè*bà7ª0ø¼¸„üµ+(øç‘$ôÝ8Åsy-@jŒe:©¶©2ÉG’šx߇‰Ðÿ*P?>ñ£ç¸Yºq…F…¸ÑÍA“Pî¶Bà!Âî™Ð?É¥ÿ†I‹âÒäX]œàÒ£pÔióÇ -ç"Iííšã¿¶¿¶kà^¿6lm×@]|mØþÚ®lËã†íÏìšðƒË·Ä…ýÁå[âÂ!rbjÄ;¹à%0ÿc¿º–SW–èø#0QHF‰hB‘s´Ù&GÌ&üÿí™QÂö¾§êÞCÕ~ð‹ -k䙞^«W¯– Ygl(JÇV`]šN/Å·”?…ú™¿shß«êá_ÈèKèÁAO? j>]µ!ÖSØê/œž£ÙEj×r_ÏKm”î)ð¬OV-¡ÁÓú`d*Õáp&LO¿ -êóœå°¹¨¼Ôha3Ë1}´–M¬ÙŒe÷}ÖºúbÄqë…˜€m§¢wjyëu&MµÙ`¬jtŠ2 ½>Hyû‹=záŽ<Ö.ÒüÙz/BawLFTBS òž½˜wBaý‡[ºŸÝg6Ûp߸ÕÅb±Â»~ÈÇ<½ôÀl%¾Ð|àH†'LB4Ý Œ8õÀcßà<î»óù¾ØP’ÓUÄÂoÒõéË×ßi@ãNpИÁP´+ÚXÔ˜« (âfAùMòk~]gðã¡Á»âТS|‹m¢JSíM ííz©tz÷a}qSºõ‚£Á¸ð[ßþÆ…«‰ÉnY ÛÉüIfY“˜@—×ë )¹¾þÁå/Ä%}$ÍN!‚{Ñ&ãѱ 68Åãž/ÕdPG†6sáæÿƒËÿ† …“ tØ)š(žxI´NÝÎN>m^ð¯xèá ‰‘éplnÜõv»Öõb·(ûpаЅÑK.# •¿,ø’j(‚Vè´,°iA»Ù(ˆY;Ìˊ« ’Šö×SØNÜ|]Ð8>C³ )“¨ÀÆD·gÈ1®Òªé¶±è·€Ÿ{š}úá¾ô+†¶û–ð;Gi%(Š"’òWÃù8¡Ó©sóu òî±¶Ñ…é1Sq¶Ý9¾NÅ¢~ö?lÜ0_.^ƤâJ4\¨B"%̆Ëû,uTžá¶oÆÒ%žÉ¬Jü<6Q§@î²(¤‚Æ=òwlOîÿ!9¢íÿöü ô«ðm(8ØŒ|™ß:úZD&èÝò’H95‹äÝŒ¢SHÕ¨€ª+$B%WàˆÃùfá›Þc’I§Ñ~ᱯ—¯‚šL%6ʲÝ0ÔiÅoņֶEß«‡ßìókYX…ØJeE°PßZ*Þ\G-×DëFÑGÙ‡4R*5SN Q_Ú‘Ô`ìTƒ_öì€2–tnZt½ÓÂåb?öiÆŠWár<4ë¥Pƒ¾!aNOxBD{:b -¸®Ÿr!ßêºV8åb¾Õu­XÇ.ä[]× -šüïûÖ5FˆµÙfF.hJ.dh‹Ò±X—¦“ÅKñ-åÇ]Ó¿ß ‡¹yXõ౜øBF_B¢I?‰ušÖ)Œ-™,zî5ª]Ë}=/µQº§À³>Yµ8„O냑‰Ñ¦§_ ñ\ôÌæü˜Æ HÇÍDTI‚n.ú¬•„ňãÖ äXšŠ^[òÖ êLšj³ÁXÕèez}àÚœ¶§Pû‚Œ}‚Äú³vØïEíÙu8çž‘eŸó²ððVc¡?0(ÌÛÁÞ€Cyá—¿—ŸzùKqyüUàÀB\c ;šø¨z7AÑN\Ã`A7ïmóI¼m~YõQžŽ j&Úë@ÞöcÅIÜtS”lÌåùo#`[a6œTØçÅFç—d‚/í^r‚Ÿv„°Ì•‰Õ -çFD†¡ëz}aöQútJ¶ØåZ¡÷O is|RaTXöéCÌò¦Ü¸ÇL$Æ>›ya–]ÅÉôŠ4‰mH™Œ@6Etì3KÕWifÕχNß*¶‚Ö/ëÞì\„X©òlZèxËß^ç6ú„Yg×äøÎÍíw‘ÑùñŒ‚*Yv`†ü‹‡|a=.zu´ã©Ü®{Ÿ¦e!x„û cð¢Î@í$ó´9`Û¹îQFK0#ŒNñ%õŽÅc¯õÎ¿Ž‡Þ«¹Ð¥²žøÊλºëaê[HuR>û<äÖG#ûi ®šÙÕ>ïªk­†“Ù9¾\ÅÞ’ßž=ÄRŸÈŠÂG/ ¸¡Z9 CX`ß,Ä•[9éX6ø‘=ò@¹Ì/ïÒ%’.›Ð2•ÍÀ)© qüÝËà ƒ«F‚b\Ù/+<óĵP/‰ Tb{ëi Cë©+;© ÌJ¸ïm>Z´T|5Ô÷‰öµ>P;âqù -"gí²4× 1 XùÌYðÍAJxÌlâæ݉‡ ›ævì`µWX/Åþ - -„þÇ@’{;ûƒ3ĬðÇp—/Ÿgÿ·œi¿tʲ/Æië>Ð]ðïVذŠŒ“íMLkƒ‚ê€Jù(<4Ê*Þ‘wŽßY:†H¨u]$ WAï6çCS®“øíeº•8„á+ÈED²¶l,aQÙAQV‘o!€ˆ "ÂýOug!AùN”é?9ñDºº»ªÞ÷©'ZØl$:<«Mh¦¨Étpà/Òáœ: Ã"÷‡öO%zzîÐa-T‡13ÉØ«4Ù?:†%ÐÕv¯_Lf‘ƾ×v-`b´þå—`÷K^®ÔÏÂrp™ÈP¬š[LÎ%±RéFÓ™x §T&U¨™ÇUꩃz˜¡÷Íœ³+¼"Â)MÍs›ì‘¹$Üó¯Wú¥ØSø×+ýÁžÀ¿^é—:‰½Ò/вç_ÔÓSN ˆOl9C\É÷PYøÂlüþ@ŠVQUýÆ „ËlÚvû|l{ËÌ*Ãþœ_i>äÈP ¾ÍFùÓ¡‡i“Í•»1ô úµíë!1oÂnw¼œŽ -yEhÖÏâQ,DÔæ¹öŽY”Ó[ eC–zý*’¡‘2ÜýÉcQ†„£¶>6¶Ióƒ~ƒ+0dZ°ÞMð×û’4Ó£q¬–èÇ•U›-…’B³<êÝŠAM(—KžæD,‹™ ~—eMƒ£ôÞ¿Ù4·ËJüÁ†€® âdÑ÷‘ vÓ›Ôü•ïB%gJÑ7C®øu—3‰)&¶47žCrboeÇF º³_ï…âIñ(GŒ_t£¿r‰áÔofpЦK“å{²ñŸbgc¨²Î[Ù¨‡i2p^oEŒ !í6Þ¼ÀôŠN­r½—œ]­ü*2än -a¹¸:›äZß|Igïöýbà."§ñ|Ös,Ñ6Á” H‡l z£ÃK×÷ý+4öÅÐù–˜Q,–3ÂbF±FD²b†I‰=EÌb†•¿õþ}1¯mFFDã'FFŠ=yhô02¢J>qh„hÎbú}-šGôŽu¬½Æmj7‡¥Pš-S 9Ì&[q­²<‹}Ì$_¶^ÅŒb±œ3¨d;"913g1ÂbF±qþHÌp](;²ÉäÖÉ„1ŒÅ§$ç¾x”(öœ¿IbF±X΋äÅ%ŸdÄ +ÌDXÌ _œý\̶š°Ùhˆ¾1s “Çö ‘qºÒ=Ðü„:rèÿÆ©üäœòò…·ýk§qƒ3§¡Øp&‚ͨ’]àL¤i[ºÀ™HÓ@78iÈ‹œÜ4³wÔi•ŸŒÓ Gv3§1üÅÎDœé˜ œ‰`3Dq‹ 1Ã7æg"b†oÌ ÎÿBÌkôfL,ÂÛý2’×’x~¿Â»uäÒJNÓ~‹@[Ôëè: - $Óâ¾>SÓÁå½Ýpwn¹âÓÒlü ¡-‹Îe…tBÖëW‚Êe2uqQ¹*«Ü‚™š{ì/ø.’UæÙªÅžv@RFo¤cçýOŸµœô(Ÿ j.¨*B|-ÁÑÏCrpY(H &nj$Æ}_'(W¡é!ç×âåIK­Yçkxe—‹)‹]UzLù“fíTžvèý¸ºÍ¬¢ùt‚XøHÐvT\IJÀ0jnCkð~“WFÅg¯Ãt¼ôo?TnÈÂq»¹¯k’D:x©Ä•Ý]% h -kY_˪ʤäºc^åŠã(ÎÚÞ¥(ÖÚTãUlhOE`ÆaËïæ7fšÊG¾ø"ë‡ùEªÆol͆=¦@úo—¶¿‚røTŸÊ†õc¡br¥0W¡Ðp»BTßðˆ¾aÛ>xÈ¥á_Éý endstream endobj 187 0 obj <>stream -H‰ìWéVêJ}"@ !!C‡Q dAE@áýou'ôxtÝﻬu~œ?¬ît {WÕîM)N¬®3Å2\5+âËČʥêB—ù΢¬Ï„¼¢­+¶lì—Gb\š4ä”ôÄtuÅŒo}4§/7犖Më’=P‘ôtÿª!ö<·‡D©Ï2oÐ1¹t?ÌJ“™‘“‹w›’$Æ…p,_¨’=léäIúëkIb‘Sãv˜Ss+:¶A›XQãæL‡xŽS¡…’ïP;rm\¾;%‘«E`_c)G´¸ _/gÒdøÀpù—­âšÄÞ%±>áaßÃþðôç¡î£cÙæâòŒ¹þ­+Ä%˜ž¡oëXq]a™½eÙŸ·|3dìÃ&îçsøŸ·D?mñчM˜mLƒSûü -ggÉ©ÖîíãÏŠ3¢‘¤²—ÆL«o=°7i²™…-±›XIÏdDæf†!=Õ‚ °"ª1ÆI°óuŒoaÈV®e6»új êbêàRݬ×hS xdÿòڦ艼ÁOMñÝ»'ü|CE5T”j:¸´¹B¿œ3§’Ø›%ñ‚©jÓµ¼îÓà:Dˆë*”*³ Žó6]°äR†Pwþ(DÌ*Úô1'‰%ƒwbVãÝw—^•$Æ.V{ŸÊ³OnâŒ}ã(GNôPeøDQœª­sô0¯ŠHï=`Ë€»T ÁæÛÌß' »_pŠfØJ¿.s=¥¤Ü™¡uB™·BFêáÃË• nâv|>‡Ìk«ßæÒ1y‹òñ h$þØ+ç÷µÍúàd€c¸Ï›síàë„ÞïH_Ø/ÉÊJkkoW8i¤ßDî ³ûØ›2Uj VÚ1ÎäéÅØççÈÌ'½…«(î0@hd6 \ºW¢ú•OÍŽZ@zŸ+»AŠS×QSfC‰ë…=7ŸèM»Í÷bZ¥'öäkžÃTè¸y™wCÇ)z'ÉÂVø=–Ðu⥹BÃçJhÐNIâð=J¨„î6/Qâ§²´Ó̶ÅeÆå˜\¼èž·l9ÕL§J–Ö4nÌÊ9u‰Â¹œ½^«¹‘™ç.Ûfž_Ëz:‡Ÿhÿƒ›AZnFqêoÐ>ZŽè¯Ö>Ì4PÒo~¶WOÚæù8Gyøõd«ˆj)Œ:BƒÝg{4øÃ‚F¦ð[ÁEèú\v’`>Ö‘õö5v EfrÏ>/ñm׊°j&ÙúkÖ F§]_•`óPHŸz² ‰û÷abl¨»° Éj½ãô§œ’‚>6–ÄŽ+-Ü/ý5LH!.1ò_\þH\„¿¸ü‘¸ˆJ¾½My£Ñf¼žÌæ |N¯ëñm#8)Ý]^õy*Âó,€‡úâÆmøy¼¦BV'Ž$˜á©í§†ª¦K½&øº »óÃÓÞ÷l±ÍjîW{©gírœ¯Ç £!sÅnÏÖ*WWt·»/Ó¡(`ضXV7xaÒv›& xVŽê¤góò þvD7ôQO’&£X޽‹9ÞJl0%¡ù%]äÓlÓtû†É¥XË*Öº©ãù‚ÁÁQAzû&V}?©”ÿaø‹µ6Ã1Lˆ„Ußë+Ó¶pä­,6Y®“YŸ=¿…;V¶[r¹Vâ… -¯:!GlÍä– - ŸœøÒ:rÓ!HøÆ Ù× ÖŽÆqÂlK_ÙK¨Ø…–¼3.~×—Tñqöž4nÐ’ï®t¦Q•' >Ú -ëxÛ„Š·&ë< ý5žD­„º mO‹–>ž#ZÝhßYæÜÿ¨µÚ·áâ(Z¸:Ô ñN–ß|ô¯RÔ §È‘š„ì®ÄðQ^Þ!4¸Ôèðeæ—‚i\/^3ó9íìÄÍÌ©—S73íª´“6³O·¤ ™¿¸üK\ØâÂÉ|z!7gî‡ÝÚ?ÕMÆëc£ÓÝd|ôá.sº› žÈÞ]æ7– à²×f§+‹§ÍNW4`å¨S î0ž6;]3û‹ËŸ†‹„aqÆ<Í|:ÅŒ»¥§™O§˜±O3ŸN1ãŒyšù$Šù/.ÿ.pì¨è -˜:‡¢5^â]o½é„ÑPè`æ^¸ f¸>vŸ•jÚ¾z}£Ñ'V¼å}CR„G¢&_1¶”e[kÒÓÙÐç -*FdŽõÚÞÍ4§6B ¤_+6¡ŠvZ…Þê^|´Ò$æšþ°PÁæm Lõ -ø¡Ë)!*\¢õ£ø w'?z°ŸuÜ“GÕ¨Ó¤& K…7 uÅŒûÏná³&2Ûp•B8_U °iöÿ“¯abùd–EìMØ” ‰*&¾ •–…ÓaÀ‰‘—©pêÑ -½;O€â¢ãY‘“ü °¤tûNþBhÛ3G]«mØÒÉLšLDæŽvè¥ð.EK•³UήVÝЬ‡°TîW‹@•m‰¼Û_½âP#:t~øpfí·‡Ä—%—:np˜ê‡}ÇG”€šN›Ÿ™l­Ìþ]ÍG{"©öÎT,ß4çÞ„j‘ˆ[ýÛñO#´Üÿ]îé•ýІ>ÄßОäû"—G(Ž%VEÑÖí¤Rô†8mÜØhº,IŒp [Ä´ÌÍÎrré~,â-%qÚoéòcÂHÉÁ… -ÀÞ$*fõ -*RvÚGoeèÕSc‰I,I“áÃÇA‡e}Â;÷ "´í=ß§‘z˜êkìé–¸øÔÜŠ>LÈ­%;d -ª2.àsƞɑ‰½ñ4ÿgW¶êûÁ•¯¡:’¿uD<8‚cùÒ–ùÑ[–ýy‹3¹Yü~÷Ûsþù“¡ ™VŸ\D¤Éf>tÈD2rh=’¨Æ'1uc|ËéÄŽe|úbÁG¡q4‚Ѧ@ñÈ2(þåµMÑyƒŸ:ß½{ ”ßÐüxt&™çz®•xñÑ0FÓAw)v&2R”ÂXXo^7–®êƒáïl)éï 8繫þÆ+•·¯e%˜žÉ@ÒÂÒmž½›µ‹sc"-îæ‘ÂûÖQÇMÒÝ›šw¯ÌË;„ƒ:©—î»;xg~8 -þl“NÉý'Z8ö­Zÿo´:‰åµþûÕ¹œ8³DŸ€‡ H JHä$l2lL0À˜ðþ·gFÉiwëÛ¥ÊU×@Bb¦§OwŸsþVwQ¿VëÿF«“®üL­‡Púa|x82„æ4©Ô9;Úh7“,ª]:µÉ§„ž+Žß+e5BêƒN(!‹0Ǥœr© |´%%‚åÄ H Fˆô‘ô®ðÉ~“âC¬ºU;êæŠàW¸ÞBÆPÇ#îz4ÑèÈN4r±; &CNhÍ"…W¼™‚+P™å&ÎÌ™åŒËbÖøi_t¸®¬´{jßɧs}ÙwoÉMÛãøB(E¯U÷V'#V<=FO:q„[˜TÌhÿ€e,`5`7?¸|C\ î\¾!.å•+%ü@X<-hépÇ'òÞ}:ÔMí’Ë¿«§Kò f6·Û¥ ›û´à⦧K°¸Ê‹îà@2Rý×E<< ~Aàé€&6ì'|¶_4Û•/ÕØh ŒÌ ÛnUº{~M–×’åi'‘\o[0mµÍ®Qh³G\néFcÈÕÔsÁž¥{kÕ6W…· º(µ^ìŒtmå¹S[iÎ_Ùü‚ãµÅÍG­óç䕌èÿ ò_„!ÆrÄ2•Y‡ÉåSV´åÐð-Ê£áì©°Š{ãHæx‘ÔšºÙñ¼wC„‹ÞUЇñÄïJ$›(÷›@‰G¿¥:ö!%¦YË|Ü/¾TÛGßci8o?¤“K½~£!Ž·yÁTv Q™&Lõ0"¨Æ6pÛåÌú‚°˜É`)•‘ì( iÕ¦}6Á4õIoPÔBqF×K½¸³_H=•WNhAâP£²öˆ5¡Ó¢rü ÿ˜mIãU8fQ a³§oö"»Ìð=Ì chœx˜A¡qvâaæ¢ð8;ñ0ƒ9†ÆÙ‰Iæÿ—†ß2\¼¹À_;8‹åeNçd\”íeNçd\”íeNçdà,–—ùÚÉÜ‹žÐß4 àbi³Ó5‹²µÙéš¹WS›n˜¡]Lmö«¦ISÓ4¨_ mNÜ4pÁS6 LT'n„ V«¿kî—ÿŒ ƒ¯Hõ[m„Ûó5‰Õ©±ÛyÜ/Ús6Qñ=᫈ªõsò^f[Ÿ´"±áغÎüN‘ÄVœýW°+Ôïz$×î02“÷f”XE =gÒÂùó­dÚÞ’b€9viÉáæÇ]zXƒ‡?>Ð$Ø>my©$“ã[VÐùY2'œ7j%SwP¡»ÿð"§Äò-‡'8§A=‹P›}\{~Hɰfù0,ÎØù×¥m•Mòí ô¯6EHÇ´½»KAÙëYá>¹f·yòPŽa=±’´ÌÀ.©ãæå6·YžÇiD-01ã”%§Ôž¶ -ø -š&ÙbWµÛ~‹SB5¹­-Õj¨’q‰èc¿p>¨•`ÅCÿf™/˜Äl¹»gÝz™†³„âN ÀVý¢ýž½Ê˜7âÐÍ÷¡,zêËð¬u¶–›*bgh@å$_ð•ËnâBÄ—*GètµŠ’žËÝ€ áÍs°ö4ñ%Å”È&Ï€-Ãû -©ÊYí, ¿õ9Ä â\¬p~À™a—FD,oçèJÚíƒI’"iá©~*ŒÐ‘ôÿpHÂ.Ôàmó5«ú‚%³ kÊ„Z9 .ŽüúNk –Èf¶”ͨK`‰½†ì¸¸å`FÑÚ -È_i¼ ÷D}@tò'j§JDƒÝü}·t¦å˜è²¬ûµíœÃoB’/µ¦I[Îyþ¥p2w™Ó<–jm¶„²x±1˜¨¾vògÚAô -CÖ!tSÎQ%¤ ûèT¹dÍ*AH®€› =&Üû_Ö ¦*ü£@?³EïôLþ÷ -¯ñpÀõ‹ ÔPot8Ÿ‰¼wŸuS»ärãïêé’üÊ´¢nÿ¶K»Ù‡§ŽÛ§ÅnzºTÜ´ò¢#ÿºì†æþë"V.†ˆ@ò›@‹hö>Û/šíÊ—jl4d0öÛ(©Á5(%uýRÛ«Õ««I$×ÛŠS^øYµL +1kag¦³Æ«©ç‚ÅgŽÐ½µj‘Q«°â–Aµ^ìŒtm幃]ZiÎ_Ù"ÂÔâÆÑ>f惣q‘ZÂG4Œ…$ñ"9ñ(I“ËI3ê¬ëž= Ê—X`„x³Ú*²“˧¬h Ê¡á[”GÃÙSa÷bÞ÷îvÒ~êfÇó|Ü Ý´ÞUЇࢠžøá]‰ žnñý–ÌëØ‡”˜f-óq¿øRm}¥á¼! üÄP©×¯`,€‘GÇÛ¼Æ`*;ШL ¦z˜Tc0šf]ÞHÁ ¤Ñb&GaÙ‘ì”U«6UbLSŸôEP°¡8£ë¥‹^ÜéˆH=•WNε 1nkûÝNÖmöVóòüc¶u&W5àác65øÍª(+ýàòípùé—oŠËým^äሦ 3yPçð:ؽE»™dQíÒ©M>%ô|˜Ï0›+«ÙœÖ†ú JÈâAÊ)— -š–ùhs ©È áé%ü‚À±µì×>ÙoR|ˆU·jGÝ\G[¸Þêc溊¼Ø]ÿÑô§ÙéOs±;˸† “Ú,"xÅ›¿¤ËM¬8süc«4 kü4MG‡ëÊ -p¹§ö|:×—Õj_ð:Á‘j -r-´­(ÿ#ù#Fúÿ@þÞ4C´2ŠÀv Ü¢`F˜Ǜ‰xYW›Åk­zænƒÌÉTv»lf¦åB펖 ̇b!‘\à+b†J¶4óÅœý?¸|C\¯‰C2˜_ÒʉI梙“Œ‹Â4sb’Ahæ+’pù–¸p?¸üg\|E4 ¸@¿5Ì‚p{¾&±:'_;s“MT|OX[jÏõâ6/ïe¶%ð™AÛiªžíƒðÌI,`ÅùÑE»"À-®GÒxíÎILÞ÷?ö«s+u¦ _$N—ž”^EŠ]D¼ÿoϤ â)_Özœ?, cfÏ<{?–Ä"¶T#«ŠX®ÍE«ÐîÚhðc ›ÂÛ_wàÌùúƒ*Áö)†oDS)‰¬*ø,Ì ç­šf¥×~ :tÃð÷oJZ,ßrØá€žšY„Úìë»G RÑ kµÍà«Ä] »XÐQÛ¤Ü'пÛTŸ%”eê!píÜ]ÃâaIšÐÃ’ô8“£ÓAÈ/Kѯ )&Ú~H“ "rIäõ4g*vŠøÌK:,²¥~a7©ð,A -ÕÔº -κV3{C…óQMƒy™ú·eüÔVC0“lÉí“n/§àLzg¤ºžÅs®­mŸúšÜk¸ŸÒh²–e­¿ò÷Kò]BÞxfôthÞÆÉëáVPÇ‹QâÛ†FÐo|RdžR¸ô9/S²pÎ?°™¬4Q3âl=MËEþ®Í×’…ež— r°4%°"ªLV«µ¬X ÝæÅòê±,ÝlC)¸1¶Öω`BÎqkËäÝGE¼»:ájs`ôSë õ¹ˆg_XLÇnEÄÔ\°ýáØS™Ï>ÒáM²-ê`jn°×3F<›Y“;»÷™àu2ñ‰§ÞÓ*¹¨àK!ÐÉÎR”÷C¥8 Ùfß¡a&Já~¼“üçO…”[û׆wÙ[Ô}ýî=kkH‡%ì}ØâPDÎú[WÔcQ…¶)©S%lŽŽf¿2ï¸ÔØjÇΆm>ðƒ[XMNÆÁ–IÆÂýü²¯©9:¶*G?ɦvQÜ^'“F‘~¬M´ÍÍk·H?/k¤ÒPÛ–Ší:ðpÄ»tׯOsŠÇ ŠÏj$HS˜š‹°!VÁL7Œ–ÐÆ{ õ)g`âSgI)L4@]£ ÖêàEôÍGZ9¡ü,,oó9ûüÅ­>^èñàŠc+ÂÅÓàŠãJIž$»Ç< H8‡ñ6 áx„{ìP@Z`„x«Û*!ã=t.Ÿ¶«-F·­À¢|s9{,>'N° 8Ùl¤)ÁŽç=ø¸»$(½qÑûÔ“Øîµñ6èðgÐv}½Ý!%º]Ë|Ý/±*t?Úå¼% üDF Á]`4¤›ÏÛ¼‰Æhª8ШL·I ¦fÄ"\ˆ Íú¼y³¡ ,fJ ^{£8]Ös—ÔØ$Ý\&ƒQIe´®kõÁ鵃äÐaóÏÚÇf£¨;Ëæ¶À<ÿíœ"Ÿk¼TŽYThIJä×HK¤¸üçpù7/ÿQ\@Ôp;~ΰ'šÜ.ÎÅú™T©Ð§Ò¯ù´0`=Ãâ}žÍ)õRõ˜¤"na—\´~ås§¥"ŒÈóÄÐÎÎ:À~}áÀ~“Ò}¼º.ô -¯FÀ-^…oáÆÆôUU¢ï†V\í)θš‹ßÙ96bfÖv ¾ Þ:ø ]ncÏÀYô“ÓeDå§§”Œ]¾TžÕ%ùÑËŸæ†J¡:NœàHµ(J2ÔÎ=þ¾øûH,ÿ‡Åÿä”6¬Ÿad¢bç7 ¸EѪ–>O´“‰²^h—®ÔêÑ›“©l6ÙÌLÍ1Ýžš Í/Áó“§QøˆŒ\…-Ò1ïÄœÒ6ŽmãÒM?æÚ/\ôÔ³y†°ðŠ€‹&Õ É¤Ä' Ö S%ƒ¬ôg"ty&W Þ5%óÌÛGe×éÅ-½ô‘¥ûèv ‡él:>ˆøëú¤N&óbÔ£tC{¦Ôyðñ¢ôAÜU¸¬Î;ºü„ÓQe:™žW;ÈäsVÇŒ6æLoCÌÿghÀ] ±ñxhà,hl<‰ÇÆã¡y±=ó7C“ãþzhà,hl<쓇¢ÇCã#ñØx<4p46G‡FõEÿÆ€îÛÀ;€=¿é¼spc¶ðΠ³<€wæÅöÞ‘™ÜyïÈ ¡oyïÈ ÷˜éŽ:òoÈ ñ˜å¼#38‹í¼#3`~ÛxGfË%3ÑGâÉ ó˜3ÐxBf>r/ÐxBfÀ0î@ã ™Á.î@ó-™ñõEúC2ó‘{Æ2ƒ\é4žfg ñ„̾¸'qÆGîOÈ ØÒh'~JÒ¤1ibÜÌŽyòs¸(9\ð¿Of°‹;hzBf>r/hzBf¾ý é ™¡]\Aóg2ãþáòÇ¸Ðø›ad@‚öЄáÏó£V´œ’9cÝ<¾l²xÄßäÂ`^P>¶#ð™Q×ɪ-ÿhG…Öà+’XÀŠ ¢ÿ•vá#A2^n¤ñ ‘“è|hV¢“pÌTAÒäFÒ*´»6šLYÃ&Šö×]X¶"{?àħJP@ŠáÑTJ¢« -:?‹@æ„óVM³¬ß‚Ý0üý›’Ë·¶9À›£f¡6ûºéØ0šawÌO‹ø2q_ÚÐQÛ¤Ü'пÛT– aBgï„m¯g…eê#–]‡æC8 r¦LŽfý’&­2°K:Ǹ~—©‡@DRKŽN¥ =L‚OŽ'Í_Õi -Xw¬à_A¦šcô¬ºÀ"²í#År銷ÉžžÈ~™j\ôvƒ #—‰ì€8³ŸÕ-oY…³Äs®Å RXlõôî삟.K+ѽU@œÝ^EœÏ ¨/%±E$(OºÙÄú˜âï—ñ¢4¹ ´]!>ò`)磚×±-;ÿûI8Õ^Å ž7*UÜ¥ž+@\¹¸U㪉D¶d¨/«_ûPÞ¬¶¿þØäa$:!–ÅNVRçɘLi• -ÿp"âæÌË1ÚÞÉ5@‘{ud,.á?ø¤È<¥2ÐYs^¦ÂÅ*ÿP.Ä»X)!Þq˜5¢XF“ ’…D¿T:Fñ‹éXq·Ø©õE|♆l•\N°õ†ÆUĆ^àV;¤<;b_œæ[#ƒ©²™5¹‹.ÈÐrG ap!>òX)ñ .åûBr!us¼p -O:Ë‘Røï„ý¼„Æ7öâðÏK˜ãK@_`ûó{"?/á¾]â`Ëïo1^Ïà;°¯¿ôÑ -ê¦Ú5E6Õ·¶ú¤A‘ó@Ù0¶¢2E5ÄÄ¢ üÚ¡†E¡;üV€)²Ëv‚Oô ¦ý?öËt+ue‹ÂO‡˜@ † ­ô ¨€ ôŠ‚ˆ¢¸Þÿ®ªJ‡‚ž»%g8Æá›MBusÕšßt¢Ð4¥W隯t:4ߺ=¥™‰ôJó§O*©1Ð,çzd&90‚AÚ‡1jõŒ#Æ£¿Råð8ØÍ¥bÙ€VI†²³ûQ(æyR©Ñ'Ôa †b–Nõ½"ïú‡ µ`gB4þ9 Iüm$wÈ$w‘d‡îEÐbãæI<Ÿm²‰×LBla4 -Ëp)<ÙBOë6ü1EZÉép5 '6q)k 7ø£zB‡å&9QUG¶¦¸e¾Aþ1rþ–md_Û„ÿr×¾[8õësÔ-ï;3ƒæŠæÒ‘{ó:ÒÕó¨âÛ‚±ñ6„ÞbE{!ƒE/P†Iö¸÷RšSLáY62ÉtGÉžwD·=©ÊepÃ"ÍZ]éy£#úƒ ‡¯f]œ‡˜1x;hD qö—¼(¸9Iæÿ‡îÈ =yн¹q·ÜtïDnè0û C;£q±maH:èò+uù‹zÐå_ÐE@n5̱ä%;àÒ™„™ÊráUíhRì÷FO¹yÔ#¥ûý]^ÁÍÇ dé=šÕš  úG®>´TàöNV»ö˜â4ÌŽ“¹zùäó|Ñiöj}4S{㚈´üj«S¢˜ìy»=ûëÛL~6$l¨d_å%z0KÃUL0ºÀ›‡ÝG€²GMAßø¨#Š“‘èî+d­"wåù£ò1®º ZÝ|Áå4M­´¢vAâ ]Ù³Ñ_™?x%²ÿmæ/T^S6.%qò4áÐ!m«•÷2éo&ÞãÓWOSKªÊ‚ð–ç­ÉÒüãSÈ+²Bº §aš /4ÛBI‰ ,†ÎD¿/ˆ,šƒùÄmó§šJ5齺~½+šbÔûç?1PãZ6Õ@îzËj”y›L„fF—A¢ÂOòièªðxÏ!¶õ’5Ëâ27N} þE¾Ñ× -s×}ö²qãQGLÛº/x=89ÚS˦Bèˆjâb×ÃÀ¡´´†ü"ªƒ ‚¤bž]A²¨£¸â=èò u‰½¬ºüF]&¸ ?6â/a‡M|ÙŒÃ&C›qØd(ÆÊ˜Û¦çÑûã„ 'ffLç&Ô˜™1K˜+ÍŒé\¤+cîH˜iï‰öb2³sÄL13;GÌc1³sÄ {1™y1tù•ºøÅÉåÿI3]P;s¸™Q QÐÙf†Ò+´3‡›šÚÙwͬÖzý ™ï›læ™QŒÅfΑt~“Íœ#3|_t6sŽ˜ÿÛº( ôɸöá Ç¸4Ò›(œtçx­¶†6‰z²¿R7e`)«":Ž<4øqÁêñq/Ý5[aÛ~D§ž„8ÞIðÛ¢Ï -•…˜äŽŸPŒT¼ !Ö—<˜¨~ÞÐuà.²/r®*YS%r—­*jkU“Žëø²“N»ñàñ; ¦»ÊÁ^â úV„…¶ü!–ö2»ô›:`—|WšæÄ³Q9@ÌcRÓRð³åqêÍ;înŽ}‰Æ¶54TuTÚžt9…E&Ű¹ƒÈ“§”Ú6)tÐ!ÔÛKõ -uË xVÓ4|Ú0ž¯"BþÔZf­OÁ<JN°ø¿råMúÓ\”•ïz¤Õ(O½k¨é¡j³(cÐFy•“ŠùkÁ¼³ð;ä -±Õ6âdÓþ ^‰oѧæw£ÿV^…ÇE$½ñrÎn¥%> ÔóÒ‡pO†!*Ñ»8f5i_ -Ÿ Àñ¿(›Ës‡ØÙ¬þql5Ô¨î\¸˜ñ&'ßÅsû*þRgmýúÝŸšGÓïÐÊÛµŠ—0èÂúbeaÖ›K÷G/)øÎ§BÉ=‡e•O%>>&wZAõ<Ä&Ï¡ìJJ*6½ -Ún¼©ZF¡H¥£§Ì‡ß‰¡_£K¥l -zŒï ”½ÆWnw-¿Áòµº%.R4À&áø!^LxLŒp_0–”ÌÜÖÑS]þ*ëâwbt`Ø“7Æ2ctσ_.Äo-D¿/Ÿ—y·–²u!ioáýë…€a<Ëx!¨[n_Šðí™pÞï_áð+óåK¾ïÇñÿ -ïËö—P“j`àû¾’f“ ‹cïe£8Y>{p;õqŸÕE!¥xÉ’_Ãͱ\…`å–Ÿ ¼|——äȲ–'¶ÌL¤útIÎb]Ú¸¥ý=ï¸QohW>ë…Îsd³â¿@ ò@¹êÃæ 'Eê»A­”JNQg?y¥˜ûs ãL€TA°ZŸÏVOg¨”$h™…ÞÏ;×ï4ú¸&¾oøë§^ûYèkÒ÷ëYE~ìvÆ:|÷÷ìvÆ:ŠÙc°Ûëˆ.{ -v;cÅØ‚\HÏO‚ÝÎX‡ïþ¾‚ÝÎX‡gÙW°Ûë(fÁng¬ƒ³;ð®ƒ.¿PX÷A—_¨KqNcºÂÄÉÓN#hOw‚{™ô7ïñé«§©%Ueö¼5YâëG…ÈŠf‡Ó0͆v@ q[Kõ\çqóÔý‰C ul˜OÜ6ßqª©T³‘þØK™ë]Ñ8‚’×röeQ^¢k·@Ùo9œÅDaTæñ#ô`¨Úè×ÖYàȧ¡«ÂŸe[/Y+ñåæÁ©/{‘oôµÂÜuŸ½lÜ]¨£@¦mù ^Œ-½~æž¿6ðdÿ†ùOˆ²CÈ”¼d.I˜«Í…Wµ£I±ß=åæQwaŽa×æïÆ øsߣY­FDXMt…ßF‰¤bÅN,qí1  amRæêå“ÏóE§Ù«õÑLík"ÒOò«­N k!÷×·@}ºÝ¡bS£4\Å ™.D_6‘dÔtwuDq2R ç„ûŠ­,äù£ò1®® ZÝ|Áå4ŠÑÔJ+j¿/¤žŠÈÅ»…’ØÈT)Ì0âã7®Á!A˜¥.Oå»yY¼ãIJ -wúf‰N"zÐå×é‚þ+tùuº•«?̾MuKs¡Ž™ ø‹¡†ƒ&³ ›qØdÌüb3™•´ï„©óØf‰ì=aÂ,Š9–0)ÆÊ˜Î%LtbFÆ´¦ÄÇV¾=3Rß`fçˆØÒdf爙b,fvŽ˜Q‡1˜ÙFÌiélyÐå÷é’r'¹=63ŠÁíÌáfFr¥ìp3ßGíÌáfF1¸mmfêMJÞ™QŒÅfΑ™ž+1›9Gf ‹ÉfΑÜ}“Íœ#æƒ.{ÔE¨4"Áý3ÒÅ`f爙b,fvŽ˜A}“™#fÐÅdæÏÄü²:èò·º( ôÉ`˜pÐc\ éMNºs¼V.ÒÕñ'’øðWo GŒw\°ü.>¦EµíGtêIˆ“áOk~û°²“üÏñ©x;B¬/T¦aæÎć|ðZ_hç9€‹!+=ÎÞŠ~œE,Š0Agùéï<+>H.N¾+MsâÙè6„ö>áAd-%>Tè°¸»«œøïdàø³ˆa86ÄÒTkT>=[—þÇ~•m¥®Ñ/à#‚4A†ÈA@У‚‚âq€øÿ·ª;"â]÷ÖòÁĤ©®ª]ÃÞpXHZåcNß0•åQŽzE*ö!‚Xè“K{æ“QTîã0©Í ’’[jGy‘ Å~"z˜RâÁ¬¨ù!N%W+áÄx,‘cx/Ä5ý!%íAΰãPÝ£Ò‰¦ÛÀoÀ¥’¨˜Å˰ӽðì êúç`JA5A‘z\ÅyV·ieý5<ųï'€c¯ mÖjå ”‰zâ&¤¦q¼îŠTAŠ^Ô÷îD}­MÛ¥h§ñ©~íiupR‚öZ™Õ ÛHó2,4üaf.Œ;Tà xÝý±o3kr“cüaU)Ë~¨ÆÔÚ'J³ÛÖszxÍ@⊩´h~ØIB3•ÂÓûx1š×û×”Yú/Wäæ…Ë1wˈ 6¦ÜU²ð›R¹éæð7I(‹®©¥– s·ãGíKÁÈÛ\ЊøAzλg2ìÏSß‹‡ÉŽQPJ§E§‰±ÒOgÈ<:ѱÏßsYy 7'ÓT³•‡üóÚ†ÈÜ’u*ù3Wpr„©+Ÿ9"}éHjI¡5ö‰+(.wç§nt§#øïAoÙyÈÉí§G0i÷@¨}è ;#¯)ï>²;½lòû) "[á6`[—ÿ¿øp4[wø ] h,”É‘ê©aÀ¿5ÁBC•Úî*ËÌÅã¹Õf[^¼×U}&vËÁäQ ›»ï–*zV£{=ö|;ö鯠LªÊŠdcNK¯úæî@6R‘Ëãð<`ûÁqYÜ×l¹oXœÆkó|'ÿzŽ9I -—kãF¼¬A,â]ÿ1§p „L êÿfåJ…èÙøýâ<Ä -Mo‘ež‡íÀÏi³E9ƒlª/Bzxtì;ºx)?.÷ü²“;ÎöU&.×À!' ]LÎçRÖÿ¸üq#Ãúÿ°üŽEF ‘‰)¾€›loÅj¢•L˜F¾U¼Ôkî hNº¼XdÒ·z6xÖÑ³ÂøB)$ø¼s”•HÛʉÕ/¼Ã[,é{w_Î?éè•qš³ñë+F‰Ô”)uÈâÛøÉACZ‡©œ–ñ™l!tQQX -ô»&±b^ýVݲÐ&×â}q[õ<¼3Z¼òÖaO®õ óG=6øèzà7“â’»òë¬öL~bùL™ˆãZÛƒ\(&Û3XX=½â?¸|K\ä\¾%.ÁÈdtãÿ;K&?®™=/È®™=/O×Ìž—Œ‡w5æG…Ù{ý; -Óûs -Óûs -t¥£1÷§0¡’¹EaÊØMÊÿf̈‹Í™÷ǘaŽ9œyŒÙ³Æ™÷ǘ=¼Ë™·1fç)þƒË·Ã%\ïâÿf€ ޳=3Ô/0Îö<Ì<<g{fPc8Îv ³—Õ.ß—ùÛ.ß—Ÿ~ù︨3üfsþ˜ì·×ˆ2„Óƒgêë½¶¡k!.ÖwØ/¥‚é(‚ºë®lH/²G¯§¨â×Pç(°›.çH8©ŸRiż‡‘€þ?f*†b>¨—–£ý§-†L²|øÛÖ ½Äæ-d83áúþòË@-¹W¼"¹)?.‘êí5ÆŸ–d#¹¯s1K½RærÐ#÷©~ÒŸ ;¢/êãü%@­Sÿ`ûñ­ ‡…¤U>ædEM­eŒ‘t ¥”ž3 2±ê Bt”S“žB¥Öpð5lÂÓ=³†§3UƒdÉQµñ èÊŸLZa¤–G™¹0îS±ÌŠ’—”ÈCnÑ€”™¿þD}7K„[hI8v}ŽoE€„ð+R:¾JCíJk:½ñðøÔ–T³xvºžD½Q_ãœ0Z 6MP¤WqžÕm‘V…âÙw‡|d²24ÌØ;dXª•·š¨'nRD7Ž×‘ -!HÁ‹úÞ¹ƒ¨ïñ±åZ†ŒQÛ¥h§±Í‹í.OVi">_Ø3<‚‰î°DÃÈxÝø€X6Ÿš\É*ç•0Ø(|(û€~”NÊÑütžVîçYEªsÔË)¨Ú"ŽBxé/¼´ª”e*ù>5*²C5¡ mè[tÁ69"zh”Uîr~‚-…¶s6´nÛÚýÈÛ\Ð©Š¬Ê5=çíèõ'¸F3ÐÎSßK4ÛåÞ¨ (›Ó¢SâÀôc§3K•ÁXÇfÜôÂay 7'œ»YaÙ£þÙ]˜±[2Ûí -t÷ix§#ÒnG –ò0µÜí -¬ êr·#ØšÑO[°íÑv`§·þ¯3ëÇX¤mGÖ' Ôo&ô…‘×”Ù‘Cí!϶ÏgñáD“h - –ÍCªÔ¶¦åÇÂßúÁV',”ÈXhŒñ²™,ŸütÃ0> aÆbñ€;Ç"áŒ*°دáRwweæâñ|Û‹´•Yæ8‰1ºþ9~¢¼r¡D¨É…¾'Nê]—9o1ïÅMwÇÞô…½PÏüt-L Џˆ•L×" iž§ª2 ŽÀÎ’›ÖÆ•©®~W×<)bnÆ$l¡¹XÛÃ8»×77Lg6“ÿ•£[xÖ—,k§í»’FSº¬ÀÇIÁ^Áb5ÑJ&L#ß*^êµ -wý™./™ô­ž žuô¬0¾P -Éã|„ôú÷µM%*fLÒŸ-²Uøm8¡'‰?ãÕ7ïËù'½2NsV:}Å(‘z™qÖi…ˆoã§œvÂ-àŹ·¸¯ôrZƧ2ËŽ~QQhèD¿k+æÕoÕ%7ÚäZ¼/Nc«ž3Z¼òÖa·é’Mµ°’Õ³÷³¯š]ýfR\rW~ÝaJ‰uæé3eØlµ6¶½L³¿,,„VB'š˜R¶ë•ÙôbœqД]oºéT1ßõi¯9-ÒƒˆÍåð2VŽ=ߎ}ú…1蓪²"ÙX#™xÕ7×MV ¸Ù<<æä€ñ_Dˆõ•ôndË}Ãâ4^›ç;ù×s†_á2pM;žˆwýGŽêb“(%Dg>“Y€v¥˜¯dFê¥ê3™!ÛyšûLfÀ0ˆÎ|&³íU‰Ÿd†Ü«Wçþ‘ôýЉÌþàòââyLÿ&ñb5—Cür˜zí1ýs˜^!ñøå0Ñ!ù ðþ5T/žfö¯É@&o áW“Ù¨› ÜÑÌÁtØ¿¢Á»âcÑ€AeãsѬú¾¯Eã: T4G?¸|¿‘Ú·Á®Êâ~ž¿h7ÛÒußN*^ ýÂoj–aMm® 5ILv®QU®Å{å ³ÖÛÞð)`uÄ¢¯3\ÉKOé¿Pi…Ë„@É+LL韱¦,4ä7êös©¾Ý›¸t[›Ûf@º=ÿ0pxa ¦å”~ñ1+;w°l4)@JY)éá’ŠbÄÑ.؆¯8éᤤ2PzqŒÊP¬ â ~ùaíñ²“Ãq7‰ ·oèb˜z\õ€$ò*~||‚hÄM´ÝM+€ùCÌT™¼­‰ãN9…òÅÁ+"—S\[Gz+Ƨ¹‹Ž¦‰YÄùtx1W™ÄŠ}eÿ„O-£ h&ÛÜ(4èWè T09¹»WÚ¾Õ•¹jÕ×% !%²ФÎVß.1ñâ³\NŧY,½5]‡r]X‰í%àú‡ÒÅö·CÕ0ÍòÎVЩ֝Ößà,h¦,䯗»À·‡f¤ oφ í“>¾;,µ~÷À½R›yµq;ÿ]rBÆ YK¼Ê˜Ù3qŒ%¥‡»L\ºH°–’? å•l7~Žtpþ!Æeþù$)î†"äÐi!@‹ãB#‡Ô±,;oTÎj–+GU™÷z °lç‘ …)v_Ûì˜OU˜ ÔW¤f%·ÕÙ*3Ä›2Âè-±ÍÄüTË#0(VÅ=ÙPž©Ž0…hÊïXÉŽH%_éuŸ…Ñ´å'¡ðëP> $öþE épþ¸| -HÛgå_ïDü2.Œ§èÄ}½Îá§SR¯áak0„‹µœ~ö˜¹NÄ4 ×:XlI£ù3ëW (#;t‰ëd~,‰)-LÎLþ ÄL˜ÿuƒêWCën£4WæJP¬ñbôHžR=R¦""sAˆw³Uù×6ec-?FÄCªKpÐ_ÜçÂM ð=ÇŠ÷¦\q«šÍÊ…Ò0?PìT5Æ÷II,ärVìtÒžâ€êíäWx²ôë0y·¿¬ ZQǩڙҟ”D ×>Ú9ñÉí\îbG{Iw¼ËŸ‹÷oJ÷½—xÿ¦twuòŸŠ÷oJw²Ë‹wOºŸÒ{IĽ¿ãÝ_"èýïþnloÇ»¿t»·ãEÒ]þÁå¯Äe?KõƒËÿ…‹¨¦ë ÝkŽÅ09—Î$Ð* 4š.*¡Q¡×uÀYd'zPG-ˆZ¹M ýa÷]бQô ‹ë‹BE¸ -Ñ.Ù8õµ T¸j)¹ÞÔ…»£þh\/Cc³;¬H ™7›í¢qÑj ”Þò.“Û¢ €ÙšëƒZ-[*Ú‹¸;à”1c púèR§!ºwÚà2r4¼Ñž¶é¶&×´)Ĺª5hvry^ç,˼lê›ýƒNEÁvóÿG€Ì -·v endstream endobj 188 0 obj <>stream -H‰ìWiWª\ýüL@D™ÉcÉ¡ÔÔÔꦦ·AKsøÿïsŠÚêõެu?ô…… çö3ìÍåÛCA¸Êr±Píg‚…΄ãt­ý®æ/ûºèö#¯¢ ^ ³Þ8—ï§A6;÷1xqçôb™†?ß.…j3Šb„„§±Ç/c^4yÙpR”„“e–ke•~|cZN¶ Î¸\ãô‰dæ-šŒ=½4ɰX‘ôàQ#imæ€gUYÍÖÓ2§;ë©8bn,q\ãiá9T£¤¨!³œ6Ô¥®#{âÎÄâ[<Õ[ê…‘¸E4ÒbM™í]‘…‡É{Jº7²ñ:«,òõu_É·ç¦õ<$QVbþ‹8¢yÈðÁ£ÀcRáÖfñAIƒP5†£Vèö«¼Í(ùæªaNùǨqi5ï{z0Í[¦0ŒŸ]{ÞæŸV -öΖÞÐÝ¥é’mà(AÅ+•T˜Ós³‰lv¹ÄjOàÃX„ËKkYî_ô/1j8;¢0 ñžKáÔJ‚÷+±¤Q€®&EßD06áE?Éé§l)YO%‹åuëÆ.Ÿ“W2“˹‹…žÚyîªiç#£žd¦²\â]lþ°@›bˆÙÓ 8拃¢ª«K¹’’=dc{µ³èœ1ã¦}>Ê‘8€FGr -r5‰°”9;F­ˆ{~.³ëÑä,S!ðâ:¶÷Âvs8Í]ñÉl½’Ãöjgì%«uø¹ÐÕD„†ÄÚw‰|·þv¶é’î@Ýëw°JmÛç2îµJÔH¼ÁÏ–€GfØÅñP=…cïÔ½!O¯¨B,ÅÖ~»kÙ\’uœBµô½­oû¼ˆÒÛµ?¶Š?Ì -³ßfÐ4“Ä.ÿ.è§ð…ËoáÇ ›])W´Ý0CC¶ØÆÛŽxâÏ>ÅÏœ-/60fl¼?çðaéUO¹á—í©¡•p5Çø_`HЪrü-ŠÅ¯ øSIryÆ¿§¸W“d»þš“ûY³â;šâôý*›=ÅÝàf£}qh¥ŽÍãI ±¼*# ÚN.X0Õ9CÏD˜ØmN¡I¦…Ö£/L´7Bò½ûhŠ¥a%î­ŽqÍÑá³å©>Œº»“=ôèìØ®€ÐFf½ºdòCë•Ía‰ÆÕ?3*¹ñ¹#¹”RBe±ˆ¥šã tXpb´lXk™R¨õù©’oQ——“”BÛƒ4¤_‡íS$ ûÍ5h˜øV~&*Ŭ–±[jð,I•rz^†Ã*•M,Î=#–º•TǪˆŸùEƒ¶0š8þŸiáiÆ%÷{ð½òXïVé~†Ð‡§RœbΕpÚ*ïý³y-ïNÜ֘׋æG.>»0•p¦PRèl¹ >¨:ð±b+¢Š¥Õ®î˜’2bÙ8 -½˜^A²hM*J¢Ü¿î¥ª·ŸÖ"ë΋R¬MVá Y…/Îs -U(šS— „çíQSß›¨oî.Ç1vAG0p¡¦{ ñÈìå3fï=7§ â—U¯+¡’QW¢ê\È507S³|Sˆ`×fèŸ.9q<¸?ä+ÒüGŽL’sÌ`¸‚D<êHü‡ŽäVý£®äÓµÕ玨±Æ†`:ë·O.³ÝX+£H£ëܳ7eq¼œ0{í,h‰è®EAW#^Þ×`Å«;ä·>g³óÏ^`‡ êÃZCû匌Ɏå‰j,½‘±÷ùúY$¹sGB®m2nÈUɬ—£»2^ùL±ôºaµ&溶V#Üö/¬ßH¦T¬„â7Idãù!' -E+æŽfdÌÃrKx½†Ýf4ýŽþÄJ6þK]Š}KðPY!Þ+ Ohu/ùÝ´ñàk•øF—Ô-TÓ×Â6ðkh©bF1ó[E‡7i/n ƒ,ìýÓÞ«;µ¿SËæY6ßQw»ÙUõô®S?È”¢÷½µ|HsjÄ. -Ýo&‘t‰ãR’ï–O˜‡€`9ÉR?«ëF˜0E9×€Ë_QŽÇu#Aýåx\7B%UŽ_¸ü“¸ð_¸ü“¸ˆ«'B9×õw”ãqÝèk±?TŽÇu#ñÓÊqŸÕÿêòG<Öÿÿ.¡ÚŒ°˜ðáRÇ/cÄj›üž·’p²Ìr­Ì"ýøÆ´œlAq¹ÆéÉÌ[4æ[€KØN¬Hzðàh3gÏQ¯D˜ çdÓ/ˆx Ç ²)~fïTo©Fân„E¯‰j¬wE&ï)@ãFöÑè+ùöÜÜ¢Q‰íÁä±™aƒ÷*ÜÚ¬w7Uc8f…n¿~Y4ÊœòQãÒjÞ9ö4ô`4š·La?»Þõ öë }}ˆJ‘G5q±o(ƆA奵,÷/ú—·MÅLB¼çT8µúó%CPxœ<̲€qð0#(<ÎfH¿À8 xÉ|á.’½ÌŸ(ÀÅ×2Á)P¯¾– NÉÀ„ñµLpJYÙj™#JüþÂåÄå$ÿGà ͱ-gn˜¡]¹åÌÁ 3‚Úqæà†ÂeË™3À@—“1ó9spŒ¬Ï™ƒcÌ0ù}Îc+>gŽ1.>gŽ1ÔŽ3ǘaZúœ98ÆŒçØvÀÿˆ1y¸L¿Þ4õAhÒ4€Ë¡Ð ¤iд<š4  (4Ô4WïÔ¯7 Är(4i‚ú 4iØ/‡B3¦!¨Bó‡MóºúÂåwqQgènK05žÙ6…4…\wŠ}ÅmæqKͯîß @Œ+” XÑÈÞqÔô¨—ïúüáz?EçL‰ 9,ìE½/ )‰›¤sRñÛHPh2î -ϱ\~ò½£IƒžrÃ/[ÚÕN~´"÷gE0ßY~x»RŽ– ñ»bå{÷Ñÿc¿Ê¶RW‚èð HÂLBÂ,ègD†ÿ¿ÕÝ GÄ{×Áuσ/IÛ]]»j×ÞÕÉÝ?ÃÈz–Ÿ7ܲ©ú0{› ?WyH L††¸ü%@­Ûøpèã¶ ‹I2_ €ŒÙ%3€e® -ÒÉn ‡?9´ã‘†ä ðÔð,‹ãï碙«â˜$¢>Eˆ‡rLÊ®&mbðS¦¢Ô¶"ÃÏE¢ùõ.jÛ+E¼ÞRHœ—ld}^ÄßàÐTP`Õ^§ÜdKxš øš²¬Ì núŸ¯ë%(ÉŸíšÔ?[DUû¬ïÓÜÃ[(á$k´Á¼~³‚Rª¶ðF=QºÙïîÔjÃò×HÌ|u0‰ï=»‘@œæâû»x6 ]ÔþSŸ0]…¿:ObÏMpôíâëÄ0„ Äz»ªPŽø¡ä”[è’BK¾u!J¯¶=¨xQŽ‚ɪÀ>„ã¨â«"!Í×Ôø5v7ñëµxóêΉLÞiiþÃg`Íÿ–‰Ò¥R…{ôªyí 1(ç«<”À kV¨ÝØ;|o=g+Ì›Hg€ È,)Û¤!â…1Ù¢_g÷ÖEá- ð[ê®WQ9·Þú0q£vÞ÷‘7ž;›±ÄŸg¡ ¨Ç ÈNÄ7;¬”>„ýÛâìPÂ~ˆ²¶Á:ùc(9¡º>žÄTÑ£ ŸÞ ^¸|ºh?·‡– »°_,sF;ºèÖcDŽ/ù<½ˆÏñ܃Œ¡þå‡ô–]2é%Ñ­–0üwáÂPÎR -8ËÏýïìŽÂ$õ?0&Ãÿ&MÝf¦/Ú6.¶]]­2\¡8nôUíRv¹rq±Ð¶·¿:ðS4 -ì+=Ç5ÖYþÖ pájî·ÍÖîk¿&ú³h˪LQ˜Åñ̵‚›hõÎÒ\b( aKDRõ8$F†9=¨"ó2Š¢$„Í)vûÎî c‘u\÷'ÿ&ªd;PsÈ&œ¢…6"À‚µsTOKËW¦„Úx Cù¸Û¶<à7Ní6^Ìá7Ní6 cüÆ©ÝbË~ãÔnN9 kO­j÷¼Øî¼S«ZuHמÚmXzlßoüG·¡xÂCç¨6 õÜ$Os¾8Å'ÝR -uðbÖ(ÇFË:/ïŸuµÊ4ã6'òp è%±‘@XŠ!¥¶z \© ©òœOÕÝ+xÑg/ÀEгÎ œ¢]V|uQ»;Í[ož$-hõh"51sõAÞ\èA&›Š_„= }Ü ’ŽùB¢‘:û2Öþ¦ûÓáB1ªÏ!Š˜ÔØð,bª m¬—QÔBN-ò)þ‡…N„[Ëeùe2¥±Î -%%a#æä¦ÌÏ<ÒÖ”xeÄKú!DQ}pb·³³;o¬>ÄkËB·°ècÅâUp¤ß0W5‘¹H…Ú€÷:€XÍd¸éß4(væÕQŠÞ‰*DMú› ŠRS%J» „Z˜ÔËõúë$Ø/Ÿ’œ²O.ßBf8c]þ›ÉŒx1ö›É ë1ëêß6d~pùq™áÎá9™CÎâôN\ÒÎË|Ÿ“qQ¶—ù>'cÍ}óÁŸ9™\þN\¸Æµ9Df‡ì©É î²ÓÌßGfˆa,Íü}dfeì{‡Ì.ÿé }³µ¥ñ[m!,y.3|ÁÑ:„œ]Û¦¾ª_ÈÒZbÏÑtœÝÛò í†Ë&˾'<‘±zY|´½päôoU(Gü~®Üªê–€˜!ÍWŸSéžÃöŽÖ~Xö÷Ô…8~3@îÖö+óE°V@‚žoÊ÷E¾:Á¶r†õ,?o¸eÓ%a&ö6ˆf‡ä!cè(íö—@óç.º{?n˰<4 ÈâT°¾5¡Eùà äð¡C±{mHÜ£¡ùyO¸ÇáYy¬ Þ‘¹*Ž™A"êS„x(ǤüèjðØ&?e*Jm+2ü\¤‘/9éïö¼hªq8%XµW°]¬— 7~¶ënPúlé³¾[Lso¡fç]ï£-æõû’x½Qª¶ðF=QºÙïîiXÞ¡±à‰Y‚¯&qò -É.Ó.vN¨]¨Æàχ–_7 h†r"—BÏJF0FSõ¹GY/ “&÷ë¢8Žv;a ÆÏ6y¨ÀÍ´‚Ú^Ø›5@ŸN×jp9)+½€ÄW %!ÜÅýä&%U* -˜´GˆQ¤y8JMÃ,%q´¶÷±J õ†¬§€9ŸÝÞÌ®tΩ³ +o6Ä–ÇÔ‹C$f[ô+@r¶Â|ˆôŒ÷Ì’²}à’ ãu§{Kú¯è¸ \N⃎» =û>è¸ ÚŸ/_ú 4AÄ\þ:\~úå/Åe>Êó p<",'Ï"xP‡ÑD¬—QÔBN-ò)þ‡癋ÂC]~™LiíRvCII؈9¹)ó3´µg !T$}yzÉ|AàØrÎëñλ(õ!^[º…EMä¤X¼ -Žôæª&2wƒÇ|ªî^!À¤ÆR[=P®TD-¿³^ôäд¶Šd^Ÿ³.Þœ6Ö erlr.Ãw›¦c—¯åmN­»ùtn GäyMð*´­‡‚ýwÃß›fˆà#BF±ó†€àfE+V¦šh'†^h«WZ­âîÀ]ü™LyµÊf&Z.Ôéj¹ÀôR(&Ó2|„‡{’97sbö µ‹m’rS9ÏsQzÞ?ëj•iÆm!8ô’ØH 4DàŸwh°N˜Ê$ û¡ËŠ@R Ý‰øÎH)mž$»0R³óûUº–8ÓD¯  Ù$@’° -ˆ ú) À¨"ËýÕ„_ttÆ<ÏüðOÄ,ÝÕuªN3U›® ËÙd7¬ëÃ:™öô‹tN¢ö¿ƒ‰ºÜP¤ªýŠv½¦¼‚(dÄÁUÛHÚÇŠé¯ìžÞÐÜ×É ítæ3™$¦3ŸÉ +¥Ég2ût_¿Dflý†¦¿¤˜¡’wšÙ?ÅL®föO1¤«™ýSÌG3E1³_"3‚Ätæ3™¤µ£¿d½oÚW2ÃÌß~ý:™A#õŸ%3‚tµ™dF®6óÌ—6óÌ,æ~Ì ifÉ\þ9\Øúù+ùÙ!CxÌøiê2|¶>‘—ô¸ï®L´6㦖mÚ®”Ê×dŒ´Uû'H>Q¦|hS˜O -_æJˆ“âH]4u¥C…#`©‰Qy+"¹-Ÿˆù °R¤0¬/O…› ŽæéÍZjOèß`ùØ’—Gmÿ‚ËFxF½("÷êH¸›"¹jfY…µk5ûhúÐï×JP‹ßÛõ9¨ FA;Ów/‡Ø‡—hÊËÓ°œeZûU‚ 2•½7sº0ضó÷ºÖl=5@×ä“{»”¼¡^ïïœ{­”{)Ø#1(†½ÎîTu»j±„Ô·‹÷./Pm”nwɆîCfÙ4er¼q;f…aozÁ>6kHA‚süÝrYJ§÷-»~{Jÿ‹ƒfoTÅÐiµ -‡”dÞ¸ EQ =ׄÁø¤Ž°Êð±ãu‘7“é³h>œÍ Zln@ë°,¶ôx,4_„\þ9\~úåÅez[à@ã–¦°8¹wýÄÉE.£/BÙE!ËuñóæIrË";¹ OՇĦ«GÂr– “ÝX°®ëdÚÓ/V<Òù¾L·!q…è:pCi¬ö+JÊ+‡BFìaµ„e̪˜þÊîé 0K~#™$¦3ŸÉ iK 3ŸÉŒ 1ùLfpDgo‡?s›Œ#™!Ítæ3™ÁYùLf€ ¢3ŸÉ édÇËì9™îâ Aº^Æ?'ƒÎâxÿœ Ìý—ñÏÉ`æ·½Œ×Éd‚Á\þA\ÒóÍ.Š‹ô‚~9tœˆS™ñKŽÍõŸq´æs k¹´g©\Þ%¥µÄ´Ñ7çÞy× öÝ%§Íã'‡pïc²ñdF…7ãT‘›fF*$ºž"´F¼Q{2ì¤ÃP¢ ÍåJ4=ºGiwh‰Æ.-ÌÄX ì?¨"=q5°ÕeÝuB§CÊ€©Ù¡o”å 00)\害פ©ËðáúD^ÒãþþÚm´¶‡ùÑö«º©|M¶]’Uû'H>Q¦|hSÞ,Pž©L4Êâ\¥©ë(*¬1IMŒÊ[Émùæ:™@ŽOH@ud¯3p–E6š ÇPÉ£’GÈ9qÃPcJaÞP¯Ù]§Â½#1(†½Ž+¡³4Ïte| Ñݺ3 ë öá%™ß{=ÉÚèÙ·÷ªô¼ -¿fº'}@ñLæRM›î=nZûUBzl“©xîVúµ´ÀÆÀ÷¬"v” Š ç¿éÅÒHÿÀ{óa0ä…páTV8{Š4L³lpS~Ä‹¡R^g¦’ - Ó’X\µ4±Ø3«Ð©:"œ+H/›æ£³LŽ7nǬ0ì ëìãÝÜàïOÔ÷ë ÖŽ­M8d7òd¤Á{sÐ07n2Hûœàšð[«7ÌaSÝÓÍTJ<.%´À¾t‚=›0Ø -Yî-A>{¨Wî3 HÛÙ -S&*SX6·$]5Oø‡DÝ@' %¹rC9HžÖV‚œƒ€!È÷Ba›“0ýî+¨q;X¡"Ž_ ³ÀŸýËËŽpܘn÷± -å&ëåá6‘Œ¸|À±²D[aZß/º$KV xôß ‰D¾°.AW­9ENøy ÆR—æuyˆ-šmktî3š/8†$z :®¬2·=$À¥‚‡LÔy¥Þµ™<ŒAÙ'¡_Äâã}Žc •±Œ´…c.­w²˜90A~cl,†9hm¾ÑØ€¯|ÏÚ|£±æÏÚ|£±AŽïkóÆÍ—w¬ÍacstJZ|`U[‚§qAL'Öp%ÕJ§ ½ØR¯µj9pŽ'rÎ\­äÜ–žw´<=¾â•ôi.±þ^ V´íœ$¶ZSžôÝ!Ó0_‚Ú›ý@)¨IG+sÁK^/ õBCð ÞŽg;4˜ÿ³_­[‰+Mô xˆ(I„\¹_Â5A  ÈE.ލ âûÕÝIê9gf¾ÉZóÃ?YÚ ]ݵ«ví톩šК`!4ºI -Ê÷¦‚òðqé•å·*=D}#Èiéx?|Ö0¦ ÚV\¶ZÃtBk$Ö¿“eé³eHUç•øÊ„[¼2Aáõ‘AVÅ ÷–”>äo\þJ\„o\þJ\D$òöp¬È ¸\>íX€bôÐò/+ãÑü±ø”8O (ƒÍ9šç3ŠŸ,ºð¸QŒÑ‹¢‡SïéŠÖù$×6¦ýa©Jp†¡7ú ÷|Aà [Az‡åŸþ8Jÿõ—†¿Øè8¬(q)IËÇ%‡R ¸Î*‹ço™P/½O­_ØTrFlCÙNìbw=†è,9~ ˜ÙÀ‰n ×AI°7%œ«_ -‡\²+}ˆç£qĘ֋4 ññ"`!8º¢ôûÍkиQ4¦à1vEKÞQ3óŽ@ÒoËùkvÖ€‰Œo­2ýçÂÑ‹Ÿ„u°`–ºc£ütv_ètoY}Î_ûŸ»¤ÏÔ¾8J–š–æ·%†-ˆrò»¢L›S“ˆ@R1›3ÉŸ\F~‰Ì|4¦3ÉÌG“ˆÞ’ô>¹µ§d†™¿óúËd&A# £?Kf>Ó™Çdæ£íˆ^’à‚èÌc2#Ìúu2CÿŠß¸ü.°í\÷ -—Õ]^úY‡é£Ó;‡é£Ó;‡‰˜ßö˜Þ9L<÷-ù‹ÎýËoâÒbÙÈ[„ï-°œM"Ö™+[9XºR‚ÓŽŽ=f7ëm¹Ìó´P ï¢|ÌDj1Ê uíÖGlÅã¤Ú샮tò ÔôyUV@‘¤Bb3šJ)œ]E„Ë£ R­u©ÛDÙkQîCâÃ6’–+w®@CSCÒ`þ!(Â%6qÍòNŠáÔž±øq R§70þ)¨¬Öƒ‚´JÝ@™†[¥ÞbÚ.°àâ„<ñgŠ®¬³%‡kܾªLcp†À‚Jà]™¼wR˜ïÐφN›µ­¿Œ +ó©r)PÅkˆ- #>¬âEezMév7^`Î(Sn'kŽTxii!Íõq#1J5ó6v²6I¨Ìu2æP(I^çäJéF´×ÖæñxÒª´–]/PÉ]Ždì‡Hjë(A˜bª?­×T&S¯£´jr¥PÕB³nÈüå#”n¡•V—w©vèé¸î é½2Ôb&Ž2v‹]“«‹€˜¡_4’27ËÉ÷q -P”(V}Ù|$Å c#Bå!À:;FåÅ~Jº¹ä‰DÆìUÒO.5Ž´ˆ|sÝ Ù@Ëîh}dSÔ°E‹y¤Þ¡î´O«ä„Bf¨µEßɘMPßjKy÷ÕA\¸ÀQ6‰ÝWG9)Jé_þê Ð/î£dÿ•“Jëù??¹zùð fòÑÎQ@_”Md‹6Í€³Î-œ[ ; ÉK+ö•wX "ó,â1|òkâ -rÝýÓ‹ö§¹Ò~¿ÏŠ…â´q]³I¬7Ïúu±QÓ÷ãMÇGÓ‘f¹m»D™„|¾­˜-É‹#â°fãÅ2)æ2H+›½ -¢ON&®’ 7\$• Õ·mò6ú@aä/G/ß6‰ãT9ZÆ¯Ž‰ç¾û ¿£Z\•ø…´|\¢Šï -Çqw‘Åó·L¨—Þ§Ö/lÏÈè‘-v·»ë1ÿðØ¥üåøbfkÍÑ­á’ÄR!šAjÕr˜H$ÉÅ»h"»œ/¦õ"ÍB|¼XÚztEé÷›W˜ÃÅÑÉS5×ßm|É»4‘4óV8¼†-sDGÏÎ<¾µÊôŸ Î韄u°`–ºc£ütv_ètoY}Î_&ù¨ì]ãhg`¼€R"é':ÄÁ’¨¢œü®(ÓæÔÄ3ÐÒò›3ÉŸ\†ÿÝÎ'ŸOìŒþ`h<±3hVžOl¦]cŽ¡ùM;5¤)߸üu¸|÷Ë_ŠËê./ý£Í\N¦'6eìÄhzb3ñDvÍ?`3+óAæ¸ßÿ7üÏ3‘yDÈDå¶Y@pË"¾ >-WK´“‰ŠQh—nÊõ ê -„N¶ºßkÙy9ºê–sÅH.&3Qx„‡'*…HÇʈÕ/´ã,ÚXCÒ-=v/Ï.»å‹E–²tÔp ºÒH 4 !7¼¦jV@kº Æht!“$”ïMźõá1r,‹ôòŽ[•¢‡¾ä´t¼>kÓtõ 9MäêÔ8zì(Eߨ1[†du^QúnAÄT…[Ô;HÐ v½ ÷VG!P›øWdFÔEÚc2#þ¥è1™ùhLg“™­ÇþÌðçïâÂWdQ>“Ë'3Ë%yLf0ÅyLfVÆþ™å„¯È kþeÑc2#ýÒö˜ÌÈ|<&3÷|ù#d&ƒ×ª¨È )%[›yGfV¿xLf8c–6óŽÌ†±µ™wŠù—ŸÃ6ë¡R8Ø!&zlTî¼uZ›*¸½iµO¥Íã·Ú.°è9/pÌX{é×H«GjÕ=_âÍY. ñ¸ -tò í¬ˆI9´IeåÊÝBT¦×í¦ø£Ò¹V½ÔØ:È`Æ¥¢%«þG›§ú˜U¯mÍOÒ1ÝV ãoø•ûE°^Vò§Lªë¢T›ßÁ¶Ñ,é54iÕ ¢QâÊ:orÒ*5È's h~†bu5×ï6>íýã½ -Ÿ’vŠú[IÌx.XH£¤~ºA4ü!( o…­Å f^æ{2tÄÐÔÍÎñލ8KÊ”$TJއr\šEW‹ÀÅ‘{çÏU¦ýN’Ve*f¯­MTÄ%iÁÞ”à. F~ùêáHö¢êOë5•ÉÔëâÃ6¢É•^@U ™0$•¦ê Ri¹Iija:5Q>ãj!®JõÒ[%ðj *½&Wª(5+A+5’R­JIõ4¿Q”ˆXrò=Œ¡"n‰?¢9µ0yœ!¦b?` ‰æ’'˲ê”~"Ù<Î)hs/IA$[hÙ}#hvÁ-æì—çVêZÇŸÀ‡%¤JN ½)`¡bAA„÷¿³K -¹ç¯¬u>ø…%$î™=å?¿y…0;(ç :§™7M¡U©¹BïI¸+Åùdä¥:f¨®´>æŠÝ‘—Øú߈ŸÁ:fs%pÌ•=G’Ûß8’Ž7·ŸÁ[’Ýt¬ç¸· -ߦݦïÞŽ4=:@1ƒuJÜÙ¾"¤|ð¡qTº[ÉttM•¨Ë,6zü÷ñýÀJ²yd\Z¬Çø[Ž2šS & ¡‰50Ž|Ö¤0úY“÷ÏÁ§ÀPS]ôÒñ`è‚àÇH^œœ1A›+Ja0ŒÉKÅÜ{„ôX*\÷ALn9ñbû|¶; .žY‘ ˜ë_oö8¹ófÝ)ŒI\ÿÁQ22¡ûDZÚÉò¸>n`ݤcðÅÄn‚7Û(fËzþnvFVéù»Ù™pògzþnv6w±=zþfv†ý·á±•óN¢ÉGWÎo\8ÏÜ¿\9¿qá´íbŸWÎo\8Q ø·Ÿ¼ü…y¿òò楸d0IàGâüyŽ˜ª´Ñ¿$8?þÞù&¾xóôôDAY‘AîY÷X†|îÂHnv²€…3¼Òm *"XY,Ÿt¾ äX˜öÄcö"©žRÏFog^º“;Láþå]…L^Ëæ†9†e;s;f•·-Ÿ¤Ð¦í Ù:׿&ŽO&-{ùš5W¼vn\ø²|÷V×–Žûl»{ã)L™+û|Áþ`·ãÛ· ØÅ\ê<€É2%/9‡KgÎMosámÓ5/ާϹeÌC˜ãÜlä "*„U÷C†Õ{aô!‚7±­U x"—hÛjÁHÜyLèZ—”¹V5yh/¶Èvv®§ÂpÖQþ$á²_ÂÙowwš‹ÁD9sÛ²QšlU#MI„/}ƒ¯=aÚÅùT‰À±·Š} ]vÜ^åZúør×ü1N× µËØ~¿z*¢)>Ð>§„~­~l6Šö„™‡ˆ`MµËòhYGä’ýugÈ)ñ^Ý·ÿ›C.„ºuK¬á~1·X‰¯+%ÕªuâÞy` -ùoÐ8‚×ÃeE)æõV½2i™Ë¸@¸XRšVïŠ_} …ØB¢(<5Ë è‚Z,Ä&Dü@£V µõ -üZ©+%%{^øŸñ°$ • -hÑV—¯SR)ª6ÐÙðŠÔËJ÷Œš¡ku“èæ -Í ÷ƒ8ŸŒ¼´+íŠ×˜ó„0™•Æî¥ÐSMöZ³±ÁÒ;£äÚmñ„2ÀïA(™ÔtЃç~3oö˜ï˜+{Ž(ï¿sd›zÿäÒä=W€l¦Ò'Wö þÖ‘Ìî“#ø.Ä•µ)ÌG‹ÁDšZ -_éÞV8¡ŽCa»ˆ¨J>4I‚âES×ákÅ‹/q×Pø6±BÔ Ê#Ž`†e¿ñõ2½BYKs‘…®º]Í9çËn¥®Á.fp–U"ÿB”äÁŒ0Áz‘W{£àÔ˜ûLy’z…çÐ…bÒ'ññ²*û˜:(L¸Î «Æé_漆ˆEÍ›æ%ãÀÍ3÷Ñ—‚oóq‹K ?@æ940ƒ6U•çÇ™;áïoâ‹7OOO”^RϺÇ2üãs—qiÑ-ÃN0ÊÃ+Ýón ùI™m%$§äâ]јû¦El/’ê)õlôvæ¥Ó~Øah= ®esrA2Ö9crWyÛH'Ö´$Ó¼p£q„ùyè¢ob/_³æèlç–Á…/ÛÈwoumé¸Ï¶»7žÂ4¹²˜—T7*v[kîSd… FuÑ9lä’,iii'Ã7ð8¢tñâ—\ê<ð hükˆõG€]ù5Äú#À2™ÿOëÀ³åWÐ×_$õòO^þº¼üôË_𗇻Œ(â¤!šoéªöš…^%‚ßëTb«W©¼Id[X}œ8‚kÉI1ò›TøOkRzÙ—ÈÒFg+üQìﶨ 9õdê•xŒÚñ L÷Á-r#õ"^lt5 ~Aó±HD!s‡AK¸Aß}ëÉŽmf8 JóAí°Zä·ZÚ¿=ÖúÅä¨ddêM¡^Y,ª/—ù5^fóW½Š‰–ÎËÞ¨bl€_‰Û„ÁzÅ)ÈâE°pä=á·´Þ'¡@q]s^EjüñRá£ææ\­";êJ\'u±´•èiZ&Åâý¯ÙñB|¯MÙËëóƒ6e/¯SÌÚ”½¼n9‹±){õ–í+¦ì5)p–Ÿ³){M -Åü MÙkR€÷Φì5)°•ß³)Ÿï__þ¾¤Ÿ¶ÿúò7öe•&š‚c\¬†Ì*–$ç©£tJ×ÊGêyÕ8¤!J Ÿ¯¯×…üuµ>îW‹Áé™TIçâð¹9ÐÔž ž&¿0¶(9B<œ¶ˆÜb´R`Ö¯Nó´ÉÈ£SI«É­ê¥®F˜-X?à¡”mÒH? #®Õzi«!O¨³zv(áƒËÕ›ŽŒÏŒôØöW g‹]YvvÉÍÕ»øöD q…lò$êki““vñ‹eƒï ž÷ÈEúÿù‡‘ ƒfôñDð‘ux'×Ä ŸQË6»(eœЬ¸â×S¶z¦úátLÚÊÅxdº/öâ$J¹T?ÙÔ!GËA¼ø*ð>Dœ¨wIcYî—CÒÁÊyèRsç†ÌÝœÞ[ÝèÇÜÝ(&oì6EÍ–©H6«Cú‹UŸŸ·ÆÆY´*\åØÄÙSý±:g6ýR®x#FÒ¥ä&h&f þŽ$]áR‘(‘W‚Ha¦Cð/ýêZ”LÌÅæëè•¿»ú˜Á$#8óÌ(GôÌ(† ‡·`†&M‡·`F1Î<3Š!½3˜drjOÁ #¿ée¾ådP#„¯:Šq¼ŒwNÜ«íe¼s2ÐÛËxçd¿X^æ›Næ"ü*˜QŒ£Í¼38‹Ñ;0£G›yfãh³ï‚ÙLø*˜¿ØÚÌ;0C˜lçg`ck3ïÀŒbmöm0“`rtå `F1Î<3pnøôÌœy fƒáì·Á¬ä¾f¦RòÌ b»ðé ˜™ -Öc0ƒÝß5šß³­ô0³”’·`†]ÒŽôÌLì1˜¡îïÍoƒÿ¯/¿Ý+,¹ÜAÀ^š>Kã‰dëÞ±ã®N!]?øEÖgvÝÐÝ%þ‡uס;Â&•XÔÊó¦m¯u ÇCQô#Á]ï«^Eas†!Ü=Ç -’>*ð3Q’n’tà¿bè äO7hT†nŸ<ëråL©»ŠQé´P”.ûôêVº>zQuÊ -••êÅž,Î3€½÷£NAžd§ -JTc¡Ïddîà¶b²¦nðb£«i7UüfŠq…½x7,á%š«|Ô¤£Ó‡+ÒiÒƒÝH½hîý ÛuDŠŒPˆ7–Ôfû-ôÆ´*[8ËépQf¶òdH§àç5´Žãh¨9å ÎÁ]Ù/Î%_ Þ²Ôéš›¥ øæVÂeCRD”Õ…k)F42KC)šMsX´q@lŒš5ˆ·Õñ5„ã°/„òšý0 Õ§0‰B_\Wç’Šæ»û´iAR­<™,î„Ïròx*¯SšŸD;o¢Ì™œ<áNKÐç÷~­,×ä[Õu­•ºŽ‹Î‰È™‚ÌÝœ–É5²%Ái ±Šª½xõfÌ}áÙ$T¹™CÿiHu>P†ñºRaZ)¨l'/6t hIBÒ¥fA4Ôd†=W‘"ƒÛC©v±Ñ‘8ƒG„´~Èä¡/úåTž:2„ûˆ”’'­eAºa`iÚ]h2–¦—“¹¤ØÀÃ)ήÆ1¨Ö&ð>@é€L>ûÙUñ†w¿ûŒW¸ƒ^± áa˜äÎ,B ¶½‚yt±oaYÀDtÖXÍp)ä—v/ªØ¿èü‡©„?M$¹þ84cÁêúãT€Þä>Nk.øi¶÷ù#¡½˜ƒú¼0\dï#¿;Éqqì´1wnˆ³ÍC@×o+b㺅Š%CÀÈZF|“…B,H -Hþ‹ôCØtQÞ¹õV¾57Èr”般©DÚ23鑎p¥6Y-‡èF›¿¤'tøÈ—¥£Bà‚ö©eÂÅ$Tlgðßµ¸D’±ãfW([ -€Ÿ³\R÷Ù$[öä½²JÀ[n;x_Úзî'6¶¿hž$¤Ò3!«ÊéùÚÖ -ŠÝ“…sf—àù0MŠùñšü‚HÂ’…b<I8ª˜§" ¸Ò[ñŠ¥+Åüx £­ êøx‚^Ä :¼“kbÏ@”ò€Í.JYñäk*^ØÄëñÇë)[=ÓFýp:&måb¼g¾Ø‹“(´ì¨&~böP‡ˆê3K>Ms"¢xõ.i,ËýòbH:X9]b@äxou£sw£˜¼±Û5[r¤" -¸x_†"’~,:5o3ijhU¸Ê±‰³§úcuÎlú¥\ñ4V6NE¿Ö"é4ë ø«Á¾@‰V.j\Óf8TØI?…º%¢úbsÅ)aû×—¿°/÷¿¾ü…}Ñi,°ð qök†´NŸw»Á¿¡˜\x]gn–«Åž1·Ñå€%ô~PMnÿ`«3ìè endstream endobj 189 0 obj <>stream -H‰ìWëRâL}% !!—Iä–„䎀"AQQÂû=讟U»KÕþØ?T’zº§»Ï9¤ÇZÖÞlIä*H=«'—±7 iÊ\›Ò¬&ÐâãI’#yÄrf4ÒP×J¨Îe´–Äe;1@IÒ%Y<]ŸqíÔ*–i«—ùø`Ö‚&k ¶ß îžß’Ø»Fù—·ò:_ºº)ÙÎÒ0Ç¢,‰“2¿[KSZxo ArF§¼\¸±X8…<—B‰Y<,*\&S `‹ö¬°Ù\jç« 4·šýÉ“±ÐOuIì>Ÿ®Vh=òÃi ~îúAÚnkøGotwç(f‹‹L¢Ø­KÎp¯¼µÀjíƒDl½œPûýóô‡|sz,ô§5 gPæ -®C²›ÛÜ6½±z gì&ü4U£^"ùø+¼¶qö½K˜t%i6Qc`v zÞ’²@‹&UàlÝuz¦Åé¬m*}çmݯ§"”ݳ>¥Ä¯1‘+¯W+ÕzÄ—Å‘ëW³ÕQü C±¨MQ|Ì4ÎÑpQ‘ÑòØÑ(—)–hØ|³–‹jTɶOHQ1ÛëUbE1tEP±v:iæÛtê5—’:PZs)ˆkÍÑ“)mõí^‹K¨²‹²Ú¥&ÍNÔ »Èˆñ¶6q1œzý‚““Y²gK.œ×– /»wçÌy¼´Ì·ò¯P°¨œ@ÆuäÖ²×%ÄÞus©rp…¦rOmì°s~ެlüÎ_¸Šz…fÕM¿Âù¡_A¦‹uG-øå<Ò¹L¬µÄñë¿8 ëžZ·rgÙ®š/u¥ÓÃä ²‚4<­+$RÿÞ/²øø€¯è\©ŽOµªPSæ\¡G-¨óñ{”´ -¬ç¤”°½JRXÉ‚4{š±8Ra_Cý¸$^™¶}VPßH§™e›òó§V0dÅÝào€IJ¯Ú£Y€"pvd0ózý&˜½¸ÿòò«y‰/——éñK’ P@ÿH$ Í™d0òÍ™düû]’‘îosÒ—$yùúÇ!|c@3G&‚üWâ‘I†¨¾mè¿G2§ùÅ—`öƒ‚= -˜‘Ûjæã™¯“K2Dù¡M1ÿLÁþy05¾ÓÌdzµ×ÌÇ3Ÿ_þ˜A eп¼üuy+ƒ¤ð30û¹RúÓ`±ì´ÙñÀŒðþV›Ìö¼ÿgÀÌÃÂЕ.4 -ü×ä0öš#Úrfø”È^èõ„^´óuóÚ*›ˆI§Õ*“žXY®Ù²²ái_6güD{F.¯@ÛbØö $Çx²½~©{ÌÎdN¬Ïçå˜YË:Ÿ¦ƒþ,Ú•íªè8“è€òÙÍôyGùü¡pÒ‚ÇûÂVôÏei­»*ÚFí>©{푚ݲ÷æ\s;v„ͤâèIÅU¨ÄA¿xÞ¨Í0yú÷·¡gæ:8`,¸¬Æ;æxý°V颀Øi©eª ~«ôVÛ ¹aá_^~9/,y"“œâ0»¦‰ÀëÅ‹çía5säv2 'ôäµÏlÒðê’üÃ_ ÷Pë¨:¶—üRðÎm)Þ÷¸a(´sÄù}ÜVhkœ’ù!c)ùÕ !CŒãA“î®q©\¢øè­ˆŒ¾âÀ)ûë05ú…,íNocêäkßÔ”ìdHºOö>öª4JM(ñ‹—Z2‰ØÐƒ±eÍb 뱋šmcä4?ÙN ^†~EXÏ2ÏÌÃ[2ê>½L{9ø܈ž}:ÏbøØ,K ŠA/p¤Â -d -³­ -¶ØÁ­âB,7 .‹(®‚:¼Nâð76¨P›ó8n$^ù¼šÁV ¤6ˆBÖæ:Eú¥ÇB½pH[ ò«©ˆÌ›íü¾“á›NI¥ä²cQ¹¼­{ÈH½rŽw‹äÛ“5\c¼AÿÙÞm§áú9ýUÁ„¥@ó‡’féÀì½ù ûƪ‡î㎪@f RÉ•W0Ï~öö£g_ÿÓ}§ñ\Û¤°ÓÉØQ>ÙÍ@¦ÃÎ.ÖåNü˜„“>üÄ—?~Sß¼+øÛËÌ·¯ÏzµjaC|Ê!‘ïF…Þ(5 `ÙX9 ½µÑè¬^#eqYú¡}nÒ -‰9Ð4Ï`ª&§¤ ÷á‚XVò‘X)@Š`ôêÛ§êŒ÷–Œ½ÎˆZL ¢ážª+"Z¶^RûaÃ6Oú/@A7Ò¶S3wGaS{Ã;e‚rÒl<<  Ø,/¿säY_GðÄ÷…+ ¸zqå+G¢ß:’v‰#¤Æ¾r¥Ø|ýÎÛbçíÛ-½%®±o6ݼ»e¸úÿ-8–âdý­™ûí–ùæ«-¿üb[À„â71ê!vñVà¥{æ÷HT¬= 5¢kÕµÊ7¼Öüb¡¾¯’½(Y­ÒbÞU®L«o÷Z¢cÌF9¹U¸2z—ðõÍÁEíŠR/­úï÷äè—ÍVðâZ{'”è-Li‘Æ÷ög±Êë–Ò«³H€òˆžI7#xëÙñx£˜8Nž'P$x ÚD»äýb/'·O»åÞÎv‘{áKÜ$yùG=îþ8Ø)ÔЙµtL`QÏÍÁzNæ.`•ÚÜý4ÄSZ‘‡8ÅËêQ‡èJ<Æyˆù4Wþ™!fF2$úÕæ„q^°6›Kí¼54·šýÉ“±ÐOu,1NW+´ùá´?wý m·5ü#7ºû©@p—ס‡6 QÌPÉ£Ö>LÄÖËéÏÓòÍMè±ÐŸÖ°&lÉ»¶¡Áæ6·ÍFo¬Œ”ÎØM2WV£^"<±5i‹ÛK˜t%ªj ÌÔC͸hR>ÁÖíQ§gZœÎÚv¡ÒÙkÞúA#a‘ðã\¹}-¯W+ÕzÄ—ÅJ¨í!Š™Æ9.Ê"ðÐÇnFýqæf 5”Aÿòò×åå_¿ü¥y¹¿ÍI ãN3;LîU…ýk§“f¾M§^s)©"|†™ÍÑ“)MHK¨²‹²Ú¥&ÍNÔÍž=@…™ÕÄàyêó N§þc¿º–W‚èð„AH"'$D2&‰¼ØDÀ6&üÿ홑pXWm­ªîþP 3=}úœ>Múð¨ÇqÞL~Š×÷­ð:@9)'¾;õžÔEv9|& ñ+ú¬z+Õª¨äâK¼€{å H -MiËÈËBÆÕ€t¹]gÈÿ,á—bã šg<±ñKe§<ÐG-ŸÉ #…úwYÁo¢hÊó8èO–çï4W†%þTcQÁ‹–ü që¢-[K´“‰²ZhË¥^¥º`s²•ÃAÊ.”œ¿«)9ïj,“™(|GWa’éè¹ð<@q£^®™4üØÕyyf­)ÕU–2ð -jIl$¢ 0“[¦A/8h¨J–CO9¡qU IP–MQ·o§MÄ,‹ôúŽ}Ÿ¢§¾êc¥t¼t6ÔYƒNZøB¢‰t‘ÂXç Ó”©)£@²:ï(ý «!ò”9‘]Õ;h~áŒztFŸ¼Ø“r‹™ƒÈ™Íb¦óÅf1sІK³S̰Œ›Å NÁc“½bæ vÙf1sÐÙ(fxz¥¦Í¤qÐM[Hã ? š¶Í/Wƒ¦-¤É¢Ñ}·›4È[ml&é“í$>¿ØLÌ——Ó?\þ—Èúfÿ(Ç´ö|(;ÚáhM—}®mJ -_—ãRä tÐ?ºxõÌß–sdRNJVÜüŠ|о'Xò ÃIM¤î$¾žfZpÉETXì'Y¡,KzÊÁû¥–çÅA‹Åq¸b1¥ÅNÿmq{IG{~â¯êH_!.×-Ë?¤†yôŒÚ÷‡=SF¶2ˆþ¸ ,;ÅûÊc‘¯-n‚į[ª<Ƥ½w5ºÞ»ƒö¶Ìh3ÝY3¹ ãL*â?T2ºA|ÃT$|ì‡C¡lò"ûR¬"UâøZKUQ:dØÑW$•°_:‹t˜>Wc0CÒ€•(ºÄûs'ÇŸ@2½'Ð1þApŠðà= ëQ7ö¼d1ÝÆ5¢ÐJ,$}ºž¹Âΰçv ™v -2í}ªzyÖ@šLưÆkèé-ž»z=¹;©éë-|áB©Ô¼~Æ¢1D²lÕH¬|m¸ˆãgØ)ÁÓg—ákÇSÊzèƒ þ÷"Êך¿bßîh<»OÁÈq›Á‡»dÚMœj¢HÌ~ÿq™ÙŠawºT {± -„WÃežò*Ç×Só\Ø’ m¥Šƒ–U¾ Üoª ÀC•õëKF”÷«,”©»Œþ‘Dµ¨Š%_1Geªp”7§Ðh¬0&g÷ñ÷æ:€ÇY$$ |Ð;‹:#ŃSš¬ªd )»¿`ªl›˜PhÔ™ð¸2kÉ÷á0$­7ô¦€ Ÿ_Ïﯧ@¤0¿d›ØF_Ù"fñ߆‚ þHöôm }Ô±R­Óïs‚¶e~ze³ö~õŠãê¥ã–ýaŸæÝ÷Ó+‚Óÿá”1üVêH·ƒ~ýé£Å¨Fs¼jIl$Ðf¬©›ÀTɇÛÒÍè pI!i-ÒžÍìuõ†ã¿^ÀVû³5€ÞœèQþ¶³Š¬í#L;š‚ò¨QþeP"ÖáscúÖÿÅÑBØðص¢ç!õžÅíÒVÃ-ÖoN¯·,ÞsZ(ß8ƒ‚Ï„ ÏË,*ËRrØ âËt½Pw ³m¥¾ -óRcè -»8Tpr¤’‰{5a²0Ûd¬—MÉ…ž'ýšOó}7î\è­Dw h$cu¤ù“á$梷Q~팜a³ZÎbÊ@“d”,qBh†ÀHêîNìñ_œ7“Ÿâõ}A+¼p‹ßä}RÙåð9Ÿ¾¡ÈLEüJ€>«ÞJµ**¹øÒX1…¡ï+mUõ d\}*Pn{Э9ÃBbŸ1*¡yÆ¿TvÊ}Ôò™Ü0R¨y—9Es#•)É!=cæÕQŠÞq²°û0T…éS {fZµÓ .%qz|Â4W†& -Cª ؤ×pg]4¢ek‰v2QV my¢Ô«TI¶r8HÙ…’ów5%ç]…b2…àÇu] =#úXGãfD¦×6I:#9•ç噵¦TWYÊÀo(d×D ìyµ½ °ÂTÉrX“ºÑî+$(˦¨ßú´‰XÜÚúŽ}Ÿ¢§¾êc¥t¼t6ÔYƒ6ü&ÖƒH¦bC¹@¢_ý~-©)£@²:ï7ƒZl™ƒ~^ï¨×Ëè '¯ð—ÿ%.Ü?\þ—¸„P‡O­±â54™ÍåÓ—¨=µÜëòt¼Øw Wõ3×á çÐÅWjåcÊ£ö¢èƒ‡ž8}T)Y¶!Ö3sG³N¯"Û¾É~>/ñXèžÝÏ¥ñªÅ#4©?¬êƒÁLœžïòxøÀæ‘ÂËÛÍ-ÌùÊü”ÔÍ Î˜+÷¿Âƒ^H¿úbÈø‰Á¶Ó‰–L¹».] -$Ù¶:ëdÅŸ`UµÔè'¬ýƒné)Ÿü­Kùƒæjh^>\HÈo²¸Æ4έr3þ^úz|ezj¦y#>‹Ù÷ù1[Ä OIp{ÅÌAc9³YÌ€œÙ,fH“¹þH̦)Î3¸ ’3›ÅÌAäÌf1sÐ({ÅŒx˜æß³ä)nŠ™ÃâÍì3»ÅÌA›ÞÌ>1Ó=ŒbÆýÃåqau\¤=›Ù£VÀ\Hミµ­•cÝ<ÎŽ”¬¸7„>ëmžE«{ücç¡…RÙýýjÝJ\i¢OÀCDH Èû%„†» (ˆÈEFàýOuw"23ß9Ÿ®åÿ°€Nºª{Wí½kky˶Ù5œÆ6H<¥ÔaÝ÷=ik2#ÇËüãC”™â$#râ@ïù²¤Ý¤*„zü¹Þ•Êõ‘§ Š4Þ”à!¹ìº­}U)-æùd!Uît`¸v͈å|[ÒÀ½Ë~S‘Æ™™LˆÝ1߈¥Óë[hH+±n–ª¡Ò2MÄ›úiÐáó¨bWº¢Ýеč·š¤ oN ˆíp…³¼ R¦ËðÐ}20eÊ å7€f;u´ãj•=œå6ÊKô^_SIø9M„ò,KIÅà ¯]‰5ee á÷¿Ãz&(rzW=v*ü—¤…jz[•óÝZͪ sä*ýšö%üŸÃ¹1h ‘úÊtf _7¡äqÀ[ˆaÚÿL¢^umû /D÷f^Ù'Nïá7 V,é'袉@>¡…Tà܇ӮšìË•w5¸+ˆ¥ÅSIîIÉÆ‹Òh„„%N’éû]*0÷ÐÊ60»E•\¹ô"T3þºê˜PÕ'ª8ýEUÑ;IÀ/•™×ׄ’+üÒkeµ~7zÛf—Ö·æœ#<âÇýB¯]R†¨¢4_±9°:'·¥zvu\cˆ9\ç€u"Œøa—–î„BmÖÚ çDkzæ“Qà 1‹Û“TÞ%²Jnÿœøš¾pLsòi*á“TÞ'’Ûÿ%‘|ºµ?&‚'¾w© mýç³rm‹ÖÍÃËù–ß´š4!‰÷èm°@½Tºt7dg/:‰n]ÔJ¼=¿€9Ùv+ö,†-¯˜ìR¡Ë‹Èo/¨p2ܤ„ -úO£.tõ@‚¼aóë¬Yˆþô£® ’èn½¬=´6–ª€ƒ%”´_qÒhJ¬ºÐ²BeÿTW´áô… ád­7xu:µÔß?¶uÈ.ù?'úo<šu–—öÑ^wåù‘ó½Ì•¿9?Ð \ÎŽœèÑÃX.-„{á"BÚ™Ìýfä˜m¼›Këj—ɼ2•[‡¿‹•cëéŒ)Þ˜ýN(÷R>Öˆ ó‹è§‰»Ò.¨,݉—Ì4!ÒhÖ¥w…3ñÆúc¢ºU;êË5ÁOïÌ;¨Jì}o‰±ÀQ:Q7ùĽSØ‚äRG4sÍÛ—p TXºdЙ#v9㲸 ùI–‰ß<—×Åz×)dó½(š’z‚×=w’V¢˜#­ „®è¾,â²ì–òãqU¦g ³Ì¸“D¨…­¹RîÃ8©Òç^¾qù‚¸@Þ߸|A\Jk -Û ¼$ÌŸæÈXu"nÏ{wÙP7óš^¼ø»fÖˆnˆšû·]†âŸ: ë‰=ÅL1ЉmÌ7ºO(yYDž–¾ pŽ^â çâÅ•n´¡&†³Qdöæ'eܯ~¥É¤>oj;tc××c˜¶š¾œð¢ÀOk^B «Ð¦m\w67äÛä¢Îe®žUgŽkkëÈ"¨6õÎÐ,®/îÕvçÜ…1 ®úbâ‹ÛÃýŸâ¼%È¿-þó0äX’m#S}Ø|!ãd«Åö-ß¼4¼™>ië¤7‰lŽ÷õUÚMÀ`Í:ÈeÝPŒÙ¡²Iî¡’ß–ˆ’*õ.A~Çtއ”ØËZî}¼äBýyð-›YK@ø‰!ãªWÆXHÃÃ]ÁC[hô'QåÉ>eÃÔ  È 9íò–ºN{‚0ŸFã°í0ê* iý“6¸{iޝúz1”dMmõ«¤»_H=•ÖîùÌÄúYÛ½¾F‹Kì ã£c‡x~©´H£u8â°Sò†íž¾ÝÁd 4™á(VO™yh›³>“Ì -¢³O&3Ë'»È,/Vv߸|=\o>òÑ“Œ¥ûo[÷Ã'ˆrDãÓ&}œe>o’A7fÏ2Î$#Åõc(2ËÌ'‹ ò0 3Ÿ,2ËÌ'‹ œÉ̩ȷŠôË—Ãýä¿qùO¸À¶SÃ2þ 9G2CN—³²µµ ¡!è@q­•:Aä`a]Ùf]g ßD3~9÷)–ß¾‘ËGÂM4&ùÄcY¤á~ç¶d%N–‹¶&kü2+3Aã¿lõJZfŠ“±•JoÆÅ¢¤Ê¾'[A®°Þ]»¯c¼)÷vï‚UUx/XiT^hBez›ÆrÈ[Î[¦"<Ô©˜%`¸²¼ VxH÷ -À*ÒJ–‘ÊoÀœÓ©¿Û{y(ÃÔ}Eý­Àçú¬×Δ„®õÝ báß­Gù%§e&3ùe¿© ñ›âQiêÒ˜í%e_ZL„òlÆŽÓ+À8‚œ½ˆÖ#)d, w£MÚþQ2A‘Ó»êQÞà¿$-TÓÛ*ظZÍ‚Éù…J¿fÀöû’5¿8sh§¡Áne:3üã&”t³l!†ip)¾´^um[ —”“ÒÖé^‡ç>S¢Aù2FEfäx™|H˜¨ä2ÂCw§JÅ‚•Ò*.î·à3g2ä(±)1´2U™i s¨nQT ¹;E¨fü-Èf•™¬`ÂÑ&è . g™Ö&©8ÓR¨¾«@qµ’ hùM3àoÍ9GÜvÑå1½vM¹ÈX@”æ« "<Ù@Émi}tÈnÀ-æ`¤Pé´OKwBm޵6è9·«0ŸŒÞÚq{.íNe•ÜžKå˜27 ŸKÄb;•Üþ/w’O·öNmë?yù±“‡žæóûD¹¶Õ©æáåwµÎí>/ÃìV~›wjÐñ±DÐbô..ðJ4@ ¡H%’EƒÍ™÷éá*! -‘ViW 8ÉÔ)îñ©CÑsqM…./jTè>¢"ùëQ[hPaUªƒî¥|ïŠïz€ƒ%ÙVßʳå­á ØoÃÝUXš@ ‘y&„ 3ÊŽÊ (ãûßêî$DÏY瞬õýðO Iì®®]µ÷®;: d{‡~Áñà¡êÄÚŽRD¬&.vÃb˜v(#ìEqT50À $óz$A]Å/ÂÿÌ`Ctæ0™á³´E‡É pAtæ0™¹(Lg‹ÿ.ÿNý‘A<2ã°È¸(Ì^‹ à‚dÆa‘}±fÌ‘‘®b¯‘\þ -Xv¢:„ ?ÈòR¦sÅÑch¥Þº;ÜIÅ•\‡N¼g|÷ -³h¬-…Þ&Sº0(êmLv°K&Tñ³ yhl"uù­‚8ä’è>'½b’+“¤:ü™ýFÊ"RYåÚ¹÷á»ü/ßdlÈüªˆÌcÿÙd¯¶lg¯LäÑ¢µ€Aa-…C?9óà=@ZkÑèÌAS–1nœ¤]Tx°,½æÔ¶Mfúr®Òç/íàˆU ÍMÃݶvÄÝÆÁQŠÖ8Y¸6N*U¢¦ÀE¢Gí(â¹aØûí—p›¾ØþS†úl™Ã¦ÌEa[æ°)ƒ®D¶ÌaS•ŒlÙyS[ÇþøcÝ7fLçÄúÅš1u˜1ÀÅš1ψð—¿ÆÅ‡ï'ƒ@{¬¦ñÁÏò’Äjï°Û,ÎM:VºzÁÞhöZô£÷+ü?ø•™‰¦n£BPƒºÕØ*Ù/­µýöloò-…KÜb)Jtaœ€‰o®,s|YÏúÌ@oW¤ŽVláÆ=Ú¾‹íDàó‹‚¥÷sõP<.2WO%|–‹@òåfU5E§ ºñs‹9!hAÌØÀ›z#P›|^[6 ¥X³|§W%ìbBÛGe?>Añ«M%A:ЍJƒ”}1ÍÏãÛpzåö±Äú3 {!ªâS -vIDÐY´»5Ê^ ¦I!îÏxw[q8Ȇ@òãIøœqKÔþ:}ÐÙ ut ø–qWz6ÞOCa{KÖ3á’G=·ê¢L ¬½ÃS*)Ž˜~–<³šÚ0Á ªMÛ>®E'!¾Ü¸ Ûž=_sèÊÉ¢ˆ“­e/…$_ÞîâG_ -Êé.‹Hæ8Ÿ”SÕÆ¹à̳fðNÛ$­À@ïŸ.MúøÓšÑH;/$Pd%Ñûõ›çž“í‹U¡J¦ÔÂa]‡5¤ûÉJ aU7 žjHxÌzå¤ðä%4è^E,(J¹º™WëUØŠ ‹…ÀVØ…'„>°ª‹2«±ùºDÀÌÁÏÆÃcF´Ö˜±„<± ,¨7›~ÂI— Ë ö#F»¦V$UFïC -Óü%œÊ½‡Â¢ušÊ‘|ˆ¼þ2À…„²K¯¿ j"|HðË@`#”ìþw9ÑnßûI÷ãÜ'.êè#}õÛuî¾LÌÊ{ìz`KôŽÿ wêýV#ì fri¸µÌX܇d²ä3™¯ˆH¨â5Ò+³7d¿ƒL Ÿè:ÿêŒÆã‰Á û:ÙyG½.d˜ð“ÚS‚wêfÐßc*?0ÿÉÿZ¸Y˜Y‰ò¥t/VC(ÃÖ}Ÿ9k‚æO´8ƒV©!º@FBà2çAEdÞ$ÌçPɤ‰ÇköHêÀÛÅÑš±>úF㢿52ån÷WÏê`Úäqï·¿Úí—°Ýï÷YÃîëcÙf÷Kã]Ìœâô}¹ôФßôy~6‘ðè½|˜; câÛ-¥²1¦Uuu¥à2Å¢ZëFíX4äõ©ç7~V·›\xFÉòÛ‘„]ÀqÜsúæZ¾U9À`È¢@&Bw[®v»¦þŸ© ábÎeÎMe„aÈ\æÜT*fÍeÎMe¸_Œ¹ì›©,~qñƒË—Ør÷ƒË—uŒØ "Ž!«¦N0ËŸN¯¹–ò«P¹vß‚ž¥J›M:5qQ…Œÿ¶]Èx§!K†àÐíˆm¥|{c§¡/Nþ¥h0¶X™B~´_Ö3k®§)·¥Èz_ (`)Z“Ó5š»^³‰ª{/z¬íXmdózA’°ö>¸XxlˆÆ™w/2ŽpÉG¥hböÀÌ•Eh×-ú˜t"Ò \ÔŠ£³é ‰F¾õžs8ß‹?ÒJ\«¿??.ü`^/‚Äë‘ÓA¼Ž5ÜIÅ•\‡N¼g|÷ -Ûl° ’ß&Sº0(êmLvb&Tñ³ y”lPN.I¿ „æ öëðgö)‹Heå¢ríÜ{ ˜ÿå{(™_‘yì?›h´e;™È£SÀ€¤¥ ÿÞãÌôx¸kÑèÌA\ÎØ]à -Ü8I‡ËÒ[aNmÛÙd¦/ç*}þÒîÄ*x&ÍM†3tM,‹¢%™@´~r±š//]%Ôòçz¹A—~Q¼ßy£p@&«©É`dÄàÇD5Y‰¤WÞéªË²ÀÆÒ|%ái¢´É‚Ö¹IÚ⪠-ÿÃFˆç{%ÚVÑVŠ”+ôŽ›¦eÜ5f,æ$èì®J#êÍ&LˆÖ`—Æ ½Ñ©uðˆêX\µ·{´D«4k+ä -šè;áÜ€jì˜f…Õ!”ó¼FWß"æû:A“ÅùP‡P¾$µû*öDé˜Ö'8c†9 -XÔäõ«Ý~ ™ˆ;ØŠ žÕ‚,?÷¬YÒ³@£²ÀzvZ#¾FfoÈ~è…‹:óªõÉÒ0m6).—Õz -¶»\)?{…;Q˱Kz޹í@\'òfp²]àˆFhoq§t/&s«–-ŸA.ˆ2ÿÇ~•n%Î-Ñ'à!„Œ s 2È (81( €ï«ÎI4¶ýÑwe­þáŸ(ΩS»ªöÞô3Åá* $™8d$"éAÐn~«âé#Žð;ZH íÌöóßú½© åJpùKX,1ûa,.—O;C¿[·Ž¦æÍåä¹8Oø8½üË¥²{ùá=p%ü¹»ô²F/† ôZbíZÀ)–6Dûpȸ»9¸ÂµëÙýý³ÂÙçÑSùò¾%‘™Ü•z)7Ÿ·yK­ÆÑ-µZ¯“¶ŒmF¨P¥S|Ò­ƒOú’4DQÞD7£2¦ÌϘ2ŸäÚÆè| — Î0ÊóĶŸ zÛD™3(ý*Y­ŸõÕr-=a²ÂÛH‚2Ag=Å'­s¢ çu0òhÄFèz%6Î>˜¿4ÄR .®š -b)ÀWºk*HYàsÕTX½ÿM…ï——äëú——ä_š=bõÀ‹¹köˆÕsÙ-³Gb\5{»¢ì?‘?uó?“Xz}aˆ>*-™#ˆ«X*y>¹g‰Ä -'£òZÉÅNcÒÔýÜJ ´ºŽ9ñÓ~A„¨Â±RÞ“¾Øo¤?Æk SèÞ.(‚ūЭ1ä®j -wײÑèF·ÑÈÅï˜"$muò…h§àÔ±ÙfñÌ)g¢.Ha\FJâ8Ã_¾Væ¥fÕÍgrýh¡Ö—üÛ -@©ƒf2½ìžü´Ž)ú š›”´ò¾-ˆTæ>p¢²£nq‹ÐйY=½Xµÿv˜ÁÃqæò0\pœ¹<̈¯¤ªÐÅaFзkÕ5’ùÁÅU\¦\^â‡;³ñ2î9ÀÅñ2î9d1§0\s2€þñþÁÉàOñ—¿Â–”­ÞÎÙð 4¤É[±ÚÜD}¥JÁÎ=µFŠÙçÚ"xßsL4ÛÓ#Íj¹Kµ²ááøé8—…ý8· -9ÙnãY^U‚³NQ-ŠO• i>i'†l΢W©÷_"¤X´dåèÙf×sÂvÛɽ› _ú«_ÀY”P­€…S†•YQªNnaÙX–‡šôÐðÆ,ÕG*ËÊI©~fV&Ǫ¬7P†Q×mìmúôY—ƒI:Ç0Eg^v$Œm!iÝ;A,ò›M«1ññÁ—'³pD|45TŒ²ž‡ÁâÔ•×O€}”ãá—àÑ¢ðá¶ÿäýJ9ýG¤õÀ¶wn¼‰O~9#UWë”­8à^#1L¾;Í©Jϲ„Ïàn.nÏÚYÓϦúLv†0¼ìWý24BÛ÷ø2'›ú•øÅà’ ”xšÖ%ÞÅ—NêdÊÿrq„xQ=J—«*«W YqCeKã4tI=#WòEÔü/Ç  W9@¿jæa…“¡Ð®ýæu¸ØåõZæ{WPwËe_‘”RäÞTF#¸§P‹†!Õ‚ ¨Ñ—fF6Ïy’Yi:F7íA3Úb_A{?¡¼„ÔNKß.­wÐ2é\bW’‡¡ršSžZ¢¢+#f¾!:d±ÿ]Ô\é€S–Í.˜zľ $ü} ±Ê(¾ü>”p.XZ~’¨òÛ@¨‚ -N˜.‘û(dÞö.­€ap¶Íªp;¤…< VÿvײsŒ…µ z:£|çëD{ìK P^‰ž7Üö€V™y#bàÔ)¨oøN(ÀJƒêgâý™ãø@µ9®újÙ>ð*Ð/(P éU¢¤ÂöK§œÓ>EÙ¬û"rø%žQ OwYI4už&hš~ÛÂRkÓ¡„Ô.ÿ!PJàÑ·Ì߯âIè÷ˆæp—x¸Gô0‡»ÄÃ="öþ¡.ñ¿{D†!­ŽÓ’Ô4©1hŸiÑŽ–«&ÚÉ„iÚúU©vâÅ1›­,—ZvRʅϺ¥\ðþR.&31¸D;aÒéŒàY,aÅ8½M“Ð|¥_÷˦ÝÒÉ}Ökã×—íŽï*[hM¾8Xð°ËP•¬€w ¡Ë™&¡t×T¬3¯Ÿ£›²HOo¹ý1¶>7Bœ–ŽŸG| cÔ`’[²j£”v縉õs8ÕWÞ›@ ’ÕùÀô'¶ýk -@±µÎ@Á®—ÁÒ’~ë üƒË?‰‹ðƒË?‰‹ˆ4ŸÀŒê÷ˆÈb‡ºÄÃ="îr¨K<Ü#bÆà\àAÉòÝ h"I)IÓç)‡I¶¢•Eÿ*©Ù[ gdÊÑw*¶‹ë埻 »âk/;ž8±wc+LZ +vÁœXý‚ -`#ä`?é«ý޵^ô´¿¹Zø]žyËw/I@ãJqÐ \ XÉ“:¿ÊR3“Ž@BåIÿû<9³Êž¿œ²èçÂ,ThêÝ£4÷Ý:Ýë@yÉ_l÷ ‰‡¸Ÿmù½¯G©Ô$ÅîØ>*ˆrò§¢ŒNGM*i½¼øÒQr÷Púwy˜ ƒåàê0#g¹à]f°‹££]fÇ?¸ü“¸„= ºÛ¸Ë$ãa͸L2†N/wIÆÃØó×M’ñ0@3qÁe’É4ã2Éx 7IÆê—Iû%%~pù[\¢ï®á’|]ÿàòÿá²°8'&ìq%/$1;˜“h&9е7£^zHÓÑU”ïàgäêd2W[¾ÁfjÉÊѳÍà -Oö“¦/Ma+ßÅ÷UUæS·šTKZpȉª²£J]š®{¢¶à2 XàlA˜ ίŸ:GoïïrNh+²ÿ ¤Àö©°xK¥îhVAäq RµU/Û.©×".iߣiÙ¼"˜t¨ƒASCq0Ù_{øÆ²¼J–U_‰ôqÔCó™ÚÄ• '06Ûîn*«…ZWÊÞrÊÐÐ é«cm¼ïãz8Çñ>¥¬Ì²°KxݼþPÙôU~j@tŠP†—ùžoh¦·¼ÍNãN‘üå•ɼÞ+l´ÜK0R-µ¨©¹^½no RuP/Bk“Üs<†J‰/b­¾Îë,œ%œØ¦NXîk Ï‚•­ekÁ×ÚÞ·²ŽKƒ´­zã ¹21Iî¾ùë×´ºmÇ«†Ø¿DßÅXTÒåªÊªÇØ4n.liœ†ó³þŒê -R(bÂTêÖ ·lÁ)Ë“ÅJEH®¿,bæs'èx!³ -ŸP™»Už¯À.Jé䨤/“Õí6tpûšK2å°LALeŒ :(¡ÃZì+ äý¤}Uµt§IAßÅZï\1™ŒYi:î -Lá]›Sž -v¨U\‚™omm¢¼¨Ñ–ˆè -OBù.Ôêää*(¥ïCÁnR¿ úCß¿B3ÆùŒòÂ×E%¿Á·Ù…=³@cÛ2öˆ§·yèʇÀ¨Ì9’ú5e˜°›aýŃöæô—°\fÅÂÿد²­Äµ ú|CAÈH˜$ LÊ Š2Ø­þÿ­:jë]Ýf-|QHÂ9'µ«öP×zE¥ µA›+æùrô®Q×KÃ|9’¼ÑÖÃ@Sí…yò”Û*RW.Íä¤<˜w_F a¹üL8™Ü@­¤9k0ãEme„¡Æ<¨$¦ÄG}]}J žäYB ºëMøY=db -D©28àJìÖ«®á”è竬"Q3ÿ(M;Ži*l¸ q´»'QRÔŽ3>’…-º9å3ô”¤; ç|†‹:8 ç|9ô˜åÁÿÍ BÜW‡YtJG-âH˜µ\Ÿg ³.êUœu$Ìwa³ÐEYñ—o‡Ëϼ|S\7§<ø «û“ –¬#âR<ÚÉ$‹ùZ¦ø®è*[Y~œÎh¢ð'‰ˆ°sr]æçžÈ ÙÅÐ@R11 yzu}Apt;¡ëð Ã¿³ß¸x«lòíüª‡Šœ WÁí–¹ªˆÌ]ÿ—‹:MUÝ[„,b…œ3QÉÅî̽°ÞhÊe-[3_¼H—.‰g`Mú'AjV¸IšŽŸÊʂڵa—t®ÉWú¼×FSÈ4ôôWâÉ‚¸›ø{ÓŒîGu## ç€àæó´Ìyü2/iùËâ•R9s·ÀædÊÛm63Ur'­¶’ ̆B!‘–áOx€>ÙvP½EšFMŒy¡¬\r©ÝðcGûúçmål–q›øõMkqÄÜ… ð–!;Lå ‹×X¡á™ —@¹kˆÆ;ïGm‘šß0‹â½¼ïjA& é5Ö {jÚ¸F%ló¢Ÿ'Ò:ö÷$ºsü -«ùŒåÛí]bEfVi¢ g±bzÇ ¶ÆLï<ŒÒ@þB2sQ„Î&3ô–@g“x~¤3‡É Þéì™3{ˆýàòípJËHø EôeÆa‘wA™qXd”‡Eó‹™1E†úB‘qQDf¢bmÑa‘?†2ã°È@ÅPfÞ™Ñný2sQÏ왹¨ƒgvŽÌË3;Gf0û–gvNd~pùB\¸Z;Àð|€åȈóóßs4ÐmÖvZóîÒ'Ô6¹\ù;ZZ¬O2Íè½Û¿éÐîÐýï¶Û§ÄöˆËd @^k¶ƒê£ë¿*’š<†JS ›æK¶ù÷ö‹f;‘z>6š ü†-·‹Rƕh¡1–rÝMÁD£²Á¤«æ´Éê©× -£šxj!òÎÝ}Ê[mÑ,<²Ë  ß(¶Gšòè¹Ë7Û×~u>íxŒœÖVø©q‰ùâX"hÒ„OovCÊLÙÍ /àùÅq}Ü ¸óàaõCù’‘À.ßÁÿƒË7Ä%±})#~,-;lÊ€ùÑ–9lÊ\±e›2ôü`ËþdÊN¾FüuÝ—ðÉVÆtNü]¶Œéœø»¨CÆ|_ü[ÏÔ?“à‚tæ0™a9Lf.ŠÐ™Ãd=†tö‘Èx½eåL -¬eùEÍ-®t–·Îð‹dÿ8+“¡á\~¨®]{³ö¯—2<Hº¸Þ`'gМrkc e}órø›v#03þ|·s¿,:Æ)Y[³(Ž™> 1%v’cR~|¹þP€ŠŠ^¼Ÿ‚1T`TJ×Ï}»Ãòga EÙG~ ¿=IÁoe -b¢Ú Ÿ‰© ½¯BÅ„Rñг¸®z%D×{탙„S!ÔuŸY×jÐc»¹¶âî×±ÜÑÃqŠŸïµÔáìK…P±“µ¬¨Jíúñµ ”WÕÆë+ÉMEÊuªU£½´[?¬×/ÂÝ\C\à*_ ÍâÔ£ÍDd§âúヹ\p$D˜ÿã£$wŸ$'œï>>à„+}xüê ~òȇ•ÅŠÁCø.¡×‰È†?yD†}ïôcæCŸØ -ÂòÈh7^=ïrü:<ñãu>¯qàU±bÖCÇû—㊱àÉðÝr„áêr2‰nÜ·,`cѱüù…¦Á×JÀè“H¨‰¿ÞRͤ7†î¿sÃÞš†!`¹\\Ñ`çtÑQÏ”]ª½Â ®nG«VY|®v¹r¡4Q†Ú¼_×KCø4hk ïmµ8ÒV+"V¯æü°ñõvèïÜ#¿ôéQt÷x.Sº~7nJ0VYw}­ñH)ɘJSAÙd ¶(27’PºaÆ{˜<ãTÚ³ƒÌÚÞßæB?:¨qÌLóÙ¦•z¢K,2äÖt«ƒ­aßö»Vþßzp­à`ó­×ꢜó­×ꢜˇ4®ïy‚«µž)B³¤ÛpÚ,k;­Àywé“Nj›\®ü-­FÖ$aºý›íÝÿn»}Jl¸L–*äµf;¨Þ"ÈX„»DdŒÔ_²Í¿·_4Û‰Ôó±Ñ,`à7l¹]”Aƒ+ÑBc ÎtS0Ѩ†l0Íh*1m²:BêµÂèŸ&žZHÏ»t÷)oµE³ðÈ.ƒ€~£ØiÊ£ç.ßl_ûÕiø´§ŸÖ>HÂÊ.[Ça‰ I># NTKÍA…Hâ¸>nÜŒŽyð°ú¡|Iç—oˆKâiÿÍqùO€Ê€À< endstream endobj 190 0 obj <>stream -H‰ìWév¢Z}#"‚ÌÄ£ Îqˆ5ƒC$“&1ïÿÕ9 h:ÝÞ¾ý±ÖýÑ\À9žSU»j請YX# &/3Ã+’  -óÏ„( näÜÛGm«^_•lo™7^&‚$ -Ó·_˜ˆ³ÿßÚ¼XŸqRáÖdœ§I Î ϶TB½·œšn%SJ¶³içüS„ r £sg™‹ÀC®Ý¹¥ ÓèŵºV‚-6û¼Q°=p¶ôŽžèß2›íMQ`ë²óšiŸ?óJ-dõÌÇ\ÎØ«kæþÆ…Ù¬´• J_Žðµ÷)ÚM>$ -óïL|&`a´+E‰‚&…‘Ý,x`çaagõs¦o%âE+×2nÌj™¼’éL¦´Z险™e¯:f6<””O¤5ø‰°j¶1Öá°0F½j³z±buÎ\/&%Eò¯òª¥®åZB¦õ€ùõ¾ Úî˜åY†ÄÁ,úAY¹›´ŽÌšµµÂ¥rYf¶³ùEªF®`áš;X0K}ãè˜Ã²„—͇†ìú¼yU±­J>®ÄSö=óHPƳ¶éYFOÅzÑ@Ýש„kíäU?í<­dÙÆš¼£MVûS&Ÿq0ÝÚ.œ"¸0³j[Šä4ÞŽ6X¹m¬ø(X%Û à¤¢Ý4xÏÚón&i亡ÔûEJìA -hWK^Xk%m1…Ì¡5è›P¥œÕ.5Ѩ[ÏP'EòkÅä ‘Œ¾dÒË]лâ7÷çXu™ëäÞ¯1~àKþ&ro˜›ªÌ<ô_vhtÔC4²±‡=LQ’–! Wa‚kžZ!ä3¿KgœÃ(A™Â$:¾•æ#µî\¤³}5Wí‹gûzÁù¤ÁdžÖõ£\tG!úÄÁÂEº/)¾¥P3º¬„Æ8Â-êdÌÝú9ŠbõæóFü€DûÕf§¼sŽÈã¢$œ­Ól7µJ>½Ó]+]P?p¥’ô²"¹çWÀ… š± š‹ ºdæ¤ÈÌ·BfÀcˆÎ|&3‚òzfÿÈ yß3ûGf¸^ÜžÙ?‘ù‹‹O¸$ì(ØXTX]/  -+…s˜ìEj/‰ymÓ ÚÅ»áô5¿ˆŸAéõçg«•¼ž \F³ü< ÉÕÕÐöÄ7_úC=Qì·€z·ô^i:ž“2Óªe~¼/þ”»Ú_`®Κ"BPb ½~ £!ßmï/\4õÒd“ØÁÔˆ:@Dr±wxí -n¦}Q´§*’Ø;Û -É!/®¨—`ZÖ¸70L6ÎXV¡Þ‹ò˜“OE4’ ̯¸¯µõj¥š/(X,>¦:¸e'¼‚ð¢·ËòhQä|Ä!C£;®½]‹÷â¿Èäý,ãŸÈ”7Ëø'2˜ùÝYÆ?‘A=Ì.WO‰ Øý—ÿ .ÿ~ÂÛÏ2þ‰ ಟeüèúö³Œ"ƒÑßåêi‘A† -¿/2…eÆg‘\Ìø,2hâÛ'†o"èMw'DFâž2Âï“Ay³ŒdFPÞ,ã™”7ËøGf;ôý™¿¸øŽKqAþ¾ÈÀ-ûYÆ?‘!(o–ñOd`~ÙÏ2þ‰Œ‡þ?F±¢QÐ3hRÙÍ‚v~—CL%ÞJÄ‹V®eܘÕ2y·Ð™LiµÒ3S3Ë^uÌlx6”ò‰´?ÑÁQ9„ÚvsÕÕ'ÿjí“/!ÓzÀürAY´Ý1˳ ¹«¬¾däza)T ³Í÷U–O)ão¼[9ò䤦ùбϨSÚ¼ª^Á¦ì{æÑxÖ6=+Âè©X/¨[ã:•8ÐÇõ*ŒŸ¾”Šû:²5yG›ªö'ºeò?ÌÕP‘—™Yµ iªñ»J¬\„6aVâ–ÆïM2¸»p{fÿÈ tß3ûGfxâs{fÿÈ̹…óYdþââáÒ¤iu­rm‡ÛìÉHu‹b*HãfˆlB?¶oä\ð&íüF†‘ï6É -âvˆdfz‘HΆÙ.9Ýõ!ß—éºk*£ívãÐÿ¾ÝJ\÷&­„V+h}å,›ÑY^¬LkQ'è?§R—Ë=‹·0«ê‰RðuŒîÁ£Þ‚7ñ™20l’.µdRf‚O%ÔÕs(À¼XiÖ -»n¼ÛúX±Â󇚒Š÷<Î@µACGT7ýñÒA1Œ–áv!â•7Læ{¤ûƒä±ÖÏ.Õ¤i­œ+›>êË-]|L®Ï J_†g}œœl–árA~ÊÀ-©¸qû©„R7 xÕ¼ªäÌ~Æ0¤BmË1–žÆfS~=‡BJfX}ËÉcóõcz¨b;7ëïÂË™”+ëMrWØð­A(g—é½BBŽqY¾ec»oO ·À­->O^p&>Ø~¦œI\ØŠQ`¤¢q#Ë*¡ëVüxŸ(>šäùá·3% „.¯Ê,ÀëTD*Öf¦'è[X.(Ë£oqJ´7Vêxƒ´Kw?ZˆHœÑÍ¡~ìøˆjrY…ØÖjžë°³oÀêÜÂߎÜÈsÞÚž%ãàRm‚‚xÛq±ÒŸÆ[gm -l­N’ ›«Ÿâ²%ôŒsù—1N„ºÅ­Ìò§Ï‰œÞòmXëÅá§“çDOoá¿l\~Üô¢#žÞ"y[.ßnâN;@Î A}·éÿWûš8 ·Ðó£VE´×sZ•ž †‹E<] ;)çüÛm'–®IH¯¿YðòÜ›^këÕJ^_œl΄IÙÒœdø*è:zúûÕº_¸×…¯ÀE©‡!¡¨:-Jµ¥­!½ÿwí½BÛù×LýÞ~ðEÃN÷éYë9T(w6ãF¢Ýf†?d1»+à »G¸;u‰ Quߨ¹:³y%¯ý>%b¥F*€KµÏ‚ú>QÉ@VéW’NµÎõrã¨ú ¼›c:‚Æ6нÞGFtGh4£û‡Æ/DÆMïÿuhüBd„û×Ðø…È«ükhüBdÄœì ¨5™½ÂÉ¢ V± '_ˆ&.úŸÃÉ¢ ¬ò¯¡ñ ‘œÒnh?âòq}qù¸äçv¡x@˜YrR*sÅäié ‡XÄØ°žðÑz§j+\ÉDûc?Qd¶× ô»Ùï y î"óüZ^eJWW9Õ^hÙÇ!/ -ü¨Ì­†V¡ê¸îPøÊ±äiè¾àˆÎúÚϴׄœjšumšžd.³Í¾‘›»ï`•zó£‚髾àýÀÜâ‹ÓÕÿ½ø#‹¥Å!þ“ J#²md -~2›J'Ö»Õ"fÕ;É÷{£'m®xds<Èj )îvÜ„»å3Zô!¸hØbî”$¹N $ñY;€ææ[+Ÿ½_O™foÞG½7®"Ýz»SÀX¸h©ÿv“¶ÐèÃ4 -C3fÃt$@œd¢ÜF-Þº‚QG&£0äÁH?ì( iÞ u.ÆÖŒA»›uѹ€Â†~ÑVœýBê)T¼›Û…ÄáFùGì ñõoÛ!‚ký\º—Á[‚ ¼åÐFƒvOÿZ‰ÜM4ôd†Ð:;0™ÁY˜ÌDg&3Ä0@g»d–‹«#.?—oÿ#.ß…KõÁüFñwÑXþ,þè, ÿÈ•Hþ,þ8W¶ þ¨”nM¡¡á¸Ñö€L4»ŠØ¢R‹)y#SË^çJçTÂìYa¹TÏF¹T ÑÌ¥ü㞨Œ€ ü v· -ˆH]ݪUK÷íÉX_LbTwnw½43iæÎÇg”ÝWÑÐ¥ Ÿ¥)9º„}ÏÖ]Â9Û§pB¿…¬Î鋤4sw—’ufó)¼i×Ä䆽Ï>DÌ6àrª‰h;è¾0tÌ¡ûd?á†?í´Šõõv’]Q}&—UÿšBqVª/’Øq©îBe ÙÜ]Z™þÓ#.?—З¿Æ…ÅOD+!h0k2;¯Åg¼Û-æk¤ñݨ±‚÷ ?!EžuD4¾Àÿcᛨv*]Y®NÖSó ·=¬k²O>-ð÷QCöå† ¡Xž‚"çR+ÑÞhcAŠakÆ&Ô­åÛ8ßä$(•x€¯Dâq‰õN h7Â%_ -ÁŠeÝH­*Tè2À?¼†bþ&„•ô¬{©"ÔFïçîBHœqvù°¾\•XÀ í ²‰oŸÀølQQΜœ¤ÞKBÙªp_ª ÿ¸ƒ­O ÅrnI—¦g°J" -‡ø¹Rö%®cðƒÊRã‰g4®JÈXèÎô—ŽŸ i'"—me6í -¿)´PŠ/J`ãÊe«@Œ[F(vË:ôËÐmæñ¯kIçÂiHsgÆúuœ% 8£L!rñŽ -ã/8¦-ùŸK›ÿÅ“ºh{ZóÙë­¥<²[äÚÔùÖ–~I—›•õoáU˜«[}l¼½|ôÐÇÏUưÄôwáî8YòO¡.5þ1)û(/üÔš§"÷àÕÄ»t² -”2 3ŠæøÙœ,Ø“Ji§œ¡_Šù¸"ÞE™sÄnàôT.x*ÂÜ š;ªJƒÄx¸Ý5ëér¾Ã~º0 ç+‚(¹\Â*ÈÜY=v¶ 7>uLQõ= ÔÔjÍSÍ®—BN°úŠÞ1ë“áí6‹ ¼ÌcŸme¦,ðV>݈¤uºÂ7Ä!ÌÿÙVÎÌÿ¸“T¼jþy#hRWò_zšøÿë•ÕŒýø»øÖ5öéǦø@ÊÿÂ<‰§ÂBÛwÒPÝê 6´¨^tÄâúÌ$ñ¸hB”ÄjÃÚ›!ç‚÷æ\½Ò¢5÷9ÅÝÞM© ÏT(®}Ó ‚T¢'âœâ$#žÆóÄëî–ézFëkyµ\†sˆŽ£h@¨ªNf$*É +\`‘%l‰^Á5Va×d ‰ù²;(fѤœy¼;ø|–#eƒý4) ÛvÈÞx¶dÑígÛ„UÞo4àäHËðü£Z?—nçeê÷­ì Ú¦ä×Jän¢¡Oó.pòÞ‰wÿ¼‹SÒž‰wÿ¼‹qÙ3ñîŸwá,{'Þó®'IêñYötŠûûD½¿SÜß'¢³ìë÷÷ïøÆötðŸùwñˆËÄåó\uÄåÿ‰ $_±õ³à'ûgSéñÉ8Jh³êäû½Ñ“6W<8y–Ki5Ñ7‘r÷(ŸÑŠ 4\1wbH§{}cÖà4-}Á:,±µòÙûõ”i¦ñæ}Ô{㪀Ðz»SÈ”®®Rÿí&}ò"6 gž_Ë+40„bƬÑ%fl»¾è üÐâ­£:‚0…OaÚ~˜ìV`½Š Í´ÎÅØš1hw³¹€Â†~ÑVœú‚ÀA§r&rc¹”¿þ¢ég±õÃ…„#²ÒÍí.ðnEÞ³JZ‰e|ú´Œ¤~%¶‹Y´|÷ðÔ5)ßp -àD^ ‡™"Â\gñXý‚r8¨_È1›ÂG몭p%íý~½¥ßÍ~C\í^Kk4ZšF™sÀ„Ü r£:¶7v¡äiè¾àð©e_û9³.‹º6MO2—ÙfßÈÍÝw™zó£‚é«M¿àÝÀÜâËÆµoü˜Ó™«‰Ëݲ¶!J‰o¤*ƒKbI½ÌÜ!²%oÌŒ~DfPcˆÎLf¤_j&3âÇB&3§û2;=âò#q ˆ\Ì<ÙI28YXYæpIÆN¯Ö¥(ɬu²Ìá’̶îO’]qùy¸¤âUóˆËÄE,®Ž¸ü<\TO’ݬbVÆ<œø»ópâï¢7ópâž’oì|^Þ$L»ÆPÆ<\ÂtÑ›Œy¸„‰ó‹•1—0ßç—oJ˜ßô&aÂYÖóp ÓåȘ‡K˜.z“1—0‰ç¿Ü‚ä{æ„ߙˑeGf¤_Mf.z“eGf¨_ì,óÍd:âò׸°.ÄÈ€0ë¦9¯Åg²[g5ÒøvÔXÁûDÚg2»–Ðèÿ‡=€ï¡ÚÅîè>‡LTeÝØ:YOÍÃM8î{X×dŸ|ZàìË ã²Æ?eßÕ "i½X‘PsÖY¡R¹Úð¬" ^óð’\p\‡Vo_Ôªïyg Vè¾eu2Àµ¯á„XHÕ%á>ÜûؽT¥Ab,¢DwÌW"ñ¸Äz§ÒJ¬›ùRH(V ñfvwÑþómÑ®¸¢ûVœ·Ä¨3¤ ['ÄzðìWévªJ}‚<„ñ0 -4`p@Ô8ÇÙ £F3Gñý¿êD“sNîúîu­üÈ6mwUíª]»’äRðåðZ>½‘B'£p½Ç+t€)ÍvjøÄ.|¹ŠñDÙhÒèðså3¬½A“ÚÎä´óSZȧ*|G1úµ%Û]7–(µn¶|æ÷Ûäé7Ú;iŽÎ‡-Ò8b쮿ï¸í½19-ŸIµCxçœãF1’…x95]ÖÑê‚—ÓÕ¸ûæ.86gÄgýüg¾ÿ‹¡N?ñjÆ”zÒÑq+ ;f^o–dþŠÚ_Úþ@s”qrìp 9Ê8sB}hŽ2θzÌhŽ2ΜPx !‰^¶A‘s¸L6±³6¯ÙÍ_óâõhúÒƒ:ÁõmnÂxÖÇÝ(@[] ?$°F·ýÁè»ß‚zÚ2D=c„:¾“ˆkUSŸïÓïsíí¯Ua4kJ?yGt½½ÉºX oU˜+}4J·ṽ©v€pd×´+ºA˜$i>U£p쵺—è©M„ײ&½¡aò:gY…ZÏQ¿N½´üR‚(͸?«›õZ5W8X< ÿá(!Š«ôEŸª"ÊÆ63LÆ ±« î†è—o‡ËO½|S\7Y ôÚiÄ‘%' ‹vSq#×¥/Ù„ÔûEúîl%íi:£I{çcªl£ŒVפù©ºõ; î/˜Raz50}þ‚Áq”„Ó‡‡]é7÷MŒåYå-×ɽôqGŽ¡üeèÆs—ÄÝ VÎ(€.¼)P[‹-•ËÈÌœÝyŸúa'ÑÌ–%k_$®ã7@ºØ"ª!âÑÿDçÓÑQØo“ttô\z2Ô¦“Mfj®2‚{ýKž* 1ÅýIüüËæOT_tr0É9ZÐ2šÌâ<Ü<ïYËë­˜^´r-ãÒ¬”m9©ÒzNMÍ ßî˜v6’ó±¤ðÐ7“Üâ¤È…·^@䬓1OÜ—eæ³­Y“;¨Çµ}8T¸øòt¸fLÖÅ;¿î "H×bÆÕÊR"^¾ ×1§¦mV‚RjG!3gJbŽLfø ³#“Ùa½‹Ì09]Á±Ç³\¾.bíše2ÉœPû¥{¬Iúþn–9Þ$sBù³Ìñ&œcÞ,õò|œ ó—‡K\ý©—o‰‹Ìüàò q‰ÍÃ`cQù¯›?ý(Íÿ„ògÌã5ÿÊŸ1×üù%ì7È¢4úÁåÛá"ÖÚïÔMfŽNFG&3à1#’Ü‚éìÈd¶›+÷È̆!FÛÒ¹FA<5™ÅvóàÁ<&:ŸŽrçz+¦­\˸4+å@†ÙTi½N§¦f†owÌ ;ÉùXRƒGxˆÕ8p˜"n2¸õàä,7Q5†˜ô©ùñ¾,3ï˜åY*@‚h d«€j:FpáMÚZl©\FÜvö˜MTkøÔö>˜¥T¯Eœè˜£²LGæ]¹>Û*±UÉ늞˜ßp c©Ù=+Ä¥'ÔY/|Z³&5*¶W/Ž=j›%ož§ç™}ÇÇsc¸fLÖÅ»$Þ¾ëû™J#ˆ›U. Iµˆ?¿ ×.B6+ÿàò-qá¥ùí˜Q2ÝSRìŒ[ûÃFÄ·6ÚMÅ\—N¼dRJSk¿EÄVÒž¦3ÚYÃSee´º†«òTÝú†:¥›Ý8&A‡Ç0Bé7.ùæ½+ý澉±<«¼å:¹—¾ƒ_þ2tc¹ËÊ …¸»ÁÊC££î£‘9»ÛÁv!i"þ)z!èCÛ*¶hìsÄ£’£°)Þ&éèè¹ôtB™ jÓÉ&35WHÁýNƒª ámS;ÈE×q¢w,BžÚ®B͘²BO::fþÛ÷°“1×›%é‹N*ýàòâÒdu£ -NÏWݲ˜¢W9d\ްµ#_.¸ÐÝ^ä=¹éûM÷\ˆdfú‘ˆÏF™á®äúû}¸Ì$ð}œ,0KÖ6¨¬ç+Yè^&z½Å%’J.ô+·,zÕ :FÔ*Æ¥¾ë¯-ÒïÒ±Ò¯/=¢õŸ?˜ø5΋u-GܯûÖŽ‚Sûé¼Y-xª¯ÛúXóâòUMÈÅ›É@ÃFSÝôóÙCZJðB$`ÕsþL¨œà z ` â‡XºT•ùÇx™Ï¥8p’•–ñM4ýÆÎ$5!NÂ)* ûÜ’€æ^¼‚¾¯Ð‰Ë^ˆòDÙ -=ÞàïœÀ§·ˆBn‡ÖÒaÈi²"Ñ—žWµq”“ÒùÆŽ{u k5}Ç™<«'wR’JÈ0°–9óÖînM[cFZ÷òþæ ”Ö -Pàä¢q)úk!Ã+t¿¥ø·B¯V­ó×öÌ[.TC¤ý`M6pãI¸1Õ¤óÆUô„:ØI%qˆ²þìî'k?‡À±õT¡ëýž,|k¡øÜŽlm_þù£ÉX.õØìÐÄÞ_ä•ÿ±_e[É3Kô xÐŒÌcB”YAAQæ÷ÿ«»“À§(dzt-/¼aAºIW×®ª½·ÊM!êV¿ì¢¸éð¥ ÜG´˜¤â]ò&À}•€ 3С¨^Šnз•¢DKî5$Z$$eZÑáeý2tïs”?/R[zÑQC¦ªsŠPXò0“Q 6öû—TLmŽúSÀÓ õù¿ÜŒTHuÄ­ƒÇ¶Ù§f{r7S£_@EWWØ>` c¤ÔŽFí â0þÝ[h¹—L"›AüG‘—»@ˆyÊ&³Ü…r( £¡ði ¡] è.CÉmå¤P;š¶Âå+Þ‚3öᦫùÑ÷tG·  stSoutËpýù<“G›£ï™|˜À…=UÛöU‡>à.ïžÊs›nL_ Õ6‘í»¹ 3˜Y~ì]²ȈÏ ,ù/q¢Å.¬Þ?°T§@²®ViNQûå–†U -gª£gÅŒÔÏàçòF1%îsáZÆ•ü‘þ%Ò¾0³ôvºãÊ -ºIÁnš&“§ˆ#[ - Æ­¥(¤% ÞvÒÐäŸÝI˜­Y4X²ÿXX‘Ý».¢É÷úá˜L‡™ü‘P? ÓyQmwÂö 5¬ž˜l.éP¬ÞÔNG…ÛîðIÅN°>8qQ«•¸¸ÙÞC>î»nÚh†Ñ’J±ÍQŠJ©Ñn½Ž‡jì..2õRúýy±G¥\nO§ùîCGªOpŠª/ÞnïrÚtÀ &²ò2/­ÑÂ’µ‰[ Ã*Ö¼,Ü> -}>lrÖŇmž å¼ôVF5æè,qvIåÙ8S7úWMÄÃÈ—¯bûJÐwÞŽîÜT$y·~–Ö«•¬OQ²IÀåKÉqÓÌř؛•8À Ç¢@ƒ6B7k®|¹¤ðÅÕÆžFH5Bûš;Y§Íä*ñøêm©¼<‡»¤/"·wѤÝìä©á>Õ£7=xpÂsc/PR Þk çIJµH«“6#—lð‡ÎsQ‘LS®(ÑÛŸ…`÷Ò¿^‚ë\‹}àÊ…j£Qb÷`"¾cx"åot†|xÊ,¾3ÒcW/ŠSê,ôèWªZãÖÐgž{å¢qã̓¹ÖÎÖÚ$¼îº7¡A‘ÆOq±CW:òX—¬°Å~¥_ŸYóì á ¤Ó„Çó‡Ë/Ä%þ²ùÃå7Ⲍ‰AÈ1,`Ö À Fªm™óX=+J]»Ö‹gîK8Å›N›«U&=Գˆžõ=t5ž -ÃG°³ÏÖ@½°†§Å/ŽúdØJ¡·‰|ÿ<ð•9﨡Ÿ=¤Ý#wÚ‚‘Ë1„¥ˆÍ'²žgHª<ç’%÷ -ZìÞ‚n¦‘Zm…u‚UðÅEý¾*â;#Õ·y’q´’“bÉÑ3Ö&áÍ•ág2ÉèUÐS6úe*¾Ç/$ùò_Íû ù£S€þ¿Bþ~,x Á=!¢ÿHuª¡]¬‘f:¡)M:ùšKòW§."tBÜ:l†gÃë¬@\6b6\ ó#¼ÝJ -D¯5”“Ò/!¢p¬”7ù7çïÉ}m-.”†òÚ"ª×þ;£Ç\Eæ¾=µÑhÈûhd£÷LA ’º†lH‹³SÐ1Q¨ÓÄ¿„ìrÆ…Ñ êÜ EGº/æLSëF.•mËJ±ÍŸì+±š©à¦ßiPûâ(AKœ*r -ûFIÔƒ÷L¢ûB-H*æv=Áz°ªM¾6Ì ’Ñ8ûáaæ¢ð‰?<Ì\™?;Ì,_ùUò¼¸üB\⣚rÂÿêd\ÔÎËüœ“qQ;/ósN&Œãe~ÎÉ ~±½Ì—œ úÉýáòëpA™ˆýáòëpùë—ÿxí0oq%h´+°8VÐ–ŽšChH<Ш‹‚ ­^Í,|Mgg¢©N3Au%s§[£•A6 ç1~ÄW^`1;ßÀ"+‰¾Ç UR¹iJì·ºenÊ– ‘ Ê]+ös—J&nž>Ùjô -«ÃÖ~2úóÈýö/ا%QA‚ž{æ£ÊŸïàµá4 62ü¸ì[. WÖI…áljv8^A†Œ¡%Úí̓4h”ß -¸ˆÓ­ Û}q;EÏ¥;>¬p-¤QRßÝ üàÐrºà,#)å;‰›vªp|ెø¨85±Ï´cHqEY&éEW“áWüŒÑµ=‹Š· - ñü~› .Tü 6'ý«5•‡rQð4FñÅÄ¢ƧT²`2z^þ¼SÊCl -ø™#UàVEZèÙp6ÓÜdˆíOxÀ&Ú°™>ÓA½¶è{)¾ÿwÚ{Û‹,1Nx(dŸØÏMçYY^Ëì…•Ecûºû@JiÿÁÜ)üªÚsˆç.ÓÞܪ—Ø»AV¸º5T1aXºV!ë0*È*„”3ö1} ©ìm—m^§\”D¯V „A\Ôƒ£Á'N¢¥|›Œå”P(yDIiU ~ÜãÏa -¨E¨»÷-Ou…µ3k0uÒ jgŸ Æ m`ZÖèÀŽů€º¬iN#¡j«Í-™È=ß.w°94ç¹êˆÅ7 ŽÖìS³èDŠóÏCöªqŸÂ~v|‰õç¡€ =_8Ò‡ ~aŽÞíÿ4ZïÇ™…zшÛ@âüÐÆEžgLjAèÈž÷7pŒë\N -…»˽Kw2êcY`½Æ£è¿¤4¡’Q -o\”³TßÝßBµ7ÒV«4§¨ýrKÓ»F§Á™êèY1#)5ßR;•üêöù‚’+zšÏ£ãÿÚCÈy B„¸ux‰Ç Yz 9eÑgsnù•?SÂÏíTÄ¥ma¡‰]HÃpIœÅE¿»­®°?t±”°°tL¯„sIuçnú&LL˜o躒zðžIt¿9"H½]O0¿†îÉæKNõOuQßíTùT4ù¿×©ò©H)}¯S=äSÑä?æTƒ_Rx‡ôàòÍ -ï¾Ãýò­ -ï¾Cêâ{•÷!ݦåQå U”ÿpùu¸üõË/Åe|—ãASxBDá™Ü©†v¶(ÒL'4¥I'_sIþêób63<>Ð. -óy . 1®„ù‘GÞî8T¤e54$SãÄH¯n™uñ^> õ £¤ãð§¡ÏTÒQ/Ä©w>T˜Øjtï¾ h¬î; -~â4Y`Aä/GfYë¢é beÌxgÖôæ Æò_’æ±eÿÂdæ¢0]˜Ì€a°*¼,™áYŒäêÈ ”Ùcü—Ô¸o\þ9\xö6ùËæï¢pû¿pówQ¸ý_¸ù㎌Ü%›?ÒcV®þ¡ùçøêþ—e|¿ç8:Å/¸Õà -i´~Ä–öõî3¡Az—Ú¼z¦$½†²ÝØ=ðXàmàw³÷}·O‹ÜþùÈL~Õ…MHຈ9ÄÔcœb8صH¡Ï}v^LHMÀ%~³¤MÆ›ôÜ¥»Ç÷$`y-œØk&æ†oªÅ^uÖAk$ÑÝa´Ò!wsOƒÅ>‹þásÔ¸E¤]õ)² ZÅþ®=yî -Ýþ@iÎ_Ùz [{ó/è®uFa–ã(D@êIÉúV®æø£ Ìš³æ9“a=b”/ù|øÆåoq‘^ÑUör$` ÿÆE³ã'l«]aHó›àuì̳ÉCRÚKlýÓsDBh{Æv‹R’†ïÁ*kÅçq«CuDˆ©ê¢x6u«pµt  nNÓ\¨BЭ6Í õ„”¶ÿYP'¢a3UZí›h‹æ)\ñDΟ½¨á3À2o“áÖ©Q­r0 C¢ß(#¥Fÿ¨(ÊajlT®º¨‡É„²jë -ü¶)oôr|¾wí|Æ0àF™%ùÈÕŒ4ɈsâCùìPþ®TÅÂÕÏl®ÚÖuŒ"ì,Ã)ÀûbH9 -”H+1è ”Ê QØb’—Ñ`#†rôa/úµy -²¨øFìþ§>8S#f?Ú8­ù£÷ë¸ê¢„Ù•»d1lãV©Œ0cFy²vš»à€4ƒ;Åñq#±¹jëG̱¶õò®º?¤ì5ÛòÅ߯YyºUÿ÷§ÿn½zA( ›¢m¦‹Bþ÷q#D%þò«Ëë)å289?¦fµJÁ£»Ñf|™×¡Ê#nBÕiƒ/[¹’ Ó‡9˜2=€P}þÁ³ƒëŒèßí@£2é8ä“”‚Ƴ͉~±ÔŒnÛ-UÐŒ¬,2F™¿ËûªüÜ0œõ9ïª$ÐsOk‡´% J:heÙ7ÊîˆAC¸T #ÜGRrƬ]<’\n¿¢áq~r«ù”¶‘„#¯\´µbq½LD–3êÉÁèÊBxŦüÒ¨«vô·†°Øõ;SR{lʯ Aêé÷† ú‘/¿1=zƒøä‘ _ØO?B¥Kº -jŽ¿¼ðAõA'd íÙl²ÄD›r*%0¾Jx,è E®Ñ¦×ÀÉ6Á…GÒù“Î@;4“JÆ‚•_J-ÇÄ6¥+µQÕr!¡RsØ£¤¦Ö¾ðhø‹å#ÀÈ‹¥?Šm‡¨ö ¹ÈA"ÀÙ^}Ä}HŸ*gƒP†•$´„&âÚ&k\O™w§jxOžÜUêâ?j+Åÿ®Û÷D ûª"ùºA óUEòu=æËŠäëzw±/*Å/èÄF(ŠÐ'ùfÐd&—OŸ¬UåCÛ·*ßLêS›@òÅ»Û û¹›.ûp¹›¸ýú@F¬I>$pü¨¾ÓcOV¡¾í¦ÀtêÙŸÏKl -½£o[š,Û•†#£!Üoó&ã¹dcN™’P­0"Xˆ¿Àã ja1â¸ÕBŠÁ¶7’Sž=õ¨›d:úl8.j¡£ë¥Æ0ᜫ!\/PJKÿXû‰ùXßïv’¶µµžUR4¤ŠÔ‹F·J·"LŸêQUS™¶f¿{È!EøÆåŸÃå»^þQ\Ö·yÎE¦ðDˆ "œ°êk•eÖmá7âõ’ÐH 4 9.1Ø—+Öñ -æ’Z‹˜M*< ‚v×LŸ’éÕ-³.Þˇ¡d”t|ö4ôYƒJžÕ ±GêÑŸ©Póqº*îÝ7 ‚Õ}GáO8‘¿˜e­‹$wÄÊ—ñάè õ¥4–/Lf0W":»0™ÃRì²dærêè‹‘0Lã&ÁšùrŠiKK3_N1»([3_N1›õBÆÂ‹)fè/¾ä{òÂd¸ :»0™Áôjµ– ’™U/—%3±šùrdfj˜ “ÙÙ\y12sQv¯¹™áˆ™šù—¿ÂrúQ79„š]4@”eÖ´Ö’t ‘@Bµi–O´#z«¼ÑË~UiE¢ë¬|ŠI…Ѱ ;Þœç²pDuÅœâ Å,°¢@oºª¨F·`Ë»Vt»¸VEc37 =†1.Ãw%iø,¦b‘xå Çìµ ?Úÿô"X+pkÞÃSc£rÕÅ-l+gY¯®pë†[>©>œYÞ&íS£-VÑKI¿ÿîLòõOmm2{»ºŸ>ƒ¥ÃëäÚ}¹&Òb°÷-å‡,úˆ ù{ŽåçÌ+kNe@`™…['Eô_¯ПdÑýÈÃè·ÖéX¦e³Iø3ò°ÒÍ*}µ×ökòøQm'·Üæ>v/«tMI¹C¹ÍÝsKv?ÍËT ª4 §,-†±l Þyœÿ-øŠ9„ܘÒ~‘ËÓʳnÊj31jL¢åA¸É[È4åÀ±BŸÇY… VYîrLÿfjœNØÜ³lYdc -”‰µ¹ñ½(QS¦Ãׯôï#…Þ½-°tBÕÛãìrLÜ91ì8¨£âΉax옸sbØô‰;vf¾ãÍrãGØ·Í›ƒ:ʾhÞðT~ݾhªu§ôU[Mõñaç—ÿ—ïyùGq™ß§y02g±„“{5ÎJ<¡N"–Ítèøs:Î_]àUZk¤mZði<¥±¼{£a+¦‚Õ ?; ¼[HâU‘ç9ÑqD‡{þ§õ WŠÃì"\ZgÚ™ç.Rä¨(ßxîÕû¦$º'×?Òñ²sƒ x–zW]Z¡ *©ðĸ7šÒÈ"/×õïÎù“Å9gÐ?N2}Ÿâ]Ò¡þJ{RæÔ[;}™ºXiÒ0<å -$ô/ÖçWñ'«°GŠÿù¥›X?bd‚Joç^ ¸™lÔê.FÑH^Í4²7J)œ-0: m³I&ÆJÊÛj+)×´/ÈÑË |øz{…’iêg¢Ï 8ùQ575ü˜¾žƒ"+¦™Y[)LNÁkA͉•BCÜAlåÒDƒÝ…IK ŸÜåt„ú2©‰pbd×ÛÇ€ÕñÙ½{ž]·WªÇŒ‡¯|guX¡¢;óBª ´ö¿‰eNßœwŒºÏ$š¯èø#»†ˆÎs¢{Zj"ÏÓÛè3½uq߸ü“¸ðG‰ŒƒÂ2c³È8(cE;EpA2c³ÈEö/2à˜—áo\þ9\„üCÀ÷UñwPXþmȕƊ6Š?ò0 ÿ6‹¿î”Nÿú+Ï»8?¾ÁÏgÈ ´¹üço—ÞN|ã bÏLG½Ì^p°u2ëídmç…Þ:éÑ MðEÝi B¨ÌM÷ª®/œ¬ÏÓ4š¯Í[ëA™+†’@5¾›ºôÉê·œ¹Éò5 -XÞˆæ” ¥ÔÕZ6¦¤ÌîŒi´q“#““»UÜø›ƒFgïZ¢¯Vs`›ò÷àÉÔ²í;Uy:›dší[&7ö¥»–¾àjàÝÂ3úVÛcãè€ÐGô‚t‡Ž¾Ñ«)á]‡Õa O“>ÉË3Ž”tù¾*28YèYÆ>2sP{ôi™!†1²Œ}dæ ¬,c_ÂüÆåÆå‹ “$¾g›EpÙ“5{D3¿ž1íà13cÚ—0d²Œ}IŸØ^v²#É8(+ËØ—d`*Í,sZ’@óÒa2³¬dæ ~õèŸÌO6<³}d†ØÒðÌ'’™¿Òz¥;³]§dŸ3ƒyùÀ þmg~Ìôfö93ÒcÄ›ý3ó&3Ä0&¹ØFf -Ó™Íd« :³™ÌráÏÈŒûÆåd\Üø12 ŒÅc\(®Hµ»3ÖJãÓIFµ‹G2>³m“Cw×øÆ |õÞŽ{ U5Ç:‡VLæÑæ¬ó5e‰–Bš1«­Œb]mküüÊ“âåõ0‰ë7Ô*Ý]¾äE¹/iÖa8¨¸Ü¼{S§W?ÝŠj½÷,°N¸ö%´TSäç1àÞ½ZRƧ!JtÆþj0ݲ®šùÇ몊x¼åOïŽß­E£#”¥À2 —.G×ËAš`°¿¡é»üpÑ”›æ—¹ë^ƒ­_y%ÚÉä€fÛôÆ+4*[ØËmÔ›©­8ì:#ðs„ŸJôÓ!ôt³gõ^c¦Ð]ñ\º¯£P\%Šì ÁÅ”-@ƒyŠ{6ÛÉX“ ×"_Š­Kð²rY'\uÀðÅ^9ëmóøšÉÉà7Y™…¿-UC_àqŽß±Tuÿq@² -ì]KÁî»ÈÞµÏÏgh÷Ú¹t¸ä¤võpÉ•÷iqx‚ã{Ë–ÌyÁOÎÃ2:ùœá¨+ÏþJdöJ…Uj¸cÈH±¾úá°(G–.â¹â/S’ëù⸣–uI’éF^`Î"`‰‹ƒ‚§^}’H®]Ó[4‹EÝ'ùRœ©Vƒ˜0¹áÁõ åÓ 1üˆ\ÂH#+?èb¿éÿ1^UÅ¡ò8¶¨ECÿV›±„‰q Ó†ÔÓŽ#*‡UjlnÌÙO¬)+~ ‚gñ¤8Îw s½§ž5—B^¨þ‚ž0ò³Ñ`_Z„µUòÉ•²Œ¬­R>*œY?XˆÏ*íåÃRÛßœI*Vß.½”Á8¨=Î\ú{þ`s“ïß endstream endobj 191 0 obj <>stream -H‰ìWév¢Ì}A(¦ˆ* ŽqÖ¨iãL4ïONéNwßõ­•µúGþ PÓ>gŸaWH”xS/°¼™ZÓÚVÙ^ëó‚æÛNžøk„B¿™òÀ¾‡}ôß&É~þoSâ!áÏS|4z°ÅÈßö©hâߦtâÒçS4¡ §HZ«É›îþíÿÔY—O?îT$érÈÍ)×Þ–ãÍ@•Óz9÷à ÃÃáT†bs>ZM·w2*Œé¥NÙÜš¬6×\rÍÛ‘p“@ù|@ 6øtw*!‰¿V´d#®ð©æÕ#tŒÅ7üEJÝ/¨C |´÷„2”ßÎú‘Ô{‰zk¬Õ¶êýûd3Q­Ä‚‡­ÅJs'(‡³ €`•™£Á¾ú -•tšÆë½ðÞ¤¼õ~û,j0^ ƒc†*ížKj0ö"ƒý™¶ÊR¬Þíÿk/7óýõÙ\$MÞŸ`úèß5S«Åêó9ß#„ø´¼W”quŒtßѼ.2Hzñ‹& ÙEa`´#Ö°i¦É;%­Wu4÷kû3L/@ ²lì‘Q8Âöíàôúä¼±ý-¯³íìÛÇŸu¾sGÜmYáî{OG6ÚÚ%éèý‰¦æ…PÒ°qñ¹‘ŽN¸Að¯Á`«Åc8“°Di’d®¯…¥ó@oÛ™dº§eË= X?$ÅRGØ?GãÁtì¢wâ,|ŠpJ)(€z~©Ò3¶¨2ã¶Y‹xñ2Ü>F$Þì oß¼üƒ¼êo^þA^òKŠH 2€æÏsŽœÒ½}4,¶I¾“ØÄolÇMæ´•×ÏÙu‡¡„Çç6töèŽb& bô•{ѽ‚ÊÞÚ¤xú §œµœ‡>;ïÊìhÕlt8 y™´¨ÜýË{ ˜¼U²¯«Ê6[¾¹«éîÚ²Ÿ&’Œ¤iE8 L Æp¨Á×&‰<ÈïßÄ-x–é¾f1ÚðKí½ô)Œëö)ÐB0¯¾ÂÁ.“hCóÉ(tòNkq…¤Ú\ øÁcXdÀƒ^^Tgsª¬ÎP>YR—þD89ÜÅ~…ßž¡| -$-—¶‚sM%@€—ß@Á¯ðѲ¿÷,N¯ü{]ŒüüúÐVžz—ÏÓíîØ/’Xi 9' -è}¤§~ÍT¸ýL“ö‘#ñÖz¡I"ù\“:Vâ -g4·7›””µÆ×76ÑRÁê>Xãj ê¶Óż>.aô>ï¤Cüš”DPJÃﬔÎÛn©!ë@júïªH*TùiΑÔ$z¬éЬD[á–w*vGäÐs&¤  Ã/.œ‚é£@SÍw¼£qÙ»™¼•ªÜôzÀAoö7%± !\êõ£À©Ó\:“8ÕsKßÕƒs¦ÏÖÒ¸­6e;¡„Ѭ ûŸ?¨c÷“À„jÑkÚ=KÔ6Ví³á -ר¤Èy8’'ÂyÆ"ÛÚŸrƒYa!ŸÂk¬ ÷w™ƒjèO´“œ˜€³v±£œ¨E<¹ÎFßàš-6WËi¡ùT»‚m‡ÚeÛ^¶èœãî¸Û·ÿÇ~yn¥Îaø -¸ÀBUZ!TiÒ<Р卨(÷ÿÍÞ; lŸ%kþÉ‚”ÝfÞwžQ‚ FU‹õ^ÂÎÛ„zJèx‡Ê!ÐéìגrƒÀË+ÿ=2k޻ɴËâxUã c-4dDèφ«wž) îÞD;õƒp÷&ÚÁ‰ýܽ‰vÄ“ºßDnðäoAwÊãùË?—½fè7.ÿN\ž“sHqŒ -¸jasÙè‡˜Š‹J´’‰’šoΕjÙÝz–ÖÖëLzªdƒ.ÔîÙH“'Q¸„†ö¨j[7O½¾@pä[ÕìÞ’¸c¶Ôg$óåèyW)ÏÒn½"‚Zë K1¨°ÔNõkå2‚–»Üqͽ†}Öö@ÑÒat/LÎF•Ò¿‰Êõ©¨ïz{+YÎñü’YþF·=5ÀdŽã½§®^Õ©¤­¾ÕH}l´}‹R¾RüƒüBðúî,È!ô'J-ÚuØHgœ£ÂMN|±Ñ½¶RÔ¦›;ɤ|uÀ{í Ö€™Jnß …ë}%:¢gB…H¤@¡ft9â»ê&PÔB$_.61¯@¬¼Yÿû¢A³˜Iì˜h\”Á¿NŠfA²qX4&óW4ÐÌÑoŠv/‰ "XâÁ™Üç ®búÖ¿'šÒÊý&¼¨ÈŽ>1œ#£î#pŽPŽ™[ÿl…7ÍìeEvÂÌ@û&8gfh/8gfz}ù3 sJ‘`&SDƒj~²~&›;†3²HŽn›GóÒÅhz+¯Þêh½ëµ¸™¸Ùñ¬ —ë‘Û§žEÑ…‡,Il„›I–-XëŽ6ƒÓÕ}LC«–~9_b™ïìŽnŠ£Y“GÑ‚ÅÞ@Ã*/v—9]%ÉdS‰6Ù& ùœbg`]H¦ñ¸qÆé[Ÿx~>•b0ì…d“«¸êPE6É´Ô«Þ° Œª뽄ÝÇé—Ðñ –ɉ™ô\۬גrƒ+ˆe±Ÿ«w“i—ÅñªÆ‰ò`Ì¢…†ŒýÙpõ®ŸyÍÌ ú¯˜ËO›ÒË^C㈙!‡Ùkh13ãÄ~ÈÌRžØkf9¶ßÐ8bfD/-‡ÍŒÔý°Ãff¯ûΑ&%{C㙹¨ƒ†Æ23ë‹ÑÐ8BfûõågÈÌ›_˜!¥°Ãf³˜l朙AŽ™l朙Ô—Ÿ!³ûío\¾éýzBõË>¦ ÑO<—®ðjm3Bײä#°—ñ´´‘Ø6ú¢cG‘¦ghÑ8LR;º5„-²x>~¾±Î¬©ÂW…ÂW†µ¶zÌ÷êîáãË£Y+¡‚ð3{ˆ™í…¶ù*,W幌ä'±"ߤDk(8„U÷èUÌ«797+ªRí©¹°@îP%9v{ -yªSq³5ÞEP…<’:4.Á@ ”Y^HìL‘ÂI¥7PþÈ+%ù9Fœ1m +/¾²½­ÃÜ `.¹G½$ Î×¶. qmïÑÚº­©xw¡ÿƒ¨p޽ÆTÛøk âÛCpËÏ4ˆ_l õýïñ‹í¡‹úTƒøÅöÐE}ªAüb{õå3 âÛC8±Ï4ˆ_l]Ô§Ä/¶‡.êqÈ>üÆåŒ ¬û7.ÿ`\J+7 üÁbÂnØÖ> -œws<;^§–ô™zR”qesÓOg>RÈ”8ÄÅí›,£n_ôQµÕ@b©ôy›§^_Pp5 džùø×æ‹eΤF>~1ó“ŠÌŒ:nU¼¾{NB,ÏÅüýcm“¯öûW‘lïIÆíÏMk¬ù`¢'Ú´óŽ…Ò©0ä×ÄSgIõõîóVË(¯ÂË€‹ÊŸºª²ò\çÛÝ?tqÊõ­ú‚׃»ˆ—˜óÿ‹?d2*ÿoÿyÖXŠ £ùÉ8L6wl®VŽn›GóÒÅhz+¯ÞÂ/¢¬‰›Ϻp¹¡¸¨gQtáa=‰íAŠ ~©%qG›е6)2­Zúå|‰e¾³;º)ŽfMÅúÊ`±7Ðp4Ä‹ÝeNÆp"Ù¢¡M¶I#L§!ˆ@>þÏ8ý¦žŸO¥ {!ÙÒB\u(ˆ>›dZêUoXP‚ FU‹õ^®’O%TŇÊaHl *)7˜ ñáïã0?4gí²8^Õ8ÀÀ1‹24ýgÃÕ/üþo‹â‚dã°h Çl‹Â²qX4¨³0˜ùMÑ …rß ÄÉÆaÑN ô•H6‹fA²y_4üâ2LJ\”Å΀‹²À9@Ñ7À9À9¦3À;Ðì=|ÇÌ^ pÎÌ\”ÅΙ’ÉΙèÅd€÷Ìì~û—¯ÆEzD¿ ÙGô!á‰çÒÃ^«Mah“ÈÇ‚õ–% ]¦3ÒFbÛ蛎Fšž¡e…™¤vtk ½Èâùøùö\°6S…¯ -f© ky°ÂTJ,bUQ™ÉuýÐÁz@¾{QE4Ë©Žåv¯†h˜U¥…‹†÷TQÝ "í{ ¿H rè./Òé^0âsÓ%pça}#£Söˆcm)ó•i-ÄW¢É fà³M,óäŸ ÷Çn£±÷- @ò›ÎÖ28Ò$#þc¿:·g–àø!B‰ F%r0 Ndlœ` ï{f$!{YøÎµ9gì˜ééú|‚Ä‹¿(ÚT˜xG_nª*¢L~J† -ë PI-‚β©µ+Å!mT‹NúÄ!ÝK¡,J!Y=ÐÉ#\ÒÎ7ŽÈ“Ñi¡ Þq6Rá™'âŽøê7dhã0á,ú}& 0]WÉ~Z³X·öÁ=/òþsø8 ÉÚ™¯ÏæÝp~½fžŒ{ž'qxãÒñ|ùãŠZLùŠs{Ü|Ñë‚ëÇáKÓo˜}¾ ô!¾8à…š¼Ë"‹'#¾ˆRàý–"LâjB.¥&=-ÐÆ1Q¿T*¢î*¦P¹ï÷mêhRM©ü\xÔamZÆÕ;]+iä+#J“[4ïŠPîTÙ ´QK!§¹kÌc¨w@.eWÔ~”!" ᎇ­\;‚œâ°©Ú=ÀS¬¹D&àFãg£A`Ÿ6øœ]ò\cÆÀwƒ-QÅ!õæ fi,.:ÙŸmrGCaN’Þ+Øòæx(h‘£ [Oðà'9h¾ ZGÓéÐE*/!J˜*ï&mÇ¢4WA¹iï“‚â -:)Å*3LhHL­è,pt¢®{Y¯/œÙqè•b(vróŽ^Òd:þ¤y¦;]Û Š üK¿Q^Ûùb|X¿ ¨h]»ý’[Ãÿ¶¸öˆ "/¦>Ë®€ej„à BA"‚üÙë ú„†ŒáuŠ -Ù ¤”ƒ®:b¼:cU¨š6ÙŠy^fíƒ+û(LÜÉGôÚSkÏ'Tœå´ùü¶*@Õ?i>¿­ -0'Ÿ2ŸßVkÀɧÍç·­'Ñ0'Ìç·­'ðØióùm뉔ÒIóùmëiõØQóù¬'ô$þ«Ë_W—xùKë2Ìñ ,Ü,Ñ0„“û ÖÔÉXÐÇ;Ù´šïø2¹ ßõây†'{ìm ¢ýÖè·C©¨°åX=ÆÏÜÑÝ~TB©©"òôù‚Š³× (cý¿7ö~Cõ9QYåÛùì—Då.øh 車HOz‹\¦êZ£‚ECCíŒ@±T›˜X/n¤Ѵ+•Ãù†³Ž~•.\aÕÀZô=ÝmXãF—¾øí{ñM›S›vîRîEó•ïqI©àòíµœ™±C*åÿþžKšhK"dbB½ÁÍ|-]N^¥’#¥Þi•’ë„N¶¸^KÙ±&‡®Ûš˜Þ -Jê2—pÿ“J! Ò23bâ…²ãö/tS}Ú/矵µÒ4ë2uT¿'ºXK¢jˆŽjлé«] ÆY¦b–EÏXt\£Û’@’ M¢yêíKtß™Ù#=WŸcÛ®¤¥L¢v׌aJ9ðB¢‰^¾¨QS™3uãzðk¬Ö/‡‘$‚ÈW`EzZi!õÏZýÒ_›ˆÞB“Ú2ö{ÿ8hL5~fÐ["Øœ4fÆ~ 42{4X[Δ3ƒæ‚²yFÐcÏ 'ýhþÕåï¬KˆŸ îÐ2ÃÙÔç#³ j¯ÎGfö|9+™}ž/?Ef/ ÁÕ75Àù@sáÐç š/–8h~›/?¥VªC6C]> ç³€õØ'á|Ð Ÿ4X[:…óO¦ù¼åùËáP—ÙË éè6ë0_çÙ\†:™uúéÃß1.õè2”mÅŸ]þUÇçbž_Ú.¯–غ|£'ðš±¥±÷]fƒøïTÜ 6^§©á`ËrmmþÐ~q©­çÓ6¤"}{íÒ'¯¿RPÉ;Ñ6—ÈÜ])–¹¬2øÅE|'i´q‹%–S¿×hòkä®1øÔ_÷=o»Ü–òÆ>ó µý`hoîI¾Õ¾÷ëãpîf ¬,|YÙ gýl9qŠØH5å%½aVßêUY؉â°>l`jBåÕÍ’¼©Y",DB’¤S¸Çв-ç2v´JlÛôÎ -·ãå-éI"[ëY¯ÅÍÈÅ ¦m¸Ln]>£C¢In¿4ˆ”*ô®à;¿‰T£öþ˜"}UÍþ¾_ò)½ó.ôÛi“GõBz·WÄÕv9³ýQÔ.Óˆ/޶© Ê*T#L -Ì'>à¶Ã™I÷x~6ŽÆaÙ‡¨£-Ä·kJgRô•1ìöU-”¤ C¯u“N¼n*¼a†ék_KbÞV7ëuT[ d…pú?<Ç-¤VI¼U9Qé fØBô=ì‘zMü«Ë_WtËý«ËÿYXv¬›œ Sg?_ 1f´ÖtBÕˆÒÁÌ­›T_¸ñ[i˜vì8øÕÌ+YÚR¹÷s8QÉYØ"d±v¾kE_—_‡!Ô®ý¶öbW„Ï)+E³-Ïeû<¯ÍJ£¤~>Ä ãMÑY>m ›^Ǹ“‘Øà¹E¿!!Í8Æ+¢æTÅ!ÝKF¼i!’éŒ-·¡ ä3°ût˹ÅafšÁ:YBá¹t'îF-ÿ‚M3AQ;ù½³‚gIН¤WÐuÕªY5càçËýªM³-àgö|Œa¼(h¿öç>îyJ:I<Ëâ`×’-ÕSûàjÉY’/÷Æ òìK ³­‘q*XòtÞ 7¾î·ð$2¤Ùí&Ý“@µŠGãòó•À{¯g±·²iAÅ’àøÅ¶ -JÄ›ÑËÐ9©:÷<§.…¢ÜÊ@ާ2$u$£úA' ïº?¼ÈD&&Œ«¥K-‹0v0Væ+ÂFCIÏC!Òi¡°šfaY/¤_¤£¢^UPƦú$Cw— 7›´8ëÇ©BÕ·+=r7ÖX"ÆË®Ê) æ¦ï¶ríðÐ9MÕÆ,jìæùCŸ_»ä¹ÆŒ!^ Ù¸Po%Ååñ@ÇMîP f]P(ÌC±IoN" åÍ¡@œj±[ähNЭ'xⓙŨt~„ÎÂ_šS -ŸøøœÝ»øè FB%‚þt³Ã%ºÄþËšÈÖл‡³pàF–ÑŒPxd~îÿÅØdÿ3mÎäÞÈXŠ2-¸?¼¸:à’À¸®×Y.¯ k7*ö\QéÎsÜf%kr(V6’»± “çÒÛOÀýR׃_» €*܆=_ŽQft¬Û­‘€Êi¹2òI!M£ujhº& 110sVé·ÇJAØœg£_Œ‰ËeˆŒãÀØùB[¿ÐŠI§óX‘žVZ¨›XT¢Ÿúÿc¿ºÖS¶ðøj@Q¤ Qì(ö{I±DM3ÍòþgÍ šrÎÙ;|ß¾È1€ÌÌú×_ÖÆˆ;¿éj¤˜'ø墾OR?“£—o“ÔÏä(õ}’ú™| gù$áòõÎ;…µw›°|\2¨œm·"ïÝ&‚½ø&v÷âëyùO¢nß[v³÷]÷™Ù¹éÙ8²›V^ ¶’AìF5A `(1ÑÈ!»Âgë§zrC‹\/ü~ãŽ;ûô®"…]JSHJoYkƒiAsP‰y›#å¯t†|›yê,>s˜î?kV[´³kî. 5sÝkUÐמ[­Ý½òåç¡Ì€ìÖê',Hvm?F•šT=3ê(˜·,\CÜKÒ´1mbë¿óäáȦÎbÏ/.ÿ .êóî——w•Ä.bŽŠˆ]3'Xf͈©D[j´XÐZ¹K½ZvwÀÏ’¥Í&•œƒswºzÚ¿‹Y5¸ÀŸÐÈ¶ ñ4ü…²âw ù°jùÑzß²«—I·áÈ£¡XÈKuG21é±Q“;ìö¼—Œå´ÉÄ…þŽ9¿UJÊz¾ qÊ -ª²¸K+ EXzäýa£¤E`tÉ¡šx _B$áEï Ÿ¬7ÍÝGªoZW{ü²—¨Ø„¹¬JÌíðÁD£+ÛÑHGn-˜B$­ -ôÞ,ÁâD±E£3sf;㶇t~– ]Ôùø¹´ÖWÔ¶›I¤‡²V -^{j™ŠnúC5ŽJôN2!"éI -S _ÙE…éi7Šp ‘޹ÞÞã¼XyÓþŸ! æKBq˜4€ ¢Ã¤qQ˜6“:ÙÊÌŸ‘FdßrÂ_“ÑÆaÒ l ´q˜4“m& ðÑæ;Òhë¿NàûVp. 33€s ÀE2€s :ÙÊÎ%è1+8'f8À91sQ‡ àœ˜ÁY¬ ð•˜ÿâòOâÂýâòǸ0øñÊ”RòYb€+Ïd¯våëdpm\TJ-=a[îføþþyWâbd³(pé†%¸y²^ª8Û«=kgô[mð÷+*y¬”nÇEV¼L‰·—é’”«2ú’Ã-j–ÍA¤ék —lY(Ûîƒ^ÐÏ'7ÔÒhŸ7ÐxÅß¿Êq´”$¬bà‰£fJšÆab`¨Ê|C‰Å$æìš*•§P3pBå¢P@~–;]ôúyR1; -´ò½ðdyøáÓŒ M08>Ø%>_ô–‘„jl[†·ÄýP"_̯[Gïë#ªìà,W*ò‰ÚIÓ; -&±`jÏz¥Éº‰À]å ˜åmD3qÄÁ汘»ä-{ƒkÞ°'L7Ý…á,ù«¸_dûî²uµnF•ú Ô3’><G)è’BüôÚªj·§‚Ñw… $o$‡œçÑY¬«¨¤)3Ì|·JÜ/åÃ݆}K2Û6Ø[Ø¿|ö¦×ÂþÕˆ%R-ÊQªâV*£še‹Å„jn¦‰óww -ÈHÒ¤t—V½7)L‡ÃØrAkõ› V¢”Z|ƒÃçu‘í=Và,dþ°äEö> ÓpŽHÕ2¨ÇÐݳŒ¢„&–0Îw 9ÚÌÓÜà´f&ùF‚! -AÜâ°JºçÞãWå.rÑ€tñŠTÄB",g“cMæ^¾¹d‰–â¬^šRk[ÌIÍ¥W¼б¯¶¬¼àñV¾Úû_7Ûâ \¾ÚJZ¬l¿¯ R˜ð·Aÿzh•o²j{ú¢=a*Šƒ_|ȯXZñYJþ`¾?,¡xzççCDuŠ7‹‚%ªF ‹¬ïÞ.̤5¡“‰È~q£å¢> `­›M’ײÓú ‡G)¾”í¯2üö-¯QrCo”ê ê_N° -¾µ y<ßø =BvÔ\ˆEù’z„!ï!zWLD6VV¥€»¬T¬ ]-f|ƒÂ+®…åö)j0{ÓÿÃF?‹N†"¤ü'cÑÅýî¯Ç¢“¡ù¾cÑÉP䢋N†"Xʼn±èd(‚Š}‹–!Þì6`~“ÎÄ­Ýf•ÝÅÙ²x=ž?f×Qo™£w³‘¶37;Ytáãvì¦ =}. -öÝ´¨÷°ÌÙû¬¬×=RbZµäÇõ¢wZgö/.„ŸhQ} -Óëõþ&c 1šÉ64J³jÂÔ  HH˜÷x£ó¡ ,ç2>®e{ÖYw¨<«2­Â´?ÊA‚ F™B!_ïòZËì' Ò‚é§ÿÖ¶›¬? bqùƒ/VÕ.£IIÊ',ÚhÈ âW[袔ô‹Ë?‡Ë/_þQ\V7ℇ#á†hò¨Éˆó^2–Óztü%úgØÏ³•”õ|Ac#ª²¸“ÒJCAjé‘÷$’ -16‡ÄÓKüCRñáQOød½iî>R}ÓºÚË€ŒµÙËÀMaÂ\Vá,ÌíðÁR»²}HMGn­é5dLª­JfÞ<ø.¶pfàLùÇ3â8¤ó³}>~.­—µíf顬U‡‚׎Tƒi¤è¦?Äœÿ×ü‘#ƒý0o‚!¡“Eô£A¸eÖÜ-S‰¶Ôh± µr—zµìî@ÌI–6›Tr®§ƒ®žö/ÆbVM.ð'4:Ú(i‘¶Qƒ/þÖ!U3­—ñ-»zy‘t›ø ÅB^ªGqRêJ64 B>Yh°v˜JI]ã „Æe‘”@¿mJÆ™w²mŽ]Þ0«Ü½²ë»¨B€IÅ#ý§^˜Ö)ÕÆ²¹sã HAtë¾öéP¬ö»mô$qˆ.r³¨¶]( )œÙ1£Áé?(²ê.ð3¤NF´q˜4P1D‡Iã¢0m& Ì•VfþHš4÷3¤Á|I(“pA´q˜4. -ÓÆaÒ MÚ|MšIf.êœK cVp.¸lÀ¹s¥•>K|½óNýõ˜ ¸šŽŒ™¨ÇŽMGÆLu2h:2fBšÇÌçÝ/.Š‹üо™^©p>“â›À'Gk¼W›-™Ðµ.¦¤ˆÅ,èÜVfÛè7;/<£åRjéìÑÔ{‰Åë +-h«6¸yE¨Š[]¨Œj¸XºSÃZ——˜Ë|Ã(:˜G0uA?KÙq¸dÓñl»ß@¯hXåha›$r{t£Šôöåm0-W±a]@¸ûÁ0íöAF!ô›,ª²Gš”î²Be^ Y^ü‡ýê\OY¢Oà‡X’H„ÈÑ€ ë!1f﫺‘,ÃìÝŸøÆjÑ]]§êÔ9F~¶ 'W®YÿxïîmËx¼UÖ7¯U’iʵÇ7ˆ¼ò…ä¹Cåéj˜UrL³‰œä“J ÃÀdda?wÔžäN¶ °»bÒÆZ‚Ê)únxTƒd*y’³ &3nPbNóÙ¡ßêTxæ 8\í®}yP1èJYì2EëiÕ”*Õ¥ÿù#¢½®B²¶FìôÙc×[‡ooÆ>OƚˉA¬Óy†šŸ>?²qe,ôR¶Sªêè&i-nFûT'é Š„sîà ™Àu,Wœ£5`~<@.h­˜ôØÙ¤=u‡:x É¢+¡ÒµBÝ£)BTö¼iHÇ}1ÿë¤Vi¥rqÉÊ®‰¿Päi¥¥ÉbçIB=æÎ•aÈTò¨\¦X"ü¡Ÿößês‘*3¢˜ cvaãMd"hûúšðÝ ™X±HÕ¸Hzâav´Ç -ãFÖ: -é±ñïɤ ¥ùdt,i°÷/‚•ü¦®.‡‚í#] Ä{9@¿0Nl“í¦±½nËŸ kŒUc·<ÿÑà “e—)D aÂ(ÙÜ„˜‘7rH²&¥Ö+–ZÊ^pìaɾ@ØùïÃf“ÚaåiÏ0‡ñ¼qö9R^¥ÛéåE03tÿ0F°¬½vÐŽ†y°`òî!if‘fîü$¤_î€ -óMoí3Ë™âÀ«û'q. †aÛû ­•Å-›£BÓwûYÝ£ -†‘«vU{¿ÐzÊã ïë§zÌôbžÊf½ê/D’ô "?¸›VQ-*~#õš2à¯,òÏ®ËdvÅZäò‰d¸Óç§ò½úg’aKýí“É Ð·ÈåóÈ îrLŸŸBfW,¡³O&3Ó‹ýW2Ã0ý¿$3˜Èvrù$2gtöÉd† töÉdfÖØ%³o\¾&.ÐÛIå—/‡Ëw¿ü{\`Ûin?+A Øç>j]q­©> …jûœˆd5¹rÍ:ÖÉC=Üœ_'÷j(ØõX¤6Ñp¢àÁ‰Å[ù†¨páûð®)B*¬8w¼ì~dU+Ш'ÙàÞOvŒeZÝÚññMr—Û\3ä;^*c±@µ9k‚ôxÓKá3Iá]O€cø<Zß‹¿ÈàÀt(£ÂSF*M+^©bQIøÙ&ŒwîÃ)G{·po›RBæðÐ$ðZ%I ¥Šãø‘W¾©Ô0 LGvtç!:ø’ÂØ]1 J˜ AUVß1Iå~ë -“Ue›…èÏ,¹Œ®_á[uéqÊq¨±Òf{c -BxZUG7Š0«Å-1šQÔxx¦EÌgOõýu/=fŸdûË΀S]†ûð q3^Há{ðhÛ :Â7ÃÚŒà#¼Fކ„…F2ïÅ\²ØeŠÖ³jp[X¤-†K<þœùø°J)Žù.Iey£K¥~% ¹»‰ÂÕ¼@8Co²((ò´RÌH®¶Ê¸@¸y—Š(mÈc§­ø_ú3]Ñ ‰°4ßaAÛä¡¥¦AQ*ÊâÍ,O€æ“Qð¸¥Â¤º!f'ùC>z¤‘=°%!¤ÆÖ´LŠ -·p¯{À¿Õç"¼7ÚRGT³ ›˜LöÅ%DS_qŽå -›&V,hKË øÎ…bâùm ‘õ¹@®X»®uéës¡µú¦\ Ä.̘-ÁõÛhá—¯`Ÿ·‰<©¦ãkðÆž(C²ËÈ)U/$h©ÀM\ÒLÙB¶ÀYíBKIëÊ™,ìïb_"fáh RÓt­«ÆÓtq¨=1bµ×ÂsŒ#›vàÜ‹œøgA—‚·<± 3ïÌqÛø |ˆ“›¾’Ïü S>H†jnÈȽ •¶¯%Q†‹§>(úÀ}½áúȆÞ.I@7©þ2Ð`€0c¿±@Û­Kz ¯æçXta¡¤6£jÞH7³C½\dnaB$ -ëu21Õ5ÏmûŠÕ5×l g¢ñ|xû$€cùÒÚK•½jšy5¬‹G>éÐOÏKñó¶^œ%’ œûýžlÖS[ñè"»3\…bQv³·T¬Â¬aáN´-õøð™fGerqE¨+û;o_ƒö‰›ÿ³Ï¡m×p ÉX¤ëuTq•ÚTƒ)Ž;§¤Ù/>šg7Ì=¯C²Z?mHB@ïHe¿î;Dî$n²é[¦bR÷šŒyŸ*„Ó¸ Œ~Û Ê[E ÕBÒÜÜ%%BÚsâ„@ D;Œ^²ß‘Μ7Î>GÊ«t;½¼#l f†îÆH–á¡÷b¢ÑÚÑÐ"LÞ=$Í,×ßLÁHÄ|“Ã;ûÌr«È0áW÷Oâ\xð^Xè즊k½àA™5ÃÈó!LÑO’,"+3…(¥ü"ÀÎøb€·UÄÍK+æ~óLT¨Ìo\¾ .÷7._—ü‚!º†,Hó×9JŒ¶Ïf×d¿s÷tbë›§%ß1â¹àäüª¸0âók†zdËp“'ð§¡Ã6‘R¥?ÌòÜÏç à<éÜyád'XKGîg.s" ƒ[&÷ðö3 -XËŽZw•1 iE´9UZhÓ–šTÔ5ôÛÄQéœåºïéÿ±_]Û‰#Aô ü€%!Ê“$!DÎÑ`ÀÆÆþ«[9ÌÌÎìúœyð‹’PwuÝ{«náÉèŒÀ³‘ºfïC¹ºÖ¹1ôµÿ.×ê\SùY$Û?õ ¬-¼x}â¿kþ¸¿WÕüäo%ÇȘAk:“Mºsœªç‹ÂÍhö¨®c²9ÝNÜO.ãyY¬‘4º -ºðOìðƦÖéxaЄ–x¤\Ð9R¤›•ÔÇýb÷¹öñ|uFäGóÂùÞÀÄhˆ7ÇÛ¬Æp*{Ð0§‡¸S=bÊ]À00ërv -fž_Ìd˜1”Ç -ÃÄ×m"ÏÄé¦1é 5=£ #_íżz±øTÊ‘Cý=$öme¿ÛÉú -{Bœ|,)ØÅ1D·J·`¼ZW80cq4}½çªíWâE¸ Ù|±hÎ,›/寓_,\Çœÿ+Ñ<¾qù qIøý߸ü…¸|ëå?à"oÐ/Ç[*,å83aËs©áÇz²q€‹^óÔ‚…B7˜÷2ÓBß´=™þá©E¥ãæù#vàEïÇ/ƒ­ˆ'Ûà~KÐÅÊÂ^çKÃJüv".˜YJ“ÈZ¾l'üm8Ý ŸEu$™';œT[½Z¢æ&£‰m%¦°o_”1ÇLˆ,P£ùebEOy‘JõÂé£ -Ð5‡ôвìÇæ½Ê—f•_RÈ`¤á³}4½ ·o×n¡•§ï£!&Ó¿©L%‘¶ñö”™þlSR—ó—“&êá,_jJ†ë… -Øé೎"!ÇbÒF(á ­à[ª{‰£"†>67Œ1É=lÂ1¯‘ÁÏ–ª8éûòÖDàÝ4 >Y`z¾¢û´j3Kn·_>¹l\Z\b½§O¡ÛJ -…‡s8†H ¬R×a—»«Ë¨D†¢y&åôÁ-dg|3ù<‚‚“צûXBßHBø)‘8|1¹U£¥!Ý¥ø¥ÐMBžö5¨Ó¼WC^P%>×Ô_ßá"…ˆ5µ%NÃâFÓ¢õ-Y˜“†æ* l³ÒØ  ˜Cüb:žÒ†]»á¹ú‚Á'°æSsB¬=U7=7?¸ßà~ˆÅdæç¡Àßû_’JûbW~¤"éÓPç­rŒºÊÇ‹¼IoéË­5m8vþæ`nÜÈÀƒ[–³,©W†[ ëi‘>Îe¡h| ëk‹OÀ»SyüäEóÃD;^h»]ŠË©“j_;#ô‘1ìp¦Ú^äÌh³ˆo ¹¦7E*í×ñ‡NQt—˜”2ø–åöÊ+®^Ö‹9É‘(ŸAgšª¾àJ„p©/B¸‚íúm­c•õB -Ô(ÆÅ¯†JSqò]Iؿܑc±йçS½ß¿7¦w£™DÌ©¢DN:0ØM_#V˜7û<9±ñƒ§}ÃY~§ÿaû>û½þ‡íúþï4ð?´UgÄo«ß°U Œ‡ÙfõÊ µÉ&ÝhUåÐ8_nF³Gu ÄP·ìvâ~êcÆó\îF>Òè*èÂC4±Ã;‚@¹4A9G -íÂèk„QçtL‘nVR÷‹ÝçÚÇóU~4oð?ÁûD¼9Þfm4†SÙc¦Ìé!~F8@Õ#¡ÜÅ Üv9; ³Ï/fr–½‘½nfÝ&òLœn“ÞPÓÃ1Ú0òÕ^̵yîÈnÓs!±o+ûÝNÖW'käH*øŒÇ­Ò­¢8^W8p!c…A}Ÿ„?_ïCiñ—¿—o½ü¥¸,o³<ø?‹R€²kò°Îžœw´›Jh¹.™|É&ùÞ9îg¨³™ÊzÞuîp\bF©)üÂ/OÐ*¨à<5T<NAàX®ÁêÃÃ.ÿÉ~íᢼÍur/}<؈êUèÖÓWe‘¾¬²ÉŠo‡“Ã:C Y,ŠzæâîŒp^õ#Ñô¦†ìTŸsŽÞ¤ MìX§üãákѹé%=›k}Iì;ÙËÌ@Ε|À Ž5ñÁØ@~0:ÿOó\ÒØ'.x¨â!ˆ^…¡Ä-T'ZºkÆc#×Ô®ôrÑ×›“2w»tj¦gÂ펞 ÎG‚¿TྠÓ"H gÄ£@H}4ÜcÆ?öf¿,µèèÅyÊçà7Œ¼X!4D` Ÿ\,À[z2S,zÊÚŠ‚•ý®.Úg><ÊžvqK/µåÐ3Bt:yÑ‹ø«Æ¤JÄ=zAÑ ×'·ß:o’“Ýûn(’ÕzEéy Y`Ez^n!'Ï:|îlE‚adì¡Â`Ù|±hÎ,›/ÍeóÅ¢9öZùBÑ ñé—¿—t Ä}ÆÞ¯-f¸&£œ|i1Ãgé3_\Ì`+ž¯,fì7.ÿ—þei\-åÊ"·¥g+ZïTÚÎâì¤ãæù£UR–Á.‹Þnñ΋I %Úz$u§æš×¼µ_º0b½ùž¶T‰ôÅkÜÃ’¸ÌL+É/žŠ ‘.ÆËÂôœ2-L¥{D•>:ËÉ”N6QI¦'j«õ A>¿{7‡GM˜ús÷°‘“h+‘_&‚,·ÖÓâ$9—ø9u¥áCµ¬) ˆâü^ÅC"Ë—†Ö"!íý¦7Ïã’ÃHÑbÿDÛÎzð4µª¡…œà?ô}¡¹—áí“á>#aÅ”!Ž­Œµ‹E×à¼cw1T%^>\†‘‚àCpΈdT"îž3"Æ$22¸S1¥ÜÃ6Áã’ÊMª@ª'(ÐJCʧ´Ë5Ú¥+ {/ +99‡@ë€4¹ëÂÚ´(ïaYïeX;‚ÖΦpª¡±Ô‰ØÖé§þúŽçg¶R[ kßjÑaLXØÊwÄK€|š+M=•ÆÕCäæÞÖWvÃsõcÕEì#Ì ±ÆÀ.Vq‰›†‚t4¸ŸÂü0}ø{bÿÃPì),ÏÏAÕBú,È’€¥—9)¼|¼\lÝÚ ç{3Wî÷¯!d.bɾpË2ü’zý‡ý2]NT Ãðx¸ (²T7QË-(®75fs¹ÿÓˆ™3sªfŽUù‘?”Ú_w¿ßò¼,.{Љe‘®˜S_ÄQ:ò^f;¸ÏZæÙ‚õ{€É¶ÛåxMŸ6%Df|Uï:Z5U(ùC܈È-ÃB‚¨ê«¿Ä¼°¤y„K1ÒŽ@ñ‘iÐvâxBDsÝ8ü ƒßâ:‹J..²×5UŠS-à”ëÞwãš|‚FRl\ï|ºKfÿµMt–?ã¬ÛÕåZœ=¤Íùz¼È‡öÙDïÌÊë§×hÏÌ–å·D®“ZQÑ÷M±«M…ô¢gO -E+o& /ù™æ ä2È!c%ñÁmá¼'»SùžÜÒÒ“e _3îRåÅó‡ -&û¤½¼5ö0½¦W…þ»^ZÏxQàç Ö[˜œŸwݳ Õ úˆ€h²èÔWtÿEóÆdGßrOq­]²'¦± .´Žý#Zž'‹ƒ“_tg³øê¯+rïäàð‚†1IxZbOP’4mMÛà·þ¡«ç ‡·V¤ïf¨&ô¦P¼ñöª+‡Û°ˆT&ãùFßfB8ïB»´ŸQìÃÒŘ¢ÍžØMæð)AòjehÊ9F=Ô²O‡”«‘Cñ Kr#‚x™'­{ ¯Ëãå­½bŸJ“ã}‘¨1šÉ>5ª³ƒêÊÔNbIð”ž÷xt°^æCApær -¼v"ûacÛ”Y•±ÌiT2Æ4ËÍþ —,_!-é‘ñYòµßn'kxY týçìÉóë|§&=l¼¤X¸Ñ¤KÂ?ö ‹òÒ·._N—ïzù¢º<X$ä0àžldŸ‘tî™ÇÒJ9ôÍ8“¿I÷“Á¦9mFT_½àÝÈÝs @$!9†PtOM¢¸¬Î‡Ïb ¢+œÄ,ëÈòœ[*£Á€C,Ñ>úû¢ D¼$¾`Ñgqá¢êãK¸dÑæÿ«¢öé[—¯§K>¤mïdüÎârNœå_¼Óÿíd€ñ¼Ìåœ È1ÏËü…“áÀã9ýK2ûDJ"³@äÄf—#3Äc„Í.GfnŽA6»1_P—W»Ã0 endstream endobj 192 0 obj <>stream -H‰ìWÙrâJý>B€B•6›hcöÍ€Y ÆØØÆFüÿÍ*‰¥»}{&&ÆýÐ/ -Q%*3ÏÉ<™ÕãŒ'WV)“-h‰m×òJ®ÉÊFÏ-©n+¼*OÆÚºØ=„7öxÙBœ®öDÎ +Åë››™49ÜÌÍ\‘0š+Å×÷ÚoÌQeî¦ýE3Ž*³/ÆŠ©· }­Z Þ†­JŽ(œ1X±a IÛ.mói¶íÌ#Óâ4Öqìú@;yÛVör¸ +oáØ…Í™ñXGÙK5LU [Ö‹8–yßÛ! -‘#AéÊ8H‰+½ïÞ›^ dWßE—ýÓÁ¡™l¯Â:§çß_¤ÒX®(Fs¦Ë%MÖtª17ò`‘å°©˜ÀÕÛœ!1I™~x5$¶Ôd†Ê5„ͨS"º"xK‘üp„ùÇÍeà³÷ò/V²¥Î Îé-æõ§­tet0ÁrQžÞ•¬X1:zÌD`ª©K³ìRFËÈ­‰ª*M 5“‘ØðºÄéº •¯¨ÚrŒ ìÿxvvò:­J=h(Ñjÿ‘0|™²5êÓÇóÇÄN<÷µÑÑ;7éBè0‰Ø²1èÕñ‰Nw.Är—ìhWšÝPüœÂϨ»—¦ÛZR* ?²à7eƒKƒâ+$Z§DÞDû.y³_ö±gÇUFיݵlôk5Ÿ!gAÕQÍn™¬aJš˜s•Óù{qN3/§¡%3²ÎkZxzL•°£6dÞRëo°&š’5¾Ò/ÖêÚT‘Ø¥‘º´’Ãââþ6~\[7 vKF|#¨—Ó;yˆ±Ò³CHgí* ˜n€Q:‡ÙÏB¤ó¼dS9>.‹èÑš€É°ˆ2%c²-.v{’çw8Ï«èZÜ[`à(DM¦{ˆ Cáÿ°Ð͉es-ã$n ›²SùûÔ„V‰\fž‡X*3q÷{W8ýEÛýÞȶúWG°Žqõøï]ÏóîpÄÈ´ÜuÄ×1|lä뾃­ƒ‘}ûúÑŠ8~¥ªbÔ±¥º†C ÔbXÐîz ëWeÏOŽî|eds;_fÁè×X“4I^|ùNò‰ -[Z?@S\;xEñÓ‡5Åׇ -HЩ Y bHý¬É_œ“ké°¿¡t#ÂÓÊ -ø5ÄY#ˆµÞ‰øàc9ï£ré#éÕ˜®6b€É„EU÷¹*‡Ó/"^x÷4¹4¼ýôû ôКîÛ9R,uÚ1“ÿ G½–1âlÄ%ÃCnˆIš5fM"a~| &ˆ›à›òRûs (ÃÁqàã -4TyI¶ªµÓZÙ)¶Í[ëúŠÂ‚š¯|~êù…epÝžeD—c±”ΩðˆˆùcBF_ý|)_3 uÖtllÑ']!¡§Êÿƒ½BdÕ³®–yʇc4ùÔ“8‹§N´ru%±‡å‹×!tõ†'ÚÛ²*ù^Mxè€PŠ$tÉzhJ>kî³rчV÷ì£ù¤º'ÆêÙÔ ¬;³:¾Ž}=z©üd¸ }º2÷Ô$bX3—D“°Z&@¢¯;¸˜>:êèÓgÈr¤A -‚ ¢0PÉK&`Žš‰³·É~>cûLö­EHµ»K{µ¢nKÆ;£—VDW2Ô†ŠVAåpvÓKÈ+#‚ªŒ%–päÕ˜z}aof>¥®wÅ^ñíÆã¯t»w¦ìíµÄ> 7G6zÊM–‘zÐ'¢â>%m+ÌpáT°Üfp̉c:“´Ç-ažc’ã×ÊÖz¤÷½BÎ*çQë\H¸*ËsןÂ}°È¤x*©™ðdz¹’™YOìŽ|™ìŸÈX \ø·¿¼ü¼€×yùy)o)2Gà ¶Ðêy…gª^ârŒBû×Ï~fÖo‘¾“³•w¯•Gv}†âŸž{ÐÔS.ÅÌ×*ŨïÎEô±X?¥ýf«eXcŠqú*~ ðFsJ=]¶qUNR/˜¡Þ9L‰m×ò¿ÚÓÖÅî!¼±ÇËÂü‰œ=VÒäp_ðÙÍ•3ØÊÜM‰jÆ="¼‹ä¢/ø ,†­JŽ(i!m»´Í§Ù¶3ŒL‹ÓXDZëí²^€!2õ•·—7´%þÏÚþóS±6d&¼¼>ú‘ lôξf -0NyìfüXÑw{¡ÞýÀó.›o.°‚1ùæ¢Á³%”Í7M€&þ|gÑdÄÈ_^þ@^Ò+èûøz•úf1 ÐDξYÌ ¿6¾WÌô1Ÿ¾S̼yLøËËÿÄ »°ýÚ‡Qí<”áÞÍûÞG:̆ìQƒj×”ò‘]}]öOY¨@¢™l¯Âº_rc¹r^S¹‘{,WØwÂjZb’2ýðjHl!©É •, OJ =Ö”;ß‘áKœ¤ -æ¥~>¥2$Þ\Â1{/ƒáþ—Øu=ŠAVšVÖ%T]Üñjžx=Ö)‡Û!y…;r¨Á¢Ç̰šUŒb¿ð,bƒØõ꿜½9TàãhúQ¨Ë¢dÈõÕƒŠ#8û­$ÕøÙìF«¢° 9–Ǥ°5u‰=,äDœš¦4c‡î )Î`³š,M\Zåô’¦Â<ƒòŸµïh»þg‹9TÝ»™ã˜kumš‘Øe#wRU8Œ7"°f¤Žkë¦O3£æZ$cÞç!9$òQ'vyDHÊLãÆ+’_6*ýÃ~•®%®-Ñ'à!‚&!BÀ0CHa2´ˆ ¢ˆˆ ïjï µûÜî{ï÷õÿDC U»VU­µÊ1«yòY’–øÆ¨à~vßÇùŽ] ã¸Aƒ?§—7·³¨kb]ÚëbmÐPÁ¿¥“2gn+ߣ® Ñ8I -¿4 ™¥.Q£™PÙy=¦öæ(Áý*û:„ŠMše]⻫jθ4mÌu(B=c."Fô¹5Ò¡Ô¡KYî yRž´q©ÅÅÃ}üt^`\[Ì+$B¡Û©¥á"®$Û¦õS™ðРW„¼šÀ×ÃÐJ× §Gœ¨9¡×>ÞËø Lïõë´᥹-ÅÚ’L·ðÓTP"áMDÙý4‚>,ø¾ûi*8Ä©ò/‰þ4˜}X9ª­öEÀ¥Åö¾HH!£,_%QÜÉ\å/° -±‡Ù:Hî1¶n.»µ› -ÚÏ{ä€ÅÈgÅR,Ù¥Âí`‘Ì’âõN…ŠlZ"EÜ¥¸ü+9*èAÌ!ºÚ«XKÐ4š;«(t ‹©°ó•&‡ß‚ Jª4‚‘ í®dcêó,'F+OJ%)º½åCäÖ¤´;ÿ+‡ãûM—ø±"@ ÒJD'®0.»¹´¦v™Ì¦˜{ç8ÊÍVˆîfb=3úÐXáT\:È…D3!.‚ñ£ÇgDæ¡VAÅ:#š9‘|Ð?ÄF†ˆíI©oUKÝÜ¢r¤äÒèb uÕenÖ.fÔÑ{<¬óôљժ¬”™óà6BPok¨o£ÎÁoATÚ Ñ0‚³˜1• #zô!Ë\_͵þHï­b¶Ð{dlûE mxÅx#åÔÝ>8*Ð;.‰ÂP61zÎVcÌÄÂÔÁ­$ßퟰì€q–¥Éˆ“nƒAÂ=C³(9¹rµd;•¬j[h½^¥n€ssæn—ÏMõBøÆÒ ¡ùP*¥² ¸D'‰’éØ5±µ¸’ÒÊp™’Ù|P÷âh±È.,½:ÏQ‚}É™sKö¡\ùâ¢Áûa2súL°V%R}v-CÅÈ©«¸×™Å˜{Ôž‡žqÁå3J/¼2&WtÊÎÖñ%xNV¦ ‰}{¿ÐöÔ«¿°¹Î;*ÒoÓ˜Š€H¦ƒvŸàtÌ`gë¿CHúÆå¯ÄEøÆå¯Ä%Šè=ùŸÅý‡Vñ·Œb€þC«ø[Fpù3«èE(ï@ÿ5ù# ôÿûä½²B–ˆ¸•ÄÅjÁ¡¾\¥èÙ>îfv:½Ü°]#[Ž¿‰Ån» Å?­,[Êb–NâÍð%J„i¸&ö¼ à‰7ˆ'zñà,nÄË|7ÞT•»yÈFpxC•g/ï)@c$»hLÀ -nK ÞQ3ÓŽ@Bzÿzì!xÅãS#c§ºÑ)­…å…z­Yw†¾ÎÔŽõƒ-O#Å[o^p6ðîø›Oý¡A4›¸Ý]ïGQA:Êàn&×D’Žy -$%p“ì7.Š‹´ù¿á’z=|ãòßÍ‹£ùÁp:ËJÚŠÑÜ` q¶>ýÙý°’y^Ìc?ˆ~sãߪ­àÀ[„ù”y¾rxXæ‰Á} %´-Ýzƒ/©‰ui¯‹µAC”NB€•*MÇcÕµa)p´Ì«\ÆL»–:½&zAÓ-FË}Lƒà’NÕóAfgMN|L÷‹è3è´Ž1[í<ˆ _”Pƒò½¹,‰µi#Bx}Ñ2òð³ýe~š¼7hŒz·Ï^ Èl’e 4–Q•~ô?uVä|¯Æ˜Ý± ¿á$9´œ›ÒL‰)*RƒHY±®)wNöSï_/x¢o]1 óâÛshs@f×;¼ŸÈ+ò¹-íùSÔ—<îdȆ:’‰0'-Í …–Yë }OÂí#.îCp¿4D³ú9"/Éí¯—;•>$=v’ŠðU*8T`‹´!œyc_ZÌ\XÃY.RÈ‘×&çMì±òü^lhîÊh|$÷[;—ÝÚ³kæëx·}¦ØìÉn€¦Âí`IÖ%ÅËF“ -¯ã Š^Hkt[A*„‚>/¸/Zk -zsTtíÕÕüÆ=‡3½†×uØùR“s¿$UÁˆ~Q²1õy–£'%ÇDGŠï˜`E©ŠO@¸5Ò¿“èQÀ…+´CP ME˜hp-xëê²›Kkj—ÉlбwŽw­Ý'ÌÄz:gô¡1°Â©¸t ‰fB\ãGÏÉ`r'S©¡bVE> j»²®øE¼‰ö¤Ô·ª¥nn‰Å+.ÆPõQ]æfýgÇ®Yql×´mØ -ÊÌurÛµµ54·Qçè·h[¶tfÁ‘"˜±†=úe.‡¯æZ¤÷V1[èÇÕz_<ù’Ù·i.ãׇJôŽ‹…©üƒiŠÑs¶c&VÙº±”wû'ìi‹åϲ4vÒm0Y¸Ç`†%Ïç—«¶µ‘^¯R7Àl9s·Ëç¦z!|cé…Ð|(•RÙ\"ƒ“4C¨“¡E:vMlëF»ë¸MŠÎæƒúÇxEvaéÕyŽrðëKÎØ[2Fƒ`Áç/ÚEƒ÷=ÒÍÚ5·‚а*‘"è³kÙ>óa÷ñþbÌ=jO‰Cϸàò¥ ^“+šè4/ŽîÁ£t²bµ4˜Ù>bvP&3c­ùÍËÌ øý›—˜w’±…˜aVîIª=Äì Lf¶˜ÁŠÁÌö3®1™ñ† €R’¾{ø£Y¹W"¶ e2³}Ãòb0³}ÃÆ`f˜ÏŸ©ï&fÂc¢µDl fËþ2²˜ÁŠÁÌö3DÌ`fƒ˜¹ï3m¾Ø,f`ÅÔ,ÛÄÌAa9³YÌLN¶ˆYð7/_Î ƒ¿Aà1šÆV—Ä[k‡gplÒñòÉ=iŸ¹w wAçkü?úŽDk`á@¨†ÑØb/]ŠÖhÛ9‰vÆÜíœJ -e¥à«­h˜h ŸîèùšÌ¶½7žáÖÝ3ÇVàí*B©È~®–e‘9Y”‘7,J1ÔX¬ôÖmA…nüÜí*”JWA : ›ƒfemòöÝÐÃpŠÕˇ â°àª4Û†²‘÷oPü—QQ( ù”PŽú$(ûbšŸËÛHzíö1—ú†u‰q‘+‰(\ãϳ8búq`… ŠÔŽŸ ®Èìu§^ÄQÏC¢Ÿ7¥P¿Æéwç’|u»“u:„ßNc׬i#iˆ,$«x€ú˜©Õ]4µ**^{øy~!XwKnõ}û¿¹$ºÑë˜Ý›`P±§Mó -"¿K‰ÌãUŽüj}<н+&ö_ᓲ…Bóõs5y]ƒ°Ô놛4®6± ΋önà 0hÑÓ‡+m~Šõ$ú*_¶*_Ô³`JŽñÕI*)2™@rÁHx¾));jD¡Ü=9î.M‹£ÄtŒÅ J`9„qTP¶{_…ÿ¡9(zV(Ÿl‰öI%î®”W…r¤.C¹¦bÂäjZsÃxŠ/èÁ×EtýD®>v57,´¾K­)üÑ ^iÑKðÖù‚_¥ÔÊzˆn­P× X‰øÙøšˆºIãÁÏ5g,‘c¼‹•GÔ£e"§'âêcG@˜[Ü{ŽXØ’ý§+º#òöG¡º}χÅÔÒ‡1Aº}Ÿ<òNd1õYBwa?~”n:ðÉ#ÀôAóD}ÆC¨Ï õ!HúøÃ˜l9„ŸKðÂ!ÆPK4XË>S-‹H¸j^-—!¶M¦9ZHo¼sð ­³ìG|Ý̼[¨¨ -Y8¨Ü¨ándjr²\:‹ žæÈø ,Èlt'35ðâ! -AÍzµ$Â*ä ¯Õ*É zÏ)êé(& x:æ‘þHxhCtüÌîMHÑ¿7S@wgÿ¸unŸxX%áWËÒä#×¹–9Ô•G®s,sdK:j;`™ÛÛ’¾¶Î°Ìá;n;`™+Ç®s,s±c×¹–9Ðäc×¹7Ëœìrýæåæ%¾Üýæå'æå9N`ŠŒÆ°à%šì‡Ìr¯×ÞìYþR­Uœç0ÏRåÍ&š¨Šÿ¼£*ÞéPÈÅ“aø ¬PÔ¶&žÚ|‰lÀÈšÃq}”ïÙËxfµ2M9µ‰<è dq…LŠÆÊUAëÚC&Qwnà Çš0+Õr -­i½ ‰l¾º¨Þ4EíÖ»ûöVÊŤXbvÅÌó·áÝEÑǤÑ‹€ë´8:¥â–ùB¼ ¿æäïþ~´Öùø\¸¤bÆ -£1ó÷óì”ÆbFæ‹Çf1sño³˜9(£l3Tc g6‰xý›—/çeð†¶!¶MPm6¾ir5W‚/9DÞÍÓR7nçô$2~ØZò5„©y÷©jÆAž•0Œ.…=+¼V< dÊ‘º`Ƥi9à+¨Û½¯ú&¡“ú¸$Ѿd„„å((ä¥uÊA!¥:ÃŽ—Oîõp\`y ¼=PE˜{²Ÿk„eYdNe$·, -o¯¶ê](»-ÊŸ»]…ÀŠPº -âF4ÓhMÞ¾{äN±Fˆ|pP]âkdºr ›7@þ5{e@(SY!@ùBð­˜æçòÂáöqqBœX—X)°’ˆÂ5þ<‹#¦‡Þ¥üŠHí$zã‹ã4ázÁóÅ›ø}úÄݹ…$_Ýîd½Sá·ÓØ5DgÚHb‚GŽ›°Š~S¢úo‹¦Ö³Åk?Ï/óadÅ-¹Ö[ôY_á–\ÝèuÌI -ì‘`ШN6…n@V%´Yà¬üÚwøˆ®õ:ù³}§žÒâuåDG…aŠ*PåïVPt)Ç­êbÁyÖÅ ‚6¾!ÄŽŽHÔÍRJf2‘˜8êÍ»Ü]«¯PïSül×LðÕA» 7¸%º—«ˆ…äÍqÔl)=Ó0ãZôòâ|* z a­¼)z8/­ªo÷>z…w8ü0:›3–0½òˆz4 Ý;`Ÿ`qknðΊ -´4µ¶ð$TòØU -~èŠÿSG¢›A¤äU7»K܃ø¡#Ü?A Ð+¸±žÞ| %M¢ruŽ,ƒ€» ôP?YKûð¾+ÑNOµ¡`\c­Yj+ж¡––#íCâÛÝÖy¢ÆºNÿ™«‚Èlád™LÃÉ^\Uœ®|Ö…Ô)j0¿Z¬ï‹Ÿh¡s„“ -–›Á̈ã¤ñ-`y¤”{ŽÎI‡ D­¿°%ñÕÝ}E^€«gV„úrýËÍÞrþdÞÔ²z%à&Jô‹6˜ô1ª/"ô⨉%SC¿W; -Þì¢æ^rèV‚çË—÷’C·Ø,ŽØKÝJGí%‡n%ÈÊÿÜKü¨å<˜³¥,¬c_æ¬C)ËAÃY‡Ra˯rÖ¡ôK¬ü_þ©ÿÍËÌ‹¾—üæågå¥ôèÄ(‚øÙýŒA7 ZWνMú»‰¼xòtAù“…ЊŒrϺK;ÙÛû õèÎIa'^-3*ÂS$žÚ|AÉ1!ìñ¯ì9(l1’î†Ùèß©—Ldfxî,Ü<<Ã>1¸³ËU}›­õz#I¹XçòwcNà¹I5ÆZ¡MÚ¸îXÌ5äÛØuÊ:(2iÿc¿Ê¶RW‚èðb‘š ‘Yæ#2( -êeøÿ[ÝA½‹3ä®óàK4ÝÕµ«víê¬UÛt4³«Øâ\­åZC=¿:{P›­»°6fºÎ|1ì!’×.•ùÕðG•Œªã'‡ÿ,Š$©` ™bÄX…T2i;Öl|WÎ -ÃÁôÙGdWR»»ÀfÃo' ®[Hb ü!½Gâ‘vGŽ ×€‘¸Û - å’'å+g?aí(-ÔÛ}p© ë,B£´N¯ˆÑà‡ûûŒ‰F"ºÐ(NvI ¦ZÔâ\M€~Ÿ¶3Ó •<›Š` âCÑUüê–Ðè$ÙÐÇ~.OI¤®k•Žä -h†÷óǘ·åíf#æ—>Câô -",Póš­Ê ˆÀZ=}·eç÷öT2ó˜Î<&3aïè!™¡J:ó˜ÌLæ÷xÈ|ãò?âP"§:˜/¶—ñÎÉ ³ØÞÉ3'^Ìö2Þ9áx™Ÿv2±o\~ÿgô> è°Ýçp[ZCÆp´nÁp›ÁÙ‘“Åà³A)óÈBDoßño¬8óõ¾«á€uªöÖŒýäÂ@Ä]iç{ÒÌ -!²Ê<͉K®¨4S‚ºœ—a—Zž›ÃEc¨‡¯z[T*]÷t¿øì@(º’‘mv€ê!8ËÑ«d±¿Ï@QA8¾‰i´ÏÎS $—ýšÌÓ‚¡úPŽ™j<•âÉà"kª™ÂMŒ-Õu‰Àœ³²0¶®G%«& E J#¦Lè½L ¤ OÀ5£—Ÿo:]Riga•tv ùÃhÆV­ØA­²ƒ³Ü%)…'vü¸ë—àv7o+ïW¸’å÷Ècß¹aþ§ÂêÉp¤h? !m9OdÑbšÅ«•WŒ ?&{ã™ÝØÐriU¨ìú¸"Mãl©vwá^à-¡Ø?«øˆÃÏÓ@Âݤ%J5œ`#'H­~¼ˆoVýÞmA ® Iµý -p×6Ø™uõN8Ó ñØBbœå0”Äæ(”ã@”H~ó߀-xá@‚ý -óeNPý¶°|AÿúáRëf_Á °˜¶H"† TIèî^ÊT>Ç.Êì¡Ö޳ñîâCÃ݉tóó˜FÄ9ì‚-e0/µýTãìY—…Ÿ&3y?%¿”üQ•_û©‡¼øçý‡?úZob{õ¡!¿û¨ÕÐ/ðÊ6U¥µ9@‡áÉé/aƒHYŸTI¼æM®P>‹rÔKâXõáŠe -9ÚH>¶p pR„ Œm!˜ÊݘæË©Ÿ ôW‚+ÙíK8ú>;Uÿžª~ñ.¿¬OU¿Hÿºþ=UýÂ.¿¡OU¿ˆùõï%qªÎ:UeÎýŸÕY§ª,Øå7tÖ©*ËGüŽþ=Uýb—t¬¹o\þJ\Nö%߸ü¯¸0häKÖp,FŒJ&m›“l|WÎ -ÃÁô9»’šg͆ßN`¤?¶Ð\øCz;Ž.¬€).íŽ(¤h¯ÑîÃ68-ÇHñd£|õq?i¡ÞîƒKmðXg¥uzEõ¦Ûƒîï3¹å„Ᲊ¨®ßÊ[ôj¦i—4_Lk˜±iÓmLÛŒyðiegSÔh|(ºMÓê–Ðè$ÙÐÇ>(Ø<%‘º®U:’{¾ pЩ ÁýüoäÅ`ü ¦ÒŠX8âRB¦‰DIˆ¹ Ø^Ríô&µx ·õKM|3DWø½òÓOÏ-_‰?4YÄ}„?Ó]%‚¬ʉÙ/H8’öc?ÛïBn‹U51|Œ˜ø nýÚÃË?I¤”ú?x1X‰÷¬…F™vÁd¨™i3f „4¨ñßä¬Bã3 ¡ÎZµË¢™]Åçj-×ú=¿:{P›­»°6fºN¿àx°r ñC„PŠ ©‰‹Ý”–R¸=¦i\à 2Ш˜—³˜T0ùOò’™Àtæ1™á³´xÉ pAtæ1™ùLgŸÙÅ7.%.G¿çØ?ãd€-m/㓌Ù^Æ;'ã#/ã“ñŽ—ùàdêO»?3dÐ|1ãññxÌx\ä€ùm2ƒ³ØÚÌ;2ÃþÅÔfÞ‘™p´™wdg±µÙWdûÆå¯Ä…ð’ dYC¡1N@*™´-U²ñ]=8+ ÓçìJ -@ëõ^› ¿øéÑ#àþÞŽ£ bDÚµ®œ,ôí>lƒÓrO6ÊW÷“êí>¸ÔuÖð/¥uzE,Åøáþ>cJ±þDtI±âd—´4Z-j¨°s5ñ -·mÆ<ø´Ç²³©ˆ|ÜPt4!dŒ_Ý$ú¸ÓÏå)‰Ôu­Ò‘Ü[LÕÁÓ®ë².üø­ßÛ~xq~£"ÙHÂ.£â"Ë–¦÷°lüІë2;¯øã&QâÊ -TIvžêe€‰UÄÉdHùÃøœVåÃÚË}>Ž$­=íQ%_õ#xb›H£´~8A<úŦ·ÌÓ–v¶ÓÓ‡ h$Èøg¸_Ðç\Îyj<«H3‰-õ¦ ׳e€»dKÛ]ê໑$„º É …àèˆ~ŽŸùë˜ -õÙ—Bh¹l|z k/j¨‘rÊ9ìD ž/îÎżY!˜ÖJPTÉ*œ™¸äŠJ3%¨Õ£ËÏ9èÔ:Ï=D2[Ú=ß ˆS|dÑÎó£õeµÞÑ•%ö†ÛæÙR¿¬‚òNd8ú~¢p :‹¡Ø·ªKAíVuv>bKÀDÙ¨ýØ¿ì—év¢Ü†¯À‹@ED1Î N1Ñ$šÉ1fИ8Üÿ©½7“ÝÆ|ët»VÿÈW"µë­zë)Æ´ÞQG%’Œ¼Íµ(Ä·p¾ì ³¡á7xv+°„WQ;üè–f·3ªøÖ -ÍT »€8=îOia%Fš3žPÞ*C&²-4ÐX^ -Å  -»9(Ș;”ÔæP(®@Ð:s<dzÑ_õ÷BAõ…ŽFË|ŸY…wnAsà¦Ò].üÍsÀê…ã·8é‡ùò&õ¦/|ÎWmñå‡ÇáQUœ½Î–¥ÉÛgž¨°‘‹X*%³þ9ÂáJa€ ÖZ†ÿÖƒ¦ -ßA¿ý0ÇZɌۻà¡-ñÀzUá’g¡^á©Wªêyöl®–ä®^ˆl35#±SØzé—CÐé¡Mì$D ,D0¦F_k  Š ;¹¥œb-×9Cbb<8ƒ Éìâ!*•„°9 GŸ¼YÉ$cӀ̹Žîbªc~IÇ#]Ó±ˆÔý …9 Â}÷ 4-µcš§9_i£9œ´ùÞû -̬«W§YÊœÈý œ¿$7HK™Óyzg+Õ*"ï·BúœZÃ…kÞuA¯dô@²„.듦lžyûªàX£j"šHÏØ'­=ǶWFˆÍ¥ãWaoÃ6è¤k¾x”Ëà!Ìù¯ÃtAãÿ«áÏ¡]“êó -›Iõ›‚íY/›Òн@ú½¯üs0eÅãi@ý.0LR‘¶r>vg^eçJJ¶ åÄGú)伯'xßP{Ž×?ŠÝâû5Ö΢ކŒGö¶.³“›K®âV#ŸØ2…MIÚbþ눕‚kÀ‰r;€Î,XåŒËböÐzd” œ –•…þDoº…LþF)ÖoDŸ›äs`¦2pˆ úI˜5é/84NO™j40ì&naR1÷›gÌ+H«õÇf>†ììÄf†j ììÄf桱ØÌƒþó£Ë?¨Kr&ÀÇ[üO6ÐÅÞeN·Éxhg—9Ý&ã¡]æt› ¼ÅÞe¾Üd$þ!.üÉOFcæÄCÆCL8íAêØ9ñÁ5V^|7d î]þO]Z £l¾C¼m6zTLË+)¤ÝP¬§Ãð!¡_*£ŽjÉÈò¤ïÀÛ5 Õ©îd"5äû6×]»ý¾Ê¤ÑûXi<ç8'Û`LË8dINæ{¯5.Ϧãòc•*G‹¥z’$)Hpt¹°ª;—¬ø_-ºÂöþý‚.ħ8¹ˆ¥R2ëŸWáò(Á‚Xk—,£ìµÀ(×\äy¥¤¥òƒ€+†Z¿™C<=þýÙ}U±,o'(„+¹¶Äƒ­ô Ò µã«—JÀà’*ÖÞ¦ -X¦‘ŸR›³ÜGpzƒK²Ä{aV–äyÞ’† R¾û”wü›ˆry9âó–ÉLVÜ÷È‹OʈµÍ6eu*|×HisɹËù¢>‰!÷w¼ŠÆò›áúY=¸¬;ß!O6!˾x”—œ;%>u“ƒ=(XÁß¡Ç~ØCMÃú÷eeUÎÝæpA‚•ØÌK>…«0 -E„Fb´˜©”¥IÁ_“F~¦‚Àiù œEéÉ2/³…³„<¼n—áYþ¢òâl[MF‹/÷u¨ýç œ¥®TY/„k8ý®F³Ô‡É× -,ÁǨÔŽÀ€j-moh·V¨â%ìèû+÷Ž2ÖœñdIÅVXÒ ªäúü;PsÑ;<6ûA;Æ WËÂÑ@8\ÉÇC‰¯¿ $Ô×ÇÍ0H>JäÛ@Øà—· ÎAî Õ÷+“VÁ(Åi°ÓǶ-Î6oŒüX™C/ŽÏÃW<ä4¤É)A&ù-X«‡&J^‹jоä\ø(¯È›ň†y›¢gÒˆâ&B–âÁ:ų… |5*œàÏ=4ÁN+;íï1(Ž.D-ÔwªÅhÜu,± P%ŽeÞrÁ"‚5[N•ÊçްĽÅ3P铬)k<9:F[¢ŽÊeP¾ß¦jv>SÇÃD•|Œ×þ­yèã\ðw¨æþQ.ø;T€ºòüZý„×þ­ù24qRm1)ˆk œ¦: ÃÖíd¢lÛÚ­^¯R—`¤ÙÊzËŽõ¨J$ ú¤)›§Þ¾*NY¤gì“öÛ^!6—Ž_…½ cØ “®íÆn¤=ƒ3kѬ1†™¶¡îÝ&®„éüÆíFe†v½CÀɬ—þÚÜÀ¶AéG—RáG—R—ö„5+AâÉl¾Æ8 ×ÕØ¶åŸ•ïãWu‘ðámć&ûÍî.|LTÀèÅЇ3<±ýÅPÕ¶!Öc‹Óµ[…Œ±íó¬½@ØïKÌ‹—;ÿKi0m‰H ‰+]ÝTŠõëë¡|¿{(h/£ˆ‚”âru¾AF°Öm“æ…q;6§c¶÷"æÑÇ7¢8+€¬±{ŵÓÉ‹KºÄ'Ù¶1¼êk:—` £Ô¸J¸ç‹µH’•qø›tñÇÃ?ÒèYÌ–¸ij(‚Edø6®—^§æïLÏÈ””—íœ=SÌG/@ˆË¯Ç·T`4qb+ÃE)¤@˜[ gÄìD„pàxVvE÷Æk½ï,×S.Šñûi+(³ƒKª4yû„¥±+Ûj £ù«ÕRãœwÉDhfÜà,X£ÒÎ’¿FÞO \-‹vYtÔ…0›Z÷ÞÐÞI±Ó½cJãpáÚé Þ—~¡QÌcÖÑQŠjâr·IDyi'Ãf5l$õòæHHþägòK3ÃÛ3—S˜™çìWéVêJ}$ „ Ì`@  Ì‚̃‚€ï«:Ç»ÖýÌúÎÿ¸0tW×®Úµ7e(.wÉ ïBš«dfê±!³ø/.%.!‰ÛůœÌ—ÎâÇ r²åeÜs28÷-/ãž“±ç¾uõÿÑÉ䟿2ÖswÈ`¿³ÔÍ!Cæ~;ìòqæþÏ ™õá—¿—¯‡¿‡r¼Œ{CÆC9^ƽ!C˜ßô2î ¢úL -sÏaþâòÇåK‡‰ŽÏò˜î9Lsî›$å–ôü zL÷æ;ÿò#Èì)ñ‹Ë_‡ þ+üâòŸpM'š­a@=;d¢ęÑZ*шÐw¨›´Vº “Õì60ëÚ $xkîÏšÂa)û—D}œSà<¯ Øùš•éx„š®s2{O‚º˜6„‡ÉM!B×–c3ë'ž”J6Uö?Zó㊨öÞ;Õ'6%`âë=Y:^^äÅ…äcåayYÏ'÷°mLá ½zV\Ô¼1s€‘Ê:©³â"}}ó1³’¥=T„ö2ˆ¶NíÓÞoex=²R4?ˆ‚Òßa"IýtƒÿáP@ß<ö2)é¶¶Ô‡´°Ú„’-[,ŠKé݇¹P„îµ’ÇÏN"~irÿ擸+o…„iÔXͲ€µ8*‘³oðÇrÝ€¬E:õã—£\Û„D{qþ`ÆÞ=°ÿlH?a7b3œ‹Ò^Åìä!c‰œ< -ò%y¸ŽœlTVù`Z‰Ä°Î[ÂC³Q@ùrC䙇h×XÒT‰ë>Â7lR‘&Õû’ÄUבŒ×à›qYÖØq&B?Ü•ÉÞàUÆ”s˜ùˆéØ×Ø«„l d¦l)Òû$'†ªnÒkˆÖûF¶€:iíþÄ"nn°g%ÒØâ|<<Dðrx# -9gLà.Ü€z6T_Ã숉¼ù*'èÙ¦ðm ÜW˜œl…’ÞÊQ 9é|ÿ} Èc‘N> -·= ~-óï™eð.œó -ÎÊ/^Òn³ü¿ìÜþþ'½Àc^‚ú-f½á¿þ‰n²[ötkL_k¼ÝÂ]:,š‘J÷ayŒyålâŠJ³b͹_M݆àlÿ´ÐrpqÔön§ù¨Ö+z(u ÷;B¹Pç¹-Ÿ£¢uµey õÉâZǦ˜Ó.,ìc¯„K…-ЈiÀµÓ44æAeX F¹ âK¬±1˜J -Pfº’’ƒÞ:F¬ÎYõTM›¿lU·¯V ýæ„I8ù›@‰*ø R"ÔŒ©DèQ‡ BÞón¿âñe¬ˆÕÔ9Yçs–œÒ Í.I8ÙŸ†º™]zùÂtõS-º )íøÊËl»´—[=v¼~5qðÒã%È¥ØF?t†ÅÁÊAb:¾¼Œ§0Wïˆ_Ïv£õ|ân0ÕàÒ«MŸ^S nd[`ân –>ªrŽp‚›ÑaÐŒ“vØÐLڭʿƾGn¡¯Öy[ ´ Ïáe0ß(vîtõÙ7Í·;·Œ6áÏzŽã#Ñb'¼ly,^­«cŠ@8¦ü¦Ú±°Ä¶z”Þd`ñQƒÌYSÁ=ùÂFHþÔœÿ cÜÇ] •ŒBÖe‹<BÖe{a«‹ŸµH·ò/..¿ýò—Ⲹ?AQø36'÷aÇûÅ»Jº˜ïÒ™—³Œxå'ó '[9ö<‚3<”ŠJ9«ÇĹ/úæL@ƒPAY‘X—ŸÕµïœæ®£†<G®ÆÐ‹ÑÇjüG‡ÿÉ)kè`2D[JèdOB@qó‚-{žl¥’%=ß*Þ¨ï%È¥¼Ûe•‰š ]vÔ\`6 -©ÓüáûïÂ4 -¤mfÄîÐ…GݾfÊÒcïÎ;cæµ2S¼~×’®Éµ$¢!¡ÚñÉ‚©Ç‘eUVÂø4l"4¨HFÔiC6åÛá1ê”Ef~Ï.Š«ØáJ²ÙLâŠ÷ÕôQJõ‹Môò£³0!qTèÞ{Ǩ¬ö+¦?y,ˆèRXfgmÔ÷a«^ú;³£É#IÈÌcЙËdfö‹Ëdæ¡,•æ&™†é«®™P›×hBfÄñ0.“™ÇË.“™‡²ÈE2Ã:s‰Ì ê_\þ3.M†q|'ÚШIWy#‹7Œvàô˜ ݸ]°@dÑ\=éhëŠ@ï3ÕÉCz6Èõ=”M…½c³Wa2x+Mý ÞÉ7PÓzIS%®ûxʱɌ¬ò÷ª<ì#刟Á €Kð”‡B¦j‘ÆÎ¦ÊþG+W„ùÏ ª s/ê±tZfýË2Ò-‡é ‹çͪfe· D¹ «MN‘J÷aRƒàiû,¡Éç½ûàTc -g§X‹‡Šr`9Ödu}ÊÔ³â"½g·Ù5)NÈç“5y©À)™\ãöU¾µÐÑöŸvLz€¨ ü àe‚Wìæ¡Ï’”x‘Þ^À×ÕªÙúÏûUMû%ò ‹¦Áƒ^á -fX/Óz(ùž“q‹Eq)xñIÜ•·b_#iêýíåÓŸ&£›]wôC9™ŽúÔt“Ù³xj§w)¬,6MBœ?UÒrÐ[¨¥4¬kÀ&Ssw‹¹;/¤½ŠWËÃu9iz#¤2Å—aoV’‡åYN\T·¨äQ}Ð&ëºÍ&q»"ä £Z¯H&œR.¨#­Wô]ëÜÙ-­«-KÁ"qðÍx3f´@h;`yÖÚ‹)Ió œB£\ñ%ÖØÇ(÷’𮤠œëб:gDbü²Ý|ÿ”t˜Ýšf˜D[þðn®¤È‚8œ/ë„I_8ÙŸ†º™]zùÂtõS-º )íøÊËl»´—[=v¼~5qðÒã%ˆ×د¶¥Ä úù!æ*Bá* (*7·P× ðÿÛ3“ awŸ¶œ*x¡B¦2ÓÓ§ûô9Ù7;$㈀&U¬}7AÁ’\}¨üë¼3ãG¦[ÉÝ-¾¾"µùóð´7ѵú —Fï&Õªmi/c÷:se¢`k·–Hž£ ßZ^+™»æ‹ü”¬\U‡w¶õWÜá­P›¥Ë×{?AÆ.ªxÜšÀÉaÉJ¯ŽR2¾#Z À’h“’ºÓ€˜®0Áûzú9*“b…%Fè”V›ƒü [Sr| M^@î•©©Àã 9>¦jÈÐŽ¸|;\ŽýòMqYMË -6{XGœÌÊìÑùÂÖìá<+Yš=dâÿ—Ðùšár)}‡„ ª±¬šÀv(niÒhÅf¾_È×íJ¿:±ZÈdNÑùü4Š3«” ­Rb1VÍÂe~ÒÞA˜¤@\?#A¿€0×vpÍÕcç•…åÐj,ŠŠßj×´N¡¡…ÐùLaº–ðÇû@9E½•}„Æ •$Áš_i¾|Û®3û²¸XNÅUõgv;²“¢q‘¥£û¡ÃBýB¢É ÄŻÉ^Šn"w‚Ér?PúóaA¯Ëš¸h¹HƒË´^¼O¿£·‰Ô~Èp„Γ™ß/ŒÉŒã©JcIf‡îõ‹‡¿4Íɘ̰K[Ä–Ì8"—“Ç ÄÌP1"3ˆúˆË7Ä¥7ú…&0à1Ù9Ì`¾ p˜9LŽ3‡‰yÌ÷˜ æëöˆËÿã’yCÏ´í³²@›F}WN‹Þ Ž6$ä(tý}û¨ót±˜Ùd$}1O»^ÔCzŒŽ(£àÄÖ´±5 Ÿ§¬Ô©Ê7PSSi©Kizí -Pa®¤Ö«ö¥&¦Ÿj~Êz !㯚9Ö0ÇÝcº£.Ú¢¤£;ž”ƒ…Ò#×IWTVç7eôN™3JéñˆP‡©é¥Ñ&ÊqT»wžPÆš³vš(®eÏ6àÃÍ™ñžXx‡{»hïà㓤º…RÛÀH“Šn€ãÏ­îòDZøPu{¬(Í^ÃB”)Óm£tTaÇd´ô”±Óxß5Î m<`%ò;=~198 ø«%vPÉ5,ã@Ó|ã¸A£K5R=9 :Þ迈ɭ‰ endstream endobj 193 0 obj <>stream -H‰ìWÙv¢j}AfœDœç1±¢1‰&š¨ïÿ×8¤;§×Y}~×ê‹Ü(ß@Õ®Ú5á—ˆZ¿CkOIÖêSUÈß§HéaÅó^UÞ‹û*­*Õ7îiÓ.—}8\ãüò`¥>‰€½Ò°’fþCÖzsŽç¬IH`’U ©¤íì)˜AÕåt3©Ð*£GøÇä«|Ú[Õi#6øEèÎðáü‚Þ¾úÂú‹…ÞÑ¥`*_’,Qãžñ´`k­¤DH ](•œL -qŒŒÀLÂUZ£â ^gT!‚GuG.î}8­o÷%¾,ìM>'iݘ&0F=× -–Ek"% -óÊÂóâ*-é´.0ÝUQÈ÷žSØc=oÏZºë‡™¿þÁó$Ëïì­fv¸?9Ó\ƒ M« âTaGGoO†ç1ºJ½ÆVçÞÞ®ùålB^ —Ù-ÏÕ— Ü›`@ð?ûV¤Õ¹¸ý -ʈÊ4¸ßa¾»†’Üå -ˆ&”ö¿"iƒô`ÿ$6þí9bþE¼ðË—åkþaýž2åùš’LŠTp¥#d  PfùRˆW•2é•™z{ç®î¨ô)m}ypí›’æØçÃYn¯Øt"îf»ù¢©QÑUÎŽvJÖvD¶Œq)×2³B…³uqËF—kf’Æo:"Ô„|qž~’$¿ÃS{1æ-Ž@Îðjwò—/)8Žh -sOK3Ä·Ãè -åÊAy® C¦b«µàµs¢©’ôž¤`Ó‡$6üã¬v¶_õ!ÿ·@‘fæB¬#O¡¢DL;qž›½G€èxÿA×Y þéàs€h¤àÅëÊá©`œ¸À>MwSÉÕ[¨k¥óò–δ¢OXh×%0æé¥ƒÍØ#f+#”­1D/_¬ãÆ¢eƒ%¸g‡À)i0éã¿ÒU»r-/H×Ô¨y16¼}xîu[ÙçÊýþTÒz;ÝxžqÏÍ+Ìù`¬±¯°×bï@-5)÷iæ¯2ŽÍÑ{Í!¬)”/-}Ñ[æÆÿZZûP~Éö]´ˆU7æQ -\'¤çyÏpä"Vª$‚NŠ_˜Du -ªŽpÅimZ‡½Þ;x y‡çÖ~ÖL,†¸S´Ù¤+‡Ò²©3Z]94‚ËÂx4Ñ7ñ>Äý c&‹ü<Œ0Âê*臇|‘*ñÃO!¢& -ƒ&oOްdÌ b¨s1R¤š•̯úâ«\û|Î ñ'ÐùÞÀv¸ðáâøø#ë±1œÉWlسCâDS=âÎÅÞ`Ùå<Ì<¿œËQ;–¯ÂBÜ´ñ<“ šÖ´7„.fÒqʲòÕ^üŒ¶yŠ'H¤14¦Ä[Vö²ùŒœE;î?¥ ¡"·9îYmÅɦÂ-ú`  T¸~¿‡(RÅo^þ:^¾óå/åšÓ…Ÿu·&ë¬#GÒãR<ÚÍ$\—H½eS|/èô3§¹+›ù‚0GÖ°C'dá jJMAÕÒ//=Ð-©0o¨xÜþ‚ȹŒ ¯Ë¡oj<ÅÊ»\'÷ÖG9!êwáÖ„º+ƒ-ÔÃà9›ª`ˆ2™6üh‘v±(šZìátиf6 4…õ¹“á}`ºÐtföTþ§qZŽ"&7KÑÑ« ³¥ùˆï;Ù´6så¸&G¬À,_ÀˆËH÷‡Íudhÿ¿4ÿ@šrLwQÐPà–ú -UŠ7ñ‚•kwf¹ˆµaÌÉØjfnjt»cjäb$è‰4ð‘á' nˆ´<Ÿxù‚ŸǦëtoû¤/ZvÌâ"ƒøV^¬ÆI©#^±Aë3Ì5Mv†E{¬ÇШ(¸.0ê¢góáE¾„Ejùƒz4ž”Cχ[aJMÅzÕšVñÄU¾¸xä6ùÕPê-'KcC&8«õŽœ¿‡ˆ+R‹rˇf!…=EÌðÃËéýæå¯ä…Ce=þÿi2>Üi37n20Á¢6sã&¼ 6sã&5µ™¯šÌ7/)/ÁÄ:öÍË_Ç Wm¿ã<ÿ°~Ow♩¤õvú‰ -sE“;eÎ[¬ËPþޤܧ™¿Ê86KDï5w‹–¾aWa`¿ntÆ–¹ñ?äZûP~Éö/ýÅÁ²…7ôTÿDÉÉpä"ÒDÐ voô;©šp—imZwxó"fíg]PÁÄëá›—?åEÞÞŒ—¤úæåoÌ—e0¤ÿÜdÜþ¢Ü¸ÉÀœŒÚÌ›ŒÏm37n2>Üi3¿i2ã$ûŸ“xAisã¤Cisã¤ñáNÚÜ8i ÆPÚü>iPî¿$ ðržÍn—4îw¥pã¤ñá—ÙìvIZγÙ?&Í7/Î ˆç½Ü+ -¨*iNZ ÁxX|Àyq!9Ô-úv_óJJa,8çêŽ\tÏŽ'êÑæ2¨z)7’l‡ZIKñXm¦e@ň¡Lƒ>{2šJ%ù’’5Á–G᎓©\åžE•L’#Ê`q‚EMØÁxšÂÇl´ÔÎÞû×µ}º-€‚Áþ—ƒp9âýšùí•Ηæ?@¬’aÀÁ¨ªb -2¸åEV FúAjVŽD¸ ‰ÀBy(uê/²Ÿ6š89hƒ¡HÎ !8•öÎc¹õ ”È?(mǸg¥hK9s rÏú*RÇÅÜ‘‡BÓ§ÔØGcW ¹0„Œ“h -–bŠ'£¬"Žd–ä-9 ù]Vp‰¨®Æ¥2žpUß¸ç€æKûC¢d_u"v«ñIR¤µô¹ê*Zö´ØioU÷¨µ&ÉX ×—R@`H+üY-ý&ØòiWGÝbm] + »Âu]qöÈ×òÿد®íÄ•%ú|²„B#Y€`0iÈŒMvÄ6&üÿ©î–D°g|îY×kÍü…¦»ªvÕ®]§ëâÃZ@“ž×$Æ“ô!iëRÀüÈŒ´k'o㌴ÜY©³w2_içë*Éu%¢uªUr6xí²…N:¹úî=¹@Ý%ßœGå-»fÓkBfðǧ™\Ô­<2Ê~°âÈ?™$!ÁUò —Áé•ÃLÄD¬ÿ¾-}jzÈ|:<S>¥:0h5‡&©ÀXTb‘À¤Y»“ÉHþÑ,áÜ7úÒr:VhÖ:u Ó¼ÀbïÊCÂ)¥IC?¡ÇÆ8•Iã-B‡8Ábˆ«¾äaÝx‡É,fuÔª³þr±¾!Ò³xçXfÍPÈBÎL95„ûÒusfñåÄ-dlÎL93´À3ú­!â™!pÊSØÐ—Ö²ì×KŽ|&ûtÿõ>ᯗd‰‡ùí¢s×Kpshã¤Ò±}ýüÒ¼‘;싵;jL‹Pk`ÙQEZnŸƒcW-£ê¥ÍØÉmL³Jˆ¢Aÿ«ð-Z•Ô\fîÊ0k·/Ö?È´Íyydéte–ò- #/7Jø]îÂY*+؉ÌÁÚòƒÐQñ'w»zreLW,Ñ›WDsÎ’ë2LA.V}a™{VÓP½óŒ$uÞ©J"^i6Ú;„‚ÙPÉ eò—†þ¿ô˜ÌߪÔ†O ÅN5ÿ .š¬“IêùN õšKI]?éb‚¸–¢«Ù"àaŒ¡5hs EÞ!-Z‹JKŸ²?h:çâTÂÁº ó e_êø #}rÞDP+ë|;ÿÚóàš®&PatyK2 ±óþc.Uõn°PS8ƒgöV¨T.#CSç·^˜ª£©ãdã=W‹ÍöYpšè$Ž396 â4ˆ _J+ãŽÙ¶si­¯„•-Ê Ïa oàÀ5NämÇqˆÞI°ˆ&Á6­Iw \œµ,óº?î/ìÕñÐôïš?Q4W¿hþâu;ÄíLRIZ>-±Œm ôb«,^lÓ\'µIÞ¿;VÚTÞ¸L+ö¸×[~CÝyÓ{'úfJ$8ÒILìzÁ -€*êd[úì¼X¶£ÔŠñˆÙTÅŸ"\6k2”Ö¨r¿Ho†`]±”êì%5–ìCšŒ\¬úÂ2÷¬B<Î3’XÔy}2CÒ”t$TåÀp˜ü½¡§frd¿Sá ¾ˆÙVWUqŒÏ¾;]õçŠTþw9q&&À—ïgb÷ýogb4ÿwȼ3‘ça¾’yiæ?ÎF‡É|ù¶Ùè0ázù‡ý*ÛJžY¢OÀC D’4 ó’0Š€€€¢Ì8‹ ïª;“ú?³–ÞHwuíªÚ{Û嬲pPöy#‹SW~áø?\~%.?\~%.,Vúƒ ^ít:7}€$®k®i¾ß=JÏ‘SbbN1‘ÌÝpqÏéV["¾pÀâ‘õÞHÛ©C´ NӜآë•äá~‘yörãzPz“G¹Éû•v§-_] Ps›É= Y -Ù—·Ê -ÿ0?¸Žê?Œ.ÈÄfàôáW¸m±úÁGޛބ,Ú,+CÏ—”ÂDéº:hws²?B«ªrÞŽló ŸJÿ7ùãúÿœüÙó¦—&2”–~X7ÛÆ•=]%ü­ø26õ´Ô„"¼ù“нӳh¹1.Xb¹äðÚéÎñMÝ -—ˆfDpNô~Á -@S8Ú!›Ü±ýB©–P͆û¯ƒÒì]:•ñÓ;¸Íî52Ñ€ýXHf &MÍŒ !åF¦µoÓs†œ9èn¿dIY#Ca4¤çÀÜ—½È5ûªü|2Î6š7et–¹²ú…DC<Ô¡ü4ŽS¤IMRìºÄŸH¿€ Jó„ÕÁ…&µŠy: hA¹b¼ç—_ˆKtÊþ É`~š±™d°¯Ôdµ$¸`š±™d4_ùü5Éø‰·ý¦“J6½Œ}NÆAY^Æ>'CXL÷2ö9Ì/ñ~åd î?\¾‰KÍãVÓÐf”¸ ðzã}¹ë޵gÉ¥ƒ7lHŒ4ƒúëX Ïö ’‰le"6饻fË]mÏû¢'Ž÷£ùqá‚·² *ëæŸÏ©Y$]Š?‘÷?%\ééiIÇj -¸TMÙU'S5-¸d´‰Ö;;üAF¸ÆÄ˜Ÿ­Š±¢]óV Np€+Õ*Š¡úZ5K?{ÿ&Äùüm€T Z÷"…GÝèpí.P•˜dô9†S„ùµôB†¹‰tcÛ=úѦòÎ1®ÔU˜IjŠ›ÅV¡ÔÂ;éÒÄ3™fN‚æIØ%†cܼ£»^F€ÞÇ!‹¢ y¨l lcg¨F¡!å׬Élðì4xtW¯šÖT\”›¸—gÚ΢ùôÜhìóWˆ6œ¶þŽPÜt­ÆwžÅ½H 6«ûÿ+u+ -ô:ÏBXU½s³÷³°„WNEÛ¿ƒOÝ$§Æ³ûõàRó¨zW®½]HKÒ&fdnÆ_³Aw0ZÄ‹&—rŒ³ËA.Í2DÑøñÙ<Éç[·YRÎ 1ªeؾWbFs…»Â!žÉMÒðî0 :*FJB*@½d$­RG•b‚gb “ o–¶V"µ7\º½×î×ÿâUŽ9M]ü¤W9æT€÷Ø«s*°Ë{•cNwåW!±Fµ¼Ú:t:7£•ÄuÍ5Í÷{£Gé9rJÈøt¹D«¡“¹›4á2î9ÝjKÄú%X‰¬÷JwwØpã1 KÓ:$¢ë•äá~‘yörãzPz“‡ñãýJ»S X8(ÔßÜft4ºCa Âp5`º8Ó€ðeïpÛbõŒ:7 !X¶/l•z¾¤&J×ÕA» Œ,û#´ª*çíȶì2”d¹+ïC¢ßVVË¥ ?àdùIúwÝË>¤Et÷\Œ¤Îƒ=3¤áÍ -ô‡Ë¯Ãå¯_~).@jÜ7=ä1‰§åÏzÈcÎòÃò˜ƒ\¾ðy§Û|ß$ÌÈ@ÿäš 5Õ§ ‘÷n*ÑÒ¥H=É«ÙzîZ.— s’…å2•ÉiÿeSN{'=^Š&ø8ëHCωÞ/”)ëZÒu=¶³_Æ3mÊÅIÒià×áUGˆRj¢-4À%>™h0Û0’Xÿ^t„zE^K<¾@ú™×‚Uñé-=Ë݋붃R}t*nŸœ«ƒs*ºÕ/Z<Â¥÷˜(Õo惡•³ï‘!Y÷-S¨É!w>€èI¹áÀZH Ó]ê=½öúdg63PJxœÙ<Ì<ÎlfÐûxœÙL2¸ü .ìy3ø'ƒq1¼Œ}NÆAY^Æ>'è›^Æ>'¸˜^æÐɼG†d¿$D›I*ÓŒÍ$ã ÍØL2XÃÍ|H2ÜtxçùgeŒlj3û”Ö–†6³O™3µ™}ÊÌAYÚì¸2ƒ¸ÿpù…¸œ¦ÿ<Ìà,¦f¶o˜aÍohfû†™ƒ²4³}à Îbjfû3ð¾©ÍìSfšÑ´™}Ê 2fj3û”®1C›}¦Ì¼ô¿(3Œ‹¡ÍìSfÊÒfö)3˜0¦6³O™‘~ѵÙgÊl€ËSø›MCúeÛÐØÒ4 “w -MÛ54¶4 ì²kh>išËwê›M¸ì[šœÅ®¡±¥iÔž¡±¥iÈLÞ64Ÿ5ÍËú—ïâ"¼áo†ÀƒKøÇ&»Ï$VKË.xuk¤ðãz++¬¦ß¹Üʪt­–KE ®GC$!†ìÇÍøGa+Û ‹0“³Wél0»l–áÀ]›å:x&•ô¤ƒâò§jî$õ‚…-''5ÚU¼DÕLFhKM£ìüP&5V€ÈN«47‹Áð”µÓöÝNO¦@÷ ¿#á,Ÿ »Â\âJ£Ê™&»¦55¯­B©…wÒÝ]»WfŒ9†S„ŸòZ}{Ò•AZ«ˆÝ„=…Ô±M‘L”ø|¥#á™àJ5UÅÉÈÁz¾<á9èOm(æM1^…å½Ýø6tÅišɯ"í5ëܼ#ysCýµ7Žeº²-'† ‰|â>žÉµ²}C.ÂÓÅ•c‹2lU©èÅ Þy¸R·¢@q®óä™Ùö #áú}RÍ?»Ùû7d{lÃ3ÅÞϨÐŒfö6åæüWËÎÂ\9•c ðLå:}x–ݸ? }8 Ç¡žFÊçûá²ÀŽ{:m[éòù?o!Ìnên>}Î`ûé-×ïöޏqó¦ñë§Ï™í>½e±s î¹ikÕöñ!zòQ6°OºÎ†e>X'ï\å΄¾É¡™pÕ­f©af˧¶ºÜ¼sÁ>mú–‚;ГxÄÓÉ-;EP15ËGVŠo[¯”‡ó먢´rÁÝ*ÅÊuµ)q™ÕZ/ü×;O|ÁF.Ì]Aê“Ûµgè–#裻°Kº‰'Ï!lRJ…'Îâ’‡©#uªûŒa?Oè™.z™p'ÍwÎÛýØ_нɛ´bçÜYÈ5iCV™¾øI™£Ý°C;âàó+~ÉÁÁ)ß ¤_rpàú¾H¿äà°î'þeÅúß -¤_Š£h÷¿H¿GÑ)ß -¤_Š£x_¾Hÿ6Ž"‘”~qùq¸üîËÅey“ Wf;'bF'.VøŠtÒ‰‚Òq%ŸsI¡ëÄz†E=¼žA¼jƒ¶7.‹{)®‡…ʼn|°*2ûDÅN‰¾ p,Ãçu„wΛî¢Õ­ÒVž{8ÛJù+Ï6毪Û¿Ï%Ï™W˜ìU}ìAs—ÏÀ]Hj6zk\êùÉ ©Íò²½ ñê=@ºÔÄ®!`Ðÿ$æÍD†~58M¹"çòZ]²»v.•íËJµ/œZà8°C£l貌ñ?ÿÓÑHŒLXt£K^ ¸EÞ¨–¯ÄšñXISš…+µzÆ\‚ÍI—__3陚õ^¶Õ¬{>óñT>üƒ£2É€´ˆës™ûšv±Iš®û±£órÜ¢­žÍÓŒ__ÔŠR-†Ð,4$þ0ÄXàwéùl—Ôrå„^@Ghx&’&¨·’þÎûÙ‹äâ†_îÂû®æá3Éh×RÓ&56~´/¤ùÒýžÕ¿Ž…3âThVëµ?f7D®R@âçÕÊ/c^¯úFïÝ^’Å$Êdæ`1Q&3ðcØŠÑ%3‡ÝGS#3œ’Nƒ¿¸ü8\‚µv4€³ ½$ƒ<¿‘eè%kezIFç1\½$ºïŒ¿Ä)‹ à‚d†²È8XSò)ŠŒ±/tEu dFXLÇ=g†öÅðfôœL² ZÎ̶/MzÎŒè ¥_\~ .§Ù=2ç螙™A~1=3=2s°–g¦GfÐ1Ã3ÿâò}\xüÙ}pµœ¹øZy"ÕÚíÂew'/;ˆXŠOatu‹ÿ9Xr w¢1°­°NÝt)Er^¦4 -Û‡aÚÊK“Þ°¼Ÿ­Šâ­3–7Û¬4 U›âÔÉ•q!Ð1.Ýß¡aéÙMédS’òÃPÙÖŽ|« |Ðp=½¹/°P -ØÆœËÙ–$,`#ïi’œ‡ ׇº¬‡ ‰w®òz(UB¥¡iÈÞ:zWŒ‰@-J¸ gÝœœ P?â1Ë8¶ü©÷]ó¢¤Î³ ìÿB.†+‚gl×лhUöð.×qoVb÷Ð@&†¾&ð×ëÞ “ ªÍëêá*_Y&³uÏ&æMý/m̉¾D?oà.›¿¹‚wË(‡)$[{†ßØ”4áû9ü›ÎɸPh’G›±Ý^‹ÍÂBåâ:rôÛX†ÏF #ºº°º‰fß<Ðÿã±cèÓ¼žz÷÷§Ñ$´VÄ¿³ZZ£¬UÀø½¬•â³¹çù3Y¬ü1œ"©9g ò.­®W…jÒÙ€FóqÑû¨)!W}”F¾F pRzY%¤¼¶«ð.˜±+%hBÕ=Õ¼Y>™ƒÿ‰&á9£DÈå)V!ýœ—=ÌŽ÷ÓÀêbá#ô‡íBy®mv1(ÌÁbKô•KoYK&¯úð‚ÀD0`ÐzN£`…ÒTcƒî1 !ïxÌçâèÿw)±-.å? t7>,Ä q°•’ÞÒ“l¢±ÿ¸ìá”OnzX¸?»e÷È| à²ä^<ïß$ûZºðh‡ç?6z$ÌÝ­6eèxN—WÀ–BevF= šZi‚ÙMLþÎ#»aIÂ;þL‹ç»×Wi—s°ŒOÒ -Œïî¡Í° qÄèUÆÇçô[‰ñ¹sRPNgEÉ# Iø z’ ò%§çJ@?†P=åu&†™Ð…°ÿèÅ7‰¥üK„°@&\)kŒx¡²¨@&}aïr¼Ñ0rW¯Gr¶Ãoªó˜ÍŒüE¡X uó -èc£’4©OP!Ýݲ<žôwzöQzö›”ø¨Úl^,eû‚ku°”m%FulïöbøÍb?0‹ |Ï¿¸ü@\ î_\~ .¥5ƒÝ¾„œ ²tí€=wOw)o'ùšX=s-U”7XÙnÛqIwªÑ=㚮Œ+¼Ñ,D®S*J-ˆ>u}Aàÿ€ÎÞ;/’éÈu%:š»‰"óÃK¦xûø$¯$åis¾Sª½Þå—î6_¸ŸE!8;÷™—¦ú ÍZxî|8 ‘¿¦'5~ç«û¤˜Ñ³•_Vå¢ÐiêúäViµ¯¹âÌŸëÙõÅH¼âóŸ–çÿKŠrÆ~¨±2ŒLÙMžÃgsI³Ú|xßp.J£áì!¿ŽÆÍ9EŽkÊøÆó6|Ü—Ö £ª‰íq™HÅŒAI§ ’xàLж^Râ›çé?Ï‹­”˃ó¾8œ7„Ÿè-vûeŒ†4:Üä0è”ÁT¶¡QžîãL~„G‰>Ã×NPo¬/‹™ÇŽdÛXHëK¶è‹óMmÒToŒ×´b­;Þ2O%¤âõ-$6S*«÷Øâö[†‡ äªÖ™4^ŸÁŽ}¨L?šd²Ó×»`mQsQ!3œ’Œ¡Ffø”¶L™Ì,¦3Êdæ`1édvš Pq̰ûG#BÇ1;XË3ÓsÌpŠé™é9f@ôÈÌÊ•4É N1½=2ÓuÿˆÌ”õ¿vfD÷%ûêRpfÀü¦7£çÌàÓ›ÑsfÐ1Ó›Îìiÿ‹ËOÄe€Çè?kyfz"ƒ<Œá™é‰Œƒµ<3=‘w1=³%2¢ï&ø‡"ƒÐ7<3=‘w1=3=‘\LÏLOdÞÙ.2P÷/.ßÄ¥ÁqòNöµ·-¦cY'ð™´=…«!ªvhm˜Ý´•7@äýØ)5 -ˆÛ "æªÕ‰Ä|˜˜~»gçû3.‰Îã%ÞðZÝbz˜‰¥‚¦H꙳èÍJ|Dr¯Z)8eÎM‹„Ÿ¸t÷ö‰ÒdS’òÃPÙ–ò­.Œ\ÃõôæB¼<8@ PÀÍÿدÎåÄ™%ú<A€@("r ‰ Æd‚ `{ ï{f$,ö~ukUµ?üG…FÃLwŸîÓ§ÃI¡”m‹ü2ágAü ›q’œK¤¡‘„kȉºÊĬWY¾ÒÒ4ìó奛qÅŸ }–6dðÝàmjN¯$m.bÒ¥®_ºß2Bˆ -Õ/oöe:äg¦’ƒHIÔ¡R Øƒ ó‹X<Ü%ÁÍ1Zà<è» Ü¶áï8ž–9R¼~ÁfF¥ƒ;îØè`Í-¹$o£ß9MXÐX“~%0=gù¸Z7ë¼þ±f϶Ǡ¸öZòr­2¬©`æ^7j_ƒfpG“¶™Š×PíkcÈÀ“(T;}à•paè×&Õc‹_Ì¢–µ·â+»}ÂA‘UôÇ̧ÞÁeÔÌû·C׈µúGYRúYER¶*ø7”`® Ak¹ /tf1!ø–ΈtŽHÞ@ª)×Uĉø8{Æû+% ‹ã²¯ÊWýVœô×]îE, zÍ%÷ŸyÉ+E å²|™çdÖ‡#‹ªÒ,Sˆms‹ÒÀ«éOêDÇˆà‚¸J wœ|©h“‰A…È-àE0¡Âõã(AÄ `?x®¹`°„‰KjmQJ˜R¾5ʺÅ]3Õ‹a -ó¥)¦!‰Ý É -•Ý5CS zuþ°åJdM¶ÌßÌY,#÷˧b)Í¢5–D§8* Øu±øÔ Ÿ÷¯aËÄ·x¤—…gyßÓt&í…\umR§âgý…ؾõ_Ó=¥ù!Ç–‚+ -ÐÅéKrlØdOÖFºéDAéz“ï¹$ßó`™ƒe—¼žÁ(9Ò†`<,ìŬÜù…+|8™‰|AcЉ›Ô Bè$éà¾.å¾Iá9ZýT:Ê{Ÿà—¿ 2C]Ìœeì#3¨ýã,c™YëÅ>2sPæ,³ºÌdT4”üä:›K­ÍËû–g¡?Œf¯ùuÌ ÞÜÛ­¸›:™ñ¼§‘Ó«ueôàÁ𨛉ªÒL‘L\Ü@‰|GF뜜é›Zú÷ûb+åöàyQGóð‚joPÂhˆ‡ÇÜq®NÃ4JÓ}Ü„©"@”è;¼v9#³Ï/fáû¶¤…¸¾¥T&Nßh“Þ°P ÆhMSë½Øy½|Ò+ ‹—¯µÝv.¾ `qøÏ§;Ž{É´Ëâx]ãÄü`Ì 3CljO¾ßAeÄ\þ9\¸úC‚µ…Ì ö-ýÎ.2sP'mf™9¨“6³ÌPŽ™Ú ÈlµE™.g)b23çJ¤ÍìSfpËQ›Ù§ÌP½˜Ú )3ö—ÿÿ"ïX4x­lˆµÖ -»Íáèdâ%Ï+)ŸeâŽE_?1.•ù G¢5´è:¶ca«ä¾Œ>a­É0mçÅITá^f+UxòD#üÒ¿Ê Ì¯.æGñŠƒ"äãKv(YúVŸ| MRÉŽ|»¢³åÝ\|ˆ—†‡°ŽLûN -¥l[_€y_†ÍŒƒ'ɹDˆE™kȉ„H{Vy£kêU–¯´4 ñfáò҇͸bf -Q7ÁÍhð6%8£ "†9÷@h‡R×/Ýoy”Ñ'y>H¶SG'öP©ìÁ—ûx0+R{ 3f¾r.ðe<Ê…at‰&aAöðKÁ%JžD0‰¿‹jr5Ü0Iѱþν¸…_Ùí¦~‡µzl vÍ©#ÝÊ}&ëƒÕlÔ\]5|ÒÆ>~YX §í Ú%·Àøµ€uíò¼¦Ò‚^¸ãðébxgPòöobç'º¦ç,Ÿ¸X FñÕÄg¼¯ÕŽÖx¹ç¥P@Õ”9ój&ó•æ}éäãêó’J‰z;Û¹ˆñ•Á,jY»ˆ©+ÿ¼ƒ':„ÐûŃL«Fk)ôDz¤ô³Š¤l;Uðe( z·ôgøB'sBð- Æ©wÞ@D[£I)1%‚üz9(ˆž¦ˆÅ²G¸i þ“H -OålòdÝå^ô(’C;iÑMB°v ÈÀ© -\ÊúNUIâ9u5·XžÕ›þ$¡ÂµOziWÄÛyÀG@í· -G^©)·>™ ˜ÑøÅt|ÞØžk.BêÀèjmA:ÃLüøÒlÐC‹ûÖæKCNÌŸØ}iŠ!1„Êî{CÕI× AÚÒœsÑÙo­õý9²>ä s±æbÿÐΙý~ËEx]Ù” ù«ç ®!,‡$Ûxàfk0?ÒÄCvÊaÚÊ‘r)`!æŒ\õh„™6nQ–nGÊì÷†æ¿*ÿc¿:·çèðll n”PB7¦÷ÈJ()l ”÷ÿF’mÌ&Ù„ý–söGþøYH#Ý™¹÷ -â.çÃAw'¹èd j‚ .É›c®6Rù`»¨…É;1ŸV™a±Þ£ýUµqä€#aâ•1.–µ_1M’MgŒÈ Œ` Vyщ¾6wòwÅZn4…#«6ÏÅܲ'R+nª -j%Põ ª$ÙXŽèo¦‰YÜ%æùÓo;¿ÉÈoÃ$lnâŒk?·òÑ3WÁÇŒÛ!Dj^èp÷€½ʧ‡ýÿ166úCkó¡.Þ±6ÑØØè­Í_46cY›c3ljF¶åY²—HFMµ–ìëÎyn8˜>¥W!GÉÇv«ì&—Ѭ ûÅhzHOhLœ @G7 û—©¢ÛÇC*\£{»_h™jœàø³º„”ùl÷&ÑP†‡»¤ŽFâ· ‘ŸìÃL5/‚°iGÔ¯`z#Ió©?‹ý8V¸1¢#W-:ë s mÜígT>ÄiZ¶Ò=*ᆥfL_ýýgy·ÝúÕGtY<¾ücíS!Šñ&°ïª,B·yP ^Ýh~ìP³V¾qùçpù®— 5 Ć] jôä~M8Z³`'ɤ:Lô%•ºNÌg˜Ü¡ó¯¦3Fhý6öË{%¨¤¹Ý8r i¨HУæé ü‚À!š‚ðp¿#½³ß8ópUu‘j§^zˆ‘ÃJúÖ}§¸Û’ÂÝß<[€ùyÕC46_((jâêÞøÐó’DS$5{¢qðàœk`Í àöyâãÁW'×Lpð3¿Rô®¼NÜøS¥ÉaG)ƒ}ÊQÌQ·~ü‘ê3rõ3òw\sDE!Yô‡7O±rÅP#Êi©FæV-¨Èœà²ÝÆcS5Á·Új‚ ätø:oÿ$P’ MýNôz¡±p46ôØÉ~I×¼m£ÕÂ,FÞÈZV©„Š î0{6ÑðXaÊÇ4&è -2¹õ¾¦ègÞ?ùug#:¿ã™‡À¾«¹¹xôªëµW´q…[ê…Dão±ïIRýçhžÙQC— -—Õ|E—2]DLNP¸Y©‰Ü`dL«×ôž•¿qù'q¾qù'qáeOxï>Ÿdl4¦™ “ŒÆ4sa’±Ñ†Ë8›dê.×WIXìT}B2 ¹¸ûÆåq9ƒüÏÅ%ž[Q’Ä -"þ ÍŸæH ´² -²èØ]óè6²|qu´ë¬ » cK¹6†ò<<µ)§zµ§˜És`­YÔ#)\×m©ÞÇ8¯»i(϶ôÞ~6:ïø«©«áŒÕeõ EeïŸ_Àå­bJä±/Ñݤ ‰\öX´3I´iS ²9ûCåÈÛÄ^ñà3ÛhÓý™2Õz3½–îT-ÓjêÊ~Ÿj¶¸²So²wìc8X[~Aoµl]8‡°çÆ}#WòAQÆÕq ‹i½…=۔ϞûÏ'ØÑÌ…IÆFcš¹0ÉØÍ\˜dÐ.@3g‰2Èœï,‡‰v1<æå¦>zÌË9Lì_ty9‡‰wÑ=æW¦Xi³ÜYÍ 2µ³ 73w¼p3³Ñ¤s\¶™!\PºŸÛÌx<_}µhl4.› 6v¼dÑ@í£²¹pÑÃÿIÑ´^é¯>j€Ë œÅÜñrEc£àrE -ÖÔçÍÏý7.Š‹Þ á\FQÈIŒõW6GkQÙxcKQ¸`äÚ¿ó{šè?-kõÖíýcÁÅÃyç“!’ÞOZDîDT•æ}ƒ9)øR½DÊ—Ú¶Kpà¾OZ°Z\¾o†‹ú¥ƒâÆüTÒ_Þ"}ÒÍn-P5/£5?Ö(ГO>•P‡…ÈU¢¸I¢1 ÔN—÷1”+] ïEÿH£;¶+£ü2-§e/‘šóº‡¿í‚ñ ;ëWŒ0@k{ŽW„Æd’Ý®D9Ž‘&qz‚«'W>þÞ¦Êè~—§ËMõ$8‹T¬kºŽ ¬èΖ*ˆ­ƒBûèC!’X~:#BœO°û2îQ 8ä3`ûñª¨‡Ûˆ2ܳQdŸ²Ö¾8iBçÇï€AÔ-{2ÔQ.ÂXˆ–J‘M ¶*—õ“j#—Tì—³šû3Ë¢ñ¤Qþ>kædF|Xó¨^,û÷K8|óøØ8 $Ê*Y_»z:Æ!±7ü`åx¿…|L¯: *+I • -þ²‹ìa5÷é˜SžÞÝzOÇì>¦Úk›;WàÆH`Ç ^Þ<êÌúí˜KÓ+pÏöù@Ž%Ui!ߊ>ÆíÖÄGO9ïK=lbR1wu…¹2“„¬®+ƒÍ¸Â9'^”ˆ?Þ-Ÿ[ƒôb¶>¡0¢Â.'9÷@ùam/Z;ƒ7ÉZ€ý‰½¶Åå4†Ø†6®•´h×"äu 5×3f ÔרIHóÉÈâ;à,ù±°–ÄÚÜCœt7´½²PF|ª¬ät]ü0Òa<¿¦GvŸ’‹»Áj\Å˺>¹6à)ö³)»gî½)6뤅ëÕýÉ: ÙÎ6%Âz~™‚ì餌àýl²_xÊEvùBYdVË*•Z‘;vlÈî¸S"êØYÜdMÀ©Å7Üõv!¼QüòÉÂâïÈP¡Å7ì$ª—ú[÷®Añ÷B‘ò¦|w”=“²#Žƒª4 ¬ú{w ð·\˜¾!!C(Ñœ!üëkB2ˆ:É”\ú5«,k8Ǫn¸!'÷OEäd¸„äZ'”›Û­…¯ã¹ÑÖÊñ“×ÐÇaþ'À>stream -H‰ÜksÛ¸±€ÿ›tìéIEñ!ç“lË9]mKcÉ©¯žŒ"! `ø­üú.¾l+‘“^sjG#’Ø÷.»‹7L[ƒ@,hËjwñæÍYBI&’¤ hÄyžf‰Ý#Ónw€h0òæá{š¤LD'e*ä…ä>:'ŠÞ‘(Ø££cÏXÆ) .D”µ4!m½§>ÈHÛq°<.•ƒ´s’©ƒ-lv‘ižØ]4¹’xmHš²Ï€5˳v*ò(`ÑêT<ÐC-×ë!Ûí ×µý »¡ép×éÙÈvúí¾íq¯ít;pœ ?i”MáÓ4=,b‡$ù(yQË+znÇEl›ëym»Û·4ጆ1‡]U;`uì¶ ¦9òY”à”¢½Ž[ ´¼^C`½KtÃèà ºÕa$ÙT§H¯×éè§ÆÜäœ&·“qv$¨¯s%ʾâ¿àDÅCýÌú© f$YÑ òJð‡tEaöm EJžqh‰.&10<Vô=|N9Ld]³W,(Ÿi´¢¨ÛëHbGm>݆ ÁçX¿‹¶ª]·u¬çû äìnÆul¨!wÂs@½KD¢¥0ŽôT<ƒÓ)ã4^ü…ÜPMs–Ñ6aññWAƒM(ÒH`VËò½Ÿûœ.aú«Ù5tm(qClcŽþI’x¿è '¤ˆ‚W’/tè Õ²kØ+„¤ËNµ){¦à+ Ô+‘l Ã9”é´’­—O ×°ýò¦¾œƒtšäéÍ„à•Ø§¨JzVPI:&Š!G:@/5Ï5ÁD|pZ€úËyÈÒÏÌj@cþ.;ð•&û–ÄR%¥aO ÈD–dŸÓéFÃðkÒd4 ÞˆªºÕÖŠ09”–éšÄTÉÌÖŠrZ ´eƒiÖØVëëÅ÷›ú#oÙúÿÁ|¨è¢ ˆ¾&!E?xÊàFJKl ¸Šõ{úJf™ò6ätMÛ´áÆëš)õÿŽåͰƒî¶°ø>~Ђ»ÛºÿÐA€ïná Xºt¾5ô¬%¼wˆ,Ð}ÐVÞ”ä<ûðu+7WS›Ú®ÝéšÒf·ïx–úèt»ÒÖ~ÇtÊëîÝàõV›_°Z%dP{sjBàîW@©u²xµµG÷7êb•¨i¢ùÙx7&¾19­Ì(µ}KN_‚¸æ¼ðR|Ïá1;¥Kƒó— ‚ž¿ ¼°õ\À¤³ø9ɈñfŽË5$†\1u­!ÉV¯ï®.¯E@Õâè§  …Ôšfr–GG!ÜìÚ’ÒíòíÍ|7~Cx^ôÎ'èlXüi0åÌÿ¿hÊ‘©ÈŸžÊ{âAúô,ç÷šW/|C ?œ$ßUé¶{ýh¹žÕî8=ûÀÜÙîrçÙz¯K¶m¶û¶{`¶¿tjMÙj½Ð6mÛm;žm˜_¥ù/[ˆ &ÃKºÌÆ ƒ›á~>âp\{éÀôYhKÿãmöë5ñ?ÂÏC™Ü)b7™&:/Pæ­xUfC=vëym»Û·t͘e7”ÏÄNhÙj&"eR¸ÂššÓ1»¨å™ÿ&½ÊûÒf¶ð'ð;L¯¢´(¶ZË&Šª•ß·VÛ  ™t&±¶ŸþžIÈdéïþ‡æ9ëœå9B¾"ÅÔÂ%/΄ºmßmdgÀ\Ï{x&YštÖIHOe†&ýIté|€jH îL)àŒíÀ¥anÏõ‹º–ì4†mt)1ÚKmÈê‹7_‹®ßíA0[ ;‰™˜ª$"ºÃŒhÿéi ¼¹[?H”db4Õ°}:Ä‚—:\)Ä2Ñœ·–²#¬¨Ö*`ðqû™wUf ›XÇÔ©@} ÎÖu½5äVL4BÃÂ7©¤3C‚N’ƒcª‚˜W•8È °ÅÔ•¥I~^ÊÅP&o,Ó€ãsY«VËÕH‘€¨{Ê%"çG€ÊZ ë°E7nÅPóJšÊ6ê—ÄÜ@­$¶.ÔrÍ ÛÅ›,íj[&ñ€SÆ1õyµT)Õ£¡%?9‰È@r±Ó ÝöŠ·ˆf^•îœ#/˜P—&ÛîSf`»Ó.¡–¾ßq¾pçz\D'U·^ü®Þ’Á¼À^p_#„N$]e h﨩WÊ%T/ b¢&nýV“tÜÅšvñjz#¿\kbœÏ—Üy¾ycH²7í‹q:;~Ž‹L2µëæäDáY¦ø.o7cHЦê1“’¥»ä’À&ìªõªy!_ 0Œe{з4Í7Ú -¾Æ×‡¬©”ÓÊÐð+édXxÜl&å³ÏO6ÉRˆ¯Œ±v%™àÏÈ’ÆÇ Ìù,XÄtÐ "ƒŸ?K0²¹UwŒE½1¯œq¨‘#¢áÔÑ«ôRtÑ\˜ D¿ -Péj½QbÔ -§çg—Xi -Ün¬@SFh´a7³ì–uPµ’P‰q3UÏØ ;Ø2‰žúÑWªu1Êô ß¶Áiƒå éJ3 `¹›ñnÕž[•©››À3â¥l¢Å$$ Ì1ô×-Š@ ëBc‹„íòuהޅ>‰è -~í«”ý¥ÈËD_—¯íb½RIå§œŽ}é÷IZ<™.ÿ ˆŠ¿°þ™y±QM·Ê<ùÍMV‰œ\¤/ɸ­ÏÝG­×Ätj·ÈÎÝ›6WþîÝÊw´Ë¶Ð¦ÏiSì[ ç¸ÝÝÿ‚øà 1C‹6z‡G·×)7"ª`e{§¡ÂGbþÍgü¶ðL¦y®QàìóµÙìöµ°)á’½€”»m¶”s^'iš+ÂÂ)Ù„{Ô¶ÆÒ&ˆb Œ óØh¼u¶T)$x™ÎÉë†óè–ÿ]“é@Ÿä¯ö„Dï2bÌWË<ð¬Ù,o1 „¡ÃÿŒI‡¼Ê» ™˜‹¸HHyõ{æH@ {…œý’çÑ=ž¢.¬+è[v|sûí-z)ÅWm’ÌT-æù³ñ·1å%Äò²Å SŸ—tݽ£··@.d1v€–.'@°Î¹Ýz=dFXQ­Uà}ŒwúÕÈë@1£€Š•`Idýàt:@tè+Ó¡ý±¶ÖHŸó Õ$\Œn–\^¤›H±ººav€á<üãxhW.#ô±…ÃÇëÓ~­Hf,rg=&¿6fÅšy¹ˆÀéxn¶± ©Ê'Õ:ÀÇa jÑJfº™gÖt“TmBÍ 3ˆŽEW™ó§Bmgºù°\ItÉø°œÚË>5œúGP -´IŒÔX ØÏÆ=âƒ^§€¼Nö¼N y½{/ÁÎ%t*Ѹâæ8Šç@k¨dÆ—%‡rJ¡ÂÖL²L‘Ä,Í5&_ªF¬à™¦ê@¾sϦª¹’ŒÍi“°xl mª¦–Ž'9Ú«Í_“‘a2ów"&´†v>½L•<ɬIFþ%%.&[f+Õç1K0L–õ¸áà` M^O!a÷˜u`p/º¾'âI1Òyr³Ö³kápˆA˜_ôõg,ý³Þ^¥(¡*ÜZ ]$kÔ~!›™ƒ•—ñXwwÄŒ£”€ô‡o -¢Ï[|êÌœ¦JÁ²œqCõpSbéIÇ‚‚™:ד2i4SKgq…ÀA ˜—@ ’`¿ÒÁ8a¦;Êüy•íáL0M£…­N ˆûï#6J;g#€ÔLãðÀ‰ûÈC&ì"çï¡Oƒ9‹ñ1´Ç@`H–·ùô‡3µ5Ü0”hÓ¶6íáRh,oKÍÎ4B¼M0õe’rðîÓsþ›p»7а}í~ô윢l{ è–+DmŒzªì'¼Cˆfãªn]k#ݪ¯X»Åt†]`€pÛ*/nÇhM€ÚÔD’® Ïpb.­p žÈ;)]êYÝV{I%…^[í³Å–Zïàðdî$+LÀ_BQ'xxC\;a™œØ.{~F`ÆöÅ¢`]X%¨ µ¦áWps.²ØëÓ}:OCîë˜Â+a˜VèãV™¶„Úƒ­ä…ßƤx’ê–Ðß%ÜI™oÇíØt‡ ‘Ù¶QÿO²mñ¹v5N·Ò‘ª#~åqf±!t3xÓ½àKª*ßÇ òëJU¶1–^ðzX×áu¦D¢îÊ̶2Åè¶×_;ÅÉ+1L'¸p×dŠnœO×E1üÝ;zÀeÖ}š?øuø³7Po:'õçƒöød_w|øGR¬½Lã9›“/äê§lwQù~zÖΔsÇ?r­îÑ—~[ïÎ'×û‹SY––ü—š»˜ Že¡XDªühªO×JGË|8:¡¹oV{8>üÉýÛ:½^”÷2µÓÉc«­ËG«ÜûÑiA\}{¯ŠbÍÊm*„ܲ)xåÞ5›@ÚÄ#,Þ—‹JSí$x_aô>{rŒ;šx»r"øw˜iugû÷Ç*ƒw<ÔöÏÅ.yÊM”‡fiºÿh«=×3ÐyíÝ>’‡Ú}í“ÎótÞY¾­¬Ks¢ ‹Âãþ¨WÎûor_)·Rãžl-6d/SœþgP±çþÇ}u®'«lá+ÈE{£ J”®cï&j,`%zÿg1ƒ€&ÙûÛgŸ_çÏȬYå]=§°æ‰íÊ*&#ò3Kô/º="œËÉ‘„”ןM>Ýg6;_WFÈ“–ÂÀ¯*¤L)@$”,ÞmÈÀsà Z$Ñ·”KÆjiñ•ORj=ã[Ò:,iqõ(|ø=5m×™š·×æ«¢P“´æêÈß3úƒWHö[c 怚ä1îÉ_U¤uw,®ÖT<«í¼º"j!ÌMhº1ßÛòÒÍãNå«åªHÁ¹Š±¹c¼>Äêá|ç㈠ÊQé.Û:?ò­ÒùòÝ´;d8\Ñ;¹®¬š9Uñüà•s¯ž˜°y‰PÞ¸'ì„U$ˆŽP$,ì™Ñ½¯n‘u:öê9ùåס¶8q*• ü¸D¢ˆaÇìD hjŒ'ØÖ ôŒX¬È-Ô¥Á,”€ï—Tc#‡Ë1ÅŽTH€þÞ¨0MynD(Iµóiî ¨/å/:;k7xzèÞû VÜvnx?ähdÊüäf³PÅ/ßz‡¡ÂäI(÷7?i‹(t…>­AÒÈ "QH¾~œsM Ö¶YEJ á\a}ðÚvU3M‘¥-PÑjœYìDP)>9„„õy¾¶Ÿ=ßZö<ÀB [ rd_I(¾(=äÚÒÏÞ}./qµ Jš¿H¶û%®‚r§W¼–p ¾·žNî~"M“Ë.ßöξné||£5ܦ×Û(‹*šÝ@Š}¿/¬° V -[ ŽÚ>h„>œ˜@/qk’˜^äÀó±kwš»[ˆäÀ™ÖA½EóÛ}zξ|iP±gî”@^¶C¾9)‰æ-ÃO8¶(Æ€dÒ*Pö äà2æ›—VÒ¾EÄPÇàÃŽ;Í2>ì-g~Æûl¾*~Ò´úá&Jç!G¨ ?sPÉ9O¥þ3§^¾}pÎo¤.  ÅIùa>Tºx}¸†S©á7æë«Ì3;(@—oÀi-a“ø€¥XêDN>HÊNºgáPÞzQÚÌ%S¬’¡â:R°™ˆ£¡TPhâo&3d’b¼¾‡ÈRù^h™5±~È–aÞñºt®²@ÔÎÃÏwB‰ÄFÜE¶î€ã9ðW®\F¼,H¹uÔÏ®ý§Ž¸sƒ%%á*\ÁEMòaîŠÓ ˜Îþ‹ãEŽ!ù»¿Øò'.AàÓ•£y{ó× Ã/¿Æ_„ÅÀUvZe‡Êw°Ð…!å'°°­‰+› âAE±á°ÙÐBìÞjxcʳXÜjãHRlî0w#Ôà‡…ör(_loÝzcgpÄä€ÄO©b&¤ñÌHg"QkìãþŸBý·ñ‚ ïaÓì³o¿Ái¨‹ÿU"—˜æ"ÄP&²ƒTõzBf`Kýo·£_ˆouÔO…ó/Z0ék gÃ`øOè•zY™¼ö3Š+ƒ.F,¦™ôµÛG=0¹H®ënëâj4æäÙæèíÌ1N¤Îµß×çØî¢uv±Û…)*éÑ`~µ—à›Ýãn¶-ÂÍuüF\^IU‚Ó a¼àŸR•kŽNS˜`·Ü޼•F»C¦BlÇlt¢ìïoãÁ!,¡ƒ<‹´âID{#)Lui’‹öleLJ¥ ccNaoéªcus°š»-³UöϾ1è%áYtm¼ñ†^0)Á´žü›åäVcRú—Ëɬ&æÔgEhÔ0mŠç_Íht§>|ã[âhco(émìT4}ÐönÌù¨WÐkãd³úÿÚ,èÓÊ3¹îSÅ7I(?N…:7 uïûÃD©@Ò?àäÜEPØç(5&½¬é6Ø, àLøùÏ"ÝÙ–[|µ­B¸Cvâà´ùm©Àxæ(*d%@AØRúMÿ^{þÿ®è¢*6Þ¤Wln;ƒSä\8Šw™ÍB‰VèÓØ,'ˆD!ùz϶î‚Î}ÍÞ'² ª[D’!Ó® -ä~°_;ójŸœc7>«•¹4ß1‘kð%ÍŸ'$±èÆÍ(ºwåb1²Ø‰ e(—Ê,&¾…‰S±¶± L›Ÿhìxðb‰•vú]¼CP^wqGa°:ÖÒŠ;¨º”Ç H0/FÏÑåi|°ºaPÅRƒFèÃì×e&%ºûzhÞönLI³OòBU§c˜M²FÁÑ‚ò,L¼ñÉS‡ò×MãYÀÿ俨|Û'½ìVC!ÕéÅøz¨¦óVX|ñÞiaCÎOÎQ7”ç¸ô2,‡Œa£H :³ÍŸ”O·|ž¦2vûú’x Û´'"•Án¬ÜG“„îÝ@L0YÍÓ\þ 4 M´ñ%‡C”ælo†¯caÄu<ç³%¹ .Ö]Ô¹¬ÀÆ'¤Z±èÍ•ßE¼ ¬ÉÂꯆʙ׵¦eVþú+Œt^‘úÅÐO¦ÝÐ¥ÂÞìû~øöWD]™e«w$ÙÅ(¸õ¥ü•©èÙ•ÙH¨Œ)’o¦”÷Âîòtëk…ùEî/è%¯K<Èä©^A¬ˆü]lPî ×.äN®!ŒÍÇ8™;:¦C“x»‡oFÿt•~ðA òS¥¨gåXd¥m9eÁ¦Gn—¤5'{qõèIA`'«ÿ¡¼J×Õ–èälƉˆÎˆÆ‡`Œ&j¶Š" CŸÓ÷Ç}ö[à„icrÿô—–½«jW­ZµŠRÊuõ†ìºØ k©‚–kÎbqª•gd¡¢¹•÷.²bÔ±œes2IeFâ=Ë}Ę!2Ÿò™[ê7Ìýñ€R­0dì,¹äü÷ý<uWw¡¤\"’ç’[Q Ger]G6NèYÇ€‰¼¥Š]´5[¥Fs¶JλµëR¼Nåb+êü*¼$_¸:ÏiÓ 0±ÏKæûhNf5}R]¤&…¿½0‰PØ© ¨½øéK·2ïÔJñ^n®#åÌ} æËfX -•¢d ªU­tËù2ã,—í2ñ`Ñ·]#óOË•KœÃ?áe•*õøظÚuC%¡úk˜~'é¿‘c 4þا¥Ü騵,º66 ::e™bèÚß,6•u«œþ//Œ¯ÕÐVJ…xx.婯Åè§Ã²‡ÏÖ®¬£{?û«Aê¾±IÏTýö `s05ç¡j½è{e«³»ä±}vû‹-2ÐYo[‰Å^¿.%<‘^-èû²ÄÈćŒð24f l°.öíåòÝæˆWÇöª`EŽ  søÊ'ÃÁP6­ú Šî—T+^IRÜËÝŠ,–5Ÿ»÷2þc®,âFtH”{)†JcŽMñ¿½8‡œ@Çl‚;;“¼ì£Âi¸²SgT‘3äµ³J@ž:ð¢õ -[6_t󨬍^ -2 ÝmwÄf-„WdYû°EÞúÆ\c{ÊLñâ[Áï,Û”Ì#ª;[ø`[ôáTW}4éhk#î•ÒÊ:Díž/Ž—#x‰l2¿t–ÉvkŸÅƦÖ}„ýíæº0[¤n-‰£:£šÀØÌ­SlðrASúL¤uޱKçÊMhÃÆ5xfoÏy¾ò|÷ɢ̆Üü³±ç¯ûÎnáMõ‰É}8%R6†¹#9[ÚO*;¡½¡<Å$_¾¸´ûCìDŽÀ‘„Lf^ç •½7Ì -–]blð{©Æ{k£€ò5¼¹r{.oÖŽŠ´9ùN@§liQÙ©6w‡p‡¾ZOÅ 3 韩W Ó1×­´ÝƒæÊOlâ¹gÐÛÏ,KÎäÏ'~_ÂYz<Ø{@àÓO€)6©ç( u™‡·œŒ`y'T»õÚ‚ø/G -ª¤V¢H¼ôF/ÙÌ]µV]¼‰^{Ãò’ÅNrL7E`ù79w ô˲0êìÌt"x"º€å‡+˜¹3êÊéþ ó¯¤zõÒ‡$ÀÞWÑÎê–AÊD{˜á&–r凓Õ=OÞbÔz—ˆò&ÌÀÞ°EVØ¡ñÀOjÚsÒŽÇŒÝRÑDJdÆKÃ’–6 Q5ó,ªEPãÚõ;à›É‹¢Àå|¸]‘±8wÿ:|U .fåÅÝ‘§ñÔb?FÖ‚®‹õg7”(—r -á.6nòð§³Ö‡Â÷‚”2n;±8N¬˜—ÆbEößÝœš}ñ:¶ ?ÐZÇ:~Ýb¬Oq½ wÌ]nE.áåë¾K”n³üч¥á…Ÿ´ckn“U¹)rtXŠ Åè Q¡²Ñºm/ Á[œ^=¢¯2¿/ÎNá1 ¦*ÕjÔx˜€ó‡ÄIH/ ôVàûê¶×³ô³LN•˜ñ뢄ƒ Îÿ z­·åŽaÙ÷/m³!³ 2JWš¡”QêØ,*©!æÖÄpæ~“½8_lWRý$檾4ŽÎ)Ž6ÂĦÁß•Þi„åª?õw°.A¿Ló«=’>Ðv2/ò#3gý•‰d§º EŒ®ËÕþ§‘':ï>6بd¡.íaTu½ßEðû±e3ƒdïŸifÊ1é#3žxÚ¡&õ`*>õÖSöo9²ß‰®ü™~Ý|ß/åþc¥”»_mö#8JØÍðN?üšáÇðö¶'ãB½Uëù×ÞÞ‚ØD¨íØâŸCõAæ…ÀÁ;æz+‘÷ˆÂˈtB¤Ô,Ä2ë÷’”ÉÄŒY’Ò…z<²ÊÇýñtnaš‘t]$ -=ÄŒP®©^@»Îõ˜·ëܼ¯_ù!²ZÊfØ1Å-ÓŽñ¿å+ÿ¤à RõxÂó N=-Í”TÅðмɇ1ülM d²ªbvmºý¾þ]4wbðòdÚc.IÐkŽó ¿M¤/ÙžxûHš/ÌÿËÙàÐvWïäÐö :¹@q;X=ðv»ó Ï? ¤x þ·mõœ—皪L€¯À{ÌŠ‰ ŽYÇ+€=–r x¬/o±\[w’üñÜz˜™d•D«R­âe¹•Wâ@ÕÜ}sê6WL|§ã7*~'Z/ÜžÎø3›‚­—Âî¤Ú3òîòê›ìT ´r‚ô/ì-Ëç•3Xô”~0qëõ’­-%uîþ{5…>ú/•y^’øãÛ£0¸1~/ï’í-Á–¸%¸f]’vªÀ/.ǧcÿÒèéj7+ÅLRÃê}²Ôf½µþ¿ð*­@ì6»µð=¸­ÞzÑÝ­ÿùÝtmiέæÂêÿñ·–š4‹ûPu-nñ _[a³ªõwç}vC 3i ®Pß¹Tî [¦÷X]™ÕsÿNÛGú'mZn)ð‹¹T™ÿ»ÞÜs .»“uÉËgýUÕ a¿÷“úU­óW±ñÒ[ýÕO³ÏS¹ü5“=¹<@ÁÏ×ÔPx̆wÙËÈ™´À ¦4·¢nEMžVåC¡iØŽë€~å.³(Øç_ä16×.”J±0µ–µ“wEÈð,Šdº‹ Dª>$³•pù #RÍþ4oŠ ‰g:RžÚÄÙ}ÑÞJÏ© : R I·"[ȃã?æ¯[`È·ý‰C¾jŸ‚ö4‚œýyrúv4LÜ -4 ¢ÅY£ð ׯçV”D=ŽBBaÃŽ¡\}ÒùdR4ñ£H-0P³" -&!?×\@>ŒÉAÈÐ@þ «ÁëЄ,È_Ž÷!„Ü—x%^Ò'˜qGSÞ4˜•3ò Ä2âµSk!¡‘j¥g©Ծ˩} (†‹áÂ>SC&\Ìà ˜Ê ÛQ~VÃÚÑlÆþ]úÿJ5à:ZåªI²VUY:äIÕ¼LgåKlË -1§6àÁý²Ç›j,äTU#OžÔI9ˆ¢$°XqÞÊk¾*toíÓM ~nUŒ1\sÇtå qOjÈž%ŒÅï Ç.72pÅ“•mc,ÞKÚ7à_öV¨gÕ’âPøJ6êhh»Ÿ/B²¡1ÑßV|†Ð¯ï|Ñë°*4‚ý!3èB˜‘ž1´–÷Ø?O‡Š -µÀ*V´O"y3h‘lF¹®1”ðô‘ä²^5„Ú˜ auXŠ2ù¬ 4bwp‚'mLPfSk«P Ë–…RÎPyÚ1„²E¬cj^lHvf -4äÍ-h­yA¼ã Y‘±ž×[uðÑ!äP‚¹Õ -z7oÃåÒAÃáãô¤Bi°SákËuL Ùy$Ê8B†ÐIfÖ2ƒsàîäØX×ô%Ú·ë–1´YðgDZbE’‡©BÁ½hoÕ~¾ £ÆPb0B™TÃjcŽq˜¨QM#(ˆ}†ß•MtØÕúš5ƒ®Q¶ikZë¡ð>ØmhôduXÑÅNñtàwë áó¾ÝºBéñžÑ@‡$Z)ÅqêÕA-°h+îÏQ"Ÿ!¬Þ+ÇÍÚ«Ò“…t‚Öu%h¼²é üá~¼`mWñ¨)´Â„Ä‹@Œ´Sj{ŒtЋԮ°£¨!´‹J;Shg] n¨~ÕuTB»i ­Ä]]7TËB{þ®Ó -r²ŒíåÜI»‰G;tèKOŒ¡µÒúZz݆Я…­ª@åúòªë>qp•M ã :™äch±¼ &uP@Q°3¼ï65°m0ñ¡)¦±—¡ÈKÐÔ±,b‹¥– *WÎÄYŸ•.!®{ƒîã^ô<йHwQ[iH‚—hêS¡rÝ¿Æj'×wÕ€fE½éÚ ½A¥ ¢K…0ê˜^ƒû’emzh¢4ýÉÈýÑèt.3r­ÝÑ€2}*Lý½+4úðë ¶N¹sMxæ³RÑu}ai)CÑwññOŸJy´ éÍ+4r/o£N -añÒFí.^åø²ä7•‚Þ’?¼‘6œ‚*}É–(ZùîòöKY®d‹£»´«Oðh¥Õ™Iïž\YÍ–æ««Ðáû”pÌ¥õËþGµØ«¼ÝÇßH·tÞ\ÚiñuUúb1Aòa÷¢Æ^Óãgô|—Žõa†v¿ #éÝb=GÃa¾º»ßH‹[Ê\: Õb¯ò¯½»n.¸‰þé÷d­J_,Ê;Iš®]ÿÜ\šl>ßX,”„ùê‰óæÒú9‘4•&œ'~úÆb)„ïÒ© —:ªäþ.]è3„¡ÔQ•¾X IaÊt5’J¶­ôô˜øš„Hø”±uO™Uç­¿gUîeîÒÌšéµòÁr²¯Ëm0\¶;1?ä¼€7¶‘ J®Ó3+P l”² l`w©Ù²Ú|°íÁ]zá.`£A5È´4yS°a®tÃvºƒÆ“¦¤w)ƒäuØIFƒçº¬Æ8L÷/ʸ̱IAA5H„L¡(ƒz«&ЈtãÑ–çKÅj ƒ±)4Æ'ÜÊÚ‡ŸOÖb]¥EàûeÏÐäy†mdzyaì ºr:í*t°®¨SuS\ o=îÌè` %<_æP3h꾫Ì&Ј]žf&ÐÁÔ*wã¬#bª«2;˜@Acú‘¹´¥B¯Ý…ÆÀµ®9TîH´®ä¥¾Ç›ÿÖjyÓAýí›|‰Ð?Øy¹÷ßݲ¥Òª©ùh= ®kîN¬®K±/:~ß'ãl¿€¹2hI6 ~µ¬ºŒôÑ>Yðçú(ø½`¢wËJ¸£)ÿÖR£ 5ìAò¼X»ž¼lÂB´BÖ%&€ÿl€°Ò[^¼wÀµ…¾žÎÓpžîŸ´³ÊjÒCËaVäɽêܺme%[ªŸƒƒfÏ×îìqä|p»¦`ùaXÇûœŽïê FThîp”oÿéÈ$ ß¾*ot(Í‘ñí‘ì!ßgÈ÷?Ö«}+m¥‹?AB „›@­Ê9@‚ -bEPÂkå³r}ÿo&÷™Ì-À?Y]-ݳo¿Ë†Ÿ'8ÐQЉQÃÍ쇯éÕ„Þa7Ýþ̆ ˜|’TÐX¡û§sãUH®~xóS"¤ùÁé#„ø|ð_D„ú õ 5?8Êó‹÷Å L³èËjYl—¼`BËþ©ê“­Aê»$‡Ý¬²ÈÁúîëÚùéæ4ÈɿֳÎ&Ð,Œzôq%…RîQƒ}·þÓe6HÝ„‘Âé÷²qË”{RY^]ûþ7žÍt¯nïfÜÞ%¨¨|Ö “}­C&n"*‹Ÿ”ÒÎ#¤Ò¨ä”V-Ýv¥YJÆM y‰ l9ʬ\Œ±ª2:q{ú„e×Çs¬ ?ó OAÿž»0Dö<?}[_‚Kþ¬ç_ÕÈ(|c°¶x* j èt-a¯M¹›sJ/­éÁjWmŠäÛ¡$™ ÃÝ,b¤QÜ5qɧ¡NâJƼ°gã.÷'Zʘ›³8¶ö&ƒD§þ@ek & ¦þ›ë„Ýh8Ћùïßò‹Ý}.Ù\Kvé¨EæÞ>ÓeσycŒÄrŠÈH ž C¨ÇòÉDò?1ÔTí½I6®Y¤:FDÅ–—;¶0 Ì×ü1HþyO’%ð -Á?1Ý“ót°Y)¿ì‚”ÀôÉI-"4­üæf#”4tT­üÑw €#æü؆Žëù}?_^ÉÎÏvH³ç'[†exÌëõø`9v^R¨`ùSvL=]Ç -§ì˜v\ÇlY¶-<\·ò/ÊLg_%’ˆ;.Ô†/Dæ Zíªg›ŒÊß-OãEå®ÈÆüؽé) -eÇjÃ|Lw`6q,²cw'¿˜MïO…>µ–)ÉB‰ tÜT‰p€‹%Bò– Ì[”ˆ©¦¾poÃYdg$ª <ß -¬ -ô–ö¦§ý].fú¾ˆÕDc þT÷e;ÙþÞ‰î¢åa’”1¾_«údk°éÃO@°‚Z&Û5Uãñ¤Ø)Q @ró#à8²L"Ї™ìñÓÔ§U?»Ö\Žj:hùW‘ñ­¥xy`óŒÁçõÁŽ!æ_•õP0ùâ'e~:‹)-ä²8¼YEe›%qò2€[<æ@\mo1ˆk±«Õž¤y¤HÛ&É ßmâ¹F'N¥G-VJĨÙHr˜£¢m:xßn¸Óðï†ù™ ^ïHÌÿÑFüa¥^i*‘VÇá§OÁôG—erUɸY•[ ¶îj{ž”tµÖ0ëÂ¥½E/· &aLc¼æo`Üš>£1¯¥Ä#¯1>*(­)Þv§P{¼jóºãQÁ\KÒ¬t.h¥WØ1¿™æ>@±ÒZõ>åà…¿T«*„ÁlX2;æmVéVA¸²',­t<^VSE÷œ¬È Y©ŠµçO÷ÜŽT.y4,b#@éöÌÓ»C ´å«$ 4†ïe;¡£mrTÄËVŒÞüIß_ü;&ê$aÜAN¸Ž»uÕÁ ŠlîU;ª´Á‹M£,Ûƒ•wGsòð.ZWT¬ÈÇ,˜¨%ŒèQã`‡$E’…ã"ÎÅ‹ƒ^“VEÐ=û® ¥|v°zöITDMÝG‚YTá¬@~ñ¾H`~þ]–œÜŸh)c~¶¬gq2 ßùÓÈ Ü±÷EŠ'„î‡×Ê»¿¤Væâ7 LF| üÑÜ á$ 6ÎC1T± sJiÒy<£P7{IæÓ£è픆÷Ç0š‡}0·0Œd4ÒŽqã„f4×)aqŽg4Åa4ðŠµƒ¿ÚU'Î[w2d/€ 7énÁü·übwæbSÙ¥¬üPù•L ýp)Jg.¡$|±¢Ô?Z©údkèÌL× ÊaFŒfé$ B°Pî\ÂÒ, ¦‰Ò Ä>ÙL×U}<¦>‚`ØîâqlkO" Æ­ŽÉÔbdzm¥`6Ó 9€a8KŽ£Ãʧ/5¯ƒjþŽéïIZH¾ø 厽øê€F†{ÎÅ'®†³È4"²cBj8‹Ì…§/ÇSø{05‚†W1‡åïEU Ä9Âßû£8Zè°å¡qPOÓBIæÃðA@ ÙZh£ÒUÃs‚Ô­…žSšnj˜©% -J¹›±?¼êA^s­ååeÞ/^fþfz€Dë÷a<:§;JÛ’,€nìMtlƒó[ÆøÁh{ˆëX¨ãrºò¼ ”$“œMÌ¥DVMÕÞ›üȱS2ïJòò­&.Kó-&Kæ+àoC ¹úzV%É’íúroŸé2ˆ£g¬o$ó­:‹)-QpAT2–tqyu͘ït¯ HMÐ=Ì(]Mè. à O,IÏ«ªvnøú"²Äó­VüìŠN¾2×’´YæÜä¹Á(£PNó^ˆVÙw½X)Q7Ö‡—\p7äËÂQ±lnû¥uñúôzÑxlî$ù[nW»Ñ7Ïåiùgc©Ök¹öC#ºhß5ªé»Ÿ—çgñ=ø“Ñ¿SêÍá¸ùRP*‘† „*¾.:ŠB=KÊŒèÛËïÕ>ªbÓMÔ;O—û_ß¶ÑÁ¨çÇtTS@ìöHô²U)ÕŸFÞz店•|®<Üo6Åä0«Ý¼þë= -ïJçÙÍþWI¥>šoæS]Ê£_£±‹~rByt4–dìY_­‘æJ£?jDï©*×óìoçQèaüÏþ{–ô?Z¼‹ùÜûRð=úG}íU.â÷Q yôË›$'Õ§ÿyÏ¢ žÐ4gYê£ùfç_o¦Üd¤V¹ø½ñ‹òèhÊxÔˆ}¥> -ØÒ¸>Rj½lÉ?þtg´GûŒö~ï ¼GMEFjÕõû&:Õü׌û'ëw›}ªœúV #ðËü¯Té?ߥKŸ;Ý4“f æQѹ+ƒÐU³î*A¶ñó+ ú×£(×]8xmý’„lúÝåÕî`ý¦Û’²[¯mE±Ë+þÙë÷uúxÙ$P}¾b`)¡*ÆMÊI©¾a¦EèýbeM?¨†½øžÆÒ§%í/²lŸàc§D+¥›=ÐýP}¢Ü¶ \íÑÑIrˆ>ÝEBõ Ù1¤OŸ¨ÐB²ñ\ô0îþz)YWÒáûd >êóÜEàLóêC´ê¯ØI×6K åˆzW†kú|{8^0®ÑÇ•Ê5:Î5AÛL\WÔÃÀ…ÕÇ×þÙ·vƒl–ŸuŒZÑM¶ÚÆ WÿGçgT_jÒƒ÷q°_é) -‹úx9º4I2ïF'N½?A"4»*É®kÑËÆi¾]€/lAæ•ô¬ç_•õ{%%ã&ÿPÆ”Y1=¿xcòž!¤Mnï\Ñ›Æî»]FÊv°ˆ‰˜5ó/ÊLg,ƒ=4±£×ôc‡œ½fJ…ɾÖáí'øxœ\ü$Ou^X³L’ïŽóòJcyyî4 ܆O”Eûq«fîÕŒû±~§Î";øBn¿â¾×G9yy¹9U qÆ–dwdßHÙ‚GG Â| ’í¢NÖBŸï‹ “BÔ -ç²¼:ã5«œ¨H¨)'ëØ«¬c¯¥ÄãÉ:†1Z¸"‹™¾ÿÔÝUÖù•§ºo‰kÃçpÆ‘Œ«]eïáÊæd*Ø)!ªÂlapQéá…è UóÃaçÚpmaÛç-<öZìcÏôÎ’lÛ²k™ÁÁ P1zœëÕ›4Ñ=žLs’dÖ+[5U{oŠœad„ýn‰`Ÿß¡Îò0Ôvhaä w.^A•\œ§}ä¹q‘ïצ‹´tŸ×tÖ&_ó}†·É¬S©0Ù®#!X'` ?VMèt=çÇ&;‡‡Ï…Büµâ½.ÁŽQû´K+ÇôÉéRcU œW'Xì(DR’äPI©údk„OÉÒJ4)!8 ¤ä$ÎôîÓ\DX)W’Å:Kh±«eþÇïnˆ6Üdrìwltž í˜+E,þŸõjÛJ\ ¢_ÀG„K€!Dn£Âñ6 0èFpd†¥ÄDþÿT%!I7©N#¾´,îꮪ]{—[ ¦íU»íƒGجåÛ,¨MUΡsT†Ñ.‡VŒ†(øÇ:Äcž–O~ðiÞ^9kû×gaoÓ¾w V@ýÞrA¯²Xé¼Ë>&ºJÉVk|rB§ÄTËRPAïŒT¸×(­Z#ƒ(SkÉ.ŠEŸSÚ(1_Ååv•Ô&\$‘Gß›DvXÊg'¬ÈŒYÆ·T.Þ9³\<î%a)³ ^Î-tã¢W ›¡Ëìá°wlj¶–E»p¿¬¶ÃZPE®tS ygwݧƒ•îÐJWa%Oš¸À¦æÅítÔ,¸Î tÂ1»hó›j8q×·$LŒ§r‚Ä~“ÍÍžT'û“aïÂ8J§ÖÍëÍ•'t«º¥ŽºÜd<ÌHT2"®e .ZzO¼ÖËkxØžâ N9(˜0XEbfI˜N„:|ᧀ ßù6è1Ü61ß½­DÆF1_~ -«/‰#)yŽOàlÊÀ Üø*©Û0ll§a+o‚+±Ë#1-)0Öjæ&Ï“§{øN2'’ØhÑB°@/ÄTÖß¹=¶öEj˜ù´‹LåÕëB$“©¯êmS´‰°Üþä’‰ÒÅi™×Ef™Ù1êw/ ÆÃ(8¡'Q$!Éøž¬“òœ·°ãT½½IÓô½`èlÍýþ«¬·w±@£Šc(óA;Á¡€ƒýR}nl“¯ß›M%"ÃÚøn³Ú_‡¥aÁ£USNùÜ1IC KBŒ2j¯ -ÿo×ÕWMÂË[Þk†ðK€ýE’†õ»†ìV†Q‚Û½¿ 9(ŒòY4ì{4ü¸Ç|ËÒPàÆQŵíiˆ( ?²½Ú8Br(„ŠY8[ÐÐC±zw±-­½ V½-·‚íŸ0˜c ÿI‚ñofç>挣+Û«ohì-ˆöº{Û¨Äs—{i›PüÞÈt2et(°’ì -¬¤VÈ÷$.;©¨yðÓq°ŸÓ£D$q‹mncÍ1 çNÜ’·ª½ñä&ï½§‹\iGß›DÁÎ -LáO_¼ÂïL_3‡À¿ºæ‘Y)¢!°éBãhßõÄãHI4úm¡ÜþTÞØoùN¨˜ßàñKœJú¨Ðu±ŸÉA¼Á)6…·JÂn›ûàÖëØ‹+cr;®tÏ>c¯¹ÉxØ“Þ+ Mª¤tÝCW+ÙKÁ(Ht„œ1|4m­d­á£ù9ûY¡zó´\±r½´Ì(ð…Täš^ 5ÀÈ{ÀVßG“5ìä òs².v¿¬¶ÃÔ¬ôJÞ«ÿ§ÝùSÓ÷ĪI8¢:‰¡–C]B‚m(–ŸX‡¡¡èm&x%_GXQÖz‚“‡@qðØ{ôõlØÎN:ÀÃ(˜•ì¼;T´þC]É~+>(ÙV¹®ÀSÃOE›>_ãq¢d~ë-E;½¬áñS/vÊq·œ*waçÓЈZ®ï"›9¼Üf>aøY+&á[3}ÇÜÿ^Š*eo -îœíÏ“¹Ã›¥aDUˆ÷çÀä¦aGëÆr¤g]Ì ëÍþv‰ »±Xoñ߯ࠥÁ-4’ðÂšÑÆsž škü9¿"ƒªùÖð7ô)’ð‡-]Å}A÷Ï«W¾ Oªó‚š±éÄŠE.½Goñ™ûRT1&lz@…È ¹F9wNÝ…ŒÅ/g…/,ûÖ{ú¥Ñ†Y¢ƒ6µQß Š|aÂ&'©½ipÐEí$É À³w¤oUNî³×LU'åUxë“SˆtíöiFþÎâþê—ËÙ|õËÿeˆÌ¢ endstream endobj 195 0 obj <>stream -H‰ìWév¢Ì}#"¢ 8DÄ)ƨhÔÄ8D3i¢qxÿ{ -PI:þºog­þ‘?¬’Â:Ã>çì]ÙÆ)brÍÄC€dųtˆQrË9Ò{LQdsÎOñ£ -;„Fç£:¼ë¼ò³ 6Ìsó Ë=ÌÌJo“°1Üò™$yN"|it…뙣£$èJª‘N¤¥5Œ+³Z&ZˆÊåJëµ’›˜*Ó²M52í z:+Ã#ÞsÌKj}¤Àa‘gž“ZMF)VÃŒ3Ücð‚¢ú“%Ý6è,(%h:öäÑ¢•§f¶YžæF}ØŠ<×ë -VÕÀ)ÙFŒ#wV¤T.#z7ç3gÄ6.c¾ ³”cñ;ÖÍÙ/ Nà™·uäE½}’oE=%¦2³úÎx·+J+™d'¬Y£™ö¼C Ï©qVûH+ª?ðáÌb@™¬æ+Ï_SRC¦X»€Sd=­6…¨&³^väÞÚChaøÙxH‰j;ÈbH(ø ©ìÕÙ£¯‰vî¬hípæ%Ÿá;PrkÅr¹$/&Ó°Ù·z6“–„-Rås™Ÿ¥ÝÑQ·@ôåÆÀ99Gí ¤¬èìjŸò6ïØ G‹ØÞÈxHVWš­½\ºêWÑkH_U}Û}Ü£aK~4Ôäí¦¸IÃàðOÎIF_¾äaÝã¨Ù}9;…Ø›Ü8NôŸK óŽÜØù¬Ú•´j—?q¼=Ô“ aXmjojÑ úRôê$ [‰1jgÂñS£à]q!’Sª,†Gv -£w* 6qÇ%FéÅ^¾qùq¿¿qùq).ž°œ³ÁÏžf4Ž”uOáéPЏ“M€Ì2íÌúôþ…j[Ù‚´t¸ Ví0{x²‰™Üáñ½L„奅Í#ÿ@¥® gxzü‚Á1âѦ;±ÁïØ G‹Ž½„Җεä`ÁéÐÝo…Ûùk°¼BÚóòl£U//G¢ÚYéÆã˜xnr;lŒ½B›4º‹uš4XqÖã`-æ2m¸ó¬ao3¢jo›ú‚½juÃXæ"x«5íkª0‰ç/üâxg /xUw#ÝçÝ ÐÇ)úsòŸÅÁâÈ(JR)âžB«ùÌÁW=@ÊۋЬ8èOžôEê@îÎOÖk´±áÔ†ÇmŸ[m?xð&µ}W JºØm%°A"ºq– G‹{{©{­µ =úÓ #(0…N·ä »›¼‡Fo,ùÐ(·é=Lõ¸ CTK¾ÀÏ6FßM¤Ë󳉔€c’¯Ñ¢Ebiºa:=ÃdR´ej”¿_Üz*bï™ï Ù×ÇœmÖkÉ|ÄÉbœô¿D÷¨4Ëh¸8ãÞư£ñ½ ¸Þ@)è—ü“ûÆåŸÃ…« "‘ÏI¬†þב Ìä·´ö%$ šùk$#-?"·ÆÐÿG2§õËß%ÿ¿‚Kú5 Ã-_‘Iè?Yˆ`¯ð¦;kË]I5Ò©¢¥5Œ+³Z&Zp™Í•Ök%71U¦e›jdÚôtV†G¼÷F=ºÛôšÔ›cŽþd”g:@"J š{ɺ·—§f¶Yžæˆ½¬î -VÕRKä“Èôn:?Hä˜_;—r,~ç^ ÀŠÙ/ ®25oëÈ‹zû$o™Ù }g<ÈÛŽ¥•L²Ö¬QLûæ˜ëÔŠ8«t²÷b836Ä€2!YÍW¬‰SþZ YDO«M(S™Ý°ÞÚChaœyò§$7 ÿÐÿ"’Œašùb’Á“hæ‹Ifßû_Kþ߸|† ;)x3.œNÓ8·WsŽï 1ÏÛýÕ£!ºM£/7ç^ûG¼³«¬"ÓöaÃÉC=ј…oöÅÒ±­dò|¬æÀ"Dzš>äڙΜÂ(È›üpʼna"{Î=öšyD©|Ù¥*×Ýà¾ô>Z°’Ñ›£\„Ÿßm¥K½AjÀK)#”Ô&âïN{u2SÑ%0<“¸sùôÑ¡{Ý+´b•å+–…sgúoÏÎ ž‡•ý…ÉÇîå[w>v'£›Ï·Íxöc£ N+£¨XuZrB€þì>±ƒGØb¹N3*"·htI¤ü?k«P>›À™¥Äpí> »g¯°ž?ïžê³†”;í*A¤äí[Ã0÷p—ÔñÙ(– $U®½À;2‹Ft7ï¾;Ì_À4Cãñ®ø>®¥&2_©_'`&ÿ§#R$׉×a5·ŽP|5ò\}ÿîθ´,3ʉ„ŒDûüpbMÚH±¦GÖîå‡ÇEx¹_Q–‡Ð6Òû  ‹Üc±m`á0¿-¢á¡A]Î%1¼¶ÏàË®éTÀt^…´õ+Üãä¾ Ü†’ ¾z:Ρ‘µ`2š)Q©†0YÁ( -'E-*àçÆi)Ûß•Jºz‚ÕÅó”àt?ß2ž›õYÌU0>(x ŸhÁý%P_;"ÏMk¹yÄteÜùRTÛÄċϹ0ý¥#ÒëGŽÀ]ÌçÊVyýÈ•£#h°™Ÿ:Â~äæŸ+tä—ÞÒô¯?y3¾‹ýðóÓs@ñŒ4>¨À¥ouœÉÓH³ ­!}Uåg›9…†¥{¯LÎâ‰dØÀR`Âl<§H71î¿¡Øq¢Wže:»úhãˆÅ[FF›<C–á*}r&\ãU‹ˆunʘ5{ø]ŸˆÕº—DÐЂx%ߓû{%ÖÆÒUÇî–Ô¢ýÉJaTOè=•_,=9ªÀý¤¨¿&àœ{¬Ïˆ‹ÍW¶O¬Ì(×üÒ%½{µvkÌQ³0 Š»cÀ>é÷©£ÿAÄ;]ù‘Œß&?—ñ¿%âáþòg2þ·D¼ËŸÈøßñPÉ&ãKÄÈŸÊxÜ‹ ’ ë$÷ªØ«³GoíÜ©¡µÃ™—|†ï@ È­Ëmä’¼˜À¸î[=›IKÂøE•Ïe~”vGGÝÁ-Žsrâ^{1BnzIoóØÉêJ³µ—K?ý*zãõ>¢o»{4lɆš¼=À÷ ix–^rÿc¿Ê¶SU‚èøh‰¨€5**"ΉsÔÄÄ1f0qþÿ[Ý@<¹ñÞœåZyÈ h讪]U{×>7 ?s5ùا3N‹ž_㌋¾è½åçú#½i¦âÉŽl«¾…D1vc>@…h…ƒ…%ë€Ñ¶\É š„›ŸdLó„.`Õåßqù¸€Ý¿¸ü@\rs -k&¼€¤(’/Í€sžz6q_+¶¾œ½³-#ž•˜Ù(vÙb¯ŸéaÀ…b†3…b”…áà@ÒRÑ4‚š§É/""È Ù>;ïBmÉWépâ%ŒÌõ”‹ÎŽ_WQÀòV²†Ý¨ã¥¶v˼µ04mTÇyÇu깺+<áY¦ý–¶fͺ6ÌÎ]tú:ÓìúÜ=N×›wlväOÝØü‚í½Åw‡ýßäf1 ÿ!ÿ©lÌ…öB&ï%ûpÉT̲VS¶Õ³i®ß½hóˆ'‚dމ®!ÒVM¸Œ{£¥ ‹öD¶)¢FsP⎵@ÓvRâjåÄŸçEféÆîì9Û›T„Ÿ¼Ÿmwò ©¿»O™ht‡²üpÝÃtí'@‰vÔ -š!ua:’/`Û¾ìH iÞ€É"ËG¹š1hw3º/ÂF¶ÒŽ8ë…äS±xW?„Ä¡KeýkBür¦×à³Z/Hórdà õïkúnƒfé—‡ z þâòãp Vú^ï_“ à‚hæÄ$=Ñ̉IÆEcšùo$#/¾I2cÖŒù9É\Šì/.ßÅåÛä—è* - [¡¨Ð´TD/²ÛLµ½„䊑Z4’3ҵ̭^*P fùõZMŒô¤¯¸èIï¤'jѸ÷ƒz$¥[7‹ÔìcŽöbXÊ3*±ª[?†B„Úº@ò›M–UŒ4Ɉ„_ؼúÙ¡R–|Ë žŠUÃ@ÁÈÀ~ç9Ì/zȧî$:Dï -¡d‹Vg—Õ—ôn7Òà†J"'EXå=Ò@IÀckMÜ8D×x`Eþ²£‚¾õæ-ô&øôÖÐfY@cS‡+ïðŽŽK®“"ï,m Æ8$^UÇÇ•ÈHŠ×wÀüòùZxlû¯áîÕ°ÍJÞ·Òá»ÇÌL´ÄÁrKÙPóÊÞÏE“§[#vpŠÈ—o“‡'—.—%j¹ŒO!E³gÒ np.òßa\Ì·ÖÄ …ÎbÙ"Ä®W >fYq|¾ŠÛ[5”¾Ê_!¬’!©U ò“œ/)1Š˜;9ôÇ%‚éW‰]#ب.¿Ì‰|›ª µÊªÈÏѽb㶘íorÎ:Ö5âäÐ}½Æm¥.¨‚Ä’ÞãBú°Õ ”Ú‘Òͪ+c@ª(Õ*4ç¹0>|/ !x=åɸ- m@ϼ Ž¤øò¥)«Õà—†ðG ¹Ü ªüÒ”¤X܉ lË~ý œtä=¶Ïæ•;òÉ#»:ÿ×Oö\ù(º}Çö¹ôòÇ>ÉüŸ}üB¼Ü¨#J|ÿãReß-¬f­o½kÞRÍÂÊÚ>hÜÉć]á¸õÃóRì´©& Ê G·#Y©ALòé<½3¼ùBAâv“×T¬L­aá†w,èùD×ËM€D8IÄ®KúøZ2½Þ¾ÈM1½ç3Oʶmœsj,Üö»+Æ BGñFnxü¾“Nצ™ ÕguV}åÀ’L&¸I©N¤Š9wt×&B[¯7hzîéXH¢ë^lk/Z‰ËLºÅÄÞS1¡}†ÅO ¸QòÊ| -¡gt›¾¨,n¥¤r¥S·¼³Í$ ™•Añ‘‹rѤîÌ ·„OÎdžÂ¥eº™~¿!øi·ç÷¸â%nÜyޣєh$Ãc &?ÂCRË ¾sÜá„S®Æ ¯ûtÆiÑóëÁaœ¹è½åçú#½i¦âÉŽœ.us<$…D1În¹ÏFÓu¢ÖÖ¶´Å¢'lø³A¨ùI¾ô7Ox˜¬ºüû/.?°ú—ˆKnNauDâð)Í€crƒžMÜ׊­/gïlˈgåf6Š]¶ÂçgzxK1ÙB1ÊÂp0 i¨ìm7O“_8…HÔ³á<á³ó.Ô–|•÷'^ÂÈ\¯Aeǯ«( y+¥ßåMºts3%ÛK ÏqBpTæ­…!Öü`¹QgÔ©sänè®ð„i™ö[Úžµy`vž¾Î4û†>wÓõæ›ùS76¿`kð µ豯UÊwÈФ_.´2yï>Ǹd*fY«)ÛêÙ4×ï^´yÄA2ǃÄÖ)ª&\Æ=Š1Z -º`Md{ hhª!îX³^FMÛM‰«•ž™¥»³çloR~¢/Ûîä1RwŸ2Ñèe q¶Q¼€jtíÿ‡ý*ÝNUi¢OàC8€P ÁYAÑCÔ¨‰Ç!3˜è‰úþ_u7(f:÷»÷d­üÈÐÐ]U»j×. -ĉ†ÇŽhaÚ“¤ùTÁ¶CÕ•hyÁ…$×´ÆÝ~ÁäœekÝ„»^h6•pï›oõ˜Kªæ=Ñ„$üÇ‚HïµÖ)-«"ˆÀ‘€Í ;}½ÒÐ.ßü(þàòípkÃPèÐdÀÜf¾¸Éxh›ùâ&ãa(P_ÙdÔÅê¿É¤äà.ÿ¾ù.ÉßIXm¥J”apíGå¶›æyGBr•D3™(YF³pežz/`˜Í–_^´ìÔÔù‹¶©‡f9ŸÌDáîiGZ¸-»H÷<à䬽öL¢ æ3_Ÿ— ÎÛæé,ëuDuO¶Š¨–ÀH"—Dæv³Ç½DÈ‚‡±Õs9Áo#¶lœÊT™š7uD¼–ÄíƒzÐêéù/î¶pÝv­NKÇ»a_Íט¤‹Ç¨5êf~|ÿJ'Û£yaãMVë7ÖÄ w®²¥âfg-HÒhÄ¡°þ‹Ð6ùÁå_ãÂٸРZtp_4'ðXy¢Öºkì"G¢£%ËZ>·©«kò‡³@âÐè“)p!s ƒçûÂ.Òó´Ò¹ã=iåÑørPï§‹¢|ˆÇ¤Ê´£É¥ÅÌ‹ÃM‰RO0ÛÛàT¹<ðœ‚Æ«Ê”²+ùV·Æk öéÕB²Ü߀u àÚ•š–Ëz /À½÷ýº†Æé™B‰ÇX<¦Rˆ ,òXÃ=S:‹H•†eaÞ,¼>tø4ª8C$ûx[$ô'iŠÁ‘’Ü -gÈ¡àËñ±¼¶ô‹ -«H¡L…õ‹@³íÞ±‹Ke ¾\'y1[ 7á~¬­³ÐZ"1^çÒA…­-¢Äjs`A·Ú³xï—3Re³M‘—¾«%F`Èì<³ç×(ƒ„wzÜy·¨Ûéc‚Òma!»f1øÜ¯øe!düÃ-XÀ%k¡Ñ®¥» ¹»• ¸ -4÷»U\w1LMݨBË®Zk÷üæÒ`Wøne·$ *ôa*— -–ÌÓ@"ÏÊŠq(AF¬²É²#›BE´ÈBN_å -zš b4<D ß‚õ¢ìRÉ®ÇkÚ¶x’ØŠÞñîÈPf¾„Cð]c…yS&ä!Í'£Ð‡IUFV’XŸ ”C¡HñÌÒÕDµ)Z}nÔbCüÐÌÉ|MøÜø<µùƒ!º\Ù|h®JØ6ø‡°¢ -ýé“Í#÷Þ'€Ëÿ›YQijõ­wu†· ¢Qy‘ô«aˆSüº˜¥ëlb’¨©!6ð…þ GQ^=Pô; ož Ð&çU r™Ë×ø®æ '„*A®É¢ùç#Žg’«<Ùü"Í‚U!2Žw>9çlô ]Ë¥ª/,óñŒbÜßd%±ThбE“ÅÑ -dðÙ0õÌô0ÿe’…_ñ¤®/BóŽ*Ô~=ràóX'›\Œ›~Î¥¥n€´µˆ¸‰–£ËéŒ5V¿Í'Uy‹ôèyTšûÔÝAæP SÀÁòSµ•ÅÔ–É®ÊÉø¼qá.~¶6ÚÆó%Õù«“_$ŸwÓ»wTC[uÉ SßìåDØÍÎäK‘8NêåÆÞR“Å^GœF@Úö lŠ“ <•—æ-³iç2zO5Îz’ß=©BvÃ^öP9¯ô‡Á!úM‚E€ƒ`Œ¸ -3 ž*ì¸À0LuÍps&&AÃÈ0q÷¡´ó0QÜ}(íHÄþ–¸ûPÚ¶ü{¢ûCÉ™ÿ¿‰nù—o‰Kä—o‰‹ˆ'ž„ÓË!ê§çÒûyT_tÛÌKÃÁô!¿Lø¸Ÿùq+Ÿx…Ѭ —›—µ:Q|‘ ‹'¶¯4h¯ ¶î‚{pÚ‡é qÍj–ªqz¢s^ba\ì÷ÅÁ¬!a4d¾Øí•³ËË1î~å -÷QÀ&ªñ´ªnð„ê6i/L넱{Ä™v°ê£®O{’4Ÿª1Øv¨º&´¼`ŠB’kZãn¿`ò Î²ŠµnÂÝ_08Ø+*ÞiþD[ºTÊ¿hþb­âˆÌ#‰„Õ!‡C9š+eÑ¿ÉðôKjñìX™¢ºâ³­Ø7¸î°TbÌøÖËNNte¹ ¥ ‚I»^°  -‡:Ù–=Fç@缘ÖQÏøp²\x‹7¿“€ÆÚ£1†)bwШ -.˜¨š™¶ˆ¸< )Z_M ^+l÷ÉØ§E+¿Œ,NŒz¡=´Ì¥ïÆhµ¯ƒÅi8wy¨b ì-?¿•Ÿ5Ds ‘±IÓ}?kRA¤Ë;„Æçã:4_}jR åóýàò qI>mpùޏÌÅÏ›?îÈûfüeÍßÃöÿÅÍNÁíÿ‹›?àB_|©(ûÁå\8r§­¹Ì §à¡ï×NàEå‰Zë®±‹‰Ž–,hùܦÈêšüá,84ú®é4¿Úœï˺H,œ¨•ÆŠ;Þ“V/ñ~º(Ê7xLª4â1dêÙ1ôbM“áhÇ&)ܣ㻘-A¹„ß.™’%Å‹çÑT -qE[#`#p^µè¾Nòó…ïVjZ.ýŠ„qð7ûu £6%;{˜£½ûÀ‡Ñ¬à$Ç‘À¼ÜCÛÃi“:öÀúèPIafJ ØR;H|Kƒ obÚ:4ëá- -¼Î >TD‹,œ’Žƒ׿÷¯#äÒŸ]Å圅œ.rr©p%ò¤l oýŠOaÏ/Û‡Ò…¢J‡d¡ë=Ý¿«›Ø]{kãúÑÇ ©[+ýÞ¸¿¼³E-1R¡Øõ¸Ãã‹:nLÚ±0Á¿½¨+'-®7»‡)øbÈ< àÓ+Ê%¹jÈåÀF†Ìºéx³âÊVÎ&äé/xÌ’ÜxÊt -ê*gJ·ò•¨°Þ@^¼âËÙ¨’gÇe¹T½Êƒ„’ãà_.9VÙÎN©¡óÉH=0ˆóû¤èïÒ"H…£É¢±Âé,“dz%š¿>H½ÏAá-˜¥«Õi}áúgý…H»®²kƉ¬ù«¥È§†ðÄó™)ñbÊdžè!óåsC “>"ìË'¦ˆÆg|›f<4‡ç7—Fв¹ ‡q¸¶ è?ç hz9ÈAí„È€6XÄu'ïÝX»ø -"Uh½¿@htÏ–è 1@{%:^¾é;Å#å‚Þñ»dŽjÇÉæ{#×ñÀÇ -k úÀ!”ï­÷?ö«t-q`‰>š`€²BÙ•Ý YÞÿVuf¼Ž3^¿ëÿäƒ,ÝÕuªêœC8R}Âѹ‚/Á+5ެC†5”©—‚±”¢ßÓ¢PÈ…h¢‰Â¡)· šü…]èáp4ýE ç ÉY.VRè*†ð…i)Qiد‡*‹¶Ó‰œÞf“OÙ¤Ø9$“?,¬Ô¢ºMXs`õ[Á㈴–3jM§¾ÈÆ­.¨®ÃbÁdP™‹NaÜ2r[|c¿an+/õ–þÔ%ô.ç+ÈúyYæÆ½{›ª[8‹‹¬3±ñŽÅyª2Íf˹+ØÊ¥+¯&‹gÛ”°Æ€7…›<æ-³jeS™^D/÷ăí´ÜÉ ˜Î/ë4Õ/ -Sôâ"^÷¬),€Kü%…¶âÈ<—«à URÌûšê3ŠŠìò!MõEJ郚ê3ŠÊÃ|Të~FéBÆl­+ýàò-qùƒùÁåÿ„‹€ô·É±xDOÀe²Éè6ÔuãpZ¸ŒæÆ"~G>;x}•W7@ß“røÀËZm/"px|íâ}¿-Ù{MˆvãßÓrL“Ì5+éß÷‹ßég›Ãûü`Ò )˜ïôŠz¹ÛÊ—›«lîþFp—þMD|®¬ðÑ ¤õ1y$ -£:O<œ?"qÔ¶õDq:Š€òT/#tü‹Üa\”gL>tÌ5­a§Ÿ3ƒqβòUtIn~ApðTà¾ù?$ä}ŠÑÅJ¨¶Ž8"I)‰Óù]R+ìŠVV©`;ùš¸{ò·­T>òL–Ùf½¡Ù¼R+¶ö²7wŽúl‘0©±KmædÛ/¨ùû‰oíÕÚ‘š»œmñœyóㇰuýs™`áaPJ¦³4l4*!LTÍŒNÃ!Ô›ôׯ"gVØÎ£¾+‹Sc¾ èõ\ëÒ2¾±~Úºð{˜üˆÏv~!ñããÝûaЍÔ$ž•æ•Ci#ËÃÚ°NE ækìÁ¦A&|¾\¾!.Çë\þ—ØÒ1qÄpÚãJZŠBº¿ ѺäõïÞÇÂ_'~qI÷ÏÜsµáë;£P;.Îm–CÔàÞ&#®bWRRônFWô×VŽÛI(l>Z’óJ¾BR¸ ©ƒ§eec ]üjœvj¸Dm—Ž&‘û”÷”‘÷ ®ƒ1ô²xO:íÖë/ï½>ߘeŸ|]¼3Ä“Q…§Ì>mX|¸ŠjË£IíS\Ûe/°-Åú3àLÀ]öN›û‹Ú[›J…»«¼4>-V‘+ÂâIò09X1P$M%¨mdFa6¥(˜GFuþz°`Ï4Ð_´®ýR(ÑÓ@$w÷Xav3äa×›·ÝTõ î1)yÈõ²ôÞNžLIÎ -Hs½^Tñ¤~} Œ«Eì(öÚ“ûÒç ÛÒ\Aè\25v¢fMñV: ¼Û¶pߨ˜òМ§ b†P;©b]¾\3šÂv (›Ô¸IòV+Ãá~t©<Œ©ŠÁ.*òõ$Z%_ÀËFAŸËÈû\2#›ücp¹O’fWrã+K"Њӛë}Ɇ”_Ÿ†¨†À:`Î DÞ‡"†N®¿’†eJ)½d ¹Õxò êÝЦ)¹’÷!:9òò~(Am­½¼ˆ|¹Io‚é…]ÈŒÄQ¿w‰-µ%—ZR•i ¹ ˆVà…Ùs$)®Â!ñÖÿîûu ÕvD -ùgܶ6ð[:iÉ„qÆÕ/ì!µÖÑɯ¯iA7†ÕnÎXý–P4â¹ËýÔji/ &R3›¶AØ‹¸8Kؘ‡…•úB¦ }0avÛØTEWŸ¶š¿> PàOŸðŽ®B+¹@Õ@óËo GE-d§º’ØþÚIÍéê!¾;Ÿá£]ï„Ih+ÙCdE…™øK -;lÅÑ6ð4ÐËÕŒ(f0 Ù?Ð)ìògBý4z˜ê§éÔÃ|€P?-spòÿQèìÉœ)AHø+φŒü1×öÏæa>êÚ>ãÙHW~ȵ}Ƴ‘]>äÚφ#ZþÁåÛáòÓ/ß—Û«¬"¦R„Îä~=ìèàh;Èém6ù”MŠC²ËÙ¹­¨.F v‘ʃÇi-gÔš*N}‘Ãt ¢¢Äáy@ùÁ¡šòp¿-þ²x1Øq˜›ÅÊK½¥?u‰ÑóÀ•uÍ—ÑéÜg“ï+ š!fcK%ÙÌÄÆöƒ.O ÍlæPGuûà]À¹Ðd‰;Û㟘¡o -7)6:x,.Ì[fÕʦ2½ˆ^î‰npÐi/û›Ìùüé.¡¿$ÿƒG%"2ªt„‚0আ+woÇ –ÞÌ{³\òžÐI__µôÈÌÏZfæh2Œã” -¾¿(-ÓmN¶ý -À˜[»CÛzl»Ÿ‡¡;fýÓ–Yš¤½6‚=ÉÊËÕ8¢!»Ð ù°C#䆩˜ã½ð¡AI¢)0Çu™8 <õzqYÊéw››©ëŽà´d¬ÃûªÖ°Ê»ú…F9ÛWÿ[H!ºò^úMà}úôÓw "¶–¹Iù”:ÕmÅô_·=½>’~pù–¸Ñmù?:Ì< g_<Ì@'Û;~á0Ù ã싇ÙvòÿË0ƒ¸pù†¸4:Ou˜Æñ˜_ç0aÂìvü:‡éaùuÓÃ8óoæãú—Å%òŒ¿ì¶WÃ~»i¤¥(¤û C¢uõ˜ ^Ói™[\‘U$tŠßœ¹¥{Ã×'z›@§çv[Ë!²Ÿx›Xªè_vù†ÑTRônFWô×VÜIÈï±)*óÂ6é0z !ÙGÙ(E»§.PÛ%£IúÐ ôþÞ£2Ú+ˆì ÆA½,ÞN;A…õú `ú<~a`Ž}òuñÎOFžòú´aiðÙ*ª-&}geC0Àµ]Ðêög*AšVÄþ bsQ{kSit×Î*zÞ¨àÈ £ºhX¦#+ -€¥©µÌ(̦aTòWšó4ªá_•…J¾É»ä‚7< å9©;vªâ´Œ©Š~_3CVøYJ¾~ôš2ã!2.™¤³ºTxãòÅ›¥ÉñW¦Â¢ä ô˜ÉŸ›RhÆÇ`«q¶º2QBް"ü¿µO}¢™°}qÈü‡ý*]J^ ¢OÀCÙ ì{pa5  È.¢(Èòþ·g²õÖWZåÿ¤H2dzútŸsza#JD=ÐåÕ5&8ý™ôŠ„ŒY*‡*‹ÆÍi#vzS•5ÉÚ -ñam‰Öñ¸‘õ;ô–¨ÙOqöP^b«s¡ìAýÂ}Hð\ PcöPÒÛ/r’MÔ¶Ÿ‚­íÑTÉx&)<1¨»·ó—šW5ù÷™A‰ÚŸñc&FD¡ ~çmÓÙT·S:]Á¦ç_`:>UC£X“ÔÝÏЯ3Y‚–ë‰~ë÷Õ|«5té<%fá@n¯7ëuXž#:Ž¢ÀÙ¡ËWcR#‡årwIàYÍ\T¡¬†,;ƒ|à%š‚ö§9¶(Ñ:ÒX uÌÍ!&äNHWm'ŽÂ<`þÓ@uÝ8öXvži\ýÅ5 %×G;»‚¦¼ßðôC”92Ðh—,ô7hù¡…þF+ù¼…þF}òy ýÏÚ•"õ¶Ö« šË¨1h¥iÁŒ–ºŒÕã±¢š¯KwòÕqÄœ.­×™ôHÎn49ë›tùB<%Â%Ø9S/†‘€»5pJ¦ -Ôõ¤{3Nùx¿œwªÉ“4aâ׿ÍÞ×@å/ôþbþRšAO¡î¯'AWãÔÛç°Í¯L¨GéIܶT?•IF[AgY”IÓo™n 7’]+÷·ý©´!z^’Õx·É»n^=EF &W lƒÌzé¬ +½õñ¸üJ\˜?\~%.,’ü˜)%ŸÉÉT6—´Æ‹‚¸­¹§Å^wô\XÄ\1¤g®õZØ AÔ'Rö.áQ›"ºp á±í¡fâÅvbÝy }AðhûùM ê×éÓýb³üÍÎ=Wº“‡ÐàJ«]Âc¦ÐÛ=äŒ1³3 ÛÆÌÒpÇ/VŽªA}Úôç£opÛd£Ú7…#ðÙ^Ø>ç-nH…ŽSuuÐêHr F©ªRnÅìú‚ÀA§‚ôvdäú¾r)ÿ þlYóQØõáB‚³LŸ§ÈÿjŒ-ZžumRfr˜½y›jJ /uÛå]5=ýô¬‹n ÏpàˆKÕ¦^ hä@±úy€½¥ƒý¸sûE2Íp%íM|~ÝB¿¼Ç;ÁBcʶV¦Ñ5_8H(ägàiƒÑB.Tÿ5t–i|ê§õš·Ê¢QX03¾*i=U^8Çù†vïUFÁÜí¾_p4x^:ðügœ©n5q±Ã4DY~'ƒÊ ª›@½^^œŒ’;átþáò q‰¿Ç÷"ãÐeæ‡EF籟i¸ç™£éõ;E&ò‡Ë¯Ä…ÿÃåWâàyg ”m:Ý'{ NîT™}´‘f:!回ä[.ɵÜx˜EcmI\Œ&¹«v´@<Ìo…¬X¹©3¼Û‡©ja¹‘PF\¦¾ Œ2+*µ2“ÞäÎì7ž¢W«¼–»Õñ+ÜùÔ>uw%PãöÜDC Û`’³Ñ±ƒ´€ -Ô%ݲfnÁæëtfƤ\Ý ÌSžH÷µ´É–KeÛáüU›sÙ™p-"[ózá÷¦|PÆÑQŠÞq²°¨Õ9ñ^„<-†P êõÒÛLf€‹5cþ™¡³˜3æÏ‘ìbê§È 1¿9cþ™1¸üJ\à˜_¢(c.bɧŸ€Êæ’–µ/ˆÛš{ZìuGÏ…EÌCìk½6C‚îO4¸Œ»„GmŠèÂum7/¶ëˆ-û;¯޶Ÿ ª~>Ý/6ËßìÜs¥;©q > ´Ú%<º½ÝCÎ]:ð5Ó Ñ.ÃmÜœjªA}jñç£opÛd£Ú7…‘)í…m3”°¸!:NÕÕA«#É¥ªJ¹³ó€ƒ2ç‚wäãùŸ½Þ¬×ayŽ’À³Êa­²ì<Ó¸ú‹kV(´û4 -3h"t¿A·ì.ÿˆ |v¤¤ ¿Ugß40½i#ZS!:ÐÜŠÑ>ÅA¿Í¬|“¦õç¡ê #õ©;çÝPiߨÑÊ0›†ý¨ ZÉZù†v¦’  ‚œ ¾îŽ·Ý2;§¯U -†»F í— .•L¼ä~ÆgÁLÕÂzwkOÇ`Y„ŽooN^ø¯òÈ8RB¿4+p—£ø¬˜¦!½j†{,¢A”¸®\ -pyL´sÀÄyÄÉ”'ä!¼J(ÛÒÊ'ßžïJ°Ø7Sô´ãØtLJõÚ@%Õ:¿Ôy̶­¹éMœ}Z2ižŽoivÞ©fÍŽðQqJ€jÇBîE ô¢£ pËÄYßv#(Â,…ÚGÀ·R”WD{b › 츉w¨ØHÑ„Q„bW(¾(ݱ¨vªÆ3WÈòTnµ=ÝB„IO·ˆ ëYÙAšö¥üÁG³Ëc$7ݪÉO?ŸQH&2öO=òÒþF?%S( 9ÛÊrl$r—Õûȇÿ¶Ö%Á.ÝÆÍCΪFAª}þdlÿ³Ü5ì=‘‚¼¹,í·5¯j”îÖ×9-ñÛ*;wEs€þtóBXäEîJ&Š€ã‹« 4§WC*AÉU®P[\²óÑLáÇî¨ÊW®Tž¾~– £k<”s: {UñV‚oÖ”…þk*Š£ÆnÜès³üjK¤|<îTn:ì*)bâê”ÆÞDwò¥¹°*J¼æyʨ®9ÎÇ 3\ò"\Ò+rï`ËL¯„™€€Žôšdõ¾ÿË@ÂïGೆ²Í¼…r8áÿi ÌQ —ãPr»¯rR¬}™¶bk¹_bNI'‹:«/¿sœ˜Ó%ý5^‚ûåÃE£ÍGßYYB(AUòo§—ðrëØ;Ê7}ž¾*ã—÷8¤:L±1‘(÷ Ú’I9Ã]ÖTn¯|Vaº¡oª÷æt•:xá ÷sÞ™©ˆGüÍÜcS¹³Td¿¸B¾ e¥B`úŠÉÓøÛ°QøÐ6:HÃ8êžÜŒnTѱy5%Áå7]Leú’b‚ÂTˆÔ5 -‰i`F¨ÅCˆ/>0Aƒ†ïËNÀJ!`;ºÍ}èÿð·—ó—yèˆßã£äçNê{|”ƒüÜI}rŸ;©ïñ· /9\¶|óNb2ÃÕ†º‰BI`lÑò¬k“ -4“ëÄìÍÛTSJxH7"O„wÕôôÓ³F¸åèá2œÍ—ª-P½D¼wΉ1æÊh9ýwn¿H¦®ä£½‰ÏÀ¯{C8H£Ù;w‚…ÆdkU0Ѹ¦m0M< dbÔ`t„”{™Ò eŸ9äi½æ­²hÌÌèW%­§Ê ç8ßÐî½ÿ±_Ë©+Mð ü`’Éä €&˜ Â×&p‰ðþßìJBÂÅñ¹U6u]õñG -»³Ó3Ý=Åi¤Ðw&B»‘øWÁ}B§Š4鳪ÁIKÁga`{~‹°Sª¯nVÅ<{£fP¾”×{Âåâ’|Ùœpù¸|$McaŠ£ÈÕdàsÙèËD3™(iRS¹V+eOô,«¯V¹ìTÍ3펚Ά br2#Â%b¸5ТԖEž–¾8V¤‰u8i ùÞ~…À¼£–gY¥ÈÆ€æ/¢Zc‰5Lmµ ^.ã¹ë¹®zVð v=Põ,6Žý¨™˜xrp¤Þ]!ëÌ›'Ä“±Dz~K/Î(åAÜô´KÇ{oMר¤K_Ìx„vðÍù·â¸`ùÿ“ø3x^dÀ{£¦ë3k̸Š:Ñ^t³)EêúÓ¯…4×ó›C\–¸œÂ˜2Ô ˜,˜¤ÀoP^¬‹ÜÜ+l@ÍÁóÎɹÙ/!ÇÁÁ~]îÀ~cå!^y—:ÒkŸàg‘¯C·Úˆ¾® únðh£ÑÜhäãw;˜"$MO}ÖNAìD©éÇgŽÚåLÊb9£Tv’ñ_ _ô¥º ÖB&?¤Ê€;w;TÏTòøñâ€ý0=!nÒOv茊Q³@†ÏNã1+æfý@ü -`e„_O¸üB\JKÏ·EôËÌ‘E÷>ÈÌ‘EæŒ"2sd‘ÁSÈÌW¦Œœpù¸ü€Y>áòó¸ü„Yþ¿ÅExÿl™£[døwŽÍK«K‘lèš[p°$¦…µnáoÚ®L †×àØÁ3C Ë%uß“-„(LöãÊmÔ•mòrLê祘´êTÀ'ÿ饸 -ß•QÈ#×­¤ƒX3¹†ÿÉØîò£r«WÇKÔwéh…4mãÞƒ -<Ð!®ó:}Fq‹Ô €ïr`@{LÌï ”<0"øgÙ‹Fú½Ì]N«Ó ÏZ>[_äÞƒ3cí^Û¥Èx{˜_Ìúä«9‚´9@íŸ þÐs‡6åï|ÈÉã][Œ(wÙÐ4œ Ö •I5Æä¶ˆÂº¿-_€ã¢Dr¶­šðhäƒJž]ÛŽ^i¾¤\³»N…{ç1oÌ_ïw뀤¡+ùpÏSÞÝ­Ù.¥öÊ>¼Åó{¯' Y-ýi‰ýÈ=9g©3Š}Xðʧ»pÊ 1=(˜÷ðƒ1¸]_\Þv•“ùC]–(´´ç -ò”ÎñÓê@AEGã~³Á>Šå|L=MȘK–ž¦,MBjÙWÄ_Ä¡,„ø­Ç<|±è²Ó÷¢—·é˜”ÑK°Ë]ÁwÉO|ÝÝh“–lžâ½Zõ.ûN9ÖS!C*€õlÍÎÑÇ eWcAx¯ñv†©IäI¡qóÉh䊾qìÕAÉס[mD_W}7x´Ñèn4òñ»L³\Õ¦BܸØgí$ôÁN”š~|ê¨]Τ,†•düÃ}©.¨u§É©2àÎÝUÁ3•<~Çhïü˜Û™~˜®7é'C£f2ÌAF-bÖËÍúøÀÊ¿žpù}¸à‘ë„ËïÃ%×xø³øÃ.ûb|ñ'ëpG’1üãŠ?™_ì£OüçÂÅŸdlOŒ!þ •¤Ž+þø,¤wŽ*þ$c»£Wüç“Qà™YîâÈd†}²™ôc’öc@gG&³û2üN¸üB\Î3Ô!2#³˜5ËÌÎ(g–9™™º=2™¹uÿGÈŒ?áò+qaøð»Â}"3â`-Ï|<2;£Ï|<2ÛéþQÉl_÷ˆÌŸ³é`£‡ì:fØeç™ç˜¡ÆvžùxŽôeç™Ì1¿|ždN¸ük\„7üËñ0b4`7 ÿαYcI¢uõ˜ ]ÓiL¸a-„[ø‹¶+¨á58vðÌè€a’ºïÉnl&ûq eâ. ¦rLê祘´êT฽dÌò•øpê^·RÔ#¬ÿÉØîbq¹Õ«ÃY`‰ú.MÒñ&áî=¨À";¯ÓÜ"5(à{Ðv‰ù=’F!ã{ÑH¿—¹Ëi5Bôp™7´|¸¾È½gÆþÚ-¼¶‹a LŸÙÝ+;5@!xïò‚›ñÑøÅ›ÊÜá2ùè»Ë«ɘ%‰Caëb*…hß=(÷’æýR¯Ã~Q|Œ"TV§†WìáM7P4ÿ$™<¢6hÜ÷$È_¼Kp³ŽùÓ×)8ÿC318„-Ó¹½Nã{1L®E£U “–L~BéVº’£‹p/Aq•Ô{¤¬Z%¡cÓþÇ~•m¥®Ñ/à# d$ ƒ$ 2 ((¨L¢ ÿª»“Eç®u]Ë_¢t:]Õµ«ví…‹^E³»^Å´€bìÍPv/t+lú0À?­YâÔSµ÷µËÐê‹îb¯BÆÜä@b„ÊîÄ"9[õVŸùª<„Nk™7ÞäéX Ö·„}ù$Ñ0öª/æûÛÈÛ5¯¤ÅÚ5'&U«@°*Ò÷Ï_?ÖÃH•ÌGe!‘’4\Å.Ø*¤o| -ÄCð5ü©_–RD/û é÷Õ–b4òÑèûÿ9ûÜOÓP«‡U¦`nAó‰døÀÃ(Çrñ ùŒâ‡±$úöƒnIŒ+ÛÍFÚžQœ¤‰> MñŽbs ÍCSì$Zƒÿç}*ÂkTD‰ `Ó¬L4Ìq‡”ŽÎŽ«3ÄÉIô2"§Ñ¸X£ ÜÕCãÎÁ¼ÀÝžµ7Õ‡7 b©âˆì"™‰)³IVàKEŽÜ+%’4öÔB˜ØjÚáär”u3¿5Ýñü,×:—†Ë -½rˆ,û"¶œ¿ÛŠÜ}2Š'»^ˆù®IÆCf™ï›d<ôa–ù¾IU¥=Ë|Ã$“¡m#ù–C8Ç «˜Û[æBn¦ä’®4‹·êå9u4š-o6¹¬¡æÙ«¶šMûb!•IÀ#Ò{ã&IŽº @b çÂ\w®™‚ÞìUßÛ; šmõ|š¥lünD]“ª2BCr¡Áì§  ¬¸€*g£h5j!Ô?IÔI]²î¼›Ç]ÂѼgŠO‰]W3¹Ód7â­ê£*m _[6£zRzÓ,H¬ŸC³¸¥A‚ÕzEá—ß¾RôÃe‹¨Q+_zk¦Ù…Ä_\~$.Ñ_\~$.è€Óv8» 1ÍJöØžü¨\íý3­?m ‘Õº7eåòúz$ ö÷gD·ñ½q\Y­+[ôbŒ¬Œw)ë•QÇœÍYc¡Ñá­«7‚`ñ8vwM†ÒòŠÖ¸ÓÔGÝ^QeeF×µjWv÷«¾ÒÒ=Yý¿ÍŸ¯¶C a° Ä©$˜s“AAˆºçX޷ͰÓMúñ9ØÑ3Z|Íf['OT𥠲˯&wT`üà$ÖºËM’ ÁÛ"XA1±ê)¢qP‚=á#{'¹N¼¦$Ó…_ÿŠÒ&‹× q+9hŒbùîKc2Ù¨p ,5c´¢!íNeÈco•ÃwŽº+ÅI‹Va} +õb{ «KïDiµï‚š9»v× öΟE©}u""5q²[ÃDyq/Á8ªHòeá—üi¯÷—ˆKÊ Éo&3éì_Èì¬Ãõ endstream endobj 196 0 obj <>stream -H‰ìWév¢Ü} ¢2ŠDœãèÖ7:; Ýv±­ò„‘{ oè®z‰ã: -Q8RŽß°jzý"}6 žš/ð[ÐÏjÂAÇwã*Fí˜//Þ06ÉCFný—¿—ø>K£=_”I’çdÁìfÁƒ¹ c…U£LQ©Ç•œ¥×3C³T š"Nç·[5=55¶Ù25ÿl ñ” —P&.àÔmi4WGpŒ¥…kƒ´Ëq‘V½æçÝÒó–Y˜¥  @£'XY±¢ $EÖ ’ËŸ/Dæ0{ñ·É2±…¥nеdæÓaô.lGÇìºh>TÅ£Ïû¥„­JDIο3™…¼ïXFMÆ:!oÅWÈøE³í‘š~|çøZÔÜ®æ™qO›¬Æ;ÏMÞ•s®8¹°ÈÌJ HR9ì”°þ#„"¶÷³Bp“á#ZÛ‹“Š>æX¿>[m§½M%ßn“|R@nnÂÜNÎË«éŒ2V¿ÅÆ%a/jòÌϽÒál&â Jc½Ë ˜øl¾ „Ô “Ú8Aoóœ7Î,b¥ÞÒߺ6~Æ0ðÝ1Ã’È<ôž,Zd² -öp‚)t„¤žáÐ#ç¡ m+W§Ïa'qZ B&7IQÑÁk~e>’»ÖmJëIz©Çû\|Áù$Ãw»ÊE6]G!zÇÁÂ$=QŠÆ *BÎèB„·„ZÈΗûÝ"CF±ª/Å\4ø»ß]‘4ÓæÊ¤ñGk¯Jˆ˜]Øö~tAÐW³$,åý¶Œv›<•Þ“Rš.•âSØðm·ânBG³\eµetá¡´*{œ ˆ•NЍñ\¯Öè8­sÅ™z9ýóy¿¥ÌÐ)Ž6»ž2»ä˵”œrÒfÐi^bÿpùëpáîÒ/ìUš :å¤C®Ödð)-éÊMMIÐf®Üd &£6sl2µÅþ*Š4Œ«¤^K1Ûs¥­™¯§˜=äY3_O1#î;šêØë?\þg\¤5ºsh/‡i‡4†çÒý¶ÖÅ0ºú™>ˆÌii'—t¿é®«5oÿ\ -Õxþfé[ âóøÇÌŒw%¦BDïjzDß¶Jàn'.2CZjÞåpÈ‘æ‡â„¤^EcÉ»tÑèÜ¡-îNá¨cÆÛåb¡„úØå»cøÇDï½ãAætØEÐ9à>(—úÇ@QöŠ£ü“Á§å­¸æ5K…wQuãŸõ/÷n ½]½ì즵²ŠqÆ S.<ˆ-é¼úÑ¡b6eX|±ßΣ’æ‹5ËBáÈÀŽ iFXõ ’òPˆBÿ eü(š‡aÍ•‰p”ÕD΋^H;Sxôïwªò”‚(÷ET<³îŽ5iøV“!˜iëgï’/%6%8ª\>õ}kDƒå,°Ïá·'Úƒ=Aåï‹u Œ5¢¸ÅšUÜíôç ìïž}±$€8Í¢Žìú;m‰£CCsŠ~å[< -$‘U×»gŸâ‹»}Âõ®¢Ì¾Ø›Æ.ÞMe¾XýÅ9öÙßRQFJ„êÖ• Ÿ³ŒË OqxªbÔpAÁŸðö{im7h$@V-§°­¥‹fá&ËjŒ’ˆèB³DJ†ü½Ñ 61/.ß ŽE¨»n!bp‡.è'£„ªåþI& “oMþQrPa»Mðʯ":Çøb.¡@çÞQæ¨ òCÅõüܶŸOFÒ‰®8í£¨ï!!ˆƒMìü¸–¹h²µ5¢¡Í´ÅåÜÁ‚P«Îƒö‡¥O~L®\]Cíß<$$Fu‹ë=âl›Þç–«¹ð§†°_CóËç¦h~sû¹!H^‹ŸÂa¥ô¹)ŒÿëO˜Ï?ÁÓ+øzŸ¯Ãù ðÅù(ôõ>á¯?á>ú䍯QÁma‹zóÛo]j´åô8ÁoeÅŠ‚PcÎå -“ÀÝñ… ³¸fŸ€ßOF ´û>ô»p‹ýYá€ÄPÚ[÷Ðäôä!Ñ}’v¾ˆG oF÷¢^»dÖ'rÉ^š4–,å˜qƺÚÐÇÍ -µ`û£œñµË*ßAZÔ_Q -àÿíÚ–*Fo¸½PÖý[)LÞ•³™ŽRúuÝ…ªÛÇlþÙöj8“},Ø87Á•z\ÉYz=34K¢ <ßnÕôÔÔØfËÔü³`ÄS2\Bý‹±ÀÈÇ ä8’PaÆÒ:¹iÕkþxÞ-=o™…Yšp楞à$UKtÍ>Ìaörš}‚çèûf>xÐ '¢AAÀ®‹æCUó6«;aÞã¸å<|ێ¶´ÖMJfbt]™vúyÉ/ÒŠ"W:¢½^´lR×XaúÒiHôŸåýn–î1b÷ËÞ§Ea².³™0*z¸Gœ,üÄåÛÅ…­ŒâA,f -Wa1ƒSœ3Ð1+PÄÄ Ç…&&fA<Ç¢LÖæ2’Eƒ¦$(ÂEƒN²!\4XaÔ5¹¢ACoô'.ß..<3Ž”ÅÌäˆYSK™É³ƒ²˜™1cNÖ™™Ü$ó—?ŽKÍã ïÃLCCèålÖ[ë\Øð¾üÍY;°€Aݬ‘3‚H¡ï=*¨ãæy_n!Y~pPñÅ Ý<ÉÆ¯kïÃEOG Ò ÈZþiz˜ój^É -RÑ%ûÓ´ãJ>Å-Ûœær?ÔÀ‚(.×pC©ê¸°S±‚ëÁpGËcàí IàØHÜÏ^GâqvÝÜ2ȽA®T+ˆP¶k “;?Šþ&œàÕqç ÌNýjJ _ó·{÷""IÆtœÒŠ•ßŒtE Žo`Ú¯è:fkÊCød^-/xL%Å­âû‹Ô‹wÑÃÉ ~bÎY¸MÂ)‰(\c¸E? fÛKÚ{؇܉~ŽaCì›…V׿)ÏÄ{)Á“òÌgnönÍ Ó®S6J¸ò ϨKaJ÷2Ú3”Yøº ÓÎ1cyEœG¸Ruxññúº¥È•zóèñ ݘ‰C¸LÚrwë¢mâCOerç†5žÝVq^jˆˆêƒðÆÈ¬áþ „Sx•/&¸+~žXu¡[´•PvçL†Ü——9žißyy´Wðà?‰8dmFâVü (V¿bï^¦•—d(Ç®Š\©_TpvóþÇdŠPˆ—–½´¤ªm0¯a)@Eãµü­7°êR729hX˜Rk;¦jî'@ÒêN§q”é ®ÉÊÒd4EðJÐRç+äoíSË›YâûÒðÖ2õý÷L9¤¶–)ïÚ>ç?5$h‚îò®)™×¯|¢Ö¾t›Ú|ÆK°ÇN½˜$õqf>(º´>,Ÿôñ"¦MÕÉ!ø°ê€ÇJ5EW^Ý'º0kMFËPm°yç…ýö¶ÆZðÇ.|í̪-¥4}që äÝè¹™£×«2[ÈEnò£âZ’Ò~µF…¯¥:Ôþ™t”|ŸôkíÅÂÍâ>ä5¨µòŒî¡(ä=ŸÖ±=ɦ-¢µ}´®©&} 8Řàs^7à׌‘  ŒÚ7£ñp«r8iµ*Üòp\~ËÐ?‹ÚÝágzý–Ó+Žû3%}¿) šˆð—o—Ÿzù¦qY3ÜÏôúÇÓ«êt[àøO›ÿù%mPŸ2Þ‹ç7¸eΰ–.‰õ˜¨*ÙzþFº*:›€9ÉÂn—JΨš-)í] ø\ì2þ‘™Z‚4Ð)Ø'z½P&3Ö5§ëò­µÝ…ùb‰T -ÎËÉ+óEý —õívI6››Vºy<µ°…œ4…oÃvŽ^OKÙB8>–^gæÒJ'P/…ÜÝ–ÿR£ý/X³Oªä¶Ô°€GcY}Ì·F×@yÊŽFm‘§ É,GÁc)˜èõ8„¼Ð[ÞlËXÄÖl~°“a&α09šÌA×èGNP úËßÂÖo –Þ÷ÿ¶~µ4¶ü+Øú FUù—|‚Àl¥¹¥°Dálã–KçX+h³–gÏ÷—þvbÿý*ÝJœ ¢OÀC!$d#HØ·$€€€Ž -ââ°¼ÿWÝ„ Î83ßÉ9þðOŽ$mwuݪ{o-^˜ž™1Ô5—=?y ˜×^ˆâžºTPOì¨ÐdàÄצ+LR ¨íQF¬‘±¨ SH’kv¥Î;ÉõÔ³bâz¶ð]PÆÝóÏ$ q¥8hŒÁÒ¼–l4ü&Ì0dbz.„Œ:Kþšø›<¾u,Ô_²8/-…E¤Ø*w¯M}é¿+žw0Æ4Z¸<ŒŒv#É/˜òaÜØWG)‚2M-;ä G APä½¢ŒÏÆ-ŒšU/Ï~„Lùý߸|A\’«Ý7._—ŸIâLj4Æå0ádn0/ÙS{ªu’ZÅ,vÊWz½F]€že«›M.;ÕóÜE”{6’KÉLÑ¡[-B=·ÈÓÒPd9Rz2mÑHÚR~t^™wõÚ,KYŠ<Ȧ¡45„¤Âé<½7ÃÕZ y˜çBºAmàÃ%øZ©W³z+쀗—ñÕý®¥X·Þ=©8ÚXI‹iéù {_~ˆïúf„Í¥ý¨¿iŽ›tÒ¥/$õ‚ø[Àå—ò/âÏI÷²Ÿ;èÇ%Å856l ‡hOzÙT¹Ø ¥_ -i©Ä6G·ñj|9…°ã’ª¼Sòñ³¸4÷«ûC˜¤@`(*£Œì~Ac%½'}pÞ¸ü¨¿»Å—K‚_é*rcÞ²Wu…½<ÚhtULz>q‡?àÞ¿ŒZtÊÈé_Šv.ÁNT:!tkÁ.g\£¨.N2¡“ѪºÔïém·ÉÔb} Ü@i€gªP!÷üò!”¢ŸÄ¢&}cˆbôŒ©ÁdØÕjQR/×Û‡(‰ËŠË™.ˆÎ<&3¡3ÉÌG—æ-™O|^‰Ì7.‡‹ºö—¹x‘EæJâ<m›§"cÍbÞˆÌ|rË`‘!ºÏx,2v¿x+2>ÚÊC‘A*2ãÈäåÓí7._—\ Ãb2\Ïì™Y~Ìc2ƒS\@yEfˆùmÏì™ ߸|I\ˆÈøèÃ,ã™î;³Œwd†æJ{–ñŽÌðübÍ2‘Y»nüà™½sÌÈÛžÙ;ÇŒ*ÙöÌÞ9fâ“É,ã‘cNùOÃØžÙ;2ÃZiyfïÈ ßÅòÌÞ‘™å“=&3¨±{ÙÏyLfpÇ›yGfÎüâ)™‘~éxLf¨Æ†[É ÐGtæ1™ùhLg“™Õ/“è~09ÇA)å DÕ0Ù‡ÍÒN´¥ø®œW®GÓ§ÒR ȃçÀf£l';ëÂãnD…Ì^=$ˆFÛ -3Le™KVhñ=ã0Z÷pI…í4²ïÏÓÅ‹}ðÑÍÚÂOæŒþ ŠÑP®÷7 ‹áDõÑ.4ª“]Ò†©%@DЉøÙ­$L’4Ÿª'°íµê* eyA|’í˜ãþ°¬skšF³¯÷ ©§ -b¥¡þëgc»Ù¨ú#J‡ÓLð¢ø˜;¯)·Ë†¨”·< -3ê8Øø­Øœ7CÞ‘ê—£AÓ2;öÉ^‘™«_<$3Èñf÷7.ÿˆK›aÔ­ÊŸnƒñCµ(|ª¬åHùj„¢:Ì‚nr^²Ad°>á*bö2x¢™nÜÉDj6Êÿpéæû“F籊¾ìɇ|1­®•Û•WØBšYaObÅH¤$ݧnD’r„Ÿ&Æp9s˜ªƒ;—¬Ÿìtô1=FßÐ0‹)N<‹§R -\TÝò(½‚tÚnøº>âéµ(7œø°VÓråFÀ5¢6lås›¾ß{bÏòvŠxØ6~ºÂ¾ÔÁy€Háø!cö L›ß—+ò  WiFÊ4sŽíIî5<àÒäò,ïW e‘…SÒ ¸ÆŸˆÌ4ø™á+ò0ÊXÊ È Ç”ðýÌÙí’xy,¤OR ·À¿l‰™.×g'І7X¹R¾„w˜?:»ìZ5†¯›Ë|Ÿª9ïš6 4_àj‰üÑb fŸ™~ûîtØ0 ®]—>”dŒ{|€õ?õÔkH¡Ñ°ØÄ¼e¤zxU‡¯Ï¦ó.1pÚA5Þ\]éøB¬r;“êÇï"±¢a´>½ËÇë|E ‘ÝÓeÌ -$cèÜ]7X¬÷£Z¿{ç~¬â½”Fmq*W¦U4®-¶`˜U¦×Ô†¢)áŪªèJ‰…"ù*ä)œ’ù×ò žµ>jR™{NåÐôú\ãc!£Þù†œKBºo,rèC.L×Ðó†HßÖ[RÔ†ÀüÙWú ˆ‚9tÉd‰Ú£é¶€Jn—µ§o¯)Ș2¹O7ÂZ[sžL‹X+ªczéòr˜ôœ@°î¿ Ȭ-Bù þÓ@RÛC DÅÞ…’OµwŸä¶e>[ò4ã%pʯmŸÙOö¹g~F>[£pò'‹Raþ³%e!úû%h®l¨ÂgûôRâgKn -Ò/—`ôõg™g¿ßG楗_$„yËóÿ…Nùe×¶Órq9lJSC{ƒ÷œ±JPãG.‚§›Xˆb ¤²SH¯e€`:½o ½ë“k û`’OëQ\Ç_CCÅ‚âö©&šýàÑT)z.?¢¿TTã>š >ö>ïv|oÄèCÌv@!Oã4èÅ6’zÊÕ´–œ±H_,¦.É•†? -¼“ÈÄŠwYI¬”yÒ‹x¼"]‰¨^„cÁT¹îp`ê÷a"†ù÷‰Ï 2“~ïK}ôÿq¦êKÝ~ìïéŸúRTÉÿîLÿt^°ºò'k^dh¢¤Ú ¹pA#ÍK8VtÊ {ªu’ZÅ,vÊWz½F]óg«›M.;ÕóÜEWχg#¹”ÌÄáJ -äÜÊ@">úÛ`XKO¦sÉ$ø1&ç×íìØç˜yW¯Í²”à@¶{¿«¸Ðçùì Á»aªfôŽLFpŠ>ªÉ$ ú]K±n½{Re‘žß°÷凸®oFØ\:Ñú›æ¸I'­h1=Øt$eΔd½¸—·Ô5£;žßrÀhK(ØŠ °³ú9±îV½ 7`h…„–¿qù’¸߸|I\D$ùš-ŽÕ0ád°Üiëd<Œºæók4 -8»iBpÙX’ݺ{줈³£fê_¤}fåu=]ã7¬8”Ê“µ©ùÃújÓ²»J⩵۸;ßã®®°ùfS¸_ÅU©ÖÆÅ™tQ€Ð&EA¶Ãj‡]Êú¹Rw\ïž¶ö£ã Úyñ ‰ÂEû[¼8Ë‹èžeqVX/Wv>‹¢7t”mŸ|SŸëbcrÅ)‡›v ^Ü$Õuðîìå·»èÛg},D‚§ª˜ ƒ¾?P]ËÒ“„Øh_&_Ü»‰ÒZÊ¥óö‹ /XodáVÞÅü hS `§mq ÷üŠ_ŠÐß~å@«¬*ó·Ã’s ”¥©±2â§'÷O‡]ý~3ÌnÛ!½²‘‹lAª]ß -R„‡DAC&&'Õ£ë²tX×`‡Œç¹šäPØK´!Õc\ ên\†šîÈ4›.E7 …­ÖkÂÃÙ¼¦°|; M3Ö`±Ò€cœÓa—±¯ýŸ‡È ³ kÆ:?™‹aÜhPOÞþ”R§lW ÇDg…šKÂÕ-NÇ7AxX[‰B{ÁHx}‚ytLGXÈ+¼•77]ÙÞÝHoqòÛ[ÉnðVÞÞˆ–ílßßú(‡ûåÝE¿¦Á–lüûK—÷úà;3ÉþhI6ys ÆSx,úú¢x¤kŽ¿½Â6v¿;ºgQtB¼ vÏŒþ¢‰Ør³à\*$R!‡AEA  ämJ -i94›^yà†ÎRãH~Ë›¢7"e¢„™©ô€.[ÞhIéx£ÿÒÑkôà=¨!'S#ÂpŸþ~W÷ÆÖ÷)ôÈv·¥9ŒáÈx@C>XÚ†­%-3¿T;ôE -Ry¥ôp[…Z9BR€ä'Ö0¨¾­9ML‡•Ûìlôlš/o)rŠA·ùb¤Uˆj?kÇœa•ì²åRŸÍ=sâiÏÙ˜°IÔGçÆY/œ‰K[ˆ¢%Z qê‹ïéGD7¢Q”,?ö X]¸M¹Ô_‰7*ß§šëR¯ô4 ÊK¿]{\jˆ®,%Õ‹»$VEKÝÚ+jŠ©ã2*ö`|SºvÌ¢3Ç,ƒ€…Ìy´"Œó¬‡Iž/땳éóÚ0^jE¿Û%BáÃ'¼¬Ó{š¥èÙQEŽHÀæRaî8ÀEaG½4RÂQ¢õ®6÷Q¼)˜byfOð~Qî}Fð~Qî.Ÿ¼_”»æSFä‹6*ù=#²opù¸ìÄ\¾.²Jik8Öƒä¼VÌÙFJOl;iíê|òKLûÓhžùÑ„Ãоë¡É ¸xY£Ÿ@?"LñôvRÕLmx »Ýq68=ÇÑÊüñaá÷xéyédx¨žßuD„à®žë¥æ`0’¯v×Elâ²q¼´\nЃ1hëmÆ|0icÆŽÀéSOpÙ̃O†¢8Ä“ðÙ«8Ù«ÈÒ¢üx¾²ÉðÇÆèô¬\ §yè¦ÝóƒNEÁ׆¿‡ÁãÿÍá/õ‚‹•ਤ¶^v<p+õQR"ÜEçÄ줈Â!‡ì‰¯ÅKªýx«”ºº büPŸx«·‹ç  q!ÛhŒít­[hF\053éÆBÕË -Oþ}G|f…=]–ì²èzý16•ÚåÞ•QyôÝ–º½K®:‰N¿àýÀ·¥§=eê:8J‘š¸ØM‰aÊ!¨1MÚÉò¨5jcÜÌŠYøbdSÌrûƒËwÄeŠ›]ø2\Q&3ìøze2ÿ‚èŒ2™!Çgy™7ÉLœ]Å¿q2Æñ2ôœŒ‡q¼ ='ƒÐ·¼ ='ƒkÌô2ï9™Îóßê 3ÊdæaÌ΢JfàøQ&3è\«YVâ~pù†¸d¶©¿q2Àc¶—¡çdЬ´¼ ='¸Ø^†ž“A³ò&ž®ñ;Öœ‰Î™K?€„jÙm]%ñÔÚmÂÉ6R}ã®®°J².ÜÏR†ÂVÆ9)’mg 5M%kêá -à *•›ÅG«š¬Ÿ+uW2ôî)ˆ›»t˜Î"S?Û•wJÀµ«xNªk]Yœe{ÎÚª<ÊÝ)„(Q–…V"›•ùÀ\7§f­Ã@¼YÞzµ¼i #5QYHñ‰7ÇÑp1&H ^ž@êFó¯Õx6&¼úÁ^dE Õ— -ÌóÌ(Ìî r˜I„59¸“Gü0—ÙBX n7 -›»ÈªOq&ùâ‚›$``ñÀ›6d‘#†kË£'áÁ/åÅÆf›µ4#Ü;JßÀïZy›zЈÆÁ=-eÝ›·ÍÊ2n8¨—¹ä^ìWüR$h„Hí-gQèhgUWÐûUJs(š=͈Íಠÿ†+Ô+÷< ÔÓPp‚õ÷WJQôm [n¾ØTFm¨¾HÁ$!6Ú—I瞇d%ùö«k+y` ?1„@ɤƒ„@zSÀBÄŽ|ÿ³g& ~ëY‡³¼ð&K’qfÏ._)¢eá«dy#²pÊTì Õ•µ"tLÔÑßž?|P÷ºóveR9ª¥ñÈÀu¯²R5ŵ Òè_ÏÉ¥+)‡„$W8ç’‚§®ò¤_ŠäÇ÷S‚ª àž.pÆúçéˆÏ0zø\’;y¹,¦“_úH…œ󸳒pT?…ø§rGžre€c‘3aÆšÖjzÐ4ˆÂ1 óÂ’‘£d$ ]˼‘- a[š@­F[+Ì2Ei1o󋸒ÂÍ…@y˜Âò„}$)·uò ­> …Ó -ˆða ŽêK®? ÅT)òÉúó@0ZFÞ ÄR°Xo㽟FË}YßEØY‚1y{Qñ"úb°âçKvÒ‹YìEê`(}±Ïåz&¾ÄÛ"Kù?\ôQ– RLÆó¸‹ù·²²©Õo›˜ Èr8D9§t% -Ò ÷*PΠÈwë¦e:Ì€”bíPý­Om§cae™p^ÔÏ -ÚHöÂeu|§NÞ†žð>´Šgê°Q4®’W¬ÒÐÚ_9äît²)ÚÄð:úJH~˜ûÂ>Ü|~ËMÖŸM)Ö\¨Tá2Ý^ÂÓ](ï•2@‹J˜F‡Ì~C°¿–4ÿ²-×MALÛ7UwØiK­ý&ոθÇ,kaç€í¾I/Ž)8D½\ßçˆ[÷vósF<†‡Ý³ #&ÌÃîÙ†FÑr6ŒTÒ…üß°a¤Ba«Û`®È>|î8eǪF7­ÃEér4»WãÞ8]^kh=e„ñ¼ëãÓûQü žøÆÒ À|ƒ6ÌÐgkþžsIÄ·k™Ï‹/¡.ݷûâhÞ’pe{ì'èòíêØ¬Æpª¸ªQžnV™š!Z*gý°™‚Ù@’3å6½T,䧪÷±Ë…ßÖ'§Ã‚Œóº^¬ŸÆíhÛ®Ašû†ÚnIÌŸµµa(ÚNV$ß™}j :4~¬…˜Ç4d²‹5æôW—_W—¿yù¥u¹¹:–@lˆTRL6EÇHõ3ÉB¾ïK=§¤ÓCÂgs[9ú8χI=˜Pä ÊEQiq ¼9H,@ƒ§—ò .”‡‡}éó&¶p«¾ä{ùç3ÌÈ ¤ž®ô1^EüõàŽZX(˜ÔöM÷—+¤åb×Ö‡³m4­]Àªö,l]ü ê\jÍ ‚{5©|fF!-’ÕD: -Ðp+PÚ 3'æ¼€Pïuû’ K¹Ïó°ú1·èi•y†±*8õ"ªÇq5« &ìjî2•3"~'šUdšíº‰È±RÚÜ+Nc¤WüMá6º9Õ|6; ÔõIM¸æ…F£t·½˜YG’®™KNƒTu^ñ)Ó׸[ùJ"âçÕ6"¢Õ1CÜé_ü«Ë¯¬KPZLÇÜÀŒ¨¾îËžÁ øÃÙžÁ 2†‘cÏ`FO~f¥GæGN:Ùö2ûs2Öñ2ûs2Öñ2ûs2¸“-/ó'£üÌ<,³=ƒ™‡¥'îÌ “é­÷ -fù;¯?³£¿ºüʺH ¢‡Ñï:ëx™ý9ëx™ý9¨‹íeöçd0ï[^æGNÀì!öW—_W¹´TBßeÖñ˜ûeÖñ˜ûe˜‘-¹?Qf*ØÿF”AÜuù/ëÒâ8e­ªÑÀw(&‰ÌÐJÎG `!Ú‘3cfñ¦Õ*#/F“…*Ö¨ Þ¹æd"9å†6A¹uk…KáóxTDK…¨q3ßMO²Ð?OG|†¨„øò/;YTŒŒ24é¸~”Ù . ©Úd¬³‰òὕŒSŽ!òÁÃn}Ò(’d0܈&“ˆ?\–1à -8Á¢tÒª- ì·(`øv¥¤äÒ•H:Äù°™ÅÒ`¶s(®ËÑDw4#8)‚O'ODüØ•à$·o t(’gµ._Ÿçb™z2v“\e_üóiÎ`Žp23pJ -¤tñññ͈÷q -²=DãÑñh¯S~"oÄW_FIÕµm]£þ¾óÊi¬aÖ›¤5ºð¶C²æ´­å¡‹„ïr1ëݲiް>椛ÂRv/öF¼²à×ÎbȘµÜ¾½‰©hrÆ]‡Þ®b9G Á â¬Tõ?Uá¯ÝuÔ;ïd!9È‚þó—]§¼¿2ÄÌNÆïpx/6Wˆù졬Hk»X¿ÓÄq4®pu¤ÍÕDÄ)¶Ãw¥A Mê/Yéf*F|Å^[.^®KØaŽà?„n{5¢†ï`—€Ú„–»¯É×í~ÊÃÊÂ+ûÐ<†k #‘¼Q…OµF -êšd«½€X[¾'Jæ ZSä KZ…-¤m­ðHÉpð~œ1— c7ôkËöÑåé²Cậià`¸*ö™ÖA~øZw!³ï -%ø^([ÄŒ/Éù5c'â+Ý¡`…>ÍIøË@xÿάaþYĽOàë%®´»¼»Høp = -`ž?}¬pu<,áiîï cI‹õ‡Æå¥*Ìj!ÈX,@°ˆ ‘Î*~š@üß6«¼˜ÇcØ~çhKWÝ©†ÖÇŒ€ô#ÜÞ÷v!/ðÏ#hù5,r—L(ê2Á·d9(ä0ÔǶ۞nŠUŸ-3£[ÐĉCó<¥ËMi‹ãðò–ün­L Š‘.)©¯Gà²ÑT­uÉK'›ûÜMP˜Åã•ÐêàÜØbÚÓgçÖ.»¶è»a`C4Ü…(’œü†Ð¤1iþ1uôÃH…x61: ôQÙOØ"\¨ò'ñv"^Òóí¹V­0] êLÙ0²™™‡ÕrÁnOËùç#YM¤£ð ·ä•ÍS‘˜.‚p¯ÛOôh»çs‹žV™ga@? d½ˆêq¬…K ¿>ØZHp‹¤rsê™hê£QE¦ÂP»n"óΛ{…Äêa‰I-®ø›Âmtsªøl*v:¨ë“:›p¹ÒÝž+S™˜?Njš¹ä4[×ÐJâ©Ôß°)‰À†Õ(¦^f…6þ žJî»’uG°Â¼ìC²îV»ɺ#X Wþï­ÄŽ‘ ³ÿ=+öW—_X—X¼¿ºüëRzdˆÄ"¤Åýkžèöyaï:ì§Œäò™ëë颲"Ìæaî¥ï£ô~¨Å6ŒoºŒ2¾èØ/Ã¥´( -?Á>„àŠ‘Ð 5L[ DÚB hÔDСCàý{w7Ùvjâtgú£f˜a79÷žó…½•ÌPs×Mjža¾qI°N꨿;ï}u }]ÎÜé1KdiÒ?°~,¡š¯KÆó¢½2¾ŽF÷§µáÏFsî)EUñÛ2ÿÁ Íïѹ“!:M‰}ó2™åìÑðÙRŠú[¯¼{:1.šŽk›AæÁè979Ë/ÔGq¾ÐÛÐÚð}þþTýhV_ ÿY öi2­cö?R­þßµQ^_ÎÎ݉ÿ½èY`NaÂ^ÐÕÔ!ˆ598²eò¡Â}ôõNc`ݨ ‘¸Éqpâ‡,IÝö§—çéO Ks8·&ÓK•(XÌ[ëU£ännë¡cOÛR£å­+‘L&ĉq­Ä(á+ð¯TuækPvÊ®5>:¥ -¹"uíûá¸iæuɶ­ÎPßÞ6Oç$ÃÇæ¾$[pª™sÊ„ôåƒú;@¤(ójïsé.h+w2¹h!Ú雕Òé/qú¥g!3!xi¦k#xi€ÇÈÚ¼ii´EÒ¥A8fædK³¬¤'f8…3³8bF8ffqÄŒ¶˜Y1“SxûIJÌÅL>P· @€qGðÆ8ˆ#vмgð¯@­øeõ_—O—jÖR… 8 g3q!ƒpÌfâBá˜ÍÄ‘™äˆÍR‘¹¨’”ÌŽÙL™AKâl&ŽÌ`’9›‰#3’/›¥"3õñ¶®&53„÷Ц3Û-šBÌŒLòNÑbf¡ó¿ÉÌ>JIÉ |Œ³™82#ÏÂYP™[r6GfÇl–šÌŠIk&Â{ESˆ™A³Ø-š×Ì~ 0ÂÑÕ, endstream endobj 197 0 obj <>stream -H‰ìWéVâÌ}"H!Œ2‚2C˜TšYPFßÿžª@¶ý©}›µúGÿÉJR•:Ã>gŸ&ÇO«QÊGòܨÃóÓ‘|Î(±žÌdZ#Žçé@‚ç Òd“tÍ´ººÁ$hË2K­“yØJ1B§kòF -Ôà³ÜœŸP]Ãù–cJ¢œ®]ˆûÇâÆG®×²ñÈsg¶·Vr¦2Pøü ôÂsrƒã•ú•ØŸ9QëôYX8‹0J®@Áæ» Wj¬HžE9îajøéÓ”†;êñUàÎÀJši¦Ö³×`ÓJ›ò‚¹¬Ÿ?Áe“"؇'›ñ-A g1‚Š-,£ŠõouœîÑ_%…°*ÒŒ ×÷AÚ<¶s-b{çJS.«ñÞ$„r¢‰ôMƒ0ÇÏ«$ÏuoEõeQܨ…v{ eZKMr¤¼Èº CÈ]ò0ªGQà¬`Þ4XÁ÷C‰ÅQKTëEEÞ¦¤Œ½­kóè,¬Vt»gsÿX­ÛwAsɶo÷ip¶ðŠî*Gì÷‘8EQ©˜ 0ÊåâYÔºŒ ±Ïð!b2›(ʃ -F g‡çžýQÇ¥@rÊÁBË_ÇH(¤˜B^3ÁTƒ…A‚QÎék™¨%9K­é·FáŠhˆÁËËüz­\ŽŒ Ó°Lhr#hÉt .‘.6\ õ]1°Æ|Žödí*P,&Å â7 ×¢c/œÚÆÕä’Àé4:‚eŠ¥ÂRd –|³Bù«+‘~›XäDíFÊ{’¡Õ[%d¥J½¼[Jæ»o:°Ž -\»SB>Sùû àÞÇnE©‰ä%Ê1WŽ]\ˆt`E¥˜ÈëB”¿®ZâMŸì#=f{/ýk\84 >„ ~ã¯h. ¤ Ž#ê‘ôÇFßDI_Iè— %%Šš@³v ØB­²…Xî’LF$·â M$à±4ëG -Œ›• çÄ(q@w’R¦IÆ`³x†Á¹R¢"LL»X0øú)X½©:Þ%H¾p±,ÀaÅâ®v¬~¿îM0¿Íáw.'Ç }4DúÏÖ~¾Àv -ÒÏ$¼S¿»kÈoÚkS§J¯°/žyo~ºµRGïR!Ñ”ìòátv;õÿZ KªiV~¶òs:2²œu¬8-šØ¨#tÝ«{Y?]ªA *Ù)›m¨ à±’šA¿hÜcZ¢ÂéPø¾Ù« ÄÎ&)~:ìó=bÐÊ”ux¨ rî#=Ãõ'€SYcñãp‘r¹$÷¸@™wJïƒôo@õQtNU?pÖGŽì2¶wE^}äŠ×‘­²úoG@ <‹ïÁÆã -÷iNèÐç[èw[ÀÊÏ›>Œúx óùö°±åÇ›"ŸŸý|‹“ùŸ›ø_žó­ÎA±ì{g×9 ö#8 >+Ó@ú,*¯0Ö£;jµ·‚[KϘtt²ÌÖ >Ò»„çëñßç#Ñ$˜šÿŠ`ûãÁ–:E¸›T fͬh• ¿®úŸÇÏöStÙòèDGË:¦äF«ÈXÕô½›SÅH€gKN[Ã)3¤tËP>ÕÍ_oŸ®Qa ¸÷³ gÈjÛµ«q€½sýõ!jP;vôC7%7žb_ÝÛøÄÝ/¥üƒâî—ÒÎåä?!î~)í|äÝ¿”ÜN¿|At3¨!ƒ@€þ¨C£Î]·=ˆ óæå…®6©Ôk6Å·X F¹M ”Rl>šPÆÕµ™¤,lÅL¬ã§~ùíà¨S ¨ÏQNΜŸT„Ók»”7ùì ô‡xaé#U[}m;j·áVŸ¾-ˆô¸ó¸GÖ½hdâc¦È’šŽèªÍíSÐbÊÕ(s—óAóßD n˜¦Îo^òsãžÜØÙt¦#«…æ -h·‘ê0PÞ!„R´òÈæCïÃ$Šåæ9 ^IÔÀN Ü"NÅô6ì£tÙ׸ü…¸€ßÿpù qÉÍ ¬õð?}š"ÙeG½eÜÙ&Í4Së‹Ùk°i¥My'›$‚Ë&E°O6Œ÷ø– †³AÅ–g:„Šþéyîæ ç Àÿ‘½s¥)——xor&2}Ó Ìñó* XÞŠêË¢¸Q íöýRÓ‡œÀs£"ë. w…6ªãºc±Âqî†þëÌYªõ¢Âx›Bº§®Í£³°ZÑížeÌýcµnßÍQ$Û>Ìì œ-¼z´óç㿯Õφÿ4>椽ɇœsèL6åúªÅ¶ÕÀ4×»=ióÄYÉœ3¹^‹›!RW6[7e5cèƒ?‰­ë¨S J2שÁH| º -À>)ÒµâåÏö3À¥ñx4o&U¤Vm1[‹ì{únÕ+òûM±`%|Ú¦ñ‘¸mNÜ4 ÇPÛüVÓÈ‹¯6\”3uþ­! ãj³Ó yÐf§2>ò ÍN§ÌP%ïµÙ·”r”ûª2ó‘mv:eI®6;2ƒJvµÙ锚/{mö-eö—ßÇŽ™»Þn;ðú a±¯ÀÉ. "4$<àöòŽRr÷^U–¡IÓ]À™¨œ×¦åìWÙZâH~ì@Bda_ÂBETP[PµEÄ÷Ÿsª’ЀöØù¾¹˜”¤¨:u–1îB1ÖxŸêÜ pÃû-Íù†™–Efï{¥{Ì+Áp²Ž- ÛŠ«ŠdðŽzî¼øøµ¾qJ®Ò;œ> -ÎÉ Só“WcøQ…k–k_ã9É(ödq–ì}vUyœ›((QbÅ:‰lVæ~ÜWÌF«·¢bóH×1wÕC}Lîç|Ô´! lkUpðtCyŠæÓ}©Éo?ôé1,¶r¡#$9¤ý!ð•³ý6îx†°¾‚»\e wÌJŸûÓðu_9!€_U˜œ·8¯~$‚ò˜d€ü?lèÌ;ùO…$!;P!~ְ뢂±‡Yª‚›Õ,úk¿À3&;–è3[L¶ç8T«ªcq;}››Ý«¤ëÙ( jœ›tò6zÉ -¤‡'Ýyü+Ÿv *¶Øyë·uîvrß%Å£ùFòX@­²¯Î¯Vß)?rµ¦T’&CW‚ÚMNœ±×Eév1o`ãBõ¡uO!OµN[·{ôšR~XÜ›@2¿’„ÓKhìå0DæY‹Ü—¥»ãÓœ$<ˆº¬5":T(›‘î’ó²<Î_ôh¬Ó›QœLÔÅ´$éoXîÿ÷ Á<U]èuôŠ -]"cˆ[¸5?]Ù -ÔC9hŒ™g’%˜:âCáú©»$Úa¶-,˜µ B¼ˆî „߈9•°<µÜŠI [÷‚¨£l Ä0øà ¼?m¨ -øýKð.ÂÆ¢ú\‹jWjdë>Ü|(çDo!W&✠FØJj¢Åš‰‰ =üõ„h”ßï·¼p[A¢ù©¤5øL2|ZšÖZ‘KÞW¸çóºž9Xè}õ©3*Ï•qû®®Y~Aô¯¹ÏM¯²ß\¼˜@ 2aOŒ†,‘]»2kÖŠÒûÉÂ\RÏr¸Oi+yJ0ѪÌ=_+Rý:±ñU0{̉²ä¸°Cl|(pNï wL;¥t°Tiõ°¢>Æ’%Ã¥ÉÓ+Vè&¾*P¾ O|Ì·Êä Ôå»å òÄÇ|[8~A6Â]¶ÇXûäù#·µßkù˜¿ã¶ö{-œý¿á¶ö{-ð•Åmí÷Za¶¸­l ð]þƒuÉÌWÿ×å¿X—· ÕL”aMn0Ei0Nój’k¦3éº^>®^j­†ÿø¬`,—jáV+ò'}`îÉ…TÉä¡.ð'2tr  ©=Ë}̰..£é ˜ù˜ £é ˜ò»¦'`FæÅi4·ƒY6ü˜!޹Œ¦'`†˜ì2šž€ÔÅm4=3œ}—ÑÜm3§7£Ð¿TfÐÉn£é‰2gá6šž(3‚–N£é‰2CsMOl&à˜ÛhzfP·ÑôÌ|̆ÑôÌHõFsŸ2›¯þ¯Ë¿­Küÿ³Æ> YC#-ÄXaøLb]Ob²Y¼ãµ>’Gwz!þzø›§ã= - ×úAÍ?~Yc- ä -Æf©Š<>÷×,Àm¿À3&ç•è3›&¡ksò°êXÜNß&Äf÷*éz6Š£¯œS6^¬(%Ø9ï»vLC—°óü÷¤¯£gÕ{Éù[¡2ÍãûùI8ó76wœ®ôœ;î°R®Õº¿œ]´ m‡‡®Œüv{ƒiíºE yùüãÕnñ<†Qg¬^”ê×x€ÌÅ¡K:Ü¥~OB¡Ns277zÒÍ x‹‚I…¹›ÃâR2­¥{¬–±tEq&]`¸z*hB)4`Ì:?Ig¡‰ÛSÙ¡“$s¡ø?èü㣪Ë*½â´I¤Ùq ·\âÁÄt§•ŸDácæyM8•Cá:´»$°Ž£ÛÌšÙám=º7~ 0/Æ8µÜ -_dµåþ@p¬åÐÙ}šŽý| ·s ÔÅZþ|ŸOƒK„mKL5n/Š|¾Otç’CAuòþ±Hˆ¶7$¢Sœ¾?…ÀK¤Âk`cjœ¥Õ ¿‚"lgÞ… -^÷+›ÝRåð}¹”ßK~AÖ«T.0SiŒ_û~+õý|}‘£ÆFPWÊ¿mבSø`[­!5ç¦9Ëf‡æk¶ç­%ŽìB¨Cª"0ûüS*¯”ï -b¬^è…‰R¢h¹ -”V³[ˆ|g˜<áʳ7·»‹ÅÕ^$\9“"– ¿z—„ëTôœ 9Åô2Þ9Ðc¶—ñÎÉ„1½ŒwN†ž"¸ð÷ N&ÏPУݖXÒcÐ ÓŠ+×LgÒu½|\½ô1Z«á?Q0–Kµp«ù“¾Vd'R%“OÀGdè -”6HÏÌ ”Ĕ͕_º}É hŠ€¶>ÏÇÐK¡i_kL -~«‚I¯Éí4VCvTƒû˜<ÙÕœe2 -=çQ³B ‰¦@»ë¿˜·^ýŠ;„ãôš›U«3=Ì©¹ÔY$ÐÖÇmÆ’¾–l&ƒäB9³$æ×Ñ´úîÿÒþa¿¼¶R×¢0ü<%@ zM@PÝJQ@Å.¼ÿ™s¥‚îrÜfŒ}á ’µÖ,ÿÿM`˜`¾ÿ‚á—S]Ü4û:3y5fšmHøÎË?™—Øw^þɼp8mɦ96Bú ˜b)kÍb•ĶXÖ/Îwªr/ûet4?úùÜËN¯ÁÀ§Wg^Z&ðƒ—·‚ZH×Ç=Øí.h%g`)vEdz­¼½ž‡2W”×å“]àV9»îò˜ !¢œŽåæh4/v—%2BÂæñòÃSë oÌùÆ|›6n,:D±Y8} -°y1䌃/Æ<äe¹ˆ'.âúny& óâý ¥°i¦§ÎN'ÕZDfTUiŸÊNÁäà© ¼“Ú¯Í ìÿÿ›?ׄ‚ͤ”øåÝ vsìUàüo¹È0ûê¡2ëÇàPÍ)ñ§H¾Ÿ¼ñŸ‡´ÎYZjë¥çkHNâIulT/ày•ÄÄè$pôCx{=8‹µb²0ŒkåÔÅuÈÈàÙ‰W¹Ú¼¤!碕™T<}®˜Ùh±Ž4é4³èÇô )?jÔXà±¹¯Í’SKôéCÙ*Œ~å>¶—;ÕÁ…Z»÷]•ûƒAe-ì~!»w ïÔ<8ÈCé°IÊÝ@ ˆŠÂNgÚ¬£C ^1_LßR ½äþTÌ<‘3—Å ©Ï’O×Ä åÌe1óPDÎ>'f‚@Ì:ÁêÌì1{¨}Fw‡˜ óÌì1C¿XÌü)bî¾ü˜y("..‹èؾ|º"fÆdᲘAö1DŸ³—ôˆ™IJä=tCÌ<”Ífî‰fßd³Ï‰‰à~Mf6)-îÜ#3õž¿žÌÇL6sÌÇL6û$™}çåóy×.C“ÁsœþBYgÝšî„ÙôäçjFûÔW¹[x]­$do(Bx&5ì¶Nióbžh2ÃaË…¬xC;‹tR¢®Š"SJÊV4îf)JômàÚØÈx%¥RH7w¦N·9ƒ1{ª“YlüöîV¸YæW‚§u…?^\Âky«øUÛ›0„’T–_cøUf\%.£&3´D{ƒ -XРMÞ jéx÷í®‡Òfˆ&Ï<—Ÿ„ˆ_™Æ ¾;A"ú“EÛ"wÛ=ǹrzF{;éPfäXœUqÆŒe)R‘"“ âÑ$ˆljCLÄ鮄3~Ì X(Î6›÷+䬒 luXƳ˜B -WeŠofž›r­–‘&uä'-ªd['×,Kra+è¹Õz˜ænž"²Sà*ÿŠÊá¾K&è´¹¶<Í€k9çý’OT¤¶·¯,ƒRpü÷æ)S@x+ë×ða…u9 ˆRÿøñG7¨•µ MÞW`¥!¿k W½a–_n[ðð+ "’IKå×f úåª_ia+U¡&´&TGZ#çÅ~–_†‰~½ïc†d½œöù Â!2i±}«Kô¨'“½ÚmhÖF÷ {D@G†VB¬Þ·:ÊÎ’ÕÑ vcFÝ;(¥Ð¥ WWB}(” cùgÊLˆg!JžN.½;h†¾§[µZ3loå'‰¿ün#Û ÙRßO¶ ºÈV~¶‘Øo7RÚ‘†ùÙVêÝ߆­~òø³Gž-_€ù…PáGXU² ŒMÄNKd ÎkäºFý,ÆwU~6CFDâl__ʬdœjt¹Þ»e;ðC©H:–VCå¨Vd’k5h-*3-1PÓþMW•Î6ÊëÅãI…¹_A%Sq­Ö3ÇY»ßÍ ö¢ß¸¦92ñ„L3n?@×Y†uÈ æOÂøˆNãð½åêyÐÌQZ {5о„ÆšÑÊß,’X]–ŠÖé+6^´M’}çF?3*uo¶¿•à,ÖèâÞ¨´ç/®J c8,¹<*é¤$þ娴ŒþýPÇ(æú##ü¹Œ~ÈÉ.#¹Yc‹äè%âw^þ¹¼|÷Ë?š05XÇÓC×äI'FÞyÁ‰)9Ìgªå!},eùÓñ3bï‰ûÅ5];S'ƒH:.lÅbBKðK_|g[µ.¨ˆÀ(ž~Ý_0968`Ä&CޞЬõfÕ›Tó¹<(?ŽÐ‘aŠ8_ªS漉¨}[ʶ¼¯˜°x¤ÆR;5Ô8:kÅÔ•ycÕ ­Ö«rÄ‘GœyôdºÞ#Ô3åŸÌAgÑ7ÏÑɳ‡Æ}mE½ J¹â8nO¢Fr`fÅq†¶ÙшØG”òó÷çýtI8ûù# pË -9 Ù-s,÷Òr]-÷ªçµæ‘÷@'ßx}-äµbädP+†®Ï„J:—€èdRôé1ú…²°±ç¡ô <¶·^)¸ÔŽ®ó^ƒ£&cAUĶŒÙÙ€Aqceƒu¦©‘G”ÅŒÉç)ABíª#§ÞÞÅí²È./™Uõ&±=UÃL!›:úÚê¬M¥ý¢ï&~:@RƒÇŒ ÓeõÍ{¬A°ú/~Ù Dt=S`³3ëeòjtô6ؤ>3.².‹™‡2ˆËU1óPDÎ\3“ǾD̸ö ûˆ˜?&د&fe3³{ÄLüÅ`f÷ˆÙöóèn3:²Éî5 žÅ<¦{MC”ß`÷š³o¥äkšFËo"@Ù`÷ÀCÙ àXþ ðõÐ  ìûË—@Q8~ûÎË_’™ y)to¶&CVÄ\6XmÆe“Ó‡WMæÀ÷¿Êd`‡uÉ6³ÆÜ5u0hºb2Ä÷ƒ¦+&óÞ÷¿Äd„ú:µÅ̪1WÅ ³¿7hº"fú\uYÌÈ,æ4¿n̤ì1Ós8hº2fêýâ4]3=ÔÁ éʘi°åAJ¾fÌ„ D"fžÃAÓ13úÅe1óPƒ¦+bFÆ9h~¡˜Ù“Ìw^þ^ൠÅP7»iлYc·¦ -b6$=u íšÑ>õ•HîžC×Cë‰C'Ù[ -¦ïWΤ†ÝØ)m^ÌÃz ‡ÅXñ†vé¤D]=E¦””%:œëp·l<#2É̹±‘ñ&JJ¥nîˆNá*ÉS¢«#g8fOuèøñÛ»áf™_ >Fœ6Öþxq ¯MäY¯ZàWmoÂJ‚/~áW™q "¦ü(£&3´D{ƒ -Û ýîÝ·»<J›!º÷ò\~"¾`dƒºØ"Jųì- ‹žˆ„LM*ׯðmÒ) Ì.ȱ8«âŒËR #¤"E&Ä£Åáà›üd}Ý^çàçáå|ä.œeî›&á>µg#¯ŒuPµ1ÏÜYû‘»õ 9þøm›1}®µå)¤äZ˄ē‚9²Å \+¦ÌkëŽÅ0ê6U] ÎÇý’_`CjxÿšOT¤fK9œ^¦>ø/œJéMŽl?Ù =4áÛFu¬üÁ5ÍŒ `t¡†uænž"²S¬ð¹(¦ÈT›Ž³À“«TæìÇ$~p~T}€@Þ~ÿ:¸æ±Í¸"²Ê1Zú?ö«l+q-ˆ~A>$H 2†! ( ºUüÿ[u2¢´Þ¶ÉZ>ø’’CªÎÙU»ö®C<:-Vr­œÄTha€eÑ•ÅáM#-¥@ËÆ ~ŸXn¯"Ø¿±!«BM\…j÷TÕ—L€0Z@WÂ0^åñ?±,^Kì¯v[®‡HŠÜªpƒ„êw¶&¹kŒ9]¥ z„ =·pÑÇ)ÔUã…¸2“C3+‡fÂ! Ÿh2 ÈÇó -}Æï4 V(Ö5—¸N$ä!Œ·­á.®ìD`¾ìLe_Ù©ìJJWø0‘ˆÁcïSÉl>9“\²¹ù84®²öòçEëûÉw&þçÃÏ–ˆÞ éý%ÜgK -áÐÇK`/“ÓHx÷¢×2V}}ÚqY¾{Öô«ýƒ,6•g…8 QfáRd vÖ6¢…ÆÊ˜Sè@ô‘9ì~Adå–Z(™VôÞã+ÆÛžà¹÷UÃÔR䡇“T ïšžÏÔ@?$|ïšæÕò­aª C ƒë!ê°Ê`Ì…£º>0 GˆåSoH ÎbiYye¾\àô"Æùb”³)‘áS›2D1G~òoý;yFön“»‰…m·¹o¯I´å;·¹o¯ {Ùá6÷í5 ÿòÆmîÛkêlùÖmîÛk’(ïÜæ¾½&L±nsß^“¢w¹Í}{M81ÓmŠ?¸|K\Â?¸|K\xôqs8VúØÜqÊò¢ù£MÓ7._÷†ùyü ŽóìàåEZ`ßi8Í{FmáE€ßB…(¥¢Ñ:‡l_ý8šÅØy‰=?ͼŸ*¯¾‡Rï®) b°tyUQjN_º~½9.< x£tÃv:¡2Ø$È+6B„àaÿ±'øÙæ¯a<ŒDá³×§ÿœ_Ð%.Áž«ýËn¡Œ³ªZ:»ŒoÏwå´;ûþ8÷uŒ~¯ù3-ÀéGJ e.J{-ìÈVäÖé`;õ’œ>ùÛjºYêRË¿j3îþQÑÛx˜ÁÀ9Zª$Mp|ŽA{…gbô *[ÈA=w¸²l—{‚²i¼—‹\ -ŸÍ¬h[ƒb§†ß$BÔ¸#•à®T¶‰½|’H.P|y“*¥­TpKž ÿi",ûf âònÑῃ|§óøôîÒd–pñ«F«ƒÆ&2–èä -Ä>¨³@9WÇPÙC¸Y£±µhÉÊ…vFçé×Úý‚(TsÄ‚{%‡™iEï=¾b¼í ž{OpÔM=Áy$‹?sž`ù¹âáîÏ=ôXœ{8I-ã’2LÀ„ÏÉɘÜmÍî¾’Í9\]*QÞh•%Ã\Rg­þÌ‹åSoH ÎbiYye¾\àt8QX5f !VÿiŽ­äÿHôH ˜È(2vI ‘»‰…÷ãc!ŠådÝó±m;Y÷|,EÛNÖ=‹Ìo:Y÷|,¨ ËɺçcËɺçc)Úv²îùX¨dËÉîð±â.ß—ð.ßç~üŸ},EÛNÖ= Ær²îùXÊád?ö±pÀÝâ‡?:>ÿþü™`‰%¥$ŒÇ(µ°Ó¸ñët°zINŸüm5]Š,uåå_µXàâ+Æ6f0pŽ–ª#Q½DÐöá™ý‚ -ÀÖuOØ/šmGêJìú.@ðÃë]xJ£ÙsÐø%YhôÁ/®ò&§œ&]Í [a!¢úÝÀ{Æ‘=ËÌåB±Ê¢EÑùyxz¨4 -ÚµZœ{GJKûí/ CÇ»_H>Ä^9¥ý6BxDºÔ$ÅnÙQ"‡Ð¿ˆ¯¸¨~ƒàfTÌÌÖ“ò%V¯?¸|G\Æaôg±!3ÀéÌe2#^L]&3ð/Hg.“D±¼ÌŸ xMé—o‡ËO¿|O\ø³ñ#çÚ^BÂ~ƒ“»°-!£íL² ´™ÔÓqJ¸ô3‹¶¶r4Þ1]ì©]-˜ˆˆ)wT?ÆÞÈ«­ ¥óËuÉó@Ÿ/NvŦW¦n ;âõ ÷±ÚJÑ”§Eë²:ÿëðF½eÕ$vtõ`Jd-â”ȹØÈÒÎ!C'ŸxüÉ›ï€Ì+Ÿ3¸ç°Iÿý8¢í…Šü ÍD{‹Ê¼8¡×Úq:wQjWÂéô>áaàn}¶eŒã=“Ã"µaW*©±ò\¦ïü'2Ó×â(¦CºŒ¿^ß“RÒõý._Ä¥é÷»†ËAšý‡ ¸XÓ=‡‰Æô˜î9Lж=æÿt˜ìß;LÄÅô˜:L„cYþâ!óÅð˜î p|–ÇtoÈó[Ó½!Q,ùÙ¹x¦¿èdË˸çd(Úö2î9`KË˸çd™ÿ©“á¿HfMèÌe2¶D:s™ÌkÊý ™þŠÌtô¥ÿIfá\¾Œ‹>dt!ƒÀo5Í!ü¬.ô\­»c.ŽÉédߣÞ>“Óu߯ÈÌä$š]‡~ U·Úº¤ÇË–'çiZEêwzUþa8-‰#_,*rÉFZ³S“}©Ú©N=þÌÕìWévªÌ}Â( Š - §ˆ ã5jNâ5“Fãðþ·º%9s¿³VÖ:?òÇÅdwuíª½wmp±Üx˜ - —%¤öEÓ“ µÙsS§Ÿ^ø¨´ÙÛwàÚ¥”L¹‰øY¸÷¹WË£av"ÚD‰³¯&2ÄUG5KVŒ¿¬æÍâçMïƒKRÃórä¨û:²‘¶1øx¡ÍÝTfÙ¸¨Òwu@1"ígt ÙÖ^¯cëþÎò+‘µ…úSp;ßq¤£Ç`’È[‘Ú•“X}€# - !ÛMCpWilÓuïlh+è¦lØG \±­:ž¦(Þʬ,°ß•ŠS;Æ€á/{¶ß–ȳ='ƒßäTLú¯Æþc’I4Ïbd‰RYƒ™¢åùò9pž…@Çú·²ŸY¡…õÛ.3*‡OZ v×q}žcL·FöólXTt½öõq?¯í´Th½OÆ ÎÛñŸ:½Úß. F•þ[YTndETÖ-|–žÄÏB†,”îñˆŽ ãÊDÆ÷ ¼%-&u0í’¨ ^F„Á{½Œ…RÑPVBƇ„’ÐT3–Ë@ \ö\ç9è°v± ³)Œ‚Œ 4c>• ?:«­‰7qZ÷bEf,¢ÒhÿŽ,%W/î)\f¢¾Ä,.2ã§£ÁG]ˆ-1úµ)g3:çÌ!5÷ˆz~Œ–§f¨ÇO‘®<JfóE ²p¹9à<'ž ßÂ_|r2³8cð”H>zz¯Ã)ôøcŸà~Ùt· §×»ôŠŽ~‚ÙÒ&8ìÖ>ý}!×'³$·{¥U±^8~3!±^NN˜a'çVÈACâš¶6í…Îb7Ú﯎¹”X|“0#éd¸]˜µõ²&³ÉGå¡‘ÌÃ-#¬LÎÔúF½AIU­áÚŒþA!¬øNtÑ~1¡ã4®ƒ;]½9Ê^›†mµg.®ÃøÖ^Å–ŽÒáäL9Âþ*”D•sk°’q®öS ([vf•øßOBþÇ0Éüþqº© Séa+…U,jz·y"Ãø•úÓö?M2>ê0Ë|ß$㣳Ì÷M2>ê0Ë|ß$ƒyÌeþË$CŠ»Õf†ìUX¹ÝǪ&¶õà´t׿ø(už -¤°Ó¬×h3òsƒI ~ú~Úh'ðñ¤¶Ÿ -$¨Û¿cö¶¹u8$b•‹Ã~>ÊÝ1õ¨\ï‚ÏzRç1‚BDïtM‚ºÛÝ4z#Ƀ†9Ú¦]˜jQÛoÛq'ã.•<KIXöNòÇù5¥si¶a ;½¢I±†¡_uÖ·ái¤½Uñ@âÜV6뵤=cNî¾F¼NÊ™"â ÒÍ2Ì+qlÀ8hÔi~m0‹£\þ9\~úåÅev_àÁbœÅlfsr¯;ÌbÉöE¦¨´é,¸‹B–QOÌÇ´»×Ф%a‹äD5ÁOϤÝAmBÅ&“gÀÖ ÎÁ.À~mÞ;WîwŸÎ­•ÒRÞn°"§‘z¾7쭅؇î³=`RDã¨2Ëe¤Éçî‹›¨]hZ£ˆ æMÜ=ø ™¿Ô ®!æÒÿ0É'ûQ->ÊÑÉþœk3jÓ*ä䮤X]>àUxØ£nõ˜øŸ|½úñäXÛ;ÛF&!„ð‹ÜTuce/Stªº¯4Š·šUö_ƒÑ¹0×ëüÅX“#×-MMú‚šÎ%à'Úû¨] M''N¿P{³Ø°Sîø±a -ŸÅÝÑ(0Ó–Vž\ø]»‚¡£«FyÐ`w“×=œ&ó"†ŸÅ„úe¤ÀG!í¡†œSo_¤Cad§÷ì¬ø”ØvŒ0›Ïžw¢gWÆðŠJ{úÅŽFº3¢Îí` -n|ã¿c4HVó§?å5Dt)†Ø‰ÕÄÓMÌ­˜ÞÚéém(þƒË?‰KDàVÅÿ‡Ì|¡³o&3˜^?Ðç÷a˜þ›ÉÌGf™¿!³÷öƒË¿‡‹,\n~pù÷pÉ”9χbqò‚Ÿ¾L±hÅ<Rˆ6>*ig×™Ç7¦mätiI[?³jÓ~îé¥åjç[?=zÇœX÷h*s[$äéè § 7]çÙâÉ~à-÷;’ý’ù¶TUÎï&!ÇV÷¯ýúÃë{°¼E{‹<åÎJu-r…óxg»ÐÆÍ˜m›õ_ »ëÑÙGN-Ò…²wëMu{ +µbëÎÐægJ³õ‹ÑÇÑÂÍA_H4°¶ð†¯j|²sp@§f‡tЮ}·Vea‡Ð°:¬+íHËëYÌ)˜^lpù[\2ïøÊmûDŒq›FXáùå¢7'Ñzz̯qh4ÌNTi#qMükïHU?릠|Ú ¾¸m8²ì2»ò'<ùj*‹Ê¬ˆÊºeÁ{¢¨<ëEá¡k8Iê‰äëô©}Ñô¸µÙ©âªûd4H¿û(Û |xeá±" TY~–éð3lN'"Ò~¦£Y/Šÿ¡âŸ¡ù¨ò—ãJÔö[Óº‘‡¿m’ùUhÒ#+û¨xmÃÀ²u‡û¹’'HÛññç/Œ™?¶)b›þ,…LIVŒ¿¬NGV —KMŒäwˆ©]9 -BVìÙi»Û´ÌÄ`ÞÝŃøí9à›•0[êÞétÔTɤ<†ŒqŶr°†ð4EñVfeÁÚ•Šs4cÀ𗽊µ¸-‘gû>:æT\°¯Æþc:þ´Œ¤ Öžæö‹½D©¬AŒEËóåsà< ¨õ?ne?³B ë·]fT Ùn¨d Õ"ʇ{úíøÏX4f؆zÀlà.hüL¸‹tX­ÅŸ{/á¡ÑΈj|Y霬c,€V*k ^5Õ -Ázºj¡áMÿ2þ<~Ô…‡ày’ŸuºH¯çM ‰,*9¦¨ªÕˆŒØ4Ò¢›’Hß4R$Öƒv¹S_Ú•,Râ§£ÁGóŽÇ”Ú”³‡!âÌ!5÷P/nH`mM()ˆßÅŠ:¨&¤2Å5_ÒþiSX§^Ü—s˜„r*éý«@¶ùw8ËÉP@}ÇÂÉ@b_RØá;J©þeÚJ×oúdE܃ʧKÝ"‘ºc?Â(Ș6ë‚D- HHl¼šÈd|Ä“ªöôv>a…œŒµ’­ö•Œ­šM…î+Ï‹#ãq‡‘t2Ü.ÌÚzY“Ù䣶ÕkÄ,*¦”¹××wo×*;ŸU|ÿc¿ÊÖ’G‚èøQ„%aßÉȾ/êÏŽ"²¼ÿTw'$ Žó͘o¼ð&"ݤ«ëTsЦ¥ªÒ0ÆY³üÞy*ÓQ‘…¹“ÃâN©ÈÕUÖútZ[xˆ£r%[´…¨¼‡t[>é|±bTôPUDžUŸQ å˜þ‰(m~Å/ËRòxñœi> -{Kk ÿÆúÕ¾°p—£äÛg1ú'¦Æ‹]‰L†ÍÖh¥ø­ß#ÄÕVp“·0éLÇ -œ Ñæ‚ûºc‘¿NŸr«ÈU9’«íVÜM(ßhÞ†ÇlH9µN=xˆ&²?+ÔÛ ¾0:¸ð¨„j›—¼ E¦QN³shîB±(*éðÌXèé³Ò9¬È=θzÎ7°k` úÇâЯp“„34|)¬”%½kgé¾”-õù++8h&…IÆiÚF=c¹”#þW †¸>bd‚‚-xà9|-siD#y-Ûo”R‘jÑI¶ÛTrª¤½­¶’vχB.šÂÃ?8q)¤@šzFô~{Òð%/h’tÝœ—q-ÚJqž¤t5è š*V" Ñ‚s˜?ÑðYa*$‘‹î±è.£aQ IPf5Q¿õþI2Ë"¾øÃ,å‡à¾«y˜T<Üõ_V´q…ŽZú…D#µÜgnT÷cú£…¼£î\ -$«ù†Ò±"gž™y©‰ü=kÔË`«wôÞÍþâò#qá©G>âúâ6‹Ì­;a[Eæ‚Æ2c³È>Ù^ñÿÅåÿÅå3ñ‡SÞ‹ñ·‹?ò0„¤ìp}Hþm=cß$þiáz÷‹ËÏÃå3S½äßfñ'<Ö°Yü‰Ofm«Oþñ„Ée>p&2hâ3fLûDFï›EgLŸ1í4‹3æ÷ˆ Wi½Ñ<ïf9\HüâiÁàk³–hîj—ðvâÛØýÚÕѪôêM6C”kÓqR¾‡§6åPÂ{Ê9¹p‚¯š%LR ®gDï`48Eö{šÆ5ÛüGç…R©š ßÍÝ:~åΞߢ€ÆxDcHw79²Ï„ 2FøyÚd Bê­ÂO“ËŠß:àì¾deÑÌ­Ø{O¶&·ï4eu9Ë6Û·.uêÏôÌ~ÁÑÀ›…5úT;Ó}ãê(EP¦QiW2 ‚O QWÇ5Œš^/Ï—, É]pgdFjÌk3™]XfûÈ é‹1ËØGfïôÅ– ó—Ž £ã‚­ ’×±i<ðïõ ‰ÖÚc­ ÎN*Zp<‘öYV!´ºÁ¿0pêÓ=À‰ª[%ç¥òË5ß“fN÷†×Üãô^fŽpˆ_*UÈ—;ÙcÊs€_‡J¥geññk2– -–täš]°7uçËÙB´08ÈÀ:YàÚW).ÒM‘_Æ€{µ”8ŽÏ„(Q޹j0Ç}«&âä|‰å¯ëš†xS>?ôîetmTJQYbu1ê?OÒƒÓMÂ<ôâ䨨<¦™¾Æ+à¤\*Ðl»‚ÞØE­²‡»ÜF½i‘ÞC©ü;c*@Š!°Èá0D}ûp*“¬ŽÐjÜ…8Ù5Q-}gÀþЧ2B^¾á0¯êß].Îj¯m赸[ðu©âñ»Ša++kHo8­ë¾±=Bó‹½ÿtû× äPQ ´«V§ôÁ»ñNO «ªµóJ±M S.ëe¯œÜÃ’Nˆc¦Ÿ!'£_¤6îy(Ñk„>üù›GÝ¥éøîÝ”åšQø¥pÜžDÝ%É/]o"ÔË+ ¬§! âh¶IñKwS%Š,ÈÕÒ»Žç°Iždà7ÝX çlTEUªúL˜QˆùÎFÂq›tk´fýq© »>~1Y̦Îxµ…ð*ª -czu,wPm‹­ŠÞÇÉ mŽWÊ÷Az©rJA½§.Ÿ0Œ5”÷Ho_²O½™`§ô.è—©`†òA ì—df D_Þ‡’¯™¶|kýå–î+Þ‚ïòé¦Áæä= 0zëÕÕ endstream endobj 198 0 obj <>stream -H‰ìWÙrªJý?B#(‚̨hEÀyžÍàÌàôÿww7ÉÍIºuSuÎKÐÐ{Xkク‰… µÒü9¦®^6“2kä¯×¢P_p¬¡w°{ñÅ+ãúÕKïð,¿2ôü 'ÎiéõûEŠXO.úÌO‹çîy­‹‚¦2BMK&}”Ì—œXˆ€Ù2/–® ·å0k¤ß)u«r-bÔ|Ø)Æ;sùÎæ¢‘Ö—èJ5ë|-™pŠýÌ [­à£X=éfî»NÑ6™ØÒÞOu{ä;Ù‚",áÍö»÷á´e}:»/r[ÿMÈ–CFÀÆ)KYJÃÂÃÂú(ɹΆQ² áð±ÞKù$ƒÎ©ª[¹‡ÄhœðpÏçdfu«Hù[>Š…éšÃW$csZfÏâ3´ÞÚGý¾£éÖ˜ðPu÷+81ÏË̼ܒ"YG)§áÛáF\4xZvaQ¶C 2æEP@@¼=ËŒ™I¡sRŠÙÙYÚ®\äoF³'k•¸HˆÂàùb³‘·S?7žw`¹ùi·«¡Eä•JbÇš½™ -l5t¤O8Vïág¯„Ç@£s -]fš•ô¿í%–Ùö>øèŒæ ÎéH¬Ó²å~"ßìo3¹Ç© ‰Âpªf_Þ*[´1EV¦;ÝÛšÕ£!â¿ÂmWðBŸ Dq1ScpìJ¼™`B”WmÊát¦éNzÜÍ&×uª½ÄÑצºU‚M”1ĉ9=´±Ê$óÞme»Ù¨ö#J‹±<à~µ-F«(W0sÈÍè¡ë­Pm¯)ˆE óæª'%?óV.¶—l7µI._C]÷ÒQߨt+öà½wi?÷ðÔñíøÎOO—Žöæž¹IºÊ” y’¯ä LdOüÊ^Ì誵lüföðµý^±¯ä#Åì½[ Ôafî䎇LÌZñ!䣥$½žµ¸O¡Mõ !»5d\RðfMi/˓ڤŽQóøòà‰KÁd ð—?ýe÷—?—µŽ»% 25 OM"X -0I°FŒ)%šz"ïf›¹+»\ô·až¥ ›‘žÙ&ÛîØfx>’,ýRƒ%:<Ÿ€^Cm!+¸}zó…:Š‘&šÃúa”°— -:vqžö{y8\G®&’2ksÔÞ ŠE™ÙÏŸ3©Šƒcésg[v!Í£g<ÉŽ=*J8tÙ¾«Ë^Ì»'{«X %‘ZÜ2÷¹m×s#Œ‘Š÷¢ª;©Rú‡ùBüQÛᯄÎÿ2üYàØ½`³à‰ê#Öù“·±n:™ËvéÔk&%ö‚Xæ`¥­fsË*VW¥lj5M\ÔýÉMLˆÅzÛæPN.H½ „NìuÅ/ìMrñò{¶“}íü¬«È­;f®Ê2s7xÄh ˜TŒ…òÐ0ãw‡­~Ôƒ¤™ЭpHBäD¾I£˜ù1-FQ[˜^Ò±ÑKaeßSÛNæÒ¨Ùò@¼8«Ì' ŽðÓpµ­~`ã™]MˆŠô“ R¨y¨¨Ð“N¡%|¹Ù>`µÂ#Žßqùqɯü?ê¤Í~nø£ŒíÂü_\þ3. ¾"³ÒÐ -¡cÑDà¶ôB¼=¯°vgÇÐ Á'R>÷ÕPí¾ã/ðÖ–8áÙˆ‚)];¶Cìùûøy¾§-KžôG%áq¶t¤»`<Òî* °J^‹‚l³Fƒ\dk¤ÎB·Z½ÚG+MlžpçÃF™gYã¢Æˆ÷ÉA==V¡ý¡¼l †Qôô1”ï€<.,-±4«DIÒ ×€·1ã=<~<»…Î>›ÈÈ|„à2+ƒý‡ƒ"ˆ?… -6ûɨt{ÉÈŽÒo òb©áº(981’\l…5ö2¥Pûb ô¥±¦ÞËã}K‡ä§â¬ÞmqçŸ:g5vðÄç0R>w%;(<»P -]ëwNÕ u• -K\Ï_<>«4JõUxx‹›^O>¼ž€díÜÔ/_ÿ­ •kyEèî_ñ‚8v¸ö–FÈõˆ½ Y“I%«Œ$(tD) -ZÚT‚IÞ”'—º-E)±ybT9¼¼²e粟Bp^£´•lßÌ.ÙM§ a  ˜mI\e«CïûÂc¾[:0tjJ^ibš:Ñ™äa¨oð\÷hŸ~§NÒáBs,f5€çßã#·FîÈ¢0¼ÙxCT’0•ÄÅtü±«òo¢P_p¤bµ]˜P«Ó@D›Éoß»%оu„ûÞˆ¥0In¿wÆmiû½#¨”_:‚z2T:;òåK¨6ˆÌAªà«åØÀ-¤²^‘¸dQ—#þêc5î€K%é]‰˜_‰÷¡µ~ ׊ -gì·ýø×B“ÏÉ8T¥ÞúJ…´1éÉ?£ŽOÚ¬ü˜:>icõsêø4¹q‡I®ÿƒ:FÕ Ð ‰¥á ˆŒjŸTj·,ê*BŸð­&ç0f&uôÖÒvà"3š=Y«Äüšž/6y;õsãy–»‘Ÿv»ZDð&±ûô[kèùAu˜ñ>t”bS˜2Ó¬¤ÿm/±Ì¶÷ÁGg4oˆ?‰uzƒFC¾Ùßf<4†Sõ„²2Ýé êQD$…Û®à…>ˆâb¦ÆàØõŒòªM9œÎ4ÝIo˜³ÙãºNµwSÍÃÿ &þœÚŸ!ñn+ÛÍFµQ²X\‡’¢VXY#GŠEo2h®GImßl°ÃD6Â3»žtb±a? §X7Ìe»tê5“{A\Ÿ¸?i«H‹Ñ?ìWëVâJ}4@ ¤ @$!D¹#(à(AEÑA.ïÿUwç†Ç³Fg¾¬u~ÌŸhHÒÕ]»jï]ƨÄ$îQ)ÝJ Ëtp;šŽO ˜íÊÚ/—û Þ@ø$ÞT{ÊÖ7•~å횺hõ&vgLØ›:bï‡+Û÷%׃ëÓKÙ{Ç,',cÜÕ°Œ\óvq^Òµ.aÁ¤]ÎÄ’Ž:?; gƯæZ`výòYi(UêCáÄ'@Wz0ìjÒÿ—Ìö2AßÏÑ…x&Å×Ñ…`AÎâçèb÷Ë”د,Âð)ƒ fÀéO8œ÷„]9?À'ó;È­ñOiˆ·´Æ?¥ 0®Öø§4.ö”(¾ù¢4Øõí£IŸ›G!£†¯M®Ï¦0›&À¸FÀ¿¦!½ÿcÇ7—ͰJC§$ª5þ) œÅƒ†_Jãé—®Jcùd×8ûBfý#ãì ™asdœ}!3o¿Ød–ݸã™0mpÄÀGk²[’68]׼⦩’Q q‰Ñwb'4rÍ=9‘Bhš1ÙàÐç©ÊYN…=(‚ȉZQxÐfe+ÛPÝq¥Cê8ez¨Bí]µð×-']RT€U:yü ŽM€H8‹-• ·©é}çtY»ÏŸÕµ|"cf?ÙnÑnä&‹~€?÷ã`ؤñE',ïÝÊ"¹Srµav{ˆ8ö³ï±ÝFñŸñäÇÊåátU/:©±¾èÔØÝîÊ–tŽf’G:ÍÙ>gkj;AU3VɾÁ퀷> -Âr.e`Ñ[ÉU.ÈZ_2U.ÇvéÕHÓã2kÕæ•ì57Tü¡"á‘þq°n»íVÒW® ~tãÐ JïMÖ þ³o^¾3âp0.¿ØþØá˜/ lìp°SúåÀöÇãšíÆKâ¡ikÚþà=-ç™…þâòÄå'‚¿¸ø…Ë{ŽÚ*Ži‘¨fN°Tí±€½»9¹fTºÚ^?^‚žÍíV)ÎŒ^Š_öõRt1ÕÜY.‰ÑÑH}ńڳÈÓÒG}6œ!&g ùQ¼rdÙ×ÏÅ £È£¡hTQSÆX¢¸Î1#jžŸ#ö°x)Á-<¸æ<t³˜Ä¿%ivôñ¹HŽôû6²Î¼–¼ž¿°¼c´§ôþʈ±J!{•5i“Éyô…îFº<¶ƒ_gzý•øÇÁ‡â`øBIê-iÚIwÂÊ Šy­2ÞÊáê”Øœ$¿K›PÉë9kl»â9IÜ£Rº•–!éàn”x~ çä„ö Fˆ:+åá“xSí)[oYéWÞ®)‚êMìΘ°7uÄÞW6}É‹F){ïÀ”° éjØ_óv -®ø¯ÆgN’r&î‚Æ8¡ó³³pfüj®õf×/Ÿ•†R¥>N¼5À3Õ‚áXRûà8EïÔâ&õx~jˆRÌ"rž -Oû2Æ-A+æv÷Dü -`Õyú]2Ãtæ3™.˜Î|&32WRWè#™YSÒ×Ä_ŒüÅ忈K(ó›"`ˆÌø,2 bXf|kzõYd(úèË"³œM"ß™CdÆg‘ 0Df|™c»&?E{«©¾(2/‡ï“Dq<³d`\Ïì™s<³dæ¢ï§ÈüÅÅw\rËì±–Š+Jk“¥½Ï–Êg¯jzß9]ÖnÇógu-ŸÈØõ _N¶[´›¹É¢—ûq0l Òø"À~äý‡ÆUrµa¨÷q”¦ï±ÝFñC¼åÇÊåátU/:FPŒW¯†&AÝîÊ£™äAÜís6Lí"VɾÁ퀷R0 -Âr.eˆ"ßJžÂ@ëK¦Ê娮1½iz\f £Ú¼’½ÓŸ5x%ez’¡ö®€:áWì-åÌÑA÷Xáq¨‚h–zHxȃË_Ú -š)jÉqŽùV:ŸGìé£jYÍZ=)\t ;tÍ]|2 {û:¹°k§è®,Xnø2£HS ŽO ögŸ=°Ò{‰ «˜;RŠÕLð1)æpžaÒñâCh2.gà“L¼Tàƒø–‡Ûy6^bå0Ò7yt»gÎ0yV½&`0äh¥BLä´AÅmbøMf„z~S‡P†U6Æ$"\ŒU°¯‘ßãìÌ©x²x1œ—Ã÷8vã -Kˆ\~¨@gÙzôµ~üõÿد²­Ô• úùˆ!„)3£ !$ ³Êä€ ŠˆÊ èÿßêNBâQï5w_X4ÝÕµ«öÞEó -Û—R«ÎïâaÔ#5KêKvî•Ò¨_.޳ާ÷w¼ºÿ¬ž˜È\¥yÛù·®š0Sw×AAŽzIçý¼"t%?¹¾Œì>õ@éöÚÛÜÕ¥>5)E[~ñceŽ‚BíúZ©Â—£´;V¡²Z<Ì<E(‹T€bÂðØWFdRýd¬ÄÎK§*ê¦sÌ–0Î,ÂpAæ&ïƒä ~‰/ñ7}ìp¢_+— -®ÍB‚ù8(öB5V¢’ã¦ã¡dP´ÕÓ1ÜcP äp”†Žo©;ÛZ!ç1¡ I0k –‡ 7šÓ°AæØü”GÔ“crÌž‡—PYÍŽƒ5é#³¦lÉG£`ôP 1+”Ї¡XÄ_> $(¾ -„p„£é£ðÇœ°ŸÂ-Awq.b>ß'øù’ý´@W¾_þ|ŸÈçK¢öÄü‡}œì:pÛÆö«íƒNiѺI¸à, .Cî¼ z¨ŸrÉá£È@¿Ð’(~ üÚ!“FB ï½€SŒWX_M£b2§±{ÒWLtÈÐ‰ç˜ ofd„¥d$9#£ž^—¤¦üŒT’}2\ïiQ±–ômwqì5fÔ ñ ¶yy‘Šs¤*qôB4Õ tØ´`ϱa€‚­0ØYKÌ–¢ |©æ‰ð¡Çø‘¨Ìo2€>[RÃFÁ"Q0K×rsëZ„”:èGa†l‘ÁÓ«á®Xvž==†O5V(ô‡èdoÄòzW>|~u,ÚŠÊ•±ho("(WÆ¢½¡;¥Ÿ‹ö†"„¾ cÑžù&(Wì÷žù&(Wì÷žù6Uì§Ç¢½¡Èêý¯Eü/.%._Wqù_qa‘ä',q,Œ0¹|z;³ä×–oZ\L -O oé™á"lÆ ê·m¤ì¤_ïÈèƒO¼î˜àÒ8ïþ DûFoÁio» 0'µÌûó3З³7ß\»¸mq >¤uûe¥Úë„ÁÛu^YKÊbUÛ câ^“æ‹I3vØB'Ö¼ø¤ÏqÓ‰þ]H–OƳ¨ðtFiá$s¢ºçj1”`t]«wN}Aà [9G¸OÅßöü_¶Þ0ØjãRâ¦SäyÛQG¬<ëÝ…:é—ÔlIwô#MZÁ]°í¢×?¾hƒ‹¿’þñ À‘Wº#P£@èKçÄìälCçq‡Î#¨X¶#5”øà6`"xqFj7ÏI@ãRØ¢1sÝuÁB£vÀd¸™ÉiÔ@yPãÛØSã;”èï.”maœž¢³ ÒTÛ½øä¹QNÛW´6‰ä{v¿àh`o~é]ÞûRÃjž› ‡!Êño‚0jŒš† 4*æÑÅAÁˆóÿ>™Á)ˆÎ\&3‚Âtæ2™¹Lfè ³ïYì—¿zº$~KdÐ) 3.‹ Aa™qYdðü2\|Š9c~]dΞ©o‰ T2’—E† ð‰.‹ AŒî®È \P¹Wdß"3p°[Ïì™”í™Ý#3èý­gvÌ0ó›žÙ=‘ùÅåÿÂ%ÄÝñž˜ëxp³ÓfïŸ7£v¬±N&¥*zIPù4×(Ÿ­£ìF.ËO“[ñB?o‡’ÿ*ää†ÌM=Ò›¨Ñ¸…ÕFE9ñ<†Ê®™£µ•ògŸ>Ù:q¤ÞÇ«k¥­,{‚…Ëàµ>d.«sÓŸ[h´%'¹øÍ¦ˆ ɉʢŸ¬•‚‡¦tâG·ŽZ4ƒ ã"RdÇGþØÅ¢üT¼£6íüQ®/)Õ>çu*P“aÒß6õZ4/ŽôŒõålésOxEê–>ý£v¡1*f°¹ÇºÅøýâòâÒê.¿*þeϘî‰?0ÌöD÷ÄŸ ìÓ=ñ'({Æü®øO1Bì3v°¦gvÏ1ÔŽGwÉ1#Ïoyf÷3AÙžùûŽù— l;ÑÌÞn³y ‡Ð•f´ "4D<àö†I)¥9ßf×ÛÎöÎ|3v2õe͆»Ë6ßÇã\Îc€“QÒÛ|CO l’=¦2|éú–ýd¤ÄÞ¯G¨f ýÇ.•l²ì{°X¼‹YµçLÆhUóÒß Œí½ -VdPaXž¸Êä¶•3aH°žåîê¤lº>\YÞÃÝ¥úyà,LÆqÑP]»nï §{Ïßʰ<´RtÿƱ™óÖi”Ôw7#ÚŠ±óÒ©&ü4p2;?of‘gœàQqªÂˆé'D_ЇrLšFW“à]G¼èm]Djxõ, oô8tÓsË€=ÖþHPè;è]Xcø’zÉnÉžyEèoôÚ¶{„£Ò>Ü%·Ïê–LÖ—€_<·³8AqÓWúew‹ V;ÊÞ¶‚&¶{ëDEÓšû;VSë*øšZͬ&}HÃ~}ôE»zÔí§\5°¨î>óCŒ¡„“©ÐºJé¸IU«Žgwµ™& ^SçïâðÉ£©·¶:¢mÞåç«m/¡¿Uør”†"MUèÔχg³œR\$ËUYT‚I]i1Ô%ev>éëüÍIg„'"(‹Å@.ÈœÀä}p+ÁÏ Ãã`ýD¿¦³so\áªj< ÐÉBRË5Ñ—®ÖP¿ÈQÚdâñiÁÈòØÓ|Áq-PafMÙ^õ1xË¿ È7¼´JKÝö6j€Ö -Í <&8e:îÎ ÑÇ6§ac¦Ãö´<¢žÊž«?ßbí@Ì»ì†Þ å} ©Í'äøÊÆ»¾w¡ ÿ˜ôÓüdÉ6³H_>X„îþó>PñÙÈ'K€ù£è.Z´—àƒK -ýsîà(q{PÌüüò |°ð 6<ñÂ4²Ä° 9•߬€’D® ÊUZº?«ŒðØF -Ÿ¢¯Í®D3ˆÑh^8KÀáêË¡d,ØÉßu´ãbŽ‰Í”›“—SuPI4µ—ÁU ´^ἡ”cí -%5Š'õñ¿-‚?<,`7^ÜúY<š,7S_r™¢P±…Þ§3gA´ˆ1ö1Ô°”ÞL'… Ùña« k)óÛÖŠÝÕ¤ÌöâÛÛaBÆ> -ô_Í4÷¯‡fÄüï§šŸžiêÐTóÓ3 öc連Ÿži¬ŒíN5?=Ó@pÏ?íMÝßsÏ?í—îù§g„þû©æ¿Ì4ˆ§…_\þ:\~ûå/Ååî:ÏÏðD £fqòy3jœ±N&¥*z™Os]Ö3¬ìòÓ£ ý¼JJü«“27õHo¶„Šœ<"O¯¡/‚²]œ×áœ7RïãÕµÒV–=¤ÈI¡p¼Ö‡Ì%ñ›þ<Ÿ®‘/0éö«l;U`‰~¡„ˆŒN8+8%ÆY3¨9jc4QÿÿVwƒáœsï¹q­<äÅMÛU]»ªö®°ÎQ{ƒ±*YÏ'~9ú¤ÇPƒ×/4$xû‚sõ> m^`ÕÀ;í’£ˆ.L3t|´²žôµí2ùA”Lpä: s¦ŸÆ‚+Ø?¨”!ÿ“ K421‰!9†7/9Þ²Õä…š4â…v©×*þ6Èœ¬õúšËÞêùp»£ç™ÙH*©™üD†oÜ$ Ò²#b× ¨¾ƒf¼ A·õØ{…м£WfY¿ƒß@2Êr#‰Ð=h°ûÙò€ç~@³˜•åÑ*o#4ªH$ú¯sÙ¾õî1ê¦Ez~Ã.´ûØ®gœ²¹t¢ 4ŒIƒR=õB¼‰¶É@òAٯ㹶õ_‡tVë…?éD´ÉËì¬ÖBcïäËðÕ®è#üàò-qß‘ŒSûÇ%…iæÈ$ƒuòyäÈ$óQ' Éö åN2p—Ã,s¼IÆç™eŽ7Éø(w–9Ö$]û(w–ùÒI&ˆ»ÍÌGÚÙ‘›©—c73e«£63[[£™I?¸|K\DhpÃ&Ÿg–9É +Î,s<’ñQî,s<’L>Ì2_M2JP]&~pùG\àØÛòQpqEÙ.ÿŠ Ñ00rºÍ „…ÉÙÞ:£)BC!ЕÖÛ3»­™2þšÛ0³îáŽÃyübÌ9:¹4R,·á&Φù,ØcEÔ -™C¼¡ÍÊ‚*…—©¬dÞÌ…ö-á3,…~ÎlGËN•œj1 +ñvûÞpLÖ&tâÁöÇÓZQ\HV[w%±z{ÇÆ²„×ȉ‹†?f–û'g¬¸H -±òUq%Kƒg¡2ˆ¶NãÃÙ{ ¶3ª¢ùN²CHÍX{c#‚úöà,‚¢»¼1 F› °]ÚÐ ïµ$MI ¦ËU…ÎÔjpçhN2»LT¬š‰}´ÀåTâi¨ O6%‡†nJyq¡=ʨ|®Pð«p‹Ar¦¦ÔFS‚k$T¸Ÿxÿ‘ã’)Jñµ“@yPSÙ<Ò57¨ý…¼…„ŸÎçÑzÐFBðC=a8}”+K Dç¯x€"Gä²ÊAZÔ'ѤWpÿª„Gç4µƒ)4k5×hŸ„K]œOÇ F ¬ØÍ\ÚüÖÛ‘erógG4?sÄ3WF~ëŠãHv÷7GÌæê³-o¦¤œÙ~þë9½õ_· ߇rìæñëïÎù4Mÿœ¤âüq¾òQö‹²ÂY,•’ÙàþÖ)¢V^¬6 ^kŒA”k{¤Õ³™ÍŸ|8DßÅ&^ØÆ¬°?íÝrEϳñ»¢· øQòFrëÇíцiÚ*ýM^“É«>"è¡Ãb‘ï´è“S»Â±ö3Å:ý©ž€ÀÄ8á~Ák2ût£Ýð›_¦/œKî°OÛšŸÜУRþ Gÿ‡9îòÉ$ðÕºM|•ÍWëd売ùj]cãòNÙ|õ€ÙQœB£ýBá&…³ Õj€Þã­$œl3ánú5u÷ê™rtζâ÷þЦKû¹ûÇŽ?¨'v~zzàÄÖvÓÛ“–/5 j2k—¹dGüÌ^<מ×3ÆÆoÔöÛ¥>¼”1> -úaSrШs˜f4‘¸mñ¡ò•Î’§i Áá;+toU<¤E«ôÄßϵε¡?~[+ècåÛH¡O¼õ–’ôìémïB!‚4Uƒ¶b†Ë¸¤àotqi/Ë“³É9F ÇåØ2À§‚©@à—oˆ‹ºÚýàòqyQ‰¦ ä“0k†áó’3’°Õä…š4â…v©×*þ6ðYÖz}Íeoõ|¸ÝÑóÌl$•ÔL ~"ClÞU}¤¥¶ìæió u#ˆ‡U‡Êߨ+„æ½2ËúmF$£,7’I9¬sÔÞGŒU©Èì~¶,¤ëþWøÔçð'òA·²ÊA£õ¢‘Oü:À±!¹ÐÒï »öAN˜4º3ï¤3N‹QD¦:>ZYOú‚ÚvÀJ&?ˆkñÄ«ä:h&ÓO»cÃ;„Pˆ^ˆ&DEz()"‡jc$=é$j4½¢Œ¹ÞÞc½=Kªnpù~¸äN2ÔW73\•®£Gjf`ÅEãhÍÌGávväfæêdO3‹ÿàò-q‘~pù–¸ð?¸ü3.,~"\™‹Y¡œÂkuE¼õÊëvÇ&§ZÁGBÀ‹îVñQèûÿÇù„#Ñz( -Xúì êËÄ^Î|P¼Ñž¶J -­Ä-á~‘0ZŸ¦ÅÓM+ôY¹ê£äÒH­’É#”lQ²ô=cŠS’w•ÊÈvP k$‰™Y+AŽçO~Öö€+×3h_UâR79±–5á.·ŠÌæuЖÕfªqäÒm½U‚˜PQðö2+ë+ÕÂe/Š ?B[™¹ƒ„- €D1…‡f%+.êÑ„ÄC:¬ ÷HÄ•&³… Žó¬Ì§ã(ésNYÄqšB¨ý{ècüدҭԙ%úVQŸâs~qùOq9ÚçüâòŸâ" ;2‡cÞM2`É Ëì¤ÔuÅ9²Ñ¹ûîð55 9Bhž9ÐxP\ï©]ŠÑ*úaЇÖ_5ε«íÆeSßZ3‰­cø<½=Î µ›s’í>UD„†ß›m¶óZ¡ÕêK÷›‡dz2üØ@ÑÞçÅZ€-X‡…a36gø—aCÀ‰£‰/o(%-xÿä6ìÞPÙÇ·0 q+YhôÁç-R&En&¢f†5ž ”½Ë°XóÃ÷ýšÃYËLó]³ -±–šòcVN×ïõÌÔþ¨Õêw®ìЗlmûG{ûgß%©‘8ô>º""6q¹ÃD ÿF’ú¥~™ˆ@Ò*ovž„äŒØG™&är^2Ãf—>ÏBf6š( ó’Bèì2ó"ßü™Ìl´I.ç$3ý…>ÏBfȽâÔÏJfØ‹íX®¿ ³_\þM\ÐOá——#†?œb ãó ˜/ŸåÆY†¿ÆãÿÌßԘtÚð/6¿¸ü‹¸¼¯qùqYËHÁZâõlbÙFc¹|f± § ¹|f± ¸'Šeñù!)ʉ†•˨±N™7Ô8Ž6ЈEÒZƒ¹˜%/Ä&”€z³à…•šW§Ã'&ÓÕ;uoXñ¯¥„ZRÅ‘]Ùl%’š¯ÒèF¤_Bñ]àÔЬì4ÄííXçõÓ/ÁÂB«k³±;©[σÞco ûØž˜hÔ•]4ÁG &Ÿá_ªi»¤–`^B äD®Ê ¬y³œqYt}aeÝ÷ü4óL¯êÉh¢­h…¶èØURQ… (¾­®?û3utEø²p“~D2ý五™~=„Pó‘z¹_½`½X9ü›æ»ã;GÓ@Yó|Mƒr1=æùšߘ•úiM#‚Zë¨ûó>ûÿWÌ Æ-Í|>Ål£·šù|ŠÙœ/ƃ39™_\⛳†nÛå1P9ΈÖdA„†L n/í“›(x5¾p?5¬|å@uäŒê¡+çwçK°4HÄào‚µ¯ezs„ý:o|Ã9dæâ6Z€¦l4B°³ þ¦÷\~.ÒŽÃHpç­gŒðòL¡£²æ4¼žÁ3:*õÙv’<³èλ`ÛÇñ|1_¿ Uñª|Øy6qèš”•ÆéOïõB2Óª†,µ -LÌ%¼ŸžËÛàl4TŒ7´Ë;†x•»„ Œ¤ øÙ§Í²¬?—¾ýôÌ!;pÈŸ…Ä«ö0ˆŸáù‚CöGÅ«Õ:²Í]e+ Î쨊K7ª{íîl»õ éO^˜ Ç—þܯú}´/-õÞ£E„´ì‡"ʉÏÅEµsj£T9G0é2“\ˆWZ\Ö–ýB_‘SLU—²T G1R°<••úžB¿¥³B+s4ý¸ÅÑ ÷yÜ"².8"_°¬Ì÷é鎽ˆW˜w¨ä½¼Ä† Ñ5°ilAoåD÷á7¡$© 4$ö©¤­ªô Dù@ÚòçPÖñŸQ6ôÿÖ0BIn’«¸6tJîfvpŸæüà+Å_1'r€›Â -%5‘XçùμI^¼ªè:ü,¸ à®FN&Ý‹l -™‹{ÈÜÿbΰ7ò†žFò¹‘½Ì$ØÀX{¬âÙåCäAȧ´˜¦Q;§nèr¶•j^ÓJ)S5…ö¶Í¶ZÝR°[SA–ž›·©{®g†v.¶'É‹"µD€)Þ GotwþòRÊ$‚æBËG --SM#UÛÌÄ["|«bÍÀ›ôß!ô]_FD™@÷ýìWÙZòH}‚%˜²!a_ÙwEAEqùYÞª;+Ž#èLæóÂ>H7éê:Uçœ*­ówĶ›I¤’6ŸÚÀª0ݤe‘O\cÅõ1ñ÷&(Í jF&ÌÐ ·Ìáh!Vª,·¢rQͶ”«|åÂÝ›“,m6©äpIÓn>XŒø\4†àð P4¡H¶ž½_Ó8¶´”ë~ì༌ÙÍ_,’n¤•‚^-5¡!ØÐ ö‹' ÆS)É¢g¬ŽÐè‚×R¿múwŽM|Pñå u§<„w}õŒJÅ#ý §¦NkDÔÖ/Z4RçpîÐ!ÑN–ÊÖ=öç!Yí?(ù²9Y`CDYZTÚh’aŠnôžÞB¿¸üH\hžyS¾Kf0‹!:s˜Ì\¦3‡É 3 . 'É é‹!¼ÇÈlø°ýæ$ºoÎ2ÎM2€‹9Ë87ɀЙ³Œs“ Fߨգ“ŒôM2s˜Î&3`KDg“àb6¬sd¦¡/œJfÜï¡¿Nf.ÂòfΑ™‹°¼™sdæ",oæ™!­<˜"Ž‘à÷‹ËÄâþÅåâÒ|Ø}]üá¤m‹¿‹Àòï°øƒOFòï°ø[èŸ,þA ”Jª€Ì¿‡DÿYÝn6R~…REãSú Q(´Jµ/„ɺrƒ ƒ =}½ ÕÆ1öKMã",Ïì\Ó¸Ë3;×4.ÂòÌÎ5 ÂÅðÌ_hš]äKެé™sÌ.ÂòÌÎ9fè}Ó3;ç˜ÇLÏüÇÌþâòm\(üM32 ~³iÎàgùÇŠtßÖc ÎN*Zò=jís×÷…Ñêþ±€3ÑZþY¨ºÙÖí¼TqÆoÑg1àñvN$ÅóRèá.¢Šd~çÊÅjŠ/±‰¶è‹Wªõø“ƒ-*•K;‹O_‹Bn$–lÉȵû`nšä3^°O|ÑÒp¯ïdk_¥8_J·î.Ü»6RÂ4¾5¢D9Õñ˜@ùîsºj+,Wnª*âMåÝ¡.">~ž”š@)ºÉpº žfÒ‡7àÛÁÄLJî)N ®ul°DÒí/€»H÷»5ôÆ>j•Üå:J§b'L/Ý2üœˆðGÆ‹³ëótšòìDbÆôÕø• šp§Þ‹¡Y-ü é¾:ñóLl‚ Júº:!B9tTÁ°µxF$„)5ÈhÏ̶‡óâªß”msMž‡¹rãÙþŠå.)Pë›ÜÁΥ̕óˆíÙÊ«f…‚p¯ì›È"yÙ’M!€òòŠ^ž ¨g.Âþ”Iƒ=«Ƴû†yµ¸îk$}p!™à™êÕá³8œÂ3J/k>­I[‰ië¢î_NüxÕY¨&Pç”!¤›W‰û›ì\D½?ŒDù ÁAÜƒŠ‰d„|;(¡êÈB´É4b‰L`Åž¯y¦w•ÉÍ\˜@†xú)³Ói®RèbŠ0ÞιåS ²x–ÃõÍ-gIãd£‰ÏqSAÙ¸÷Àº¬Z¼©ø¿æ+blzÁ¡ÐÐ -%ƒƒƒ»àÑ­4%Ö6O ™¸kcƒ ‘ÎÉ7ÂX`µÈ~m¢ëþßC‰l¬P> $Èo>üÁ“€A]ùq(¡£9¡Ç·Px‹‹øtÓÙñ÷ÐÇ·0ØÁÙ<¾…ý| FŸúçì VꢺSNoŸ¦_Õù ¡b€dÏ[§€åèÕÔ6 ˜M‘&ñ&ðo6]ÔÚZøã,§†Õ3Í&xp¹ç¦[ž 4*Ý»éµTuCþ©›N=•ÝôÈŸÔ†¸CÂýt¨ˆ ÝEÝÊϺP'öP¦eì¨icKÂïÁªÉ«ž ´}$!fW·I.TT­H±çÕÊÕ°lPc3Ï®hÒPì+Ò§Î>.š~xæ&ÂBûxX­ µaaØ`-i=ï%cJ¶GÆ_2q®ïÃî‚ mÃ¥ðz¾ ó#uØ¥£¿Òáz˜[z¤=ö›}Ãé£RBÉòjƒ²t ºGëqœ7U"•·l7ûr©¾ÜÕÙ dýª"P·ƒ–t|JW²Û·täÖôuAÝõTì—!ãâ—0å[$º3kL%Ø=‚ùÐ,AžžKëü±íféä"²•給Bô¬è&-BzgµQŠþج˜§‹k‘Xø/DrÚ•‘ âB7Žœ -š&A|ÉeŸê±M×÷-—}ªÇvÿÆeŸê±á”1ýœ:ûà³M?ü/.?—¯M¥¿¸ü_¸„Ј8–Ú ¨t&nަ¹ð®é[Ç£ùcn-{e¤gÞÍFØÎ@È]¤æ#7©öÂèƒ —ÁÁ¾£TðÛƒD»÷›àtMÆÎ T«šüûyò}¶³÷­ -£E“Chðt¡?(e+——Sa¼¿É¸e5 ñÙLÊ>¿V·hiÆ•f»¨¾0o`ÆfôYsÞ éŸ8n9—Àµ‡Ç’màÖ¢ÀD©–:í•<-S*àR¨õe»¾ pЭ ÁÃü#þšçZâªu6ظ”¸åãyÝ.k‹–y· ºßÄî_ü=5Q^5«åë‘næá± ¦+²s“³{'üª¢éÕ T+ÿ•‚s¢÷ r–‘ƒó¸Î;Oõ¤z62^tüFwáöéO°¸×g¢1Óý·œF•±Á¤¹™y›ÕBÎSû6óÔ|g‘ì?gͲhçÖìýY¶¡tÇj~í¹…SÚÝkaÌ\Zý‚ãwó/öå!”"Íjâb×-†a‡Òü^¦õi£Ó*æÉÃjAù¢oû_\~".Ï»ÿ—¿Ï ¯ÿ endstream endobj 199 0 obj <>stream -H‰ìWÙVêJý>"@!ÌI@ežAA†ÿ¿Õ08Á{Xë<œLºcwUíª]»JYØ’瘢('«g"£ÙÛ9?\gùI%BqSo…B†H3Ùp¨&¯%•Ñ”Ïè­Çó´_åηN2ÍÄ*ª5å’ëƒ -‘¥3"Ý­ÖÝì5ÎskÑCÏ‹ÂÚ¸¼ºHzk™ÉN‡œÀs£»ßòc*ò kµŸøXÁº1içiè-²ÜãÄôKTëÙ@¶&$½±©e摇QÎ6z¶9÷ÞÁ-µÆMÀ…ÓW޵úãFÂöÀÙ z*;žbާjÑLjTˆû-µ˜‰™c§æ þ 2º°ÅAiP†µÖ+D E‡çfÞˆc”?¾‰ÁVÃ_($ÄS‚Èn<˜d`c 2Z”¾P«q5gÕìµyyNÔÅ@*•_­´ÔÈÔ™zÃԃ㮉'ø w<$6@ÖË  B`äzÑr—£±æÜ'ód#¯ªòZ,ÄÅ€æ5ßß—Læù8Eà`mÁ¶Ä¢Š\“%·v0~.ÒÛñ,(+غb6Ì|*‚Ö"NtÌͻ²èú¼y’±­RF•ÔÄä–¾Ï>*›–¢µ„‡ŒµÂÞ¢=(’q×Ú8È« ~Úyz¡;ÞŸd×D/`B°j¯<7|U3•ÊEDz|Yƒ$U"(b8:Jgå"´ 2üýmš—ô¦'UÀͱN9r°6ÚLe&•xI'ø¤€R_F¸µ’Wæ£1evíNƒ‰ËÂFÔ•’‚Ð÷ÊÛƒ¡NŠdë,Š‰Ï©„¶¤“Ë]Лü'÷ ²±Ë¥Ñ0^®ü2ס[»O__zH‘¾kOwh4äc4ôØÝ¦° I5Ë¡Wn‚+žªò9²KgœÝ°É “T´ûœŸ{Hóž\7ÒI½-—mÞ·¯œO -APð´.¾ÉE×q¢W,\¤û’ -ÀZn.‘ãÀ¹D *b˜ákØÉ˜Þú1Œb4ŸùƒEã!qÙœ¸hpU6ćÄesâ¢ñ¸l>)^Ì´;€¾f!wóAÇZO'öÔ›Q6ÿ$×뎞2sÕ§ò\{æ[­Äõ`ûãüÜu Ên.èäªnÞ¥ˆϵ«`í6°§q`l‘®RïSŒúÖ?µºã -°«ÕÎó£Ö"ö¶·i·µt†òQkÉ7ñ]Ï)‡®2b/ðÚä\ÇGmžŸŒä(Û“zœ8¯“§«€Ë ÕÉšŒJÛ¶Ul©Çõâ4Ç -pÇ|ß_Ü×Âzµ’Í) -ƒ{ÉÛL帩V;‡ÚïÏ `Ðg‘¡áB7kôÊýÃå[¸À±#Ë2Àm‡¢u‘c±µDhHtÀì%ü„ûË4Š÷µepÜÜoáH”£Õ‰_sõCWÊ -;Vê)¸Æuu J(f‘ŠJäݳ.Òé¨*QD²è!! šÀœ«ÐÄ5¥= ãdÑâyÿÓŽ©Z**ì«ãp 9¨øöúÃFèÒàï/-öóþbt+!NVR,ØÖøû"¡¸D‰3ËW¢ùû³v˜Ø@œLS`YÀÝÖ(~8{ºÍÃÇÁ¸Ë0¹ œT'ˆûÂ^õ¡°~ð@ qi1ÆMsåŒdôŸnÚ)kˆdGøD”šYq@·UÉ&ÄNÀpNBÄÊTä¼5õ§ Ô¸e«P h‡Ö îP‚c-ZÈe¯¹½0„5Ÿ”®~“A`K¶EœïW‹»¾X|á1ýÍç*ˆ„xwy¶,|zÀÔ'$ù‹õæÌC­ÕQþqf»c÷A’ûb '“wk=kkÐÅ‚y¼†|Yîë8‹…ﻈ˜û,/•‚È>î‚̵Lm>]8Éi„–8oàе.ZDµ ×Wˆq)I:¯£’ÊBn”.!Kâ%îñžL -y½ª¿ K¸#è0Z‚lbR†[h(ÓËÜ”EmrÞì#2 —~*OXG`Ý–ó#ýŽZny·ðÁç¡¥–äA¯ öGT¨gÐÄ2>‚Ωd÷WPS* ô€ —Ÿ ûo«°Ä†à¾ÿ•)3u‰MùÒTöü cCœŽü•)©ÍOb¢ŸU6?6 -õò³ž&ÁŸ}²žÑŸ"³5\Ö(bööå?•€íH¿ÝH’§ßPÂS Ë?°÷ÙQÖÒÉ_‡ÖáîÃÖñN'>ÂoªM‚©zÏQ_| ˜ÜëzµˆðU&Â\ Hx³†±e{{×¾ž! ¹À‚0UV>z×¹+ Wÿ p>Ée^£PûÉêš1K!ˆNæ/6O0\ÎBzátßLûzõF¡÷WŸ?a¹÷f.¿3ì~sÔõ¿5ì~Sµãªüõa÷›ª:òï »ßTíc¿3ì~:ê¢êþñ¨ë!kØýæ¨ ™ü;Ãî7G]¬Ç~}Øý樋sìׇÝÏGÝûò—¿°û.!.¹9…Þ@z µFä0w[ -œodš‰ÕÙÃK i'-yá4õÀ²IìãSÚ{lCPÃ… ”…}ÔªB \g1yºýs pàr4éìï‹jM¹dÄzã Ó‘én°îf¯qÀòZÜ϶ÐÄËÌn¶-°GC¯“h£Î;ЖXãàgÐTEÖé´TëÙØ—µÌ<ò2ÊÙFÏ6çÞ;£Ö¸ X£púêÐ_°5XØkÂ]óÇêâJùNóŸ„Áœ´2ù s -­§ØV‰¬Í(›Š’ëuGO™¹êS‘Ðñ­Vâz:kÜ@b«KPvSA?õ­juÇ!(0V«Çhˆ½ímÚE£3”ÐÈ7ñLå°CȈ¡)‰597£6ÏOFrŽíÉGi!Îë¤ÅÆéª=hu²&£Ò¶m[êq½8ù”C=¼c~ÔcîBa½ZÉæ«Bþ·‚ˆã¦Zí\ìÏ ˆÀ>‹ ï*úfÍ'EêK2\ÞËiÈ E èìÄd†æŠ;1™!=¶sýÿ‘™O|©˜?*ØS(fyÐ̧SÌÈ—f>bvû‹»ðÿ³ð—¿†¿¼Ìgdö©Rúãd†8y§ÍNGfÐÅöÚìtdæFì‘YòS2Ãf’9qÑxȽ›',§¿DN\4ÇýåÏÀ.³ü»¢Áùx 9IÑxÈwÍIŠfÏc'-š·<öûU¶•ºD¿€B ‰!€ÌCrQœ@9**GàÿoU'dP³Ö}ð% :îêÞU»öþ™¢iÿ]¾²3d»¡qÅÎÀ.NCãŠsWìÌÚ¿8ÕóŽvæñ—oã{Æ_V¯ŒG™uшsÏf$Z[­¡;´ÊG •Ø"Æuð‹#»¯j{–†IiþûuaKÙO¸í…’¶ûjª ûâ¢"Ô"PaZ¹*Kld¡WÔx”J§²fcñR§×„³ÀMó:IÅë„ëx±/4ˆÌ×d…Ût¿€cÐv/,(F6ˆà%¼c¯4Ô¦%¡>nDHÿ\&íZ>\$róàÍÀ¹v×¶1 ,Û6Ü“oäÒzF8O¼g´œµ)¨ s[è‘¢PèjH™Q¡Þ®Õð:ʰbH,+r8·’h™^ýIÀµÑÀ‡+ZÞê,%ûÓѽp^Ê1ø79t”B¶¬¸˜_uJä¼Ï„D®Ü-Z­ÆZØOÏ÷aíFÃ8ZmÈ LUÈÅ¥JÆHã=Àö\ Óõ¡F^`« üßç°Ñ*æ0vKïI#¶_XKžƒ'þ@™(B½?NÚÆ6ÏÇ…zëš²öÖw¹ó%3㪼ȥû9P!AÍ ~NºA.¥öË„¸6=HUŠO¦ (ÉþLµi“j’E-ßÉõe?+ OébLŠêü&+ªåN€ÄÅðß’¨^Þð˜>ç›ÒÐgó÷0ÐNàV†å×à}![%TþNí”EµDí¥1oJ³5át™G”„6¢g&8:­j­8 Ò§¾D.;§-Ù‰EÑBƒx¨•^®Ú¨]6·éo?ã<‘d·0¹:MÒBpy/”eNBy7¬EáÃ@"$ýQ(Ùå–;ɧÛËÁEØeˤûIpÛ”ÅûñÀå–ùÚ<‰p-صÕÓ‡g“2ãÂM°3 j ·gµÀ.„Óøx2d1šÀçbAý‚õ¯a?½6ð>u¸á…ý*u\‹—iQðÐ'ÕÊz§¥'âÐ÷©HQz¤Âê¿4>ôV©ÈyµEExæ€ò–‹^ìI³%4·‡5ÃÄŽÒ!Äך«Ò$; áíHŸ¢–þ%`) -‹fÒë‚…š½¯ƒ¦x< -ÏE÷Ï^¬ˆ™Üî=Y§¶‰üOúI…ƒg±iœer“aÛÙ®Y¾òö³]óП0l;Û5Øe»aÛÙ®³6¯ ÛÎvÍî+ß5l;Û5ý ö³]ƒ]¶¶íš‡~cØÜÓ/.ÿC\ î_\þ‡¸¨3Šè ò5 Š»ãè&[›ž>1ÝÚ^5öL:ÅÌ»½¹û+É%¸šÆ©@ü¹†]Ìì:¥2geBžFApt%Œ û ›öK亱f1yqÔ;2{zDc -HžIºøøÜX÷ONFr¾7/{%ðãg¾¸2mÜ!y‡¾¤Âê¿®¼œÞg½Ç¢eáJ³è4Tl•/j•™÷véŸ3Õq¤pbõ1oÅÏwš?ñ•ØZlÍUy-d´ ¾›/dÌhKñeÛ?Q/NÇ÷¥™âSPæøP{]QÜðæ×§T ÖãCðв|•"èy¡%®S[‡”ØÃFöí~Ê´x´òßUOoÚâ'†«½¾F°ÿr±º,h ®b64´«ej S+¢*&Ÿào—7®`Ü„É8–€e/b¶´fGt•K±‡µQoPöЕ°ÂÖjÕƒžb¯=ŸÔ™ÝkšØäi¬rG4!¹~§âù»\ç4œ5@[‚ rhd]Óç DPøÅå‡ p‘Žþ ™A:s™Ì-Î\&3ÐÉHg.“ÑɆ—±“YÚ›øA'ã¡-/ãž“!g1¼Œ{Np1½Œ{NÆC[^æ•“AÛ›ü2Ãz:s™Ì #c•¸Lfè+Î\&3à1¤³Ídvd†Ì—µ6sÌ<´¥ÍÜ#3@ßÔfî‘àbj³ ÊŒÿ2#<¶w™Ì “‘Î\&3MèÌe2\ÎÞ%3‘›—…m&0¿Óhºb3QÃ8Œ¦+6ô˜Óhºb3=ô+£ùÆf¸§_\þ‡¸øöØÉ Îbj3÷ÈŒèdC›¹GfÚÒfÅÔfï’™p{Y؉Ì,—‹ÆCëº[4¨Æ¡l\.¢ùÕÙÖ¢ÉGw)¬‡¡q¥hà,NCãJÑÃ8 +Eƒ¸8 Í{E#€”Ä¿ig@'; +vt²Óиbg€aœ†Æ;»8 Í»vÿò¿¸| Xv\5\p›U4`•TΈu͈ôJ<àö¦ÑuÔ;}íÜ÷0.ŒPú’,¹”æ¿_3U°ê‰ÍWJ£g*¾¿xó"´_„»½¬4Ô¦%¡>¾„eãY.¸–n¨¸A”$³|MV¸M÷ ÀÄEäd6q1U0¡ÇoÖ¾[i09˜2¦Ý𲃠é Òx­oN¼³iOæïÆg5Qí#üÝ •C’“õ05Ëè+Ù¾"ûÓb2œg3 M†º+BvH’OLã€ê9ì²â|RUšîA5-³ä¯Èœ) h -AØÑ ¿jCFäÒ}¨Jè AÍ ðo“%itBU×-ñà Æè=Œ¦ ™œ ÇȰHú9Ûäeê­ó„5æ¡¡),³;»,9fN¡Þ'mcw¾ZÏRvÌBÒœ*˜ì-ÄhÛ'ûD.X Ycˆ‹OöŠ\úãˆQ¡E®q–wÆÜ4O˜,k™×c·å©øz¿8¾<‹Øã᪬¨–ÏøõØ´…eXn˜3xħÏ>HçöЄ†d¦Z‡¼L5 ¢–ïd„ú ““‹/£&„7%Öß/Kl’ѰÐ$©¥ªÒ(´ŸFàϱz뾸¨Àg"dDZ¹éT•*) û¾ÄÆÅq£S…ëð'°45ÈË~M¼>쎙7¹Óšpº¤!RSÑ3ótÉ -YÙz„`”' àeç´%±°#ÃíÀ#ÄC­ H£¸N»ln…F£ýŒóDÂ5ÂäjèÔâüU ¤¿8CyPæ¯By*áÃ@"¯]Þ„’]n¹“|º½ü8\”±¦m¹aÒý$¸mÅ»eÊ-ó/D¦`yw’è o['ä¶M)GÁ½n›ÔˆE·Mé¦ùÍSb\‡ð«®úž>ÿh35£ñ€$_k^uPt. -kô…ã¥h˱¹Ñ!ÑýèíBÙü‚Z§RÊv)EéRáCïT+S*¢D.©ðu´†žˆg$p†â*þªSáS& B&åS°$¾×bªþhHr0_„“+~¸Ö:K,ÉzR“%ëþÕ†7"†’{rñî:+ðj™Ó Q*†’`õ¿kí‘^k˜ÏjSŠŸÕ‰"w™ŒÓKpùŽíý’é…Lþžíý’éõÐß´½_2½X/ß²½Ÿ3½{4aCÀå{¶÷K¦Ïò-Ûû%Ó »|Ïö~Éôb½üÇ~•n%®5Ñ'à!ˆ21„™0ZÂh«ADPi÷¿Uç$ BkÝf-×úüãå&ésªjWíÚû¯lïš^é—/‰Kø—/‰‹€{_ÅŠÑåX Ð ¸\>…ç¤ð}!º<ó*×=ó±0S½*î3ï뫼Àf¸Þ{nVoFñ;\]¾!Tt|ç¸ÅnWþ58Æš³ 2w~šÙ¿Ok—+ߤÜž‰ˆ†,·:Uí¤ÝîË׫›|q2$l±,j»=À[Ë„õÊlÎæ!ÿ88Z³)X©›Q™‘{¡ÑŠœOåÙ%SæܹÞou‹¥ Êéz¹ÖR·÷ €Cl Ü-9²ü…šà,KZ Õ1Ú#¼­$xé`3õš?û›zºy¡ÚË?o²nþáÑ_ºÙÁÀ‰¾è[aÒ÷†šjbÍ *€®ƒûÄC÷ŲÍH]‹_~½Kwùnú+h\Ék4úJ®5/,°“ÍS~”¥fÌ‹0E¥(ý5ðÔx’³Â¶ž´u[\fáñ‘Ö(×ziæ¹Ó.ŒŸþ²Ê··ç…ÄCŒæ¶CÙ—§Tj’f·$†-ˆrÒJ–ûõ~ƒŠ@Ú/SO˜†äKzb.ºþ&3¢a°%3’K›w˜Ìà[G;GfA£øÓ¸Ãdæb9Lf.†N‰³dæbì9w’̾qùª¸àá—/‡ Yÿ/@׿ÃËßÅØh8¹ü­ýâðò'<6^þTó_8¼ü]ÌÆË8·üíyqvùcÅ`ýKü¼(*¹¦‡4•ßê±n#¼‰6ÖÌ$‹Z“M=çSb Z z9 ‹h5:3‡l©§w`""-å\´GžÈj&Î ¶HáeQÄšxé¼ BÙ9—žÛEoŠîëâ'sÍОÛ¿ÂÕÑ~Ë]ÈÜ]gbcaDv}e.~·†)dAr^Äl vÚ@•ssÛíLÚ¢* ƒ4ë=Ug¥{faäÓ¹ND;éˆÞ­y!ý…#Ü,üZÔvºÑJKô‹‹ é‚W˜¡ÿ‡Âö Q Ñ~¹^<„è~´ºüó7._ošsŽÌÈ-–—qŽÌ\ÌÆË8GfÔWž;LfP±µ—ïoòÎq|ö¾slhÈ-FÄá¡AÕcãðÐ@áØØC“ ;24°+wD¢3Cãb6À¹¡[ÖÀ¹¡!=fiÄt7úÙv9y§E±3klGì à²kh±3t¿lGlæÿ .p¬Y¶\pÛfhÀ*Ux+Z› …BÌ^·Æ§2I·.&; ›ëW¤ØùÈ—µÌPO©n;^ä2p'âwºÚ0Ì2S˜»§œÌåcªÂº}UaÂëU…ø†–†AC¤Y²‰ªïÑfªáÕöv9ú/˜øÎbïÅщ&ÞKN¾­Ž â±y‡F3<”WGuq_sG-¢$å­sâ}²“&Ö“9"ó—Á†µ½³'«*|HX%:kt™n€ì gªÇö2ˆ†~si+&LÌy]ªÌ“¢0é6²H²&9[³(÷¹Žªø’R<˜ãR~L- š*V,°\(,×àÁO¸eÅ{å²ãøRpšI)Z¿ŸÁŠ%~`. E{˜gÄã³d\¼o>U¤Ï_Å@¸w`ä4È@*Hw½«4tàüÊ@ƒ$Uq4MÂ'Gécä¢8Ü‚RÚ¥`¥3ö >w¯`¨Â~˜—³â¡ž½à¦•3à»›;óÒñT …Zí33Z±†5T`û ¯˜ʼ*›™3e†~7à¡@,†±C‰¿ -e+\ ôú~ Š/1•ßB¶ØV(‡5á½ù5ÿÞGGŸs°0»Ÿð›Op^úøœðÇŸÐÚ¸˜w?{2šA¼j½ç÷ÿ`.Öï—­½8 \t‰G‹©ß^§@ÖÑøY0%‹˜(d# -,ý·þ‚N9 g_ [î¼Úî§*’y7/ëE7ÿðh¸™‘4s‡4¥çæ½ü•’ðíñô޶ôwÔU_)¶R:~²ô6äE484ñ1G܆ýI#ç…#UN=!à•xZÑ&wQ¨y’©µÅ¬v¶…8e]»€É÷ýèbÞÈÀ7"Pâoâáv´ËOûÙŽßOûÙŽÖÅò´Ÿíha¿ð´;Ž6Íü³£…\xÚÏv´8/ûžö³­‹9äi?ÛÑB.<í®£•¾qù’¸„¿qù’¸èTU{9V4.—O­ýn!º<ó*×=ó±0S½*î3/.ò›¿.🻞›Õ›Qü#ÂW—o(ÍÀ9D»ò¯Á1ÖŒ]¹óÓÌþ}êX»\ù&åÞðL$Ù‚åV§ª´Û}ùzu“/N‚€ "–m·bu°LX/Ìal²ƒü6›‚•¸ÙÅ‘M½Žl\.TLž]2e>ÁëýV·X -ªœ®—k-u{¿ 8˜Õ¶ û–?ö¬ÿ÷—¿P3‘ߤ•ÄÑã•°ÞD+J‚w‘6S¯Éñ³¿©§Ë‘—`æ"öàöÏ›,â‚ËWŠ/Ýì` àD_ô­@±EÄ¡ÿªHjbÍ *ªph’†xè¾X¶©kñëa€ú@°wé.ßM%+yF_ɵæS~ &ªfÌ‹0E¨ü³ÄÑ_O'9+lëI#mã¢0 ´FѸÖK3Ïvaüô—ÍP¾½™ ±”ûòÓNKD¥&ivKb”¦d^@夕 æ³ß "vÌÔ¦Aù’žØ¿òЙÃdf9>‡É pA:s˜Ì¨™}LfAt¥ñ¿$3ÂcCÃa2s1„Î&3èd2°Î’ܲö2ï“þ¯ðË_á¼2Õ×®3º Ê -oÅj Ä4 Œ]Ý¢z8†¼ÏÎÃæú©D#v>òe-*ì)ÕJ‰×¹ ÜÇI˜»íw¹Tr9ŽæKâ½t%(¬;]ƒh‚iz=Y¡t¦!Ò,ÙDÕ÷h3U‹XªöÖV‘û/˜øÎbïÅщ·ÜKN¾­Ž â±yÇF3<XÏŠ÷5wÔ"JÒYÞ:'Þ';y¨˜†œÌ±—¿ +Ȩí=YUáã@bÍ0•K/Ó [h!eÝË úÍ¥ÇaÂÙrU]&ÝFIÖ$çak]ŒÜç:*l)Ž%ôcj€Ñàef©°\CB¤‹›dß\{&^)-/–IÛÖ³šz›J¬§×Ûî?ö«t+uf‰>Á $dd ‚2‰€‚GqAÀ÷¿ÕÝ™8z<Ço]Öò‡²4º«kWíÚ;îªx«¦ì·‹–ž1‚Cµ…è~7ƒ"5bÞwlEîuòð»€T‘»MK'£:i(;…íXé0Þ^Þ=ñªU ûè—ÍAѤ[üc¢¨ú9Ø;gˆ&O j‚¶VƒŒéËÞ[HáÓT¬jFIÒk¡ -d,œ”K±xEK·¹Ò¸2l¡|Êrø±iB-./p>…ùd¤6te;¼’Õžÿ 鱊ik”Ò^£I#âÞ@[Î.ê¥5g‰€APKì( ؈¦µÅ2+X¶Ío(AÒÄœÊ0 $µuÁœü>5ªoÝP> -NéÃ@p±ND² -?°R²þ+7»*‘] QW–L(4ßLd 8C ¤ŠÌšœpÚ6 ø÷,jåƒ~»±Ø‰Îm,ªƒ¢-½KHŽß%L&ŒõŠ÷½JMWéäB›dM£«ÖF%S渭ŸM:åß6 •| >ˆ°‚‘HÔV@6¯cö(»ØXŸT3´ÕR=iI€‚½ç4‰^ÞÊbõ–‹;zlòÊU‰ñÜÏãÞúr| èAâÇñ}CÇwñJý8¾oéø?¸|C\Ò«ý.ß—×4QEd8&D<5¸Á¼l«húôä<}R5JçÚµ~Vó_À<Ë›Ûm!?õQºÊ\tu5:Šåt.øÀ;-×Ù±ÈÓš/Nùɰ[ª§íA~p^12ïêµYÞïLäÁ•¢½q‚°”¥ÞŒ¨Y«!ñþ\ÌÖý[X¸d= º™çÐ;ŽdGÖD|qI¿kIÖ÷O -ŽpAV*;¿¥ïµ‡Ä¾oÄèB6ÕƸA¥=óÅöoÑdÎçÃÍJ\«þ ² (¼Gt"©±A‹sm_²—Ïh¥^8ûRÌ -ý–9XeA%/§³°>4]&­ˆ{IM4Â< ¼¹’•­¡œI¿ „\çõ„Îk©³*uK/—ÁòuìÖÑ×g}wõh£ÑU¼h¨©;¦¸ɹ†Dî%o§àR€¿ÎÃèÎ.g¬.pa ã:?É…“Õ¹Ôï©]·˜S¯âý< -@ªƒfªúîbþ@ˆ¾Mˆš·šû¶ ’©Y¤&‡ÇÝ„[œTÌÍîëRJ?¸|C\‚*÷ÉÌGa:;2™[":;2™Y.éÈd§xï_ ‚ÿº“A¸Ø^æxNúÅñ2Çs2hŠ9êãhNÆBߩտ8±ºPâ_'3…éìÈdæ£0™Ì|”­šŽIf6úÇ2?¸`\Ú‘ˆ²SØÐóÉH±Èj*­Å˜v=D±q‡á)V]ZàM:eFZ$}B‚Ÿén&2³¡:p¨ðÒk*j‘,:–Kú•àfÛG5=MŪf”$½ª0ªNgçËÂ}æI&IG\šSãÆ.¤ÍГŒ>¦Çøo è.I]‚É—aøf"“‘èÐÂD„Ë¢sÂi»^±‰²×¢Ü2üÃZÉŠÕ[W 8§A«€FÐôý¡ðC‰<ë2 ƒ¥Ó²ÒWƒÌá Œ?*ŠÓz-'šTHÊ4 -Œ]²°‰Î®à.¨8•fREZäá”l -®ñëUÓ­$Ù> Y”‚ÒhXä1L®û±ãn¼ðA1'œîö»Sá]ãd¹™5sÄñageêx«¦ìw‹–Õ³Æ("Ük ÑûqPŠlÔˆ}ð1d1˜Ê’ÓŠ£aðõEEºÙgNÝmÅ8,ÊhgøÚlãŒ2 {¿÷em×˯[WÐ/ve)bUì©Âü¹'HãËûÿ8ÝÔ…ùîY΢×yI_¥M,Z!Ê !ÇÙ ÔbQËqÍËa¿\åÛµ<¬$årxÝï(¿†Rž@§œ¯4‰.†HoxÚËÆæ];¼öò¿AÅp€®­Ð_{ê\Ä,€68ÔÌ ÊXkÎ5‡ ÐSK'ýÐÉöEœZ[tÄ!&l›ßP.Ãj•û4÷þ硤¶ DêÛÏ_J?KŸ†Âÿ5:úÇOP¿tí~=öòÁc°ê`zfÑΓ5ªˆˆ42eátZC\©˜Û†_P¢$Lò[ TÒ/ëXTƒÎ’»àÍŽ«R¤]ÑÏJ†ægžº~j.>úÙÆ•î¿´; åÒ!'çžYùGµ“B ²­(„ˆþ…{áI -œÒ„˜¬Oš´Óae±ZÄ}”È<§rréñ./ðU%wE´gc cgt·9þƒ(Ã5Öýš(coSÜ—†?>Åò˜Çþ “y¼á½ïxÌã‰2r -ûEQÌQ_r˜àøy<‡é£\y<‡ s<æñ&ÌÇc~ÅaŠ?¸|K\¸\¾%.<Òå'öp4£ä´ZÌ:ª½œØ·CóêÍpúä£ÊË“ 6A4Ê'~v4ëÂãnè½z0ÅOö¿*’±çí[ħë0vY¢Ïëy÷õÿöxëâÓ+p™OШ‰ÅcݤåUaÓô¹1î49¡ £ÒèŸxç ÝŠ‚O‡?R°0þ¿>üùF7Jc1‰KI˜?Íi”Îk3ùà.Çô²[•Y¼DzF®¢¬™|'ùàlza"±BzjïONbmx%¹ÖpN¬~A -€(rÉ®àžwqNLzJ³”º™E-‡þÊÝó+xÃÁµä 1–Õþ¦l£Qg=053íp¡Ê/ 5ð• Ú,¾µî¯JNatÊKn+µ´î¡/w¥N÷W¤2/Ý~ÁÑ`ƒô^~ÚG òQDlârwü"Dªø&Iãæ¸ED ©˜çGB -¥Wû\¾#.sÜìü?™Âtvd2Çç¥Ï#‘b ³#“™r½Ì!³› ÷Mã£p¹i c‡mz”¦±œÅ‘›JÑ‘Éì—qQÖè¯%Ô\Än -ùJ>?Xâh=®ÔïÜ¥¹Ô¸-*;…í _\x»·¸ WH›¡'[¼J,>N¹ùeO¾Ëë]M.]ª%¹´ížÁ…’XÝÌ -Â}feXI%ÌÚá•TʦG’–;ý&Ú é$sw!êñ`é 1,DlÒ°÷U½@ƒö9ìTqô‹2Êq@™‹²p:­Ç‰ž· Ò.YØDg¼³r1@{³nŠP%Ó¤º#j½€‘&qxƒÔSÄ,|t¨©+H£U:éûíì+ô¹Æ¨4*Ò"àeS@\¿^å0ÝJI7ûÿ±_¥Û‰rKô |Œ 2gAÔ¨1Fœ;‰c’ÎhÞÿÖ9Ä õ­Û˵úGþ©ª]µ÷®p†3²ÜšxZ>°×~1tЀ2+W¬±¸R¦²p¢†Uæ¼ïæÐÈÆd¾GÕöך€Æ¦ é6_Äûפñîáĺu²_>ÜLÝdÀó³‹ó\p,:4"쨂 ÿÚ] an‘ DDòùC{-¬ØÜ -ó4(Ûà rqLÅ®EÊœ¡02œrS‹×¶"éÏ]ñþ6–“n»™Ô¶[PÍrµ¡F²õ"’”2›‹¶t+Eh†xUü=»«É•kASKL¿,Ïk§h© áR‘n«:T ºœÞhï |Š{U5ºÔ÷< ta½Sä‹WÔŸ2nô‚÷ûZÙZòxÿ$³^A?PjaÈ¿´Ö˜ -QóÁkó+Ú¯·ýw+·pA ý/CI®ƒP¾ ĈÙëïÆ~Tp È]|ŠøÇš ŽwIÇ1¿|ú¸ˆ:>™É1§¬4S!ì¤Ø`Ρ/ qL¤hÎËh\å}+ïÔO„k€Ö¾¾¹Ô—22ûÄ‚–¤º××»£ø·U‡â -mŠ^Ê¿(^q.Ñ]‡âæ‰ѽϬúÍ.–D·Tß$ž=B«”ÿ ^ÎäœÅïÁ„#Wá„Ì=&sªù{ž—ÄŠÅ“âcuEß b¤„Z'¦F2V}Ϻ™ÿèpY0•_ø,™¿N -Ða´‘¿aK8ò´›ÏXf—ɾ³R/‚ ^7zUš-{ä ].­É[ÅÐÏuÄ–am/;3<j T¬"åÈhIâîôÅyë>Y_™®ùÒǤ”Æñk¨ú¸Žxl>ø]Ì6¨5rgóôΉUk5Å6’sÿF?A4Àn[¨Åû¢Ÿxüt¥Í œßÿ`™%lqšcNGÏÕ§mßÒ·˜3šYH'‡&is¡B1Á ù•÷G%zÃÅÂîáÃF Ò‹hMe&.ÚÅ@#¸•”«Í=¶ìÀ'9šŒ=é6/Üc0HË’-{–j§SÇl[c»^£: §ùêz]ÈÏlƒë¸¶[ŒäR:¸ÀŸÄð] ¤E.½šx{ (wéÁÙ'™V¢…°ýñ¼btéÚµEžòñÈÁì»Êìnñ¸Gƒ?„©šÐ5ÁChT“I ìyKñrÞ>hfcyÍÞZ÷ú¶¢8[È&{‰pÓ™4éôÁ^²¤w4êAâý¼YZê*jC±.ßš8O¦"€HÖ/}ãuÌpí9ámLþÁåŸÄEøÁåŸÄED’Ÿòű#°F1»÷ï%}{YV®F³‡ÒSê$…ôìd½V6Sô…‹t}D1NpA$PñÔö¥‚´!Ú]tŽ,_ -Ûnä?Ÿ—º3;»Èïòhq!!,d®ÜTC4Þ•«ÝuÑÛ‡Sí`K¬N·i}l%Èz7“`g]ÑK|6¤åL7ª_i‡KÚS‡.ói¶ ¸LzCËæR¬ã”›½Ô¡¾=·‚ -<´ÿFü‘ùÿJüŦc±qÄ­$-–,*‚p­,žlr\7»ÎܽD»N®¬½Ó]uŠ¿pÁ~%·—éN1ú«s(i´J šxó‚@`éà<é«óN ]íÜL^-b~£¢ËóÇ·4 1VöhLT£·*ùh4ø˜ˆ›™] -!äAÉ·i¸ÉãœU¦÷lkdéI¸‹ú-˽rì§ðܼtE˳D±Ì Ž/C‡Fü=B¨DÄjâf÷,†o‡ yV™œOZÄ’Žy $¨HúyûƒË¿ˆË»ø×dFxL?2™¾ :;2™…™ÌBt°Ë|MfWᯇpAcsä¡Aû ŒÍ‘‡&Dã±9òРíÆæ›¡Éh±\þA\€Ì ÆŠú7d¸ì½ÙñÈŒødùÈd¢ov<2ƒSöÞìd]TP~pùçp›7úoÈ áâ{³ã‘Yˆ¼ÙñÈ,DÞìxd¸ì½Ùwd¶M›­t¦Ó€¤.ÇPÜd°,Á 쟧ìYªNU³mízêÀF›¯®×…ü,DÛ×qm#¶É¥tN‡ÄðÞ‡\zÍàÍ €Szp¼Ti%ZÛÏ+F—®][ä)ÄÉP@c ;e¥™BX*œÍÓ;'V­Õv·x,fÔnôùƒv5/ k©Ž=ªÉ8qÅž·/ç탆c\J)5•]^³·Ö½¾í9q¶Möá¦3iÒéƒy!Ñhþægzf&~³´6ÔUÔ†b]¾Iâô-…C³{•© -»¨_B›ê‚?*õ‡Ð6&ÿàòOâÂIËéMT5ºa<ìQoö‡-€c=íæ3–Ùe²/ŬԃÑÔ;+AÜèU`˜§Ù‚±GÎÐåÒš¼U ý\—–amJ·ôº±PMN!„ -+6·òKÞ•¾8obÝ'ë+Øø\ó¥O,ã×Î ;®+ì|ðÛGÃÕÑ0’ó=L ’¶%¢Ÿ¢_‚>ìF•6ƒr0Í`Ã1JØâ4ÇœŽž«Oö-½q‹9c ™õtr¨4JC‡WP |Û4ßõ¢—8*Ñ.&OLuH_|áUéE´¦27…pK޹ÚÜc]$­ôƒËÿ‰ËE4ªm4þ’h´¸æ ëLy•ãÖx„bv!D{àM/K>Œ¬ üôè ͵€HvP‰Ìbd ÷#×?ÔáZ4‹ÎcU³·P‚jƒËz“+–c*v-Ræ …U3¯ª%qW$EG’I\Î÷¶«Õ®®Fübô°×K|¾a+¨Çô 'žë™ŒÂFîªÈ=ò¨À‚tvÑ(û®¯{ô±æÄûW-+W®Ü`6†­¢ºÙçwÁBèyÞã1T"@K?{Æd¾Gz€0ȼÏÀùÓ¡ -LA¢¢”Õó4p’Sn3›ÓÂ*¶àÖDœÌòa¥¬Üåá”,È{åכʰ­¤rµ g8#Ëí¤[9¬À†)ÀOEÄçà.ç³|èð|tØl\æ­®‰;ÇC®¦h©žYÕaî Ï›87QélØ(ƒùÙVðµ½}øOºÄ˜Ô¸T`?ƒ‡Q'Ÿ¨a•9ﻣãCe¾16Þ]ËÆ”I¹^ýðœ´Ü:ÙÏÉ|ª× Çþ”†ÌgÐÀXõ©yÜ&KʤO• ·¡w#H\ –¢//ß~¼znUiäÐ?ÖT³o˜ª¹vëátq˜LË ZjÄYFAmöÓ*CEM¨bÞÑHA¯ÿÇ~um'$Ñ/à# d“ƒl0Á€±MÀ &üÿVu+ÁÈxv çìþèH¨QWWÕ E¬Ð|Dß{2‡Ã$D;¿ƒÿøe©à% ÏcaaÖ^ÅÑ[‚®õ³‡-0rÔÖÄĆ)''WŒAæH0Ô] È¢}G>XÏé–²P}‰p ™!ì÷¥Ú¿øÚ”#ñ¼8ñÌÜä !é¡X4SçÂàY,C‰mŒP,I‹×›ã Ž$ôüÖ¡à£Ó{4Zöû̲xÏrtQá!uùÍ’‘£è?¾zìÛ³0öË%(tRÃÁæË ™_Ô{Ý”fqr\¨£Y(èÑ=qÉ«1¶‚äyãV«¡ŠÚJE%ª…¼ Ÿù•…q$!q_z¹’¹•É÷s‹_±Çz<á·†\ºÞ‚g؆2³v¡ ¾{Ðe‚·ù†æqÓDáˆå¡/&.žH9Ÿ* ̪ª®M½Ôð°É;/.ñЯPÛQLzǸX9*yí·àêC·œÖ -ôNÓnaö”Ijo &E%§WÚE¿8}…š¢Í/ÆÌé%‚!¢ªä¦nÆ“ÎÄuɈ¶õ‹iñ±?~³1ÙyÄIÛ¹^K›‘LZpùÝ·»”v/Œ½‘­Ñrš`v ˜;VŸiZº×ÉJžF%iìÕWwŒ<Ëw»‹×BRGn‰¾B§[’oîï‡Òãî)“{ñ"˜»QP^,+|1fÜFÕãñ À0üm^MÁ¸+@Ʀãà|ö1hò=ÒüŽ)pQOCvz¹¼/âQ”Bµ1;3½`º8âI%•èce³^ó¯èaºï>³v]‘aC‰²®uæÇ¶ÙÆç³Øfs`œÏb›‘-÷Œó¿ØæqÀs|œ!Zihþ Ð ^P}(„D7±ÀâÓ¬«ç:ÒˆFŠ6F‘¹_ù›²ý"YZ¯SÉ1pÑ]+ŸvOúb6šÁå²·¨{ ÒTs¢â…Ñé¶AS®òØ0‚gÑvT2ì´•/O’v­‚]Q)HU ¹%™ªÆø]¯g.S)éÇßüj…úe‘œzI=õö-h4F|úä™å^BÛŽâõ¤âáÎ¥£ª «LÔ„ ´½•«ƒ)øäý‘Íë#IDuè&. ¸vÆdÐÒ]” 8Ìü¥Ö;|äÿ‚Ìl ¡³3“º }ž‰Ìa€Î~LfðÙqáK2³1„Îþ™Ìœ Ï_€ÆÆÐ&>/höÍ0= hl MÂyAƒº°ù høê´ê:®4&æÿ8ŸÒ¨Óë¾¶\iˆ¾¨Zs¥)Ú]VJCzÌlÐþIi[2ÄGô؈¡–ß8T_䛄¯_Çž?ض’(—¾dóêÅήÚ.;÷òÖ²_äÃ[»kô ŒZ*&tÃl;§žwVñ‚Å¡Fœ2C Ù }¿«T;x+‡'n•öúwvuèý’t -ÒUV£° -gâ6Úhã&é;˜’€ òJq#G•£Ipu²ÎÞÍìÜÿì•k¹Ö£’Ÿ;~ËÍÖ[_fî ¼Ðdâ -.ÍC¡FkÐcäLp{ô‚v‡nµ  ª-V¸îu˸iHë—ÞZ­ÐÖ-·¯¾Tšæ?“Ò€"ïç³( ѳq>‹mÖzL7Î?PîK¥ù“ùÏ¡46æÀ Eið,{í,J£ò˜aÐÎbÏ(*§ÍSƒæJ‹ióÔ ±1VÓæ©A£ñØ©@#Ï­”ÆšùO­4ˆMkΧ4„ÇT­9­Òˆ†Ò<¦ý‡Jã·"3¢•L›§&3Š—ÃióÔdFæió$dæ%wÄe’]J¬^/<^/h´æZÞeHvRÑÒÅ-ÓlÀ†ðíŠüC{AòPøÛ[è~©âmLjåžôôê7Ô;e\äôep”©×å÷e.ÓºŸk¦¿½,ƒiq¼ãšû¯‚Sâ«‘AH,æžÿaÑé7ö6ˆ0¬ã­Ü® 43à‹OOŠþjpäšÈc°pV¼,ñò} Ý)»•êà¥Jû²Ñ,¤(–†…tEüfa?ÉÅKîçf\¸Ÿ%HÖk—íÕÒ"×¼ ¶þ·±pýž‹B â)iPöœÓ!à²_” V™4¢;È -Îüý¦…20•Ÿ5:žw䨭‰È¨ÈH®â”ÔÙ §Dig(­}G>!×szÕPÙêK¨oH¤Žc:ìû•ðZàkSÕÿ‘aò˜6 ˆ×«PŒ@½£à£Ó{°겿åŽZ uùÍ’‘£è7–`õÿ\¤QçüXO°\‚(§Ðœ¸bŸdr‚]PÖà±%¹ƒKxEˆ”:7Í=Àž7Ó îBƒpPäØAÂjWBBE­´~Õ0ªa8Ïõ:ÉËÙaõ>—ï+½_ÊF²©•W–ýÚ@ûíã#¿{J® y¨liô ±´Ö†–2ø,ª9Éž›èTHv«å¦¾øž.)Æ<**¥J˜d,NbæÏIžùS ë¿Ô©ÛI0ÜäÖ¾ &¾CçMŒ•«è—<“›&¶œßr\…ꇾW|·9˸z໕çW|7ÔåãêïFT:oj¬©fYÌ+¼ÕDÄWï>+çmåƒmÌ©·•œØy[ùnp°'vÞV¾ÛÆX:oPÐ q¢w;¬‘ª©óîðÓ.bÇÿëò?R—ÿ0´¾ endstream endobj 200 0 obj <>stream -H‰ìWÙv¢Jý?A(&gAÑ8Ä!jÔÄ8D3iÔˆþÿ­*TL:¾ëÞv­<ä…UPgØçì³ÂÜÏ O3+(¯[B¼€ÁìeưšÚâY½3`‚q -'ͶS™|\Òm;WVl¦}"èu›"¸§—´b[‚?ª¥®l °UII7’«Ù»˜Ò790«ó”ð쯓bØ6 7G6=àÙó‘žÅ¨ÖV.Ø`R‰cJLÿŠÈßÏß@èÝHÆëªâåë둬wÖfîy,ˆ@˜T¸ãÆL)þ®5yP81k1øÎGŠc•s“@u^ ämJÖ[Û¦¹àÃF-רÖÂo4[·t~É^»ÞêO[{Ï—è®æFŠ#ðG ò‘¼\IY-³šKfÍÃX­9ü ±º¸“¤Ñå¨×:o8;à—·ÜnAI%I ¨bùÍÂf&ÜÅY-Ê”âD¼à#m£‘»±ÊÄ•Dg2ÅÍFËL,½jYzhÚÍDZ…—H›WôÚHƒ‡…`b”«&«Ê«qÖbŽùb£¨Š#U­ù-lÏGzí,=kYÓ ÓÑèŠv^ªÆ–kqäÎ/.$f7gSb7®¹“ «˜áÑïæÆê_ˆ8p)Y÷5iõöEÁÞÊf\ާfwÌCîIÝvì0£¥bˆ¿jªdbïíUß"-é§g9éÚ‚Éj¾aü?­UªÀKÌ´Ü„eªòû쨽Í¡mˆ¢Ÿ•õ¶½¯±^÷|¶3IhÅhS©e6:°Ô«5/8jQ]L¦”Õ·{-6¡ˆ[IW/U0ó+;ÏQ·@Ì•“C9 ¸ý‚ÒÖLz}Hy`{>Ò³ˆìrO±òÚhËkAó&|g™›²ÄÜwŸh´”S4ôØý¦È’FN@NB_½ð¾A¡¨ùC9ãBìG,aœ¦¢ý×âÂz V6­w£Üc¿àzRáïœê»ZÜû¦è ' ·é±©h¸VXÈ䔾©Q+ŽP‹àŠ‘ÎS»Äj=nùƒË7Ä¥° þÅñ‘˜ôÏò€`u)<Ä4(9Û$LºSuתña6äeúȵЧÓpMÖkûèí! râéË9™Ÿ ÙᯎÀk&ú™Û'‡•C¯å_ÖÄuát,Ã5‘Kv5Ü•¡"^ýòX -Vÿpx¨<æ¥Á6Y:°>êš7øq9Þ¸Y”ƒ©|é—µ -"W¹Ë"–SD˜v8S§2ô‹I¥ÅI¥’ wkÕØ­[c%±ÈÓ¬¼qÖt5!ÞG_³âäq¬C@¥¨l„5X,fB]êÐTÖ„Çf^w£‚lìïj3Î%OØŸ4¼ ¨ú¼ ŠøŽåÚ+’}»fÖ䡬9ê+÷",*bù—GçÔsGSH¾ÔWè=7˜‡!¤.Næ¸þÌ•SGæñõ׎ vÁ¯'®D>så#™íÑ“õíGüsKí-Òu¡?½âÌï•#[¾é~ ÿáœÑÏþé•dˆÃ¯ÀŒ}|Iášûñgï–¾¬Ž­‚i¨Ù³‡ÌMÅB{d†æ‹ { -M ¹X¹_C£n·yÓé“_µß’“%8ÉÎùHW “3qLÀ -² ¶OˆH)qKøs†)ô˜ûõ»¥ªÞSŒî†rEãÙ k(Žj#À \Ü¿¨új?Œ¡ðw_*˜oQ— -5õŽÓú€¥íK ŠÉ¹ù'»ÚÏ€îÍæ¨$ ;nß¼ ±:(Øáè’¶1\ñh¾üFDýE …2öõ%´ò;õ%ªä߈ۿ"mYÌ%>ršŸw ÉýêÕxÏÛh;“Ìm*µÌ¦@'ˆ/8jQ]L .èÛ½›PÄ­¤«—*˜ù•ç¦[ °®`¿ œÜŸA„Ûwû¤·Á'öF¹§Xym´Œåµ‹Ÿy¾Ã/1÷Ýç-ÅÃ)X=v*²‡¤‘C¬s-’p ɼРPÌü¡œqYô#–0NSÑþkqa=N+›Ö»ŠQî‚À‘ ê;´Ay<÷!”¢·yzTkxÆË䔾©Q+ŽP‹¸õ2pž"Ø%VëqË\¾!.ø/é—o‡KaAìÕÞB -IÃ`ˆBÀI³íÔ&ù¸¤Ûv:¯¬ðd#èu›r§yЊm jü¨”º²O& K¨ô ÄÓç~¾ p\é€8ÚŸÙ‹jmåÒˆ ¦!w"3ý+"?K@$o$ãuõûU¶•ºD¿€ È„Pf™E•DQŽÂÿßêîL8/µ×ºç%K“¦»ºvÕ®½ëÏ…“Á`¢äú›"voˆù:ošš…ftqÝ!{QæÈ_Soƒ'“6Ð_X\ÆæáB«Ôéå¥÷ºÐí]5#š¸ç Ž[‰×jçw†ÿ ôÄXQ,!S ‘}¸\þÐŽ¶x°mûg•Ñ…q_\ª>É[S†ßôàq}Áô³ô!uû¢@¯¬œw`$î‚¶èÙ5IïÔ3¯ÏSç…Ó¡]Ü´E„ŸÑúçUŒ†<ÚýÉc4¦icáa Õé6e~2ZQD¸|„Ï3 ƹ(ÎŒx¶Å]e!/OYOq}Ò–Ê•Óu­ÑW÷û…ÔSeé66$.=//°&ÄéßD‚°Èvåñ².€ó(̨ÕÑWpñ¬!e2#¾²D™Ì<¬)Ũ’é—e2C -Ö—‹—HM1mÙ5sBK1{XG3ÓSÌV¿xh)f”±mH@ô¡Ò#3„>”e2sF 52³û…*™áŒ]= Y#@Ì}[›Ñ#³}_I‹Ìà{ÖÐ#3ÈÑf¾#Ž™áSH‰P$3ÐɈÎ(“Ù^¿P#3SÁ"22Cli•=2C§XÚŒ™í÷ -2CæÕ;“u:þüùÕ‡ðIA¼•¼œ<®Î‹bÍø÷;Èð^=+Þ6˜[õáÊò59ñ6}ž&. NæJ€ j`C{W{/vUXJY)ºÂÉ Cx.˜8£¤¢ø‘sÝà úΡm ÊÛdFâKlTX [YD²Þ•fIžpçªâOK€wDWSàg§ ü/p²v¸JªF -Ú‰7Á©æbA 5o¼ÆI•Ò¥`»\xçS¼J 9è9ü -{†$¾ÏÛïH[’¹ØxîÖÉÜÞr¸t«îoÁ¡uý¬¡ÎT±vn$ßÝÊÃ’ÍjúÚVÌÚÑÇXQÝ\£!õ¹&¶é~‡nµ±;º‹¥Ç·XÃÄ×D¯ šå«‘<^19™ËûË(­ªR‹%™[¤•€V<¾ø‘dl¤¸RhvªÒu2Q%‰C±‹×…Ý5ì–É)þ*#™¢¬…s €1–“øÍ -íÂýYgÓq|+èýv`2ŽÙA鯂P•íÒžâh¯Ñ<“[B¢-ö'd(¥5ã‰âÀJ°:a—6ðPºCþrÜzB7@bª -Ûf6¬£QÄp ö½P"N(ï’|ú$\¨ü„\Þ Eñ§äs"|ÂK Æ>ZÄ}¾OøÝ%ˆ({X#\ôÝã{µ‹˜oBÝ!Áâìù!hqVØâ 69+ýœ…l‰éá½-Ѝºtû‡Ðm¾ä!@ghÎfol啸>sŒ&²å2`Úê‡{ïÃ_:+¼\w’Þœ@Šêu×Éw·ì‘<áÎó®‹ß­“9×) ³æ±kÓwŸ?Övý½QçªR¤ª²v4h¢Sd95–/@ÈSQž :Ç¢ÝÊÉš<7°uµÉã““¹¼¿ €ª9©"iJaÑS•€¦À5Ò9ÅŸŽåÄÚ0™•x鲊ÁgÓqÜÒ–Vé&pSA&˜iÍê¤]Ú“í5j$ W2ÚÂeì`q¤VkÆãàˆ«NØåóg‡ü#”_ë s6êØ6³q møZ‰}Hä­@ÜèÃòäÓ[¡¸GP¨üôq 0Zä`÷ê -Eø4'\èó%Ü‹%hнZþ|Ÿ7³¿„w–˜šÿEÑw÷AT×ÃêñKßê&.=)¤krCE©æÖ…üýêÜJéÂWÀEPBA@i !ôÞQ¤¢‚Š”û÷Ì$!¨GŽ~‹oþaA23ûÙû) 5ĺDž‚‰ÕZ_ùR290pŸÝ@®kÛGcÊiÛýuG–…¡S)”_òvj.Ìíþ;V±d±L ÈGy³¸{”,¬þ>ŒnUx&ºôAcY†ö*`©öThüÌüB¶äþe8ãzç¹lšÁÍ¥k¥Þh¸vRÓ ì,äMú¸üz£CPû*ˆÌm˜=‘Æ8Ëw‚ÈcˆúVùa ±Qß -"?Œ! È'‚ˆ3FZ#Ýs…{ fh®»¥ ‘z4’ÕäzúZ-æíMð5ñÜf“ˆOÕ¤¿ ¸¨Iïl (ÑX>ý£’iè5H°ë|Ê“f2*zõýz)ϼ¥ægq;®š—~O0ƾ%ZР÷³¥‰c…)gÑ5VGhH Ô»ª¨Ÿy÷$¹¾ù-}Ÿ~í:šN\…;GY—)÷®ÒÕéè?GóôÖ>ô¨P¬Æ*~äà,3w–Sl3©wL£G’WøÅåŸÄ…ýÅåŸÄ…Cj1Ä1ç%' “©+3H)¡]Í5ÏÓ'eqFž97q;A¸ QØÝZ;„>xPñÈOîÕa·{ NËdlE¤ë¥øÇõ" ¹¹w=f³¹%ø3^N.v»cq¸¿Má€M$ùùµ´E7&|n²‹ê7¦UÌØ œ> ÆxÚæôƒO{Çl£žù|޳¥î™Ïç˜qÓ þ”cήì?$3à1Dgg&3ÀÑÙ™ÉÌF™*wF2Ãè½zŠÌæÜÉÌF¼ÙùÈ ØÒôfç#3ÀÅØó‘A_ü[2ãï‡ÿûdf£0™Ìl¦³3“™2Ôùœd†´òÈ­ž"3gŒúþÐÀYŽÍY†ÆF½ 4gÛû@s–¡A«šÓCsñ‹Ë?‰ËDæ—ÿ.ì/.?Æ…ÆßˆV&B9)">øYx&{E@²Ð\3…«“ˆæ\OD‚ïGAüî5þqW¢Ö·ømPéŠé3d=0ÕÑCµá,¹IC ºcÅ"÷ð*%„lÛæùûö6æµU&þÖïmQ«t-vX¿fEeÌYŠ¡4: Ÿ5÷óᆞø¢¹þ> æVæÐRWB.ÙùûK0øýjB_͂ģ*s•Ðå¥H»ÐT‰ …šå 5MCæ<ý~Ñáó¨€zŒô*Qš @ÿ†_x®·œ¤ Ç'Øç‹.7 Â=ÖáàÐm÷dp1ú½eÊÎrõ'Ej'Ž»öü‰Ø3Nô3.Œ -ù“tˆGƒTͶlªõf‡âão0>W>I·e}ãj„â‹—ë"¼¬TÒ›EyøB¿”õvY|Ítú°£ (±Ô̇ÝPm–ï«–ܧé1ãΠK˜Þ^N½ìžŠ‰cº—2œRù…+G¦!¾P½¹8º6‚RÎ*±ãU˜$³[_£‚îÊ f\[T1È”d¾þÀÌ ÏKÐu•)|hçî¸È¦¥$`%†D5p›ÇêS ú|\W5Ñ“äó(kà.*ø——q!{;ã  [pfïtS-d£„€k›Ç1Р#qQeí%‘Nù¤ÄÚ;k¸Ö˜ÊÚ+¢Q³ ?ŸŒŽ‰Q]uÎBņ=7¦V–Љx”éêmÓ‡8¾¦FJðsÐ%ö=p2‹ÞSK‘ˇ kÙŠôöÙV¬Ù%Þ¾ÞØÝ©ðn#ˆa¬[aOÖ$µ?µ‘lí}Ùð*ïj¾œ|Oçõä#ýõá¼ÊgÝü±vkœ Ñlït'K¯Xl('ä¼þL§—“‹Ýî ‹ ÊÌÞ² ïyce‚ŠIãy°ª -LNCÚJLƒ,ÿ‡uõ!é€/Øl✬ŒËÝ4N\NÉNRÜŽ×dæEÊ̺RȆö¥Jª¨õÝ´éã ¹’Ä&rkææpLóê´T¡;‰êÜG”ÖoúÐ#4y¡ílèñ2}ö -XƒP…1š¯t‰*†¿#¥EõFô3Ϫyð‹¾KwŸe;P±?§»ÚþÁÏŸæ4r¬Ui8ç6æo_m./ž¶ËH¯þxãâÁîY·Ývæá©ew©aè1»{²ÙÝ¡W m@´:3ćȅé†HiUrðÿÙz‰¶T‘ÃÙ—ƒ4í6*s·|‹‚?ºåç×Ò5Ún­¤'œÀsÓcÞ˜j,ŒÜ´Áâêá¨4ù6q”|æ »ó,›f£¡¬Ø…ÏFÉÕtk¨©+ÇÜhÝx2Ó@ª{0D†Ã^,ÓdT^?8*,E]Ä™HÂßà a/‚î+ã*VUÝ£.,Ù”+:ÇqF·Á\á÷ÐÉÔ•¹[%´«¹æÙá`ú¤¬"ÎRxçf#n'vf4kÁÇÝᢵC胇ýDvïZxfhï1-këpH‘®—â׋,äæÞõ˜Ìj<ÂÙû±8Üߦt4úÉ‚Fn²‹0Uâu¦mN/Á´Çóó©„²íP²Z¶Ul†‰ÒumÜé§U„Ö´L¹1w[· ’Å5˜è?KÛÍFRQ±üVK£ûwÎFq‰F^­Jœ¨ôF ÚhÀÈ7[$[â/.ÿ.¿óòâr›âÁX9Xb1'÷«ì!]´ã—i¹í¾zI]ñÖ3¤l¹Ðj:scI‡ŠE%a'&C•?wHûƒJ…ИFäé$ú‚À!þèp¿Í²Þ8ý.®å–üÒEŠNV®}·Úˆ¾.Šô]ï‘$0€Lò« µ×¼¹|^T“á;ãF7@M­§‘·ìrÆÁ»€t¶Ž=kÐ?Žºƒ€R¹IÌ}1xέÔ{jÛJÅ’=I.öx§±„s—ûƒáù;ñÝGòÿ…ø;c4±~ÄÈ„/ºá‚›ÿÇ~yn¥Î6aø8J€@ … HO((½¹‘"X±QÎÿ›yRˆl7¾Ÿ®¬åÿ Lž™{æžkŠæiéS©)Ke­Ð,]*gUw0'SY¯³™¹’ ·A%\Œø¢|‡—ÈðÝAõi91ú…"‹¤lòØ»çåËŽR]dÜÆ^ -xMêª!ØÔ˜|´Ô`ì2U2Híý¨¡Ð¨Êë)P®/#æíƒ¸/ •^^Ñ7¥»ø¶§…èl:Ù‹xêÚ´Nɶ~ÑëIl¿§C’=’nÜã€Éj½aò¥=A, 9 -;æY ÷‰¨Y1õÑÓÛ ‹ö!}ÇÌÀÇÐÎ63ÂüÞa3ƒŒ¡9lfXc`gÇÍŒ­SÑï3êb2³sÄì¢öÌì1ƒÃXÌì1“~1˜ù1¿Éß13ô1°3‡Í úÅGNšè‚væ°™aï“ZýÌÌÂß!fâc›9gf@J›9gfPÉ›9gfð‹Í>3³Nþ¢™.hg›™‹"væ°™¹(«0432+MZýÌÌ–ìÍÌEíÙÌ93·´ØÌ93],6sÎÌtõ…ÿhfÑ_]~¤.á/®™.ê`ÑtdÍtQ‹¦#k&n¯ïMGÖLd˜wƒ÷³5Îý«ËuiâFdZúÌYÎ&¢Ñsá…•.GxÖi32_Ê+C¼Y«hÊHóþZ gn Œd¡ì3‘ZŒrC«åúö9\ ¤ñy4ùÝ>Û. -8ëi,LžÜ9Îû€Mh)+„"|w’Ô“Ž -ê -ºœ[ÓµI¦]V®øÌdôëE.`, E‡M…Ùóx*%Ð¾Û -Ò#ƒ Žr§šjR_·ö±³w/bš/_EIl /²huó¿:„ˆgÃÇ0Eh{§OÄÌ-¥¨Aê}Ú¿ãÃ-FúMØâú–„KÅñ‹‹¸®=‘}c‰‹´e”ˆ¢•i”zÖYÐH 1K^B³Ö{ムïiÍØ_ÈXˉP7ÓU«JŽNÜÂ;®X¨$V-µ_ò Èwj¿¸léUGÓ¤ÝÜMFÂß³é/tQê„[^Ø™ X@ª ACÚ¬JéX¢ÿ¤œ¢ñ>uìó$$++ÞM´$Ы«™  ÌÞÃØ6¹xÈ5N‹ÿpÐZýˆU]Ô¿h•ÓÆÍ*A"è\>mMšb|Ûð-ËãÑü¡¸’¼dLz×ka3s3“E^®Gn¿Ö»(üÃÁ¶)mÈ œjЄÓîÖ*ÑÙ.ÐÍZæïçI·…öÎw¯Ž ч«½ì/…³~*ŒwWùÒýŒå©fbá饶Á 3HÖV6.Ì/ú1}ò>vY#ðù€ã–s1·‹6ØVmJedF›ö†%%,Ñš¦Ö{’ˆp• ±ð+RAϼñ±¶Y¯Eå“¶+iìU,s« ->6YÕXÐ`ÂàA#¦B6l½ýF×!Õ†=Fc¢v4b½›“p7½NÝ>ºÚ‰*¾„3­Ä;ðÚõ»™»‡ŽÛ§$·¨Ëì6îöÇ_4ÛAõÁfÇœÛ"«Þ†zî£ç%²]ñ¼/‚†~£¶ÛE 5.Ki,×{-šjÔ›L:~Ï[Q]!õBëïfž:CbŽù{O«,ZÅUô6ê_”:cMYy® ­ÎŸ€:äûûíÎl$þÙ6PÂA‘Ê>½Ø-¤Ñù=ÇïÀùaÜN/ˆnFÅ•š²TÖ -ÍÒ¥rVu·aže*ëu63WrávGÉ#˜bEù$/‘¡}–Ú2ÌÓ˜/”(d…•ÍAþîyùÀ²£T·1‘‡œ_êj)XX÷·Ç|ºæ^Ã…>c» T2¸³õ£zv`7àIà‚r}!1oÄýª›^^Ñ7.ªtßö´M'{O]›Ö)Ù6_ôóˆíàüü_ÃtÁñÿ¯áÆ=/ è‰êü«×Øð"º?m¢›I• -]ú9Ÿæz>‚9„¼â«ù¯Œ´aFù­‹ŸÇ¹¥GÜíª—îF˜¯Þ/¨Ðžëày]îƒçMKwɳ×B§ðÜ'úA,ÅËЕ6¡/ÏúzpoªÑíjä’×–LC’f ѽϚ)èN”›~Œ9j–3)‹QÄE)ììÄŸ=UVÊ µéäOr±p6à¼vjÀLe·¿(„)zÓ™›ô‡`£jÌ?íH¨[D¯˜ñæŽð -h5džuùº”Wîo˜/8f2Øû0f2.ŠŒ‡‡ nI0fŽAøÕå'ê"uùºÈÛä·¡ <±Ìa(sQˆ2E°Ìa(ƒXËŽBYôW—© ‹ý ‘fU -.T‚zt.Ÿ¶º»ß6|Ëòx4(®$/ ÄàÑ»^ ›™›™,ÐǘÉõÈí׺q|á ¥í‚dåò  §Ý,q:{Sèf-ó÷ó¤ÛB{ç»WG‹çÂãuø°ÚTˆ{ ãÝUÞp¯áL´¹We¶•M[»ˆèÆ*$Ÿác—5Ÿ8n9pÓ±¸·QȘ°jS*#ÓMmÚ–”°DkšZïIvÓý·ŒÛÈP9´0ãcm³^‹Ê=&+LÌj_©Xcb›eï³­ª0YÕX¡8˜0xЈ©ÐŸ [ïéï ÔÆŒÃCÆE -::d€`qÌ8füg¦·°ú¢™YÌ윙.3;gf.jÏÌΙQ߬ÕÏÌìMþ¢™¹¨=›9gfà–›9gf ‹Õ°Î™™®¾ðÍì«Äü«‹Ø¦É;Ý“jVÓ„àãé“~V«ÃÈÜoçIv²rÅ÷@ÞñL°DãõWò?æ’‰ÆÐf…0 έ¶Võçe}ÚžíY žò?ö«´½x­ ÿ?!“YCE餕cøÿg­ˆhÑç¼/×õ|è—\ì쬽öîuß’GŠèÜË8ªIµŸ²¯õ¼ gø’ RoøÐ3•I·]\i´«Û§ÔÉñFål½(“Þ×qº« ?Nt2¸ÊCa´ý’ÇI€jvø‚ñv‰=ýYáKƒJÀú¨¦ÉðÙ""ϼÃî¶íZ¶#?)IS1ÐéŠLÑ@ÐíDßh]Þu¨Ø{š©[™iX†A¾TÓ4 Fìù -$/ªä—W"%Q«b&;&ÅÞªƒãåˆ?-r.Û[ü+>28DçB‚¿á3˜ ý¼M­o¦Ø<ã „Bî–³VÝ’KòT¯››î†¾Kz¶í,ZkëYyñɽL£é­Í1åRKnÖà”ï&ˆY«_¶ ¹ïk¡œÀòŸ1ÛÚ«[8çK‹eÂX3Ôë~³±A˜/]ÞEö›0÷õLÕó/Ù¸¾ç£å¼Ã&áGˆrŸø˜Z pŽß–6ñãËIº´—ž"“Œ0xîC”E6!ª…*<éøxýXƒðgA?ËÜÈ­9¹ØÖí¹ä™Ï!‰L2)zŸ;HIºà<¢ÀÅi)«v“¡ ¯ ü¸w½q/Ö‚]«k›ö]—sB_ÌîNͨ SÂ9ë' è\Pšµœ…:^Ò•µ)6¬@ú‰êöðNyîrÄ OÈ«þH}Øæ¾<§‡qPÐç5î +ìŽ$‡Ae!”‡]A¼:‚ݾ½[Lnùsli¼ ûÖüصïbmê» -ÁÃv~/øÊÙwù²é~1Ûfö.îÜ‚ðh0]$†›AKû—‡5٤ߓ߆C W ' ãÏž‘Xè>Ëá²×LlˆmYhêJc´]»~e{±ƒåG|­Ì¸•/ªi&òœ7gÉüµÒ­jqçÇDk¦3wT¨ªÖ±’ âaŸÈ{%‰ñbèá<æD’ó3“I\Ž|» SW>ÜÂ+æ]x®òäã¢ÏYÅ)We×å\I˜¿ Qø€áèMZwVß>즃ڥþ\9Õ^– œÔ.ítlå5¶C;[9‘~ù¦Ž­œ û;´ÓPN#’!n]mºÉ„˜t&iù -¬/¼¬ -÷7ƒ7å#æ†$wÞÝó¹¸è;ÙÞ° §§Gk…ñÁƒ7±å—yÖ©ƒžXÑMon.)2õJʦ+•õy±çìÕêì53¬ñ˜AÁŸowt’ ñ~õ1³Ñí‡lÙÐûËø:M—# ¾lôþ¶0ûFž B0{²¢øqEåÙ8S×ÛÝœê1š–¿ho¨vÝÖHCOWý*f-ä¯,æóúŠÁò“ðo«Ž{•E±÷Qáp{,:Xk¨»â½ø›—¿./¿ýò—æeüág¸‚á30¹{ÜH8i¥¹lË“üÌ$ùö™gd¨‡? Ón´nÓ K1®†ù‘+´ÚÌ@PQ xºù‚ÉÙÐ8¯Å›Ê‚œh÷˜{‰–gÙföó'r\Tn}Z¹-‹ÌSç5“¬8瘰_e©•æÕ‹EQMGŸÖ/®F¡©õrÕkÙ¸qõkÈt¡NXCp ÿ1¿¹ ¨\ÿܹ™èê˜Z43çéN([îðn{rÄ -h£‚Ó³!¾›áO8¿¥ü/Ãß}ÎDÜ 2aÁ‹/üp#…øŠ§D˜R¬´l=w«–‹Î+ :)}>—S5í¿jªiïðFPâçaxº[ŽÒ0#bö e‘ErÉø†‘è¬ÏËУ¦Z¦œë v-/^Ä0¢-Ìjøneƒµ§IOq-H2§€šŒ ¨O—¢yëå[hSÉÑ3ν„—mÍÇÈÉh;àºÐ/¨¸­_ oBWÞ]DÔ¬1ˆQná¼§UVã ÌNˆ<… È Ë ”Áu½tçfG/½Âo^þʼøv–Ûfj\NfˆÉg'3‚0×܉ÁŒ°ño’ëØJ曲8‰’!3µÌé”ÌZ¿ –9’!s}õÿKÉ$ú7/a^â£ÐÞ!C"¶ú§2€É¤N;dð.ÓN:dL>vœ!××ÙÉ`>dà.g>ÝÁ¹¿æÌ§2ÖÜ?Òiî3ŒØwp96˜a¿‚í”`†pvb0[GìX`6Ù9üóò'y Mñ׆[†ƒôºi„Ï¥ºÄ[[­SW·~yùÒå]$´± üâʱæêò\çÝOR'Çõ³·Í|YržÀz5Ÿ-ÞM%M<È|9I×à’½¤À>ôs"s+ÍÉÐ 陈ʤÛP\i´«h  -yY‡£N:Þ\|e½(à °’k´fÌ¥· f%ÑûÜP$…{=¯›uîUN¥±?SûÈC½<(fMÏ&PÓ“xž$ Z–¨ÕŽ£ÔÌ~Ù«ÕŽ£ÔŒùÙ겟¿yù ó~ÿæå/ÌKáÃI(y…ôy]3¸KÑ&ž?é–vžMÉdsÒ³–ǘëgÿ²_e[©+Aô øÄ"ŒÈ(’(ƒˆÌˆ "ÈþÿVwfô׺׬uÎKIštuíª½w•’‡ 9]&‚db£: -ˆü¦ÔðPÁôiê Ç0ˆ±a?ö«ý.óm±.%Góˆ¡ÈÔà>ˆgR@rÈKo›ê^ªt»ÐÊBg+ãÉŠefUÚ~55 mÖÄu‡F’eüšžÕh|fäÐ%gz“×ñå…t«´Fji}ö$5[áò,VìºõÇßæÞ?ûžÿ&þh~AA§Ÿc£&XFFß¡ -Ŭ­œ84ΟµÑ`öK^§B)dsBÈvMƒôxÞ‚ËÓ Hªíº°Mê€ÃD*f•H>­õî@aÛ´œCòÔ]õêó~©¥t<_•ó‹ðã¢åNOÇhð£ãccvéOEúô¶`º@\HÉw¸m3ff=–}ž‰0¤&F¢«,øõ=Q¦ÓÔ:éô•R4E©j¹ÖIyûŨ'mí3mH\ÎT,­°'Äéw 2 nÍk~¼®2`Ç4 -3†*Ùèé‡=TQžÿ‹Ëÿ¦6ÊÄ}!3è}—?ô‹ÌÊg2 ˜Î|&3TcÖ,ãß$¸xJÄŸI&@8³Œ“ ìbÏ2þM2¨_¬YM2—qù_â…¦yMþ´È NöøC_D&@˜ìå«È.Hf|Ã'ÇÜ"ÓŠP?-2†îó>‹ è‹í™ýØÅöÌþ‰ dÌöÌþ‰ îJgäò‰ÌÙ0ÅLHîÝ2V -º@ډηʗŠVb¦9òrð¦¯DiAì[Å\¡'J•r3_MÀ'‚$üÚ×<µh¥h‡“…›ô„Þb¾ÈI+…fº‹3Ú¿`þ…R -Ië$³áxfÿÈ Ï/¦göÌ@_lÏì™a†1=³‡Ìvé$³áx3ÿÈ ŸÅôfþ‘àb{3ÿÈ,@8ÞÌKfñ¿¸ük\(üËàdpµa»i.àöæÍDw‡Ýqnòiýü—9Yptä:ŠÞoñ¬W8¾‹ -A êvc—ýònÔíiSHáRg^IU KÓŒ åbù!Håú½tìíQ±tݦt²Ñxy è®tÈÍðtƒ|;y‘ÖûGXG¦ÝˆYN/4A÷ÙE¸wÕ¿Íó“ì\0ˆe™©'2ž:_Êæ UâìMCUo*§›ŽÞÆ7VEÃ,ÚÆtÖ½×i€060ðž€kÆr_oºfî©™Öá;Ùˆ@Ãe ÙV }±ƒZågyHG @晘ÁÞÚcœfámp7È©ÈÑá·¼þºÒˆÁû"@دî>Y{0(WŒ$Oj]>Œ.§ŠÌ!w#é—‹ÜÞ?¦Ž³ –>stream -H‰ìWçvªJ~B#(‚tì¢"¢1ö®)–h4‰ÆþþwÏjNroNîZ®•ùƒ03Î.ß.ß®E%‚d4ó°&TŽ“èÉM]ô§UŽÑr7£©½­0­r”Àï}‚¤w{*£iYø‡š÷1Zbõ*ÑÉTL‰×¢19ÙÜëê¾ê™æîûã}¾ - |÷õj»•v#‚t±ƒI}e¶Tô8¹Þ3Éö˜x¦ä…ks -’ëÖ„üàŸ¬±àŸÝÕ&“œïeÕ•¡u‰®å…géÆÁóLÙþ¤*À=M‘ɶ»ùôM§3”î©Ìóˆ¾7RÒËUq‡6FB~´ØãJ@ȯX°>ôŸ-Þ6|Ü„éX Â¥÷ -Ö• ö„iÑ ³l„®™Ãv/c0aÚ4³¥vø¨mMÙÉž¶ -ÜÛ3Ž–JÈÉù,î¶[ÅxFÎbàp{£$+C ¤ä‡¾¥À+ žÖê×Ò`Q䃋 8ÝíøRc*ù8žŸO 0}™ÒÈœ%ë*òW»8ÓŠm£³7oËŒg•“¨瀋wÝ¢\ìü¥éò¡½‹Íuež)jˆ÷6ƒ}‚ !ÁOÍdþºcdSøL^Pk)e‚L‡î'>Á~Õ}|ÝD[éˆÆPN¶×ºƒF‘=ƒiBqà‡q³ÊÞ´õ6r—Xl³Lµ—i‚<F]_p3º’iÞ›ÆÂý˜®7ï¼Ùq Õ±´=ÆÜ-¾¡·Ê;HÑ‹ H#+Øõ“Eù¢¯ðGÖÇ$Ń$ Ëà -ÆÍŽ˜W7g)剺ݿ¸ü@\"Ëý/.?—M6{¡ ’¤À«¢éÍ€S6†aF Ò…p-ΙéZæÖ¸¹v5$o"‘'ÈíVKŒ$ÓhIߤ/ꑸ -@‹Ç%õXPëvñ´û €£¿˜vÅ–ŠÉ«¹?奼Ó&Aד„ »ÐèŠfV*…–c°äÁô寯%ú0yMÅŠ®-ltس #ŸàÐgyÇè_‹ØpÉx¬H¶ÍûpAÚÊzXǦôSf®îÛ¦ŸÖb¡vÀ]2‡%2rÖ_,m”†¿9–’熦™ëÞk€³êmÂúÒ_6FxÝŒœl¹qPyíëU¸“®ÁV"šI·¨Ø[*&´!ÔÆš 9~§æÕÅxB}³×d"Џ—’jY¦nåpRÔ -}µË Ÿ\Yù‚ÒÖt|í¸¼%|"oH™yèfn¦ß:‚ú­ÿÁз7ýØ}vÐh*çh$CG˜6$µ >yÇ ¹…læ´ý€ÁâT°¿Ì/Œ'r×LÅ“]%}Ӯ΀TΔsQð¶+½‹EÛpä  vNRÈ—÷„H&'Þk™6÷€1÷»9æ+€U}ûÅåâr•ä¾_ÌÀTÎ.\Ì—³ 3Â*g.fH -”³ï³ÿ1É )Î,s¹I† O³Ìå&Ü‘íYær“ –bÏ2;Éx ýâòãpáˉ×ï5,¥±¾p“žŒÚÌ…› Īèn2–ö»M&N«Éƒ=ræË5‚Ìb mÿDälðFuÝ‘¥¡Ÿ¿šL&àÏ@ã'OD'ýdïØ :gÜQ¼öÆ<¿PÍiÌ.lÿ]Þ‰lë6.SÛ-P_:œ|³VFÌm„°åt„ŸÕÙ—ò‘×0wÔ"yÏ‹ãŒvÑÊÞ Èw[†Œ$Êðe5•hÏ,X=‹Ì …j1ë°ñVÚí–áç+%&æ8ÿÜ«hˆŒÿŠp ö"pw‚u\D#ð -KL~ŽHwÑ÷˜ÿ&TsâmN,ez¸©Çž¢» ¶öMº88ÁO¬[ÊJ³H‰Á˜’»Û Ï0æ=Prß~'S¥™*ŽÜƒþ”fÀimÑ-½cÖÕì7sà%H‘v5àO¾üq•âçO!]v\Y'§Ko°FÆ¥!ÝMYkGæ±£5ÒΗÂcU(Tî‚x çþÇ+ì“Ó°PèŽCgkÏWb\(ìöÑwâÅÌG)ƒ°LujaÝ‚D^†˜¿’¯DÖgúñêqÍ-SåNó½Þ>)+7ˬ 7Ñuñ¸VÂécsPóð†lŸÿ|¬PªÔúq]|ü  71o¡qö‡ /Sr¶¦qiT‚P‡YçUÄú’µ ø¸>“”X¤®ÃÖ38°|ß„ÿøb U®ðgäô¶V±Éà\E‰Nù„yó<ë¬ø­®P^‰¸ê@ŒA†¾g¡ˆoW¦¬ÅêqÁÍÉÅÑ•P9ªǪ̂l‘r(ìóPÅkòTþÁ‹ZŸƒ²í:h0àÐ=ÕÌ1ý¨òQeó•"{msRÇØU ŒÅ“*Ÿ(Â}©HêpRÄš’>ª’«~é¶\ãíË#í>‚mù×C½õ—÷Ü}é»Ü`‹pùüÐÚ)RÝ 4Gñí¿ÇY úËËt™}|Ý â¨Ð¸ðB$CéEÃ`Þï”^UÁŸ•ݬNk•+}>Ùød^Âm< ú[©§VöÚHÒÁY꩹Že;z¯lF\‹eš]— 9õP¼#•²QsæÅSZ|NZp²6&OYèƒÞZÖªhöX™ú-ÒâM4üèmÝcQ‡\Âà:"ù]e¨!j™u‚šƒõæô^ᩨ$ˆ“Ot§ïÿ•¢ßâV–-ýÕù'ÞBÒˆ¯pç­œ¿ÚÅ™Vl½y[f<«¬˜D=8wy×-ÊÅÎ_š.Ú»¨ÑLuQêÊDâ%hVµ„qÕ{›Á£)ÿì®’Ų@¶Lo -ŸÉ j-¥œÝO|–3è~Ãe‡WïVJ/WÅ]ú¦Ó¤œl¯õÌóˆ~\d[#›.Žë˜=²Pš Úz¹K,¶Y¦ÚËô±A×õ7ó§+™æ½i,ÜézóΛRÂÊ¡X:Žþ³¤réT-,3º^¨u1y¨×)¥9=ÐÞKbý¬® CÔ–8Ya’~¯ù‰-Ž[fše4^U9`«1‹ÃŒ'd~¹Æ‡öºü:]öõòKu¹åx0Ôä ³'êQw<j¾C§žr)¾{HüŒ8»´šÍim¨Úá„(lPV:“ø…_Ü$¤d·T<%áæ0ý‹ãR¬×á?Yo¢ÞÅ+/ùvþ©‡9”‹£‘>f.*ˆ¹î/s©ªÏ «´Eg°+#-¿&àA/b4 xŒÃ=ÎÞx”.6hâ³vû'ƒé0¢qÓúxøXZi7Ôº;ÉöÅ*_éó¯8¨ -£KÑG»@û›?ð¶Ëü'ŒÉ&ÈHBˆŒ°ÐàŠ-s*7rQÏ7Ô ­RöµsÒ%ÃȤgZ6ÜjkÙÐ|((‰ .‘‰ ¼òÍiZ9±ê…r˜±a&Ýâ±7ëå‚‹¶Vž§}¶~}A/ šŒµ@D‹ÊTƒÙÎ5X¯L¥4æû^ÔRhXLÒ®ëÈÚóæ^tEj1bnÔ;iÓÕ˜L*ÞøazÕ'5*á©3±úŒG­Ÿã…ºö]5HVó§_¶È›à]Œ"f^iâ¹#JrCÎØÀ°jzöºüJ]Âû¢þx3#4nº»fv@Ùjì²™Á*¸í¸™Yœìmf;˜dLßGÞ#²ƒI:¿3Ëìn’UœYfw“ dÌ™e¬I&)÷ºüB] ñ§MÆâ±› ¬âv¯™ÌElfÇ&ãr²×døÁþA“ÁêÛ̼;“¶t˜yw&s@¹Ì¼;“ÁÆfæ7Äœ_ý`3; H;Ûq3#såÚq3ÃílÇÍŒt˜îëÇföø“æ¿×åÇtYDpxŽë/PE–DëzV#fJŽ{FþÂõrFˆŸg^BóŽóˆd¢~ÜXf¬’ÆJ®ÇϦÙ4¬Ç2x©#'ÛPш¡ÐmS‰)Üòª²×‚)i)©šÀÞ¦¯¬PúrX2‰Òá½í¯]2Tõ¼é˜<_úëŽ*yŒ' —nþt6Šá>&¥YH°žáoj>É¢>r²g “ìç gå1`2tŒö ÐêÚµß^nKðr(aõÜâbÃséAˆøµCã8­v E¾X´…¸ålª`2¹å žÁÄ8#_ÄGSE¦/ã!%Î2© ì6‡àF8åüh<ÌC&ºB8³•èµ-Çái4‹9£à­»iS!Á¢©#U;yážLñ•äK¨®ZõMÝôq?T  å¦Hî9@†Up«Зiîî9,{›Âǘï-q Xó˜:o -l²ŸÞ•<ÿ] =V>¬r#¨˜˜36GÕž¸š<“øÓúåñ›{cSß<·ã¾­¿‰6žu’P×"Û´dÒ·O¿<;vƒ9…Œ2|%<‡ “Âìå"ËË.>ý‰uý˜ƒt4áøž «8 ÚŸuÉœr?^ -lçâ$F4!FN -ᇴ‚ -±a:FÇ*R/å"š Q2FŸT­ùt2°Àß+=õ× ‚¸ƒBƒK¿P.yb‡„Æ|N?‚æ¾-ùÀ¹ê¨®á£}þŒ';¿˜ŽßNÑgž«/XsR#Ã@iB­<~™¡çÏ9ð„ç÷œû,'ö¯$ןr@yÑA8]ÿ9'¸·Åþþ8z÷ -Tå»—¾Ê­û -Þ û—W -—™ˆû -éc_‚6ýów¾N/œ_ÕÄFLYä«8¼ˆÏæFÙ´‘^ïöÂÁ,ò,¦„â(Êò7ÁWÖif¢ÀïËIðÿâ¢ÁêCµaq^Þ=r4>LI0¸FšË+“ZO%3$WRäK¥€Úšþ<¬í{­E¾t|¢€WÊÛ™tÓwµáZ¢ûíµï*¨Aÿñk&ÜœJEðª3}´‹¤Ù[Ç)z5©é; ŠQó`9FOÚ2V-bž—«õáÐjÀ>íuù…ºW¾ÏLƦ¾Ýš îc&{îÒd'7£;6—“Ê„à^—ߨ‹Úëò uIlâŸAÙE°lÇPv@9íz‡PFH©Ý1”·¬åG ,º×åWêÂáê…f -8þRÈf&›K9Õ­H›óÃEñj8»WVr ¢ÿ0 ´žúØñ¼ —ë¡Ö;ÿ±_¥[‰3Aô |ˆÈHÈB€ Êš„]¶€€"»ˆ‚ „÷ÿª; gÆï̘süáŸIÚîêºU÷ÞŠ  Ý+jg$ÏwëÁg£~Ì ©Fåæãyâ"Ó:¸—rVg\Pît ˜½øÁá1m°Wo,ØØ«0Öâ&­Õhs® dboð¢ÍWŸtYv>¢°í@°Ñ(¿jyd*N6”Q§—“‚"©(rµ#Úý˜Î¾y”Þžôq®4®^Ùïv‚´DÉ -bº:­U†Y&›E~¸ª0|¶;¤P˜´‰ÐÞ©ª~òLdp©!‡ENA2ã°È@Ætÿï¨È€VÚ!ù‘™cÛÌ›á‚öq¶i.<¸mn¬û5Úá¦ù¨û_Ò4Îkì—o‡ ê+ö—ï‡Ëý5.°éD¶´’¯DŽÎ ,OÑvY—eäÂ:tÙÍþÖà:8Fô5¹õÏÚÖœ‡Z´1w'M?–í‡ G÷»§nà<Š×WZù ä½Ñ°gºNñd:*ò£»Ñ-³¤*YØ ^Ò³í»éî‘O¼³_|´É8%‘mvª£w}ö!^èrpÉ x“à -©&Ï>]WYöjI~”˜…ucŒ/s¹ºâI÷"‹ ÕX¾bKuEA¹Ë:XK¦ME~zL³~Ý×±n¿õ|žÞ€kÒ×ÇC/NŽ=PGùï ÈXÂ^Â'ƒ-Q«hDzA|xˆCî<dŒŸ$IðÃ~:Ê4ÿé×!üôk{ÈØpªÄ £íB°gÿ¥ }uÕMÂ…üë—y~ŠeÑf2TÎr©¾Á;Ï5?"»iýÍóƒ5Jh¨HÚ–WÅI„-Õ¢¿ßB·‰¥Ž›¡­ü¼VoÏÞÁ]Fr¹pú6ÀQ¹vÆzWýÓ¶¢‡kJâü]ùj[§Ú•Šå“!'lÙ¿.Ã÷Wå˜'¶”/Ja÷U®Œß¡ZÝZô‘ÖîÙA>º~Ÿ&(^ÉéÓ«gÎ= ŸM"ظTˆà”~$ 6KÍøºý m º .s™KÄç1sâ;Šìog?ýƒÐòáÁÊTDÅç"MCTß`-ÁÞJ_’ϾGa—E רmª@²%í¥„&-½ÑE6۽߆R ë¶Ç‹#íÿG˜ž¿Rµ˜ÞRú "BÈ„ç ˆ‘‘LFɒ؈‹ ûJ¦‘»—ÊE¢RvSØí’7)l©RÊ?ësÙøutj0›†™_‡\ó¯uñ¸)ä#eÌ-1ãko´¿.¬¤'Ï^M_§ºÂÑ;Û)Oxôw†ô ¤è' ÿ³A$ì™ùŠaïHj4®~°ÆS`Õ£Þ~pù†¸@Ü?¸|C\ò+Ûü,ä<Õ}*c\0%]Û‰ÝÕâÍ×V®eaƒµðmÛ^]ãÝRL#¼ãE„ðF6ŠMuBE3"OC_8ºÏ@Œ ç±ædaˆÏ‹&ÛÂm&6˜ùuE&û-Bž¾¾ÇË{>³ÞTö™òÝÝFÁm6·3ËL*”õalÚ¤‰ëŽé”Hì“]ȹU)]i½uE›§T­™]…L-§iu9Í4ÕŸ<¡ÓwG}ÁÑàYå£ÿ1.è]Ê߈ÿœ†óaÓÈüú.d*°bÍ”¤ÕÝóü ?yÉ®D—ˆŒŽ °1A g*<¦}«´#èÁB4¢vV h4k€$|–P—äÉFåF÷cú‰æyâ"Ó:¸—rVg‚\Pît  ~pxLhôÆ‚ ÂX‹›0Õh†@&ö?Û}= “.ËÎ'B¶¶BäW-LÅɆ2êôrRP$E®vD{¿èõ”GÞ“Îý˜9½b*HKì -qúO Ã,“Í"?\U0C -J›6àaU”äpùv¸0ÕÖ»çÏd§Xäâ™AïŸÒ§#ds%¢3‡ÉÌœÅþÌ>›dN& Ç&˜,¬YƹIÍ/æ,ãÜ$¸X³Ì?L2Ü.ß—O&ÌsëŒcFœlzfç³î“3 9fìúŒ«ÿ“cNq¥ý.ß—¤ëšü-™á»œ‹d½“î,™¡»`Œ%3œ1ëêÿHfµÍ±¿jƒ-näÇô¤;Ù4H_ mnK_¾¦iêÏÚ¯ó¯ìW;fÔ/¦gvÎ1#¶4=ó×:fastÌfÆŽWÿ7ǼþÁåK&™¯ÆeN£h …“2bÈ‚ßì}2•NXÑf#ZÝ=Ïú“—ìJt‰h¢uívü~LPÙ -iŸð*íz°¨5n2žï6€x>KiTƒÇŒ¤7*7Ï™ÖÁ½”û³:‹ðã‚r§[ÀhðƒÃcÚ@£7lhÆZÜ„©FcE ™Ø¼h3F&]–O„(l;leÁ¯Z™Š“ eÔé夠H*Š\íˆvÓ«)´¢'áÿEè[W¯ìw;AZ¢dqúO…—a–Éf‘®* Ÿí)&m2íÞ©ª~ò¬i°Š©!‡›NAmãpÓ@ÆtÝt´i ÷í|MÓhçc¦^c¶AÓgvq>h:âÌîŸ šŽ8³ºÿ%Î,ôƒË_ãB¸èsHÏjšü,­õhí=ÖJãì$ã÷ËìWùrªN}B Š -( -n¸ nq_¢f11jV³©ïÿë™aÓx“ªï†ª[õåÃd–>ݧÏÁOÇ £èëþóŽCgb«:`·-«°Ëd¿\IM;Þ7½b,àUZÑû•ªj/+´º¨­‹u‘Vù¡:;Þ T9s²øõk"VœÆªŽp{#ÀúàƒRìJÀ:àÚ×xm%ò«pïä¯Ó‹!JãhKJ¥Dö䮈»&âäJ#Â×;ºŽx³t¸éåzV73…HÙf4~º!H öo ôÂ{Ss[••büjøX DBD—fM´â•Êîr¡„T‘ÚŠ×g^Ùxe9_,>—c'©H6¤2Û ¿|"tPªõy¨µ«%âÞ¡%Š2 °mÁ¸•É‘&ªÍ—èƒ_ÈðõÍ6e -zkÊ38梕±D h~N¥aLMÚœ|×6ÒKŸÑüªt'8§ûc~H%=øÇ%¬yp¡ÖÙÀ6{Pêé À•†C]X£ŒÀ¼µ½1™â©·8¹ÓSÇi̺_Ÿtk,i’ínOÆüÉ4ªý¼lÿ·À¥Æ9€›©â±ƒ[¡šÍík.ñõöEÂ1vÿšÊ!§V cfU2‹v„ß—/^¯Z7ÒkËLÓ@"FÝ®U‘Í'dÈATHVE}6 l¹JÝå!òã<Ü”Ÿ».‰ìZ)ã€k5>d¹U…¬\×P%`r¬*ÜæUà6­€];ÑQ~òøü˜í±†±³¨óŠÈ\ÀŒÆ/ofŒA¸í%Gh˜ƒ†êٖø˜!»ÛX)4’}£æ7=&Ü%Æ3iï:C­Ó)íÜ׉¿;ˆ‡re›{?vû àTç—‰;ˆ3“az~÷]L*oÃVé¿LÁ½ò`ÒèõÛu&oßN¹pÄŽtä#“æ›o×Yn¿rObƒs쓞½ß&Õè0:Ö”7ËΔ°‚^¾ú‰¿Ú¯–H("-¿6IJg Eªí$'5ú$‹â\%éÒD¦ùàÌC`E¢©RÁa~5,×4•MÜÁS¬T>+öO=Té²î¯F«EqZ>+…ε©¾½„×åSñºy[)–c\ŸŠ·´®ÝÊì¾d«wÜíɇE @QÄw!F³ùbè•ö2H4 íÑ$–¬C8«’2OÕ1èmì’ZœYR§)ãÉôb728¤*‹Ÿ;ÖŲäÀ³{ѵXàz £Þ&ǼÜ܇ÑäºKç~{àÐ~ÚŸ¡ûìÐ~ÚŸúGÚOû3ƒÇÚOû3Ð0'Êc5³­ÊuX5Ÿ¶N[”¶“eår:,>Ë~©'ÿLJ¸¹ñr³Å~n§Þ€>”Ч‘·v‚`†!<Ðײ£-;0°/)²ÝÓìçýä»BwòPž.:<ÂO•Gã*FC¼Ü]å ,&7qå@£z³UL˜ÚaÑ‘óaÔÂ|ÌóËy<Ë^Ærø¹O•9…íê×£II ɬ®—›#ÙP;€nå:$Æëéæã#®= `…pø÷½QäD¯&ΞO£ f:fû%±‹ jÆâ/.ÿ.¿õòⲺÊó }¢C'OÚÛa&†ÙT©0 ¤_òi~t‚ûîöÒó|€F>„”¸°U©%ñK_|gw@¬a€R‘³@ôé'ýc+ ØoÈÙïºtŸl¼…—3Ô‘±x¼Ògìyù—âm0À%¤qÔNgªµš¨©É[óÓY˜$šÖ-!Å|ÅWGO€t¥‹UCĤÿk9”KLÃZô&HL×ÕgmEmùŒ:ŽcÞïè/]t°\oÀ–ß?Óü‰‚¡îϰD!# ú‚[ÍÓ²u¹«È½Ð-kš·2'[ýøÈeçšê4•YL…¢’‘à'<±‰w!)Ò3bbÔ eéÈ. º¡ÇööËÓËV[d½&~cA/‹M¡!ÚXx(‘Ý-ž,48'LÕ,r#g¡iM AÐnÛ¢qçícÜN‹ôòŠ]•î¥íH²¹trö5õë&¥ìÕ 9O¼ÏÓ¨ÆëlYÚx/i ‚Õ{Gá—mAéZ‰ˆì¢ÑC.)bæËä"FjzË¿¸ü“¸„¥]!3Ì–¦>tÌð.ƒ¸Ëd] Ñ™Ëd9fy÷œŒ‡r¦ˆ[NEÌô2î9e{÷œ Ô‹åeb')Ÿï—·&Ò0{¥ëŠböP¶fvO1{([3»§˜‰ ›\{{(OÉ_\þ9\¢ÍÃþ4™¡ª´ê™9|¥‹d» :s™Ì,=æ$³ÈO‡ÂeãrÑ eãrÑx(\6. Ü•ÍAÑÜU2òƒŠ¡ojf÷3ò/¦fvO1.–f>®˜;4ý׊1Œ©™ŠÎý‹ËÿˆËO8™?áâÏÀ4Ûòu‰‚)’À ! ãeÑ<-[—»Š\Ñ ÝÒ¹Ö¨yûàh³Õ\v®©¡þ@S™ÅT(*Àþ„'{%¥Û3bbðtšâ£n]RéœO;Ü/O/Zm‘õšø½,6eâ+Eìnñd¡Á9aªfÑýÎ"BÓš@B Ý¶EãÎÛǸéå»*ÝKÛôý ›K'Ga_S¿nRŠƒÇÈyâ}?@b¼Î–¥÷’Ö X½w|ÙÙv•ˆÈ.=ê¹RÄ̘ɇÁµ[&į_ègŠ2•ËECeãrÑx(\6.‡Âes¼h:÷ÛŸQfêÀhº¢ÌÀñíMW”è±}£éŠ2ƒLÞ7š®ØL„Ëž¡qE™íW”™çÐи¢Ì<Ô¡ùdg–ÍÀ_“DÌÒî‘Ò–¦pÌ ï[À=2³4Àq2«<{ÿšÌ ^ö¦+d†ôØžÑt…Ì<ÔÑt…Ì “÷æg2[ÿ}“ù¿Å%þŠžÌ²—"´Y4ÂÍNžñYfB×E¸Ï ßB™ø&ÎõÐÿô¼ÚñMl*Ì)Õ“G³°Eï'p p²m ¦:¬·Ñøúä´U©“y¾^ åøÕ,qjÈÔE`-§±ªC”{£Z¢e…£‹+žhǽ Ô÷à\þ š•çÑ(*tмtØyFÿSDQö‰³ê]‘¯ÏOÃD/;:)µIäÞ˜ÅdíZÛfí„‘GùM«§9Œ4éû7H>ÒÕܱMcr¢Â×;IQfžt£ë+€¤ åv"…xlWK@Ø( ˆ×ì8iÓ‡VÆJ”8›æ£;É*F}±@ú<pç’°ìÅ;zUàë š#ËzcæDv±ªƒˆEó%úà2|}³M™¬ cMy–ÉÞÊXáTÆÔ¤9v×6¢£Ïh~Uºœ“ý1?¤…Jé«%ÈL¸Aël`Û ¸i:(p¥aaŒ¸‘·¶7&S|ã?ö«l+q ˆ~ $ a aQ@AEEPàÿ§º’à8àÌœœãƒ/9¤ÓtWÕ­å^yUÅ9V«9쩆Uøþ\´ÖÌã’’œs­Íý§IȬqÁþ/GËÝ ˆ´Ž×l[QÄÀ/¤¬2{ÁÇØJý&îXûrPÁû^J_IÇ-èÊÐù¨™½|,?]ÛU] -×'Ô‹U¡¨>!×Iè|!Õ9‡¤"ãõ\VøaX‰óÃN³ÌÌu…/ðcðe°N¸èC?/hÝ~ª@¢I -WâÚ!7oIB œª13º%§Çk !—²ü`. 'ÉjÍÙ¤FyË‘¯þŽgª;˜çéaÓ4F(Ü-ÀVïßP1Bà ªPØÙX¢.Áá"e§£Á¾f.Y¦>¥±3Ӈċc¨eÆüò†àzÑžQ`þh -2„>jˆ¼þ£!œ¯\e}8&¨I  A¯þðg[?x8¶x ò…>²¥p“‰|ظ|Ø4ò•¢‡ÏA›=²åv=æì-ýß7§xæŸs<€!;€¸ÃüaÓцŽ0„ˆrì“M¨{ô±°Ã¸J^þ¶–*t¸øbÒ—˜H2ç1ºÒÉCåXØ1˜2±jÈL9`6Å04†ÑM>ùàècû¼]§ñp;;kÊšBÆà— :ùËšz[ñ댞çû…ŽJ]ƒúÙÜÂëå4§ÇSù¢´{1øÐ2ðñfUš ƒ©ºöÞ5èÞ>ÍÐyxÐ¥ ažQÎíPÍCJ[J2‰N9C=òÂf6‹ª<ùr'@+ÝE#&ŽÑ{ h‰í¿C/îú¹™é‹7tž„‹ù‚‰j …AQ½0()¯zï&mÞ„XT%±zÈ %¤’MZô%Û4N¦¥Ûþø)ÿ"ù%Äàüïïüz<™LZð¸ï{Åv =X ïÒæƒž‚.ßm‚µÛ —ˆ6·lÇy²YKÿ~Ÿô»ÜžÌ!Çú“‹h5G®º:¦Èüíö.kRäÞHtPd}´Iì¸s=b°ãpîô^ÛŒéøXæt,ÆáÐ[q×ù ŽúrIèÙ,¯zªFId±X8»’œâÒ ù¥'°(«ùZ[¿¿‹Úܦ»v&‡€Á‹— 3Ï\”ùÁK 424²CèfÍœ]¾ÿ¨dK˸§d<„­eÜS2Æ3x´{ -Ó¬}¬1)LÙçûÁåâ’Xl~pùޏ¼% zj LJ§&LSJT&NV¤fB*sMõZ«–½—0ÏÒº‡xϤǚB]¶4%4ésùD*HÏ9͆za6Os¾Ui¢9œØ ò½û²ÁiËChåIÚkNä^—+ø3 aÉSMl‹!½\æÉíä9›¬yßáC‡v|Ðôt­Eè€Öâ°ã¼v_çMŸ7O"à‚¬ò’ %§wäL}Œm®Ša2“<½ŠøÎŠÃ3"á˜/†5âå>Ý?6üwœÿkßbgœŠè‹ÚÁȱ^=jÛo§e5×$_³IöêÓYXìe< Å굨„Èmx%vc§>qkj$Òš(&~£^B6ÃûÚì'÷ =„úxZ]åZ¹×Ž`þ:|W×Už¼ïÎwh´D'Êé½SÄ„¤©"ÙÓav!è™(5È稇À ½KŒ~DcF©@¼¿Ð_´±neSJWÌU»¬ßÉøp¦’7`k¨¡½œ©S%aê “`Y [Â-bdÌíúóÀªG¿þàò qñ§ˆ¿ofà jg.73Û™ËÍÌc´3—›ºe§eÜS2è––qOÉx[˸§dðD6µŒ{Jßb©Ò¯)¨ ÿƒË·Ãåï&t‹3»Ç˜=„Í™ÝcÌÂæÌî1f„ËŽ3ÿ…Âä‚?¸|C\ÓØX¾ÚÌ<ng.73±»ÑÍf=µ3—›™Ñù©if·rô«Eã!pÙ¸\4à‹u£{Eã!pÙ¸\4 ,PÙüSÑlN¿Ê˜¡YœÙ=ÆŒjßâè®1fàügþÆLfÌÂæÌ͘£?¸¸¥dþ ŠÝeYAiûp±ÍÚïÕ£¶­ñvZ†[rí@ò5›d¯N°¦EêV½Œ'­_쵨„Èmx%vc§>qkjn~¹VQLüFCeVdjµ y›Å÷yûFtßP}<­®r­ÜkÇ@0¾+Èë*OÞwç;4Z¢ åôÞ‚)bBÒTôÊà`Û±Uj×Ñ]›Á‰ØhÌ(ˆ÷ú‹6#Ö­lJ銹j—õ;' _Xòà×úl/MÇ¡AˆÞp°pûü0xb, aKB¨EpÆð·ëG<+ŠüBÑx#‰Ý-1g™ºR4&s¹h`V¢²ù¯¢™ŽÁÃEã!¬$v±h<ć2u¥húFÜ,œcÚóÂUÖ?¸|?\P]ýàò q»pùG\Á ¸é CØÀHñA·Œù%V¯ûÈÚ¾­JMðFùŒ4)œÈj ;ïD³ã OúJÏP§¸,“0ÅàÆ0[•¹¨ïL¢´èƒ@*hÝ~ªP -)¥ùÐC[åJo¬dágL6ÀåÜ’pM,©2 ýäiŒ+¤+™îsä÷OŒD¦˜ó˜,óäɃt…7ÊVµv¬i7`ؾSÌãRLr¥»(Î@P´½zQƒ1>ÙCìÝ¥KÓVˆÐõ•&?Ò]„¼ïAñO—ŠB.ì-C˜âÅ ;“×ñÌ*4éâä„8Ñ>¾À?¤á–$hÈÒÍzMÞǩ̖'ø¡ö”‚¯$8¹¥ýB y-ë„å3AvÆùþvCÄ}…ôm„ÀÙC £jKØ“g¯ÌÜÏ¥ØÊz#ï -ÖΤ„rržBùTG^AŽÑJÖ”ÓÝÚCçÂ¥8€kÕιÝ/ø9:T :ÂØçç–M’À—d˜£ÕvÎ^óh5ÄÑWÞòÞN‰€¼[U¡sÔjfÃAÖTC‹*|}.ZkÀ€’  ô4ÇÚÜš„ œ¾p´ÜÍÙ éxõƒWˆfö‚5ޱ•úMüx)!ÐiB&ï¯à?å+Нáà^?Àxy¹·&.qqáž|³þ¤ Sq¿Èr¥vH„ä[@¿xVÓ¬«?L%ª`Mµ†m”«sxõ&ΙÇ‘âtåB†U¶2®)md"V‰‰ -;Ý\spËð’™!ò¥•|ƒÊ0hÍ€¦ù«>¥ )»¼>$^¬`œò¼þβ¡(cI¯èÉÖÔAýŽh€¹w õEç4Të*¤UK´Ã]u§}έ>3Ä ˜ò,­>3Å6„Ïw{ìAC"Ÿ‚ªÒaJzs$&ŠÜØ6K€[ú6=MCÇÎY?“G¶Ì‚oa{ αO6q¿Ø/×îÒµ( ÿ?"!ˆ„\•luP›Ýº¶”ªÛQª´Äÿ?s­•{÷l=cøàKF#iÖJÞ9çû¼4·ï9™Ppß-E%„oûï›ê?„}ÏyNŠ¿Eâ}¯ Ë¾›Äùž¯#ñšøúðfpÑ3Öó}‡{ïb÷·jÈ -v{qè¯41{ Á|r7?N£† BFØSà‹!W…¸â'%IþÛ"B;Ä‚¿¸°]|¤’‹«åR^%)^62ÿ:­QÌHj»ôC…âÊ´Aqƒà3]S ‚‚ï‘ -¶õŠkùá´mSt&E#ûŽÇÚ^é,P’Éi¬rýº*jë‚R…JƤ]¤¢ÞpCwdz î,= ¦ŽÜ’K^“ ÿ -ÀWì°bÁœ®<Ú›.¹À|û´Ü¡§þ’ô¾½OõÛÅ\ç+¡Ì„´–Ñ4¼ÃL’„¼¢ðF‡¬wý˜Òñä Â’3ìq”¶Ùƒ-¨eMÍ©ræIÿyKUÀbùå2ëë ®ZÓþaKJk7a8›$õó/þw\oeæ -úž®›Ϋkàq´þûzIߨ¦ßc”ÍÄ’‘•K*â[y÷ˆaÖÃ7‡pùmôÍÇBè·E½­[‰à¾>¸“­w6§Ê0££göŸÌkØl64‚tÉx)1Ñ¥L¸•ìG©îs‹7­Óî(³¢:>Ý¡Uuc- N.¶ü³B Ó"ð&š0D#ÓÏáiú÷ r` ±RÒwƒÈ1¯òý r` q1ÿ+ ¡Æ¶b“Ÿ_t9C]`ß]ÎP—܌‚/!þC`\ ‘爬G%Á½ºáêÑåñÜW7n²Ê;åû¨{‰Ñ{ôˆIy{ã0å / ì€@ã[#Å4<-Aâ¦@Ö¿Zï:^W~¥"¡Ÿ82ÛªRÙÁÛ§J>É©÷Eq…¾ØÃà dtfÒ$Qèy| ]èY…Ö¯àºãÁ:u–üÕ£K<ñYoã=…ö½JÔÌJzRw™ZÇÐgô U©µ.²ý`òaã/x?8Jý‰A›?Ê•`ÿ¶ùúæ®lÉûÉsØD2êì66ï=£\§ÕŸ¦gª[E˜ãFÖ£øî°‡A‹òõ0:ˆ°ÕDÉb§D û=–Á×>‡j›—”Ùr1öçzê8U]{&ÙÖð^DúI\¶ñ˜ÇZÈõsÒÅXj4{Ê–ùž©Ù2݉Td§uÁr×þ£(ŽúÊ5<¶£l•…<«2Y^cËÆK£™Ñ9•5\Œ‘-5Ôí~!õ”C.ÞÔ—d T}‚™~»¥ Â$^¹•»³¢Øå1)¹ƒvO·WPEqù¢ËÙé"”ªŸÌ±‡êJg£'f0Çl5N8Ì`4ÎN<ÌNÞfÇO2–ïï–ÈÑ“ ¬²±ü“%³É2§K2è‹ÙYÆI2ÒE—³Ôåè u¥Í̧#f`K‡™OGÌ.fÃ̧#f4ùmfÞ"æ„TX]t9?]âîöˆÃÌÅàqvâaFr¥|âa<†ÆÙ÷‡Ù¿ ƒÐËÎ endstream endobj 202 0 obj <>stream -H‰ìWkwñLþ~„C‰&IÅ)J"´¨CQ´êPŠ–Ráÿ?{& Ú»Õw=ÏêZï‡ûK$3cöáÚ‡k¯3Œ¦¯r¦:Ô„â`ª[Þ~È@¡tã]àG煮ª'£™û¥0 8DOJ %F² -Çh…RþÝÝ -Óø]˜Ù.H™–ŠCþí¾[åˆ)§JêE+г­`òí2)´pÁí†ã-¥¨,Ç“ Ñ3»M&.‹;…2Ê"L}ò.s…Ù0“[[:?Ÿ~PÑŒÆKmC§6Lf¾“@^KøBÞPŸÇJ›l3ûv'[¨G¹ûÈ£‡2ô} ÑOÅe²ìÝ‚”¦Ì,µ7ÃÅ«+ddbOîÆ]”ÑÒëWdÔuò® îx«±ÍÊu™<¬ UF»èE ~” -z¨‹Þª¸4ž)«y™Êtäl©#ø‰¶ŠW§ëX®ðáͪœBâŽ]ôNœ…¥°L¦=æž©„`­°”¨IèÊCIÁaSŸE±w¨oÍ£D)F«Íw‚æx²!L_¦4¶”³ïè€*ˆ¼ßJ1­ä61{ µÌT^^3éÆÅÜÚ´‚^vþÒôŒàâ ŽfŠ7¨¬M¬: ‘нN‚_øj” Ž4dK -Ô±<á+yZK¾ÉÆú“0vFѽ[¯‡Ê?½¾ÇË{”]­ËV¶tw7”2íMN_ŒxQàÇeö°1rmÜ qÇŠùƒ¶ßF¾ -Kl–‚íUëš”2Í]#·äf•­ê;i,}OÙFó!”G/ïlm]prp·¼ÆoUÛR×óŽáØEœTŽìØpÐw#5#îDòðfX…Õö»“*¯>ÎV*_ýÅå_ã"¾ý.Ó(Ö’XËSp¤¶ï¡3—Ƀ¶9eW L ýÞø%·TýzWÿv‹¬‘—Lšðxêa\Ì–‚è£î>¥®/têPz÷!RÇ0BÍ£‘ˆ®—ÓÊSgÙÛ}`‘ïMjÆOôPL¾Ý)4Pÿxé ÑÉ'hG»¸ S5jÉÆÞà³Å;.wa:–/àÚ¾|hyKúlœ®›ÃvW7•6Í|¥­žÖ1;ž -¸[tÏ8Ÿek»•vCœï–º0„Š|Ë{(~¡5®Ð`YæQ®3`±¢Q·Ö>X|¥¦ÿsÒ.8m~9i ÆpÚürÒx(’6¿œ4c8mÎ& p­P”À+bëÍ€ÓœÛékµW f¶®ß¥+ï-tq»ÕÒc#ÃÜ.F&<鉹xJG´û¡Ú!Òp‚ÁÉ'÷b:i…4ŸñYÞehÚ4®&i/q†ÔëvD3**Æ´|z?y=´|ö” Ó^ãлí>kr•œ>ÒÏú\ٵͭ%cí¨¯b+Tü$_lÒ"߆ÉÛ§¾ÿ?03°åÀ;cfÜ_\þ/qa„çÇËÿĘ—gþ=Æì¡Žœù÷3T˜gþ=ÆŒ¥¸œù c½ÿâò/q©…B²%³ »çLGÙI‹1Z‹ý¾‡uíé1ò¥8jä\YÜ_.ãž«C!™GO$&½L÷rw§}ø*”Äò"BIñGoËZõ så ˜^ÙÖË5“¡Õ„”DM4X¥b¶Ó1‚v¦.7‡þZ'ÝN‹/nõj®ýsÃ@P_ p˜%‘@t`VÄì‘Åæ„ëZ9ï²¾V ÊÇ–áçk9)9@6ºU —ºñŸwwB(iöà (‰äë)æ¤;ƒÄG Ìï„*õ´ÊIÁTQ…šdjÂsºÐ6áI‡„&x‰õ‡É£Y¤$c`ÆÃ;þLIÜ#`ÑÆK -vi0rÏú¥`ò>­¥ ìi!áYô!@2¡’O4¼óªÓ#» F[*oüÂ/¦„kk—pÖ*ê\9¹I˜ Ä› ÁZ&æ®ÍªNŠ›ªÏÄÓÃ~É/²a&‹sWØ'}Rðæ®y,ú`K2"²z+ûq-,²mïÕ‡5•J‰MÉCÙ¡{Ô§^•`ÿÕ<¬F=åÉxmá%!ÇùãE6ÑÑ u†‹dí¨+öØ…ûöÁYcE¸®>\|t ü³°"±ÌÁŒ -I\§››û7,~Ρ‹hyKåÙ8]7‡í®n0*mšùJ[=%´.G=mÕL9ÅÓþ,[Û­l,pîw^™S,‡áî¥<´¨Æ,Ë<`0`±¢Q¡‹¯Ü¾S¤þ’h¦/S»€;¥¶¼ßJ1­äÖC%fo¡–™ÊËk&ݸ˜{C›VÐËÎ_šÞ€Ûyƒ£Ù?ìWévªÌ}ÂE„ˆ³¢FqÌà‡˜˜Ä8¼ÿ­î%ÃIÎ:ßrÝüÈvWÕ®Ú{7€#¿Ž@Iƒ ÙG5APäÈA¦Ž$iòÇý —ÃŽg™¶t¡Æn¦ ÁAË]¸{|?Ú¿hŒ¢ÙÎ:o£Qe0‘ãÓä2B*\ë ¾Ý{j,Î:JwžÔCc\æW‘EP­k桯ÒîÛIN`Ya/‚»Õ1jVÇÇ2çJ3®]”¡6µ+½Rv·@ÏÒ¥Í&“žèÙPËíž„|<%Ã%Üwj E¨—yZúBa»o‡jÜò‘‚¬½£‘óÏL½VY«¦úÜ%毂·Æ¹ªˆÌ]oi£aJN4²±»La ’¦†1]—Ÿ_º`'ŠMe±Û7â ¬sã}6x*­ô9µ5s©lOR+=Þëtb*Ñ¿›2Áÿ‹ËOÄE -üâòq‰ïbaÊ\1I§5e˜ù6ð$¦ÌE2?­)Cèƒ-û¦,ò‹ËÄ…CÓ ™f -¨,¥É€Éæ’‡Ùλ(y×ðÍŠ7ƒÉC~¥xÁDô½›¸»ÙáÔ„ËÝÀMm]x˜^e÷΀dâÅ^bÝûà˜GR™f5í¢Ž;Úû) µµ÷- ƒiƒGh¡B§WÂì%Þìos{õÇ’ƒ½Jã]ܦµz˜ÐVP=ÃÏ6bK’ú¤Çó³‰tËÞHâW-ªÀÆ™¦1êô5=¤0†Q¨u§#ü[DåíëïÏ•'s¡êv³‘ô%*VÓÕÛ^å¸eæ²,WUNÌ÷†, -4l#t½åjf€ùZd`—éŸNd`^ÞÊÚIDÆEa™9±Èÿ£È̸¯É 1Ì\NFf. -ÓÙ‰É vAtvb2\ȃ“ŠÌ/.ÿ'\Büü6ÇG³mv¿5ûýzÄR1íY;ÐÔ6|Î%ùŽfѱ¶$¯&SZ}3—„˜•/d~æ‘öÇ@Éàæ_¶ªˆ—ðB(³fRkœâä~›?Vç°ßH»UÖª©>w‰MÈ_o!sU™»ÞÒFÔœhdcw˜Â–î75»‹.g¡ ²UlÒ(ëˆM3¸-a§è³ÁSi¥Ï©­™Ke{’Zéñ^§ÒˆUpÓp·­½Õ};uT¢W\,Lžï„7JMýå(=2„Z˜ôËÍöë"i¥_\þ—†ß/m%ö’hÎl<”l}ÉLÄ!¨] P´ƒ£a°¦i|™· Â¥¡!ÍÕ€H¦ú±‰é Û? \÷­î—ýI´c]üÇzƒÏz˜EÍPE½ì+„²L2%„s?×"WÖ°÷ÃXÙ2ñ’ïÁN¼£|ÜE½!€ÞöÝ+^ VT~.xqXZäùóÉ-,+§Y˜x#ÃÏknÙ"Jl+½ ?OôrÀÄ*âd†ŽÒn¬YCè¿[{¹/Áç¸UÊâÊÍsé~÷å2ÃØ´s†ÜøK:ÇW`C–ýzÑ쯈œ©&Ž˜žõ%„ª˜¥&ÂÏH<” ì¶Qz¸ÍÀ:}Ññ6ÛN€'3~qÔu+?à䃓°#«=sK¯âÏ·»„=Ä𬦠@™©ƒK~b³~x–ÙÏuk˜ €x®-ü‚ô|îz6`¿Z?˳ü£áX¬xª|x&¬‹GC‹p§›èe@Ï%üôËei¨qHqzbülN¥Pys$ûƒÈÀ -v9äEFu$¦y¸¿»H/„Mmþd’€K`ÑËñ³]9ç+@ B:”¨ºìùùÐWóƒø9òÛôŸÈiN¤¯8À÷¦ ÆRË?ƒÎ«Ð>Où*®Iµª ÅÛ5ðXf˜šÎY$-ÐxAº(`.BãúVi‘§¨ÏXâ\0 —FÔÊa^3 ú q}ƒ˜ÇJÀíé5u(f&Œ¿„¾tïa#~Â+¶¿ Dz=‚õå“Pv™×c(ŸÒ2¾ $r åòi(¹ýw5)6¾-[±õŒ?ÁûãG—o×鯿ýäúÍË7 7ß~2Ù~ý Ê¥8Ûýé£5Ìh;>óšG'Ì'|„C¹ÈÃ]È )ß¹çRIg„?oü¬,à-ù#RNÆ?yñÖ`b\ˆ})…âgÁvnÞ.”õ,s¶Èq»Ôy¡«yzEy+® 3›»¦¤ ½i;ëãpÍù;d;¥)Ía¡XÊük™åú,H ‘?ÝB:ìeÈ:D&‹é Ð_9.Ý *òk7{5aÝÙºŽx,HÝÀG!ø"пõmÀcçÖ¸ßá1įx òB‡’ -œw› -µ“›ÄâÙß6Ré%”†“¯Û¿nÓnöþÁtûôØÎM²›–_ ´½xð0ØÚ#&F6Þ:é ûFð%©›ügûeÚÒ…»™H1˜AË; œÞ•ˆ5ÜE©•nw`×–ctyRe-yïvÇ–\bgŠ”FgÈÝØScqÎQºó¤¢X“Ѭ¹»Ì¯"‹ Z×ÌC_yîÔKóÚï¢ -“p®{<éNGï˜;»ò"ù‰J‰Vã>âH/›ö¢8ºÕ±ÁµAóò艠|ñFˆ³»­ ë0Ù\òm^Þ5|³âÍ`ò_)^™2ïf#nÇnv85ár7pÓF[F¢Q€“ßµšó&ÍöþÃYÔ<&‰ä-ýq?e¡¶ö¾ea0mð?!TèôJ ñf›sQý±ä@£4ÞÅm˜êaDPÃNÚœuΛôx~6‘Î`ÙÉièV-ªÀÆ™¦1êô5=¤0†‹2 -µŽâtÔö(9ýÃëgu»ÙHú+„ËïQ©ÅqËÌeY®ªœ˜ï Y¢baÛó_o‘LŠ¿¸ü8\~çåì—gWâ\…?‚B % ½„@èUºãXøÿï9÷¦Á8Î_³Ö|ð ¼mß½ÏsþQ]Ö?ó€œ+H9ƒfò¤4›ÔóA&©Èoê9Ÿ†RÏHI>-–ÞâTôùDDÜK¹h+*¬\‘™E«4R Û‚áé¦õÅ1æïÌ7Sîbõ¹/?°"'¤ÂåÙOõš»¬KÜÍøÞÁäS çJá‹~æ ú*ÕªTÌÅnô£½hÅ®‚,; -éÒå.a† ÿ¤ÃœŠ¡yÚ{>ÝTžŠkfׇYÒ¹q„6¤q¤4He§×ãÿSü±{EJ±wš£üGA&*úð·*è«åjñn"^Vå®rY¬W€9™ÊÛ[6³(æø‹~1ç[NÅB"…ÀDã±ã+ÒÓÎDó càb—ºÆcGóåÙU¿X]fœº~cQ-IÍ8jkªÁ–†~«L• ö £ ¦Ð´*Ò#(Þ´%mÏû‡ˆy-R«ŸÜZ¹‹î‡ê—…Ž/6 ¸šê¬É$,~¡ë‰\øNPÔºñ땲s^±E8¬Þ+ÜŠCÞrPâ–õö/ABãäÆLÞ4Oï}¼èQ¾Ò4à´Í¦¶DÛØlClc³iÇtf¶˜ŒÉÌö3îEgfûˆê‹ÁÌ¿!æÈö3I™ˆyó­Ë§uù‚Næ·º¬¸žø×ꢳ™}d¦õ•„Íì#3ÐÅ`3ûÈ 2Ù`³2 5û>îkLƒº€ml6ƒ!¶±Ù4 >ÚÆfÓ€.h›ß˜f/~ ™9“Íì#3ì,t6³Ì K2ØÌ>2C†ÑÙì2 ~ëòi]8ò&Ö0ÍüYÛеZv‘'g“MT<Zg!úÅï_ÈÿWúIt&®´mÆ.Ñù²)o=íy¯ ÍFÓZè~q[o<1¨/a¹UW¥â¦P“ØœP¥áÃfÆ;¼,#kŽÏ¶e©0 W,ÇQè :;ÞÍÉ‹DerP udHÚm: ±’ëIÂ: Ù{?ig¥Yj¦A‰§jE“I‰óÜ´ªY®…ZGU17•ÓI¯6×5ýF@ÂÀ ´!]ŒçTiªÁñÄ^ ýþ¤èPb6>äÃ^'[‚í7q¼!Ze{ù‘às³Ç9ãø B®°7u™ ²1X÷WLØ IËì‹o914ïjßÔkVô'ÇYدb<ó†îÖ1ÇY"$OÔo>ÃS&-͸qžò½ásp`ŠÃ ›ÕÁ~ÜŒ/¢B­ýãüèÙ*.ÔÆ‹˜åÙ½[L µÝ>é`~6ÎkåV4¢Ú wØ-ú}ê™õ™¿€“ßDôg·m¢=^ܽùº › wžT©vr%Ãr©U]6U¨á¯™°·•V¡C%àw£nè>ªª¸É &€ ‡…XVTt)V=%>Ç¥âaùLP$nSOÂÿÜ`ì˲èˆ0v«[obçX載dMoÐ#˜»Úo4e^³¹"{ñóäÎC»ê\ˆÿã…À^*³äîã¥ð¹dgÿñBpXö·?Ñr aË÷§qvÜ~²f_ÏÞû Þ䈿§Õõð|ü±µþÙaU- žé£$ènqp§ÇypAöŒÐ“ý½HŽÅÁÐ$6crÌüþ R ~%%@ÈøÀÉw]U$ý['PͱcgàGñؾ÷œü!©:²Ô¤`u$Ðq _„õ¤¶ÑJ™zÍ‘òXãˆún^ÿQ‹#ãWŠå†+ ò±tX¾¿É¡²â§7‹À½c:{„=I¥®mWj$O–‰™ü)Œÿ-Ä‹þŸ± ÜxW^Wd^ÒW¶ƒf8d’Š<ð¦žó)aè!e2ÚE+ѧÅÒ[œª“>Ÿˆˆ{)mE…•+r0Á‰"+”SËMùÉÄÁPi5ÜïÌ7Sîbõ¹/?(¹.Ï~¹_Ö%îf|¯SH?b¥\ìÆÀ“ú…ÀHWÁû= -é[AÃVîzq×A° LÅÐ<í=Ÿn*OÅ5³ëçÓ¹qD®·µÃ’Ûe§×êÊfÄ#zµ0ÅqÃf–l’¸Ç ¤tµ»#ý ”;ÍœÀ¢vÇþÿ -ŸÅÅ¿‚E¬/ŸÂÅ¿‚xȱÏaü‡Ú\}ëòoèrÚ\}ëòoèÂ’×Kcŧg2—˧Œ«Ýw<«òÕtñPxŠ»ãXÏÜooÒnE}ÙÇÊ>uzÕA?¨áñýI ¼Ž»°Ö«Õ”§ov„×md~/~+_<÷¥é²# "_Ž+r}4šIW‡Ÿyå~A°yDÞl;|1¾Ý'È ¬•‹6ÉlÚ6ÁŸƒ¶õÅXV‹È9 {±ö~OLÉŸàºêl8QŠ|œSÕRs·ÖwÇ;)‰ý‘R>QüC;#èG.ì°’ÃCZû¼{—æ©·äí3;PӥȖbû2ð:ýw}°ØÞéß‚8Ñ­jY&½ ØÄà‰~A0‘æÞ›ï<;ˆ´äØÕÒ§é7½p–n_ Æ¥d¨1ƒæò¥ É´høÉ C…Bž§½ U)”~›»š~²kì0eãZô -OÁÛ3¹­ô¯Ôâ“ëFîõ°¥E ?2ýBV£õbV´ÿ•L)j’Ë®!†D9ñ I³Ö¬M!Þ—GW.É“Xáã1FLã ¶±Ù48‹–i6šÆÁèBÙiÒWNж˜Æ$fZ_XíŽÙE̺_PûˆÙÁ˜Ìl1ãë°¬Ù~)1ê¿uù´.z/cG'CÉ t1ØÌ>2³ä˜d³X„²‹Ì.t6³ƒÌxa-ºxClc³i€ÇÐ66›9lc³i€“Ñ6vš¦s‡~1ØÌ>2CêÓÙÌ>2#œ¬±™}dFyŒ²™md õ%d64¶™ƒ9ihl!3“†Æ2C¿54¶$LsÕôÚfüØfÆdûÂŒú¥ks˜ºxrÚfÈüG¦-afö/v†œØq£iK˜AÝ÷$6ûo]>«Kd‹ßtÛGƒ¬nñEe&Odµ‡éÒuo>aµ{ŒGvÿゼÀºOrµãš˜Q˜MT<º±%?™Oô‹m¿å¼!˜ªay”“Ãò[¿Û&…Z™Ï -ëëó†vä=@Þ Ra®X ´Ð¶pˆ–q]âxJG/êX÷`]î'¬“ã<>€A‡|ØëdËΓþGRŸKº®Ü„Ú¢ 8¼ê¨°¨äî<ûâ[NŽÇîáØ–„Kú(ÐÛÍæY¢3½Æúá&ãbl%K¦=™ý¶$ÞÄØ2FfP¨uTCÏÊ d1ÌgfÕs¨ ¤áÁï{S—I8Å ¸Nʲ  àr´ä˜ƒt}èAS‘¼Ñmœê«^ƒBÉqú_Åxæ Ý­ciöûU¶”ºE¿€ !$‰yH€„„AeRQG™þÿîîNHðpõ@UçÁ—t:Ý{Z{­Ýõ–ìv[ÿ€5*+Ý2½<Ö–°ºÑüp_†AC…âÚ^OŽcBµqßZ›$…joœp­½øÅ¬P]®Ò_…éµt•‡´'qÓ\Àk¿ì¹ r¯q%F4µ!¿½Ï'κ-3á¼jÿ´àZ™v%£ lÝòÔÀ‘'Mõ¶­Gt¶k°+âxÐD¯c°Æ(Hzå¤iHªà‹)^”äÂK' a¶ø—ñEIÝq¹•óÒè=dÊ'™Ú)juø&°ˆåuHç‡öø_4«ù8Òº.šÏ'5(âyJ(³a°ížÜ¢´áªc‚÷@¹ë¡ö¼Ê]èÉûÞǤ-÷Dä“´Ï÷›—0/‡¿y9~^æ)¢Ñ9ÆDÌš,x0)Ú3"SMž§’¦Q8׆z­âmc “+/Jn¬«l»£«Á‡XLecð÷Ýh5Ô–Õ<-~ä_ÍD›²‰Ü}Ÿ‡2òô¤£Wr^‹‘û=Ñ(Iõ$Ê¥Äêµ6‚åJ‰–·|æÔ»€]ÎõB/ç"h-B¨f;.é÷ ûŒ&‹ÕkÔ5½Nn˜Gí9¶º4BŒ’I\†}uã¶N¥\üB¬‰¶·5ï7änú߇üY4#² ÿ|" IõÇÖøE.­.™|F¸<ñ¡á—±rl:†i).6W’;‹ _tíJ -† ÅÄOð‚2DŽò áË}Àûpã­öœ¨}:….É`qº1F š~î{/v6:Qw6ÔÄý&Ma+%çRÿ]ÞAÄ„y óKÄ.g\ƒ°ÎßeñÁ{yª?RËN>«ö¢…ZOð»€t -šÉôþP£¶ã(@s*r ÷EÉÔ]‘·$ÊZ˜TÌõòëÈ•_ì…asdÐx(rãqA#^4¸ÃXšùxŠÙC9šùxŠÙC9šùxŠò²ÑÌ*f8v\ú^1£>fkæ½3úËÿæåX“ÌÁyáëDäo•™‡r´Ùñ”ø²¹ñxÊÌC9ÚìxÊÌC9Úl_e6 ƒ…¦ü ñP6G (X7LTÉ›#ƒÆCaØ šöœú Ðx¨/ÍQ@Û†éQ@c)¥#ƒÆšøMZ¤óòæ%õ¹þÍË¿˜—÷Õo^ÍKt†~}ZƒM,BÛ$"¢¹’Ïõ§ØZ×Tj'ï|ó+(<ÒóTtåZè‹¶›íš¾¾CPJª|òj{‡ï É­°+ÞÅÙ²"ºjA.,:5pø2%ÝÊrQdKM+è09²J3ð.rÙ5Â[—g耳M0PrÚà ™¶¶^Õ"ËügŒð˜îåÑš3Û%+¼´‰Æ°0ú¢ˆbì“Få§¢PŸ†Éð8i -|¶Œ+ŸÁ‡>>ÙC99@gsŽJ‘®—cžT7­ž*8Ó¤"¶=H¼Òee×¥3¤u1L…O/Àâ¡Ú4  N ™KtÖZ¢dj]‰Ëê3äšóËÌ0 Qìî$…EŸ,]¯à­ÊøVr þ#§lP‡Ó„n‰Õ?ø¿˜ªËU‚¾¬“µzr”†ö,»Á4\Å©4¬© {í©ayoŒàRíItoöË~‘ !˜_¶VOÄñÍ0¼ul‰MmÈï86À?Ï*.]@p2 yY™/kPɵôg brzê2ª|Gåõf¸ÖªfE -Öjx`ØîcÎJ*=sþÂ-OÊ'“ýÄ ¾yƒñFAÒ+'0•2ɬLÝ¿çEó"Í/êb9/TÑ‹œ¤G¼§“EQ=]íDAIÎjPÉæÍ/Ýv§Mþ¥ßƒFT6ràö¶ -'N›P BÅä»V‘DâÎ×XàF‰JtrsJ:-‹!Qò®öáèMÍÁ9ìlÎD\ÉÂäntB ›#3oL8Ø7Z¡… ¦®Î¯Œ¥™c®±?L6yÇ”†p?’^:†nù‡)jº¹ú!&p,ýÓ–×IoñPßlZ¾1?œ4ôÓÑÇâ‰ïÛMé ·{ îÎÑv ñÙÇöcöe å¥I6)ˆA£$Õ“è0Æé–P’JÓê–%ÔôÄMŒ ¡(Ž ×y·8 ºcîFN^xÙs_ €O^Vy«zÃ<Ýó†¯ôO/;Â߫ҕק|ˆdþ8stªä­c‰Î ÷EÛ4æO(¥$*?cOªÍéòˆ»È³8“þ£ÄÎB kF¨®^« @ÞDÈKé*?³:zo¸p¦bNVn’½›'wºÓÌm9„;Ì_¢U‚ xùC®±`á¤h³/SMž§’¦Q8׆z­âmêråÅBÉ=”®²íŽ®b1•Á#ÜÇlO˜-kšäô©¥ŠŠ¯ÆÆñ”D+>ýë}yzÒÑ+9/dŸ„£ßíòêH¬ÎQk#X®T$fýð–Ïœzð¢Ë¹^èå\­EHtôAEÄŽKú}C²|^½F±­Šè‚É ó¨=ÇV—FˆQ2‰Ë°¯nÜÖ)[רªyµÝHªªÛñÑD[z¯i‚Õš;™DxÁ"1`F€k-"6Htbý…•¡UÅ-Úš/BzwýFÄQñ‹\Z+\2ùŒpy‚åK„_ÆÊÀ•Ó1°üÀèwØTT\Ijì,&L|ѵc()¨, ÅÄO„*ÊÁ¢ò aÇ}·Ús¢¨,t -]’Áâ0tcŒ˜aMbî{/v6:Qw6ÔÄý&Ma+%çj=]ÞAW€_çäs—3îü¸0a¿Ëâƒ÷òT¤–|VíE µžàßÕ ¼§Õ}É -Ñ kcöiLà2õ@W€&;I”·0©˜ëåsÅþÇ~yn¥Îaø -r”@ --€´Bh -H Š‚¢ Êý³w -9XŽYëûá„${ïyçy&£Ò/¿ºüu}ÿêò?Ô¥´p`ÄÀ ¢ÐIC–Ùc\ë³@'µJ>¼x;òY1òŠ;A:¼oƒ~|jCožñCÔቾʖ¨TïUO½¿ qvÌë±ÇÖ‹e:˜Åòñ›{ŸÖ‘©Á¥ϱ åŸ_¾ÖÖùj¯7 -g»o"žÅXfR£Í?Æz¢MZ8ïhŒ9Ú·±³Nk}ÖÓ]æ­Ÿ¸=øó…ö,-œwùVûÚ[œs½]Á»ÁÂD?lþX}#W?jþÓ ì±6@Fñi¹”¹W1ºi¸§¥›ÁäI\.aŽ‹ W+~=غo#â8Xذ٠³æDÔ„–¸õšÐÞ’§šµôûõ„Ðårëž÷ )Ȋݾ‚Õào¶·9] u±¨¡Œ7 C¦‹ &„?ŸFÁ¤Ï²ÓI$/½‰ º0ƒ_\’E:A5åQW-H’åb½+Xý¢åS õpU:”DÿY[¯ViŽ™Ôß"†™gZe~¸¨1Cm4hxúzÍÔo’¡¯›΂qØ^Ó$¶Í¦C¶±Ù4¹cfûˆV1™Ù>b&È3ÛGÌ„…™¿LÌÔg‰­bN?Ÿ#æÐ¯.ßÖåÓ“Ì7t °³Ûû%2Ã]Lg3ûÈ ú‹Éfö‘DÌd3ûÈL[…>h¼‘™ëŒú’iÛÆfÓ¤¶¢½¦ˆi§¶Õ4¸Â´þ|Ý4 A†ÿ,™äŽÍì#3˜’L6³Ì@“Íì#3TÇ 6û™¡ŸÌ¯.ÿ;]˜z;þib&ȃAÓb†³ìš¶3A š¶3A š_ æåæW—ïêyEß †‰†¼†)¸7–I« ‚Ä»µƒ!^Óüæcgœ3YGèzæÒêÞ†SÝ.“PÜOFæi¼Gsr¥oà¬r8ßËæÃùU» -î&¸»+VæîÊlU:4õ@¦áYòâ ¬Xº«Øêž£œ›Áhb|Ám¨oï¯*ª°°3×9ÅÎ’ýºÆB;퇷U@ ¢'Dc'?TD¶2©µ¾>mÈxl˼ùîÕÝ›a®D w[p ¨hÂhÙíÍÖ2Xi-#öOò*™c‹òÒÒ/±µÅâ•!bÆÚ}L¦,E;ù"ÿñR0C–®ÿðÒö*TA5žÜ„=s·Is4f›I‡v‚Caå¡rŒNö3ÀO>żêagq‘õEë/p<ãGT?§]3É–OQ2–›ëÂ$ÊV.®cø¦q|u*°•þ$n¹sîâÎØÊz“|ÿZBPxà̺,ë -»8Ú'û÷¯99ºë(Ã*ÆÓõý­$àeÏ2>Ÿf£CpáÚ}@%_÷®E^µuxâi+äØHÖ'­þºœcÒ3²føtLлýÜm)pì”cÆMè,ôé÷ ~pË‘Øa]¬7AÍj0G߃Ó÷®ýLÆ©û.»õ¡IDMt©W~xY„bΣÉ$O¹ÐÔ¦ø…ØJC–ágÕ§GÊÿ®—h¶ÐŠõ‘?ösÌ2m*±ùí›»ØÕóܬÓ>Gçž ˜)¹pSjõå,æ’²Ú.®ý-®íz‚Œ[â_G%‚ÄÃ’1)j£YZõáþ Bä}ºðy_¾é·”’”Q2jqˆS:î,Tà©Åm˜+݆‚zëÿ¡õ -c´Vž³ØÂ›§6ªoó`¢C~€÷ùQ‘ÍÁÄ¥7öϳÃéÉ fv8=9äÏ̧'‚üÄìÐÉ•OÏï'r&ÚP_Xô¬rH· N*hùxËà_—´ü,£ž&T¤ËO0êiB5½ÿŒzšPAý™ŽN¨C€3Ú¨ZVÔ~-5¬¢®ôÜÙø¨óÿlÍ/Q›MÙÆfÓšm>aG•¾i‚Ķ9aú™3¤u{-ÇԋЖct²ïxR/¹Ûuã²›Ht1¹÷à6KD¸ ŸžGÙ©3²ÝU]m¸DìŒVvi~AâìZ¬×a¬7*<Æ«oùvþ¥‡g¨Éâ•ÿVRWUžºëÏs©šc…$‹$šÜÊ>¥\æ¥lüÎø£ÔMjªô#5{ t©éÁ!0ÒÏKƒ AJÌøÌ,•…4#×íÜY¶ÉWû¬Ë*Ò2%‡g`í…èÖãPn˜úy°¦H—çdœ ’‰ÖMϘggHs²;1å4 -Ó:d”íi*»¥*B3!”ä|³p%UËŽKhjieµÊ¤'ÐÍ/A)ë»pbâ, -Auo£¾%J‘–Ý/¤ (ø £›ï­—óNÛRù>íÀAl©ö9¹ÈפoQƒÚÞ?›jÐV™”t] é - Êœ–šÒݯŸyóÙ¥A¦¦·Ô¬ðÝte?•IÅ»Ag]ÕÉ„Å/Z>AâïQíç Îb2€}uÌdûЦqì+f1“ì+f(Ç 8QÌÏÛ!¤‹ÁöAîÀ>@Ó«Áöž,t8Mì¬ }³Ó@ÄÌ^c_§R2{}»Rï5öuä£×|Øi–›ošü²ζ˜tÙg[LCàl‹i°úVp¶› òØ´ùÓt92mþt§ˆ™6ºÓ€úG¦ÍŸÆf‚<g[ŠA€³-Å Ñø8¾˜©A_d¡[š‡¦ãaD/þ•ó®h¯¬$öKi¡‹3n‰†L´ÈÔ§ Rd½—v‘HÞ²ª w=k]){Sh=?;Kúè]´ ,ð4a+Ï…D K ?T–%~$=MôP÷Ÿƒ8O2 Åýdœ¹+.À^K°rýî* ;ãœT8ï÷+<{cêÓ4x.ØÙÐÑi›ÝÕp -$/xÑq½Ü]+\_‰Õwïžot Ž"ŠXéqË2iÕ‡“N7âÝ ¢Á¿,zeæ™rŽu’<3^ˆZ0Ðû T·×È•í {RW Øž dù¨›Qý$üLÅ™-íBÏ€‰'+¾È?¤µ?²<ï‚n0.ZÈòü¾=\èþ”‡ ð@MIëgÁè|õ¦. £\©ð6ªîÁ3¡,ŠDJ{ Œ¦ü`æ×¬Y¬! ]aWØ3º©¡³èwÖ?X -ene0Ü®qù?øàŠ7ëNì°;U¬À Ѭ" ÓÀc¿(³•F:±Kå ÇÖENÉ üè¼Ùdæê¸†æ ›ÿH¯Ò­Ô™%ú¼ƒAÈa™¨LâATda­ï×}ö[=% Žçø'&T[]]½k×.<öí2G󴘦bÚyÙˆ„²ëÑŒT@S¼ŸÝxzåE“…jvÓ (ªlXÇ5п?EךZȬ‰É q ßÔ¼…5ôÊú‹Ô‡<c©•h+3¨ß†{¤(øÂ -òÓÈ[ü«~ˆä=X‚nÿÝ"é{?¾ï—øí%ø,. -|ïGþt ¾ léŸÚþì?VT)jÞfS4B¼g#¢>ÊUWDSÓ†—d–ü/¥QÒ€Çp{øÀDÞÒáó9 Þ¿À|G=ˆ-zŒþ« «_?Ø-n÷•H(Ì0‡RE!:‹"¹}ú¦{q+£=΂1x:[aúßPM·Ãp^aÿV[*«1„7ÍîSzÀóôÀ½xC|;° ~ÞPñ[íBæ ½èØ!Z&•7­òSË s†rî Á«æãky‡lq-À¦Æ#6à.VS°ÖMH -$'tS.…`G7O›èó’÷=œúQf/dÉÈMÐ^¨.1Íè#9¥£%*Ú*Pž¡´]R·£Ëv ãä1Ê·´ÞZ$’F’ â?\bö&ÃѤR¸8®x†ÙW)âþ£ÉKH³”üÔãGþâw?¥?“¤½¾—“AÃ{ÄD7:ç7¸‹-Ñ[Èz3(‹'s¤f»ÔãÃ_|WeÿÝÕ¬7mÁ~°g©µnˆ7f.:Í^ÂöYº‘Är P{rôÎißDz(~*»WìMCn©®á]î!ÚÎ ¢ë{Ýz ò+«S‹÷¿‘î9èÒãÕct@"99ŸSZ‚$•3pžã!ÎÏ–ÀX ØQÐ1P4wdU­Û¿£è‘µ¨ñ=Bº2°o¤ÞhnÃY}N %mR1ºPr×”ïÆh’hÐG·4ëA ½ÌNªÅ–èÕ*P˜ú{ù q±ï)G¦óxäðÂð1œå^‹&.‹à.¢×&hþþ,û:½^å(ÈË ‰IšJ²ÓIbDÍ`ºÂL¥PŠÂLäʨ…óäºO¹®¡í%P3SP°Ìw+HÛûÓæiG4‹űؑÚܽŽ×õõóôyqpœ8Ôì™®·ËÒz<þ3þo[XŽvóñb{”8R³Wù³³X¸0-ÇG¸±„ûQK3¨ø¦Ó[È2\îu„ -“xyf7SƒÂD뤹¡/ÕŒ< RÈL ²êi:DÁŸž%©Ö §g0õ'Šàß%®„@µ]d­$ò™\¨Òá®ndÞMÊýÒ2zÒùúz­×éÔ0XÕÎ3ñM:f&o”Ò²k\×w] ¥T65­‘›]™&ˆv\z ß}ig <½´…Àu¯Áß´¯ÛrŸôóOÑ‹UöOvqƒ«)˜»õõɿҨm5Ö?![$ð÷;¬¬ *Ð3‡M"¡U$ò6p^c‚F)¿òQÌuC&:¥ä~£W;œ†q½à1 ÚwKen-æÁðõ’·+Ÿ¢ÑÌA+š!¸oZd<›L*wÃÖY†0‰•LD¨`ˆtå‚:HºÓ…§UJ«ö=¸öaÜl_¢‰ÆÍnèÁƒvÁ!2¬$y4noU#B[ÖGÞŠwç~òÆÅ½†ðoÁ\Ç_<ˆ&Ò›¯…‰¸±5“Cj\»u{a€@s»^7—Ð?'I†ÊÊý&Ão1è•d¹{»@»Ô9ÂÖ»±\4Þ¹0|eÅ0³síQ\ÖëÔ’º­)Öë¤\Ååê1¾ƒÞx'dkø-r,ˆ9W¹¹ß¹È©Äv —Úe—Ëb9$}Òáêüœn1¾Õç@"+‚ývýÆ~ë¬ÕçúzW2ÙÇü -4Z»Ø«tfCºC²CÀÉð'OæM¤è¤” ©LÇÄtòÚªq¹#h×O±@AÁ?ù27¾Ô‹¿]Áabƒä=½}µÓ‚ëŠÝK(ZŸÁ Û;¸ƒŽ6uÒMGõª¦ÖÇNMgïrª’±¶°T‹àÑY„Tvnqžð¦Þ¡«yõ2pe—ù¾¾²’Ð㓜^â$ C—ODç`[±dB‘K‚˜ú, †j'Å3³“€¹æ›œ&f –ŸÛK‚l%nŠ“@¯„OÂ')Hmöw‚P°ÆæÖm%á œ&[ -ìœta¥À¼Wœ/-–Lïp€3…=vßú~Ç0H)ø?Œá3D8Äw™¨øߺàcxç ¥Ë×I{%ƒdÍvº}Õc¼‹^ô' :ˆ¦$ÎÅ4¥þ¦6°„ú(ñÇMOvéØÅÆY6sÌEäØw»½qëʹ7‰®+½èvÆ"Ç¢Q+ôù•§ï[Œ}uªrË˱ÎÆ~šP‡ä3:ÄC˜–§Æ!Dþ®\A’„Våaº2êß—ëÆL¹¤ýêf¤¢‚±ŸV¼yÚ ~Ã:­þŸôj]k"Ù¢Owè3‚•º_DDH@Á  ŠB„ -á›ñÏ<ûÙ{WWw…ãxŽžÏÏеºj×¾¬½ªKTžë1Û{œŸÈâôxú¿“êG>œž·ZÿèC:‘ÿÉ‹ÒÄñs¤ºçì2˜r ÿWÇ–ØS‰'ò…k`;¿¤:ðõN1+W߉²+'¯½³¢uéfðbpœ.ˆ[£êòÕ¯î§[O¶?ãuôÁ|ëɳénÀ‡Û ¾ïƳ(Vý1ß4Óðm ;²z¦½éÊ_”>@›C3ð¹ŸÍf‰n3ðûþ†––­·××ä–oÑÝ6»ÎüÞ'7)–ÍüUŸTWÜVþ¢×T/òÇnX½hOÞrϳ]Dö -$u°—s9¶7{šì¼œÏ_œë³ê£ËÊoÿ>ìNa—#!_’Z.]SË!°“Û†ÀÜîÌÇ)ÀÅGåµa~ëš.vH/dÄxûá•,o`ÚvD¹bgŒÒ¹ÿàñÌw î‹7Óä…l.h¤Í›,1²¹ütwYTËoƯW?³ó¹•íÁ§^÷ÅÆ¿vÁÀærü>¶V¯o;hŠìAõ«ç×tE eóùúã_´ø={iÙÜé-UWÍx{jøìèП¯ìÞM]¬žmsŒJÔü•GwÇO;'mÁÛïŽU¢×Þ]vUʺÈîNâ ˆ¶OðæxY~²†,9è÷5>©êIGk‹W†‡ qØPáÛ´–8vȓÌmò£<¾HþªüE÷rjmpù5ðöå&ÅrhãŽ7§<—Ÿw§×æCÚšïO•šœzö -{ÿuPýƒ>tæ^ë[5µ+ŽX½©zØ|…I=‚Ÿw³ø$ª'IóÓåÌ­s¨þŽ?;ë÷ßuº-ß\__ÛÚ÷uUAdž«‘( -)#›W¥(¬÷›ÄYÐä“ß6›Ää4iÿ+r‡aèχ[|Û®ªÿ†î†ä”È4ágéË„íj²wŸ¯”YÒ±§ í‹¥Ó&ÞF¡åöKÅn»Ç˜§Þ1Þ—>T?ñÅñÓ÷Ó‹/PÂÚµv•CõjEáJ.•ù¤³€>ÎÊ£ÛÓËÕÏ¿Ö'… ªáöŸw>^®œ©åý/«%ÅŸ=jb±·àé9¼‹=ô"êÈ•‡Î9åŠT”Š•"EJß0ÝÍÇ×ì¼â¸}SM-ž¯$Û{°í”îöï'ÅÆôʆýµÑÙ›á_ãîõàîj87¦§ÙŽï¾àÓ_ž_Œz'߆7 QÄþᯠ…¾ÆÀÀ Ú;mÌÒÜB4‹Þ¨1Ýo¯ÜŒ»ƒñÅõèäæ[ñ¡·[½½nñ¨ˆsû0w±˜oxfëf1óÀÃ~ƒ+ðÿíŸ6z‹ž‚ ^´×o†Ã½ÑÙ5̤ÑÉÕpct6ü ÆZíÝñõÍ·È¢ WFã‹“Ï'·£s@ ^|ƒÁ&<üП…àÅVñþˆg¸ùëM9kØb¶Y¼=ø_øÿîËÄsw€¼jpfƒö²€¿Jxü#…of¼²_Ôÿßž4”aŠW8á™ãÜWyet )Ë”’4¶\» š ] Ê1iœ"Hrk³VZ 2ÈByÆw/ .òL¯ ’Ê*œ^£ .àNžyÊZ‡‹ã’v2,p ‹´‘gL6ÖÌ;câ’„( ±Ö&ó:äÛ(¦¼VÑ·Ò þs]ÔÎJ Y@’ ëMÌB´ƒþ:-‚T–:æ¸ÀE)»‚ BQ§_0n¸*ꕬÑÌ9²9šIç}fBÚLl¤âSí „¦µÏ܅Ђ·!Iˆ@æa \0Ybsž«‰äÁžÛ,Á‚i/² -ÔãT£„¤*V&R™«mj*T®$ºTÎ&BUÕ¤«‚NĬҒ¨[¥®¤w§Q§7µ@U€Ô#÷ûhÐøú×Åý¬ ¡Žõj2üÖH„QT¯ËœBdÉo)j8O1ó Ò t¤9ÎŽQÅ­Q‘ÄNÇЂŠSL¢ $ˆÍƒ‹Ô¥ˆõ•gUZ!ä–À ÓȲõõ²ªÍ:,´Î¶vÀ ¡¢»Ñ;¨å´rß1^Æ\†md­kÊ4Xf¤ -E•'Ë$…\¥ˆ$U³J·zXšSÄÀ¢PüGͰ˜s{?!ãàȯÉ8Êü’Žû“õÀbàÒ TMÀ„`m ™ópþ"À-)XJÀZAËe/h¥ òR;š#½$Àqh64b#À`¦i‘‘°!εÆúCëD 3ƒ¤­¨i ©7µ¸ Êã@HŒ–ƒx€Íjêƒ1ш²ºO#€:ÑÎ rKy¡`,‘<X/é<ÎI $"ÚåÞ…qK"À ´Åž™ÖQ PC õâZd«°/„Íìôò{kŒ%dþ3x³ØqQ„êL@kHUg‹/YfTÑ}Ð1£*l §Ê"àV$<Öˆ²–’ÇSÚ&+.ˆG0¶®?- S5KzAûŒI@A2®Á"îÂR”å’² JÜe”–P[ïkÚGT)8ö€”·²¨ ަ.Þùh' - SRûXJè )«k´9%Ð?ìÏ^AFŒ½Ñfýžè_¢(ÖkMGtU‰æ0ôÂÐ7Lì„PsÄ~I5Gì©jYêºd65f¶sjÞÊ»²»ÑýP~¬–ceË4"KC’”,¬(6…¨s1-˜p-kÁ¢¢èR,£¨Qá,­!Õ«*›„1UŸÖxã2ŽÐÖÐE!ã*˜Œi(ÔÜN°µ\øŒ°Ií+J§¡$=}ž’•¬1îŸß…>ÑÁ÷o^ñ%â endstream endobj 203 0 obj <>stream -H‰ÄWÍŠ^¹}‚ï¾e2„k©Tª’’Õ0C` !‹dˆ·¦mC쉓·Ï©*é^©ý-â&‹¦[§o©þNý(ÿåÝ/Ÿï¿¿¥û«?þüîÝŸÞþtÿ]œÞ||÷ç·ï~Á¹´û«?þéçM€î¯LðÛOŸ?¼ùû‡7ÿøðéo@ÿpƒdº¿~{“ûo~{ý×Û7ÿò§[:¤s£;~—Üìåš+þ¨­H¶\?¯ßÜJ=Jªzу¨Ý?ÒJå)r”B~ÌÔØÎÚ¹£S§ûó­à˪Å!üÂQ„Ä\¥ÞK;RNê@Ω™H;Jm¦¥*Lö ,.à?Ý€F=à£u6™~$r5|pIé0Éô”£—’×3'j!MK½_WÐQ4LZòÑs–0mX’fm÷ËÖ|$¦Õ wm‚ásÂÇ)߯˜¤#©è·Úa‹ºC#´@D‘´3ôª6¹ŸÙ™døP­}ù†ÒÖ–[ÊÑ2×MQ £.cèèÌm1—ŽÚ›l.< Õm„H{]“m©lÁË Z’%Àø¶å%ó|åèB"‹ç3Í§š“ §%“,§­“N§?åNŸ'-ϨmgÜ&±¿»±=É?£?‹ãEù<ßÞßòýû¥¬ïbuÅpoT…CP“¡/¥^<“0ÚhÒ4׋„[¦®RKI-"p¼ïB$kŽP¤ -›ß-êHÅCÕxD“YFd4%r(B@¨wω¡˜i[ \ªëAêH5òd×2‘R”B¨eå GwEJÔc“)G’ëB£J”%|Ö~2îçˆK«âM*§ Dë” HÒ#R&Z2ñ/”HŒžº$鋬Y:/0!š£EŠvº ÓFÒèêM²prꥅ¢¹G5yÝ‚e•£óZ¿È]šk¦ÑV¹ŒzÓŠäZ“)©{´ªËÕ!/Ép!/Ez#oDHä)èµ3— $F˜K%‰÷ô&=ŠÒåBj”s"™J3¯ç¤P#™(\f -v6$Ñ}Ê#™Œ€Ô€R¶h2"ž£u⾨k@´å^™ÚÊHÔl¹ó\9y™7Kæ7?Þ^}ûCÎÿÙ,ÖÿeÿßÍc ,ëAœA ÆGC¨ÛP˜&pÊjF[L‚’È-SÌ=Tœ:”¼sèFFL™úhG -!‡<ÞÈÛÓðê~^lÍÊì?•ÈuÝ0Ð2ËÆÛ邵³ŽÁ9½œç„8ГAh¾e‘rÊÔå^8WPý«îd ¥-ö%르x°î¥ 4cñ´A¯yñÑ©|‰ú4ðÌÌtáÌÝtsÏ_düé2†JCÇhÕmt7#GÆ_už.ÈJv>]r_"—Ø{§¬ÄdeŽê!k9­e—¢ý‚ž=¬gOÖ)ø:ßÇÔí~dWQÀëý';öé’ûYoÇ\èžýëúj%·YqAØãZã1PBð´*hó™6˜ül]zQpB¨i5">@‹‚¯kPò+?&µR;½Ÿu2¡¥t2âœtãäè|oÄÊfɪ Û˜”MÁ„–Û¦àhS`» -•M6E]¡§ Zn›‚  -ZM²)À˜Å”ÞLh»-@›ÌÖÊ{ˆÐêú~ÿ@–»¦Øh»Ss˧WPö°Ü?¡å¶)øÚØòÍòBÑ -·MÁЦ@QÁ»X sáíþ -— ¹/‘·kï{ø±öä²hBÛe!øÚàõ™x¯±†¡¡{|&´Ü6@›‚9Ò716-·MÁЪàëZXý•[X±°uã¿Ø[TÂû&Xi *¶ûâ¬xSÚ9Ù{ÓdðP€×‹ÄšÑâÅdš> unêÞàñ_øˆu!6BTYýbêÂ`‡0 ëü€çhc¢äí)e¼ .14Ĥº\œ–xWž/‹ÃÀl¯.àáQU67±®”ÑJX|±wAÄ -0¡ŽõïŒç³ïób2z”FeløŽ`±ÁF­MZ{@q½ 둽JšüiÈ$!„j¼&Jmì§g*êgNxЬ@MZ†Ì„<6ë%x¿ôM‘JÏ–Ó˜Vªk:ÍmjŸË#?Ç‹ôB¢ëâEHð$Mm¹Vìù*›j,TÂm1m)¥º8°ÓÉŠ@,·x¤E3˜‹1ðÅÜHÉ呟]†ÄY~%ò„%‰f²ÝCh,¹«³GoF¬ëÞ_ñn-'âÓÁߦ"WÑ º áXæBDï6}_ßÁøÿðJÔ£’u$±M^F°®;”ÐýÙØÄ4ÁÎ^ü5š(à=Ì5µ¦’+± øfÖ±” 'Dù„œÅ™‹8D*^@ø$¾I’ »FÌjµRJOŒ);¤¯Û€jïà[ H u~Þ.w×'x–ŠÑý¼WŒñM‘½w3/ƠÂЋ¹xBUÉ›—˜9ñæ%Ú¹=¢®ààÉ™†—’º÷wŒןm¿ïšhdYyZši²Wïx¬©Ìˆp¢‘îƒDyÂÚ±£î.ij !ŒÄùlðyÓ5ê1š²5ÎéÙ”c^¶ÑgB\zPX«Õ{£BíB,+•Ÿ ³F-elAv.Ö=­ÞòË‚ˆ9RÝiLQ¶¶ •â2=‘}Ù©1Nñ—ÅRlx’å(:%Ε²Ï”d|ÇYzN¹U‡°”°':5«jüáÜ@½f?ΨØ*ÎŒVR|AÍ=)8çm¡Ü¶oª%pÞªKÕM‹Õ‡G5ìÀ&ž­»Ýg‡Äð ñ¨2¤ w›w¨œlðZ<ˆˆ‚·58ñµ(ìa­ýÚújo;à½ðyN,SÕv•ICo’=Õ€°Ñ©7ÅÞ¢ 5À -Ú*æ]²¨W5hØÂnÂÆà@ “ü!h Ë\Çø¥kóéËÞ{Q¹·küÑûÇø-Òƒ„1±µ†ÞÔ@·`}á2è‹ÁBNV‹{'´¬T”ŠæCˆ«Ä=­uO^1»=ìT]u摘Ì é!!Šîç÷ÚöÄv–<Μûaâ(ÜÖíšd®YóBÅ8{1 ×o0²…iÜb# üÖ4®Í<6΢¼),^¹×ø|²¡ºy¢ÖétÁVc¥–ÚKï=V5ô7üQ6–ÝS÷ë3vWUÇCYIäJѸ@çSNajàQ9î©)&Uª%SnøÀ7¨bg¥µ„ÙaÞn³%žn8·W k¸æÈÿ¥ ÒƸU8—žò¬¢7Ÿ–ÚÊ›²m¤ä"Ð|"CÐ,Z9Õg`LtBÝÃãšdò/í¦ Z(èÎa 1gìHX©U93ÄV*ïÓ4I"Ô¦©´e_˵ž0ÁtÐ ­H´Vg8’àç:ç5vræúüIYùy’¸:!<—ÊNÂÇ®z(ì?‡À—\Ä•8å,á -º'F#Wï/ðôFßýj¯[?Óëþ£;;jƒ”tøÜ!² „ãŤ¦A[(h™Ú@ËAÇôD,¶—?ÙdR­­'^¦EÌ 5,HM›\<&a<×ÎÞ4)ðeŸ} ØAMK!Y'· î¥Ü\’—KXŸ>™#h%)…&ß\À¨‘fƒD µÓ¨Îù@xÄ¥…W¸ Vã›î1­ÇN€åg“[¹;r*<\4_dCAòOÉ9 ä¬2FŠ Ó—*ó(KŸÔxTz'· íãÕ%aRõLAôNhBoË‹ eÐ#°,ZÛZZª+{ⱇž Ôä ™8îríø´cÞmAæÁÊÖ(hU4Žî6SJå½ -hÛDuñ:Pÿõpè¾+ÊJÏß´2¼—.–„\¬«Ú’ÒRì7>ÉqSz®; DqÌ U/Ó½€åQºùê -e†=þñ­5Ýæ²Â©=¡Ó!›  í ÛÖh%§‘âñn문:‚RWVîq¼u¨EÚ•í¬­P[8Õºº!œE> -9ïµKµ;;CRîn”@Ì’«M“•Ÿ@ÇJÜ• ) ín£µ¦g½¯Ór‘E`vT“Š¿Lê6+N¹È:ÛòMèv5åðZ( “‘ —TWƒnR{AfOÓÕiËSvꥎTg\•uÜÕs®¾N¿iÚL=\,}¢xtˆGmKäó6æ¹Íà‰‚E÷¼)¼âgú(Ú¦{#7®àðÝD¶½³¹XÿI¨d¿BÆÊgÊØ?žŠm¤-/:ÃíoÜýBv…„Ndš$5”¡! Ü¥É$‰éãNÌÍk"“÷‚˜ËTåcðiû›šS¼lé 9sê€^AÀïa%Ú^ñÀx5Vr~ÖJ› -Ô!ûBâMøTÉwŒ` 7ë§¢iF#Uâ“Y™®ÙÿëZ­ŽÁø›ÝÓä7}õ¸>ÎK Rù)ÅB­ó]Ia*¨u>8€‘¶ƒä6»º+¡LŠ Eš$@¿"`GSƒ€ÚGõæ [öÔDÏÇJ!@³ ³#sÐ Á"ÜcT›×Bá%ï»›Î]ì̵n÷€úÍ9bàqŒŒìOé@ËY“ <¹NÙÔe2UÚßô1·_)¦•óP¬—מmëäÛ¬­§áòÙ¤U¥P*š†´ß1rki9ߘSI×€Þ‡=‚rIž»T²æL†0ÀVªw[Ì«¾‘ÐÞn¡d» Ä ìåYå!½PΞÇ΀: ³˜ÓÛݼLWEžR‚è.Ÿ]$Þ<{ÜBMdBËëXÏä¶t •7Bƒã.Q‰ ÒJŽeŽH*¬ì˜6JTlÏÕß(+H9ªje])àAT"A¨}#g`µ¦¥ûž6L7ø$ïÎ"ÄO¶ˆ2òBk˜U#±P5qêÍŸyÂ[8;V2! -¥˜,ØWBJ`Q˜É¾yǻΈik:‚®lZ¼PaVÀ‹  Æs,w&\ûÚ2"¤üTâyvËÞê˜Nd˜lëTRÖ.娨ª;ü`ê|wÊ‹[[êm7Æ91lÛA@•Ž€¢Ån€@Û[€¯@ž¥²B4ŠÅ¯ªÝ½³¼2R½¹;(¯€F|C6#Ðí•éíÁ+µd EÓõ͈í åv á#°Í¨€FñijÑmÁ§XIT-·]´ÂÏV; H  ¾žN’ñxÆ8—ã¾{ÈôÃî@@ÁU7êm0n%G̘J0J¤·¢÷0½Ùå½!õÂ…¢s©2€¦Á¤:ÀÝ¢ÿÉͳ y £¾râ=Ûè§êÅGS+XYqóAéáGm ¯‘÷¬$¯ÑÚ¸AFeë T à˜Þ_ݶ àd˧™)Q«ôdSžú(1O¯¦œèV ”ðíýñ‰µó©ÛAs’_±2á B©.þƒ V¬oSm Tq½à9vжrƒ^í–oQHðc––tei­ˆ™ýhÌj÷7++$oN¡7”ÿˆÍÞÞ“z7ŽçL½\‚' Õè?ª¸E-¥#-zß§èqœwˆ`¥ÇºÆ¦§Òò‰žò,û ”Ó.ÑÞ¬1-{M“J¨ksúrKr±~íuðͧOÆ·¼È’R‰Dú Ýìà}ìfÏ×\”’½ÔЦ¦‰HÊ`ÅvVÙ -ª±_}yóùJ+·(³Þ¦¥ûÞíiiúï~ßêî¶ûIŽë× ]…‡ÞVZm-<½E/¦…Fí–N»9¤Sæ^óôì!z["áÞC€Õ¦œL~º)dL¾ ½?h|Ý G}÷ÛÄrÍO‹ã>Ǹoð¸àãÃÑ\§|óék3¾øæÕë/¿ÎùoïùéñÇWéñúÏ?¾ÿÍÇw?<þàÑÛï¿þøîý/c¯ÿúÓ?þçÊã5¿üøÓ÷oÿõýÛÿñŸ@ÿô -‘éñí»Wãñ»ß?¾ý;†_áç/¯`ë`ïË#±ÿYü¯@;~é ÿpý|ûVÞYò€á -Kˆ*Ô¦¤eîãbg:à α9Ÿ¤rÿ¤Ò xŽíncËœÚÂ?:%l£ ¬Òç°ç!.†5jtëç õÒÝfibêÏÅÌq˜zïКE"å,êû¸yŒŽmÜ §õŽ™…ž²<Í;a ‚÷µÑgÖ5nû°óý7@§t ã.^ž ß×1ñy£Çâ·[?6x<Ìq‚óåŽSÞ^$±ÇÓ'0XãJ’pÍW!¤co`{´z8cRþo¦ý_迦XÒgË?^­W3²½Ã‡+è¼_ÕŒê7€Ã®{ 2*Ìñ’&óoÞ 7[±—'(­˜GwhÓHíZÀêî š¡©>€±ö•1¾ÞÿúÀÏÿ_Þ«eŲã~AÿC/ma4õ~Ø+1 ¸à…-¬í03à<ùï™U•§ûj1h ¹TÌ©¬ª|E$-¨ÈÒøË)E%öŠXšöúêv:Ͷ´ZÍ:ÊŠð\e•éù@ëx¿fÕº{ñêÛ+«cl¿9€¾ufEàv4JËðŽã:ÜÅz]pçÃzÁÎ{ãZ¿}™g·{ Å„g†È;Ñ2OÂk:ÄÌÍEmj¤%ÇJÈþ£…,K·—Æ¿˜ÏpÖo(Ñ_Ii. ߃¥Ñ{:µó†2È»0šbï0¡ ô¦Çö!?À<ÆhJ§nšY†Íhµ@55 D(’ ¼•Ä/ÅN"tsD&ägP”ÌÆzð:2®¨³˜¹èÄ"H@‹ví ¡bô@^ @¦X×L¬§Šëñ„È ’þYkf æ×‚n;÷®•¥ÛîÊdwöÊö}¿õöýð•o/þ‰šµ2†0)="Ù H ëÐ=¡ætYo©­Hp,#ŠDiØ"½qH‚ö©B¢ß¡X)ß§Bm&j|ŒtS4h„d¹Ö$)h“r vÊ‘Zr»À_½/»ðJCÊ£eŒeA%;hQ]XÏuyT§[óyºc:Ü.H…yYÖ›x1°"Sïc;úõ‹¼ÜŒ€q5*èI¬çÑû¥Î6?Ån‘³w ½ñûòvÝ)ŠŠÖsî'Ë<41B‡ßŠ÷qßÐ ¼‡ðÛ"_ oÒÿûdÃBÏÀÀ[z¾e -ú’…ÓÞˆ½\"²¡5³ƒÉN9ãΨ’g^ùrº¿³¢]9dòð­ @®Ú{ €V« -„^ºõ1ªÌP­æ×9ˆg Q?«ÉZ&•·»óH°¦òj!"Üe"€´7ˆÛɦ€uÅ¢š¸¤PžƒƒS ÂI¤ÎM%ŒtnŠúD±ST$³øôª@K™ëYg5E~ẺJh…ÔO˜årÉjJVäCRH³ÌlÝFÖÞRKU«ë pgE OiÝãÛ0Õ·±)PêP_¢ÿtMÞœ¤ »oŸZ™=7¦l@èY7…,FÚav}®M½`ê‹PÙUõÅ<9Gä71ª‘2„i„¤›¾1÷ÐlSKúÊT+qHº' -¯Èåb'ìrECÂØˆ‘ÉÛŠ ¬½²F±Ín5Øš%°C;~(ºÆªéÉH†>‹î¡ÇbÍ6/$åK© m…›0jÈ#1¿Lå£Êƒ —gçA­–¡@¨Æqu…Zë¤Eû¢6e¸”ÔD“v5ât!>¨ -ðú"€´ddȘælKC@uªŒ¬Ãö4F9Aë«ÜÿÛÙ-sŒç©]06‡ªÑ郴¹3 óÚ›ÊTF·ÚÕÛ!qÎiCý˜R·9¬E+`ô ~RëTç³É«E¹FÛTzH–¼[)–¦ièÀ·µòÔ%˜ KåÉL¯kÁ¤ÜMÙ·Pë¨«ŠæA"´dÌÅ:‡I…ŒÐb-55“UEž–ŽŠºõËÙU‡n‚Z(ôv¤å‰Õ<'×èX*èë¹KZe}ý,PÏ*úJºIKf?Ñ­M£ "í)²Û'V½ËhJä±u®gY›Våm€î.nŒA E‰ëاu -­‚pkZR 3°}%ˆÀ+W ©U*½¼ñI  L5®ßOè½Ýæƒk€ÛŠ'P[HEÙɸLfd¤•†ßQ0Çe爞Ϻ>™|f$ˆ—ÈÁÅh²[WvTJWª¨[t«á¹éEÓµuƒqjÎdCs&f)^3É0TËߨ[VÕl´¦³!¡ÒÔT0Ú6‘éi†«„¹»Ã¡Îz7j¶ "s%Îç U[Çy¦ÔzYónJŽd»* -åÔ¤²!ŽdüÌhú¦d ” (¿£ý÷éòílB{¼~Ê/W‘ý·¨Èo’Ä­ež„æGiâ!L@87H -/äHÜJo€À&´>«Ö™DBŽ$šˆÅ9h7‰SãhbD÷êRiÐ=· ™ Ûh·7 I:g@ÿ™&'y¿.µ†ÒÙ/ ©¾ÔW.€dJ<ycÌè ½…ì좗Q.gGô‚ÖÜý¢ˆ÷€³æ¹…ÈrÄÍ#ê«et9sëü½î¶c²n¿£f\k>TSt»Bò¢+”§´E;€2[$Ы^ò·«é¨Û)ë²|£ßtt r9ŀѪñ=ú¶¦Ñ,*`êdµ‰J¬äû…¨­™€‘O‡ˆÂZ·è!z¥K?k²eŽÌÉóIÝ~Œà!×?çÈCÖѼ 2Cu·•‡X¬‰Œ6§ë«³Îê—šUD›•:óÒ¿ŒÌ¿‰Ò•‚B#ÚH–w²XBˆhý%ÈÂë ¯M!'¼2åKt ƒ4ºTÒî™ÐpaŒ‹+qÚîB+í4² -V˜¹^œ.3Ml.0B¼í -4]*í^´ú™Ûå›*#’·FÍ—“DÖYémÀC=Dw_p5›{ø'¹WcÙ-p܆óú¼P±²Ôà¨#¹à:`×CÉf_ÿdÁu·”frÁPÒ¼DPo¾vE¢X4×C[°XW´~©]´ÄÖšs(”ÐÈW§£GÎKÝ¡)–â"nŽ­\¢ÛmBuß´4ËÅH/ÏŠ·ë=ÏeDô†â® ”ÓµãƒïXX×êk€¹eE—B¹»èÈÕ—®Ò¦«Y(Ÿ³ð]È$#N]þ#B”ÁÁOlÙY· ›ƒ^Ñíw ½ñÃûDk ݰ w@û¶Ü½µ{ÐÞøáò¤ùÓŘ ÞÈNÌ!‰ä‰NÕü†BR¢™2"Ê»g–Þ±HÃÖJƒ•s>©¨ngÄ<ˆ› :%é (TrÒ -_gÛšg×[Ÿì,#àA¯_¾›Î€èÍ#]’%Kç›—dÙÐÉŒ½ñä“e.Y–5—,:™±7Þ|²¸ï,Yœ1K–œÌØÛî@.Y ù)N®a#mqúbسrݬÑrEZ*ÉD' ª(QÒ!NòlÚ: Úª«çð®•Vj(fvÚôU[ÐÛQÜa=F±ÛÎrVNnè䤃ò <ÚìR¹“‘€±jÆn¨ Øôþ+I÷O"o?œoÌSb¥MçM¦‚uáB'¬xHÙ´î×G -]bx»ƒ| a ‹Àª¼ ÕKBè¤ýÞxò•°@W Ëš«„ ´ßï@¾ÜwV ΘUÂFNÚïmw W `¥$Áù Þc¼øgCÇ{ãÈûgÎ?ËšóφŽ3öÆ;÷ûÎü㌙6rœ±·Ýœ ]jj—Vá eÌ|=;9zæ”}ÿºÖ/ß´>úÅŠ åSÃ:5ì ¥1\œÃO=î ®oö–,byþrqÇWß?¼úæ»ÿñþçÏ~¯þúÓû÷ßz÷ããŸtõæéýwŸÞ½ÿkl~õ÷Ï?þô¿ <¾’ß|úüñÍ¿?¾ùÏÇOÿú—ì ?¼{høããÿ|øê¿@¾Åßß4XA,ð›ãŸÿ_ö8šä8=ÁÜ¡NÐÐI‰vYXw1Àz}w‚ f¦²PÎìk4Pý>IIId04ºvź§õøáù÷¯ÿÑí4·Õ‘6-ó-ØvÈäÍz* T,ˆ5dFøMŽ‘ÖÇÖw½‘‚Öc/Ãbu8ËvÞ·Æk`%AÒhÎSš¸`•£ÒK®ŽLœù=<<=#È4[9/ Çënuà_´ŸûC¯±­u.u -ý׸–ã¤:Þçyžm=çݧÞá}ðq3&¾ÍãþŠÄ<|fú>GaQû\©á8¾¯ý<ÃΨÑÞGä³a¯ýe =§g¦ÇIA#pŠûuž`&¢Ç©‡’ˆœ7s’ëþvÝò³Ò• Ï÷ž|y¢º²ê‰üʼgG~Þ§pgñ}Rw¦ßçYõðùÇqêwÕÜ7sWÖ÷úû«0ñ‹¯¥ŒÍ—WeÞlBxr¾›0¶iÂi“DÚdF€õÉ]!"ŽÚ‹e˜/ÝÃ{»É[&|±/&—µý°$Ck-¤u’å¾ß!€-‘3PëëÜÌArË•Ìc[&ɲvÇ Y>xsB߃w–+$ká¨ÂcX:üa_dþš‘ 2…5¶µ¾¦¾j¥½;ÓUЫ4Ɍ˜ßHDþùÃ¥æ{5h¸ÆÙ AüþÆÜ¯‹<‰1'ïÌãx“ØWd«.aà)ÅÊk:HZ©]’ºêy úªÛorNŒ»_ë\–>¡”*Þ~k'[&4;Üv¤›³zGÑåVîÀ±%k]éš”k‹eæ‚]þ6³ì37ûJ6¢‡<3£åá^ŽÅ£1†Øž!dût9XÇ^@¦ýÚñŠÃÏЯcécÉsrMò žãÅ‘òÇ%‰;{.ê$ùGÍKæÑX-«ód8#ùxV‹?cñ¾/Á@ï /ïÁÍx¬È±e€óx0^ÇúÇsx 6šGÄ÷í=ò"ÀÖ2ÿx. dw%á•^„2çx£¯B¹ÁXŠ­§/©µÇEœeh•×J–'&½F©s!ußHX¥šw±þ4Í›5©fW_Œ¾;j­Œ<„·.ðÞ`±ÊÙP–›郷•ºžgGÍíWêysÞ22½[-¸Ù d¶pV¢C#´v¥0W1ûø~æëºÊ/ƒ’éu¹Hômã¸Î‹°Ø«’‹}%3_û˜ ²ãŸÕC$¦ê+„\üzúˆðµ™“äŽ?jzLéç5O˜«ßÛŽõÔJSÖÔR‹£…wžiÐjƒGÍõ貞ª65\uiÆÇšì^óú—®¯6ö•;pˆöÃ’ ©Q3½$d -FŸæ÷ÒõÌɈTØ–gƒˆÍ¸~#±eN#C&5œZU@s „yÝc^LÔÉf§YñÝ š•ç`·)r9\YïQ }ö½ÐjÒŸÏqÞ„çJ¶L{ù%¨CØÝ轆Da‰™$‹ky´e®…"bNà;üâX#AoµP}D×Õ([¬Â­Ùƒðh]CìÊ×Ù…h˜î»»$z–ƒš¿$ô-Ùή¢’Ùpño’Y[ó.–"ÆÁ¤øu[œ‰²+‰L[1(+`MñZKw§®½íƒ›Y~Èö³ãC¶¯L>u;ò]Ç93jÂû¹zTΜC¿ÖB}•˜¯ª“»VaÆö›äž?¨èî$åq’ÿ‹D¥cR§ûMÖÙZÑÏwC‹A¾'‰ÜN2 €I Ʊõ^£fŽÙCžÿg—l!ý!œµuôo£4†ë Oi("¥ gŒVo†?`(òÂ4m5ÙTÆÐ,*!ÈJk¢±;1ê6£ß[ƒƒ¢(LÒXU™$:œiØÉ xVÝÕ -̬#„Æf*¶k*Û›Çv@Vøír„MТ闩™z -¢SØ(Q„ñ½‰êã±v+S#2BÔ^d^Nò`heöñZÉV—÷÷–«Tœ3lfRo1l9AT稆>9f¯fÕ¾qرº–OE—°ðƒ¸R‹ç,xâEó'ÜBÏ-<ðdrDŠƒ MiØÈH×ì® yÅTWmñê;{f:ÑSýÓ]¡óÒ.öe{ac€–H}n6¿„¾cÔ猢…càê8 -ç”>IÆ®i ú’È÷ôKÍ£m¡07%xÏLEÍú˜ì+I`wk)¤“m§ÀÔí"ÆGM×JÖËY¾ª¹írG«Õ–™Aføž Sf=˜r){ü˜qÓ5Áäâ²SGb!ᵈ ²?P 4G:dåygB¤ÜâT"DReÒ„ŽfB²ûUà8c•ôt+¡D¬É›ìY{ºÎnO~®‡—‚vAe¨Ì«É*ɼ̈́ÀŽWŽÁÝs–—¢ª6&;\Ã5 E8jÒ˜ïÙ8-5j¦evlª^õÄòë°¿U~{=e›âÅÍ6&_Œš)KÉ'e¨!mI¬ç£4Üd4hÜ¿Gclaœ›ÃILÊÙ,±ÄCDCl?¸Mšà«#\‡þûÍ–µ«“DCiŠ4Í^£aHƒ;ñ¤%m‡±Œ Ĩ]ê Ô®YÈ:}A>^Ë8—Ah×Çô²‚nœµâQqxE-ãMÙP!U‹w:Âô1ô]ÞòcKuP±ÙVÂûª‘¬®¥h­1 mR+ŽQ"»FI>Y¢p:3hA‡.%ÔJà­”=ÝU Þ]¾ëšFŸºÒ'Ý iôëq~.:×´ŠI‘‚Θ*n°ÚÇîŠp^oa ŸQHJž¯¦Ê¦eÁkh_ÝÁjZ[‹ÝAzmeÝIÀÝ‹_yÒMªG•]èht]R·i¹™ÕZ¾0,Zöd+ü¿¬ÆL˜«Ì™ÄóWŠz®4F½±B¢Ùl:ØÊÖ(™ÙpQCJ–z *®|Ù.ù|µ¢4Ù–wŒ_ô%1j OÏ%ßAȦtöy³¯Þ&|9Öç*A¥Ü °-cXLFàÊqË|Ð2f~Úõ’͘#BGŠŽ9>òíªÊœý'b¿õô`ê»gô’~>Òc¥ -4«TÀ{­.pÎEõ÷(Ï Cúß¼W9–]» \÷б’à+í](þ¡÷ïÂ@|R"ÎÔ¥G^ ÅJ© \b¤Ö¥k+æ¼»Èiú«^¬ñ»÷fS{™©[U﮵ܦŸc-\¤›É»€úÍ®²–©LX»/ ³¯ª­hl t‡éû–k6åG?¤UÆH×"¨æBD?¬NÓÚ.ó7W+üúúµ¾?ÿØâÑÿÛâ]¢ÐÒ.d ¶ZiIC€Œ½zÒ ½Ïýh0*³% "ÛËó=ÙÐõ „ÿˆÉÀ†Þ0‹GC‹¯ -²°›c©òÔÆB „`6må¦?öq•‡ŽÜŽ76ŽÒ»‰»ÛJÄd0‚ ÿ®ñbi3EÏ1Ì©­%Ûp PûçWÕ¨7AKýø^ÑŸ¢º~‡#Ÿµ‡)âôv¹˜:')¶ͭ¬jŠ—â°êoÄZèÆ§Ã™¦É!vÖíËÉ35Ï¡·ØÍ£Ó #—,SJå›”vù{BÎl1 áuZÉb™\Ű˜@N㱘ċl;Éc/Î%yL2ijÇv:Ä:Ï˶×9ö>±‚ÊMè³=ᡟ£Ý·=t]SÁ2ö$<:/¥!(ÊÝ.\Xð2Ù2ùa×(KÌ‹-3¢c?„+]3«X7Q¦ˆŸº©;½3YÔnbªÆ× ð½Ü©°_鋉Ô5¾ÀðúG_iT?n|¹áçžQß+½ ×˪R×J®—[IçU]/kŸJíõ¸@°IÏŒ¨+ë¹ÜÁ+ÈÄW,ÈRšrÝkæÑíÕæéÆAô\k{¼¿j‡îMKoBSî÷Ú=ݨŽR°lldà¦ç˜¿C^"L¤©EæZöù‰è9°×†ñ:º†–1YZ`g‰!*‡´½¿ê}Û¯N‚ŒRGL =‡-ßöæ¯ ÛäÌEuz÷ÜÅ0¢•Ñv¿î™?ÇKÚÒ§áAñ€³_Yà—ßoàÏmWûKÛU°Ðü­ï’ýk<Ž"Sõ]0vëj„ C‘-¦—gÏQFfŸæŸÐ÷¥˜,ÀâÄð`éð¦/BjM+hXýýBk7=¨—fWë)FÊ>v•Zx?ú+M†‘ÅÂë)_DÏá…}üªr=äöÚ5‚Ú–Æ4÷¸f Ú y®…Cר/V0P -Þä6ÇØ_º1ò42*éµÚR„Öé¾blšê -!/Ö‡Âä½ëè–˜:ê1Oñ4"ùU[? ¦HíT­Ä¾Ñ”ÊSƒ1lÝBé=—•]¹€¹öˆN©Â›©cß:ñösˆ.»~;OÊZ÷ÃâY»FŠ”­Ö,=eÖpœýä¼x5„êDeضq/µz<ºi¼®H‰Í-5±Ò–²°„Ò¬z^DZšcåTi}Æ dv—Üd-:) x7g¯«ÌøŠl*ïÐk¥œ4ÈÕ5¡R~M£iEµzüâÈö­1#6.½À°hEµ[Œ¬­û‰öô"f ¥÷ûÖmv²ð“Ì"™¾~»p­Ì'a¤Ý¥‘:k=çvÊÙ_€Wæ>/ž¿¤TboÞˆx»·Y‘–>/âN4LT 8Á ª)†¦™ VU™.­¿Šíßð7†ÆLŒú—ãßÿýëѰÎ@\y š6/&¢»1©²èA¬F,#ë.ày.c³”4/éK”„6÷bp†ÌèƒuÔSÉ'üã7\ø`È€nayûç‹2CVµJ™!@h÷—!À° -e†9T3C ybØÃ?é ñÛ!)†ËÔûìÉd¤Ìñ2¤cµ<íeH¿CÒó÷…!@hõ—!ÀJ¡Ìn®+ò5äaˆaCü¤3Äow†¤œ!=ú`õT2 ÿø >‚½o«™Í§ Ùbk ²ÛÈ ÁJYÏ|ÂkæØ™!@V§¯§‚< 1ìaˆŸt†ðíse†i:]!èì_OŸÝ'b)? !Ýš¿?°b^hÈŸ²–¤Ñx‚­c›¥2†Ø’òM›‰×%´`ˆŸt†ÐMÏBQgÝJ¥.·R>NøÇo¸ ÙìHÖyv“„*;€~F}vÆfÚ@øo%í@°Bӳ삎õl ÀÄ ¥“@È÷Þ@€ÔCûÙ@ÃZ™VFh¯XAÀVÀbÄ<˜z!¾|RÒn Á&ÃUx´=s@’©#ÍŠH9¦L”&¦ŒPvW?Ùï‹óÛ¹m½1 [í<‘zG=›ŒØ”ù…  ‰)ó`"ÌÁ+ÞA‘PøK‘;‚"wRDbÆD½bÆEü¤SÄowФœ"§wÚsɈ ™ÀBBL$$8rU$8*¹*¹Z9‡ŠDm’ÍsŽøIçÈU‘àH¨HpäªHôôªÈƒ˜ŠüÂåHX‘©†LT¢ô¤!†¿`Ó`u]§ÑÔï–EÙ0ÒZÒ>7þÓöH¿úVŒè䓱œ“Udp ôª°:WV‘ƒ¸gR‘ \q,ŒLÆÔÈÄå×ËD×ËD˜;°T®#‰„ÃËDaÂËDùü¤—øz™hDx™èÖŽFhC¯•IÀu2Ÿ&C²ùÇç®;ˆ ÂBDè×hDz׌DÂÆD±ÂÆDIý¤—Ýo÷Ö¤¼©7ٳɈù˜ÀÒɘʲß>‰! ¼G:#ËÆG…眆Œ×& ¯ Ÿô*Ï_z‘bðŽÍè…6Õ“IÀ1\x ’L‚T“ýs®ÛTRwÝg€§÷?ΫeåÎã>Þá,~ÏL÷Ü’•q Y$&Ú -[†XÇçíSÝÕs9¼‘’8¥¯gzúVÕ›'v.†ÙÁºf‡t[î°ïÓwr.v -·§;Íû57²fcgyÂ\ûŸÓõÿ|8[Äñtíç5k9o>›Ì‰ÍÙdN·åŽò>}çâòagLO.˜Ôý˜ ˆ=æu-<ÈÙb.S.1÷u\bn§Ös»Î%æ~W‘;k‰¹ƒµ–˜;¤ay…=HõJΦÞ+…AÐWš¹Åäl17¶%ÈQ‚ìÓ·Ù>\d{º%È~ÍûÍ—Ù±¹$ÈŽà¶ÜQÞdçâ’ ;c[‚œ<‡¹€%@^Õ‚Ègß¼ùü‹¯rþûû_yüñMz|þ—Ÿß¿ÿæÃw?=þÀ_ï~|ÿÕ‡ïÞÿŠßÀß~ùéçÿnàñ¹~ñá—Þýë‡wÿþáÃ?þé ,ÓãíwoÚãw¿¼ý~þþú&½´‰Õñ%ûÄ -ñ–0¡Ïì?Ο·ï<Ø­ƒÆkCH¥»#mÅ¿·ÆolªÓ ¢„©V¾lBã;‚F‹j–É’²ã?‡ D»nÕ.&é ¿½ëÐï.y%s ÝE©Úïtã¾QøÍìeSLöx7pMõ´{èÀiHÙ¦‡å\œó2‹çuØ{™ {ñË‘J=†ž‘:ñȱÇAËv–ñžp`]鎔$Í‘n2Ó?›vC|Ê \äð¤B`Zó’Íjš‹Ãçô‰ ¬5JH~}FÀ<ýÙÎú6ÜÔ!ñ•'€N4èG­©Ž¥dræá ðÁ¯r -¤HLÂéÉLg\w°_uáóJV½¤EnT]Ò¦û胮¨­òyê¿]/øo»H -R¾ŒŒ) S¨3~” S—½ÀL2)kújùˆéÜY%•ˆÀt &¡‹bjÅJ)•uYÍQM¹)ÏÆ\`Á¥2£ŽÇzY޹$!ècÁÅŠ#³i9ÓÌ{ÔGކrµM-j>iûϘ1O| Y³G?«ŠusuåH2ëÓo'©0ìÔI¾ÒÓÏ“CÐÈ1U"Ø–)>Z*v¶hyÿÈ‘"rŠŒ…icFma×{&¢Ê±—b.EˆÏ¸Üy86)’ Ô3j*±­Ä±€Ì³µÆG"3Ò­Y²*y1Øú*‘Tm|ÕhÝ–K—LÑßµÓ.¹‚5$Õˆ5ó…ôÕ9¦):.j7š‘O) ÑåçÏÑ_p&E:±eLGœ'|ªçPRÊk|ö׊h ~»Ê¤+;vuJ¤að£VZ0}nd0àµ;Z5F4M%PNþ1K&¢ƒbÀK-Ì(¶ê¹Lêj‹·•©Ï\lä™ëƒ1Ù‡<Û-êß>m}o±rݘ:ÉQ_R\ÖzÓ>ç'ÅòZpûqÛÁøÄíà³ÿ|Ú‚°åb†€D'Ù‚pc}*õ›Øbhõƒ!IˆÔ6ŽÎ4NȶP–Й:ykÌš#e ;b €ôýðÆÔÆ›!…¿}Ùºf¤bˆXcpËcô +»àL¶#âZÈö¾Ú@3MƦ<ʘ¯‡©¯]€•gGÅþ<åFìÁaçØ - }ÈSžÂ$¥žà;=xæ¤ ˆX”^ˆ'>숎‘³ž & )¾šj¬Ä_CßˤY‰i³ÒlhÂ}n!4=åû+äXK½OšÎïû¶/½4\z^>í‚Ý~¿.kkCÛEU…:L¦ýèFã08ÖšÑ5£7Flº”“†è̱×ö²ì|…2¤êdŒÕ·º qº -;ÇBÛŠ¥ù@–7á…½Ø82šKjs¡9ÐßJfÔ)öEb­²ø"Ɔ? Fo@°T¯~h©êªeY oKKƒa0{8&•3s`úÉ)F­kPCJ™›~겋Y›»Òƒ4‚pgÞ¾ÅCN<«´ - ¾Wj -‚Ÿ(ÄS؉ž^S“ÐÁq:»‰i•ÃæÌYÈÝm4:Ðe†î·é:ÃNJeÌcײ À§¨ür.#]TsñIE~8JöÁ=§ñ›®±f;|¹Ù¸k9ùB56ZêÚµ¤Î‘Še7ÕÉ ”ÑØ|½D43iÉ3‰bH­ñQÒί3ju©|Ã$ -(»S»! q w#’òb‚h[ÛE!ý¾~ÆP%ùqNG[¥>ÚåC¶}‘¶=µ:â+¾ÆÆ) -õz²S”x„бjˆÁÑØæ€G˜#wØ$¢•-œ7³psI–RºÓiˆÆ6„+ž~°,úˆA¦õ*C$¯Zõ -[Ð)BC²Œ«Tíè¾…' ÚîŸ,zóz¶v:ÃéK{÷ø|·ˆöÉ·ûPÛ -ÐRñMãìV%Ä -ê¯}íC=Ά"\ó‚ÓÁ’´ô"'ˆ!²‹sÆÕQkæz ¬c¶Æš]gÔüå›3üœPcöú|4¿}¨½& £’ϾùQ×?QÔ}’¢ƒ¿¶ã‚€^†¤ç¼16IG|”9yLt¸!‹ †R&Vk–Ãh†h nÜHé7Ã)z‹ø¢8TR®ùqÎ2–ËëJøgÑOëÝÒyßbýfyì/àt£˜tÉeh²%¡ŸÏá&w&âvÁDÑhr9ºdÒyÌFÖ“/1¥æqo†óÑ|N76¯u\>X„°-åž=ô_d–šËß¼ ™Y/ìkǦV¹,‡ÍOý:Ý&̈û–ÃÔV®—§6v´öë57âo†\X1ÅäˆQ–!./ö¸²"š3õ5®2ú׋ö¼—9’]7 EWà=tìÀÅɸþ]¨Ê™BïßÉ÷»)p"õ?Eò †‹In'¼Ýî0nšôrÈç×øýÚ&ÿÿ©†K1ÞoÀ=>€1þÚÈú©”pÜ·:©’ݺ5ä 2ó¾©g8É‰É ›¢üè:RG¤†§ õ0F¤®9Æ6nªÁ”²zl“¥qÄáÊ>,HŸÃˆª8¬ï«`ÖÌ.çî´ø‹bþºØ˜K®TYuÝé*mÌGª€Õ.íJ%«¬+U’Ü©’ìN•½s§Ê>}§ÊeÃN•méN‚}››ØïT£’ÓS¤û ©Ò˜è‘*`•ƺR¤hQ=©’Ä5=Jðµêå:_Âï±…}¿Mé*¤@ ˆ5øÖ)5hæ(›Õ:Š6YÈ´šî¡/6‹`}“ß³®¾¢Ö§Ot8Q£ Ñ»VÜ -s[3Si pY©·Â”æ$Å î>1ì(›B>Yôâw!3ºŒC<ksû{Õø‚¥×"‰¡Ôiú$Ûg÷¤’ZB&Kõ}Ù—µ>ô%~ëÚ]„ ÔÎñƒ‘y9æóg½~YÉðÿ\ÕdBI‚Þ÷Vëjf,éÍ”LÒWbåÑ:Ùp  èRb᥌ÍÙ\Ìx‰Qâ -ñ"cŽAÁŠ×¹×“EXèé$Nš%ªš ©Û5å)¥Ñ$-Êh¸ku'ÍuXÜØï²ºœèu¡†š+UÞĪ+ªÚJú µ†aB7Yà(lÃPeñCÝ«¤TO i¥½†ú8ÌùÌqïÔÖš>ûtm-èû· Ú\t¼=Vj#™HÀs“›Ø}£;nÑīڨȠã`­ ÙeÆKÕݦ¸øKÍ*ëÒxöæÖKÇ[dÜí-#èõdgçôŒÅcÉØci†õ¹L†þ¹qŸEeÝìeŒë¨wÒm6jC÷ž®c”8#çÚÒà6eßúÈÓ*@ëÚ£T+ û¶Îñ¦K§?6†ÿ]Â0“õÌ÷A¤‘‘1zî35£lõ^£"6ýžVsz‚6% âf$QHã ÌŠ˜#ïÏaR,¥g!u£è¯%- -©ÎÃûz¨ü­´ØN@Ïð6`~ò}Ô-ùÔ›öêÚ{‡7;U߇tXþ.šG >nîÇsà»æêr­Ô³Æ1d ÙS²Þq†ž¡ÆÓ^Ó±Èò‹¬Ø&#Ö {¤v!Vø[UœÞÞ3-Ö9Ci™÷ixjªëþ¢=uÚ…ÇÖW;¶kÿ­·ðaYëáBdUy¬átw8ïüÅÝxétw< -Þy¾hÍçóZ—~jƒ¢wŠ”õ§žûˆ†‡¡/¢Y}Úž$£÷fâçœÌ‚óµ“+Ǧ̨cwfݹÝÉÍãƒÌàã§HòãÌ«l—ïz±_e×”ýtW5zoá¯oÄÜÇßëÕfˆôÏÏ'C?ól««¹;Ö²>Z4ý -йY©„;¬[¶õp™k¾mß1YàÉ8å¶…§i8£y/éQxJ÷v޵-ü.3ĉfƒMd˜0 ŒÁË\WñzµVk‡ym*6wžZÁ_‡#ö¥§ÝkÂeg¸á\å»ïçWW½Â¥—¾ƒèçWnœ¸BÁŠ+ñ*m3"–´Jò3®ñÀ£>¢ñÕ¸Þr‘]g.¿OÚ²¿çQäÛ(£8BmÛѸïv"ƒVäk´Îç1ø %Bo§GO)¿“®Xwšá7+?¿ºû×úÍÁ¦ hýÞdå':¢ˆôªÿóf×Ò2Fz_XM•dJi‡)Â+ÞH]R4A(ßR¨:kÍÃÑÞŒÄ<{‘ž“LzÈ“˜ˆžß£ÑZì «ÀÐ3>.ËÛ_]"Àã~AB&Y·Kæ¶ÕïZÝú¼OiaÕ¶Δ°¤Òã6Ùw¾ØÜ/O -ï]ßÛ>ÞVí—Ø–ï×Ú÷ âåIÖžï¼YĈÏ3¤ç£&a  Æ]5fO¸,_ÕIï¨dôf„V9AõáL¨û81huú6ÏÑ$.<¸ö2&V`÷N”óûp%²êÃ?UáCm"åy]F'R¥ö•?¿IMù_È÷þ›ùþç¿¿î] <ºfd[¦;.q˜÷L-JJ3Õ}dìú‡ÖÜHcõ¬2ižC=¥ Óp%XPÐA42gªÌ2š!¡é2³R5Ò¨¹:…ÎW‹Ð{¡3C¿•9É4´¾\>Qí»*—f\¤—Hâd:@Íê«ü$†fv}a6Û¬a§[Öe„f6ËÇPñ½®ëHí9#¸ÀÂúãøi¯ÜÞ“w×7ŸƒñÔÏå³ -åóxIB&’´{üÃtcc[}~¬è "·I:8 -]fë:d>.§n‹ » †Jxõ¸I}HSÎÔ '¹<®e€è~•M®·»™¿p´ƒ`í -•mÓ¨m÷º}»+2Ó'|ÓM;ÂÓ—™ŸlŸ\É'9ùôžu?®9Ã|dßì¼bÎ:>9+^¨yÕi¤é%Í2&·¬âÞÙ®êpû1ø>ÄU¤Ÿ„Ì.ÁF&¤¥{ -tŪïòI@ KzkU2bñ}ý{cÑJ¦øµ!LD ÏmÉfûx~_õôÃSRú¶²4÷²µJ{AM'ÃO2ý¾IDC¯õmUÛ'EICäsvì+}„ ‹"ÖZZ…oGÏ‘ƒùÖWú`Fߌt"挆¹"5‰8£y´së%v ÒØÏ·Î•ï‹÷õ4¬¢Œ¾Éx™Þ°+ÄZÙV¥­‰½3-Ü|*±š©¿LP–GxOž_Ø27-^ ?±ª– xKUß[q,éälr„©øïQc—XSÑÑ3G yá^c¾ÜŒ'*ŒO€ÕmBàÆØz¬QGÄY:{ë£F«A*þ02Ù÷Ñ:séKñª!¼xƒÔ*‚| Lj¥Æqtx?/îŽê-ÔGo%Hõ桺6*©õcURe¹F¡jM¶­­mBïèÝÙÀ¢æXr3ÿ#»Ê%ÆAX+[BŒ ‡í¿ž$œÌÛÏÑsIìÅW=Ëm6CF™ik+#übÓÛRøTº¢ªðtœbÙ¤•<`[&Ö¥¼3ôv5uaThÀRWà ¬å\0ïxOr&9§ï*9—˜[nIÅ'©)‘(! ƒ^½Ã.ø‘voi.ˆ³D_ /Ü©.€X2`9#ûÔÁ¶;R¯€e ˆB–àöã{¶|ÓuTå ‚Àx®›öÐÄܘvÄ®šùìJ0éGt¹ æâ>b„„4õ‹Ùùd¹š‡ŸŠöÄz›ãeèdI=‹U]C®zÍ ÏkÕ79Ëz6;nÓëC«º˜fn‡ Ü"™s„r™vc¹×ü}[ «Š\y›¬r_zófK~s€¥¥2Åç±(×¹ÙSBUμHWùk·ïtµˆmçÖõ"³÷]´=Oõh 6ç©Á»HuíNWo¬°µÀ=,^Ü’üYÊfL®bðfÉàd¸gà1sØúE„êëÛZœw]÷6±{®RXÈdƒÔ\,ÄøõPÂ$õ -Cú€Q—Xë`W -W y‡ÙªAl§–Ø”I¹è&"üü™ÉT‚pO qÜ _ʳªÅRÛÌBlnŠQâ´ó•â/OQ›'¦‹–©áG­9ÀMµ Ôáy• ¾qýÀ!ð3†ž2¤f] b›fqÌjf%""Q¸)r†›‚ïv3U{aOum gâTI¯D–¨š-e q>÷^t‘O¢ÝÅzp ÷ÉÀf®iĦ ªmìà=óYˆCHŠŽ†:q»ìvT;.Rš(Ç™ái $’²f&þÁðýXOæ‹bŠ(Œ‘…øÃBÔ»‰‰Ã µjúà"7f¦4›Q-g~O2íRVþ"-6>ØŸ%‚r%ç6ÃèAØdF£u§pFJ:ÖoŸDÄÛj3N’ê·cL -ÆV jãEhg,á÷”3ã"ëüA¦Ý èD,k&ý ,*îÅà3US -¾/~oQ<æ‹Û¯)ˆ‹ýõ¡ƒy}lvf=Ù±kƒ•Pï¦!E -[cu­wñÕoH;·È6Ûx¤Ž…A¡›îë|ºãUXÙºú;˜Ê~'E ˆBTÛý¶C·ÄýC‰Ä´ü °Û›¡O oCØò‡v˺à¨õbœ;?Ï×^lnžrùêúù™=ÁåðhÎùmœ^/΋‚,H~F›-òÎDÖv’Óê·í ÄÜ~Ç`Ð\-¼…ìAâ{ü/r:&µæ\jEl|QlwY­uðÍšyÄ&õðƒ«µƒøêˆ.ØITNGt“òÙH{‘Ü 6xh÷´«1ûáVìJÁï-$jýqSB6Ï8$£fqŒ®/rXÒA™vìåzÒèâ]—ÿýéDÌAJÖŸîø ìPõŒ\@ܧ_B  ¾¡Idq­Ðd¯ðÔd&ˆüƒ¬çô÷^,Ú§ÖFZbûƒ)-Yb-è¡íœ^­‚ Äî²±o”ÙmÄü…à8ƒÇ/µË9ÿül‚éÂîýQè“Ò ªäã¥eÅ0šb¸Ê%ÒÌP6Çil©þ<‹÷*ƒ›mËX+¡–îy†JÈû›KQic-Jþc°‡KÇ“›«/“‰S³id‹}äèyOb“^õ*˜;׎GØ!½› ß9[uHæ´—3¶í>ô4Ob5R˺å؇×e§´òýÑÙcàh/Dè‹ìúÝcú§ÓðL;¨šÜ ×Z ¹gsžÄÍ´[WMëÕ*T9/«ª06y„eêØD…˜]ÁY[Wa:‰øeº}ýAÖÖkgŸbçn|_3»v<¬L÷{>9gB©˜úþváG~}ú²EÓ=”råQÚ§åéý6%¯"w_±u7»/Òûß3¬_é@7½±@¯›•>¯ó)PŸ)ûhâò± ±úÜ 9=mQ endstream endobj 204 0 obj <>stream -H‰d—íu +†+¸=¤‚= -ÒCºØþ{¸(/:3û#ç$O„AäsÒï"?<ÛŸ.Ê?¿ÿõùdÓåg¡®3‰IO2ýü 9þÓz1ýÙ„…’˜ó‡Lë%§ê›q'Ù§zãlž`pªfe†X˜¡Éæ´}Š:MFŸ ¸××H=ï(oüd6{1¿l“)ú!>ù’ÔϽ¿q·4B&nsˆ¶ø¥ÄŠufœb‡¢Æé;¥òÅËM‡‘„C¬ðJ]N¥Õ×Hâ“i~ÆH»Uõí;5·ã;<Œºß¥Ÿ,cãa‚­ØHâ©Ü–-eº¤~ó 9O±Ib+j6R&°À¿sŽ x K¦’’÷”p†[ëÿèšõEö4a4áéó+6T’9q™°l3‘|­1 Ê~ ;ÎU 2Œq³Î¼?æ'ц/Ôÿ4¸WhtËÇqM²ò-¥d–˜PêVj8¥H¼ðß¼$åT¶—–Ü€œîrðÔdûj óæïSÖš½5]r¿w™s:N}ð&½rCgW¯Ä3†âU*8m²]¶H¦U š„}$ñøWêr’ÔÅQœ ËÇ«2Ü“TÄ^2Âvè:lÅâÒ5þt¢d‘!\lt°BÉÂys¡.‡ám7Û’d‡Ñ“ŒtÏås,Eš+ùüA&ãŒÎ¹f-¯-¦”§*¸dT@î -±H¥dùŠAÈó.Úº&éª §º”»YÝøulÈø‡Éì—¥ñSߤ7ïoc8âžZ¥rêýCªŠ>Y6Êõ®3‰5{tx†ÄgâÊ0Ñ!:h«p¤Wfo¸Ùh™á¶Â÷áß äðøêÈA­8ó¨Éȉ1qî6»xZ{{óÉÒKosºuÛò([uBŒg‡IoãOiØäïÛ¬{E§"š ¥3¤|Üé}j—Ù$Íß>¦Öéܺ"!Â?OÑ$„Cß+ÒªQycvϧÀÎDqnèóÌù2øsˆê.®ŸõfÕ"þÔøµõr g‡ÇEôZrðÛ% --¥Ãåˆîì 84ækãxmRb—éÈS‚f/¶¹H5°ÖÏ×jyɦö$YÁbÕåº÷$–Äks(š=/¢~\9ŸÊFÆSƒOОn³2Ø 19=ü1âIjØx²IÖÛa›£C“Ѽrޤ>§*bíH»û¨IŠOlV‰×øÙoÝÊ_³´×;Y]ueiúütyw–š±Â-ç9®öÊ9fIž|­VÊxÞVQlƒýRT/nÈ›¥ÖYåõïSžº¬\p(']•Åu H#/×೎q Hî3#èRéIÄG#Žêi½¼;¢l’ÚÓÅåûjb”ìFþ¹%Û¥L»©r®ÙVóªêÛ˜ñbw;IIå¶€o’o•mso½—4T0â,ã%ÔyÎHRQGð‹~§ç -ÏŠN* 6Wåa¤"ú—8¾¬Â6жí³@’4Š–Nà ܒ4è¢Ý6ìKõF|ŸT/Úžzþ.ûd“–‹BD/NR4¨Mk\«µ¸—ÍI·Ê—k -†Š™ó¥ `4N#Ø–¢ÐÆ*%”Ý6>ø•Zd'¦³'J0Ô(³D~MJ( ’;‘©â{¥§WPhmb7iC+[Õä0¼é3èäšÉ]1"öCê¶(ª±h6º4çíktÔ3¿“Ž6š*¯£zTYßGå9é’´ݬY“ŽbidÞ,¦Pొ9Š¿Ë,!±·Äyø:â‰Ô.8g…ÁÒßGô˜–¾1} XLfK0ѸɳÆ<®QsV{+ŒW=÷̇çïO>¢6é‡Ò–ÞÌZ=oNMij?4³³Žê„f´Á+Óojí’îd̶Š#mR½KLçjdN6!V&õ¬¢êzCØ‘B9iÝ|VD¡èø'Ä:ŠïuÌÍžeÕÊü=Btp;A×–t=©·‹¨á¤N:§]O—½fÁ4šÀÓ«uýåÓ}[\ºæ>ðdÍ>¤À­Å°1­~L5è ‹hÖ“È—&”ï±­”é‹ÚÄ´‰ -z ¢fY_$¨ý·ë`ùÌš ¾ë`y`•ªe;gúÇòœeÄÁHóçJç³›‰îl}Ó„Æm/^ÈÖâ^K°ÄØ;`Sö5;ò»úsE¡”-´‡Ë?ˆÙ:0m°Æ´²8#<Šrr«’ÍfJ¼? -IŒ5©„]S+õºÊ»` ú¼i±Ýùzƒ“¹¸Q’ðža•:kÊùšUð„©>2ÆæZ!Ú—äÜœPª›ø¾ÞǸ®êÑVØBI!Øìlß×:ÜêeY‡+DRžÍ+J+a`} -¶-Vfêeó:qã$iÔ±¯âs™No5üÆYÓ$Z$¹×5ƒÕÕ°5ö;Hu«Áâ^"\Ã-çüŠÁ‚ö‰Û²Ã‹-â´VÜtéyüŽÖ¾QQýîÀ«Ðv„”"ÿ”./—•Æq#)3üŠ¥rïL,?^±ÒÂ¥.†ô—.è±AÉ é7ÛHª“a:]Ûsï÷Q3ÆIè_}Î;ªåG6myÔ¤ Òæ®2/ØFð³Ê -•˜ôe0žã•ï¹M4V~ͲwVnã¨NêA^°ú}UÊ õN¢‚Ÿ¬­î¾‡u¸"*D‹ò+–ÛZ'BË™f!X.åz<Æ6†‘ŒšdEݯF)Ò* -ýÉvª¹ŠV†rFŒE¤MÜHd#õM¢;ÑáòCt'._öMžû‰Ø7P_Hô™¯ê¶/lû´ñc_X•ôT zeFÐoÂës ¥^¢L!¨_Y—9ªñÕ]Šr_Ö¹ùíePqµ"úïiDDì²V°:âx*u/r? -ÓG‚1tY«ž­uÇi uŽËÑxµ5AqUž±Î´Ž±4c´UWk’ÐîßDP¤¥÷SUj˜[ Ÿ´Ú—4Z,²ÆÄ*ltŶÔ\ÆæQü²®w·O®ðÜÉJÆiÇ{cWÀîÈ¬Ž„oÌõÀRó=”ËAV·:>ÇêíçëU9Í»©Îe¹zìn™ù(X›Ev§ ‰ QxœO-ñÝbV)ì²£ƒx:O²QO*ÒŒ¡%OdÒÀ¹¨âqÇ¢RüðD9¦«ÍÞ0|.ŽFªëÕÚx¼¶þüLDz~~zûãODÿøøÛ·ÇŸÒãí_ýøñç¯~yüÁ½ÿòñ§¯>þ&¿%mßþýÛ/¿þ/€üÖ?~ýöùý¿?¿ÿÏç¯ÿú§'Ù™ï><µÇï~ÿx÷ϧþ+ä/òïoOIf˜"Ù%ÿg‰\ùOÆ 8’Nôûß»÷O¢:$ä¶Æ›ZEß~1V«˜g1%–ÛF,5² -:‰%%¥XJ™å®&«\”:¡„G§+‘>P±Œ´h*]˜húü8N'9]«ÿ¾ƒÔ gᦤ=h>Ž×„°ÆÑ~3ˆìãêc±gcÜ.;…ެût%’5—;³ñmß”‹„W£ã5'±7ë¾Å`›ç+s îÓÃÊûÛû¦á±ýšðê~3ÈËwâáù»ìÓIÄé_Ò¨ê&Å­zô° el¦¤©°124…TíbJŠJÖÛg“²ZTe±j¢Äf#VyH‘›¶ÞL™…ͤ߀!¥CˆdyÓ1KHÏTŒÈ0бM•3H²­jdv•F&íúJY}ÍÜ}ä[ìùÊ|'wût!b©Ë¥6Ž‹²¾óñÖ‡Úcö‹Y­‘Ú6‹€2j9,'ÄËӾˆëáqÿÔ~·%¤çpT±ê{0‰‚T;Áöá"„.ŽˆØ£á¸§0Òi`?E[|;ß«}¬¶Á*Y¥ðã°œD–Š®e]‰«42¬ H\ñÿI¯zä\rx‚½ÃÆl‘à¿T©O ªÍúþîÀ!GVòäLêšF£ApÊ^¡sn$òeöªy@7´wȳÏ>;"f”U÷;ŸÏké3%ì ñ.ÝYc÷Ðòܹm~Ç]ïêW‘N·&òë›fosšàN|d”Åôo‡æÂÿ­´h)¼³$ X q/8wÍ£À,êÑæKi¬l%D_àAÑG1u¥dç»ÖA2x׈4GƳžúbñ•À2:‚_HÇãùÝÆFÏÓ󤡯vß×è+¶ödT˜:}ÙŸ'pTÁúõ6_$ß6’—a4N†äïe~;Ó„ƒßð‘j5K‚uîV^ ‰ƒºÖ(GV,‘ø–‰v¥`á¸RÈsr÷¹N9§ôŠ LT¿â–\OîÇ¡£¬×~ k7ÁNðC_‰6ýÁ;ÛÂ`ÊU‘Ùu;Ø®îsÐ&À¹íÐäÄ´ÉtÂÞ„;;¬<)ØÔ=iJrŸ\füúã$<›ä”ä´Ñ«Ó>Ÿñ -ª”¼¬³1zP[­û¸1èióEÊo™_18†¢3’Ñ–%Ÿ j°N‰Y™ÆVׯ‚ÊÀ qA$µüŠ.¼e£ ›’Ü+1åªRª¿JÞi*´-;¡jûw=CšcEÊʬÑì°O-Õ£ôs{8`Úôñ†°ç|h®’Ïð‡ñlK!ùòìMµôSW]§~AFŸÏﺼ˥»ÞßaÐf/Í)ÿwØóÛß]3ê׌ÿgǨÈæÓ1‰˜\‚ ƒ­UAF³@ªÉ©Í¶=}°2K,yèh%ì}\§t)u›Ä4rPÂYs<è1¼ ‡¸¢VD[ 2g|Sûã9Îs¡‹ñÓ«ô7‚FëûwA#´HrÑ*4ü{ šÒ¤fÕWý+¦³\Hõ¤HÌZ›ÅqËóÇt6ÇðÜ˜ÚÆ‘äHí1’tqdÂÇ%“g3Æ?Ž4Ô\j]£)NÃõÁJ·LÁ|¦X—‰j¡eûìÈ%õ_Öâ~÷G7v*¤ùKB|Á‚6ô¬¶ÚE-"m­iv)O‡¦Û*Ó3W³CøpòhÜv#œüŒów÷¡>ž»‘݇7ÝzNÚ}î³³M츬„Ø~œ=ˆØ®Èû…DT¯4˜©¬;YĺºÊÃç°7Ò{}6¸H;-YЧŒß`VéÏ$1gÅ*Eõ`ή›ìJдVG0Oê6!:â¬nmýùÀ˜Ý)­†uŠÖ‰¾0¡ÑÙ„Ñ=À¬Õèžh0"3;,ºÐ‘¾Û0zucO;ûA=Ú9z~_—Þܵa‡Zd£JÆ.!)JÁåëÔ¶Èh¦ ÊõªÏ+Q¦=É|”o#Ÿ—BÞexTóTð(î7ØfÄ,xóhüíg\ |æÅ¦é3R&?ƒgóýóÇáÇwÐ?¿3ÑË'úO¦9öÑN‰l$õiŽÝbÀmÈ7T:8ÕŠ92™u¬½²¤ƒXÈûG«Q«'d¢/}#JÄïCrkwSwc¨S Ío%‡%RX ½f h…Xs/Χ”?«±Ò ,HA¤ Èmü¬VÿЬ–ðÑ“ †XX‘ñxnÄÖ’`Zo6é3N’5ûAâwµövU¢_'ñ:Þ÷¡ŠFÝÉ( ΋š1©‡*5CP ³Ü—D˜:“scÔ2ÌóÍÌÄÐCìÐ7æärzòÙÖÃqN¡s¢¥î³æ²ùa9€ç-JÃF {zƒnŒØ°4][PB=`'ƃ'óîDˆár¬‰ÎÃNdŽH›êbZ1î¬mîºbÔv!¹ÚJ|5¤Ç¨1TÏ^HíÜ÷Eèâ"çÚu„*‰“àÿ{ªTØOŽÿÂåÍ'æ“P´äT˜X}„òËg¯¸-voÁlÒ‘Tí/ûñ²(Ÿ¿e§ì‡nê¯ÿüÐPaˆ,޶^hÛÝP¹ÿt„iãƒ0š4(—q°ò‰BŽbªatëM÷<ܶ¨Læ“çBziú2TÕ‘øjv® @ú(‘ãÎm@‘ü ¨×8d¬G$3ñ}–Ï0ÚÖ£×÷0\âÖœ\Xc­¸Q#£È »Úv$B.Â*W(ßM†Ô¢kƒÕãÑ s‘ ç#epv´(WòºŽ²1Há'(n®«Ï7€×ëqâíT¯P:—×i§‰‚«z§’²ìÝñdûó§"9u»±¨® <øÃÞ/Tˆ‹'”nã$~ØÄ·,J÷&ÕÖ äd¤DJ|Ò´‡: XLêVdñH_ó…ŽØ–¾0ØD°“"’wÁWåïÔ7X„èF.äÞgÖLB5mŒû!üF²Qúìû,÷’ÀºÍT[×"c$Ròlìk;ö>W|U­i¼¸ŒH¯ ¤TÝ-æ™óŒ†P5.1yM£ç`Çì<Õ¼°ð„<¨pÞ€p`1ˆMÖJ¦èžp%º…zo+ãŒF´Rc*õî=Ê@’÷TšË!$*êgB"y­ÄÀ‘øóâ/5û¾4ÏÇK4¹-‘«Èáb«¾?Ò*÷9lñZÛë6ZõbrÅdbm¼âöqÓæëqnÌ—\)àòƒ˜%ŸÜ[4S9¶QØÆ2á[Á|aknIô<zaQ`nž¹Mêžty1…Q¶±.>ñ-k\”£ÂÀ¼ˆÉ¤Ø¨}‰0º x[‰HöxÓ'™£ÄÌHÉæWÙP3¶¥nUNÛåÖSév{~ä&Dßþ4±«øØ>#¿¨kêÃ~ùƒ]°\!f.Pœ’ñ‘FÆ_Ó³›ƒ»1OðÄ:ÆI,´.1GBGT÷ggâ¢VëžnЈi¸£YKo5ï–ѹiXG|ïûxcR4fʲ@8ô#ÏÕç,£³ëäĈ8W—DB÷‹7M4:«¼±À|æŸ_ZÎîsº¥ÿ¼cà.3õŽH¯×\ˆ¿9çØÎÍǬ𗫺t"Éæ9E *3KÑ5Ï‚ÿÎòTÍH‹Œ»¦ûÍùü† ßbÿüñ׿~Ãöémß<•U!˜ßþÓ$´WdCî÷ýí@ìĉ¯r$Ënx‚¾CÙcTp¸Ø-ó»:AGŒ7÷w'±‘x¥ïT+Bòªòó ÖLÑŠÌ:an³„ÛøÇ÷Ž˜ÂQB -ìØ˜±EVgÅ„zÒÊ$–*fÃzK‹¬0!S&¦¶Æ4úr mVmx®Iot0â S!öÒ%Xtn³•‹q­!À$#bÚ¡]U„‘bÅ ‰ÚaûŒ”¿ÅmVH¶ßª¬‹ÓÔ•[1X°îÊ;Q¡S¶]Ä÷¢6b>…ÃOKmëÞg<Ú(c%Û^/ŰZºb“Uµ¸‘$Ûl½”q'òBÑò!ëŠlhÍš®“Ï:>#Á@’¹š À¦0†* Yiø± -%¢LNj»ø¬h:ÂÝë‡zÄxc¾®WòIÐIxMT¨M•¦j“ó{%óZêÍæL¡ýÃa·êPÓZÀé"t(7a»ÈÏ7ùú–hœÿ°hBÕ1åy c×ñ±?·l|G|·cÏc}û®×À¢q1¶ðVÁX…&ÚÚŽ4ZV@µ#Ù¨ZãQVe´ÀFcv1ªu-H¥½Ù,ŸÉ’ʨ W -5f@¸ °­Fõ‰ÔmKâb`wƒÆG²$ ÃŽL^az< HÛ{>j}âByï1×#ŒÀÓliÖS‘Œœ&ûVÕõSUŠê0œ´˜Ô==†å¢Ñxp53¦òep"ØÓ`ŸàùÁžF+Õ²µ†Å”‡g”™l²qÑ-¤­ÐdÔu>+ݾësÚ)U -Š´Þ.âšLøâÁ\“Ù˜>_.à1¾ŒÅ>\@3u7ïŽbH¯Âù1@l”û“½³hÔ[ê/곇ÅÞl[c`Ï'°¹(~à GʶÏÜnÖë~u<˜¢4]×™§q‡mO s†¬î‹©Íy³µW§| -½Ô4ÄÇÞãÞ礢6‹Â”³bÀ se² -ÈÖêKH]›ïw¿Þ4×ë-ößÿùóTyü[Ty€ä,,ƒL– -‡ÿ뢚hÞè’ˆèt#ƒÀæ¢yøò©ÔZ¢”@êàPeF<èê*ñe T•Ó:ƒÅ—YÐ\`à3+Ñãß„Ó=Ý” 3ãm·D˜Y"QÛ½Ž—Lþþ ÌÀ¬7ß@ÊžùuŒB—˜_ÂÌR ´aR1&R${¦»ä´h™½ïD˜Y*¹÷4ñÉ„ùž -úv-ÉK·&x|:lñø}8ezÛaž'‡ž( -›b<÷ÄûPá““ƒ¤ÌeÌò†N œÛR¡ŸN5¿OÅ×¥º<18Õ{âtêûD3º SæÓ+'/§›þÒs‡6+k”yˆ`‘ ]Øí3ÕÊpeV˜ ^±þH%‹óPÒåØÚv -ÆnV±ï°šì»IšyG¼jK§|cÏÑò—ØÏÄìÖ§³ÖÜ:ŸÀ”¨§Îœ;ûÄ¢\ºp¿Oþõ¦+_o±onzþ;›þßÛöª7‘3îÂø@„þgu­ÚU~,ÕÈi [¡ô„y`Å׆Ô16f‰c|‡pwá„F§þrÅë 7¸Õ7BÖEÕP#£ˆÖÀg?ˆÎ²Çw}Ï _\¤¢Q/!yá½"Z†‚t©Þ@ì;˜ÏSõùÉRïô¸N¶Ae#l¡D8ö^éÒ´˜ écd¤ÉøÞгi†´bÊÑ/kwci2ÁF[vjûN…•ógq²>û—SÚÙPë#]÷óMª^GR‚ m!PH¹Ÿo¨­;‹¸TdT;åj1!m—à~s6t, [é>̧mÖ /› ¼—>~AÆâb™'}á‰5ÊQ'Å: KѸñlEö²5µX¦I >ª–×9…Kƒ³%ø¥c6î³ïÐD› ©â³ãÃ÷Ø7ç ýÃÊA¨ôlxmˆ¸s•þIM|`‚0Þ"EãÖ±[…Ð!_ùÀæà¡X—, b›H­=‘ZÛòï +2l¶e8aSšõZ«Œäš­¹-óúÁ„½FlÉûæ@Œ˜2q:eóÓ–äù(æHÖÔ¯>+´Wò´‘3ŸóšŒè›å»À"6¯'f<ÖO”)ÇÓ“±óš“Õóæ@~½©‡×[,–Aw2ZAü Ét±ÈºØ+aeÜ­ß¾Ãî·>±d¾U™2Œ¯‚tÚÎ+¥]è²AÛð6zR\•ØðFJH‹¨ú˜K‘FþÝAˆÆòï†B4–v,­Nœî²çzP@¼©¶:>ŽßȾ½ Ä gíõyŠ#8ÇÐzÜ6?ZòHä õìuBÎÛæ¸†jq%OÖTK©º‹å¥J)Ú,XëåaN†íUÑKl0¯Ü{Å á´¨ÔÍ#\-ñ‹u„¾/…fõ,-]݉G9×.«©;«æN+›´ª·5œ@ú«“em;„1:ΗvÆúðŒÍ"kÑóXNòèëM -3ÙÙ¬&YᛵTêÇ•{ÜGÙ)Ԍɶ™-"š, g^!j / e–§:¶¹¶àŽNòd1o¢½0 Ž÷ªÂfü&Õ3ñþndû²j•XõC`£sRC¡¾ªxb&!j -Wë{zÉ©D äd¡(Ýÿ­Uÿ{4-À3•÷ªÕÎN]~-^i˜”Mu†?°šÔlFbFvõ -¦oŒí¿14Õ¸Û¬wßAÄæ˜oR( ¯N„Ì–²/wæì],y«i8ž>KoÎò¤<ñÆÝÏ £\R´NouV >!I–›£D ûü¦±ÒüuÿU€+q­ o=Msyñ”mæ¡Àìã$÷ª¢™“ ‰í”!„l‡@ª*¤SÂäfæõ&³Íµ?ÛÌpüh܇%6§gs¼æ0q€®¶5ªcöh|ÏU@à~?® ‰v?c/gŸ7«¿ÁóÕ¯ –†v¤thtv ਠ-ÙcP@gîÖÈæ4…ÑÊ)£:éÞ6‘"¯º¿#‹vo½Þ_Ò<Ü{³±g{Ÿº](WÏ9ÑØWÊq—°%‡dôÙø.ØЍ·è›¡íÊè‰3›#šiäÂB¤kì5a*¶à7*†§5å«i3óeö7ñú¸Ûø®£Ï7Sµ=»ïŠ|Îð”ísÒ]Ü~Šôy¼s›yÅ&ØçÅzBGú ÍnrBÍíR§¦‡Ëê6HL]AÛÄ4‚YU~f¢j¬´>žúØDµ¦:ÚLÖUÕö|¹+òl¾Ëö:Á)îsÎóü.Þ.‚ÈŽ÷szó“Î|ÏþŽNÚ?ÔÉ_ÿûϤ2Óܲ* - ­ø ¹è§ÖA¼zÕ -YvílZPRÉÑ2Ê„·!³MšKÐTŠiF±‚I‹}e‹$:Zq†ÿ”FGŠv3ÊWjûO?Í·ÑsS-“ë6þÏKA]ßnbæn¢›ewÏNÈsKíúµ¤~úëGbyeSÇÔ±<ë÷å@ÒH3"°â3Ç¡!¾fãŠ#Ç -fIeÆXsŠh9”דAsÛ²ŠZÛ$45•r¯Â$?ãÙ ÿUa“ï_ÃLÕ®3qTq·sÎ •À°Ð_ws È÷x"@Ë™è¡O”¨7‰ïŠ%•ŠÖûÄûÈÛÉÉMvæ¶ó{6Ú%ðüÚ©“s¤SKçØ§ÞÎ宪˫4­Ê©Eô–J"Q"‰•ßìóflº1·VUNòÐ˶l*QxÓ,‚I$öw‡¾‘šØæÝmK›÷±nGPµ»Ž:¶þ¼f¬r]œ$ïàp2}¼ - žìj{«ò\š>csÒçÇu„ ¯£û¼BÒVÌ–ó:|‚£¢±A;¦Šs HO±~ϵï<"_žÁýû¯ì?ç|ªäÅ¢–ö­Ÿz3ÉÊU•ŒUQ•=¶*ÞsOq´d_Nòû7¯‚­ô×ÿünšþŸnúÇ?>FÆ­k¢6@›4|ÌAÛ³™Okô($y´¥fT)r$6ËnY“ÞÌzRË*+VAïš“º÷®ÈtÙ-²-–ÆLÍ‹} „$£OµÈQ˜J^êþ½1—öªki÷iþ{‰ëMrš{> ÷Ó¬ÄÀxú’îo6ôH¿°‘§æ½ÄŽÐàŸ äÙ‰wMYsy0”„!´è&’cr„¯]y%7ØçÏ!e¬_ ý¬?~ym¸Ïÿ°çž?}û·{%Æžwôt×Ç`äÒzõëV>®âl´Bå6­êÍ'Kšwø,’Ö³üâêCÌ|¸©`´ÕêÍf äO$íÆµø¤sb±h%u­¹’Hc•ÈÎTZ9–7œ‘5œu·–ï0­8©'Þ„I2íÏÛY¢mòÚkEgZËéóÖhŠÔ “Š·Q³Ž5Ö”¯sÁpÒ‡|¸¬Œ9lŠûÆ3uŠ£F„}w¬Ÿ‰ÑÔwÅVq¯Þ|•ÑòzeàÀE2FL˜?k禚•“îÁÃÀÔ™G~ç™™½mQ‰áahCNÚpä¶×56Þ æ3ÉmJžu’µ[é˜VÄüìÀ³iÕô-Ù¥M[¯‘¶É[M¨ÃŠE˜‡“ÜM3PqRŸïÔd²WXzk’Å^ %ÔáÉ¢i{ÆM…‡ƒq—O°Ä,€@W8VÔÌñI¡âO¨øÐÆ•%£Ue-›1Ȭ¶iyL6–F"SgAJ3Éra&HZG–=½`£VÉ2f•îd®¬©(Ñx’àwsŒS…sè¬Qà­ûF5 -â¾S¤îÑ)™_–,«N0{hUÒõP”Ãtð…¡1¾k:ä´¬ª„‡ÐU|œð‚§"Á´Ë{Ì©²—5G²ÄW„Ð-—_“LèîÓJ÷$ùî¡ÏÃ÷2Ý¥ '%|¹ƒâ°”Pf$*¨JßžJƒ”O ¾¨Žâ}Û¬ªHÆ$_uWEzþ&ëÈÕƒÝÿ̵o«Ö¦i_ÕHg»c‰æÁAVa7zc}§¥:Îmé§m¹ž ÏÎgÇ'écœþçâµØ6u \³Þvò@@Фøª„¤¿ÛÃç·,œ,ýòlz›^¥?Tè­è)JÏ(ø1‘²,J¿? ü Bõ^-Ým[WâM÷\â3)×ÃǃéñûÃ¥„ªæ -‚&½ŸÕ\«J -ãËGdM5•ü ºÉЋ.¿ ¦ 2±“wâ;«4Ë̼%‘êuÒêþ¬z¦¦…’x£;DâOB©ßß%m>Š;°kóU4µ“¿½xü=*6¤Äü…‚4^œWéy)û»¼_Ð’°XWHðõcVâI¹öG(ç®}ÊRe«a¿÷E\Ž® ÀSлV¡¼,4;åW¡¬|2—ôŽ’ ¥êË^¡ÿÇ{¹¬ÚyQø Î;ìab‚Ô÷K22' 2HL4–‚HGçí³ªVuÿÕ[g"2¶>ýÝ»º®«z·æ_×€@gä`aYKòö9¯Ë•0–AäÜêÛšóÊò´¯BéWÙê'…¿¦Q²c©0çÛ¨õ¼œâ‹êy~¡¢T£Š|СÝEGDÖÙ`S©;B²rÆ?d’^ÒE¨`ØýýWØXì\ÒšØX’Qq<‡ËÙuBš<—¤k°¡¨2ØtV&ºc±ça—O³äŠó:†Õj·Ük:ÿWguç$’g!Éæc©V ©òª³:õd-µMÃ$6!|~ÁçÜÐ Äi"šDÇ}$ªÕ˜›Æ“±Ù:ïâÄôÇæl‘_¥I´f©–jÙŽ™´›&턈ômÒ€ŸÌbsÌVý±À²¿Â'D«\?f;×êd -1ÉE:ÏÊ·4í²åHRDëó\l̲¬u Û^ÔD=!ýYôug’©ÝÌÝ8……Ô™dMž ¢_;H Tî[|`Æq}è»Øí¤•uLÍΰZnRÈv‹€Jw+Ž€!I˜È7ëXË‚1¬Î4^B*W_«Š­Ý~mèÓ$Á"¯I²÷»»Ê±È}†úI ŸÙÄï•Ê‹ð´r–9*I{@bq)à|eÐ.ÀS5´‡ôJÞcí¢ïßíÅsH‰D#S"†Lw(Æàë±c´–0ë`¦ˆdÒn):x4èšFAëòÊ[Ë6Í÷™xOÓG?VéO(Ýï~|zýý1þýý¯Ÿo| -·×ùåýû?½ûùöþííÇ÷?|z÷þWüqzý·Ï?ÿòßÒíµüþÓçoÿõáí¿?|ú'蟞p2ÜÞ¼{j·ßýþöæOßýäÏøó×'TŽ–!þ›1E²Ä -…‰7Ž ‡ÿ¹þ¼yû„¡)É mý*TäÇ–QJd’f I‹’ªíZ™Lweh¼ü*N’8á%!-a9–¨W7»+Ó=Å„p¬Ðz¹¼ä j:ï2 ›C±».6ÖIQ£BД£•ÛJZZwÁw…lŽÌ¯ 3•`@Ï›³ÝÝÀ'ºÓ3ÒÝA:†¿\<šN ¶Û·;4û-žÈ‹Ÿ_ªŒ‘Òe§õ µg 5HŒÓ‡º²A¡+¥úPÛë"†=·ÆqƲ>õyƺp¸“…âýH$í–é&ïÈIšGÞ^d¥ÈfØ !ƒ->›!ät+/À -å-™5ÙkÌÎ,õ–oî-²‚Îys/6Bï™gŒÝŸœÿöÉíã}ûŽ„³aÇk[ºcºãˆ>ùù…l`ŽÈþâ™#žÑ­óܹ‹L[ù°â†}ÅG±QÚ¹Hƒ ÅÏ´cœ9" Þ8“ ú1ž 8úY:°§œ¹¬rãÈ÷‹¬Ù¬HmfÁÅzb|ìöòªKu_&Ù— f'ñ!SÂнÖ=`^1vr¾Û'·íê÷ó;RÛÆÍýOäµÏ/ä³cªê;’Ã!úSä{*Þç¢?[>##‹À<*c³Õ£ ˜ú;r£ Ø™`%É!À:ÝÐF{ÌÏžëa) -ìÌô‹¬ìØ ‹bÓlØ,…x2k¼@°:˜ µ‘ „뮩ݡA=B™ò57e1ϽÙýg¾1vrÜ'·—õöéc!6ä´bÁˆ5UkWLU³úàç/SAóCWØ1áç¶ÑUW¼dïä\u‘†äªÂ°ªâqžªÀ‘±Í éZ]wm†7ñ.»} “&Þe6ùéÉÙjìþä^´N^¯^·{¢6<¿à¯ûWkÆú[4ã·èElRùÝ”|©ì`Ðí‚ÒèM³L“YɪîgVsÉ–wª¯…aò«4ó‘”,ÌWû9Hlk©Ø˜äp[Ýú<‘Ys.²ÖˆsrbÀÇý"¼ -¯Ì_¥l…f‚¨Ã%Jâ\"ÖÌsɤÎ,¼;·0NRf\¿f }”‡îQK(ÒP.&dTtf!3Å¢¤užìˆi é†ú -ƒ€êT[¼l»ã$Пَ‘Í€blS­·}5@ŠÉÿ¾ÕÌ–•`¹Êj¾Dšôízï"Þ/‹Ý=‹Rƒí‘Á¥&M53ÉÍ.ZBZX “g#‹¡èG5èûðш¼ˆ9%W/w>¦úýEƹ˜¤—Ü‡ë¦ F~¾˜öQoBzo$£VÖ¬ï¡'¨¦T† ÔΑJàÞ¨$‹’%Ax®ÔFt ©-›+æä¹Vr3âJžë)™£±¼êW½©¥—“äÒV$*V¢õÁÍ:êývÝR äíeƒ–JYo¦¥R†ƒ&ð1!§îž< ±dbòÖ[aÛ¥ó@Zµ1ê(JjŸÍÆA©‘ ?‚5Ïá}åv…t´CkÕØÝ³¶Z¸;{0h”z1@M›$:Dž+Aê0gõ²Ç`a?j5s:<ø‹}¤~ Ï‘­ÝOVfk6à¤m‚àAÕ'idm|vé’`¸€Þ)²/)ACrþZÄûk1ï¯U÷Êçeöµ£±ü¿G#6½"í¯Â«hBÚl±ÜLH h .¿vÔ<Ñà„!/‹~•Šdh“&-e -ƒd6Hl©Yž]Š ,ÍÆ>=ìJJ{êß[šeÍÈFÐÜ\dÎÚ<éÕÆ18ª-Øë؈v¹,:¡^ Ö{OkpÐH‡{*!†ì_‹:0ý¾]‚Bèæº d¬qCç‚ÌUƆT,jÐ -’éW(áR–ËpìîSQºw—že™*ébBF“É%$¤•¢Xà9õ9MÅ /ô&¤"4EÅ4éyæ™M4 -jèÈ.`ú˜ìƒz=ÙµdNÍ}u÷¬Ã†œ¾`-P÷&Ù§Ð,€Ôš‘bC§Ù Ý=r?(ÿšÚ#+3棴{÷9 ÒÊ8sRê=Ÿ“ÚÅ›ÏIOö$ÙìÊIÏ,ŒûöêmƒKˆméΚýšYûÍ.'±ÿ”ù“h5'ÑB›Œ¥ëöj¡p&¥xZeXTÿGvNnærÒ1sà¾};y™à"±íÜñÚoÙ1Ý/v))¿\ó™ ›]‰m5›=Â^_)HÁò¯ý÷²GÎ#סè -¼ÇT$A‚dì •Î -TåÌáÛÿ»øcƒ²iªœé;êf“àÅ@ëm{Wg,}Abæ÷Ìj׳}?ÎDé£Öî0 „ií|bB›s<9‚<, 21¿Ã³ú¹ç³‡¤ßçÌ9ÉÕ9o’#ÚʵyÍÄõ&Z -õÙêhKøE6ü9.9‚Œû(‰9–䘘‡ï¬~B[H÷pöynëœåÜç9q’#½ÞïäxXrÈĬ±A›Jde´A64j—Kb,Ó­el¡ºÙÑõ÷¦më¡+y»óAÙ•# e²Eóèùu1ÏBg)SΙÓ ëí( ½R_Ù?ö Jð¼I%n—£tL5·ŸtL>Ó;S[ÕŸ 4ëò0*«&?Ò‰’ŸyKÕ%X®.Ï›áÙÏêáìyáÿÏF£F<‡9D|ÕËëÍ*JU<±^ê¥Éq«…jUÛû…W m{û¿±Åek1šo}j™ñLŸ39†|Ø“rô­³_Ÿi¼ÛïÿûZï-…¦£.áðm½5ÙE°Ž`øt0u¸#¿MÑ…k´JÊðU6oY’ nx™ìµƒ¶M€²”Ì -û*Lþ9ÉN!>k©·¹ ã¬ãEToÚ)$£æqaøO“[" -Òšž ¦C¢òî©^×¾W껵ó9“DrÕ±+“e•À§½ƒ°.uΗH!!Œ†¦ÝJmy4‡½V¸ ‹ù¨ä-ö^›üfØñ]JO—‡ÜÚ}ðöç¿~„~}K¯Ö—ÞàH¿¿¥õ¥=À¥·¼Sßè9Žמ9 -°­áiwH…îÀ”0 aÌb»Œ]«N¿Q»­²^ EruØ‚ÕÞê÷çÞ…NâpàU­îû™"‡JË„ãcž ¦XßÔë·¤ëØù‘þ9Ü!)‰Õ¾ö÷”i^R>JÄ«¿æI{®åäõ¹ºsëNÞ>¸ô×Ù¯o?þýŒ¯Õ/úÚ×LMêÚ©±¬hdB·Øy #[£ìG¶BPÏ8ëVÌåQ©^Ǹ Õže+¨•5Ù -©uÍG·BÐ.÷¬Û±†+«VIáù¨VñN²=$tÛè~ª´Ey%w–_K²={J²M;wE¦Ó%!H¨×Æl•l/*[‹xŸY·z/Ý›MÕísu.ÛoÞøëGèS…¸üUÁƉNÀL¹ ö„†á¥õ@!sÌ\‡…Õ ]‹_ðº ÉXš/ ¬‡Ù̓ ¢ùb!Œš— ñ`™£ˆr%eòS‰•,šIµAR%¾ž2ýç•,Gâ{©Ÿ}¥RœvYùœ0‘‡ÄZ/ó©ÅÑA+Y{‡j±ÝŽZExÎsƒ¡É oÜýë‡ì3â…UÿMñ¢)hBò£íWñ¢kYHqaðÖ9V!Ú¾(™lïaä°FH:Eô1ÂfÓQÿS€Î]Á¦aKϽ)æ°¡‹³Ý;gïˆ>¦ (ŠÆFYK™÷ú ‹·’ѧõ~<ѡⓠ-Þû©5Ðä^+mUj|Ï4QÊØ×¾0!ô6糟¦äì9%ÙR „,W¸Àfí+Užš¾º^׿ö\Ûe­’mÄE"i“hgðzCôÚVýšü $£LFˆj¤ãjŠÖœž s #ÖŒ`]÷‰×Æe†ÄÀÚKÙÝfÒŽyjðóœ1Zz곚ØE¥üE2ï]u7„gï]zºžÏ×=Õ# -öÞè´¯`½—ü'ósýí)/"«#‡e($º|‚­?çò~a© çµZ3X!j‹SÉœ2öLy ¤öyå:Ý.CPΰ‘}nHÚ_¯ä°€¶=/JFJžŒÖô;º8È ¥AÉ™ -iøã"ÐN÷+äïiîƒL 䓇BZ¬cýñŠ§Ê²•D"OÒ ¨>vEÒ•‰ºàMJd]‘žˆù¶h{Öµn„ws2œÀ]<ë0Z‘1¯w(`Í@õ.ôÚç­ƒ¨úC [Ò&ûd¶§­ÜNŠ[•ª«W{¨N[¨re«’š8A¼JjÏù<%Ur¯Ôjòù\|/\Ð" ¯ðá ñœ±>–/6ªf´µ,úA­D m×{[° t[y[b Tó¥ß(ûŠ‚ØÅš9T r4Øñ­ ½ú†jÜ®x•¹ývË<Ÿò¯w„"yÕ£“L6óå^Yua_¡Nc8Àx$,À„*RÛ¾rA ý)c´¬ûS–UñÜËÌ2TKËY¬[*óÊuÙ:î%9‚9w2Ó!¸³ä!Ði¨œ1íÛÎÊw–7úc‹?­­ê–½“õ"’¹^ü†zQ¿ÿ£3GÕ˜’YsÇA†¹PÃL`Í®¶î¬ öœ@Õ÷xžLäDi> Q•î%?5è±òzû…Êäû»óE‡Ø^þDEÓŒnÍ·rC -â?Sç—{Ö¾XÑ˵ffgÙ«"¡¨«wõ5£‘l­™ŸöJ1Ìó¼^t ÀÀÓ»Ye<Î`ä-â"Â[+ÁÈ´LŸ1 uŠ!h5©uí¨ºô|ÒÍ‘58nMŒl¯fùß—Ì«ÛXr,RHeß—;‚0˜žu=,Þ"„Ê2ÂWº8›¾7Q|u5“¶ P:ƒÕCnÎÀ&ÒvÛØÓ‰‡‘Ùç÷{'??¸O6Uü·›ªmIÞ‡Zù­l’ÜÉsyžƒÁÖˆ@/$dJͰj:÷Zʸ«³KýAOd3§úÀÿâJê@ød1x{Æ–"jÃzÆlOñ2O›RÛ ô(°p5#jã,Ò&[†–i¼íô-›]¥í‘ÓâKQGàÞST°Ý YÁ¬‹|¤“ÿ )I¶4 ä‡tÆ ¦NÂö;l„õ¢Ñnø‚ÙãLʺE¦!«˜(ß­vŒS‡i7p­´Wú‰Ž%¾ÖíØh¡×÷gË ­O~Ú³Cì­Rý= -âUs}V‚¾çx÷5dt·gGømyvöœÈ9Yb~þ´ŽÇ(¾‘üùíÙS -·m;ßÇ}koŸ®¯ã¿ØãWK,&€*å*®]žYd­âF`Ôɪae©† 0?«¾¨|K‰öt>q¨JHR¡ÛCMæ€9¶-äŸÃÖðËsªoé&ÚÍ+:-‰&XiÓ½­Kk°$ë®YJhuÒzTôÚ ½`äõªd+U7Ä,&ß3ké³Zf-ÝmІlÉ('¤q³§ö–ÇA`Nø É%Öª¥ÓfNHÛÈèmÜ]Y¬³;îÃ÷à $ÅUÂ$sдµÐü %mµˆDÖ$C½†€ÙB}¨qÁ…e2:IJ¥e<Ìš˜µëõfGñ¢?_Ò¢~ ¤hèëØ¶Ñ.5DH“ =MÑ}-#4ã­‘ÓìÙõ©Ñȇ·áÒý™ÒØßÓ1Gã2È65#P¥ØÅcܱ¹†·ôÿú! k¦´ý ÒYñ·¢YÖ!ÿç½Z’‰AØ^ùÿ¹CßâUÍý0ä§²™Íì%íÆ „P©°ÌWI—VLÌ_OE‘ÎeGächžE~f§|äeZ Í¥2WLÃð!›Êò$±ŠŠÆ×5¸<Êc‚Fwœ5ª‰%/f€=ÔÖ¾ðŸ¢2ž’ûú|UB_‡xdjïzÅü"áfãýߓ޽¯³Dš03¦m†í¹j]†\ÂÄ®Y­Ê½h1Ú«YË‹Á€Óy³ïyƒéþ=ñÆÁiü1ÏÑk Ñû"Èñ2–‹ÍT)nh ô¦æ¥e®Üz]ÕL—|¨Ô7ùiRD›qþŒ^¨xIûEŒžŠ"_fÉVÒ [“´—ªkó£ ÑE×\©bu‘(“IÖÍ °iXœÚA”ÎÚÔ,¾¯c—Ù(˜ ÌéP.³uÎØØb„S5q+Ç?kµ #ù¬h™*RUþ1-Ôt‰R9hcºŒÙccî€YâÀW”;1ð2W)mÝ’'•Ì·±¦³HÃÜÝê0êÑ(õ˜R+†™ä9æî¢åó úWkÑþóæ%÷„•$m[)¬¹¤ÌÕ1 ¶å24ˆnµ@°.0!Z§Ó†f¢vLMÈ…`Tó1ƒ¤×dDLöW ‡Ã äCX˜½™g1Pi²…:ûeБٺœW&B[QjÀh+ -Ö§÷I ðºk8CžAàv¾Þà½LDôÊÑU03Ï Yúüð“â7¯ƒ‡yªåWÙ¾8òÂD~¿páùŠý‰èøGØnÖ ÅÆ\^2ArÛ7kDSZ™‘#Òä}} œÌ‰ëOr³Ò±Kd LºXÓ1‘>X#í¾ÇŘ·4"kˆ\¬!v±æ<éå8§¿5ó¼°'P/þ¹LDôÊk,3Ï q³)‘5¨ÃØ7kP­Y"kNEýÂD~¿páùŠ]¬iÖkZhk+FCÔk‘oÖTok_ŒÉ󯟢t¥ endstream endobj 205 0 obj <>stream -H‰¬WéBâÌ}‚<K Hè(ŽàaD®8~2ÊyÿÛÝdéÝü†œª:µªÎ2íãéIªxXÿgj~dÌ£ØòÉè_åͬÙßUY¿;|“ôæèy3¯vñ0RI”õä¯á/ôN¾tõ\ÔãnÙúô¬|h™üM7UêM2Z&Õ¾NkëUª’NV´éæp_Ëü+¨î£¸P^n1U¬G¤¼™‹_§Jo_¹â"ñsá *¢xÒˆ¿#Š'õ‡ªö" h9—ÿy]Èâæ‹ÀSÛóÌg“{ô®n g5`bÀ®6ï”çf5UìÈ5ÜÇçfɶr×ÿ”Dë1îW¡½¤ƒríR‰\ÒG³.ˆ¡œ¢»4É58.ÖIa†ØKiÅåÎ¥d­fn~b;’u¬”3oÓjLWït>=°AÕuI1§JŠÑ -ÃS‚ÉS.~ÚºtY‚yÙ§RáºÍçÉe 2Ææé4I,^çZóP¡7JV.iüÙŸ¾O{ßSOÚÔœÝÓ ‘!7¾tøø6½¿åÔ«%ëR¹Û—tíµrðð=ýrªåÉr¢€7ºÈ%h¼ -¶˜„úÛ©U8óÑ1Ž6cx±ÙÇzÚ™5vO‹ð!ÁG—ÁØ“áŠÞÍm÷Ÿ¡ -›?6ú'0öóA:Âõˆ1÷a…Ö‘e740aðàѽCË•z·mOhp&»Á¡G½%Yy£²\M‰jÚ9¬UåôË‘óÞ|WyÙw}Àû…) FšÔ…>ŽË NÎ Z@^ÄhìÍþ6OmŠ«äI.Á‚ÒAíFŠ„ä¶H×HÀ62¥Òƒl f'Üî•1+ŸµU§³FBǵìãºÜòK|XÜäçnNÉ]9É.9¬–Ë%ܯÓ/wŒÚ]‰‡yuíhL0èãèWÝA\àI~Î/·„áì†Ö´Üš°„4ôC÷Ç ª>SÜœ»¾ -"SÞ8?¯Ã9Vçn™Ÿ]+ðó—:ÙhˆjÚ´ÎN"že„OKʆd•ÜK=[þsÒ¤»äx㸄& Û©sCÒ¤=3¨_fñ}ä)–?–Ä”’O]²´éxtª°ËbŒ/Cøµ%Cî$¹UödÌW†aìµ üù6Æ|¥!,¯v±B+~—`¡R@ÎÉÎh£Ç¨r"?Yæøµ³yL;k‘7Ñ"'ìnÄxz–B ¬1Ø%–Ë…%“ò\e°ÃØæ0«õN9U7Kv⯮uõNWý Ö†£Õv‚ï(mèiBA І ª‡/V2ÀÝbÄæ&·XAa‹IBª/•£•7/”0=`ú'ìq]nñKÅÞûX~ÎËÅO[—~uÇÐ:^ÆŽ¾ç®™ì¥CÜ•ŒÁÕçÊ]¯0´¬p -Xaˆ]Ir¶Ü¤=Ò|÷Äß%A„!º’&&g4ᣀѽ8•KóÜËÂÎãÁ‡ÊrÆ>‹P.”•`qPe€-ãþÛWÜl_äWò×Äð@+ØWe@à R¥Âu›É˜³‚Gë¤ïø˜˜Út<ºóÛæP°ôõP9ÈЖÞNËab‚] ΀á^Üåà -ö2˜ì—¦ÇÞf#[:ò¬{ôI¶NõˆZíÞGÔÞÓMD½ÜF’·¿Žà§Nh¨J$Ýj™þ쇵xÎæ3ܹFü}Ê´?e-sÖ_ âjõ3¢ä._:aÆàXH€b‰æq'£á|ŽVQÀS'\2åø|/ºXNšóðM™Ä»3TVö]³«U>1dÖžÒL£Z­|tE3*ˆÀìQ,þ™;¹%IïbF_$)†ŒÆ ÙÔé¿»ßN¬9ÁÉóûä‚n4?°Fk5b‹9f-‚]†Ñ£˜8Ëô&,£cšQ ”,‚µ-VdteþmƘF#ÃØÑ‹^uö‹7Ö É“UØšid}²ñ{ýàw‚h_ŦA£Wg‘¿[­G3Ñ]“V%oÉN»uÁÛªâY¼óéªKÙv -y‹yÔjGúÊô¡âNPàhaÎ=pÙ»Ûû×{A(‰êŒ&nÐÃRƒ´BêÀ¥ó¥ë1-ÃèÒŠï¬&q­äo’ŒÍ÷PuµîÖBéÂiÙ‘Ö!yêÈ2ƒ§N„–ºÍÞÓ ʓ˒ScOÞ¥ŽŸWp©Ã}މIv œ¦K /ßPO§*?>!5¾WyÙß1>ü²€N„'îRAùãºÛtí»úE{½Ì<]Ý!o¶îϰ¨Ÿ0ûä¸2†•ÅÞ§Ä^ºÅ´iç@ÚLïm™nð¦ó†wÙÎÆcOFöq]nùݬðaùŸ³&Ì  p³ú„FQúnh¨Æ <NH¶_e±¼@ÿëU½%!‘ï©Jhe“ójzÿ€Šõµr°i‰î isT±ÒÄ;œ«e›rWbÈ…²ûÕ¡ÊNšÊV°¡À6ÌÛA‚·žú?ëÕ½Ÿ*DŸÀ‡@ETT°¤h;Ø¿˜b‹Ë7Å5¢ïÿÍ.H“óÏþtvÚ9sƨBDÈ%æ¸Ó]1ÌÌÛßÛ£Wݰ† -*áªAÙ¢ "› - ÇB CéÀUM=4ü|&š8”¸öaÏðï –]ÅÒ/´Hš‚”ë‚ßçùÅ®Ãqï¾LJÆæÉ–1¥‰•"²ø>M'‚K/àÅ™`Ò#²Rúž" -»”ˆ¤¯¹©ùŠêR¡Võ…îìŤ)‹¤êVÐ-ódÕvÒ2VÒ÷³/¢xóHG¶N±Ù]®Nj.Ô¸Ñ)ߥZ:WõKû”ÒQ·‘ë·¢íëŸË -Â-íÏ6ƒœ1£±‡Õït˜ê®ü ÆŒSåÄŒ¾~1c“í¯eLa´ßÉØ‚ÈylÅ1²>Üe¿Lê0Qì?Kn—YŒ’>Üe–4M  ä(gT:™pÜÊÚý8><´°‹ý/¿mbhõ¸—Ç[¸0Lõ“•R•ÍÅMW+µ«šµ¥ÑR}Î&œÉE­´YVâŒxhÈÉ„;±ÈY).~ˆÖ,ƒÅC[o:ºAðZu¿R’'²sا%#iŸ i!em*ņ®:–> ” NÙhìÍqTFõ=VO5¼Wé'ƒzÒ +0 ÌÖÒ­¸ìdk›a,Ó?–¾¼n‰Ë´û6 ÐÄ>§žv©Æ;Z§dmùÒóä’2T#æiÇ2?Ì“Aõå‚åq5ýy ä„É%Ý^éÆ)ìR\K•o¹„b±tÊ58¸„ñŽªzžæ³8Ù­S6ÚYö戶Õ-ï•åeÒŸ^rÆ=·nÚs¸å&ý¯×CÛî¹49Ö4úY7n-Éã¼ ífEð ¤ Âð@ -Úa…?='CpqæäÐ’¹îcËšq{ÅGEöÛrbAý¾x7Q-Ú±€6:Í:¹~„ßdšázÕ§ôÎ4Ó` -`Ö!”©¾ÏüLզ憴@]‰9s‘fgÞ]ųuŒY7ì³VFÁžË´w&ÁžÌuhʸY]`d*‚`Eés³ÇÜÆ€lv™®Ùƒ¼‰¨á­:2–®lF’"Ô|—¹ Z…†Ô…]§›C3‰n—ýiT™;Ê85:Ô²?¡æIS@z†qP¶2Ø| ¸2öÐÝ4ø¿qïàû‰1¥E#kˆ…œ‚ê5fçÂU'“ð»Ñ[œ†‚Çú·ÿàvЩzŒ0êøÅlÂ~Ÿ„•,¡Nž¦¾lké‹G:ñ:äÍî”­Œ©ŒdeJ§ÇÜêVdìfwrA¾>}Á¾‹²Ý1àå§v¤eÏ…7˜aìì˜ןy·œŒ@Ù›Lð‰h÷X@YÈ”†Í|Ù3®°–.›:LdUlâÿð‹EÐ4ùг˜=rˆ›š¢ùÆ\i!’Â3š -›5¿óì"¦òaeŸJµ.øPF‹ˆ@j ýäÞp <{afÑaÏÑš"Œ–¢â -òöLD–ƒÊfßù%!›Ê…† m©K`ÈÆX¼Ñ<ûݵ•‚ÿ– @$Äzè“å¶?DÛê»´#Œ¥Ê½9è1lç;2žèqL·¤H1¨4Na1Á°:­ç…¿½S§kD‡}[6Ç0„g¶04ÐC“a(ŒjÛ·²~ƒ£òtvM0tÃcDvÝÂÐN£|ŸC˜á·|ÃŽ= ]m¯²`¨³‚@è<ÅíXÁÐdÅãFÚËÆŠO麽1¢)¤Æ±„VþÀð¯°ÿé3ó6¤´2.6&ÊP¦2úú…BĽq§í•(t,Œ™7G{™ƒêB:`,uòêÙ^ø[ÒÏ™ª‡E§½K;Ýõ)Þ@,ŠÁæ7¢Yö¢ys¶31L¶•P½Éó‹]‡SzHÕw3ﮢèäã’µ†Â——Zá¹·5{"Dš@è¡Oíˆ †ð¬c?À`xád‹AHâ1½ ИŠ%¥²b©Ï-ÌM c¨%Ó*•p露Òd -î”­ëÆÞ|Î-GË­‚ý -æÁÔÒ*}n2–Ëܵ~g¯œlùÅlÒq¹WÞë™_O\™`ÌfÒ~O‚K@„EYõ„I: -ùt, á™* ágiH†‰bÿeO*¬Ž -<´~ 'r)– ÎÀa‘J“›KF­`¤ÉX|E¨ ˜ï‹ ÛŒ©‡b,µ&Kú¯MûAîRÔb.¦¦‰‰µJʱ¨µœÄ\#às`5òt·Ç¡½&.;¢µ>0ŒíxHŒ¥yÌ<ÆÒëŽØÄ2påZ€)[nôÕ˜†xì^6]õ¨é"õ$¾£ƒ™ÂZ»}*E=iÈ9a†¥Ãõô?ì‘d;ÔE!f%!--xk¯µŒšvÑ'U/£T`/ôŠ= -ž=l”ŸL¥íö&QÌvƃ E¯.R“áE*¼~¸£™‡{õ/Sd³7Û<ÜÒi¼1¼ðß&É‹i!ϋņÀW"û{¾yQòÍáÓ¾–büÃsÆ?LrE¾ó1á»Ìêï6ã_|wS÷ó½Ü¼Ìo— ~¼‹õùI-ºâ§á{šŸ^?‡<ôvû_”ÙJ…ñùVZjÛ}f7”|›âßX²y¹goîÏߨðëº=g¨V§H'.‚3fÑöuŸ³þÕ–‰Ôä?fú¹ô>ÖÿDÙG±Ídï®çxý%ãÍC3ÕÅHˆ^4PV”¼b-JmßÇ}ûÞºÇrßöŠ>Â>„Þÿ¥)ö_êüJû?iJÛm*4`¯¯£˜bVÉÂ退ü´¼³”½ú“‚ÿò¹,/>öD¾â[··ÒeïEbüë ÏÝô÷(c©Ð#{ÃE{È/þ#/ÜV­¯Ð3ŸI°Ë(Ñà“½ÙÐZ£a9¡ÌÊD3mØ_¬2‹{*òöѧ"ÝgŠ´z}*y¡Ó–ut\QÑB²ME¹À3J[–Š®îFû'–FÎilÄ zf±Ë_âj>×M©ÐèõžÙr„Þ‹Áj­èçHœ„† Àôà )?b˜t¼/*oNÙ³‘„¾r -ŸUõ¾EÜÃ-Ò2ŒÀq³^¢‰A_#Ê×R,†¾ÆÔ?r¬ÐíW‘7£d®»)–Þg\œç²© êæ˜ 3øÊX6Ö^Å…çÌõá?ùˆöÆ[3{x!Æt/ÆûçüáE“×^h×£[*™Š5¤Ý Ïò¬–;ýÍ1ª½Àzž59y.p•[hæŒMúÓŸ;øÚI Ëa¼WîÒŠ‰v‰E?ŠÀq±‚¯µèM@b¡ö‚gÍþ \ÐåÒ¾çcÇáxA_û²Ùdîq“ëòÇûx-ä¹A ×n)ů”K·1|K²x™¼¼Z<‡þ–ÞÎÅÛâ¿Kߥ®!qa¡Ê¦ÌÛ«Æü`ñžû‹{^³ç¡Ï;7™R¡¸š–Þ.›ÂcaÕÃxJ‡ág¹Cúïù«&µ…özLªí5Õ·×¼©µÊ  û„g÷1” ÐcÀ^e\ýpV7Š?AÒÂò§âS²ŠÀ>€Vº®áOJiç¯g/xæðܲ•8Tí’Á/Àr!ˆ?Á-3éFñg9K¨þÌá‚Nîðâ5% -‰îÓ™Ë<™ëˆh7šÂ‹ó§h™›]2¯+¦#^ ©ýƧ ÞJÿÍáÀá@â}Ö/TJóZß‹»!‡|DÝVËŸ„Q•?é¼Þ½&ñ3Ø+‹V0ùsþôYýWþKKùë\?UhôyŸi”åw@'J²gݯÿy¯ÒµÄ•(øy¼$l¤»Â’„q—]½Ì82óþ÷tØ„‹š@àO>ÇtWSuê¬Í^gù8} )Vý«Ý–¯µuõÁh\gÎ~…a"ŸZJäß÷zIø“2]L\än«? Æ¿—×÷²™ -ô>Îk§VÉ!G4P—yµ"s“ªÿš)ùú56wÆHîõ(!ŒŽêÜ´úb81Ñû¯¿3¢pœÁWnâNÒ…×d„ -7,–èk6§@*Lqa€ð?—âÔiº‚Ÿýp -†ŒVâvê–›7LStÒ}å†S};+ü)üF¼ø³3—…=ugÄ«ìÛìÊ`ž3]È¿áµ"ˆÇ=›²m'>Œ þM5Kú%ÂWÎÓ³ ëØÞ´8SÕùè_-æÔwÔFœ~Ÿo¼eú -ô¥©v^åÇ™™ ´4ThöÀßiêû:áÍMãO8»È¨³a¼Ü"ŠXÈ Øk6·„«™gÂÈ(«â°Uj9ŒYcçgaqhëþ´xN‡±dõ´,ÚjúaSæ_ö/á$Û†Hž, £N‚^"Á§<áFg öŒ™ã&I/š\”qY_nñ×2ª/2â«cÌìâôó0¿bÑK„dq˜íªÐ~õcÜ©é:ê'B†C |v/;pçö@MaúXxDû=$›ƒê—‚Ö,¾¬ìZU ¿3~Àíq ˆ#¥ Tã ZÍ7[»0»¨þ·Ü¢ÞÛDÆz´x:[$=0 Œ¹ävYÑ2bd²Q7Ì2¬[n¿bVÈàðÓµ$Z×½ËMÌ2¬ß]‹Œç(´O)^…¹§Ø³ÓíÕÏ®]e6 uæÔå9Tñ±k71KU9å–Ïâv%ZƒÄ\‰ÑñÞœ]4óc–„¹à<–¯ÿ(aÂö'*ÖJñÔ2Ã|X=W2ÿš Ý‚ºdK` -ÁÁÎ&İn - -%‘q$µ‘þ01¼›Ãz.(A|8_€‹HI·Ì2®¹ÝÌlT¯ ÏÃXñkf™¥BR&œ’.Nëæp$-êX«ÄËAKf‹Rá³­‚hçBuH™½Ñêå¡}Ò)œ²/©Ü#¾y'îýý‚f~Œ³P—7õÓ!â·Tœr:§ðÌXV„œ­Û •ã´ |)û3:§ªü”Û4â[]·™³]˜¥ªtÇ-e–@–d¬S®¥â0 ªt/•Uf%»K»`–a}éÚê߉e¬ÝI™]ÌJߺ–ÚŒ2Ô”q‡èi‡YÚcþvíÿ˜%6`F½7“ñ«=¥L0!Z—¹ !þiRècË{úºœÓ¹¿© Ç¨_œhâ°Ý}^Óº¸)(O¥’ÕèP»ñÎ,ô˜gƒ§ø4Ñz½«¸e–ÙB*¢€Jë¦*à -ó,œ”Åaõésf™¥rK· è}±€Ùc*•kS´³“㥠Q·ôS*\ -¾<¦Ñ6uö~Þ€Œ‚ -4K÷{’J CS+Ñ-©ØÈÁ –P¯5Ö÷2:öÿÜâc¬ÅǦ8¼ŒŸø3:çªü‚[Ij8’ÊÞmÉìL•.¸2k&DÀVsž˜…Ûºk…‘£q™i)ó5³Œo]+I†0ªŸé8b–Ö˜eX¿»vÊlœÍD9VÅA¨«OUé“ÁfBYP%,K%©dê{K™·pÊÇ‚òT*/2‘G>IÅÁ·˜û› -JR •zר9e.RßwÜfŸ®EÒ¹wfÁÇ\qûÒC†Z†XY êÔà©TˆÑVrÃ,Ãn#•H.K³,¤t YM©Ü<é„»÷6™Ð|ÛA*¸su [BïIGý`RfE§E-}¹êNÝÒG©Tˆ|U„&}¿°‘~““¥uáù„ö²-™¥nép«+¶02®Õ¯—Ý-™¥éb·½VZ÷ê¼æÏBöA•Ÿr{ ᨢe¤#[2 Ù[×JÊl0áö¤ï–Yf·®5šÝ<Ø­TEÝ`Èü”YÆÇ®M…;¯YÏhk&äd ~Í„ø{ÍP¿aæh]ö*§œ /T -%m)“N±Õ‚òÙ³ L¶ ÛÇÑédþO¹dèZÀ:¹ÍïÂì‡Ô·‰Û4êU+ÂE‹€;®7[{ÚÅ€Ôs›öyjù}Þìž\˜•^$Ø,³]Z°zJ´þTr¢î–¿."³RÆŽA!Æ:Ö£µì·ÙRÈ€"`ã3Zjêç?„¯÷h}Áý"[‚1 -D®ÙgX¹ÍX^@ƒ(^Td<«H`ÌM¯îR©‚n^NQ¿XqÝ;ÞAÒY9‡ Ù+}‚µF@v/ÈH­A>wšÆ7Á”l:Fò%Ü9}s=F>¹qV®Õ2‰#ÁëáÞ‡båJ%¿Ÿ•˜'Ôf¢# žMÞŠ;ÚËÆ„·yV.`Zøá¯bSK>Û*ˆv.TGÝ£ÞÉ!T¹ -ò ª\™>„*×@B•$uþ9ÌC¨ræAT¹RËÔ!T¹ºÑB•«mþª\yU®‚”¡Ê5P¥[À<„*WaB•«µÌ@•k{åT¹¶â¥ Ê5PåÈÔT¹rÿªœ‚„íuóª\ƒyU®Õòø ªœ¯°’TFF¥L¸Qpà ­Ë6Û;¦l¬ ”Søv›^][Cˆ®óO2‹úæY{H†õy¥$âP…"ÊWе ÕßãJÕ+¨~m@]8­ÛÙßJé€t¦Ž±6Ž–/þ¼ÚËypÊ -­™¥ -cD··ÔÆ&R?¨r­qM*ed<%ïvɰ.{®cVÅÇ?M¡ð4gÿ‘¿ù+6+tvöX¾öú¢0êÝ•wrƒî!p‹'§poíÕ¹·hva[³…ç_É2šá$ Ç»/AÞJÜ:Gͪï2bYŽ’={I‰Öååçõ~ròâ¨(2dª—ê2 á|,‘…‡RÈ>HŠ˜d»Û@þ$Ø¿0ÉÂU"NËüêôc`×õú»‹l¤Àx[ƒŠ±6›Ú›ëV®×öï¦úÓçn‰|jbQÇ®×MbK—•™òþ ä¤ëÕ…sLcD¥˜rìzÝé¶T 3_¢qžÌ;s½n‚L¦ëµ'Óýö*✠-×ëÌL\ F L:· -¬¯×—”qDZλ”¸ òP ž"¨ÛÓAng%¤Õv~}¢P#w"Ž*3â²[³uM®AZ`¥dŒ -β²0ëѱòHªÃQ£¯ï—žSXiéOï±"ÜZ§Xi k.‚k -£JJç%ÈŸz¾‰¾O,BÚ1Šn£©ˆûÿÚJAª"PSŠŸ[PRÚ³˜ÆdÈ=¤vžp¬4G,š…edò‰êD@†âˆPl«½?2œ»<{#V|Šöõ"¥ÜßÑ”î~áOôD[ a.L¹ÆÄåH3H\ˆLµïØõºQf:½‰Lï†E`I¸³­©®×‚á6šÚdé–’)­ô¢9v½šA¶áz%J*ÌÅŠ:r½þ ÜG0!'7$À*U»^M0+£*¢38vy2tæz5Í2Eû;8¨Î r’ -ì½^Í ëp½ÆTÞ¾ -X¿^)=Œ‹ä;D€®hFœ*9j$d®m±Òï§Fµ€On—çº.ÝŸcèštËHÏãÐ ulokàqy¶+ºV1ž±[g¼ý ôБ$6Ki½1HOôuÊÕThå‹j˜Ö·&ï·-/ÌåE¢Fy©j|ð@g ¶ÇuàWÔðâ!F¾,š‹WáK6hÝÙbþpgï!,w2¨ÊrY7"¬_ƒÒÎZ÷Jkýæ ê-Á *ºî2ÐÛ P“ˆ²0Xv«ÌnÛZòqVR`ÙKú÷ÇÞ•L\‡L¨ŒW¦_²´,Žêl»lû®Ì(ÜÉÔÃdeë®\÷ Ñ·Ög<£9¢J< UÐäáørwvÖe¹·‡ï<è¬ìVÀÀâš*QËù¨þ±’!·–D†o°)]C‘0|Ìå9÷ÖnSZÄ&ž‹L¯†:ùÔ`»ö·–, Ÿ[û; ŽlNÏý žuòŒ;],YÌÎ:»ßÅîZÉH¼»*Iƒ(ˆ•Öï ( -ì²}=€[ÌâÖBg¯‹¨;!òñ3VÆdrŒ Mu™ÚZ ”îJ³ãš-óÃä­•¾³©.+mµáš^4·‘ÑKÅÖAÓ?#KL®‰¹uPvUG|Ù§@§°d­ì¨ -Òö¢¯‘†×*;¦eýùÖ1“Y3”ö1æ`¾sõ–¬Ç |ÙeÖÿYµ7‚b&ú%#z`'H-m -–ckäá G«ãtf(Çé:£¡$wŽ:vÜ@æƒßã<ÎÅ,äƒ?.vÔ@mó¯‹9ÁÏ.FŸ‡Ÿ¶\ìh~Â\l 4A=”ò~èñ´ Z›`!{]ÜZ˜äOê³¥µ™"¸æ{”£´†ÛïZ¡tÜ¢ÏìbþtŠ–Cs•–k¡èÿÇÅPR€ÛïṘXîõaɺ³.Ïwo½ƒn²åJgøf½ì”‹ýŽ%å$5ê*|š,žçà<ìbþtZ-äȧ\øØÛ°XL(°ŒX)ÂÍ¥ódÞjgaÇìÊF>è§É‚ýéÇKû;ë:…*›MfQàËQÚ‚LšôÇå9Uª@¥È4ÏlÝÀ\r`j“lUq$ðýÎ,båA:Ùª‘‹­Íz‡ ,Bh“wd¯µ ,B.ÕÞž"B cÇd¯oK„~ùËn:dÕEè?¯øa"nÏ^…ƒÜ•wNãÜ… o$ƒ\ür¥§íg±Þl-mW¡¥;*oªm­r‹–ÃáLKív)!]˜Õv¶ÜåÙÚt>Íy÷±;˜¬#)YÛ Òº¸g™œÜë¹Þ½U}uyà)O™£o®Q庿rÛá‚¿l ‹z %_ɱçM^.yöúÌàÈQƒ˜}¸·ÈŒà;wìH™Ù.ê†WÚtqûnLߦ‹[0Sßa.N„Ü];v^ÿty,Þ¿h*+ÿñCÞÊ«SwìÈ´æòlÓt¿Ü‡p|ëÉeôŽk4Šà,Øö Xð5ªbD\@ÿÅ1âù¥‹GaøéõEª„’¡*†4ܱø¨bAn_Ñê ý3ƈò­Žù—K#°€¼5*{1Á“ ¢“ÊóÍxå^] ßK wA†¯ -¹©ê] -Müv!¼ëËÿñ^ë‰BAô x‚( [t-± ¢ܸšb‰1jb‰ßç^,ˆ ÷ÂÇfÎÌœsbË•§Rå~¬… Ø2sÉ“oõÒsòÕ‘YbpûDa}’Ìlç¬Lì#g;íìWr2ãÛ^jè•ü€žº4A1ú§FA2öo -mô7ßm:‘ z[D˜Ž:Ôì±ÂÑJ*ƒ=¦_8 -Žã ¬6A›¬·5,¦_:è Q‚¶F?ßr°--Ч蛠oXã¤,¦oÁÛÕÖlFɆš}ŸK2Vymø}9£(Ö² -É5Gßë1cpÉ!Šªè—äá;3^»p–c¨||dKOaDIô# š()9CüQDÄSD$R@ bˆpªè†H²±R„tÕšžËðËY wŸ]Õ¬[„‹µvu_d˜}ƒ«¾ÖKÖ -·¿aÿÙv°<ÐA¬­Pëæ—UÂç0ÛNº°a%Œ6LE=rý9m22lK ÃZ¯Ù2[Ì–ëHüXùº-.}´2×R[NÜNÞLJ(4ûFùÕøp)èë/“Ý›ÿÜÁÖÑm¨Ç Œ—ÉáB=vþ69§ÇŒl“ãÃe|™.´Ç Œ—Éá"hc%íæÒ>¡> 5ô¾TJíú¡Èkå>œÊƒIø‰ -´KT ßg-|¹›…·šý+T‹Iþ'QHåo¯3Ob­ -=bÄ>ÍD2Ô{Яùªb˜º‰‹a›ôž~½£òÑE?î®rÍçHp¹®³D×ñóÒuaJÒétýÝØçDÞ'«ýCÂJÛý:êa “LE» &µ>KNórC×®1 ¢ Ú*EyÌÄ´)+aÐC¡=f¥qÝßñÀ/'+svß´Þž?'2šý X MxŒ‹õî±Oà,öø·ø7óÞ³æ¶'Ч°ÎÀ•‘|Ȧ€uybÀÉŒ"éj½ßÁ_‡LºïÂuÅ€5 !ÿb­WASž[_#NL:ŸxÀaÃq|ç8EyÑ.†p¦È®y õ9ÆwºƒIÉgö8Ò›R+ £+7+§#iaMoZž%èLëuô~ÒƒÐkO§®™áSÐÕøsÞÊF ÇŠ”Ë›Ÿ5A- ‰{Iýyül꘰5¿ˆ-®""Tâ#'ÖfÞÎÕOîlàO© k€Ç°£Š]ø“ÚÒà1ì -/ <¾R¶åǰô…ǰô…ǰô…7Å/†Ç°ãÙß~)í'Ô’ï. a ©:B3VW¬âplÐý‘RZ¾Èm½˜¡¿×vF€RW“jѾK¬Î‰sNa:/©8ΖmÞ¬eñA+i,Ca.»UâÕÞýUP}(¾Gþ0óõ•\»®• šrÛª›œ˜û~£Ñ|L¸áßä÷‚I ¶µ‘êÚwxÕ^±žó¢Ù‡¢¯jr=FsÇàŽá‡ñÇ,\U¦üЉã>XÝ«ÍV÷2?,Oœ~[,Ö[ìsÁŸ¨• -[#µÜüì š—Ã‹Ž¥Õ>`ëè¥<ˆŽKjÅÅHIhѾõáÖD?à’¹Îj¢½×ø3ôˆeÏ#UcÀø° -þPù ò«/ƒ…w3•Îh·|ïá˽+ô5-pîÙMÅêä”Ï4œx•…b6ž×“5`ÞlÒ ôt §|ºù¼+…`›êøúÿl‘ endstream endobj 206 0 obj <>stream -H‰l—[k\7€Áþ‡ó؆²ÖhnRû -CÚP¿šØ)†Ú4…ôßwn:{6äÁ—ýV3æ¦F;ÑÇF Ï* -Û‡Óõ³ö¹Ý^#é“¶ $„‰’¨ú?FH{/UÚ’µ6c•aÒ ÜÆ¸“S[ÞñÀnƒa§~4ÒqâA»(£– †Ú䣡NxÊá0Gâ'.±Då˜Ûk6DÒ‚RŽçÉ  èÜ̸RUf’¯îÛá(tÜ.’Î+Ç»ý.ûx‚ím|CÔÝýr& Ùžmg> Ï~a·Gfÿ¨öÒZ²ßc»ìÇ#E»Ç¡±‹ž¡ya·GÖ-räßc»ìÕ.ó SFì2Î<‡\Øí‘3‰Ýí•Æï±]öãéÕûÓÍëw<~ý²ý|jÛͯŸß¿<|Ú~ÊO÷Ïï^¿Úg‹Ø›ß¿|úüß}»qÁ×/_žîÿ~ºÿçéå/£¿œL²mw'Ù~øq»ûóôê_#oíç·“Eþ¤Ñ7û‹0üO¶x €qù¹»ÀQ±ã¡SØ$Ÿ“…º3”1/rÕÄÉG2ÏmÌQA¸3´_±JÉÛ KO¹¡:ƒ¨àÊÄÈsg“=•ð  Í«@]‚L ‚H%6ej îì9†ç&ÈAdb˜æX'9sϽ¹œ¡1Ç¢®ƒ`—Äî±áÖKŠ)€E¯Æ’(;NFodLå ³kÍÓÑŠËbT?±©ˆ¼$Óli„;–œŽ†ÉÌ'›ç”•ŸÔÔFî®ØÉ‡È<²zs½JҮɓÒÈ윚@RLlg©EbrƱ ÷ûu"­s’>±ä†;,Ž,!§çFc¤[¦p®ËQ’ÎÔ3ÍžrÊ8c•vÈ[Q·Ê‰—½¸˜Å ÇéŠÝ›ëªRЮºQ±ð~Û´ÒV…ÏlIõ„vkN4¯[u˜/©ä’Y&4 €JýbšAzÑîÇR¯Ë» FD– a§fñ_Gq²]N?D)jc}pNÄ é³nÚƒX*mö¹œ?:§l-]­qE~WV:“@í 2gÉ…?ƒeâ–o”»1Çvrž£S‰q£™¬CÞ5QÄÂG0åÐÊB’f¾H¹>z®ªdv[‚xuˆ`ëD,e…äT…¢=ײ;E ’u6‹úPR‚îž#:xîá`dM0 ÄA¬æs‰Y¿ŸÁH*o¬ÞJžµÓm+¹•r„ìºè<5îÞ­õL22RS—³Z€åK³XR,«©Y;1¥X[– e¸€¬ ÌžIÇE˜EØôd 2k!LjÅpɵ%§`ÖZ I#cVóÚÌÃ5+T«vµÖóÀÞR(¶A ‚@œ5!ý• åhÌ\%sA8 Š¢»€X5…U)ê0Ò$^ËÜ¥sPؼ–LcG³N3âÍF¡ ® E⫈nPrâ3G²^Õ*Ã,rs;ZyÚ¤-Ÿô©%Ç=C¸HKÛV^¶*SÑS&WYßéÊÇý¬3Ieo³‚Prh• s5 º59¢ÊÞ1³íAÞŠeš¨¬ž: ÷Cb­†-Ucª7ÇPehÂêü{¹Ð>j>Ð"³5:’aåCW ßYoÐk®ðîìdæÔ*3®sdGzSÛAŠ™Ûr’bi§È"# gíW„¬¸-+RפbOƒ4¼’æ@öËÙYõ™Ô4¹.u¤—bbrekÙ £šŸæ~Ä•I~Píp*–œ¬xŒTÌ«:N”Ü s¦n1oì9REÜÉÌJ¢™®W¹¤r²“\¯Bmµ_fgwÓ‹U¸rD¸j€®íVÁ›XÉ]Áå— ¹ÊŽ£"é–êµÕÌ>®Œâ|Èiñ¸äÕu,'µïe1Kü\EË-RËu1Ö~ƒR{ ²]t­Òh¦BÙçÎ5zö¼,ï¯#í -í’•"|0gÊ‘kZm²‚#Ö~­kVpðà¿"{áßYͳAbŽž]®®/C$g„G›ÌUÀ”š&Û¡;eO«=!MI¿øL½~T Wñ@¯{è%ZvîÃp£C×.bñ>º^4 ÑH2ךK¸Œ>KW>ª{^iôí~c,]16»_ÛZµ Ÿ­ú8¬ªäLÓÅUÂ@‡rBÓ"y^K8Xb,pñpÎ2= ¶œœš¿ëâ>W”㊠F’«bŠ‹ kt«8$ŸJS -[×$×Po9jظwþ¦¡^bÚ22í •R#Û„7ß‘$¸« ª/£±fïЕ >èŠæ«huL’1ÖÄïУk0ǵŸô#¨..—íÈgí¬·ÀÇ1ܪ²5¬œÔ½\îí8å´Wm›þhÌ—dh™õ[¯›"c;¾€v¶^JÉ/,ÌŠQɉb/Ú£‘Þ÷¹?k„³x;ÅH¯ùVÃ<Žë -ùŒ¯fêz/’Tød1õgßJë9½9¹”I]Á5S³{ VâuDºª>c^­òšßÓîðu´©7­Øëo<[ʱ+ˆqqÉqF´5¦!ifŒ²)qÎ:Ö¸$啜2ïÜq«ØYoHÜå $;(7 YPWwÞ‰2Ï’»°‘gD[@ÜüþåÓçÿ°Ï.øúåËÓýßO÷ÿ<½üeô—“I¶íîá$Û?nwž^ýkä­ýüvò”²¾Ù_´FiìvsÓ@ÿâòswB;¾÷*¶‚­rèÏï• È!ÑAÇ%ˆ×Ó²Ö@5×Àtÿpu¥#@˜XB‰ºUqk·W¨u¯”»b°ÙüÒ«äHŽ#Z°>ÈEÝÇ›ßñ‚ôß%G£Wüˆz‘“ÛU…#$úJWˆ¶ÂÇ@tǽø–¹ ¸ÿNêOœ@ë«çA>‚4.y~IÄÞ›îDæ¿¿ Æ´6’m Õ’^Ö'€òA‡Ï ÒXÅÅÍxü‰xèY É@Œþ9vrº‰ÿº›8$ -ÊÂîÁøV ¿C~}UÔZ§PßÌ,¦S—ÂÁ¸¿#AÎ¥å UËÁ‚AJáªåø´Úâ¼½ò)~_ê3¸V„¹Sò•"¢Hït­‰lÆOH5þî—WbdËVÁ#Ø3åþ«øv*0š„;{;£Ê’¹—ȶrGzhjŠxHm‘MŠ‹¥Û -×5æ 2¿‡À†l–%ñ‰ò<Ä¿ˆÔÛÒÊ‹Èâ>Ñ5Oì·Šù'?àdÕ²ŠÑo†h¿‘n`¿x^BÀÊÉu™j/Šc®]BIͲ§;lÙÕ¢2TÑ(ŒwB eˆ&‘ØÊìHÿ‘©Ëè ˆ%Ds—x–ý‡aŠ“%l52…7A·pØ!1ÊFÔŒÕ?¾žÈ:ó#öOm¼ëG¦ey–lZè},¬qïƒà÷.ö‰µ<С(el›iŠ(BBeNa´ÞÖ$ÜIžõÓ3‡šlÛ€víZ]T €9Žöž:ÏS<´ïÒL!Û<ÄUIÒp×—–áAèeR¤‹Ï ÒxùÅQZJÊPà2ÏÈÅúT1m7¡¸ý7P\ÿë”Í=¤¨ßæPzQ†Žèù¶ßAqð—LõJ¹‹ÿô²è¦Ìdiü}^ˆ´ÏëÜ¿;ö‹Ú¾‹Pj`å)]¯¨ôÃþ©Ê¦A`£ÿPpm0¡”rC¤» MhEúæ05 Œ®}®•¶èï9ã¨r`9a­Y…í_÷k]SmGnk"G9Ða¤}2©X¼Í9ÀY4Ÿ~¾ÙÒWÓ%wÕûzÇUfØ‚®9×HÖ.Ñ¿+;„TÊV÷øìc<¢‚AÏ#Ebsß\¨Q5Öߦˆ²: ù~Éý{ÏôÊ…_ífU‚Ê­[­W[¨zww 'û:F—aÞ\•ÞU}¹‚²wðÞ…Øé,Ò#67@ØXµ”Šê˪˜ÅøÆÒ—8ÒCΖ0Æùæ:å’KNËpÛ‰ r[ð~|= áM¢Ñÿ^D!^ÑT÷¨¯êJP­›£k]( ]µ‘.D{Í h‰‚G÷î[?™}SéÕvõ’ÑË6ÅÛ„O½Æ= ª¸k7,j¬‚±¨{[ò¬àUn{°nèKº¸yuéo©õÖç ‘Gæ^!©÷õ ôËÚÉQ]v‡Ú -ÅÓ[}ù#Jx¶äó°-(¶ˆl+®ƒ§m]«Ö…îTùÅ+Á=ÿöÒzMKÜ€dß½Ó+ Ã@ÑF¦–\ÛCÝVªÔ;„e²ñú r˜¶0·ÂÌVºÆ­ëïSm¬^mc4f~j ŒMYï¥eó£LßD)ù-ʃô’s%Œq6…µÎ¸ä‘³2¼Úz\‚Ú»_ý=¾©@ô/ß‹è§+¨íwu%hÔJN@æ,½Þ2q—•÷‚·æ3‹š -ÃŽ…¨ZŠ{™‰õüüzA¦T ûû$€÷ávÏjjÛ]  µ5$§kKÇÉFn_öøÝÁ¦·Hè¹ÚCòûØ T[˜¯Æ#j­²eîøš„ÈŒyÓ7CV{g.[â–¥8úò,Ç’\u¬.AÌAß/à)»jV1ÃßÇš¸:|QÂ\7Hr)À¶LZ/†Qã·vž}vþ51_Wìe â3ºZ‡|• â™±o&þÁjÕþpµ’9󇻕Vt<_—«r¥û*gs-Ò"/ù×~/þD{X¦×©ÛW-E-7¢2¤ÅXÖýÑ‹¯”™@ìºt¨;gꙉ^¯Šç¶¡P¯—r¹¨Q¡`¨G¤ €»ô^0òêÛ…”))`Êì€eg qUÏè ´D— @%-@is½¾ÙU6H†T3dpåºXt½ã¡Ù¦}s%±['3©›Ñî½›qÚÛ6‚L]¶JÙ:ŠyTö ¶eƒ OÓ-wV½·.³{hB*»ó=¡q+GOÌ-“¦a‘€V1¨”¦êv«Ïµwêß1›jÁTEº@ípÆuîžè%{#~ë– _”QíD·ÍbWd­­['.SŸ¡n嚺Ì~DdJàŸ‹¤ýõû¼$»®Û¯¶@…Ü6ó­•ì”ËtÿÌe¨kìаˆd¾'@Ûç ®îz·G¸}nϳ¦HÖÑ›r¼¾¥¹cª{šI…‡fâJÇ{vÆùÔE@¶D¹Îéöp²Ù¿‰·€Ê‹ÛèT”˜Á~tªÕ÷«BИÖ|}2ýÝdŸ¨¹ÆÕ>©VpŠjN€Ö{´#h³§ž‘.õ¶h—–Z€;WjNÍ–ÝÔÀØF[êqôgZl<„q¬Sú¡5ú²nJu‹ X»PKûéÈ8‚'9j}û#ÐÚÖ¤µµ‹Ýg¤æßæÖwÖQ©¨¬nCD⌀œjSF¸’~Ûzªêåî“ À-ç™vt„8½i­}…j“¸(¤7IEÎô6jvΞïåæ;‚Š=|»°±C{ÖFw¬;ØÓì_Rùè >²”éSKõ íÔ« büEÈM1Õ€j;2(êðœ”e¬kÓ ‡‹ÒG¹‚­ÀÒl|ÂN€SFBåºÛäé¬\"¥ObîÒQ©‡”ÝÒEeíþ£Í–µÞÀвrh¬f%A¯ÑÐǺZŠ"½,™Òæ; êÌœS—¬â à™Ój}s®>¼•ü÷œóÜÉn„ÔL…—;oO:×2oaŠ†Î»œÌ,nˆÞÅJmo•2±–=dÝA8ÒÈ£ßJT¸ÛYG–ejú«mSÉR0 cN”r®~2©c>ØÝgJ£°Ù:¡dÆL½dÍ:Ò2@¥¼Nªç›e[SãïŒö‰˜íSÍÁ©q¦—A"ú51|ý!0«Íú2FFx}}b3^ÚIˆÏÛd€U¼ÄEe€•+"Ç%Ö䆆–'T‘Xøi+ÖΚ2Uã¡9åÓç+ÏPGý¶Ä…ÐOΗXŸB…9çB§9+CË=Ì ½gäAèäÑøȶQß›ÁQeçÞ«Û®‰­@{PìÀ‡dqŒÝ¡Ò^Ïq¦°÷ß@¡8<ɉ8ûÿrª@ízºH›ûÓ­Çãî~~€Ýó/ä¼°­ô&Žã¶/¹G¾ èxöMQÛÖ_;Î3Ý™ È…9?óùrD¼cƧކÛ6ëÊLǤ"^öƒ4ÍuûržMïg$ja÷ÎØD‰8£–F+@i”;Qgúzo%ºˆ´Š^è›Äì !x~[+Þ!W¿a¼ý'³mþÅÙö·ÿýÚh‹D2[º£"ß=â@x^7‹$BIL›?@}/½•¨1.âÓå€å]G£Þ¡}QoÐò2¨i^°-#©f]Q°†shäæÅWÊòß=­ª¹Ô†Ͳ©öæú4£Öž~»J™tÀ©÷.lfãÜ'dëãYXÛ|6†Ûè „÷ðLQ­ÏiR×x^@_;çÇ+iÿçØe°Ô*jízÙTÝ7äé÷‰dzð"ÃT3Ú”éO$Ø}°HŒ*ºÙ¸ÎWw'ÀwÝ.à‰æ†<š †ù,4ŠåÙ˜-˜?ÎÝÏÔžëòÙxã? ,ÛN=f¸óï„àü°Q³S>©PA'Ç8`ZÔª&^ByEÔÅú`-‚pÖ?'•9ÃôÀ$0„ý$÷ÏNIÐêÜ„tóÜ@™+˜@£Ú:à®)Ñ·£—x¿AY»€Ë9È-$Ɖþq›0è$ðÁ±Í¡ÁX™uzÖak–˜ -ÛPMƒ ’œ¯goa>”Ä1KæÃíwYžá…“»Ÿl-ÓÑF™LYÿÖz¹Àµñï7£öþ±ËÌ}ݓƸöf½ÙÐcoβ¬Ùën ‰©}­^f÷~s›ÏõÑÉï{ŸHo°Ö†íN ¶Ãx‚¹]È ø¶)'%Øi{ÜÍNî·H°7>%²Êh_ð”Ú~Â)Æý̧`#§¦w¤vÑï`>}±~zg§ä4×NÛþü¹'¿ýô×—üõ?Ï?8R¡K¿ßBØÐã`6t|¯¾c%4ÿñ0S•, û:+Dû÷n´Ü> „9]ª m -`BœïÁ,¦ï11u۶¯O åÇnà Ú†s–ms6Þ&æ9|»˜sÁíPÎ6ð”ånY>¢µ7>á܇ïÿñå\ð¤e?á$îÇ|ÿù%¦­_”˜„zûÅ!JŒ——ñ{^c¡‹‚(%P*¤>=ZºÌ9µ´àª,F… Jeù7jýÒ¦ÈKU| *E ±º Ê¦Œ#+)µ£O(U]¯Â 1IîJjzª[eÈ @lin= ЉéaM̘‰º™§ ”|l]¥ówAMdÏw'É@ÎÍèž6äý]g­Ï²".ñÍJÎ;)×®ƒæ8f”a‰4®õxA^¢þ¬ü⾦Ô&¨÷ì틸èpêÏUñFbW0}îMæh{(›)ÀxôÌlLT‚‡Åâ‰ÞÄH¬Î~*4†Š&Înôƒ¬v&oצ€ ïæSë\Ýçã˜Z“*/s`d†¿ £&}Í`yó·‹™h½L}ÒV2TI]Õ‚ Å ô ä¤xNPâcŠÖߎí’ÏfiV5ŘáÒáþ«Þµ¦ÿ®)ün3oÉ dðöEáãïåzŽS3¸ÀG÷ScöÑ 5ñkY^©ð3Þž(0³î@¯Öµ¨õ¡Eð¾ñ(MߨÓJ1€EMuçŸæâ":lÚ|¸Æ®Ÿ~[T>½€/Á'ëù¦Rªkl >P­êàÁ ùØTW‰£ŠÜØìÉ|—’Šï2ŠvõÎö5.É¡^ØŒ¬<ß„”¡ñ °ZË1•dŽ;(ÇÌäq2,Õ#ä¿g£`QÚ /÷ €jb8þQ+Ts<:/à‹@Vëù‘àB|c÷–Ý{ˆ" «Nr©"¿¬¡ø®pŸy-=zÌœTSQ¨¸˜ž¶—濈|>“Ö¤¾ÂäŽEg\ÂGÒ=7*´WÐ@^›üyî²ÜCÕ>kò“`9—²@‰¤¯ú¦%ùô¾º -‚ëÀ§ÜP"ÿ‰>Î}›‰ÙO躎nðle°6!ôËTÞ2¿Zæ¡ra"ÐGŸ¡%.I„jÕ6HJŠ "Wõ;×7×BIkæLú¦ X]²¤/0Út©cš$DBpjü&'¶(d }VbQ@(×T|ßu †ö±dж¶(«Œdó7t2Ÿº#£Ìh[ýM3â’íÊ–y³š>Çú"7T„†{á…ÓOÁ]. C?ÊøüÆR£ûÁ¨sĬCitÄß -˜3®Æ_ Þ©«Ç¬ÕiÚt\ûê<‹JÓ‹éÛ;¬CSÁHIÌEEy©º]ZÉ÷M³©RÖuÓð/&µ n[…œ¤Hö–]’R‰P¶2# )-A5ñ2M¢B ¸ -4 ?íÇy13}ø')*ÃO¤`Âò^À•y@Ñ.ôPŸùðž k*hiìÓ¿ßÔ7­'UPmI@­ñìR´ýð±d7ZΊÞb¹‡×ðdIhÕ4£"*¾&ç4#× a(ù£@`tÒù¦ú7}äÉ^…@«ö´ž/ªôÖ~™î ¥Zñ$¥[ª±T_ãVåtÖ·ãËn³™h7,¬œÅ›wK4]tŸÚžþ/êYÄPÃþA0¹õ‡``,ólÁ8[ôf©f.“ѯÎñpÝ ÃÓnh†§-5h´è$4%Éí/‚Zi‘“Ù•ÛýÈJçGºN]ô¦âü=kÉoeFJ_îŒysÀŠÅ›FÉ¢}8ÐdK€»Z°€˜¾°¬¶ä„lÀƒº>ÑðÀVèÚ™ ,T ¨ÉÐm£«£ž˜ðFÔ3!ä„]RÿOvµ¬XvÁ/¸ÿp—¶03õÎ*{%$ ‚/láÙÖȬÈ2ÈïȈ¬sêZ‹¦ûDWVeeå#bQe ·ÂˆÁÌnšÔÊD'.]òìÅèŸr¥PÜß Õ¡¢„àw/LájÅžeù(’?£ˆõÞ,Tli²é“’oÖÚƒäH®Þ6 Úz'3S²®üiAƒÀÚøîi—²F­Ô`\‘P=¥8i®~D?;%ã ‰·%!A«˜Oâô$ûë}m#!ì(&BëI2Ç•ï%¡L}*ß}âr™ôöe’;‘õ9ìyø.žzJ–ûÖH(°ÌI EþcT Ý,2ÌÒ"2æä)à8lN^QÜ ΢¥¬p•¤«¤†Û¸ÚŒuêY™$ùXÓ]\ú&æÇVe"¼BmRrñä!½IÁE×–Z¬ô¦¥†sJK÷áäó{Eܨ‡°Ôå¿ó¾ÐÄLP˜<•½½§ªØ¶\8=#à.pH¤ÜFeŸ¸¶{U žñ¤"êá“eh G´˜ðŽT6Æý/]67Âìv n@"ã#M ÒØË™EN@B~{zrV.%ë•|ž2]àU]t¦SêØVâ,Ñ:ŒF¯2R56%p{þ_iY½‘Y¤>3Q ~»xôï·t'F‘E÷`C–“M6 jUÞABÌ =-êÆI¥“©È¯»ÍÈŽø;i[%žH& GûW½˜ÚŠŒšÅ¹Rpú8âá[o^ú$#AÙ™”Œ´K[jã8)_Üçò&¿ÓŠðÖYLÎ÷…òõžqg‡ÌÅ@…ÔaÚqóo hoŒ-!çÒ;úd%÷ç~¡  iསy?°c—ön¶9^NB‡ç¿i>*ûí,úë|¹MsZÚ 7IÆæÓ|¾„¬IEÜaЬ¿€ûqHxí²Ÿø:éNƒË—*—·;™â>wºÅ…ˆÜ9Q»òú«ÇŽì™ûŒýY¯ô”Öß>ÞùMÎûôë/Ï?>ÒóýŸþôéÛÏßýôüƒ¾>þøé›Ïß}úß IÏ÷ýå§Ÿÿ»‘ò|ï–_~þå‡ÿúáã¿øüO zÀ4=?|÷Ïßýþùáï/þäküüå‘0Pš:~W„¿Hä—Ùÿqÿ|øÈÄk^Ô6ÄnYø–1ó’f`C™ò¹ ûw­{Æ÷¥µøSa\S,:571ù–€$íˆâË|È.Ö}6Œvà ¬5KÚ¥8›¦Qu6A¨GÙí ½Ö8}«ÀɦÏðŸâÁ§/宦a{mq@þ°ØçírqsoÜÅhïÃä~õ:دÃã]ù}ßÀHA)"€š'Äj.DrSuH.ä(§$†ßI -¿s«Ç‹H»SƒøHmª.yæÀ¬ÚdôÔì^p¬ÁÍ5ŸÕ‰ªúÖu@}„zŒjRØRZZãÃŒ‰ÐåJÎc õN(9ïz{…šÒ%YÑ6ÉÓÒ·5¿õÍcptË‹Kšîñ¨úÌs›¾8㨻¯*ˆ -Ê\ ¶íà~3h=j£è ’òÐ79In÷7M*èÜë’n±‡÷D¶”©sÛu¡²÷iNŒ¼9ù¡oT þÂ¥ °Zd”jŠ;580²—Nd– ú¨Úä¬SÞ°ú½M®©“fšìÏ$4J/!êoùÒuDZ -7¹îH¡ùrA¹­‰Hó»Å{4K6ájòÈ0Ù°X+EARø†»ëI˜HŒ¥H¥R´î+@ç\æÉ¨8Å´gC^c -hqh!íBÌ20½9¿úaæÔtûV?;¿œ]ýìrøW%2ïà÷\ëå–€ÌÊ '¼ã¾…_$›fp¯Oÿ.ñjÎU_€x5¸¹fr_p‘ýŒæ7`%ÙKzGãNÐÛ²ó­Ðém87R‰ƒjY9ŠÏóÔŠ5ŠÏë¾À»]k–²ŒÒ.aÖÖ¡™ÏrP-% Ž4òÞ˜EšÃŽÂÏJý»5€4ÛaPûsjãè0 MÝC=Àÿ÷)0)õ©heY¼ôîu'àýP6d]FeE… $`Y+\ôЦçhú… ÀHêÍN…²œ­º‹.êºxz‚tŸÑñ+µ‘´gw£¸%Ó®͸աû¡ý -h,Ʀ—§‘Yך™Q+<©®˜PUÞò2ø€€Mcуíúƒƒ3ó‚ ’Rf³ŒêÚ³t(Ú•™á½4ñˆ­˜¾N_i“ËÜSBjŤwçÒ»e=Fm<Pª:»4‚ìŽYzé Ô$¥zA˜wüÛ+²{ò8Þäbˆ÷»aÖ$6ý¶My¡×'-‹†b¢¤b´ãu ¢‰ˆ‰ãÔ9žôÚ%þú¬v>Æ®€%Ò>[\°—MìÚ{£:H'ä@¯‘CÚÏÅ. -&­dHª=Ž.< -c âbÆF„Úå*Ѳî~×£ u?À^ÕP׸zÙ¥Çv³;6DÙ\™Dœ7«:P³NÆÕâJk7IÎJÃ¥—Í#K¸z°ƒ¯’gF’“E -×jêú/b>o9VW3FÛ¬UJ6¦+ÿnYSÌ`üüêñèíñý#?¿ö"4ÑèÚúüÑÇ1;ggú¦) ök•äâ°kšÓ,¥¢±¦ )(Inÿ#» -’%¸UØ rãu¶¹Eªþ.÷ߺg&ñªÆzÆmc,$CP½ -§â€u¨ZÈY§@%âN[jèù:M÷û•ùR‰-z@.ÿ¤-ê%ý]ÜÙøØOÞ ¸ ÐãŸáPXfØ®!67µ%¢-.±‘RäãAÆ‘MÚ }OÖ¾ d¶VYr¿r_À~”ï§ûÑ–¯;,_ç_WÜÛÛùSÝ'ô~•JŸÉÏW1•[OÁý9‰ë_5i0úÔìwUÿ]žºØoå:z×Üþ?íC«Õ|éJ -}^ÀŽQTÕ¤LCAG±NUSÎœË ÷ÖwµŠÂîº.GŒûð…²"n KÌÙ”ÊÃVJ‚Šöñ¡"3sb˜U»;Í—#1VÏDÌA©$g¦èý<•¯_àèeÐ ièu‡º -èÆÖ;áö‡Òq¢3ÕV’ I¨æº16$luLÈÀ}ß:Lj‰‚>ÙÕglÕ×{¼€‘F#ЕmßÖÌY‰e=ãÀÿ};CVõl@Mw Á²¬÷\Ã=*¢W=sÍ­`Èôµ¬s8€Ve=Fûoë&‚˜“Æý×Ëë9Õ7žö½­Ô¦¦(ç7òøöœºe¥®Y¥,˜Š¶–2<âiS€åHF¡fhÝ‚áF#,`¶;J´EDLaÔxñ8†G°ˆ“‚©ôü2'­€òQÕmŒŸ‘åøòÞ>›_-ÃX2¹^ÎX[ ZÊK5-Çæ†åìô}娠 -û™#‚íŽR+ ¡ îm‚ŽF|>n-±¹™îþ5v¤~kð3[Œû¢ÁLÎæ¡g¬ÆDz­AjÐV°ˆ·ýŒ‹_BdÞbÅòë­ k&*´¿ÂTß&œb0ÖTùÁ€}¤—pÆðqë¡Åê,È*´,¥Fîµò´1¥d+éWX€&(ÄI(}âî„:Õ¥>R9ÇDŸÓÀvUñ‘óZ(Pò™³Ø7?ã‰y ù²ïMýoÐ:çgŽ=üÛ­¸ÇÉ {áÕ5ô°øØ†è¹œ“>'²}‘¨i첦šh`‘µKTº,†Ã*ùîŽîˆ½ª=€±U·Z}•ɦµ%š|k±ÞÚ$ðÐÔ|Cgo¬«ø³ôVFˆêG -²œ94 -ö^õ–ÝY¢ð -Š‹…KŒÎ \ A»{{gsÆf¼T™šÇW@,|z›k«ò`MWA­8òfš®³u°JyIÄy’ÏîŠ'±Ì™¾Y@|èœ@±Þ!“Òjíé”9éœU@V±ƒ ±XB‡.("yhî%ÈC설 …# uy™–y€~)zŠj¥úˆÏ ¢º)ÚÆ´›ír~¾}½P\S8V1EòB7Ö¼l/ 2m^^ÒA.{®)ma†'¯ö®„Ö PHÚàˆƒˆœjðpwÍ^b‹ögùš¤sÎèZž ñ“ð)8ó5ÐÝT©ÊWs[õ@ÉÊO)À7ºhF@Ì‹PÎËŽ¯k~åq½«ˆ÷; 1åKFͯËw´Å? -ºÞïº1Cˆ-§!`ÕFÔÊ\HR*›AêëH$Ôü噥ºJ¦,§—`CUt|6WŸ^‰ ’_2$¶r•Œ ÃLé5pY“LPJÜŸ9¹™„µá=м6yøñw±—ä™ä^cß8¹æÆê !æãOn:›M”èÜ«¥+ÛZÌPÅ?­ñï?²ƒ.1­µÍyß@ý%ƒ^ÈëUÍÂlŸsy³“åTÂÔ½X‰+ÊËö¹èž²§€ÖUpƒ™B©SW§E[ëÒvÒ‡Þ|îõuˆ·ìÄ\ãuH®ëŽ{}tæHš?ÿø?è¯?þ7 Z-£eý?íé ÝgÎTð¾ó ª9±$àmj ¶.`VÙÓ -¨>`”DDZF•ïò]¶„!ÙA¡Ó;™¡>ïÅÚò,pÈäxíÇZX@ óoKlµZÙ,Ši.ÿW®ƒ!2f¢?r޵õk—SËãodx¿Ô˜Gg=¤Ïl³ ñV‡=^œrb¦ ˆj[`ÂëS -­;îî -)WSÀ"}ú¼ö;§ºì³ŠLSIã^ª®ØxrEèõ9lÓо‰º~lÅÚrLn ÂyìÀ³ƒm$?W="çZ½ b:‘GÐÕÅ3¹­ü™³QǵÊEfPÄ=V¶ë_øûÕæº ÷ü7H™»Aþ|Øw{'r“˸¡%³ŸËÎÇ¢:ÄUº„ÙÓÆ~q¢¢w-¿¼ƒö­ è3g%‚¸ˆ³—î€;+hog—vÍm—‰™1b4ìgJ‘5ç {—޹̮wÛ†£Îcº\Ä—mVC?O4ðDýh:øZïõç;š®,¥>SáœÌv¯e5ü{=Âõ”êaÝÝöE $xaH1wDR€›ûËë:¹A(9L ÅÛÚVÈ/)#+ `‹™à s¥âTÝBþ„\—0®k™ÜmÛc~æôm/Ð8.,”?3üêã.°ß¸Í€*m£—p$r°HH¡¹üö¹1AEšl+óHz†!»÷^~Å{(8ß)}ü/zp@|æ…`°îXËú„;µááNrg%ô Ý€;UAPH)„ÎÔv0í_Ꜹ•NL1 Ú¿kœàûñWUž€&§Ä>—)¸µÍ1†Èh¼Voéà݉bJ&+þª_õeH:æ@Û¿¥ÞäÀ:ðIc{{‚lª#'“È| °.ƒäº=»¯T„·— 2HGŸö+2€•Òcr7Õf7Kœsjû¼žñ…6 b½@ð<_”\¨žÎÃt–ê.xœ1j"Éog€ç±VKÀæߦ+§<à—'JU¦!Žc/ µS²@;ÒŒg€þÐãwNuB`>j¾}°.] gÌÎf;µ»ÄU'Ê®€rV¤nãf†cn¦?8>T°jØÓ;áMom¹X{úúrŒM°8òwŽlìÌéâJË\ç>3ŒßÙh®ù¬KÀLþ%½jvô¸àì;|ÇD,²»ùgŸ  ÈÁ¢« ­ Y°Àyûtu5gæ[l»¬%9d³»ªº=[¤kÚ …Ü:§Ï|×fÅD8§Klc­Êõá2$ñÿV2™‚®Â;¬ ã\5íD_\3•j+nö)ìS•‡Ý¦C6yé¥Öév¸‰“!{[7Q'Iínΰ<ýR¥“¬2Ïœô«ŒÌ8è%€Õ3M+ûвJÞqÈa/ó]™ìnA{&ÆLjYòN#}l͵UæÅÆg.Ü–K@¶óßùUäÒ,ø«ô–-‰eyËŒ£xÝóEœoy¶•Q+¹HgO:ZôË:„‹„¶Ìɦä¸`íqÕ|Âjè€ †(š®Y•P1ö Ö”*ŃýW’ö<ŽÖG'÷OWöháVr?Ky1‹(#ÛŒe•sÆâ—ÜEr—ŽÖ6·ulK¥­P4·[áí(\dý\”+üiÌ.ªè,Ïn×U¬ç’À)ùáÂtá´(Åöš^4ÁŠÓ ùÓEnLK£3[É0Œ•Ý•% Ë&pâuÝ•½å”šýV·BK2k36~tj³Ì~û¢«}õe£ûýÃOõöÚZ¨°ºÅrÊ|ºƒ¼% ]è5¢*Yêc»ñ¬Š @'7.¢k@š…v'@–œAÏ竽å.’l¥/Õ¶‰Gù¥µ‰”¨9EÇÐS,: mV·ãV[燌—î»÷ñ: eË'3tÀU/â˜zÔ—œ3”vÙq ãG^…¾Ö:/縟}þ@ïýåB@ }@ Ÿî í×£B™Ö#€¬¹N-§´Y×ÐKpEúìQ[„IQ±À¸xCz7§ñšç..íú¡1sR3YËÑù]QM‰9 ýhcN:ÏV&_qÛÎÊâ˜Ûzƒ64²Ã=ÔJb¡Nií€ýiwSJÒ -÷'[Åwâá2ºû(—øëlãöÅáá^¼yxùíwµþøøûçÛ×åöòŸ¿>>¾ùôá—Û?8z÷ôøÝ§¿ûùðò‡Ï¿üú¿Èí%V~ûéóÇwÿùøî·Ÿ~vô›_Zno?<ôÛßþ~{ûo¾öŸ='sæõßêYæ¿Ä­fó?üÅÜÿûçÏÛwÚümñþÍ“Í,òªã}ì„¢C‚Õt º¦…÷TçZo¿Ø]Ò†Ásh,aé Œ}L¿ -'Ј¥öÔºl•DÊÉñVã>A:D@Îh\+ž¾ÿÁܨy9€9ù€_ØÝ »Á–ÜÄÜWÌjç‡ ~o¤˜ÆY©ƒüÏÃ$®Ûyš›õMn…”qš^C ôyÆÍúæZC“Ù¢)dð m.,ú~  ¼Ç›Õ^úeŽùUQ ¢bA™fÎR'¡p¶AM[ ÆRçcá°“?ýÝ4Gš7ƒX;€Ÿt@£K ¹F!5 jškÂ_:P&&ÞvUîÒ‚BòÀDåé±`+c×äâƒÒ =æxÀ¡+Œ$‡Šò0czµÇœÊÃPz‘ˆ…wãÉE=7ŽfÇ+üò¼©µ'@º¤ -Ÿ°(£àþJ{·“›„®15§RÐÿáþö'¹ÿÅÿõ‹[g§¶' £=ð*J§ÐÉÁ®ʖl'»áP Õb ÎØ)5Ø‚rV ´Ð¼VñÕènÆÑ·£ë -2›V/zÎѶ‚ÇëtVPËöÛfh*Äëׄ¢ÒPW4[L€H;0øºŠ¿ñjí¼£; šÜõâÞ¯ÝÎ=-V¿|&{7“yO;s³zžÖkoyÞÈ‹ÐÂ0ä­=¿2ý¬08v*‘·ÊÐ!¼H^‡¢Œ˜Ü¤zCry$¯Üa—͇ô2Ì×÷ S’ÐÙ¾˜èEßÓ<ÔF¨BX<§8# -ëÈ9Ž/b¶gl-‹ J;µ €ÍN1“5 õ -ÍP'ŠN òÜ:¿ën¨¦¿ƒt ¨ -²Ûk{ŠP< ¬‹¦*8@5fXCS1º@°42@ô€±FÐÎY‰§SnÐsLl"wSJ™9†:4@ÿñeÕ”&my8ÈÖ¡y¦]ÜiËE4”kɰ”ÉE‘«:F®Ávõ‘+µäœÕõA„;kÈ/ɬ,™r á5ò4ä -BãÃíŸ"˜ -: « ôUívH’eÒ¨Aô8eý€Ògfíl±&lDd6nFþ÷s$¥WÊ ÜêC/*(P—í‡âÔ€zåO=Î#£¹Q˜tþŸqò¹V•´¾XðáV¡^%6ñSŽ’Ï*цYøŸš âˆÏ”{xBÎU9!¶?„Ô¦Ótu…‚Ò°‰÷M'éÅwåžýlmÎ yúù{× ½ú•Iy¡`¤O(Ħiø16‘KD™G®ß±4™ÜÏ.|‘‘Ji1¯ª¢´#§ò8OÔ”+j“ßUr—à‰Ðu/ΫÆ5äCŸÉ$T½z·z”IõiÒ³s2Ë›v÷UX»š0^l° ³œṟ¯‚ª÷º«/¿5¢Ž¢þfDUѸIéÜ$ -4":çägJkd;¨?Ýd=Z xèšÏPÇ"dÞËЋ+<3Ì–E%Ä¢fÒ—àsQ#øn3±¬­»ñNÆÂj¥ÅŒ‡ò«–›Œ¶s¼´ÅESâÛ^µòpÁÕƒáK7V×ê²Í,Šó¬.Tbcvœ&%2Øÿ(‡_œF( .‚Ù+ë–RQ™Ý²Ð{ãUN©… —ÛxÆ>U¨íÅW¥FõA麇Mmg»á×#ë¸ôfÚßµ7£4ü \ÔÆ¬Ü¥RÜ·mStd<3RHgç.žêq'µ”î5fÞ©‘æ+›¶HD]i#4Ž7g%KJ´wž¶x ÍDUŽ<žH”©šf$ZÍXÔò0=㹤3Ù·´X³à˜c“ÙD¡QËŽ(6猜?ª/X”ºç5\£«=Ëd®ƒnÊ‹Š"é ÈRZ2ìæÀ°°Nþ´hJ¶É\9ÍÍ‚¨;ˆÛô|ë̘hÒbÑØZ0цù+4™¡ènKç˜ù½\ÑFÖITÛ¢ --ˆÆëÎò»@Ö:çpÄв?ƒ2ouÛÐ8 ˜àvžt3Åq›“MŽoÆ9b²9éˆÛÉ[Gl7µÑßä÷œˆ_}ÉÍß;i¿xó‡º1û+ÝØë?ב¹s¯~ÅåÑV÷àO'â¿—h‹ÂD-x|dkFp ZôˆW<³#Ý4:«Ö­aì=)»1OÙ]éØ§ËæmùïNSo`òý™lÑ×,„’m‹‹¿«3E±C1±Æ¶-ûG9úË m¸–«Q¨]{b,l><9…[jPFeÆ0l“粋bŒÛHI4ù?éÕ²bÙmE¿ þ¡†‰ ´ž[R<2CC‰IOwÜmp:àü}ÖC:çVÏ’ Šbï+Iû±ÖÚ`ªÕÍCDè"=Œòh‘£l‘^B?‡Ô@?ÑîìW2CöX[g¦Š_è‰-“#雽‡¤Ýä,D»ÕÃOäFzê0WææmˆÇlÞ1Ž8MtÝ*SøÞ, ‰«¤[At²=òå[Ó/Z—§,¢­H2ÅDZ}ÄjœSC/;·êº5r«wÎâwÏ~ôÜS_Xi&Õ¡^ÑuKo¥µÙNì¦Ò¯ ætE¡< %lpdG€qT.ΆàHç¹Ö÷ÚÊ'Ÿ7U¤ËZ¦â˜ƒíB³ÕÛiÎéBä©GôÊ -Ü ³h—`†W;Rn£õòäŠ- a÷I)|ìݼ·Ä†§IÔ€H)–aKæR`“b “QmsǶv+é ²Ù3)lè7²Ü’¦,rcâ4£·‡“D­bi}–£·Øš¡¯ì=±Lʈðc€r¯&¾ê{õù½fÁý•'m8¹o³ñ溮éñA²îGoL»£rˆãDîû§ Opo,uð¿ÂVÊø–6´ ÷Û§GOÆóÉ{(0Uš`dqN4nv– ÁŽ~OÄH¶ã&AFv«s3z¤¬f)sêZèäJµ`;Bí› t¶H‚«iª¤É>†©R¦=Ù[`êeÜ™ˆV—CµSWlW¤$VsòLå@&y¾‚Úbµ mËŠvž[eSt†”m~›6ñ˜öÛÕýFE‘ô͚ʰÂèºvÕ;¡ŽLà–~ð€$mðÌЩy5‰’ -L&Ò¬U‡æj‘Ë‹/’s»T Mþ¿²ÅŸKÝ‘èŽM¶¨9¡Ëu8”yxC›m'Ç‘r¹Læ]æ7Ð,N tK W!Ÿ¹ÐÒ•óõO8×òßògÕálMѹ¡¯q¢™8¬°88¨ßVrÇÆÆ\‹¿¹Æ0Ò…V„Ôòžuh}ö¬“—¾ úÒp3 *°Sй‡X(­u"‡z@OyM¦ÝsX7™õÈõ …KG:ÕXgÊÚqÙÓ¤ù‡cuï(Õ3Å´TÇk -é>Sœ³çØ«¤õÊæLqO:ô,OSˆ¯Â"÷ã ´uvL'KÇ[²·h¯6®É¶Ôv,†€áAe-•‡˜ÁsÉc¶ÙêC-Ty™âà3v°þª[_¨¡ŠDè‹ÔÉŠÝIåÝ +ºTZ¥'F(P -ƒ³e‘‰©e°_άÅZ_j©’B'ˆÙbºSr+²9øhL’Ã3kÎ× ƒ6ÆäöiëÛ™²?YR -²r‘ȹcë ß -%#lIZP{¬zðÊ`ànpbòò¸á‹,7¸©ÄÀ¯€?g¾áo)ëFÏʶíðZ¡¸Bœ“Ww'Ÿ!Øu­Vx­¡/©—ñV$Òl|E¤µüü§›ev{R U ª.T¨Ñ÷lp”ò\V@§*îž«61 zL3ð%÷Fî»\úD¢‡ÝÂý¸z’©Ùý¦œ®H@µ -QñEýI-ÁÈÏ¥–ïõ(YÀV$ ç¬Y¦%„Zù¬)éÐ\¦j±.ÆZ؈¿ºx«LäMÕš„ -PiúBLèPú®˜iØhRiÈÂlzF#—\ÝLs—Ž6%—[+ÞP×¼«{ÛbFÌ+8´é#©¨p¢=FÑýN}«R¯Ú0w0æ í´V]+_Ù°[tÑ»¢‚´r¤±êSpX ‡¨æU ~ËrÛ‘EZ)´£§Ú\SM;$ÄYs#¿²OUÞ×íù©ësÆ]øç§5Î-OëœwÜ͵zºqp÷¹9©í‹Pö²îëø N2nˆ€°éV ¦oŽdú¦¶ Bß¦pz2 {tÀEŠvö»áa´á1˜pˆLÚ!³¬È¶¹#›/ƒ@¦Ðö®°M¦† À¼a°Âè‘d@Òð•ºR)¡ÝŒ^Š¿áŽÁ\°ªC[B-—0â)+펙KÙÌ| 7ªìÒ„3©øjyïÍëQXjAkb¥–ƒµäCª;gr¯è„ ïXuO]µB©,†ôSµ?ºôvïf¸enž ,ÜCÌD‰a!ž‡4‰„ë%Ìw‹>Hw4kÉå^Ñ-œØ@ -½3£ -(’y–"aŠN*¬z Yê=©†¾l•<óÒÆžyÄ×JÖ¬žÂº -@j¾›cwðÎ:¸»d [’õ…„Ê’ØuŸÒ’§W2$ì)ªÐðtÌÅ/h}—p•¢íQTôÆO€:çQm¨-{G,íÀ@'9S¸‚ö‰I‚!ìYd¤@\¨Ç¡b÷k\$^~óãÓ›ï~Èùo/¿}yþ#àóÍŸ}yùñó‡_žÿ`ëý§—>xù vw¼ùë—_~ý÷ñÀæÎï>ùøþçïÿùñó?àýö [Óó»Oñü»ß?¿ûûÓ7ÿ‚ç/O˜(û'Y»pÀD“ôgf”Íî¿wïÕÈ@•çž\ÓŸ˜Z/£„0ÂLÔó…Ûº¸H %IϘÎS Oh{Ú½m -;³öTÏDo=µtCß„®¢X»N­&?'×je—Ͼ5ì1§€Zï:¶¥gê·ç-=ÿá½ZVì:®èÜèab"«Þgd: 2HL4R+,œ¿ÏZk×ëtkâ2hš½î©ªýÞkK¡uÉŠ&¦+m£qì·z3Ž%©sסVêci’Ö>žòÜõ&2l¿ŸˆÔÑ¢ÕåZ[´WÑåß8H6ŠÒïPmøjh6åw/‚zÿ -26™é¦¡ß§í¦­ñD¸lðÇm_AÖ©‘¡eÇÝ9îÞ™0O½DÖ)#!dÌ-èËÞPtŸHä=èöBîIÆXïûÔKdú ò¥‚ÞwÎ|Ü=‘}Ó<õ9îþ ÁÿŸB¶õ!À†µÛbìu·ÎÍŠ¹ÒݘäLÃh¬£¶<.½Q³Þ'䢄m6þ ‡Ò¤…’Š?`ÖQŽXÝÔ—=ÜÐUÅϹ ¬DŒH5`·†CvÔØØ&Ï™˜t%v§JÙ&1.ì­Q=ΠlÖŒõm <ì J5œt"s\ £ ¢LeG^A« - ¯‹á“úaRÁî`ä±ã$äXLjpCF/~ª- ž’'KG)Ë hƒQ¶dí¶X^óBTZƒÖRý¾Ó“&ÔóUÏ5¨m½0ÂÈâÒ Ýú´Œ äa:;¸\ã‡áÛyÞöÈå^tņ“Ëýì’è¸;>h£xÐ= °{‘îH’Òì h«$jòCð˜ Ê2;»àNËC’bøHä´¿À¶}o²À¾µLä°•Üò4c#fè¾Á1ßžz¼--¦/§–Û×—h(BØŠ`F-rÔœkµ©€bEkѺ‡SŒ+Š$jLƒfËZ©ÃÎÁè¬UmYbkÌ<¶dmYÞ7+êO¹zåzrA'Àó”«ÚètK•Z–1ë"Î ‘û%¥eµX˜¾O^@hIŸ§lŽJ®†Ü45³ƒ숦ˆ×`'墛°Á^ä4,˜@ßÅ…è¡’[–E Ë©"Cž¬±‹UOz _åÀCdsêK4'©§ìÀß”ph˜2ÚÕ.#ÔQuÂq& #NÝÈAãžÉ ò0†ZjèªçÀ‘˜Ñ޳‰>ŸyƵjž¹&Ü‘í„3»²'ª¹ÆŒÕm»X*˜ëJQ¾ýéãÛ~üü ¼á¨{xóþV~÷û‡7¿}ó/ Âß_npX§Gð? ø‡ÉÙ Ç5 þ°ÿÞ¼Uûuðè+—¶¹ûÓ‚Õyåµ1ŠjˆÚ‡IÙÜ2Z Òg( -¢ éè™dþõÈ÷WK£16ø/ƒM)³¡3î@»Ë¾*- å¾Š6<-WCÕ'ÝVKN¼’DҒѬ]ii$«!٘伂Óq䫽BÕÝH&Ó¤€Ø°-,]+Û£/ÛôÛÈ(³˜ÃÕe+qù¤qÑr~û ™•!Ó³(ˆ¨-vº¾‘D;›ú -Ï4º*7ßý ØŠårß¿UXŽw"©‘?TáˆIíP–]]å4¡Âp8ŒF,+Úëv ÷3/®¡EîU’þ_òŠÐ@V ç+Èó™S“•*SוLÓžoÓ䙑Ó'+e§ÛfZ?Þ–kWêOç¯Úx^?,{b\?T.‚y›RÑS$ºŒ}„€A[AL]QH5˜©‡¼¾YY$ýøäŠMß^]Ž](¥1}¢Eªäló¶D× €9Ìæõú^mÇŒChjÃS×l|¦4ŽœXÁ›8uŒuÏj¡÷K‘[Â*i^’¼î5u£•Ù²ˆ»b™ë”YÈpœšR©¼ÃØ•u)8>ìk ú&9¾¯ÀebÔžQš€ê í»ß$öÎ|ÜÓ\——`\,‡2° µw¨±†r1)Úι¬tåv -i¡eýò[°­aû6Ø -°½?#BQœ·¬8Ï—Ž\º¬t™º®„šöI7m^‰9œ²2wúmf· -Ì|»*`zÕÈó:bqÚ1#ª¯ÛÔÁKÏæÂDòU¦¢‘4¥½OMÎðZf”Œ¾9ÝB欞°ÖP®9vc·^·šâÝHX•SoêjoU -C…àÙ€²m£¬ñmC Ð53ùüF‡Ï[<¸àzG^ÎÞÔ5mî„Rb¹,Ä‹IJ¸šmÉÝ®ÁÅäFÛyLDwmÕ̳||sß–’N\¡„…“AEfX=wêA [ð`Ws¬A{+j‡fßpX"•êÁ kKuC÷Í^Ö1îD=íÊãÒä­sš[TµÙCÔ¤V±Ûê¶i‡®xž‘_…~++aøXáÁÁo]¢¿0Ò\U]uÒî°!]Ì @ÐŽ0"¹¸±V”Æ5=G}c1÷ôê3^‡ B«ˆQ< <¡·E>¨ûn… ~à²òb@¸Ç¡±°ë­c›Y ÇÅ ÇßÝ64T¼_¡DÞ •áœÞ ‹âp†µz@exK<ʹØw.u Œ}àøæ.>†®pÊ…@–r†˜ïñˆ§Z=£p# - Âȸç®å'¨¾mßœP²ÔÃ7°_]|Nêãv©v9Ó0v[¸8çyŠÞ¿}ÐèSç†ÿšS3”Î Ÿ4 Á9Ý»í­ú"Hæd3°QIÜ>ym1Ù› «€º™ • ݨZw¾B$êL<Ÿ£dE–@‹ö¯©ÙÍ1‡l ¢'Fž¸B‡a¦&®0"äSØ:“÷LÊu¬ ½Úq/d±îãí·ý¡€VY6Úƒ¶'ê·w…z.ùð)¬\§7.õ@šX+tà¯#¸¼¶íø«mç¤ñÀ¸÷11þÃ{#‰°¯ä70ØõµùJþßF²esi’âÊÕ,l#K=8š¥ç²x¿¨³xNåé°šadFdBé°ÃŠk%…X<}~mÇÿöÍÃ`g]GÀä 2æ”úbº™ï~A‘6ôÈX€ vÖBŠ9da¬ÒnŠö0”#€X€J(<‡\ÈaXÏ µ Ž©×G‰5Ù&io.©ùp&("‰ñt4MU·æpÑↂ’¥y-ƒ¹ìì‹Þu°¯ÍéoÙ‚ç€0œ•,yn@F]yØ·$_Ú•ŒŒÑôJFÌŽºÓ ¨„úÝ)ß³ëå¢p×ÈSpϬz<@eÒvœÀ qŠ_›·ô9‚ó€Ð•µÄ¥ò°;£·ë’íŒÛ“(±ÒbÍJÆŽû“M~ŸQŸWºôô© Rç3á6õÏên(¨C/^Ë&Z­í8=F `ŽŒ“ˆHø ²N3øë‚á\W²hƒ~>­õ‚Ħ>€¢Ô\H̼yÈÖ¨Â\]‚Ͳ0î]"až•“ÚîϨm¬Häy¹Jˆœ¯˜xÁƒžäì˶ªëi¬³9xÑ"çëôèÆVûU„ÜEXP>Ö®eoõ -Ì—+ïÍAòVô:à!­}… ˆ[~~%¶Ð ö‘œÕSµÿŠÙ0¢ImSvc¶m+º O/у4re 4茖•(¾Ó+:wY\:8†§4I;¬dFúãÔ1¥¯5 -Þ^­8â©à0|38wn «ÊkÑRJŸ2×]rÇ]4DÉÄÞg„"®8-ÊD­@B0Â;@ p­3´Î×/¢Õ^A ž>¿äŠ9,Ì!hqŒ¾ØÃ;LËÈppºJ±B'1²$øN×â–¯e˜Œm@YáeEmÕ‘„~vZJTDV’{éYæ7<Љ%Ôùƒ¶Z»Æb æÑ´ƒÀ¤œæ|·ˆQç½ßÿàôyGÁyZñg§8bSIÞž5þ3[…þY›Ìo7ªBfH%'k”¼:ßÀ†ôJ>!à-ò£­$0KúzW -ÔÉ„}|)§²~¤Úó6ª±Ø³ÈÔ½F§d`¸Š<›˜8hÆÉ2òã¹§Z·Üß9%CIm(8»‚Ø®U¶,~â -™é½7}jíë|¿Ï" endstream endobj 207 0 obj <>stream -H‰¤—Ë®e7†Ÿà¼Ã’v»\v]`!E:ˆèi«ûµDw¤ÐHáíù«Êk/¯“L€AÔg±½\·¿ÊD7nwë·ßÙ¼ïýxÝÞ?=ú½™ÛíyCvwöÛ°{$0jtoÜ,¶Nq݉½6Mg‹5]L -°S|rž›üNc#Ï¿BþþD·oãxisæ5»Ê¸}º iê±{Cøv^TºŽZwíõÛº¸’Àk÷FMc*DÚØèœ “kmrj’ˆ;q¬q›uÊ ÒïM´™mxìé0Ír8 wÏß"?¹áŽñ[;@nÁõk‰‹ç±>$®ï†GÏŸc(dž3h&ƒ/ÌÝx7œ1Š؄ ©¦9@Ö5QïˆOÌ(ÀV+xê¨M“ÛpîÒsªÔ&ëéË0mÄ'õ[É(PÝNûÌ=óNÕ@`±ÔíÔá\€ÿãrS7Ò='rš¯+Ñ夑ay‹€„¾ÅHîÌn—8Ê]¦÷-ÖrwÕ#’Láƒá+cffŒÞ…úÊ©&kœÓžÈº¸žÝÓ¹g^²Þe¥.’ `PZ¹-šÀIWþ‹Õ¦©ÜÏ1øq%wÕ•xÔ;բE-îÕ -`Þ/²µT ‹¿§íª°TŽÚs Ô—ç_JNhÑc”&ü÷iCPE•[q©*¨¢–U”ÊÇs¤ÃÄÒÇtgšëÚ\¦UþhëëðBDJ¸ê©i)¨Âw¼ê’9nRiS2)±ŠÒ¤seɘ™À B¢#µFÖ)߯ô¤ZÁ„?2…Õe$ÂnÊÊâ f‡öœE¸@nÊ k ²¾T§@DÆå;Pâ¹Ýe 6ú~[F ­_,ÂñáùÓj#;/·ôÐMóU`M•J[甾¼îF]ÑÒÖ‰bIÝW—¡7¬úBÝf“ÓF}Ú²yTÒÉðþÌ£#ež™E‘Z_ÿôæ›ïˆþúòó—ÛïŸÚíÍŸ~zyùþó‡o¿­_ï>½|÷ùÃËÏøM¨å7ùòãOÿ>H¿½‰ß|þòñÝ?>¾ûçÇÏ?€þá [Ûíí‡'¹ýæ«ÛÛ¿=}ý/oñߟŸP¼>àIüËèGøAGP²ÆÐüqþ÷öÝÓ#ÂÔP8ȳÈþÇ6úHQ³Ií)rGCt’ô1–$2ŒH6tf¶(Æ"D%yŒÕI"»3wÑs¸PU’àH^‹HREÚ:¹É\jª^gÃõ2².œIŠ˜Dü«¹€ÎéU]Chm !AyYê©%]rþOo\…ŒÖÏÅàO˜³ÕѶaŸ—í¸E+ÃÂ32Š™â®AfÌI&j"ˆw[¤#”t™‹µ©±ªš@ôNâÍóØWŒ"Sm _'ë]ó‹Âh-I²3Årô 2¢;äY˜«ˆ#8…Dº¥59Ø=@F „–¢[Sã¹ñ,ÏÃés¿Â1¢ž=¦ØÓ˜¤ÉÛøûpMÍ¿91ÄéÜewr´ÆÊ–3`îsXÜ´÷=¨ 2æ5ô°B…Îô€îذ= M¯r £FŽ<„:ºö=U!±^Çž Ípj;²~Öx¨QóUsæPiÃJÖ&˜RehðªMÜ(•<{uÖáÐTr¦£È¹—wGÔϪÍÑ Wóêc9éíeÍXgw4€57^û¹y:þY·j1Ƽí+à®my˜b\¯ GøÃçÎK5,zbâ^d¨J­ŠÖyœ„4HôIÑ•…qtæÏ@”‹ÕÄÖCb3ÅãaÔ–"µf¶zW–ÍpY#’ÆŠ˜f׳Ä-d_VÛäY¾DsX}£$©iun´öa2]Ê#©1¨¯‚ê©+hV¶â bÐj«=Ëå7ŠäÐp! -£–<˜ ‡«ðË™kN¸Áp+2z[BF_Dº—Baú–"žòJiÝAÞ?Þº” -Œ¿|߈bZë8 Ÿ/¤ýÑ޳êž1ë«Ê–ï¬ü݃|÷ÝÙuNG`ÝãàV¹B…‹/gžñŒ¶À{ÐéžpJ+KÎô5å-Ç UýøX¥a¼ L®Éj5c®”¦ÛIžFÅHOɪ ²5S—hE5ßg…£È°}L¿V¢T3ÚêŸÕ±—t¼áÚ¼>zrUX°ÿ¡ °rè+ÉWæØÕë½ïЧ6=”né¢áýкT?ÌŽÖq($ôi×ÑÜQ×=ÿŠÞþƒìüÙÿ~ˆ¥xôµh)h¶îú”m‘ND)$þH’³ú\äe°|k&µÊ¼I‚›ƒx¤ÞDa´YÛ2œÁl`’I’S)ZwþŽôˆßívíÒèë`x¸¬U˜F’Œxõ] $èØWlÖcå¹ÏbÔºxLŽ}¶\óüŠ•ƒ°ìN"óŠ`>Ïpáw¾fÏ€‚Ø×°[´oÝsD24ü‰iN®Iä4öTDÁo)d´6NRûúÔJÎä‘J0n݉Xj•b)s¹Õëó0Ž{fEy•Sú¾ûrÊ,ëÐ?ÆðµOŒC9å*  -B誥,PißBæ×Jáp #ÙÇ$r”3yˆ`Ñ?t‚Ær!ç{›eÖ¡œ´:¡Êt‘ÝS´÷ZÕ˜cœÒ¦![;cžüÜÔ”×íbìÎ]ëP\0gѨPBÚšN³…i¯Ñ8t½ˆ#IÄtÛ¼P8÷Ld‰rž1}·É2eZ»~,ËL©Í›”¹Â«3ºØ¼^­Hê¤ê µ¦s‘tVÒù fÞÛBÖ¬°ˆ8²ã¶ÙŽ®œ>-)ò0"ËJ·4ÙF–9,—4óÉ®ª½2Ë•¬˜vRJkÉ‹%{Í!’»Lýš…%`6…f…Òèƒ:§‘Pyß>Û¼–\…KaJk)±¸â•N¢•å*q0ÓÓìØíØ+Fµ œ†2ÌàÓv„ä8³kM mºö\ߣb°&‡ß-Mׯƒ˜³¹­‡Îr$¬Žè—#!­¿ é93y–n›…OQÜSÇGƒÐð#“Á¸‰,1-dšJï³3i,"W6˜MÔí Wm!¶v–#5 “qŸÁˆ;;RÍo&zaë €µôm“Žs¿! R?葉‚à^¬KYì³Ë™Û€²¶Èm¦Ôýj„äeK=«Ñag5º°aÅamn»XÈLíˆr¢×Í‚8|0Q+êraÊ;1ö…wò ý㸦 -P›øND©HH—¬¨˜o~5ÂSq¸Õ…D¸i—ëj¤Þ´vÈÕèxi­F‡í™%'…ÉõE•º†ÎFÏ’óÇ„%úµƒXgçbÇm]k}Àízã@à’ŒjSkšWjÐV{Öa-cºÔ@O¶qÆ¥jŠ—9Ö–$XÏ@aÏJ¿~ ©6/&5J -g¶¤UN×Ý5µf¢¹ ÙnnB¹æën„B6ïéñv¿¯z²C·ÙÚpø°Mˆ»‘PúÍïFjfp»îZq)wßjÑ€?ÿñáÙ×ßÅø¿§?>ܾ|·gßþúôôã»×ïo_ð×Ë·Oß½{ýô‡ü޲â<ûáÃû_ÿ\$Ýžáͯß}xóò—7/{óîg¡_=È«áöâõC»ýç³Û‹ÿ?|þ»ïD%Í"IþÅô p_Uþ¨Cjÿãü÷âåç#\E™”Àñ É¢clM2¬A"›Ž OñÔʶ ÏäœVé`B!ÿ„˜g%K!NA*v-FÓ+'¨¤²vPN`Á/œŸ§ÂÉš4ØÉ-“ -T¿0i>L€^1±@¢{“–÷È0Ö¸÷=^YCòs"B ©u4fÀP«$òe­–ß[YQUâ H5š'XfAâ™vâé¬ÌJ¬òð&gVTY˜êx%­£ —å·övn™PÓ‹Øê©·™-q!ø7…P«ãìÞš®gÎraA’Ì.Œ¾Þ»U˜:ªô+Qã½Í,WÆp¨Û!ia^¦êt§Òs嬌½$ウboç⣲¤U¾3 ¨Ê®ÕX#–/—ûX'Ç]!X U‹ž* -Ò„§Èrã¿&ó=³I4J´ÓÍn)m’ØíŒð½œ°¯ø§RÔ¶ëNŠ)ß.äš¼Q‰ZÐîȾžcÛ û$s?fž|þà,rþ6«]L®‘{¥ERlÝôñ!^êôïb±oÚù•ýøO= ëÉ2T~÷ýUÙvÌÜâÎ1×í¯9o›v¶Ý;Rûv.žVHþ¡ûÄ@äqýœ°`‡›QEn†;²¯ç˜9Á4›ÿš hù[-³wLî#÷ ;¢Äþ4}-­DuGM¢ŠWÙ:BÏé0-S´rµTö¹ØqÏ€Ý"¯ê†+(®Ý‹[™™/­”ª ´¹”mèƒÉܰ%E‡R¨¯”Öz$×ÌKIÏžðTQ݇|4Ì¢ b¨:ã'‹Á±PL³NÕºAš³,š&£±¶…(“¢®UŽ«”0ÌG›P @µÈ|$£\&°u"êm‚ÌÚZ­j°ªÑ¡O×MÊŠL'¦³§ò€4"V÷CøÞfâú5·Ë9™ LArZ‰ä?‰ˆ;+a¥ÀŠˆ-ÙC6¤ä*eöSj&Cìè=÷ÜÝsN–?Ó¸~^þtF -É=ú‹x‚ëÚ{dåÇ;†‚u§Ãà~±SiÛ`–Êì -ïÙe„ û¹¡ëÌ1ƆXGòoÂÁ%úÓËJg‚•“·tt߯“•ÙŽ•RòÒ飤FW!¹Swë²r^-<‡Î¸D›+jd†NÝÝRˆJZï})Π>–ÍÉÏ‚šâst˜‰.Öíq­ƒþ*FФ‹Íª[!ÚøÙII/륒µôäJ³ØxTsä>Râ¼½zVÞn{»)Pš‚æÒo‘) ý(õÉ€ÇÙ•¤>òRP¹ÚÉ’¦&v/ÌB!"ÍæÍ5V#”1UÿP” ׿Šr´Í}.,/n£¤Ÿ—hvk±H?ÓîVMóGјa ™DL­Üg17Ö´öDñÜrv¦øRÉ)y"A˳Ù{›iúèIY“ÍbÕ5[«Õák…†["qÅ•¶;\º é9—’Pÿº¨øÄ•®0grÙ-Ý´º’è¹çCøÖf»xÆ’ Üt\Y -‘¥äZ¼A'«p}uvÌ|×?óv×?„é2sÞŒÿ-L±}ºRóÕaCSs*dVÉ-äæˆCÙ2ÓNÞzßõñmåîöû&k ìëž9²½r戸n$?GàÜv™#Á"u‡ ×>¼•;˜û&ž¬9☎WšP[¬~Ë3ÒÎ ã™R·Ñ-ºÁÎ -”KrÀª˜9“ÖÍè1¯*ºîˆH`­„´ÔÃ`É–¦õ¥sÏhïQ««ê€ - šù‘•€ÒkÚŒL¬àµ!¥7ùiARåD*}ÈBµ¶NÔE!çhæ]Èn›:YOjM5>—»ÖvÂÚ’Bld,‰¨}«]…$Ú]Ž^mÛµŽ·2©YŸ[¶ªË·°ëk[ûÞ+dHú¢çÓ¿ªçE?ˆËn ‘ßR@c/¤r3H÷-p Æi¤›¶ÄЗn ÔÖvÙ%,Jd#¢–Õ²I½-e¥Þ•é’&>/þO•@'2ˆÖ_«¢È•ÉDËúT­²À%-  #µ†±Þ[,gSôº!éJ$š& ©”ÆZ<´Oõ”­’ÄWRS-4Ó9i¢æu»”øPü‹ø*Ç®ìÖ+Ð:vðpŠÛáK½‚>Ç™Bïß(HâJJZ~Öª¾ä1Têâ±”t¢ -^é‚~¥ãÁŠŒéÏCîôN`=M¦¼­6 Y4Uʦ~¯¨àJ‹Q•¯z¾|x¯!õ’¦çI±K¾Ùüiçô£GÎ}׉ý ñßÕœüMÍùãŸoÊŽ‹d‘IðˆJÐô]œ¨P} Üív7²‰*õçWf4ÂMšm›û{‘©š–Þˆ»D²æ&d5”_ê;È .ˆÒÓÉâÇæZüª'BÓXt& ‘>§!›cµÄ û?ã„ Rd¤’9/Z}Æ™9¶ js"e"Ö¬‘©š¶ ÇþÝÍï˜DAY¥l.-xciMµMÈœ«äÄÜG›†ôÖªŸ›&ÙŠMÉÜÀÔ·Y£qá“bçTÛQaœØ` &™Œ\ -d,N–5Gœ§lþâWd Òš/W™w§q‰ª/ÞnŒ©±0‘ó|j“ù8Dç©•øä‘ý IHÞrsÂØ Q“}‚Æ„"«]تTY$¸É --®ˆé˜• ‚}…¤cXºL¿iœ0oìÑ:ÕàH­´JŒ\]¹Ù½ø>í+¿Ü“ DU¬7Nž*Ûæ‘Moµs%ªÜuÑÖ+ùEÇi¬¿Z¬Ðêv4­íÑ-Š™,ßž2—”gè;¸+Æt»¬öØÃ°nÙ_Ì>‡½S[÷˜˜ÀxfæØÉ=Q¸c1§¹W˜À3ÀæqësÌÔ„²2€ì–ôrW'V¬‚'¯¹vûÜå'E:Çñ²’Ws \7Ûæ,С{Î^H~­þ}rùëKìï·üãÏ·0½zUÖQÿ{–öˆvý -Z~e2ÈÀkˆÌÍ ­V6¸¹b[ÿz­^[gžâ†‰q-hu\ËwE¦Îû(þ¦ïÁQqÑØêæP ɲ…€Hàဵ5†âR ©sÿ9xVEòû›»ƒ\©#IOË…ŠÒå¼Mý™«ÌÊ…©ì²Ð¥btÑMdsáÉEDzºü.î/^sÐïtX•Çï}IJ©ó«Šuÿ!0 ´²>Zn<Þˆ>> LgÝ̹ÐdÁYù -e­Å4°˜ôžÒ8£º!!-ó–¾KÌC6lƒ37»yfÍ\éd7Û o©>š)#ô%RÙFh]ÐàHíÑà K×QN’J “r9ÖK$¡óU½U-‹UÇÉÕ¢¸ðhƒÖÅY)ñФ5•€»Æ2ŸÐRß[Ô3¶šŸ¿þìÍ2]R$µáA7 -¿ -r÷§s­ûsuëÑVœ$eÎÊ#•º†d·#žð¤Qår+’´EF=EûiÔÙSm¡°Éõ­ýGÆÅÂðÇ_¿µ3¤ÿ²3üùͽ¡ëòŠ|”þ¿%J"„jË.“ËèL³|†X)y»€UÕãjߟçFéêi²¬HŸmËyðBŠ .}3§XÅP™Ä[ë!ÝuŸ¥¸ÄÁ0Þ•÷ýçd®Ý‘1‘„C x¼ëpƒ<¥÷¬õ'aËÀxlscÃásö)×5åþ{û‹XM-ijq=q©m<^ˆ§Hy¼[…Ù‘x²` oþ° á'˾¿ ÿʪñòfW±Tß|Nñ3wïAõó³ ù¹Ù{áW=ñÕæ‘ Yë6Û^6á²k¢÷tU¬0&Š Š%ÕĈ$ún{‘º·VG¾˜1`EvÓ¢«fL÷ï¹Í6zÓ’éålš€™ùû€Yü¤|oWÎJK¡×§"â×/Ûð€u£áÊ<‹“dÍ‹¸šåQ.¶5ƃÍ÷Û{·""ùbÆi7L›¬ø”€Øƒý±I|}Á_c¿QÙ'QóÝï«”ä×+)QÜaä\œ -Æ0$‰¬ícl‘-å.+’’÷ÛþG|¾zEL{Ç‹3Q“/±{¾ÎVÞ'&½†ß5‹h´ƒ NáIp–’Jx8„Þ9¹‰ˆeÐÏóL;SqF'ýä닊¼~[¥ôQÿA¥¾§P]Õ%eÎÈ»«vДÌàQBÔ=˜˜j s¡À@j¨ ò«XëƒK¢®jüJ¤×'R%íµÑ0ÝŒÔ'û LF¥²Œ R‘:…!˜†âJÍØk+’¹àÊJŽèûê -?½gý$ãbÎúéq¯}nW$A#c ÆË#Fºùü¾&"Í é°þÎÍë‰1ƒ@ð›eSéZ ®TW(ØŽôÔÀçï³ѥB"yí{ÖÆ$Vsã¬5ÑR¢ÔkHo`Edoc¨€V:ÍVyMƒ±²¬Ðõ«Í“‹qa›5@Üà`rÎåØßjÏá÷ÁäÕ:vÇ®²ŽÝÏ0&ù>ö×ÓðúSöUGhë¬ÑU‚ƒU•}wL*ÌMš™‰o+ÍÃ_oO¬Y}Óñ¿³^ÙÅÂÕZ–:/F•¾ÐÊ‹Žü[Sù„QmãYCÊŸ°¼¿cÚzÞqX¤ÄßóÀìÕ@ÒØ™ñªõäÍÝ•P½laKU_áê8dËÿÅ>eþL;ÿû6½E*1kønØ\K.fåâ\ͽh±Úä7}äµS…Õ˜™f›[@TkQé5ç´†S×½-ìè`-u/®Ž†dTˆ™”<´ù!¬œÄþ…á/îêá¨óÐ F›O$ËÙ?Óý2wr²ß$J¨î³ü÷ª2I«»…•ªõJl\]æl÷AŽgÛÂ,ý«“©¬~zÕ˜ÏÌŽ§qñ¬cÕMëG¨Lö nýáÎ;ëšñ«LïnRs=O)=KŽQ©¥Lи9ˆµcE ÉF©; ˜‰‰Bßèçt¢s ê7éŠ48£[˜‹ÜòEŒE¾7íF¸¿wÛåµ{êÆ½ûî¾.tçÉÁéá“§Óç'›> ?ßBÎÏÌœºœ¹ú8}¿6“kí[ÁF£ 3í}bR̓TJ¡!cqÓ¨sŽ‹°Rnýb¯ˆ©3”R>a3±+Mµ¸FÁΦZuqøfºiÖE™É§±Aߎq6©”>¢Rxðç "­µp5Zzúo‰ó€bÉy ²o³>`d Æñà½<ç˜ncdá`2Eø‹–ôƆ‘·;â(íX{E,¤Z(óÆûNõ'7ù¨¡œDºO”"vm~.Ù““ù•þòú€l{{°Âùy}À0/áöâ¾áÆP®ªžHó<ûc(ƒµð';âÌÆB;Æî“2F<©ˆGÀ»õïÙþ%¾Ê±àºqàUæ~¸ÇJu‹‰}ÿtjÛ-ÛÉ8q$©Ôä'A –ñë0Ñö÷1?Sò¹Ê7 ÿø›ùr‚Å“½îº|Šßÿ„9dÆärÛö­œïŸ¯½¯ÙÐX.èí×­|zñÁÝkýx–Þ¤r°»±¾×1cžüÞ;í¸¿ÀÑÍï3~MwÝãù WìßöãW^+.é%¾'KG«=¾&¼€*¯W˜û¬ŠðYø)Ô.mûÀηUUYçëU€DµçÑÉüÍ{þW¶ÿ W?².5ù‚ö»Ü‡H*Ô -<ñR)zز51vŸؼê š Hj¤…]/ -$QÕ˜Æ Xð˜þåmLlÀãp'1 ¥8»©ÓHÍÀö˳kóµÝûà! #y™ø[Øiã»—sÏemúsUn=Þ€d`PtÂK¸ƒî¡u™NQ,ß4ÔÒÈÉùØ+èÕ‰­5­ãÓ5v”À5j6q÷óIòP„¤ Ž. ‘ak±ò!ǤG»ÒòûÙ#­áo­9l›O¾#v{2™Š®ÖrØJ™˜Ù{Aw¸[è!½¬u:1@ÇìBÌ r.…tþ¹¯?·ßMp¥>kPo;‘z{{o²urÕ÷lô&"éêN -]®g~Þ(ÈD@4 ^wÏ9ó·PÁPü£ íÚLŽÍf$ôù¼ôí;+mU£ÓnM°UêÅaÓÄ?@"G½œ- -0ù"Ó|4.»˜ÀG0O÷OB]‚³vª?¥‘bæqf¬jT9]›eGŽã‹ŒEKI½éëçóüÁ;²H6U@²s€¬%QÂúék>´õÑ´r‚"F<ÓÝ -sú)Ç#é^C¬²|G Ï]‡L’=¯HS}‚fˆe÷6á†ÛPþ©ß9FamÕ=Ì“Ï `æ!’ô›@"ôš@B“dúäiq¾X?JÿÈ“ ­‡·îY‰ìЛ[³÷:*Nï6_÷8·ÅêFÖ€€¥«}¿ˆVöu6#ïüN® Ùµõnõ¨$RQ$4Êõí‘ÇŽV¹g³Ñ›&Þ H?evEM¶èD?ÊÒ -»vl´›·FÆci³Æ¶<ü,æVµ˜v–‰zÏb»“×\¾Û4‘ä²Ú †Î´yšjõ¤æýJÈ8µ›þÇߨÚÏOÚA¼láÆdºøÝÐÙnÖy‡MN(屡3 -‘Ð9ÓéúÐÒ{Ý#]!2ÍD‘Î0hó% Ùâ^«™œº“HtOÔŒŠ5mø'‡¤<×ãºg¿å^<­Ðû°×ñD÷ý¬û2ƒ`KÙÐÃd!§ÜaW¦$5F/±Œaž1‘¿"Ì2ȤK´gÛ¥u÷)–äZ»Û †’Q"ƒON¥Sûñœ»Î‰÷8Å=Èc¦Y' ÞORI5D \–ÛÏ‚Ú]–)Õ"òÈ_~ÛHIþ}/Z÷Ûâù<úZ¾*6ª1ÊL€¼Ær³¬dÑ g5ÿjµc½]{¹Yf·’SZn·”9hI¤¯¥|K$c ¦¯ }†¬9·¿íè%œQÈ(f(‹E(ºéi‰m„„‘ÙÀîSnœ­ùÙ‰áª&ºuí8`¨†ùqÌBv±tËõÖIÓ0o÷Ii—¦-huîQfbç\µªŒ&x¼_ÿ|e0Âçv¶%‚´Vëî–Ë;_®çÒæ×ãA­Ç“Š [O¹o3²¢Ô}ù¾Ô–±j™šgׄ±Íe÷y½ÙjbT 8¨¢Ö¯ú!ò9)ѿƊïŸHçæ‹FÍ:eäÜ2÷„Û®ñ.µNºM¬ÇÅNºrûÈjcNt&6Y‚ -^vŠ€[gï²b‘¾yó¿ÿ¼YÿN¼Y"ÉÜàŽ.º‡]Žiâ/ëXך&ȈS©…v;GÆìO õ„ÀÆ–&ìz¹„E™G.Ë`Pù¬`Ðhb´dâC$ŒÃ¦Oº,›‹Tw%µÅ®ÞÈ}™.ð[„ $wóÙÒ=Ä0ýIS¦Ò­»(U†3óôǽ¢@b³ïâ^ŸhÙNö9*›‚VeJ¾ Q ‡p…(C"¶¼Íß—3¬á­#í;L f|Þ_œÁ™å­a¨Wì>ÓíË<´ÆòUîôFÐØøÅ0¢kAåúç+ œ¿6Ö2röûØÈ^P®â3i$­ÚŠ¿G]öquúë¥> *6;›‹8ÉÅÅïõí1Òâ½VõSœèì¨GŒw@G:=õ)6Ï,D‡ÄÃéu -:NAwÔ©ÛíÎJŸêËs0(qb‚ï´_4ôSÙg;sI…(i0>Êb?äEJZ³‡ý6˜:ɵ(¾íÚ¼övœà ÚÉÚ)‡†˜ëÄX'0QžãMž.7£­œª2e5IÄò…Û¬ÞðnÜzó:f3QígcD¤íóËø1ÂfÜz<(‘W^Û®OÌUŸôW¨&c¿éî:xïÕ¸õ½L‘RØÏ{UXP¬>åçÄ×»dØOyÙò "‚¾Í!/)dfÀ¹ˆÈYoÝñ€ºfsÍAAFvœê§þÞ¾ùiºãÍíä~AzįËθ¯*·OÁLM$®?W>GRÌøÈîëàÌz!b?"RA"ý˜–£µ÷¹#I&önçÔ‘éÁÕ øŸ'?%ÑÀÐWî°-瑦(o}_éΫu9™gˆEÄð› -Êl1’>++kzî×U™"Où€ÖôÐ¥ÓMñ}©u 4ýCÖÅž³¦…ÒpI/=G VË`ç3YOTIcëN8­K¼€”,õÁF'°ÝÍÀÖä㓊äZsu7è[ÏìT0ê•~FdÇõæ3ø@n~åÏ¡€£Õ:GœñÆ‚Ù0èOþ»FŽ['PrË4—TêVFa·åx3K×ß?égú<~b ã†/ÌpjÕ4Ã<§d‰|ˆÜ²‹žŸHPN½®: î¥7ïn&&¢ù‚ø7½[õ€Õ˜;z[>»Þv£©Ø.0&m¥,N”Y)³_/-|8¼û¸^V¥5àUŠƒ_?§NíLwÖSa ”ŸvfV5`f—È\>c™•?¹7šÎ€äS•=B?Ðý.l^=E/©RËœjŒoh¤”sÜvÄ®b9˃‡&ukœ›^׳’îx>‡Í»Ÿ¥GÅQl¿Ç{®áÛVãÉlgóœ½ùWŠFºKЇéñÖµq}Î==CN*Z¦zi"·.ŧo”Aà¡”¨8²gx£±”.0Õ/^¯ÙÌ`òW¯" I:»¤ŽåÌéT¤£¬Å4«iaa[%ªÜág«¦áÓ‘2iULl%- ôŽ•,QÌf~<3ÌÆ#׳\Õý¸ìh¹ÉQݧÕu³€×׬C–ä“þOÈ^ŸkʤŸ)dæ 3瘼óŒÚ<Ž‘ÙKF²}Šrâx¯ÉNv¬ƒŸ&*>»ŸºŒX½Á9®\î1Êó‹ÉPÝ~;4HiK‹ÛCö’u0Ù™ÈÍÜÚ{óNêãbàuJ§*Ñ évÖ›oå/£÷’àü‡IðŸÇÀA‘üÏÝž^³E@[>4ƒêI¬Ý³;Ø¥õ“ږñŸN“d@Ó<Úï KÈJ—à}u»ÂÜÆÿH¯r$IŽ#øþae°¼™Gå h "ÿO?"+«±Tv¨MùtÞ~8J’Ø®>4i´uh@S>³”. —Yµ´šn¡ÆŽ7|âßèùäb”³Àƒh»ïO LCFÉa«~Q@AG¼«p)ã— ìS§„®nÓo*Sf|Óg¨»÷¨Ü·©K‡sùr¢í(Xþh@&ÒJÕÌT ˜iØK³=ßn%½óû'e°ÄÕzYC²w¬¾àÊäeºz´Ë8£|¬È4}vKoá³&€@ªgw("éµ” ƒæ*݃*컪¥•Ut¿µƒzp){2‹fAÙž#=¥Wíõ·,,ù¼¸˜æòižßÌ\¶k·˜ï†OSö^'tùwÅê}IÕ1#c"ÕìgÁ½…ÁÈRYL lw1|•ݸ;bbõ¸ñ¢ÅoYJH,›}òóåä‡ (¿ac޹ûµïÒinˆÐ;yÌž¦(‘:_}QóNz:›œÀ˜Z7·ÝžxïBº -Á‘ñH”զˤäa„‰rlÒ€™rhÒ®+Ì%ç‹ ‘OçD;YmI4u¾‚Þ½œ#go1Ñ -©l»z¢5æÙykÝ[ðS)”¬„¬#"Rßw°²Ca¸€@SÔŽjÒá;>°±‡—[ŠA@&+Tµ/Wu÷ËûãGåL4£C °Ã3í »9§O—Xæ»Õá|ö>n -)"Ý—áH„=‘‹zŸõ!U9O¨õôõ8Áƒ¤ónpÍÞ6Fà7 ȯÄBejP™Ã»[Œ.rò,Ü6¾s¯õœR<¿Rú¼Œ@[^È­³]÷¡|”Í€ÛíJ-9b’–Ñ4ñí!•èõ ÄP]-:Ç©ó$hŒæk»‰t+€$ÍAvµÕä`­ ôÔZ¬ÄÔE ¥¥IhÅ™Ž&6ûC~j3šhH êÝy4 ·ICJ€ä$`¬ðKû-DÅl2|N^ÀÛ”¼} ­Ö¯ø¬ömŸõ‹ ·úcB -Iáý }ų¡=d -V$ v•“TOét›óH«˜¶ÅìÐ>ºk4I櫲p5»Ió¶ÃÉRíŒc;5f´æŸHì<Ñ&î‘™\ô%hÏ4_Ã:T7UOÌ Ç‘FÂì6"„fÙúMÝixÃ1H<êàßÀ/6Ï’=Ës„ÓÖݵúÞžÜˤ‰=@cÎöv+š¸Õæ•Ô’Â&2›x攪OC® ÇÁå4‰Í™XÂ÷¸8ÞûôF6‹£Yý¼ ¨ -€¶ö9Í®UóÒóù<€ïÒ÷™ì8Ya3{&ãM޽¯¡yS± ;–I(Cª'”ª­³Ì꬇Mhœ¿çzüwÎÉPaþZa~X{ À¡èËþ‰m!é¾´²"‰*€ºÖŒA…±Pÿ†±çÃdÀîA…Ð,1¨òد”{dœ™Á™kÆöàZŒ£Ð8å`ù@WT‹ŒÒÌn9—OÃ/è'#½Ð ëÒ+HŸ3”„²šìàôû­…JÁ¢¨A**pìðeì*¼„ͨ¼hŒå®_yjP/ÕT1x—êê§íÛÖ˜Òv$Aä|gZ/2 ¢¿¸ëˆ)kl@kR7i͂°r2Û·…„`ÖthLŽy¬Ã.ÅÚ@OO@ù’À‘9<ÖÀ+j}ë7x;~‚ÍdN;—€°³€æ@NLmÍ ÉöÐ]hZ›,½7¿áÖÂQõ½‡·;l»hÈø-~šx‡á9Ðân{½} Zä÷÷0*Xgi8€‘wÔÅ,©´iº˜í1™|' ¬? 2Þ¼6^g> ¶ ˜Ž fk¿ÚsȰétå|¹TìíÇö Y½i{2|¤ Yƒ´K`pÇØÂœžE–œUµg=ƒ&Š¥Èõ,[mÇ•F]½½°2Šâ1cÂ’á×»ÓÕÐdÖÈà<É_i ›:ÝÍI†Ø}©ç3¦n5d­+8˜;ö9ᦄ±NÊzÔ5ÙN·Ô÷ho®÷¦A{=²Éiï®Ó\(iÄÕ‰g³­T $6¬¢³H(ˆuÇ n‹Ä…ç;Gb’$~ö™¦Ùn¸;Üèð É{dÈZâIè;” sLÚˆ‚‹Êçî””)(’z¨˜eGͰ¡¦1† -úÎr*Õ*å¨Eo„J¢SÒÓnº2Љ„œ=0$ZsЄNRš¾×¶a`'•%1LTcõZnWÕŽò_ÐϱOkéR)±ò²jÙ"¹T¾ 0Ò”–×e3EˆÑ€Rí'°,îV12A)N1 -Áï06ú%;AS§ä]íi¦JijÇa,ÏGåÄ*n ÷H£Æ Ò=h=õ›Ú¶ìV2µ2ÁNÙ¤´òY©·&?“íœà‹Û– Âmš$'jŠ@i¹Ä ¡?vϦ…0Çv.µe«+¯“JwÓÒ­Hû²ï6›"èÐ.ïFÚº4\!+˜z¨yÚñ"ô¬Ð“3KôKÒȵۡAräMßÒ+~w”Õ?5F†m†q$ ö¹>ÿoYàW³Lýf–ùí?ߌ3(¦…¾kƒûUši¾N"5¼Å^¨`Ñ0$d7ƒ©Ò.&ýDô¤oª€xÈ Ô~ä@hý¶ü&Ê{Ù/åíÆ´¯‘™håVlx¡gZ9þ´Ñ„ás®åt94GÑ|ÇYDeFžadŒ:úVœÒ?–&ñPäŸí‘™¨0Ï^€ -.(®âëòuØ¹Ý åJ´ù¯;×~v¾ï"ŽÃ‹=/'BËõ<î¡8"Óòúõ‚!HNò  Ò©è¶hŸÛzùŠ—fÖs'|—•j˜(´yû •ÊJÛîJFšd·a“§ŒÐ“ˆÂ½ÎPJ6LNKÀÍ–™.üé6×r÷ÿàÇögA¹¿W¨2ÅwД 6¼»¤‚À¬¾OÂÈÞ½§³·ÆAú›¾›w5×ñÝ’IÞ'MØí9ܸƒÏâUþýS_~ýäÏäè25gð_К -R²w¥LCJ„ÏbÄk ÝÒªÒêµCÛ±´õ]³´‹³…»ùQÛr<_ªrP'­žêÃÆÔ‘Í ¡WÀHå>ê\bµûÔ¤ú5K¶%{-)¡Ù¹{Év2w·Ù¹ê}"hÖx9™ùu+t+”½Y}qøÈ¸ÝÝ·l©…Í#x÷@÷% ÿ¼ØÏÈÓ©:&A¬~4° b޺أÚÝŠób`éY}¡~ß9"l€P¡ - P]0h«žˆv ÑwÌ[«Š0ˆ•Ó ÝE®{ò\i —ˆÆ <Ü~µðâµ×ÇoòïñsàõÓþXÏ¿Þ;Á7¹ìîõÏy.gÐñì÷Và4’§}nŽ6{¼î[i”#Þþk«Íñ½ :ŽC¾^7ù}<,_û·ý’s(ÿsøãÛî¡&8ðB[}À#å’[H`Æö—€Œ€#‰€”K•Lû `È‹ÒB1hZðóªfˆ%ò !Äԭ߀²7¢\`ß„'AãkHÞàÁ±Ô-h]Éùp;D—¡¨+­`¤_bûgŽ»Æ“,•k]Ú}´·[ËÖ©~»ûnwt3 k’.ÄÌ›…Á’U/:º¡ÄÌßÉ2à mY>q"WÈ0lÆl~ÝŒ1¾o§ëÖ±~?wµ·àží@_´ÃäŠê"ÞŪ}ßÏ=ú”;·ša(‹H¬VñóÍ~<)ØI½¢*}!’séî5¶æ7:!T N¨}UüïµCШéª0·NÛoÇ9¥hѹcݲ;º?Îðÿçˆ&i6KyÁGD¬ü¥4Ûg?Ø!^ if#^v µ­q@T@0šV¥gføk¼!XkŸ)ÔÕw(¨àäÜrÒ -f=`2þí@Ť•%%‘iw%—«†Z¡µ’|÷è:žo"uáy9Oë…Ÿ7Líc˜Ùs»ySZ½IXåãb´îkA.0ìb]Õ®»¬ª]Î3žíNµª^Ý|ªÚ#ë‘7æªÚaµØ#WÍß9¹vRȼç,Õ`#€ûZ?Z¯ICÒ*ËâÄѾʪ2u=®m¬7N³Úg£µÕg-J ‡.N2sõEmÈ—Ø› -‰ºWõÔÚ½ÓäHy‡”w?Qe`¿Gáz½l#ÓIB¦HF—§l3£Of–Ȩ́<Ó÷(î÷*ꃢÞ £=½{•úrŒ|ç;å>ßb9›p]ä¼Ål“ó³ÍÍNÌ67o1[ {ÄÌ#KÌ6vÄÌC*fŽøMÌœ˜d"[_´MPgYbú‚ËÕ¡5YSV&ÂgZ% Õ¼ÖŠ } jÉŠÒ•Óšæ«™O¤z²uV‰š öVëq cРEZK7²ÊÖc‘&äÚ œ<ÜqxbºcBžGлXÜpÓ¹E;¸éa[ŠÙYæ©Q}€D}hf“ÑEôÌy(Ô¬ÄÐÖgذù¢5ÄeØV{UŒ”¬³ŒKÍoÇÅO1›'&Ø”‹6EÔÖßýRö9€û Íê±O=.eûn  ì»ØÆ´”íܘ…Uñ,}ôÙç0{b·“•Á>ÏËŽjWÔŽ|WݾŸ«Í…]Á+Q»Èw6­~þp9w cïâšên½¯ß—ßñ‡òÐûª¿bM_B´È­ê/†B‡i*C¤Udu¿L2…xyò$“\BS6i˜ä"5ç¤/®ïK*ÏÁ&Û^º;¥9úÐY}LÛÊE¶¦Úe@ÞÑ,¥]Ù•¾Øú ÓYsøe2 ¶¼6ïÆHê1CÀÜ»ÆVеÆ9üpË»ÌXnDnìÇÝ•™çÆ4g÷•ãÃy‰éz/¹ ¿)eü…|}S Ï·Ø_¿UÓýß¶”IÝß+Òa7 “&laBã“–Hât©:?lQIu˜ˆçÄ™•`u)6‘"Íî%ªŸ©ÔUÖ%Å©`A‹Q˜A ˆüjˆ$»‘ZØÃ?P¼)¡8¦ÄÛußšuÏg Ÿe°ÚÜncùŽsêÄóæ5S¬èàòBW£awˆ´t¹ú»jœk4K–“G²ÄJ}dŸ`@¥÷5LÙCl:îׄvVrµG]’¹ÚS·º@Iò»¥‡ûÔÉ+ñŠ.üÍ{µ$Ivã°ôêI”(iݳÌ[8¢v}ÿí€õyéôÂíï²PúP Ò,\w€,(èö¼k·IQë“úHœÕ[•ñL°•j­í~ˆ]áç¹.è<ëäó_«-’\»2Ã-Îlfž›Þ Þ9LßyÛå°Ó»ªæçëNuíÇÚ%ø^¨ÇÅÂ|t-¼më#{ ?@,ïãTáYa=*¼ ÝE\g‰Ð*λÚìÁ|&¶æq!Ì€”$ȹ¬ä:±"}€ºèäwˆQ)Àñ‡H‹åVkLKk@SÊ×}’€â^ùþìõãºØ=·,€;KƒòÎÕV6æþu§Çís¾C¸ÁÏOÏõúçÖGÿM›ø=÷#Š—@kiVð¿€ágƒ-ߨëÆ`võuÇ~Âvì÷b~S™Ï]{ìé‚ey,øÚ‘¬) -%«öü˜(5îSàÑöº1¼`v¿uÅ~Âvì÷šöÒ¼V ì± À|ÐcÅOØŽýöµÿLH'þÓ‘áļág†flìucкVØOØŽý¾QËxîØc¸¿ö¶àhGb1Ã;yv°‹?Pá’òß`‡YoíRf›ž/϶- ¿rù É¢ 24†A÷?@×)ð_èÞßb‹÷­>aÏ8ÿ ÿºÏx¸}°S'ö¶cƒç¬Á°_wÎëv{b?a;öûù0«ÚΗ§Ú–¯§‰ÐÐUkׯ=.Žì=6vÜ¡ kØ Ú;2?« i‹ÀŒŽÞ]`å´ÌƒYö*¿ñ{y6͉›d†ÁÞAÏÒ0ư(XÓéóð#‹ÿùßö¨ï§âÏ" ÇP7ipðŽÌÆõR«ÝÃäÜLlÄn6ÏÖd:’f¹ܧii·±„…¿ÎJPí&Vk;0´§ä™L -1|s)©äëvÂÑZ‹œX€´4y%æÈ¤_T®LIÒ³G1ÛhwC:ÏÊ÷ÒeÈ×yµ…üÉŠ+Ý_ÁË$•{%ØêZêc·ÒéŒÎ™€øÅϹñÇœûnøé¾èdHöäì,acxìòÈ¥/+ß»­ï7¹‘õrÛï»ÚØ»]DÙgÚlÚçތ۷»x¹s°Ù»ó´ù½³¹ªàç“ó]+û]v5ý¥æþÜncUmþI©=‡²>1ª™ÌÀ\›3½pñ(C¤7ævª#˜"EI´H^O’QœœHÏ\»×T"Î'Æ VÙ°ÙÕÉ M&‹ò(»n‡=û‘g ¾OÆ‹¯xÍ&ψ -¨—BùÁ^¡;™gÚã¥ÇŽê}RI¶ødçeçé²MrS²!ÉŠ ÖhM)žCfÜ-áü”4Ø|gˆ¥¢‘GÃfJOaž`T—q¥§öü*‡a“Žs¦, Õ®QßþÓ±\YAÞBýœ-ʬ­s¶Ù{ÄÕ¹jVó†H"uØQ̱j䥖WRhVç7"H †@fJa0,G67ÿ3Ó -¤Ø&†´F$·²ÔKsbykÊköÐß•×Ó­úM¹TOJf´Z×àª/Ì‘‘Wœðè|3_ÛGJÇ4Vל%Ž@š&ÊÈ)3e^æ rªqœoœ¼öœÂ~ç‰,ï­eÕ¦€ F¬Ô§²L¡j$àHëÔ…äÚ¼¥5jñ³ôØ?±ªÁ%Ú¹–è4£GV¨Í€ÒmÞ$I54¡]ec{5åí³i'£´Ör*ÑÃÚHü|JŽ»¹Ëòƒí8¡ØbQ’Ú×SåE&—ôɃqY[tĉmÝjr"µ„d¶EúékkÎU‰‰g TIQF”ífN­A†ñ‡»ÿµ‘žòŽ[˜ Ôë kR|WÝ:S'k«ÌÍú1û]ËÎÔĭ׊SÇØÓÔé‡qbéqóDÝŠ…´ÒžÛ+æ¼ dŠÞ¹»nÄ-LÍ>½žXWéA‘@xsWäuK¼ÝÏ4KO½î½ë(‰‘k4Žg3µÖ{mØ™ê_oXßņgæÕÑ|µNQXEåoÓW¶-¡-â†Ô¯+ëó4,¦cäB¼àŽÜ¯ÜÏ[®3lÆì“nVíÛ܈}üàc§Çz½am1y­Î®x΀n¦òä#°6o:¨á¸ã<ØÍȸ)¹ÖÞŒ¼p=WózÒ¸ÊØ…~ ÃoLqõßLqÿû½I΄Ý욤†:E wlÝßÂ\ȳy"Cr§H5Í’s_~/çˆC3fÍsIò¶’-ˆû‘PywÀà0šEøÕVéƒßdsœÑøÄ¿Èm]âê_ 䲄®Öù€¸Õ]žÈžØVçÆ8Lq¹2iGTæòRÅ-0xÖP²I <ŸÆÎW6g© Yï¤# -SÜÃ%3”5Ø6ìæÉ|SÎ1„P€ïÂ6YUáWôP>}Y£Zgz„…½ˆ!®ÈvvÌÃ;w÷),׊ æxïRQ+ÊSaçwÄËâ6VP"BM¸0¨iì¸Ó÷v U˜+×xR`f£¯ÛéÊ‘1îó¹ ìÅñÓËôD"§­ð ²ä¡'Û½à)4ØÐJi!ñ•º-B -d”,ñò…l¯FçWÕ§?ã^y°Ù0bˆŸq½Cc¦5&‡„6³ÆPð²KÁó,Q6µDó79 %êODdóõÐŒ…VË]ÇnÔÒXX(r~¢övËdu~5TÙ¼™%E+f΢U„×5LÂÑÇ$-qq³dHxÄÐ$eÓK>ß¼nIFõ¾c-bì1s ·¦¥Ȭ9VŸfÊ ‹I´M… UtkG8ØÒñL•É…§JZ܉6l^2ÌkÈ(…²8ÅÍ;l¯j™‹ïÆø¾’PšµÏþuí×øœ·ÏUÁµæÕ~N_ÏL7„|ö˜þ"@&éNÂJ]CcæB ^""ö|œè¯}å3ö}ËÐŽÿºå*°KšYìyKECáöü”+`j­èˆ¨œäi$ÀÁ”ôzb’Cd x$ì·êl¢ÑÙDTë8t6@›M­ÔL+3$ -¥àÑCRé¬&È ›DI-NY( -_¤f bùŠ¿}¼tZi41#Qê«CÑ)®œ¸”gË14x¼7ü´„³õ†w™Š6ÝdÐ`úäè¤2õæv:B–ŠdÞD»«FiëÁ×™Ö!Õíøæ°!.Ýæ Âßê*02G˜ÌİJ#¥Öd;IeØ4uæCv¯»¯Ò$Ö¡rsr¿u ~`óë#ö}‹ªÕzʯ[ÅÃJ1=Ä#Ó¿\ûÁtŒü&°sdˆ”ºYÅñRR¾Å#1ó·x$jý% XÜÝùȈ~°±ð!¡x`a —_±© ê~ż‰÷–f„$̰ÿîN - }wW „½ØúVº¨fθ*“˜zë3»¹R:RØÛ,áã¶EôI‚†P8®Œ–—ãèDzY£I^sO.ô*îm!—+=OP{é¡Qð»Ýª,Ÿªa~³ *Q³r\°¦™ý×°c‘¤¡DÎF8@&6„Ž@ªW¬Äl`Hë\¹žÁ¬Ä¸0Èð)ü–÷>{µTjuå<Ã%8=G˜±è¼[ç·MäÁ¦À¦YHóÃÍ^»ÍÃ&œËœ:¦Þw­q£u* -+C/l6üK¥ÿÆl(ÿ'½Ê‘e©àU°±´/wx· “û“K©[Ïùs2z¤R-™Yÿg7üÉ^X¡·è´, üÁNjwad!¤m!Ú܈l°¤”ƒœ -iWÙý·Â ’È©D ²ºý%C¨ÅXídp$wr„Ê„“Êò5Åy'Ò[ NK{NAžÖ6ñ)P©iW¿ÐŒL˜ Š†šöE² Í,‘š»Y èoÊ,nºŒ–‰tÁIn-íIÖ²§£GÞGoÁ - ‡nv±bô2-|zÉ)Ö&‚X]ÉûŸì<÷7.Ì<ÁÙ jÛþß [” -ÿàÌ ª Î2bí†ái=¾Ùm«´’o0Ð6T³úôÙKX3N´êDs ³©šxûî'†9õÜFb… ·‘™}Ö.{ -±ãÅ SQù€4?9çQ ô@ -ç[ËbŠ­1€ÎÕíKXë% £Ös; ú]퟈,÷sÍóØž^ã)¥FåšHÕvI„éYy¼™ø”¥Ìô—ýÛDM>¢fCÈãj¶£D.FX¨åUMI—e` Ü.®Â„Ш|½ÎG1Z&ÿ.¡+1/6J饆 ÃCÈ’Var³$d8‹hF@Bö\uû;sfšÛ±«²Dª›˜[¢íE_Ý€¿Ž­’œ•.‡Iî¥AÌkS¢ÄÄjÐQá „ŒÕ‹5.ÚHmñ/í‚z5‰K ÿ­öAÙûãŠüúûóµgˆ …ÿšLwçƒɘW4oø -"$ýkÚÍ¢ùÆ!BƒO¤N ‘ÖüÍY&p[Ã#c®ÆŠXënž£4³Y/5™«¿u‘àÛèÆJñW©ËÂÎVÅÝãw¸iÒ«[r!ÚáòòpLVc £©…Lå=Ù½ùú¬a‚#bÇë$î0eo°Ì‚ÛRÞ`«Î0%#õ0£*VÚ’mqh-¹V¶%” ‘ ó™Ú‘ -LÄädÛЕ)ö§š”ÞÇÿK› - œi×&#de#poÓù4ÆîÕX©¦ªÉeðmRÎžŽ AƒÎ††µÁqV/Z‹4F Ól‰DpÈÀåUUÒ7Sè˜HÙÃK½EÎÎ4#JV‹'$ A⪥¶'R½½Ëç+­1º!)"ÒÉÉͺH¬!+ªŽ¤ˆNÕì×$˜5ëå†H–Ù0‹KžÇÞ!N»Gaªâo-/£YšD¾DjgI G„äåê-±JÚÙ,ô:Ü#¹âzÎÇIç ÏG"І~¢ƒœ[¬z]ˆ¤*äK —-2‰¹ ã.dïcÜ1•IÆÆ€¯æòØiÇÔÙgTd¿@±0ÔBjëÓŒ,Ùç+Æ:TªÔ¨M·˜@ý£–ì¬ïœ.ÖìoØñë[ì—-sù¡eþ™_ÆÃ -¹³mÓâ_Â6åЪÉnU4JÄS|#Ê”“ø`šãû :#¯Ïm“rrOe* ̰§÷J[1”º#€h!£k¯‚]ÎëBB~¥ ïWÙ.ã: ±Wy¯‹Ýrñ¾NÊl+&rŸ>ÂâLÌÔ¯Ó€@æóu#mkû#.`háõùUUŸÜ'Ù§;.zOE©+öž£Ó?0©C›)¤³÷9Æ'Ò©æ>ëÁf¡ÜÝ'¹Î÷}j†cØèc;ê4Z=þWßõ¦Ÿë#.`2ûï@vpSý·“H]Á×eZ…÷:x¸cËOº€-k”ÇIí¤Ê>~sâ)Õ=¼·Êù|Ÿ5fÿ×W0 åó¤5K~ïûh¸”±çfµ×—ü:Kmª8Ï}lf­WTOËß_i*ÞƒÎè\A=#v’õõô“ÑgT•õš?‘4Wþh°åw Ycî†×mÑ ö -òãê˜ì®ýÍ|ýùKD™H”¿ÿý3®äÆQY9$ˆÚ_Âö /?˜÷ ýVmd¹èo‰¨ &*¹¯Â¿·X&Ø#ø=´>j%XSHeÕ]¸Lf á:N­\íf-¯‡åØ&K)¯ -ò<—CúãΈöH«Ú‹Œ×ó]˜ÌØuV'¹”çºNWAFH Ô­a78Öý8,ùr¹Búèv¯‘"„±Ë•Gi—ÓjÌuA'íê ÐÕ2wÝ¿½5;ˆ)ms2®¯°ƒ¦Qï“b¸o£Ý™4ª'$"'j‡héziiÒ‚<ï§ýJ´2OŽhÒä ßD’õÒºrýPåS9U{±SÛç Sþ÷²·IÞN'½aŸn{÷ö䛂ӹo–NoG.ÿ`^ FL endstream endobj 208 0 obj <>stream -H‰¼—˪]¹†Ÿ`¿Ã&&,«$•.ɨé&а!ƒ¤‰§æØ†7tÜÐyûüuÑ’t¼'vCîöþ¼$•ªþºèˆ)œ”S9¾¿¥ØÎJ:„¥œÚ!¤‡d$ç”Aú™>¿ÈÓíÃŽnó_b:{ŽùxVÖBYX’ã8cǘÏ@±*ɵ²bötV{oÊbOøˆÎТþγ‚³‘±\VÑÉ¥fe½ôª_Un²Ÿ‘cWÒzÏJ¸rÔuñ ©“²Ö±— -úU9cfÚI¡6Ö]¬wŠÇ²S=SjÛyõ,%’ÛéVÕ³·l·qËÛ ¶Ü¯ð±­3'´S,7/é>“FG}™Åߟfw%qÈŠ†rXPR5ÒS_‚:È“†.”ÀëW8÷]wjgjµ®ÇAB¼Ø„KÖFiš Ày»H±ëƒì8]$>.µmŽk±­î©¬_¬dneÞ¹ÓÀk¢|l¤¤^Žu#ö¾;ó{Èø»¢\¢]¼WòAæÎ‘¤âUD‰í”(òþ•ªiÛãyÜÓZ·p™«˜ßd3KXën¢`Ϋ]ªé¸™%EucVfcÚ7JE²˜UáZ^œuw%Uó -ˆé¯–ZÜǹ½ yWà`5©à–jó¬¼ÎÓ˜ší%†=ôó;—ÈfS\­Á%wÂùºãÅJˆ|l;•\ùØÎ»îsù õ!öðdΤ,‘'gî;ñ°úº-ü°Yï -t™ÌýE^1¤e7Ue¤˜˜çö/óðþ}¸½úéöú»‰þñþ·ÏÇŸ‘¯ÿúËû÷?}z÷óñ'ûõöùýŸÞ½ÿ ¿)‚üýóÏ¿üwx¼–•ß}úüñí¿?¾ýÏÇOÿýË KÃñæÝ­øãñ柷W¿‚üíÎÒ3‰ÿ'jò¿HLŒ¿pƒcåæŸ7o­Ó©ãBBé(UËI<™È˜µ*Í/D$5½J‚$ïìé¤BòcIâ4,gô!©ÉÔ1I@1¦âë.–CÈǵõ~vüg'DsÎz´ØDí¨iUr³…°TÓërBÈ&-ºdÙ -ò£ÄÖ3ЦThk¿­FR’2œbE(#Œ i-Ñ=¢Œ Á(4Š6•ILÑ=û:ÿ -z.¾ÎwB+ìøËzž$u^¬ ½ÖÅrévŸõ~`‰CY¼*rjzJ -A㺹SÊšÑât)3Ú¯À¬d„o²dÝ)!ääç©ÈD-ÃÌ ½×$Åõ0Ã¥uªê¸Ìë]Ú4·¨„Ͷ,ŽŠ-—§3å7ÆßQVÔåÂJ´hTT*mÆî"VA4Âó«¡‚k£!•ë´ïo— †ECrÓæ/²îšµe­í‡SŠ©µ÷œ9)£hýw‚Þâ±-Ãp2æÃ¦mS\,…Öj]Åô©¬¶ÊV¸Æp+}®óZSÓ˜êç÷¥Vã»JÊã8’ž¾‘‹­¾ŽÐ·ÃÕY&p(»K€}/M‡šÒYGeÁ›¡vE!¥ð “›y!nd óÚ‡³õl;é››_S–½7}#(QªOhTÀ­ R‰ƒøñðm(ƒ‘i?¢!{ ªf®Ó<à2ä‹C›Žñ­ûM²£yrLÙ˜ºWˆÔ%l6+!/ÄÄ©SÀþUËeßI³î:ÏÊwäá»ÞŠ·]ü±~Qª»1­ëš<¿üÕeÖ žÄ÷ù÷˜}m_§þ{úúߨÛ”‡T£ÚpgÈáY3rìbBttR[!%ú>QB¹y—®MD†š^ô«F(üBX¢³Ïl™#™)ÑUî;K‘Ìß®Äy5Azd&ßË •@6Nøe@XšÈ¼²ëP©ô…ݕŲ­¡ŠÂ2wÐVdŒOÒK/KeÔï…–Û¬Dï,ë.f®¹ïÈü77>ž&ÌHLCG¼æeFLç•<=PÃý!û°Òb™¸é¦Œì¼ÂÁ¸ˆTÃ4–ÂÒwÝ`Ñf ?{¹_I)m×õÙûŽ8‘ØÞè½9l²ÉHÙðB6èÆ½o²‘Æ¼ÜØÉ&g›lÆÊ œÂ&±!íªCó¦¹L{A䯛hÌ/÷a ÞDsØDÃÖ)6ÑŒ`Í«Œ€Î ;yz …ûC¶‰&Yfl¢I3¯= !l¢ÁÔë Ѥ™×|y „D‹÷¦Lž2ÝwV%Ëî˜erßdC'×úB6`¨ú«l0~ÙwÝÙÉ&g›lÆÊ±ûŒÚ´aÆvX:ã?n³½ó&œx5¶•™çîi©fÌŴtDlÞfDuÞÙÉÓ=ܲ¯n¤íé7uP# -eLh.zÞ™Ná:¾uy@‚àVìC'6Vç˜{T&3J”köoºÍ…1KˆdçTy<˨ÉÞÍÞ&§?‚a.Êq¾ËhÜ6å µ¼Ô„¥Ñ&®r(Fü87ÜÌb¨f#×e<˜>I®Û (>åš„$/CÃSÂÆxnÞÔÍC] ¦2ÌcÔ7Ÿcz«­ûT†IzÌd­Ãá„à£`Íf{kìÁ†èÚmÆœ™É …Éú ‡ÚæŠ Æ—[LôTžî3ÑÇHÕœ¬á}kNNÔI} ×Êì@€ov~˜KÃÌ6£DB±Vw€–˜KŒv¹lB‹6ò‰’K¯Ò1j×äådYwùþJ4AžÖÀ`°)u<<€˜¯}Ì>|Uy¨ÿÏò€Do¢¤ˆÚ[°òYoO “ÚÅÔZP’ÜiÜí“ZÂå4(APiÝ}­áá^«ÊÑöÉͪ,ži…ñ¦Ž§›Í•ò¨4ÒšVuèŽ%…äV”Xöb;Ùiý -…ºí;YðÓ<£KÉÓ( b.a5]Ht§Øõ„¨Q‹„µ–¦£dóÚiñ%x<‰½p1êÅÉî+c$bc7Ë×nÌOp¶Á'S.«© íº¶_%”ݲ\œÔÜÝøb& Ç’;Ù(õ³µêñÂ$Õ”¡Ìvus—(é}‰—ÛÉšßhØ×]Lã,SPš6y}ÔÀÃ/)Ž«M½NLQ7MáWÎôpò¤)pÝ-“Í~‘ZÙׇòÅáÕ¯ß8>àUÕ ÿo'ôÄgE=Ô(¨ö&Ï€ˆùJ@Ñ´Ú*`¼¤ÀgûF[d³!¿‹HGb­“¸fwtL¨ÞÝ_=¢´‚³ÑåwÔäÕ2Ìžø™0ÑéÏé ÈD6”d|`EMg€èàºD©ŒEŠ`h+ݧ˜$NÙ±\Ý‘Ž¨ó €jKta€˜æ+©ò1 -ßæÓ.)â+‰W¸§æöôçR ñ¾DšéL‚*qÓ &IL%ZCs¢I¼P¢ý+¨¢ìi3§yþ¦6mòÂ]zZì– Îi¹¾¨Héõö@É{«cùïÕ’$G®ÃNà;ÔÆ¡õ[—} GÌÎ÷ß>¤”ª¶7¶#Þª;Q)¥D 8¯RØËyörJÍÆ[ä7•úñsñþòÁoVæ•3§Š¼Zd  mPexÌ]"€ná¸P‚”l@ͤCÕÐ]kµmÿ”é‚ZË×<ÁkÖoÓ‰$G¸Ù>>ç0?s@17àb6š­·wz«õÚ„CfÆøŽ~TÒ  ÄŒõ˜@ó8ø•Jdûº6“\òÐpcó8xð¬ü3d\…ÐÇÁUcª³­—:Úg¬Ócãb¥8²¨@DJòw2•.ä„ÓŸ°î/yÛ"°Ô&ðZÂЄrUN¨|ùÏP!Q>a•Š~0"”i5UMã*k3²Áw¯³½Ô1É)KUt!9Ôhcwü>Uñ/¡ßVÛÿ¹áðÈ ô«O¬„@üpU ÈF{9_B€ã /÷H]|ö³èš -=[Ó& $€£Õx…(ýŠÆŽâ5иGëÛ˜PïHÇõîul4‹w$ +Ï ~ÂÐüwpR³/ÐÈéžFgG ;`ØLP#;Z®æ2¿£± zWÕ ÐÂÖ­„/X5 ºfy lr„&ËÕ $0Æn¸×]hCöd èÚ-f–\?AcÌz¯CØ,úgˆœ;'iðtI^òÔ”#£pÙ¯‹–u¿{£y!áú÷ç$gò뛎¹*h€è—úá—iË^f#ÇH8ã­7Èߊ…?ïõÄ´¿!æ·?tƒ]UÑð¼tx:u®ü¬5tFÚ¤öò)5aÑ#¢ßc>!ä=‘ØÛt·¨”ìjQbÞ.F‘—q4Ó["­ŽAÙŠœ:Å™¶æ“žkä¤4Z0Ö9R›°ÍËÐ-w9'ì‚¿3¦Xü‹’¦ËFâ¼`Åý*ýŸ|pÃ'­ - I”sêýð ø§öz¿ÌšΆ¼÷á¿y-C?_þÝ £ä@ÁB`åûtŽB‚ŠD­¶7 ÷Tö¢€he>Dµ^b•9ÓrIWq€üìã&$šŒiÅçÕ«sJ7œÅâñû'Ê}üôüŸ#™a^zÎKJ%#ð`c& ›ÖÔ´œACŒ ¥GÆH9z‡î&.O´_Ê~8¿Ô£2†;?M~Œªê¦‹´Dç*uû0ceC grI†VÝ"qÃZVÖíJ»3÷Á,¢¶çuÕþlî[›ýœø{ȉºÅñ.–Qz†‡œT§²êMN :ýZ¦êö}ÔË4 L°”ÙäûTÎC]Røúô+ÐÉ -h]÷Î4æDï˜ú€lhf0ö’ŽªÊ’ÄAËM€Íá½ßÛ„9;¢Ìªôóñ؉>ýPßy®½& Á1ïlR£CïÔ¯Fùö5~–Šºë?mÅ—•ê}vü^v»ÑAÈÜ\=* ,ùþD®ÐrÆšä‚Bo÷„þ(ÃNÏ%((âYÞ^±|oRv«¯ôP†s”B¥6Ÿ£6ÿå¾]o[וiqUþkT\Ý•Û+u€ÁMv«†?¾€“¡ ,î]Nž÷—®Rا9å²Ï{ -jßé”ܾõ)Ê—S¶;tQÚÿ~yÂ{Ê?âØñ‰Aßßz׿±Þ`»é!)¼%-49?ÜÛ$~C¤‘{¿¬)&,Òv«¡¼º/’'Ðê'`[ï Ñô!ÛoP1™bšR8žB£3ýã~âÂõÂsÈ]/T²¿2=Ur“;+ €ÞF¸^H ž-Šs ¡<³Û^üöÊ0sµ‡çR1ezÄZbM2L¾€Úêî0øž­Žææm@M½‡y¨­k›<ÂÉä„q@BkpÓË&PlÛ^‡†ÏCoP4M¿€­0&K€vÝ÷ޤ‘Ü_€|lyê±³¦7à&`•´äcç@H®e°pP~È•ôt\ßÇ¡¸”ïcl—ÏÅás]Oh Š2ÒWøJ´Ôb -piöä€j˶vå‰zËæä’ó%ûèI6—Íá*ñ™ùÞ5CóK5:U% 5žb¤-[w1R³è%N o™;U~bÂ%…›/ïP‹ „„<¤ã3ìÍMLY Tò°xçŒ5:p»±¤çtu@ÍÆ»¬ÃŒµæÀR ­§A)Ȁʈή40Úš“*}„E‹t‚Ž®Ì„´(ÌOQ€ºÙ1X8€Ê,áTYZêèOAâÙjt¨ ±·ÌSØÁHGa³ÒXj^ØbÃbT!g6äÔ«žEN:îÊ>|xI ¥¾ùMîʵ=ÀÓõõ àq/QØ—úør´dß{‹Í ̤+x¡Y'¾[ÔN¶ð]Y -m<‰ÜâyRúzUÖàS1[¤OM!Jñsƒúøôß—üúöå–M}à‡‡ƒ> ÐÔHÀÉ&N=¹@œÕj²ñXM,o6ýœ ÌÜ>Î]2Âp· ÎÈäÝ‚@îÞûÕ¹8°ö|õ6ë&ýFÎ_ˆ·Q<—Þ¯FËÏäñÖŒ©hOÃÆxò§¥ïã^Þ—ºÍ{É@ÏÓ¬! ÀJË [Áéœ Š¯ya¤l¯“­¯zÕqqÚÜuÌ -iwoc­Ìi,•‹C¬³ž¯ÞÆãòT›…xtµÜ< àêmºzÛ³lk>”eó€§½•$®äÛÔË©k7Ó*Ø`uEÛšmš/ŽƒÙ"—úÄ—ƒ„µúd€zÙàOo±žÞþo±†ÚÅ#3׫ L—™»S2»» €î‹òŽÄÂÂè±p7äJ¶7FYŽÔ®¨õè÷ôEçã~…Ó3÷5¯V»ƒqµZl–‡« -é(Næ±b.ÌÕù~NNMO­{³Pò¨3>¾½‹”å¶3¨*<Ü݃ЬÑtZ‘¶ŒÒðÇÖ÷.2Û„ PzCf› =ö+€«álè4œgQ¸¼³ë6‚×—·Yî\{ÛÛûqÀª?î„€†–ÂýD‰Ž¶æw,éi©æOÄéagêWVråîÂlž¯*9£á?«˜#³Á9±.Ð6ÛC»¢ë“µMÄ@¦µXÖ:#`to°àßg»Ç2#©„yîöë…Y6¼ܨ³§´ueTûU lŒ7À0ÕD9”Ѽ²{wªp}~Ýá>v»¨Ÿ° èÒèÂG™Ìñnñ7­9e˜þÎR·Töª,$¹«°6¢ÂJ}ÚýUXÿk'¸ÈÆû<0“³Ü¹Ôúö×½éuÁZ¯×ÑjgVí‰K´çrʼnd ‚zE˜u’ø‰¹›íq¥åžº:PNSî[»T”G©×Q»¤¹¯¨ af áÛ—®SëiCÁN ImZ º£âCU¾")ý©±Nñ†å4Ú·''h¿¾–]™Ûˆ2®üÞ_©žv¥ÜçírznµKî¹ù.Ìû}»|ON‰ŸHFØñüþ¯§]vЯŽRZ~k»hÈä ¹ßÍŽmÑ~É$Zjæ¦PÉÈsÈQ/<ˆÀqÔ+¤µ^ežjö'Ö -_øBœbÙ†B!Ÿº+ù}Zµl7’Þ—¶¦®~ž&$RºúxÕJõã0n…ù.³xˆ§ç?,;#A–E"ñœ/c£q¸‘G3 «kwŒeËñnñ¼tbB¿8ô›î€XOKbl®$ŽÔþZ6,Úõ|4Rù²‘u '_Žs_wÝ¢ºÒ¼ïü Ïˬ$3í^²Ÿ—ŽýqkϨ%‹ ·jlPÄ»Ï=!UU´sŸ¼ÈVäy—P*QÄÑy,õ ¥DN‘y M¿ûºæ ÅžbX‰`$]ïê~÷À>Säÿg¦ø›yf˜\æŒæúåXÉkZf16²³/^ºÜtféøkṫk:?+œ¹»"µk4hF̓ç™(Òd)Ó»Ð6~Þg‰ôC€{ŽÑ£R››$|n´ •I{†p%"†ðܳGeo&ÍÖzw=²ßÓ1CoÂÌéÕn8Ûzü¦j:”˜[8Çf’Iš9Öµ¼„h®Ùˆœj3ú÷}Ê›[³k%mðð:ß»ò÷€ åpß´Pȇ]¯ç5_oVVDT‘’eÎwôˆP¢î =Ù™(0„ËtgëA"§\·1Iüø|c°¢ßžÍ>[¿®À·6ã -º(©a6=PqJ™ëz2usíeŠ  jCË; -©¹íSH£jOˆ%“:*WWB”Ñ„k±qaš0›ÏwÜ+FXèWøŠT›Û5Ìòð&¡¹É±0} --I¯u—t,x:o)éÜÔ1Õ^ͽ=‘<­{"R«QdmO ³¬ˆ®AŽ¥‚@=~‹Åë•¿Ï{¬sìêùC¥¨Gí¤”Ù¯;°ööô¶o -¬Qž×ay]ýˆ•èËÀ>5¼X×JŸ\Æ÷îµ¼Ž'-hÆÝ—|ˆv?ä¦ÞÝ¿Ññ籟N†Þô9ÓDÜ5h XvÞ®ÛAb*© ɼÍ,Í€ø÷`½}5ÆÐ: àœ6RÛ¡šy´7m#| -{vC_÷ÿ>öèsÞlZæmc¬ ëG|UÛÒ-÷7RÇ:ë„%Ÿm£—lúh˜ÏÉÙª—šÜ½¥ªoœ­ä =/ÄÚ˜²t -¦#fMšÝ²#nû¬YõP’|Gp/žJIw“þö7×¼×Õ’¤–nIÜ¥/R—i ÌR%x«E -:Û’ÑJSËÂyÁȯ‘D ±òx4GÎ÷>@ºíu°ÖµÎVŠ Nu©•’ßH·Ô÷º‘hß@¶=ˆ ÙkYÞòƒ{—9”v·ηKéœ3¸4¹”ºFÓº>Ii{Áʪ`êûÚ¦º¦eê…´§·]÷©º„à_Ñæ\PsÞóc’#·€>z•“Í -=ä©L"Û‡l¨.>ßXX}{zïô©ït =Ön¾8‘ƒ\|¥ÖórèßžþäÖYqú5>ÿˆýcÛšþÒ¶þgÅ…)5½#xË6õQª‰5ŠÛÃj@:mã ­”÷õ}ñìYQ.Ïy•D–Ç–ŽüF"sÃ3( -u!‘—ˆhr€Õ7Aa)æ-b%iæ- ˆK{#¥÷³N˜¥ bÒþi, -b³HüÁDË‘1JÌ©«kÝj¶g7ͼ%Wbƒ +Ž`¼nuÝ9ü•ºMC[újñ‡Ë®S-oª! qíCÈ™ù:è׃NÎ-òs­ûk A´zDêdßYÇ©U5#Ÿ‡/ôÙÑn²¦%Óìl$,->˜l~¼W&›¯ÝSiíË RjË¡éßl« -@Âu#=ŲƒDÈ&îUÃ'ö¦¿¥rœd|ËöÔÝLiñ»É 5%OJMWƒVµÎr(›´†’†jI Z‹†)ž&š5úÍÞÅsbÃéyj¨Žj”úâаO±»À+¿ëN§Ömg–RA޾xMˆ1¿Þ ]@>ÎxÁf;6,¸0×ËÊËEß}üã|ðùGìç?a4ÔÐß1Ú¿ÿûפæ¼õ1èMu‘š -`cz;ŽH[B0…è›QmÄ>1÷ŽP½ˆ¬,–›‰º3¡pʱŒÕñ1þÙK„±6ˆEÞ˜æ$dÕ ÌlÌs´X‚?šÈ8_Uc4¢é-äˈ‡FelìSö*™°9JÞ0±U¼ëH@C_-zzGV*BDµZܨφE} ÉˆlÊŒŠÛˆL¹KóÁdÊ‹[í³’.Æ)“È~"R­orj=öªkh¯ìÍé®Þp´¼²ú@FÚø|C–ŠN£¡'2’ ϯ:<;ázqô_QÓ´î¼×é¨~cŸòOg¯AJjú cÖë"…¢çH®ŽXïõ¹—ʡϥ\@á”Ô¾38Z-¢¶ÙãÕ¥Y¬Ó\G,Xõ•­¡óZ¤Ù8\…!§p,üxµ©Óú*³ -ó*ñxùxbIW*+®ÝºV••Ñò~Z±¡³ê( -Ié¦U.BÉšËvÕpÜjìFzùFÅK•å<“>ªÝdÙåMˆ”¶U•$¬„t§fÚ¨ _ÖC¶6"MÊt 1íÃî•íZ™ëz#i~‘Åk€Çû^fÉÅëì§åN÷¹C ™9óƒ)2µ2ÏJ–D£CD¹2y^ˆÖE ®¯þÇ{Õ¬è•Ñ'èwø–‰ XR©ô“¬C‰‰·ÆnCÚ&oŸSuJººM6ÙdÑ4}Z%Õ­¿s*â´oÚÑŒ÷Þ=!§Ž¬„߯s÷Ù2jêdseôÄt®êwô@#IÇ=Ä&òZ;òþÍ“‘^³Í (ÛýT/Á­û¦!õõkÓµðéÓôèòû@VFOŒ‘9obôösWF/ŸV.¿÷ƹ¿îʨÇ`åoʶ3Þnò/83ê!—|:u¤%¸À UöâXqQ½0CijI¹9PíB¯˜½ZëÕ+Hò×pz>€ifÄ„kËq4“øÄßÏkr]ÏÑ'@còµpò«´ò8>.ša™­ç)¨¼Þõ¼ Hꯞ|B›§S@R§ã9>ïÀØDû" S.çsL †wO‡SòćãGVî¹³¬Rz``ÄõâX«~b”r‰ª^ïûÒd7ÎÆŒÞ("»»¸zâòás<ØL"<•r ÊvSm¬mo²0KÑ1̨°¶3T -‘)<ãÜ^J!&¯5Ø>ŒnHôÛ ù•ü¸JŸB$Mc/ž6ÂË>A«RS‡B°~Ï1„ZÜ=gËa'#/y5åçmÕÏŒ%ÔÕ¾gž„ªSÒ $ˆaÏÊÄB0¬÷Vï§|á"’8cÁ¼ï¥5›¥¦8UIÆqH‘й`G q§@Rº¨ºŽq­S¦>Aê°ÌÛ¦b¼H1Žþ^O:·JÂHïhpEÛÉ–Â¥fsœïKpœ„è%ehp#°Ñyj²žŒ…”šŒZ™…ª«˜°Ž TÏ'$žNÞ>[£;|C6…Xo“Q™š¨G‹| wÎ ZQ¨žÒÈ‘ ‘»‘ë ¡¡så çJ;Èr~K“ISs$ET‘„*FK£O¾öRÆE¡½¡])­½:µ.Z@.ùof±Å§ê>•øuY„nzG†]á””Ø-ç:•#ºiÆçij+*itzUgÔo!|W„Ô4ùVWi&´yX™à”x(­­u¶cC) ð`ÔÎMvô2.”ðHþ65B.N£Lñcú&¶—9|šœQ6ÝhÛ.Ö -S×ܲɩPQ¤,¯šG){½Å k¸çÔú(5îJh¾ÐGÖE±åð S´aà"¤Ñôû‘ǼԵVØÃ2b]‹ù<4ìÄvꪺ6¸Ò -í¢¥AêË(f˜ ê|¯E*!£ zBàW¬AÍäNµN~j²WiÙÿÅÛǘTPì(“‹…ü£AÌÁïeîõF¹Ä–Л¾ >—‡ò&ßèYÛú.ó®ùÁ)ÊQ_8¼½í[îƒ'éíª¶eú™–ž/’ *µÝaò¹L}h-9ø½¹ -‘ZŪˆVø^Tz ë3‚Ò”2Åý÷¸Ù¿Èˆ—ì™BÞÜ.¹¬¿!¾µÑ)ñž—‘FU™J(8à -U¤ïŽäʯϰË9ÔáÚ@øE¨"s ¡PÓ ]Y{ -nò/Žm…e'ÈY“K²ô÷týa·0''ÞT¨l§.nâðÝŒï!#ß|xzûÃO9ÿíù·ï?>¥ÇÛ?ÿúüüáÛ—_à_Ÿ^žúöåù7ü‘·ýþ˯ÿ^Hy¼5˾}ÿúé_?ýóë·Ÿþé ¦éññËS{üî÷zó/ ?âç/O *¬¢žU -~•¬¨¼„ÑAaÿ¸~>~òæ¨ÓšX;ÛÝ^8~=v sê²DRÆ`+Lo ]µˆ/Gf*} þP›‰@Zn¬Å’l")m×¢ZIˆä5¤°GzÖh¶yokd±º’‚Íl!³´‰ØçÍsE‚9‘‚GbJX²ÉpÝTŒß¬†÷{@°V¬Z¤W¥Sc_ž—ÎϺ¾¯46æêQ‹0M^û+R@° ÈÏÒ8U9Hõ‚Á'¡Ç˜™bcy5yþ$ãýpR*Žã&ÛLÕœïae¬7§°Ië§ãè”yÿ8!m!@§Úv„ “¡Û”<ƒ‰)Ó‹!ﶸ™$ßi9‘•¼íï›vì÷ŽbÙ^í’Úž_eǯ;KsEà*àÒUã+’«Þ=]ñ¾úeåäê©×g‹gF9E˜GcOš’ÉæôÄšwi4©i»j:Ôl“H+"¶_©e²GÅ>ÄÓÕóêä&‘BlŒ\W vÄÓ囌óŒ¯g%`°J&uÔÛX7XŒp¦Þ‘Ô›Òâ”ß„¤¤ã= ¾€Dg¹WÀP ýqyޤ–œæñ}@ªÆn°¢¬Íè¿Ñ -‹aì™'““*•±„iq•,ÛNëyA=²hdž¹Jl+ÌuHc…¸.BÉh.÷çÔ$ééSEXk?ý®FÕû×UРÈ”±¥öˆhÊ„ü-š ¼ b&WtCÊjë¼·•9¹–…ÛlÔ4d–!µr¶9”S’û¢¬ví†öU@ª=wdÌõ¸¯U³;pE– ʾÞóÎJÕ¤(´:S×ÔB+"µò¾%%"m‡9´Ò sÝ/BçÉÔŸVG”‘|<›, ã#à9Õ 22ýq_p†èG¸oôÎÐóÄ“ùïþµ5wÍÔ·]\F• йJm"e¤NÒ¥/v$5ÍÁE˜¹(Ï"†ÈîÖj­ç­üLAF¡{3ò«‘ÆÁd¶ÓeNÃVên*Çྕ{(<Xw]{P\Ãb1 ³g›‡çÁnQúiñ¾sY¯dš!} F*ä¶ÂîyáAÃ(˜˜±‰H¥Ç“Ò½`ór&ÔJuã§s=A—$í /$å¸$ñïHió¾ ˜îa§šCšl¤Ì;OÆÎÓa„UòFìw›ânœT5^+2Wh]‘Ý“#Ö­¦‹ÓU) Î×KÕ«ip^M§æ¸P™è,½æX½¡%Y‰¿}¥M½ ½Þ¤öÂÓgÜØ¶àëáÝ;NµÞÕ®¾\Öæ5ÐB^%3ÐÕ¤FįìûˆyjBÍ­Ç6ºB&¹nÏæÝÙòï -4ÄŸ¢qÑïUöÊÖ®»{C~x… /¯b×xT¦µw¤X+èÓÖÅ}¨+@Õ:Õ܈¨Nº]ÖÌ ÷Þ̬}ѵäB\ÙÙºcÒB;¨ƒ§#;΃ö–@Gs.‘«¹8Öé¢_°ìLáájÝk‹¸qçQgg…†»hçYìŠ~cG¼Q13޽<…ü'ÇçôóúÃØöÞß«³E‡7ÕË”GD¯üö6P]Ðæ²¸Ê–£.6ÚV½?IKt§œÚµÏ;ÖÁtD"Ré>&ŠÎ m¢.µ?¾¯ðð5ª<_€6•1ã®ÐxöWËèàrÚ4몈øM†ô¸¶œÛ)6è§‹wµ,7?½÷Ó«ÞaZ[·sLoët§!¤NSÂV®¸/ç3îÆRs]Ó¤È*žÉB§>RÝén[{†²‹ÒI—‘ݤ;ÚóÿÓâí+TÙí –¨ßE&b¬KÙ­àÔ®°7Þ -\8`ÒˈR$•»Ækø¦1â^)n,%?žw˜!óü·@sã~™ Ù"s° 2£Èèé»Â©2ƒõé 2²§Î£z›4¢Vœ;•Ù© "sò6zŽÃáþAdÎ{‘9ozD&"[dÙ@ލ%u‘´•Ÿ0&H›3&Èl÷ÜÀ×ä•cøƒÆ+\qp–¼åfбߒ¬Ëmç-é°Kõ4€±-¡5õ ËÍ‘ç%"z[ßGìäåŽu7L~ú!߉!PtFŸ;žŸ›† -9 ¢y÷*Ú·³9¸Äë#­C<y®½ìÛW( Äøê»§7_›óß?üüåùOOéùÍ_~úðá»Ïï|þ{÷é÷Ÿßø¿kgyó·/?þôß”ç7ºóëÏ_>¾û×ÇwÿþøùŸ@ÿü„­éùû÷Oòü»ß?ÿ§¯þäüûë“Ùvhf¢!Åö®ã‡>‘gýÃõïûwOM­¿hõŠt‰27B ƒÕs³i@NJêê[[†$vG@U[`éò‰ 4³ù˜Hh“MK´ì€`ö>MPv•j…‚i¢¨k’Äú‹®¥·'L42‰¹ÍôÉŠˆ=æ HãLt#sQçòáA=ùpÑ—ÝÒÚkC% -XMS|8<=/©w$¼ Ú1¹F•þ>ÇàÙV抉;*5{Ú—{“Š…"¥p€”1†!¢~Æ ¡i¹(¦ó€Ý׺oWìV×t4‘-ÅÏj(%–™TFPçtÄ<=2®}SM‚bÚˆ‰‘\ü~Kì惼ã\½ýójÙµë(¢_pÿá!B¸Uý€Q„éJ ÂSËv%ìHÁHáïYU«ºwïc3 '>Ë»»ë¹jmH©1æ툂XÌlavRçZñLy8d‰1-'ŽŒî[ãZŸ¢©Ý¶2ÃJáVÖLâ2ØëiZI"uÑÚôJ4,ùhKHæMM\\Øf”›#ØgrÔ4×2ÃD'¿òDFeM穼ÉÌs%ÛˆíÅsÜ|Å>ÏN‘q^ X&H,—¡@@V§3ÂùusYØtG`d9¸ƒ'd”[ˆég"Ìð3Up®DÝí„ÊUTÆ´IS幯( ¼ÖCÊq/3UpŠž¥ˆå ØãÅ––qÎ ó?fPÌ)ä{´~Ÿf¨d‡˜ñ‹W!†~ŒÅκ¬ñÚ,ºš.%áÆMvy eSX*Ï„ÏêZY–˜ÿ•ŵ”¤Ã=ô{Y‘ÝÊP'û%€4ß$·Ä8Ó!<Z­eJÚk^¦%â†FS¯nèˆ÷oêUbÍ—š5Å (n€™«óB&u»0ÒœŽõ] –Q[S¹Hå0‘7-È$ç ä"÷ß:ËÃd¦ïÇ yë06Sk ,”Œ_€´l,ǹnéˆÇ2ƒ››½bæa]ì•=Ú(à®õVùÕ4q>s¶4dÉñÅqŠVÈaçdÉ7ŒWî”~!·U<›q‹±1y´anéºÇGðiƒ ø9OK1tJî§7@´»Ï6šÊÌ¥Üä Þ¸\Þ!&ù–Cz?“u žÑuna’¿JHÒÖÏ9ñ€Ê% Fí÷’6•>f»•40™NÇ«†ï G¿Ø zï*ÛH«÷®Í!ºó¼…ß~¹q¼| úñ)c£áh줱~ýèÅå+Žsмd45òI {ýpŒ ¢–}Të_Öûœœ°Q¡+„ç ½±—ÛÜ ä㈸åx/·æˆ–B£|#àõ:/¬6ð0w¦JifÈ BíáLE;)w-×Ñ.‡˜ p2LÚWUG:4²o©Hƒ -CÕr£é}𜚠-ù2æo‘ Kü’+Ù*=ë=8À8mvXш Gä””ïÙkÚí¢ïG˜ik“Ú†ù]Ún曌Œ3\ Ѹ‚¹Ï[¸æÒ);¤sqëxȸšôLÏ\M¶Sé•k¾'Øg9\]%sCðÉw_‰ºuÆ7?<½úöûœÿöþ—ÏÏxJϯþüóû÷?|z÷ÓóïøëÍÇ÷ßz÷þüΰûÕ_?ÿôóRž_ÙÉo?}þðæŸÞüëçýãަç×ïžÚóo~ûüúïOßüÈŸðç/Oh~o9ü¿‚ãLjeEâ%Z¶¸þ¼~ãvk²=¦±¥ê£co ó¶·ÑäÞmÛâá%_ ±1,›2dÞžl­»bR8õuŽ˜»^î˜j¤·¡ðÜ6’²,ÎrK‹i)¬—7Ŷ¥7ôy!<—5É…½<`ÆzX2žt$;‚>êñ¢;kH›QþpWm,VV‰ÛÙVhÏ6䊉·ÐqVÚV´ÀÀ[,Z¨>4`Aù›÷1Â4 çµf¢ž«c£ÆŒ³íĀΕ˖?Â&Ûãn_•!åv*Uï¯uŽéäŽ9ÑÛivGI¶~w®#:ÏtfòSÇŽWË=˜+ËrCRËGZNÄ“ç6I69_[ýßX$þÄâhŠÙëi…m=3ßmÅv ùt²ÃvÀÃiÈŽ¤¡1á!ã  RCA2â-ÖBãÌ—Äy¥ÔœjížxsÊèëúÊœÒãsIêý1óÉ4æe’ù4ä4Û|êzw®ru=B€ PBg˜ìyˆ¥Ùõ7sÛ<³r ;ï'¶rŒÑTêxÄjñb_T¤ÔYƒNªy‘P’µ³¤©‹˜”; ʺyÍÄ).Îk_/w¬µA Rs d]Nd„Æhðªl{¦a³$ËÕê\ éy±çxξ6ȫͧtŠFj2µ ÄÔUMÍ!É…&E×éþŠÚn D˨»Z¦U$ÄL#ä˜v§J°‘dНFÃL_¸láu¢‚bÁƒqWŸ^ ¶ä(×N`Õël%ÈšUåÒˆÍÝ‘kæÝ>޼;ÖkÓ\๚R`&”lOƒëû,Þs$¶+ _{9±€'¶Ç¤!#c”š˜ÖÁkàºT9ƲÑ–µct).Sòö+Cÿ嫨’ö²ºn°8)í··ŽÑ 1‡6Æ(¥øJ4¤n.¬d*Q*RYtsjHdrM¿v×ÜXr`'Ý$2Ø*+–Sê~0m,žH94X`©˜¶†’T¢¤çôÁ€¶ë™uïs¤D‘oD¯þÙX™uå’Ñú -´ƒõãÓAÃVßp2šÈ׈]"=Å6¤eM¾Ø»ëà°˜X-c¯ò8#p¹Ô;²yñÀÄ„ðq“=\Îçì/y•u__vÛ…UÏe“ùÇWfn¯qÑÑÆcÆsuñ†»N›tžŒÀwoÀvîÀ"û¢¦ý\ó»§Ã¨#äaø‘–{î|óºÕ‘Q°uŸ5^ ñ÷C¬µª÷”ÎÅÖÛV¨¼! d{}`‘R»©Ì#¥sÍú#¥fÔ-£f÷Ìg²¶wGJÁä%®Ú_ÕÙõL)äCB!!±œ Ræ<zÛµ‹ì‹vâ±#Û îmô‘’{âÞþÿË[ù•ËÛ¯ÞÜzã|*I¸ô~tKZ6¬–â2xŠÉÖ„•ÞÝY°¨•¡jc˜ÏêÈ{Hm‰õ×*.0$ÙÌå qqQ’)¬ÎÝ -[—:‚VâÞæÈ„ioŠÉª4e¨jò@p^©Vx22Ÿ) ÏìÂѰé6`Í›¾‡iMˆÔÄ}Œœ ¤ ]ïa°b«£ë$´Çªj¯l$Ì,#ß¿ê£ÆE½ "júÚ È2✈Vw&ѹ0;cKŽUÏä½##:WjDÀ 6îੌÿ:jØèYeêÚb½Ö·‹0C´LöIM”¼SYÎ0e©ì¹’=É©±›ríBxŽ -õü*¥:Ï›Ptè£û{Ø#’Ð1ÜëzÊŒê.hø+LÜÂò„›¥S¥˜Xã9‚š3€‘3e î1 å¹nê qʳã}w0‰]³#(!"Š^sDm×â9IèKÃjÿȵ–¥¹dlTä†xÆ(Í&"`§žû#(Êíí™›áõ›‡ªéÀÛ7¹å|Þ#O·Ç‚}“À¶­äÃjPm•rwÍv˜^Î7Ñ#Hà_k«[(Á¿¶Ã\ñ6Bö팈çmÍÿÀzv_ôåsÓXj©o7ÊÔ·„®Ä ‚Q–Ã_Mùx¬åZïuë¾ÛEUñøÜÑîFQÇÝðîmLÖrá”îqB#y:SW"GÒA©LÕü/ïUŽlGŽÄN ;´ÝÆ÷Ån÷¹s‚Ž'sî?@"ÉÊú-G2ÚÒP‘ÌHnQV}©4V©%–ŠýÖ)S7¯oÖðlÞ{LO¿^˜%ÞìÈõαۜÙ0Öð– ­øxöÝõûeªmÅqÑŸIï#‘Ûû=wåµßÁ¢/:B;>×lâ‡aÈÕ%ŽË¦@¼†jÕÞF/È2­0œ+¦u¯~Vû H1ëªu·þâ -bÝ LŒBäLk±ÒFà!+ÙÃx¿’:$G  =LÌ*ðáK"Íý§9#þ0¯ÝµJàgšYk p¬ÚÈó€DÅG F–ªG0éØã^²ÂdùŒÚ9ZF¦OÔ¸ÜÝ$b´Õ²°vm.uŠÚMºŽr¨¬PÚW4½Jc¥`F~ÞX«½kì³£¦LÝUöÒíë£ßÅqKh̤îBMI‘M'‹>v½€•æë«Í×5зóë[,Á «¯Ñ1×¥Þ|~Š}ÿ%õ›Sýþù¿ß¿ ãìHp,Küv5íÅl1 DZI>€QÛ† 6öYg‹A+ZªƒÇл¨ÛÉïøÝêê^¢­¡§‰ÍÕ‹J›¹Êüc'5„É "ƒ¨Ž°ÔfcCï£Áý,a‘þ¡€YM‡›†¼ðÞT—näBÊjA·J à˜¤—ËðŠàÞ"t‰â2ÏI.Oùt ÇÔ9:oNH¹^Ûž9G¤ +8|Û -z9ÜV[£¾ßƒ1m¿¬â"Óz4‹L"áE÷6œ¡>|B°Å¢O˜¨ÙKê¯`®$…ü„ÜÖÙBZ"r’÷`'ÅÏM§ ž÷B±\«nI]ËoÙ]ÿBqÞ(ܾ‘ºE~ãéð×·õÛ/73·§¾vÞßKløJ’¢ž¤Ühdšk‘Ù]3p5#¥[Ï$/Ó 6]¹Ùø#A¢3tCR§‘ë âãüܦm]Ö -‘ž³nJµ¥píÓËFsùH(Cè‘NÕûBnO^¬-qoÂ.mÅ÷ÚÊ×*4ÞJòÆ-¯Šað¯bÝhWa* - Jè T‘%!šEœâRQ!/T‘ONP0c¿ZÒ±„õ]øjž’õkP,-¿_B–寵g)ZÁdì¢kÍ·chéê£ÓÝ_ª—"Œ†ácòrãÏÚc¸ÌºbJ.0Oï½é–À}/ʵê–Óµü–Üõ/æÂ-ß©[â'œÞjGøé•›”ÛN_{ŽÝ˜¬›¶—ë÷oRM=`Vf&õ‰¬ƒô¦B/£ŸEqØÒ` jóý²š—(¸ì«ãLþÍbWC¶Èpªr‘Ô°-ð¾å•Ï&n´FmÁ+Ct—(|Ôרï‹L>ÜçzªþkÕÇ SÜÁv óí–Ö; -ÀÒ1V¸¼Çh"Ï£†øª'ÞØ'b¨w*Õ/X=Œ—›€Z¦#Éx½ãRU6sõvª¯‘ ¤zÃï9ƃ(œ)×ù`PeÇ“]K—nwI½–Åþò³ZŸnèÙEËtgÆú‚˜Ë~NXÍײý9öýÛŸÿý%šþeºx,žÛÆzôðÙèïÁ ÙØ~@!i?»Wk°#‰¹ÄX ¬n@®ù¬¾Û9&ŒIÜVd›Û-XX˜„Tp°Ü_6¹€^ì£Ð†Â=yöÆçöˆ˜ ¾ -s[?olcºëä\ˆÞ¤“s>aعܭ47 í@@^q¶;"æ®ÍâàØGØ®#žD©ÖÙCzˆÌ6^éá›)zOzØÌ¹é‰ÈIσaÊ'|õ1^j<ðs,„+`. 5. ¦¼c¸ (7„‹zr­èôÖ‚Ãõbþüû.få,Îñl¬…Z)8€µÕ¥bK‡ì6¤Tñva ©³¹±” †WºL7¤ì­Sɬ?ˆb·ž:Ø'`ˆëÎ9ÅVꇕ0Å2À8ƒÈxÆyݻ֧Í: 9w!uiL—4òƒ¸«£>˜æ­ÄÃs²Ó„o'oõñ¶X/K»ØãL@ÌeCSÿ³%Í›{îh $„ ¹¯W°¸ìYcVñQ¡>}2Ï«ëSb"ì=´ªˆ¦$Ê\ü²±m±}¥.3„´o"Á–̓¸H Rz}5ŒVãMÊÄyﯟ”í/3 fÛïÌo±‹-j”0…‰ÁüaØÈVÄNý*kD¨ÍLvn -Q  å#kRçVAl¸*%9Ò0MúØl$Ròµ}øí«¤}5ËÐW]‚3kê¢Þóò¶NÇô~fP®ï†$ŸAÚi´5«Ÿ«¹ÊtôO¸2t®òM3û]ÖÈ~jtJ^æÊ†–ž:•†O£Õíf‡¨ÎmÓ¤À¬8ïÜnì;&7‰, ”’lÀ¬Õ ±U£†ry#F ~N2'‘“Fš±³~©¨h{®VMYØXb}l Q„Ï ýÄXçó\|Þ˜2Æ»TŽ'«D†uÈ“{Ûy©¤nÙ£{¹1.¶Rcí**#üÛç°i §ÕìtEQ“·hY¹ú±fÒܪßF>Ú§–;„ýÛú»8 r‰ÝV‘ÔÓ¶êHÂxwmƒøò>òÖnˆâ¬±ýžõ›ïàæØã$iR¼Ï°i,çÔIÐù9½Ww}ð 7YÞõ:wg‹í-z®3Jpà¼7¸i£ï(ê€Ì1edµ -Ã}»ÏÐz*~æ@³¦.÷k²w×SØÈè,è KÏ ˆ‰`míê&’óLÊ ÉôoÇ®‡dp*ót'Ù|Ží Ê,µö»aM?ÕZ«Æ~>ll§Ñ<îo‘¨x<|²GÞñ¼™Ó~¿5ÄkøhZ„®ÅÓ™èÙ'­èý‚‚Ÿ5Fhòq\0Û<»Ñ2̳›‘€Ü´,§ìÜf-Ó?À¦mX"”ÉNÊÒ3j÷[k_Iùoˆˆ_Pë_^Qá’•ÙFâðÝbSÍb»´°ß\ã6…gއϙ@BÉW‘Ì>Þ.XÅ܈¼µí#lTðé³­ô‰hnÖÓg 2âžR‡N4œ8›õ”%Ö€vÝCÃÔh C‰Àœí°š-j€l&‰‘åMùˆ)4ƸJˆ ÜŠ¯\ýÙ …f+4(‘å6ÊÀ~ðÔ6¨A&¤*l:mÎ’K¦˜†pA5€‘&€¦ÀᎠ9 8'ré¾ÂÉ–B–2€2áξ5|sÈ}ó+R ç)Qo±Cµ¯vYo[\Zië!^«´‡wO0íž^þžNºH<—÷'i›Éårú°²ÞÞ¥Xyb”t#2 2—Õãø¶ò¬e‹$‹Ìá6Ä~&'­^ÛöC=O¯é:œYÕ)^õèyn,±3Hqv¦—¦Ým¨Ïëݺì¤E] IN=NœÐ3û(©Ù ÒMW bヴ²•ÑÔžC,lb)%/غ(|G ª äªtR!R™½Iw ,+“ dD‘ÕÖÁ‚”Ú¢#Ž©¡)Rë:¢¸±ÁXé=¤¬Ž<ƒ &ºGÍEîäÞpˆ%¼å‘KPì­ÙæV -T¼aieÚk&^Kª¥wóþâµ|Ò默¬ˆ™$,;©à±ÌbûÐȆҦ·R±õ·^ºNšÒ·SÀ ñÊ=-Hàõ‡EÄáhN”¢“"¢a“´ŸRãR˜Jaò'í%þèMÉl8"óNÒh[„>ô9)r—i‹üTKE–$žípP ãFw FcMA¶ÀÈ–¹-ï×Xµœ“[£é.%–#½[e÷tZ6É ;wòUÂÖªöJ#3¢Ç@É^ 7ꑦd¤˜· À`Óç®1–k¼Få¢k©ãœ·³Hfõí°ë{Ýç@fj6"›¦±î‹=E)kæµÈ\åªyjçè<*½i#‘Ú¤ÌøC™íh“ÎÙªUQ;…0¯Þ–¨õÚ-*0¨ÒÖµyj·SÉ cÆÊRô˜,]ñ#r\³%RTLÁœYd~é8r;‘]Õ-ŸŽ¼O,o\>j˜í´QUqÓo1nbÆfµ³©APŠsBœC7j½‘j"¢zl½_Ku}Å5q_ª®¯ó]ÙɈ՛žqÕÖQç£@0ï<Óé[žÍQ¨8ø"Å ¯¯Æ -U1lM%©ùqͦW2ÀD#ZƒæcraoØœ‹ðê¾Ó@N¶Ò¥BÖyØî(ðQÔ‘þGžzs¥cf|“ÑïS~‚¶ŠO=¤Â´j•q¥®85›#$)¬å28»Ñ~ˆd¼º)³[cªø–}‘jĶm¤L²†l±ÖÕµPæ¶}•>B>í4Ärq’Ÿf¸¥õóªäìwR€“ìÚkˆÇe-â±Ó^]¶ð®³xü×iOoô÷âÍåæåë{øúåúã%\o~þüððæéþÓõ~Ý=>¼~ºøŠo˜˜›_¿|úü·éz#_>}ùx÷ÇÇ»??>}úÓ3Ãõíý¥]¿ûþúöw|þr=›hr¯ÄŠ_ D:EÂqáãçíËÌqÕ»CÙÉ€qΫôlfV,ƒ#0çÅ,É7Ú;ËðÞ!}«?étÙ\÷ïfTF ML1Þ|¨ÿPbôm‡|/•3(¥lÖ+s ŸÐî§«f÷bíz„«,Õš”6åôgH̃C -À +s¹¢U ®„RÒˆô ¾H«ir`®9Šd×Û3Ô|+]7³q;öP’¯Ãóê“[ñ™®ü¸¥[( ¹ýw>ü'ôþÿ¤sûÆt~ñ×7f4 ÞþZ&êQ¡8¥kB‹††F&M£º­®EHKFÌájV«¤ q–ªx҆ȱ§ ¤us6 -Øxfµ#MG®æ‡ óZ¯¾wÖÚ[™áY˸dãÖêdˆû#^«†Þ¬µDœ° Y|ŠìaYÅí!5   -$4®ò‹o‘ÄbnáÎÉ!ëí,H… †gßÕdÝ!ÜÄZ­ÑÆìXsÛŻ ½®Kõ^Ów׿¡{þ`@[ endstream endobj 209 0 obj <>stream -H‰¼—ËŠ_ÇÆŸ`Þá,“9êªî®îvVF&`È"1ÑVŒ¤ ðÈà(à¼}¾¯ªû\"mœ@Bÿó›¾Ô½ªÛ^MêöôPZÛS±‹ª|}ì{î¹o¥ïE[Û^•f樺Ô¦ÙÁu`M‡«}{öM­å⨤âkz?—v#U?Eûß4vÍ ¨í-qÉØKÊþ-)Ù.*}î T÷®Y·óº«ÔëEe· BºÎµe¯’š/iÊÒ–¼úî‘¿¾ÿõóöíCÚ^ýé—÷ïüôîçíñõöåýŸÞ½ÿ߈ÊWùüó/ÿZ@·WÜøÝ§Ïßþôñí?>~ú;è°3moÞ=Øö»ßooþöðÍ?Aþüv²âÿŒØÄ$NÚ+tþáü÷æ-4B´‰ÖM3$¯‘&´tïDµt*iˆÚìk,µâ@¥Ä -ÃhMÛ³š:’n¾&wíqp7‘ÊÚD$0[Bb>ÝPjMb›â‡ÀMÙ“–—#ú¨ër¡`DÕÓ *4m¾) Ý5ýX ÿ—]+Ò@l…y¹îZLþÉ@Î-ä€âT¯RbEŸò(né~N“Ñ|MªÃX±è2òÚD¤‚›z›—¨»îó`€–óår‚–Öå. P§Q´êv¨¹ÀÅ =}_E¼ú¢:ÁóŠØÃ½/Ž´ -I+^ÉÚž‹5µ ¥ » t„Ø ÑÖ†£TÄטš[jï6üZµÍN"R&mæpsm–¶é¼èD©[$¾Ÿ_̶0o’YoC:KVˆZ+%4Б ©bië;¶h—|]¡Ò=²šqŽÀÌæždÕ¯éÒâš”`1‚‘#­{e&3ú ùÓ˜©7êà·û=éÚ»,áZìi5Œ]­FQVï+¸x(ìªXóŸ7Ÿy<$6Æ’­ºSQÚvÈ --•S„äð";u¦£Y]«x($Û¾¹çÙð‡xlÆÂ‹wTiæ'EÓ(ÓqŽÔè°5…xR§£GdSnXö5H¬Ð:ry‹e&¢5ËlÝânSN&«u³ õº:‰öˆÝ> ]÷Òf\xU++v[²X3:&©GK­}ô¬–zAÑï%Êå’ÎÛ™^ú=¥“Õî³o£Æ•äéÍj¨¡´RÈh &QÞË<ÚÁh‡F’#XÅB£Á9‹•q¨M€«ï)H!5Ú{óÈËEûy]oimri¼ÿäY(/@”Å©«[µå#W›AÅè\fñÖxÚŸCÖ(â3&{ee`Ù£Y›#fí±^}=GL&ç×1[‰þZbP½Æ¶Ç{O»dŠ[ŽÎ T†ݳp*IQ­¨! >ÁLG o—](PB²lšÍ“zŽ2 œö¿ Ôh:?%{;‹!Ù/jÿP”ÅFD‡Ð”.lõ‹ r)ºÈÜä%Hsœ›Xü…eÃkõ@@ª:(Cg6úxI$}øšÞ`W‚˜ÂÙu¡ô3…9 ^׌ä@KÌðuŒ8v½ FLÒ‡xÌûŠ)K8ç—: ¸º^E²k¥–ÛŠ£ -j½ƒ‘—Fž¹^=Ê2ƒx/‰9À«{g¶°]îæ¨f Î: ¯áæ|‡g‚÷SŽM(‡ºåØ„õ6ìòN/Õê™LûÎxµY3]'€Qí0õFø&öýÃ2 ÿ\¡«Ìºuñ5×í°?Ê>"àƒnt8È•¦£ùJã7g+vÄ5µÄ”Ϙ*±D—¹=‡q,ÇÊ/rï·Ïùåÿ=çcŒNô™ê)ùâ¬í`$59P–Sÿnø?z£¥çK0$L‰É¾ñ9RrŒœ V¤J«+Ý{ìoÈ ”d|‚±èGxy³zŒF£A‹Ûc÷.¾êBeüƒ‰øXN‚¦î¤™²“¨ÇÑÜ7YvÇ}B€Ëf¼7T#‚.i%…Öî·±¦Ç.Ñç:Î:t˜Äí¶*Fúr[G’™Yçé>Ÿ‹Þdà¯WA×ÛàTåB…/LÚ°¸.ÙÈaº&“ô6ÂÀ6ŸÆ‹ÊÝ`)VI.ýâª6ǼáÏñBà¤8~¾Øí/áÁæ=€ð¾¼„ÙëxÓ¡†ÞbQSÒ{´Þcši(Û÷£™b˜?aóŒvëéÂ"nG¬:IÅ4RÆH:ã½u„™•3kgq$ÑÚúä.}=n;âð‘ÓDšÎ?-û*–ƒ¨-Àa„€ƒÇ¼¡ú!#j>€ÌIýá‡Ábz°éƒ–— *ùrvÅ]r»ÄhµCBÎ%.Ä5qp3ÈÓ-³ñ~¦öiZ–ö›ÀºÝÜí‘WW‚´«sŸ¿O_eÂ/E<¶´ìåδNÏ`X~ät’“„ÙG÷érgÃSÀ™T›!•“k4\#—¡EØ‹Ž£ Kìš7çÎ:Ã…§sì V ,ÿr"ÿ÷oN®‰úCíB\ß¹k²îj=ÝØ82wž=ZdåÅ#É8Š€‹ v8,TéSÌSá~|f±§ýrÝH¿0éY™De»z*$ý>ýæÿ—ýý×¥Ù}\l£N õ5Ìœ!sƒ©sZC;çd®Q;¥‘`÷ƤÃwI+)fMKû|Ê}l(`˜„¾&ÐZÇ|Ívu=ò|øX¡‹Á -çc™W6ƒùðLÍ+Ð$ÜG¯±ûœ«ð h%îó^IÂú$χ#†3c¥È˜ÁJŽ`)1B’ùìL‚Á¼8©æó¦¶|ž…ûìeŸbízPŽwÝq]l+|+)³žÄžD†7I–Òø7öI˜ -² <úªÄ‡ÞcÎk„Æ,Û ŠŸÎ¦<Íž‘—#Zpç{—ĺÝݘx9v[SHË-NšÅ„]vnDÍ_˜76K™ÎR2K¿Îr—!šÉºo?¬kHiÞÔ°¼ÛÔ.×XÓ¤ö£jÈŒó1ŽÄŸdµ>Kê1I5J ?,Iô‚dÍ«×û O–JÔé>jÛçü„Îä… ¤Â«p±}‘å^f•êž´-žKŒaO"åÓ0­Ð/¥òðã5Û"1ÄÛ5¦Þ“Dªùûç¶ÊŠÚ<©Fª ¼ý¾´Ä„’k ¡’ÅC­°@¹àŒ²xöª„z­è”³þ›ø2G’¬·ð t‡¾€ÁՖ̺EGÈ›û»Jl$^uš"$oú›" bÉl}[¤nõRÆì/Óäì/=—ÎíBDÛþ³£½ŽF;…ˆÜEtè¢H8òY˜°ÄO‰(R%»yŽ£Ú¼x«AŽ÷©?j¥Ûæ~±DNŠ'FÐÞ_¶‘—¤åðϱe¸¤-Ñ–1Ò4iî$秾ȹ«ûM=ÿµ][õ¬L/”Š‚}(ʉFµil¬0™ŸäÜ-1@ÚÉ‚_ó@þóoéD'Üqèô"ÏwûþíÑZÿ?£µ²ØÖŽÆAÜ}´âÕÈØ$­LÓ~ÕšÒC:[Ad&Šú±ÑT%?7O¯¿¹Dn©6Q¦¹$lú” B—²”˜ÛUBQËM®1žú+^kúNÍæ63ÑýžÕ26ÎÐa$£G30†f¥w !ª§L„‰-Ѷf=¯m±E`{‘Ù"’$W.Õ[ì¥]b­¹U^Ï_’—[éfr€9OÍñöcYÒ¯hº’³ËHÙ3Ê€i›6–tÖÊh‚?lŠíZŒHȘ~]ºLsE6ÅPFFjL1'ÝÆ°­;L{KÚ©A±6ÊßkVdvN?U‹qNŽš\ü¸ -v×Ð ñcuºäY¬D‡™…S€èoaˆy‘´ë2ÓÝA5Ú[Éèóë9±W¯{>~5\&Ü|Â=¾‡X‹…I‡šî§îÁR¯Ïë-D±rÞ_[í ”¤i{ 'Ri”GБn“Èy¾Ã†Œk׺ۊº'ñ+™1WˆßYVæ$;¦ô™)¤‹XÒw›ÞHžMéõ‘ÅÄÄ[«^ˆÿÊ >ua…9PÙÅ%/f—’¾½4×]|­g óô*¨ÍÖu’ykuˆùh·`(ýÕZÝ~ÕÝ¥bø“‚QjXBVq6 ›+ív¨)Shç|sbùÏJùW¸Õ,”w‚ú*½?¿‡[©<9‡š*èÒ±¡È‹þ\nšN!Àrˆß&i ³>ƒ‰£LÖòéÂø>Ë!)ÛëKæÏÝ ãž?‡¨î¡ÇìPý¬¶ÌÞn÷뉃£°u¼t%«]ôËj#Ç9ãæè‰µØ½= -בŸÎ‰=¹?pú•'ÁÙé¤ÊýÜI§s¦“rçÜ'1ÓåNúžœ?a:…àÁ4ÅãåOUæò^w¢xŠV¤ÈíavE¿,ʲì0mˆ¬#dnz’!—´×q‚x¿Þ(p%°¡³¯-oXá/Áº×»M%5Òq¸±ñ“;ñb[”ØëÉv_O„]‹×$y¯ ×äç–vH19¨ø*ý‡š­A¶L®„x^âVNÊü°—§Öœy%Hk^¹ƒ{&vpÏÈ@ç~Íד=u¸¾Ý{¾GTfê|‹{‹cÅãø*¾J¤­O„×y¶à[ÜVΨsj'Û9{e†CöikIáÄ—‡K2ºèãÌRÁ3Í™’³×òfÁ!v¨ž\ÖdÞñ•R -’ïIôäüL7|¯ÀÏìw -ý‰Cùw² ÌÚ^w²¤[‰;¾CÈB|*£$»“%ýv·¯ÇNùÇ÷úÛl™˜Ù›,I×±’7“’7Q²èáM„µäLäoéÛ×™Äײ3Y"`?Ì ˜‹¶0' {Mæd™kÈÞhÒXÉ›ª6cdÉÞ$ÿʼ‰l>÷¼ÞD¾Oî뛀q›3yª>CL»/YÉo¨·±“5©Ù(¬jê#°ÆÚŠÂr€”Z„¬…dcFVtg§å^zþR¨q ;ÞLúè=¶$lº›õ“—ÛÁý~žQÉ™•>Gr&RMRþ7š ‹Î+XÌuR홬‰Ô¥¹€Ó-œdk’eypwŠlÉß‹œº§:ywN~²3]ïäð ÂÉó¨S ÎìMnÐS]ùüWßOs‚ÿ©2Ͳ9 v=†îØÛ“4Ùœ€Mžüp'ÂV­ÉHrÕÂÉžé'™M4 -[¼’=²wûzœ]Éw’êÁ²T¿+CªßÝCªç3„T¿'uÕ}/“Ïxÿ@˜×yôB¬ß§s×q¤ìóm^ÙïÊÖòeëÿ ¼åÿT3Æ? Ý×ßiœ,ë*ÊèDé`æ“n$݉¥L_Æ(ùÕÆci¿gQ±ì¿éuHâ±´>¾4дaYñ0ÂÖ$gП_ «¡+atS@ð?d[ín'‡fQ!dÆF³BÏ=ÈböeŽÖ?j«ÕNp™ªN!š•ùr¦ag”]e·Q¥¤l¡{êýª¯âe9¤ø!X¹‰^™ØKÞ,3ª*óî^½Óå3Ttéý8©Ì'^ù6™èu]0Rþz"5{is±s=¬ W„-ÅHk©|NìõdÓƒ™×~b¾öß™˜ØÇ'<ö—™ÓßöúÄlá׳Jüõ†dp(a/ó©‰R‹ÿfBn[ÕÕ²‰  ½ªQJhámÙ†e…¬™Û² ƒ±ôäÚŠ“*Ù2-ãAÈŽµ̺f«k:)pBÈóÂVи×ýŒÈo(ÄçæÇ¿þÚ ‚›SžhWT¿>°—°-Z îhŠ*€ªk½¡)¶.O…iž™é;ÕÁJ–¼·¸BM1ìßz†=éU„TíAB(BЦâ7bÝtݘš;Âö®ò«A±Ns]#ˆì ëZÛ¾n6d 6@Î ©sl'Su­@Û6'ÕâBVAzh⩬é³D™úð0X·D’y€²Q ÇÞJtÝ*:ÙÒ¯ô(Np-!½Ä lHApÇZ•Íq(’2hÄÁÉ›èà¢G€Òk\­W²Haš”á=ºV{S0^Úlýƒ2LØ1^È6¯M{Q$JØ·®Ëû%LµÇº`˺7Mm «#ú …‹G…ÄŠ}K'[+Rƒ¥OƒÌ2<,(ÒÖËj¶Nv­ø_B­Áó댞Vü žú:";SÛ+ãwO'ø“`b-UäO¬Éÿ›Çð=A%ƒ 3û‚ê‰[ ÓæòÓ5˜#5âž«H3ˤíRmÝeèºnË)­ì¥‰°X«åÏFéù¡ –üª™˜“·Þø—Þ£’¥Í–xêºÕTŒH*ÍŦbìÈ4Õ• m©±\¡ õW¸B½Ÿ4 HS%öj\3ÓYV·UnQm%/ò3T@—n¯@'n…*Ð sR’8–Ýeè2Ôå02¹zÞ\6¤A¾Þ­ÿ_6+~åF‚~‡^&CˆU¥RIJVƒ!0ÐE2Ä[c;ÁöÀÄÉÛçÔ‡tuÛŬ²ÜÿßHºú¨:uŠƒ¥ª”èR pÍA­ªÍ\ŒÖÜÅ–4ŠØ{X}°+õʇcrÒf:¦ðU‹]ÞkäÉ/‡æKoc>ηà>’öÚ­ëaôðuÛ4Ãý`K;®Ù¥Ë~át»éQ ‰˜íc´Á‡Û5¢¿Ûûýj¸ä¹´&z§í®LJSÜ…¬žfÞXÚŒ•7F]üsÙXæµ–òŸ£±F¡hmI’P9ǰ ÎÚc\åê$q6+ýñáW÷ pXþ¸%‰§Ã©óví Ã,*çUv?ÛŽz]Š”nùÞ¨MÙà ÕÝ–H»P¾'Y åÉ¢©¹zsKœ$-ßÖ‹Å|WœúïÁkeÈìÛ#ëµÈqÒ3à¿MO ³w#;>)Èàg/¿qQ«Ö==ܼİ7zJW›u 6!­!Cœ‚ dATíõüFt~»·­^>fv‘„HÇÿ3'­«ùìÛI·µÝë“/Ž`¥Ó?P²Ñrgæe*™.Ì^Øfí©.²½€9ÿ¦—g~&?ù2Ï~/vîålñ‰5-¶onZÇÎCzW<éó"l©NÙÝFÕœ¡o_9±˜=èuk‡™x¾³¦Õ›¸˜lj%ÛX»\QJÉËÕ’¬‹¶©I\3Ê6è>iR=õ+b€}ª¡WY[Œ âsÓ'YvùdÝÖ¹R\àù½)Zc^nŠ¢bø¶7iÆ[9‰™<ï£òŽ®…®‹ô¯½}¸]wìé|’Ø÷7÷a9¾&0¨ö¤Šss®èò»˜e®Œ‰œÜyjR¤4Ã[¾XÏ‚ç»Þ|ÿÑ_?ýòõñˆ¥7úùÓ§¿|üéñwñëýó§¾|üô ~þøæ/_úù? ðã›øý—¯Ÿßÿóóû}þòÐ?>`fy|÷ñAóÛÇw{øîߥåñÏ8¥G3þ­¨cø‡©QÃÈhtøãúïÝ{ïpÔ:H&8üg?žšBofíK+‹Háh_¬ôYåм€å³Qݪ{+fýW¿ïº¢é „d%IŸ¾ôÝ >V®Aðñ}9fÂÞDۅаï3”§Q4gÊ‹˜y»Î»È‡Ð6+u›¹Þ)üÂ9SâùÕWPž{° T:w -ÂV¯ÓœÄó’™Éœîuæ%ë¾ ¨ZŠ1Õ€5È••tÌTƒÁh{5•Aª™á¸òY‰ HZ$>¿Qw/•½³0¢Â¾PÓ’csÖwÄ^Žòêa¤×+°ˆ~2Y‘˜…Ž¡O¿kØFˆ{Á­'rÏË#sÁs‡yê”Ó`ðÓ«ÕAÅ»(´"’Ä+ -EO⚯6æš0ñvçLÍËI7űÎ7ö`ÅÇ{Rj%çM²ÄÒh¢@êíâ=´ñb¸•Ù<6÷Óóî8?Æ3Žbù9 xS——IK‰ÕÚ`T}”»‚#Ñõ÷­•z¯HÄÓ«,uõ -d¬˜¥r³š•²öøMVû ô’¤(e*a+¾_»ïå´kmÞNSëmüÁDfjÕ¬¬ñ`‹Õ(„a¬à³þ³R6ÆKF™ežcp~r„J޹Üú\»¯UÝšVsZ ï9´Aôz4ê…žNÔ·Ù».ô5–ïÍ =åC©uIîÐà7ëÁžN†$à~1Õ„^ÌšŽžWlÁne›öt²½kñc„9€Z㋜­$õÌÀ}äɆk…†ÿ bÉ¢sôƒ„iöt²Â÷té5¶ôw›]©åNˆŠ„i¨ÜúÁžN†8JÓðÍÜ_oôÿbf„•@û's„ÙÍÐC°𣔭\‚è"U³Ô „âË…¿½1ëé‰0”N Ýó uÑ,ƒë¯Ó#âAÒ¥rZ†éáflª„u^S~a7õáÈÆbáj™çDÈU›ºoá!BÒ| %×{ܨèáü0ïÄO|:A5Ÿp:† ǰÐåŒÐÃ2ˆ•N7Ë Ö‡Y]µ_LÿtR7¢Æ,ä—ÖNÇ`%£jø“XDQσ4+šáb“ÆŠŽÇ}€èeöaq©`­|°HFuó±gB‘Ä è^zD³Ý·6©žU‹íó,°ãú¤$ÖV.1€üñA÷º×Ï£¦ç\<¸&±>¤z# Ž%n_;Š©ûc‚¢Òh 2Ð#ÑÙŠ.·|Oì§WY–u˜˜Pjl¥on¨Zjn«K’Žw0"=Ï„–®E½ÏdÕÚsCœ·¡bÉ«áXä”óŲ;k㜉\ϵ­ —zߨôæeïâ\Z?Ïr#…bÚ…¸d9¹)^á¶6YÕ¼í€J[;HRzóï_ç(&·Ó: ;¼oÅ™Wéëîbæy¿¥Ë‹W@[»^a¿Y)¸½'!oÀÎûöÛ0HKЄC¡=wž˜_Ìó Kôbž,îH´yØ%ÇÈü/ñUŒlÉmOà;èV‘ ±Ó U9û÷OÝh3|«U° -ädk_’FcUæI1º z$"Öú'Ân71´¶q$²ÕÚ‘¿Â<'áïŸ ýzîs_<»Õ÷[C¢ÕÒÜã:2V®˜}hõgŸ›V*Ó³ªs[L9þÛG¨?B1âEqµGElEñcÆL9X©}œ‰³ÝéÇ*rDìüˆÈ©}/FK×»ÕÃËI¤í ‰m!4ï"Ž<‰ìDäÙØ~î">49òÄí9}µµ?.½­T}ý9{¿îÇÖÿÅiŒ# -…ðùÓ«R]Ä^Ï`ÚÒ@Mwp. kð+’úŸP‡Ÿ›dož ¤Zžï‘4ÚÞWW Ôá*iL9¥>¢ndSíBîi§0êYëÖïèóSv~h!RIôô+K2Rr¼ö„—1¹€¼ðåWÔ]þ”Û°¢KäÉìéêógËï«‚Ù`ÇI[Îll_å7‘Ü7õ4¯›y):/ˆ¼”…_Û fÃêd †ïÖøýq"?ðâë§X¶óû»¼ø÷¿>«Çx1÷`íýöìý/9N¯ÅJW ëñíš»„ì(ìëÆ’Ã_÷ÞŸaÏÞ_-Ûù7ËöoÕkÑéÀFû`ôMHù¨ÀZtÒkp.8°ÒÒhnigñÏrÁÍw`»ëŒÍ9rçnÑþç¡Ipd„ ƒ K"n™yÖr˜¹q KËÓ“Ê‘vG\¸OuEè’Ÿ3¥G¢}’÷gÐ~Ù'¼›@ãÀÄíýMÀå9™Ã=¸›ˆÀÄïØg“ÝØ–ÍªÅøp×ÎÂÐ{t„Bhˆ—¾³2bÂQ ­ÝL.„®L#¤wQŽ‡Ž ×Q }åAm—åŸ=cè…™'7=sÈ}/Æ!ï: ¶îœyÏmŽfË­¨ y™ŠÜ-M·ëzÒpŸx•z¯€–fmCð'“½H‡¡ˆðêÄ -ü7f¥3€Úrå.¦üD‡Váɶ­Dø,P˶Gž jƾÔcðõâ‘aÊpk‚7œg²\Ò¹­Þ`‘¿[ I`²ÝAÏhaDà ‘0þÂkÖYÉ2¯¸C’Ë¡…w$s¿¿YˆMØbç:»¾Æ]î%%S§>Mx—:­ÙÙ91<Ÿ÷’Òv®ZîÁ€˜ hi_±OOaÄIÑZ¦ Ùyö8;;eaO÷ˆÈÚ'í¯ÎÙ³e|9Gši†¾H ``C <ǪŽløC)¯ìgg³ß%²Ð~·ÍR~ÑÀÀS¡ i.*ÍÇ’Q´LžÁ?hƒ‚Ùµ Š<øZy¾›ê½J½ÇUè|=LQªÉévfÊÆ;c@)³1éf5,U–ñq²ó{ÈÙà¤êÕ·ÜßÃÿ†ãâ¢îfï줋‚ÛÎ1-*@-|¨â‰=Ô?6 žÌ¢›ƒc¦Ièn„ˆ g;­È>NŠ'à g$ºqˆp¤ïFDÚ² ¢Û:÷*BöΓvgDY®ø“4n²*(¥xoËÕl'|)kÝn„kÌxX ê~T»#Ò;›Šmæ Ï‹ÖUãß®'w5Eb&j/ûÄ…ýÿÀ´xé÷˜¾³ù?ëȆ®œ3$`³ayÃîP›³úu¹®ax¹|‚îZï™zž Hc6ŸÇìîx[ÚÙ|òîÎ¸Ñ dZºÏM]®äÂcës,2'5T‹s%®·BI±ÖãY ¸a0Åí!£ìshEËÛMçjH÷³Mß Ô MD0£ëØ\µÚÙoˆ5Ù¶â®Î+ºG^VTÒÎÍlV½²‡ºÍ^¬»ÿäák2F4"ø¦‘ˆ/žECLð<8"k'²VTõ YbùHvA¨b.j#?7[ÈÃÂK]ëSä^ÄI·ïÕïàÈ©¢ÎW ë¼ÇIÈ^^Ú¹s‘åŒ`Z~­å8¢î58pù}k…45re®6’åè4ÝŠ÷;Xá^ˆqpߪ>•¦0ðîü®UÓ5¿ZtVc¬*,…æCÅ0õ x/Šd£˜8Ùg9ZéärÞB€HÌTèÏIò¦¨TüfE"ΰ—O‰pWk[îU1dïiìÀU©¯E¹ª:X‡(Ûâœ'º a‰[­Ûµ“Ϊ_“_£/#öÅ$¨£ÊuêSe³zDgqÇOÑOä•‚C¦)!ûŒlÖÿÇyÙ´úuaüÜïp—m(DÒh¤Q» -BàBmh¶&vK v M ýö—gttŽ»iÆþÿ¬9’Fóò 9Ñ&ÁAd"7 2_½ã¹rå´úP¬bYiTö(™:iнÅú[”ÑŽÊ©¢ý£ {í–ý^}xÑÖ ÷U㦼hKÉ%^Ÿ¢Ö·¬ì¥‰}©ñªÍºNÄ…³`œ©¯©zwÅØÕúÀ*ï´FVDØ<„Œ:`f \åê|ìG#晋d뼘9ˆ<›4á9#]k©X3JÈyMå5˪%Sä U¼±k8+u1™Øk°§îPO1ŠÎt0K3jù!ñ Rqš»i„ÙèÝL%>‡¬&ˆºê4lv2ŸÛwH²®Öb·¸ˆ)mŽç,%\>v;UÖ]†3Iá"ž[½õ;X)€ô­Çšž¯Y>mØÃšÚ -¦Å5Q £œw}h~{ÍÚ]„`×fƒv—X- -Z •*¤fÆûp:aÕKÔ;fhe¤.0Bœ«2äø1¡µÛ.œ²ÌÕ…¦£ã®Úð"Y 9dÜ›×Â)h5¥ÆlèÓž¿‰e´“:¦]ßËEV}8Í/¡mäãVªw.:I‘kvµZV.ÝÉ1ÑâHZ–õM^cë´'ÜÏBoÒ£"pu,‚K“Ĩ|!¡-L Þ…ö×/./3ä¸fN)СØºþûÿo©¿qùâ—ß4‡hÃÐ)ÍzL5bö# ‡´4p¹³ i–@"X5É5CÀŽï-ëㆯ3ý¹¿ÖZ Äüz9~»A}&úêùo磨­çù ·Çù4 šú;já@cÀtZátӊÚ[tk‹†„ Öõ®5˶«ÄTa:{¸ -Ó±Ò'@6·²£‡©K$§S1]½>"-âð]ĹÃbÊÚà(+N×úvüÀšÆXzáµ®é¨qj36U1€ÊË1¤F´Ñ -H£`S&œWKk„’=€ZÞT Yˆ}!Öâ>ùfÊzô©ÜkŠÏm;§ ší~Þóá¹Cð± GÍ+àöZ3VÇjÍV™"ãKn ËdG•Ûc™ìØÏ¬:2õá{ŸtthGhbGÓÖx˜{‹hî*†ÇºK€ìM*h¼©²»© ËÜ1Ç]·:LŠñ±®ÀçŠôìŠD=]Óq5TœB©§ãbÚqZ LMR¡AкZ,›,¢¶ß4mp -QÅ2ôK &š·ùRƒn¶œj… ¦*j&î c´:’&tʼn£¯ÝTÇÚÏÖ!ý aÔU¥}?Ê?Ôxl‰£ƒM×÷Ñá˜kÐÐDj+²šì-]÷ŠWd» ©¨3&¢aeÇ?/i:ÅS°†Å¤,Ñ%Y·àSÛ:² 9Ä–¢ôò%¶2jֱΥãýk|liv}?6÷æñÚû=[ú¾i w÷ˆÂIíæ7Ý!B8·ëF=P\ g.À·DWÓ¥ù ŽÝOÆ-$›]Y gnÙ:\×·Âm!c Oxë¾oÐlx=뤎¦qbV¹yÔÝóivÀ겜á˧>Öíº³?–qƒM#3Âp¶·—3÷®xÝ7ͨ>üqÅþöÛ•!Û»W&‚kh¿nüxš /ûY"¾i~~ñíË—_}Sëß>üúóë_Êë—þéÇo?½ÿñõñëÝÇß|zÿáWý- -þúó?ý'A{ýÒ ¿úôóïþõûÿðéŸJÿô¢–åõ»÷/ãõw¿ýîï/_ü¢ä//E;¤m¬“¶sý«UÖþ¯ -Q´9Û\¾{CCuß‹*xÑêúÑ¡‹c‡kˆœMJL4D‹^±F{õœ©€$š»ØìV¢¹K±$ž-:ê’¡‡Ø3S‰ ´.“÷ލ$j[Šðjø\·æê(d—¡¸€dê+7eÉÃív?z^A› DAñ¨V´Ï"ÖgÃÒ¡ -é,YU‚Ð>î"Oe :tq|ê !PÑ# må´l(tV&ÅŒZ - •˜cKõ~­Ñ¸ÖJ-.ÌÀbXÔPi:«›zþ2ùáˆöƒS‡ô -K®Ž>; K £†: ,‡tdqäJÊtÎe*©`¦äá¼»¨ Ùè¨ÅâšõBoEø±ŽèiÙ¥ðg–£Éz¬›]äzõm©¥s]($̼y}ƒ-'š’¾+¯ìúxò`ÚL¶±‰t0˜6¡¨¯¤dƒ„‘‘®+«g­¦™á%°›kåëûÔ§HdfŒTIÃ58c‰Ã´—«µ@5œ©Q(‹`ê½ø‚ ÝÕàÿ†(Tw(¡ˆž°Û@ô„ÜFÜe’Ð0ñìˆ;Ð*y=Œ V®šëDÎqÂ" ‚z8$†I»^eì:=W¬sV†©éôŒ„X‚S¯ºicT<6g ›N­ÿ%¾\V%½8þý½LLrF·RIÉʲHL¼2ã03gÎÛ§®Ré›Þx“,Œ}~n}ª›ªþÕ§¡0tÓ0{6½!•ié˜ÐÕ…”ÐÊi¦á²AÚ½»H„YÀ )rAýUŒfA"³¬ú3œž/n""7­xFÑtë2M•Ê~<¤ª ÷éѬ:ÿŽ$r[·:¢éÔ.GykHýò»Öàú5éf×£S•výZÖeí<šUoÅß%›TŒäíÄÇ?tÚ ·kÈnT¨øÀSQ1ÇçÐ5•áð -OUb[ôÿZqÔ+Ê©ù†cFL’ -ü&´WÍ)ªrÚx…<]䬖øÌ/ôöAÈÆH¨°„³;tp3ì­[ØÐ§Ýk%aòNf%^U(n(Hw2AC¿f]ˆQÉžÝ+™Uµ jö_ÑÔÒ¥O^<“>×¢ÙÍØ:òÐÊÊÉ?5›~ %1DZ¿§³l[a‘E‘I†`Ø3j[fÿÝ,ŒÑýcP->š=&½®ý-d0ë°_¡ÙªÚäDç:¹`³`¬uÀË•a,cÝ2zÕŒf?Š”:Qóâ~ÁÀ–Sü”F_ˆÅ””ž§sVó: ·´`vˆl~™20"Ò™£•Ëﺪ^ùZj‚=)˜RñqOë¢Ã)?+ªW˜Ù.2=¸Rƒ*1LÔ œU…jFq½e•:® ;82XÅp͉4AO ™8-[™èÁ`.AÓ°“}Ú¹VJȹ\ ë> «…¤¥ì·Êb*Ùß -ŠÄc9ZkÎɪÃEz‚Œ ì"Q*z”"é¦ZD8€Jz—š,Ò¥–ç„vër?5«fh7¤Äë£.-»ZGC4à 幎.8º´tFµ)Â6€e”‘LŒ¼™¦:{n)xA2¯½PUÏO™±ácD€uz¸sL•~i5˜8¨êè´UIÞ¦¢¥nHñøÑ^}ßS Áas‰RØQè†rÃõ° šHIÙÞºnÕžÚ&¥ì¼ø0Ÿh¿j>æ†U‡•“žšÌýT-ü€]‘Y4õìã¸zZzîK@˜OPÊ9ðW•ÆéžuPž¿Kõ2ð©&®ÓR“áW,æ¢(JºÛžâ‰ö˜ º’v)Cú­4¶žè¾¡ÄB“‘\e]Å0û2AìhOyEt…µÄHZdÕ[>±jy½=Û¢W‡JÝIŠ`PxÞZ# Æ_TëRÅ6#hbz£Â_åo€³ê¾³?V[¶£ëRYsLÿ‚Îoœhª‡¤í­H°VU£¶ò1¥v›£Šþ9ë5Må‡*k&_ÐMao”½»oXuCzÜB6žC;~…z gmæaÔF;m–ìDß8m&Þ,DšÆÎÂć—…ô!TÞ®À3jmÆôœÈÒx@ú ïç×È?=ºo•ÚQ̼¢CCâNC«Û]%į>†„è!±Ð„VãÃ+ðJfuC6ôMt§ö9“Ã_Aéš«žÜŽPvÛÞPžîW¨a÷>ÔºEéïÏžâã9üñöÍ÷·wß~—ó_?þòåþ‡[º¿ûÓÏ?~ÿùÃO÷ßé_ïß>~÷ùÃÇ_èo:óî/_~úù?Êýüöó—Oïÿùéý¿>}þÑ?ÞèdºÿðáÖï¿ùíý‡¿Ý¾ù7‘?ߨÎF³‰þ]©ˆ¸;f ±Ëã´öÌÿcÿóÃ{•™EMÉô_Ü–ßÒÜ„I³„ TU"…[ B—·¤”MÖD5¤>ìðÉÚ>ìЂ¦KÛ Ev„W½0Ú@m®Ù¤­ÛJp˜vVÔåÐ=7¤©ò¾¶¡>ÎÂ6&”s®~o–8l†©)*xU©ÉuðKäIÎ/QýjW$þÛÑ%RÞã×=ÚÁŠ”`­'/øä)¾z}V2Š‚@fÈ(:`*÷`!=£ÚúaaS%xZØd <ƒnaŠÉ¤/±³TÜP_¢ -Õ}˜'‡cß@DbvÂPöŒmðèäLèÖÄ}>a· s@Ñžñ -²©KÛÙ¦€ê<ë1f1}$Ù|v¿Õ¡^¸ÿ†Î26x–±a÷+Bz¶)!nò‘luì@€×g•r- $<Ú¥€P—Žxs×>-줎¾*q‚9Ÿ%ÞUãŸqAÈÔUt)]P»@ñ0¡Î“#\AȺ϶„™ìÛbBºƒn¿$þëÑ ©‘W³dC’ Úý -Ö‡2¥–%0û˜›Ë+å"DºGç åcð,?‚îW„ä¸!!…ní‘hõé@âûë³*¹Ï|ÉÎÛ&ÙíÂ̓ޜõ=·oì.ý-ûé-ÄûAú諆õÑ·y&¢Iö„zëà¦Øì¢j£õÏMnÚl¤…™cãŠ$vtAiÚ %Õ{¼‚–›4ËaÊÔ@é÷ÌäB›d5ÙcÄ -'ÀÑQ@Z‡wà×!AÛ”H7ùH·:v Àë³Zùõ¢lüEÙ¶¹ÑJéÒ Ž”G¬oB˜û>B’Ó£¾ ö뛑)Ë™‘£ºÅí'w¡Èç1Ç‚3f;k›ÍU¥¾ÊSœjW$εÝ@Öãì™ù4‚ZƒÃÐ µÍpŒk›Ð(­ÄÚvtԶã¶×át¿"$g›’è&‡T»c’¼>«mÛÂDÓšZéÛ"L­•*û -£ŽI$õ¦¢Lž3ÄÞ ¬aÃdÔfV{3 C9Ô¼å‚ñ—ŒŠÊÌu£S8#MIrÇ$8k9¿4îü ¤7©rϯȴ÷0Sj1Ä·ê÷JNS!¶¤^äb'Û!i<=Rµ‚<¢~8ÄÝoùÙ–„<ºÅ!Ûî×Äÿ×g¥¢4éšÌš£Ñ1(1ohŠPEPÔ§¬Aó’C(OÕ£I1)„&­Ræ4”3 -¥µ‡™*›Zw€ªïSžÊ ^ÁOS–6£ÅL¬ÐÊ–è‰ÿvÒ ‰¦šÜ’ ºù=Ü@ -¬´Ã"³û¢áö’të£ß£W¤ùRe¯¶÷†4š'ƒ[Œ§Q÷+Bv¶)!‹fqHµ{u ñþõYHùŒ¦ø}©\”ž7j ¶RAâùEhä -†ÐrÖôã;¤Ck¯4*œÕS'½tŠ÷ãi6å{¼aêµÑ -­+ômñÔIý""î·ÿ†øhzÉu`€©ÖSLgëþ=z¡‚ú÷ÖP'˜Fw“eä¬ÂÇòI޲H=.Lnð°Kvz‚Å+Û¯•ìí¿¡×g•òëÕþßÔò™Ž§:#U¦ýì„ÔCª_­® s9VWBmâZ§vtÌ4‡‡@[‡·Ü‘+ê!‹Ä”µÍ˜|“5Æ~™ÚÛDÜ?ôæú N}F°ØžáßÏt©o·#k”yFŠMR÷ŠPOǼ£Cž9<äÙ:¢îW„ìlSBÝäkóë âþë³:qufÓ¿“ë‰ì»À6Aki%2”P§?r>ÕêþRãêÊJ¯º¨Î*£…QAwK#!tTãzÖáuÅÎÚ¶d'w¼+`¹u qÿ(ŸŽ/¹]ˇ`£|ˆÔ:Žò!$—åÃ%Tt I1ØîáîÒ^æ2¨å3k‰¿Ô°K™­+$;­¦H[Ž&‡\›_÷_ŸÕ‰ÎVÒi(C½nUYfk„&cmXµbMyâE¢q9Vù%Aú/ïeŽcI®CÑôrÿAó`§»H ½Ú¿û/ER"UÑF9e4P8zœnp ÓXgOÔNM¨ŒEð…ÄC¼z˜yñèËSŠýó§dÆSÚíî©ÿ8»ùA+x/žù‰­_Ú™è²Ä«LŠó„V Ô.ñвT¦PqÒY€ó¨)ZèùÇæQž\ïŸ>51.œÚmWO…w@QÜßoê`Ñ :!ïc'(f6r8ã2T08$Ô“IÀÑܘ’yoQí1_µÂþ›Ã¼Š…Õ9_¬ -»Å ,Bc‹P]®hÙÒ`4®Êÿ²á â‚Í‘Š\²±6õó§×Q-¬ ›:'S°•¢îÅ]cC,H+µhÅ/OJ¦ž JF‰÷㊩Ïqy×qÇ¥µ>Ñ3ù~QÉŸïbí/ïbÇåAKh.^Ù -Nõéô4±¬Ö8¼´cÊVÆ )Œ‹àº& J“¼°gÓ¦&¤XGÐ0NS‡ òºÃJI¦š„¯Èm@ -Ý´Ÿ h™n"Gò¹\šÛ€V`éF+?ÿx¸Rõ\peÔX¬GNqŽÃ»ˆ'¬]ê¾¢ï7ð.v\I˜Îí×S¦ÔtnÎÃô ÒÞ\Jçœ_>ï³åùåë³›¦ -Ý8Ý.–#Ÿãˆ‘™:lĨa9´Â÷JNŸAÝí¹à#;%gØ­nZ-«^Éùu»yJÍÍ)YW²@¯d}lÒ®&LyŽ+¦Œê²+6æÐJÀ÷›Rn¡ÿÖ^.YðŽá‚QíOA 0o…Œ^áðy¯pE^@½€ô±)‡š0e;®˜òªËFå,䛬𽀠-ö˜œ/ÕO÷B ÙÜYiûõÂ-2Ð5. ÞÜJ¦È H >6yW¦>ÇSGuÙ[sõ_ ø~SÊ- €Ûî×ÅR/¾5˜" u#âPC¯^Þœp¢ˆšA^@½€ô±)™˜~‚5;Á´¼€3û~ÓNÙ¢ø½€Úg¦t-‰³Bº:ΦØ}£^ÂÁÕdÕÕ¸€f›N@‚¼€zéc“w5aês\1uT—Mµ50'€•€ï¥üùvVÿövpÒ ÿËq~BÃêÊ·jY›'ÁWÁ/Зè'¾‹*òÃ(å–å.2pfþ»2ªüZ.³}y«%žÌôÏH—ègÞDð$Ñ¢L°ÚÏ€°š7A™îUB± A±4ù½ØŠ<-“BëÜÛ&ôóý¦4¾{ã§$<®ŸÖ'¾ñSi‹=ð[„zIéB£5½&¬¥uw©œ]®+1‘²äยˆ/ÔÑ |V,“Ôcc¥î1:-Wø¨N?”à¶ ›qEÑÏ[þžwH¹NèÆë3‰o‚_ ¶0‹„*ú† ´Ž¢ô)5&Føš¹kcÏa2ìc]±@¥vFmÎßä O7Dàr`Å P2?qHºê,âJÖd ÞC—ËUå+»ÜèR±< 0Ä>1jº2XeÔ˜ÇõSú¨ÎDýT:½+x fÅc:’‹ë ‰_^n¸2õ\°‡¿Œ…ÆV­#TÙòŽÃTÆÎ1hX»Ø'|A?oJyÞ¡WÕà Ö«jèZ{TDSʪ --«Ïy© -ãÇIh|z¢®ãP“ÝÊÁÐsºT%£Ýªª³]«* ÐÛ¥ªþé¹§* ’S• ÞhBJÕ@ÞbêÓ=n:ºŽ‰¶+b\ÁFQku.·]ÌØA’»6îT=””;ñäJ¾ D.k¤XuÕ>ñsý&•ç:Y%ô=¤ÍËJ¡‘øì­YY -5{YŽœ­„@z¡Á¡–góª 3KUS®R£ªùóêU@²]UMlÌu:UÅ«W òB wˆ^ûpÑzJÎZO,·+€£eçò)Ül#M€¸¦ê¹ ¤t›ØyßžØòlOw\§Ø;~E?oJyÞá¿VöÀ·]=4cdÑ¢9ZíþªÇ Á™f7·|qÙ¢H[ˆ½Ÿ¶:“»Ÿâôj_ÖVˆš«s‹F*Z upöøeÃÚ;Ê Þ,8'QfÁ9ßÙ~|¾³mâ|gÆ•óm—Ï´³h%Àh’ªç‚!L×¾Wâë°Ú*P­þC[…¬É~hZl«“^}¿dô¼¡?=ìÊ_>ìp"¤Y© !O<ýÅ'ÌìÙ@>%¢"üøB!¯ë¨Î0ôZiëc$q˜[¨`t\(繟 -DòúÌþÐlC1å|–î\JmÇ8ÀfJNN@µE''A¾1ä*®aÚ7Œ  .Oˆõ”­Ç¦j—C+~/lNÔs1Χ± Y?Žœâµˆ&*©´ žÉÏ‹FžWö¯Óz‡sX8ù\}D ÅÖ˜TZU‰¤<² í©hÌ1T†­¹%„¶d”ÒýSvù-¤ìØßc:?p¦µ¨·‚¸‹+-g>)4& 6šë‚|ê>îûÒÇF®jÂÈúxb䯛DÂrdEï?0ÉÓsÁ^šï×ÍZOúYEŽÇwR—ÚÄ/èçM%Ï;$E¡§a6ˆ_ÌútÛÚrʲǔ\Õ){L¡¶ù³^öÙä×**¸þnDÝ j7j!Uyª2Ï ºe-g~«€P\ç jeÊ׉v¢Ú’:ÁI¦V›—`,¡]D×dIåÝÃ0‰õ¹`ékC?NÎÕ³ÛÝÕz^Ÿ€µé਷-ꆲàB-+j¨& YÁå÷-—›LËÉó~_r„¸ST¡éšü˜ñÖŸÔÜqÕðã¼çǘ‚BÒ†OWÿ^k]‡@’kQ'@‘ïB _=Ä?Ï #ø8ˆ{ù –µÊ€Äªc–K/[Óa,JÒ´¥ï"äºÇɺëê' ÞE@Rç§|µÎJ³¼ ëò$˜Ö1Z>±ëLLbœò{ÆÕeܯ¡+óÓc5è~vü+Ÿ@1sB4Œü™%•/,Pô ɹiÒ%q€t½ÚìŠ"ü¼ê%r}Þ„ýðOo×üwoלª,± ÞI1Äðc˜r"5.XƒüeÂøZh‚…î‚Dâ,4 ŽåÏ0Úú»1Õ,þ› ÍÅ(ÊÁO›È€`˜ƒžB¯4ß)u.RÃXF1Öæ‡µb_gÖêXÖ²¢A:"Ô‹!w“ÎË{8y0F'AØ™ñ‚5Ï¿˜ÏÐbI¬¿ íæ`2™‰bß„þ.wPôWcýð“ùA­¡ Ô1K»¡(‰8…4Pš©%;aÃRžDW]äF±¹P#…1ŒN~YÎ…<å4æ¨ß'ßÈrE*„‡ÖÔœæäÈÉñQl”óv¡KÖ¦1’ñ~B*qA¨|#§F¢MÜŒÆù`?6¸a#Æy&»…Xi’DìGïEÌI‘O$GyòëÆ²Xˆîœrõ;¦zÎ&p”`³c2Ho;âÑ7Ík.&ŠþÌ0õpN“Z•AYRߥ¹Œe(ú\6ÖD$[½‘>\ˆïº†HkÊbSÀÑË­Ïe_-áÒA4ÿ6ß º¿ŽÝ®_ˆ&•¾àÕ9§6­Zýò¬”ª-‰ðƒU@l Cñ¨ÐÉôit„çaÌltäzåj¼UŠÝ c…jÕj¤ºéÀgcy…;m÷W _¡ºl6™_ú<°³ÜŽËÄ¡‹M×È·f.½Îm= žÄ_¦àç}®šï—‡ñåí ™X5r~Ä,4å#šoXÿWdž³ -=} ç™Û÷»±’î1ŸçÂP…F´×ª†ÔÞqvò)GU…x\>Q¿éó6‰)oõ®@ür¶ ô:gÝ -‚€/iO²‰øzòû£†wÔF¥R?ÐYQ¸â«›¡JrçÀ2‚V#zF8|M;™“«Wù¨•ô€UZ6r’¬€jº7:Š}Ù`=ù&¬ð$ö ÊAáB±+Räé˜Ö¨\0Œ"°ÒZ7kDs/5µ| ‰·»%¼bÒv—}ÿm'=!~ñô¹ëŽfÊÖr¾iÅçªÂ 3‹»ÇïX0wðGƒ€¤³3¿õi'QèÌf]O.ÖÃò÷Ðó Y»¿ÁzŠF°(ÇF*ßr …ô–szVz6Š«þ”¿mÐ/–ºÌ³F±ÂV+ô „´*­{f¨Z€~4áoÁبöï´J]zG g­ã{+9µ7Ö„'ü(x]õnj®~çù´½BþoJ­õò×?˜Z ÿ`¬(‚ endstream endobj 210 0 obj <>stream -H‰t—ËjÝG‡Ÿà¼ÃY&&#u×µ;Y™„€ÁEb¢­°” ˆep<à¼ýÔõ\äÌBØúÔõïîêºüj -ßÐ|üp@X7"ëøŸLðˆ°oÆ-´ÚúBûøþàŒac2¼c™l}‰T‘^Zî ³÷´o¼ ¸˜j i»LÚ”`®8,Ýl–Y_N¨b£ b¦D¤S!Î6E];á+·€-ÐN‰y –Dj_)ÓɈ yÍ\7ö\‰ˆ ¿6h&‰M ‡ -öíÍ«o^½;ܾ~3ço_>¿?ŒãíÏŸß=?|<~—¿Ýx|óüðøÅ~W8Þþúùã§ØïnøúùóÓý_O÷?=ÿiô‡ƒYŽãÝÃAŽß|{¼ûýðê¿F~²Ÿ_ÞŠí_´CÛ?0y²ý‡Êô?œîîíÜbnnó O‰è1ˆÛÜ5 ŸRnp*%\ ÖѯB‚ˆY¤Ù#½SYC C¬Ó EjµV-Rce¹W¸Õ!GìéÍP.S…Å&s­’-ijð´©ð¤X–…Æ.4¥®À²Û몑(Ý™Oq†Ù–²ËsH¢¹lAmj®^…v™é2Ýä1ºÁb4bÏQd†!E ˆaÎ[ß–T(ñ^ç}‡¥þN?F&/OBÝ…ˆ‘®ÓQtrÂÉ».+èÞ\ËŽÂtq#0øtÌôfÕe3½ i½Öï Ëë×rÈ êU#F‘…f »²–é­ïñ˜›ëc,qX‹®1êÌK*º”/`Ä/aíÀ¸f ¨5´«NœÄ Å‘–ÃÉŠ]Aß5  %bÃa~HÈHð5ä- ³>sšÚuvUâqIªPbÔ§ËUYÄ.‰ÂþÊÎèz•‚äªÄŸn3°"} ÊŠu•¶}—èBë™)«ÿ£wF/Pp mì@°¨r4í Þd¢Æ«ÄÙO0yP¬³?ö:µ8qDÞQ{5MÏ †ÄJC!oŠŽtÎúšå^›FûÈhð-ÀêQ_Ìb'Hß©ÃÛ2Öiæ"âÙ3lg BIìQ¸ì˜U*Ét¥¡§GT(Ë­•›Ö4WYŠ•‚„,q#8yÛ凨Rá>ìî͵…ŽªQCã’ym1îý î©éÇêÖé ­uŠu1³˜xôŒÝ®•|eW+_oi-Û¢ -”»Šš»+-­÷¬‚‹ëÝ5ë°UDñbêQÔ5{O[N qy¹òã.­u2êòT•4ÚkÞtYR9´{»B´b>I +\!“Õã -Z¬KlaúD«¬‹P ¥»úÁòà©]G·×Ñþ­DöþB‘ŒÒiì>/B·MAOq†½»WOÈ _2êc‘‡åß915 H_®ôˆI,ô6gy»Ru‚ »’Þbª,!ÉüŒÚË$J®=.d v”1hzÊ4§´L‹i1ªQ‹f²àfÐFѪ-/&öªziƒCûĵ¯eâyÝâl9V9kº,ÉþB9ïÐkŽ#ÔªÉUQt¡ÕC°ü}Âb©Mqd7Éô âQþµ{oÒqš¢óS/ŒÃ[Zjû=G…ãLãyJ-æÊæ1V/nu+»’'úh¨`I‘䈲z[c¥ Ôâ~íËuþ’De:0Àe'Uª/÷AÆÀ†Yym#|†H‰Žx¡KdL9\A\œa¶aU­KvîÊTšcñn7«%€ô°•ªÁÒÒŠ(¯Õ(ïzê÷½*õ¾ø94ü­­LNbâ’méU­%„Bû8’B¥%íÖG.»âÙ3¼üFRÛМÜ -:¨WJòpFYA÷ ÉØ¨òî°¹7µÎTíG§¿ÀÚÞE.M÷e&¡heæ‹@õñ'0u…±GÝ¿gÈÒSÖðª8ÕÜehk)ií®BY 2ZWO%~õM -Øhô£î=àfÏþS…ÔɨiY¡¯£e ®úÂÌh†Öò^2pMIU…žz%k—Õp¬ö†ÄUômjÀÖ5§²Ï­Ð¤ú…ÕÊ(˜2-è}MJÁš‰ØU²#{$J„.3$g°Á#Ó[sV°¬rd³¤$ò,ݼ«÷ЉT„2Ë’=.Tp J˜Šì ãTÛ–ùµDÝ»;ÔYôך}’똌£]E¯ß-Ò®£¬DÒ ^Çîÿ^½;ܾ~3ço_>¿?ŒãíÏŸß=?|<~—¿Ýx|óüðøÅ~·¬¿ýõóÇOÿ4€ã­¾~þütÿ×ÓýßOÏýá`–ãx÷pã7ßï~·_²Ÿ_v™!#…¿;`Ú»ØØxúÎ?w÷Ù…|Þ¡‚íéaf¥ÙTª9çmBnæCtµáϨ'Á¡Þ#œÆ7æ ¡ÆÞ9úcÙ¥|vÅB1¨Uwõ91!WcŽÉ+D Ö’xŽNS˜ÕKp‘P$‡Íe]¡röj¯âIFÅf… Zªaà¬uÓ•s ÙªåfÁXÉÀ‹FF­1êì’Ø·+`\,•”3°,‰MDÓs’ƒ€7Ìs*”îù6lîRÏ„=E^ 9µs%t:L2‰o 0‡ÍHó€Ä=€ÎkVÕ²Ùܲµ§¯ îqþ$kÁÔDÞŸv}´NMQ‡q.‡&±.` ¨³‰(TŽw¨›’j3ž%ÿN›ºrŒ7«À+T¦›âÑÀõÍ6çñàä«qƒ2 º–@UkÊ6`h)_ *.f®×™åK„“¾6%àõb9‡^DéêÀ%¹bJ 88ÛK¯¼ì®)ÆÇD {¾µë×½TG6<9›ºXŒ)lô¦zž¥t­þeßÊbyòp EëÕVë›Vߪ¤õ ¨}'<õÙÂÊ‚š`ú¸kïús¹wãìŽÊ*¡ž¼#$ÚE\+Dà ܧãV1¨;¯•²ÎÑ„ÜScB -¢Ü ÚjcÇ¡)„T9_K°¹x`]•Hpz˜A½º”< \N¢„F0xª$Ò̇.Î2G;klÙ*é¾ëRkc‹hë-u¸Çô¥Ï‚%šx“&š.µÓÔºQ±h%N4=â“Ú¤«x¦,‡÷®RÆ^| ´z¨~Ãæð“䨺‰‘kº ±w­ÌH‰zÐð´§Ñ,³DlÜ{BA¦µºMHCZinBÿ…ù ô¹Dz\À¼a-+5ò(ªºßØe*! .ISÒÝtHŽx9rdƒE*Óx÷„ëá–ÿq^5»zÜ6ô üwÙh-‰"%¶« «è¢ê­‘8…ÚÚdÑ·/ÉCê›ùìM³¸°ï¹ÒŒ†"ÏÏÑNfBÝÛnõ4g¨|Ó±/ 2ý¯Vü8êùk×eÚõ†ŠsI.AðÒÙÚ¼x‰¼îäo€€Ì§ù†e1æårñ«lXÇ ÎÌvJk²™ -ù¥FØg«p]{Ç0‘õB5šÄu ºZÍ!MaÃZNEä -U£ˆo,=5Òh¹Ñ×r,]Kˆ¥VmºW7°¬î°~~y˜Á€š^ì4OY/ðé¨wêÊfˆ¤u l -}»­‹àp‡ 4—­'¤=Ö9´Îy4÷øzë ý´nGÔvF“I÷ú:H[¯õõ‰üh`Œdj}¾õene˜Æ¸@/°G³ª Á¼SÌsc#ûÒlLóRà ã™3å†ñU®Ç¹¥sI/Õ²ÑÖð .Üùõ#ÜÎßZé/pý`×hßi­šä« ñƒåžÿ#ô´ßzÞþúÛ2¹¨wÿø™Jüùøc/ºùé"ôm0·¿~ë™þ"ÖŒhƒƒ°>ã> &a¯Œé -?¢¨ŠÜ`H(§ƒ˜ÇÙ`–¢øN@‰º¿¸A¡Øú{ßù -œ™4Ÿ AŠà€þ c ëRu jcg -£ k—YªEÓG™§ÞW¸<Êt‰H…ãÉP³C‹ $‘YABrÈÍOS¿@˜¼EÑg]°Ì”„8ÃÐ0DþÖÑŠÛxÉH04Ò½”IcX.¬wÍ· -¯ra©a^€½à…óö­J$¡,ïl“rãX1ÙÊJ·–' ›õä÷çY,·>@Ÿq@!Óéœ$¡¨›CBë¼u'Hòl+êæà€@víVÎz4ηVÄóÏ÷ñË•éñmÙ¾lŽô!¼ŸžwÜêu]º™RÐ8Gq M*µµËìi9w]wyIhŒA»ÍÒ¢I#A³Þ)¹”—# -ĸdò¿•¡ÑºTç_$Ü##IM5 jó0jÙq¡HÑ¿Ä\M3Zvf%Ëì­g“«·RŒ s=.Ê9’34¡ ˜7ʆköÓ¦bQ5ê^¹sÈÈG'ÅðRÕc(†·Ãô{Õ¸v6ªöåPýG„BÊÙ¼!vª:+°yDÙ¹ò~‡;îx¡ŸðÑ}yÖ¡ ÁGöIH˜NŒsá¹dqÕ†[6üæ%æ´RŠ³ç ‚‰{+Oa "Ð6šÀ’g.ën¬ˆˆÎêFÅNŒÖÎÁ¿D ƒˆ`·–[IOpªqï°õèb* KáÝÎûª9?|Kˆ^¿ þ£¼‚ÛMôD7ä±§¸&iÁT²­!R9”½k ™Ð\§#ÚO‘É:ÅÃŽCHöå£èm϶Tõî¼U[Äѧ7PÂ~8‡‚Þ6ü¹CªO§o»fó»âb§ÝÎÆFAÄ4ÈX§6†bhéƒndlQT' Fè K¢è°àÙ |þXa×fêÝßùùßÿ-`¼¼óß}ùåÓ‡}úðŸO_þièŸßØÎöòþÇ7òò»ß¿¼ÿÇ›·¿ò·7úæöpŸoÿ˜cµö²ânó`H½õóþCT€|ÿ0Vº¬Ï0˜A_ëâ¼6Ÿe‹1qqw€f’ò† è c舸/ÆD›@ö*^\„aËCI0w‹Å›.Eô 29lA™A@}i{§6è]ìKÖ(žZFKvшXæ -e0hvÅV3¨›{έ2‚[$Cm@ˆE‚¸!™.˜K™Ý÷ë3È{¿Ü!Ñ>Ÿ Ö4×70­ß“¦ -å1h”z:fWÜ‹Œ\×bÜ jîÿbŒ›CMJx­xåŒ:b®ÈfÁÃõ6dð¨-æÈÀ¯+Fˆ8›A$¨#Áq9T6Yìj ”ˆ¶A+ZWÕѸɹåÖ—$è7IÃ-IPCn5–^ ßÊanïËdí³³  qvŽ­¹SÎI¢g_Ζ'1®_ù¼®…‰±—¶Ñ/Pž„Æ|^çƒòéÔ§­öýƒï[­tgÙˆ!µ{P‡f¯û~€œ;m¼ó¾ìΩ¹ ˜Éé–÷¾l Ÿuö2Ø:Ÿ?‹Aæã ¾qù!"]µÙ/Õ—7z×ÊeCòÓ‘¤B5h¶#ÐA`Eàš‹U¦Y8™ÏÐîe¸`Lâ+¼iÜçÅRTgFü$ªþå“yIµ:xðç8—zí“­Ÿ÷lì4gÞVtPXG¾uI²±)zªP½õQ³Þ(º="ÉÀb=AáŸsë÷”ë" ˆõs>mˆŽÊ¶Ëȱ÷NÂÕÄLÕ"«xVOÜèIhÖ,22[@¢ßKȹiêB¯¹Ü¨$ÆWOÙ©/ÌÃÄ%è#ºÈá$µÎýÉ:PwÊwkƒPÏ/?¥­çã"d¸QèɾöúíÄÃ!Ü™}êê"¥íÞ>™JÉx žù$ "x¥˜ÝBìˆFvqR—†DîÔsç‡Yô\7óf: ’kðp@­#CØ7m¡cÝÂ'˜Ü6IH0¾r⑃ÌÙ5D[±nÖÓúÜyà‘ª¥ik2K=;9ÛÆcg‘ÉBµ>Õh'õÍÜc®Ka»€Z ¯z"Í«ÙsÖ M”¤hjiþN8­Áú• üêÔßÙŽ¢„­­4õ±¬nèî}¼Ûæ®U>&åË‹¤ÃDõ‚®°Ûk[„«Ë~Z'æ.Ÿ&è«—ò¡šs8¦Vë*Z0¯³ªžac+Ir¹ýõ'Ù#?¬küļnZѱyÆêJæ]b,ÖY=¤Ç¨^÷¦FŽ>÷ÓºhÏ|ÚêM9*Nù8€îÆ×Õ›>¾Ê‘=û~ Ø·yòÓªÕJîΰ÷:Úßë¬ÚŽèÖµëÍ^8ô?Ò«eG®b ~AÿC/ÁâÞ©÷V–’¥–X€ÅlGž1‰KfÌßßÌŒÈ:ç4³¹baAÇTªÊGdD^óšÁÀY¯ž9·.T]™ä쯜>9s/X´bQbŽ×P…¸8‚ÃúE¿å}PsãÖ⺧jz¡6ý"¡Ýô¡™…œ ›ºL“¢Ê`.HÝz¨´Š|ƲïQlÍ«dZïHŒ“è#·àTãs@e½5J–ö‘¯ªm€îö(rël³s]tQޱ£Pí„jék+ÊÞõ¼^$dŸêÅÈM¡éF@Ž."D):ñÊÐB¤åyܳí߯‘;Í_rÒ«G7r&ˆŽ˜Ìil(Þ64¨7“´;t$މUqq žiV š>_zþÎD­-óJÒ€œ†îcmà‰&.æÖ-¤é#’ýâL¡f¯^#dÿ=Vf\ù­–2¯PydoÑ4Šƒ2cg¯\3¾d†¬ØçR½‹êB‘Kð‰è§î4¨¨Œ—Y?¥QSY)S®Š©ÆÞœ"Y¤I¶"©§"ÚDç¸K¬Ü(<„‡]bÑXêÌТÀj&ÃsL …ÕÎ4Ý”‹äê£Fн™ÖåÐ(Åæœ†P«÷ÁûÎ|ƒ)ØlUB3ÀähãÐÇÓ§½Íx¨~zÚ3›ƒ—¨BDžt9l\Û?Þ|8ݼ}ã¯__ÎߟÂùæ§/žï?Ÿ¿Ã¯»§‡÷Ï÷_å·„óæ——Ï_þv otãÛç—Ç»?ïþ||þ]ÐN²3œoïOíüÍ·çÛßNoþäçSPµ'BŬUþ#ãDr*An‹ú‡íßíÝþÎ3"'OW`í*®‚t˜:¨{ƒgíV/…J/'Эõ§Ä ˜ûhîå¦^£MØXtŽ@E[¦Ux˜bƺ¿ ”D1ÈÌÏd.ÈÐ4­QUŠa£L˜ÖŒ{ -s£Ò¤ÖbŽ`çD5oËD‰«RûX‡—¡J°3³{ê+½›ª…¬‚ñ%3)æ•‘q¿kâ«DDÀÜÆÑ¹³Ô„)‡&æ‘‚={,sÌ,ðÂuµ;T2ý†­y.nTœN¼]“Á¨éT -ŠIÌ ö‚eÕxH³¬§‘ -g°Çf Ÿ‘÷§c+%³ÔBˆ~¼“bjHíòcA¥"dæ{X~c…¶¯uN!û:›¹š¦€øGc]fs³å_¡–ý[©68Ó"[Ù±n•*áV¡*l-Ð[5”•‰Cتãå¸,gÿVTm¥õ8ydRúľdÂÇn–°CF!™ €0Òõ™ƒµ'óþJAsf -©ÒvC[$ÏÊ`Z:ÜsÐÐR½'§õ[—9‚µÖ~µ¬”¹²Z¶Œæ¹ƒ0æ fkFiöæ±³ãcaLÏTgñQ ”¥‰lØTTK¹³úu…b<Ÿ-uðq£A]zë -òavç(\7p¦ê5k93ãªleªr5òY°’•”ðXL1 T#9Wb” -ÁuJk,I -¢¯ƒ*xƒ«äîžÓc8Ë¡9“ñ«!+3ÿW¥2ÊH´êfõb`ƒXpv¶Z·¹=‹$>%CF@Zꌸv$ªAü``˜+×Edaq)b+×Ë2#®K 'Ó´8´ÂŒ(;uÐÎË[ýòÜÔ´¾6»¬Žëúl$•D^vÈøÕÉtðþ‹9¥W³ÙÚØ3âZ@YÂ'9A(E– ÐÂDò5ør­S…Øòák*Ôs¾:uã*¿õt[o¨ V¯/}ksâÆ³\§uy¯ RÝk6 l§m6€¡Óõ o#VÀÓR±¤Œ&_ˆØ…ƒX < i›!{s·ò°Ú°Lì”'YuÝÊ}iî ‹ F‰W£È锼Œ’t¯_—¸A$ìų”Û$ƒÚ½Y‹BÛ|–åÇæQZëb&ù6¡gO§if€YyO{> ’㜹;Ï7¤åWw„P8+:·ŽÉÙVjŽ;è8fvëjNþµÈÉcíW¼t[ª7¨1WÁä¾òQòÄ›n%Iu¯É0ðRç Q4½üb…KUl–ñLzi±o4BèÑB1»[ç¯%{h„Ç›ZžÜ:³2ÉB7f0­ŠŠ$• ZT¶SUë¤_‰GDÝ€RïWS<š&Ä,‹¼Ü®ÁDdáõ£Læ'£¾+»ƒ†¨"n…½¦ñ(ÍLe!‰Xç4noAJÍ5ê±ø’, -ŒRcÃC5wŒ±¡:"ôÚ¬Ô®1ÙD‡+½:‚èÀT|B7¶³/’LúNùɤ³)Dâäº$ä -)â²Úú×t½*4¿Zʆm’äÌ–]‘¹Tºº§½ÔHÍ‚éñØ9‰E–¹bx9j!ïMK¯t´}䆂6O8ék£[¥£$Й.Äý“yÀïg76iŒÈKT^"é­y×:]\íx}W…Qqâ,ÊGf– ç¶H"ÓœPTk{ @6î©%y‡BpuÔé0ZEw»6ú§†RiõæÃéæíû}øúrþþÎ7?}yxøð|ÿùü~Ý==¼¾ø*¿¥]o~yùüåoÒùF7¾}~y¼ûãñîÏÇçßýá$;ÃùöþÔÎß|{¾ýíôæ/A~> ñM©ÎsÀÐ jƪLV!N¡©¨ØþÝÞAätm5™L2{¥:Ÿ 4«¹ -Õª<¨PÏÊG„J4JM]kÖ@Q(ÉÖ U·)͆x%uØJ0%´Øå -´7펨·Ø÷WIjaCä÷xe§îîa)Ó‹npè£Ii”Ý/fë®m³@ÉtøvDRcs}C™cå$t:EFìv€,ºuªËˆnG¬ÀoWÙ%h»òJäö°•î-}|­V.¯ƒŸNñü£eØ{’Òíz¡%xÙƒòžÞ[a¼¹ýUpÛþÉna}¿­}¢â=~`»ó·í¯‚Ûöÿ·Û¿içÿmK®2ÚMl׊´yè"jŸñØÐ¶Ñë¾{’iZ® ©þåÐÐey‹*¸\¹´oh´†÷7®­û¹è+cßÏ -µÑöýìСŸ<ôóÚ¼5Ç:bk¢ÝU¶fóo¹žu€EÑd .W º;Áþ»É–žÝ=»w1×»çùøJ•\þÇ{Õ´XrÁ_0ÿáma¿íú®¶OâAðÀ[X×EZg² ò¿wVueFdOïaeÐAìLhª+23*¢ê{s”³dz3&ÌÇ%jÔÒ$FKù$¸–?¯¾92Áâm5—¹>°ÀóV¹åzúê%hËýVýpt¿U‡÷óþy\’Ï_½mù÷ÇmgÞÃ\¢Wã‘ʧAjà›o^ˆ¿EÝW­-¼ÿˆV¿ý湪Õ_H¸©o¾yrxm˫іñˆkýÓ uõÍ7µú·Ô@ü-µ…?  t[]€Ü@úè¶Ò¶¸\€ÔÕ7ßüüÜ*¿}nÉ=^NÎx -†º{¯ìy˜¾ÚãxFMh_ÍMz:.ñIÇkb-/0g¹M (ȳè€J”g­‡ê|º1&oÍ-i Ó&/ÞA ]fJDdô5îósà;^½!ݸ*ÆÓŽ«_ÐX׋ÈÀçå·Xn-iOn yÕvb"O¡½4GX ²WWC³üµtGŸž'lµ;XÓÍ|m„¨Êêôí•Jž×à÷–LÜÞ(j2«³(_'(ºÈâ¨mIõ<%> –³? -ö\݉PÏ•ƒ–M›ràqži=õÄî@ŒÕD¨.µªŸ|ª Ê–ôœ`Ø6þËm!y+¬w¡”NFU%×*3ˆ9¦Ù/ ó©Jy¡>ŘÙþÚ€²AyO¯ùª2ŸBõð©·:y^ƒ^Sð)꽊—&¤§Iâ(ÐÄõÄ.ô\9HŠ@•M[è¹'*ð¢¬6B…©ÙPÈ©ÐVr*´ßœ -C2§Â0ɪlæd­ðL3`@æT•"ÜŠA³þµåƒ!§as*”eN…òáTo•ò¼?÷—ÿŸ ߯¹ìÉùÛèA—9Ö2“™±Ö¶1¡uƒžP/=ЖÒíb³¥b -)Œfõ}Æå@b®Š¤&²lÈå¡‚.±ØâÅvÐb–Uàk‰†ªÅ»4ìížjL> Œ55NCBë‰ ÕìÓPÀM^Bœ†]T¹ï† 9:©M:°ç ÷RW¢ßöyÌ…h`~ÆS¶ššµ?.r\é ÝÅACé^8¦8¢m,PÞvGp@m/^8–¼wV΀zaá,ÄéfaN6¶ÒÆ0?¿.ºÇ´&‹V¼l&Û’X#£¦à•¤µ;ÝìÛ=È“ÏëFÀ-îî%úÝýÍ\á[^6‚m½ÞüY¾ùæÏÌ„¼pè•c‹ù¨öm¯N:ƒIÛOÒ„[bŒ²ÆËÖC³üÇ•HT;:ÆQ“Èì•*Èš¨Tg:Ióºg8À=G'ŠÂª½ªìL÷½-ùÌ÷M½ní Ü[Ü“Á<‡“Šå§°k]•PŒäu¼@/d[ %Û¦db%cˆQ˲ª÷B^}zžÀÕOì`]7"4ðµ!¢*5ª_ÐãJ'úšœ„Âñš,!4—’ô1uN -‰å’Ê)*Ê=ö]T”»K -B4( ¢œ lYêøú|HÂx‹RN=ȶæŒ|””)¸rä„ìžN1Ѥ™É-lò©½¸¯ ´oýÄ¢Iu)8¶í{t514K_K¨1á±ÕHì`Ýš -ëðP•MØj_ÈãJ‡hŒ -çƒ+¯ŒòÊøq^?ä•´ÔQ~WFâÊ´k Mºˆ+Ó.ç•iy¥D\bie…a+« ^Ë*ˆaíZXA»–7< +š ez­e5¬¬‚j(« .Ë*ÌØ²Š!˪7QݬRTaÐæ_ƒ¹dCny™ibc³V†,ªRTTOÇfü`BÆ–#¨ËÒÆÊ§¤‚„)© a[ Û11ˆ±IQ«2€‚Ê0Ê)ÂV/MÃè¸i˜'c"ÆMĘ3j§œ:kd*¯Á寫R!9³ mKî? –³wf{®î¹1 ]Ú8H™@sf‡ÎL;¨3831^ÎLU©3SñôÄ“ïn™3ú9AͳuBpO¼~/i§ˆèwáÛ]”$JsÃF70ÊnWÐa‹C0¡Øa‹W”¥Œêäq¡‘ÃsŒ‰úÓë \ö zfÏ {æv.{æ¦/‹åá¨=»1ª?»q‹&&íÀŸIcêÏP¢ù³ƒfýNÅðgŽ-,ÀA…”-ÀQ˜æ0ê§·FQ‚w -#Á­éHp› '¸Í ŽI[„34‹\É䬞勯'p#v6cC2FTbÆØ)Ÿ–1¢+ rò3r—u1ÍB· ™ -ÍV)“´0izˆô$på í YDLYÄX³êÒ¤ú)>Ñ)ŠÏN9¾â}·øÄ|(>1G‹OL[óÈ*ÿq¥”! /¾~y÷åW!üýÃ/?ßþô²ÝÞýå§¾þøÝ·?¿½ýðÕÇï>ü"¿×t{÷·Ÿüé¿ -ÄÛ»±ðË?ÿðþ_?¼ÿ÷ÿ)èŸ_dåvûæ»—zûÝïoßüãå‹ÿò×éÙž{¼É¿¢ôñ¨;ù¡ôTÃøøï›÷óMÅÉoŒ!Ëy yª›Á"ÕÛ|;öñ œXÍ͆¨Ö#C¤?³£k©%KƒJVhL~@½äBÐñ°=ž¬>_ð´¥ÅñÓžÜñ†È˜H¼o{iޝ@e¯®*†fõké“|¤×EÄÀ=Þ÷0Ϻqˆ"ùØ×—”jÔøDA¥r¤…/h,E‹ø|áVÚb4ܶÀ\ˆ -ægŒ1åä;ª~\©ã°DÀ³%†“h$´K«N4î¹xr ¯'!`¯Á©¦éS-YWͽjl1F1¶(‘'6˜¤ý$›Áxú&?ê:)iÕïeS$ ·p’M¹·ZªÓŽ\~K1×á˜NÚ‘ksλÓÎzpù òÚY ×Ž-FÛÇzÌ×x•œNÚpüÄÃuõ34ë\)åvi,u È Úcw »t-„Ã~q/ŽN»oùåöµTA¹}…™úìqKNËrÕš÷ ¢"Pߊ×r”û—Äky@½í¬e…œ–tZÆb“¶0ÍCŽVC³~¯åÕ©ç \ÅÖwcBã–mŒÐ² Z^ÐãJ)þ1hNȯAØ£Ý+`vÿ`{´{ -ìÑ.3v Öß{äKÙ£˜¡¯k Ë,"«ÉF%iþQéžEÚ™ùïž„{¯ð,r³Ývžåèë)Æ÷ÞÒ)í÷âéNÈÒ ¥'7þºeHPf¬eJ²Dé z\éCƒKy,z=Ë£ÁÐ< ɤÁÐLº .ŸC˜41„IÓ¸u1‰BMš´“&©I“Õ¤4àel&Í Æ9m¡qNTçDY㜠-kxXj(ÎÑ*ŠóB7‹çh¼Å9DyŽAZžcÜ–ç€VWZ9KhYãë ´°ÑÍÁ¼•˜7Ê©åèË‚¼„̹Ӻ˜æ¡[ÐÜ@…æ«”IZ˜ƒ4E DŠ:ðHÚB3‰¨ »@Ù"…Y¢œ¢Ö*NQk)RÔÅ€\ ë )øuÜt=4ð¸ÒÊç?ãoý L÷gV§ýžv9ä¯'0ïù¸ ç=Å*m_Ð(rB5w}Ȥð¿X–· Òâ ½Ä=‘—T  «e!+{\Ù#gµbAjfÑÒ²¿Z ÊB3ø•< ‹m§¬µ/O@4µu¿?=‚ôé yëU>ˆ^Õ4‘«&›rVs.´6Æ-¡8¬…–°,4ÿ=b “‡„ý$y¢û‡˜uZ—©Pá¶¹{Rpuñ%AùÓuçø(ƒù’²´™‚9çº{Jë‚Ý—¶±ÀÖüÂb¦!ËbBV¸²XÎ*+Ä‚Ç8¢‡•‰–…fø+)Q× lίo`B»Æ“dG9;<ªXÂBc.µFÈí[ŽL⨊äúle´LUÕ¤2UU»š©ªW¦ª*a™ª 4¦ê¢¢uª® j/cµ—ñDµ—ñ˜µ—‰‹õ“‰ßˆ/Èvì¼N0Ç´(¥²Š¯t‰U<),¢£ «øJ@Ⲋ/ ‰øRPÅ—ÅH¥¨Ñ2∑<ê¯H#J”FOÐíOx!$_xÀ=o BqPÇ%;h§ª8¨ÓWÔ-šù®š¯—ÃJ 1¡ô1®(ÍÄc%£Äµ@3þ…É:àW“1ÁºÊ¸¢ú˸Ì2ÍÆbÎ$À(AM•Q‚šRQ‚šxQ‚R£µŒ¢µØ¢-4ã¿=bÊN rÏHÃP-ËÈÍdÕ8dk´2§5+:ãMþtÈ›<óaS 6aª¦®˜ê²Ç†×ÍøWÉ_ATMÆI+ã‰*0ã1 5Ë9¿Ñ‚š)£5£¢54[Ÿ7f«–Ù*þ%ûRs2[5Xž­šDVòðpµ9¦“¦,ÀLÁT€™º²3Õg¶@,À ¨lQ©¬gŒ+ª{ŒË,L\,¢LøFižŒÓtŠÓ¤‹“Ú¦%¦…f¡ÿíKyÞ}<ݼÿàýß^Ï?ŸÜùæ×¯_¾œÂßîŸ?¼<<~ƒß˜7¿¿~ùúá|3¾y}ºÿûéþŸ§—¿ýå'ÝùîáTÎ?üx¾ûóôî_@~;AÎzjá ?#~¯%ü'7`ýøƒþ»»Gµ–¦\+ 4pl¤éS™™Áë¶ ëË1õß‚!XíNe¦z@‘‘D†›Ë²ŠO`­-Z­; ÔwÄgY›z×Èdì¥t€û -­ð¾FÐׄz8ù@ß9Ö¾9ÎM¢ÔKï"¹KΑ@ˆy~Wqm¨…ŠŽÌA4¡šùd/¡#Vê|(âÅyô£BµJß Ô<ï> -ÆÖË´ÐÛl©yZV{hôU¨Ž5}«äHOÖÞB¾wŠ€’DEÊöÙl…õ²Ô³c3ENˆø›£àcÅ“’ÜŸsE‰Zû -©ås |òxš¾s)#CbÆÒ—K¯¥°#CP"èÅÐ+A­& >¦¤Õj¨ óUîÂU!aõ|/䘃͑×ÊÀ!øÐ°¤StSŽRÚ 4XAGœ³—ÔJ¯©Ò’š)o-Q'™=éMô7a•Ï#Ó3¨1óõÞGæ‡Ô~¾õLlÈÜ2ƒÙ“ Ž{9ÆÜéhö|_âìꃑ:µ‚BSØ}Úž  ^Þ%Äâvu§JϽ,±¯¾KÀXÌU›ÉªNÔØL³+7_ûˆœP9mPw(¿ è©3©p@€B˜"¬–É:€ WÌ # ÀÔ¹°R"”‹Ë–‹ q#Æí³<ø†óå+ó–8S£F ½t‚æ\Í4› Ásm}!oců¼wdp6Í:"wâ¹3]ïbóÔÁ¡fN[ö܈ü]i؇ÑÇLPk|¾€y×é³Ì±û@/Iã<Î$SëÃBI`ASuT{ç˜ Z·° -0Þ„òb2ĽTÓöp- ªLŸš¼ð±Ò}ž*zq:u£RŽð言m¼ x[ ÞÓ³V35Ç\Èßæ‘ÈPu4ÕeN+…(I8ÜÄ:§îÈ,/s*áËßáQ̈c!ÐyÊö@à͸Œ¯p— f‚8«¬­S#ÕFPén“Û²¼ÍÎrejr¥¼…M#9[ˆ¶Šˆu9x^-iqÕGžj±Ôïp<'zy(ButÑõè•üˆ/jƒ @HgÐ0Ïæ)´¬®Qw`É‘^™&Ð0MA'9]І™Zi>'O6g.é•AY~ôÌ9(clN0(‡ˆGXÆ(×Ô‚:ºfQ¨ãAs|̾9/ŽÁÕuG^¯GÉþøÙîzelq@Šg»ì1hV§qt‰]±T[]·½YAo7»Y«Ñ= 4ÅòìAг©¯˜ûºìÏxY<+£V0ål]ö4G¸‰Ÿ ÜÎzôÄe¯…²¨Æ­‰±'–²z2ÖDènëñ€2›Å¸hÆOG¥Ef¦®ˆ5&(íêˆÇøËE4Qq©Mô}:âÉõ\9ê3ÖSÚ - •WNU|>VNtõu!l1.÷ *ÞI°€S6Y  ³[9º2„SCl¦•S°F·rŠ •S®œâæFlBK©ž˜‚³Ç†×ÍøWNQ¦®ˆ5&(íêˆÇøËE4Qq©Mô}:âÉõ\9ÕQ¯œ"ÐV äN¹G’\+>À-ñÕ÷ -µnœšâ'nœš2©-œšb*/œšz3­”Ú,Çh)%²QÃgh¡ƒ ¥TsJ‰Ä„TRÑr‹¿J -‰jfô £8O× Ä|”tõCKcÅ%4ŒâBFuÙ–Þ²äz ~>½ûxºyÿÁû?¿½ž>¹óͯ_?¾<|9ÿ„¿Ý??~xyxü¿~ýòõ?Âùf|ÿòútÿ÷Óý?O/úË NºóÝéœøñ|÷çéÝ¿€üv8š ü>Ã. ždóãúïîþdÄd‡ÄÀÞB¨ÅRp.~ca@(§ŠëáÜiñ.fÙ"§Ê 2 ‚¶#$ø†ê¿Li4ÞYéWï;‚±yü äLµã2;§ß„f…ñèÔaœû@„ì:ØBß¡ž“§ƒ rÒýt•¬4j–ñ‘·äÚØ+fƒ€%5ÌIâô8ñ$e°F6Sb¨æÐ)³„4ç8A!xº ö\™`mÍÍ×O«‰mBàÏúU>-W eêüf”œ›»‡zzØ{¿ø?ÖX>*a†KHk2@¶¹iÊÆJÛ–Úp!ꙥÆD±eRÄTÓ‚Tu¹‹ˆ¡ }Ô1¡™x/\Ô g5BmM™ð_SK}r{²%vÒ:IÓ½iÎO´ã0 w÷²÷,¶gÁÜØ-LÏRÝÞ³à‚ïKÏÒrµ\;eÙ{¶ÏTûÒ³àO*kÏ‚?Åí= Õ²t(øÓ³ß ™Ãµi# P{W«Áo6g®Ö¦M×óÚ´éâau³&TKÓ&@imÚlvKÓRzÝš&’§'Œ›6[ûRf‚Ö¶5ß1iä6%—±ª$甪‚RÚD*Ì—|h{HÖ´Lv¥×¤Ú\)‹HA-H…7w!9¬Eáz&\÷…¥!®fCø­9“&ÐÜR³¬+=¥•’Î{Ó¡{ãæK, ¼ÖÆ%Ð6.@ÝÛ¸°³Å¾7.€ø´ SaÛË~¶°ư7.,>® ¦kãfeuoÜ)K—–‹/ÁoPhÿó^&+v%G~‚z‡»´÷U΃½jh ¼°k+®ªŒÀRC[†öÛûŒÈ̈SgÑÒB Qª¯NNLå¸Eº|½WŽÝn¹—ìÎ[î•^£_P`ýf·p3g·"z¸@­˜À­PY>.`Ë6p1/xãäXX54ûMönîCjÒŠT…–1ƒÉso&X`aiM–Y5ó¯ð™.Úá£<¹Ãgy|…ϒž¬’ÏŸ¥²>KŠ;|D²6|–²wø,ý¿Š“‡ͨ.;$3šM¨&Bè5ô@DEÞg;™wÞÓ5hyN¨4·†:èR‹ãc z2=ëæ"@=;šQ»TbÖ£¡Þ‹Í&2£Ù„f4[‹÷¬³ŽX#‘ºÉœÖ÷x5ŸeÈx½ͦŽd{ª¦Õ÷E–oÔu§ Õ£¦£Õã=®Tr\C«(H®Æ³¢j¡°¸nÔ¼?I*Jû§Tœ’B8¡Hß[I!öp–²§;OH’¿ÔMP´s?K -Õ=:+) ²¸~¿ +)VRs±òÑßþüänoþúëóóÏŸÞÿrûÿöîãóOŸÞ?ÿ†ßs¿½ùûç_~ýßáö†þðéó‡wÿþðî?>ý ô/OXénoß?•Ûþx{ûϧïþ ò·'ø³'X?#Ê:~ iBFÆÍÐ*xúÃþ÷öݸsŒéï£'`þ`±§†žwCV -<5P¨íCO£Å"ÔRXjGUaˆY@KVD,S eÐÈó&•;ãÜÂLQ!Ô2'›¬§ z^AI\.v³ˆÆ^>Â%N\™&’Aæà˜(°e»^§©Y¸1¥¡¢GÈÒÇs3lCûX*Ts“ƨdd¹0lì$aÎg-³ïç z\ù츆/ww£ñï„ÊE„¢Æ¿&­áäß>&ÌãÄ’oݸ·ßc.ɸWu¯@ëÞµx[ ¨&mÓÎ3™õ.`’‚6Ô¹×·ˆž`+o=Î07í[²’ êÃlÍ[×\ešŸ´-¾ž>ÑãÊ]Ç5´®•ÁƺvM;Ûµ@ΟH¬§Às>TëÙ@å¤Ö›ÕÎ(ùö~ÏNh<»kcµ”ªµik®[×vß´‰@ñÉŒkå±Ç‰¥P«q-Põæd·ÚN¾L©ߪs>Þïˆå¯ã’o36ïç´œï– ’ËLÎFÔRJ²‘0Ë÷HM%CŽn ”þ™¹Ê+4º†+¡B¾é#ê¬éû*”öý¼Ê¼2%êÌçÊ»V6ßÏW¥ £.—r*”!\1‹)!Ì’!Õf#•Ð5\ ]C©sûˆe÷}•–_ù츆ƿ:-O;챌µ3É2ªÎ8Ëø+/mÍÜeÈLçÎt®™¤ÌíÜ•X·sUÞÎizùv¥òmU¶AU؆_‹·{V©Ñh¦sÍV:_p—¸uÂ6ùº‰N˯Üu\CëZ•–—kWŠØ®]‰d»V%œíÚ•—–ƒvöÒhftÍVFßpeM-N­Zc+k-J¢V‚•l®m²J6é*Úô²X;HªÍF*£k83ºf\äöËæû"*-¿ò×q ¿t"m_9‘þþ#0¢~å_3òÆÌÓÕ÷Éuž<>‹ŒL¬‘Š@BCl ÒcÎD|Fnò u.FÍbº÷€R;¥{›ŸŒã°Ìs+¸%e  Ñd4²&žÌ$6Ìo†„Üoµ™i|µwr!§›:Ã!&6Z‡²·Â,åL  Ÿ%f±„x‹4|µ&ÄÓ^˜å}BÆ^9¿*9G»SMÉ«ó°.áoq|UQ¥mÅ"l‚ei¾Áë„4L;ƒtÞ'ùØyÿÜ£‚ºˆßKk™Aæmš - f69ˆ”šZ•ñ§÷͈üìÙ°´Ÿñ Arðú›È[y°m“Šs·¾ª÷R‘ö”…ë½ÖµÐJô–¬¯h8¬EÕî>§·{ð¥YWµ{uYKèŒô¬„ÖQYSŒšLÉjÆÂÖ;±ø÷y!‹¸=.ÙËežô-3ÏŠCDCôŽJêŽVŠ5ßt”S<ºž4ñ÷ÞØšµ‚L¥vòwê±Ôqø_qC‚“Q ^±eŽ.ÉX`1å‘û$«Œøß¹o’áÉê+É¢j'ñÏ<^†rÁº§r¡Œ#„:ú>,ïx«~÷G¿F³‘"ÌN©ºq…y\ŸÅ’ -+–ñÍ‹šcÍg”]îŠEj~G¤ƒ„ - 5Š‘#%Y•œã°ˆ‰A¯S @ጠè<¿Ðõ/òPïÕÙHD©I|Ï"Á&·ñŠÚ„47HlIca‡òýµsZ×iÇP¾¥šbº´j\E¤“ÌN#ç©ó @ê%uÔSf1ñ½Dg”›éµ[‹D -ï%ŠDWëõÕÒþÚiÈ<îq¶Ç%û²Ä¿eâ(ú(ǹÂte$ˆ§UÏ Õ;nUäNÑ«@¥Š d -Ô"Ôh¶é)mæa¨5±zãÅ‚¸HŒÁböEy‘ém{qíÅõÕòâÚizqÇÏ‘¼8\ÙK³Š«ÌFk@ÄÐ(Ž‹®!»qÙlD«Ù)„8®°ÏµS__Á4¸ga%õøš5G þb”ÒÝh'@RÅ1ÄÌ#œ\Lrb¨î2âœ!.—bŠ é£Œ9Ó°™ßÔî/*æhVÒlHçM ÂÙ;Ì×”1˜©'30–at(‡åÌõE;Œ˜«Ê;®÷¢ dQù}š5ÚTm„™(”£®–@¾Æfª%˜4q"G‘“‘ˆv],ÕW"ÿ½‘ÄÈ<íq¸Ç%û²Ô¾eê™&ÄÐÚ}ÃÖ2!Ú?¯l2bsÛpmCõ•ØPí$Fœçi#¶݆&½+§-°YÈ9³ÄÍïû@Æ ÷(48™“*½{¬’nº‘æ¸ß™-w#Ñ¥QÉ¥+oIz†Õ»OòxÚ¾úJ¦€µÓšæqz¦hÔ'¤,µ]XAêKåÌšk##Ie7QÇ+ â]]#? ßÓW%T<Ì©jŽ-ž½&ÁU¨ÍR ÑRÔôÞÒv˜9ØîrÍ51®—h2Þ«çOe—5§*wÑ4¢¶2M¼©kO G ¾[Î[æ+OB1;9Ꙍ¿Vs1et¨9a‰ ºö¬ôH`äÙ-YÏÅb«ۈЦîé0—Tt<^íq…¾,éøo™tfÈæõ0ïÇÝnóž³ç“ArQY‡IŠºÝ`F6œùkWÓj7ÖqʇÙQ×n\H¨ôv-&’{l–$ôïº:5ÊìR»™Ó|ΑÕÇÊB÷nW„Ìò#4âjIt@] 9j2¶ÊéüU¡cÌN8ó¸a:hm --ª]>wÑܪr3þâ«IÏžÀw˜Ø $Ä#¶Ã?ÝLÕfîý·…ˆo&±7Ø´ H-ubé ³¯ótr½o¥CS"¶æê ´†o¸ÔšÑ;UA v>uÔëÏï¤\‘>îÂ+¹Çòi­ëˆ%Ö?š¼ÁÎ×—ØïõWúÃþúþϵXÆÈä:‡Š›4Ùaõ`ɨR(arÀjJ?zÓ\*Ôšè¬T°ä9xJ«4×¥Ô}+'̱Œéc\)H§þQ°çZ ›³L¡TØÒôçÖí× ä*‰æÎnc‚Ôj™ë|²§Š» ~@4¥ƒúåÑÞb0 ¢v -—)­ûuýnøƒÇ[|ÿè½ßïÄp/äZéÀ¤˜W1i„¡1ŒÉEGÒ$j,Z™Jy ¥JÞñ¡¤ zŸuîc”k´dˆ\Ñpqéåq*4ަa;·ChjÔyƒS®§ÊRÓ@î­vÞõAõN/ä}ú„P@¹‰Å -Юé…YéC°Epè!R¸Ü"\xÂbexé&oHÈâxHÛî„“^ßbvgíbþûÔ§ï˜,ùí×d"˜’íÁ)•É ’Ta³Œc:_@sdÞéÜ7fÙúð›L½…é)N²i÷ff:ÿ¾ Ôj N…f,ƒ$‹´dñŠŒÇ2á–Áj²†õC­£X%ýz¯YÞÕyúŒaÜKÅ_Á*†ðÍ(…Öä˜cB9·˜ÞëÈY»‡(E&gkM4ï0Ô£YŠHv¨â9“?²x+sa]vÒ†h™(‡S-™£X`¦¹ /ÎÙþO°çÙ.€²Ï,¨&GÅhËö{±3´á K"sYËâ; +q@œ9$³køwòlÍh¸’¯²M–ûimõûf\-_o -È|ºml‹Õ;GPÑÌü¨ar/²Ž)ÞR»j“~°OñPChoz¬£½sË…ë]ÂÏþúüûÛ÷¿~Çv¤ñ_lǯ?³G|á{GÇ4üx€EjŽŠÌ åQ”±Ç–5.0ü'9 -2a¤^AP›þ32aÌ`Gd@UEATr ˆdô(Ç€²–-Lî]r|Öm8Ѷ^œ3·ªœ›mí9÷ßß¹¥l¥ãèÝÎÙÑÅÚ£Ÿ«Gdw™.h–ócý|¨ÍÁ؆h<_ÞVë-Æq‘Å_5.µÅ—ªƒÊ­ÆóÛ7rTcýAæ,1»€D/òÕ˜Õd¤ÕPÏIbMô]óY·r¢mÅS7ßÎí6+÷{Ã[ÉwNN'¬Ä…†ñÿŒ¶y"tß*×ç.ÝÆã(/…9Åóï ŸLï0WT¨xeç§ašÍMb-ác1.›.ìæcyÍEܱI^cÑ< °ž‹D·£î†iHÇ;­hä Škª½ª!UÊ퀴n4Ft@ -iQƒZPt@q™; Ìë°u¹_;I™÷šäND¾0—fM¤4ƒRË|AàRç}q@Ë]ˆ¦’JÖ~(d·Ð–ÔnG&wff;<Á®Öù€êÖ@ún&÷YÍã•æ ¤~Œ}+Œ4¹‘?ÂvF„x¬©¸@\´dZNqƒþñ-žáF_7„õÙ³nŒÉˆYòß(UÛºÞïÐ)_±ŽÐM4È£Ž° õ.#æFo#Bè”1j¾Ë¨ ¶O¨S¥PF M•èý«f} þ¶÷èÿƒ÷8º$øþHôqªÀµ -H+=J•@Y3[ªÖÖZ”ªªá¨T@ -#Àù# JU3Xè¥t¥Dàü­T‹ò0( )uD¥ZÐ¥TgÝVªm+U\zr3H$õ·ûÌÒß#ÉáªhócZ¸ée¦#/Û”¹È)‡ÜµÆužàÍ ±½” `ž€¹úJ‘ið ®}þrU–æ94=—Å«=;è¹Óhì¯ècAûÔÙ¾|²ªåD;ÓàÍ>stream -H‰¼—ËŽ·†Ÿà¼C/!i±X,^’•á €d‘ÖVÉ€HpÞ>]ØÍ>šÍh¡ÅX3ŸÉf±ê¯ ÷Ú¹n.2öšmÔi¯=j”ÆötsH{¢nëñÔ±ÎP'v4JcÛšwâÒkÚY·ÞŸ‡?ß^ýx{ýÝDÿzÿûçí/·´½þû¯ïßÿøéÝ/ÛŸü¯·ßÿðéÝûßñwNm{ýÏÏ¿üú¿ƒl¯uçwŸ>xûŸoÿûáÓ¿AÿzÃÖ´½yw«Ûþ¸½ùéöê7¿áç·´×QzÞð/Ãü“IHð‹À-¤ÿãüyóÖ ç:†78Œsß>ìc”R燈£Æ¹êÒcÕ`xS½SvÎæ²žàslÙ[®ÕQI…dO­dGMÈvÊ^2©ÿáö4j³eu;’”ôaÁµvÛY±>©óaxá¤;ëN}ˆ£‘Ûñ^dî<Ùè·õceÇO¹Z ƒ‘ÃÜi ÇM·õØ{_.Š£ª„‹¦?ê.Dm[½V!¹’WïÎŶQè –CèK¬€rç¼-1ÈßyôË:Ú¹ä~ùZÚ{ëãáT„ -]¬K{J½¯wP©@m—«‚AeõJ`q[ë{/ܯî¬¥È )e¬Áº ˆéÂfè—M,‡žB:m ¹-öOM.×<¥{zãPøé³#ßÎ|ùþ¶ÄàÌ«#Rgö}‘¥O(/„¤'ó™ë¡H|ࣉs˜ûp%º=¼‹˜=2o ßÕ='àûóðç%¢|u"¾< ™·BZВލ¤I¨p¤TÈœgû¢‚¼4ÔjlÍÃê“Bx®:4g"kªý'ÚC㪨õ8#áÑ”v{¨úÆ\h¿)Êb-PQkÃU¢‰$>—ª ÎÁ0.¡$ ¢£•¢>š,gêN$ÓjÝÝ`&?uÞ"ë«¡ÊzW]%Wè×tLY<4o:ý›#AOôô\pîÏ× ¬|c‚s¹À׸¾ ÌRÞ Íæ¨ë„M‰ŠXÄQ®=¦>ó F¼jÚT¨ƒ«¢6F¬ÃTGŽŠÄ׬”i$ºW@T¶ÔTh½AB6"&aU¸GúDPn—Ÿ;a‡Ûú1¢x[Ïñ!y±N…+T,®z J£ÝUZq”*:ÙâEb­Ï}×â{6¹‡­æ¥#Jô1ê -Ë”®‡Õ^iRÄd‰£¹—Zìd¡Xf µf0Ë^§ª"6"Ön¯°²´m9¨%¡ÕEõèûÛbðŒõr-Eõzý©Ã§¦ Ë´9Å%Z5à†X\†¦/ûˆjß«\<$”¨·\«¸wìl¥¹¦Åë£"m¨Šª4Ýê/)woµ­ÍžC-TLgÂÄêXUiÐ| üÒ®ÁìêTCxú9*’뙨Ï5îÖU¸M¤EúÆ-kc¯éqWEZ¾Ÿ(Ÿ³¸ëô{ú‘ÅÁ@ð<= |’‡àÜŸ‡/Xþ¦CÃéâ,1yi[’~²¥w)I­Ÿ€¥—èpÑsÛÒ,»x­Yšª¾V¤R82Ú/^[6º#G¼ûu~·^.–â@¹«jΖ?‘÷ü,Ö Öu6!_¿V¨åTfŒ$Ó¾ûm]Ž{œμì9->9ç¥ÃsçT5Ý{¶ò O_Æåþz™®è÷{¦"ñÀÒéÌû}I-^]\CR(žk- -ƉP(ârBh#ÖÅ×⸞Sw¤éhñ(0GGš¦2g{V9´¡ïã(X­”éçPØäx(ÌuRøácèìy9Óc:ZnË3Æ£j9_;†¸Ì'Q–•@<|Œ§ë.èóSPT$à<5ªÇ€­åÕœ„§U 3b¥>ÿ:ñÕ6ÀÚûj‰>%{¾‚Ró¸˜fïRîÛõKöz½žh†;7ü¦3·T7ãp¯ÎÜU'Š3ЍÕV[‘o$*—uùÞ/_;2O}zNÁ÷çá˲0}e¾úí«±4t¡TâiCµk"–¦µ­ÄC)—œ7EmÔùœJÜ Y“t$¬RXjXb ˆM¤c¼":¶Ò­ŒSS¾¬cæ[LÇ1E2xžÊ%všOB]¯$J¼^«‹#Ê9.•gÛ™}B„0‘lŠº(IGš´Q†#8|c‹‡ä‡'¤-«m"«AW„å#¶NÙ÷äg¶l“Œ¦Wjn…?‘ZId[¸8„‡] -]ƒŽ{ZB1ð¹Ï¡Ä:ÑÇ‚#7—}êsD4·ÚÛË`vjÁ‹Gâ¹8É™ãÔò-°”84 ´C“‡eµ>KAÈôDŽzµ7­iˇ@lP Š,TÍšNSGnRÀjó‰Â‚ìV‘C‰ÅcduÔ9HlŒÌXÖZ¡(' Û삆B’XßhÄÖ’d[çíGQª&J ykû¾uÖ¬U»ó°e[«£>Šï¬É*E©×Ø:!¤]²êª´«_¢Š{ ¢Ò·’¢VG¬jøO|¯wÏS(4w5q#©Ž¤Y6W¿õ‰tëØç™†î†v¾lEÓ-—Ï(Ó3lãv1wø‹m½Ô‰âò¾uB8“¡šûŠWCG¸ÐðÈÑè!‘ k7®B4¸ÒS´0º”£F‘p¦ lœN.ù:Ì“‘R[1”}´Ó¼÷C•ì%#iKRÂÔ¢HeÑ|» I€ŽõÅ"£µávÕ"%!j¬sjÕZ@%&8^ÅRT½h»Qã±0jÔ®+À‡º–kÚlºyb¨¾Õµc åÓek·Å½j;í&Ó“kÐ44}ÐZû؛󜳬?Ý }éL}¿=Õ ìù+Iè÷\€²G;™1#;#‡ºkÁ€}ñ‡\µ©g:ã Ïùݵ­ qñmåjÐ^¾ŠÄ製Iœ'?¸[6Έkº@ØR6Ç\<¢´z)G—S©åPÛ´ -¶œÊÂ6Ȥê˜:P÷BUbvU¯æ©Áî$ÃŒs¥y -šãT…ΚûGÇ Y×nË“äPÊøEŽNošwÇØƒ5­KËv_*‹–W ˆåS5€oë¤&ªÚmÌvñ¡„+*ôô¼Ií´µ»AsÖñé&1ôÆV)3ße M”;O †»w ÞRatÛúÔvŠQÞ£MõgŒÀ$-u§¬\—ó ÷t‰ë’»æ¡SÆ„l’?)ËÃ×> ›"z€‘º`§Ö¤y¯‹Pò¸ ³º.úëRu†äˆ8SZš3À³Ú´$°HIÙx­hÙÜ-†7X¤ÙÎSûTèjeèrf\·vIñçÃâº>õ¶*•êTÚÉݺlEèŽ/ºÓ,É蔆°<§õ—ßP‹ßAHÆxâ•1v‚~zу³/׈ì¹8$­ -Ygä/ƒƒ³eYã´I`îMSµÅ‰‚¤¬zdø¾.‡Îm¯±ÈR~æÞ©çŠ"÷2ª¨>»nq ž }&# ­IÙ§ÍÐÛtT31-Ð>ŠÌ»¡áR3?ˆ‹ëû‡ -b$Óq­z¤,·º«¿|wÏÿu±ûËéöÿ÷˜þÆŸ}óîý_›ýý㯿¼üé]yyÿ—Ÿ?~üæÇïzùÿõáÓǯüþã¯ø·;–÷ûå§Ÿÿ›H}yï‘_üøËþõÇÿðã?þùBËË·ß¿›/¿ûýË·ÿx÷Ù€|…¿¿¾+Nnè¹Â)ÎÍ]^ _AÝþ¿o?°Ñ]~ÞÖÄ| -0„V€½Wv¿¦8 ºEt}Ä8äyÏy…É‹tª I:@Ttw$†‡ŒßÂ™È Z8žêRnSÕào*;r´¨“êýÕE‡µI5„q߈ÜHNe°S€½Hi€ÚŒ½ zP! ºkiH68Xäöú6…Ú,„æ:ë1>m=­Ã/1X|7ëtqIú¨`%¹= ]¸Å8´ô]cNú¸Ð˜üø:¦";Û«º÷Ñ AYL%µˆÏ°‘ o’1˜uÆO=ó@fQ$T¿`ºèæ#›øÜ!P'­Ž§êÀPó‚" -ÍV-‰Ih{–‡eùőȋMi;3Ù¬9G²rG'Õ¢Ê/ hÍ,úÕÒ'ŽÖ:›¬èØYôóÈêB­.Bkœ‹”¨)î&süæÀãîM>“wŸÚíyÌ3Ô0Üúä(Å„œCvã: öXÈžèÐZfEÍQ ¨êúC娖Û\@•ý(Lâ34UÌ7°£Ã 5_߀ûÀ2Ý€ˆªXw¿ -D”s?L7!eï_åºjÍ—ÛÇ Q"W}‚¯|–¦åŠõ—ßQºé¥*Ç¿#°Wš¶ ‘µ»tj?!æ],j÷1ö£Ï±`¶hdާ&æP1–ŸÓ’]2ähÙbCûx[´­P]`ÊÜ!Fª[®eƒóX›ÕÔŒ¦›-̱dëe+ï&¶®gj>Šõ¥œûRFŸ³2áhÊèÌP­rkO- -K™|duÌC‹8iýZgi=C9û¡çÝ[V)J]õ‡Údej+¤vsa—ßT¹}Zgl5ø´¡^P' C%óÀL®2×IH¬øú0) ÊO*ð5ÀÒï ûÂóÅ!‹YA-Fdnb·úGfXØ÷Ö^~( ¦7¨ÈÕiŠÄ¼Ñv½êÌZ´¬•ðv¼µ½-e­¢²˜JüjáQðc„Ž ì½×è*ç;8¦¾*w3º¡û©àŒm×}“¬;{ܾ¤Qãõ_Zè"™)´tLÛÖ”ÙíIê{ EâjšЭ',k<.¡bt±ù¢‚²r¼¸€zý-Uõ -9hi±¼4½ƒ²02ûð;ê&7@Kå>†‰é¦ã¥lüÉÍÔvFf´ÍÞ@s”¬ì¸úxjÉÚV;éóPþ]XZÕÛ5¿ªáj¥¿Æyä ‡ÉÍê$´KÙ:³ª[¥¯,£lvzá¡ ¦F6ìiA=]‹ óH‘ŠH´aÉrׄòî&Ò’[NJR‰z`­-«;¡ÕÞ ITwLiPÁrPÙì$zJ/滇’ÁûǴ!©N -›#‡€UÞk­*Ö¶I œ¹´¦­+°Zhìéë5ª÷óóÜ©‰ó¼N­5¨×BíÎ&Ȇ\ô.u±Â9Ò±bAÒ*SY<»§ݶôN) ^ZÉ<†|ñ¡®¡Û¹^¦ÓŸ`ÊÖÆØ{È—P§Ì$y!PÚçõIsî ÒrŒî“vâu+B+ñÄMw`ôËJÕ¿–D˜åZ/׿b+ë¥YKw§2ûdXÎÈMƒµ|Mk šqŠŽ^[øÓFSâækÀܖ窚QÉ”V¸Ø]"ñh Vç‡)™_#„wGêãsÃ5H% y®š9ñ]äVì•[[1ÑúL òg8#0SM¿+RшZf˜¸‡"¹’£ÂS—øŒUç°ž9;9š ”7› »¤F´Z‰§«0™Û´ƒÎ«èÆÓ¾–ÈL–o>k%ÕJæ)…±ç —ú8 %ßkA`Û¸1œT²Ä¯¿(÷aïÜ–l3 º’Ž -i”ó7ˆñ#`†ÅÛ“7*]ñ'g]}'ª„ÚæÊk¦xI*‰c·Šô¼€³5„‹ÛTlü(•š&C¯b6wuø*Ds)¥ÁòˆÕ•A”\ËA÷Ð¥æ[ˆ­ºâ½„W‹Q­–›/áCÿ?cY¹ïW¦R Òðõ¤ØçAûׯéôÇIѲ‹]ô¶¶¸ƒÝúw7us£zÑo>œîÞ¾ùýòõõüã)ï~ùr¹|xyú|þÁÿzütyÿòtùŠ¿QqÎw¿½~þòo(ù|§‘o_^Ÿÿz~üûùåO¨?šÎO§~þîûóç7ÿ@ù?¿žP†VEåÂï‚ -¥†HJ+*–.úן‡GÇ5ôEµîtòÉóiY“WP«x1{ÿ -Q¥êé­RïždÍ‹?¤š½¤Luk½Q4R4“¡0¤Öº§öJöB!õ¶¬¤LTÇdxqt˜K“ÜŒ6e­ºSÂŒ6@†øã†èfš€Ùl½¤’긑ìò¹‰V³öß²Æ~œp[-—6vö˜¬Ö»âô•ÃüŒâ@€‰½ùYöi R­¥òx'hŒ«iðcÈðqö›êœ²)í.ÔRV¿j÷®%ßÔä>!‘Ú ­šŠ—¾ HøÏÕitÍV]ÌÓŒ¤aÔ -ÉøØ$¡bÜIBW>64èÈO=ùñŠ×NI¨ ½ŠØLóqIºKfB ÙÅn¯kO–­Ž”ÀɭDz*×%¼ ê’PÙå‘ÚúHÊì¿ì:œ§•ž#°ªï1‘|x–µÚ!–úŠ«D*ts²×RÐLÞËÃ|Í:‚€’†"9k–;€Ë5‰ø¯Õëðg¤/¢ø¸,•[ÑÜœ&`?%ÚDõnçfåÛÛãJnQŠs|Ì$’À¶ïM¬žJ×àŒ*4ãç*&N˜ôÅï‰êíw;tðD[‘#øÊ„…u†RÔz¡éu#fåýÝZjR¯û¥4½Î¤Â%[åêÎQÜX£+Ù@HAsu/Þ;ƒL‰â8‡“`­“EÔZ’IË€Nëêlßk5ª¹u3“ÖV’ûâµ(É5vQÝ ¨Tr·Q£—hC¤²¢3ˆÄœ3Ž$»wåÉHŒwŠB?â(Ñ…y"¦Mžê["6 ¿Á¸úàZÞ™ÃÓÜľèÚô’†¡ xús£_Gaè(¾ |Y8ë˜~– U(û×f2:lºt‰Y§x5Äá,ŸæŠ“fHµ§xsf_L,Iü\³KÒÝx 0Ò²Ñß¹!DÅ*É{·i.Ú.c/ÑéŠÕÛý8{Tþ5å<­UÒ7•´|yM+ ­Q4Ç–ƒÈZsE •8¨TTÈ;E+­6%%©¦ÎÒêÝAsjV†Îû'0¢(»ÇÒ›Q£s”Jëz[n>+švÉ”ÊbvM­:–DŠŸÈÈ[²âzÝo=2_êÝ·(ëx(€6õhÚQxà+Í ”ÿõn6Dó%Ž_*Étû6õ[Þý03- -D“6B[ç´–¸—zm„ºˆF¼¼_o_ÓÞ‰m£;5.9óãµ›’Î -&÷jÇYêÅ”«K4êÚÙ\£CRòÐHúݸ¶-ä*õÃ(m5ßËu›t —D¸tüèèà™Ò`®»“ò}%ïñµGÏlz ŒìÛöó`dO+Nd¸ƒÀdî€8"—‰Ýó\«òð±>s¸æ$¹9r«©Þž€ÁRóÃKÇKFDE¡‰Ý¶áËâ=¼*îr¾¥P[õ–¬²¤Ò”`ÝAì¼rú¬¦˜ìÔ”#Û4ËpæÝ‚ H 2ØÈÈBÍ:I)ÂcsõÆþñ§Â²•LÓ^¬EQˆ) 7³´÷­â!)»lJ$y B2S@®ëÁTÍH=ÚMmq5°ºPC–F†°t)³zMdÚ/µ%fòÜx’üYBY¯Ë˜2Tª§KÁåP­M|ËFÿ€ŒbïÐDqÇrE°úlôoG¤7_®JÍ„Ú\±ÐåiÌpæJoµ²©0*܈ñ0 ûß™&Ï]ZͯÐ^¬¢é{ Ù¤1¸¶ ì®G|éµv›‹È‰Ø÷iIPËà«P¼’>_.5Iî âÀS¶¾ÅréÐh&—¯lMŸÌËUpÞÍQX_¹έßLñæiÌ.¨®IG_-ܨ-tp3½lî’B{Š{e­úÙãiJL4j!%·æµÚcñÄt*É]äÍ©àñÏUtŠz"®"55#û»ì‡t?%™'ËmÅh<–CX¦I$ÅZÌ×)ÔÈZ5xcqQJ“Å5ATÇc™*8†=2xÚÒiEØâ”Z¹„õ(ÃAÓ -AØÑÔV^… ð;¡\'MñÞšÅØLÀ?ƒ_³ýV¡QoµþQSÁ*ÕùV£D…¬hò]¤à -miã¦`¿LÐå[ÁÂÆ÷e¦¨Lu` JA%''8Äf´iÇúp²‰5ôD4ïn¸±ÔŒ,ñ­,5‡©¹âË•A#ÏIS’¥x)š¯.Ҕ߼lU²C’˜R¼½­é I…ª©{Erv¤-ᡄ¦å`Uß,-ͤ¬B¾»àÙ4 zž©}0«_§îæ²úvààL¬ÛVù¢ &y>…^¦{é˯©«W…bÍÖ ×,:yt›øøc;äå€a™šª©º ¾¥¥swFËä±DÈ–„:4À vß>ú5uÉln -Å?©\ - -¹; -˜ÒoO8¡ë©D”JÈÉbdv!4&EFM©†éhQ-B’ë#ªs;B­„õ&Dl•3úEzÝr­BúM‰[Ÿ´Ì³°¿¦“W‹-P!‰j¬™-g­áUK%jíZ–W÷ª:c:ïAoðk=Í”)åêjöJaa’Zn-Fˆ”Y†ÜÎ)e•4ía…b’š-ºZy×=ÉÓ-¡´y)Ø4;!°àp^ÛMk ~ÁppS™áÜl–-¹T²8’…tœxn„œ£¼è"+HÿB‚2O¨[æ…òA#E -ç‚2OaWk€efžk©^º}]0ìòW²»½Íñ!*¿ "‘Û|wCI>d`!øhˆÊq/¤Ž8•׊)Æhl~eôÅwFõ¡˜J‹B2ôÁ¥Ó¹ž—nKÐbÀ_û$8Sõ=ÓäÛ—Ïý¡‡|í9Ú%ÕÊ]’miè ¾‰Œuë´æÀMM}¹vèTuu.Êá.Ëû¶] -y ^.UWôu ?”ÅY?É)óºt¥œÂ½ØHƒ¸.á4œ=“6ˆ+eà Ïz ³5ìXf³\ŠnË×CZß@}½KëЖ_JíÙõñpIÓC¿`Ë*‹Ògæ+•P «f—ÖUÃ!+ù6VW§iV¶¥LoE¸P.çsf©^ÚÝÈÀk«ÆÂû©–YrO£Ï„ í­êBXûNéSV4MÁ16®Ý4f‚Dë’D¶+RÜ´õIz6FáSYúª4†;\I”˜0ü˜'¡³V‹­ -Ò–ƒÈkk]:ˆjœ:&ÚcRKì+³Î‡sPd+ ò…B|)öš~¾ô*ù‚ªC}¦€ -åÀ2éݰÞÅòÃ6-¦_©ìfè¤Îm »¾x°Ê+ÕC4)”F‘RÓNšåvnà¥)®Hk4Z9Ä™[¶Õø™sر †vCr—íÒ\ó‚ È‹ÒÏD¯¶^¨F@(“ˆI™×…¥çùùýû?½ûéùwþÛ›ïøôîý/ø=ýûüÓÏÿ ¤<¿PËï?}þðæßÞüççýÓLÓóëwOýù7¿}~ýüúgüûëSÒ—áø_ð°¤ -¬Á•„Ç@ -èö¿×o|­Ö–†5³¯1–MÚ«*Œ‘¢òE!…C à ÂñEqËÏidù±êƒ­M~ÜéÕkù÷-'(>Ìbkh*hšO·¤"¶¢ªüsYzóN‡FnGè^8òœb›)šÏÃ4Å\T!2]S¼PxZç´c4ŒÜ޽]#o¿RÀ¯¾ŠýóWµaûÆ6ü5wÔo¼ã»ÿ~S§‹ÊfŒ­cPaH£ÓEÕ­* -ºâ@m ocUé­i‹¨½é˜mg@zWy…mü Ý+˜ëÙÚ£«àªš+`ÒTI)fÛ-—[¸ƒE È4MªŠC‹M·ÒÖ!6˜[”¥»Œ|à®™»[]Ѐ€|>>£³ižwÁÿaûËáÄŠ€¯§éÕãiÓ‡¿…$ c Öç#HªñÓJU£fv…ä”Я;#¦¢iç-˜AKc£ëÂ7–œ_Wuçmâ²åp Jµ69݆–ZÆêÇãŠï³Wr0é£ “äÉŒJLù·EjgFN$Ò¶±ÈíþP¤_·‹d;¥t¹Õ¶ß¶krG *wG)ª{‡’=ðòéxtÊ•”«™¾h9U£úø‹NƒÁfìc˜ô«`1 æ°n ßP§µ7¯!‹¸§ÇŠ!„ª"¢ž£±eòK6!¬d«xÀ ­uÒh³ö1ª+Ä0ž1`v+{©ãð¬žZ³TGZ«ãŽDb7†"O£?_jƒçmH´Œh¬‹!lG=üÆþ¨ís¼®ºž?"P1N†Å„sH«!¨Î$¢"CW2³ãàÖt»°¬ØW‚ãÌ*kÈ%¥Ÿ§àÛ¼}®µ5ï×é4oít -Cº‰œŽ£T¤x -• ŸËGt·ôÛv(u Ú¬g¸u{[ëLÈFvÚNÌ“»¿°oÛe²}ŠbÚ~GÁí·í²ÜˆâÝQŠß±dXC^,í½²sýôE×i?ªtÖ -J™ÃÂV‚†Ù¢ñâ˹ŽÃ'ÐtQq_â7aßÂUŽäû§óc!¶;‘\åÉô>±Iø‰…Y¬óØE1Ô!—;1o–Jåwµwâè8/Gn©`o™)©{â ®…˜ôJì²È·*E^‘ÎÎ(qNGx/n¿ŽU¹­Z·vÊÒ5®óø»45/'¦Ö›’’ÓIVîÝŒòqjbºc©¾ï½©>@ð¦Õ ‚²ˆdMDbæ€úI?{=Äïúúì•¿={}£ƒ¶©¸þSgdïü"Tåw$üÄm„ Ô“Ì8¤[Y½z®ÜœTùsâgƒjÈ£WAî¢g…ÿðœ.fœ. uh’)OÈÌÜ*”$;)á­rñ\¥s’Û)Él³Žãïb™ºªPQ 3«Q™f²ƒ¤:ôû™÷l÷å_3ÁÁ µPÙe,œvåE~ü®ƒë }­Ž‡¿[Çc‡mr›ŸÈA$æöŽvN_G¸à,C\—¹.ÐëRâË¿žTBºŽ{éz9ELól4‡`ĈٳžÞ!ÀO†a‹Z‰dÿNˆš]!ƒ}ZðÕì‘ÇdY.»ÑLIhÆu•ÙóI*¥Ÿ×›cI®þy²Ö«¹¶‡ ¼Il+ø$1t1ìP'PÉÍ!ù´ÖÞnëÖ -DÉÑ;†$ï×á^Ü^ÛÒbëkVM­Bš¥+JŠð«­gQD³M6‘Ý$¸ˆ ùü!¨¯§H½Ncó?Èoÿ~3Çõ™9æ˜ÁЮdÎqÖ0Hú@­¯90"Ç>ðب\ð ˆy–Òøˆ1®)¯“û ‰8Q ¥Y§CòB~Ý'CMûãù‘¸¹#€fž7SæGnœ ¶Éx¶!–ãb±Ä…³¢¯ UMÙ0'ÜÜTb‰ÞBÔŠ)j2`­C*„^ŒÐÌbŠ:`¡×›sÕ‚ŸoÎ¥ûcsü>ÂäM±@n“-Üûb±^OZ±LG¾A;Bë“Ü‹2²ž›š:›NpP-¦sa@ÅA–Ô¨_%4cPÇVéªãÈðOZŸRêaÔǺbNí†06Hª0H‡åŸ7VbŠïîÒQäâc–Úêl rfe©²‹ÅÜ9¡ -¥;$Ÿö8Æm]#›Qºq®#CR_•f9=X s©2®°¥®’NYÐÈ1**Ѝ‡ý¡znYb Y¦aO2ÌÂd°Mq2 Z½"¬2€Z©^Ûu[¿‡öz†¨V˜ÈrΨ÷<>b“Ñ‘:Ý`§/ ¡yLzäA4Ð -¢þï*†ÂC&RkX¤N¨hä‰åRµ Šåh\óñ1¹id|TûÍÊÿ˃jïV©ÝÊ#¾ý©æ)…ðºÁ:Óx÷G@½wo Tu³e-IÆù;-‰º»o);/)¼Þ¼7íãír;b‡Æ Ù4kw˜íNñÝ_OùF¡«Rèþý^±Ë -Íeub )²¸g‚4Ôª‘ -B#Ó³<ÐŒò¶6KhFò|÷›Ñ$éE“ˆ§Ìº£ÍKü)£Ð%;w¬¤¬UJU9•K'¡‰–‚QèÅ!Ù. Žu¡Ú ôOFaíO¶Ñ— Ól -¥Ôe= à×Ir˨),_À±FzwÛ娋³„gH±?&]Å%š}‘ÚB™3­ùŒöJ=j n!½žáÊoQš_Þ„ŸÝ¯Äk" ~”t—8'£Ñÿ#¾ ’$Iq(z‚¹C^`ÊëÞÆ-Ò¬wuÿíü/ w<:6•c6³Ëxé€Ò—”ÄsÿÛWÎâéG3m4ÿÌÄež¨Q™F¼ÙFa9;Λ…áf½=Ö–ì?€Ð—¾Y‚`d}|Åç}­ùõŸqŒvC}4xBõš{±²+;L!šcï—&3¦ú_ÇÅ®½îÄñí¨ _ÿ:z¯½Ü~Ÿ°_ç4äzÄÛàë©ïkȯÿ×§8ùƵÿƒÆ¡\IˆwÁZ :¿ÚÒu@¢±d·‰šÙ.¬"µ­è™Ga÷@TÙ¾øþ¥åWYqÙ xe‚÷PjD³“¯uÅf´-´Èјm8¶u#¹Ÿ²Ö$”ø®õ!{7 -0PŸA÷©Qtçõ6/ -ø‚ç-ˆ–Öó®D”À‡O¸Ý”y¸Žõz=ý˪^í ßŸÞæõFOžëW„ÿïl‰æ< £^j=Úª¦”Ýw  ç~3;r %¹rõ\™¨–_…©ž+/¸Vßíφ¥ç8H††€ ùo»­ ƒ W®ÌkAäðÞ&ïmÞ›Íü½–ÁèÝí}‚ǧ= a{»|Ùë=Ûy©ååsåÝM¯^î¼OØ>¿ì8^æ6÷zÁûR×;Q’èûCŒ¼>²?Ö-ý¡nýD°0ÍàïjшÌ4¦»ñkaøü"š|^GVD«Ìœ)g ™§±Táí6Ë5+âvßO$ÔA,= „Å D¯7ˆJ³âܹÑ0¤0edo¢iÊÕa{Ãì÷â ßݺ_¿Õñu¶úÍÐêôuN·/‡²†>ã>kO!y„]s!ó^áJ.…J|gE÷Üš»É”=èPXcé2oÄäiˆ¸)ã—Žð|¶™„-΋/‘äQ?¤Ÿ{DŒ®ÇÙ@òÕùvvëya6ÐõáTvëÍ¥ -C÷,v¹šåäXLÑZò8’UßÞ¶î¦äŽdží¡-#åDQ±tÃŒ½×Œõ#bhÛ‘ì–¼Å;í½’ ò‚â\÷ÂÈÜÞÚ~0fY¸d¶p¦ýò)Ž®Ã‹÷X*&ñ]FcC·¥–pï˜îNæÉ؈ÏrÚ´¤·e]î,î»nð€öFÄ®•²,›½y“•yIZ’ŒeéßYk"éõrg<E·+éÍü]Úú:#)Q掹„ü¥>ÖÞñËíu=âœÒ]%·Ët ÙîÇ;gè¾½YæV ùùŽ,ô÷Sì ïÙŠ7:1Ïë¸>œul…IÈ n¡¸¾åä2ï–ã·<]·½EìòÉ-v‡?oY<üI!˜µ”ؾÎ纕øxÕ[±ùúíYøî‰<”žE!ƒîõ#6ï²Ã†ÏòÄ@ïóª QƘq…]ëøÙ×Q±w +l"UÍ2­î—©m½å*>DègN³'}}(±ŸÙßÔ$Ôÿf¸ùIŸ0ÐÌù¤Y£üŽÈo®ýˆDÍchª­w´uó„Þ¯»!ÅK¥y¨î†˜¶(å€-"7RÝÆÊ!Rºj¹ڞ,ÍE}œî±Wg_ñÕÊ¡·1Sæ(mO¸ßY÷X'ZÞ:H:þyÃfs©¸×Â>OÅ -$³^.=Ê•IŸÛâùfÞ+Õõ&B9yH3\ìcÜë vñ€ç ž×@M$ÕzÍDôWJóÔÍâeq­àg3ÔYD¡ºIúdËw¤Áñ8Uâ‰MØmCE¨¸²o€ˆò!4r,I¼W«ž ÇWЉþ¶UÙØGþõ!®™ˆ‡ÂàS$Fc¸? Ö’=ðÔD­f/:×ÜhlÕ‘–¶4̽!;’€-AŸù‰{7d'"¤P¾Ss@ó3R¶’'zÄ»¨¯òðš]Ùu{ -–YsUeÌ·­$#&Œôm!ó€eGùUèÛœÜç÷¢ó] -Òb¦jäf@å÷¡rc»ÈYåÄÕ'{¼>Ò’U§Cô¬©!È ;TÛw´Qµ^ã } ³°ù³VN~D«-QË",¬x7ÊJZüí7ÌJšF_‹#K÷’3å2M)íª¥ûÜÖÆ£–òb^çhtTš¿>õ†Sù_×(¶gö‹–* -Ç× ‰ f=¦@UV.5¾Z†Zé ½×¼£h±œh¢ÿêõ¥£Â\v߯7h-C#$‹h¶naJKĺû¡ò'\²"ê‹rhõï,D+Úß¿ïöT‚ëVLP9&xõ€GQíjOhC- ŠOXšrïH='у²fÞ(DšøþÃç±—kü}fV¬JUq7•±+àà¬å°ylŽâú'B8裎9,’K¯Ýj rZKæ^C˜°dó]”Ã%•IJ&E·›¤fL,ê«—qЏG‰öÕL+=$C6*ÞÃ`óÑÇ#0á#Êܾ?Eõë3ü;2~˜{ƒF ¦e-¢k²7½ÓÛ…ã‰h ag]‹•ý…2Ão%º>_RO¦cøæÅZ’*¸ŒB$æÈu…²„uíØ¿ÇZiˆŒ$ƒˆ±š:é%Ü¡òÆH+ú ‚(? ¢¼¯dXŒ…౨ïAŒ“ZžÄ€aÇîËnTguÝ'eas?Œ™1¤³¬šÇAEƒç·ºðáÕzX1Þ¼ÐÍr™§0×­áÛpÆQv þUÊ -fñ¸žÇ†—™—´€=–õam³éï=Êz'}ücE1'£›IZ»J‰gÓE|]”šó«9tï¯ÜadäõÖ*{/6@J Œç%Q'^^’x×ãAÿÎËeÕÎãˆÂO w8ÃÄõ½»’‘‘ dL4’‘ ŽÉÛ§ÖZUÿÞûDk ¤ý©«ÿî꺬¢¬"óÛ;iã:ÕÆ#xÅ+-w:”ô`˜:ÄøÂžPe¡‘Niñ9ôy“•ÔÚ®“ B¨*#&ŸÈ`>ϱr‰ñ„¼¡¼¯8áÜþæ ‚IbÉNnoiˆaÚ­Ö3˜ -¯±z†iÙA†Ì<KK³ñ]—¿ŠNáÄçÄûRª±ÑPT¢üØIÁÔ9E)'Z§•IÒ;á=hfG‘z Yó['ªÒˆâ ÒÛ©*•žÁ'RÅ$"×{Ò°—ä´0»ÐÆÀB}rŠ u|®[ÀÐZtÈ¥Œó¦‹'½ÝÍ»cW™QQ:-\²®Umí¥w³,fCv³Z¬­Æ{Q¢.SÜŽ’dÆÃÝgÙ]lË ‘_NXÏœìüÞÙɳgÑ5<=. z -®5â·ï½£WLH¸ÍŽÄ&¾îI9ÑaÚñC¤(fCoŽmÌ›þàì©»îlhGáålÏvê13Š'ÉÜl³ÖgÊÁ*Ýæ bXlû|-=Wa¬Ù¹ íÚ‹5ýÚfx9íú<Ê!fK³Ê¢€rZªd%”‚0hxÚÚ¢_o8ʉ…º®QL]ýž±ç|ãØóÝ¿¿uò±ŠÚ¿´ˆ7ÐÏF(Qb¶#2!ë C%'šUŒ0êQ@®ª¨LYž½yÌùº+ŠÐÁBGåùs1 -…»†Š3’ÖR‰o6i°Žˆ‡~sNFßóþئ*@;wØ[E£W?#v‡ºÍbKšØ4gyÇ*ò„ñ“®åo6ÚQ.Ã]µ6n65 -6?mÖ¤bÚ㉫*’nÚÝ„=„!鎄cï´ÖåÿçGæ-£?]BŽÏVW»‰=ÔpIÄ2f>ö -ùeqN½;ù"®¾zÕ(ì 3£âŠÂ£©TAýrzD8¢)ôPïôæØ ï¿ÙÏ_e?¿ªO?à¶ “¿Úò´ÿüÆ2”:HÓùÐ?‡HßaW»º®³Ùã=8|‚ :ŠxO$9Š`?çÔ¼‡)MŽÆ¿ - ŒÅ]ñZh,]N\t]··Øk×á¸ÔاŒ½X|í°Ä:›ÖXÞ<ÂL]gçâ#¯ì¢8óxæ™Ö*±jÐjQVówᓱK|­cpÒçŽUm}ÙÖŒï·vânÑ÷ÚVA©^iGyr>z2¤ê è[ìUê`³ˆRãË·šÎÞJȼ¾d§\ñП+èpó»#jMU'¿­ò™Ÿcß]šçt¢fÍâ- öè5ïY…îyVÄD+qµ:Ò½œnц…“:a¦'P”L]RoYÔÑÏõzo×gæ{¯v{äëJÍP^²ÃÌ⤈@z‚vY¹ðöp¸“’ǤwœŒa9Ñ®§¿j »†Hƒªi±ekA9Ö5‹Iöô>ãI(Š —Z‰U­­;y¼Û¼Wž‘pÅ’ª^r€_Û–´h<’“¶CÃoö}Gkš4ü)Af*Ö\‚ÖFÔkŽ<ͨ2³v8éšr²fMµáÐð- •tih€vv•ˆ/IFK5NÑã(•~f’'­—Xã -tÊŒ[:Þ‘¹¨WEÛPiÔ¯Nδ‘/ «ŒKé÷ðÛðÒ){)GÄõú‰Ï¡ˆ‰•Íc¶±Ânê·ý[¡…«´øšš"n»2f4×€ÔÚºÌXȼùkÕÕÿΙ|7 # {äD*»R·Í‡3 "]#£jE'L iø ƒg–¤)LNiÑnG9•^çb¯nÐRNúH1u4Ù®xL'”‹Ã–:þdTÞzyŸDZÜzö°­çV¨ÿöy™‹[/íÚLßåî­®Üii´qÓïí4&Þ+׳¤«Ð߼˳+Š¿¼“¬V]%€za¯7\ 'ëÔ8){HÍÛ˜—ÙÍ12LPV"¨ëF˜;™Izo¡éj¢q&Õ£e{üŽù O<\ -§]ͤj:æÐ0…ÔÃQ@öŠúÄF§cÖŒ²ÖÈ’¡ï­–¹?]°ËŽS -Ô–ŒÚ‘E(ñ‹vF…:1–¹‹¯:ZPªAŽEc«µðÆv5¶ -Õª'Õˆ×0‘UfÈÈÌð¹®ÏªEE°¨[ -Óxl¥tRg±É‚ºŒv¶”X®Þ›:’WôÐe}ίÕZdD†À‰#v<•;±ÍØiŽÃžè=%‰©£ß•°ã”ÎYSá-ê@o*cÇ ö5°–GßN[L-®ÓÛ‘&Èmæ^I‰¾B*ž-Q3- …ËÉOù b®ôšŸG›¹Nq ®²BήÝC–õIκdÓM8Te3o1ñ$o`µ¶¥#Çä¢÷ðÃë÷£œ~ïâû»Ÿ^½þþÇZ1ä>ýÉgØ×ùõãÇŸ¾|øÅÇ\þz÷ùã_>|üÿöˆzzý·ß~ùõ¿IÚÓkX~ÿå·OïþùéÝ¿>}ù‡Ó?¿rÓòôöëõô‡?>½ý»ÿüÁÿüõUÁÓøÑýo´;ÿ«U'þ¿×ªøÛŸ·ïô^ŒÚa*ÆŸ©š¨£ñéÙXA ¨ öENŠ×ýCl²ÀLIs’5$‡n$+ÅÅf‘|¦&•¸x`§1-’1(Xc@BZ=¹b‚ÑeÕYï…!h‹E-édæ,uGg>Cº/Ÿ_ e4<‹‘2«„%w)ácveRPʼnÀýÔà½Þ‘¿{¾gS*à%£€ŸJPŸDÑ 1­BÀÊ{óÇsï$}zü}#Ò/v¿è™Hzù2Ù¯ÍL{qH˜‡s:(ì-×]n,³`7Ïxƒ”¬y`Þžî½ -¢n²ÔÀ;;,Ê K{;<3§='ÕâUÙ!H7‹.Ÿ¬HêŒV[ÇíYœš—½@M}Ÿ£7ÔíŸÕäêh¦'m*%„Ç˾¯ó¤R]-¾¦Y «,=‰`"ó^W¼±©#¶ðúí™ëM–±%'¹¸Æˆâí"PßÌm܇«^Nø·©€©Ãx{‡.ìZ×u{÷/*Õýš^X¶÷vD>õjˆ^ £ä¨) •õè$„â -PÝ$®}ý!2ô&²}®jv¿´ô¥^FÄÑY6Ãл—¸go^÷àÊü¾G κIÔMÏ Þ€x—¢¶–·7‘5WµrâIÝõ± ÄÎ §µÃÐò6öÖpî© ©ðx™2Ý+Ö±ŒµÌŽƒÒ›Î“÷G£C4J$ƒìQ7ÂôBŽªDñ¤UG¤~è‰ÞË”KúÐ]½°­¡¯µi‰ÚZaZ#ݪ¢–>iÚ[ìê7µfƳß«"¥ë ÷ZqÚ‘@ÍÚKàdºV ‘fOM4RÈÙ|"¯ 'M/”øM‰££‘¦§§D—rƒ©q„…˜ÏX·çEÍH< ²X) >·{,£z0\Uˆõ3dêea yaíaêsm\µlíÉvú§Ï ^€m!θ²| RƒæÙ±›Ö ³§¥Bpøyµ›k Þ ÜŽÚ‚œUuÅ„ž?d¥-«kÒrãu¿Èje…áçXòSŠÈvÕZk+B*öD„€±Âó´µY t9¼SÉÅEí|-3J‘OzãÒsO<²â¾Ô„œᵆE¶± òîvMY IE*Ÿ¼6—ª {âç:ˆl¶!„¨Fþ¶ñ.³Ètš6Å­‡©7œ QÒ€v8É/­ÿ»Çs“Ý1‹ø˜è&P&Y"®Ø…8:3†—S9­3Ok“.rݼ§ðpb8éN èSoEµ…•~2Œd9ˉ]5T»ùÏïgƒêîEÃ&‘2ÍÑÉwGè¨o(;Y-ÜÀ rÛtÐ’Bõ­Ï¯_û, Ó|–%ý";ÑÜ2µ×Ù™aôü\Dí$ÚEŸš˜uŠ2{v9,vZ‡¬Ú=„M_›úš @¢¡2¼Ñ«ß£Õ­‹žuRôè­zí/¤¶¬¶þµ,S;¡|c4faÙ»dCñš¼ªJeÅã•rv˜ªtZl‘.Áû/”OúfÝŠ–Ù~2>ιhed÷ÉÛEn·©.ufÎÒ“@möˆùZ¤œÇœ)“êãMy£tAb±¡¡‚£¸ÊtUKY÷B¯¦ÚZ’!’G $KHù{ÙÔL(„ -Á`G²Ÿ…©‘“òÄyÂ2iYí8s”ú"1‡ .Ët< -Ž,s{Ÿ‡Çòò£Å”TÓkçÄt"IJgõÎ\Ö8îÜÕñ²½ŽÑ endstream endobj 212 0 obj <>stream -H‰l—ÝŽ\5 €Ÿ`Þá\BEgãŸÄ \UEH•*qˆÞ®ÚU¢[©©¼=þ=sÎÒ‹Ñî|;¶ãØ6„ æ¸¤í¹´vÅI¸½¼ë£õ€4:ú²ÞdbqÄW"AÙÞ^þ¸Ü½xðë×ÏÛ÷—¶Ýýôéáá·Çw·ïâÛý‡‡Wï¾èwÞî~ùüñÓ¿Ep»3ÉŸßßÿõþþï÷*ýᢢm{óî2¶o¾ÝÞü~yö’Ÿ/í:OÜô/Á´?ºþÓ' °nŸ7÷ê_—ðP‹¯¬Žmö+âêhˆY(PGýÏÐPH3W Í&©mN‰¢5Ù]¡õþÑh\¢ çuZ€_?k „pر®ƒ c ·;Ô‰0$ÖX8j+“ô£ëÚaìÜsÙhmœ|W4‚%è3æL8z,kkŽDk;FÛŠ‰ÓvôÚQ»!¸ŽªAÃ~6A,HˆC•Ì5úÑCÐùìµB¡ -WGÑó@#°àh…}¬Ób^ÇS;!?ÝM˜yðú D´·Ð‚'SèÚZ©Kƒ-÷†lG¯4Eç„“÷{Ö‚„š£µ3ÛíÞGÀ{.ê’v0µ'g•©QWçp‰Þ~íÞ½þ:üãÛþµH%­1k€ßS¾vi”P<3Yó>üWš]"é°Ï@ˆ(ûþMª¿¹ÎtÂP¶¸§þ6:—$¬•Ð - ¡)àö«ÞWÔ`&²X†¨ÌÈÏ„áôìØš}‹Æhò''ìfO*S:¤>S­Ô6´†)VŠa…2¥º®–FäVúÐE’P+]ÐwCiË[=º¤ƒ¹;êSÖÁŒõûpf„«´(Z‘£=˜ŽB”ºðÓuÜË-W ÚõKyJY RlJOíÀ5ç…èJŸ¹nì~åa¡†ü®bÓcãdÞPš{@·”¤™ÑB¢À’öjë Ñ‘«]KB éAGD,1,¥IOpP]€ôB$CFJö<|…½¯X7çJĈVé—j4¤uFB+ŽrWOG˜›îgªŒ1%{§9"O “d'*GDÂYJ‘¤m’¶ñœ”žrOÔ¥¥2‘ÃZ nîÉ€a-eÛ54S’V™¦ÆÆ4qòIË@’¬U¢”ÖR®"8cKLS‰F‰A6l“[¡¾­}G»%Ž Ì§µ*´­õÕâî…¯Z7 6™Ç‰=tn’¹05º™ ZÞñ€¢rWÙ×i…om¦®>e4¦šC%éoœ°c®è•ÚhÒØ)Õe¹ŽJÉÞ e¤¨N!Z#½ÜÚìbL6ÔÅämUÈ­lÅ0…‰Äî+‰—_{]ØÃãÙo—»¯~}øòyûþÒ¶»Ÿ>=<üöøîãö]|»ÿððêñÝÃýZï~ùüñÓ¿Ep»3ÉŸßßÿõþþï÷*ýᢢm{óî2¶o¾ÝÞü~yö’õóóE Ñb¦Õ(Í'+_ÐuRµ›Dì‡Ûçͽ®nÙ@ø\º6Ë¡÷ïà b¤¾¡xvŠqØkÒòRòÖ%‘½+t›M½Iö -µ¢|PhEï(eµÒÞ2ü]ЭåB¾ –÷ЏÅ(Û{¢û™ „[M5±…Þ”ÓE¼“ -EÁ«ôå:-~Ë/ãM›Æ=“»¶£av風îæÛ‹—'ŸÝ”Y÷p‡"^_ö )ò v­¢FŽG z9Èëè~N”çi¢G8öX·B–0#Ó¿·x>Æ®ˆþNP؇µy3·ùðÜmVkýAò\[ž^œÝQÈ$¡ã×—' ím°/¬ÎplÖä­ÈÏÇûÃI‘{tQ²É@¢ö„:è»_7¨5-7EÏzžU\‘÷lEú&˜%=T¡LJQöÞ¥Hk«¤ 3µuIJ4^µlgîI¢Ñ1Å@j(1ŠP[J…ÓÒÓ!HŠ -´Ôæ)ë(¦7C9‘\t`ô5çzºÆ4ÄLXƵÉÕƒ¦÷}3³ïQ١ߢ¡eÉ5âuéÍ6ðÑÑë G<‰´sÛó.ÂÖö^Ò-–œ+›dÀM fµ$RË{i ‹”Ï'ÚYR.ú¨?µjè Ë‚téøˆžg/Œý@×¹¢ʧÎ~zû:µQÝ«ã®Ú»lâ8Zg B”>°E%QzjmªN3Ãaï¶ -wê+¶\3Ëíô±x*_Çãœö«S‰SW„ÈãJò…{K «þç4S"š‘Çd´®ËC"OŸñOylhíú%:•ä²Ë§ÆQÓ¬ß'ªNÕVÝ'oØ×L<ÞNC4ä|‹ î1‹ÛnHê -DMp´ä\; Î:‚¨1†¢í•脪b 6WÖû±úã\$ñ8S÷Ô竽äZ<¤Ñ¡4gn0j¸G³õC±H-Úmö&ò±q(ÊB_ æeÌà£úÞˆN3I´«ÿ)ou¾zü†Œhþ éæCN|„>-ÆLiHf °¯­}ö,}ÃçGÜÇ %T7Wæ($žÖA ²»28*«=AÕl³—œ=ÐA|œPGf9®³B‹#C*m@”h«;¿IUÉqÆDz/ZÔmÀ¹ Ëè#Òš´Rô?¶«eÅ®# ~Áý‡»´q×ûa¯„À xakÛX=Fàn¬ùï'2#³N£YˆVGŸ¬ÊÊGdä¶Þ¸8¥MíèÞ©£"뎤¦E_œŠ’!À*ŠFÚP€ Ù›¾5%7%úŠhcVU Éì¦éB pâèH$ƒÉ¼ZLæF|•Y«1ÙžUƒŒÏC¼~7Jeòt˜¥oÏ3×)µ@ñcº)Ërä`²7îyBñmZ@&vn"³™HÄÆç.%Õ!šö¸Þdöކ´)À•i˜ƒ\€CþXó$f¯K\MíIX¡Ð(Îè¦çeÕŠU?ó¨áÅA×Íг¸©ƒ‰UËÓ†A6ÌpiçKhe¸iÕ@­.}‚è%…´u­Xý6û¨¤I9Y\6|é™<8M„J§b½õE¯&Ås]I Y.\sá$¡« tV3 ðù¢´P>ZÙ`ïÄdš'±ê„Þš·DèªJR!d/NÆÅOêBC'“ã«Ù.Gaªâu%˜ÉØ=UÅš[î=Ó,˜°éÜ÷Ã2׊ýR”ŽüÏ´œ9‡ %žèPªnäÓC ¢©ÇcûΣ¶æÑµ[_ßö$,ïöüÙ¾J©§mßDq Tȳ‚):…)¨DD%"PÉ Á´á)ú,e‹Þèd -©ÌÈèé -•¢­båË–ÑÕìº4•®Ÿ‡¨û©š±K­ßV›`c”áß%ÊêƒñIÊ/ÎæÎu­ -te)’:k¿Ÿ£TgòIZ¨¨÷+OkÉI™%š%÷ÁÒà]4iÍÈús¥›œë¢´û.•Á©1ã¼ àº5Î`ßÍ´"¢ÔŸ¶¤zfd3ˆí”@.³Òœ¶di9¼æ\JýT5ˆš»¶JëR‚‡l‚yîÎÙ#éù -¦Àð5L6›ôÒ½šŠZì«V§É2­}Z²è•ì|ßbM' ¢¥ìí»úå0­¾ëa:S,ßlKÛ_°AòR3=ÀÙçý|Ú°€—Žfm¸ù60±îçÌ0®UÈB”O †’}³VkkÛ–ëèTç®m™rÿ/% ¡°"{i8¸ÝÑcÜi]DåÐÆþRá#¦DYÚÇG Þ×}DøÀÉ«®¯ BÎGeÖ÷ùJrËu÷ Ht‰`îÐ6pvÐÈú8lQúqé6pçÖˆ8^°ÉñÐmàH?½yyÿô¿ƒ·ï¿~þøé_Gð»X¾zùüáñïÿ|xù èO7˜†û»÷·vÿæÛû»?TÅ„û/7LÕ‰ ¤Š)V°Fë€h”?ÿÞ=Rtõ"±êRþhágŠÎ4ëªØ+:Ä𔡤º.œ;»©¿T¾w‘d“*Òº²-j‡FvÝh˜Žw´ÎÛ XdÁTHݵ š]‘¤²Y„†ä“Çáp³±PüÊdPDçâñAd.˜j.:…Dñp‹XO]”u|AåfG„âL©sžË²#‚GýÔJ¨E¶¯ÅÛ![I(š|{c ]A-2BÙB¢“Q!Š‘YÐ~I·×–ië‘ÕµÄ< ;¬j#Š©ºaÖÈJÈq˜]\êB³ -e]e—\–±×A¬È³u%ëÉ>ËÍæáLžR7Œ$’Ò·¬°¥²Óçfª›˜vfTwûÀ(µbK–,³²­GˆƒPÀ£OPGS7=À8;¯èÜ^zC•IàöBH5‹Ýš”LVa®‚*r•x¢s É·ž<ƒ„ríÌ…bä"}¨PÈŽ-:Ê{…/fI÷«O®‰3/;ÃÐT~¼ÖP—ú·ÈvòH¾Åâf3LÈ6ùrÚgaèÀ’œæ6ŸZݰ·$äÄ+ -•šf8D#†92˪“å†c‚´§5Œ}‚$ƒO Ò‚}¥BÑŠ¹ªr’7„̺Juú³D•já¶d·æ4¢™®žÎL]0-Åt3D¸!Õ½M”‚CqUÀ­^¢¹ÚWeŒ¼Ä‰§¸ˆNU#S™P”W‰êÇ!šÆøÕw!Æ~:-RóœoÅ.ÊÙ»ˆ’Ÿç7D”y—·FLS®œ`éAëÜQ¯­}B€Û) `¸qÎxzÄrÉ(X¯yÊ<AõT Âê]u|}9ê-xo¬¢Ä¨ìG6·ôo Ê,ͯe7—¯GËj­\Z `qo@ )—S—îÐjæÈž«³1ÈùyñGnZœejêÎE“¯w¾vÆ’)ú¢5´‰@ ßìä'9ÁPó<“¤Œ†Q™6š¶J7:Ò ‰r†œš7ž0ÛõÖœè{åÓcèö•n˜|§ºÉÁáå08Ge¼ˆÖÑÒ­Õ¾J˜4V–Z¡œM5°¢AWr`¥ênª½*:èb!®«|/¢Ó:O ‘㯙&%PçiØw3es˜2W‡°®)RåÝ™=ú[{hæ0#,¥Ÿl¤‡ÐyXÍ-n-]Zlßy•ã0ì| p$MÁßW!…iæYs3©†5ç1r0¨v.nbPÜßÒP0Ìt]¡ð´Zýõ(íb¦j  Ùô;ÕŽ„rã­ú·¢ilãúY®Ý¡ÉÃŒ&ûš†`"óM×P…ÂrCÆÒRê2Ó”Äñ4¦Ž…¸¦hÁµ²Ü þݨô×+ºØË—†RµJ³ìõQK£cEÒȬȑÚ8«ç®»¯µ»p‚I5)(V‡*(ù>T«¢(¤eù\Â;áïÌ{we/²”õRL‹—š½ˆ,^žÑWBÜPÌÑÕ®BVô‰¢zûnÔèP ¤OmB".­Õ°¶f߇FEÛ1ô~3¥°3֯͡tî²t£9ÙwÓU|Ÿóâ/j¢«­]OŠYN[X”…öãCS¿ÖÛ1´ŠÒÜÀÞô[£—óÀ´©–A_”¶¬§–ÖÈðq*mp†4—4=Æ®ìo/˜ìiŠ´is·ŽA¨Å ¡È›;ÒlbsåêÏÅddj¡ïOضU§ËRí:¾žs²pbjógŠ„?-p¼`Îgî;Ó}‹¹CÔ¶:øöÿƒÿ¹=¼zãoO_>ß¼…ûÃÏŸžž~yÿñþ={|~zóòþé ~G¢î¿~þøé_GÒýA,_½|þðø÷‡Ç>¼üô§LÃýÝû[»óíýÝ·ïþ ä—›§LüÌÐ?22bER¥Ћò‡ãß»Ç4(xC¤n›øþ{V°É¦z€uI!È2…Fö¨%É¢`sHΓ¥1§þƒJSA:¸"±ÙQª7Ī¡ÚY3€„fÖ£:kBø £kqPe™B™®Ã¢ÄqŠ™™.°B<ßϧuCŽKGT¡zò‹ -jsÞ4ÍöÄÁ²£¡Ø@ÁîÑ8!b:~ȲÃ2¨{€B‡{†u"žH"4ÔçôUê­\ŽŠ­}uc¨Ò±ª+Òæ{5½~zb…Fìó @9Ã%JØc¿Â -0ËVzDˆNî-E;´R¹ƒ–òý0+ŒýÒU@›s÷ÝûU„Ç+·ZõX¬‚>µª~E•½ñú¶Ç~k!OÐÖh—†ü¢5½z&þ™=Sæ)0³#¹V–p¶|+5YwÅ Rb²îš¥TG»@‘³ò{ÈÌ8äíÔ5tÝ H-ÿã½Ú‘,¹qà öc¯¡ $mÉlwO ysW`±Þ´#ëõË&‹ø&ý±#ËÙóaîlÎÒÃ¥@„a?2`ãV.ð `‹¥ï¹l5ÅùzÁ .ëÃ+Ž©ëe°AÓ÷ñê†Âû¼à‰Óר\¶?O ꪗ)HŽj•d˜ŒÎlµpìItù_ÈŸßTÈ×·˜Õ›"0átnS”?ŒEëmlBŒÆåaÌèˆzë„ä{¡=l``è{f¶´\bßJ Ñ|êé"òqÈ铃lWÑw€•o‡z,k§*Ü` ï’2ÿCr¾JÊA -íý\¶ýr¡’ÏS*eнÑËdÛBw×—c7T%u&ÔÔ*äëœAi DÅ¥öÂ$±Âïã{¡¤ÅþîÇu7MR½ ¿šjú}ntId8‹B»eKwÞìKò‹ñ³Cm´wp¸àåêÐ]  –ñ-•Ó^%ònôýe%ªÐ¡Üé$Ê«KgVYà€ôÔ±%¾!²tƒ·Ý`²€A,w^ ™¬uQŠ2ÞÔcÐ]`¨üÂm6†;r›a}W±CЮÏ6‰+C¼¾ 6¨ÏW‡½ Ãm¾¸í“ÛꉋÛÊ”·•É·•c·•ÿ7·Y ¨õ7·Y4Iô¾iÈÅv’ˆS ³þ©D›`I¯ü³€4GbßÎW/ˆŒ§«2wrxoL­´ß^öÙhÖr Y¨~vÐòÜé#:ðÈÁäÛ_xÙGÿÿ÷ˆö^ ŒLoÁ« sDºkX‡Á†ÉîÐl3g‰µc~m­ùbkbÍ7ÄÚF¡øàëÜ;ØÊ HÏ$/ê…±oD´¥LÁ"h d¥AsR^Q¿—6üú¹ªÆtµ5Mÿ{>¡ -„wÙ:7Édf‚¦!â\Wê a,WÄ€^>×v´‡«Í]y-DªëÖ°`oºÔím¼ .÷›×¾dw„ŒzAëaß̼|}€6·ø’ç‘Róî’çµVŸƒ:G1è-Ñ£fÖê/'N¥BwÄÅ÷#Уú´I -ôº¥‰8ÒjU¸–Ã87ZU)jùŠvB~×_߃ý§ÿø#Żƿ†¹iÝE?…˜ C†äj11F ‘ùŸ§V‡Mç½ãÔN»‡Q¬èÔV)úÂ.ñ^chÑçI¶x®z2íâߤAá—íœÍqù˜.¶‰ŸsZÓý|ÌV«ýù¢mRFJ/»,{ëËúzœ¼±ŒÅó±±óf;[Yv…¿ì¿rô‘ËÚÙ–rœ{¶ÕÒö€> é±-9¹cñ¶/^¼˜ª7ˆ6Ÿ,ï˵ÐvqÌA_KyÕ£\ßÓÁõ=ÛwqŽz³˜h~Bzú¤Àe1‚ûú*py «Œ‚)-O…’K×Zˆeu A“{Ìœæ' ¡œ*T bï™KÏeƒ¶Ô»ÕƵ\¦h}o}LÎüdÆÖSäþÿþ]ºkÛÚ“OM[¢¾@Fphž9²c€lêaÙg9 A™µ‘"Ú8Q5VHrk]$9Oþ8F²Tš¦z 1‰ï·‚GV;(Ê)fg¾@C ¢lùÊRá©yóÂH(Q…i I¹ÞvÝT’z“ð¦Ðj1Âý‚ 3cš½;eÙâVîçeƒd¾e»ÅéÞÕchƒÖ(ïÑ(/¨å¯Fyh”ç‰Ó()W£‹OŸñô€¯>qe£ÇâõãéWŸ¼ wÿóÞ«MMKPÖÎË)||ïÜ ÆLˆ”k9ð6°Þwn‹[òX>)¼Ò½”b¬så¾A»cáÕ¾ê)¸ª äéB+ýÄBö2@Qâ¸ZàSo0jÂ!:ɉšpKåU¦h©¢0ha‡hÚ'³W ´=Æõ÷ý5ßâ^oÚ:0Zm8iš« lxé€ Ðÿå¨AâÒŠp´Ñ^'dbÄŒê:¡ŸARm®@0WŸÂèJeA`–˜lïs1'i£ ÛµZ}óê*Eã eÐ2ÕUÑ™c3ß¡7Ñ{mprüf@±ÕÅÇtä©îËn*‡vñí4NwÅvp!©# Ý\ƒe®`V-Ç52WÓüÞ ¼ Æ0Äš>$_Ô×™{kÛh>`ÄíÛœ'^S XŒ6 C2è6à´ûq®ï˜q~u­k²uµdа¤uñ‘˜ÄéBO±¹_*$§Cò9ÐWžj&a@¾s¤›teMšiZ6i·ªA(Í«ž…š³Ü;abŸ1PÛÌïu÷>*õL\P…°ÃÖÔš[Æ–c@¢`|Êþ4Æ~~I¸¿‰8¹;3aÝ"=Ÿ¡ñâƒM¤ú­Ç‹Êßr<Ôý\4!ÇŠd\³W««=„ša´˜?3¼AÚ{Æx†iN\›¨R1CWÈ35Þ# Žý»$³_Òßi¾Žy©·´ƒ—”L›yJØÆHtî‰}á¡PÕÒV^nI—mƒ äV1¿±½u!øèð„øÒhº9™Ö¿†­g·d–š>°hÒ€ÅzxCÁºZ ™^g,¾±H€‘ö¶l«½ÊÞŽÅ7jLp޵e!6!x¯´²3»¥ë¬ZStâÀVÅ×1,U’ÙTF-U€eÜ”ì•[>™õQ®™ØÛ‚²×ÞŠdŽÜŒÌMn÷ì¥XBqQsféXÇÚ­’`†ÃZ²çxàS÷ô´/»ØŠ’Ù-¡Ø¦nÈš®õ²õ%èÆ¿ÆcÕ$žˆ­5ÄÌ‚ièR·¤í*­Eé'ƒ}½›:¡í™ece‹JŠ–\‰²t©¯•¤'[„¾ÆÍM#©¡õ…-Áæ&èÌ¡:û¼ tiVÑ}nËHöi-uø#Mš…©Xáô«‹$‡POˆ<ó!Íìhç½RR$ïr,üFÂÎåQŠéîêAgº¼›Ï¡j¥— ³?&˜ÀHµÏõÙçÕÚçF~Ì3\6ïT«‰bê«¡çïUåë$å^ߢ™G 3%ªf’…(:W8g$¹Kòu† ptÆÊѸ¦Ù¨t-rA™V‘ýqNuÔÕ1ù^%rºÊÕôXÇ1ö¢RÜYrâäše¸¶Ã±Ú9I¡÷5GÅImqgª"ÙÆ (ûËÂI©j˜‰P›¯ZræJëf&‚| -4ó¼µ2JIOa°ÐÃÒFët4­ðªì¬$²DáL'ˆïTކ¼*)l¨&ÔÚmeé̳mïlø<[:cƒìøšñ2Ÿ»¨ÔàŒå†ë1¨ -_¦eÄ:Z9Jµj¬DÜekæACZåNµ÷¨lºJ³NËä½kÁËXÅš#§³·\m€yÎÚãˆDãV”ŸeÅxjDøÌ‘X4¾ß@R[vß,Zâúb -&eÑ?ªG£EÆr'å{^zA—T÷¢‘ÝôöÖËM% z1B Caª=ÆÀõ€ég)L !Jö¸¿ÍxXdYô¹Iô"r…DÊÛ]oKÃËŠ¹lЇû0B+)¥5Ï~¶a®Õi¾äšeÐ]‘bŒûgN² ŽóX´ÎH'+1Ñ;Nr\ 4Î|HçGwð†UZ¿vß¹Þmä]IÌÄðìz;K×hÁ*½G)ÚxgÆ'|^£Ÿ ‚ô—£`ÂÀÒ¾5‰À[ÉNiÒ -Ø„/îÇsµ¤¤Ž–™ïs+íW³sh¶§?ø„£2£éfŠxó6ó½uàú’hª¾Œàb¬ƒ;X=^¶º¬7†Áúnô(­3±Â6ª-×aGŠÄêG¯QVVMša*Jp ¬pŲڨÇ÷’+ -í‰ÛÅà€Ázð ¡×šßÍ4°¦†î ‰>€µx aÞW̓½€jGàÓ¬5äŠÃ†J¤аbûÐǶÞwµS½À C’fÁ¡îö$ HÎÆž´¢iØl!#*[8G¬W…Œ‚Židâeèê£uñú(ÏDR{w[ä³8ßÃ/´˜ Ó£)afœ¯S'n¶$ƒïVv~ò¡°€Êˆ[vçæ&?b)ɹ{•p—M3|2Bš»ôÉ6¨Ô0œS8žæPfzÕ…oùsKâe›.Hq -Øé4§?·þµ…ð1ºdÖj´” {çr13‘«¶ÔPÑxìn ‰J¿N8FzG8Ê„3±é7OTÆÎ÷iµ#ýêʯFN8yñŒ‰ â¬Y:Ü>ï×Ë(™dýpƒiáW§Ðº º®PtVÇxÈŒ·9u{I½m “Ù¦Sʱ@î'YšÆ¶lÍͧ±-báP,ôŠô8̶(MÂn1¨G£ÅÕ‘'Äñ3Áÿüãt÷î}­¿<}y=*ç»??=ýúòøéü =||zÿòøô¿+$ñîç×OŸÿI¤ï¬òÝËëóÃ_Ï?¿ü ô‡JËùþñ4Ï_}}¾ÿíô¯ÿùéd-fs‰¿„e±µÂ^âp 0QøÇåÏý郚ÀŸ} ÝÇ™Á|tÐ{×ÁjFÕ ééÁ W6ƒÌg9â_ûÝ+9LúE´«<Ú .¯ÜB²Ü“¾Ý„ómF£m‹FþQk@ÆuFé„$Ø^»»7Ø•PoèßU­¹{di[ÒNŒ›?‡N!¢x…TaCÂÀteÏä£äE« i™ø¾…ÚœGáºp8¤N¿€L} Õ­9¼å|­är€Î ÜSçüµ¾sÀRq¡Çµèh› ¼!+ÃF’éËEt§0>ÝK5¥ ‚Ìý¹6Üjô{“~‰ì¥pÎá!;(‘Ý}¦AnûŠä@ûÅ×E€¾AÞ1M@1Úßl^è5YZ§‡"€Ûî»»íä‘€ à[Û9à-+n¾k4'cH1ÏàHƒOÔ3í$d•`¶ö4¨m§x{ Ÿbh1¨9‰‚ýÀº-Já´­TÈ“ÜÂ^ŽÈr²r`„ïåö‘·ü¹R4ž›œµæùˆ'9—Û°‡ Ç3ƒÐñÍ2Ëxáù½V”^À¾â9E¸"ÔªSƒÝ®ôèÒs§LqÖHæ¥}[݃. Ù¦#³–èÞ‘ç£3ÚÔ[ÞîÆí"÷¥õÉm2À;ñCaÏ[×ùuŽÏÕ¾û™w^¨åˆ¶¦#g¨,.¿j!bqj€»î(¥7±µlÄâ­[:qá°4+Pv,ÎÇ‹ÒÙU`8G<Ö,M8´4ž«Ã Ë­¹´²ÆQÙ‚x\:*I2•Ë툪R¯ oäëçp·¥ºÖÿ–­róœÌcqF=¼çk†e3l¿h«zÃè;¸¹z?¢‡ìnƒÒc¶1S%h~@ c¦$Þ%ÊéáȺ¶,ÍþÃd‡j”ÂB¶‚©‡çv ÑîèmÎw•Ð30žÄs’Û”Y:AJès†$¿û6½ý é Ú¨TQéÉÆhçsU\Diò£Þa¼•ÆÍ› )ŒùР%¼“Ù©„P”¥ÿå¼ÚV㺒èô?ô‹!1 Ú÷Kò¤±02›èmh¬¶X2( -Ø?UµV>§Ý~˜yBK{Ÿ}«Z'¿©ËLžB‹„5®-Â8éÞ€ü¥W–äæ’OQg÷¯¡þ)Eò”Zȇ3P✠cwêR³gfÈVX,A±ZQ0vZlFÄøLmµmHÕÐ8B+е‡´1ðHmÅ8æïMìSwÒëÍ¥g )ï óMj’#¨²(T«e.°<¹€P#§–»C(¹d:£ ^'#—@Ncp5¨7Òˆy‘8¨ŸË8)ƒójsV.ˆs -5îWªj8ÈsIéIJ7j°îþ5¹úèퟗ{¥„ôÉaƒMܨŠéTÛmÉ'Íh([O¯Ý¶…ôùœ7!pf‹üØ-sQWϘ‡ësWy‚Ê’'ÌÅÒÖ°Ç$"F½y'"ªŠ«fÚ¥åA—dÙÉ.7/òŸ–©¦DÛ þ¤B/Õ'›3¤`!´œ7cjr‡Ð{DO÷Ó4%Öm´`–n­äS-îAG8ªÖ´8ïéG·¸CçKX4hVNMzÊW6µöI0̈©§~Ÿ©CÆ ï…2ìøæ…M1d£ 9omÚy{¢ë—’É4’Ô§ãAß 2š¨7ŠMŒ¡l ïsê¶ÖH©vD -Ä?„qÆ6| g#ÙÙäÌÑ"6Û§Ç3e1Ì“|H-ƒgªÍ‰5g Z›ç K/ ßÁ £M— -q°Äw‚èÂÒ¬gãÄ«·•ƒ7µâ1ÕšÝ0µôà „5ÙZAÿ$ Jܽª&Æ%«¤Œb–êYÚ'ϸr­îLà÷íc›/Æ{œ¥ç $÷¿ðÄ ³ú²¥Xù˜% -oç(Qƒºl7ñ…GM•Ǫô&â'ñ5)aUJÁOZ„¯Y|sðvÛ©F ¦ö8øµ¦žä˜¢Ó$õÎJ€Vmzà¬W¬…F`‹›?Ñ ª-4äZ\7°¡‰–QÊwÁÕô“?¸˜§íô‹ \O’Øné"xš¾:æEpÙÒ‡ÝËw»«ë71¾=~yÞÿ² û«ßŸŽÇwwŸ÷?á¯ÃÃñÍãÝñ‹ü­¶öêÏçÏO_Iû+yýø|øtøûþñ£ ¿îdjØßÞíÚþ‡÷·í^þ#Èkùùc´“E²åw–G“_R1RmA”Kü­þãôs{#N+IíÔÞƒ¹j, Bµ×HÈ(Ô!Hu–žð\+0¡éâåjz òÏ-d*û~·¥à[M›{UpNiƒ‚òwR5{"‹Ö˜%åî$X°LÊÀ¦ÓeP ’{ÝœaÂ0aª›ðìæø“¤,Ÿh3{¤‹™]T#¨PJ­šûõOZ1’R‚³EÁ‚ ü"®[EXhdB% E¡ìz0û =;K[DîµÓ&¬Á¶R+: ê·”Ä'B­~‚NLÜ´-i0ÈÜŒ >¼kÒtãçr§àÀ;©Žå ¨ç›1 -®CxYyÔSá÷x#"eÑliR’/”2“J…¬¬1µ\¦h†;™¬ÜnP¥˜ÍPH Sc÷ï…Ø¡³±$Ûˆ¤¤ç$‡öUO`k @qšÛ¨JØÀFŠH®:-QÀ,»9eL­5)w:N߯Fp™fˆHr¯5E† ÜfeV•ñº¸!-dÔ/™ª&îM6^SÞ@")xžÀÚ}\ÂæT´"W ™PP¿áæqNÈæÞe—12÷f÷1Q^tÎUSYah¤ÞPÁB?b Tí‹óÖÓAXs_8J´…Ï'À¿CæS2® #2%ÏsºåܺAŒÍ>pÇkШðæ LÙ²„@¬ÙIlX¢—Æ+PŽÏõY§ó/—5ëš#bs%—-sg‚5ãÞ(¿Øž”1`ffo&p¢BìÖ"÷6[_Aï/©ÏÍeðÃæRÔKƒ<8Jg¯ˆ*!¯…²jÛtἪýŠ=ìO1 L“ÜÀkµÐÑRVÍ`I›a‚˜sÝ@âþó73¥êçÙ83ï€ -ZŽÓ§f:t-MŸÚMo·¸©H§ƒNNK˜,gaÌF)5E²jt‘ ¥å}êÆ6Ö gZ¨+°J`[­{ty(²²{ûBW@ö6Cj =ÄáKöRÐcùZÏR[%w‹FNoÁ–ž7Ad @ÁäìTCôõþRaÝ\?€8´…ðMQ:+Â"V¯-_ Œ%ÅäÐl uÆ]ÕÈQ’g¨Éa¹;±EV:i½&Øá>œÖéTBÃè•4Ùyà”©Æ¯Mµ¹°5BóGpÖM ®6ð-¾ÂldñSï± ¾éQmݸmÖK^QdȺWø®à|o6 ÖBåM#~\M?™òï€ÖçÓ/€Â -™öý´¥‹àjúê”—0nèÃîå»ÝÕõ›ß¿<ïÙ…ýÕïOÇã»Ç»ÏûŸð×ááøæñîøEþVíºúóùóÓWGÒþJg^?>ß>Ýþ¾ü(è¯;™ö·w»¶ÿáÇýí_òçkùùc¤°‹˜(ùe/òK -LJ,qKºÕœ~n;©D¡^sBUŠP=óÃØÕüd$'ȨÖbS䯔µ¸$¸ñŒ®ª’§%…)WÙ& Øó0¨£òªÖ }¦H· Pµ¦Ú´q J•`p"Òõ15‹»ÖlX‚L+¹d‡6¦ÂAÚ -±¢›Édx,ó¡«´>ƒ¸ƒ–º¿¦µ_´›ëå ²;ßXÈ"ŽJ÷´±E-Hêë'ÐÝ­Sœ@¦²›'`Kyâ©ÔV‡¨”ìwÂ'`n$E渢>¥ÍuŽS¨Ðð/9®¨g%Q2Ç)ÔÓ\ç8‡69ÎA´TÖ+[O^jB×mæ-–rZŸB*ÁϪj½9mÕ5ÄKu©%´‘ÿ—..ÿgßük÷âúMýÏow7‡¯Ç§ŸÞ½xñïÃÇãÛ§Ãý§ãÓî¿J/N,KUHÌËË/I,I-Ê(¤¥íJU(ÎÈ/‰µÀ”«ªºú»ñIiv endstream endobj 213 0 obj <>stream -H‰´Wçz²L½/B#‚tcÇ†Š±·DÓ,ÑÄD?c,÷ÿÍ.(¤5¾þñv9sæìŒÀg»ÎÅB¡o9¹º`bõË1yª”„ß™¦+J´–uœ Cb¦-Ö½„̨þ«ÿ8~é{‰¨³'fî™,,(<,Tßñ5p×'ÊRZ–à›6‘RíŽÛvÊÊDàcíõb!­EŽuÇÆÃ“™ÀWF.ðÇ‹ž£LüzÀ 2Ñ}û²Ñ–-òÝT Ú}x p;‰í  -ã%ÆŸ¢p -;O {‘ø¥6DŸ;/bKWNOm \^xïòÇ'Är©ÚÜ™}­„RÖz6‹¹¢k?A¾Eõ‰c¹ÅœŒ˜{ä~$pìPšæ^”½Ùáñyx7E Cw'øPZû- Ý—=Iuàý²(žTñz¼.í½‘*/nMèÊŠkEm&Äiª3xa˜Í¼‰=>ÌÅŸUç³öù«Oî€ï$F<ùbÜæFþ£p=]¦VÏ7²ÂÖÞ/RRª#æq›§†t÷6‹Û7AïŽÒ‹EŒO¦z¥›´v›í4y=Õ}M?\5Ú™ÅÝÓ4³x˜5Rôô¹ˆt£&‘ªK3ëå›±ÞU¿">à©17†Þ«£ª·••Ÿ PKêåÇ#Í-‘±†m¡ +¨Á„ìó¹˜WdÃùäu–ëðÇ2˨±9’žbØ|’Ý5j;¢8fÔ[¦ f&s€›8–ÆÍn{b[”‰!™—=½fPàû>ÃÑ‡åØ‡6ƒDWÇ+A 8/ ’†¿59Ê@»ƒ‚È_,£L+²pá—ÙÊF3ʻѓó–ÇÉŽßšÐW_NVC¹v ’³†WV›ò¯®jcb„F׊1Ô;Gäxs•ò¯ªîQîá6øâ ’µû5s;¬ -È‘É\·õdáæ¦'=¬é×>/ -|§¯$ÿ{/.ÑB_Ðû«¹0¨àÐX0/ Z¼0ªrÐÄÚ‚0(—f^5”?£æœ‹«;yp<¼(/Q”œîÊ$ 0-1ÀùºùzAF½¤¯‚µP0—MÖÒwZ!ïl•b:(Cl Å™FSKë÷–KÀE–bRïË4:ïÔÒ›”hŒ²:§£s!@Ôp,r*(/[±p:ÙòDzéq 0O6“³}HJÝy³]ú® ÑOí×D¤è\ ÜFc‰u–ÒóyI‹žÄféÊ4ö>‘´Ziß üä -ô ËÕP•TÓV¦Á[qf•L%ã ÍUnlÔAXœ7ÂŒ‹kIê•{øvýaærââ0Ô²;ìrÊ_‹½—³ñ×b/®Ê3ñ×b/:å\üÅ)‘ã-0}€ùÔÃýÎW¸˜5KD„k7> -_þé`è9¾¥>ùE¥Q7Ic" N½emUÂ"ýµ@䨩å‡1ç†âm1›‘JA´d#,½N¶teíLÖc¸*ý7œIâÛ¼hD­=U$\¤¦[Mz:ÚWÖš¯Ååb¡h¯ßž0˜ŸVHù•Ï¿ªõ¼Ôy)Õî²Eߦ^î—x>Ãÿ^qÀ„×`òÁÿ^„Ø/_jRôy0bÙ#'ËèØ~8Yb{âdypÄÉò³ØÙøk±×Aœ¿{cÿˆ¿bçõÙ?-öBöÏÆ_‹½˜Égâ¯Å^ñ½ÿ½žß?ü/V˜Ð?ü/ôÉÿ¤ø^cû{ÿÐ/€×Aœ¿¼â|üµàEµ.þZðý‡Æ ú|ã…Q/g/à®DÆ™Ç T•Èì±ãÅåQðB?vôüv<¼PûGÏoÇÃktãÇÍoG™L/Ô ÒM2ìÐñDä»<ÞRÓàE]§‹…´ì;Ùî°édû~Îæ’š]õLÞ¥ñy¸{pÊiŸ·¾¹»›ÂO*©¶”r2ð0¤L!¹m83O“¤äNÚŠBOŽ_ÏSQ(²xò‚õÂhƒuΊ̽FO}W‰E¡Ë†F¦•…Ÿ¾(ƒùÚ¥—ÎRJÕ? -@7nÓ“ã$zX¨C|~n“Ë΄zE!®ªÒñð:ˆ£þ#¼¨O>à?Âkjò¡/gɃãŸëïOò`Æòõ÷'y@š|°þ*ïèi#\~ŽÜ-Î>Ö™âìÚ.ĂԬ>¹D‚rˆyD 4túCÍ --<¼w¶É¹±“*OF„Q¿KCïܱ®NH¼ÄÊõROÉ)þ5Šæ—L­ÎßEÿÞt´=ñaURCºûm“«ëà×S¤Þ{Žo/¿-x IáYtÑRW& WƒGŒvdUá¹äô›“ .¾‹2-<‡Û àF±„öÈ'™ž7Kßl¿®uØL…L.æK%…{ËÆÜ,†¶pñ=¿oÇ¡U™¼•¥îSVà_;MAl5Si©G·ƒp剔:B¢àȯ=£µ¾56À*ëBSKf?©ΩaÇ?~ÊvI‘ ·U˜Ô(}ûÍß)©wãÌ€Ž™]Qi_‰(r a|Û–+ø¡Ñ¦Ú6—‚¿pU¹¿ü¾9H…ð¼~‹›) ¹"<_2ÒÃ*|esÏG@wå§ v÷Þ™ }¦Û¹oöç{ÖU@/âÍ…ùRÁœ6Ôݤ¿ÿl§Ü”ìŽd®d|©££²|˜Åħ¼7eñ^F‰ðËÄz“2r¡ ’ÂrÒ-HZ=D)¹Gr9xT…B„¬âÔIÝÛ·ŒœìéyT%!1'VbpA—¨F@¾§øÜù.º-ÈoY­ŒXCñ@åHø!¦¶ÖI&œRYàžß0 Ææ„Õý"UÏh®l9×X/LI1B mõí±¡ÿ|C"]ùÝ‘IpŽìïr‰†€]Ùåˆo¯#±vg‡+ñpuõ;&È,¹oËÛjߦå„Þ³å™üðþ¾ƒ²g~Þ¤°uS\²ëÙ¾Ÿ*™Ý\ "•ÍHÿÓ^k©Aô x$”iH“¡JA½"v)ïgvQ±@þði²Ù™=sΙj·òNÂS(+©>"à:¶⪀TP¨'¦ÆŽÿüQû¾ÔÁ8ÝÙHÛé?u€‘¹{pòïÓ3ça)Úsº2ij@˜.‡V©}ãoé åŒ#æ`ÁË>ðâíSwÕ˜èsÂ募.*hïG”ÔPÍ5ùçJ‹çXßOM¨ËÔ.¯f#ãÙÛº¦®¹¾ú#¾£ŠÙ0HZŒŒƒ±e´câÛó i)/T쇓Î.s Ù^#Nl¸ƒ±Ùˆës¥F\48A/+m4âz.6q‚^¢/6á×D/xþ-ø/ˆQŽP¥[Ï{xãÚùãœ2!‡:¹i›uòÏ-8>²X÷ü°Eá½ç)Üþ’#µE·Ì¬$ïi%ñ±A"é³¥û)×6 DôçÎ/‹®Ò¿åMÊÁè€íô•5Àû‹¨äú!Ū/~ƒÛA=çÁ¥ ŒÊÑ*†';YS&ÉŒé` ç¡wb¦É¶–$ef’½m‘ñâTQú7$1 œ__–=Ì/ -üÇò¢ûEÿX^ì—_øåu0 -|pìµÄÎô`0ÿV‚Ø™ _¾'ˆéNÙÍ?üˆŒ}ø5Ñë`ìï‰^ä1»ðk¢—ªÁ/³oüšè¥ýb~Mô‚¾Ø†_½†ëû­ÿµú‡íåu0ûñÛËë`öã¶—×ÁìÇ?l§T±}ø‡íôHÞ‹ØNDÅ~í·a5aÔï)º¿HÑ—¹êâív ×^x]ùä~S3ØÄ$ÛªSϰ½Ijõ£Ó‘[Õ/§+MP…kýd‚~»FL°©ÌÊGEìýûp^f³ý¸xv§ÄÁÍ8§€;ˆ›[vŒkÍóÚæñ§„Û¨9ßxQÆaÇ]yPó -÷±Ë> sÎý2ëä -’vÙ9Äo4ĆKê4¡4¨Ò^5ò*|6?œ;›{7qï5.¥Šì¥Eà’•ÜÅ¥&Ï\QýìP±è~Ö¤œO;Á~ ¥F>ÅÈÀ~¾lŸ•1—¥ÄÈÌòäHN¶™?)y–Òmö9¹,¢(9Ò–û6‰ûD>ÓN“K4žE¡›–a«JEÏ%ßÃ\JJF©E<]µ&@‰×pÚzɯ–³Álj?áu²È.™­]´6{¥ÞP(ë*†O«œ8¦5qäzûäg²‚Å1Ö®$ò±U(ǹ„9‹wGãi†Ä‡áê))çÔÂà-Ù\¹|:ð§äôÌyG¸Zw|-òí«c™Í 'U#Xhi ® )/&’/øu$|ÐAÜ=iÎÙ»ºDšTaÅÉ+÷´†YýßÊÜÁÌfJöI^¾ø×ͤ‰IƒOjóDê½V‚`{yÓ ÙbÏ('×7 »{}šåuìäZ^³÷ÿâZ^¸—üïOË‹¹|Sà±u~û==8˜]üïOé*¶ƒÿÝB ŽSæ -ßÔçJaÔï)´¶ê@šˆ¾ÌUï·k:CúMÍ`¯@¶U§ža‘U[¥V?:¹Uýrºr‘|žA®õ“ úõ5Á¶2+ƒ÷á¼Ìfûqq0§¥œ/Y•Ýñr…K\Α“.ÖîJº>œךçÀ} vl¾"/¢ÅÎ2#ö]i¸ý‰‹É¦$ÜÇ Oº*ÝÆ‡²0ä®2¤ù‚µP,&yÝÐujŽAÌ„R#ŸŒe}ËÞñã^ÉY@ãhþâÕ¯äò¥O›¶Ùfbóðø³CQ+÷>ÉçlU ÿʬ“ËÉÉóVw<÷«ùår¹Žú“³n/œøw ø“ÞôÚò*>#F5È­+©q‰@(qŸƒùL;M"3žF¡›–áëJE‡x¾Ç ¥N%, -äÙª?O¼ÆÃg/ùÕbÊë˜2¿Æ–°ü@vÉlí¢e9Tä+WÉgq/Ú •J™¶á1ÌþÍòƒË/'x9MDú1®,‰|ìFÊq®Õ Ãñœy± ÑJ|XÊŽ®ÆGŠÌæ´jð)TÉà¡ÿ CG¯E¾}u,³³,I -`,ír½ø ßȹ"æšÀW!NwQ,2n¨É¿j´è~†¿Ð\éHz»Îc¦«;œúˆ''SoÉÁóºF…ˆiH£>#+‹À5‰)cª=”M=$ëàþœKЧó«NV>3¬Ø§¡(ïf(Ÿ²Pß·˜ˆ$¨Ø¡¾­Ijù] …-ñ–ÖEÓ1gˆª|üQ&Ôb@žõ^CHÁCÊ…›/Üsï<áàdpŠÈs^’ø5…œN©Ó¯^œ~0e½Qf6KÓÚmõ"Æ¾Ó -µÞ“ƒ!òQwþ6w¡ujŒRËžšäbài‹¹£/†lÕõÀ£SX¨ú¦û¶úzŸš;.qæÃE^º%©BÂsþ©ÁdªñÆýVbú_«qô^tÅLA1™„IîåG.ôç´ñhÕprÊþM¾EÃñöm0ù 'žÿ&ßR^èÊ-&ÿ˜ù£É·xPÂcû7ùê`l1ùJ§¤}˜ü˜Ëõ¥ÅéÕ.üšèEN¶ ¿&z ’m¯‰^ƒÇÖð Wšã -P5²ЈN=ð ²ÞRqáÜMŽÂC‹¡×Á&îz6âòŒ1嬩ÃF¯-#ú´çü*«¨AÑ ’âF­ìÉ0á4 ~)æsR5‚…–Öà -Âòb"ù‚_Gr1ZyÐAÜ=iÎÙ»ºDšTaÅÉ+﵆YýßÊÜÁÌfJö }¤Ý ¢œý§½J×RbèðEK[(tÙ -e—…+Ê"¸#øþ7™n¨ ‚ò‡Òa’œœ$'‚ðhäþsYÕNŸG½f½ô– ¡’âàuÐ;¼'¼z'€÷„×±À{ÂK¦Xo)œµXî×KêÖö€=ùÏ–Ô­í­üfIýY{Ðuò®úa×ö@òr þÚì+ã¯Í^Ëøk°·ùJã;möBç?mö’)v þÚìÕÕÅÏøÛå_öoÐÇÆ_›½Ð“Æ_›½X/‡ào%þä±á…¼ü‰~ø^ý7úákx±öÿB?| /VåWKÛ/D,û.3—i2U lS2çI{Ý 3ª–¸i~ž$ÚþJ*x5f ø¯Ii7O¯aúR¶æÙ7¾ó¹jê±2¿6êtŠŒ>}Æi½ §:ÏxZÑ}Ðóçorä[bÎÅæcí&Ù/NõüZc 4“„O‰pþø‘|Ã-âÔ¿ôó Qˆw›k¡É5g×NŽùB)™…€{2î ö@]0íI|û2¦¸ ²¬-’)93=ñ›Ž6çjÀçQgËŠ•«úg+ç$a^ˇWˆx„J ‘¹ã»<ÆÏ#7|b±VÖL•Ò®JYx„û™?*å®}d†Cb»Õò|dßl×KRˆó&9ž@‰‰ðXÅÐÁB‹¼ »Í¨$÷ócMæ¦õ 6©eâmdy’˜³ã^‘öœr¼SÖä»8X‰!ŒÞ«ââªAH|/ (Ž×ù4Œ8—PÒhëõ2l¨ä¼º%>ÝN -Öü5D‹¥È¼½¨\6(’í3b±[ÖÀÀ*G~C‚T1ÐL¼Šä{ÊZ‡]‹'d39¬wK8~¤8Wå¢õÎh”•øsªðÉvZz7#Þ–ï4ùj)Ú¿I|¤“€>Ææ uç–öLƒ+ÒË–ÿÌ$Zoù™¤DjçäL’—¢!´x: HÖ°4º¾ŒÊJ+)ÇÑRµó?ø¯Èì]CUTáî‰Õ+ÂCmXo™WEâï™´œixýŠK‹i𢑓øyúú}AÖ-mY Ÿú+}(äô³…¼Lú¤¤º ª]¿"ŸÓ¶‚ÅÊ j®)¤“z#e·ÔÒ–)Ž0¹6ÓiŠâdØgíDÀqiþ#O¡ù׎žÜ¿tÅû­#ñÕ׎`ö#µÕ×®àµÌwG'ìÖ#††'Ë'nó!ÒÉà;½|ñQc²FwH¬9]ó°uU8ì–‘NØŸp“Þ®¸(FÃÎ!YQÏ×:º>sÀòæd¼¬¸¸9hê8jSžº³SîæŽâ_çeœwyŠ—³eÊ™N9±¯õÿ˜-LÞtì~ácã…¿ÉYé aç‡lqæô­ÍÈð'ÓB?”S_Oàž»*¼­¸˜+N,®‹ÊqøI‚è“3}LªËÅ»u­;·ÃÅz¾†~ì(Qj×£éé»x`›ô&˃ʠJZ¦±->9}ÄMðf$Ùúé@ÞH«'êG •ª§/3¥Õ”™x<¿X$â£Ì©§Ùʤó½+{ ê–±³£•#"!Ð -è5=ƒ†k‹”à },ÍS­ÔË…®æÔK÷u¶Ï]–dî¦ó`*³–]™oÈ Ë…×hõ4’øB05Ó”k®î2ŠtMH/kµÿ=¼f½üà‰wO¡æ ·Jµ?jØù·Hµ¿jìúD¶yb<ö'é%uÅd€T×5ÆëAºr>™—ºf22Ù]@¯XÉf¯ã€üµÙkÄrþÚì…¼Œ¿vË7ü®È4 8F8tÞ·‰Y‘»¦iþ1J1ó¶‹âï[­,ÏKÈÔ!ûoŒµÉµì¨PÄ?Hè.Õ|;~Ðþk":"y´óNÞØ,ä«·ë¤AØîпFØüp6™\õê\u§‚/ðØŒ˜GQœŒü'–VO¦\ësÿ‰q]}%ªž\û!H…3Å5h…Ø^}[¼ZÞÎÏÔ&x Õ÷S€÷„WW°?xOx‰æÿ9À{«ÏÊÏŸ?oï:ÿ¶ñëö@¬|× ~ÝôìÿV?|× /ã¯Í^}8þÚìE&Š¿6{±Yü=•ŠKX/œ>};Ðo·êÛÀ¬—dTð<»2ÿ²ÿØw~±S¢ä‘c„6¶ ÔǬU–Ogæc$™I+SÇ)“âÉù-y®ÜÛøiMñëLÎÇ}ø›Ï ñ¿‚¤×læ¦*“"5|Ð5L@7óq¨ååbáÏ<8tåMú>LAxH4 -rÿ¹,€Ôîóˆ¢×¬—ÞR¼½NŠ?…×Aïðžð:èÞ^¨ý]Þ^Ëž¼»ôÝIø:ö•¾; _½§ôÝIøš=ùgÒ×#N†}f÷özì`üµÙ‹Uy(þÚì+㯽¸9È_›½vUþ=möb^~Î_Ž|Óu @ÀX@»á±8Õ³».6šIC''ÂùãGò]â™û éç¢ï6×B“kήó„T2jÍÇàY»r@L{ß¾Œ)®Å¢…:YÂ2{׉‰ÅÎèÜð»óäý|ã9²ëæ³_gùé…»”o%''÷ów .Äâè® ÄyÈ[6!ÞžQ£JHo;ªpâm¤“°þ®“ä-wÔßß'h߇1‚láVúƒÚõÊîmˆ0W ÷USMø Þ¶0 LN³Ú‹«u½{_ÁHΕ¬SR%Ûc%Oþk&ØTöË Õþ4Y•ýåqV¬=+â]1ÜÔÍ_|"U:·äJ}ÔVNɪý3P¾®ÿmåEZ¿ü…Çždÿ#–u¥/ Ó °áé²SFÙ‰,LØk _´Ïd$Î÷uW¨0ˆµ¡Þ­VCZ8¨­úïmX7= êbÂTô„Œ”\¼ŒI1B[¾ØçÖzçE¾ù\ƒÚ/s²ßÍVdå줅ö; ªß_ø.ƒtH‘˜/itîNÁÏ[9¤p’ƒŸCÈ>Ç|ã·FÜf½Òºï¾µÞ£O^1'Ô?¿2f×€g­Ô™´s¤*q-wx……§JÒ|öÐ1ê :d…©ö Z{e¯ÈªÁ5‹ýPjyƒ-Ä0ýÇ—ÑÖ•Ó¤ŠnPY/¶º)ÈÒGìƒSÐw"{ÈAÕ¾ Dþô:'ûçs(W)šC`%lxYiDŸø $9.еÙ[Aä‡îºXù÷YC2rÿàe)ð$V£O°KNEL~âc9ñ®wšùÇ`YUÚM”œ„Ä…oòRùMmhiñ™5”ÀÔîþù°†ÏGKê¨u®ÁvyÕÕÁ£¦ò³Iqz*k•sõ¸©ý«{u&Ö.÷¨\™Rð§'¯&þ(êØÞ€!ŠP‹†Ué܉]dóÇA´„#ûÑ«åƒ"Ÿ9JKAwFÁx›7óÜÌ`&£ï‹ lªEr´EýÔ¬]\-0ù÷±¡ûøuW€Üøžcƒ Wàböl Øóï76Øp½ì76Øpµý}Ç®ße¿±Á†«…¼¬úÚŒÇshW‹ïâ){a²pŒ¿ëulþBJ %x"¤‹Mü‘7¾Y™—à.À¬÷bV8óá£Ð¡züõvâ9¾ -,E€-bÇ}c2eÄ ú\]Ü*mJ´µ<\LµÈÞŸ”&y·Iò ±Z‘Z)µd!,ô——ay+“õ|=‹$¾:ÉËw )q}=‹&/¬š…µÆÏæç|+?!g ]¾d4úTèIÃ×fTR/†Ûä[¡;˜¡mgðÇú[!­ûžÍ«u/-É1ÿIU:‹ÿ‹+‡¨%Þ¶.ò™›‚ÐȲ]ˆâ6!òZ§$òìÑ"Ð4üÑÿ&©W²Ns•UûgíåSzøx¸d<‚_X4¹€ªô¶9aš¹(¢g‚ÄæÏB²ßÍÖ  /Ãè?*Ð# õU¨ß6ÃE`mµûLfÉåò¡8ûqÝÂF´™‘Vip1B[¾Aò™Õ 땸ÄDî_N+ˆW¡Þ­Vá€Cƒƒ5 nY¾%Ff¾Ài&R$æKe'q@q)ï‘ýÙë”ìËDò!%ðõ)LØqÕFj9§Pu|…kÚ5è -´c<õʰEûœHŽ[¬ ²‘?s-žµÌrm½G?’ÊÒâ`÷UÍ®,ƈÁòVê6.Ô;ƒ„u‹)““FÜEÑò¬•f$nÒÎYƒ3C^z¦°°NIâg$ûë®QÄø¾ÑxªßïË«?MæÖÑtlª]”¤QEo@ø”4<òiBýâVk§ŠÄ%…:N¬œµ²_NèpÉdUö—ÇY±ÖœÀ’‰Þ.¾$dЧˆz2Ý­¢1)ð0.É¥³ÉˆpŒ]p¬g|ëÜóðbøEM1¯ 8$ü+ÄØ™ã®bT`~fP©ð¸¸€CîoÔÅâ´OW[…šP÷­1§…ûñ0@“ ‹ÅÙ¦@^R3ˆy—åPPÑ4”5„7Rü¦`w±&”Z÷mS´µã÷KÎ>ð|—_]n¦6øï·%³EçÖð,&¾Ó!óaýi´¹†·ÊÝËi0ÆEÛñ TŽïAE©šÀÏFÀÈ”>ùd³0ãr3ƒóæ+Ë +Þ–¶¬‡Ò‰àiqzZ9*+\âze·ÇÄÚåžÙüÊ/¸W`ÄþèìäÅÄõ#8 ÆB…¨Qb+Hz›?¢%Ù…ô«Z>õy”†¾t·¡ºãmÞ$Z3c|3»!­Ù\TwæGqméübËá‰üM2²½‰o³ÙÛ€ ÚßhAö6 ˜Éë-ô ´‹ùÕBÐ@õ²ÎBÐ@[k¡h qU®·Ð]Œsü¥ìÅwqˆ¿”½xâ;(ÑϨ©wz‡„¦W¥˜ýɬÛgõ5åM¡£¼ó¹ô9vóÃɉ›Ç#–¸×w­aÒÈ–$Î=r«1ùg$ -§±v)ùo0(~uì6ZËåµ´ ì|ÍL5 Ûä-L&¹íc¾@¯CXæÇž –Iæ´ñ?ûÕ¹–ºDŸ€‡@LB @ -iÒ¤*ˆJQQGEÔ÷¿3{§Ñ¨ðïþñô=eÍšµÜëö‹þïð>÷á¼æòÀü­w›Œ¥I²E?è¨ -¨qªÿõ²öçú¼|ºXÀèRX^ÿìXà–½Ø7 -üÃòš[l·o*¯WœJGÞôà`v ˆ_ÓÎþV‚ø5=ÀTn'ˆ_Óeþ-ñkzÀ|(üZèu0{Á¯Ç&DüHÛPùÅÁÐþškhg,íI=câºLöÛ¶ÔäÆQßjŽñÙ9²@ ¾ë%}ÑgtÁË•$t' -;ŸwÐÆÁzê`{O½F í°u³WÍÕSÎIÃ|º¶\¸•—!€¸×ô%Ì_0}U3TJ·s<÷ß‚`.oüd‡Ccûg)ÄùdéP2/}4 IÁ}7‰[ïUOt­Fòé£Iéªóâ4ÞË@Ëpè›”RX¹+““q‹Ñ³Û3bhäß‹*Çq)âMó ™#''‚(_4ûlŒ[*ùŸM€´Ïu³…Áµ(#Vâ³ -QòÆ †œXîW5@Ñg‘\3-è#AE =̇YˆÖµwÉ|-X¯¨q£«W뺤ÌBP’Â*éJàÉLI¥p5.ù˜ô©<º¸hôS+(T/ñ Ev?´TE <ÁW”J*6È[Bõb’p~œ—5v!÷ƒÀ ×u%[ï´p>afÇà dYaoªÁ¾@9œ_°PÔFnAË6Þ‹’®.ð‹KÁûºÍ³‚„ʞ͉Ԧc¨;,]tÂÝ¢ß -•ÒJ(Þ¥PV‰Ì7²¶9ÄYDf&7¸M©}§|æDâ”{̉J÷ÈÛx…2_pÕùâ Ø•Æ­æŠÊ†ý9Ÿ'YuT»ÈÁ*ëw%õê1{ÛÔrL°žo{ÊNGë:Q°í½uÇXÌßm0í•,¬Ž‡ªU.Ùöà#<ýeËbæ%~“=Î: i¨.m«‹¿0smAùÃfjª¬ö½Ú®³KF»¿ÎJ4? €öãÔ¨ßìÕöãÔð”yµý85ÒýÝ ¼¾¼®†N…JHrã /ÐȽºª”²ÍÜ _9u¶JÉÒ|žJNòio»“Ï•®®­ž7rMÏsQ¥€5¦¢«¬®hùAc -¾Qî1R™e;Ù× *ÚÔç¦0䙿í=¬´ °täÖTf>]…5sÈ:C] I›¬Î0¶å/½ÚˆkI”!”@±cúYñ4É´ô%Ë£úèŒ,#ÒIìþó‘Ÿ”v×ÑÑñk5÷þ¡ðk¡—:‹Ãàw…Ç~‚_hÉF+±d$ÌA¬Ä’‘p0±KFb“÷g%–Œ yz“w-ðËë`¾Uà–4ÿw -üÃòB_¾Sà@­ãæ¿O0/Û â×ô@¦rAüš'o#ˆ_Óñb¯…^s8üZè%}9~­$q‹mÅ/î@ÑЛ ¥IH|:“XEÖäú7ê"ÆÕ5ŸËc§0¼¶t -ãßYªð!sƒ^[ÔToÓ¬:⺠§ºÁz6r}çÖ!~Ùvj·Ïï1¢Ç² Ø‘’>Ÿ©`«‚ É “–Ÿ‚X»Êóô×ø¨&`¡í_°mó"c:j-¥ÿá¼æò —ZïˆÐ¨=I¶è—ù»J Ýß(j®Ï˧ۿN™9K›N™é<¶8 {Wfdöum¶A™ß,{Eì¡Pi&’ý¿¤¿6±aà¼iþrCÅÆGŸEPÆô.o¥¿»L÷Íæ\ØAuÊ%ÐìxФz쟕Ev?´TE <(¬¢•O®xÆÁ(ìÓñhïÙGæÉ°E¤WçÑåSäÑ[Žï}¬ÜðT²âT:âåaéAË“Ì>)Æî…”8­9C: ‘ásÕyqïeYÄ Ï*¬“ÓçÚÊ·Ÿ¾Jð°;¦c±ØÐͤVÂ0Å¿@¤hTƒãˆãÃz» =êóÒ]«I†|â*ûOÅ\N,÷&žÀSÿ æynB¾ˆË*'ø^³ñ¦ù‡ù!—hyøLÍÜwý•þ†¸×^ -èÖ]2¯±ÇiD•GN •]-µW¸Êœà)zÍ]/Á#—¦l×¢“X>» -¯yØ-V⳪y­†§‘Ô _¯+ŠNMÇÆ§»¿Š"µx|câÒíåàDºª8ͱlý <òø22?HW¡/bèj½ï„K˜fAaóã„$ *ì×Bö]<.{œ±¼TbÄS<**Mª§)Ysª¬bÇâ£u7$!‰Ì'bl<´›¾ôÎîJHd“–FÌ_›iJ5Ø•³9Q3¸ `A'gŒµ×!—”<:¿“aœõ‰×»êY -e5àû¶@>SïV É+¡ °%Êqâ!KÁ¦¸•ãØ³lÅm‹{AVä‚rå7Ö(®{!Loù@=âÅKä@¿Xn -ðoÅ­h²˜°3í~kÝ­…Ù„SÉ {º™iW;ͧùðCÞuÕ׿םíÌ´9¿'£§¿6n©Û·•4 )èN> ÚÃ`—ÇРÖè#Å8OÙ9e Áús8ûo©xã÷éc1~˜_öÚò³i#Ж-Lå7Ö­ -§ú¾šq0–ž9œšÁŠzæpj0¶J{Q3^fî5~85Ž +ÿ¯ÆÿWãSãÒ«mÓ.8Ù -?ú•jì˜~Ví{5[’iéK–GõÑ™—ów½¬ÏG~2/°dßcë -üÃò’Sv/ðËKNÙ½À?,¯±Åv,ð†òÞûÐÉ(éüËv‚ø5=ÀTn'ˆ_Óq|Ûâ×ô@ºo_p’ûô·ÇõF™í‚Ûãzs0Ü×*¥ n—õ&pîÊë`ö£þ]^³ýðïò:ö¤þ]^‚d(pñ!èÛ7~­òâ)‡Â¯U^8å`øµÊ«o±oá7Pk¿3Äf’Ðò˜‹zŠ?¼r]À؉|#Ìïäf]Ö)<þéÀˆ~š1r$îT¬Øk…}qf;Öj‘ùf5¹*£Ùö×ñ“ƒÑ.ï"†"yµó^‰°®|ýu“ÑY·?ÚX·4þŒt|æ£ÔëÉF^áßn@gÃIOï'Á°C¶tìUÑɯÚNlžõÚGüìR’ -sÇ*ì¨EvöÑN^<’h‹q‹ -¿zįuß·ñ ˜húö…j[•Åå/èÝí‰.s!*†º‘T×÷]ãþ?;ƒË/©Xéø‘Z£okŽñJ‘GÞµMª7ï…¼öNÍÜwýÅo·ðÛ6,b÷³!m —®¦È0ÐA[Ì ò‡+¥Ö*Mfƒœt;¨4Y~±Ü(°9øž§ÀÍ+˜Ë—Ì(Ì×i0Í„¼i>Ê*ìùKª8 “» ½ÆšMªqØ /sƒ€©(ášK9RØúEÇî’@5%Ü’pî<5¯ÖŒù¬½ß"ÿÑ^k‰CAô |DBiD0¡%4)RV]TÀµ€ˆï¿sK -¨+üá )÷Î9sÎÃ}^ŽC²Öéê½Ñ¯p®-š'«”FgcS¹Yèe8‹sW ‰ô\ŹLj£XVé_øL²3Z¢­;2`/k~¦|hp5Њipsf¢[)BL镸¢Ê˜íS•QUq"ÄNåðQ©‡ç`ÐçkYèt*3Ÿ·ÑQ5Ãó5c|a–à ˆÉ<Ì’²pö–“ ®ö´]…%¤¤1hfIb‡õ9æ{ÚÉYÀe>äÚCöP]ß;^€NäúBUÄE)B›ŒÑ& ½e™Jb}(É “^±xòL©;eº1:%A—4Ä¡ @„OÑß6b3Œ!—ß¶çu›º5ô×ϯ{΂ˆL#h”Z÷ãÐv©ï36´('Ö4]W¸£1š5‹¼§+SZ…¥aF…&ñc3ŠP4C £Õk ¬4¡“c¾“uÌRÞàŽÇyÿ°Ü²¦¿Ùf ZËŸc%¡u±©w‹L’÷Œˆ¦I?kOwÕBkPžF0ÙâÑ+Y‡0VHòÐ4¥…÷ÕÏÕ»$g:½r¬d,æœ4ëΟÛÃÄgù?=o<,¾j—Ø0íÙ.Ád Óží’ãù÷j—°V&¤a X4™EBÀãÃ쪛ɜçºùJÉ×(%‹óy*y—7B­v>W¼¾qCB´ÆbÚFûù±V*βÛ¢Ž´Æ”õs±Ê,Óμ\[•íò·VëVîÏåÄ6Ií¨×â±?žé5LÒy1Ì…hÛï (XᜡlbW“‚‡-WŒ?ÀçäˆzKó䘆ü®(ýZ¿Ž‡ZËÇÃN5hÜáá·ì>F/Ôe¿v£wå>í>F/Úe¯v›}à±ýÚ}¬ž®ÜÝÇf×e÷ãêÊ°Š˜ÿÓqUݦ¥ŸLSo%ø?ÓKüåÿgz‰ûr‚¿^±Úf¹z gù„ ~LÀcŸÄéeìS‚ø1=€ßL~ƒÝ¼a†Y/p;”7WÅ>Üåm ÉË÷My;yÞlÏ`—½á×E/ToøuÑ‹‘¼'üºè=¬â×ЋŸðï:ö%Ì¿Kþ]Ǿ?¶#þ]ǾŸð/ú+ÚóR‘%!qFút…€¬»¿Ù§¸?޶òÏçÊÛÀ'ôîÛ>a E<‘¥¬÷'2"ØÐÌ"z 3"9U[Z?¿§:ÑZ&vsÏRÿnùè|zÕUÀöUã×,köLð ™ä®! 6¯ó¹V”h˜,H¤‚ÑçW! A'Õ<ü-?“úzÙ¤•^™ødá6–ÄC¡$&¯ZK½¯4¯ÜâØß`P)Ðq$ˆ¾Ž¸ýmÿ|- nBeæsèxEPz^.tØ+õåc¯wXZñî¢ On•þ´d~ùöá_ÉH#ùSzÅqV*ßݲZR€ªY)iTõi´GxJªqÒH¿LCF3HA8Fe|A -Ñ®~X{ò^„—ÙŠˆBë%†Å­Iku)ùW2‚v9ÖÂî¶K›V’;eÅäš8¹ª§PÝáQæ”>w‡iCŽ… î4ˆŽ¦Ò¿Ê)£ô~§E„Àœw~±÷®¾ˆ¿œÊo Ýæ1¸W÷t…»¯%ñªŒ Ü3bö½qâÅêÁ¦¹±ŒÆÈë~Õ/ ¬Å{—€{*3™¢v­z6}Es² ½ÄÉ=Mö¾Å5׋ûƒ2†¯A‹c ˆQØq3«fÅ  HUMqR8K« WËBï(§˜|»H.(² —R*c^4qv œµ -|q\„@b–Êä /² 7O•|—/ão ™“Òèl\Â[É¡G+/ÿéu¨É$½)€&cr‘†ƒëÜæ©úPÀ®\ -fùb?ðäQìTƒy†þ­Ï±Ò’&M%gWs ©0~´Â÷ŽûŠÚO37`®ÜJô‡²%Eêu{  \w2:Ë–P"Ÿæ$ý¾)™c ÉØÙ¬ü8*–Efä™’§åÄš¦œÆÈõy¤©Ü°,ø[aé1€ÂÈ.%ÂYq|´²Gí‹¡“c¾“uÌRÞàŽÇyÿ°Ü©• O-Á=K?4³øÊë-é£Þ0÷æ» æm!$ˆ ¦ÍD~Þ0°ä•‚ÎÙ}uƒ´hÀü£ê}îéV• ·‘0í—Á«°ÄíJhI 9µÝf²ùŠÖ‹“Þ·…)D€/*MTîˆ-¼Wsê#¬²|¥}A‚Wéþ$xE€QÆö ÁËÌÆÖ@ic‚¿“Þj® 6c»² äA`‡r£Äl¹ÞBþ`Mg¸ endstream endobj 214 0 obj <>stream -H‰´Wù^²P}Â!‹jb.(îKZj‹KZ™•æòþßÜ ¢•ùµÐ?þà‚ÌvæÌ)¯Ò´êIqµàBñÖx]Í>IC¦æãçQù -žÔ"h}[\ÌçÁôX[^> Æ+=]2{¾gŠ–Äà™(ŽõzuŸŠ"J¶º<:<âõlׯ²q¥#^× nM¯Ç¦ÄÅO£ØJT‰7–IuYõ޲×ÁcòI;Ô°©Ãù-ú¡;lP´Gè«-ÏôÌ -\f/SÒ¨`ÄñA•–ý Äñ©#}UC²"8¯&Éâáâ„oFç!½,'ޝ‡>œ‚$â:gãvòƱ´/QâyZ\$ -=%~>K¦Æ}Q–ÄAQpô!Yg8«p¤ė欫þAIFiÅò!þ°Tp‚|䊤 ¬˜½|ÜKOì×cƒtœ?k¤SæÕõÆ/0*øøät‘±Z™Õ…ô“>ãNfvTí¦DÑ$%©)Z¨‹¤M&ÚK=f‰Fâå"¸@Å0J^úo2]î²€¸ÛÖø4ZôÌqq‚|Z WŸ™Ë¡tüøvýàâÈHº–ñ­HÑë¨/$¸ª1àh5E¼ oå|UyƒÚ5TbõÐC@)†½Ög“mÞØ -2.¯ê•{l m§urÀ¡{oø5¼+Á?L/±òõÿ0½ÄÊ×üÃôBõ¿“àOÒ;:‚¦É*ŸÒE ~MЕÿ'ˆ_Ótåÿ â×ô@ª¿E¼,„—~%Þ< þ°¶{íJ`¼^N£Ò9TR=›Ä…jªOƒ!“îd:¾m—æ¯ÛØèÚYN>fìÑ‚ÁÉêé÷]rÊŽéÜ0æYã¼%g TÒpIÐf¹ÕpBÑj…m8›1L{ÉœLð„Ò·$}{¼Qô§î ã ߊ_oýwøÝ —¢ÿ¿ôBïÿ~7èÅ[úDœBí7úaz)Úý°?½íŽ~ØŸ^œ±oê‡Ð÷ÇE»£ö7Œ17ôÃþñsE?|2Þž—’ä €†!ÒèqÄa绹a›™#8%F=ì¬Éx„‡Ç˜×–Ž_,a4=œmÕ ú+Öa_ÐÉ›¸W+Æ>6ˆvŸ8[yÇFgX•°#2oœ·LXt½º9µÛî·àjö—á5’+GDÁVý‰ã8hŠvÔƒ–$Áã™*¯WY6¸ -uKNŒúÝ ÏšÊþÔeW·³!kG'÷ëÉ5æ‰|VŸù†MŒ¬²Z%Tyu»8ÅÜ€ê¸ÜǬÿnõ |Ta”)>Üg@]0é~TºëúÓR~r™S¼ÑBÑJ k-p7]lÕ -õ¦ÙwV¢Éúy ‚džß=›íU -::Aª? Fe3^GÒ]ð0nWtÔ‹‹†pó‰e5Aœ÷>iS]¶òÕLsRê½Ñëçn~=]‹£Å„£h»$­Ißj«ÑÞF ×Nv¬Dù6—,:Rk…5Jø{ç˜K–ËUc ÑKÔ»ðhpÐ8·¸L Ücc{ˆ®‹Ÿúe!ÕLlÈ Î4Z*Df'Å¢ ñL—…êçÛE ,³äÔéOÀ“Ä”9É8¯3^^ÛžñÖY,ƒº«z`¸(½1å°fÐ ÃÀ#]-½ä9ݼŽÑÖ <†ãÙñ3µ*žà÷ò²¹Ñ¥B”­‚냠ÂôÌ"`,1¿®Cž Z%–P˜SS¿Q\æ°ÑkBÂÐÓÏW²Ð¼aNþ+ünлµ%¹ŽßÿóØOðøt}"Vv/P.®O .>[ \\ŸH,»(×'¬.Þ/P¯áïï§ûÓKÆ…ýtz!c®ì§ûÓ V~·ŸŽŽ i²Ê~z è/į颿@¿¦¼‹ý— ~M’aÀ¹Ã¿»Òk[q‘w¥3¿»ü»+½íŽ~د(Úý°_=P´;úa¿zÀÆ ý°_=@õá@üünÐKý!~7èuñgøÝ êòüþ(ÚmþÝ•^èJ—ùwWzaŠ¹Ì¿»äå’~دìX~­ö«¨Ë×õCpŠ¯ÖºF °ëDË3IŒµŸHuZS©áXìkŸâ¤ -@)`ÁazZd؉·â\lƒ*ÇF1;ûAgL›ÏòqÄ„úö9ޏÓô‹Â”ÍŠ8ÎfRÒÝÍéíhkrDèJ›ÞÇu­Îµ÷VPošó­Å‡þBBº“8Ô5ïÉR~pƒã €ŽŒ.Ý•<ªÍò¤ùËœti6%£0Öœ7J¾=^™ð²/lc1{>Å©ô|6³›¡%~Œ@=úÄ(Ê'òm<‡Äq»¢ã 1 ßÓÃÙV -õ¸–eq]¸(‹ƒS~¥cÈ(½D×Z×g¾a{;ßä*Óee!ÒÒalùLçŒ¨wá1 ú‹Ø+½À}‹§Ö©ÓŸàh”Ã3Ißz½¤ T)_¹ -½9ë¡5ãÇŽxU!\åŠ}Ñp¾WÂSìóÿÜWä,2ÃJx×3–“Š7jä¡já2‰@6ãõ(âB3Ø’äÛÓPòÄá ÊGÁ‹²?S«‘¤’x˜ U@ªŸ; ˜´,4óð5$ó“Tè>&–•(2”N âD΋1éî\*7±ëwƒ&€ Êø*ÄëUæŠgEšÏîO»8,­N1{ɤ±ñÞŽþE+#Áâ1¬pÈD¦Ÿ¶v‚´WÙBêJü>4@ ɶ(;aQ<à=Š"ÈqdùÿÛÓ“Y_P’é©©®ªN´Å!ˆkm"Ë|€ŠB^[Èæ^iÈl,Ä·RÛËr)‘ÉJ)«…$ùÜds!T -ˆ]jòj)ÒVLþËG(÷¯P©C ñƒv¥ù?ýFb'÷øFõWîO_=( hÒPÄk…6 ËRBåY™ì·ªØ°UÕTþ5·>n4‘iÊ)’|Ö)þ{¹rr}åÞ)ž·rNÔëteÓ.*‘e"±PÄ,£·g?önõÒƒI€‰RP3XÔGèÙ#…ÌG˜uX"TõÂ‘Ü -ryöR¦'™ú<5b+Óúo²`Tì ÅräåB×–¹<¢Â^vRgÛÅ÷÷pHã{»øþîàöwñ=<\"‘Ìl¹#À»ÁÛ÷¯D|Ú/¿òW2(zåáCþJeóËÁCþJ¥9yC -U~Â_›½¸—_â¯Í^÷{üݪcßáïû í¿Êý—¾@K˜«,3K =Íü©®ŽpQ§gÜt£ÃòÑÙ’-Þh캀ӟ{YJâ+{WD¸¨Ä±= Á.6Ht¾œ?ë7½ºLKQ|úu«ˆ„%·ó»”AØöƒº@ØâÃ,f2¹ægLõ¦#`þݦ„{¦ˆu[²Üïªa« -K“nÛdWH¦¡Ì‘øÚ•M¹ž§tß_a²ö;8Ä‘ÜNÿa”ÎoÎ/þ&¼Øû»üMxÜ^^·ÀŸà=:vwÀ!õKyÄ7¤~)¨cÛâÇò`0™œtý]/[åú»^ð—ëï:xMßÿi~ØœÜaòÃæôL>H~Øœ±ƒä‡éÁi\ge˜˜\6w±òÚµÀz S'òõ1ʦbè­Ûsçnò7ü’zñï´ê†±˜ÌPμä-í‹O•[í’”§•+õâN“ç-%¯“ó(=² -¼÷jqVÄ“™^ãz5`0ù¦¤0eÌ=ÖvªQ;éÅ©[¥îÂH¥æžqºA’BN^Ú¦$='%Òy«H0ÎtDТ߄úïT) Tÿþð2åßàoÂK}€¿ /Îb»¼¼¶<8vˆËœþvø±<`Û&–<ø3€Àcí…¯åwvº‹Š}™2ÒE"V<~Áÿÿq)¥NU±!KñöåÂÖHÝÕ¶Çü’Šˆ`yý­b $¯÷u=§ˆÍ—2Õ1R•‚Ò*ÊgÚ4dz9fªVWµÎêâó*×x`þÏ7r–×|R5¤itJ:éþEÊŽ€\®Wt3 6ë ”Ÿôo¤ž(…»&%8Úv-AyÞýüî6X(.š\”lâóYÍТ¦-ï ÿÕ¢ -ô º'£$0+ŸŸ´i81æ{-t{_R]D'ƒ8®rmüý ÄÛ™KÉQÐ{P)³¶“šuŸ¥ç#åT.Ogš™(áÚy´£TO-—†Ð)&=8W&#æÕAÍ M¾ã‘Ÿ²eññ£à‘"òyïò5—"^;K¶7S£ñø ô®R±f±| >ŠœÀqwu{ÅÏAx=Ö²gx¾{lE÷,‹ÏêȤÏß©M4êb@5 -Ñ)ÉùǺ\~½#A·×_ø#i¹ü2 AÞ“DÏQ(éÜq¿p‡ƒÜ#ÜRáhЭÿiHÏõFRy,Ö4¹?+Å MËP¦r -{)ÏJ© ;˜)áÈý‡ŽÊDä@Ø—¨»ßaÿÎ9ö†—R{}Di¯ NÑ,›»oH«õE+Ñ2Š÷ÜÛBÄJ´Å!HAm‚“ëøD|ÌÙSÜ-6âCµÜ\Jd²¥$Ÿ›l.¦×ãØ+ÙXŠ´µÿòÚ>W°l îáš‘‘ë`Ú’{|£qXîO_=¤Sdär·â‡º"^»+e)¡ò¬Lö[ÐEÇjk­u˾ñ9 S{#Ó”S$ù,Ž«N®¯ÜÓ¯y§?MÎÙða‚©o›MFè ™‰ËïÆðûB†#) L§ŒGª‚Õa¥Pqù¡_|¯‘Ó`úù1.K…¬ÈöŠÜÊ÷˜<™s›jv¡;¸9rlO?WÄ»H`¯¸„«ì™G÷KVÿÕ¸„{Ù3î¯t~ùI «û/}î%°.Íhƒ¡§™?ÕÕNrNϸéFk£³%Yc²}–7÷,dþ+;xá¢ÿÊ¢ƒôåüøY¿éÕeZˆâÓ¯[E Iäv~—2BRûA]IŇY o`RªùY>ò¦#CøÚ”Œù¦Û’å~W [5àIƒwœn[¤Væ*J¤¤¾Ôr1s›A®¶å¾¿ŠÒiËÏÎòvúk :sš…ùݸì…)éwã>²wûQÜǰOûåWã¾Ý•¿÷1ì³l¹CÜ_6GƒµÆ×N?;uÞzrÄo|P~F7é.0õ5Xò6`mOŒ~™ñ0jüMxY¿ì ð7áup{üMxñôwx#¼>ùIqùÖÉÌ•ÛâÇò€{Ù&?–Pþíñcy&¯5¸þ¹û›ú»^ìʃêï:xiWV×Á‹]y€ü°9=À*É›ÓxåAòÃæô{9H~ØœàôòÉùk³—öþoñ×f/*Ì/ñ×f/eò!òÃf{sp‡É›í \ì ùa³½Yó‹z),Œ°‚ǂڋÓ$;_«ï`Ëò)+¿àJ!¾7…ÉW–âíË¥Þ'uWÛ>ó7H*"ÊR(à¡¿ì~¶¿!÷U=§ˆÍ—²/IˆäÇå1â±Ê¼3OÍŒ¦€˜uZŸW¹Æó¾‘#°¼æ“ª!M#Âñ Hw/Rnär½¢›"Ô¬ƒM|ÔÅFê‰R¸ `›ÂѶk Êôîçw·áÀBqÑä¢ ”ô |V+´h›i¸«þ¼1ñÙËZ‹ÊŠï5Ÿ"º÷O˜•OÈOÚ4œó½}EÖ—DÑÉ «œD`?(í#pð  :V>è˜QbÄZ$LÔ¥ýO¢‡\3®]AwõÏ•€€O'¼"^;KÖµsSù·Pk$i?ìààñ(Hæ,²ô -¸VnWt¨lV0ؖ︥O‘ ¹ÿãÔߨŸÅ‰ðv—a×SùÞÛ3ôÚ"?êž¼Áî߆­»Ã@ ÷$RáhЭ_”¥çîøŒf/U"Ñbr;ã5Xþ¬ª<¦¼Ú®Yh³êYÐíŒUéé?q§J1Ù8QKÞHï¨ -;èªðžŠ›¬ÄWÓÞÓ3’kÄ¢Xè"±Aê#J]µFî?tøEÄ áªõˆ¡ÎŒ‰~ñž{³Î¦î~‡•k4^Ö³‰ø˜³-0Nøñ9°çÛ ÞRÏ.L¯ÞÍ¥ÀãêǶBf‰/ 1r2XYWù²ZH`k!©ùW…Œí~ieAš”áʇejšMÞ - ©‚ÕöZ·×lû|¾žñÆ6@ÑÌUld:nÞZ¸±f CöÅÂÞfê©©—rI!D´!²¡–ÖD«¨¥—î”ÛÒRµ|ÿ;ç$œ W©äM¶æÌ™ùÏ3Ï F `3Ú§óͯ)¿"¯ÍŠÕ°ÝÓØ_Ž]$ÚíÐ4Åì»3 Ív÷zÌ€µÜs=fÿÄý²¶B·±vLĘ£ 6˜ãð‚„ &ų !%Vö0˜ã¿„^ŠqŽ_B/ô¾cüzcs ]ûB2V<ÕÏl’•¾ÉÞ«WEºGŵé4ïªI_½¡fµ‡GÊ{°»@w9¡ŒÜ"ˆ‰ÊC²š’Eƒ¼dßÃW“t#=þ£#ž¹÷>培û+…{m –¸6‚f\“áWÉ~ƒÚ›,¨Äå­ÿÀ2[¸q£Ó¤ÉòØ4‘7 Ž×ÎÞ…@)zŠ -{e¦íË™®™” -Xí— -Û…—€û%pýŽž^8åÿ2½ˆ±üËôc‡$øÐôöýÐ4…Òäý6ÐcäNÙs=FpÆöÚ@‘ÝóïáÄcäù1§ø%ôRŒsüz—Ÿ­üŽæØøã·È^sØ]4+²boc¶™¿È¿ð¡4;iºiþ}Ø€ã#óU\ìÊÎß@õìÊ=4Ì]©p7¥øvƒDÞÒõÅé w׫J(Ù—»miXåqñ”2€mw‚¦y¦uæÑ%É¿Nª7£ùÒmŠÆ­»-Iêwƒg«(°‡gZ Ýdï²pÿߺóFݸd€é±Ep°î—F¡í×]ÊãìG8Ÿ\0öŒ7¼W:Ä/¡—L1ûù%ôêÛ«=úûyÀ$Ûàv§ªo‹Ø^|üÃîôB]6“Ù 8Zð]~ˆ£åböˆ£åböˆòP}ßÔ_«ôRŒÝúk•^¼¿Øª¿Vé…êÛ¬¿VéÅj©ë/çÜzA1v믕<À¬´Y­äu¥þa·<€SrŒ_B/Å8Ç/¡Wß_€ß*ËÚͯNoR¾„Þ$›.lÄY×·+‚YãÔ¹t{ŠB‡j¡ÏnÏ­Þåï̧1‘W×ÅA¢VTž?K¢’i=ó(‹þe¿<ÌÐ[ñ—‹Å´ºýrq’YÝ^Ü8üŠbtá‚$°«T{áíåH¯¯YMê)ÌS"ªñ+¹PrEƒ³ _“Äx»nºšRuµIqàã0T -r,°è¿½¤_ íGw 89Uæ›ÃK_RQ"²ï#{p+Í'#îÖ‡?qíy·¸‡þ ùBxù*€˜·fø+óÞ«´ôWvqʳö–‘.»OðØPœ‡ªåÒßk:dt fã¤ÌIc­ä3æçFžŸfsPˆÆõÖ³ ~î‰DÞ(1ÜšF­ZÒÉö BþCdãØzPT;ZÀ};:íJõX? eVyáZäÖ¾$w΢« V 1Jî|‡¸(š‡ï³(†á[UÄ?†Szl'‡®ÑC†ÙVF¯@Ûø'²÷âj‚Àg'WÀ]þ£Ë1n9ˆðÜ#ó·tqõÙõR¯ÇâûW8iÌýåÏ#`5çùóGHW±IÉòבç˜Âõʬ -½Ÿ£äòú³½2Ÿm¦wưò_9‹Ô)¡†~’˜xz cî£>ïøSu¡¹7€{Ú@²û,À¼Ž’ -—:‹Ü9­$NbÙ€›«D `­‹€ÛëMNÍ£ -§MRP—+Õ_AÊ‘ÐÊW€\´ ‘1²–¬Ë¯›A÷¿F•–å×ä, °Dð“ÿ•úçàzaÏP„#,ôíbІ†k0M§êWHÆ¢ˆá!¹ƒû`8Vú¼î­ðlÒ^˜O“ÏH´ù1¨NeŠýöü .‰ø„!³¾/$‹@|?ž’@t×·JÒ£NI(V€‘ùPv"’@ §´ -çù1ZŽûù'^ü4‘wüèçÄpþŸ"àºXÿˆà~ ìà±—®@ã6t,áÅ3ÉÏÆ\^ÕjbŠæ>+a Xض…‰|ªFš´ïÆU„ÙüúFû>ƒ%š¿nhß«P¦™¾ü€ÞÖhÄ_¡]Ù´ Í’ðzoüß"ã/P¿ë,6-¶âä„[šˆê—±hÀÐÓRÈ|ŸÁsÞ.Ci«œt9^"ädHFêKŸö™Öý”,E¨.…OšÜßBwº§“Gw1yùyØ‘U î‚(rxU‚Í{OgW%Š9(Ákéíû÷õ›cå8íö›cå8íö›hK2;Îu281Þ>÷³3ú‘UªÚ·‰xý’î‚આÄJXV²=]‘<÷ÈŽðKè¥çø%ôRŒsüza;ßÑÏOüVêûh”5+²boc¶™¿ÈaŠácivÒtÓüû°Dæk>£ð‰ì TÁ®Ò¹•ÂÝ”âÛ Yä-]_œrw½ª„§XCöån[Vy\<¥ `Û  X­3.I®øuV½é0¸™nS4îÜmIR¿<[Å`ÒdÚM\ÃÄ‚8 }cKŽ»qÉÓc‹÷K¯)~}é}œ½ã¬ö†S:(Á¿L¯áÆ÷Mð/Ó«û±½üËôâêÿœà“ îy ˜=âhy€)ö³@- É¶ø‡5y˜,6äAïJgø%·sŒ_B/š/NñK襘üBI`9q úŠ£ÞvE° kœ:—nOñQèP-ôÙí¹Õ»üÕ7"óŒÐD®Ø¹…—æW·Š*lÂ¥n6HŠí7Ôb/N/oÉKÏßPÖü·è}¬€åÍ$kq}&ßeýÎêkEÁMjÄ {˜rmuƒY¤cú¥ÙtTØycB×/)ŠƒD­¨<–D°ÚÏ<Ê¢Ù/3ñºþÍüw¼Aõã—Ð ÕwŒ_B/&Ù!~ ½Æ[Óßôçáþawz å?Ú?ìN/ÅØãv§6‹cüCR¾œí!p—Ÿâhy€ÞÿY Ž–j8Z0c3™ - öè¯UzÑ)öê¯Uzá›õ×*½8cëoÃÃ$À˜Íúk%c·þZÉLd›õwK}Ûüͧø%ôRòK¾×ç¿„^¼¿Øàv7ŠqŽ_B/t¥cüz1ÉNð»æ~¡.ŽñKèÕ»Ò~ ½H-â—Ð ~l'¿rá-è?Z°òÛàv§wmŠ9¶^@õmñ8½è­èK$r(AšG‰K¦ÎõSÖ[·;Ì|FN"訓éT™uhþ¹× ùNH0>‘_@Èì}w¥‘Ù´Âù²~omy«†d½¿œ%šÁr:üØórW§s¯ßQHõ½²Òƒ—@òv’YêA‰7 …H·&è‘{P9¬–ðºãºæQªzzƒu¿JL¸‹ J»JµÞ^Žôú®d ¨§0M‰¨v:įäBÓC]äk’o×MâªT]mRœåÿ`¨^C‹þÛGäTut§¼”sªÌ7‡—¾¤¢„Õ?Ò¤¿·þÅ,­O ­!Á—ùš•WµºÙ>åÌ¿ý…ªÀñ1ŸXÅb -wú¦¡Ûóˆ è}é²ZÊ-U¾Y•ŸúÄ÷¯à¹\x° -BiÛ•â¼»ýì6,ç—,r2N%*ƒoÕ --]Çbÿh¯òýâ(úy%’’IªvA,)µTtSJu£Zíûwf‰TÕ×òɘ¹sî¹çž»|ƒÒw‡ª -?¾)ªy?[:ùd†û®Ü -˜êK hP’œ|öTÈUY†ªÔ„«““4†–¯Þ”¢2N)×üØ«ô.²f¨®ä»ÁâR~kSéÑ‹Rreþ‘°š<«ÅzÛ°žÂ´hÐz^#j<Õ¢ä)<7L>•z”>FÖ ¼Ø«z‘È—Îg¢ÆªþúEjÅ~<½ÞGóÊmÛS\eéPºOPõ·cKÏŠ*ë—Òúˆçw]ƒ®ÜƒÈÚ´ÇãÔÖ1KB’/Ó@ÝIg2ÄÙxàÑ*$“ õ*xK¿'^ØØ2´V <º"LtL–ºÓ溋rRhÐí}2X ÞY•” ÍW\uˆ¥<ê÷x+dß¡ºTQ¤÷A;–q˾,Pò5ýP¢Æ;1eTp2é™Ãž€feBdô=Ï'ÑØ¥©c&;¤iu(V ûo?ò‘y[ˆÓ)Ñ U¡, ÿHösU ë ¥Üü¶òÉôÇ%篮%Dù]‹º³÷¹ú»rïÝ^BûËŠEƒùûŒ>¾[2[xlt M‰·DÓõ “ÇNb¶ÎȾ°Pù<Ît€¨6ÍÖ5œíd4cX×p¶“ÑŒa.›g;Íp^¼)–V%KñÄ‚€ÂŽònkŸ;Ö/ ÕCÏ P)m¼¿gÒƒ‚<9-èÆÕµpQäISÃçyÓÜb”í²ˆÎäÊ­þ­Îr§¹i›ÎùËÀM©'\Vá®óhÍ §ûÎyA‹Þ1ìb”™cñŽ5»-Y^¾ +ûMuv¸U4uŽkHÃDúÄ}dS†µ9O¯©¡O¬èmƒ8<3—Ï{a5ôϽ½Mùk³ò²3þÚì%U¹#þÚìŧ슿$%*ž|­þBG›n#¼‚YÓlR>÷‘£ˆG^Cá¢tÁ/ÅE‡Â–IY–t GUƉH» $ËN ‡Ã´Ç¢xÑÙ€V„_þ¼ «èd2L¾$/í°Iâ‹CDo]¸k(¤HÍš<ôw nÖš?×L¾Xù÷O$pŠ­C¥÷r$)ùNOÄ(†¬z¹šË÷7Y™üKxö¿þ%¼”ÉüKx1bÿððJµS^pɽËñgyûY þ,±âÏò€ç—o¢ôùòþÚì]ž_¶Ë_›½ »;þÚìµ§¤¿ò÷äý¶½AöwÆ_›½ýñ×f/aòŽøk³—a¿ð׫…·mÏÈ”ä4h;±gÀ±eƒ¶{f:%Û ý§=‹O6/vwüµÙ˰»ã¯Í^\û.þ69ΞéäQ¿·O¡Î ”WÐ//p~/lI1)Þoå-²K!sèå‡g˜WuPKërƒã‘/c&çB5lREë}-Mÿí¨ØVõ{âuéážM!Ck%Ñàæ,®æÚÇõ…Èæâ9®Êþ[Û‘-åöµì:%™oCi6ý׋¸ÑýÔQ/ÙÝOâ£ù>lxì62Êmr¨ÊCîR‡SpñIõH"¡¾1Ô]¦ˆ]m5,Wš¥RPt÷¡×“^ÅêÀE`O6[ÖW|ñÊr5(B^ð>fÞ:Ï}Z/´—/‰Z¡ÙìK\ÝG f3çÊP»‹O…UÙÏÃè‹,V¯Sàü§èÅ*Ì»X5”‰¾'øV›J^”’+ó„%uð¬ëÁÉÃzjQŸ°Ÿ¨qØ] µ¨õtÜ0k£Ôãä{}ŒœË½ª‰|)°¼´ôúEjyxp²75£H`•p}ØdQ}ÉbÅM*#{Pe¸®–vUyô‘M)Bh\ jŠ¢¢àóQNõ«Fœa1«¯0«+rÍ r¥ ¯´3`w®7T»zÿŸªòèY¨þbª(=6[e$ÎôËàòpl~kŒDªìØ™ù…}qèv.@ÎÆ;Ñ'ºE&=cíNT‰ˆ„ØçšC˜3ÅÓ< -‹Yó¯CæôŠ«›'¤²ˆˆf®P¾ò›­¬AW¦ø’ãÃR-ún9¨î³²6nÉ·5ÎÅ)é\˜É¥ÏéòÇ+fD‹Èš<ä[]Ò˜äÑü™SzÆ8/WG!8/Q,e Øç²”Ùçéñô¿¦Ò6ˆ³[âŠW_{6SÊ<ë•’Nú‚‡¡þÙòïBÚ¥Ü<€VFÕrÕPÅ/TSp@*L÷" òRˆ!°–Ô² ¡=*í…€ÉÑ”š{¼Kcµ,ë"½+醋N‹µˆ§NÑ0±*Ð fÂäÜ#o¢á_šs†uÙó˜spãËö|'æÜvã[.—Ì9®ýoìÍÍ Ã~ko¶hnö[{³Es“Ų=ÿbλâôÏÃ%Ö±]ñ×fï’ßÙpù½Žý‚¿ø§dÉšÁÓ-›tx˳Où—˜7†òbî{ÄÞðÔ#ö#aG]ážJí&‰,ž}¨èÑ[Ê«§×ƒÌÙ~=½ò&Å/N<Å»ç·8@}©,{«jç³¼EØ#ÑÁdJA+Lzñª µ„ïý½šˆ¡Vi M^jÕ&kÍŸ½‘>÷\sp­7ÌϘó’þrn2¢|2¥›-Ï@È.TA“ãØñ¤zI:6WíÈޯ׌„¾‰¬"K÷ѾUHzì62¸ dG<‹éʭЉ©¾Š5!É‘up—ªÁ¿ÏžƒŠN‘ê·òä¼M¨Ÿåì^ÏbðßĬ -êttd^­ÔãäJ÷¨lû(“g˜4 êÆaÐó˜’Ï¥År¿ôðŒ9KœlQ>,@ zÕ~†ÄD'šÄ‹mgÿh¯öÅò™ úB57B6‰{ÝC¤î”–Þ¨RZ¿ªïÿÍnn¨úJùG5Y»³gΜ9c™ -l B!Ìÿ‡ÉéûùR…eêù=-go - 'J>Ô Ü%z!õrIj ׬)®!Ù‘ -ÀKÅ@“µdãBÔ(YE…É®.q¢Ø/µ‘;e™ŽkPh‹ œÏúë%U7¾U‡<¼è.tQ×zÔ?‚“­ pÊÓYõ !Ö'è[$â3ÊRqG†-jô;„ì\’B‚}jŠuëjxHd ·êu/ Îp½ìeží“éœ_ŒÒº&­/v¬,—Ï#igÜÂq'fì éÉ|Ì ÑtýãFWX©@¶ÑQ»Ü] çÆ,ñTN ä6J<:"!ágõãõßBê̲%qý…¡–+­t"ižrò’ª8ùñ[ÓI Å.þ·äô¦åšÓ+ÐEŸ\Šœ#Ã÷¦†û‹ÑÖBø•l¶¨Â;é¸"8Ò5!9"ðsI…³ -$#æKg^Ñ3 Åäôës y…ׯ«÷JyÓ)ê¥i¢ýE ¿07ÐÅ~ê¾G47›}ÿP÷¸Ûܘæ¯îq·¹Á;†{ÊWŸ©E¾ ±(4}d{ÈþºûˆŽ¦LKåüžx#8v2³M˜ ¬ /6zVÝ: KÆÂ¸i›‰«—âÄB9¨5¥¯–篹ÛA áPDOK#=,S†¥é<ùW,ö´ˆ˜^§êÕÝŒ;‚žÚo Äe‘)©Ð°ïZQLpS£mýÙ˜ƒ0•> ©È¶—”©s)Ó½fwxè•z.æc$¹ÃOmÎñ]NÅ_›½x;·êØüý­9wPöü$æÜAmØó“˜ss®´4y­c¬5þ핹óÉ‚¿m|b††W/Iç}7(6p'õ™ v¾¬zY°†0¼ÿôó[x­¹ò éç·ð‚O>|úù5¼údñk€1¼l°={É™’þO þ,†‡Ù-–r—ÿˆ?ÉÀæ>åTüµÙkyËð×f/™_NÄ_›½±_òœ7s`{sP§ã¯Í^ðc'ã/a/`ÓÏÙ~ì¨ü*ñÉŠ¸ºÁp—¸û¨e9ÜBMWb˜’U p@ϤœÜ¬¬ŸÂ®?+ìÔåtûGQ-Ž-ØÎ6jÂ+ï‰ÏõðwR‰|kŽ96 Iœ÷1.eß3ER -¥‰ˆT¢–l\ˆùÑ[BÌ—î1ù<*†ÑKk•Ó_7˜øBèçOHÜ]0€sдuŤ@í‹™Hê—Ϻ<â®Ròº¬YëQÿ,°€5ú_ýBˆõa•Ѐñe¢œv /YÜp.‰(ºa0½œò-ÿçF(ßY$>õ@è)a?,N²Y˜^wÇ»¡¼3nü¯Ë½{ ñ0¼gë"œU½uhqºíÃr)4|¾Í1àç„J -Ä=epèn¬Éù¢jª -Ьq`¨-ÇzËÐÛò–[l3±UžHÐÝJ½´r—*›ä‚£ôs½¢*…‹å¯dë¦q²Ie{¯•}>‰é/´€[‡‹5­HyjtÍêî¢û#&~寋8}½†òq7ˆÆeDr;+Pw -of­5¾Y> - Y7ÍH™Ž'g‡¹Þ÷¿JLĆÂÊÔ€¹”é^“ô¯æÃ|ìÅ‹±ðŽ„Mä>ž#§4}ÛÌOt4eZj,çÿðÄÁ±“™µh'?~kúäRx±qr"’o×Áž,ËÁ6í¶ jÉÕKñï.¦ GÕyò¯8*íi1­VÕ«›)w:4ÅÊßo †Ûé·öýA+ -£Ÿ'òNÚ®¡ýáû`WŒúÑbíe°ˆŽb±ö2Xê@‹µË`‰ÓU×Ü8¦(r®okq^¿dR\JR¯Ò«`drræ#@Cÿ8;Ûà¯Í^8ådüµÙ Ù?mö&Ÿˆ¿6{M[á/¤Äžn3Ûâ»ìšn3ÛÚLÞ>Ýg¶uP»§Ûݳ-zyL¡_À så>¯ƒÚ àáuìðð’.v?ÊM–ûQ þ,X“ÿW þ,ø”ÿˆ?Ëé/{ûuùo/y y9möZóË øk³—ÜåDü5Ø{õIá.v*þÚìå?mö’.¶7k ³W{ÓÝÅïø{x{;mö‚&ŸŒ¿ HC?LÖg,ÀÛÆfÍcÈÃS#C¾AqU¿ˆ²UŸQ¶ÊýG{™î¥Qü x”R*…¶i•M‹€®"¢(¨,\¯ -ï'IÛTÜØ/ük“LþsæÌKŸ ‡¥‚sò -;YÙPaÕ©1ØÁFõ»·:X‰âcU9É4+÷„ž,fÐ8 |¿舺òíFdw#*S¢…‡1cöã±÷½?ÿjßwvH®|÷aÀỶ´‹*GÜÁtK) üc# —Õ[q*+—Ç&–QC“Å{Éî@ü¿Ta€,ºÞ'pìÂLêŽ -¯¯{J.ß«¶ -0.›J9Ÿëî+oÃL®¼s[‡?Ì«¹²‘¾)ŽÛÆyNž¨ûí‚AØ ÄÙJÌx ^‹ÎðïµkH„¨¼f]å"¸b[QÓ´¨Õ²)¥%»iÐQе-+÷·q¸$ý»Ñqabv«ô§2³øÉ¨§ãlô›mî5¦ø}É€ðNöJqˆJƒj²ív._m0‹¨Xz·ÀMQ”²û™~dð˜ÿ—ÜLbƒµ‰³zëåî°”ûÛqÏT¡+‹YÅžÈ9$Ù·J§aSýÌVí˜gF-—¸FHEpÅÚ§AëïÓ4#ºƒ\£Óӳ瓼cÓd¢ÆbЈSëc]Hô§þFUÆW§Ó=8#6b;Øe ÌSÞ(n8‘¸êùù|¿ëaý²¼ïáw=Ä/ï{VtíxŠýèÛá~MÄÏ/£7 øÇ/£ŸÅ/~½ßêØ*üÆé\ ²¶­½ƒY ›åÉÊ:•?ÁSXj¯üújî ²ÑÓæA¡|uÍöåÚ³>Ë&­,†˜ŠžMå™ -:ö±Az…ûDe’kæ^Zñ|gë¦Ø•:$ý½xp€m^`³‰¿.É1›Ù“À-“LOÝR±A ÛãÖ£ÉÚ‹gŠ/@Œ³$¾Tˆ¾ÖõrôYmŽP¯Ö;&ýr>µËú´'ý¢‡RÓÔg^±¼d•å ¼byÉ*ËxÅò:SlÉQÞQ ç*ýKyÀÞòGX[ +ˆµåxËŸbmy ·ïåùeKs¥?ü2z‚ü2zÂüÆáã)±Äx þñËè þñËè…Þ÷_F/žÈ³ˆæ ¿ŒÞ€à¿ŒÞ€à¿Œ^pã|ü¦5‘D]ò«:zIxóñÏÈJß½ˆgÅ] çJ²lPœœ…ƒòýc6œ¹;ÝTz·?]ÿÛd§BÒÉÑÞGÿ—¼ËÎCV{XWéÓÜàÚC×ó›}ØË¾á¶ÜŸ¥’c”Õ­\â~=Sì3.Tu40vÜ=¾MÜE0ü!½:°`“O)yíÂ!ua(þÑýfƒ£ûúížìpÞ¬OIyWW,¯’–-ðŠå¥)ié¯X^rûKxWXGÂ:þwYy€)¶†ÿ]V?¶šÿýr¼aaÖØxÃ÷Â›ßøÇí}¾üÆ?Þ’yòÿxMþ.¿íüÎxóæJÿâ›b~Æ <÷‹ß¯ãíøeôÂY|ã—Ñëìo¼ ³r‘ßÄoÛ38‹oü2zá,¾ñËP±Ò:üâz*ßÇ‹€à¿ŒÞ€à¿Œ^ê”üá—Ñ Œ9übVM´D~ã/¯½ -W~ã//VKÞüÆ_^˜bÜù¼ãÎoüòøó¿<@Wrç7^yxžáùÂ›ßøãt%w~ã„dÎü5ë¢h¼rƒV{Ôï6Ÿ4Ö¶ -6¾Ý¶Óu%8‹v¿‘w˜W4òZsža²jîÑŽwNF!Ó¾œ¶^fP%jýìý_O¿ÀKõp0UÃ:v+ìjål#£Å„T þçöd¡oÑŠ{o¸›Zž»B½qia•L¾qÉ©~^øCª|9…žÎÁí ^ -©·i ááòØD½ÌP§*›O©m§ÓH -Ýåm©+Uâêa½XÄšTX\ôú¹{ˆDsãÀžÈš¬¾Hö•\<õi3ÐF{­ÛýtѬ¤hz>܆„‘%-°f¿ïkÉŒœå*Í"a†z­`~í‚s›Ë›ÈBw»PjÓ€÷ȨWàÊKQ&ŒzÒERÏž%äI=:å\' "[à”´R¡£¸ ßnêz¸Öj2}ÊD4ù<øÇý®êDØê T;‘}÷p„~V̰ï`ü -µ’ž-<©ÉGì·KÑï¥7k‹«T"Ïøé©èúäb7  %ò¸b–gÕä £‡{­”÷¤r6ª‡['É÷§ßÔäHqëýs2ê>oiž\ùU`S‡—GÜÕ¬dkH±+.l¿gâêJHâÂq}¾%ÚVþ±HšFe¬CÒ^ïš+´¯‡­Ý -ðYG0¹‹zþ¿a÷Ä, endstream endobj 215 0 obj <>stream -H‰ìWÙvªJý?B#‚ ³TP‰š8'1“CôÄÄDÃÿßêD'žÉ·ûâ¦è®a׮ݛ+NC|RÉ£WrˆJ$Ô93|ðP\n¶,IeyiH¥N%«hí$Óyðô‘‡oØêšsuï–¢PÊMñµ6,*¹=äÔˆIsÚõ@”Dî²n?UG<¼è®$³wFÃõî¡"^­†ÏëIÄ©…õ»Ü÷U’Ä¢µ…šžSá%Z^Â_c"³Ø¢øo¼kIŒxŸš¾9Š»Ú ÛÉðíl"ú]bÑÆ+%¬U{*˜ËóC®l;2‰Ï¿wån;Òž#jוÐ!WvI¯Ž8¢%k«=G –]Wð¶ô÷ÞJ£·sÌd9a]|Ê£ôgðÈ>?dwÌ$ÉðÄ2ös#]Û§Ž™´“Ë1£§ŒtØ$Ì7$1Ül`hN¿ÿÁÛ^˜qz(Ø€S*iÈ4:….{_ÆY¦¡i^rRiP lbAiT+¨“eTÕ0caÈúŽÇ`˜Шsö|§xµ |•åb–/ -º—¿µ¼ÔH~ò†¦õ6~{ùÏyÅËwŸ‹‚RIø÷:êÏèËŽaãUo'1üBáT5QRúJ -¾€ÅñÈðC*K,†3ç˜\±dìfN.V|!™›ÄÎ=”’}}NKbQç­¨ÕÈõ§ÝCÎ<ƒh•17©L~¡”oÜäÈ~Êé6æï(Нjãuß+"4qŸ|Z,Àüa)óO1zÚ'X 9 ðY§*]”\\‰GÛ餞mRÓLJºöÃgM¨‹ .#fä}0 w…;† k÷ä†} -o¼‹¯¾%soœ“:-‘ú ø¬çÔ([Š×ñb!CZÆÅ0í%ÁuéÜÊ…<º£H qO­ ŒyqØõp’IU¼ xqÃo½0Ì´€×BBȸ»I™ñ\E¤t¶Š¿vEàdˆºcüj‚+½âe󓲆x© svK°X\’ųå9×N-’/Sº]8χg\º{éy;@à ¨¯6ÒÄo5Q¼­KfwMorܲ™Ÿ ±õJÇ’R´Ö*YÕü£âã]ü%Û\û_ówÚ„‘¹üõ­™-ßÜôÐãú)£¿öEòÞg?f•%~Ñ—Ìþ*a¿TC„ùÏx úØÚ"ô´€§[I ÂѤÒH‡7àò“À’Fþb }P‘MÝ 'ßjH_(^+.‰ýÏUËÇå8„Í¡È~úûøuÑë¡N‡_½$–á×Eïûüâ¿¢Ck&C\òPˆÕ2©¯È¼åÞãgq|Ô¦ã>î°ååûaË/¬z¤!}¯ÐØ™Í"Ö&=+ª–„‘üµA¢j;|•=âwMoþyò™€Tߣ `{Šv=Ï9€­ð[H¶2h¼ð0+ókÁ¹ï»äqªË‹ 'ïhµößîH_ziÑéÆ'Æg|;È@Q@ì°Üðà#‚“ÖÎÂî—#âÆ÷ü‡éæÿÿaz=Ôo%øÓ»™b¿–àŸ¥—#òì§ôù8Aü5=àÞ?JMÐ•Ç â¯éÁbþ-‚Pü‰Iìßà×-,žÈ§Â¯‹^u:üºèõPߘuU²ôfDfˆÊ—F¹½Áã¡ -Ùº~o”/¼M8*m.jz`h\³eèæÃ£ëÊ3øª«ãXάÌb½í ²-˜Ÿ=ÈØ8Vžg[ÙéòÜ}ð‰(}Ä>ß¾:€m…·«Åž7HÙ¨­ëøÞq#:1߀)ÖD okðVž~•ûX°H²=Ù6×áò[Ajò¡ÞU¯j m+©Ÿ`÷‹âOÊ4Ñf§Sf¸÷mv:eæ"¹:2s&ò&ÌcÊììœýUüºè;~]ôÂ|9~Ý:“›Å‰ð Äû±úÿfQ£éSÝ,4¹´üÿfñÿÍât7 –âcˆyi§ägA‰+ R_Ï2š’ КÌý9©´ê›rßO›¤Kl(õ9+𾯺 ƒ×êY5=§Ü„'7‡c©>À[ïšlaë»»ñH¨ÍpÉ„ö¤Q¿»{‹f’Xñ–z"ÓÇìQï[:B Ôå[W@GÕÄoá:’\bæÿÖ<&¿w7—ò­#´5÷ƒßaGù#&ù5tÐ ¥;÷J,ÊýÀÉÙfç°¢ú°g@$Ìnè -‹W3èUóF™±cö1:ßâv ÎðjÿÅ›#Ñ\"lg~´ó†ÆF_²ftÝΚáä¬@VŒ;*k*â ¡ã=„º†Ú—PKXÀd·$yºÃiË2v¬‰ š ›àꓬÓÝLa÷˜ŽØ÷'…p²=ÏúŸüΰBâÎxÛ胯n‚ßw4ÝøÜ¢Gk²Šb‡å†5}l%ÑYØqÅH 3:‘=Má* -¸ñLS¸c2v2Má* -Òû5sT˜^¢-·Ìa‚ ÿFRÄcÿVRÄê_kâCŠØCý&Æì…~Š_½êtøuÑë¡N‡_½Ðû'ï‹^Œ±#XSÌ⾈L§F¹}deëú½Q¾ð6ᨴ¹X¨é¡qÍ–¡›®_xÚ3DÒàXÎ2³í>žÈ°âµ¯¡úsÆrÍÅ®T¸ëËøzƒD©Æüd˜»ëÕ$ˆìÏÝ´‹˜°ÊÃü1i¶ó\˜gÅçYÔdr5@˜êK…Çh¾t[¢‘u·-IýnðÔŠ{p¦Êk¯EŒÿqÞèµ+Iªt¹ë}jFµÄ¥6mö¢YémöÂ)Žñ×f/žû;òW. ‚àŧüà=á58ö[€÷„çò{€w‡]Šÿ㛇¿_0Ð>¸,½“ê.šåF×%û¦E‹'#üM.&ê©à4È×%1Þi,¤¦ÔÜ»8æ?0©¶ AÿUl9U}¿?˺h™oJþ„‡”l`”RSÃfÄ ´ñIÖØ1®¬Z]¯Ÿrƒ Xÿ!«Àñ1èJñ*‹)ÜÉ ˆòç;©T»Ì™*ߪÊOüâßà™\x° -Bi;U ñ¼»þî,çM.rF¬ôŽ7+«Ú¨ÑbËä¿;TQôâ4%½fÞU`V^“^cÓSí“íµñšåOp¼<NÄᔳ0¤ñçKÑï’at)Køõ\y@_BQ<èW±2cï4f•±8ôÈçRi:‹™£îU"z m½«s¼1¡¸a¾ð î%Âæ½AÕ`Q^g ä¼ø°GõÈ<›÷-¿À¯zo¯#ö=¬ü ^Ñß}òÏO~÷ÆåÈsnÕ{uK¦4*N<¿ÜГO!ˆ2äi ¶×$Ccüø0\¹³ûÀê‚ šòù -j*—©^ŸZ‡ÝA 6L9*¿Ô}¸_äjTê?ëA"H&½NýZÍûPsÜw@‹ZfiÚ×>PKÉXÑ X 'Db?˜jŸÇLÖgdŸèÀ -ö² 3Õ v\DM´ø'm{øµ üˆâ¢ -%<Á¡|H‚ÍN~D=‰¾¡-é§PÄ­˜pìöG8ŒØ–‡|ÛñÿüöcÿíCû19$õØz'¯s÷e©?}c ÷õâ -•º—@,ì³µHµ K$ÿ†i€Jò¹0_6ü°XµEϯL“¯ä3Ø~St_~¤ýò å®ÐàÍS|å¶íKtY£Ü™”I}x™öʪq@Æì|9%òS°Á` °E<œijØ‘àF)¤¿N‰Ài¡+¨Zí“J³Q ñI†a›ü “;ݾŸ`#ƒyðÚÍØÎ™éÈo%¦Ä’hÁ<ÔTž+ OU<} úd xs 8Pˆg& B2É,ž>c?½êëR×™ûlù‚j(L<^œL´x7›ð7šÙLñσ=›±»€³‹Ð)ìl°…$õ5¶þn‚˜|dýÝ/hò1õ×SûÚ¯éù௠/äâmx-§ämx‘&o8!—¦j¢åÆN‘1Œc§*lPÆqòLº9ÁG¡C‹¡Ýž7{—¿cí¸ðöʾ#GY7dÏÀÚ5=Ê[YEFsgW>Éô›Ù‹^œ2%º-çsJ%‚€V–ü7ï½Y‚Ë/*q1. {‚!Âw2É9ûRUð1b ¼€l'»ª¹Ö»œN&ÁìoŽXaMøI’¢8ÔêŠþïR„UQçŠSïÿLeþ1,ü ¯‹Þ à=áuÑ;¼'¼€Ø.ï /òÉ&ÀÒëcR:"mx­S௠/:Å)þÚð"&ïÅ_±ò~;Þ\ô±õw“úºècëï&õuÑÇÖßMꋪï9§÷ô¿¿u¿Ø)ííë~]ô!þ÷·î¹ñüo´ŸÝÕ¯i9t‘%Áq‰äÙ:½º£ô¿ˆ'BúÅ3™(ÓgŠ×{MŠ Aiù9ôsŸÁçò€0Î|u³5›Ò¦.9ÕZÁ«Tø¡ÇZ>ù®Aå^Þ¾¢P’{Åb퓚¸ùL›¬½äèLT®[“s²ùöì®ð(q•Ä@˜ŒúœÅßW¨k\êýÌ”z`²@ªú¢id1IoAP¸^¹ù…³’‰ôŒõKýgŸì„¯H°Ë^‘`àØÎ" èts;͸§´E„™qÀ±ã™ˆoáuÑG4ßÎ8ÓóÅD,À —¢-H“· -ÄÁò€çþ68X0Ƕ ‚ˆÃßÈp h\–ÞIu»‘ÄlҢœÎ%û&wéhpäë’ï4RSjîŽ]ü“T -#O`Ð}¶05x¿QÏee¾5*ù -¯boËÊ…Û1ân¿Ößxƒ'ííâñOжötí_9%½ÊnNÑ‹ƒ´Tê>bµ Åy¨[^“^+TÈèÌÏ'½ÆÚIÀ3…¦4çU½“ƒB4+kï΋ð05Q»#XXÜšàaHµÚ’g=ƒPà›C§â°3*K¯Ìߪê°.~#2Så‰kGÔ“˜ö'¸3Ðd”œ -jP<%t¢èwÉSxÏM̯Íyò”#ô(<λ•§[JƒyœjŸl¯cQàÚø–×™µ5¶hÝóºhñïk8þ3MRe ÷èsO’ܳ¦Æ¡Ž×®Dº!©Týsºô9c?‡9†î~Ð5¥ÒKÿÖ#ª÷ö:b™°l|¿~/ÇɅ̽¸t/Úã-om|ÿÑ^¥ë¥Aô <Ä1†1«]»ˆD7d'$‘HDÄûߪîYûòg>F뮪>uêHIê9‚ÑIFÇwó’œ7Dyq¼äüéÛÁi¢€–? šÈÀdç”vÍ|á Rh¥¨FA©FÕÌ­»ˆC8Yyö¾æÁõ jN-¬ç´äóLôæœS•¼RM*¸%©'¤ãš3Ó‚½#õ¨Êf+jê&\$=kN±V5E¯¶e/ÿ³@9$ûf-ÙŒj àÒù £Œ“-t%¨ {ãr€:C!ŒÂÂ¥kƒÑÅ,•»UÌdžØþ„zŒ·ÕÁò@€ -.¥yLÌaa(F ‘ÑŠ@Jq4/ÛD(8Z´¥5Á¯÷Š%s*K˜ræ",ß÷®XRZ´–¶ü³ha'–ÜÚÊò% Ý?T²„hË©E0FÓt¾®îxøäaŽ7—iï ,¸²/ -ý’…irõ)÷69é‡G[xÁ•?n4öÏOLJÚØÔÓùuôX³&Rñ‡|%ꫦïOû™Œ£3ÎæÂGöšñë[?ç3 —ç›°¼¾™Ñp •<(X]¹t¢¾F‘XÆìBPQÉÆ•.ÉGxÜç¥_*æ¥ð"¦U¾ÿ am¼úØm ½+ 5à÷NéS€­ t ËÌÿÇtÈ0§šþ<ÝrɆ§ìÃÓ-—lˆä}xºåŽ{žn¹å°±ûñtË-‡Ý§[n9ˆ¶œo:öh9,$ßkÕ=â×B/är0üZèEæ?~§ylüŠt,SZó+„ï<R75kf“•ô­Íœ2WpT¬ðóµ3 ÏU-“.ÜÝ[‘áuyRƒQsqÐÊ"ˆ)é騬ËVƒ˜íñ”~ ž¡æ¯%¿®)ÈS·î‡Ü#{¦òϞؚo°‰à³‰d¯ŽÚJ•ĵdä|-çŠSSœ¬|MŠ‘iǪ7Q+…è¶©¦';‘dB« ŸÊØzQ?ì"éËÃ0QãëxËòâ)xËò’\Ö/ð–å%§¬[à®u–¶9=ØØ5bgz€®\M;Óªñ•±=,ôÚˆ_ ½z.Á¯…^¸—ƒá×JsYEêÎôœ¼gþW^Dò~ùw^y'|å>ø7b·KI¾ÊÝ÷.¡‹Æ)Ó­yýâê¹ã¬o@e¸ïº“ÞÞkp|è×r[DðÄÃùFškÌ™ò¬fe¥ò•R Üë -½&¯ÆG½ìMçRÆPÓ^=©÷㇚-ßZ¿aƒ(Ê^Jîdð ¾Ö%]ÃÀç†,wÛ¾€‰ üóŒóÇ2 ‚tH n;“¤Æv¸SÍùT aï·†^*ïGo$ -à Çñ>ÇÛóï¿zÉ)¯…^zû»ê‡®àÂñ†.i{ý»îxƒÛßAÿ®;Þlì.úwÝñFnÒ¿)Bø×½Ü¿mîÞ°_6õo›»7»¹Ûܽ¡RÚÔ¿YîM:¿ˆóHx†‚mìAHx†‚mìAHx†‚u ³ož¡`À˜N—Ã5 -¼eyñ” -¼eyñ” -¼eyiÅÖ.ð–3ôØ®"xgcwÁkÌ8»³^9ã>á^†_ ½6öpøµÐ‹Ì(üZèÅSÖÅo¾ÏlY^»oþW^`Ë=óï¼ò‚Û3ÿšôÀ[ô`Û]¯Aú|ÙE¯AàøvÁkÐæ²ÊÄvöÀÉ{æßyå…Ší™ç•×p¯ûâß.A²4ã10ÃeÎc¹LÓо=8 ÓeÎcØXËeÌzŒì]\]hâ6*¯á+76q•ÔÅv&n£òB.Û™¸éòŠËéß~ùw=ØØ}óï&6rqùåœñã)¾«ªÞ|Ž ^~‰4NIÄ ïÔœ —œ×ÎÿìÝ`±+¬cñòqˆ¥t¥ ·BCvømìT~ï‚C›~©wùp&m·Ôk–ã*?î´ÉŽ(¦ÒêßÁÈS‚žå05 ξcÔ…ú”yª©Æð^Íyþ…–kkær|}ijcõéš ‘ µF‚æù—Ôs(Çrqô1„¼;=Fù;ÇæÀý$$8x—ï^ËúMçáÐô«2¹Ø¡9Á•sOoàќוõ‘,¤œŠ—•ËŽ¢;Ú5çÅuÍâ(eˆU„ÒmbæüòÏ[†O9S'çÁ(4q;kÆí4*i5ssŸÉ*ûµ2¥.ÉÌ +Ë/&°Fr±YÊÂ…ýæÉ)´… e&sßz@.Ó/æ= qßs„´£h¶ècß±ÇJ!QBuÜYÍùÓ¯"ÆBj¦ðš¦i¤ ]ù°šñŽò6–\TüÛÕ¹C,ÊgÊ(ƒ&µD=%\(iÉŸû*þ' º^ØÖíÇ/¦oO±¨÷8è¸?4Sî -„¬! ilB8"ßC9Ê?İÐ-â±ï éŽ3¶¸t~B4̘PΆúQ¨Æ/¸)òÓôüAR4B™ÈGè{y ЄM™[Š× -eA ±ß$"—¿$¨Ø¢Pp[ny´hû\«–Œ>x`þå‹^¸¡{ÕÅîY¾r^V퓽«–”|âÂ%xûdQ="­ÚçáD^;{›[@ÛÔ"ù‹Ÿ¿O¨ê#!7þÚø1€\¨®ƒÙ-w\Õ&‘xeœ1ùJ0süA·>ù"£€,Å}. -Hú_ˆÁ TÈLÿ ûÊ¿N®4B)zÂj.Íoï5†í*w ´I†ñ<‹EÆsã:f¼’óŒÚ¿êBµöCN&;ú2=TAüI3ÔqñSr!q(PÏ"Ñ–cÉo²eJÉ—ì^Åó<Ö’½ç˜,åÓÉ™Ü>ØS)ªrqWÁ,edy ÓazÈ~Fãº>q?ÈEêÅ«§êc¿$#<âÙ¯¡×îFŠðì"ín*››eqޝü:‰ÊÿŽˆ¥‘¿àï·;ÎÌMîÆ¥#yúìª~ -ˆR]ýëÌ_¡¢“‹Û3†1Ôï ×­eN;1ÆP° %—UÏC¨FÑWZzdɇ©G…I¡Zˆ¡Þ¾uzsªkR3Ïe•\u ù>••fy ÿ²f——W:¿R^$1 Ë!ý×Äù¾2òúÅÕsÇYßÀ«Þî»î$pÔ†~Í9sWÀšŒ9³Æ5Kr«|¥£¹Lû·Ðkòj|ÔËÞt.e Eñdÿ5 -ÄM©÷ã‡ÝM5[¾ 7Uhý† ›UöR#åN¿àkû…:vC–»m_ÀŒB×òñ<ã´HhÆc!”†TdÛ™$5¶ÃÂH¯…°+[C/½Ëûщ.¹)|íŒ_+.2÷„_ ¤¨`…ßÅ<¶~ñ«dÐZÁECâ'Q W -udµßSý#„G9Ž[ŒðØ©1BË/ND†Jîp·i½²è^)éѬjòL{ØXÒ xÝw‘ Þw\:Èo®â¡Ô·ª Ø'ðKß)°%aÉ íªHAœ½ËðôSË~.[B©5…ÉÉS‚HGíÚ«}/U.ˆ>A‰HÞ¸˜Z*xKMÍ.fž>ͲNYijïÿÍl@Àƒ—þñ‡\öÞ³fÍš5úßþHÓ÷la9z¦­AË1ðêµ6¬˜jw¶¬—E(ަ7üKxõ]vø—ð"Ç~ð/á…zù ÀKxÃÄëí*³ƒ@¸–ŠÙA \˺¾­áZÀÿÈ¢/ü5ÙKùÈ_“½ãMöîbGþ -‘©Êÿ¼½QŒü5Ù‹µïMöÂ.¾ñ×´gšò[ š/öÌ2¿hÍ{F<ŒÕ ùbψç·4G{–ªs7ö ÔÒ7þšì%±øÄ_“½ÄyÊ_þù¿Üª<ªüµÿÝ^ìÈ¿÷¿»Â »¸ð¿»Â »¬ˆÑyЛñ”ß7þšðRŒü5á5¦W÷ú{#ú뤾Àdõ×I})ÆkýuR_â“=Õ_'õÕ»˜E1ÉÞð×L,ÆâMö¢÷‚¿ˆaQ÷Ž€¶‰,º2L|z~oùý¥¥“4 Q&ó†îÖ†g¸ì>¬~ÈG•À›Z«kIŽñiéEtÄ,ùÖ¦üðÒ™”ïdóR~vUƒÙM ÑÀ¼Ä?×_Ζ= -Ë­à‡¨ÜI3W¥}Ó°ïrA¶'b±=ªá *÷ÿ||›Ã{›'åiè©k®¬ÕK×¶°–mEµ”°ÙºLŠA+4{©7¶";m -CÃÛ©X¤kuäÄÂW[¥¡Še nA -Ëß"#1ßgIà4sHþŠ…ïÞ±x¿€¿Y.ÊÅÌÇ „¶Hc]­šôÐVÈ@ž9"êu^÷cÆÝ4Ã׎§5X»^×C+õY¾Ú­,‹2¹‡Q5 Ø>¢à€0.-_ÆÿNÂi«d‹m íÍ×ýTF#§åëç”":tÑЃóO¸'¨ÈsÙzo’Ê®}§] kò¨ÂA…ϵ?ËŠV¤@¦X…sÝUAa^‡/Eá1JŠ\r* ¹d‘Ï -ÃúYF -¾vÒR°Q«Ä_)ÿw:„ýú Øïm(”ÕR^,œà4âaRÕ¼X_N$%>;‡¥NZ@¤1¸ ¡\¯ŸòÏ7|ƒP€=ôöªL’\Ñß|ü0ÆB¶T›<¶&Xa%.`ŸÔŸX•ÍQ„O“ÇÊ€y_æʾù<›3Ò¢ôr>2¦X£†Ä6$L¼å棤f[’ f›U8‹ßz.´ù2YpÜöu¶¿^û -Å ä\a¦Õ°\úþÜðÓbKºl -!£—T8Sô 6äø)p(zEÔ.ÀK1Z1à×ò”;™êÒ›ˆ´`CYq™Ä… -ék:|±wFGú/t¸üÕ #ç·M:ÂåCGãl‡ÞSó{h’R«­ÅaEp3GýAâ’%í pJc:÷!4¹¨QJÓit^zßÊÊWÖyiÂóä uÏñÕÅ[¹!¹‰®É·½™Í€ôgfÌè$ÒNÇ´u1ó Dô•n¸HˆÊ4 -ߢ8h šDõùs¼#Ç„Ó,RÙµ uZN8RH½Ø\CþBíjgô%hÃie6“O‡…løòª VþÜ›ý\ÛIƒ»ìb"G쉖DÝq\ó:“íæg þMÕ¦ù«ügG³/Jïà¿RŸëÕDîñöÕ°"W «ɦ—Eo~… ˬ'îˆÄÒY¾êµhP¢°Ö_ǃíðRÌ¿ˆÿ‹d©„´u¸l.³ôKÏ;|SÞÓûi¤Òþl&΀ÉOWtäá0fóüPr0°=•ì§»>DÙ,€ˆ×b±[÷¤|häS÷O!Ý~ß]ÒÅÇñפ¤'.­ôÝÅÍT1Ìt=bqÙšy¶cšÁÆšÖ®öÎ#¸¤©nãì‚£³d©cý‘:§ïÙªýeá¼d°¹§Z›+c`éÎt !a-MöRŒü5ÙK1þñ×d/Q~Ÿøk²W×1àïÇbíXèz($Ùß6º -q—­c¡ë¡äeÛXøÏPX~§/Åüà_ÂK1?ø—ðRÌþ ¼û'QþmáZp—­áZ´.¶E \ËÙeWÿ0Šÿ^ŠñZ९õ× ^ÍÁz©¿K{fio”ü5á…ìûÆ_^È‹oü5ƒÄX¶ñ×½=ƒÉÂnÐ|±g˜}›AóΞq+s¥Õ ¹µgq0½/dß…ÿÝ^Ìþïýï®ðRŒÿ»+¼³à˜‡íͦüžè¯“<]<Õ_'ywá…þ¦6˱x«¿NðRŒ×úë/Æâ­þ:Á‹:fاñ‚bÜøß]Ý/L|.ü¯î~[,›˜'"m íÑC?¡ ÀPœjï6¼v›²8ȪÞàª5Ñ:²@* «ÖÞãCàš£ˆÖ<@XøaÞ-2ŠiΈü¡5:2F^ -cPŽ¢&Û@úúOŒÕÕYgÌ9ʦƒ$¾¶d!A,œ -Ûz.Dúþ–—¸í¯l‰™8X.¼ö%’PÒ}8±\if$š -µ»¤Åò£ù˜û•96¬G‰Ô|I†R™'ù¸œiÀh_ë²>ÕwÆöîðàßîZŸ£ûÍád!–TÒåhf$ôèhœmÓáǘB‡/ö2t4mÒ{j~E(¥-aÈÿ†V­=H\²¤í&§1¡ûœaÔ[ÝòÜŽÃä%¡¬|%alå ÈA랃2{«B ÀÕÜDë ÊmofmoåáœDºœ+—w‡ƒþز&o7m®-Åxí‰,Åxí‰àåÿ¡'‡_™é6OtãÍL·y¢£ofºÍÆâÅL·n¢{Qaüâ¯É^ðɾñ×d/*¿_ü5Ù ˆíÄ_w#jòš¡ÃÑC›,‡FŽ2$Ítä%k ²ÄâóÃ/¸ºœ’eW‚”˜'ö ÌÖU‰%(OŒ/#ßéxÉ.Ìt›áEëÅL·^¬ýüKx¡‹­xÿ„󦽧´M \˃ÙÅ6„kyÀ¼xá°½Å×ÂK˜ì©þ:Á Ù÷Xà%±xª¿NðB^þØ{{f(¿ü5áÄ|㯠/ìâ’¿»Ø3pJvƒæ‹=£˜ƒæ‹=£þ§½Êû‹g¢è'ð!вQ[DBÔZÕ¢›¥´ÕÇòýß;“Ý«–âŸü²Lfîœ9÷Üs‰ƒv{f2yAžŸ®½ÐörþZì…Zy2þZì5\ßžü.÷²g.â8þa³{pÇñ›Ýƒ‹8ŽØà:4x!}ëÁ©ä×3«S ¯aÖO&ÅÞá¥Ð¢jôk0ôÉ÷ù{Òù®¡“FG–p@HyÓ%x¿è‘W$ã5åâðÒmP¼Íå¾G@ó6¹¥–ÃO“®´“Éêe½ ë$¾/rڮ嗓TA©Jñ޼ÊZý±<ŸÍ"ò©aóS¯Èæ6f,6Š|÷«ÌðR»K#CF¾<ΙÊS2üÇö:‹“ñ×b/dåÉøk±3ù$ü}Ÿ[ð"MÞ·Û^±ÿ¶?¼(_öíßö‡r ÀCËÃJ_¹^ –‡ûM ö—8†¢û@ÛÞ%Ý(Ðúù¶Y¯i6MC €Wu'1øY i§ðÛÕ·˜PÏ>Œ­Õ;¶Ã1þH!Mn.P™Týøo›4Á ¢m¥³BvÖ,ÏèœCýTî%ì/˜&‚bÝ÷ÍK÷‚jUJjÜUWW¹ÆhöÆü„>”Ðò {Þ*ž&ÛôŽçr|nô®BH@ßUß$öjPiNhTÏ‹ðÛüÜEˆSrØqÎÝ@sÛØˆ&ÓÄŸ.‹8´4sî öáWÅu‹‚òS ·V-]BÌ -³Wõ|Á‘ƒ ®,Å%Œ_ÏÓdÎ’9|©‡œdDŸò,x…KA4‹D0M.æ`rûŠå cÆ6àoZ¡¸Bî1ͼó -ÁWm5-¿ '”"9úÎ]4ßUŒt­ü0ï“XÚ18N [äS+oÙ«NY@¶|×ÏÑɶ©Bªæ;óþ“ø^Ë­ØWyårˆì¢õ{ËÅ%O}=KŽ‘ÄߣÚÛ»J|g¯Úƒ˜íÝØ›Ï"°rÚ;+:ç&ö­È;ÿà Ê}ãÞy™˜\½XËéîý‡"d{*ÀF¥Ò¼ú–„¬’Ž ->åú†ú*:+v±ùŽ% -8 J.ž)Á4Ï'ˆ™7x{cޝ:l-œcKI.ƽX¯×*CѬ€kûuuê7$ ò¾§6Ã¥EOÂË)a¯bȼqŽ•ÜK<…nŒuN#WTŸ ¼â0±ÙQ¿ëlC–©h­}Àúªöˆ/­¾Ô åà'ëB±„¬3¡×çb%9_ŠÝÕsWóÍ ´VÁji Më lŒÖ¿Y?Ú m qk)bhË< àáµCnh .ênðV1ïW.fí’ùÖ›Ùh„bªÑd’§ÎÞP+¨lÂ$FK¤`„nhÅAsZ‹§å†ã“Õû­©ñj0q¸Í¼Þ*E9M¿eJÉ ªoýZö—ŠÒ’>›Œ*‰Ï²wTiB—”8k ‰HU¾6*­üi¦ &Bû0ô1¨ ôÂD…Àz ‰>p( •SÿåMŸ¾—ÒæÑŠcá2šULðwÕ€*m°¨œÔïÌÂK³?qÉêW´WäÃÌdý}ñ«W‡UNa&W¬¤V‘n&W¬$Ê—˜Éxq}qì½ 4…ÑÈåHô!™:’V½^ö:÷ —Šî Ò¥:›‰—9¼iÊ9õñÉ - g%M⪃ÖóÂ^y -£lå @tË®±¬½Ü{¬4Í6³?-ÍtJç|—z(ñÔK{lÈfÄá-åtìÅô–!ÝG^ç(¶£÷kÁ®}ºà'Õ®ªŽ®VAT%δiMÎk›LsK¼^¯†{Q½-øô„1ÐÂYÒãÙ¡×t§ã¯Å^q:þZìÕ«ØIøk±WÓ±#5C¿¶BÈ)­úµr2yßföÜ‘WXk<–ç³YD³Lû3ˆ;¾»Îm2ÌXlùîW™ƒÝ¥Š!#_çìës†Ý ^¼Êîÿ^c»üGxñ^vxx™J“¤PÛ*Ë(ÿv8XpÛ&ËZeWÿàÍ~ý^qlý]/pìÈú»^{—tý]§¾¸îU×ÉÞËQõw< ÜßMá ÊåeåV8X\Äéøk±×EœŽ¿{áôÉ_oš\ç~]Ä!þwW÷«ïåþwW÷‹˜üwÿ»«ûÕÝÅÿüob†ËgÌèJUR›‡JgRÿ§×àCúŠ{ã(_¼³?ï»éî°é¦ûÑ0 ÃA‰ù%”eÿC¯§ B9 -4ŒÔl²ë²ä\¼T³±§!©óüþÆ­¼|þKÀ‘<ð˜³.ZHßM%ƒµeÚFgMå°ÆdåQ¦´»¾§B£ Z ÚIGnH|·B\“ÉÝQnî~òË@ªÆ?DÓ¸}“¾B˜§†¥ì/6N²3Ó^,èF'ú+¼+Ýë6€ÿ/(ÿ>ÿ^ÈÊ}þ#¼˜É6€ƒì+ç »Ç@æ@¼Cs›àjœ‹8Äï*¸{=-öºˆÓñ×b/ò0§â¯Å^Ä1à/G'có×b/Ê—Sñ×b/¬rwmáô*¶Ñ#³WyCçr*þZìu§ã¯Å^MÇNÃ_Ì^,è\Žá6à «Å?l†×ì’ô›áEˆípxÿÝÕýºˆCüï®î×Eâ·ºßÈÝM1-²hØo@ÍMYæ²ó…Ï×Ö’BrmÞ@êHÑ'8”­­%‡÷éŽy8-´ŠEª¢?ÅŽú]¾×ƒöi©TŽ$#ƒ÷x`ŸRºbÆÑXÖÔW þhÏñŒ¶ùøÞ¤ÀK÷‚jï,RRãz§ºï²>$ÔÎ2”ËBs9‰¤85ÝàÙ×$4›ãNMä{©¡ e âS&“à6AWäƒ~3‹âÐÇý8.‘‰õ°$'XÇôOZ¹ÅžI¹k«È}< &¤é}áù?ÚËv)m -ÃW°Q‡(!!+iK5Tp°Œj£ŽRGGü{ÿžýH6L—&$›0!$yóî³Ï1ÚmñÕà¼ß®ÛFñ®ÌºÁÏå:«—íò@hJâЉìԒŵ¼Éñi du=ç>]Œ[žEMëmï¨åUflÚ§ýzRs-¢Ãw°z.-®_böïü $:Æeñç‹øÉá×ráþgÈÆ˺5[¤<¿ƒ¥ITÃíÈX‘bFâˆÌ+7ªÓÇj´rNJÝE8¿yBê.ÂùÍRw…Ãèž'(þ`­·ØÝC÷¦ÂGŸš»µ_V%ÓZ:]g~=݆Ÿ•¢·$Å¡¸˜®ÈXØÚ ßÅAuW´ºYœÚ½©û!ãßö÷9þB_ ‰H.¬Ï‡Pr¨ýv]*ñ§&c2Uß³žÍViß [b‘ò7}HsòÛ!zDKÄ×þr±¨·ïi©*ÑÆ‹‡´¶î¿ {äjÞ·¨D4ÇjõÅ’¢—d×(ùóê¯l/Âùõ7žciú»~\cW‰Ø2k°WÆl™Ç5ö,k6û)ê&«%v‡ŸîÌ~£ÀÿÖó+ÈCîÛ ™ü˜ X±¡c<Ö‡-“­ا_kN/#Lò€SÆ ‰mpÊxá*›üo¼³*UÖÿãá€ÈŒ„"3€–ñ€ÈŒ‡°É°Áéá¯*^qüUÅKɯ—¿ªxÖÍ_ÖÍ_`ÓÌ_QÖÃ_ÀÆã‘(ÇþÊöÂ{É­¿²½à–›ø¯m4Þ>JÿMj¿gñߤöK×þZÿ}`LÈæ endstream endobj 216 0 obj <>stream -H‰´WçZê\½.% !ìºÒ ô"ÕFT¬H¹ÿoöN àÇ«ž£çOØufÍšµg6Ó§\ºâ_rj´Çs&OmòA»X”L;Ácð“y{’Ì‹¢(<ÌÌ€dÞÖ%TŠRTÔo°Me%š°®ðì£Ð”˜\¶;ÀU%嬙’¶+«åR1çHè?q°¼û®dë#Ù£à ”sA˜«­¢4|®’Þò0qæÔB™†ÅW+¡zŠ Œ>ŠXf3¦ÚçÄHNWg\'½LÝ¿2ü™¥¼q™VìÁÏ,:´ŸxlGäJb½³!v«ÉB¿‰ìáþòæ³0?i´}—}XËØC]b›• ö%-gÛk=ºnf…ë‹Ä½v¾ Ì­‹iaCDÎêöm­Üë¤ëÍMΘ ƒ±¢½¼UVxbŒìñ:éNLêa@ ÜäÅ…Ž€f _}„f%¶³P–*Q€ÃOÃת -÷™O[KYò7"¬¢ïðu¾ ‡zN‚/ØM™š2E™µH¿‡X^¯Âx9¹ñ°&ÿ%¼>êþKx}Ôü—ðľð·à…’³“þË@¢D^ ú !·ÈzBNÄ:™”¡uèôk.ºr¾ÔŽ>O¦´y‘¿ØådNËÍYJ éùWI%1ê‰ G N±¥D3™(äs̬m§? é‹yKª&0ÔÒž -°›oÉÜòµ@@ &g„C-‚·‡¬8>)ðnúôÑ©k’r.; -¢¿­jä Çe²ñãc°±ô¢&íÀãÖµÆ`/8Û=„TLØ Ù»'L°¤(k½¬&kËvY´®1‘¿àËpš¬ï MBnÐ/’~!Û^¬Òz«[;¼¥I®'£‘É2¾Dï´Æ¢»T?‡ÇŽK¦ËÉ´Ÿ)€â ÂxŽ<‘†ö½ŽJ“J˜ ¬Í«°qSÁéàðì>{‹ph#ì(6“­¨>Š$ƒ“h‡Ä[=v©Ä¾È–X¸¿70³"¨ÔÈç1œ*uM™S7%S›b 8MEq\6BÄþ´ÂeÙ-™›Ë4ÀÚã̲öEÜÒÉ̦C"ot4óíX‚BåÔ¢ gW*®kù!è* *e] £Ø«:FR—×yØø”ß-§…‡7.±ÿ"‘±;êL±ýœ#£.­óiWù÷Fïºáúdzç§ñ´Cçy"Ÿê«kA{gÜb'"¾z?>HS-õ¶PÞÔ{¶ O,œˆ#¯If1H’"k!d¡;ñQ‘F½y®Ï›²V½I‰“÷€!Þeàïõª€üÀO§€99»/™¶²Ux_ŒxÛì¤ úó¢4ò'«À»uRä/üÍ–HÑl¶|!2—éG(çýÝ=:~÷_¬Û§÷$œ£°B-šJIlà^Ç8„öô@–ƒ£ð-‡îj‡ÉŽx™ØÆÞÃjsÉX¨“»ëXE3ËÆîsåÔ™ O^£I)5³é½bæÓVô?y ‰)-Ð8`¨ja’V_A -„œ§ŠÉœ‡ð–œâæ> -P¥T1)…ü5¬°5~KJÊýÚ>j±øÎSÙg}n¦úY%ñ½BÍGýN%üy¡æ£~§þ¼PÛ«ÆT ¯SÀ§g”#Y¢bOph3ýc¥5K³\ôŸ•2ör©f&f–;o›†}u홄S=ˆÕpú—SðUb Ê^ZDt¤ñòBkk¯=RHúeè&?d/Ë{ÛŸo˳¶â•g¸ËÆow•›[˜M+ZOØvV=X¡I»’²4…=uþÐÑa"}’¬üøØç7³âF’FµQ<ùn,ŸN"j9:9ù£FÃGý;þzìõQÿŽ¿{}Ô¿ã¯×hø¨­Æ?i4|[Òh`&´ßh4ö«¾kÝ¿•Õr©˜s$ôŸ8¯$%¹ï¸)@¥Ô*JÃçŠõÑÇ(†·ùrµBw79ô—ðú¨Ÿtrß…òåÜwáÅšü^¡Ú²ž<@\¾ˆ˃ú†@üXHÍÿ•@üX ÷¿ˆSíùô÷¼PÃü²þƒrÿ—õ÷¼ É¿¬¿ÇäÁ½åõ÷˜<^ìWõ÷˜<85Ì ´Oë‚ÛÞ²¸…ãÝøöÑ©k’r.6œÐÞžž8Y¹€¥—m1M\k ö‚³ÝCHe¹íìÞ&XR”µ^V“µe» eÜ †JNm*Tpº$bh’tQ’~!Û^¬Òz«[;¼¥I®Ç­Yäp¢Œ¯Ñ;­±è.ÕÏá1…a—ƒ¬¤ýLoÆ{t à‰4´ïuTšTÂN©9käUØ¸Š©‹àtpx6nCì=.âR‹uBÂd+*I…­ŽzdlõØ¥¢cJûRkì5v¸e„C¸À„.w# lŠ1à4™³>2øÓ -N%k_åÇ-|Êiè¡ŒŽæu|0– P9µ(Ãa•ŠëK~È Ò b9¤Ác¤ò„|×áF^çaãS~·œÞ¸ÄþOÆî¨3iÄösNb; gpÚ&E7§æ7¯û?Ùv• ëà€Ë²éÄ g¢;ñRé³fM˜7Æ%tǼK²N÷,Y³j5—;ƒ8p'®°äl·V–F½‹’0ŸÜ[âm dc&”À×UØÑMŽBaºI»Áe%I¹§Š&Ó²$6z ²åyã ÓK$ñE³ñ0è¡èêA}Æ;M -‘{D=;ÑwKvÌd@´¾$R礪Óº²–©a²¢áß@ŸaÜ>ÀåXè˜!n/¶5Ey?fʾ!kõýsC@<'âCH=¦`€Ñ”¹4HKrð“zw:'81¸{2®ÀZ4ùMI‹…›ãÇ óA]ŧˆ<óÀºÜ€½»ÜWø–£5»©Ã‰æÿ=ÆÃ™±\fMU{(ö -Øzô¾Î[ùÄfâ'±«-·iáEÚ;gå¿fÌmqÕ•ÓufA"²&ôŸ Õ¢ås–R,>¥Šµ+·Lé(y1$öùFÆþ‡]…¿óÝÚóôHöþ§™Àd&ó?Ú«½¡œ(ˆ~BY»²öi#ϰÞIIyUTTJˆúþ¿™»wjû¥â±tïÌ™3gÎ4^ñÄ(­oá aQPÃjÃEêæ: :‡ß8 •O33€‚á -¤㟠Á퓇ÉN¢»Q´»‹…²¼ñòýaÓËßh‚CÖ›‘x ‰%@Kg £¦äæköSçác“‰\ 9êMºgÞüÝóëLÈžbùŒt÷ƒwÙN0o'‰¹Èï -ØAP›Âú¼#~Q}¯6À¿„×Ãüà_‹LþÀ¿„ûÀßÂ; -áb£~Ìå[ø³<˜¹üW þ,f ø³ÞG²xX -¿µÚž1 ehϬք¦‰p×J‘/P-ñçµè­&Uê—ûŽ#jÑ~º21uó¡þõ¥xÆÝ$-…™Ní¼…¼?a Ñ7®ó™@¥86˜š -iEÙ++ùÄÕ  #(ýÒ0!Ý÷÷öñ–K¼¥¬fZ錚Y4«UG?–W9ù®w ©·î.ı1æ7 ¹$ì .áŒÂ¦¥²³}nY˜›úB’€X(à,ôçœ1Á0Ô"Hø ý’>÷¾“#è¡eÑ×Nf(a2énlšUQf’Xñ†˜„áÌÄ1–R·ÊŒû* È‰HBù*þÛ@bK©þ¡¤åÊòÿ˜àPS]Á^3ÚÇ.N1ø³òž2Kfeþ¢]™s !‹!£Ï‹×/ݳ¯¼Ñç÷aXæÙÇ%þ¯1Ã|ƒè"UK—¯Nííq´X$ÅLvPkåôn¡ÓKY­—)í—rW…)0U;› 1×khHqBGT²Ãk¼ÌaµgZƒ³9ýI1ÀSj(Ö@Dƒ™z/ä”ÀäZŸ ù‡,ñáW²çȉ[ k˜s£+ט¾’’mw´_šó—íg]sãaþ²ý¬kn,7þ«íçËÝû“…Ú!Ѱ¤_0¼N]pqÓøtá#TÄ¥VÒ&·C?¸Ë9Cp/wƒÞ¾†bLgó©‡1œ ¥®ÓDÙQS/“^ÓµåB^©E±$ŠÃÒ@W>[–†wzR-[K@Ž£Ó-ˤ#ý®® ­iTºˆ8uô¾œ~8†L¨/—›Y.Ñóo‹¿6{a¯Ü¿×±ÍšsrË -³¶aΩƒÝòrIrqÚó­,—À1VÇrùz°îö³.¼Da~½ý¬ / ö‡íg]xá–ŸüÞQš¦¨þ_<Ìñgyð0kÄŸåÔò{ø³©-Bäfâ-kSq¼+'¤Êò-E^ÖŒgµh?ísœ°N&§Yx–Ž˜Ïê´t…>\š{?ÞUwež+쳟îÈü…·l76ä甼Ú<^ye¤jl^5è…·LÅäLÔ×~!ÞRžZ‹fVõÅóeÐêVÄñíC^¾óEöåâÃSJ.õàÛ˜VôÀ$ŸèBŠê‡ÙÞ¾–šsÃKì㲚i¥3jfѬBH ÔòvÞŠpí"BT™¡”W3ãA¸š/”É,nW¨Øì§~©xCu@kXxa&Žù²BXG#q‚h‘Jγ.ú3Šqâ`¼ï¤gicÓ«@p´“þN&z€m¶*£ØÛ©þW¡ÄšdúçŸ Š1ùÿ2Ì Ý+ÍJs/x¢(ŽS²ÒŸ‰@ >Þ¼2çÔåRæ¯#ðiG0È`Ø…N]p˜Óøtá#èaq©•´ÉíЯw ]ÎièÍ z cêÚ©Pœf‘Míèçþ!;jêåaÒK«¡´åB^©Eq+Ž9 rülÍaÞ9 KIô-ÎænY&eRô»ºBJGc0œWqBt¬£¯ ðàkg¯†´»˜O=P/š‚›á‹=LÙóB"ž/ëeçç~Âd`môÍŠµ4ùLÙ;kaÜ„®´ì†8=J~ö­Ñ‡ÌÙ»oœïO$ Dæ/Ú%â#•«÷ëCê#;7aÇTºyûG{•®¥®Á'ÈC !&M°/¢â¢DP+‚¾ÿí™É†$üñÃI&ÓS]]]}`Ì–î“™$tÚÑ¥¨;¼QW’&£XÂŒA÷0ZY:öË[""}aRáZ—ÄjY{½gÔÐð"…ú~„äònþA¯C’{ÂÇæüµØ SÒÎøk±ßeGüµØ»FǶà¯Ó<>Ùç‰ÈiBLöw"rš‡ Wú<9ÍC¤#;MD"0åÏÀ¹8‹­xKxÉ\éà-á5»˜;€—ÁË#_Î/•èÈë³< Ú_+žåªr½@x–¢ü nrò¢¿Nð"óWॿõ× ^Šñ¢¿jðà5éB(Æoýu’Šñ[äjßgýu’Ä1Y˜–$¿ùk±Õþ®øk±NÙ-öb³±ÿ½sØÿºu¿ãÅÿºu¿ãÅÿºu¿ˆÉÛû_7î7'7@avÇ_‹½Ôùk=@]lWüµØ‹»ØÖþ×­=£¿õ×I}É>ëï¢úrøÅhSîpŠ@`M¨÷á߯;ɯYwpÀyóI;¨_ð/… FÓ±yLèHb¶wn»šÒô¬äÀ)úL*EÄx”E»y«^ ì_Fr­T-(å£`…Ï)bL®É—e¨V’F˜çS"úÅÏyÓÌÕ™Ó)W8eüháAYãӼ،§ÓÃSÝ^@܈JöIÅ¡Ë6ˆÐŒŸ?c¹ö_)(¿ø¯×ÒÓG¿Ýƒ„ų‚Qr¡D‰àÍbè¢2K/Þ úëP8Å8VVÊQº.=–æq`VU“Óó„6 »è%>Ç ¥¢3f1±:`e!ÝÕ öÃus-$>?&‹Êðš®*wúkÌ¡2äºy²föp8 á²Öl/Ÿ¦Fq¨ÊFë6±°:ˆAÏ%³ZÐR!Ç«¡ë³”}mO Ê£ÿú‘ŵ=YW÷íµ´ï~j¡º+‘‚‡ä%bŸ³nç T•r䥦 ÆR px¼DÙ]æÕP¦Ÿ–k—O9…KJ |”fó^ºiÀ+Où!˜Lȵ“1¼2®ƒ‘y>TCûÁ‚<ú¢1»•ðÓ}A-\‡‹õgå¥5^Æߤԇ̛yk"8PÝ­îÃäZvÊX • -| z‡NBÿઃ¯´KøóÈ)ñ§¨m·?Ñ›2VAir?Xtfòt] ¯©éÒ@°»©(v{ÒÒPP ‘µd¿—™´‡tû{5&è³ìºW^&a§WPßÇb‡ÛhõçcÙŸO]ôÁ$Hãp§Wpýci2e•Aý©(5F'€ ¹oU´$j±0F#»á(t¹)ÐÔá-¶æ¨Ìó´ TKØeÑÌDîÓ§ÍŸŽhþ&œ‡.(H#“d·!HÊïž‹,µƒ þ vÎâÎ ¹J¡ìqF'mâFŽ•_Ÿ^åZñ+A -R‹7¡µ´ï8©ñýÒ@# ¢‘ÿ$M¯ØíÏLÇ:f]Ò68„idß -÷ób¯„ŽCPIþQ”asØÂ²­›»×@ -Ñ|' ³È ârË6D8)byGL6 Qá¬Ô/ÑçPØÙúl¦eGå~Q.ÕoﬦFNF:NÙ#†y/’NÝL]J–«ƒYÌðuÃÒsòxZ¸(|\gVìïÿ‡©¤p݆ϺˆÙ§„\òÁ4`Ýj•‰¯EÃÿ\Kè.µ³^¶/üåÓ_¸„)Œ àIÄ‹íZjºàÿl×RÓE1¾Ø®5C/Ål9ö¢¡W^Í_‹½0‹íŒ¿{±ñ×b/ê•»â¯Å^pÁƒ÷ï&ÞÍç]T•›N¼›Ï»“ÝO¼›Ï»¦‡q9ñjµ7zsxá”MÞ^ìaܼ%¼X“ݼ!¼{‡–äÆ× -„gy0æÊ•áYbk³< þâÆ?LD·úë/Åø­¿Nð‚òû¬¿NðšnÜ7ýEðF‘cLZîÁȾWÿ°Ú=Ú÷îV»à˜/þaµ{ ˜•þABCZܳ=#s¥k€·„—b6xKxõéÕ-À[Ú3|Нúë$àa|Ö_'yÀwñUä8öG ü·gø.>ø‡ÕîÁÆdOþaµ{ þ¡ðæ^ŠñâÝÂK1^ü¯[xm“Åþ×-¼Dù£˜ójî2€•ŠÕ…«×Š:tö|Fº -â£Ð¡õøÛh*ßTo q…ß‘¢u̪Աý-¾TÍ[(¬(ÿÖŸ<;¹(³´¡!]¹ZQNShŦÜÏøÕÔäùmRQÏFÑjTW‰›#™ÜºüÐR° -ê1P{ƒDŒ*z_´-dA¬k‚žÝ®´§ç]N%ÊØÔ•øõu†>;…wí |1®ÖîÙ’cìÀ¤B2Sgñ^KŽàxéH-\ç -javq JÝ‹©ÅÐYS-TÊf ¼Ö½+ŵnå*Sì\5O9ÃÇ“æ`>M†GÇ(j¬ÉIén­I üW¼¢ÙjË´§ˆ (ƒúSQjŒN"¤—LÚU ¶ÍÚ4<î-ÚA_^˜Å˜8%lîDÃÅ@ -mñɶ®9ªp‰ñ!ü*iˆYQ©Ñ®V%pln¿Ô-«¼ö£0*ós”N3P9?"$þ§ŸÏS|Na¾•Jæ=‹iJâ6"<ÓU¬,¤»ð3\7×€Éâóc²¨ ¯éŠQ‹§°Æ*C®›'kf‡ó2"Ÿf{ù45ŠKÖmbamƒöKÚ,Ľ§åÑýˆÙ¶`M¨pr­ÔÖr¬µÖžZVÈNÁ¡;_Ž•øXöçÓ$Ú¡#! ‡l"|¯ð9.““ù×NU~`‚15¤Ÿ‹ÿÚãêû!vŒÝhíË‚¯”òQö(BX”-HÇé'@ýw)þ‹'³:ÙSw@öæEçWšÜb‹—À܇Ó?ÈõÅ£¬ÞòmÚ×þDœ—1åÐ'-ÒÛšÄaå«™7›IÐzÂp¶5ÃÝwdT«Ù)c)1âtÔ -Å!~m É™Ñä?¡äÂ噊S hBQV"ZèóËßP¸ðÚh9ný+ûøŠqz ÓoòÅ¥q¸ÓÃîPšÌ_Y›‰ñä>e“!IÔbark²;&tˆ&““‘3uxðמÌÑd‘§¥ZÂîbhf"÷iêúuK \>OGDöŽ” -4$·„¥.“<ˆ³¸-J)”«=å…Œ@íOÝ­w_yòR­ø• Õ­Å›pûŽ“ß/ ”xŠ&ÿ©ki·?[0£¹uS<9…qèz;ü× ' &;Ì~Oã4oø=mèõòkÞð{ÚÄ\<ÁîQ4¨R“ïp¹|æï00z)¾¥öRˆH{ˆÓ÷Àda0¾ …ûxÔ$Ù~ Ÿ§»5„2©â”.$§™&¡]Æš…äÝ8¬Ûæ›sšb*¯_’¾bšà¡š»š |"ØÜ11£N”ãÊm™#¿î§º¸Jb0ìÑ`ò¢ÖÿLJsúŽ-©:_˜óöK†jQh˜ÇbˆôLöf:Ðßa™´“½D“wÃ_‹½¨‹íŠ¿{qÛ-ö‚[Áß÷o㜋aÎî-·ç\ sãyœs1ÌaŽyçôa®öF/…NÙà-á%“…k€·„ÕËo /òü¿Þ;ä~ „gy0”¥@x–¨—õáYàoþa"þO{•÷ÏÑOa ‘ծľӢ›RKuõ–~ÿwæ&´þZÁKjÿ úk¯Îd˜GÏÙÓ?Ø»âÆàìÝ©ýø{÷]l/ÿ ‚ï…~ /Eïðžð“wxOx±#ïð~ðú!ûÉé‡9×IâñêáõNy y|O'Ä+7Ñ{Tþrèu8ò䯋×ÌFs`Þ0ê ý<2Yè(gŸ‹«Ö“½)g~[åÓÞq+_%†t¥bAnD1%òš(°_£—•(päEëzQNò¸ÊëRq]‘´Æ“<•‰ê1h™.!N½ü¶2¬M¯ÁüŒ DLŸ¬]Sf©‹ŠÜ­ ÀÕ>‡( ¨oß”¼»ÂoÁK¦×ƒê¯¼Ø‘«¿VðÂ)Ö_+xá”ïÆŸÂaìÔþõ×JÀ]VYòM3çwÉ>X¨¾iù]wÌ—i§T¬ì~&ßd6? .‚Ü…(${—kW“Ïœ=39Æ?¥dO ñ^üwÀ”¦T¬ô<”J¹bFÎWÜ¿*sQÉÿ’LIå„èå\Ó$4š«\ÿ{ÊUOé¾þ}”—áø¸_h†âq™uOËx¹Á‹Õ³z¢iŸP~ú…§`B*ÝóDÛ;M!χzßߨ») %9ƒ,O $ãÕªºXhñÍ¿;T–†õnëe ³Š)q_„SsfÔ%Ó–_e9§\§I8%#Géö?¹Àâ@{ìä§<=F\†TÁ©xÓ²2g6äD-ïÂÌ%ˆÕÅ2.ÚZ#Ú°FÍ“ÕÐö›S!‰#5b¬MOõú,ö½â$7•Ö_v).‰cŠ>ŠÞ\uJÜ•£b6+4JK\ýFÝXKø$.×Îl½'Ž—ÅÄæ{ ÙoÝ]à*‹‚“Ú¸Ð8*V»ÃÈÚÚÖŵaF- h(ð÷­Dl}áC/v¹~‚ÿ©(™ŽšQ2Ÿ­ÄÐ Êù7_F¬¾´Ëµ„*3ÓAVñ4; Å£êÂÓ„O£ÞC4ý¥Y˜}½""ðŸvBz䕨üЙu„Ùð¹…–¸'wV¬.eiàö–I…é4\d5ÎÓOQdxA«øTrN·Ï¿¾ÏAÁžyÞ õ8¾È@ª³ÜJ„±¡œ}`JD2Åñ ¿é3øQ8säZï*?Я«ŒËˆØPþ°lÉ™`gÜ¥ü_؇âW¥êÂ>,MåÛ@4µÄ—Ï6ZïÏÈzñ.œÕ+ÈäÕK06~Øgà,ñ–¯`Åk jä‘Þ·>Hö×V¾ +ŽŸÇoz; -Ù•nf1Ÿ¡›E”°£-ÿ;_k2†O¶xdaT‰‘ñǾvzÒ.Tò*ž¦k±i\û6i+¹B'{YÏÝU]e:ØÌŸ¾™l¶(‹mÿ#mD{0òÌcxÆ;±"ÈŸfO¼ÉK¾Âj»hý³”“¸x%&ûMðT¡&gp´]û¶22“z0¹ºxvKuíÃ$Lvqf~ÉŽ -=òVÏC+Šæ= z·xÂvêÂì?- §É̋ރ·òñé»·MÑÅ“Bðß¼?9¼ó¶ÇÁ==·x¥]n ªÔ=‡õå]YÈ–idö¼žü×BE§™Ë/÷Œ¢ ×£3C‘ü…«n™Xùîë>­[šÞ ¸fiʃeÌð:§ÍÍø2‘wøÙôYdØÅñ0^ÅpN‘@k)9ðºN´¹tE#KHbH‡úg·½sæøœçP -;‚a–;°Ò¹G—™5;(½¯ké¦MG"}bnmSd<9Ÿ¦*}ÉòCóᔘ(=—/Nž@­¸ãNçNü5ÙKÑÇã¯É^¸ËÑøk²—¢Ä_H‰9\åÇÙá¨Ã¥V•±#—È1B⣗MÆËï‡ËÉ}Z4Þ^½^~ ðžðÂ)»¼'¼ý]¶‡Wh´ÖJ §d+–í.?ÄŸåªògø³< ƒµlp™×=õ× -^Ý'P­àÅS«¿VðêUùGÿ òöîO9„°w}ÿ`ïð.‡ðöî³oú‡Ø±£Ø3¸Ë.ï /¸ñ]Þ^ŠÞ à xÇ3ch*3Ú.¬šNlU/ECýŸ³¯QWõÞõù)/®?j9¸Aˆ_ *UüzÕæSJ@w±õH”}µ àdå~yš«Ã{¼’nSâ¤á!ù.ôâs5Yqï¦!Ö ²„õ(‡·è“+‚wVk^q’›J›!¹$Ž)úÖ×8ÕKj_ü¼OâríŒí…ôkñyMQÛõ:‰†TQËÒk*VêæH?°ÿ€y.’âS܉B’s]fÃiAztGÂÈ<'•éppè'ϬY‘ûo¾2œ¢Ê\H¡GŽ,`7PRsft‹¹ª(™ŽšQ2Ÿ­ÄØ Jå4èaá¤VÃBJ+i‰“ê~,¤†0ãÏ€»ÒdžâÝ*fdòé˜ÓD¤Ð ôëšÿE]…ÈN?E‘ám‹TrNéο ÒÂgž7ÀÉñE$EWý(– vöoJD®P6U¥Ç>—èÜ>tãÝžhJàÇ@’Kû@0/ñ³¥}(¸­÷§Wþg¿ÊÖ’W‚àðÙ d“=T6äWÅQàýOÏLÄ [¸;7| 3=ÕÕÕÕ¯OìÊ%1´húÆ­ÙgÈ|ùÖ-‘ŽüvK\?ÅYÞ~ŸßÐEª0¯ÿøÔ´qÀ6:ºCwa é-ƒì…#>]zãÓcQH…X’+òo8ÔêS¤“Ú¼ø™’äòy¡Œ›— y7ÿòÚtSOÒ; ܹýÁ*zqéæÕ •µßíMþaíÐ~!u„„7B\Ÿb´³ÝIÀ ±‡ϰ¹ñKªœ©9©X> -Hþ·È‰’=&E¡˜çɱ4[µ>%ÉLŠ-™`Æ· Ôw48Í~ ýh' —÷²…Ò㉠†áßTâï"A¨œ£ !>qnZÐÆ¹Œ3 ñÚ‹Û[P˜†Ká÷þ€Vo -7ì¢[ƒ“É]ú)àŠtª‹âñ=LêH]6`æ©©ž’nÃBµ¥‚&W¢ÈÉ vˆ›Þ,§ÔâR)‰ _+¨›¤›S §IVk2NáŠÈBvԕ𺨭^‚W¨\~Q¸¸p H8t—à’ïvQØyÇŸÇÌUáD }â¡ÂÍL®hLg`mtfÆÈ˜ÍèÜñœ11nZ®Oæ.ÊÉ¥ñÁEÁ}Î^ν#ífPQ(’_»n—°¡—oçwÝÐwB †¾ô0‹N¿ NÞ—Œáç• í~[Ÿú¡cT•zº™LÝ´¥:K&Qé “ -o»tIè…Ì©Bß7±ë LÞN_„Éä?vš¿{‘&Š¿{ᔃñ×b/î/[òwi4Ý`0Eµ¿çhºÁ`ê¢öM7LuMÞg4ýs0€Q”—-Þ^8e€w„ÛàáEˆm°Û å8¶^ ö–pJëboy°œÒ~þáW{»­ö†&¾ ÎÁöfÖþïç`{sQ+œƒíÍE­lpF{{™nàþ†×E9ãþ†f1GüÃßð‚wÄ?èðzê_vðõrþZð’Éâ0üµàEUy(þZð¢^ipZ:›:hϰësTíÔ˜ì°þÚ©/BlOýÝ`zsQûøßMáuQûøßMáÄöð¿›Â‹ÜŶóÛöò࢜Ö_;ypQNë¯<àÉb7ýÝ¢½¹(§õ×^@Ìaýµƒ×E9­¿vð¢¼@9¨¿vò࢜Ö_;yŸ¼›þB"úš>ûÚ²0y=»mѳ0ñ)DCrŸÓª>T½ÍæhÛ üñì#+y_«Õ; É1þI¥¡‰ŽÁÿ]&XýEɶÒY%ûÝ<‡©’x6™Rè““PjÂLðŽd¦ù±ã–°Ç_ãy0ðû…ŠÔRÇýB5Ëœ÷¹„âáQÞ‚âY½¬UrU‡*ùö /Ÿ¡„T¼ bÁ䨩¥P"ú¿÷îÀ<NòVGæ‚ßLcáÿyƒÂªCQê‚ `r+õRH‰Ãøô85am´Aù1Ž?’5ù9 §$"p_²:ï& ý¨?ÍΦ -èÆÐÏ,–½â€yЬ¡Ñ  -Ž×8©˜ï -(§5ý™G9‚¼ÐÕVÓH!9 Vâ¯Ý§æ³ŠQ©•1IÿX«5+$–žI|¹»°& ØÖ§d5­¶üïsö1â­ ×y¡ÇØ=“øx;Æ–Ìg´ð2Œääû–[ÃbM†GžBÁ–'q£ó¬M «?U˜ÿø¨3½Rgl@MÄ!MUJ]A¡ECµ_,gš«E”œp_XËYÅ—bã)pZk5Pñå•ôuõ»9FýgMzôFŽ%^j$dµë;aR£°ø¸$õï^¡›Ë¼"ùß -ªôØ-Å¡W¢­Ò5ØXÿDU"a)Ÿz¬…§®Tµ'`|¸7#òWº§ÞÍœCY×éàKí· Œ*Øä„²äOðJQ7Tr8ˆö©çM%ö­ $ôe‚ëÅ&”YêË -Å.õ¾ôg A+]ù‡’™¯Ã¤X_ [ñrŒ—`ÄV.ºþ\»Og²jÉÄìáPûÀi¼òÃl<9ä>´Ç·/¤O!ÎT¾ÂÓg(_‰Ð9«Ãâø<¤0¸6þ’na¼Zx±åBƒ.ùcǾ«ÌðJ;UÓÜñsF˜>ŸäéQöZû¾‹ßQ¡ªz"FÌâïÝž¼Ð€hS©hÜãl>Ò÷˜ä¥-áÈ.F+&}¨c²Ï]…f®òŸ@“É7Ó@™¯˜yÝœœëøµ ÂÜÃõÕ_fÿ»¾Cº>ω^š„,a‰Å½Äì)·lʲù®z~ê¾*%Kßß©d_Mû/›j¾ôïÖ - ¸È³¸k ó<ÐÅ|Y™Ã([µ]‰6Þò>ÿ9Ÿd›Ùq‹¸Ã\×wWèqÝs™{l ¯× -Ž‚éÈ£‹2m`@7|y$-ÁÒZ°â­K¡‘i¬ Z³4""}b^¼©‹²8O®™–æ²|_½¯aó£çòí(ˆ¡†övt´ýPy9-öâª<-ö¢SÅ_kf1zå!¦kfY¨JǧkfÁyÙ|j;wÔeÖê?ËÓïï:BÆßùi]’Ì/‚0J5NåÞ{YsíP õòo*ï2â>C¡‹Ú -àá%LÞàáEˆmðð -•&Ë-É¹ËØ[@ÇÖ ÄÞò€[+{ËšÅV -„'t¦½a…±op¶7«‹ýjp¶·LþÙà¶lo±'a%¼˜Éø‡¿á…ì;âþ†—hòþþáox!/¿ÆL W_bÉ>\:“ø]½ý×Ü{ÔEräùþ–§n¾7hºù‡pÐ - Ý¥0acºy|ž®¿e2ÎíkŠv"tœº -U³‘Û«ûŒ›K·>Huº²) -÷—ôõ$gÈB™_Ð ÒFú ‘ -íŸÊ‘oG]\!1L‡.Y»iJÏ>HÜS~ê¾eT Uã ©@Tñ%ébPæç 4ìRé|ë@ÏXqx¡ïoðŽðº¨­Þ^µÀ;Âk2yÆJplQq¿¼ú)á¯/îbâ¯/täø»]{?æ°þÚ©¯‹rZíÔ—¸q¤¿¡Oô͈,d ¨¥‰($;ï8¿ ŽÃè ó›ü&[BôɃ¨ÖÕ\T|p“î˜Éi-’ê”IˆO½¼­û·åqHIF‡RWPhŸV^†þ´B¼=Ìö[‹~*Vò¾Z½ò:º|Š|ÿY„ÚÓ_/|çY8àˆ“{¥çœxÖ¿C·OòÀBJVÜaÝhãÒóTÁ[ŠÃx;ìÈ"žp´B» ˜Þ¬üÚ{4/Áb6¦s±ØÁP²ØŠé¥Ð=Ö ŒøÃ2Y,kZ‘ÎJ¥@AFZ -Ùô>Þ¹Õ¼|ϵ£Š7.E€ ºš ¶y|?B_$¡ÂúQä5Œ˜é·9ü NIø$>•µJžE)ñ<>9‡I¦\ÖÓTè1âY§¬Á޳"~föp°¤|•õL|ærZxùôG§-ôlä‰$ @úÚâº!u‚î’1\me,T¢½8Ôqõäç)Àæ#D˜l>ÕDq¨ºgÏ5ÌKÒPÙXñú$õ‰& Àóµ/󅬬žz!8™&˽S¦"«ƒ\L¾o BÀ¢Bâ°ÐZkþÇ~•®%®Ñ'à!²±; ¬ÙDfPAБåýoUwBÂjøwÿðÒtWŸª:çTUʶ§*Ž$­õ"N•!kƒ¢ô\½))×{>ÚWr{Ɔ•ää7¼¨¥Š€‰Ú"@kˆ¤„O!_¢âú€0sÒ¤Z'/úÊ'²œD7øÎ›¾‘(”ûá;âÆ¸…ó}É{%šÜZž¡ -å¶Æxbä߈ÏkÌ4”ðÄÅ4 63ÙX»¡LA§dа»{‰‡,±9Í%Æl¯N¨åfdþQqçtj•Ø\V¾Žà…<ßz;á%2ˆ³¡”úLZ`2ÖŽÂâ¤àjæ/ˆj®hÆƧŽK8ô²6'Ã}oNÎ¥_bXħ2x…çÃöDÃýÔ>©ó^ç{ù›W/N'“@æ 99Œ/¨[! sõ¡I+H±äÕ+¢ö>ÝÒ”< úHIjÑÎK¾aø—’|{Ž‹‚šæhNÉø´Ð.dHá Ú/5¦Ø!ú–é€&>]Aºrr‰|Γ€åöôOû -ß‘å2 Ùê-0 Ùà±ã ÃAãšÖûKö9ìXGÝh°Äƒÿû±-~lÀÇÁ+BöÛÓnè$ó„1MØN8OÓäådó„1MØœÚ5‘ù{.Ù‹åwõˆüäàu¨ÿN…ë›™‹È¡±?裂Ôýf·½ŽÜ·¹_Ùè ejàgá_HrdöMÞÕw´yUˆqî&õ‹P×Ö”=Õb|=‰‘×äÍüì-ÛêUDÂÉuÉ—½kä ¬r{þp©ÁÚì–†´|gÕñ.óOo2 &¢{+hõÔmˆb¿-b ž¢2.C¬W ö Óàñ­dÛÅ%]ä’b K¼3Z£¤OÚýOÐý—²åÞ /:Ø>^ª/{ Fg‡—d€ûâO48ù$¼BÁ6çIHxEãôÞ·–„W5Žfß"±^œ+-3á%5f•‰Ø/ÜeÀ> æfðLJˆmS9k4Tl«ÊY£q$/[Tî ´_,2á…¼Xg"6«s²%&b#¼àÇLMÄèÆ c­ÄãÖÂk–ý&Ý;º<ïÎß#óçƒïÝž+ÓʵX#$röã®i§h(§¹…´DewžY%¡Kw¿ž)ôâŒÎÓ IŸcëò·ÉÂ3ï ´À-óE>Ž´wïר¢Uèx•y.Ë„ -µh¦A¥z®fÆlŽ#]yô$§ÏqÉ÷í N±ÎDl´àù­3-ÜÅÔDXëÑ0/ë.ÍjfsþØï¯>YüÀï/áä#Mð,²¯G§d‰Øh!lN MÄF ±ìÆl"6Z¬d0âK1à·„W(³^¡`8å$¼BÁ¤’&aˆá xµ~Ùà#áÕjl_€„WŸÅöøHC§t^¡`›ó$$¼BÁØ•' á -¦žO>ZãlN MÄFx¡Æ¬3æð6y˜^ÓW£œÜï<4¯Û•?%oúO 5 ePŠ–ƒN-¥g#(“mc¶w‹êSZ\­ªöϤ›Ð'·”¼Á áRç"Nÿ½”ZØluõ7¦„\()áónA)PÀÆûå~)MòÓ§J¶‡»,8OÕî l*®•“£ùæ< cARÞ¸\Fâ¢3¯øcá-XN)É»žL'ìx¡¤æ2Lª6/UªÀ–ŠË{QÂÑ&½²÷yûãñJç§Ìì­e£1ìPÖ¡ìôýRÿµr( FUï9á-‘†@ÅGb”Ÿ2ƒ.)|(´^ÛwÁΦrÖÓÁ„þ›*.O9Ä”t{8»œ•_ÏaH™ÅÈWÅ9/„€¶ŒÔK -Üå,&…áÕ¹[qe:íVºÜ&¢ù³<]„ëÈ0SâTÔEûµ¬•}îÑmV5F*02p­³> sÈɰr¡ö¨C±KÏü8µøÏµÞçä¨Çˆœ)ˆ!“£\0|ùâb:Œ|ÿGÐæ”Ôô«²wx/wÞ¢Aà«Á©¹åà Gˆ6!óçæŸø1¼¹±ödöÑäU-Ý3¶‰‡¥n±àòùUÞÔ\\qÉ·Q02å¸ì ‹%ÈK, -iW²ý¬r_%Ù€±·ô{¹-Ò¯ Vc*«"Ás`ôBp ØDf_2Šë©}Ž Y7ØRÏdÚ:”´®ÄŽg `4 .÷9jO‰²£b-5¸óÚ§c¸ëûÃæ§Ã=öšÌY&Â3üßì ÃGø&ÃÝ=ð· ã«Ú ¸¤_K ûü¨ÒgXþiÌðI¥Âøæ±k†Ü]ÆžNÚ‘åÃô(]· 6ôEàÆM \<‚%îð bDk A´,$]¤¦¾B”ÛÁ’z¬í¯fƒ+p3C `»ü¤2™jü™|úáÌÕ'Z¹o æØ›_ʇùk<9°2‘ù S2î’gé>ž‹ËóuóÓ¤Þ#ŽÞÔ1™ÈÓ‚^g¸NпÔÐ;•I>stream -H‰´Wù^²@}ÂAV÷RP1­Ô´Ò—´´Õ\Þÿ»3€˜Ÿjþãd`fΜ{î99mÜãEïWØìÛGe–-_]õRø¹7ø·Î F×ËŠù[6¯zG§,?êrx&ûjŒ:šË¾ ðUX=ï*0îDe”ˆþbÝv†ÚÌsÐ¥@¦þ)ð½Ïx8]KJÉ(™˜Jù1[ÊÉ9>“r×Mb”bÙß¹ñgL‡–Õæ^MÀZ\ëœÃȹ¸63I-Ûô§ÞSÂ¥^»˜pü,bdäµ?ðëíB›Z]T—zCë®[³°ú+?>ª’b0÷\ˆx4ºžI•„PŽtx­g”(}¯%âÅÂq`ØÐKƒŒÇÚ}ëZ$ÈB^:…A‘†Äè,¹(PF©$Ñ‹ÁËqªâ™Âƒ+vånd8ô‡!ôvID ú$ýá\N"$i­a¬DН°ç–ˆ©—}^à™S ChßVfÓiX üõ Ã/?íM’¯øpdrà1Ä™N"øCæTw³Qái®ÁwyúîÞ^‚Ü -àáµ8æàá%Èß.ög‚@q<~ Ÿ‡4Ú gN о¸ òÞYši¦¦É§÷@³Î‡?˜L=:ò&M¿‡=7’“+ñùr¼n%Q¼®A-K”6´¿œD×*´—”¬6æ¹È¼êïÚñ§ìÅÂ7ηU-Ddò—תý.AJw‹ûcKZ½°# ‚Ñ›'l½8™zÌÆÞá¶É Ã*燫kAöÃÑåp!E‚ÛOt{n×þÔh¯°¿„Ï<°\‹Éc>aJÂÛcN4b¡SÙ—x ÛÊКZ“Î)Fx¬„¹5&–ʀØaIŒYKbLa‚t«ûhÔþ!Dx ^ÐäCˆð¼“÷aoöõ[&»T‰}4tÌ¥J죨*¿W ®f§_ÊвˆJŸ˜Tø³ËMúÍÃyl²²_.×1ø0‹© /GF”ãm¾·¯Á‹úËDx ^‚ü+®ß ýe€ÿ‡÷3 -:s\9)ô¼ã0çT/Ašõ›­i7z¹ä¹W˜1¦S%Ó×U梡kÆí³((9–br3 Íâ…J4ÆX™Ðé‰]ûMaM„1¡®6Š•'ÙFöýÊ’ÜMð¾Ð¡oÊýp=¶E¡^5ö°T‹¥ 5G·¼Ýx®àÀŠ5Äd£[Õœ“†ÕŠïN—û›·dòœâ\¼#¼¹À;‹ºØÿoøÃ¼¶ëÛÖDð>ZP%J•µA™_¡ÕãÔÿÕÛ&ÈÜkÜGzïN¥YÏÃv Û‹p+‹R - è Ïbµ7„± -ÖíÖÒ6‰PTi†Ï€É±»e Iû“xùLÀ‘ÜHKQèÊêå$·)ɹÍq¨‹ížäÜæ8\/^Þ-À;ÂKlðŽð¹lðŽð‚SÚ`þŒéÐÛ{4Sù÷2Á.<vãû™` §×ýL° l2y/ì^‚ÜÛ»€{÷CqõóÛËNOì£äÞ&Ø…G3k/ì£ásÙÏ»°Àx–ýL° x¡ïïk‚]À‹“Åï·BTxf릧ö:aKdûÒ‡ÔnÚÈôÆ['Ыçð®ýˆŒ?«L¨Aù§³åÖΣµ¡O± H[6eˆõÔŒùîÊÁÂg¥îU­ŒŽ$$<ŠOY‘möŠÅ|©rÅ$g s=CõrµrLR÷£¸6A*W¿k_õ¿­=H­…)KKÔÓÈ^JC‹dXè•ýJ%#éõhÌ’!Ü›½é ?.–r¢*`= ùѧŠìD»ÇÌR†ïÙ–£–ù1›©<òr'oØœb­!H¤6×þäW° -6wšUàΔ´–w,DÅâý³ -nq"› - -Ô½†Aâr ‡8šI]ý9 âñ4 µžÂç’Š1ªñÁ;q®”€ÔiGaë}80:îG·°¼þh*奧Œý†ä…7²FM1 ô®È( Ö+ûOŸRh¸‰œËþÔ9 õ†¾µ,šuUèø'æ}[³ƒÖé;“Þ(nþ·t`RA9Û5Œ/ÿÅ‘‡)V®sN+[º^à¯W>’èz°¸|çteª±·  ÏÄïS¸[cœNæ÷@C…2–«™,Ë^ñ¨{B~ì1ðÃú[¤0UÿÕ]ÑêSs -°£S1 _‰–ýAY7ÙöоI‹¬öGð^€Ã™G%:t¯Èþn£„ V쬼Z/ÔyØM†ÆœLŠê,c-J¢# ±¬Ôy ŠèÀŽŒÚü­BÅg#¢i°@ -¾Ú3ԛχ¬™ºPÃǧO¾®dTm@¯ó)ÖUäjA3“%²ú ¨„ð8X¡g¥Â¬`c+(¸/:CŽý?¥éçï ’’‚#cÁˆm„0aþÎﻢ@¶ª¼yú? ‚È%ü2ä+:›† µü ÚÙú·C¾ß8"ò–(j`ºƒ·é^X|,ìÛªÿÓJ Ðs„Uo¡®R†³—€ð˜¬#•6_`Iý» hž¸-S8½"Y-jbu:=±¾¸áÁ†PM'“ˆ›ÇÍ|IWéèS!á_j¬EÇå¤Qá\êLéüNW)f‚ÅZ¿û!¦˜–lò‰ŸiQØX7²&ÑÐ^̰~ÅTLÒ¶fUb€bRÒ#§Iôë½ ¢Ï…,è}²ŽÀÙge»+Þ– :¶]\Å¡Ñ_ä$zP®£3çì ÕšZîaN ˆš'¬âsùû¸ºVM?öçqu-¬šùåÏãê¼Èõý0ƒ7°}\]KSk>ù¯âêZš‚YW×Â*0ÙUž27Éóc¥^’:¯¸ÚaŠ!èÛ’hÉá¯Ã^s–Ãð×a/pì`üuØk3ùüuØ‹8ö9Ó˜²±â1°¨anYÙšv£—Kž ˜*cL§J¦¯«ÌEC׌Û;g]¨¿øY -Yd íÅkb‹Hì¨<€Õ6HWÅÊ“l#û~eRxa–ƒñ×fùž¿ ŠŠãñ„áóF{á6Écòé=Ð,¤ÿ±_ É+Aô xˆˆiH²)J(¡IETÐO)‚Šˆ ÀûßÙ ÿîŰfgΜ9s&cȉ“sSŸê`#3¬c,F‘ÄmFóS°¹¸@¹î8O$Ÿ–ãU>ò:›ï²W½ ¢û²Ñ\t3¿Mzx¦ºÍNÐ¥º…Î,jËqÕOw/~?ÏU¦‡Ý†¦õ»ÁýE ¤Ò!ƒàÓ´â°„¨%SbL¥WB*òÚ¥$ ¾'B»Áêì§•¼™>’ ÈÞÔó§ð~Ø^×üCx©‡ÙàÂK|òæÿ^¶Y¸†.úþ®’ªü©¿«äÁÃÿµþ®’ì”~®¿ áÀòàá·Ç_‡½~{üuØËüØVøë°—ú±íð×a/žûÛâ¯Ã^¸åü…Bt³ÌœÚ²à˜ó -«nCóº6>ƒ’<=ž3;ŸðÁiP©ij¼yæ"':Ùi:Ü7£…Ý';g¤hj( bÜ…EÕÈ^‰Ô¨îÆâzþ¶§Âq¡ªò9K»¿MÞ²CÿÇ7^"_º¯oó`ÝÓ¥/ úh¯”Òîõµ -i­Ø½…׆â -°1gj÷.ÄÊHv#ﱬÝÇIØ'R„, †À‰YXCê•—æ8,E»XþqŽ‘wX[¢3ù?¹ôÂPÇzW$£Y51ºä}w²…Úr#bìÆô°/!ˆ8µ ¤þÓExÔ®LÑÍLŠA4ÿ^Qö`„¹j²Ã=±“um7va¡õ”¬¬ç­k•nUöÔkì@].ëÎæ1HºrÁ-žUìž­¼@ðáÄ»Ã^ëÏrKÏ .%iT‚ÏÃãD®¹Xºûz%í`FÁ÷!y a08]¾¥Ø,gɳ¼ó>¯ûy…ݘUZ< F_Ä-æäÙ=ˆ‘MÒ\–ÞíŽë¡Š{ÈÒÈæÛôÈÿZÿc! -ic÷ [4„ÃR  šzþ\ -"ybêwÉý*…õn¹š$ob~© B±4¸‹Ôã3¡5ŒnPkÄ%œÜ…4PhÉJ¡,zˆëwµ¹l ³äPÏ—ËqíþB;¦q÷;­àûêïûÌaâÈÍñD¦½zb½SØ“1ÈGH'Zƒ_!9Áa|µ¯à¨¾Úüó¢jÐMåŠS}#3ŽlI‘©‰­÷X†N(+ñ}HøÍ „*ÿ‡PRæÍ eU ÆntˆÖ¢:à\V†"K_F+Ë_Ù#G€Éë} Œ¬|}ÄOêòÅ¡À§G̉ԫcRY>37ùô¾…}»ÆQOª5s-ùº¤õ§CÑë2e(¼ÇÄ:6Ý×T3(ÑjÐÿ…a„«;a1ȇò…‡_úÊMg§CÓ$§ œEÜÇ÷õç3‡%NÉÔι+µƒGPxy .L ­üØ…÷Šî²¯‚g"Æ€S„L>™I=`Gf3™•ôH>ýºOuÅ C¹Ond­8{*bê ?É1Õä4Çë·wvébìä·BÖѲ[uÂ$ž!Ýôe ãA¢ Od}ŽPû¸]%‹ùµáN€ -ñÌ´Åi!Âëƒûée‡“:µ®3¥#î fS¼ðöfÆ»™„ï¬îá3Váßã>ÈÝ„6ø/ †db¦h-™?:×Vµ¶õ.MRõÔË%µZéë½[Â!仯À¶Nõ Û8%Âw OågîéÔÂ=}©Ú–üÔÖ5;—ŪA}óí^ßñ‰óÈ‚kV+º÷%y ]ìµÇÊ_Ž=w{Bæ*w%½ÒÇ]c÷±ñ(§Ÿr‹ÑE¢¹“Y¡¤Ø¯gŽzqΖ‘†ÊŸE•. rÉ‚<ï ¢ ¸õ¢àg&WG:<™»*"BÈb uÎc”š™›…kg fd}$*ð>IU˜µ#Ôz.«°-¶Œ¢ßúßti½ÀuÙöR»þ:ì&oÆ_™|¢Ã@@ïÁŸÅ­®[±Ï’„Mf´°ûäxþfgh‹z‡œ±ÞU¢¹`ÿ¥;ç#ñ@ëwZ²›šZÚK%õq4õü¹DòîCf¥0¨WQú*Z¤ÀˆñÆtù¨=Îãà\®]€5:FK_D ͹ˆ¤T|Õ^HÔ +µû¸ÉA³j¢öAÏ eÄ”TC±%ÍÈ’/´âI.Gr^¾ôfÔ*ÚíØô§C™ºÆ°cÏJ -ÿ&5ÿáêK»w²v/•MbÏ ³@z¿ñSn¹ü‹úˆŸ¡ö%S t¡+çŠ×2°Åv1ëîÀ›|–ìéŠužrÄ žEx­›”@ÊeF‹\KÔŠÍr^?˳®\ pð£JSn˜[`_„Äõì^·pï›¶y­¼¨•H?¢ݰëÙÀ›KÁÜÏ¢ëÝÉnH+VÿíÓg”¿R¯N|†ãeÅ1ë@T>ÄçŠz! ¦ âàlê$K½•JzÞjdGÔ}ÃxÊæà(²F¡B4¯WpD‘X\ÏßöTCÈ^ÖÔÁI-¡ßª1½ûð”@­‘¿€qiÅÙQÒŒôb&~ê„rŒ?íšÔÜœ`@dNÉeØOÆxLèD¢ð ÞЫÚWˆŸ¤½_Á?»Ü•ÙT^ nÕ7²4Ñf7ãÞY ð<¬ ÄçÂÔòc(á7'”•$¤ÌÛú@°oC$¨Ë'¡¨_b"KŸYâ ÈŸ2&¤õ¤Z“8aÜÎ"jÒZ±[öC\á=úœ Tšîkª”h˜ôƒJ '>a~ŒÊ슯>š`<ÙÐ4É)(g‘M•ãûúˆó™Ãç(ejŒm0Nùèá?›aü…aÏ»âˆíÁP’"™>ûȱ¼hð´ž/ïøñáC#5¸‹co™·š+±ß kO\Ñb$c«Ý`&o4Êuå6øß)mË)©•³Wž´+Û^µþSÏîz`•‘‰=¼ˆç¹ÃlpL–8Nœœ „ÄÀÚÈì¬ýG{•6–Á_°?BXvÙìIqßA„÷È%„x9‰Èÿݳ'6âX_D3=5ÕUÕ¥·d´Ô¹€°üí30niý¢Å ‹Zb5EÆ™«oÏsázر)PøÓ)“|$ß}ß§µ|Ôí-ù¨ÜŸGõàÔ8&Áˆ¢5w´-y:¢8OŒÖ$7Bÿôš"µ”ù‘JŸ„TdÙ¥C‚ŽÑCß™â}hEÐ÷Õ»D?ǯóDwä¯É^-„¿&{a—ƒñwÛ?é›9_Ýå0IßÌùÐ/KúfÎ×3¿s“ªÝœJÑ6“ª€FìÞ^Õ‘7xGx1]lðŽðâ½l° ¼ñI: -¬—ŠÞ@ ö–ŠÞ@ ö–@ìwØ[L&ƒÁÕ¯¿¼#¼Æ.Žé¯¼DùÕ_;x1õí˜îb¼™Ö§Šv&?¬OíL~XŸ(Ú™ü°>=àí»3o›¼#¼¸Ëï/EoðŽðZrò&“Ú^(Úiýµ“ìJgõ×NHNŒ™.db –Xâ´ûíˆnÃUC²“¯ºævMŸL¾¢è^Y¨)7ºDZˆŽýùLFËžýÔ2' -!Þ‡æÈXIYˆÂ@KH¥û¡ x —¿‰”ÄØq«ÕÐy=^]ïOëþµð0)7w¾V>ðW3辬Ü+³bepˆp±˜ŸÎ]!íIôq×Yñ)ÖIC\È0$±^Åëò g´ÎWÖ~þ.Ã×™¨†Néêaw´¶@x– -ëÏÆ íêŠ=Ø47–¬_v+n‰cŠ~U-ͧGrAiÕÍ`ç‹ÐW»I-=+ÝZh8/‘]p•©¡^9hWéÃ|{Á?F£eÏi¡¢xãÕ*(˜”Jm&(=žùÓÐØ“:,;‹ÕØMkŒï䘒ñÇ«rþ2IN™á-R¼"•yP%ÖÏS›!Š–{×/%óP>Ãß«á¸â­ß%«WÂó _–Ž=g=LÌ>+±É»ÆˆƒzsUpÊô›¡®Æ ' }u‰dbJ›ˆýK4½ï \®oÒC°N3gl…Ñœà÷$¢â¨ß[Œ±Ò”Bnÿ§R^#SRÊ…@ èŠk 9&……ù±”ÄüLR±æÜ¾"8¤_Šßêdñ±ø2±ÈÚ¹ì{ìMU}½úô¶¯AË…Â~­íc_'¢ 2ê1ÔßÂ.*ïTMNNÙøÔî#kÉfº’¿Ò.N.戻è‘ôîhS®£\æu,¼¬¥Ú\iF5´r0ð¨G[6xå#Š F,7«ÏgÍ x"¸êWJÙϵI“¡ºîêŽ+ó—Šâ‰¾Jp/…ÛôDuûlçf¶à¹Íwóh–Áf±PÛ2‰ñ2Cº’ƒ;—¾eù¡þÐ ²§YþëO -…zæa•ê BÞ;޲Ë6™¹ÈÝä«g®+¸Dy6K&O®Zù\ùöÎ40ug(9‡»¸Õ1Y½D-ƒ·E·Èý W§™Væã¯ê×Ùÿ=EÉìcçYwßVÐ꾩ð£aËÇš_äµ=6ÿ…¦)]xµVÑóÑ.Â!ŠÞ -àÍà‘À#èT)3Ø/¸¸êéj̼dß"îRÉ$ްåâú!ÞR’:åúnrd?-æ Æj{@Ä -ÓíÒêI²¬gÂwCFË›×W®Âãëg®äF6ÒãXì4«gÇg‰•jZ\òÄ‘!Qnó¬ú®tÎáÑ5èèÉeQz4–hÿöF¹/×/¤ºü´0^=¤·»€óU/QÌxý.»3 ê9#íÃ_“½ä,â¯É^Š>Õ±]øû>ÿq -B¯tbZ?Q´3sÐú)sbZ?QôÊTzs9=f’Þßàá¥è­Þ^uâÛàxÝqvy è boyÄ~ˆ½åèØo±·=P´3ùa}z&;’Ö§@Ì‘ü°6=ðú,vþšìÅ]Å_“½ä,Ûó78±Ž0MZÇÕD÷Ü®©Øx/É/Œw,ùurÊ ÛÆ¬BÈÙ8¹y’÷¯•²yæp½ŸJÀ.üÄBMømE*ó¾ èØS¬Ÿôš!™=¦Åjl,©¢¨º°Õé¡d´ìyѯîi…ãÕò2œ4…©‡b1™õŒËØ^‚Å‹•f­ ›h» ›Á`7 žJ¥{ž˜ 4M·‘”Ùïá`uí.´B(Áé(²$ó‡*ï„YƽuÌØâ Š?m*J×b\Üw8 n1 Ø| ÚB´@ŠåŽ@Ç -ò=½(Ý~*Þóq &ÌÏ4Ù)T+ª™%ï€ç§~‰Ëµ3f‡Á³ hO«Jª]«iW\ìùÄJ·V€éµ4/‘§†ì‹sYìä×¢ñu/ˆ½ºyë³')'ç¯Ï’ºåŸç‘QD¬taõBÑx¸–z8èäÅ—‰¦Tr-n2Æä‹ôxòžÆ¶‡âeY‘µ›¼Ü{Å[¨Ö„gw ­df®G­÷ï÷;øÜ•’Ù´'¿ Ë̸“a®‡á7ñ*ÔËÉws¨RžóÇ ¬´ß Ô%7 h7½ï€ë›t“áÈ–äÒœ %ҸĢÀ 85Fœ*L@¼Ðo“Iv¹¸†ÆŒdG$.I}‰)m&)ø¼Ä/•²XHà×B³¥BÈYJI1ùÙR)K… É¶…‰¡‰š/° þ‘üÙ—¢*RŒß5“ Y£gQ¢Ë~½g‹Ø>UFÛ>È]š²¦ê†JýÍ_LM¶‰öå@ôÄßN?µ gù{2.Ìîc÷ia¯ål©ïüùÌc=òhÒRs‘¥ÇlÌ*y”'Í®O¢ËˇÊ òë–ÁWýJ)Æâ*çHû0¯|âs2ûvýB¤I“ðþ'· ð²`9© -lê©x–\UÕé†6 -K‘…¢Z–" E$´,EŠ>Dh `§ú ›Žx½+Õòº Þ&S|¤OÅ?B%ÂéÐÛ`èÍ_¯™…‘‹yǺ/µý´‘‘6šò˜šH4ê.D£´oÔÊŸ .=Üt¤bA>à•È–¨†ùjmΚaÊ ŸñzNÔq.ÿØI hD½éÒ›ÕZ –hÿÖ¾f³`þI°2^;¤¾ÿœ¼<“{o5¸ÚãÇcêÛ/¸ß¤¼#Mö½Œ¿&{!Œ¿¿ëØN¡ûÇÈMvq*tÿ¹)ÚÁÐýcäVÓø^Cã##plehüŒ:=Ó…ÙàáĶxGxa—m^…wtŒÙJY/½@ì-½@ì- –¿ ÄÞò`0yÎH¼#¼Ú.꯼¨üÎ꯼0ñí–0’‡7…—¢Ç_^p±ƒñׄWËüᯠ/¤qnšÍ€vx†f! $žQôR@;H<3s²Ð~‰gÜ}˜ß^ŠÞ'ÿn -/öþîùwSx‰#ïœ×Ã+œ·V^P•ß#Ž^F,ž…·ëߨøÃ×.Æ Á 1V—oÚöº¸/-°ØÈܨð?íU¾_<EŸÀChE‚Í®¢–,ö¥ÚÒÍòÑZŠ÷ÿîL"Ukýã1fîœ{î¹ç’8n1¢4ªPa ÒÀ¸®W¥^ûÕBü§ …ß’7 LJôЫ°(Î#Ý5T, -üóâåZ…fÇ¿" -jgYªEÙ ˆaEp'C#xqËèÛm°l¿ë1àLÃôªØð4+ZX¢ "Ò“ -oj^»>e(=2+8Ûõ0’¯–ËçÙ»-G¢1´c€„×Fð‘ð‚&ð‘ðZ'‹ïïeb}ÆÐ²’ ÞÃãÚ?ÍïaµÉâ$¼‡w±Õ#<™“=BìÏLį˜üw&âW aeòi&b¿&{ñ)gâ¯É^q>þšìÕ˜üýcô´Œ,à#—Ps–‰7‡8¿+’²¤xÕxrëU)N¨Þ-ºzÉ g9Xí;Dý‚jÖl¨ÔIÄõS jÂsœê#“ìk´“ì*p!4ßêEʘŸàa0±âüZÛ1–ªÝ•¬ÇW±¶iÙ·üGÕMû²ä‚£×è ‰½óN;©@U¦M/úO -¥ñ‚o©o)6×-x5²ô+²œћֽkhï-E[鎃LD\|tŠ“OR7Ê»G¿»‹(¡>6W‘eGvt+Ä Ìq žˆE6–€4ñü¥à,¾Eñ]æÀdåiÊ·µ|Æ< ×ÅT #­ÍòÐ7hÉÅ)éGÆÐ6xw)\ÎÒ}Ý,H(•ÅÑwö¬î.ÐÛⲟGÌû8”°,vs9fÝÂ-$%©¼¾.O}åái ëPÊ-'rã—¡$´+oIŽŽ6DðŒ”j®„“=áUóëØ×ôg½ƒë¾*¤¬WÓœjB"˜çDãœòÒc§”(‚1LÇa~ùW½qÝɧÈýóÙ%”¦Ì4_i¾mOäp~AFKyÁy•ÏÃ…ü"§ÜR~®ûnOó®àWZpD¹*¨—V°€r€¦íP9•pˆšuÜ‘ui#ªãž*cT¦$Ûï´¬ -‹Ìk¹Okʈ¿Ú&†+=•ˆuù{+DvìÇâÂ4r7Ñ‹Wí ¬+ºô¢±+ÿt-|k(sqºÊZ àWºÜÖ@|kÀ)?B¹^ìÂD©ì„M¹™K4§´aÑÝxç>ÍÉÎ%OvXù×M ›ÆöeÛ‡¬µ-ì=–ÃÀ€Åx!cÀiœÂ¾’Sšùh–E4|ù9š|waµkÆjÈì4~¨þ˜ ¹Ç™dª]¼OÛ˜&›uFM½åÈe« Ý_? ’j°šÍ,:óGexub½×ÿÝ©¥ÖìîÏ ™ÊPwñ&¥ÏbÀß$vî¥÷‹¬-R¢®¥ÊBQLË« -rø" 8¼zíw¦´¥Ïò¬yqœc^Ü#ÐcÌ «u±ÀÉîq»w´ý‘{Üîµ)ét÷¸^pìABA‚®\ø´ -Ó‚k–}F“ÑuŒ½s`"Ù4w©a÷ƒü@YF3¤¿¸Óàóôá0N}ʆ ‹,©kq¨×d¿žÉöâvsJjp²ÄÃ(%üŠg„"ž‘^5“jéá½îW2YNû2ÿÊ<.=-ÏÊNYi²Oô¯…Ù÷·?óHåYe¼~Ia-Ë·†˜Ú¢ŠÞ%ÐO3ÔDxÌ^Ûùk²yËsñ×d/Ê˹øk^çåèégßÙ4ù„égßÙtì„égÛìÃÌ®‰¬•ÄñZðÝ'"}~iz¤•K&¸Ï·Kí2&¶êà‡ëEpD¦‘Mð‚Zð‘ð“øHxQUð‘ðê½ò'À}/"üM{³*ÿ/q²þšì…ª<Möb&Ÿ¿(Å&{ñÄw&þšìÕªò<ü5Ù‹Ôò\ü5Ùk#vð·xN–¬üà¶Ãkéb'ø‡íð.§¤Sý†}e6¹_í”cýï¾îêåÿ»¯ûÅjù»ÿuá'q⺚ Hj7|Í}iù5d ¸¹Æl#ªã?U(²7L‹z“œÑÞC¢ixçûUÕÍ’1¶ßiyW©Ù©¥çU>ϼý"§ÜR~®ûr’÷Õæ§æ-S°cc¶¾#ß+|êAPÍãc©Úˆ^ÅùµöCDm.Ò€H’AGÅ85QãÙ×(ô‰fú ߎõ-ˆ’L)ò.Ç[J'‹’÷±¹Š,ã;¯úüÕÊ-Ë'3`_ ~Ÿ.ÖAG+ -„'äe“š÷jó¡ó±‡w=F²pñ;à´“P ^D;Þ!ÊÍá.OO‚'æ|ûÞ†¯Ý| 8PG^<ÆO‚šÏøvq"¢Ñ%àIÄ< 8¯#­ 6©ñ¬„ž oÐ’‹SÒ ‚¼¬¿».gé¾nM°s †£ïìYãmqÙnŠ#8”°,l.Ǭ[¸…¤$•××婯<< äe½0r Šê2D»’ÎU¹Ert´!b"ïœp²'¼*°nmÇ庸̷µŽ˜¼5 -ÇÄpi8€mÿ0¤5%8bRS”ß$¹zÌðíÒsNiá]-ɾEÈ /pžA!)85"N¨ÞÊPŽS}$,‰v à’?HDœ÷ù,úGÏx_’|¦æõƒ·tJWóQ©)h}±–xU*÷iø¡5ךŒÚ&†FÎ5E>•¿±Ò6ã“G¼e2@ãBƒfe_°LÀ‡ö©¤£íªŒÑ:Ë,ª}Ês“í .6O¶‡*ßd·âÝVËø|&‰he¾=´-ùë½##?JíÚg6píXòJNÝ›–Ø,‹¸ Ï®}¢½y‰Ÿ®éžA^ŒÖ>Ð]~¼ëý (Û£jM¹åzÌ£»|K}K±¹nÁ É ¹¡MÊ"œ< ²Œè§´\iÿ…CµZÓÔRkQ~ZÍ‹é -øÙµæå4öïv¢Ï íÞ¤P°{gì|Äñ£ -¶º‹úAXz…Ü–h$.l_¶œ Qų\Rrj‘â”Â…ê8t%$?þÅ‘Ž)iZ»+2-:CõŽLišµ0º)Ð?’8ú%ä;ÒeBG>ÎÆä2mÄ‘6þ —‰”ÿ(¿k½™æ -y9d =rýÏ~•­%¯Á'à! $™°#A¶_E‰ˆ,‚"øþ§g&€QQáîÜðec¦§ºººzé”¶C9„åß~ ýå -]ì›1Ô^ÿŸ’þŸ’ö7%­[“µæmg¨Ï™¶?·šsâöCúŠ!ÄÊuì8B.v «13ëeÁ‰À¸À¿„—vä­þ%¼P•?ø—ðâ¼ü`xÄú|-.v ø³<¸Ø-âÏòˆ}/–‹ÉàŠáàŸõ× ÞÕ.;Ó_'x‰òïTàÅ®ïwþ¡’}Ã_ ^»?þZðºØýñׂÏ/û⯯‹OÛÉeÐöbÏ0ÇÖ Ú^왋Ý0h{±g6ŸLù=ƒ$ÿ\\ìþøk±Wå¾øk±—øä~~5ÓE,l¡%3¿Mɳj‰ -¥¸6™WÌn·ÈÈä+‰iãÜFMTs„ûDÇ.ßÔDÉû¼<5$1òñ Á>H"1i2-o¢â;,WÄ'O ¶PƒfÛœãt^Ù·êNŠ.i×JÉJ^J«_mj¾ñÆ‹DÉx×á|Y¨«I8%—2u$Ý'¡ÎžŒªŠº©B= -FL¬D’IÄ{4ℨò‡¤ãZ¡€aÓ77m;ÇËüæF¸f9“ìÍQfB¹~¹<´6u­mk< (¯”ª„ºŠñçÁá\œâ/±ÙXÀYn€»@Ý+&·ýÜF ñï­Ø}ªN¹aš:X±ÐñËB²©BÈ\É|_èøÄÇû˜†Ë/‹ïôž±‡¨Ë7賕5‚ R6Ëþ ¨%±:àEgAµ¦Ôe_VÇ¥Ž©ÎˆÚ“z%Ôô”µ´ûHÐ4‹y'åëÔôÕV¸9Ô&ø;™€4ìuÖ¬<µ¡“ÅÇPFñ©ŠS ¸f¥/ Zà³8†’^|ƒI&Y[8B´†ˆláý•üÐÉâuõ3±)Ú€«…ß*KÃùÈ:¥M:îŸ!îØtŸ‚ -µ?J¢æè1èaÍ”DMx»8¼²‡lõ}4?bTÐI fØ¡ü‚¯šL0‹ÆLð8qøõ¬—plCPm]Ì´¸ŸCOxÍás?‘u8ŽaóðË!­6!òAT—~RÔÞ¢´|ÔHå²Öæ¥ãÅ3x~Å›ÉPºGª«Z³5[k¼7oÖ!mÓ¥üŸ†Iºfò„É ‚ŸÙ—ßêVºUÒ Ì¾?r‡H Í"FÉ@O‘q6<ˆp¨möÊì™ÞÊ•ÿ1çÐ Ò%;›©é~.8¿È饛¶ÕÅèβŽwñÐY·e*¦OlH-¿«?ÆÊÓìEöõŠ4mÜ_Z·„Jˆ¿k>-[ðEØÞ‚3±»Uoš}øLÇü½—æî -ʧxæ3‹fiºLûȧ/þ¼CâzÄU‹”8ºŸ9J}ôzýgí%î‰c*y0{ŒÐ\0B/²…DG]¬Éx?Óë`Œq¡X>ùBr²¬Qµ®dcígšÎës&7zK@JZhe!» ÇSmi O›·Ä– w±~=Dmeþ&ÇÓ«žûTÀGWh Kû².B&KÌÛÎPŸ3mHU³1’ô—bñƒr [h™KcfB½àä_ò×b/Ì/{ã¯Å^`òÞøk±÷+û Ç §Qh¹ËN†¡OG!`òOG!àØî†¡OG!\/NÃPñ…ÙᬉwùÀ¿„—LIÛüKxÍ.¶-ÀÎðzù¯åïò­@üY\ìñgy SÒwñgyÀÙ·"éŽþYà…³ìXàu±»Ö_'x]ì®õ×I\ì®õ×I\ì®õ×I¨Û¥þ:É®—ÚãÖÿ^¼Ënõ× ^»kýu‚׿.¶ÔßÚÛÏá…]öÆ_ ^Ò_öÄ_ ^¢É{â¯ÕÞ@“w¬¿Nêëbw­¿Nê‹Û­þ:©/™,¶ÐßÅŸÆ ˜,v⾆ºØNüÃ×ðR7þwÿðu{£U¹Kýu’<‹íVä;¥-ô·æ÷‡ça¡Nñö:aЬÚGù@o]ãì^‡çŠ÷ŒÍT^]#W°K©›œãOáýñXM”¼ÏKrÖ ›¸å*«3ã4•ü —›YÔØÆmÔ3Äys £Jö Xr±r)v˜  Å+ #¡õÏH’×¶¿ájŽ‚_äTS2 V"É$â½%@Ô²’Žk'ùe5Hã, >NÂ)¹x"*蟌ªŠø÷AÿãÚFÖN K¥å )\›ëkbø“ë'(|¶©Œ:ÿ¼eYH¶p: ªtŸœGÕ)7h’:dxÁòè! »¤bpˆ›7«ør½”ïÎ)¹ÿÈèJöªr -ª;Š!>x›F¹±VèÁ]É\VÊðrgR•‹ . ˆžáú¤¥ÁÑåà]M£.º…LOǪ,t˜c9ßžE!ÿf†zîêŒh-5=e­æŽE/ñûÆýLƒy'K˜’jê_Ö&¸|d"™¸â9 ;ø84‘ÄêP X‹`_l=Ž(jÿ³PŽšHBù,áÛ@’sÑäOBÉÈÇó¯1Áu¥|¾õ7þÕG+l?ýŸEpü“Aø[:éûòë§?òö\0•øy8ÎßÞ°š„ù•Rá¾_:XêTKF™3ÏlªøûdÀ‘ª%ì]·^Ù^Ø¡¶ÙÁR =hÝ7òÿr>úŸÝŒü•.·Å’–jç® ‹v.æ$/çÓ †Z‹™·¡>gÚþò«î8Óͤ Ž4^(×,ñ5p*5O5?)&¡#›õ‹NbQDïC:â_n"Çf¥öÞ„5×€DÛI¤n#LÜŬ@Óõ7¼bܤ{áýV,†?(×iã1M‹13»ë‚“@ZÈò%Žú>s”²Ú<Ì•f£ï?k/qéNžÙ Í{ŒÐ\0B/²™º3Іì‚MKÝÍ)íÈÒ†[q±Ä¯DÕF¸’µœ9’\Ÿ3&ŸŒZù‡.ˆÔT[ú‡Áf,¾ÐžÕCÔSäor<½ê¹O¡*qòÍAøœs"Õü^ÈËà?T–;D¥€†gTCFõõ(%]z •§#/ý¨{Í­MAܘ´Ú÷}+«Æ®Êðì?Ú«t-u%>A"j{V$.DQBXdSQðQQA÷¿Ý“ ˜üáƒ0险®®®6l®IÝ9¿}Êö¯sÅ^†¶sKÈkbEÁ”ˆ.÷ &aHÜ/©—Û¸Û2I|–4=ñ]Q0f¬ÜcM$%`žÁò^îþi³Äüy1ùú’s/èúZØ›óæ59îE½,Š· ¸Ú‰#Š ê¿È/8…•üuØK1Áñ×a/ÅÇ_‡½¦ZÂ_›½I«‹m7ÉýtŽÃ]¶Ÿä~:ÇLÞv’ûéGvùé$÷y°%¼³À[ ß&o /ÅlððöP4ºDäú‰@üZ ï¯ˆ_˪åZøµ<×·F à-᥿õ× ^DÌ_ýõ‚ý˜¿úë%0‹ù¬¿^ò`8X?õ×Klã›þzÉ©}/˜¦}losÊï‹þzÁKvñU½à…ìû¡¿òjxñ.Añ×—b‚ã¯/ar@üuàE[Òà|lo¨üþꯗúRŒßú륾ó ýýt¼ üÃjxɾø‡ÕðZ&Øñ™¼¤ÁùØÞ(Æoýõ’Šñ[½äÝø¦þªl$˜— øë°×ðüÁð×a/Þ%(þ:ì…]ã¯Ã^Š Ž¿{±‹mÆ_y„߬s¥’¬´0æ¹Lûd—4ðH)B ÌK¬Ò°éž$o«ãp¯‰W¯Úä¬í7ú{ªÙ車sçtµ{’]2S5áÝ’PH²Yþé°{Nj¿. ñóZVˆ?³E“¡LL­‡Þ"]ÞTç·G&_ìÏýQÆjŠÅÔÝjîòtØ:ŧ<¤ö&&…hVÏZí¾s†iÜ;…Á_z¸HTé×ó*¼6ÙÇ;·çc_bì¸ ‹¡’V^Ø“ •”…Q> ˜¼²ÕkS1ò.Ä(}{ƒéLò¥z>`œC¼¨IÌ…˜‰ ÅH̬¸/4H”(îâÏ4й >Yÿû)jGï˜Z5;‰± ]ÍU4Ö5R@X-"èç8[ÛàÙ®´#…ª·0ñ9 ±ÂBü†.ÚÏ*¡I@¨|pÏ£ôÉÜb°›ææD¥¬¦ÕŸ !^v…c¾4™ºÂV”Ž"…nÊüñv…x8]8òòÃU”‡2‹ ó$[F¨)ýM=Ð[çDÛW}È#£¢ÕÔß ¼ñ~/vÞé1rº—ð9IÌ%^u±ÓãeÈKHÓòÜKû2+<6šG‚ÞÀÊ4_"iµ¬–¥Ðq¹ ˆÉ*ü–ý¢Kz…2°r¨úàŸ*F’Ñ2Æ–Åð ›•²7½ÿm¬GUÖúq£7ƒ¢±ðÁ¼¹úÊ#ní‹çÃIΡfÆŒ…NnˆE'el¢gDˆx`öMjƒ°¥ê#\)vóýng^¬QCVd¨Œ½B¹Ž‚Ä{Å>HbíAPf¾ÄèbVï>¬OWc‚aÙuK^ûá…%¤öçM†‘5qžØÏèº%ÂNÌYBêÅ^$Ç/±u^b¦?Ö}ÔÙ¼%ÿB8¯‰CEˆ<qD%­™L³êœ`çrlÊ?ƒ!Ѱ½÷¤³7Iô^NiÒ±ÆN,Ëã€bè„’hÓ Ž½§wγ;hiÒó"µÂlÈW,ñQ@ Ó½±|T}DTÜpJ1c‘~ö¹qhŪQÀä>—¦¯%paC®~:2»õçËÕ UýêÃÝ?¿i©èª—m‡Æ9O8M{Yn¢cþ›–ËU„iY°,ÈdßL÷RxI½x›nD”ÛÈt/µÜ€˜¦{©å¦M÷RËmfÿ·¦[X=2b^‚â¯Ã^Š Ž¿{ “â¯Ã^Ô1ß§¤ŸØŽ°K_'½˜u8ø`›ùcM"ÌŽ›!:þüz Û+SÇÁOó ¸¢dÆl‘Ä×έÄHã"ó½@”Aöj¶÷¢Ýõê<Dˆi7­¡«x?ûwjҵݕ]Lîò…îôÀbr-ap5šMÀÏ&gRé¡Åóýyß>ƒ­ÉtÈi“ $Nr“Ô'©ý«1 »pM‰é±ÿ 0M^Ë# endstream endobj 218 0 obj <>stream -H‰´WçZê@}"@11Ùl(¡…Šé -–KT)ïg7¡¨¨(ø‡/Ý™3gΞ9S]º†äîë©ü80œøvþxв‡$è™1ƒ[’é 4xð‚î­KBô¢'#Ä;5¤ÈŽyXh„f66ø0áépÊó"Dª¾G†›6\ŒøøT—Ô‚¶0ÿ# E–ÈŒõ@¦YAÙönEc,íåº}\¨^&É'0_)D<áJ0¤Fë‹„wQv2·WڃזÎaêª_F$EH]4³ñüåeß.ÿΔ¬ ¹ÕõÄŸ_ -sò¢‹²ÝEÀzÑ+ÑÔDå$îŸÀmCFƒ²ä‚«&BƒžÇGc°±$ŠŠgŽ ^qÁÕ¼û#O´ÔÑa‰\”ÞJòÜû -Wµ)]ö]’*ÛçÎ>…ׯ -º#Lm/PÎ˲Hö*nòJPR7ƒ¼èh‚îãsZ% eÒñJòÚÈŸ15ÌE"ÙÙLôŒ¨P«ÉìÍí&$Ôw‰n!ñ2O’ý6rÅúóÓx=>¹$Ùpâúä_ºÍ_ç1ׯBfFp÷†È.ÓîìÙ6¢þ;»zuy*è‘—6*I™ÜÂO&ï"WP°LÅ–“›JC´Ê„\•H¹ñ@lÞ"}Nº¨Å‰–ÚJ3ª,1îœwJðìâÕªåÈ.Q¨UgÐîû9¼°ËOþ%¼6öGÿ^û#€oàyAåÁÆî!ËôË÷q°<bß ÄÁò@zÿ[ôòãb_ýݯ=¶þî‚4ùÈú» ^ŠØQõ—2^6ì¹å€ñÒ3T_n•¤­;‰…Ð…“nE6Ízǽ¾Ë¸J_¹ßÄå~F²§VµºÒB$8ñ”^g -£Û÷ -ãuã¬aVÒTÒ)\ÔÔxKøe´Öq[(²‰<“Vji\)fÖÆ] S´¢P -¢—’§'UŠ÷Y¥kψVû4‘à -ÉSSMÝù;§W¤+ƒÉ3÷ˆU$GZµ-râ²½…äæH ò¡²Î§UÎX9–8B/y]µŠÅr@FÁˆ’ù×—U—š¯ÈÃÞ8¦ˆhriEÑ~\ñ‚ùr{ûÎK¤¼9ÿðâ$G÷ŠÇíìCåzÿ`QoD„êÊiݯUF=ENésÝ›187âäá]ª‹áRjô¢^ü°öp™…Ý'=S›XÜ”9´)H¿D?dà=ýdÓ–‡z3…î¹WQ¶J:¡@®Hú8‰;|SƒÓNñ Q>Ä‘Ô<€X×ÞS ¢vÕU|ð’"'7¿Ú¹8‘‡%ŒróEp¥c𬨵ƒ˜ïŸ‡×Gô¢åàYÔ¿zöP"Õ§ÅK·aÛ䃲ý¹Cu(¢;}òf‰B÷ãÛ,±Y@ƒM:Ã¥ÏÈ'SJRKÓ¤GÙ»Ÿug%Tg(•S]á|^~|ñèJ¦áö(§¬3¦ºRá<ð¼ìEy¥‘TîbÎÀ"Õø‰ï> ô©»¹«sJVâ€Án’üGUãa.­ôþ=§à?ØQ¢˜¯ú|„œ5yXîgÔ„‹ëC Yn›Éôª4MB&ÛaǦ·´c=½C™J3ªòæzdÊnˆÁ K”]Ï TÌ’6uÆ[[‘#¡üB¾ShÛ£A·í¶ÎÊ•*)Ó]¡l2Ò¦_‚Íz=+·B9ÝÊ›@"‹o‰Ë‹wå§¡P…¡ ’^Nvü¼léXß]mQ[…ó·êót˜×buypîC²îqÓ$`óß°‹É<·iév¼øè¨ -óÙ ÏcŒˆÓIzì2ì@“Û:#ÜIg € :ÆØ“q;‘0ÿ;!ýÜ™™/<5ŽJ9À«Ø¼%¹åoAié'Ðû™Ä«Ïl/Ý{~u»åQnñ”Ó6R@Rb/æAŸh^ÏÞ·7¯›$‰¶iŸ† öráÿÚ¡“ê8íáÐmìÁ#Ðärà´¼ÄÃl< nG^‘%ë6×ᣱÐG‡×{JŒ5‡F¨ä tî2b»_gÄ®WÚ -‰È™,¸ë$ÝÑò8e³ULwQG»ŒªOoxÎãþÛ¾Û²šW5&u7z @I®ñÚ6vàtÂü²2ŽqËQ«Ϫ’i&S7o^uíE‘$®š1¬LË[²XbݶÐûsæ–3€TÕ×-Γ4a«Œ‡^¾JdMZÕ²5³˜¼p+ûN˜6öïø»a/ ögüݰw{û» ÓÆnfÌ¿›0IW8í1m˜üëhhíÇö2cæçðÂ.?ø—ðÒ‰o€ /Õäýþ!¼Ž0OåÔò{8XÀ'/Ëõcß ÄÁò@Η=üCÐîÛWwÁkc­¿»àå?²þî‚wåÇŽ§¿»Üêú‡ú‡¯ÝƒÙû‡û‡¯Ý_Žà¾v6öKÿ Kî?Øž×÷€ ¯ýÀ¿„—V€¿„÷sy »UwÉx˜#ëï.y ¹UwÉpì£@HyåˆãÉ坸»a/ÔåÏø»a/Q˜Ãø+(â4‰ÔhÃN£á¬àZ%içô:‰…Ð…“úâ\²Þq¯ï2®ÒWî7æÆýLâ®ZûYö 0N<¥×Ö(€9ÝnlzÄÆš]ãuã¬aVLo*é.j¤$x‹µü²?Z³Vܦs6"‘g’Åä«3Å4NÆ] [NɊ¬t†àÔ2ÞS׺-Ìg31$¤(Mß&)ËC½z†ÛれͶHP¤Æ„úfþî€;âñfõËŸðwÃ^¢ü‡ñ—§W¦zÜè¸Í=Óê¾›øj1Ê'=u>™z1è¶}ž¹G¬"9Òªm¥†ËöÖ¦8«PRa4Yâȹmå‡Ùáù·Ÿ™(æcN(<5EEt定 ­­Mͦ%>_תòq— Z°ÓÍ‹ò -ò¹7ļó!Kò 7$”+R«I¦Q†>ž òã‹'¤dþIÔéCa[%ð¼÷qÓV€ÔÅWläE -&=ÖÍÐ$|›Aú³M1t†Rî$ä^¥utœûˆçw÷›ô8¢¼hÇ)ü]Bà)27¯ªËè¡ð=MˆºsÜ)NÃÐ {RÛýÒ­&èð%t¢ˆÉF|#k6žj,ʧyТBÁ¢Hê–kR°Á"CŸ­O\Å!ß(½þعÚv3ÃÊ) 3”3˜Ì¯§Wúå½?;—Lj5š'rQkkªë²¢½Ù%*|xæPªk8¬l2 ñ+bá:j1™<-Z„¥R˜^N¾ø)séÿ´WçZò\¼.5„HE!t‚ÒlAÑ×B½ÿoOIÿø $çìÎÎÎÎÒ~™»Û@H> „ŒÄ .^vÉ©"¤ÆDÄ—û‡¨Ø¿Å±|"UFP‡¤®×Ÿ<ñ"€4´n¹ »¢…*­*j ·"rg -öÓ\àDE®ñµ‰P$Üï¯T)ëL…P±ëæêSÒUèõBý´<“V†ñBxŒä»Ì§Å¨U×±2w€'* ÆÆ Ÿv%@¨úñ“£sAZ—˜ ‹^lD™l Dß_Ô¹:Ù -DzšõÅ­6·ÐP‹ß0Ѫ¿Â¦Ý~¯{ÄÁ,=ÔüÙtÎXoöVµ ”Cݾl³•GBÿè@S…÷Á ¯ì„3T HÅŽ¬ÚN¦0žÜ¼á‡š ´ÕÃL§1>™ê–îÒ`'Úu>Ÿ}¿/¶È¹z¼Øe”r¦¦»ëpX±FÈ™L°€“.ÞEv1·>‡KßÔ²W†^bØØ­=â!ç^Ôb T‘«°äu–¡…ƒeN§ -¨*ùdXˆWñ$Õ×ÓL™^w‡@ñü4èÅâefÂåêÖ/«ó“0Ÿf#?É8XÍ1‰ñOÂðcèAs?°nîGÞ¾ÙF.šU~°%w²ã†ËÉ>ê`Î/æ+7#¾Ôp]¬aßêæ€–<µbìÿöåâ-y»8{ÏÞª -D4¨Ô•žÏ j†Û=Å4è–Þ<¬û䊟8 o2Äï7xjTû-ÔK97bÀ2ˆ†Œk…Oëà%ˆí 0…÷4ÊlÜîÖívÆîínÝnç`ìÞîÖívDaìÜîþ·ÛENN .Æ_“½æïøk²ûä?â¯É^tË®ü…’l_ì6®uP}û»kƒ±q±Û¸Ö®ÏŽÅβֽ>'^¨Ë>¯ƒÙ àáE~l€„uå6€ùRÝí9ZÌq´<8˜âhy0½åqþÊC{4[¯Þ/öéï:x‰·S×Á ]i³þ®ƒi²þa»{ [ÒÑþa»{À·Øà¶»};Ê?„‡üvxQ.{| ¼f/€„å²À‹˜lx¶‘¿æÍËŸñׄÜÅŸñׄÏ—ùûµóöæ`ìÖßuê ›…Íú»N}ŒÝú»N}Q¿T›ß¼^ [ìðÛáu0öø‡íðZ|ò®Ð/Gøß]Ý/Ò±Ãýï®îב%ûY_Úï½Áx›ØŠ½£õm §TÖ”[™(È_™|Rµ[¬0cxíúK çÏ>ôÔªmŠa¿þ&’™<‹ß¶ؼŠ/…ÍbùZñåAHÉ®»r1+ \Ws9GNôj@ÝŒìS#3‹«sà4ôÅ%éTêzZaȾ†™¹ìj~Å ÉÆGmé—ý”ë°"i©ÀPwÞøÎÅ^C)©{çÌê½Xú†ï˜(º A¾CÁ¹Àt½ô ò©øìÇàñÒE?(\WÏ-G¼Ÿæ’RVzK[¾+]t"’gPŽc TàT>¹¦ójÛ-+?uBÁø®¤Ìfnñ½åO•ÍQ²ÏÝm€‹¾‘˜¨=ÀË.9\âß¹´&¼Š'ŠØ¢"—#ÆÌCâË7#rb·TZŽ7ËÙ-øÑ¢ŠZí ‡Óbž9¿ZôC"Wl$¥nö¾WqAP,g -yþyOF5ª› ©wVõÑYÄ|†½ŽÛLœêOeÈ׃e-ße>-uÜ\‰ŒG mÃØ˜1eTýøI ’sÆ)ÀRcAùâý5e‚q0[B™«ÊÆ@@¬ûâÖ@8¬cCI,~ÃD«þ -èÒä_jþlzdl Þ46eþ( ñ‘‡Û˜¯ïG,º"8á•pü{»¢¢i¤bGœ3y—%0žÜ¼æÓÃ,ÖÎ0=Æødª[ºKÃxk×ù|jô ÿ¾h`‡“åLÜícU¥oônR+cÙ<ÊÁÌœOlFŸwÚ'5â±¶& Z[rà“šeÈ('hm\©`‚N -y>ŸeŸ6ioÂÑÞ× ¯ÄYF¾u‡@i˜±› :ñ‚–3·ø„ó´ÈQá†p, ûíö”:—¹[@Ó"¨gUÃRï‰'.ÿo¡ú©Ï‹Sð#­§Ó©4ë9¹Î îäzÁÀÒ^IîfÒøj"ТA*Hx]XçÏÕ†RN†žnêåîoÙ—“08Š ;3ðÉÈ´>Sº3+rÓF¼Pÿ&@ÜZö1ã!Ÿz'%•N&1è®`¹á(¼Ë>o‚ׇ:šÝhÔ@“7Y5Ò± VÍF£æ`6Z5ȺYÝßè¿ÅÙtªdÞ©|VÆÓ$yþ]½¹’:ŸE˜ÚáˆóëP?ÎÞKöð×,,Üògü5ÙknöówŽÂß™DÖ‚"Ö;„4L­¬&—¬¥2…+ç-\ËO§j¬ª{[ϤóOfdp)çFN1r9%È"Ñ£¬lk6™. 6 -ÆÉzòûŽ<õà}Îu<ÉóÒz× [W¬„‡^ &û)kki4´ïx=ç;X -µš èM¿-cr…Äh]…%5|FŽMµ}YK’qq!IÝr·‚‰MAýw ý"Ÿ…'á]>^³ÀÂë`öø@xAaöàúÑþ"ï%È)ý*GËñ0¿ÄÑò€rùU ŽË拽ú»^¸Åfý]/R~{õw¼1;üÃv÷³Å?lw ü¶ø‡íîi²þaÅ=ð¥aÉeÂkT7€„×Áìðð"Žíðð:˜í ¯Ï á@þšð¢\þŠ¿&¼pËŸñׄWß’lâïí„w€Ç1áåÐûeY#oßl#Í*?x´:ÙqÃåäFu²s#FÇ­†µV $lÁ×ÍÉ-yjÅÉeYå/Þ’·‹³÷ìý * PD_¶ÙÊcÕ•žÏ ªºížbjùÞ<¬ËqÅOäÖ› }ÿ àÕÃ~K†}å܈W¶WÍé‚O³ÒK¨#*M0©ð±+IÊÌ€½’]Ý:žû½‰ŸÔòi6ÂQ"Í_3.¼¿üM’‚S²¿Pˆ~–Î^@ÛD¼%ŒŽÖ·%œ#Q&Z¦C]kþ cÇðâõ—Ο}è©UÛ–âèo`J!§—gQïÃÛi‚‡®Å|€M -¯‘^«Ê"玩²+UˆÉE'’™ºtb wØÒõMìGüXaV~ÊH`É#>¾ŒD$ÏÙ[Å᪄ëj1«wI£ -]2õñ£åRÔž˜Cà\Ú•¡ožŒoÁg·Á‘cœÎUƒÝ¿Q«Â;²œAnÓ¥¢¨‰WAùî÷KNtfçêØ=háuÀ÷p'RVz‹Á-—!Hãq"»2½±£À¯—¬Ôõ´Â@vƉ^k­R£Ÿrÿh¯Îµä™(x\DÀRèJh¡(JGÁòR±ÔûÿÎî&YÐ| -JþøHËž3gf' ‰Ž -Ôô”LG.ôÜÁç§hVîß0yc ¯fð{†ž˜&ï™! Õ)x§n}ù*6 ‹ÕûÈÖ{/®B˜ %çv¾ÙƒnŒ*gæÚàRœ’pÍœÿxʧßNªˆØ9äû(q¢mäþ„> fݯþéƒÜ›2)™OŸ€¶Ë‚ ð72’°`dÅO_¬$äØ Ö>•ùi¾Žö—Ûø’ë[øM0.ùÞIhÞ(¨¸%|)^¦7_IÃÉ*«d*­:t#‘€G Öæo¸Z” C»ñ©5÷¾ÌlŽ…œ¾hm‰]íM„„Ç=b7·ú@k«c¬£XêJ}ö}k5S»Â ¨R]b»ÁL.Ác“s–J/Òƒ-Ţ߅D—´¬–_KIy´%-ŪØýÞäo ÒBô¤ôµÞócµ<ÿ¿_A3Ô"£aF2ÿìËŸWÐu3,y 1/Ác]F¸“&«^¼†(n†Ë#LDæúQˆšH¢Q¶ «ô­e7æáp¢ÅÚŒ¯î<‡…ìqÂøcþ&ãÛ$.Ÿú¦1Î\Ɖ42J)÷)Ãl? ’DüDÿ Ôä°µ:1¿‹7ÅÚvœzÈWŠÙE„ ¤®x–ØøÄ‹õëê¥÷Oà‘íÜ-wÌ¿;§×ÝZa©ûüo™¨ah*»¾<¦ ̹͓6²Ü¯ô«X¸õìñæ àB¡šu”L ¹t Ë6T8Î~öëL=w§•Ï™&œÂ%“¥åRMµ”¯ÙÒr¥ûê¥ädDtŠ o¼8þénß-bG?÷-Ï3­ÌìÆØ,²wÞ…W–ùÇ΋Z¡íŠ>šùÀ¯gzÅMИ7àŠu·>9FôÃ[’4ÛÈï>Þ1N^XaYJò>•>ýš7‡¯Ù÷˜ »¸k¹”W ñ¨Åƒp`«$˜µw¢ñè<=oÆp - €H´ŠÍµªd¢#}o›LþñmÞ½“ÍÛWR×ó¬c/šoͽrØp‹Æ™ü7p^ èêŠ>Ÿz„Ú•%úËÞ8·b8 (ÕXPÆ…AûF1.Wn¤÷²»Ô¡^{¤ÃùKÙë`íã/e¯ƒµ¿”½?êØoø;]ZȰW¶6/d(óÃJfóB†Ò¬d6/d¯dÖ Yñ±Úx‡×L°l¼‡Ãë`ßx‡'¥7^kx]güÿÊÝ_¾ˆ?Ëtÿgø³<à»ü$–¼‹í -DÂù‹þZÁ‹ýå¨úk/ vdýµ‚N9J~ø>=8Øãä‡ïÓƒƒ=N~ø>=8Øãä‡ïÓƒÉäµqU•m‰gú)ûüKx±‹íð/áÅ™€MxƒÀؾð:XûøKáu°öñ—‹Ù.þRö:XI˜çD%Õvâz8½¼n5`!³ô©x}‚ík)ü>¹µÛ­g'Üx¦¨ê†~/L%A9ûZ0½;.sªSû¬òinÜÒÎGIÆÐéŽTÈËW1ÔyKsùÍèÍÔ\9™Èq)@ït%¾=—ˆ³kU;^étáÔÕ>;›þòrµ\†´D)Ÿîb»× _ÔÆ¹Ü{¿ ÊÙNO@(ú ¨ïW{试<8XûøKÙ‹r²]ü5ÙËëL&î p&Ô^xy1%ýݶÄfóI—N^‰Û=q‹xhb0Ùmn]M®9»¸98Ã\/Œß`RÉdЇ~í¥“Ñvú ÷¦LJæÓ'Ðx™ËžIC•óÊmÒ(³9'C9¢böªnuÊ5n™ÿëš Ç'|ÁJ8‘ù“I Ý^@܈µË¼´Û5˜ã¥/øü:•Šÿ~âbÐÚnUEL~}vN -y†§'sJ:hÌ»7(ÐCQNÞ>V’|o¢â>+ÇYU|J¬"êÜ3êà0åKñ‚SÎË“$œr…kÜ/·6H@ã{!øô”“µÍ]ôd~ÖÅmBþ⻪ë=/ô8IHtT˜}OÉ|Ï|~Šfåþ “7²üÕ ÞcÏä>ßI“÷L Êòh¬Uúe@ì*6 ‹ÕûÈÖ#^\… *9·õÞU¬ÝUÎÌØ[„KqJÂ5s¾Ç)ã˜xÑFiQè®-ŒæÌúO+è±ö0r0h'’€û(¨¸½Ù*4ûõRz¬·OA“‡“×”8^Ê‘¥˜’Y–á£FöxF³RFm*£Ö©R±í ‰O×Þ¼â^¾7Ð/Nŧö(t.W»5ÿ -{SáZñ(`&Ó«} ºKXŸÄñ ·ë9Hêªcdul¥>û¾•[Õš{ -<¨.ñ:J¦\MÎYPKs9CIÉ¿ vÃlÈh’8¼¥ßZXâ`·KY« «Rh!ÀСôm!«Bt3JIo~¤Xû¶bsöé+x{%_š³ÚÉá=Áêé©Yqü:žêRñ¦ê Eªä5T§€ ŒîB0I%GQ‰&6bñE -Á1ÀxÛé§vþ\Kñ‘‰¶:ïóˇ·†ƒÕ6ƒfMKy|DRõ_ÙŸÒ ‰àÍd3Lv=ØÃC¼#z OmÎ1ò¥b‚GϹB²tÂ`GOœÌ¿ÿS°®ê8X;v#ûw êzaU¦>/G‰]"$…nØ*À¼üumØ#b]öH˜É[ö€õåk®EË1Õâ»|ɵÇNµ(}͵ÇNµØ‘¿äÚƒRíK/h²mü¥ìu°öñ—²—ä1{øKÙ }1ø ~@d-,aÅóAQãìgfeê¹;­|Î4á¨di¹T“C-åk¶´\éþÖ‡ -œQÈ]\[DbªíV[´~î9ZžgZ™Ù ¡xöÎû¯ÐãïÊ2ÿØy1èÚ -í0YKEM&ûuÖÖsÈ‘o‚Æ­oDø¯îÖÝwK“¥Ù–M~"q²y(—ñìbðØlחߺfJÚÈr¿Ò¯bbë ¾9x^”“ø"~¼àb‡üKxìAÿ^’”öøWðŽa±)*‡¯½Ƀã·kïAò}ùÕÚ{˜<ßß7?üV¬}ü¥ì…Ù·¿”½;™ÿ¨ü]K^ÇÑõ× -^}³8¢þZÁ‹4ù¸úk/ºË÷'œ‘?Ûh²mü¥ð¢)¼xã³xºEO ˆ_Šã×1ŠXOb2ãÚ…³|èÊp󶛞_[p|lMÓø‡#»/vê`Î\/ZôV2_¿L~õÏØ$ÓÜœ¼äoG5"ùò×ö3ùaó/ý Ò„¶oi°ŽVWõ+óf¢3xÙêwvDq< EÌðŠ‹k‘që«mSª`Ä´7´E-ð>…kÂO.©°#î\q÷[1ä|~²Ä<¬žq àl®3ö{y@§ØÅ_Ê^k){1“mâ/e/ê¾]ü¥u°öñ—²×ÈcâoãB«Ð h½¿†ò‡äÍÝÝ:XÔß[#Vßu’Yƒî¼€«Î=£6bVżZ5RŸ¨zsn•%U´2H%ÉoQÃtµÄUÜJ¤üý*]O ¢O‡@E@Q Ñ¸£²¹$.1F£YŒFc̦qyÿ©n@1ñf»f¾ù1P é®åÔ©S÷w1Söëýâb¢ôRÈQÚ¬Xd2ç \4mW®ÐÍ´ðæ””ÚhAiÖýÏä…›“ÅÎJÉš‡ìO#)©˜m ñ. h˜tj -ºI eKeãâªÑdq¾±j+ùÂQX,×MKníÍ¡têê¹WFŒâÑ-4ÞIž ’óǾU V¡m{ 5Bé݇>>¥­°#û)Æ8 I8ðŽ-,–—àËe"˜EôÝ´©8Ü"p§q“@9˜åxykÛíÔ‹’(úà_åE˜x¥´X^,“„ÖÁÓJ¼¦ «éu-vø,ϲ1çÙ¸f×ÙcÄ;m,¹{e¯Ä³f`×b¨Ê»ã±®–Éòæ)8 ôèKjGØÖµ…ãEÅ®;€lªÃzÁ¾ÀÏŽËÔžœÐq//K|òZRLG1·¥ 2¨j - iT… _*"ƒë§aŽ[(Ò`¼¨ &+–0—t±†A¼ŒØ1 Y&iÙ_-…I´d€/Rl<ªHü+eÀºh êJÅ?ŸdˆµžvRRŸâÙG"5„듵§W§øX˜Åj#ÞjPû \è'ebôƒµ9¡:<„'efô¦m6”Y'gϨtš0CxØ¥Ç4Å1$òú™!Kåu—!.S ý ¤]¦¬ jHnµË­)I)Ô? [áôåÓ%­é›%€dgÑl-d4ÒÅþp‰L­Æ á`×| þ !‹˜ -×a^¼c^y‹˜¸Õ0 -–gî9äøk ¿6ÏþôâäTé´ù<#äÕ›J[Ó»f§)ÕÞÄh«£LÙà CGªúɆÌ\ºÕέc½úÜͽ¬M™@#¶©–Öa2§1/gíc‘b!À%—@ªÚ€«¼Øã¤ýÏiFâhñß4°÷Œf›INygèODYýþÏšNù ÕðUÍ€™ÿçªá«š+¥ïªÞï‡÷€þ¾êý¾æ_¾­z¿¯y-¿­z¿¯yá”o«^·æMz<_мôïáwƒÞú÷ð»A/îb¿…ß z- “”@ïò„­–1ô‡¡ÓtjáÈzɥĖ…-FŸC?p—ݲ wøÈiƒ€k;¶´P̵W ‡¢· -$ÇŒšzi˜¡ˆŸK¦*qhä‚+t•Ç5\ùm$3¸ç¶Ã6ˆ»%ÉòZ¿­!R¤¶ kNú;úÛI;=^Ìç}‚UkhËÖë¶›‚0Q%Ô{:zÞãqCN½\.Ä»ëœø­ð’S¾à†×ÆØWüÃð_¾àï‡W¨4Yw±O â¯é˜ÿs‚økz ]ì3‚økzÀ§|U?üœ@Áþ~7è= ¿ôº&‹}âWâ¯cáMxIßß+ÿî -/™_öÊ¿»Â‹k¿ü»+¼¸*?&ˆÓ׿§‡z?úácz8 ÷£>¦Èþ^ôƒM…'jWxzùÝñ|Ù3ÿî -/TåžùwWx1'ï—wÑQ}{åß]ôHÞÿB"FP $Úî)Iê{ -¼ßsÑk9•-ñ©jýS -½9Þv–Ÿ•DÑ÷à¸V︒ã|A …‡”"ƒy ¾vQ,*K|òZRLlÄÅò ““ýTº²64Têþg¤våâ&W)µÑªnŸrBŽ_ùhxûÕ6hÏ[åÄ»äy?arlá(¦|× á/T@êÇ*r²&ÑQÝTà³Å¡2c‡²³«^xoññ+%LöX!Å`Ú¶±¦¨ì:T*ƨâJTDì(,–릉áÁŽ@W—ƒÊ -Ñ2½*¦éh0‹Ø•ìO]$ нÜF}âé¸âÛI„2ã N*h™5-_à©WöÈþjÛâb¨d\¦X‰oQ¥õ³ŠSŸ•á~Ën-ŽC°–fj×bÜ_¼RZ,/–Iוx/‰¸a5½{±y*›=š$¨Ú,ÓÀ{éåý%2Uf\zFtòåV>_JüÙEZöÏçàBi¤‡f†X~¼F²_VË`¼”ÁÜ—@œï9‹ ¹X!…‹I¸ _ð2bÇ UV… ìb´¤ÞÈJ·ÅZ0Æ÷|âž³&Ú‰‰åe)‡·-‘4‰£~/²ôCbȵ…h˜*©k[VŸbäH9xÖž, ‡ÖF<¬ì-- -+ÞÐOë°AivøÈ~mNÚ)9ØlFoWyø!„Ç\¦w™²eHlþ‰!YVŸ¿1„h·)²/ñˆ>Œ‰ð©!ûf î/Î"\«M~-¨˜«——©‹ -‡l£cö¸‹#q´xd\ Dc ˆ‚aˆY_Gø†…PëPÀà®îèlôZä(™éÜ=’Føö” -åÑóM•Gÿ¯@SOøÖ9ù\áÅð àÅ  O[<&€‡¤C@rÊN]çÅZTåÖÕ¦J…cOH ->ÆÒr~r›…‚Æ[>cáh§Éî,´7¶¸er—™ÃüŽÒß4r[}­•wšÁDDZ¢l´GžÈjÓ aGž%ÈÁÁò¼Gš»Ã0vÇ>wœw£ÝÇŽfùfþ¥m5õ"pM…¸Ûó‰ÓÈ›w#ÏÆn×>d#é'.¶à¸ÞV8ñ5ƒÔNÐpo7¤ ý´ÿ°û\|ÒïèE3—ΞG6üßR°Þ4m‘‚…¶¨ÄÚŽ©oPþD»ÐJÔ)ôáLq>W2=ºl™NIÅZ!Oż©Ð —2[Ò†ÛÃØ)±]ï´uÅè¬Æ««©ᱯ†&zÔ°¤—ÎÜVÛKVú?/ÿɼ„ÿÏË2/öq§5Y‡“¹l.µþjtY÷ -WÝÁƒú÷Æq?óâ¦Þ§øÞ° —Û.å7Ï¢ø"B/ß*´'`ëŠY'§i÷kbyšy^|œ?]ù&FwXq6${pk·oÐÕê:GFHX?’ž/ð‹¾Xì/ö‹A-D"æåÁÿÈÊÁ™`»>8ÅÑ j5z±¬9_\DO§´Á'¸ó¦ÕÑô`œ3M£ÒŠ»û‹3fBx;:ùNùH¥ü ù •&ËYI€$ŽFÁX3ì²V¼‹tð,5OŽ_˜33mD¦ÁLãðžbfg~KlùôØ’ò÷ÇœèÔt™i„¹ÐHDìz§XÇr³)î:ïP9‹Tó±«!kç¯{J·¯ ÈÆZgãFζfª“c~“&ˆ˜¥g°•!ãRç¬}O…'^ËþÖs~3ªOáq _ÓšW¦þôûUº–¸DŸ  ,Y:ìKØBØÑWxÿ[ÕÙ½.ŒN¾o~Ìfì$]Õ]uN㿨ŒÆ?CõE¼<±ñB³¡VÉáøÈk‰W¤KM -WCb˜‚¨$m 9ëŸ t¨÷Ë­Ÿ×S -d—T6h¨æ‡}¼ úJ€Ç ÁNØxØtQGì&í¿¢˜W‰¸­˜­ÍìbÆê›šÙ;Ŭϗ¸1_¼ŘøþYÅ<|²É Ý+ЙÇdÆètæ1™1¬ oÉL×0OÈ 2lȔ̇ðŽÌ ¼xLf kkïÈŒ2Œ¡þ¼8Íñ4Àü–ð4ú|ñ4€»Pž†ÖÅÐÞ)ìd—pö4¨`]ÂÙÐ`—pö4”aœÂùOƒæ_]¾SªÍ ìƒ$°‡?Έ˜‘­)°²^:D}ƒRîbÜö>k¯•l3pcJ‘á”F1õƒù ½"_3D¿vt¼Ò–š|¨"®rç5Hn˜Û›V^ì„Ï5+ÍlTפz,7i«0,•]ùêè°ï޲OÃÃ>IÞý ƒá¡Ûöú„:*ãšHBÅèô…ÐhÓ8~QEð“yó -¦½èÆÅv’53Ôøð%¥<†/§î½G¸·C.Á¶CCÆ…J]…Voë4ÿôM¨ gy–•' -Q˾6>/¶‡½Žìi¸T˜ç[ÂÊì¶•9Ì&£%.É’3î(•\@5?Ÿˆº=É‘ÓM8uiøêN´ªôÀÉùˆ«ThÍ͵ +vrØ»Û5ަÍCb{Ú­C€Mƒ®Yì Ú2Væ‡o5ëõ pýÍ8©€®­ÒUr6ñÕM!Ú»~íiR'W5ÇZ/3ÏÈÁÉ~ÆeOÞƒ(±°q¯¤Åì$î^óËÁþdlª—xIÄFØÓ#œ‹÷ΟaðÁõgHCÿB!° O£%"d¥èm®(5f—‚¬O~¿—-±ý²IH‹«+…pñ88I&ˆÊûT9HfpŒùˆd}Jæk_‰påÜ!2oEÚX]¬—:¸™*®º‰4áe¹R¨·i¹Ååù<áF`Š‚êâÛŠB’Ö†5{ í@Ü lœÅ¤Ù(ðÊ`£éQ?ìc’*ÓØ=yðLµ‰Üâ£Ã9 [ð¯As¦}+W"éçO)Ií—W‰`'»RAÊß îùäPQû8Ë/áYbïPâo¾BËI¥êCóÓ`Û܃½*Eª7šn @® Å•LpB?™ËAƒ\Uñ&"fP’°q-Ðâ:;ãESÇ -7¦éÿ¹ªápÍh69(¯ê-µÄ¥®j§m¡[žåfB³z_;Õîï)ÓÚ\¾Ò½ñç|Y{ñ†TRüª. (¡ -Åi˜Š-¸±Jب>Òa~è¯4rœ\ÒMÃÝ$c¨“W|pw3°ÈÇ ž?Å\~ŠÄ‡|ƒô>H³8zÂêŸ?eœ:Øà wÙé£Å#Ógc6oÂ"Näo‰Œòuµ«(aØïx¬]E û_öX»ŠEå·=Ö'–ÒÇ®‹a¿ã±vuX ûµ«Ã2|å=Ö®‹ròo{¬œßÿ¯.a]²ëÍ¿ºüuyÊêJIŽI‰NÍ(œ`Y5×Îìg3 ­²_;aXµÓòý€‰Vl>?+Å…ZŠþ«¥ðå±TÍ’ðŸ:g A¨#ƒ<ùÂZzdŸz1sñVX-Çjë²è3&òôHÒꤗÁZ’¨c·Z¸Ùjn{y[Îw}Ïð`sŒû{ÚYÍ:æ‹écÃoiWßaéøÿíáW’? -‚ÏÏë2Vï±é€·sMsµÊA0ª¯œTèP±•¼[€¡;Ö¦ãh6!mH)ÙOŠKbk'ª7X€ÞÉžŽ¬-ã ÞhÇcX+âYí:Ýy¬Œ+÷½‚Õ“ÈL›s'Â]ý2«1N8«QJ_Xe2̬º_C >Ì+˜ˆÔWîñÔ¼Ùδ1Žãªp^¦Ž×Í;užŒË…ÒQ¢Ò9÷œ -€t“hLƒ¶œC>1†*D˜¾D2{jÉÁ³q«×;æôåšê¨Õ^Ý4ÀcAƒg±`êh “6ß ÷1hÖÖÌ¿  =¤¼ƒb¦ -ÖÐÌÞ)f†uit3j~S3{§˜ÖÖÌ_PÌýâí.dư”Î<&3¨‹‹>½!3Ê0Ñc2cXJgß 3n23'²·dFoÌ¥9¼ 3Cý2{_*- ð52±ÂÇdư&¹xIf ûŠ>=!3¸1ýèž’²%ÐÙwÈì_]¾^ØvQ7\p›“ÇpvÇŒlMÄjÈzñ€Ûû|î·}„Ûk%Û Ü˜¼1œ:ˆÐü‚^o3„ _;z^jKM>TW¹ó¤7L’³I§Iê…NÇJ\Ò0¸&Õc¹é Šêè°ï޲OÃ3¬Ži×£&ݶ×ç ÔQ×D`†Ã¨ô…ÐhÓ8~QEvò“yóª*¶ݸNQË¡¦Àg/)å1|9¥;;ª?½̯_%íËP©«ÐÒêmã>Aú&ÔTÞ -*-fEjÌ.Twx±=Ô4¼Žìi¼TÐY[ÂÊì¶•‚ÉÎ&£%.É’3î(áPÆÏ'4½7W=o3Ã}ãÚ<$ÅrG -º$%Ü´VƒÂõ*]…BøêæäëÝÃ[Àe}Í¢^Vy¹]q¼ÜË,’b{ð3e¯ó÷2ó°n¿€×1À „ù«‹âJõ¥œk{²ŸÔåqß%…Øhùבç—bÇZëA]^±‘1ô´í½óg|°þ|°Ú«ðfÎ×¾²¸:Œt£%BRô¶U—.ÒrZÖÇ]œb¹¢\:÷D1ÌÃKB^ʱn¼´ß~íñerFfyiqµ.Còƒ"´ÜmFF%2?I¥±.c†&š†ØÂVºH\žÏÝ£‰r°ŒéÒJºæ{g] ¡x>xÜgX³ú$b§òN"‰§ÏÙ(O4à±÷R‘Ù[=å÷>M„ ÓWtì¿û÷ù>֊Š\¬‹³³\=Ò ò5gÊ¥&gSÞ|~T©§Ž "Y×öh„Ù Qô…v~õÈx@µ{ÈG©k_@Íø¢ûþº+_¬wÔõÅ3ñ™]J×ðç¤#/°'rïûXÎÃÕi|`¹»öÚo Ô© ƒ"·9*^ÍWúÝ…2Ô¥ÑõÇ é‚\ùuQ…F-¦€QnS×Áf›†…ÏÜÿˆë4ñ,_ÒRl–æw0HÔ1¬Ç‰ÆcX µGt¾xi¨=¢Î⫉ÝÁ Q»Â°$Ïâ©A¢WÙ[ƒDíÃ~à IÿêòWÖ…ÿW—¿².úÌÇÆ•ÚH†õظÒx¨ú<5®ôà8‘ÿ„q…ëªï†µTʆ¿Ð‡9*Ni+‰Ë›%êÄ1ïÈUö J!úûU¶•ºD¿ÀÇ€!33D!d ‚Šƒ QA„ÿ¿ÕÝ™pàÜå…µîÃyÑÐIwU×°kïN~‘›¼2³`¨3B¶˜y'JqOm ]é%L 9É™r”s­ã˜¸ý‚@@ãÀžèñ1ß"¶—Ò:j½”¾±n¯Î(ã~ú–…l\Ë~6ú Eæe/5.”&Âf†-žd1O°‚Ÿ‡Ã·FR±(Úò3?‰—zûÖ¬¸ìÌà.ëð¹0]‰àlÇ`Fz_þÏ`ZÊ·`öa"ïÌ€)ù`w`†ç¾ËvǼû¯`¶yÈüÍËÆ!cÜLM·÷ÛÂ8†Ês½õPeC!ÝØ^w!eùº@ÇÎa[õEËÚûOª6»! ôvàØŠÍàÝ!|‚ª’Í3%ñ!7ÐáÖÍ$äòI—¬Çýšïhö@kF_äò•b‡¤B¹u^_·rŠ­œÍ «_{u‚ÌCµýªÇÀÔåZAœ(Qб Ðº ´£Œ "÷ìIY¬k "RÆMSƒmï)mÎŽº`eíì:;„ü$”¸.™Ãš†SKtýé'ÆÖ¾2* ï åpòn¢ÂçÅjÓÄyÓáĸíUhZÉ´B¯ŽS0ÙéäÁa,IËýØeÌ!ÖÍ~ ãf²Ä~ûžºOf+\îR ÈÚþjTx|H—åþex“Ïy…5º€ ‘5_|AQåcHÝi¡Ì0)V7)¼†ó‚W{9Ð]õ‚Ü0_9C*T*¼öK‰È†Ò®¯YÉ@"–fÞ_sÔw•k¹×\½"+ðÏýÓŒÎܧnÂrËyÉBd!+LsEɺ JÔ°áw²aHvª–ƒ -²Qh;(Ši9Ö¢tɦã> ºú L´pr"<ÎTM²:¬*Ýóq]ºoªÊ~NÊ‹ú%œÝ™›“åŒÌNîJrå%¥¢´ÎäuNs†ÊUÂõ"Ž="k]¦ä‚bc õ”ì- }³ûôshò¡Þo Ì$Ü6+Î逴@ì´þJ…Z‰B’G§4õ“ø·®xލord©½}åÈ^È­Sù+W|G„?:c¿úÝ%üQìÛsp"0[ ׋¹šùOóFŽØV³Qqü>…~ aƒLÇlMeÉ]Èn(N”Ä(bÂ_¼øÌaj ^Ѱ:¢8ÙÔ Ã£ÇÒý<£%Ù!¼æc;¯É†õ9›F/|6S}Á°†æ Ü SÈ[3³ï£z ŸƒK²j‘4Mº ”~ßEÁÒ9rSÌžHþÜÁ’áï0ª±áèOÔ w—æÑÜߤo¶£nöèÍúf;êjl£¾ÙŽºÁ]¹AßlCÝhŒü€xŒ -I‰Å5€4.{ÞÆª™ÓlÆ2K§úuåä˜:ƒ±\´ ­8¬œµ+‡ìèJ*g Iø“讹I -¤å+>—ªÈ)?™¾ˆËÂx‹T>Ú;bÆíÊñ¨Hyù»”LCv2(rHkÆV£)ξ˖¡v‘Gk¼›¡«c‰¡rßÝ;/ŸÔißÅôÇäò܌Ǵ|ú<q̾Cg¢æân¥5DsSâþìõwê–©@°Zo(ü™°â‹Z<ÌÙ“aBn½t.•\²Òß¼ü/óÂÿÍËÿ2/Ñ•™ouçvTç½YwnGuîÑ›uçvT'š/žî$”`Ã&²Ófc˜qâRÇOcDýÚ|È[Iøõ^8èä¹É+Ó1 †:;(¶R3ïD ÁÚ¯¤—Tt0ä$gfÈMT À”F̵Žcâö b„ãK¶Å¯ì¥´ŽZ/¥oG¬›¿«3ʸŸ¾e!×2ÎN(‹yyö²QãüW—Í [<ÉqS‰‘§AÄáð•èùK)£åg~/5ôö­YyŽÜ—ZíÆ&Ž.Âý‚ý³¥×ÏÔ»: -¡š¸Ø]Šá¢Ci%Ëýz¿AH ©—i„Ç.A¿ìgǸ¨„Ý5 FëyÇMýdcgM³G˜†oÇm7 Žpfk¢&vǘQ¿xœywŒî-»bÌ¡~9Ýc†ˆÎ ~ÿÍËóÒdõ]åZÛÆƒžêBøPžIqýú -y{t˜›ºA«ì%1ÃãCµ9;ê (ÕaŠyÈÑHŽ÷5 -¯;Qº>8,’Ý¡Š€c•háäDxœ©šduXU¾Q°¶˜ÁÙ*A'¦x S •ÃE*ú3냕|¹u%׌¾|x‘µ»+¦AI@¦ò’}ؒŇLÄß݆&÷ó#/°‚(–POærrlRvÙ:áÅjÓ4Ñ<Ó?½}éU=:ÈÓ•uñîr: ‰%EãùVÈ l% -dj~4ÚíÇ$«öâÀ„xã•(Å0þÚ:ñÛ%Üå&{p(ÓK¹Aeàg~Ƹˆ­ ò±pK”£®ß^§î“Ùc$.w©Ë¬í¯E…LJtfxë¼Â]û±Ë#²æsG±ù"§â0þçNf˜«›ÔÚZn5ªü! -eÈ¢øP¡RÞÚ¤#K‚&nðB™›íô»¬ìçê§²™Ã­ûqûX¾]²9±:,äÞK¶!’“J)®8J©~¨¢ˆÜ ª­J6Ï” :h&%Ž-Â]¤ûãø1ڣȞ2$Nª(Q£\~[wŽÄe——hJ3Ÿ‚ÚsD•`L²ûôsˆ3 ~j,0ÃóŽÐŠs:ÀHD«9\º€mÔ -„ Îiê¾)DÙš3ô„; uï:—æ#-?»2ÍÌW¾r¦aWÜè8‚îò¥+G«ïb2÷ùÈz¦ÕþC@3!lÜ ì—„i]ëŽçÄæ#­ RJ•8æ1æ¢ÚMH§‹róï^œ~P(b ‹¢P*÷  -Á.O_ʆØè·U¡f,îrw´Z¯œ¯eíý§ÍƒŽ¼E…(É ë>çÕÕtqœŒ:¦xGŸÄÈ99¬bzö8+Ç©z ¶Õ9/kµœûä ‰)’C]é¡|@Jÿ…£?›ÈÍÇåîäª1¬@w*/z±MyñT¾Ü< endstream endobj 5 0 obj <> endobj 31 0 obj <> endobj 62 0 obj <> endobj 110 0 obj <> endobj 118 0 obj [/View/Design] endobj 119 0 obj <>>> endobj 70 0 obj [/View/Design] endobj 71 0 obj <>>> endobj 39 0 obj [/View/Design] endobj 40 0 obj <>>> endobj 14 0 obj [/View/Design] endobj 15 0 obj <>>> endobj 167 0 obj [166 0 R] endobj 219 0 obj <> endobj xref 0 220 0000000004 65535 f -0000000016 00000 n -0000000206 00000 n -0000021781 00000 n -0000000006 00000 f -0000761517 00000 n -0000000008 00000 f -0000021832 00000 n -0000000009 00000 f -0000000010 00000 f -0000000011 00000 f -0000000012 00000 f -0000000013 00000 f -0000000016 00000 f -0000762153 00000 n -0000762184 00000 n -0000000017 00000 f -0000000018 00000 f -0000000019 00000 f -0000000020 00000 f -0000000021 00000 f -0000000022 00000 f -0000000023 00000 f -0000000024 00000 f -0000000025 00000 f -0000000026 00000 f -0000000027 00000 f -0000000028 00000 f -0000000029 00000 f -0000000030 00000 f -0000000032 00000 f -0000761587 00000 n -0000000033 00000 f -0000000034 00000 f -0000000035 00000 f -0000000036 00000 f -0000000037 00000 f -0000000038 00000 f -0000000041 00000 f -0000762037 00000 n -0000762068 00000 n -0000000042 00000 f -0000000043 00000 f -0000000044 00000 f -0000000045 00000 f -0000000046 00000 f -0000000047 00000 f -0000000048 00000 f -0000000049 00000 f -0000000050 00000 f -0000000051 00000 f -0000000052 00000 f -0000000053 00000 f -0000000054 00000 f -0000000055 00000 f -0000000056 00000 f -0000000057 00000 f -0000000058 00000 f -0000000059 00000 f -0000000060 00000 f -0000000061 00000 f -0000000063 00000 f -0000761658 00000 n -0000000064 00000 f -0000000065 00000 f -0000000066 00000 f -0000000067 00000 f -0000000068 00000 f -0000000069 00000 f -0000000072 00000 f -0000761921 00000 n -0000761952 00000 n -0000000073 00000 f -0000000074 00000 f -0000000075 00000 f -0000000076 00000 f -0000000077 00000 f -0000000078 00000 f -0000000079 00000 f -0000000080 00000 f -0000000081 00000 f -0000000082 00000 f -0000000083 00000 f -0000000084 00000 f -0000000085 00000 f -0000000086 00000 f -0000000087 00000 f -0000000088 00000 f -0000000089 00000 f -0000000090 00000 f -0000000091 00000 f -0000000092 00000 f -0000000093 00000 f -0000000094 00000 f -0000000095 00000 f -0000000096 00000 f -0000000097 00000 f -0000000098 00000 f -0000000099 00000 f -0000000100 00000 f -0000000101 00000 f -0000000102 00000 f -0000000103 00000 f -0000000104 00000 f -0000000105 00000 f -0000000106 00000 f -0000000107 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000761729 00000 n -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000761803 00000 n -0000761835 00000 n -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000000000 00000 f -0000167705 00000 n -0000168105 00000 n -0000167513 00000 n -0000762269 00000 n -0000022228 00000 n -0000174160 00000 n -0000174046 00000 n -0000166614 00000 n -0000166949 00000 n -0000166999 00000 n -0000167587 00000 n -0000167619 00000 n -0000170992 00000 n -0000168511 00000 n -0000168602 00000 n -0000168956 00000 n -0000171328 00000 n -0000174236 00000 n -0000175310 00000 n -0000176349 00000 n -0000184727 00000 n -0000200129 00000 n -0000214854 00000 n -0000231478 00000 n -0000246228 00000 n -0000261647 00000 n -0000276943 00000 n -0000291713 00000 n -0000308111 00000 n -0000324371 00000 n -0000339335 00000 n -0000356000 00000 n -0000372403 00000 n -0000386128 00000 n -0000401019 00000 n -0000416089 00000 n -0000431281 00000 n -0000446007 00000 n -0000460001 00000 n -0000477757 00000 n -0000498626 00000 n -0000518535 00000 n -0000530974 00000 n -0000554024 00000 n -0000575326 00000 n -0000596601 00000 n -0000616723 00000 n -0000635505 00000 n -0000656308 00000 n -0000669960 00000 n -0000685324 00000 n -0000700624 00000 n -0000714946 00000 n -0000730599 00000 n -0000745721 00000 n -0000762296 00000 n -trailer <<0D2B3B2DEB12474B8F4EDCEA80967463>]>> startxref 762562 %%EOF \ No newline at end of file diff --git a/sources/libs/font-awesome/FontAwesome.ttf b/sources/libs/font-awesome/FontAwesome.ttf deleted file mode 100644 index 793a922a0bca0ebd3fb57529eb27b6a6e4e9e048..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 23156 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 .radio:first-child, -.controls > .checkbox:first-child { - padding-top: 5px; -} -.radio.inline, -.checkbox.inline { - display: inline-block; - padding-top: 5px; - margin-bottom: 0; - vertical-align: middle; -} -.radio.inline + .radio.inline, -.checkbox.inline + .checkbox.inline { - margin-left: 10px; -} -input, -textarea { - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.075); - -webkit-transition: border linear 0.2s, box-shadow linear 0.2s; - -moz-transition: border linear 0.2s, box-shadow linear 0.2s; - -ms-transition: border linear 0.2s, box-shadow linear 0.2s; - -o-transition: border linear 0.2s, box-shadow linear 0.2s; - transition: border linear 0.2s, box-shadow linear 0.2s; -} -input:focus, -textarea:focus { - border-color: rgba(82, 168, 236, 0.8); - outline: 0; - outline: thin dotted \9; - /* IE6-9 */ - - -webkit-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6); - -moz-box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6); - box-shadow: inset 0 1px 1px rgba(0,0,0,.075), 0 0 8px rgba(82,168,236,.6); -} -input[type="file"]:focus, -input[type="radio"]:focus, -input[type="checkbox"]:focus, -select:focus { - outline: thin dotted #333; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} -.input-mini { - width: 60px; -} -.input-small { - width: 90px; -} -.input-medium { - width: 150px; -} -.input-large { - width: 210px; -} -.input-xlarge { - width: 270px; -} -.input-xxlarge { - width: 530px; -} -input[class*="span"], -select[class*="span"], -textarea[class*="span"], -.uneditable-input[class*="span"], -.row-fluid input[class*="span"], -.row-fluid select[class*="span"], -.row-fluid textarea[class*="span"], -.row-fluid .uneditable-input[class*="span"] { - float: none; - margin-left: 0; -} -input, -textarea, -.uneditable-input { - margin-left: 0; -} -input.span12, textarea.span12, .uneditable-input.span12 { - width: 930px; -} -input.span11, textarea.span11, .uneditable-input.span11 { - width: 850px; -} -input.span10, textarea.span10, .uneditable-input.span10 { - width: 770px; -} -input.span9, textarea.span9, .uneditable-input.span9 { - width: 690px; -} -input.span8, textarea.span8, .uneditable-input.span8 { - width: 610px; -} -input.span7, textarea.span7, .uneditable-input.span7 { - width: 530px; -} -input.span6, textarea.span6, .uneditable-input.span6 { - width: 450px; -} -input.span5, textarea.span5, .uneditable-input.span5 { - width: 370px; -} -input.span4, textarea.span4, .uneditable-input.span4 { - width: 290px; -} -input.span3, textarea.span3, .uneditable-input.span3 { - width: 210px; -} -input.span2, textarea.span2, .uneditable-input.span2 { - width: 130px; -} -input.span1, textarea.span1, .uneditable-input.span1 { - width: 50px; -} -input[disabled], -select[disabled], -textarea[disabled], -input[readonly], -select[readonly], -textarea[readonly] { - cursor: not-allowed; - background-color: #eeeeee; - border-color: #ddd; -} -input[type="radio"][disabled], -input[type="checkbox"][disabled], -input[type="radio"][readonly], -input[type="checkbox"][readonly] { - background-color: transparent; -} -.control-group.warning > label, -.control-group.warning .help-block, -.control-group.warning .help-inline { - color: #c09853; -} -.control-group.warning input, -.control-group.warning select, -.control-group.warning textarea { - color: #c09853; - border-color: #c09853; -} -.control-group.warning input:focus, -.control-group.warning select:focus, -.control-group.warning textarea:focus { - border-color: #a47e3c; - -webkit-box-shadow: 0 0 6px #dbc59e; - -moz-box-shadow: 0 0 6px #dbc59e; - box-shadow: 0 0 6px #dbc59e; -} -.control-group.warning .input-prepend .add-on, -.control-group.warning .input-append .add-on { - color: #c09853; - background-color: #fcf8e3; - border-color: #c09853; -} -.control-group.error > label, -.control-group.error .help-block, -.control-group.error .help-inline { - color: #b94a48; -} -.control-group.error input, -.control-group.error select, -.control-group.error textarea { - color: #b94a48; - border-color: #b94a48; -} -.control-group.error input:focus, -.control-group.error select:focus, -.control-group.error textarea:focus { - border-color: #953b39; - -webkit-box-shadow: 0 0 6px #d59392; - -moz-box-shadow: 0 0 6px #d59392; - box-shadow: 0 0 6px #d59392; -} -.control-group.error .input-prepend .add-on, -.control-group.error .input-append .add-on { - color: #b94a48; - background-color: #f2dede; - border-color: #b94a48; -} -.control-group.success > label, -.control-group.success .help-block, -.control-group.success .help-inline { - color: #468847; -} -.control-group.success input, -.control-group.success select, -.control-group.success textarea { - color: #468847; - border-color: #468847; -} -.control-group.success input:focus, -.control-group.success select:focus, -.control-group.success textarea:focus { - border-color: #356635; - -webkit-box-shadow: 0 0 6px #7aba7b; - -moz-box-shadow: 0 0 6px #7aba7b; - box-shadow: 0 0 6px #7aba7b; -} -.control-group.success .input-prepend .add-on, -.control-group.success .input-append .add-on { - color: #468847; - background-color: #dff0d8; - border-color: #468847; -} -input:focus:required:invalid, -textarea:focus:required:invalid, -select:focus:required:invalid { - color: #b94a48; - border-color: #ee5f5b; -} -input:focus:required:invalid:focus, -textarea:focus:required:invalid:focus, -select:focus:required:invalid:focus { - border-color: #e9322d; - -webkit-box-shadow: 0 0 6px #f8b9b7; - -moz-box-shadow: 0 0 6px #f8b9b7; - box-shadow: 0 0 6px #f8b9b7; -} -.form-actions { - padding: 20px 20px 21px; - margin-top: 21px; - margin-bottom: 21px; - background-color: #f5f5f5; - border-top: 1px solid #ddd; - *zoom: 1; -} -.form-actions:before, -.form-actions:after { - display: table; - content: ""; -} -.form-actions:after { - clear: both; -} -.uneditable-input { - overflow: hidden; - white-space: nowrap; - cursor: not-allowed; - background-color: #ffffff; - border-color: #eee; - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); - -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.025); -} -:-moz-placeholder { - color: #999999; -} -::-webkit-input-placeholder { - color: #999999; -} -.help-block, -.help-inline { - color: #555555; -} -.help-block { - display: block; - margin-bottom: 10.5px; -} -.help-inline { - display: inline-block; - *display: inline; - /* IE7 inline-block hack */ - - *zoom: 1; - vertical-align: middle; - padding-left: 5px; -} -.input-prepend, -.input-append { - margin-bottom: 5px; -} -.input-prepend input, -.input-append input, -.input-prepend select, -.input-append select, -.input-prepend .uneditable-input, -.input-append .uneditable-input { - position: relative; - margin-bottom: 0; - *margin-left: 0; - vertical-align: middle; - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; -} -.input-prepend input:focus, -.input-append input:focus, -.input-prepend select:focus, -.input-append select:focus, -.input-prepend .uneditable-input:focus, -.input-append .uneditable-input:focus { - z-index: 2; -} -.input-prepend .uneditable-input, -.input-append .uneditable-input { - border-left-color: #ccc; -} -.input-prepend .add-on, -.input-append .add-on { - display: inline-block; - width: auto; - height: 21px; - min-width: 16px; - padding: 4px 5px; - font-weight: normal; - line-height: 21px; - text-align: center; - text-shadow: 0 1px 0 #ffffff; - vertical-align: middle; - background-color: #eeeeee; - border: 1px solid #ccc; -} -.input-prepend .add-on, -.input-append .add-on, -.input-prepend .btn, -.input-append .btn { - margin-left: -1px; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} -.input-prepend .active, -.input-append .active { - background-color: #a9dba9; - border-color: #46a546; -} -.input-prepend .add-on, -.input-prepend .btn { - margin-right: -1px; -} -.input-prepend .add-on:first-child, -.input-prepend .btn:first-child { - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; -} -.input-append input, -.input-append select, -.input-append .uneditable-input { - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; -} -.input-append .uneditable-input { - border-right-color: #ccc; - border-left-color: #eee; -} -.input-append .add-on:last-child, -.input-append .btn:last-child { - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; -} -.input-prepend.input-append input, -.input-prepend.input-append select, -.input-prepend.input-append .uneditable-input { - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} -.input-prepend.input-append .add-on:first-child, -.input-prepend.input-append .btn:first-child { - margin-right: -1px; - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; -} -.input-prepend.input-append .add-on:last-child, -.input-prepend.input-append .btn:last-child { - margin-left: -1px; - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; -} -.search-query { - padding-right: 14px; - padding-right: 4px \9; - padding-left: 14px; - padding-left: 4px \9; - /* IE7-8 doesn't have border-radius, so don't indent the padding */ - - margin-bottom: 0; - -webkit-border-radius: 14px; - -moz-border-radius: 14px; - border-radius: 14px; -} -.form-search input, -.form-inline input, -.form-horizontal input, -.form-search textarea, -.form-inline textarea, -.form-horizontal textarea, -.form-search select, -.form-inline select, -.form-horizontal select, -.form-search .help-inline, -.form-inline .help-inline, -.form-horizontal .help-inline, -.form-search .uneditable-input, -.form-inline .uneditable-input, -.form-horizontal .uneditable-input, -.form-search .input-prepend, -.form-inline .input-prepend, -.form-horizontal .input-prepend, -.form-search .input-append, -.form-inline .input-append, -.form-horizontal .input-append { - display: inline-block; - *display: inline; - /* IE7 inline-block hack */ - - *zoom: 1; - margin-bottom: 0; -} -.form-search .hide, -.form-inline .hide, -.form-horizontal .hide { - display: none; -} -.form-search label, -.form-inline label { - display: inline-block; -} -.form-search .input-append, -.form-inline .input-append, -.form-search .input-prepend, -.form-inline .input-prepend { - margin-bottom: 0; -} -.form-search .radio, -.form-search .checkbox, -.form-inline .radio, -.form-inline .checkbox { - padding-left: 0; - margin-bottom: 0; - vertical-align: middle; -} -.form-search .radio input[type="radio"], -.form-search .checkbox input[type="checkbox"], -.form-inline .radio input[type="radio"], -.form-inline .checkbox input[type="checkbox"] { - float: left; - margin-right: 3px; - margin-left: 0; -} -.control-group { - margin-bottom: 10.5px; -} -legend + .control-group { - margin-top: 21px; - -webkit-margin-top-collapse: separate; -} -.form-horizontal .control-group { - margin-bottom: 21px; - *zoom: 1; -} -.form-horizontal .control-group:before, -.form-horizontal .control-group:after { - display: table; - content: ""; -} -.form-horizontal .control-group:after { - clear: both; -} -.form-horizontal .control-label { - float: left; - width: 140px; - padding-top: 5px; - text-align: right; -} -.form-horizontal .controls { - *display: inline-block; - *padding-left: 20px; - margin-left: 160px; - *margin-left: 0; -} -.form-horizontal .controls:first-child { - *padding-left: 160px; -} -.form-horizontal .help-block { - margin-top: 10.5px; - margin-bottom: 0; -} -.form-horizontal .form-actions { - padding-left: 160px; -} -table { - max-width: 100%; - background-color: transparent; - border-collapse: collapse; - border-spacing: 0; -} -.table { - width: 100%; - margin-bottom: 21px; -} -.table th, -.table td { - padding: 8px; - line-height: 21px; - text-align: left; - vertical-align: top; - border-top: 1px solid #dddddd; -} -.table th { - font-weight: bold; -} -.table thead th { - vertical-align: bottom; -} -.table caption + thead tr:first-child th, -.table caption + thead tr:first-child td, -.table colgroup + thead tr:first-child th, -.table colgroup + thead tr:first-child td, -.table thead:first-child tr:first-child th, -.table thead:first-child tr:first-child td { - border-top: 0; -} -.table tbody + tbody { - border-top: 2px solid #dddddd; -} -.table-condensed th, -.table-condensed td { - padding: 4px 5px; -} -.table-bordered { - border: 1px solid #dddddd; - border-collapse: separate; - *border-collapse: collapsed; - border-left: 0; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.table-bordered th, -.table-bordered td { - border-left: 1px solid #dddddd; -} -.table-bordered caption + thead tr:first-child th, -.table-bordered caption + tbody tr:first-child th, -.table-bordered caption + tbody tr:first-child td, -.table-bordered colgroup + thead tr:first-child th, -.table-bordered colgroup + tbody tr:first-child th, -.table-bordered colgroup + tbody tr:first-child td, -.table-bordered thead:first-child tr:first-child th, -.table-bordered tbody:first-child tr:first-child th, -.table-bordered tbody:first-child tr:first-child td { - border-top: 0; -} -.table-bordered thead:first-child tr:first-child th:first-child, -.table-bordered tbody:first-child tr:first-child td:first-child { - -webkit-border-top-left-radius: 4px; - border-top-left-radius: 4px; - -moz-border-radius-topleft: 4px; -} -.table-bordered thead:first-child tr:first-child th:last-child, -.table-bordered tbody:first-child tr:first-child td:last-child { - -webkit-border-top-right-radius: 4px; - border-top-right-radius: 4px; - -moz-border-radius-topright: 4px; -} -.table-bordered thead:last-child tr:last-child th:first-child, -.table-bordered tbody:last-child tr:last-child td:first-child { - -webkit-border-radius: 0 0 0 4px; - -moz-border-radius: 0 0 0 4px; - border-radius: 0 0 0 4px; - -webkit-border-bottom-left-radius: 4px; - border-bottom-left-radius: 4px; - -moz-border-radius-bottomleft: 4px; -} -.table-bordered thead:last-child tr:last-child th:last-child, -.table-bordered tbody:last-child tr:last-child td:last-child { - -webkit-border-bottom-right-radius: 4px; - border-bottom-right-radius: 4px; - -moz-border-radius-bottomright: 4px; -} -.table-striped tbody tr:nth-child(odd) td, -.table-striped tbody tr:nth-child(odd) th { - background-color: #f9f9f9; -} -.table tbody tr:hover td, -.table tbody tr:hover th { - background-color: #f5f5f5; -} -table .span1 { - float: none; - width: 44px; - margin-left: 0; -} -table .span2 { - float: none; - width: 124px; - margin-left: 0; -} -table .span3 { - float: none; - width: 204px; - margin-left: 0; -} -table .span4 { - float: none; - width: 284px; - margin-left: 0; -} -table .span5 { - float: none; - width: 364px; - margin-left: 0; -} -table .span6 { - float: none; - width: 444px; - margin-left: 0; -} -table .span7 { - float: none; - width: 524px; - margin-left: 0; -} -table .span8 { - float: none; - width: 604px; - margin-left: 0; -} -table .span9 { - float: none; - width: 684px; - margin-left: 0; -} -table .span10 { - float: none; - width: 764px; - margin-left: 0; -} -table .span11 { - float: none; - width: 844px; - margin-left: 0; -} -table .span12 { - float: none; - width: 924px; - margin-left: 0; -} -table .span13 { - float: none; - width: 1004px; - margin-left: 0; -} -table .span14 { - float: none; - width: 1084px; - margin-left: 0; -} -table .span15 { - float: none; - width: 1164px; - margin-left: 0; -} -table .span16 { - float: none; - width: 1244px; - margin-left: 0; -} -table .span17 { - float: none; - width: 1324px; - margin-left: 0; -} -table .span18 { - float: none; - width: 1404px; - margin-left: 0; -} -table .span19 { - float: none; - width: 1484px; - margin-left: 0; -} -table .span20 { - float: none; - width: 1564px; - margin-left: 0; -} -table .span21 { - float: none; - width: 1644px; - margin-left: 0; -} -table .span22 { - float: none; - width: 1724px; - margin-left: 0; -} -table .span23 { - float: none; - width: 1804px; - margin-left: 0; -} -table .span24 { - float: none; - width: 1884px; - margin-left: 0; -} -.dropup, -.dropdown { - position: relative; -} -.dropdown-toggle { - *margin-bottom: -3px; -} -.dropdown-toggle:active, -.open .dropdown-toggle { - outline: 0; -} -.caret { - display: inline-block; - width: 0; - height: 0; - vertical-align: top; - border-top: 4px solid #000000; - border-right: 4px solid transparent; - border-left: 4px solid transparent; - content: ""; - opacity: 0.3; - filter: alpha(opacity=30); -} -.dropdown .caret { - margin-top: 8px; - margin-left: 2px; -} -.dropdown:hover .caret, -.open .caret { - opacity: 1; - filter: alpha(opacity=100); -} -.dropdown-menu { - position: absolute; - top: 100%; - left: 0; - z-index: 1000; - display: none; - float: left; - min-width: 160px; - padding: 4px 0; - margin: 1px 0 0; - list-style: none; - background-color: #ffffff; - border: 1px solid #ccc; - border: 1px solid rgba(0, 0, 0, 0.2); - *border-right-width: 2px; - *border-bottom-width: 2px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; - -webkit-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -moz-box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - box-shadow: 0 5px 10px rgba(0, 0, 0, 0.2); - -webkit-background-clip: padding-box; - -moz-background-clip: padding; - background-clip: padding-box; -} -.dropdown-menu.pull-right { - right: 0; - left: auto; -} -.dropdown-menu .divider { - *width: 100%; - height: 1px; - margin: 9.5px 1px; - *margin: -5px 0 5px; - overflow: hidden; - background-color: #e5e5e5; - border-bottom: 1px solid #ffffff; -} -.dropdown-menu a { - display: block; - padding: 3px 15px; - clear: both; - font-weight: normal; - line-height: 21px; - color: #333333; - white-space: nowrap; -} -.dropdown-menu li > a:hover, -.dropdown-menu .active > a, -.dropdown-menu .active > a:hover { - color: #ffffff; - text-decoration: none; - background-color: #9d261d; -} -.open { - *z-index: 1000; -} -.open .dropdown-menu { - display: block; -} -.pull-right .dropdown-menu { - right: 0; - left: auto; -} -.dropup .caret, -.navbar-fixed-bottom .dropdown .caret { - border-top: 0; - border-bottom: 4px solid #000000; - content: "\2191"; -} -.dropup .dropdown-menu, -.navbar-fixed-bottom .dropdown .dropdown-menu { - top: auto; - bottom: 100%; - margin-bottom: 1px; -} -.typeahead { - margin-top: 2px; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.well { - min-height: 20px; - padding: 19px; - margin-bottom: 20px; - background-color: #f5f5f5; - border: 1px solid #eee; - border: 1px solid rgba(0, 0, 0, 0.05); - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - -webkit-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - -moz-box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); - box-shadow: inset 0 1px 1px rgba(0, 0, 0, 0.05); -} -.well blockquote { - border-color: #ddd; - border-color: rgba(0, 0, 0, 0.15); -} -.well-large { - padding: 24px; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; -} -.well-small { - padding: 9px; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} -.fade { - opacity: 0; - filter: alpha(opacity=0); - -webkit-transition: opacity 0.15s linear; - -moz-transition: opacity 0.15s linear; - -ms-transition: opacity 0.15s linear; - -o-transition: opacity 0.15s linear; - transition: opacity 0.15s linear; -} -.fade.in { - opacity: 1; - filter: alpha(opacity=100); -} -.collapse { - position: relative; - height: 0; - overflow: hidden; - -webkit-transition: height 0.35s ease; - -moz-transition: height 0.35s ease; - -ms-transition: height 0.35s ease; - -o-transition: height 0.35s ease; - transition: height 0.35s ease; -} -.collapse.in { - height: auto; -} -.close { - float: right; - font-size: 20px; - font-weight: bold; - line-height: 21px; - color: #000000; - text-shadow: 0 1px 0 #ffffff; - opacity: 0.2; - filter: alpha(opacity=20); -} -.close:hover { - color: #000000; - text-decoration: none; - cursor: pointer; - opacity: 0.4; - filter: alpha(opacity=40); -} -button.close { - padding: 0; - cursor: pointer; - background: transparent; - border: 0; - -webkit-appearance: none; -} -.btn { - display: inline-block; - *display: inline; - /* IE7 inline-block hack */ - - *zoom: 1; - padding: 4px 10px 4px; - margin-bottom: 0; - font-size: 14px; - line-height: 21px; - *line-height: 20px; - color: #333333; - text-align: center; - text-shadow: 0 1px 1px rgba(255, 255, 255, 0.75); - vertical-align: middle; - cursor: pointer; - background-color: #f5f5f5; - background-image: -moz-linear-gradient(top, #ffffff, #e6e6e6); - background-image: -ms-linear-gradient(top, #ffffff, #e6e6e6); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#e6e6e6)); - background-image: -webkit-linear-gradient(top, #ffffff, #e6e6e6); - background-image: -o-linear-gradient(top, #ffffff, #e6e6e6); - background-image: linear-gradient(top, #ffffff, #e6e6e6); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#e6e6e6', GradientType=0); - border-color: #e6e6e6 #e6e6e6 #bfbfbf; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - *background-color: #e6e6e6; - /* Darken IE7 buttons by default so they stand out more given they won't have borders */ - - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - border: 1px solid #cccccc; - *border: 0; - border-bottom-color: #b3b3b3; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - *margin-left: .3em; - -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); - -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); - box-shadow: inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); -} -.btn:hover, -.btn:active, -.btn.active, -.btn.disabled, -.btn[disabled] { - background-color: #e6e6e6; - *background-color: #d9d9d9; -} -.btn:active, -.btn.active { - background-color: #cccccc \9; -} -.btn:first-child { - *margin-left: 0; -} -.btn:hover { - color: #333333; - text-decoration: none; - background-color: #e6e6e6; - *background-color: #d9d9d9; - /* Buttons in IE7 don't get borders, so darken on hover */ - - background-position: 0 -15px; - -webkit-transition: background-position 0.1s linear; - -moz-transition: background-position 0.1s linear; - -ms-transition: background-position 0.1s linear; - -o-transition: background-position 0.1s linear; - transition: background-position 0.1s linear; -} -.btn:focus { - outline: thin dotted #333; - outline: 5px auto -webkit-focus-ring-color; - outline-offset: -2px; -} -.btn.active, -.btn:active { - background-color: #e6e6e6; - background-color: #d9d9d9 \9; - background-image: none; - outline: 0; - -webkit-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05); - -moz-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05); - box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05); -} -.btn.disabled, -.btn[disabled] { - cursor: default; - background-color: #e6e6e6; - background-image: none; - opacity: 0.65; - filter: alpha(opacity=65); - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; -} -.btn-large { - padding: 9px 14px; - font-size: 16px; - line-height: normal; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; -} -.btn-large [class^="icon-"] { - margin-top: 1px; -} -.btn-small { - padding: 5px 9px; - font-size: 12px; - line-height: 19px; -} -.btn-small [class^="icon-"] { - margin-top: -1px; -} -.btn-mini { - padding: 2px 6px; - font-size: 12px; - line-height: 17px; -} -.btn-primary, -.btn-primary:hover, -.btn-warning, -.btn-warning:hover, -.btn-danger, -.btn-danger:hover, -.btn-success, -.btn-success:hover, -.btn-info, -.btn-info:hover, -.btn-inverse, -.btn-inverse:hover { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); -} -.btn-primary.active, -.btn-warning.active, -.btn-danger.active, -.btn-success.active, -.btn-info.active, -.btn-inverse.active { - color: rgba(255, 255, 255, 0.75); -} -.btn { - border-color: #ccc; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); -} -.btn-primary { - background-color: #9d331d; - background-image: -moz-linear-gradient(top, #9d261d, #9d461d); - background-image: -ms-linear-gradient(top, #9d261d, #9d461d); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#9d261d), to(#9d461d)); - background-image: -webkit-linear-gradient(top, #9d261d, #9d461d); - background-image: -o-linear-gradient(top, #9d261d, #9d461d); - background-image: linear-gradient(top, #9d261d, #9d461d); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#9d261d', endColorstr='#9d461d', GradientType=0); - border-color: #9d461d #9d461d #5c2911; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - *background-color: #9d461d; - /* Darken IE7 buttons by default so they stand out more given they won't have borders */ - - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); -} -.btn-primary:hover, -.btn-primary:active, -.btn-primary.active, -.btn-primary.disabled, -.btn-primary[disabled] { - background-color: #9d461d; - *background-color: #873c19; -} -.btn-primary:active, -.btn-primary.active { - background-color: #723315 \9; -} -.btn-warning { - background-color: #faa732; - background-image: -moz-linear-gradient(top, #fbb450, #f89406); - background-image: -ms-linear-gradient(top, #fbb450, #f89406); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); - background-image: -webkit-linear-gradient(top, #fbb450, #f89406); - background-image: -o-linear-gradient(top, #fbb450, #f89406); - background-image: linear-gradient(top, #fbb450, #f89406); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0); - border-color: #f89406 #f89406 #ad6704; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - *background-color: #f89406; - /* Darken IE7 buttons by default so they stand out more given they won't have borders */ - - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); -} -.btn-warning:hover, -.btn-warning:active, -.btn-warning.active, -.btn-warning.disabled, -.btn-warning[disabled] { - background-color: #f89406; - *background-color: #df8505; -} -.btn-warning:active, -.btn-warning.active { - background-color: #c67605 \9; -} -.btn-danger { - background-color: #da4f49; - background-image: -moz-linear-gradient(top, #ee5f5b, #bd362f); - background-image: -ms-linear-gradient(top, #ee5f5b, #bd362f); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#bd362f)); - background-image: -webkit-linear-gradient(top, #ee5f5b, #bd362f); - background-image: -o-linear-gradient(top, #ee5f5b, #bd362f); - background-image: linear-gradient(top, #ee5f5b, #bd362f); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#bd362f', GradientType=0); - border-color: #bd362f #bd362f #802420; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - *background-color: #bd362f; - /* Darken IE7 buttons by default so they stand out more given they won't have borders */ - - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); -} -.btn-danger:hover, -.btn-danger:active, -.btn-danger.active, -.btn-danger.disabled, -.btn-danger[disabled] { - background-color: #bd362f; - *background-color: #a9302a; -} -.btn-danger:active, -.btn-danger.active { - background-color: #942a25 \9; -} -.btn-success { - background-color: #5bb75b; - background-image: -moz-linear-gradient(top, #62c462, #51a351); - background-image: -ms-linear-gradient(top, #62c462, #51a351); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#51a351)); - background-image: -webkit-linear-gradient(top, #62c462, #51a351); - background-image: -o-linear-gradient(top, #62c462, #51a351); - background-image: linear-gradient(top, #62c462, #51a351); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#51a351', GradientType=0); - border-color: #51a351 #51a351 #387038; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - *background-color: #51a351; - /* Darken IE7 buttons by default so they stand out more given they won't have borders */ - - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); -} -.btn-success:hover, -.btn-success:active, -.btn-success.active, -.btn-success.disabled, -.btn-success[disabled] { - background-color: #51a351; - *background-color: #499249; -} -.btn-success:active, -.btn-success.active { - background-color: #408140 \9; -} -.btn-info { - background-color: #49afcd; - background-image: -moz-linear-gradient(top, #5bc0de, #2f96b4); - background-image: -ms-linear-gradient(top, #5bc0de, #2f96b4); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#2f96b4)); - background-image: -webkit-linear-gradient(top, #5bc0de, #2f96b4); - background-image: -o-linear-gradient(top, #5bc0de, #2f96b4); - background-image: linear-gradient(top, #5bc0de, #2f96b4); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#2f96b4', GradientType=0); - border-color: #2f96b4 #2f96b4 #1f6377; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - *background-color: #2f96b4; - /* Darken IE7 buttons by default so they stand out more given they won't have borders */ - - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); -} -.btn-info:hover, -.btn-info:active, -.btn-info.active, -.btn-info.disabled, -.btn-info[disabled] { - background-color: #2f96b4; - *background-color: #2a85a0; -} -.btn-info:active, -.btn-info.active { - background-color: #24748c \9; -} -.btn-inverse { - background-color: #414141; - background-image: -moz-linear-gradient(top, #555555, #222222); - background-image: -ms-linear-gradient(top, #555555, #222222); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#555555), to(#222222)); - background-image: -webkit-linear-gradient(top, #555555, #222222); - background-image: -o-linear-gradient(top, #555555, #222222); - background-image: linear-gradient(top, #555555, #222222); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#555555', endColorstr='#222222', GradientType=0); - border-color: #222222 #222222 #000000; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - *background-color: #222222; - /* Darken IE7 buttons by default so they stand out more given they won't have borders */ - - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); -} -.btn-inverse:hover, -.btn-inverse:active, -.btn-inverse.active, -.btn-inverse.disabled, -.btn-inverse[disabled] { - background-color: #222222; - *background-color: #151515; -} -.btn-inverse:active, -.btn-inverse.active { - background-color: #080808 \9; -} -button.btn, -input[type="submit"].btn { - *padding-top: 2px; - *padding-bottom: 2px; -} -button.btn::-moz-focus-inner, -input[type="submit"].btn::-moz-focus-inner { - padding: 0; - border: 0; -} -button.btn.btn-large, -input[type="submit"].btn.btn-large { - *padding-top: 7px; - *padding-bottom: 7px; -} -button.btn.btn-small, -input[type="submit"].btn.btn-small { - *padding-top: 3px; - *padding-bottom: 3px; -} -button.btn.btn-mini, -input[type="submit"].btn.btn-mini { - *padding-top: 1px; - *padding-bottom: 1px; -} -.btn-group { - position: relative; - *zoom: 1; - *margin-left: .3em; -} -.btn-group:before, -.btn-group:after { - display: table; - content: ""; -} -.btn-group:after { - clear: both; -} -.btn-group:first-child { - *margin-left: 0; -} -.btn-group + .btn-group { - margin-left: 5px; -} -.btn-toolbar { - margin-top: 10.5px; - margin-bottom: 10.5px; -} -.btn-toolbar .btn-group { - display: inline-block; - *display: inline; - /* IE7 inline-block hack */ - - *zoom: 1; -} -.btn-group > .btn { - position: relative; - float: left; - margin-left: -1px; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} -.btn-group > .btn:first-child { - margin-left: 0; - -webkit-border-top-left-radius: 4px; - -moz-border-radius-topleft: 4px; - border-top-left-radius: 4px; - -webkit-border-bottom-left-radius: 4px; - -moz-border-radius-bottomleft: 4px; - border-bottom-left-radius: 4px; -} -.btn-group > .btn:last-child, -.btn-group > .dropdown-toggle { - -webkit-border-top-right-radius: 4px; - -moz-border-radius-topright: 4px; - border-top-right-radius: 4px; - -webkit-border-bottom-right-radius: 4px; - -moz-border-radius-bottomright: 4px; - border-bottom-right-radius: 4px; -} -.btn-group > .btn.large:first-child { - margin-left: 0; - -webkit-border-top-left-radius: 6px; - -moz-border-radius-topleft: 6px; - border-top-left-radius: 6px; - -webkit-border-bottom-left-radius: 6px; - -moz-border-radius-bottomleft: 6px; - border-bottom-left-radius: 6px; -} -.btn-group > .btn.large:last-child, -.btn-group > .large.dropdown-toggle { - -webkit-border-top-right-radius: 6px; - -moz-border-radius-topright: 6px; - border-top-right-radius: 6px; - -webkit-border-bottom-right-radius: 6px; - -moz-border-radius-bottomright: 6px; - border-bottom-right-radius: 6px; -} -.btn-group > .btn:hover, -.btn-group > .btn:focus, -.btn-group > .btn:active, -.btn-group > .btn.active { - z-index: 2; -} -.btn-group .dropdown-toggle:active, -.btn-group.open .dropdown-toggle { - outline: 0; -} -.btn-group > .dropdown-toggle { - padding-left: 8px; - padding-right: 8px; - -webkit-box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); - -moz-box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); - box-shadow: inset 1px 0 0 rgba(255,255,255,.125), inset 0 1px 0 rgba(255,255,255,.2), 0 1px 2px rgba(0,0,0,.05); - *padding-top: 4px; - *padding-bottom: 4px; -} -.btn-group > .btn-mini.dropdown-toggle { - padding-left: 5px; - padding-right: 5px; -} -.btn-group > .btn-small.dropdown-toggle { - *padding-top: 4px; - *padding-bottom: 4px; -} -.btn-group > .btn-large.dropdown-toggle { - padding-left: 12px; - padding-right: 12px; -} -.btn-group.open .dropdown-toggle { - background-image: none; - -webkit-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05); - -moz-box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05); - box-shadow: inset 0 2px 4px rgba(0,0,0,.15), 0 1px 2px rgba(0,0,0,.05); -} -.btn-group.open .btn.dropdown-toggle { - background-color: #e6e6e6; -} -.btn-group.open .btn-primary.dropdown-toggle { - background-color: #9d461d; -} -.btn-group.open .btn-warning.dropdown-toggle { - background-color: #f89406; -} -.btn-group.open .btn-danger.dropdown-toggle { - background-color: #bd362f; -} -.btn-group.open .btn-success.dropdown-toggle { - background-color: #51a351; -} -.btn-group.open .btn-info.dropdown-toggle { - background-color: #2f96b4; -} -.btn-group.open .btn-inverse.dropdown-toggle { - background-color: #222222; -} -.btn .caret { - margin-top: 7px; - margin-left: 0; -} -.btn:hover .caret, -.open.btn-group .caret { - opacity: 1; - filter: alpha(opacity=100); -} -.btn-mini .caret { - margin-top: 5px; -} -.btn-small .caret { - margin-top: 6px; -} -.btn-large .caret { - margin-top: 6px; - border-left-width: 5px; - border-right-width: 5px; - border-top-width: 5px; -} -.dropup .btn-large .caret { - border-bottom: 5px solid #000000; - border-top: 0; -} -.btn-primary .caret, -.btn-warning .caret, -.btn-danger .caret, -.btn-info .caret, -.btn-success .caret, -.btn-inverse .caret { - border-top-color: #ffffff; - border-bottom-color: #ffffff; - opacity: 0.75; - filter: alpha(opacity=75); -} -.alert { - padding: 8px 35px 8px 14px; - margin-bottom: 21px; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); - background-color: #fcf8e3; - border: 1px solid #fbeed5; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - color: #c09853; -} -.alert-heading { - color: inherit; -} -.alert .close { - position: relative; - top: -2px; - right: -21px; - line-height: 18px; -} -.alert-success { - background-color: #dff0d8; - border-color: #d6e9c6; - color: #468847; -} -.alert-danger, -.alert-error { - background-color: #f2dede; - border-color: #eed3d7; - color: #b94a48; -} -.alert-info { - background-color: #d9edf7; - border-color: #bce8f1; - color: #3a87ad; -} -.alert-block { - padding-top: 14px; - padding-bottom: 14px; -} -.alert-block > p, -.alert-block > ul { - margin-bottom: 0; -} -.alert-block p + p { - margin-top: 5px; -} -.nav { - margin-left: 0; - margin-bottom: 21px; - list-style: none; -} -.nav > li > a { - display: block; -} -.nav > li > a:hover { - text-decoration: none; - background-color: #eeeeee; -} -.nav > .pull-right { - float: right; -} -.nav .nav-header { - display: block; - padding: 3px 15px; - font-size: 11px; - font-weight: bold; - line-height: 21px; - color: #999999; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); - text-transform: uppercase; -} -.nav li + .nav-header { - margin-top: 9px; -} -.nav-list { - padding-left: 15px; - padding-right: 15px; - margin-bottom: 0; -} -.nav-list > li > a, -.nav-list .nav-header { - margin-left: -15px; - margin-right: -15px; - text-shadow: 0 1px 0 rgba(255, 255, 255, 0.5); -} -.nav-list > li > a { - padding: 3px 15px; -} -.nav-list > .active > a, -.nav-list > .active > a:hover { - color: #ffffff; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.2); - background-color: #9d261d; -} -.nav-list [class^="icon-"] { - margin-right: 2px; -} -.nav-list .divider { - *width: 100%; - height: 1px; - margin: 9.5px 1px; - *margin: -5px 0 5px; - overflow: hidden; - background-color: #e5e5e5; - border-bottom: 1px solid #ffffff; -} -.nav-tabs, -.nav-pills { - *zoom: 1; -} -.nav-tabs:before, -.nav-pills:before, -.nav-tabs:after, -.nav-pills:after { - display: table; - content: ""; -} -.nav-tabs:after, -.nav-pills:after { - clear: both; -} -.nav-tabs > li, -.nav-pills > li { - float: left; -} -.nav-tabs > li > a, -.nav-pills > li > a { - padding-right: 12px; - padding-left: 12px; - margin-right: 2px; - line-height: 14px; -} -.nav-tabs { - border-bottom: 1px solid #ddd; -} -.nav-tabs > li { - margin-bottom: -1px; -} -.nav-tabs > li > a { - padding-top: 8px; - padding-bottom: 8px; - line-height: 21px; - border: 1px solid transparent; - -webkit-border-radius: 4px 4px 0 0; - -moz-border-radius: 4px 4px 0 0; - border-radius: 4px 4px 0 0; -} -.nav-tabs > li > a:hover { - border-color: #eeeeee #eeeeee #dddddd; -} -.nav-tabs > .active > a, -.nav-tabs > .active > a:hover { - color: #555555; - background-color: #ffffff; - border: 1px solid #ddd; - border-bottom-color: transparent; - cursor: default; -} -.nav-pills > li > a { - padding-top: 8px; - padding-bottom: 8px; - margin-top: 2px; - margin-bottom: 2px; - -webkit-border-radius: 5px; - -moz-border-radius: 5px; - border-radius: 5px; -} -.nav-pills > .active > a, -.nav-pills > .active > a:hover { - color: #ffffff; - background-color: #9d261d; -} -.nav-stacked > li { - float: none; -} -.nav-stacked > li > a { - margin-right: 0; -} -.nav-tabs.nav-stacked { - border-bottom: 0; -} -.nav-tabs.nav-stacked > li > a { - border: 1px solid #ddd; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} -.nav-tabs.nav-stacked > li:first-child > a { - -webkit-border-radius: 4px 4px 0 0; - -moz-border-radius: 4px 4px 0 0; - border-radius: 4px 4px 0 0; -} -.nav-tabs.nav-stacked > li:last-child > a { - -webkit-border-radius: 0 0 4px 4px; - -moz-border-radius: 0 0 4px 4px; - border-radius: 0 0 4px 4px; -} -.nav-tabs.nav-stacked > li > a:hover { - border-color: #ddd; - z-index: 2; -} -.nav-pills.nav-stacked > li > a { - margin-bottom: 3px; -} -.nav-pills.nav-stacked > li:last-child > a { - margin-bottom: 1px; -} -.nav-tabs .dropdown-menu { - -webkit-border-radius: 0 0 5px 5px; - -moz-border-radius: 0 0 5px 5px; - border-radius: 0 0 5px 5px; -} -.nav-pills .dropdown-menu { - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.nav-tabs .dropdown-toggle .caret, -.nav-pills .dropdown-toggle .caret { - border-top-color: #9d261d; - border-bottom-color: #9d261d; - margin-top: 6px; -} -.nav-tabs .dropdown-toggle:hover .caret, -.nav-pills .dropdown-toggle:hover .caret { - border-top-color: #5c1611; - border-bottom-color: #5c1611; -} -.nav-tabs .active .dropdown-toggle .caret, -.nav-pills .active .dropdown-toggle .caret { - border-top-color: #333333; - border-bottom-color: #333333; -} -.nav > .dropdown.active > a:hover { - color: #000000; - cursor: pointer; -} -.nav-tabs .open .dropdown-toggle, -.nav-pills .open .dropdown-toggle, -.nav > li.dropdown.open.active > a:hover { - color: #ffffff; - background-color: #999999; - border-color: #999999; -} -.nav li.dropdown.open .caret, -.nav li.dropdown.open.active .caret, -.nav li.dropdown.open a:hover .caret { - border-top-color: #ffffff; - border-bottom-color: #ffffff; - opacity: 1; - filter: alpha(opacity=100); -} -.tabs-stacked .open > a:hover { - border-color: #999999; -} -.tabbable { - *zoom: 1; -} -.tabbable:before, -.tabbable:after { - display: table; - content: ""; -} -.tabbable:after { - clear: both; -} -.tab-content { - overflow: auto; -} -.tabs-below > .nav-tabs, -.tabs-right > .nav-tabs, -.tabs-left > .nav-tabs { - border-bottom: 0; -} -.tab-content > .tab-pane, -.pill-content > .pill-pane { - display: none; -} -.tab-content > .active, -.pill-content > .active { - display: block; -} -.tabs-below > .nav-tabs { - border-top: 1px solid #ddd; -} -.tabs-below > .nav-tabs > li { - margin-top: -1px; - margin-bottom: 0; -} -.tabs-below > .nav-tabs > li > a { - -webkit-border-radius: 0 0 4px 4px; - -moz-border-radius: 0 0 4px 4px; - border-radius: 0 0 4px 4px; -} -.tabs-below > .nav-tabs > li > a:hover { - border-bottom-color: transparent; - border-top-color: #ddd; -} -.tabs-below > .nav-tabs > .active > a, -.tabs-below > .nav-tabs > .active > a:hover { - border-color: transparent #ddd #ddd #ddd; -} -.tabs-left > .nav-tabs > li, -.tabs-right > .nav-tabs > li { - float: none; -} -.tabs-left > .nav-tabs > li > a, -.tabs-right > .nav-tabs > li > a { - min-width: 74px; - margin-right: 0; - margin-bottom: 3px; -} -.tabs-left > .nav-tabs { - float: left; - margin-right: 19px; - border-right: 1px solid #ddd; -} -.tabs-left > .nav-tabs > li > a { - margin-right: -1px; - -webkit-border-radius: 4px 0 0 4px; - -moz-border-radius: 4px 0 0 4px; - border-radius: 4px 0 0 4px; -} -.tabs-left > .nav-tabs > li > a:hover { - border-color: #eeeeee #dddddd #eeeeee #eeeeee; -} -.tabs-left > .nav-tabs .active > a, -.tabs-left > .nav-tabs .active > a:hover { - border-color: #ddd transparent #ddd #ddd; - *border-right-color: #ffffff; -} -.tabs-right > .nav-tabs { - float: right; - margin-left: 19px; - border-left: 1px solid #ddd; -} -.tabs-right > .nav-tabs > li > a { - margin-left: -1px; - -webkit-border-radius: 0 4px 4px 0; - -moz-border-radius: 0 4px 4px 0; - border-radius: 0 4px 4px 0; -} -.tabs-right > .nav-tabs > li > a:hover { - border-color: #eeeeee #eeeeee #eeeeee #dddddd; -} -.tabs-right > .nav-tabs .active > a, -.tabs-right > .nav-tabs .active > a:hover { - border-color: #ddd #ddd #ddd transparent; - *border-left-color: #ffffff; -} -.navbar { - *position: relative; - *z-index: 2; - overflow: visible; - margin-bottom: 21px; -} -.navbar-inner { - min-height: 40px; - padding-left: 20px; - padding-right: 20px; - background-color: #2c2c2c; - background-image: -moz-linear-gradient(top, #333333, #222222); - background-image: -ms-linear-gradient(top, #333333, #222222); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222)); - background-image: -webkit-linear-gradient(top, #333333, #222222); - background-image: -o-linear-gradient(top, #333333, #222222); - background-image: linear-gradient(top, #333333, #222222); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - -webkit-box-shadow: 0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1); - -moz-box-shadow: 0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1); - box-shadow: 0 1px 3px rgba(0,0,0,.25), inset 0 -1px 0 rgba(0,0,0,.1); -} -.navbar .container { - width: auto; -} -.nav-collapse.collapse { - height: auto; -} -.navbar { - color: #999999; -} -.navbar .brand:hover { - text-decoration: none; -} -.navbar .brand { - float: left; - display: block; - padding: 8px 20px 12px; - margin-left: -20px; - font-size: 20px; - font-weight: 200; - line-height: 1; - color: #999999; -} -.navbar .navbar-text { - margin-bottom: 0; - line-height: 40px; -} -.navbar .navbar-link { - color: #999999; -} -.navbar .navbar-link:hover { - color: #ffffff; -} -.navbar .btn, -.navbar .btn-group { - margin-top: 5px; -} -.navbar .btn-group .btn { - margin: 0; -} -.navbar-form { - margin-bottom: 0; - *zoom: 1; -} -.navbar-form:before, -.navbar-form:after { - display: table; - content: ""; -} -.navbar-form:after { - clear: both; -} -.navbar-form input, -.navbar-form select, -.navbar-form .radio, -.navbar-form .checkbox { - margin-top: 5px; -} -.navbar-form input, -.navbar-form select { - display: inline-block; - margin-bottom: 0; -} -.navbar-form input[type="image"], -.navbar-form input[type="checkbox"], -.navbar-form input[type="radio"] { - margin-top: 3px; -} -.navbar-form .input-append, -.navbar-form .input-prepend { - margin-top: 6px; - white-space: nowrap; -} -.navbar-form .input-append input, -.navbar-form .input-prepend input { - margin-top: 0; -} -.navbar-search { - position: relative; - float: left; - margin-top: 6px; - margin-bottom: 0; -} -.navbar-search .search-query { - padding: 4px 9px; - font-family: proxima-nova, "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 13px; - font-weight: normal; - line-height: 1; - color: #ffffff; - background-color: #626262; - border: 1px solid #151515; - -webkit-box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0px rgba(255,255,255,.15); - -moz-box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0px rgba(255,255,255,.15); - box-shadow: inset 0 1px 2px rgba(0,0,0,.1), 0 1px 0px rgba(255,255,255,.15); - -webkit-transition: none; - -moz-transition: none; - -ms-transition: none; - -o-transition: none; - transition: none; -} -.navbar-search .search-query:-moz-placeholder { - color: #cccccc; -} -.navbar-search .search-query::-webkit-input-placeholder { - color: #cccccc; -} -.navbar-search .search-query:focus, -.navbar-search .search-query.focused { - padding: 5px 10px; - color: #333333; - text-shadow: 0 1px 0 #ffffff; - background-color: #ffffff; - border: 0; - -webkit-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); - -moz-box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); - box-shadow: 0 0 3px rgba(0, 0, 0, 0.15); - outline: 0; -} -.navbar-fixed-top, -.navbar-fixed-bottom { - position: fixed; - right: 0; - left: 0; - z-index: 1030; - margin-bottom: 0; -} -.navbar-fixed-top .navbar-inner, -.navbar-fixed-bottom .navbar-inner { - padding-left: 0; - padding-right: 0; - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} -.navbar-fixed-top .container, -.navbar-fixed-bottom .container { - width: 940px; -} -.navbar-fixed-top { - top: 0; -} -.navbar-fixed-bottom { - bottom: 0; -} -.navbar .nav { - position: relative; - left: 0; - display: block; - float: left; - margin: 0 10px 0 0; -} -.navbar .nav.pull-right { - float: right; -} -.navbar .nav > li { - display: block; - float: left; -} -.navbar .nav > li > a { - float: none; - padding: 9px 10px 11px; - line-height: 19px; - color: #999999; - text-decoration: none; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); -} -.navbar .btn { - display: inline-block; - padding: 4px 10px 4px; - margin: 5px 5px 6px; - line-height: 21px; -} -.navbar .btn-group { - margin: 0; - padding: 5px 5px 6px; -} -.navbar .nav > li > a:hover { - background-color: transparent; - color: #ffffff; - text-decoration: none; -} -.navbar .nav .active > a, -.navbar .nav .active > a:hover { - color: #ffffff; - text-decoration: none; - background-color: #222222; -} -.navbar .divider-vertical { - height: 40px; - width: 1px; - margin: 0 9px; - overflow: hidden; - background-color: #222222; - border-right: 1px solid #333333; -} -.navbar .nav.pull-right { - margin-left: 10px; - margin-right: 0; -} -.navbar .btn-navbar { - display: none; - float: right; - padding: 7px 10px; - margin-left: 5px; - margin-right: 5px; - background-color: #2c2c2c; - background-image: -moz-linear-gradient(top, #333333, #222222); - background-image: -ms-linear-gradient(top, #333333, #222222); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#333333), to(#222222)); - background-image: -webkit-linear-gradient(top, #333333, #222222); - background-image: -o-linear-gradient(top, #333333, #222222); - background-image: linear-gradient(top, #333333, #222222); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#333333', endColorstr='#222222', GradientType=0); - border-color: #222222 #222222 #000000; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - *background-color: #222222; - /* Darken IE7 buttons by default so they stand out more given they won't have borders */ - - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - -webkit-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075); - -moz-box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075); - box-shadow: inset 0 1px 0 rgba(255,255,255,.1), 0 1px 0 rgba(255,255,255,.075); -} -.navbar .btn-navbar:hover, -.navbar .btn-navbar:active, -.navbar .btn-navbar.active, -.navbar .btn-navbar.disabled, -.navbar .btn-navbar[disabled] { - background-color: #222222; - *background-color: #151515; -} -.navbar .btn-navbar:active, -.navbar .btn-navbar.active { - background-color: #080808 \9; -} -.navbar .btn-navbar .icon-bar { - display: block; - width: 18px; - height: 2px; - background-color: #f5f5f5; - -webkit-border-radius: 1px; - -moz-border-radius: 1px; - border-radius: 1px; - -webkit-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); - -moz-box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); - box-shadow: 0 1px 0 rgba(0, 0, 0, 0.25); -} -.btn-navbar .icon-bar + .icon-bar { - margin-top: 3px; -} -.navbar .dropdown-menu:before { - content: ''; - display: inline-block; - border-left: 7px solid transparent; - border-right: 7px solid transparent; - border-bottom: 7px solid #ccc; - border-bottom-color: rgba(0, 0, 0, 0.2); - position: absolute; - top: -7px; - left: 9px; -} -.navbar .dropdown-menu:after { - content: ''; - display: inline-block; - border-left: 6px solid transparent; - border-right: 6px solid transparent; - border-bottom: 6px solid #ffffff; - position: absolute; - top: -6px; - left: 10px; -} -.navbar-fixed-bottom .dropdown-menu:before { - border-top: 7px solid #ccc; - border-top-color: rgba(0, 0, 0, 0.2); - border-bottom: 0; - bottom: -7px; - top: auto; -} -.navbar-fixed-bottom .dropdown-menu:after { - border-top: 6px solid #ffffff; - border-bottom: 0; - bottom: -6px; - top: auto; -} -.navbar .nav li.dropdown .dropdown-toggle .caret, -.navbar .nav li.dropdown.open .caret { - border-top-color: #ffffff; - border-bottom-color: #ffffff; -} -.navbar .nav li.dropdown.active .caret { - opacity: 1; - filter: alpha(opacity=100); -} -.navbar .nav li.dropdown.open > .dropdown-toggle, -.navbar .nav li.dropdown.active > .dropdown-toggle, -.navbar .nav li.dropdown.open.active > .dropdown-toggle { - background-color: transparent; -} -.navbar .nav li.dropdown.active > .dropdown-toggle:hover { - color: #ffffff; -} -.navbar .pull-right .dropdown-menu, -.navbar .dropdown-menu.pull-right { - left: auto; - right: 0; -} -.navbar .pull-right .dropdown-menu:before, -.navbar .dropdown-menu.pull-right:before { - left: auto; - right: 12px; -} -.navbar .pull-right .dropdown-menu:after, -.navbar .dropdown-menu.pull-right:after { - left: auto; - right: 13px; -} -.breadcrumb { - padding: 7px 14px; - margin: 0 0 21px; - list-style: none; - background-color: #fbfbfb; - background-image: -moz-linear-gradient(top, #ffffff, #f5f5f5); - background-image: -ms-linear-gradient(top, #ffffff, #f5f5f5); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#f5f5f5)); - background-image: -webkit-linear-gradient(top, #ffffff, #f5f5f5); - background-image: -o-linear-gradient(top, #ffffff, #f5f5f5); - background-image: linear-gradient(top, #ffffff, #f5f5f5); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#f5f5f5', GradientType=0); - border: 1px solid #ddd; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - -webkit-box-shadow: inset 0 1px 0 #ffffff; - -moz-box-shadow: inset 0 1px 0 #ffffff; - box-shadow: inset 0 1px 0 #ffffff; -} -.breadcrumb li { - display: inline-block; - *display: inline; - /* IE7 inline-block hack */ - - *zoom: 1; - text-shadow: 0 1px 0 #ffffff; -} -.breadcrumb .divider { - padding: 0 5px; - color: #999999; -} -.breadcrumb .active a { - color: #333333; -} -.pagination { - height: 42px; - margin: 21px 0; -} -.pagination ul { - display: inline-block; - *display: inline; - /* IE7 inline-block hack */ - - *zoom: 1; - margin-left: 0; - margin-bottom: 0; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - -webkit-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); - -moz-box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); - box-shadow: 0 1px 2px rgba(0, 0, 0, 0.05); -} -.pagination li { - display: inline; -} -.pagination a { - float: left; - padding: 0 14px; - line-height: 40px; - text-decoration: none; - border: 1px solid #ddd; - border-left-width: 0; -} -.pagination a:hover, -.pagination .active a { - background-color: #f5f5f5; -} -.pagination .active a { - color: #999999; - cursor: default; -} -.pagination .disabled span, -.pagination .disabled a, -.pagination .disabled a:hover { - color: #999999; - background-color: transparent; - cursor: default; -} -.pagination li:first-child a { - border-left-width: 1px; - -webkit-border-radius: 3px 0 0 3px; - -moz-border-radius: 3px 0 0 3px; - border-radius: 3px 0 0 3px; -} -.pagination li:last-child a { - -webkit-border-radius: 0 3px 3px 0; - -moz-border-radius: 0 3px 3px 0; - border-radius: 0 3px 3px 0; -} -.pagination-centered { - text-align: center; -} -.pagination-right { - text-align: right; -} -.pager { - margin-left: 0; - margin-bottom: 21px; - list-style: none; - text-align: center; - *zoom: 1; -} -.pager:before, -.pager:after { - display: table; - content: ""; -} -.pager:after { - clear: both; -} -.pager li { - display: inline; -} -.pager a { - display: inline-block; - padding: 5px 14px; - background-color: #fff; - border: 1px solid #ddd; - -webkit-border-radius: 15px; - -moz-border-radius: 15px; - border-radius: 15px; -} -.pager a:hover { - text-decoration: none; - background-color: #f5f5f5; -} -.pager .next a { - float: right; -} -.pager .previous a { - float: left; -} -.pager .disabled a, -.pager .disabled a:hover { - color: #999999; - background-color: #fff; - cursor: default; -} -.modal-open .dropdown-menu { - z-index: 2050; -} -.modal-open .dropdown.open { - *z-index: 2050; -} -.modal-open .popover { - z-index: 2060; -} -.modal-open .tooltip { - z-index: 2070; -} -.modal-backdrop { - position: fixed; - top: 0; - right: 0; - bottom: 0; - left: 0; - z-index: 1040; - background-color: #000000; -} -.modal-backdrop.fade { - opacity: 0; -} -.modal-backdrop, -.modal-backdrop.fade.in { - opacity: 0.8; - filter: alpha(opacity=80); -} -.modal { - position: fixed; - top: 50%; - left: 50%; - z-index: 1050; - overflow: auto; - width: 560px; - margin: -250px 0 0 -280px; - background-color: #ffffff; - border: 1px solid #999; - border: 1px solid rgba(0, 0, 0, 0.3); - *border: 1px solid #999; - /* IE6-7 */ - - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; - -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); - -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); - box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); - -webkit-background-clip: padding-box; - -moz-background-clip: padding-box; - background-clip: padding-box; -} -.modal.fade { - -webkit-transition: opacity .3s linear, top .3s ease-out; - -moz-transition: opacity .3s linear, top .3s ease-out; - -ms-transition: opacity .3s linear, top .3s ease-out; - -o-transition: opacity .3s linear, top .3s ease-out; - transition: opacity .3s linear, top .3s ease-out; - top: -25%; -} -.modal.fade.in { - top: 50%; -} -.modal-header { - padding: 9px 15px; - border-bottom: 1px solid #eee; -} -.modal-header .close { - margin-top: 2px; -} -.modal-body { - overflow-y: auto; - max-height: 400px; - padding: 15px; -} -.modal-form { - margin-bottom: 0; -} -.modal-footer { - padding: 14px 15px 15px; - margin-bottom: 0; - text-align: right; - background-color: #f5f5f5; - border-top: 1px solid #ddd; - -webkit-border-radius: 0 0 6px 6px; - -moz-border-radius: 0 0 6px 6px; - border-radius: 0 0 6px 6px; - -webkit-box-shadow: inset 0 1px 0 #ffffff; - -moz-box-shadow: inset 0 1px 0 #ffffff; - box-shadow: inset 0 1px 0 #ffffff; - *zoom: 1; -} -.modal-footer:before, -.modal-footer:after { - display: table; - content: ""; -} -.modal-footer:after { - clear: both; -} -.modal-footer .btn + .btn { - margin-left: 5px; - margin-bottom: 0; -} -.modal-footer .btn-group .btn + .btn { - margin-left: -1px; -} -.tooltip { - position: absolute; - z-index: 1020; - display: block; - visibility: visible; - padding: 5px; - font-size: 11px; - opacity: 0; - filter: alpha(opacity=0); -} -.tooltip.in { - opacity: 0.8; - filter: alpha(opacity=80); -} -.tooltip.top { - margin-top: -2px; -} -.tooltip.right { - margin-left: 2px; -} -.tooltip.bottom { - margin-top: 2px; -} -.tooltip.left { - margin-left: -2px; -} -.tooltip.top .tooltip-arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-left: 5px solid transparent; - border-right: 5px solid transparent; - border-top: 5px solid #000000; -} -.tooltip.left .tooltip-arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-top: 5px solid transparent; - border-bottom: 5px solid transparent; - border-left: 5px solid #000000; -} -.tooltip.bottom .tooltip-arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-left: 5px solid transparent; - border-right: 5px solid transparent; - border-bottom: 5px solid #000000; -} -.tooltip.right .tooltip-arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-top: 5px solid transparent; - border-bottom: 5px solid transparent; - border-right: 5px solid #000000; -} -.tooltip-inner { - max-width: 200px; - padding: 3px 8px; - color: #ffffff; - text-align: center; - text-decoration: none; - background-color: #000000; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.tooltip-arrow { - position: absolute; - width: 0; - height: 0; -} -.popover { - position: absolute; - top: 0; - left: 0; - z-index: 1010; - display: none; - padding: 5px; -} -.popover.top { - margin-top: -5px; -} -.popover.right { - margin-left: 5px; -} -.popover.bottom { - margin-top: 5px; -} -.popover.left { - margin-left: -5px; -} -.popover.top .arrow { - bottom: 0; - left: 50%; - margin-left: -5px; - border-left: 5px solid transparent; - border-right: 5px solid transparent; - border-top: 5px solid #000000; -} -.popover.right .arrow { - top: 50%; - left: 0; - margin-top: -5px; - border-top: 5px solid transparent; - border-bottom: 5px solid transparent; - border-right: 5px solid #000000; -} -.popover.bottom .arrow { - top: 0; - left: 50%; - margin-left: -5px; - border-left: 5px solid transparent; - border-right: 5px solid transparent; - border-bottom: 5px solid #000000; -} -.popover.left .arrow { - top: 50%; - right: 0; - margin-top: -5px; - border-top: 5px solid transparent; - border-bottom: 5px solid transparent; - border-left: 5px solid #000000; -} -.popover .arrow { - position: absolute; - width: 0; - height: 0; -} -.popover-inner { - padding: 3px; - width: 280px; - overflow: hidden; - background: #000000; - background: rgba(0, 0, 0, 0.8); - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; - -webkit-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); - -moz-box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); - box-shadow: 0 3px 7px rgba(0, 0, 0, 0.3); -} -.popover-title { - padding: 9px 15px; - line-height: 1; - background-color: #f5f5f5; - border-bottom: 1px solid #eee; - -webkit-border-radius: 3px 3px 0 0; - -moz-border-radius: 3px 3px 0 0; - border-radius: 3px 3px 0 0; -} -.popover-content { - padding: 14px; - background-color: #ffffff; - -webkit-border-radius: 0 0 3px 3px; - -moz-border-radius: 0 0 3px 3px; - border-radius: 0 0 3px 3px; - -webkit-background-clip: padding-box; - -moz-background-clip: padding-box; - background-clip: padding-box; -} -.popover-content p, -.popover-content ul, -.popover-content ol { - margin-bottom: 0; -} -.thumbnails { - margin-left: -20px; - list-style: none; - *zoom: 1; -} -.thumbnails:before, -.thumbnails:after { - display: table; - content: ""; -} -.thumbnails:after { - clear: both; -} -.row-fluid .thumbnails { - margin-left: 0; -} -.thumbnails > li { - float: left; - margin-bottom: 21px; - margin-left: 20px; -} -.thumbnail { - display: block; - padding: 4px; - line-height: 1; - border: 1px solid #ddd; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; - -webkit-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); - -moz-box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); - box-shadow: 0 1px 1px rgba(0, 0, 0, 0.075); -} -a.thumbnail:hover { - border-color: #9d261d; - -webkit-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); - -moz-box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); - box-shadow: 0 1px 4px rgba(0, 105, 214, 0.25); -} -.thumbnail > img { - display: block; - max-width: 100%; - margin-left: auto; - margin-right: auto; -} -.thumbnail .caption { - padding: 9px; -} -.label, -.badge { - font-size: 11.844px; - font-weight: bold; - line-height: 14px; - color: #ffffff; - vertical-align: baseline; - white-space: nowrap; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #999999; -} -.label { - padding: 1px 4px 2px; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} -.badge { - padding: 1px 9px 2px; - -webkit-border-radius: 9px; - -moz-border-radius: 9px; - border-radius: 9px; -} -a.label:hover, -a.badge:hover { - color: #ffffff; - text-decoration: none; - cursor: pointer; -} -.label-important, -.badge-important { - background-color: #b94a48; -} -.label-important[href], -.badge-important[href] { - background-color: #953b39; -} -.label-warning, -.badge-warning { - background-color: #f89406; -} -.label-warning[href], -.badge-warning[href] { - background-color: #c67605; -} -.label-success, -.badge-success { - background-color: #468847; -} -.label-success[href], -.badge-success[href] { - background-color: #356635; -} -.label-info, -.badge-info { - background-color: #3a87ad; -} -.label-info[href], -.badge-info[href] { - background-color: #2d6987; -} -.label-inverse, -.badge-inverse { - background-color: #333333; -} -.label-inverse[href], -.badge-inverse[href] { - background-color: #1a1a1a; -} -@-webkit-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -@-moz-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -@-ms-keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -@-o-keyframes progress-bar-stripes { - from { - background-position: 0 0; - } - to { - background-position: 40px 0; - } -} -@keyframes progress-bar-stripes { - from { - background-position: 40px 0; - } - to { - background-position: 0 0; - } -} -.progress { - overflow: hidden; - height: 18px; - margin-bottom: 18px; - background-color: #f7f7f7; - background-image: -moz-linear-gradient(top, #f5f5f5, #f9f9f9); - background-image: -ms-linear-gradient(top, #f5f5f5, #f9f9f9); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#f5f5f5), to(#f9f9f9)); - background-image: -webkit-linear-gradient(top, #f5f5f5, #f9f9f9); - background-image: -o-linear-gradient(top, #f5f5f5, #f9f9f9); - background-image: linear-gradient(top, #f5f5f5, #f9f9f9); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#f5f5f5', endColorstr='#f9f9f9', GradientType=0); - -webkit-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - -moz-box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1); - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.progress .bar { - width: 0%; - height: 18px; - color: #ffffff; - font-size: 12px; - text-align: center; - text-shadow: 0 -1px 0 rgba(0, 0, 0, 0.25); - background-color: #0e90d2; - background-image: -moz-linear-gradient(top, #149bdf, #0480be); - background-image: -ms-linear-gradient(top, #149bdf, #0480be); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#149bdf), to(#0480be)); - background-image: -webkit-linear-gradient(top, #149bdf, #0480be); - background-image: -o-linear-gradient(top, #149bdf, #0480be); - background-image: linear-gradient(top, #149bdf, #0480be); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#149bdf', endColorstr='#0480be', GradientType=0); - -webkit-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -moz-box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - box-shadow: inset 0 -1px 0 rgba(0, 0, 0, 0.15); - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - -ms-box-sizing: border-box; - box-sizing: border-box; - -webkit-transition: width 0.6s ease; - -moz-transition: width 0.6s ease; - -ms-transition: width 0.6s ease; - -o-transition: width 0.6s ease; - transition: width 0.6s ease; -} -.progress-striped .bar { - background-color: #149bdf; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - -webkit-background-size: 40px 40px; - -moz-background-size: 40px 40px; - -o-background-size: 40px 40px; - background-size: 40px 40px; -} -.progress.active .bar { - -webkit-animation: progress-bar-stripes 2s linear infinite; - -moz-animation: progress-bar-stripes 2s linear infinite; - -ms-animation: progress-bar-stripes 2s linear infinite; - -o-animation: progress-bar-stripes 2s linear infinite; - animation: progress-bar-stripes 2s linear infinite; -} -.progress-danger .bar { - background-color: #dd514c; - background-image: -moz-linear-gradient(top, #ee5f5b, #c43c35); - background-image: -ms-linear-gradient(top, #ee5f5b, #c43c35); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ee5f5b), to(#c43c35)); - background-image: -webkit-linear-gradient(top, #ee5f5b, #c43c35); - background-image: -o-linear-gradient(top, #ee5f5b, #c43c35); - background-image: linear-gradient(top, #ee5f5b, #c43c35); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ee5f5b', endColorstr='#c43c35', GradientType=0); -} -.progress-danger.progress-striped .bar { - background-color: #ee5f5b; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.progress-success .bar { - background-color: #5eb95e; - background-image: -moz-linear-gradient(top, #62c462, #57a957); - background-image: -ms-linear-gradient(top, #62c462, #57a957); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#62c462), to(#57a957)); - background-image: -webkit-linear-gradient(top, #62c462, #57a957); - background-image: -o-linear-gradient(top, #62c462, #57a957); - background-image: linear-gradient(top, #62c462, #57a957); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#62c462', endColorstr='#57a957', GradientType=0); -} -.progress-success.progress-striped .bar { - background-color: #62c462; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.progress-info .bar { - background-color: #4bb1cf; - background-image: -moz-linear-gradient(top, #5bc0de, #339bb9); - background-image: -ms-linear-gradient(top, #5bc0de, #339bb9); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#5bc0de), to(#339bb9)); - background-image: -webkit-linear-gradient(top, #5bc0de, #339bb9); - background-image: -o-linear-gradient(top, #5bc0de, #339bb9); - background-image: linear-gradient(top, #5bc0de, #339bb9); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#5bc0de', endColorstr='#339bb9', GradientType=0); -} -.progress-info.progress-striped .bar { - background-color: #5bc0de; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.progress-warning .bar { - background-color: #faa732; - background-image: -moz-linear-gradient(top, #fbb450, #f89406); - background-image: -ms-linear-gradient(top, #fbb450, #f89406); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fbb450), to(#f89406)); - background-image: -webkit-linear-gradient(top, #fbb450, #f89406); - background-image: -o-linear-gradient(top, #fbb450, #f89406); - background-image: linear-gradient(top, #fbb450, #f89406); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fbb450', endColorstr='#f89406', GradientType=0); -} -.progress-warning.progress-striped .bar { - background-color: #fbb450; - background-image: -webkit-gradient(linear, 0 100%, 100% 0, color-stop(0.25, rgba(255, 255, 255, 0.15)), color-stop(0.25, transparent), color-stop(0.5, transparent), color-stop(0.5, rgba(255, 255, 255, 0.15)), color-stop(0.75, rgba(255, 255, 255, 0.15)), color-stop(0.75, transparent), to(transparent)); - background-image: -webkit-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -moz-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -ms-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: -o-linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); - background-image: linear-gradient(-45deg, rgba(255, 255, 255, 0.15) 25%, transparent 25%, transparent 50%, rgba(255, 255, 255, 0.15) 50%, rgba(255, 255, 255, 0.15) 75%, transparent 75%, transparent); -} -.accordion { - margin-bottom: 21px; -} -.accordion-group { - margin-bottom: 2px; - border: 1px solid #e5e5e5; - -webkit-border-radius: 4px; - -moz-border-radius: 4px; - border-radius: 4px; -} -.accordion-heading { - border-bottom: 0; -} -.accordion-heading .accordion-toggle { - display: block; - padding: 8px 15px; -} -.accordion-toggle { - cursor: pointer; -} -.accordion-inner { - padding: 9px 15px; - border-top: 1px solid #e5e5e5; -} -.carousel { - position: relative; - margin-bottom: 21px; - line-height: 1; -} -.carousel-inner { - overflow: hidden; - width: 100%; - position: relative; -} -.carousel .item { - display: none; - position: relative; - -webkit-transition: 0.6s ease-in-out left; - -moz-transition: 0.6s ease-in-out left; - -ms-transition: 0.6s ease-in-out left; - -o-transition: 0.6s ease-in-out left; - transition: 0.6s ease-in-out left; -} -.carousel .item > img { - display: block; - line-height: 1; -} -.carousel .active, -.carousel .next, -.carousel .prev { - display: block; -} -.carousel .active { - left: 0; -} -.carousel .next, -.carousel .prev { - position: absolute; - top: 0; - width: 100%; -} -.carousel .next { - left: 100%; -} -.carousel .prev { - left: -100%; -} -.carousel .next.left, -.carousel .prev.right { - left: 0; -} -.carousel .active.left { - left: -100%; -} -.carousel .active.right { - left: 100%; -} -.carousel-control { - position: absolute; - top: 40%; - left: 15px; - width: 40px; - height: 40px; - margin-top: -20px; - font-size: 60px; - font-weight: 100; - line-height: 30px; - color: #ffffff; - text-align: center; - background: #222222; - border: 3px solid #ffffff; - -webkit-border-radius: 23px; - -moz-border-radius: 23px; - border-radius: 23px; - opacity: 0.5; - filter: alpha(opacity=50); -} -.carousel-control.right { - left: auto; - right: 15px; -} -.carousel-control:hover { - color: #ffffff; - text-decoration: none; - opacity: 0.9; - filter: alpha(opacity=90); -} -.carousel-caption { - position: absolute; - left: 0; - right: 0; - bottom: 0; - padding: 10px 15px 5px; - background: #333333; - background: rgba(0, 0, 0, 0.75); -} -.carousel-caption h4, -.carousel-caption p { - color: #ffffff; -} -.hero-unit { - padding: 60px; - margin-bottom: 30px; - background-color: #eeeeee; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; -} -.hero-unit h1 { - margin-bottom: 0; - font-size: 60px; - line-height: 1; - color: inherit; - letter-spacing: -1px; -} -.hero-unit p { - font-size: 18px; - font-weight: 200; - line-height: 31.5px; - color: inherit; -} -.pull-right { - float: right; -} -.pull-left { - float: left; -} -.hide { - display: none; -} -.show { - display: block; -} -.invisible { - visibility: hidden; -} -@font-face { - font-family: 'museo-slab'; - src: url('../font/museo_slab_300-webfont.eot'); - src: url('../font/museo_slab_300-webfont.eot?#iefix') format('embedded-opentype'), url('../font/museo_slab_300-webfont.ttf') format('truetype'); - font-weight: normal; - font-style: normal; -} -@font-face { - font-family: 'museo-slab'; - src: url('../font/museo_slab_500-webfont.eot'); - src: url('../font/museo_slab_500-webfont.eot?#iefix') format('embedded-opentype'), url('../font/museo_slab_500-webfont.ttf') format('truetype'); - font-weight: bold; - font-style: normal; -} -@font-face { - font-family: 'proxima-nova'; - src: url('../font/proximanova-webfont.eot'); - src: url('../font/proximanova-webfont.eot?#iefix') format('embedded-opentype'), url('../font/proximanova-webfont.ttf') format('truetype'); - font-weight: normal; - font-style: normal; -} -/* Font Awesome - the iconic font designed for use with Twitter Bootstrap - ------------------------------------------------------- - The full suite of pictographic icons, examples, and documentation - can be found at: http://fortawesome.github.com/Font-Awesome/ - - License - ------------------------------------------------------- - The Font Awesome webfont, CSS, and LESS files are licensed under CC BY 3.0: - http://creativecommons.org/licenses/by/3.0/ A mention of - 'Font Awesome - http://fortawesome.github.com/Font-Awesome' in human-readable - source code is considered acceptable attribution (most common on the web). - If human readable source code is not available to the end user, a mention in - an 'About' or 'Credits' screen is considered acceptable (most common in desktop - or mobile software). - - Contact - ------------------------------------------------------- - Email: dave@davegandy.com - Twitter: http://twitter.com/fortaweso_me - Work: Lead Product Designer @ http://kyruus.com - - */ -@font-face { - font-family: 'FontAwesome'; - src: url('../font/fontawesome-webfont.eot'); - src: url('../font/fontawesome-webfont.eot?#iefix') format('embedded-opentype'), url('../font/fontawesome-webfont.woff') format('woff'), url('../font/fontawesome-webfont.ttf') format('truetype'), url('../font/fontawesome-webfont.svg#FontAwesome') format('svg'); - font-weight: normal; - font-style: normal; -} -/* Font Awesome styles - ------------------------------------------------------- */ -[class^="icon-"]:before, -[class*=" icon-"]:before { - font-family: FontAwesome; - font-weight: normal; - font-style: normal; - display: inline-block; - text-decoration: inherit; -} -a [class^="icon-"], -a [class*=" icon-"] { - display: inline-block; - text-decoration: inherit; -} -/* makes the font 33% larger relative to the icon container */ -.icon-large:before { - vertical-align: middle; - font-size: 1.3333333333333333em; -} -.btn [class^="icon-"], -.nav-tabs [class^="icon-"], -.btn [class*=" icon-"], -.nav-tabs [class*=" icon-"] { - /* keeps button heights with and without icons the same */ - - line-height: .9em; -} -li [class^="icon-"], -li [class*=" icon-"] { - display: inline-block; - width: 1.25em; - text-align: center; -} -li .icon-large:before, -li .icon-large:before { - /* 1.5 increased font size for icon-large * 1.25 width */ - - width: 1.875em; -} -ul.icons { - list-style-type: none; - margin-left: 2em; - text-indent: -0.8em; -} -ul.icons li [class^="icon-"], -ul.icons li [class*=" icon-"] { - width: .8em; -} -ul.icons li .icon-large:before, -ul.icons li .icon-large:before { - /* 1.5 increased font size for icon-large * 1.25 width */ - - vertical-align: initial; -} -/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen - readers do not read off random characters that represent icons */ -.icon-glass:before { - content: "\f000"; -} -.icon-music:before { - content: "\f001"; -} -.icon-search:before { - content: "\f002"; -} -.icon-envelope:before { - content: "\f003"; -} -.icon-heart:before { - content: "\f004"; -} -.icon-star:before { - content: "\f005"; -} -.icon-star-empty:before { - content: "\f006"; -} -.icon-user:before { - content: "\f007"; -} -.icon-film:before { - content: "\f008"; -} -.icon-th-large:before { - content: "\f009"; -} -.icon-th:before { - content: "\f00a"; -} -.icon-th-list:before { - content: "\f00b"; -} -.icon-ok:before { - content: "\f00c"; -} -.icon-remove:before { - content: "\f00d"; -} -.icon-zoom-in:before { - content: "\f00e"; -} -.icon-zoom-out:before { - content: "\f010"; -} -.icon-off:before { - content: "\f011"; -} -.icon-signal:before { - content: "\f012"; -} -.icon-cog:before { - content: "\f013"; -} -.icon-trash:before { - content: "\f014"; -} -.icon-home:before { - content: "\f015"; -} -.icon-file:before { - content: "\f016"; -} -.icon-time:before { - content: "\f017"; -} -.icon-road:before { - content: "\f018"; -} -.icon-download-alt:before { - content: "\f019"; -} -.icon-download:before { - content: "\f01a"; -} -.icon-upload:before { - content: "\f01b"; -} -.icon-inbox:before { - content: "\f01c"; -} -.icon-play-circle:before { - content: "\f01d"; -} -.icon-repeat:before { - content: "\f01e"; -} -/* \f020 doesn't work in Safari. all shifted one down */ -.icon-refresh:before { - content: "\f021"; -} -.icon-list-alt:before { - content: "\f022"; -} -.icon-lock:before { - content: "\f023"; -} -.icon-flag:before { - content: "\f024"; -} -.icon-headphones:before { - content: "\f025"; -} -.icon-volume-off:before { - content: "\f026"; -} -.icon-volume-down:before { - content: "\f027"; -} -.icon-volume-up:before { - content: "\f028"; -} -.icon-qrcode:before { - content: "\f029"; -} -.icon-barcode:before { - content: "\f02a"; -} -.icon-tag:before { - content: "\f02b"; -} -.icon-tags:before { - content: "\f02c"; -} -.icon-book:before { - content: "\f02d"; -} -.icon-bookmark:before { - content: "\f02e"; -} -.icon-print:before { - content: "\f02f"; -} -.icon-camera:before { - content: "\f030"; -} -.icon-font:before { - content: "\f031"; -} -.icon-bold:before { - content: "\f032"; -} -.icon-italic:before { - content: "\f033"; -} -.icon-text-height:before { - content: "\f034"; -} -.icon-text-width:before { - content: "\f035"; -} -.icon-align-left:before { - content: "\f036"; -} -.icon-align-center:before { - content: "\f037"; -} -.icon-align-right:before { - content: "\f038"; -} -.icon-align-justify:before { - content: "\f039"; -} -.icon-list:before { - content: "\f03a"; -} -.icon-indent-left:before { - content: "\f03b"; -} -.icon-indent-right:before { - content: "\f03c"; -} -.icon-facetime-video:before { - content: "\f03d"; -} -.icon-picture:before { - content: "\f03e"; -} -.icon-pencil:before { - content: "\f040"; -} -.icon-map-marker:before { - content: "\f041"; -} -.icon-adjust:before { - content: "\f042"; -} -.icon-tint:before { - content: "\f043"; -} -.icon-edit:before { - content: "\f044"; -} -.icon-share:before { - content: "\f045"; -} -.icon-check:before { - content: "\f046"; -} -.icon-move:before { - content: "\f047"; -} -.icon-step-backward:before { - content: "\f048"; -} -.icon-fast-backward:before { - content: "\f049"; -} -.icon-backward:before { - content: "\f04a"; -} -.icon-play:before { - content: "\f04b"; -} -.icon-pause:before { - content: "\f04c"; -} -.icon-stop:before { - content: "\f04d"; -} -.icon-forward:before { - content: "\f04e"; -} -.icon-fast-forward:before { - content: "\f050"; -} -.icon-step-forward:before { - content: "\f051"; -} -.icon-eject:before { - content: "\f052"; -} -.icon-chevron-left:before { - content: "\f053"; -} -.icon-chevron-right:before { - content: "\f054"; -} -.icon-plus-sign:before { - content: "\f055"; -} -.icon-minus-sign:before { - content: "\f056"; -} -.icon-remove-sign:before { - content: "\f057"; -} -.icon-ok-sign:before { - content: "\f058"; -} -.icon-question-sign:before { - content: "\f059"; -} -.icon-info-sign:before { - content: "\f05a"; -} -.icon-screenshot:before { - content: "\f05b"; -} -.icon-remove-circle:before { - content: "\f05c"; -} -.icon-ok-circle:before { - content: "\f05d"; -} -.icon-ban-circle:before { - content: "\f05e"; -} -.icon-arrow-left:before { - content: "\f060"; -} -.icon-arrow-right:before { - content: "\f061"; -} -.icon-arrow-up:before { - content: "\f062"; -} -.icon-arrow-down:before { - content: "\f063"; -} -.icon-share-alt:before { - content: "\f064"; -} -.icon-resize-full:before { - content: "\f065"; -} -.icon-resize-small:before { - content: "\f066"; -} -.icon-plus:before { - content: "\f067"; -} -.icon-minus:before { - content: "\f068"; -} -.icon-asterisk:before { - content: "\f069"; -} -.icon-exclamation-sign:before { - content: "\f06a"; -} -.icon-gift:before { - content: "\f06b"; -} -.icon-leaf:before { - content: "\f06c"; -} -.icon-fire:before { - content: "\f06d"; -} -.icon-eye-open:before { - content: "\f06e"; -} -.icon-eye-close:before { - content: "\f070"; -} -.icon-warning-sign:before { - content: "\f071"; -} -.icon-plane:before { - content: "\f072"; -} -.icon-calendar:before { - content: "\f073"; -} -.icon-random:before { - content: "\f074"; -} -.icon-comment:before { - content: "\f075"; -} -.icon-magnet:before { - content: "\f076"; -} -.icon-chevron-up:before { - content: "\f077"; -} -.icon-chevron-down:before { - content: "\f078"; -} -.icon-retweet:before { - content: "\f079"; -} -.icon-shopping-cart:before { - content: "\f07a"; -} -.icon-folder-close:before { - content: "\f07b"; -} -.icon-folder-open:before { - content: "\f07c"; -} -.icon-resize-vertical:before { - content: "\f07d"; -} -.icon-resize-horizontal:before { - content: "\f07e"; -} -.icon-bar-chart:before { - content: "\f080"; -} -.icon-twitter-sign:before { - content: "\f081"; -} -.icon-facebook-sign:before { - content: "\f082"; -} -.icon-camera-retro:before { - content: "\f083"; -} -.icon-key:before { - content: "\f084"; -} -.icon-cogs:before { - content: "\f085"; -} -.icon-comments:before { - content: "\f086"; -} -.icon-thumbs-up:before { - content: "\f087"; -} -.icon-thumbs-down:before { - content: "\f088"; -} -.icon-star-half:before { - content: "\f089"; -} -.icon-heart-empty:before { - content: "\f08a"; -} -.icon-signout:before { - content: "\f08b"; -} -.icon-linkedin-sign:before { - content: "\f08c"; -} -.icon-pushpin:before { - content: "\f08d"; -} -.icon-external-link:before { - content: "\f08e"; -} -.icon-signin:before { - content: "\f090"; -} -.icon-trophy:before { - content: "\f091"; -} -.icon-github-sign:before { - content: "\f092"; -} -.icon-upload-alt:before { - content: "\f093"; -} -.icon-lemon:before { - content: "\f094"; -} -.icon-phone:before { - content: "\f095"; -} -.icon-check-empty:before { - content: "\f096"; -} -.icon-bookmark-empty:before { - content: "\f097"; -} -.icon-phone-sign:before { - content: "\f098"; -} -.icon-twitter:before { - content: "\f099"; -} -.icon-facebook:before { - content: "\f09a"; -} -.icon-github:before { - content: "\f09b"; -} -.icon-unlock:before { - content: "\f09c"; -} -.icon-credit-card:before { - content: "\f09d"; -} -.icon-rss:before { - content: "\f09e"; -} -.icon-hdd:before { - content: "\f0a0"; -} -.icon-bullhorn:before { - content: "\f0a1"; -} -.icon-bell:before { - content: "\f0a2"; -} -.icon-certificate:before { - content: "\f0a3"; -} -.icon-hand-right:before { - content: "\f0a4"; -} -.icon-hand-left:before { - content: "\f0a5"; -} -.icon-hand-up:before { - content: "\f0a6"; -} -.icon-hand-down:before { - content: "\f0a7"; -} -.icon-circle-arrow-left:before { - content: "\f0a8"; -} -.icon-circle-arrow-right:before { - content: "\f0a9"; -} -.icon-circle-arrow-up:before { - content: "\f0aa"; -} -.icon-circle-arrow-down:before { - content: "\f0ab"; -} -.icon-globe:before { - content: "\f0ac"; -} -.icon-wrench:before { - content: "\f0ad"; -} -.icon-tasks:before { - content: "\f0ae"; -} -.icon-filter:before { - content: "\f0b0"; -} -.icon-briefcase:before { - content: "\f0b1"; -} -.icon-fullscreen:before { - content: "\f0b2"; -} -.icon-group:before { - content: "\f0c0"; -} -.icon-link:before { - content: "\f0c1"; -} -.icon-cloud:before { - content: "\f0c2"; -} -.icon-beaker:before { - content: "\f0c3"; -} -.icon-cut:before { - content: "\f0c4"; -} -.icon-copy:before { - content: "\f0c5"; -} -.icon-paper-clip:before { - content: "\f0c6"; -} -.icon-save:before { - content: "\f0c7"; -} -.icon-sign-blank:before { - content: "\f0c8"; -} -.icon-reorder:before { - content: "\f0c9"; -} -.icon-list-ul:before { - content: "\f0ca"; -} -.icon-list-ol:before { - content: "\f0cb"; -} -.icon-strikethrough:before { - content: "\f0cc"; -} -.icon-underline:before { - content: "\f0cd"; -} -.icon-table:before { - content: "\f0ce"; -} -.icon-magic:before { - content: "\f0d0"; -} -.icon-truck:before { - content: "\f0d1"; -} -.icon-pinterest:before { - content: "\f0d2"; -} -.icon-pinterest-sign:before { - content: "\f0d3"; -} -.icon-google-plus-sign:before { - content: "\f0d4"; -} -.icon-google-plus:before { - content: "\f0d5"; -} -.icon-money:before { - content: "\f0d6"; -} -.icon-caret-down:before { - content: "\f0d7"; -} -.icon-caret-up:before { - content: "\f0d8"; -} -.icon-caret-left:before { - content: "\f0d9"; -} -.icon-caret-right:before { - content: "\f0da"; -} -.icon-columns:before { - content: "\f0db"; -} -.icon-sort:before { - content: "\f0dc"; -} -.icon-sort-down:before { - content: "\f0dd"; -} -.icon-sort-up:before { - content: "\f0de"; -} -.icon-envelope-alt:before { - content: "\f0e0"; -} -.icon-linkedin:before { - content: "\f0e1"; -} -.icon-undo:before { - content: "\f0e2"; -} -.icon-legal:before { - content: "\f0e3"; -} -.icon-dashboard:before { - content: "\f0e4"; -} -.icon-comment-alt:before { - content: "\f0e5"; -} -.icon-comments-alt:before { - content: "\f0e6"; -} -.icon-bolt:before { - content: "\f0e7"; -} -.icon-sitemap:before { - content: "\f0e8"; -} -.icon-umbrella:before { - content: "\f0e9"; -} -.icon-paste:before { - content: "\f0ea"; -} -.icon-user-md:before { - content: "\f200"; -} -#overview { - padding-top: 60px; -} -#new-icons, -#all-icons, -#examples, -#integration, -#code, -#roadmap { - padding-top: 40px; -} -.navbar .brand { - padding: 11px 20px 9px; - color: #ffffff; -} -.navbar-inner { - -webkit-border-radius: 0; - -moz-border-radius: 0; - border-radius: 0; -} -.navbar .nav > li > a { - padding: 12px 10px 9px; -} -h1, -h2, -h3, -h4, -h5, -h6 { - font-family: museo-slab, "Helvetica Neue", Helvetica, Arial, sans-serif; -} -#iconCarousel { - float: right; - width: 267.5px; - height: 206.25px; - margin-right: 10px; - margin-top: -20px; - font-size: 275px; - text-align: center; - text-shadow: 2px 2px 3px #222222; -} -#iconCarousel a { - color: #ffffff; -} -#iconCarousel .carousel-control { - top: 280px; - width: 23px; - height: 23px; - border-width: 3px; - font-size: 17px; - line-height: 28px; - left: 100.66666666666667px; -} -#iconCarousel .carousel-control.right { - left: auto; - right: 100.66666666666667px; -} -.hero-unit { - margin-bottom: 20px; - -webkit-border-radius: 20px; - -moz-border-radius: 20px; - border-radius: 20px; - background-color: #9d261d; - text-shadow: 2px 2px 2px #333333; -} -.hero-unit, -.hero-unit h1 { - color: #ffffff; -} -.hero-unit h1 { - font-size: 70px; - letter-spacing: -1px; - line-height: 1.2; -} -.hero-unit p { - margin-top: 10px; - margin-bottom: 15px; - font-size: 28px; - line-height: 34px; -} -.hero-unit ul { - margin-left: 50px; -} -.hero-unit ul li { - font-size: 15px; - line-height: 30px; - text-shadow: 1px 1px 1px #333333; -} -.hero-unit ul li.icon-large:before { - text-indent: -2em; - vertical-align: baseline; -} -.hero-unit a { - color: #fffeb8; -} -.hero-unit .btn-large { - background-color: #e4e4e4; - background-image: -moz-linear-gradient(top, #ffffff, #bbbbbb); - background-image: -ms-linear-gradient(top, #ffffff, #bbbbbb); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#bbbbbb)); - background-image: -webkit-linear-gradient(top, #ffffff, #bbbbbb); - background-image: -o-linear-gradient(top, #ffffff, #bbbbbb); - background-image: linear-gradient(top, #ffffff, #bbbbbb); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#bbbbbb', GradientType=0); - border-color: #bbbbbb #bbbbbb #959595; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - *background-color: #bbbbbb; - /* Darken IE7 buttons by default so they stand out more given they won't have borders */ - - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - font-family: museo-slab, "Helvetica Neue", Helvetica, Arial, sans-serif; - color: #333333; - margin-top: 15px; - font-weight: bold; - font-size: 18px; - padding: 13px 22px; - padding-left: 68px; - margin-right: 10px; - -webkit-border-radius: 6px; - -moz-border-radius: 6px; - border-radius: 6px; - position: relative; - text-align: left; -} -.hero-unit .btn-large:hover, -.hero-unit .btn-large:active, -.hero-unit .btn-large.active, -.hero-unit .btn-large.disabled, -.hero-unit .btn-large[disabled] { - background-color: #bbbbbb; - *background-color: #aeaeae; -} -.hero-unit .btn-large:active, -.hero-unit .btn-large.active { - background-color: #a2a2a2 \9; -} -.hero-unit .btn-large i { - position: absolute; - left: 22px; - font-size: 46px; -} -.hero-unit .btn-large.btn-github { - padding-left: 74px; -} -.hero-unit .hero-content { - width: 500px; - text-align: center; -} -.btn-primary, -.hero-unit .btn-primary { - background-color: #e7d785; - background-image: -moz-linear-gradient(top, #fffeb8, #c49c38); - background-image: -ms-linear-gradient(top, #fffeb8, #c49c38); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#fffeb8), to(#c49c38)); - background-image: -webkit-linear-gradient(top, #fffeb8, #c49c38); - background-image: -o-linear-gradient(top, #fffeb8, #c49c38); - background-image: linear-gradient(top, #fffeb8, #c49c38); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#fffeb8', endColorstr='#c49c38', GradientType=0); - border-color: #c49c38 #c49c38 #896d27; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - *background-color: #c49c38; - /* Darken IE7 buttons by default so they stand out more given they won't have borders */ - - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); - *background-color: #e7d785; - color: #333333; - text-shadow: 0 -1px 0 rgba(255, 255, 255, 0.25); -} -.btn-primary:hover, -.hero-unit .btn-primary:hover, -.btn-primary:active, -.hero-unit .btn-primary:active, -.btn-primary.active, -.hero-unit .btn-primary.active, -.btn-primary.disabled, -.hero-unit .btn-primary.disabled, -.btn-primary[disabled], -.hero-unit .btn-primary[disabled] { - background-color: #c49c38; - *background-color: #b08c32; -} -.btn-primary:active, -.hero-unit .btn-primary:active, -.btn-primary.active, -.hero-unit .btn-primary.active { - background-color: #9c7c2d \9; -} -.btn-primary:hover, -.hero-unit .btn-primary:hover { - text-shadow: 0 -1px 0 rgba(255, 255, 255, 0.25); - color: #333333; -} -#social-buttons { - margin-bottom: 30px; - text-align: center; -} -#social-buttons .btn { - font-family: museo-slab, "Helvetica Neue", Helvetica, Arial, sans-serif; - font-weight: bold; - font-size: 14px; - padding: 4px 10px 1px; - line-height: 21px; -} -#social-buttons .count.btn { - font-family: proxima-nova, "Helvetica Neue", Helvetica, Arial, sans-serif; - font-weight: normal; - background-color: #ffffff; - background-image: -moz-linear-gradient(top, #ffffff, #ffffff); - background-image: -ms-linear-gradient(top, #ffffff, #ffffff); - background-image: -webkit-gradient(linear, 0 0, 0 100%, from(#ffffff), to(#ffffff)); - background-image: -webkit-linear-gradient(top, #ffffff, #ffffff); - background-image: -o-linear-gradient(top, #ffffff, #ffffff); - background-image: linear-gradient(top, #ffffff, #ffffff); - background-repeat: repeat-x; - filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='#ffffff', endColorstr='#ffffff', GradientType=0); - border-color: #ffffff #ffffff #d9d9d9; - border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25); - *background-color: #ffffff; - /* Darken IE7 buttons by default so they stand out more given they won't have borders */ - - filter: progid:DXImageTransform.Microsoft.gradient(enabled = false); -} -#social-buttons .count.btn:hover, -#social-buttons .count.btn:active, -#social-buttons .count.btn.active, -#social-buttons .count.btn.disabled, -#social-buttons .count.btn[disabled] { - background-color: #ffffff; - *background-color: #f2f2f2; -} -#social-buttons .count.btn:active, -#social-buttons .count.btn.active { - background-color: #e6e6e6 \9; -} -#social-buttons .watch, -#social-buttons .fork { - margin-right: 30px; -} -.the-icons { - list-style-type: none; - margin-left: 0; -} -.the-icons li { - cursor: pointer; - line-height: 42px; - height: 42px; - padding-left: 12px; - -webkit-border-radius: 12px; - -moz-border-radius: 12px; - border-radius: 12px; -} -.the-icons li [class^="icon-"], -.the-icons li [class*=" icon-"] { - width: 32px; - font-size: 16px; -} -.the-icons li:hover { - background-color: #fbf4f4; -} -.the-icons li:hover [class^="icon-"], -.the-icons li:hover [class*=" icon-"] { - *font-size: 24px; - *vertical-align: middle; -} -.the-icons li:hover [class^="icon-"]:before, -.the-icons li:hover [class*=" icon-"]:before { - font-size: 24px; - vertical-align: middle; -} -#all-icons h3, -#new-icons h3 { - margin-top: 10px; -} -#why .row { - margin-bottom: 20px; -} -#why .icon-large { - font-size: 22px; - text-align: center; - padding-right: 4px; -} -#examples .btn-toolbar { - margin-top: 0; - margin-bottom: 20px; -} -#integration .row { - margin-bottom: 40px; -} -#examples form, -#code form { - margin-bottom: 25px; -} -#examples form input, -#code form input { - line-height: 1; -} -#examples .rating, -#code .rating { - unicode-bidi: bidi-override; - direction: rtl; - font-size: 30px; -} -#examples .rating span.star, -#code .rating span.star { - font-family: FontAwesome; - font-weight: normal; - font-style: normal; - display: inline-block; -} -#examples .rating span.star:hover, -#code .rating span.star:hover { - cursor: pointer; -} -#examples .rating span.star:before, -#code .rating span.star:before { - content: "\f006"; - padding-right: 5px; - color: #999999; -} -#examples .rating span.star:hover:before, -#code .rating span.star:hover:before, -#examples .rating span.star:hover ~ span.star:before, -#code .rating span.star:hover ~ span.star:before { - content: "\f005"; - color: #e3cf7a; -} -.modal { - width: 560px; - max-height: 600px; -} -.modal .modal-body { - *overflow: hidden; - max-height: none; - padding-bottom: 0; -} -.modal .modal-body .row { - margin-bottom: 15px; -} -.modal .modal-body div.thumbnail { - text-align: center; -} -.modal .modal-body div.thumbnail div { - margin-bottom: 5px; -} -.modal .modal-body .icon6 { - width: 325px; -} -.modal .modal-body .icon6 > div.thumbnail > div { - line-height: 340px; - height: 323px; - text-align: center; -} -.modal .modal-body .icon6 > div.thumbnail > div i { - font-size: 340px; -} -.modal .modal-body .icon5 { - width: 185px; -} -.modal .modal-body .icon5 > div.thumbnail > div { - line-height: 180px; - height: 171px; - text-align: center; -} -.modal .modal-body .icon5 > div.thumbnail > div i { - font-size: 180px; -} -.modal .modal-body .icon4 { - width: 215px; -} -.modal .modal-body .icon4 > div.thumbnail > div { - line-height: 100px; - height: 95px; - text-align: center; -} -.modal .modal-body .icon4 > div.thumbnail > div i { - font-size: 100px; -} -.modal .modal-body .icon3 { - width: 120px; -} -.modal .modal-body .icon3 > div.thumbnail > div { - line-height: 50px; - height: 47.5px; - text-align: center; -} -.modal .modal-body .icon3 > div.thumbnail > div i { - font-size: 50px; -} -.modal .modal-body .icon2 { - width: 75px; -} -.modal .modal-body .icon2 > div.thumbnail > div { - line-height: 20px; - height: 19px; - text-align: center; -} -.modal .modal-body .icon2 > div.thumbnail > div i { - font-size: 20px; -} -.modal .modal-body .icon1 { - width: 60px; -} -.modal .modal-body .icon1 > div.thumbnail > div { - line-height: 12px; - height: 11.399999999999999px; - text-align: center; -} -.modal .modal-body .icon1 > div.thumbnail > div i { - font-size: 12px; -} -.label, -.badge { - background-color: #eeeeee; -} -footer { - color: #555555; - border-top: 1px solid #eeeeee; - margin-top: 60px; - padding-top: 20px; - padding-bottom: 60px; - *zoom: 1; -} -footer ul { - margin-left: 30px; - line-height: 25px; -} diff --git a/sources/libs/font-awesome/docs/assets/font/fontawesome-webfont.eot b/sources/libs/font-awesome/docs/assets/font/fontawesome-webfont.eot deleted file mode 100755 index 89070c1e63c2703b2334023922ecc1664f759b55..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 38708 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 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/sources/libs/font-awesome/docs/assets/font/fontawesome-webfont.ttf b/sources/libs/font-awesome/docs/assets/font/fontawesome-webfont.ttf deleted file mode 100755 index c17e9f8d100d01a002029b5b93cc081062618bf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 68476 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 diff --git a/sources/libs/font-awesome/docs/assets/font/museo_slab_300-webfont.eot b/sources/libs/font-awesome/docs/assets/font/museo_slab_300-webfont.eot deleted file mode 100755 index 3324999469eb365314319060035a254cc0db9cfb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51440 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 diff --git a/sources/libs/font-awesome/docs/assets/font/museo_slab_300-webfont.ttf b/sources/libs/font-awesome/docs/assets/font/museo_slab_300-webfont.ttf deleted file mode 100755 index 9248b9a4ea64dc6d3bfde5e9a1f92bf7d799bea4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 51260 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 z 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 diff --git a/sources/libs/font-awesome/docs/assets/font/museo_slab_500-webfont.eot b/sources/libs/font-awesome/docs/assets/font/museo_slab_500-webfont.eot deleted file mode 100755 index 2eb7a8977fb20fd158d41859c542125ac96d27cb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55516 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
").helper("i18n",c,{},{type:"labels",name:"location"}).write("
").reference(c.get("location"),c,"h").write("
")}function d(a,c){return a.write("
").helper("i18n",c,{},{type:"labels",name:"description"}).write("
").reference(c.get("formatted_description"), -c,"h").write("
")}function b(a,c){return a.write("
").helper("i18n",c,{},{type:"labels",name:"repeat"}).write("
").exists(c.get("rrule_explained"),c,{"else":f,block:j},null)}function f(a,c){return a.write("
").helper("i18n",c,{},{type:"messages",name:"info_repetition_unparseable"}).write(' ').reference(c.get("rrule"),c,"h").write("
")}function j(a,c){return a.write("
").helper("i18n",c,{},{type:"messages",name:"info_repetition_human",explanation:h}).write("
")} -function h(a,c){return a.reference(c.get("rrule_explained"),c,"h")}function k(a,c){return a.write("
").helper("i18n",c,{},{type:"labels",name:"reminder"}).write("
").partial("reminder_description",c,null).write("
")}function l(a,c){return a.write('
")}dust.register("event_details_popup",a);return a})();(function(){function a(a,d){return a.write('')}dust.register("datepicker_button",a);return a})(); -(function(){function a(a,c){return a.write('
").partial("form_open",c,{applyclass:"form-horizontal",applyid:"calendar_modify_form"}).write('
').exists(c.get("user_from"),c,{block:b},null).partial("calendar_basic_form_part", -c,null).write("
").exists(c.get("enable_calendar_sharing"),c,{block:k},null).partial("form_close",c,null).write("
")}function e(a,c){return a.notexists(c.get("shared"),c,{block:d},null)}function d(a,c){return a.write('
  • ').helper("i18n",c,{},{type:"labels",name:"shareoptions"}).write("
  • ")}function b(a,c){return a.write('")}function f(a,c){return a.reference(c.get("user_from"),c,"h")}function j(a,c){return a.write("(").helper("i18n",c,{},{type:"labels",name:"readonly"}).write(")")}function h(a,c){return a.reference(c.get("write_access"),c,"h")}function k(a,c){return a.notexists(c.get("shared"),c,{block:l},null)}function l(a,c){return a.write('
    ').partial("calendar_share_table",c,null).write("
    ")}dust.register("calendar_modify_dialog",a);return a})(); -(function(){function a(a,g){return a.exists(g.get("calendar"),g,{block:e},null).write('').partial("form_element_start",g,{"for":"displayname",label:"displayname"}).write('').partial("form_element_end",g,null).partial("form_element_start", -g,{"for":"color",label:"color"}).write('').partial("form_element_end",g,null).exists(g.get("public_url"),g,{block:k},null)}function e(a,b){return a.write('')}function d(a){return a.write("false")}function b(a){return a.write("true")}function f(a, -b){return a.reference(b.get("displayname"),b,"h")}function j(a,b){return a.reference(b.get("default_calendar_color"),b,"h")}function h(a,b){return a.reference(b.get("color"),b,"h")}function k(a,b){return a.write('")}dust.register("calendar_basic_form_part",a);return a})(); -(function(){function a(a,b){return a.write('
    ')}function e(a,b){return a.write('for="').reference(b.get("for"),b,"h").write('"')}dust.register("form_element_start",a);return a})(); -(function(){function a(a,d){return a.write('').reference(d.get("username"),d,"h").write('').helper(')}dust.register("calendar_share_row",a);return a})(); -(function(){function a(a,b){return a.exists(b.get("input_help"),b,{block:e},null).write("
    ")}function e(a,b){return a.write('

    ').reference(b.get("input_help"),b,"h").write("

    ")}dust.register("form_element_end",a);return a})(); -(function(){function a(a,i){return a.write('').notexists(i.get("add"),i,{block:j},null).exists(i.get("is_absolute"),i,{"else":h,block:k},null).write('').exists(i.get("is_absolute"),i,{"else":l,block:o},null).write("").exists(i.get("add"),i,{"else":p,block:q},null).write("")}function e(a){return a.write("is_absolute")} -function d(a){return a.write("reminders[is_absolute][]")}function b(a){return a.write("false")}function f(a){return a.write("true")}function j(a,b){return a.write('')}function h(a){return a.write('')}function k(a){return a.write('')}function l(a,b){return a.write('").notexists(b.get("add"), -b,{block:H},null)}function g(a){return a.write("qty")}function c(a){return a.write("reminders[qty][]")}function m(a){return a.write("interval")}function n(a){return a.write("reminders[interval][]")}function r(a){return a.write(' selected="true"')}function s(a,b){return a.reference(b.get("interval"),b,"h")}function t(a){return a.write(' selected="true"')}function u(a,b){return a.reference(b.get("interval"),b,"h")}function v(a){return a.write(' selected="true"')}function w(a,b){return a.reference(b.get("interval"), -b,"h")}function x(a){return a.write(' selected="true"')}function y(a,b){return a.reference(b.get("interval"),b,"h")}function z(a){return a.write("before")}function A(a){return a.write("reminders[before][]")}function B(a){return a.write(' selected="true"')}function C(a,b){return a.notexists(b.get("add"),b,{block:I},null)}function I(a){return a.write(' selected="true"')}function D(a){return a.write("relatedStart")}function E(a){return a.write("reminders[relatedStart][]")}function F(a){return a.write(' selected="true"')} -function G(a,b){return a.notexists(b.get("add"),b,{block:J},null)}function J(a){return a.write(' selected="true"')}function H(a){return a.write('')}function o(a,b){return a.write('').notexists(b.get("add"),b,{block:O},null)}function K(a){return a.write("tdate")}function L(a){return a.write("reminders[tdate][]")}function M(a){return a.write("ttime")}function N(a){return a.write("reminders[ttime][]")}function O(a){return a.write('')} -function p(a,b){return a.write('').helper(')}function q(a,b){return a.write('').helper(')}dust.register("reminder_row",a);return a})(); -(function(){function a(a,b){return a.write('
    ').partial("form_open",b,null).write('

    ').helper("i18n",b,{},{type:"messages",name:"info_confirmeventdelete"}).write('

    ').reference(b.get("title"), -b,"h").write("

    ").exists(b.get("rrule"),b,{block:e},null).partial("form_close",b,null).write("
    ")}function e(a,b){return a.write("

    ").helper("i18n",b,{},{type:"messages",name:"info_repetitivedeleteall"}).write("

    ")}dust.register("event_delete_dialog",a);return a})(); -(function(){function a(a,c){return a.write('
  • ').exists(c.get("shared"),c,{"else":f,block:h},null).write('").reference(c.get("displayname"), -c,"h").write('
  • ')}function e(a){return a.write(" default_calendar")}function d(a,b){return a.reference(b.get("default_calendar_color"),b,"h")}function b(a,b){return a.reference(b.get("color"),b,"h")}function f(a,b){return a.exists(b.get("share_with"),b,{block:j},null)}function j(a,b){return a.write('')} -function h(a,b){return a.helper("eq",b,{block:k},{key:l,value:"0"})}function k(a,b){return a.write('')}function l(a,b){return a.reference(b.get("write_access"),b,"h")}function g(a,b){return a.write('title="').helper("i18n",b,{},{type:"messages",name:"info_sharedby",user:c}).write('"')}function c(a,b){return a.reference(b.get("user_from"),b,"h")}dust.register("calendar_list_entry",a);return a})(); -(function(){function a(a,b){return a.exists(b.get("is_absolute"),b,{"else":e,block:n},null)}function e(a,b){return a.reference(b.get("qty"),b,"h").write(" ").helper("select",b,{block:d},{key:k}).write(" ").exists(b.get("before"),b,{"else":l,block:g},null).write(" ").exists(b.get("relatedStart"),b,{"else":c,block:m},null)}function d(a,c){return a.helper("eq",c,{block:b},{value:"min"}).helper("eq",c,{block:f},{value:"hour"}).helper("eq",c,{block:j},{value:"day"}).helper("eq",c,{block:h},{value:"week"})} -function b(a,b){return a.helper("i18n",b,{},{type:"labels",name:"minutes"})}function f(a,b){return a.helper("i18n",b,{},{type:"labels",name:"hours"})}function j(a,b){return a.helper("i18n",b,{},{type:"labels",name:"days"})}function h(a,b){return a.helper("i18n",b,{},{type:"labels",name:"weeks"})}function k(a,b){return a.reference(b.get("interval"),b,"h")}function l(a,b){return a.helper("i18n",b,{},{type:"labels",name:"after"})}function g(a,b){return a.helper("i18n",b,{},{type:"labels",name:"before"})} -function c(a,b){return a.helper("i18n",b,{},{type:"labels",name:"end"})}function m(a,b){return a.helper("i18n",b,{},{type:"labels",name:"start"})}function n(a,b){return a.reference(b.get("tdate"),b,"h").write(" ").reference(b.get("ttime"),b,"h")}dust.register("reminder_description",a);return a})(); -var ved="div.view_event_details",ced="#com_event_dialog",dustbase={}; -$(document).ready(function(){load_i18n_strings();dust.helpers.i18n=function(a,b,c,d){var c={},e=d.name,f=d.type;delete d.name;delete d.type;for(var g in d)d.hasOwnProperty(g)&&(c["%"+g]=dust.helpers.tap(d[g],a,b));return a.write(t(f,e,c))};$("body").hasClass("loginpage")?($("input:submit").button(),$('input[name="user"]').focus()):$("body").hasClass("prefspage")?($("#prefs_tabs").tabs(),$("#prefs_buttons button").button(),$("#return_button").on("click",function(){window.location=base_app_url;return false}), -$("#save_button").on("click",function(){var a=$("#prefs_form");proceed_send_ajax_form(a,function(){show_success(t("messages","info_prefssaved"),"")},function(a){show_error(t("messages","error_invalidinput"),a)},function(){})})):$("body").hasClass("calendarpage")&&(dustbase=dust.makeBase({default_calendar_color:default_calendar_color,base_url:base_url,base_app_url:base_app_url,csrf_token_name:AgenDAVConf.prefs_csrf_token_name,enable_calendar_sharing:enable_calendar_sharing}),set_default_colorpicker_options(), -$("#calendar_view").fullCalendar({selectable:true,editable:true,firstDay:AgenDAVConf.prefs_firstday,timeFormat:{agenda:AgenDAVConf.prefs_timeformat+"{ - "+AgenDAVConf.prefs_timeformat+"}","":AgenDAVConf.prefs_timeformat},columnFormat:{month:AgenDAVConf.prefs_format_column_month,week:AgenDAVConf.prefs_format_column_week,day:AgenDAVConf.prefs_format_column_day,table:AgenDAVConf.prefs_format_column_table},titleFormat:{month:AgenDAVConf.prefs_format_title_month,week:AgenDAVConf.prefs_format_title_week, -day:AgenDAVConf.prefs_format_title_day,table:AgenDAVConf.prefs_format_title_table},currentTimeIndicator:true,weekMode:"liquid",height:calendar_height(),windowResize:function(){$(this).fullCalendar("option","height",calendar_height())},header:{left:"month,agendaWeek,agendaDay table",center:"title",right:"today prev,next"},listTexts:{until:t("labels","repeatuntil"),past:t("labels","pastevents"),today:t("labels","today"),tomorrow:t("labels","tomorrow"),thisWeek:t("labels","thisweek"),nextWeek:t("labels", -"nextweek"),thisMonth:t("labels","thismonth"),nextMonth:t("labels","nextmonth"),future:t("labels","future"),week:"W"},listSections:"smart",listRange:30,listPage:7,monthNames:month_names_long(),monthNamesShort:month_names_short(),dayNames:day_names_long(),dayNamesShort:day_names_short(),buttonText:{today:t("labels","today"),month:t("labels","month"),week:t("labels","week"),day:t("labels","day"),table:t("labels","tableview")},theme:true,allDayText:t("labels","allday"),axisFormat:AgenDAVConf.prefs_timeformat, -slotMinutes:30,firstHour:8,allDayDefault:false,loading:function(a){loading(a)},eventRender:event_render_callback,eventClick:event_click_callback,select:slots_drag_callback,selectHelper:select_helper,eventResize:event_resize_callback,eventDrop:event_drop_callback}),$(' '+t("labels","refresh")+"").appendTo("#calendar_view td.fc-header-right").button().on("click",function(){update_calendar_list(true)}).before(''), -dust.render("datepicker_button",dustbase,function(a,b){a!=null?show_error(t("messages","error_interfacefailure"),a.message):($("#calendar_view span.fc-button-next").after(b),$("#datepicker_fullcalendar").datepicker({changeYear:true,closeText:t("labels","cancel"),onSelect:function(){var a=$("#datepicker_fullcalendar").datepicker("getDate");$("#calendar_view").fullCalendar("gotoDate",a)}}).prev().button().on("click",function(){$("#datepicker_fullcalendar").datepicker("setDate",$("#calendar_view").fullCalendar("getDate")); -$("#datepicker_fullcalendar").datepicker("show")}))}),$("#calendar_view").fullCalendar("renderEvent",{title:"Little portal",start:"1985-02-15T00:00:00Z",end:"1985-02-15T23:59:59Z",allDay:true,editable:false,color:"#E78AEF"},true),$("div.calendar_list").on("click","i.cfg",function(a){a.stopPropagation();a=$(this).parent();calendar_modify_dialog($(a[0]).data())}).on("click","li.available_calendar",function(){toggle_calendar($(this))}),update_calendar_list(true),$("#sidebar").on("click","#toggle_all_shared_calendars", -function(){var a=$("#shared_calendar_list").find("ul").children();$(this).hasClass("hide_all")?($.map(a,function(a){hide_calendar($(a))}),$(this).removeClass("hide_all").addClass("show_all").find("i").removeClass("icon-eye-close").addClass("icon-eye-open")):($.map(a,function(a){show_calendar($(a))}),$(this).removeClass("show_all").addClass("hide_all").find("i").removeClass("icon-eye-open").addClass("icon-eye-close"))}),$("#sidebar div.buttons").find("img[title],span[title],a[title]").qtip({position:{my:"top left", -at:"bottom left"},show:{delay:600},style:{classes:"ui-tooltip-bootstrap",tip:true}}),$("#calendar_add").on("click",calendar_create_dialog),$("#shortcut_add_event").button({icons:{primary:"ui-icon-plusthick"}}).on("click",function(){var a={start:fulldatetimestring($("#calendar_view").fullCalendar("getDate")),allday:false,view:"month"};$("#calendar_view").fullCalendar("unselect");event_field_form("new",a)}));setup_print_tweaks();$("#usermenu").qtip({content:$("#usermenu_content"),position:{my:"top center", -at:"bottom center"},style:{tip:true,classes:"ui-tooltip-bootstrap agendav-menu"},show:{event:"click",effect:false,delay:0},hide:{event:"unfocus"}})}); -var calendar_height=function(){var a=$("#calendar_view").offset();return $(window).height()-Math.ceil(a.top)-30},show_error=function(a,b){loading(false);$("#popup").freeow(a,b,{classes:["popup_error"],autoHide:false,showStyle:{opacity:1,left:0},hideStyle:{opacity:0,left:"400px"}})},show_success=function(a,b){$("#popup").freeow(a,b,{classes:["popup_success"],autoHide:true,autoHideDelay:2E3,showStyle:{opacity:1,left:0},hideStyle:{opacity:0,left:"400px"}})},get_data=function(a){return $.data($("body")[0], -a)},set_data=function(a,b){$.data($("body")[0],a,b)},remove_data=function(a){$.removeData($("body")[0],a)},load_generated_dialog=function(a,b,c,d,e,f,g){f="#"+f;if($(f).length!=0)return false;b=generate_on_the_fly_form(base_app_url+"event/modify",b);if(get_data("formcreation")=="ok"){b=$("#"+b);$(b).attr("action");var h=$(b).serialize(),a=$.ajax({url:base_app_url+a,cache:false,type:"POST",data:h,dataType:"html"});a.then(function(){loading(false)});a.fail(function(a,b){show_error(t("messages","error_loading_dialog"), -t("messages","error_oops")+": "+b)});a.done(function(a){$("body").append(a);$(f).dialog({autoOpen:true,buttons:e,title:d,minWidth:g,modal:true,open:function(a){c();$(f).dialog("option","position","center");a=$(a.target).parent().find(".ui-dialog-buttonset").children();add_button_icons(a)},close:function(){$(this).remove()}})});$(b).remove()}else show_error(t("messages","error_interfacefailure"),t("messages","error_oops"))},proceed_send_ajax_form=function(a,b,c,d){var e=$(a).attr("action"),a=$(a).serialize(); -loading(true);e=$.ajax({url:e,cache:false,type:"POST",data:a,dataType:"json"});e.then(function(){loading(false)});e.fail(function(a,b){show_error(t("messages","error_interfacefailure"),t("messages","error_oops")+":"+b);set_data("lastoperation","failed");d()});e.done(function(a){var e=a.result,a=a.message;e=="ERROR"?(set_data("lastoperation","failed"),show_error(t("messages","error_internal"),a),d()):e=="EXCEPTION"?(set_data("lastoperation","failed"),c(a)):e=="SUCCESS"?(set_data("lastoperation","success"), -b(a)):show_error(t("messages","error_internal"),t("messages","error_oops")+":"+e)})},show_dialog=function(a,b,c,d,e,f,g){dust.render(a,dustbase.push(b),function(a,b){a!=null?show_error(t("messages","error_interfacefailure"),a.message):($("body").append(b),$("#"+e).dialog({autoOpen:true,buttons:d,title:c,minWidth:f,modal:true,open:function(a){g();$(e).dialog("option","position","center");a=$(a.target).parent().find(".ui-dialog-buttonset").children();add_button_icons(a)},close:function(){$(this).remove()}}))})}, -generate_on_the_fly_form=function(a,b){for(var c="",d=0;d<10;d++)c+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789".charAt(Math.floor(Math.random()*62));d=$.ajax({url:base_app_url+"dialog_generator/on_the_fly_form/"+c,cache:false,type:"POST",contentType:"text",dataType:"text",async:false});d.fail(function(){session_expired();set_data("formcreation","failed")});d.done(function(c){var d="";$.each(b,function(a,b){d+=''});$(c).append(d).attr("action", -a).appendTo(document.body);set_data("formcreation","ok")});return c},destroy_dialog=function(a){$(a).dialog("close");$(a).dialog("destroy");$(a).remove()},set_default_datepicker_options=function(){$.datepicker.regional.custom={closeText:t("labels","close"),prevText:t("labels","previous"),nextText:t("labels","next"),currentText:t("labels","today"),monthNames:month_names_long(),monthNamesShort:month_names_short(),dayNames:day_names_long(),dayNamesShort:day_names_short(),dayNamesMin:day_names_short(), -weekHeader:"Sm",firstDay:AgenDAVConf.prefs_firstday,isRTL:false,showMonthAfterYear:false,yearSuffix:""};$.datepicker.setDefaults($.datepicker.regional.custom);$.datepicker.setDefaults({constrainInput:true});$.datepicker.setDefaults({dateFormat:AgenDAVConf.prefs_dateformat})},set_end_minDate=function(){var a=ced+" input.end_date",b=ced+" input.recurrence_until",c=$(ced+" input.start_date").datepicker("getDate");c.setTime(c.getTime());$(a).datepicker("option","minDate",c);$(b).datepicker("option","minDate", -c)},update_recurrence_options=function(a){a=="none"?($(ced+" input.recurrence_count").val(""),$(ced+" input.recurrence_until").val(""),$(ced+" input.recurrence_count").attr("disabled","disabled"),$(ced+" input.recurrence_count").addClass("ui-state-disabled"),$(ced+' label[for="recurrence_count"]').addClass("ui-state-disabled"),$(ced+" input.recurrence_until").attr("disabled","disabled"),$(ced+" input.recurrence_until").datepicker("disable"),$(ced+" input.recurrence_until").addClass("ui-state-disabled"), -$(ced+' label[for="recurrence_until"]').addClass("ui-state-disabled")):(enforce_exclusive_recurrence_field("recurrence_count","recurrence_until"),enforce_exclusive_recurrence_field("recurrence_until","recurrence_count"))},event_field_form=function(a,b){var c="dialog_generator/",d;a=="new"?(c+="create_event",d=t("labels","createevent")):(c+="edit_event",d=t("labels","editevent"));load_generated_dialog(c,b,function(){$(ced+"_tabs").tabs();$(ced+" input.start_time").timePicker(AgenDAVConf.timepicker_base); -$(ced+" input.end_time").timePicker(AgenDAVConf.timepicker_base);$(ced+" input.start_date").datepicker({onSelect:function(){set_end_minDate()}});$(ced+" input.end_date").datepicker();$(ced+" input.recurrence_until").datepicker();$(ced+" input.end_time").data("untouched",true);set_end_minDate();update_recurrence_options($(ced+" select.recurrence_type").val());$(ced).on("change","input.allday",function(){var a=$(ced+" input.start_date").datepicker("getDate");set_end_minDate();$(this).is(":checked")? -($(ced+" input.start_time").hide(),$(ced+" input.end_time").hide()):($(ced+" input.end_date").removeAttr("disabled"),$(ced+" input.end_date").removeClass("ui-state-disabled"),$(ced+" input.end_date").datepicker("setDate",a),$(ced+" input.start_time").show(),$(ced+" input.end_time").show())});$(ced).on("change","select.recurrence_type",function(){$(this).val();update_recurrence_options($(this).val())});$(ced).on("keyup","input.recurrence_count",function(){enforce_exclusive_recurrence_field("recurrence_count", -"recurrence_until")}).on("keyup change","input.recurrence_until",function(){enforce_exclusive_recurrence_field("recurrence_until","recurrence_count")});var c=$.timePicker(ced+" input.start_time").getTime(),d=$.timePicker(ced+" input.end_time").getTime()-c.getTime();$(ced).on("change","input.start_time",function(){if($(ced+" input.end_time").data("untouched")){var a=$.timePicker(ced+" input.start_time").getTime(),b=$.timePicker(ced+" input.end_time").getTime()-c.getTime();$.timePicker(ced+" input.end_time").setTime(new Date(a.getTime()+ -b));c=a}});$(ced).on("change","input.end_time",function(){$.timePicker(this).getTime()-$.timePicker(ced+" input.start_time").getTime()!=d&&$(this).data("untouched",false)});a=="new"&&$('input[name="summary"]').focus();dust.render("reminders_table",dustbase.push(b),function(a,b){a!=null?show_error(t("messages","error_interfacefailure"),a.message):($("#tabs-reminders").html(b),reminders_manager())})},d,[{text:t("labels","save"),"class":"addicon btn-icon-event-edit",click:function(){var a=$("#com_form"); -proceed_send_ajax_form(a,function(a){$.each(a,function(a,b){reload_event_source(b)});destroy_dialog(ced)},function(a){show_error(t("messages","error_invalidinput"),a)},function(){})}},{text:t("labels","cancel"),"class":"addicon btn-icon-cancel",click:function(){destroy_dialog(ced)}}],"com_event_dialog",550)},update_single_event=function(a,b){$.each(b,function(b,d){a[b]=d});$("#calendar_view").fullCalendar("updateEvent",a)},calendar_create_dialog=function(){var a=base_app_url+"calendar/create",b=t("labels", -"newcalendar"),a={applyid:"calendar_create_form",frm:{action:a,method:"post",csrf:get_csrf_token()}};show_dialog("calendar_create_dialog",a,b,[{text:t("labels","create"),"class":"addicon btn-icon-calendar-add",click:function(){var a=$("#calendar_create_form");proceed_send_ajax_form(a,function(){destroy_dialog("#calendar_create_dialog");update_calendar_list(false)},function(a){show_error(t("messages","error_invalidinput"),a)},function(){})}},{text:t("labels","cancel"),"class":"addicon btn-icon-cancel", -click:function(){destroy_dialog("#calendar_create_dialog")}}],"calendar_create_dialog",400,function(){$("input.pick_color").colorPicker()})},calendar_modify_dialog=function(a){var b=base_app_url+"calendar/modify",c=t("labels","modifycalendar");$.extend(a,{applyid:"calendar_modify_form",frm:{action:b,method:"post",csrf:get_csrf_token()}});b=[{text:t("labels","deletecalendar"),"class":"addicon btn-icon-calendar-delete",click:function(){calendar_delete_dialog(a)}},{text:t("labels","save"),"class":"addicon btn-icon-calendar-edit", -click:function(){var a=$("#calendar_modify_form");proceed_send_ajax_form(a,function(){destroy_dialog("#calendar_modify_dialog");update_calendar_list(false)},function(a){show_error(t("messages","error_invalidinput"),a)},function(){})}},{text:t("labels","cancel"),"class":"addicon btn-icon-cancel",click:function(){destroy_dialog("#calendar_modify_dialog")}}];a.shared===true&&b.splice(0,1);show_dialog("calendar_modify_dialog",a,c,b,"calendar_modify_dialog",500,function(){$("input.pick_color").colorPicker(); -$("#calendar_modify_dialog_tabs").tabs();enable_calendar_sharing===true&&a.shared!==true&&share_manager()})},calendar_delete_dialog=function(a){destroy_dialog("#calendar_modify_dialog");var b=base_app_url+"calendar/delete",c=t("labels","deletecalendar");$.extend(a,{applyid:"calendar_delete_form",frm:{action:b,method:"post",csrf:get_csrf_token()}});show_dialog("calendar_delete_dialog",a,c,[{text:t("labels","yes"),"class":"addicon btn-icon-calendar-delete",click:function(){var a=$("#calendar_delete_form"); -proceed_send_ajax_form(a,function(a){$(".calendar_list li.available_calendar").each(function(){var b=$(this).data();if(b.calendar==a)return $("#calendar_view").fullCalendar("removeEventSource",b.eventsource),$(this).remove(),false})},function(a){show_error(t("messages","error_caldelete"),a)},function(){});destroy_dialog("#calendar_delete_dialog")}},{text:t("labels","cancel"),"class":"addicon btn-icon-cancel",click:function(){destroy_dialog("#calendar_delete_dialog")}}],"calendar_delete_dialog",500, -function(){})},update_calendar_list=function update_calendar_list(b){b&&loading(true);var c=$.ajax({url:base_app_url+"calendar/all",cache:false,dataType:"json",async:false});c.then(function(){b&&loading(false)});c.fail(function(b,c){show_error(t("messages","error_loading_calendar_list"),t("messages","error_oops")+c)});c.done(function(b){var c={};$(".calendar_list li.available_calendar").each(function(){var b=$(this).data();$("#calendar_view").fullCalendar("removeEventSource",b.eventsource);$(this).hasClass("transparent")&& -(c[b.calendar]=true);$(this).remove()});var f=0,g=0,h=document.createDocumentFragment(),i=document.createDocumentFragment(),j=[];$.each(b,function(b,d){f++;d.color=d.color===void 0||d.color===false||d.color==null?default_calendar_color:d.color.substr(0,7);d.fg=fg_for_bg(d.color);d.bordercolor=$.color.parse(d.color).scale("rgb",d.fg=="#000000"?0.8:1.8).toString();var k=generate_calendar_entry(d);c[d.calendar]?k.addClass("transparent"):j.push($(k).data().eventsource);d.shared==true?(g++,i.appendChild(k[0])): -h.appendChild(k[0])});if(f==0)b=get_data("last_calendar_count"),b===void 0||b!="0"?(set_data("last_calendar_count",0),setTimeout(function(){update_calendar_list(false)},1)):(show_error(t("messages","notice_no_calendars"),""),$("#shortcut_add_event").button("disable"));else{set_data("last_calendar_count",f);$("#own_calendar_list ul")[0].appendChild(h);g==0?$("#shared_calendar_list").hide():($("#shared_calendar_list ul")[0].appendChild(i),$("#shared_calendar_list").show());for(;f--;)$("#calendar_view").fullCalendar("addEventSource", -j[f]);$("#shortcut_add_event").button("enable")}})},generate_event_source=function(a){return{url:base_app_url+"event/all#"+a,cache:false,data:{calendar:a},error:function(b){b.status!==void 0&&b.status==401?session_expired():show_error(t("messages","error_interfacefailure"),t("messages","error_loadevents",{"%cal":a}))},startParamUTC:true,endParamUTC:true}},session_refresh=function session_refresh(b){var c=$.ajax({url:base_app_url+"js_generator/keepalive",cache:false,method:"GET",dataType:"html"}); -c.done(function(c){c!==""?$("body").append(c):setTimeout(function(){session_refresh(b)},b)});c.fail(function(){session_expired()})},add_button_icons=function(a){a.filter("button.addicon").removeClass("addicon").removeClass("ui-button-text-only").addClass("ui-button-text-icon-primary").each(function(a,c){var d=$(c).attr("class").split(" ");$.each(d,function(a,b){if(b.match(/^btn-icon-/))return $(c).prepend(''),$(c).removeClass(b),false})})}, -generate_calendar_entry=function(a){var b=generate_event_source(a.calendar);b.ignoreTimezone=true;b.color=a.color;b.textColor=a.fg;b.borderColor=a.bordercolor;if(a.shared!==void 0&&a.shared==true&&a.write_access=="0")b.editable=false;a.eventsource=b;var c;dust.render("calendar_list_entry",dustbase.push(a),function(b,e){b!=null?show_error(t("messages","error_interfacefailure"),b.message):(c=$(e),c.data(a),c.disableSelection(),c.find("span[title],i[title]").qtip({position:{my:"top left",at:"bottom left"}, -show:{delay:600},style:{classes:"ui-tooltip-bootstrap",tip:true}}))});return c},get_calendar_data=function(a){var b=void 0;$(".calendar_list li.available_calendar").each(function(){var c=$(this).data();if(c.calendar==a)return b=c,false});return b},get_calendar_displayname=function(a){a=get_calendar_data(a);return a===void 0||a.displayname===void 0?"(?)":a.displayname},reload_event_source=function(a){var b=void 0;$(".calendar_list li.available_calendar").each(function(){var c=$(this).data();if(c.calendar== -a)return b=c.eventsource,false});b!==void 0?($("#calendar_view").fullCalendar("removeEventSource",b),$("#calendar_view").fullCalendar("addEventSource",b)):show_error(t("messages","error_interfacefailure"),t("messages","error_calendarnotfound",{"%calendar":a}))},enforce_exclusive_recurrence_field=function(a,b){$(ced+" input."+a).val()==""?($(ced+" input."+b).removeAttr("disabled"),$(ced+" input."+b).removeClass("ui-state-disabled"),$(ced+' label[for="'+b+'"]').removeClass("ui-state-disabled"),b=="recurrence_until"&& -$(ced+" input."+b).datepicker("enable")):($(ced+" input."+b).attr("disabled","disabled"),$(ced+" input."+b).addClass("ui-state-disabled"),$(ced+" input."+b).val(""),$(ced+' label[for="'+b+'"]').addClass("ui-state-disabled"),b=="recurrence_until"&&$(ced+" input."+b).datepicker("disable"))},timestamp=function(a){return Math.round(a.getTime()/1E3)},fulldatetimestring=function(a){if(a!=void 0)return $.fullCalendar.formatDate(a,"yyyyMMddHHmmss")},fg_for_bg=function(a){a=parseInt(a.substr(1),16);return(a>>> -16)+(a>>>8&255)+(a&255)<500?"#ffffff":"#000000"},session_expired=function(){$(".ui-dialog-content").dialog("close");show_error(t("messages","error_sessexpired"),t("messages","error_loginagain"));setTimeout(function(){window.location=base_url},2E3)},share_manager=function(){var a=$("#calendar_share_table"),b=$("#calendar_share_add");share_manager_no_entries_placeholder();a.on("click",".calendar_share_delete",function(){$(this).parent().parent().fadeOut("fast",function(){$(this).remove();share_manager_no_entries_placeholder()})}); -var c={},d;b.find("#calendar_share_add_username").autocomplete({minLength:3,source:function(a,b){var g=a.term;g in c?b(c[g]):d=$.getJSON(base_app_url+"caldav2json/principal_search",a,function(a,e,j){c[g]=a;j===d&&b(a)})},focus:function(a,b){$(this).val(b.item.username);return false},select:function(a,b){$(this).val(b.item.username);return false}}).data("autocomplete")._renderItem=function(a,b){return $("
  • ").data("item.autocomplete",b).append(' '+b.displayname+' <'+ -b.email+">").appendTo(a)};b.on("click","#calendar_share_add_button",function(){var b=$("#calendar_share_add_username").val(),c=$("#calendar_share_add_write_access").val();if(b!=""){var d=false;a.find("span.username").each(function(){!d&&$(this).text()==b&&(d=true,$(this).parent().parent().effect("highlight",{},"slow"))});d||dust.render("calendar_share_row",dustbase.push({username:b,write_access:c}),function(b,c){b!=null?show_error(t("messages","error_interfacefailure"),b.message):(a.find("tbody").append(c), -$("#calendar_share_add_username").val(""),$("#calendar_share_add_write_access").val("0"),share_manager_no_entries_placeholder())})}})},share_manager_no_entries_placeholder=function(){$("#calendar_share_table").find("tbody tr").length==1?$("#calendar_share_no_rows").show():$("#calendar_share_no_rows").hide()},reminders_manager=function(){var a=$("#tabs-reminders"),b=$("#reminders_table");initialize_date_and_time_pickers(a);reminders_manager_no_entries_placeholder();b.on("click",".reminder_delete", -function(){$(this).parent().parent().fadeOut("fast",function(){$(this).remove();reminders_manager_no_entries_placeholder()})});b.parent().on("click","img.reminder_add_button",function(){var c=$(this).closest("tbody").serializeObject(),d=false,e=/^[0-9]+$/;c.is_absolute===false?c.qty!==""&&e.test(c.qty)&&c.interval!==""&&c.before!==""&&(d=true):c.tdate!==""&&c.ttime!==""&&(d=true);if(d===true){var f=$(this).closest("tr");dust.render("reminder_row",dustbase.push(c),function(c,d){c!=null?show_error(t("messages", -"error_interfacefailure"),c.message):(b.find("tbody").append(d),f.find("input").val(""),f.find("select").val(""),initialize_date_and_time_pickers(a),reminders_manager_no_entries_placeholder())})}})},reminders_manager_no_entries_placeholder=function(){$("#reminders_table").find("tbody tr").length==1?$("#reminders_no_rows").show():$("#reminders_no_rows").hide()},event_render_callback=function(a,b){var c=get_calendar_data(a.calendar),d=$.extend({},a,{caldata:c});c!==void 0&&c.shared===true&&c.write_access== -"0"&&$.extend(d,{disable_actions:true});c=[];a.rrule!=void 0&&c.push("icon-repeat");a.reminders.length>0&&c.push("icon-bell");if(c.length!=0){var e=$('');$.each(c,function(a,b){e.append('')});b.hasClass("fc-event-row")||b.find(".fc-event-title").after(e)}dust.render("event_details_popup",dustbase.push(d),function(c,d){c!=null?show_error(t("messages","error_interfacefailure"),c.message):b.qtip({content:{text:d,title:{text:a.title,button:true}}, -position:{my:"bottom center",at:"top center",viewport:$("#calendar_view")},style:{classes:"view_event_details ui-tooltip-bootstrap",tip:true},show:{target:$("#calendar_view"),event:false,solo:$("#calendar_view"),effect:false},hide:{fixed:true,event:"unfocus",effect:false},events:{show:function(a,b){$(this).find("button.link_delete_event").off("click").on("click",function(){event_delete_dialog()}).end().find("button.link_modify_event").off("click").on("click",function(){modify_event_handler()});$(window).on("keydown.tooltipevents", -function(a){a.keyCode===$.ui.keyCode.ESCAPE&&b.hide(a)});var c=b.elements.tooltip.find("div.actions").find("button.addicon").button();add_button_icons(c)},hide:function(){remove_data("current_event");$(window).off("keydown.tooltipevents")}}})})},event_click_callback=function(a,b){get_data("current_event")==a?($(ved).qtip("hide"),remove_data("current_event")):(set_data("current_event",a),$(this).qtip("show",b))},slots_drag_callback=function(a,b,c,d,e){c=e.name=="month"?false:c;a={start:fulldatetimestring(a), -end:fulldatetimestring(b),allday:c,view:e.name};$("#calendar_view").fullCalendar("unselect");event_field_form("new",a)},select_helper=function(a,b){return $('
    ').text($.fullCalendar.formatDates(a,b,AgenDAVConf.prefs_timeformat+"{ - "+AgenDAVConf.prefs_timeformat+"}"))},event_resize_callback=function(a,b,c,d,e,f,g){b=generate_on_the_fly_form(base_app_url+"event/alter",{uid:a.uid,calendar:a.calendar,etag:a.etag,view:g.name, -dayDelta:b,minuteDelta:c,allday:a.allDay,was_allday:a.was_allday,timezone:a.timezone,type:"resize"});if(get_data("formcreation")=="ok"){var h=$("#"+b);proceed_send_ajax_form(h,function(b){update_single_event(a,b)},function(a){show_error(t("messages","error_modfailed"),a);d()},function(){d()})}$(h).remove()},event_drop_callback=function(a,b,c,d,e,f,g,h){b=generate_on_the_fly_form(base_app_url+"event/alter",{uid:a.uid,calendar:a.calendar,etag:a.etag,view:h.name,dayDelta:b,minuteDelta:c,allday:a.allDay, -was_allday:a.orig_allday,timezone:a.timezone,type:"drag"});if(get_data("formcreation")=="ok"){var i=$("#"+b);proceed_send_ajax_form(i,function(b){update_single_event(a,b)},function(a){show_error(t("messages","error_modfailed"),a);e()},function(){e()})}$(i).remove()},event_delete_dialog=function(){var a=base_app_url+"event/delete",b=t("labels","deleteevent"),c=get_data("current_event");if(c===void 0)show_error(t("messages","error_interfacefailure"),t("messages","error_current_event_not_loaded"));else return $.extend(c, -{applyid:"event_delete_form",frm:{action:a,method:"post",csrf:get_csrf_token()}}),show_dialog("event_delete_dialog",c,b,[{text:t("labels","yes"),"class":"addicon btn-icon-event-delete",click:function(){var a=$("#event_delete_form");proceed_send_ajax_form(a,function(){$("#calendar_view").fullCalendar("removeEvents",c.id)},function(){show_error(t("messages","error_event_not_deleted"),c)},function(){});destroy_dialog("#event_delete_dialog")}},{text:t("labels","cancel"),"class":"addicon btn-icon-cancel", -click:function(){destroy_dialog("#event_delete_dialog")}}],"event_delete_dialog",400,function(){}),$(ved).qtip("hide"),false},modify_event_handler=function(){var a=get_data("current_event");if(a===void 0)show_error(t("messages","error_interfacefailure"),t("messages","error_current_event_not_loaded"));else return a={uid:a.uid,calendar:a.calendar,href:a.href,etag:a.etag,start:fulldatetimestring(a.start),end:fulldatetimestring(a.end),summary:a.title,location:a.location,allday:a.allDay,description:a.description, -rrule:a.rrule,rrule_serialized:a.rrule_serialized,rrule_explained:a.rrule_explained,icalendar_class:a.icalendar_class,transp:a.transp,recurrence_id:a.recurrence_id,reminders:a.reminders,visible_reminders:a.visible_reminders,orig_start:fulldatetimestring($.fullCalendar.parseDate(a.orig_start)),orig_end:fulldatetimestring($.fullCalendar.parseDate(a.orig_end))},$(ved).qtip("hide"),event_field_form("modify",a),false},show_calendar=function(a){$("#calendar_view").fullCalendar("addEventSource",a.data().eventsource); -a.removeClass("transparent")},hide_calendar=function(a){$("#calendar_view").fullCalendar("removeEventSource",a.data().eventsource);a.addClass("transparent")},toggle_calendar=function(a){a.hasClass("transparent")?show_calendar(a):hide_calendar(a)},initialize_date_and_time_pickers=function(a){a.find(".needs-datepicker").datepicker();a.find(".needs-timepicker").timePicker(AgenDAVConf.timepicker_base)},get_csrf_token=function(){return $.cookie(AgenDAVConf.prefs_csrf_cookie_name)},loading=function(a){a=== -false?$("#loading").hide():$("#loading").show()},beforePrint=function(){$("#calendar_view").addClass("printing");$("#calendar_view").fullCalendar("render")},afterPrint=function(){$("#calendar_view").removeClass("printing");$("#calendar_view").fullCalendar("render")},setup_print_tweaks=function(){window.matchMedia&&window.matchMedia("print").addListener(function(a){a.matches?beforePrint():afterPrint()});window.onbeforeprint=beforePrint;window.onafterprint=afterPrint}; diff --git a/sources/web/public/js/app.js b/sources/web/public/js/app.js deleted file mode 100644 index 46efa0c..0000000 --- a/sources/web/public/js/app.js +++ /dev/null @@ -1,2044 +0,0 @@ -/* - * Copyright 2011-2012 Jorge López Pérez - * - * This file is part of AgenDAV. - * - * AgenDAV is free software: you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation, either version 3 of the License, or - * any later version. - * - * AgenDAV is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with AgenDAV. If not, see . - */ - -// Useful names -var ved = 'div.view_event_details'; -var ced = '#com_event_dialog'; -var dustbase = {}; - - -$(document).ready(function() { - // Load i18n strings - // TODO: language - load_i18n_strings(); - - // Dust.js i18n helper - dust.helpers.i18n = function i18n(chunk, context, bodies, params) { - var i18n_params = {}; - var i18n_name = params.name; - var i18n_type = params.type; - - delete params.name; - delete params.type; - - for (var key in params) { - if (params.hasOwnProperty(key)) { - var param_name = '%' + key; - i18n_params[param_name] = dust.helpers.tap(params[key], - chunk, context); - } - } - return chunk.write(t(i18n_type, i18n_name, i18n_params)); - }; - - - - // Login page: focus first input field - if ($('body').hasClass('loginpage')) { - $('input:submit').button(); - $('input[name="user"]').focus(); - } else if ($('body').hasClass('prefspage')) { - $('#prefs_tabs').tabs(); - $('#prefs_buttons button').button(); - $('#return_button').on('click', function() { - window.location = base_app_url; - return false; - }); - $('#save_button').on('click', function() { - var thisform = $('#prefs_form'); - proceed_send_ajax_form(thisform, - function(data) { - show_success( - t('messages', 'info_prefssaved'), - ''); - }, - function(data) { - show_error(t('messages', 'error_invalidinput'), data); - }, - function(data) { }); - }); - } else if ($('body').hasClass('calendarpage')) { - // Dust.js base context - dustbase = dust.makeBase({ - default_calendar_color: default_calendar_color, - base_url: base_url, - base_app_url: base_app_url, - csrf_token_name: AgenDAVConf.prefs_csrf_token_name, - enable_calendar_sharing: enable_calendar_sharing - }); - - // Default colorpicker options - set_default_colorpicker_options(); - - // Enable full calendar - // TODO: configurable! - $('#calendar_view').fullCalendar({ - selectable: true, - editable: true, - firstDay: AgenDAVConf.prefs_firstday, - timeFormat: { - agenda: AgenDAVConf.prefs_timeformat + '{ - ' - + AgenDAVConf.prefs_timeformat + '}', - '': AgenDAVConf.prefs_timeformat - }, - columnFormat: { - month: AgenDAVConf.prefs_format_column_month, - week: AgenDAVConf.prefs_format_column_week, - day: AgenDAVConf.prefs_format_column_day, - table: AgenDAVConf.prefs_format_column_table - }, - titleFormat: { - month: AgenDAVConf.prefs_format_title_month, - week: AgenDAVConf.prefs_format_title_week, - day: AgenDAVConf.prefs_format_title_day, - table: AgenDAVConf.prefs_format_title_table - }, - currentTimeIndicator: true, - weekMode: 'liquid', - height: calendar_height(), - windowResize: function(view) { - $(this).fullCalendar('option', 'height', calendar_height()); - }, - header: { - left: 'month,agendaWeek,agendaDay table', - center: 'title', - right: 'today prev,next' - }, - - listTexts: { - until: t('labels', 'repeatuntil'), - past: t('labels', 'pastevents'), - today: t('labels', 'today'), - tomorrow: t('labels', 'tomorrow'), - thisWeek: t('labels', 'thisweek'), - nextWeek: t('labels', 'nextweek'), - thisMonth: t('labels', 'thismonth'), - nextMonth: t('labels', 'nextmonth'), - future: t('labels', 'future'), - week: 'W' - }, - // list/table options - listSections: 'smart', - listRange: 30, - listPage: 7, - - monthNames: month_names_long(), - monthNamesShort: month_names_short(), - dayNames: day_names_long(), - dayNamesShort: day_names_short(), - buttonText: { - today: t('labels', 'today'), - month: t('labels', 'month'), - week: t('labels', 'week'), - day: t('labels', 'day'), - table: t('labels', 'tableview') - }, - theme: true, // use jQuery UI themeing - allDayText: t('labels', 'allday'), - axisFormat: AgenDAVConf.prefs_timeformat, - slotMinutes: 30, - firstHour: 8, - - allDayDefault: false, - - loading: function(bool) { - loading(bool); - }, - - eventRender: event_render_callback, - eventClick: event_click_callback, - - // Add new event by dragging. Click also triggers this event, - // if you define dayClick and select there is some kind of - // collision between them. - select: slots_drag_callback, - - // Useful for creating events in agenda view - selectHelper: select_helper, - - eventResize: event_resize_callback, - eventDrop: event_drop_callback - }); - - - // Refresh link - $('' - +' ' - +t('labels', 'refresh') + '') - .appendTo('#calendar_view td.fc-header-right') - .button() - .on('click', function() { - update_calendar_list(true); - }) - .before(''); - - // Date picker above calendar - dust.render('datepicker_button', dustbase, function(err, out) { - if (err != null) { - show_error(t('messages', 'error_interfacefailure'), - err.message); - } else { - $('#calendar_view span.fc-button-next') - .after(out); - $('#datepicker_fullcalendar') - .datepicker({ - changeYear: true, - closeText: t('labels', 'cancel'), - onSelect: function(date, text) { - var d = $('#datepicker_fullcalendar').datepicker('getDate'); - $('#calendar_view').fullCalendar('gotoDate', d); - } - }) - .prev() - .button() - .on('click', function() { - $('#datepicker_fullcalendar').datepicker('setDate', $('#calendar_view').fullCalendar('getDate')); - $('#datepicker_fullcalendar').datepicker('show'); - }); - } - }); - - - $('#calendar_view').fullCalendar('renderEvent', - { - title: 'Little portal', - start: '1985-02-15T00:00:00Z', - end: '1985-02-15T23:59:59Z', - allDay: true, - editable: false, - color: '#E78AEF' - }, - true); - - - /************************************************************* - * Calendar list events - *************************************************************/ - - // Editing a calendar - $('div.calendar_list').on('click', 'i.cfg', function(e) { - e.stopPropagation(); - var calentry = $(this).parent(); - calendar_modify_dialog($(calentry[0]).data()); - }) - .on('click', 'li.available_calendar', function(e) { - // Make calendar transparent - toggle_calendar($(this)); - }); - - // First time load: create calendar list - update_calendar_list(true); - - $('#sidebar').on('click', '#toggle_all_shared_calendars', function(e) { - var shared_cals = $('#shared_calendar_list').find('ul').children(); - if ($(this).hasClass('hide_all')) { - $.map(shared_cals, function(e, i) { - hide_calendar($(e)); - }); - $(this) - .removeClass('hide_all') - .addClass('show_all') - .find('i') - .removeClass('icon-eye-close') - .addClass('icon-eye-open'); - } else { - $.map(shared_cals, function(e, i) { - show_calendar($(e)); - }); - $(this) - .removeClass('show_all') - .addClass('hide_all') - .find('i') - .removeClass('icon-eye-open') - .addClass('icon-eye-close'); - } - }); - - // Help tooltips - $('#sidebar div.buttons').find('img[title],span[title],a[title]').qtip({ - position: { - my: 'top left', - at: 'bottom left' - }, - show: { - delay: 600 - }, - style: { - classes: 'ui-tooltip-bootstrap', - tip: true - } - }); - - - // Create calendar - $('#calendar_add') - .on('click', calendar_create_dialog); - - /************************************************************* - * End of calendar list events - *************************************************************/ - - /************************************************************* - * Shortcuts - *************************************************************/ - - $('#shortcut_add_event') - .button({ - icons: { - primary: 'ui-icon-plusthick' - } - }) - .on('click', function() { - var start = fulldatetimestring($('#calendar_view').fullCalendar('getDate')); - var data = { - start: start, - allday: false, - view: 'month' - }; - - // Unselect every single day/slot - $('#calendar_view').fullCalendar('unselect'); - event_field_form('new', data); - }); - } - - // Printing - - setup_print_tweaks(); - - - - - // User menu - $('#usermenu').qtip({ - content: $('#usermenu_content'), - position: { my: 'top center', at: 'bottom center' }, - style: { - tip: true, - classes: 'ui-tooltip-bootstrap agendav-menu' - }, - show: { - event: 'click', - effect: false, - delay: 0 - }, - hide: { - event: 'unfocus' - } - }); -}); - - -/** - * Used to calculate calendar view height - */ -var calendar_height = function calendar_height() { - var offset = $('#calendar_view').offset(); - return $(window).height() - Math.ceil(offset.top) - 30; -}; - -/** - * Used to show error messages - */ - -var show_error = function show_error(title, message) { - // Hide loading indicator - loading(false); - - $('#popup').freeow(title, message, - { - classes: ['popup_error'], - autoHide: false, - showStyle: { - opacity: 1, - left: 0 - }, - hideStyle: { - opacity: 0, - left: '400px' - } - }); -}; - -/** - * Used to show success messages - */ - - -var show_success = function show_success(title, message) { - $('#popup').freeow(title, message, - { - classes: ['popup_success'], - autoHide: true, - autoHideDelay: 2000, - showStyle: { - opacity: 1, - left: 0 - }, - hideStyle: { - opacity: 0, - left: '400px' - } - }); -}; - - -/** - * Gets data from body - */ -var get_data = function get_data(name) { - return $.data($('body')[0], name); -}; - -/** - * Sets data on body - */ -var set_data = function set_data(name, value) { - $.data($('body')[0], name, value); -}; - -/** - * Removes data from body - */ -var remove_data = function remove_data(name) { - $.removeData($('body')[0], name); -}; - - -/** - * Loads a form (via AJAX) to a specified div - */ -var load_generated_dialog = function load_generated_dialog(url, data, preDialogFunc, title, buttons, divname, width) { - - divname = '#' + divname; - - // Avoid double dialog opening - if ($(divname).length != 0) { - return false; - } - - // Do it via POST - var newid = generate_on_the_fly_form( - base_app_url + 'event/modify', data); - - if (get_data('formcreation') == 'ok') { - var thisform = $('#' + newid); - var action = $(thisform).attr('action'); - var formdata = $(thisform).serialize(); - - var dialog_ajax_req = $.ajax({ - url: base_app_url + url, - cache: false, - type: 'POST', - data: formdata, - dataType: 'html' - }); - - dialog_ajax_req.then(function() { - loading(false); - }); - - dialog_ajax_req.fail(function(jqXHR, textStatus, errorThrown) { - show_error(t('messages', 'error_loading_dialog'), - t('messages', 'error_oops') + ': ' + textStatus); - }); - - dialog_ajax_req.done(function(data, textStatus, jqxHR) { - $('body').append(data); - $(divname).dialog({ - autoOpen: true, - buttons: buttons, - title: title, - minWidth: width, - modal: true, - open: function(event, ui) { - preDialogFunc(); - $(divname).dialog('option', 'position', 'center'); - var buttons = $(event.target).parent().find('.ui-dialog-buttonset').children(); - add_button_icons(buttons); - }, - close: function(ev, ui) { $(this).remove(); } - }) - }); - - // Remove generated form - $(thisform).remove(); - } else { - // Error generating dialog on the fly? - show_error(t('messages', 'error_interfacefailure'), - t('messages', 'error_oops')); - } -}; - -/** - * Sends a form via AJAX. - * - * This way we respect CodeIgniter CSRF tokens - */ -var proceed_send_ajax_form = function proceed_send_ajax_form(formObj, successFunc, exceptionFunc, - errorFunc) { - var url = $(formObj).attr('action'); - var data = $(formObj).serialize(); - - // Mask body - loading(true); - - var sendform_ajax_req = $.ajax({ - url: url, - cache: false, - type: 'POST', - data: data, - dataType: 'json' - }); - - sendform_ajax_req.then(function() { - loading(false); - }); - - sendform_ajax_req.fail(function(jqXHR, textStatus, errorThrown) { - show_error(t('messages', 'error_interfacefailure'), - t('messages', 'error_oops') + ':' + textStatus); - set_data('lastoperation', 'failed'); - errorFunc(); - }); - - sendform_ajax_req.done(function(data, textStatus, jqXHR) { - // "ERROR", "EXCEPTION" or "SUCCESS" - var result = data.result; - var message = data.message; - if (result == 'ERROR') { - set_data('lastoperation', 'failed'); - show_error( - t('messages', 'error_internal'), - message); - errorFunc(); - } else if (result == 'EXCEPTION') { - set_data('lastoperation', 'failed'); - exceptionFunc(message); - } else if (result == 'SUCCESS') { - set_data('lastoperation', 'success'); - successFunc(message); - } else { - show_error(t('messages', 'error_internal'), - t('messages', 'error_oops') + ':' + result); - } - }); -}; - - -/** - * Generates a dialog - */ - -var show_dialog = function show_dialog(template, data, title, buttons, - divname, width, pre_func) { - - dust.render(template, dustbase.push(data), function(err, out) { - if (err != null) { - show_error(t('messages', 'error_interfacefailure'), - err.message); - } else { - $('body').append(out); - $('#' + divname).dialog({ - autoOpen: true, - buttons: buttons, - title: title, - minWidth: width, - modal: true, - open: function(event, ui) { - pre_func(); - $(divname).dialog('option', 'position', 'center'); - var buttons = $(event.target).parent().find('.ui-dialog-buttonset').children(); - add_button_icons(buttons); - }, - close: function(ev, ui) { $(this).remove(); } - }) - } - }); -}; - -/** - * Creates a form with a random id in the document, and returns it. - * Defines each element in the second parameter as hidden fields - */ -var generate_on_the_fly_form = function generate_on_the_fly_form(action, data) { - var random_id = ''; - var possible = - 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'; - for( var i=0; i < 10; i++ ) - random_id += possible.charAt(Math.floor(Math.random() * - possible.length)); - - // Now we have our random id - var form_gen = base_app_url + 'dialog_generator/on_the_fly_form/' + - random_id; - var csrf_ajax_gen = $.ajax({ - url: form_gen, - cache: false, - type: 'POST', - contentType: 'text', - dataType: 'text', - async: false // Let's wait - }); - - csrf_ajax_gen.fail(function(jqXHR, textStatus, errorThrown) { - // This is generally caused by expired session - session_expired(); - set_data('formcreation', 'failed'); - }); - - csrf_ajax_gen.done(function(formdata, textStatus, jqXHR) { - var hidden_fields = ''; - - $.each(data, function (i, v) { - hidden_fields += ''; - }); - - $(formdata) - .append(hidden_fields) - .attr('action' , action) - .appendTo(document.body); - - set_data('formcreation', 'ok'); - }); - - return random_id; -}; - -/** - * Destroys a dialog - */ -var destroy_dialog = function destroy_dialog(name) { - $(name).dialog('close'); - $(name).dialog('destroy'); - $(name).remove(); -}; - -/** - * Sets datepicker options - */ -var set_default_datepicker_options = function set_default_datepicker_options() { - // Localization (TODO: make this configurable!) -$.datepicker.regional['custom'] = { - closeText: t('labels', 'close'), - prevText: t('labels', 'previous'), - nextText: t('labels', 'next'), - currentText: t('labels', 'today'), - monthNames: month_names_long(), - monthNamesShort: month_names_short(), - dayNames: day_names_long(), - dayNamesShort: day_names_short(), - dayNamesMin: day_names_short(), - weekHeader: 'Sm', - firstDay: AgenDAVConf.prefs_firstday, - isRTL: false, - showMonthAfterYear: false, - yearSuffix: ''}; - -$.datepicker.setDefaults($.datepicker.regional['custom']); -$.datepicker.setDefaults({constrainInput: true}); -$.datepicker.setDefaults({dateFormat: AgenDAVConf.prefs_dateformat}); -}; - -/** - * Sets a minDate on end_date - */ -var set_end_minDate = function set_end_minDate() { - var elems = ced + ' input.start_date'; - var eleme = ced + ' input.end_date'; - var elemru = ced + ' input.recurrence_until'; - - var selected = $(elems).datepicker('getDate'); - - selected.setTime(selected.getTime()); - - $(eleme).datepicker('option', 'minDate', selected); - $(elemru).datepicker('option', 'minDate', selected); - -}; - -/** - * Sets recurrence options to be enabled or disabled - */ -var update_recurrence_options = function update_recurrence_options(newval) { - if (newval == 'none') { - $(ced + ' input.recurrence_count').val(''); - $(ced + ' input.recurrence_until').val(''); - - $(ced + ' input.recurrence_count').attr('disabled', 'disabled'); - $(ced + ' input.recurrence_count').addClass('ui-state-disabled'); - $(ced + ' label[for="recurrence_count"]').addClass('ui-state-disabled'); - - $(ced + ' input.recurrence_until').attr('disabled', 'disabled'); - $(ced + ' input.recurrence_until').datepicker('disable'); - $(ced + ' input.recurrence_until').addClass('ui-state-disabled'); - $(ced + ' label[for="recurrence_until"]').addClass('ui-state-disabled'); - } else { - enforce_exclusive_recurrence_field('recurrence_count', 'recurrence_until'); - enforce_exclusive_recurrence_field('recurrence_until', 'recurrence_count'); - - } -}; - - - -/*************************** - * Event handling functions - */ - -// Triggers a dialog for editing/creating events -var event_field_form = function event_field_form(type, data) { - - var url_dialog = 'dialog_generator/'; - var title; - var action_verb; - - if (type == 'new') { - url_dialog += 'create_event'; - title = t('labels', 'createevent'); - } else { - url_dialog += 'edit_event'; - title = t('labels', 'editevent'); - } - - load_generated_dialog(url_dialog, - data, - function() { - var start_datepicker_opts = { - onSelect: function(dateText, inst) { - // End date can't be previous to start date - set_end_minDate(); - } - }; - - // Tabs - $(ced + '_tabs').tabs(); - - - $(ced + ' input.start_time').timePicker(AgenDAVConf.timepicker_base); - $(ced + ' input.end_time').timePicker(AgenDAVConf.timepicker_base); - $(ced + ' input.start_date').datepicker(start_datepicker_opts); - $(ced + ' input.end_date').datepicker(); - $(ced + ' input.recurrence_until').datepicker(); - - // Untouched value - $(ced + ' input.end_time').data('untouched', true); - - // First time datepicker is run we need to set minDate on end date - set_end_minDate(); - - // And recurrence options have to be enabled/disabled - update_recurrence_options($(ced + ' select.recurrence_type').val()); - - // All day checkbox - $(ced).on('change', 'input.allday', function() { - // TODO: timepickers should update their values - var current = $(ced + " input.start_date").datepicker('getDate'); - set_end_minDate(); - - if ($(this).is(':checked')) { - $(ced + ' input.start_time').hide(); - $(ced + ' input.end_time').hide(); - } else { - $(ced + ' input.end_date').removeAttr('disabled'); - $(ced + ' input.end_date').removeClass('ui-state-disabled'); - $(ced + ' input.end_date').datepicker('setDate', current); - - $(ced + ' input.start_time').show(); - $(ced + ' input.end_time').show(); - } - }); - - // Recurrence type - $(ced).on('change', 'select.recurrence_type', function() { - var newval = $(this).val(); - - update_recurrence_options($(this).val()); - }); - - // Avoid having a value in both recurrence options (count / until) - $(ced) - .on('keyup', 'input.recurrence_count', function() { - enforce_exclusive_recurrence_field('recurrence_count', 'recurrence_until'); - }) - .on('keyup change', 'input.recurrence_until', function() { - enforce_exclusive_recurrence_field('recurrence_until', 'recurrence_count'); - }); - - // Timepicker: keep 1h between start-end if on the same day - // and end_time hasn't been changed by hand - var origStart = $.timePicker(ced + ' input.start_time').getTime(); - var origDur = $.timePicker(ced + ' input.end_time').getTime() - origStart.getTime(); - - - $(ced).on('change', 'input.start_time', function() { - if ($(ced + ' input.end_time').data('untouched')) { - - var start = $.timePicker(ced + ' input.start_time').getTime(); - - var dur = $.timePicker(ced + ' input.end_time').getTime() - - origStart.getTime(); - $.timePicker(ced + ' input.end_time').setTime(new Date(start.getTime() + dur)); - origStart = start; - } - }); - - $(ced).on('change', 'input.end_time', function() { - var durn = $.timePicker(this).getTime() - - $.timePicker(ced + ' input.start_time').getTime(); - if (durn != origDur) { - $(this).data('untouched', false); - } - }); - - // Focus first field on creation - if (type == 'new') { - $('input[name="summary"]').focus(); - } - - // Show 'Reminders' tab contents - dust.render('reminders_table', dustbase.push(data), function(err, out) { - if (err != null) { - show_error(t('messages', 'error_interfacefailure'), - err.message); - } else { - $('#tabs-reminders').html(out); - reminders_manager(); - } - }); - - - }, - title, - [ - { - 'text': t('labels', 'save'), - 'class': 'addicon btn-icon-event-edit', - 'click': function() { - var thisform = $('#com_form'); - proceed_send_ajax_form(thisform, - function(data) { - // Reload only affected calendars - $.each(data, function(k, cal) { - reload_event_source(cal); - }); - - destroy_dialog(ced); - }, - function(data) { - // Problem with form data - show_error(t('messages', 'error_invalidinput'), data); - }, - function(data) { - // Do nothing - }); - - } - }, - { - 'text': t('labels', 'cancel'), - 'class': 'addicon btn-icon-cancel', - 'click': function() { destroy_dialog(ced); } - } - ], - 'com_event_dialog', 550); -}; - -/* - * Updates a single event fetching it from server - */ -var update_single_event = function update_single_event(event, new_data) { - $.each(new_data, function (i, v) { - event[i] = v; - }); - - $('#calendar_view').fullCalendar('updateEvent', event); -}; - -// Triggers a dialog for creating calendars -var calendar_create_dialog = function calendar_create_dialog() { - - var form_url = base_app_url + 'calendar/create'; - var title = t('labels', 'newcalendar'); - - var data = { - applyid: 'calendar_create_form', - frm: { - action: form_url, - method: 'post', - csrf: get_csrf_token() - } - }; - - show_dialog('calendar_create_dialog', - data, - title, - [ - { - 'text': t('labels', 'create'), - 'class': 'addicon btn-icon-calendar-add', - 'click': function() { - var thisform = $('#calendar_create_form'); - proceed_send_ajax_form(thisform, - function(data) { - destroy_dialog('#calendar_create_dialog'); - update_calendar_list(false); - }, - function(data) { - // Problem with form data - show_error(t('messages', 'error_invalidinput'), data); - }, - function(data) { - // Do nothing - }); - } - }, - { - 'text': t('labels', 'cancel'), - 'class': 'addicon btn-icon-cancel', - 'click': function() { destroy_dialog('#calendar_create_dialog'); } - } - ], - 'calendar_create_dialog', - 400, - function() { - $('input.pick_color').colorPicker(); - }); -}; - -// Triggers a dialog for editing calendars -var calendar_modify_dialog = function calendar_modify_dialog(calendar_obj) { - - var form_url = base_app_url + 'calendar/modify'; - var title = t('labels', 'modifycalendar'); - - var data = calendar_obj; - $.extend(data, { - applyid: 'calendar_modify_form', - frm: { - action: form_url, - method: 'post', - csrf: get_csrf_token() - } - }); - - // Buttons for modification dialog - var buttons_and_actions = - [ - { - 'text': t('labels', 'deletecalendar'), - 'class': 'addicon btn-icon-calendar-delete', - 'click': function() { - calendar_delete_dialog(calendar_obj); - } - }, - { - 'text': t('labels', 'save'), - 'class': 'addicon btn-icon-calendar-edit', - 'click': function() { - var thisform = $('#calendar_modify_form'); - - proceed_send_ajax_form(thisform, - function(data) { - destroy_dialog('#calendar_modify_dialog'); - // TODO remove specific calendar and update only its events - update_calendar_list(false); - }, - function(data) { - // Problem with form data - show_error(t('messages', 'error_invalidinput'), data); - }, - function(data) { - // Do nothing - }); - } - }, - { - 'text': t('labels', 'cancel'), - 'class': 'addicon btn-icon-cancel', - 'click': function() { destroy_dialog('#calendar_modify_dialog'); } - } - ]; - - // On shared calendars, don't show 'Remove calendar' - if (data.shared === true) { - buttons_and_actions.splice(0, 1); - } - - - show_dialog('calendar_modify_dialog', - data, - title, - buttons_and_actions, - 'calendar_modify_dialog', - 500, - function() { - $('input.pick_color').colorPicker(); - $('#calendar_modify_dialog_tabs').tabs(); - - if (enable_calendar_sharing === true && data.shared !== true) { - share_manager(); - } - }); -}; - - -/** - * Shows the 'Delete calendar' dialog - */ -var calendar_delete_dialog = function calendar_delete_dialog(calendar_obj) { - destroy_dialog('#calendar_modify_dialog'); - var form_url = base_app_url + 'calendar/delete'; - var title = t('labels', 'deletecalendar'); - - var data = calendar_obj; - $.extend(data, { - applyid: 'calendar_delete_form', - frm: { - action: form_url, - method: 'post', - csrf: get_csrf_token() - } - }); - - show_dialog('calendar_delete_dialog', - data, - title, - [ - { - 'text': t('labels', 'yes'), - 'class': 'addicon btn-icon-calendar-delete', - 'click': function() { - var thisform = $('#calendar_delete_form'); - proceed_send_ajax_form(thisform, - function(removed_calendar) { - // Just remove deleted calendar - $('.calendar_list li.available_calendar').each(function(index) { - var thiscal = $(this).data(); - if (thiscal.calendar == removed_calendar) { - $('#calendar_view').fullCalendar('removeEventSource', thiscal.eventsource); - $(this).remove(); - return false; // stop looking for calendar - } - }); - }, - function(data) { - show_error(t('messages', 'error_caldelete'), data); - }, - function() {}); - - // Destroy dialog - destroy_dialog('#calendar_delete_dialog'); - } - }, - { - 'text': t('labels', 'cancel'), - 'class': 'addicon btn-icon-cancel', - 'click': function() { destroy_dialog('#calendar_delete_dialog'); } - } - ], - 'calendar_delete_dialog', - 500, - function() { }); -}; - -/* - * Updates the calendar list and generates eventSources for fullcalendar - */ - -var update_calendar_list = function update_calendar_list(maskbody) { - if (maskbody) { - loading(true); - } - - var updcalendar_ajax_req = $.ajax({ - url: base_app_url + 'calendar/all', - cache: false, - dataType: 'json', - async: false // Let's wait - }); - - updcalendar_ajax_req.then(function() { - if (maskbody) { - loading(false); - } - }); - - updcalendar_ajax_req.fail(function(jqXHR, textStatus, errorThrown) { - show_error(t('messages', 'error_loading_calendar_list'), - t('messages', 'error_oops') + textStatus); - }); - - updcalendar_ajax_req.done(function(data, textStatus, jqXHR) { - var was_transparent = {}; - - // Remove old eventSources and remove every list item - $('.calendar_list li.available_calendar').each(function(index) { - var data = $(this).data(); - $('#calendar_view').fullCalendar('removeEventSource', - data.eventsource); - - if ($(this).hasClass('transparent')) { - was_transparent[data.calendar] = true; - } - - $(this).remove(); - }); - - var count = 0, - count_shared = 0, - own_calendars = document.createDocumentFragment(), - shared_calendars = document.createDocumentFragment(), - collected_event_sources = []; - - $.each(data, function(key, calendar) { - count++; - - // Some values need to be generated - if (calendar.color === undefined || calendar.color === false || calendar.color == null) { - calendar.color = default_calendar_color; - } else { - calendar.color = calendar.color.substr(0,7); - } - calendar.fg = fg_for_bg(calendar.color); - calendar.bordercolor = $.color.parse(calendar.color).scale('rgb', - (calendar.fg == '#000000' ? 0.8 : 1.8)).toString(); - - var li = generate_calendar_entry(calendar); - - if (was_transparent[calendar.calendar]) { - li.addClass('transparent'); - } else { - collected_event_sources.push($(li).data().eventsource); - } - - if (calendar.shared == true) { - count_shared++; - shared_calendars.appendChild(li[0]); - } else { - own_calendars.appendChild(li[0]); - } - - }); - - // No calendars? - if (count == 0) { - // Some CalDAV servers (e.g. DAViCal) create first calendar on first - // login. Let's reload calendar list again - var last_calendar_count = get_data('last_calendar_count'); - if (last_calendar_count === undefined || - last_calendar_count != '0') { - set_data('last_calendar_count', 0); - setTimeout(function() { - update_calendar_list(false); - }, 1); - } else { - // Calendar list received empty twice - show_error(t('messages','notice_no_calendars'), ''); - $('#shortcut_add_event').button('disable'); - } - } else { - set_data('last_calendar_count', count); - - $('#own_calendar_list ul')[0] - .appendChild(own_calendars); - - // Hide unused block - if (count_shared == 0) { - $('#shared_calendar_list').hide(); - } else { - $('#shared_calendar_list ul')[0] - .appendChild(shared_calendars); - $('#shared_calendar_list').show(); - } - - // Add event sources - while (count--) { - $('#calendar_view').fullCalendar('addEventSource', - collected_event_sources[count]); - } - - $('#shortcut_add_event').button('enable'); - - } - }); -}; - -/** - * Function used to query the server for events - */ -var generate_event_source = function generate_event_source(calendar) { - var ajax_options = { - // If #calendar is not used, Fullcalendar will be confused when - // calling removeEventSource, and will remove all calendars - url: base_app_url + 'event/all#' + calendar, - cache: false, - // TODO make timezone configurable - data: { - calendar: calendar - }, - error: function (jqXHR, textStatus, errorThrown) { - if (jqXHR.status !== undefined && jqXHR.status == 401) { - session_expired(); - } else { - show_error(t('messages', 'error_interfacefailure'), - t('messages', - 'error_loadevents', { '%cal' : calendar })); - } - }, - - startParamUTC: true, - endParamUTC: true - }; - - return ajax_options; -}; - -/** - * Keeps session alive - * - * n = refresh interval in miliseconds - */ -var session_refresh = function session_refresh(n) { - var sessrefresh_ajax_req = $.ajax({ - url: base_app_url + 'js_generator/keepalive', - cache: false, - method: 'GET', - dataType: 'html' - }); - - sessrefresh_ajax_req.done(function(data, textStatus, jqXHR) { - if (data !== '') { - // When data is not empty, it's usually JavaScript code - // TODO think about using dataType: script here - $('body').append(data); - } else { - setTimeout(function() { - session_refresh(n); - }, n); - } - }); - - sessrefresh_ajax_req.fail(function(jqXHR, textStatus, errorThrown) { - session_expired(); - }); -}; - -/** - * Adds button icons - */ -var add_button_icons = function add_button_icons(buttons) { - buttons.filter('button.addicon') - .removeClass('addicon') - .removeClass('ui-button-text-only') - .addClass('ui-button-text-icon-primary') - .each(function(k, v) { - var classes = $(v).attr('class').split(' '); - $.each(classes, function(i, j) { - if (j.match(/^btn-icon-/)) { - $(v).prepend(''); - $(v).removeClass(j); - return false; - } - }); - }); -}; - -/** - * Generates a new calendar entry - */ -var generate_calendar_entry = function generate_calendar_entry(data) { - var eventsource = generate_event_source(data.calendar); - eventsource.ignoreTimezone = true; // Ignore UTC offsets - eventsource.color = data.color; - eventsource.textColor = data.fg; - eventsource.borderColor = data.bordercolor; - - // Shared calendars - if (data.shared !== undefined && data.shared == true && data.write_access == '0') { - eventsource.editable = false; - } - - data.eventsource = eventsource; - - var $out; - - dust.render('calendar_list_entry', dustbase.push(data), function(err, out) { - if (err != null) { - show_error(t('messages', 'error_interfacefailure'), - err.message); - } else { - $out = $(out); - - // Associate data + eventsource to new list item - $out.data(data); - - // Disable text selection on this (useful for dblclick) - $out.disableSelection(); - - $out.find('span[title],i[title]').qtip({ - position: { - my: 'top left', - at: 'bottom left' - }, - show: { - delay: 600 - }, - style: { - classes: 'ui-tooltip-bootstrap', - tip: true - } - }); - } - }); - - return $out; -}; - -/** - * Gets calendar data from its internal name - */ -var get_calendar_data = function get_calendar_data(c) { - var data = undefined; - - $('.calendar_list li.available_calendar').each(function(index) { - var thiscal = $(this).data(); - if (thiscal.calendar == c) { - data = thiscal; - return false; // stop looking for calendar - } - }); - - return data; -}; - -/** - * Gets calendar display name from its internal name - */ -var get_calendar_displayname = function get_calendar_displayname(c) { - var data = get_calendar_data(c); - - if (data === undefined || data.displayname === undefined) { - return '(?)'; - } else { - return data.displayname; - } -}; - -/* - * Reloads an event source - */ -var reload_event_source = function reload_event_source(cal) { - var eventsource = undefined; - - $('.calendar_list li.available_calendar').each(function(index) { - var thiscal = $(this).data(); - if (thiscal.calendar == cal) { - eventsource = thiscal.eventsource; - return false; // stop looking for calendar - } - }); - - if (eventsource !== undefined) { - $('#calendar_view').fullCalendar('removeEventSource', eventsource); - $('#calendar_view').fullCalendar('addEventSource', eventsource); - } else { - show_error(t('messages', 'error_interfacefailure'), - t('messages', 'error_calendarnotfound', {'%calendar' : cal })); - } - -}; - -/* - * Enforces the use of only one recurrence fields - */ -var enforce_exclusive_recurrence_field = function enforce_exclusive_recurrence_field(current, other) { - if ($(ced + ' input.' + current).val() == '') { - $(ced + ' input.' + other).removeAttr('disabled'); - $(ced + ' input.' + other).removeClass('ui-state-disabled'); - $(ced + ' label[for="' + other + '"]').removeClass('ui-state-disabled'); - if (other == 'recurrence_until') { - $(ced + ' input.' + other).datepicker('enable'); - } - } else { - $(ced + ' input.' + other).attr('disabled', 'disabled'); - $(ced + ' input.' + other).addClass('ui-state-disabled'); - $(ced + ' input.' + other).val(''); - $(ced + ' label[for="' + other + '"]').addClass('ui-state-disabled'); - if (other == 'recurrence_until') { - $(ced + ' input.' + other).datepicker('disable'); - } - } -}; - -/* - * Round a Date timestamp - */ -var timestamp = function timestamp(d) { - return Math.round(d.getTime()/1000); -}; - -/* - * Returns a full date+time string which is easily parseable - */ -var fulldatetimestring = function fulldatetimestring(d) { - if (d != undefined) { - return $.fullCalendar.formatDate(d, 'yyyyMMddHHmmss'); - } else { - return undefined; - } -}; - -/** - * Returns a foreground color for a given background - */ -var fg_for_bg = function fg_for_bg(color) { - var colr = parseInt(color.substr(1), 16); - - var is_dark = (colr >>> 16) // R - + ((colr >>> 8) & 0x00ff) // G - + (colr & 0x0000ff) // B - < 500; - - return (is_dark) ? '#ffffff' : '#000000'; -}; - - -/** - * This method is called when a session has expired - */ -var session_expired = function session_expired() { - $('.ui-dialog-content').dialog('close'); - - show_error(t('messages', 'error_sessexpired'), - t('messages', 'error_loginagain')); - setTimeout(function() { - window.location = base_url; - }, 2000); -}; - -/** - * Handles events on share calendar dialog - */ -var share_manager = function share_manager() { - var manager = $('#calendar_share_table'); - var new_entry_form = $('#calendar_share_add'); - - share_manager_no_entries_placeholder(); - - manager.on('click', - '.calendar_share_delete', function(event) { - $(this).parent().parent() - .fadeOut('fast', function() { - $(this).remove(); - share_manager_no_entries_placeholder(); - }); - }); - - // Autocomplete caching - var user_autocomplete_cache = {}, lastXhr; - - new_entry_form.find('#calendar_share_add_username') - .autocomplete({ - minLength: 3, - source: function(request, response) { - var term = request.term; - - if (term in user_autocomplete_cache) { - response(user_autocomplete_cache[term]); - return; - } - - lastXhr = $.getJSON(base_app_url + 'caldav2json/principal_search', - request, function(data, status, xhr) { - user_autocomplete_cache[term] = data; - if (xhr === lastXhr) { - response(data); - } - }); - }, - focus: function( event, ui ) { - $(this).val(ui.item.username); - return false; - }, - select: function( event, ui ) { - $(this).val(ui.item.username); - return false; - } - }) - .data('autocomplete')._renderItem = function(ul, item) { - return $('
  • ') - .data('item.autocomplete', item) - .append(' ' + item.displayname - + '' - + ' <' + item.email + '>') - .appendTo(ul); - }; - - new_entry_form.on('click', - '#calendar_share_add_button', function(event) { - var new_user = $('#calendar_share_add_username').val(); - var access = $('#calendar_share_add_write_access').val(); - if (new_user != '') { - // Check if new_user is already on list - var already_added = false; - manager.find('span.username') - .each(function(index) { - if (!already_added && $(this).text() == new_user) { - already_added = true; - $(this).parent().parent().effect('highlight', {}, 'slow'); - } - }); - - if (!already_added) { - var new_row_data = { - username: new_user, - write_access: access - }; - - dust.render('calendar_share_row', - dustbase.push(new_row_data), - function(err, out) { - if (err != null) { - show_error(t('messages', 'error_interfacefailure'), - err.message); - } else { - manager.find('tbody').append(out); - - // Reset form - $('#calendar_share_add_username').val(''); - $('#calendar_share_add_write_access').val('0'); - - share_manager_no_entries_placeholder(); - } - }); - } - } - - }); -}; - -/** - * Shows the placeholder for empty share lists - */ -var share_manager_no_entries_placeholder = function share_manager_no_entries_placeholder() { - var manager = $('#calendar_share_table'); - if (manager.find('tbody tr').length == 1) { - $('#calendar_share_no_rows').show(); - } else { - $('#calendar_share_no_rows').hide(); - } -}; - - -/* - * Reminders manager - */ - -var reminders_manager = function reminders_manager() { - - var tab_reminders = $('#tabs-reminders'); - var manager = $('#reminders_table'); - - initialize_date_and_time_pickers(tab_reminders); - - reminders_manager_no_entries_placeholder(); - - manager.on('click', - '.reminder_delete', function(event) { - $(this).parent().parent() - .fadeOut('fast', function() { - $(this).remove(); - reminders_manager_no_entries_placeholder(); - }); - }); - - manager.parent().on('click', 'img.reminder_add_button', function(event) { - var formdata = $(this).closest('tbody').serializeObject(); - // Basic validations - var proceed = false; - var regexp_num = /^[0-9]+$/; - - if (formdata.is_absolute === false) { - if (formdata.qty !== '' && regexp_num.test(formdata.qty) && - formdata.interval !== '' && formdata.before !== '') { - - proceed = true; - } - } else { - if (formdata.tdate !== '' && formdata.ttime !== '') { - proceed = true; - } - } - - if (proceed === true) { - var $new_reminder_row = $(this).closest('tr'); - - dust.render('reminder_row', - dustbase.push(formdata), function(err, out) { - if (err != null) { - show_error(t('messages', 'error_interfacefailure'), - err.message); - } else { - manager.find('tbody').append(out); - - $new_reminder_row.find('input').val(''); - $new_reminder_row.find('select').val(''); - - initialize_date_and_time_pickers(tab_reminders); - reminders_manager_no_entries_placeholder(); - } - }); - - } - }); -}; - -/* - * Shows/hides reminders placeholder when no reminders are set up - */ - -var reminders_manager_no_entries_placeholder = function reminders_manager_no_entries_placeholder() { - var manager = $('#reminders_table'); - if (manager.find('tbody tr').length == 1) { - $('#reminders_no_rows').show(); - } else { - $('#reminders_no_rows').hide(); - } -} - - - -/** - * Event render - */ -var event_render_callback = function event_render_callback(event, element) { - var caldata = get_calendar_data(event.calendar); - var data = $.extend({}, - event, - { caldata: caldata }); - - if (caldata !== undefined && caldata.shared === true && - caldata.write_access == '0') { - $.extend(data, { disable_actions: true }); - } - - // Icons - var icons = []; - - if (event.rrule != undefined) { - icons.push('icon-repeat'); - } - if (event.reminders.length > 0) { - icons.push('icon-bell'); - } - - // Prepend icons - if (icons.length != 0) { - var icon_html = $(''); - $.each(icons, function(n, i) { - icon_html.append(''); - }); - - if (!element.hasClass('fc-event-row')) { - element.find('.fc-event-title').after(icon_html); - } - } - - dust.render('event_details_popup', dustbase.push(data), function(err, out) { - if (err != null) { - show_error(t('messages', 'error_interfacefailure'), - err.message); - } else { - element.qtip({ - content: { - text: out, - title: { - text: event.title, - button: true - } - }, - position: { - my: 'bottom center', - at: 'top center', - viewport: $('#calendar_view') - }, - style: { - classes: 'view_event_details ui-tooltip-bootstrap', - tip: true - }, - show: { - target: $('#calendar_view'), - event: false, - solo: $('#calendar_view'), - effect: false - }, - hide: { - fixed: true, - event: 'unfocus', - effect: false - }, - - events: { - show: function (event, api) { - // Attach modify and delete events - $(this) - .find('button.link_delete_event') - .off('click') - .on('click', function() { - event_delete_dialog(); - }) - .end() - .find('button.link_modify_event') - .off('click') - .on('click', function() { - modify_event_handler(); - }); - - $(window).on('keydown.tooltipevents', function(e) { - if(e.keyCode === $.ui.keyCode.ESCAPE) { - api.hide(e); - } - }) - - // Icons - var links = api.elements.tooltip.find('div.actions').find('button.addicon').button(); - add_button_icons(links); - }, - - hide: function (event, api) { - remove_data('current_event'); - $(window).off('keydown.tooltipevents'); - } - } - }); - } - }); -}; - -/** - * Event click - */ -var event_click_callback = function event_click_callback(event, - jsEvent, view) { - var current_event = get_data('current_event'); - - if (current_event == event) { - $(ved).qtip('hide'); - remove_data('current_event'); - } else { - set_data('current_event', event); - $(this).qtip('show', jsEvent); - } - -}; - -/** - * Calendar slots dragging - */ -var slots_drag_callback = function slots_drag_callback(startDate, endDate, allDay, jsEvent, view) { - var pass_allday = (view.name == 'month') ? false : allDay; - var data = { - start: fulldatetimestring(startDate), - end: fulldatetimestring(endDate), - allday: pass_allday, - view: view.name - }; - - // Unselect every single day/slot - $('#calendar_view').fullCalendar('unselect'); - event_field_form('new', data); -}; - -/** - * Select helper - */ - -var select_helper = function select_helper(start,end) { - return $('
    ') - .text( - $.fullCalendar.formatDates(start, end, - AgenDAVConf.prefs_timeformat + '{ - ' + AgenDAVConf.prefs_timeformat + '}')); -}; - -/** - * Event resizing - */ - -var event_resize_callback = function event_resize_callback(event, dayDelta, minuteDelta, revertFunc, - jsEvent, ui, view ) { - - // Generate on-the-fly form - var formid = generate_on_the_fly_form( - base_app_url + 'event/alter', - { - uid: event.uid, - calendar: event.calendar, - etag: event.etag, - view: view.name, - dayDelta: dayDelta, - minuteDelta: minuteDelta, - allday: event.allDay, - was_allday: event.was_allday, - timezone: event.timezone, - type: 'resize' - }); - - if (get_data('formcreation') == 'ok') { - var thisform = $('#' + formid); - - proceed_send_ajax_form(thisform, - function(data) { - // Users just want to know if something fails - update_single_event(event, data); - }, - function(data) { - show_error(t('messages', 'error_modfailed'), data); - revertFunc(); - }, - function() { - revertFunc(); - }); - } - - // Remove generated form - $(thisform).remove(); -}; - -/** - * Event drag and drop - */ - -var event_drop_callback = function event_drop_callback(event, dayDelta, minuteDelta, allDay, - revertFunc, jsEvent, ui, view) { - - // Generate on-the-fly form - var formid = generate_on_the_fly_form( - base_app_url + 'event/alter', - { - uid: event.uid, - calendar: event.calendar, - etag: event.etag, - view: view.name, - dayDelta: dayDelta, - minuteDelta: minuteDelta, - allday: event.allDay, - was_allday: event.orig_allday, - timezone: event.timezone, - type: 'drag' - }); - - if (get_data('formcreation') == 'ok') { - var thisform = $('#' + formid); - - proceed_send_ajax_form(thisform, - function(data) { - // Users just want to know if something fails - update_single_event(event, data); - }, - function(data) { - show_error(t('messages', 'error_modfailed'), data); - revertFunc(); - }, - function() { - revertFunc(); - }); - } - - // Remove generated form - $(thisform).remove(); -}; - -// Delete link -// TODO: check for rrule/recurrence-id (EXDATE, etc) -var event_delete_dialog = function event_delete_dialog() { - var form_url = base_app_url + 'event/delete'; - var title = t('labels', 'deleteevent'); - - var data = get_data('current_event'); - - if (data === undefined) { - show_error(t('messages', 'error_interfacefailure'), - t('messages', 'error_current_event_not_loaded')); - return; - } - - $.extend(data, { - applyid: 'event_delete_form', - frm: { - action: form_url, - method: 'post', - csrf: get_csrf_token() - } - }); - - show_dialog('event_delete_dialog', - data, - title, - [ - { - 'text': t('labels', 'yes'), - 'class': 'addicon btn-icon-event-delete', - 'click': function() { - var thisform = $('#event_delete_form'); - proceed_send_ajax_form(thisform, - function(rdata) { - $('#calendar_view').fullCalendar('removeEvents', data.id); - }, - function(rdata) { - show_error(t('messages', 'error_event_not_deleted'), data); - }, - function() {}); - - // Destroy dialog - destroy_dialog('#event_delete_dialog'); - } - }, - { - 'text': t('labels', 'cancel'), - 'class': 'addicon btn-icon-cancel', - 'click': function() { destroy_dialog('#event_delete_dialog'); } - } - ], - 'event_delete_dialog', - 400, - function() {}); - - // Close tooltip - $(ved).qtip('hide'); - return false; -}; - -// Edit/Modify link -var modify_event_handler = function modify_event_handler() { - // TODO: check for rrule/recurrence-id - // Data about this event - var event_data = get_data('current_event'); - if (event_data === undefined) { - show_error(t('messages', 'error_interfacefailure'), - t('messages', 'error_current_event_not_loaded')); - return; - } - - var data = { - uid: event_data.uid, - calendar: event_data.calendar, - href: event_data.href, - etag: event_data.etag, - start: fulldatetimestring(event_data.start), - end: fulldatetimestring(event_data.end), - summary: event_data.title, - location: event_data.location, - allday: event_data.allDay, - description: event_data.description, - rrule: event_data.rrule, - rrule_serialized: event_data.rrule_serialized, - rrule_explained: event_data.rrule_explained, - icalendar_class: event_data.icalendar_class, - transp: event_data.transp, - recurrence_id: event_data.recurrence_id, - reminders: event_data.reminders, - visible_reminders: event_data.visible_reminders, - orig_start: fulldatetimestring($.fullCalendar.parseDate(event_data.orig_start)), - orig_end: fulldatetimestring($.fullCalendar.parseDate(event_data.orig_end)) - }; - // Close tooltip - $(ved).qtip('hide'); - - event_field_form('modify', data); - - return false; -}; - -// Shows a calendar -var show_calendar = function show_calendar(calendar_obj) { - $('#calendar_view').fullCalendar('addEventSource', calendar_obj.data().eventsource); - calendar_obj.removeClass('transparent'); -}; - -// Hides a calendar -var hide_calendar = function hide_calendar(calendar_obj) { - $('#calendar_view').fullCalendar('removeEventSource', calendar_obj.data().eventsource); - calendar_obj.addClass('transparent'); -}; - -// Toggles calendar visibility -var toggle_calendar = function toggle_calendar(calendar_obj) { - if (calendar_obj.hasClass('transparent')) { - show_calendar(calendar_obj); - } else { - hide_calendar(calendar_obj); - } -}; - -// Initializes datepickers and timepickers -var initialize_date_and_time_pickers = function initialize_date_and_time_pickers(obj) { - obj.find('.needs-datepicker').datepicker(); - obj.find('.needs-timepicker').timePicker(AgenDAVConf.timepicker_base); -}; - - -// Gets csrf token value -var get_csrf_token = function get_csrf_token() { - return $.cookie(AgenDAVConf.prefs_csrf_cookie_name); -} - -// Loading indicator -var loading = function loading(status) { - if (status === false) { - $('#loading').hide(); - } else { - $('#loading').show(); - } -} - -// Printing helpers - -var beforePrint = function beforePrint() { - // Prepare calendar for printing - $('#calendar_view').addClass('printing'); - $('#calendar_view').fullCalendar('render'); -}; - -var afterPrint = function afterPrint() { - $('#calendar_view').removeClass('printing'); - $('#calendar_view').fullCalendar('render'); -}; - - -// Apply printing helpers to document -var setup_print_tweaks = function setup_print_tweaks() { - if (window.matchMedia) { - var mediaQueryList = window.matchMedia('print'); - mediaQueryList.addListener(function(mql) { - if (mql.matches) { - beforePrint(); - } else { - afterPrint(); - } - }); - } - - window.onbeforeprint = beforePrint; - window.onafterprint = afterPrint; -}; - - -// vim: sw=2 tabstop=2 diff --git a/sources/web/public/js/jquery-base-1.2.6.2.js b/sources/web/public/js/jquery-base-1.2.6.2.js deleted file mode 100644 index 96e66d7..0000000 --- a/sources/web/public/js/jquery-base-1.2.6.2.js +++ /dev/null @@ -1,128 +0,0 @@ -/*! jQuery v1.7.2 jquery.com | jquery.org/license */ -(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cu(a){if(!cj[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),b.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write((f.support.boxModel?"":"")+""),cl.close();d=cl.createElement(a),cl.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ck)}cj[a]=e}return cj[a]}function ct(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function cs(){cq=b}function cr(){setTimeout(cs,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;e=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?+d:j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){if(typeof c!="string"||!c)return null;var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
    a",d=p.getElementsByTagName("*"),e=p.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=p.getElementsByTagName("input")[0],b={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:p.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0},f.boxModel=b.boxModel=c.compatMode==="CSS1Compat",i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete p.test}catch(r){b.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",function(){b.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),i.setAttribute("name","t"),p.appendChild(i),j=c.createDocumentFragment(),j.appendChild(p.lastChild),b.checkClone=j.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,j.removeChild(i),j.appendChild(p);if(p.attachEvent)for(n in{submit:1,change:1,focusin:1})m="on"+n,o=m in p,o||(p.setAttribute(m,"return;"),o=typeof p[m]=="function"),b[n+"Bubbles"]=o;j.removeChild(p),j=g=h=p=i=null,f(function(){var d,e,g,h,i,j,l,m,n,q,r,s,t,u=c.getElementsByTagName("body")[0];!u||(m=1,t="padding:0;margin:0;border:",r="position:absolute;top:0;left:0;width:1px;height:1px;",s=t+"0;visibility:hidden;",n="style='"+r+t+"5px solid #000;",q="
    "+""+"
    ",d=c.createElement("div"),d.style.cssText=s+"width:0;height:0;position:static;top:0;margin-top:"+m+"px",u.insertBefore(d,u.firstChild),p=c.createElement("div"),d.appendChild(p),p.innerHTML="
    t
    ",k=p.getElementsByTagName("td"),o=k[0].offsetHeight===0,k[0].style.display="",k[1].style.display="none",b.reliableHiddenOffsets=o&&k[0].offsetHeight===0,a.getComputedStyle&&(p.innerHTML="",l=c.createElement("div"),l.style.width="0",l.style.marginRight="0",p.style.width="2px",p.appendChild(l),b.reliableMarginRight=(parseInt((a.getComputedStyle(l,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!="undefined"&&(p.innerHTML="",p.style.width=p.style.padding="1px",p.style.border=0,p.style.overflow="hidden",p.style.display="inline",p.style.zoom=1,b.inlineBlockNeedsLayout=p.offsetWidth===3,p.style.display="block",p.style.overflow="visible",p.innerHTML="
    ",b.shrinkWrapBlocks=p.offsetWidth!==3),p.style.cssText=r+s,p.innerHTML=q,e=p.firstChild,g=e.firstChild,i=e.nextSibling.firstChild.firstChild,j={doesNotAddBorder:g.offsetTop!==5,doesAddBorderForTableAndCells:i.offsetTop===5},g.style.position="fixed",g.style.top="20px",j.fixedPosition=g.offsetTop===20||g.offsetTop===15,g.style.position=g.style.top="",e.style.overflow="hidden",e.style.position="relative",j.subtractsBorderForOverflowNotVisible=g.offsetTop===-5,j.doesNotIncludeMarginInBodyOffset=u.offsetTop!==m,a.getComputedStyle&&(p.style.marginTop="1%",b.pixelMargin=(a.getComputedStyle(p,null)||{marginTop:0}).marginTop!=="1%"),typeof d.style.zoom!="undefined"&&(d.style.zoom=1),u.removeChild(d),l=p=d=null,f.extend(b,j))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e1,null,!1)},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){var d=2;typeof a!="string"&&(c=a,a="fx",d--);if(arguments.length1)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,f.prop,a,b,arguments.length>1)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.type]||f.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.type]||f.valHooks[g.nodeName.toLowerCase()];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h,i=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;i=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/(?:^|\s)hover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function( -a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler,g=p.selector),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&j.push({elem:this,matches:d.slice(e)});for(k=0;k0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));o.match.globalPOS=p;var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

    ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
    ";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/]","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*",""],legend:[1,"
    ","
    "],thead:[1,"","
    "],tr:[2,"","
    "],td:[3,"","
    "],col:[2,"","
    "],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
    ","
    "]),f.fn.extend({text:function(a){return f.access(this,function(a){return a===b?f.text(this):this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f -.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){return f.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(;d1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||f.isXMLDoc(a)||!bc.test("<"+a.nodeName+">")?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g,h,i,j=[];b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);for(var k=0,l;(l=a[k])!=null;k++){typeof l=="number"&&(l+="");if(!l)continue;if(typeof l=="string")if(!_.test(l))l=b.createTextNode(l);else{l=l.replace(Y,"<$1>");var m=(Z.exec(l)||["",""])[1].toLowerCase(),n=bg[m]||bg._default,o=n[0],p=b.createElement("div"),q=bh.childNodes,r;b===c?bh.appendChild(p):U(b).appendChild(p),p.innerHTML=n[1]+l+n[2];while(o--)p=p.lastChild;if(!f.support.tbody){var s=$.test(l),t=m==="table"&&!s?p.firstChild&&p.firstChild.childNodes:n[1]===""&&!s?p.childNodes:[];for(i=t.length-1;i>=0;--i)f.nodeName(t[i],"tbody")&&!t[i].childNodes.length&&t[i].parentNode.removeChild(t[i])}!f.support.leadingWhitespace&&X.test(l)&&p.insertBefore(b.createTextNode(X.exec(l)[0]),p.firstChild),l=p.childNodes,p&&(p.parentNode.removeChild(p),q.length>0&&(r=q[q.length-1],r&&r.parentNode&&r.parentNode.removeChild(r)))}var u;if(!f.support.appendChecked)if(l[0]&&typeof (u=l.length)=="number")for(i=0;i1)},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=by(a,"opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bu.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(by)return by(a,c)},swap:function(a,b,c){var d={},e,f;for(f in b)d[f]=a.style[f],a.style[f]=b[f];e=c.call(a);for(f in b)a.style[f]=d[f];return e}}),f.curCSS=f.css,c.defaultView&&c.defaultView.getComputedStyle&&(bz=function(a,b){var c,d,e,g,h=a.style;b=b.replace(br,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b))),!f.support.pixelMargin&&e&&bv.test(b)&&bt.test(c)&&(g=h.width,h.width=c,c=e.width,h.width=g);return c}),c.documentElement.currentStyle&&(bA=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f==null&&g&&(e=g[b])&&(f=e),bt.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),by=bz||bA,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0?bB(a,b,d):f.swap(a,bw,function(){return bB(a,b,d)})},set:function(a,b){return bs.test(b)?b+"px":b}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bq.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bp,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bp.test(g)?g.replace(bp,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){return f.swap(a,{display:"inline-block"},function(){return b?by(a,"margin-right"):a.style.marginRight})}})}),f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)}),f.each({margin:"",padding:"",border:"Width"},function(a,b){f.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bx[d]+b]=e[d]||e[d-2]||e[0];return f}}});var bC=/%20/g,bD=/\[\]$/,bE=/\r?\n/g,bF=/#.*$/,bG=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bH=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bI=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bJ=/^(?:GET|HEAD)$/,bK=/^\/\//,bL=/\?/,bM=/)<[^<]*)*<\/script>/gi,bN=/^(?:select|textarea)/i,bO=/\s+/,bP=/([?&])_=[^&]*/,bQ=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bR=f.fn.load,bS={},bT={},bU,bV,bW=["*/"]+["*"];try{bU=e.href}catch(bX){bU=c.createElement("a"),bU.href="",bU=bU.href}bV=bQ.exec(bU.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bR)return bR.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
    ").append(c.replace(bM,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bN.test(this.nodeName)||bH.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bE,"\r\n")}}):{name:b.name,value:c.replace(bE,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b$(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b$(a,b);return a},ajaxSettings:{url:bU,isLocal:bI.test(bV[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bW},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bY(bS),ajaxTransport:bY(bT),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?ca(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cb(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bG.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bF,"").replace(bK,bV[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bO),d.crossDomain==null&&(r=bQ.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bV[1]&&r[2]==bV[2]&&(r[3]||(r[1]==="http:"?80:443))==(bV[3]||(bV[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bZ(bS,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bJ.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bL.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bP,"$1_="+x);d.url=y+(y===d.url?(bL.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bW+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bZ(bT,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bC,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=typeof b.data=="string"&&/^application\/x\-www\-form\-urlencoded/.test(b.contentType);if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n);try{m.text=h.responseText}catch(a){}try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(ct("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);f.fn[a]=function(e){return f.access(this,function(a,e,g){var h=cy(a);if(g===b)return h?c in h?h[c]:f.support.boxModel&&h.document.documentElement[e]||h.document.body[e]:a[e];h?h.scrollTo(d?f(h).scrollLeft():g,d?g:f(h).scrollTop()):a[e]=g},a,e,arguments.length,null)}}),f.each({Height:"height",Width:"width"},function(a,c){var d="client"+a,e="scroll"+a,g="offset"+a;f.fn["inner"+a]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,c,"padding")):this[c]():null},f.fn["outer"+a]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,c,a?"margin":"border")):this[c]():null},f.fn[c]=function(a){return f.access(this,function(a,c,h){var i,j,k,l;if(f.isWindow(a)){i=a.document,j=i.documentElement[d];return f.support.boxModel&&j||i.body&&i.body[d]||j}if(a.nodeType===9){i=a.documentElement;if(i[d]>=i[e])return i[d];return Math.max(a.body[e],i[e],a.body[g],i[g])}if(h===b){k=f.css(a,c),l=parseFloat(k);return f.isNumeric(l)?l:k}f(a).css(c,h)},c,a,arguments.length,null)}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window);/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.ui.core.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){function c(b,c){var e=b.nodeName.toLowerCase();if("area"===e){var f=b.parentNode,g=f.name,h;return!b.href||!g||f.nodeName.toLowerCase()!=="map"?!1:(h=a("img[usemap=#"+g+"]")[0],!!h&&d(h))}return(/input|select|textarea|button|object/.test(e)?!b.disabled:"a"==e?b.href||c:c)&&d(b)}function d(b){return!a(b).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.ui=a.ui||{};if(a.ui.version)return;a.extend(a.ui,{version:"1.8.23",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}}),a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(b,c){return typeof b=="number"?this.each(function(){var d=this;setTimeout(function(){a(d).focus(),c&&c.call(d)},b)}):this._focus.apply(this,arguments)},scrollParent:function(){var b;return a.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?b=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(a.curCSS(this,"position",1))&&/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0):b=this.parents().filter(function(){return/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0),/fixed/.test(this.css("position"))||!b.length?a(document):b},zIndex:function(c){if(c!==b)return this.css("zIndex",c);if(this.length){var d=a(this[0]),e,f;while(d.length&&d[0]!==document){e=d.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){f=parseInt(d.css("zIndex"),10);if(!isNaN(f)&&f!==0)return f}d=d.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),a("").outerWidth(1).jquery||a.each(["Width","Height"],function(c,d){function h(b,c,d,f){return a.each(e,function(){c-=parseFloat(a.curCSS(b,"padding"+this,!0))||0,d&&(c-=parseFloat(a.curCSS(b,"border"+this+"Width",!0))||0),f&&(c-=parseFloat(a.curCSS(b,"margin"+this,!0))||0)}),c}var e=d==="Width"?["Left","Right"]:["Top","Bottom"],f=d.toLowerCase(),g={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn["inner"+d]=function(c){return c===b?g["inner"+d].call(this):this.each(function(){a(this).css(f,h(this,c)+"px")})},a.fn["outer"+d]=function(b,c){return typeof b!="number"?g["outer"+d].call(this,b):this.each(function(){a(this).css(f,h(this,b,!0,c)+"px")})}}),a.extend(a.expr[":"],{data:a.expr.createPseudo?a.expr.createPseudo(function(b){return function(c){return!!a.data(c,b)}}):function(b,c,d){return!!a.data(b,d[3])},focusable:function(b){return c(b,!isNaN(a.attr(b,"tabindex")))},tabbable:function(b){var d=a.attr(b,"tabindex"),e=isNaN(d);return(e||d>=0)&&c(b,!e)}}),a(function(){var b=document.body,c=b.appendChild(c=document.createElement("div"));c.offsetHeight,a.extend(c.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),a.support.minHeight=c.offsetHeight===100,a.support.selectstart="onselectstart"in c,b.removeChild(c).style.display="none"}),a.curCSS||(a.curCSS=a.css),a.extend(a.ui,{plugin:{add:function(b,c,d){var e=a.ui[b].prototype;for(var f in d)e.plugins[f]=e.plugins[f]||[],e.plugins[f].push([c,d[f]])},call:function(a,b,c){var d=a.plugins[b];if(!d||!a.element[0].parentNode)return;for(var e=0;e0?!0:(b[d]=1,e=b[d]>0,b[d]=0,e)},isOverAxis:function(a,b,c){return a>b&&a=9||!!b.button?this._mouseStarted?(this._mouseDrag(b),b.preventDefault()):(this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b)),!this._mouseStarted):this._mouseUp(b)},_mouseUp:function(b){return a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,b.target==this._mouseDownEvent.target&&a.data(b.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(b)),!1},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(a){return this.mouseDelayMet},_mouseStart:function(a){},_mouseDrag:function(a){},_mouseStop:function(a){},_mouseCapture:function(a){return!0}})})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.ui.position.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){a.ui=a.ui||{};var c=/left|center|right/,d=/top|center|bottom/,e="center",f={},g=a.fn.position,h=a.fn.offset;a.fn.position=function(b){if(!b||!b.of)return g.apply(this,arguments);b=a.extend({},b);var h=a(b.of),i=h[0],j=(b.collision||"flip").split(" "),k=b.offset?b.offset.split(" "):[0,0],l,m,n;return i.nodeType===9?(l=h.width(),m=h.height(),n={top:0,left:0}):i.setTimeout?(l=h.width(),m=h.height(),n={top:h.scrollTop(),left:h.scrollLeft()}):i.preventDefault?(b.at="left top",l=m=0,n={top:b.of.pageY,left:b.of.pageX}):(l=h.outerWidth(),m=h.outerHeight(),n=h.offset()),a.each(["my","at"],function(){var a=(b[this]||"").split(" ");a.length===1&&(a=c.test(a[0])?a.concat([e]):d.test(a[0])?[e].concat(a):[e,e]),a[0]=c.test(a[0])?a[0]:e,a[1]=d.test(a[1])?a[1]:e,b[this]=a}),j.length===1&&(j[1]=j[0]),k[0]=parseInt(k[0],10)||0,k.length===1&&(k[1]=k[0]),k[1]=parseInt(k[1],10)||0,b.at[0]==="right"?n.left+=l:b.at[0]===e&&(n.left+=l/2),b.at[1]==="bottom"?n.top+=m:b.at[1]===e&&(n.top+=m/2),n.left+=k[0],n.top+=k[1],this.each(function(){var c=a(this),d=c.outerWidth(),g=c.outerHeight(),h=parseInt(a.curCSS(this,"marginLeft",!0))||0,i=parseInt(a.curCSS(this,"marginTop",!0))||0,o=d+h+(parseInt(a.curCSS(this,"marginRight",!0))||0),p=g+i+(parseInt(a.curCSS(this,"marginBottom",!0))||0),q=a.extend({},n),r;b.my[0]==="right"?q.left-=d:b.my[0]===e&&(q.left-=d/2),b.my[1]==="bottom"?q.top-=g:b.my[1]===e&&(q.top-=g/2),f.fractions||(q.left=Math.round(q.left),q.top=Math.round(q.top)),r={left:q.left-h,top:q.top-i},a.each(["left","top"],function(c,e){a.ui.position[j[c]]&&a.ui.position[j[c]][e](q,{targetWidth:l,targetHeight:m,elemWidth:d,elemHeight:g,collisionPosition:r,collisionWidth:o,collisionHeight:p,offset:k,my:b.my,at:b.at})}),a.fn.bgiframe&&c.bgiframe(),c.offset(a.extend(q,{using:b.using}))})},a.ui.position={fit:{left:function(b,c){var d=a(window),e=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft();b.left=e>0?b.left-e:Math.max(b.left-c.collisionPosition.left,b.left)},top:function(b,c){var d=a(window),e=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop();b.top=e>0?b.top-e:Math.max(b.top-c.collisionPosition.top,b.top)}},flip:{left:function(b,c){if(c.at[0]===e)return;var d=a(window),f=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft(),g=c.my[0]==="left"?-c.elemWidth:c.my[0]==="right"?c.elemWidth:0,h=c.at[0]==="left"?c.targetWidth:-c.targetWidth,i=-2*c.offset[0];b.left+=c.collisionPosition.left<0?g+h+i:f>0?g+h+i:0},top:function(b,c){if(c.at[1]===e)return;var d=a(window),f=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop(),g=c.my[1]==="top"?-c.elemHeight:c.my[1]==="bottom"?c.elemHeight:0,h=c.at[1]==="top"?c.targetHeight:-c.targetHeight,i=-2*c.offset[1];b.top+=c.collisionPosition.top<0?g+h+i:f>0?g+h+i:0}}},a.offset.setOffset||(a.offset.setOffset=function(b,c){/static/.test(a.curCSS(b,"position"))&&(b.style.position="relative");var d=a(b),e=d.offset(),f=parseInt(a.curCSS(b,"top",!0),10)||0,g=parseInt(a.curCSS(b,"left",!0),10)||0,h={top:c.top-e.top+f,left:c.left-e.left+g};"using"in c?c.using.call(b,h):d.css(h)},a.fn.offset=function(b){var c=this[0];return!c||!c.ownerDocument?null:b?a.isFunction(b)?this.each(function(c){a(this).offset(b.call(this,c,a(this).offset()))}):this.each(function(){a.offset.setOffset(this,b)}):h.call(this)}),a.curCSS||(a.curCSS=a.css),function(){var b=document.getElementsByTagName("body")[0],c=document.createElement("div"),d,e,g,h,i;d=document.createElement(b?"div":"body"),g={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},b&&a.extend(g,{position:"absolute",left:"-1000px",top:"-1000px"});for(var j in g)d.style[j]=g[j];d.appendChild(c),e=b||document.documentElement,e.insertBefore(d,e.firstChild),c.style.cssText="position: absolute; left: 10.7432222px; top: 10.432325px; height: 30px; width: 201px;",h=a(c).offset(function(a,b){return b}).offset(),d.innerHTML="",e.removeChild(d),i=h.top+h.left+(b?2e3:0),f.fractions=i>21&&i<22}()})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.ui.draggable.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){a.widget("ui.draggable",a.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1},_create:function(){this.options.helper=="original"&&!/^(?:r|a|f)/.test(this.element.css("position"))&&(this.element[0].style.position="relative"),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._mouseInit()},destroy:function(){if(!this.element.data("draggable"))return;return this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._mouseDestroy(),this},_mouseCapture:function(b){var c=this.options;return this.helper||c.disabled||a(b.target).is(".ui-resizable-handle")?!1:(this.handle=this._getHandle(b),this.handle?(c.iframeFix&&a(c.iframeFix===!0?"iframe":c.iframeFix).each(function(){a('
    ').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(a(this).offset()).appendTo("body")}),!0):!1)},_mouseStart:function(b){var c=this.options;return this.helper=this._createHelper(b),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),a.ui.ddmanager&&(a.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,c.cursorAt&&this._adjustOffsetFromHelper(c.cursorAt),c.containment&&this._setContainment(),this._trigger("start",b)===!1?(this._clear(),!1):(this._cacheHelperProportions(),a.ui.ddmanager&&!c.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this._mouseDrag(b,!0),a.ui.ddmanager&&a.ui.ddmanager.dragStart(this,b),!0)},_mouseDrag:function(b,c){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute");if(!c){var d=this._uiHash();if(this._trigger("drag",b,d)===!1)return this._mouseUp({}),!1;this.position=d.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";return a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),!1},_mouseStop:function(b){var c=!1;a.ui.ddmanager&&!this.options.dropBehaviour&&(c=a.ui.ddmanager.drop(this,b)),this.dropped&&(c=this.dropped,this.dropped=!1);var d=this.element[0],e=!1;while(d&&(d=d.parentNode))d==document&&(e=!0);if(!e&&this.options.helper==="original")return!1;if(this.options.revert=="invalid"&&!c||this.options.revert=="valid"&&c||this.options.revert===!0||a.isFunction(this.options.revert)&&this.options.revert.call(this.element,c)){var f=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){f._trigger("stop",b)!==!1&&f._clear()})}else this._trigger("stop",b)!==!1&&this._clear();return!1},_mouseUp:function(b){return this.options.iframeFix===!0&&a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),a.ui.ddmanager&&a.ui.ddmanager.dragStop(this,b),a.ui.mouse.prototype._mouseUp.call(this,b)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(b){var c=!this.options.handle||!a(this.options.handle,this.element).length?!0:!1;return a(this.options.handle,this.element).find("*").andSelf().each(function(){this==b.target&&(c=!0)}),c},_createHelper:function(b){var c=this.options,d=a.isFunction(c.helper)?a(c.helper.apply(this.element[0],[b])):c.helper=="clone"?this.element.clone().removeAttr("id"):this.element;return d.parents("body").length||d.appendTo(c.appendTo=="parent"?this.element[0].parentNode:c.appendTo),d[0]!=this.element[0]&&!/(fixed|absolute)/.test(d.css("position"))&&d.css("position","absolute"),d},_adjustOffsetFromHelper:function(b){typeof b=="string"&&(b=b.split(" ")),a.isArray(b)&&(b={left:+b[0],top:+b[1]||0}),"left"in b&&(this.offset.click.left=b.left+this.margins.left),"right"in b&&(this.offset.click.left=this.helperProportions.width-b.right+this.margins.left),"top"in b&&(this.offset.click.top=b.top+this.margins.top),"bottom"in b&&(this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])&&(b.left+=this.scrollParent.scrollLeft(),b.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)b={top:0,left:0};return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var b=this.options;b.containment=="parent"&&(b.containment=this.helper[0].parentNode);if(b.containment=="document"||b.containment=="window")this.containment=[b.containment=="document"?0:a(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,b.containment=="document"?0:a(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,(b.containment=="document"?0:a(window).scrollLeft())+a(b.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(b.containment=="document"?0:a(window).scrollTop())+(a(b.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(b.containment)&&b.containment.constructor!=Array){var c=a(b.containment),d=c[0];if(!d)return;var e=c.offset(),f=a(d).css("overflow")!="hidden";this.containment=[(parseInt(a(d).css("borderLeftWidth"),10)||0)+(parseInt(a(d).css("paddingLeft"),10)||0),(parseInt(a(d).css("borderTopWidth"),10)||0)+(parseInt(a(d).css("paddingTop"),10)||0),(f?Math.max(d.scrollWidth,d.offsetWidth):d.offsetWidth)-(parseInt(a(d).css("borderLeftWidth"),10)||0)-(parseInt(a(d).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(f?Math.max(d.scrollHeight,d.offsetHeight):d.offsetHeight)-(parseInt(a(d).css("borderTopWidth"),10)||0)-(parseInt(a(d).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=c}else b.containment.constructor==Array&&(this.containment=b.containment)},_convertPositionTo:function(b,c){c||(c=this.position);var d=b=="absolute"?1:-1,e=this.options,f=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=/(html|body)/i.test(f[0].tagName);return{top:c.top+this.offset.relative.top*d+this.offset.parent.top*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():g?0:f.scrollTop())*d),left:c.left+this.offset.relative.left*d+this.offset.parent.left*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:f.scrollLeft())*d)}},_generatePosition:function(b){var c=this.options,d=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(d[0].tagName),f=b.pageX,g=b.pageY;if(this.originalPosition){var h;if(this.containment){if(this.relative_container){var i=this.relative_container.offset();h=[this.containment[0]+i.left,this.containment[1]+i.top,this.containment[2]+i.left,this.containment[3]+i.top]}else h=this.containment;b.pageX-this.offset.click.lefth[2]&&(f=h[2]+this.offset.click.left),b.pageY-this.offset.click.top>h[3]&&(g=h[3]+this.offset.click.top)}if(c.grid){var j=c.grid[1]?this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1]:this.originalPageY;g=h?j-this.offset.click.toph[3]?j-this.offset.click.toph[2]?k-this.offset.click.left=0;k--){var l=d.snapElements[k].left,m=l+d.snapElements[k].width,n=d.snapElements[k].top,o=n+d.snapElements[k].height;if(!(l-f=k&&g<=l||h>=k&&h<=l||gl)&&(e>=i&&e<=j||f>=i&&f<=j||ej);default:return!1}},a.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(b,c){var d=a.ui.ddmanager.droppables[b.options.scope]||[],e=c?c.type:null,f=(b.currentItem||b.element).find(":data(droppable)").andSelf();g:for(var h=0;h
    ').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("resizable",this.element.data("resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=c.handles||(a(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se");if(this.handles.constructor==String){this.handles=="all"&&(this.handles="n,e,s,w,se,sw,ne,nw");var d=this.handles.split(",");this.handles={};for(var e=0;e');h.css({zIndex:c.zIndex}),"se"==f&&h.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[f]=".ui-resizable-"+f,this.element.append(h)}}this._renderAxis=function(b){b=b||this.element;for(var c in this.handles){this.handles[c].constructor==String&&(this.handles[c]=a(this.handles[c],this.element).show());if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var d=a(this.handles[c],this.element),e=0;e=/sw|ne|nw|se|n|s/.test(c)?d.outerHeight():d.outerWidth();var f=["padding",/ne|nw|n/.test(c)?"Top":/se|sw|s/.test(c)?"Bottom":/^e$/.test(c)?"Right":"Left"].join("");b.css(f,e),this._proportionallyResize()}if(!a(this.handles[c]).length)continue}},this._renderAxis(this.element),this._handles=a(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){if(!b.resizing){if(this.className)var a=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=a&&a[1]?a[1]:"se"}}),c.autoHide&&(this._handles.hide(),a(this.element).addClass("ui-resizable-autohide").hover(function(){if(c.disabled)return;a(this).removeClass("ui-resizable-autohide"),b._handles.show()},function(){if(c.disabled)return;b.resizing||(a(this).addClass("ui-resizable-autohide"),b._handles.hide())})),this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(b){a(b).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var c=this.element;c.after(this.originalElement.css({position:c.css("position"),width:c.outerWidth(),height:c.outerHeight(),top:c.css("top"),left:c.css("left")})).remove()}return this.originalElement.css("resize",this.originalResizeStyle),b(this.originalElement),this},_mouseCapture:function(b){var c=!1;for(var d in this.handles)a(this.handles[d])[0]==b.target&&(c=!0);return!this.options.disabled&&c},_mouseStart:function(b){var d=this.options,e=this.element.position(),f=this.element;this.resizing=!0,this.documentScroll={top:a(document).scrollTop(),left:a(document).scrollLeft()},(f.is(".ui-draggable")||/absolute/.test(f.css("position")))&&f.css({position:"absolute",top:e.top,left:e.left}),this._renderProxy();var g=c(this.helper.css("left")),h=c(this.helper.css("top"));d.containment&&(g+=a(d.containment).scrollLeft()||0,h+=a(d.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:g,top:h},this.size=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalSize=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalPosition={left:g,top:h},this.sizeDiff={width:f.outerWidth()-f.width(),height:f.outerHeight()-f.height()},this.originalMousePosition={left:b.pageX,top:b.pageY},this.aspectRatio=typeof d.aspectRatio=="number"?d.aspectRatio:this.originalSize.width/this.originalSize.height||1;var i=a(".ui-resizable-"+this.axis).css("cursor");return a("body").css("cursor",i=="auto"?this.axis+"-resize":i),f.addClass("ui-resizable-resizing"),this._propagate("start",b),!0},_mouseDrag:function(b){var c=this.helper,d=this.options,e={},f=this,g=this.originalMousePosition,h=this.axis,i=b.pageX-g.left||0,j=b.pageY-g.top||0,k=this._change[h];if(!k)return!1;var l=k.apply(this,[b,i,j]),m=a.browser.msie&&a.browser.version<7,n=this.sizeDiff;this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)l=this._updateRatio(l,b);return l=this._respectSize(l,b),this._propagate("resize",b),c.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"}),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),this._updateCache(l),this._trigger("resize",b,this.ui()),!1},_mouseStop:function(b){this.resizing=!1;var c=this.options,d=this;if(this._helper){var e=this._proportionallyResizeElements,f=e.length&&/textarea/i.test(e[0].nodeName),g=f&&a.ui.hasScroll(e[0],"left")?0:d.sizeDiff.height,h=f?0:d.sizeDiff.width,i={width:d.helper.width()-h,height:d.helper.height()-g},j=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,k=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;c.animate||this.element.css(a.extend(i,{top:k,left:j})),d.helper.height(d.size.height),d.helper.width(d.size.width),this._helper&&!c.animate&&this._proportionallyResize()}return a("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",b),this._helper&&this.helper.remove(),!1},_updateVirtualBoundaries:function(a){var b=this.options,c,e,f,g,h;h={minWidth:d(b.minWidth)?b.minWidth:0,maxWidth:d(b.maxWidth)?b.maxWidth:Infinity,minHeight:d(b.minHeight)?b.minHeight:0,maxHeight:d(b.maxHeight)?b.maxHeight:Infinity};if(this._aspectRatio||a)c=h.minHeight*this.aspectRatio,f=h.minWidth/this.aspectRatio,e=h.maxHeight*this.aspectRatio,g=h.maxWidth/this.aspectRatio,c>h.minWidth&&(h.minWidth=c),f>h.minHeight&&(h.minHeight=f),ea.width,k=d(a.height)&&e.minHeight&&e.minHeight>a.height;j&&(a.width=e.minWidth),k&&(a.height=e.minHeight),h&&(a.width=e.maxWidth),i&&(a.height=e.maxHeight);var l=this.originalPosition.left+this.originalSize.width,m=this.position.top+this.size.height,n=/sw|nw|w/.test(g),o=/nw|ne|n/.test(g);j&&n&&(a.left=l-e.minWidth),h&&n&&(a.left=l-e.maxWidth),k&&o&&(a.top=m-e.minHeight),i&&o&&(a.top=m-e.maxHeight);var p=!a.width&&!a.height;return p&&!a.left&&a.top?a.top=null:p&&!a.top&&a.left&&(a.left=null),a},_proportionallyResize:function(){var b=this.options;if(!this._proportionallyResizeElements.length)return;var c=this.helper||this.element;for(var d=0;d');var d=a.browser.msie&&a.browser.version<7,e=d?1:0,f=d?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+f,height:this.element.outerHeight()+f,position:"absolute",left:this.elementOffset.left-e+"px",top:this.elementOffset.top-e+"px",zIndex:++c.zIndex}),this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(a,b,c){return{width:this.originalSize.width+b}},w:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{left:f.left+b,width:e.width-b}},n:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{top:f.top+c,height:e.height-c}},s:function(a,b,c){return{height:this.originalSize.height+c}},se:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},sw:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,c,d]))},ne:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},nw:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,c,d]))}},_propagate:function(b,c){a.ui.plugin.call(this,b,[c,this.ui()]),b!="resize"&&this._trigger(b,c,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),a.extend(a.ui.resizable,{version:"1.8.23"}),a.ui.plugin.add("resizable","alsoResize",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=function(b){a(b).each(function(){var b=a(this);b.data("resizable-alsoresize",{width:parseInt(b.width(),10),height:parseInt(b.height(),10),left:parseInt(b.css("left"),10),top:parseInt(b.css("top"),10)})})};typeof e.alsoResize=="object"&&!e.alsoResize.parentNode?e.alsoResize.length?(e.alsoResize=e.alsoResize[0],f(e.alsoResize)):a.each(e.alsoResize,function(a){f(a)}):f(e.alsoResize)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.originalSize,g=d.originalPosition,h={height:d.size.height-f.height||0,width:d.size.width-f.width||0,top:d.position.top-g.top||0,left:d.position.left-g.left||0},i=function(b,d){a(b).each(function(){var b=a(this),e=a(this).data("resizable-alsoresize"),f={},g=d&&d.length?d:b.parents(c.originalElement[0]).length?["width","height"]:["width","height","top","left"];a.each(g,function(a,b){var c=(e[b]||0)+(h[b]||0);c&&c>=0&&(f[b]=c||null)}),b.css(f)})};typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(a,b){i(a,b)}):i(e.alsoResize)},stop:function(b,c){a(this).removeData("resizable-alsoresize")}}),a.ui.plugin.add("resizable","animate",{stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d._proportionallyResizeElements,g=f.length&&/textarea/i.test(f[0].nodeName),h=g&&a.ui.hasScroll(f[0],"left")?0:d.sizeDiff.height,i=g?0:d.sizeDiff.width,j={width:d.size.width-i,height:d.size.height-h},k=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,l=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;d.element.animate(a.extend(j,l&&k?{top:l,left:k}:{}),{duration:e.animateDuration,easing:e.animateEasing,step:function(){var c={width:parseInt(d.element.css("width"),10),height:parseInt(d.element.css("height"),10),top:parseInt(d.element.css("top"),10),left:parseInt(d.element.css("left"),10)};f&&f.length&&a(f[0]).css({width:c.width,height:c.height}),d._updateCache(c),d._propagate("resize",b)}})}}),a.ui.plugin.add("resizable","containment",{start:function(b,d){var e=a(this).data("resizable"),f=e.options,g=e.element,h=f.containment,i=h instanceof a?h.get(0):/parent/.test(h)?g.parent().get(0):h;if(!i)return;e.containerElement=a(i);if(/document/.test(h)||h==document)e.containerOffset={left:0,top:0},e.containerPosition={left:0,top:0},e.parentData={element:a(document),left:0,top:0,width:a(document).width(),height:a(document).height()||document.body.parentNode.scrollHeight};else{var j=a(i),k=[];a(["Top","Right","Left","Bottom"]).each(function(a,b){k[a]=c(j.css("padding"+b))}),e.containerOffset=j.offset(),e.containerPosition=j.position(),e.containerSize={height:j.innerHeight()-k[3],width:j.innerWidth()-k[1]};var l=e.containerOffset,m=e.containerSize.height,n=e.containerSize.width,o=a.ui.hasScroll(i,"left")?i.scrollWidth:n,p=a.ui.hasScroll(i)?i.scrollHeight:m;e.parentData={element:i,left:l.left,top:l.top,width:o,height:p}}},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.containerSize,g=d.containerOffset,h=d.size,i=d.position,j=d._aspectRatio||b.shiftKey,k={top:0,left:0},l=d.containerElement;l[0]!=document&&/static/.test(l.css("position"))&&(k=g),i.left<(d._helper?g.left:0)&&(d.size.width=d.size.width+(d._helper?d.position.left-g.left:d.position.left-k.left),j&&(d.size.height=d.size.width/d.aspectRatio),d.position.left=e.helper?g.left:0),i.top<(d._helper?g.top:0)&&(d.size.height=d.size.height+(d._helper?d.position.top-g.top:d.position.top),j&&(d.size.width=d.size.height*d.aspectRatio),d.position.top=d._helper?g.top:0),d.offset.left=d.parentData.left+d.position.left,d.offset.top=d.parentData.top+d.position.top;var m=Math.abs((d._helper?d.offset.left-k.left:d.offset.left-k.left)+d.sizeDiff.width),n=Math.abs((d._helper?d.offset.top-k.top:d.offset.top-g.top)+d.sizeDiff.height),o=d.containerElement.get(0)==d.element.parent().get(0),p=/relative|absolute/.test(d.containerElement.css("position"));o&&p&&(m-=d.parentData.left),m+d.size.width>=d.parentData.width&&(d.size.width=d.parentData.width-m,j&&(d.size.height=d.size.width/d.aspectRatio)),n+d.size.height>=d.parentData.height&&(d.size.height=d.parentData.height-n,j&&(d.size.width=d.size.height*d.aspectRatio))},stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.position,g=d.containerOffset,h=d.containerPosition,i=d.containerElement,j=a(d.helper),k=j.offset(),l=j.outerWidth()-d.sizeDiff.width,m=j.outerHeight()-d.sizeDiff.height;d._helper&&!e.animate&&/relative/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m}),d._helper&&!e.animate&&/static/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m})}}),a.ui.plugin.add("resizable","ghost",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size;d.ghost=d.originalElement.clone(),d.ghost.css({opacity:.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof e.ghost=="string"?e.ghost:""),d.ghost.appendTo(d.helper)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})},stop:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.helper&&d.helper.get(0).removeChild(d.ghost.get(0))}}),a.ui.plugin.add("resizable","grid",{resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size,g=d.originalSize,h=d.originalPosition,i=d.axis,j=e._aspectRatio||b.shiftKey;e.grid=typeof e.grid=="number"?[e.grid,e.grid]:e.grid;var k=Math.round((f.width-g.width)/(e.grid[0]||1))*(e.grid[0]||1),l=Math.round((f.height-g.height)/(e.grid[1]||1))*(e.grid[1]||1);/^(se|s|e)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l):/^(ne)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l):/^(sw)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.left=h.left-k):(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l,d.position.left=h.left-k)}});var c=function(a){return parseInt(a,10)||0},d=function(a){return!isNaN(parseInt(a,10))}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.ui.selectable.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){a.widget("ui.selectable",a.ui.mouse,{options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch"},_create:function(){var b=this;this.element.addClass("ui-selectable"),this.dragged=!1;var c;this.refresh=function(){c=a(b.options.filter,b.element[0]),c.addClass("ui-selectee"),c.each(function(){var b=a(this),c=b.offset();a.data(this,"selectable-item",{element:this,$element:b,left:c.left,top:c.top,right:c.left+b.outerWidth(),bottom:c.top+b.outerHeight(),startselected:!1,selected:b.hasClass("ui-selected"),selecting:b.hasClass("ui-selecting"),unselecting:b.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=c.addClass("ui-selectee"),this._mouseInit(),this.helper=a("
    ")},destroy:function(){return this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable"),this._mouseDestroy(),this},_mouseStart:function(b){var c=this;this.opos=[b.pageX,b.pageY];if(this.options.disabled)return;var d=this.options;this.selectees=a(d.filter,this.element[0]),this._trigger("start",b),a(d.appendTo).append(this.helper),this.helper.css({left:b.clientX,top:b.clientY,width:0,height:0}),d.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var d=a.data(this,"selectable-item");d.startselected=!0,!b.metaKey&&!b.ctrlKey&&(d.$element.removeClass("ui-selected"),d.selected=!1,d.$element.addClass("ui-unselecting"),d.unselecting=!0,c._trigger("unselecting",b,{unselecting:d.element}))}),a(b.target).parents().andSelf().each(function(){var d=a.data(this,"selectable-item");if(d){var e=!b.metaKey&&!b.ctrlKey||!d.$element.hasClass("ui-selected");return d.$element.removeClass(e?"ui-unselecting":"ui-selected").addClass(e?"ui-selecting":"ui-unselecting"),d.unselecting=!e,d.selecting=e,d.selected=e,e?c._trigger("selecting",b,{selecting:d.element}):c._trigger("unselecting",b,{unselecting:d.element}),!1}})},_mouseDrag:function(b){var c=this;this.dragged=!0;if(this.options.disabled)return;var d=this.options,e=this.opos[0],f=this.opos[1],g=b.pageX,h=b.pageY;if(e>g){var i=g;g=e,e=i}if(f>h){var i=h;h=f,f=i}return this.helper.css({left:e,top:f,width:g-e,height:h-f}),this.selectees.each(function(){var i=a.data(this,"selectable-item");if(!i||i.element==c.element[0])return;var j=!1;d.tolerance=="touch"?j=!(i.left>g||i.righth||i.bottome&&i.rightf&&i.bottom *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3},_create:function(){var a=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?a.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):!1,this.offset=this.element.offset(),this._mouseInit(),this.ready=!0},destroy:function(){a.Widget.prototype.destroy.call(this),this.element.removeClass("ui-sortable ui-sortable-disabled"),this._mouseDestroy();for(var b=this.items.length-1;b>=0;b--)this.items[b].item.removeData(this.widgetName+"-item");return this},_setOption:function(b,c){b==="disabled"?(this.options[b]=c,this.widget()[c?"addClass":"removeClass"]("ui-sortable-disabled")):a.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(b,c){var d=this;if(this.reverting)return!1;if(this.options.disabled||this.options.type=="static")return!1;this._refreshItems(b);var e=null,f=this,g=a(b.target).parents().each(function(){if(a.data(this,d.widgetName+"-item")==f)return e=a(this),!1});a.data(b.target,d.widgetName+"-item")==f&&(e=a(b.target));if(!e)return!1;if(this.options.handle&&!c){var h=!1;a(this.options.handle,e).find("*").andSelf().each(function(){this==b.target&&(h=!0)});if(!h)return!1}return this.currentItem=e,this._removeCurrentsFromItems(),!0},_mouseStart:function(b,c,d){var e=this.options,f=this;this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(b),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,e.cursorAt&&this._adjustOffsetFromHelper(e.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!=this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),e.containment&&this._setContainment(),e.cursor&&(a("body").css("cursor")&&(this._storedCursor=a("body").css("cursor")),a("body").css("cursor",e.cursor)),e.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",e.opacity)),e.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",e.zIndex)),this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",b,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions();if(!d)for(var g=this.containers.length-1;g>=0;g--)this.containers[g]._trigger("activate",b,f._uiHash(this));return a.ui.ddmanager&&(a.ui.ddmanager.current=this),a.ui.ddmanager&&!e.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(b),!0},_mouseDrag:function(b){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs);if(this.options.scroll){var c=this.options,d=!1;this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-b.pageY=0;e--){var f=this.items[e],g=f.item[0],h=this._intersectsWithPointer(f);if(!h)continue;if(g!=this.currentItem[0]&&this.placeholder[h==1?"next":"prev"]()[0]!=g&&!a.ui.contains(this.placeholder[0],g)&&(this.options.type=="semi-dynamic"?!a.ui.contains(this.element[0],g):!0)){this.direction=h==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(f))this._rearrange(b,f);else break;this._trigger("change",b,this._uiHash());break}}return this._contactContainers(b),a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),this._trigger("sort",b,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(b,c){if(!b)return;a.ui.ddmanager&&!this.options.dropBehaviour&&a.ui.ddmanager.drop(this,b);if(this.options.revert){var d=this,e=d.placeholder.offset();d.reverting=!0,a(this.helper).animate({left:e.left-this.offset.parent.left-d.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:e.top-this.offset.parent.top-d.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){d._clear(b)})}else this._clear(b,c);return!1},cancel:function(){var b=this;if(this.dragging){this._mouseUp({target:null}),this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("deactivate",null,b._uiHash(this)),this.containers[c].containerCache.over&&(this.containers[c]._trigger("out",null,b._uiHash(this)),this.containers[c].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),a.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?a(this.domPosition.prev).after(this.currentItem):a(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];return b=b||{},a(c).each(function(){var c=(a(b.item||this).attr(b.attribute||"id")||"").match(b.expression||/(.+)[-=_](.+)/);c&&d.push((b.key||c[1]+"[]")+"="+(b.key&&b.expression?c[1]:c[2]))}),!d.length&&b.key&&d.push(b.key+"="),d.join("&")},toArray:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];return b=b||{},c.each(function(){d.push(a(b.item||this).attr(b.attribute||"id")||"")}),d},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,d=this.positionAbs.top,e=d+this.helperProportions.height,f=a.left,g=f+a.width,h=a.top,i=h+a.height,j=this.offset.click.top,k=this.offset.click.left,l=d+j>h&&d+jf&&b+ka[this.floating?"width":"height"]?l:f0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){return this._refreshItems(a),this.refreshPositions(),this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(b){var c=this,d=[],e=[],f=this._connectWith();if(f&&b)for(var g=f.length-1;g>=0;g--){var h=a(f[g]);for(var i=h.length-1;i>=0;i--){var j=a.data(h[i],this.widgetName);j&&j!=this&&!j.options.disabled&&e.push([a.isFunction(j.options.items)?j.options.items.call(j.element):a(j.options.items,j.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),j])}}e.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):a(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(var g=e.length-1;g>=0;g--)e[g][0].each(function(){d.push(this)});return a(d)},_removeCurrentsFromItems:function(){var a=this.currentItem.find(":data("+this.widgetName+"-item)");for(var b=0;b=0;g--){var h=a(f[g]);for(var i=h.length-1;i>=0;i--){var j=a.data(h[i],this.widgetName);j&&j!=this&&!j.options.disabled&&(e.push([a.isFunction(j.options.items)?j.options.items.call(j.element[0],b,{item:this.currentItem}):a(j.options.items,j.element),j]),this.containers.push(j))}}for(var g=e.length-1;g>=0;g--){var k=e[g][1],l=e[g][0];for(var i=0,m=l.length;i=0;c--){var d=this.items[c];if(d.instance!=this.currentContainer&&this.currentContainer&&d.item[0]!=this.currentItem[0])continue;var e=this.options.toleranceElement?a(this.options.toleranceElement,d.item):d.item;b||(d.width=e.outerWidth(),d.height=e.outerHeight());var f=e.offset();d.left=f.left,d.top=f.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(var c=this.containers.length-1;c>=0;c--){var f=this.containers[c].element.offset();this.containers[c].containerCache.left=f.left,this.containers[c].containerCache.top=f.top,this.containers[c].containerCache.width=this.containers[c].element.outerWidth(),this.containers[c].containerCache.height=this.containers[c].element.outerHeight()}return this},_createPlaceholder:function(b){var c=b||this,d=c.options;if(!d.placeholder||d.placeholder.constructor==String){var e=d.placeholder;d.placeholder={element:function(){var b=a(document.createElement(c.currentItem[0].nodeName)).addClass(e||c.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];return e||(b.style.visibility="hidden"),b},update:function(a,b){if(e&&!d.forcePlaceholderSize)return;b.height()||b.height(c.currentItem.innerHeight()-parseInt(c.currentItem.css("paddingTop")||0,10)-parseInt(c.currentItem.css("paddingBottom")||0,10)),b.width()||b.width(c.currentItem.innerWidth()-parseInt(c.currentItem.css("paddingLeft")||0,10)-parseInt(c.currentItem.css("paddingRight")||0,10))}}}c.placeholder=a(d.placeholder.element.call(c.element,c.currentItem)),c.currentItem.after(c.placeholder),d.placeholder.update(c,c.placeholder)},_contactContainers:function(b){var c=null,d=null;for(var e=this.containers.length-1;e>=0;e--){if(a.ui.contains(this.currentItem[0],this.containers[e].element[0]))continue;if(this._intersectsWith(this.containers[e].containerCache)){if(c&&a.ui.contains(this.containers[e].element[0],c.element[0]))continue;c=this.containers[e],d=e}else this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",b,this._uiHash(this)),this.containers[e].containerCache.over=0)}if(!c)return;if(this.containers.length===1)this.containers[d]._trigger("over",b,this._uiHash(this)),this.containers[d].containerCache.over=1;else if(this.currentContainer!=this.containers[d]){var f=1e4,g=null,h=this.positionAbs[this.containers[d].floating?"left":"top"];for(var i=this.items.length-1;i>=0;i--){if(!a.ui.contains(this.containers[d].element[0],this.items[i].item[0]))continue;var j=this.containers[d].floating?this.items[i].item.offset().left:this.items[i].item.offset().top;Math.abs(j-h)0?"down":"up")}if(!g&&!this.options.dropOnEmpty)return;this.currentContainer=this.containers[d],g?this._rearrange(b,g,null,!0):this._rearrange(b,null,this.containers[d].element,!0),this._trigger("change",b,this._uiHash()),this.containers[d]._trigger("change",b,this._uiHash(this)),this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[d]._trigger("over",b,this._uiHash(this)),this.containers[d].containerCache.over=1}},_createHelper:function(b){var c=this.options,d=a.isFunction(c.helper)?a(c.helper.apply(this.element[0],[b,this.currentItem])):c.helper=="clone"?this.currentItem.clone():this.currentItem;return d.parents("body").length||a(c.appendTo!="parent"?c.appendTo:this.currentItem[0].parentNode)[0].appendChild(d[0]),d[0]==this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(d[0].style.width==""||c.forceHelperSize)&&d.width(this.currentItem.width()),(d[0].style.height==""||c.forceHelperSize)&&d.height(this.currentItem.height()),d},_adjustOffsetFromHelper:function(b){typeof b=="string"&&(b=b.split(" ")),a.isArray(b)&&(b={left:+b[0],top:+b[1]||0}),"left"in b&&(this.offset.click.left=b.left+this.margins.left),"right"in b&&(this.offset.click.left=this.helperProportions.width-b.right+this.margins.left),"top"in b&&(this.offset.click.top=b.top+this.margins.top),"bottom"in b&&(this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])&&(b.left+=this.scrollParent.scrollLeft(),b.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)b={top:0,left:0};return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.currentItem.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var b=this.options;b.containment=="parent"&&(b.containment=this.helper[0].parentNode);if(b.containment=="document"||b.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,a(b.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a(b.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(b.containment)){var c=a(b.containment)[0],d=a(b.containment).offset(),e=a(c).css("overflow")!="hidden";this.containment=[d.left+(parseInt(a(c).css("borderLeftWidth"),10)||0)+(parseInt(a(c).css("paddingLeft"),10)||0)-this.margins.left,d.top+(parseInt(a(c).css("borderTopWidth"),10)||0)+(parseInt(a(c).css("paddingTop"),10)||0)-this.margins.top,d.left+(e?Math.max(c.scrollWidth,c.offsetWidth):c.offsetWidth)-(parseInt(a(c).css("borderLeftWidth"),10)||0)-(parseInt(a(c).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,d.top+(e?Math.max(c.scrollHeight,c.offsetHeight):c.offsetHeight)-(parseInt(a(c).css("borderTopWidth"),10)||0)-(parseInt(a(c).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(b,c){c||(c=this.position);var d=b=="absolute"?1:-1,e=this.options,f=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=/(html|body)/i.test(f[0].tagName);return{top:c.top+this.offset.relative.top*d+this.offset.parent.top*d-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():g?0:f.scrollTop())*d),left:c.left+this.offset.relative.left*d+this.offset.parent.left*d-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:f.scrollLeft())*d)}},_generatePosition:function(b){var c=this.options,d=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(d[0].tagName);this.cssPosition=="relative"&&(this.scrollParent[0]==document||this.scrollParent[0]==this.offsetParent[0])&&(this.offset.relative=this._getRelativeOffset());var f=b.pageX,g=b.pageY;if(this.originalPosition){this.containment&&(b.pageX-this.offset.click.leftthis.containment[2]&&(f=this.containment[2]+this.offset.click.left),b.pageY-this.offset.click.top>this.containment[3]&&(g=this.containment[3]+this.offset.click.top));if(c.grid){var h=this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1];g=this.containment?h-this.offset.click.topthis.containment[3]?h-this.offset.click.topthis.containment[2]?i-this.offset.click.left=0;f--)a.ui.contains(this.containers[f].element[0],this.currentItem[0])&&!c&&(d.push(function(a){return function(b){a._trigger("receive",b,this._uiHash(this))}}.call(this,this.containers[f])),d.push(function(a){return function(b){a._trigger("update",b,this._uiHash(this))}}.call(this,this.containers[f])))}for(var f=this.containers.length-1;f>=0;f--)c||d.push(function(a){return function(b){a._trigger("deactivate",b,this._uiHash(this))}}.call(this,this.containers[f])),this.containers[f].containerCache.over&&(d.push(function(a){return function(b){a._trigger("out",b,this._uiHash(this))}}.call(this,this.containers[f])),this.containers[f].containerCache.over=0);this._storedCursor&&a("body").css("cursor",this._storedCursor),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex),this.dragging=!1;if(this.cancelHelperRemoval){if(!c){this._trigger("beforeStop",b,this._uiHash());for(var f=0;f li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:!1,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var b=this,c=b.options;b.running=0,b.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix"),b.headers=b.element.find(c.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){if(c.disabled)return;a(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){if(c.disabled)return;a(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){if(c.disabled)return;a(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){if(c.disabled)return;a(this).removeClass("ui-state-focus")}),b.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");if(c.navigation){var d=b.element.find("a").filter(c.navigationFilter).eq(0);if(d.length){var e=d.closest(".ui-accordion-header");e.length?b.active=e:b.active=d.closest(".ui-accordion-content").prev()}}b.active=b._findActive(b.active||c.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top"),b.active.next().addClass("ui-accordion-content-active"),b._createIcons(),b.resize(),b.element.attr("role","tablist"),b.headers.attr("role","tab").bind("keydown.accordion",function(a){return b._keydown(a)}).next().attr("role","tabpanel"),b.headers.not(b.active||"").attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide(),b.active.length?b.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):b.headers.eq(0).attr("tabIndex",0),a.browser.safari||b.headers.find("a").attr("tabIndex",-1),c.event&&b.headers.bind(c.event.split(" ").join(".accordion ")+".accordion",function(a){b._clickHandler.call(b,a,this),a.preventDefault()})},_createIcons:function(){var b=this.options;b.icons&&(a("").addClass("ui-icon "+b.icons.header).prependTo(this.headers),this.active.children(".ui-icon").toggleClass(b.icons.header).toggleClass(b.icons.headerSelected),this.element.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.children(".ui-icon").remove(),this.element.removeClass("ui-accordion-icons")},destroy:function(){var b=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex"),this.headers.find("a").removeAttr("tabIndex"),this._destroyIcons();var c=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");return(b.autoHeight||b.fillHeight)&&c.css("height",""),a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments),b=="active"&&this.activate(c),b=="icons"&&(this._destroyIcons(),c&&this._createIcons()),b=="disabled"&&this.headers.add(this.headers.next())[c?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(b){if(this.options.disabled||b.altKey||b.ctrlKey)return;var c=a.ui.keyCode,d=this.headers.length,e=this.headers.index(b.target),f=!1;switch(b.keyCode){case c.RIGHT:case c.DOWN:f=this.headers[(e+1)%d];break;case c.LEFT:case c.UP:f=this.headers[(e-1+d)%d];break;case c.SPACE:case c.ENTER:this._clickHandler({target:b.target},b.target),b.preventDefault()}return f?(a(b.target).attr("tabIndex",-1),a(f).attr("tabIndex",0),f.focus(),!1):!0},resize:function(){var b=this.options,c;if(b.fillSpace){if(a.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}c=this.element.parent().height(),a.browser.msie&&this.element.parent().css("overflow",d),this.headers.each(function(){c-=a(this).outerHeight(!0)}),this.headers.next().each(function(){a(this).height(Math.max(0,c-a(this).innerHeight()+a(this).height()))}).css("overflow","auto")}else b.autoHeight&&(c=0,this.headers.next().each(function(){c=Math.max(c,a(this).height("").height())}).height(c));return this},activate:function(a){this.options.active=a;var b=this._findActive(a)[0];return this._clickHandler({target:b},b),this},_findActive:function(b){return b?typeof b=="number"?this.headers.filter(":eq("+b+")"):this.headers.not(this.headers.not(b)):b===!1?a([]):this.headers.filter(":eq(0)")},_clickHandler:function(b,c){var d=this.options;if(d.disabled)return;if(!b.target){if(!d.collapsible)return;this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header),this.active.next().addClass("ui-accordion-content-active");var e=this.active.next(),f={options:d,newHeader:a([]),oldHeader:d.active,newContent:a([]),oldContent:e},g=this.active=a([]);this._toggle(g,e,f);return}var h=a(b.currentTarget||c),i=h[0]===this.active[0];d.active=d.collapsible&&i?!1:this.headers.index(h);if(this.running||!d.collapsible&&i)return;var j=this.active,g=h.next(),e=this.active.next(),f={options:d,newHeader:i&&d.collapsible?a([]):h,oldHeader:this.active,newContent:i&&d.collapsible?a([]):g,oldContent:e},k=this.headers.index(this.active[0])>this.headers.index(h[0]);this.active=i?a([]):h,this._toggle(g,e,f,i,k),j.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header),i||(h.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected),h.next().addClass("ui-accordion-content-active"));return},_toggle:function(b,c,d,e,f){var g=this,h=g.options;g.toShow=b,g.toHide=c,g.data=d;var i=function(){if(!g)return;return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data),g.running=c.size()===0?b.size():c.size();if(h.animated){var j={};h.collapsible&&e?j={toShow:a([]),toHide:c,complete:i,down:f,autoHeight:h.autoHeight||h.fillSpace}:j={toShow:b,toHide:c,complete:i,down:f,autoHeight:h.autoHeight||h.fillSpace},h.proxied||(h.proxied=h.animated),h.proxiedDuration||(h.proxiedDuration=h.duration),h.animated=a.isFunction(h.proxied)?h.proxied(j):h.proxied,h.duration=a.isFunction(h.proxiedDuration)?h.proxiedDuration(j):h.proxiedDuration;var k=a.ui.accordion.animations,l=h.duration,m=h.animated;m&&!k[m]&&!a.easing[m]&&(m="slide"),k[m]||(k[m]=function(a){this.slide(a,{easing:m,duration:l||700})}),k[m](j)}else h.collapsible&&e?b.toggle():(c.hide(),b.show()),i(!0);c.prev().attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).blur(),b.prev().attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(this.running)return;this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""}),this.toHide.removeClass("ui-accordion-content-active"),this.toHide.length&&(this.toHide.parent()[0].className=this.toHide.parent()[0].className),this._trigger("change",null,this.data)}}),a.extend(a.ui.accordion,{version:"1.8.23",animations:{slide:function(b,c){b=a.extend({easing:"swing",duration:300},b,c);if(!b.toHide.size()){b.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},b);return}if(!b.toShow.size()){b.toHide.animate({height:"hide",paddingTop:"hide",paddingBottom:"hide"},b);return}var d=b.toShow.css("overflow"),e=0,f={},g={},h=["height","paddingTop","paddingBottom"],i,j=b.toShow;i=j[0].style.width,j.width(j.parent().width()-parseFloat(j.css("paddingLeft"))-parseFloat(j.css("paddingRight"))-(parseFloat(j.css("borderLeftWidth"))||0)-(parseFloat(j.css("borderRightWidth"))||0)),a.each(h,function(c,d){g[d]="hide";var e=(""+a.css(b.toShow[0],d)).match(/^([\d+-.]+)(.*)$/);f[d]={value:e[1],unit:e[2]||"px"}}),b.toShow.css({height:0,overflow:"hidden"}).show(),b.toHide.filter(":hidden").each(b.complete).end().filter(":visible").animate(g,{step:function(a,c){c.prop=="height"&&(e=c.end-c.start===0?0:(c.now-c.start)/(c.end-c.start)),b.toShow[0].style[c.prop]=e*f[c.prop].value+f[c.prop].unit},duration:b.duration,easing:b.easing,complete:function(){b.autoHeight||b.toShow.css("height",""),b.toShow.css({width:i,overflow:d}),b.complete()}})},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1e3:200})}}})})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.ui.autocomplete.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){var c=0;a.widget("ui.autocomplete",{options:{appendTo:"body",autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var b=this,c=this.element[0].ownerDocument,d;this.isMultiLine=this.element.is("textarea"),this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(b.options.disabled||b.element.propAttr("readOnly"))return;d=!1;var e=a.ui.keyCode;switch(c.keyCode){case e.PAGE_UP:b._move("previousPage",c);break;case e.PAGE_DOWN:b._move("nextPage",c);break;case e.UP:b._keyEvent("previous",c);break;case e.DOWN:b._keyEvent("next",c);break;case e.ENTER:case e.NUMPAD_ENTER:b.menu.active&&(d=!0,c.preventDefault());case e.TAB:if(!b.menu.active)return;b.menu.select(c);break;case e.ESCAPE:b.element.val(b.term),b.close(c);break;default:clearTimeout(b.searching),b.searching=setTimeout(function(){b.term!=b.element.val()&&(b.selectedItem=null,b.search(null,c))},b.options.delay)}}).bind("keypress.autocomplete",function(a){d&&(d=!1,a.preventDefault())}).bind("focus.autocomplete",function(){if(b.options.disabled)return;b.selectedItem=null,b.previous=b.element.val()}).bind("blur.autocomplete",function(a){if(b.options.disabled)return;clearTimeout(b.searching),b.closing=setTimeout(function(){b.close(a),b._change(a)},150)}),this._initSource(),this.menu=a("
      ").addClass("ui-autocomplete").appendTo(a(this.options.appendTo||"body",c)[0]).mousedown(function(c){var d=b.menu.element[0];a(c.target).closest(".ui-menu-item").length||setTimeout(function(){a(document).one("mousedown",function(c){c.target!==b.element[0]&&c.target!==d&&!a.ui.contains(d,c.target)&&b.close()})},1),setTimeout(function(){clearTimeout(b.closing)},13)}).menu({focus:function(a,c){var d=c.item.data("item.autocomplete");!1!==b._trigger("focus",a,{item:d})&&/^key/.test(a.originalEvent.type)&&b.element.val(d.value)},selected:function(a,d){var e=d.item.data("item.autocomplete"),f=b.previous;b.element[0]!==c.activeElement&&(b.element.focus(),b.previous=f,setTimeout(function(){b.previous=f,b.selectedItem=e},1)),!1!==b._trigger("select",a,{item:e})&&b.element.val(e.value),b.term=b.element.val(),b.close(a),b.selectedItem=e},blur:function(a,c){b.menu.element.is(":visible")&&b.element.val()!==b.term&&b.element.val(b.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu"),a.fn.bgiframe&&this.menu.element.bgiframe(),b.beforeunloadHandler=function(){b.element.removeAttr("autocomplete")},a(window).bind("beforeunload",b.beforeunloadHandler)},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup"),this.menu.element.remove(),a(window).unbind("beforeunload",this.beforeunloadHandler),a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments),b==="source"&&this._initSource(),b==="appendTo"&&this.menu.element.appendTo(a(c||"body",this.element[0].ownerDocument)[0]),b==="disabled"&&c&&this.xhr&&this.xhr.abort()},_initSource:function(){var b=this,c,d;a.isArray(this.options.source)?(c=this.options.source,this.source=function(b,d){d(a.ui.autocomplete.filter(c,b.term))}):typeof this.options.source=="string"?(d=this.options.source,this.source=function(c,e){b.xhr&&b.xhr.abort(),b.xhr=a.ajax({url:d,data:c,dataType:"json",success:function(a,b){e(a)},error:function(){e([])}})}):this.source=this.options.source},search:function(a,b){a=a!=null?a:this.element.val(),this.term=this.element.val();if(a.length").data("item.autocomplete",c).append(a("
      ").text(c.label)).appendTo(b)},_move:function(a,b){if(!this.menu.element.is(":visible")){this.search(null,b);return}if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term),this.menu.deactivate();return}this.menu[a](b)},widget:function(){return this.menu.element},_keyEvent:function(a,b){if(!this.isMultiLine||this.menu.element.is(":visible"))this._move(a,b),b.preventDefault()}}),a.extend(a.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},filter:function(b,c){var d=new RegExp(a.ui.autocomplete.escapeRegex(c),"i");return a.grep(b,function(a){return d.test(a.label||a.value||a)})}})})(jQuery),function(a){a.widget("ui.menu",{_create:function(){var b=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(c){if(!a(c.target).closest(".ui-menu-item a").length)return;c.preventDefault(),b.select(c)}),this.refresh()},refresh:function(){var b=this,c=this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem");c.children("a").addClass("ui-corner-all").attr("tabindex",-1).mouseenter(function(c){b.activate(c,a(this).parent())}).mouseleave(function(){b.deactivate()})},activate:function(a,b){this.deactivate();if(this.hasScroll()){var c=b.offset().top-this.element.offset().top,d=this.element.scrollTop(),e=this.element.height();c<0?this.element.scrollTop(d+c):c>=e&&this.element.scrollTop(d+c-e+b.height())}this.active=b.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end(),this._trigger("focus",a,{item:b})},deactivate:function(){if(!this.active)return;this.active.children("a").removeClass("ui-state-hover").removeAttr("id"),this._trigger("blur"),this.active=null},next:function(a){this.move("next",".ui-menu-item:first",a)},previous:function(a){this.move("prev",".ui-menu-item:last",a)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(a,b,c){if(!this.active){this.activate(c,this.element.children(b));return}var d=this.active[a+"All"](".ui-menu-item").eq(0);d.length?this.activate(c,d):this.activate(c,this.element.children(b))},nextPage:function(b){if(this.hasScroll()){if(!this.active||this.last()){this.activate(b,this.element.children(".ui-menu-item:first"));return}var c=this.active.offset().top,d=this.element.height(),e=this.element.children(".ui-menu-item").filter(function(){var b=a(this).offset().top-c-d+a(this).height();return b<10&&b>-10});e.length||(e=this.element.children(".ui-menu-item:last")),this.activate(b,e)}else this.activate(b,this.element.children(".ui-menu-item").filter(!this.active||this.last()?":first":":last"))},previousPage:function(b){if(this.hasScroll()){if(!this.active||this.first()){this.activate(b,this.element.children(".ui-menu-item:last"));return}var c=this.active.offset().top,d=this.element.height(),e=this.element.children(".ui-menu-item").filter(function(){var b=a(this).offset().top-c+d-a(this).height();return b<10&&b>-10});e.length||(e=this.element.children(".ui-menu-item:first")),this.activate(b,e)}else this.activate(b,this.element.children(".ui-menu-item").filter(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()",this.element[0].ownerDocument).addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,e=d.primary&&d.secondary,f=[];d.primary||d.secondary?(this.options.text&&f.push("ui-button-text-icon"+(e?"s":d.primary?"-primary":"-secondary")),d.primary&&b.prepend(""),d.secondary&&b.append(""),this.options.text||(f.push(e?"ui-button-icons-only":"ui-button-icon-only"),this.hasTitle||b.attr("title",c))):f.push("ui-button-text-only"),b.addClass(f.join(" "))}}),a.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(b,c){b==="disabled"&&this.buttons.button("option",b,c),a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){var b=this.element.css("direction")==="rtl";this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(b?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(b?"ui-corner-left":"ui-corner-right").end().end()},destroy:function(){this.element.removeClass("ui-buttonset"),this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy"),a.Widget.prototype.destroy.call(this)}})})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.ui.dialog.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){var c="ui-dialog ui-widget ui-widget-content ui-corner-all ",d={buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},e={maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0};a.widget("ui.dialog",{options:{autoOpen:!0,buttons:{},closeOnEscape:!0,closeText:"close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:!1,maxWidth:!1,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",collision:"fit",using:function(b){var c=a(this).css(b).offset().top;c<0&&a(this).css("top",b.top-c)}},resizable:!0,show:null,stack:!0,title:"",width:300,zIndex:1e3},_create:function(){this.originalTitle=this.element.attr("title"),typeof this.originalTitle!="string"&&(this.originalTitle=""),this.options.title=this.options.title||this.originalTitle;var b=this,d=b.options,e=d.title||" ",f=a.ui.dialog.getTitleId(b.element),g=(b.uiDialog=a("
      ")).appendTo(document.body).hide().addClass(c+d.dialogClass).css({zIndex:d.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(c){d.closeOnEscape&&!c.isDefaultPrevented()&&c.keyCode&&c.keyCode===a.ui.keyCode.ESCAPE&&(b.close(c),c.preventDefault())}).attr({role:"dialog","aria-labelledby":f}).mousedown(function(a){b.moveToTop(!1,a)}),h=b.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g),i=(b.uiDialogTitlebar=a("
      ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g),j=a('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){j.addClass("ui-state-hover")},function(){j.removeClass("ui-state-hover")}).focus(function(){j.addClass("ui-state-focus")}).blur(function(){j.removeClass("ui-state-focus")}).click(function(a){return b.close(a),!1}).appendTo(i),k=(b.uiDialogTitlebarCloseText=a("")).addClass("ui-icon ui-icon-closethick").text(d.closeText).appendTo(j),l=a("").addClass("ui-dialog-title").attr("id",f).html(e).prependTo(i);a.isFunction(d.beforeclose)&&!a.isFunction(d.beforeClose)&&(d.beforeClose=d.beforeclose),i.find("*").add(i).disableSelection(),d.draggable&&a.fn.draggable&&b._makeDraggable(),d.resizable&&a.fn.resizable&&b._makeResizable(),b._createButtons(d.buttons),b._isOpen=!1,a.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;return a.overlay&&a.overlay.destroy(),a.uiDialog.hide(),a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"),a.uiDialog.remove(),a.originalTitle&&a.element.attr("title",a.originalTitle),a},widget:function(){return this.uiDialog},close:function(b){var c=this,d,e;if(!1===c._trigger("beforeClose",b))return;return c.overlay&&c.overlay.destroy(),c.uiDialog.unbind("keypress.ui-dialog"),c._isOpen=!1,c.options.hide?c.uiDialog.hide(c.options.hide,function(){c._trigger("close",b)}):(c.uiDialog.hide(),c._trigger("close",b)),a.ui.dialog.overlay.resize(),c.options.modal&&(d=0,a(".ui-dialog").each(function(){this!==c.uiDialog[0]&&(e=a(this).css("z-index"),isNaN(e)||(d=Math.max(d,e)))}),a.ui.dialog.maxZ=d),c},isOpen:function(){return this._isOpen},moveToTop:function(b,c){var d=this,e=d.options,f;return e.modal&&!b||!e.stack&&!e.modal?d._trigger("focus",c):(e.zIndex>a.ui.dialog.maxZ&&(a.ui.dialog.maxZ=e.zIndex),d.overlay&&(a.ui.dialog.maxZ+=1,d.overlay.$el.css("z-index",a.ui.dialog.overlay.maxZ=a.ui.dialog.maxZ)),f={scrollTop:d.element.scrollTop(),scrollLeft:d.element.scrollLeft()},a.ui.dialog.maxZ+=1,d.uiDialog.css("z-index",a.ui.dialog.maxZ),d.element.attr(f),d._trigger("focus",c),d)},open:function(){if(this._isOpen)return;var b=this,c=b.options,d=b.uiDialog;return b.overlay=c.modal?new a.ui.dialog.overlay(b):null,b._size(),b._position(c.position),d.show(c.show),b.moveToTop(!0),c.modal&&d.bind("keydown.ui-dialog",function(b){if(b.keyCode!==a.ui.keyCode.TAB)return;var c=a(":tabbable",this),d=c.filter(":first"),e=c.filter(":last");if(b.target===e[0]&&!b.shiftKey)return d.focus(1),!1;if(b.target===d[0]&&b.shiftKey)return e.focus(1),!1}),a(b.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus(),b._isOpen=!0,b._trigger("open"),b},_createButtons:function(b){var c=this,d=!1,e=a("
      ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),f=a("
      ").addClass("ui-dialog-buttonset").appendTo(e);c.uiDialog.find(".ui-dialog-buttonpane").remove(),typeof b=="object"&&b!==null&&a.each(b,function(){return!(d=!0)}),d&&(a.each(b,function(b,d){d=a.isFunction(d)?{click:d,text:b}:d;var e=a('').click(function(){d.click.apply(c.element[0],arguments)}).appendTo(f);a.each(d,function(a,b){if(a==="click")return;a in e?e[a](b):e.attr(a,b)}),a.fn.button&&e.button()}),e.appendTo(c.uiDialog))},_makeDraggable:function(){function f(a){return{position:a.position,offset:a.offset}}var b=this,c=b.options,d=a(document),e;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(d,g){e=c.height==="auto"?"auto":a(this).height(),a(this).height(a(this).height()).addClass("ui-dialog-dragging"),b._trigger("dragStart",d,f(g))},drag:function(a,c){b._trigger("drag",a,f(c))},stop:function(g,h){c.position=[h.position.left-d.scrollLeft(),h.position.top-d.scrollTop()],a(this).removeClass("ui-dialog-dragging").height(e),b._trigger("dragStop",g,f(h)),a.ui.dialog.overlay.resize()}})},_makeResizable:function(c){function h(a){return{originalPosition:a.originalPosition,originalSize:a.originalSize,position:a.position,size:a.size}}c=c===b?this.options.resizable:c;var d=this,e=d.options,f=d.uiDialog.css("position"),g=typeof c=="string"?c:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:g,start:function(b,c){a(this).addClass("ui-dialog-resizing"),d._trigger("resizeStart",b,h(c))},resize:function(a,b){d._trigger("resize",a,h(b))},stop:function(b,c){a(this).removeClass("ui-dialog-resizing"),e.height=a(this).height(),e.width=a(this).width(),d._trigger("resizeStop",b,h(c)),a.ui.dialog.overlay.resize()}}).css("position",f).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(b){var c=[],d=[0,0],e;if(b){if(typeof b=="string"||typeof b=="object"&&"0"in b)c=b.split?b.split(" "):[b[0],b[1]],c.length===1&&(c[1]=c[0]),a.each(["left","top"],function(a,b){+c[a]===c[a]&&(d[a]=c[a],c[a]=b)}),b={my:c.join(" "),at:c.join(" "),offset:d.join(" ")};b=a.extend({},a.ui.dialog.prototype.options.position,b)}else b=a.ui.dialog.prototype.options.position;e=this.uiDialog.is(":visible"),e||this.uiDialog.show(),this.uiDialog.css({top:0,left:0}).position(a.extend({of:window},b)),e||this.uiDialog.hide()},_setOptions:function(b){var c=this,f={},g=!1;a.each(b,function(a,b){c._setOption(a,b),a in d&&(g=!0),a in e&&(f[a]=b)}),g&&this._size(),this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",f)},_setOption:function(b,d){var e=this,f=e.uiDialog;switch(b){case"beforeclose":b="beforeClose";break;case"buttons":e._createButtons(d);break;case"closeText":e.uiDialogTitlebarCloseText.text(""+d);break;case"dialogClass":f.removeClass(e.options.dialogClass).addClass(c+d);break;case"disabled":d?f.addClass("ui-dialog-disabled"):f.removeClass("ui-dialog-disabled");break;case"draggable":var g=f.is(":data(draggable)");g&&!d&&f.draggable("destroy"),!g&&d&&e._makeDraggable();break;case"position":e._position(d);break;case"resizable":var h=f.is(":data(resizable)");h&&!d&&f.resizable("destroy"),h&&typeof d=="string"&&f.resizable("option","handles",d),!h&&d!==!1&&e._makeResizable(d);break;case"title":a(".ui-dialog-title",e.uiDialogTitlebar).html(""+(d||" "))}a.Widget.prototype._setOption.apply(e,arguments)},_size:function(){var b=this.options,c,d,e=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0}),b.minWidth>b.width&&(b.width=b.minWidth),c=this.uiDialog.css({height:"auto",width:b.width}).height(),d=Math.max(0,b.minHeight-c);if(b.height==="auto")if(a.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();var f=this.element.css("height","auto").height();e||this.uiDialog.hide(),this.element.height(Math.max(f,d))}else this.element.height(Math.max(b.height-c,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}}),a.extend(a.ui.dialog,{version:"1.8.23",uuid:0,maxZ:0,getTitleId:function(a){var b=a.attr("id");return b||(this.uuid+=1,b=this.uuid),"ui-dialog-title-"+b},overlay:function(b){this.$el=a.ui.dialog.overlay.create(b)}}),a.extend(a.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:a.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "),create:function(b){this.instances.length===0&&(setTimeout(function(){a.ui.dialog.overlay.instances.length&&a(document).bind(a.ui.dialog.overlay.events,function(b){if(a(b.target).zIndex()").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});return a.fn.bgiframe&&c.bgiframe(),this.instances.push(c),c},destroy:function(b){var c=a.inArray(b,this.instances);c!=-1&&this.oldInstances.push(this.instances.splice(c,1)[0]),this.instances.length===0&&a([document,window]).unbind(".dialog-overlay"),b.remove();var d=0;a.each(this.instances,function(){d=Math.max(d,this.css("z-index"))}),this.maxZ=d},height:function(){var b,c;return a.browser.msie&&a.browser.version<7?(b=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),c=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight),b").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(d.range==="min"||d.range==="max"?" ui-slider-range-"+d.range:"")));for(var i=e.length;ic&&(f=c,g=a(this),i=b)}),c.range===!0&&this.values(1)===c.min&&(i+=1,g=a(this.handles[i])),j=this._start(b,i),j===!1?!1:(this._mouseSliding=!0,h._handleIndex=i,g.addClass("ui-state-active").focus(),k=g.offset(),l=!a(b.target).parents().andSelf().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:b.pageX-k.left-g.width()/2,top:b.pageY-k.top-g.height()/2-(parseInt(g.css("borderTopWidth"),10)||0)-(parseInt(g.css("borderBottomWidth"),10)||0)+(parseInt(g.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(b,i,e),this._animateOff=!0,!0))},_mouseStart:function(a){return!0},_mouseDrag:function(a){var b={x:a.pageX,y:a.pageY},c=this._normValueFromMouse(b);return this._slide(a,this._handleIndex,c),!1},_mouseStop:function(a){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(a,this._handleIndex),this._change(a,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(a){var b,c,d,e,f;return this.orientation==="horizontal"?(b=this.elementSize.width,c=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(b=this.elementSize.height,c=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),d=c/b,d>1&&(d=1),d<0&&(d=0),this.orientation==="vertical"&&(d=1-d),e=this._valueMax()-this._valueMin(),f=this._valueMin()+d*e,this._trimAlignValue(f)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};return this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("start",a,c)},_slide:function(a,b,c){var d,e,f;this.options.values&&this.options.values.length?(d=this.values(b?0:1),this.options.values.length===2&&this.options.range===!0&&(b===0&&c>d||b===1&&c1){this.options.values[b]=this._trimAlignValue(c),this._refreshValue(),this._change(null,b);return}if(!arguments.length)return this._values();if(!a.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(b):this.value();d=this.options.values,e=arguments[0];for(f=0;f=this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=(a-this._valueMin())%b,d=a-c;return Math.abs(c)*2>=b&&(d+=c>0?b:-b),parseFloat(d.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var b=this.options.range,c=this.options,d=this,e=this._animateOff?!1:c.animate,f,g={},h,i,j,k;this.options.values&&this.options.values.length?this.handles.each(function(b,i){f=(d.values(b)-d._valueMin())/(d._valueMax()-d._valueMin())*100,g[d.orientation==="horizontal"?"left":"bottom"]=f+"%",a(this).stop(1,1)[e?"animate":"css"](g,c.animate),d.options.range===!0&&(d.orientation==="horizontal"?(b===0&&d.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},c.animate),b===1&&d.range[e?"animate":"css"]({width:f-h+"%"},{queue:!1,duration:c.animate})):(b===0&&d.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},c.animate),b===1&&d.range[e?"animate":"css"]({height:f-h+"%"},{queue:!1,duration:c.animate}))),h=f}):(i=this.value(),j=this._valueMin(),k=this._valueMax(),f=k!==j?(i-j)/(k-j)*100:0,g[d.orientation==="horizontal"?"left":"bottom"]=f+"%",this.handle.stop(1,1)[e?"animate":"css"](g,c.animate),b==="min"&&this.orientation==="horizontal"&&this.range.stop(1,1)[e?"animate":"css"]({width:f+"%"},c.animate),b==="max"&&this.orientation==="horizontal"&&this.range[e?"animate":"css"]({width:100-f+"%"},{queue:!1,duration:c.animate}),b==="min"&&this.orientation==="vertical"&&this.range.stop(1,1)[e?"animate":"css"]({height:f+"%"},c.animate),b==="max"&&this.orientation==="vertical"&&this.range[e?"animate":"css"]({height:100-f+"%"},{queue:!1,duration:c.animate}))}}),a.extend(a.ui.slider,{version:"1.8.23"})})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.ui.tabs.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){function e(){return++c}function f(){return++d}var c=0,d=0;a.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:!1,cookie:null,collapsible:!1,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"
      ",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:"
    • #{label}
    • "},_create:function(){this._tabify(!0)},_setOption:function(a,b){if(a=="selected"){if(this.options.collapsible&&b==this.options.selected)return;this.select(b)}else this.options[a]=b,this._tabify()},_tabId:function(a){return a.title&&a.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+e()},_sanitizeSelector:function(a){return a.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+f());return a.cookie.apply(null,[b].concat(a.makeArray(arguments)))},_ui:function(a,b){return{tab:a,panel:b,index:this.anchors.index(a)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=a(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(c){function m(b,c){b.css("display",""),!a.support.opacity&&c.opacity&&b[0].style.removeAttribute("filter")}var d=this,e=this.options,f=/^#.+/;this.list=this.element.find("ol,ul").eq(0),this.lis=a(" > li:has(a[href])",this.list),this.anchors=this.lis.map(function(){return a("a",this)[0]}),this.panels=a([]),this.anchors.each(function(b,c){var g=a(c).attr("href"),h=g.split("#")[0],i;h&&(h===location.toString().split("#")[0]||(i=a("base")[0])&&h===i.href)&&(g=c.hash,c.href=g);if(f.test(g))d.panels=d.panels.add(d.element.find(d._sanitizeSelector(g)));else if(g&&g!=="#"){a.data(c,"href.tabs",g),a.data(c,"load.tabs",g.replace(/#.*$/,""));var j=d._tabId(c);c.href="#"+j;var k=d.element.find("#"+j);k.length||(k=a(e.panelTemplate).attr("id",j).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(d.panels[b-1]||d.list),k.data("destroy.tabs",!0)),d.panels=d.panels.add(k)}else e.disabled.push(b)}),c?(this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"),this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"),this.lis.addClass("ui-state-default ui-corner-top"),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom"),e.selected===b?(location.hash&&this.anchors.each(function(a,b){if(b.hash==location.hash)return e.selected=a,!1}),typeof e.selected!="number"&&e.cookie&&(e.selected=parseInt(d._cookie(),10)),typeof e.selected!="number"&&this.lis.filter(".ui-tabs-selected").length&&(e.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))),e.selected=e.selected||(this.lis.length?0:-1)):e.selected===null&&(e.selected=-1),e.selected=e.selected>=0&&this.anchors[e.selected]||e.selected<0?e.selected:0,e.disabled=a.unique(e.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"),function(a,b){return d.lis.index(a)}))).sort(),a.inArray(e.selected,e.disabled)!=-1&&e.disabled.splice(a.inArray(e.selected,e.disabled),1),this.panels.addClass("ui-tabs-hide"),this.lis.removeClass("ui-tabs-selected ui-state-active"),e.selected>=0&&this.anchors.length&&(d.element.find(d._sanitizeSelector(d.anchors[e.selected].hash)).removeClass("ui-tabs-hide"),this.lis.eq(e.selected).addClass("ui-tabs-selected ui-state-active"),d.element.queue("tabs",function(){d._trigger("show",null,d._ui(d.anchors[e.selected],d.element.find(d._sanitizeSelector(d.anchors[e.selected].hash))[0]))}),this.load(e.selected)),a(window).bind("unload",function(){d.lis.add(d.anchors).unbind(".tabs"),d.lis=d.anchors=d.panels=null})):e.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")),this.element[e.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible"),e.cookie&&this._cookie(e.selected,e.cookie);for(var g=0,h;h=this.lis[g];g++)a(h)[a.inArray(g,e.disabled)!=-1&&!a(h).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");e.cache===!1&&this.anchors.removeData("cache.tabs"),this.lis.add(this.anchors).unbind(".tabs");if(e.event!=="mouseover"){var i=function(a,b){b.is(":not(.ui-state-disabled)")&&b.addClass("ui-state-"+a)},j=function(a,b){b.removeClass("ui-state-"+a)};this.lis.bind("mouseover.tabs",function(){i("hover",a(this))}),this.lis.bind("mouseout.tabs",function(){j("hover",a(this))}),this.anchors.bind("focus.tabs",function(){i("focus",a(this).closest("li"))}),this.anchors.bind("blur.tabs",function(){j("focus",a(this).closest("li"))})}var k,l;e.fx&&(a.isArray(e.fx)?(k=e.fx[0],l=e.fx[1]):k=l=e.fx);var n=l?function(b,c){a(b).closest("li").addClass("ui-tabs-selected ui-state-active"),c.hide().removeClass("ui-tabs-hide").animate(l,l.duration||"normal",function(){m(c,l),d._trigger("show",null,d._ui(b,c[0]))})}:function(b,c){a(b).closest("li").addClass("ui-tabs-selected ui-state-active"),c.removeClass("ui-tabs-hide"),d._trigger("show",null,d._ui(b,c[0]))},o=k?function(a,b){b.animate(k,k.duration||"normal",function(){d.lis.removeClass("ui-tabs-selected ui-state-active"),b.addClass("ui-tabs-hide"),m(b,k),d.element.dequeue("tabs")})}:function(a,b,c){d.lis.removeClass("ui-tabs-selected ui-state-active"),b.addClass("ui-tabs-hide"),d.element.dequeue("tabs")};this.anchors.bind(e.event+".tabs",function(){var b=this,c=a(b).closest("li"),f=d.panels.filter(":not(.ui-tabs-hide)"),g=d.element.find(d._sanitizeSelector(b.hash));if(c.hasClass("ui-tabs-selected")&&!e.collapsible||c.hasClass("ui-state-disabled")||c.hasClass("ui-state-processing")||d.panels.filter(":animated").length||d._trigger("select",null,d._ui(this,g[0]))===!1)return this.blur(),!1;e.selected=d.anchors.index(this),d.abort();if(e.collapsible){if(c.hasClass("ui-tabs-selected"))return e.selected=-1,e.cookie&&d._cookie(e.selected,e.cookie),d.element.queue("tabs",function(){o(b,f)}).dequeue("tabs"),this.blur(),!1;if(!f.length)return e.cookie&&d._cookie(e.selected,e.cookie),d.element.queue("tabs",function(){n(b,g)}),d.load(d.anchors.index(this)),this.blur(),!1}e.cookie&&d._cookie(e.selected,e.cookie);if(g.length)f.length&&d.element.queue("tabs",function(){o(b,f)}),d.element.queue("tabs",function(){n(b,g)}),d.load(d.anchors.index(this));else throw"jQuery UI Tabs: Mismatching fragment identifier.";a.browser.msie&&this.blur()}),this.anchors.bind("click.tabs",function(){return!1})},_getIndex:function(a){return typeof a=="string"&&(a=this.anchors.index(this.anchors.filter("[href$='"+a+"']"))),a},destroy:function(){var b=this.options;return this.abort(),this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs"),this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"),this.anchors.each(function(){var b=a.data(this,"href.tabs");b&&(this.href=b);var c=a(this).unbind(".tabs");a.each(["href","load","cache"],function(a,b){c.removeData(b+".tabs")})}),this.lis.unbind(".tabs").add(this.panels).each(function(){a.data(this,"destroy.tabs")?a(this).remove():a(this).removeClass(["ui-state-default","ui-corner-top","ui-tabs-selected","ui-state-active","ui-state-hover","ui-state-focus","ui-state-disabled","ui-tabs-panel","ui-widget-content","ui-corner-bottom","ui-tabs-hide"].join(" "))}),b.cookie&&this._cookie(null,b.cookie),this},add:function(c,d,e){e===b&&(e=this.anchors.length);var f=this,g=this.options,h=a(g.tabTemplate.replace(/#\{href\}/g,c).replace(/#\{label\}/g,d)),i=c.indexOf("#")?this._tabId(a("a",h)[0]):c.replace("#","");h.addClass("ui-state-default ui-corner-top").data("destroy.tabs",!0);var j=f.element.find("#"+i);return j.length||(j=a(g.panelTemplate).attr("id",i).data("destroy.tabs",!0)),j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"),e>=this.lis.length?(h.appendTo(this.list),j.appendTo(this.list[0].parentNode)):(h.insertBefore(this.lis[e]),j.insertBefore(this.panels[e])),g.disabled=a.map(g.disabled,function(a,b){return a>=e?++a:a}),this._tabify(),this.anchors.length==1&&(g.selected=0,h.addClass("ui-tabs-selected ui-state-active"),j.removeClass("ui-tabs-hide"),this.element.queue("tabs",function(){f._trigger("show",null,f._ui(f.anchors[0],f.panels[0]))}),this.load(0)),this._trigger("add",null,this._ui(this.anchors[e],this.panels[e])),this},remove:function(b){b=this._getIndex(b);var c=this.options,d=this.lis.eq(b).remove(),e=this.panels.eq(b).remove();return d.hasClass("ui-tabs-selected")&&this.anchors.length>1&&this.select(b+(b+1=b?--a:a}),this._tabify(),this._trigger("remove",null,this._ui(d.find("a")[0],e[0])),this},enable:function(b){b=this._getIndex(b);var c=this.options;if(a.inArray(b,c.disabled)==-1)return;return this.lis.eq(b).removeClass("ui-state-disabled"),c.disabled=a.grep(c.disabled,function(a,c){return a!=b}),this._trigger("enable",null,this._ui(this.anchors[b],this.panels[b])),this},disable:function(a){a=this._getIndex(a);var b=this,c=this.options;return a!=c.selected&&(this.lis.eq(a).addClass("ui-state-disabled"),c.disabled.push(a),c.disabled.sort(),this._trigger("disable",null,this._ui(this.anchors[a],this.panels[a]))),this},select:function(a){a=this._getIndex(a);if(a==-1)if(this.options.collapsible&&this.options.selected!=-1)a=this.options.selected;else return this;return this.anchors.eq(a).trigger(this.options.event+".tabs"),this},load:function(b){b=this._getIndex(b);var c=this,d=this.options,e=this.anchors.eq(b)[0],f=a.data(e,"load.tabs");this.abort();if(!f||this.element.queue("tabs").length!==0&&a.data(e,"cache.tabs")){this.element.dequeue("tabs");return}this.lis.eq(b).addClass("ui-state-processing");if(d.spinner){var g=a("span",e);g.data("label.tabs",g.html()).html(d.spinner)}return this.xhr=a.ajax(a.extend({},d.ajaxOptions,{url:f,success:function(f,g){c.element.find(c._sanitizeSelector(e.hash)).html(f),c._cleanup(),d.cache&&a.data(e,"cache.tabs",!0),c._trigger("load",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.success(f,g)}catch(h){}},error:function(a,f,g){c._cleanup(),c._trigger("load",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.error(a,f,b,e)}catch(g){}}})),c.element.dequeue("tabs"),this},abort:function(){return this.element.queue([]),this.panels.stop(!1,!0),this.element.queue("tabs",this.element.queue("tabs").splice(-2,2)),this.xhr&&(this.xhr.abort(),delete this.xhr),this._cleanup(),this},url:function(a,b){return this.anchors.eq(a).removeData("cache.tabs").data("load.tabs",b),this},length:function(){return this.anchors.length}}),a.extend(a.ui.tabs,{version:"1.8.23"}),a.extend(a.ui.tabs.prototype,{rotation:null,rotate:function(a,b){var c=this,d=this.options,e=c._rotate||(c._rotate=function(b){clearTimeout(c.rotation),c.rotation=setTimeout(function(){var a=d.selected;c.select(++a'))}function bindHover(a){var b="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return a.bind("mouseout",function(a){var c=$(a.target).closest(b);if(!c.length)return;c.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover")}).bind("mouseover",function(c){var d=$(c.target).closest(b);if($.datepicker._isDisabledDatepicker(instActive.inline?a.parent()[0]:instActive.input[0])||!d.length)return;d.parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),d.addClass("ui-state-hover"),d.hasClass("ui-datepicker-prev")&&d.addClass("ui-datepicker-prev-hover"),d.hasClass("ui-datepicker-next")&&d.addClass("ui-datepicker-next-hover")})}function extendRemove(a,b){$.extend(a,b);for(var c in b)if(b[c]==null||b[c]==undefined)a[c]=b[c];return a}function isArray(a){return a&&($.browser.safari&&typeof a=="object"&&a.length||a.constructor&&a.constructor.toString().match(/\Array\(\)/))}$.extend($.ui,{datepicker:{version:"1.8.23"}});var PROP_NAME="datepicker",dpuuid=(new Date).getTime(),instActive;$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){return extendRemove(this._defaults,a||{}),this},_attachDatepicker:function(target,settings){var inlineSettings=null;for(var attrName in this._defaults){var attrValue=target.getAttribute("date:"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase(),inline=nodeName=="div"||nodeName=="span";target.id||(this.uuid+=1,target.id="dp"+this.uuid);var inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{},inlineSettings||{}),nodeName=="input"?this._connectDatepicker(target,inst):inline&&this._inlineDatepicker(target,inst)},_newInst:function(a,b){var c=a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1");return{id:c,input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:b?bindHover($('
      ')):this.dpDiv}},_connectDatepicker:function(a,b){var c=$(a);b.append=$([]),b.trigger=$([]);if(c.hasClass(this.markerClassName))return;this._attachments(c,b),c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(a,c,d){b.settings[c]=d}).bind("getData.datepicker",function(a,c){return this._get(b,c)}),this._autoSize(b),$.data(a,PROP_NAME,b),b.settings.disabled&&this._disableDatepicker(a)},_attachments:function(a,b){var c=this._get(b,"appendText"),d=this._get(b,"isRTL");b.append&&b.append.remove(),c&&(b.append=$(''+c+""),a[d?"before":"after"](b.append)),a.unbind("focus",this._showDatepicker),b.trigger&&b.trigger.remove();var e=this._get(b,"showOn");(e=="focus"||e=="both")&&a.focus(this._showDatepicker);if(e=="button"||e=="both"){var f=this._get(b,"buttonText"),g=this._get(b,"buttonImage");b.trigger=$(this._get(b,"buttonImageOnly")?$("").addClass(this._triggerClass).attr({src:g,alt:f,title:f}):$('').addClass(this._triggerClass).html(g==""?f:$("").attr({src:g,alt:f,title:f}))),a[d?"before":"after"](b.trigger),b.trigger.click(function(){return $.datepicker._datepickerShowing&&$.datepicker._lastInput==a[0]?$.datepicker._hideDatepicker():$.datepicker._datepickerShowing&&$.datepicker._lastInput!=a[0]?($.datepicker._hideDatepicker(),$.datepicker._showDatepicker(a[0])):$.datepicker._showDatepicker(a[0]),!1})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var d=function(a){var b=0,c=0;for(var d=0;db&&(b=a[d].length,c=d);return c};b.setMonth(d(this._get(a,c.match(/MM/)?"monthNames":"monthNamesShort"))),b.setDate(d(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=$(a);if(c.hasClass(this.markerClassName))return;c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(a,c,d){b.settings[c]=d}).bind("getData.datepicker",function(a,c){return this._get(b,c)}),$.data(a,PROP_NAME,b),this._setDate(b,this._getDefaultDate(b),!0),this._updateDatepicker(b),this._updateAlternate(b),b.settings.disabled&&this._disableDatepicker(a),b.dpDiv.css("display","block")},_dialogDatepicker:function(a,b,c,d,e){var f=this._dialogInst;if(!f){this.uuid+=1;var g="dp"+this.uuid;this._dialogInput=$(''),this._dialogInput.keydown(this._doKeyDown),$("body").append(this._dialogInput),f=this._dialogInst=this._newInst(this._dialogInput,!1),f.settings={},$.data(this._dialogInput[0],PROP_NAME,f)}extendRemove(f.settings,d||{}),b=b&&b.constructor==Date?this._formatDate(f,b):b,this._dialogInput.val(b),this._pos=e?e.length?e:[e.pageX,e.pageY]:null;if(!this._pos){var h=document.documentElement.clientWidth,i=document.documentElement.clientHeight,j=document.documentElement.scrollLeft||document.body.scrollLeft,k=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[h/2-100+j,i/2-150+k]}return this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),f.settings.onSelect=c,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),$.blockUI&&$.blockUI(this.dpDiv),$.data(this._dialogInput[0],PROP_NAME,f),this},_destroyDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!b.hasClass(this.markerClassName))return;var d=a.nodeName.toLowerCase();$.removeData(a,PROP_NAME),d=="input"?(c.append.remove(),c.trigger.remove(),b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):(d=="div"||d=="span")&&b.removeClass(this.markerClassName).empty()},_enableDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!b.hasClass(this.markerClassName))return;var d=a.nodeName.toLowerCase();if(d=="input")a.disabled=!1,c.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""});else if(d=="div"||d=="span"){var e=b.children("."+this._inlineClass);e.children().removeClass("ui-state-disabled"),e.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b})},_disableDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!b.hasClass(this.markerClassName))return;var d=a.nodeName.toLowerCase();if(d=="input")a.disabled=!0,c.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"});else if(d=="div"||d=="span"){var e=b.children("."+this._inlineClass);e.children().addClass("ui-state-disabled"),e.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled","disabled")}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b}),this._disabledInputs[this._disabledInputs.length]=a},_isDisabledDatepicker:function(a){if(!a)return!1;for(var b=0;b-1}},_doKeyUp:function(a){var b=$.datepicker._getInst(a.target);if(b.input.val()!=b.lastVal)try{var c=$.datepicker.parseDate($.datepicker._get(b,"dateFormat"),b.input?b.input.val():null,$.datepicker._getFormatConfig(b));c&&($.datepicker._setDateFromField(b),$.datepicker._updateAlternate(b),$.datepicker._updateDatepicker(b))}catch(d){$.datepicker.log(d)}return!0},_showDatepicker:function(a){a=a.target||a,a.nodeName.toLowerCase()!="input"&&(a=$("input",a.parentNode)[0]);if($.datepicker._isDisabledDatepicker(a)||$.datepicker._lastInput==a)return;var b=$.datepicker._getInst(a);$.datepicker._curInst&&$.datepicker._curInst!=b&&($.datepicker._curInst.dpDiv.stop(!0,!0),b&&$.datepicker._datepickerShowing&&$.datepicker._hideDatepicker($.datepicker._curInst.input[0]));var c=$.datepicker._get(b,"beforeShow"),d=c?c.apply(a,[a,b]):{};if(d===!1)return;extendRemove(b.settings,d),b.lastVal=null,$.datepicker._lastInput=a,$.datepicker._setDateFromField(b),$.datepicker._inDialog&&(a.value=""),$.datepicker._pos||($.datepicker._pos=$.datepicker._findPos(a),$.datepicker._pos[1]+=a.offsetHeight);var e=!1;$(a).parents().each(function(){return e|=$(this).css("position")=="fixed",!e}),e&&$.browser.opera&&($.datepicker._pos[0]-=document.documentElement.scrollLeft,$.datepicker._pos[1]-=document.documentElement.scrollTop);var f={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};$.datepicker._pos=null,b.dpDiv.empty(),b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),$.datepicker._updateDatepicker(b),f=$.datepicker._checkOffset(b,f,e),b.dpDiv.css({position:$.datepicker._inDialog&&$.blockUI?"static":e?"fixed":"absolute",display:"none",left:f.left+"px",top:f.top+"px"});if(!b.inline){var g=$.datepicker._get(b,"showAnim"),h=$.datepicker._get(b,"duration"),i=function(){var a=b.dpDiv.find("iframe.ui-datepicker-cover");if(!!a.length){var c=$.datepicker._getBorders(b.dpDiv);a.css({left:-c[0],top:-c[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex($(a).zIndex()+1),$.datepicker._datepickerShowing=!0,$.effects&&$.effects[g]?b.dpDiv.show(g,$.datepicker._get(b,"showOptions"),h,i):b.dpDiv[g||"show"](g?h:null,i),(!g||!h)&&i(),b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus(),$.datepicker._curInst=b}},_updateDatepicker:function(a){var b=this;b.maxRows=4;var c=$.datepicker._getBorders(a.dpDiv);instActive=a,a.dpDiv.empty().append(this._generateHTML(a)),this._attachHandlers(a);var d=a.dpDiv.find("iframe.ui-datepicker-cover");!d.length||d.css({left:-c[0],top:-c[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()}),a.dpDiv.find("."+this._dayOverClass+" a").mouseover();var e=this._getNumberOfMonths(a),f=e[1],g=17;a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),f>1&&a.dpDiv.addClass("ui-datepicker-multi-"+f).css("width",g*f+"em"),a.dpDiv[(e[0]!=1||e[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi"),a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),a==$.datepicker._curInst&&$.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var h=a.yearshtml;setTimeout(function(){h===a.yearshtml&&a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml),h=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(a){return{thin:1,medium:2,thick:3}[a]||a};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var d=a.dpDiv.outerWidth(),e=a.dpDiv.outerHeight(),f=a.input?a.input.outerWidth():0,g=a.input?a.input.outerHeight():0,h=document.documentElement.clientWidth+(c?0:$(document).scrollLeft()),i=document.documentElement.clientHeight+(c?0:$(document).scrollTop());return b.left-=this._get(a,"isRTL")?d-f:0,b.left-=c&&b.left==a.input.offset().left?$(document).scrollLeft():0,b.top-=c&&b.top==a.input.offset().top+g?$(document).scrollTop():0,b.left-=Math.min(b.left,b.left+d>h&&h>d?Math.abs(b.left+d-h):0),b.top-=Math.min(b.top,b.top+e>i&&i>e?Math.abs(e+g):0),b},_findPos:function(a){var b=this._getInst(a),c=this._get(b,"isRTL");while(a&&(a.type=="hidden"||a.nodeType!=1||$.expr.filters.hidden(a)))a=a[c?"previousSibling":"nextSibling"];var d=$(a).offset();return[d.left,d.top]},_hideDatepicker:function(a){var b=this._curInst;if(!b||a&&b!=$.data(a,PROP_NAME))return;if(this._datepickerShowing){var c=this._get(b,"showAnim"),d=this._get(b,"duration"),e=function(){$.datepicker._tidyDialog(b)};$.effects&&$.effects[c]?b.dpDiv.hide(c,$.datepicker._get(b,"showOptions"),d,e):b.dpDiv[c=="slideDown"?"slideUp":c=="fadeIn"?"fadeOut":"hide"](c?d:null,e),c||e(),this._datepickerShowing=!1;var f=this._get(b,"onClose");f&&f.apply(b.input?b.input[0]:null,[b.input?b.input.val():"",b]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),$.blockUI&&($.unblockUI(),$("body").append(this.dpDiv))),this._inDialog=!1}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if(!$.datepicker._curInst)return;var b=$(a.target),c=$.datepicker._getInst(b[0]);(b[0].id!=$.datepicker._mainDivId&&b.parents("#"+$.datepicker._mainDivId).length==0&&!b.hasClass($.datepicker.markerClassName)&&!b.closest("."+$.datepicker._triggerClass).length&&$.datepicker._datepickerShowing&&(!$.datepicker._inDialog||!$.blockUI)||b.hasClass($.datepicker.markerClassName)&&$.datepicker._curInst!=c)&&$.datepicker._hideDatepicker()},_adjustDate:function(a,b,c){var d=$(a),e=this._getInst(d[0]);if(this._isDisabledDatepicker(d[0]))return;this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):0),c),this._updateDatepicker(e)},_gotoToday:function(a){var b=$(a),c=this._getInst(b[0]);if(this._get(c,"gotoCurrent")&&c.currentDay)c.selectedDay=c.currentDay,c.drawMonth=c.selectedMonth=c.currentMonth,c.drawYear=c.selectedYear=c.currentYear;else{var d=new Date;c.selectedDay=d.getDate(),c.drawMonth=c.selectedMonth=d.getMonth(),c.drawYear=c.selectedYear=d.getFullYear()}this._notifyChange(c),this._adjustDate(b)},_selectMonthYear:function(a,b,c){var d=$(a),e=this._getInst(d[0]);e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10),this._notifyChange(e),this._adjustDate(d)},_selectDay:function(a,b,c,d){var e=$(a);if($(d).hasClass(this._unselectableClass)||this._isDisabledDatepicker(e[0]))return;var f=this._getInst(e[0]);f.selectedDay=f.currentDay=$("a",d).html(),f.selectedMonth=f.currentMonth=b,f.selectedYear=f.currentYear=c,this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))},_clearDate:function(a){var b=$(a),c=this._getInst(b[0]);this._selectDate(b,"")},_selectDate:function(a,b){var c=$(a),d=this._getInst(c[0]);b=b!=null?b:this._formatDate(d),d.input&&d.input.val(b),this._updateAlternate(d);var e=this._get(d,"onSelect");e?e.apply(d.input?d.input[0]:null,[b,d]):d.input&&d.input.trigger("change"),d.inline?this._updateDatepicker(d):(this._hideDatepicker(),this._lastInput=d.input[0],typeof d.input[0]!="object"&&d.input.focus(),this._lastInput=null)},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),d=this._getDate(a),e=this.formatDate(c,d,this._getFormatConfig(a));$(b).each(function(){$(this).val(e)})}},noWeekends:function(a){var b=a.getDay();return[b>0&&b<6,""]},iso8601Week:function(a){var b=new Date(a.getTime());b.setDate(b.getDate()+4-(b.getDay()||7));var c=b.getTime();return b.setMonth(0),b.setDate(1),Math.floor(Math.round((c-b)/864e5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?b.toString():b+"";if(b=="")return null;var d=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;d=typeof d!="string"?d:(new Date).getFullYear()%100+parseInt(d,10);var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,g=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,h=(c?c.monthNames:null)||this._defaults.monthNames,i=-1,j=-1,k=-1,l=-1,m=!1,n=function(b){var c=s+1-1){j=1,k=l;do{var u=this._getDaysInMonth(i,j-1);if(k<=u)break;j++,k-=u}while(!0)}var t=this._daylightSavingAdjust(new Date(i,j-1,k));if(t.getFullYear()!=i||t.getMonth()+1!=j||t.getDate()!=k)throw"Invalid date";return t},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1e7,formatDate:function(a,b,c){if(!b)return"";var d=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,e=(c?c.dayNames:null)||this._defaults.dayNames,f=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,h=function(b){var c=m+112?a.getHours()+2:0),a):null},_setDate:function(a,b,c){var d=!b,e=a.selectedMonth,f=a.selectedYear,g=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=g.getDate(),a.drawMonth=a.selectedMonth=a.currentMonth=g.getMonth(),a.drawYear=a.selectedYear=a.currentYear=g.getFullYear(),(e!=a.selectedMonth||f!=a.selectedYear)&&!c&&this._notifyChange(a),this._adjustInstDate(a),a.input&&a.input.val(d?"":this._formatDate(a))},_getDate:function(a){var b=!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return b},_attachHandlers:function(a){var b=this._get(a,"stepMonths"),c="#"+a.id.replace(/\\\\/g,"\\");a.dpDiv.find("[data-handler]").map(function(){var a={prev:function(){window["DP_jQuery_"+dpuuid].datepicker._adjustDate(c,-b,"M")},next:function(){window["DP_jQuery_"+dpuuid].datepicker._adjustDate(c,+b,"M")},hide:function(){window["DP_jQuery_"+dpuuid].datepicker._hideDatepicker()},today:function(){window["DP_jQuery_"+dpuuid].datepicker._gotoToday(c)},selectDay:function(){return window["DP_jQuery_"+dpuuid].datepicker._selectDay(c,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return window["DP_jQuery_"+dpuuid].datepicker._selectMonthYear(c,this,"M"),!1},selectYear:function(){return window["DP_jQuery_"+dpuuid].datepicker._selectMonthYear(c,this,"Y"),!1}};$(this).bind(this.getAttribute("data-event"),a[this.getAttribute("data-handler")])})},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),d=this._get(a,"showButtonPanel"),e=this._get(a,"hideIfNoPrevNext"),f=this._get(a,"navigationAsDateFormat"),g=this._getNumberOfMonths(a),h=this._get(a,"showCurrentAtPos"),i=this._get(a,"stepMonths"),j=g[0]!=1||g[1]!=1,k=this._daylightSavingAdjust(a.currentDay?new Date(a.currentYear,a.currentMonth,a.currentDay):new Date(9999,9,9)),l=this._getMinMaxDate(a,"min"),m=this._getMinMaxDate(a,"max"),n=a.drawMonth-h,o=a.drawYear;n<0&&(n+=12,o--);if(m){var p=this._daylightSavingAdjust(new Date(m.getFullYear(),m.getMonth()-g[0]*g[1]+1,m.getDate()));p=l&&pp)n--,n<0&&(n=11,o--)}a.drawMonth=n,a.drawYear=o;var q=this._get(a,"prevText");q=f?this.formatDate(q,this._daylightSavingAdjust(new Date(o,n-i,1)),this._getFormatConfig(a)):q;var r=this._canAdjustMonth(a,-1,o,n)?''+q+"":e?"":''+q+"",s=this._get(a,"nextText");s=f?this.formatDate(s,this._daylightSavingAdjust(new Date(o,n+i,1)),this._getFormatConfig(a)):s;var t=this._canAdjustMonth(a,1,o,n)?''+s+"":e?"":''+s+"",u=this._get(a,"currentText"),v=this._get(a,"gotoCurrent")&&a.currentDay?k:b;u=f?this.formatDate(u,v,this._getFormatConfig(a)):u;var w=a.inline?"":'",x=d?'
      '+(c?w:"")+(this._isInRange(a,v)?'":"")+(c?"":w)+"
      ":"",y=parseInt(this._get(a,"firstDay"),10);y=isNaN(y)?0:y;var z=this._get(a,"showWeek"),A=this._get(a,"dayNames"),B=this._get(a,"dayNamesShort"),C=this._get(a,"dayNamesMin"),D=this._get(a,"monthNames"),E=this._get(a,"monthNamesShort"),F=this._get(a,"beforeShowDay"),G=this._get(a,"showOtherMonths"),H=this._get(a,"selectOtherMonths"),I=this._get(a,"calculateWeek")||this.iso8601Week,J=this._getDefaultDate(a),K="";for(var L=0;L1)switch(N){case 0:Q+=" ui-datepicker-group-first",P=" ui-corner-"+(c?"right":"left");break;case g[1]-1:Q+=" ui-datepicker-group-last",P=" ui-corner-"+(c?"left":"right");break;default:Q+=" ui-datepicker-group-middle",P=""}Q+='">'}Q+='
      '+(/all|left/.test(P)&&L==0?c?t:r:"")+(/all|right/.test(P)&&L==0?c?r:t:"")+this._generateMonthYearHeader(a,n,o,l,m,L>0||N>0,D,E)+'
      '+"";var R=z?'":"";for(var S=0;S<7;S++){var T=(S+y)%7;R+="=5?' class="ui-datepicker-week-end"':"")+">"+''+C[T]+""}Q+=R+"";var U=this._getDaysInMonth(o,n);o==a.selectedYear&&n==a.selectedMonth&&(a.selectedDay=Math.min(a.selectedDay,U));var V=(this._getFirstDayOfMonth(o,n)-y+7)%7,W=Math.ceil((V+U)/7),X=j?this.maxRows>W?this.maxRows:W:W;this.maxRows=X;var Y=this._daylightSavingAdjust(new Date(o,n,1-V));for(var Z=0;Z";var _=z?'":"";for(var S=0;S<7;S++){var ba=F?F.apply(a.input?a.input[0]:null,[Y]):[!0,""],bb=Y.getMonth()!=n,bc=bb&&!H||!ba[0]||l&&Ym;_+='",Y.setDate(Y.getDate()+1),Y=this._daylightSavingAdjust(Y)}Q+=_+""}n++,n>11&&(n=0,o++),Q+="
      '+this._get(a,"weekHeader")+"
      '+this._get(a,"calculateWeek")(Y)+""+(bb&&!G?" ":bc?''+Y.getDate()+"":''+Y.getDate()+"")+"
      "+(j?"
      "+(g[0]>0&&N==g[1]-1?'
      ':""):""),M+=Q}K+=M}return K+=x+($.browser.msie&&parseInt($.browser.version,10)<7&&!a.inline?'':""),a._keyEvent=!1,K},_generateMonthYearHeader:function(a,b,c,d,e,f,g,h){var i=this._get(a,"changeMonth"),j=this._get(a,"changeYear"),k=this._get(a,"showMonthAfterYear"),l='
      ',m="";if(f||!i)m+=''+g[b]+"";else{var n=d&&d.getFullYear()==c,o=e&&e.getFullYear()==c;m+='"}k||(l+=m+(f||!i||!j?" ":""));if(!a.yearshtml){a.yearshtml="";if(f||!j)l+=''+c+"";else{var q=this._get(a,"yearRange").split(":"),r=(new Date).getFullYear(),s=function(a){var b=a.match(/c[+-].*/)?c+parseInt(a.substring(1),10):a.match(/[+-].*/)?r+parseInt(a,10):parseInt(a,10);return isNaN(b)?r:b},t=s(q[0]),u=Math.max(t,s(q[1]||""));t=d?Math.max(t,d.getFullYear()):t,u=e?Math.min(u,e.getFullYear()):u,a.yearshtml+='",l+=a.yearshtml,a.yearshtml=null}}return l+=this._get(a,"yearSuffix"),k&&(l+=(f||!i||!j?" ":"")+m),l+="
      ",l},_adjustInstDate:function(a,b,c){var d=a.drawYear+(c=="Y"?b:0),e=a.drawMonth+(c=="M"?b:0),f=Math.min(a.selectedDay,this._getDaysInMonth(d,e))+(c=="D"?b:0),g=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(d,e,f)));a.selectedDay=g.getDate(),a.drawMonth=a.selectedMonth=g.getMonth(),a.drawYear=a.selectedYear=g.getFullYear(),(c=="M"||c=="Y")&&this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max"),e=c&&bd?d:e,e},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear");b&&b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){var b=this._get(a,"numberOfMonths");return b==null?[1,1]:typeof b=="number"?[1,b]:b},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,d){var e=this._getNumberOfMonths(a),f=this._daylightSavingAdjust(new Date(c,d+(b<0?b:e[0]*e[1]),1));return b<0&&f.setDate(this._getDaysInMonth(f.getFullYear(),f.getMonth())),this._isInRange(a,f)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!d||b.getTime()<=d.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");return b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10),{shortYearCutoff:b,dayNamesShort:this._get(a,"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,d){b||(a.currentDay=a.selectedDay,a.currentMonth=a.selectedMonth,a.currentYear=a.selectedYear);var e=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(d,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),e,this._getFormatConfig(a))}}),$.fn.datepicker=function(a){if(!this.length)return this;$.datepicker.initialized||($(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv),$.datepicker.initialized=!0);var b=Array.prototype.slice.call(arguments,1);return typeof a!="string"||a!="isDisabled"&&a!="getDate"&&a!="widget"?a=="option"&&arguments.length==2&&typeof arguments[1]=="string"?$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this[0]].concat(b)):this.each(function(){typeof a=="string"?$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this].concat(b)):$.datepicker._attachDatepicker(this,a)}):$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this[0]].concat(b))},$.datepicker=new Datepicker,$.datepicker.initialized=!1,$.datepicker.uuid=(new Date).getTime(),$.datepicker.version="1.8.23",window["DP_jQuery_"+dpuuid]=$})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.ui.progressbar.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){a.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()}),this.valueDiv=a("
      ").appendTo(this.element),this.oldValue=this._value(),this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove(),a.Widget.prototype.destroy.apply(this,arguments)},value:function(a){return a===b?this._value():(this._setOption("value",a),this)},_setOption:function(b,c){b==="value"&&(this.options.value=c,this._refreshValue(),this._value()===this.options.max&&this._trigger("complete")),a.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;return typeof a!="number"&&(a=0),Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100*this._value()/this.options.max},_refreshValue:function(){var a=this.value(),b=this._percentage();this.oldValue!==a&&(this.oldValue=a,this._trigger("change")),this.valueDiv.toggle(a>this.min).toggleClass("ui-corner-right",a===this.options.max).width(b.toFixed(0)+"%"),this.element.attr("aria-valuenow",a)}}),a.extend(a.ui.progressbar,{version:"1.8.23"})})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.effects.core.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -jQuery.effects||function(a,b){function c(b){var c;return b&&b.constructor==Array&&b.length==3?b:(c=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(b))?[parseInt(c[1],10),parseInt(c[2],10),parseInt(c[3],10)]:(c=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(b))?[parseFloat(c[1])*2.55,parseFloat(c[2])*2.55,parseFloat(c[3])*2.55]:(c=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(b))?[parseInt(c[1],16),parseInt(c[2],16),parseInt(c[3],16)]:(c=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(b))?[parseInt(c[1]+c[1],16),parseInt(c[2]+c[2],16),parseInt(c[3]+c[3],16)]:(c=/rgba\(0, 0, 0, 0\)/.exec(b))?e.transparent:e[a.trim(b).toLowerCase()]}function d(b,d){var e;do{e=(a.curCSS||a.css)(b,d);if(e!=""&&e!="transparent"||a.nodeName(b,"body"))break;d="backgroundColor"}while(b=b.parentNode);return c(e)}function h(){var a=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle,b={},c,d;if(a&&a.length&&a[0]&&a[a[0]]){var e=a.length;while(e--)c=a[e],typeof a[c]=="string"&&(d=c.replace(/\-(\w)/g,function(a,b){return b.toUpperCase()}),b[d]=a[c])}else for(c in a)typeof a[c]=="string"&&(b[c]=a[c]);return b}function i(b){var c,d;for(c in b)d=b[c],(d==null||a.isFunction(d)||c in g||/scrollbar/.test(c)||!/color/i.test(c)&&isNaN(parseFloat(d)))&&delete b[c];return b}function j(a,b){var c={_:0},d;for(d in b)a[d]!=b[d]&&(c[d]=b[d]);return c}function k(b,c,d,e){typeof b=="object"&&(e=c,d=null,c=b,b=c.effect),a.isFunction(c)&&(e=c,d=null,c={});if(typeof c=="number"||a.fx.speeds[c])e=d,d=c,c={};return a.isFunction(d)&&(e=d,d=null),c=c||{},d=d||c.duration,d=a.fx.off?0:typeof d=="number"?d:d in a.fx.speeds?a.fx.speeds[d]:a.fx.speeds._default,e=e||c.complete,[b,c,d,e]}function l(b){return!b||typeof b=="number"||a.fx.speeds[b]?!0:typeof b=="string"&&!a.effects[b]?!0:!1}a.effects={},a.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","borderColor","color","outlineColor"],function(b,e){a.fx.step[e]=function(a){a.colorInit||(a.start=d(a.elem,e),a.end=c(a.end),a.colorInit=!0),a.elem.style[e]="rgb("+Math.max(Math.min(parseInt(a.pos*(a.end[0]-a.start[0])+a.start[0],10),255),0)+","+Math.max(Math.min(parseInt(a.pos*(a.end[1]-a.start[1])+a.start[1],10),255),0)+","+Math.max(Math.min(parseInt(a.pos*(a.end[2]-a.start[2])+a.start[2],10),255),0)+")"}});var e={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},f=["add","remove","toggle"],g={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};a.effects.animateClass=function(b,c,d,e){return a.isFunction(d)&&(e=d,d=null),this.queue(function(){var g=a(this),k=g.attr("style")||" ",l=i(h.call(this)),m,n=g.attr("class")||"";a.each(f,function(a,c){b[c]&&g[c+"Class"](b[c])}),m=i(h.call(this)),g.attr("class",n),g.animate(j(l,m),{queue:!1,duration:c,easing:d,complete:function(){a.each(f,function(a,c){b[c]&&g[c+"Class"](b[c])}),typeof g.attr("style")=="object"?(g.attr("style").cssText="",g.attr("style").cssText=k):g.attr("style",k),e&&e.apply(this,arguments),a.dequeue(this)}})})},a.fn.extend({_addClass:a.fn.addClass,addClass:function(b,c,d,e){return c?a.effects.animateClass.apply(this,[{add:b},c,d,e]):this._addClass(b)},_removeClass:a.fn.removeClass,removeClass:function(b,c,d,e){return c?a.effects.animateClass.apply(this,[{remove:b},c,d,e]):this._removeClass(b)},_toggleClass:a.fn.toggleClass,toggleClass:function(c,d,e,f,g){return typeof d=="boolean"||d===b?e?a.effects.animateClass.apply(this,[d?{add:c}:{remove:c},e,f,g]):this._toggleClass(c,d):a.effects.animateClass.apply(this,[{toggle:c},d,e,f])},switchClass:function(b,c,d,e,f){return a.effects.animateClass.apply(this,[{add:c,remove:b},d,e,f])}}),a.extend(a.effects,{version:"1.8.23",save:function(a,b){for(var c=0;c
      ").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),e=document.activeElement;try{e.id}catch(f){e=document.body}return b.wrap(d),(b[0]===e||a.contains(b[0],e))&&a(e).focus(),d=b.parent(),b.css("position")=="static"?(d.css({position:"relative"}),b.css({position:"relative"})):(a.extend(c,{position:b.css("position"),zIndex:b.css("z-index")}),a.each(["top","left","bottom","right"],function(a,d){c[d]=b.css(d),isNaN(parseInt(c[d],10))&&(c[d]="auto")}),b.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),d.css(c).show()},removeWrapper:function(b){var c,d=document.activeElement;return b.parent().is(".ui-effects-wrapper")?(c=b.parent().replaceWith(b),(b[0]===d||a.contains(b[0],d))&&a(d).focus(),c):b},setTransition:function(b,c,d,e){return e=e||{},a.each(c,function(a,c){var f=b.cssUnit(c);f[0]>0&&(e[c]=f[0]*d+f[1])}),e}}),a.fn.extend({effect:function(b,c,d,e){var f=k.apply(this,arguments),g={options:f[1],duration:f[2],callback:f[3]},h=g.options.mode,i=a.effects[b];return a.fx.off||!i?h?this[h](g.duration,g.callback):this.each(function(){g.callback&&g.callback.call(this)}):i.call(this,g)},_show:a.fn.show,show:function(a){if(l(a))return this._show.apply(this,arguments);var b=k.apply(this,arguments);return b[1].mode="show",this.effect.apply(this,b)},_hide:a.fn.hide,hide:function(a){if(l(a))return this._hide.apply(this,arguments);var b=k.apply(this,arguments);return b[1].mode="hide",this.effect.apply(this,b)},__toggle:a.fn.toggle,toggle:function(b){if(l(b)||typeof b=="boolean"||a.isFunction(b))return this.__toggle.apply(this,arguments);var c=k.apply(this,arguments);return c[1].mode="toggle",this.effect.apply(this,c)},cssUnit:function(b){var c=this.css(b),d=[];return a.each(["em","px","%","pt"],function(a,b){c.indexOf(b)>0&&(d=[parseFloat(c),b])}),d}});var m={};a.each(["Quad","Cubic","Quart","Quint","Expo"],function(a,b){m[b]=function(b){return Math.pow(b,a+2)}}),a.extend(m,{Sine:function(a){return 1-Math.cos(a*Math.PI/2)},Circ:function(a){return 1-Math.sqrt(1-a*a)},Elastic:function(a){return a===0||a===1?a:-Math.pow(2,8*(a-1))*Math.sin(((a-1)*80-7.5)*Math.PI/15)},Back:function(a){return a*a*(3*a-2)},Bounce:function(a){var b,c=4;while(a<((b=Math.pow(2,--c))-1)/11);return 1/Math.pow(4,3-c)-7.5625*Math.pow((b*3-2)/22-a,2)}}),a.each(m,function(b,c){a.easing["easeIn"+b]=c,a.easing["easeOut"+b]=function(a){return 1-c(1-a)},a.easing["easeInOut"+b]=function(a){return a<.5?c(a*2)/2:c(a*-2+2)/-2+1}})}(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.effects.blind.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){a.effects.blind=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right"],e=a.effects.setMode(c,b.options.mode||"hide"),f=b.options.direction||"vertical";a.effects.save(c,d),c.show();var g=a.effects.createWrapper(c).css({overflow:"hidden"}),h=f=="vertical"?"height":"width",i=f=="vertical"?g.height():g.width();e=="show"&&g.css(h,0);var j={};j[h]=e=="show"?i:0,g.animate(j,b.duration,b.options.easing,function(){e=="hide"&&c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(c[0],arguments),c.dequeue()})})}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.effects.bounce.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){a.effects.bounce=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right"],e=a.effects.setMode(c,b.options.mode||"effect"),f=b.options.direction||"up",g=b.options.distance||20,h=b.options.times||5,i=b.duration||250;/show|hide/.test(e)&&d.push("opacity"),a.effects.save(c,d),c.show(),a.effects.createWrapper(c);var j=f=="up"||f=="down"?"top":"left",k=f=="up"||f=="left"?"pos":"neg",g=b.options.distance||(j=="top"?c.outerHeight(!0)/3:c.outerWidth(!0)/3);e=="show"&&c.css("opacity",0).css(j,k=="pos"?-g:g),e=="hide"&&(g=g/(h*2)),e!="hide"&&h--;if(e=="show"){var l={opacity:1};l[j]=(k=="pos"?"+=":"-=")+g,c.animate(l,i/2,b.options.easing),g=g/2,h--}for(var m=0;m
      ").css({position:"absolute",visibility:"visible",left:-j*(g/d),top:-i*(h/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:g/d,height:h/c,left:f.left+j*(g/d)+(b.options.mode=="show"?(j-Math.floor(d/2))*(g/d):0),top:f.top+i*(h/c)+(b.options.mode=="show"?(i-Math.floor(c/2))*(h/c):0),opacity:b.options.mode=="show"?0:1}).animate({left:f.left+j*(g/d)+(b.options.mode=="show"?0:(j-Math.floor(d/2))*(g/d)),top:f.top+i*(h/c)+(b.options.mode=="show"?0:(i-Math.floor(c/2))*(h/c)),opacity:b.options.mode=="show"?1:0},b.duration||500);setTimeout(function(){b.options.mode=="show"?e.css({visibility:"visible"}):e.css({visibility:"visible"}).hide(),b.callback&&b.callback.apply(e[0]),e.dequeue(),a("div.ui-effects-explode").remove()},b.duration||500)})}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.effects.fade.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){a.effects.fade=function(b){return this.queue(function(){var c=a(this),d=a.effects.setMode(c,b.options.mode||"hide");c.animate({opacity:d},{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){b.callback&&b.callback.apply(this,arguments),c.dequeue()}})})}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.effects.fold.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){a.effects.fold=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right"],e=a.effects.setMode(c,b.options.mode||"hide"),f=b.options.size||15,g=!!b.options.horizFirst,h=b.duration?b.duration/2:a.fx.speeds._default/2;a.effects.save(c,d),c.show();var i=a.effects.createWrapper(c).css({overflow:"hidden"}),j=e=="show"!=g,k=j?["width","height"]:["height","width"],l=j?[i.width(),i.height()]:[i.height(),i.width()],m=/([0-9]+)%/.exec(f);m&&(f=parseInt(m[1],10)/100*l[e=="hide"?0:1]),e=="show"&&i.css(g?{height:0,width:f}:{height:f,width:0});var n={},p={};n[k[0]]=e=="show"?l[0]:f,p[k[1]]=e=="show"?l[1]:0,i.animate(n,h,b.options.easing).animate(p,h,b.options.easing,function(){e=="hide"&&c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(c[0],arguments),c.dequeue()})})}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.effects.highlight.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){a.effects.highlight=function(b){return this.queue(function(){var c=a(this),d=["backgroundImage","backgroundColor","opacity"],e=a.effects.setMode(c,b.options.mode||"show"),f={backgroundColor:c.css("backgroundColor")};e=="hide"&&(f.opacity=0),a.effects.save(c,d),c.show().css({backgroundImage:"none",backgroundColor:b.options.color||"#ffff99"}).animate(f,{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){e=="hide"&&c.hide(),a.effects.restore(c,d),e=="show"&&!a.support.opacity&&this.style.removeAttribute("filter"),b.callback&&b.callback.apply(this,arguments),c.dequeue()}})})}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.effects.pulsate.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){a.effects.pulsate=function(b){return this.queue(function(){var c=a(this),d=a.effects.setMode(c,b.options.mode||"show"),e=(b.options.times||5)*2-1,f=b.duration?b.duration/2:a.fx.speeds._default/2,g=c.is(":visible"),h=0;g||(c.css("opacity",0).show(),h=1),(d=="hide"&&g||d=="show"&&!g)&&e--;for(var i=0;i').appendTo(document.body).addClass(b.options.className).css({top:g.top,left:g.left,height:c.innerHeight(),width:c.innerWidth(),position:"absolute"}).animate(f,b.duration,b.options.easing,function(){h.remove(),b.callback&&b.callback.apply(c[0],arguments),c.dequeue()})})}})(jQuery);; \ No newline at end of file diff --git a/sources/web/public/js/libs/dust-core-1.0.0.js b/sources/web/public/js/libs/dust-core-1.0.0.js deleted file mode 100644 index c4d5cd0..0000000 --- a/sources/web/public/js/libs/dust-core-1.0.0.js +++ /dev/null @@ -1,727 +0,0 @@ -// -// Dust - Asynchronous Templating v1.0.0 -// http://akdubya.github.com/dustjs -// -// Copyright (c) 2010, Aleksander Williams -// Released under the MIT License. -// - -var dust = {}; - -function getGlobal(){ - return (function(){ - return this.dust; - }).call(null); -} - -(function(dust) { - -dust.cache = {}; - -dust.register = function(name, tmpl) { - if (!name) return; - dust.cache[name] = tmpl; -}; - -dust.render = function(name, context, callback) { - var chunk = new Stub(callback).head; - dust.load(name, chunk, Context.wrap(context)).end(); -}; - -dust.stream = function(name, context) { - var stream = new Stream(); - dust.nextTick(function() { - dust.load(name, stream.head, Context.wrap(context)).end(); - }); - return stream; -}; - -dust.renderSource = function(source, context, callback) { - return dust.compileFn(source)(context, callback); -}; - -dust.compileFn = function(source, name) { - var tmpl = dust.loadSource(dust.compile(source, name)); - return function(context, callback) { - var master = callback ? new Stub(callback) : new Stream(); - dust.nextTick(function() { - tmpl(master.head, Context.wrap(context)).end(); - }); - return master; - } -}; - -dust.load = function(name, chunk, context) { - var tmpl = dust.cache[name]; - if (tmpl) { - return tmpl(chunk, context); - } else { - if (dust.onLoad) { - return chunk.map(function(chunk) { - dust.onLoad(name, function(err, src) { - if (err) return chunk.setError(err); - if (!dust.cache[name]) dust.loadSource(dust.compile(src, name)); - dust.cache[name](chunk, context).end(); - }); - }); - } - return chunk.setError(new Error("Template Not Found: " + name)); - } -}; - -dust.loadSource = function(source, path) { - return eval(source); -}; - -if (Array.isArray) { - dust.isArray = Array.isArray; -} else { - dust.isArray = function(arr) { - return Object.prototype.toString.call(arr) == "[object Array]"; - }; -} - -dust.nextTick = (function() { - if (typeof process !== "undefined") { - return process.nextTick; - } else { - return function(callback) { - setTimeout(callback,0); - } - } -} )(); - -dust.isEmpty = function(value) { - if (dust.isArray(value) && !value.length) return true; - if (value === 0) return false; - return (!value); -}; - -dust.filter = function(string, auto, filters) { - if (filters) { - for (var i=0, len=filters.length; i\"\']/), - AMP = /&/g, - LT = //g, - QUOT = /\"/g, - SQUOT = /\'/g; - -dust.escapeHtml = function(s) { - if (typeof s === "string") { - if (!HCHARS.test(s)) { - return s; - } - return s.replace(AMP,'&').replace(LT,'<').replace(GT,'>').replace(QUOT,'"').replace(SQUOT, '''); - } - return s; -}; - -var BS = /\\/g, - CR = /\r/g, - LS = /\u2028/g, - PS = /\u2029/g, - NL = /\n/g, - LF = /\f/g, - SQ = /'/g, - DQ = /"/g, - TB = /\t/g; - -dust.escapeJs = function(s) { - if (typeof s === "string") { - return s - .replace(BS, '\\\\') - .replace(DQ, '\\"') - .replace(SQ, "\\'") - .replace(CR, '\\r') - .replace(LS, '\\u2028') - .replace(PS, '\\u2029') - .replace(NL, '\\n') - .replace(LF, '\\f') - .replace(TB, "\\t"); - } - return s; -}; - -})(dust); - -if (typeof exports !== "undefined") { - //TODO: Remove the helpers from dust core in the next release. - dust.helpers = require("../dust-helpers/lib/dust-helpers").helpers; - if (typeof process !== "undefined") { - require('./server')(dust); - } - module.exports = dust; -} -(function(dust){ - -/* make a safe version of console if it is not available - * currently supporting: - * _console.log - * */ -var _console = (typeof console !== 'undefined')? console: { - log: function(){ - /* a noop*/ - } -}; - -function isSelect(context) { - var value = context.current(); - return typeof value === "object" && value.isSelect === true; -} - -function filter(chunk, context, bodies, params, filter) { - var params = params || {}, - actual, - expected; - if (params.key) { - actual = helpers.tap(params.key, chunk, context); - } else if (isSelect(context)) { - actual = context.current().selectKey; - if (context.current().isResolved) { - filter = function() { return false; }; - } - } else { - throw "No key specified for filter and no key found in context from select statement"; - } - expected = helpers.tap(params.value, chunk, context); - if (filter(expected, coerce(actual, params.type, context))) { - if (isSelect(context)) { - context.current().isResolved = true; - } - return chunk.render(bodies.block, context); - } else if (bodies['else']) { - return chunk.render(bodies['else'], context); - } - - return chunk.write(''); -} - -function coerce (value, type, context) { - if (value) { - switch (type || typeof(value)) { - case 'number': return +value; - case 'string': return String(value); - case 'boolean': return Boolean(value); - case 'date': return new Date(value); - case 'context': return context.get(value); - } - } - - return value; -} - -var helpers = { - - sep: function(chunk, context, bodies) { - if (context.stack.index === context.stack.of - 1) { - return chunk; - } - return bodies.block(chunk, context); - }, - - idx: function(chunk, context, bodies) { - return bodies.block(chunk, context.push(context.stack.index)); - }, - - contextDump: function(chunk, context, bodies) { - _console.log(JSON.stringify(context.stack)); - return chunk; - }, - - // Utility helping to resolve dust references in the given chunk - tap: function( input, chunk, context ){ - // return given input if there is no dust reference to resolve - var output = input; - // dust compiles a string to function, if there are references - if( typeof input === "function"){ - output = ''; - chunk.tap(function(data){ - output += data; - return ''; - }).render(input, context).untap(); - if( output === '' ){ - output = false; - } - } - return output; - }, - - /** - if helper - @param cond, either a string literal value or a dust reference - a string literal value, is enclosed in double quotes, e.g. cond="2>3" - a dust reference is also enclosed in double quotes, e.g. cond="'{val}'' > 3" - cond argument should evaluate to a valid javascript expression - **/ - - "if": function( chunk, context, bodies, params ){ - if( params && params.cond ){ - var cond = params.cond; - cond = this.tap(cond, chunk, context); - // eval expressions with given dust references - if( eval( cond ) ){ - return chunk.render( bodies.block, context ); - } - if( bodies['else'] ){ - return chunk.render( bodies['else'], context ); - } - } - // no condition - else { - _console.log( "No condition given in the if helper!" ); - } - return chunk; - }, - - /** - select/eq/lt/lte/gt/gte/default helper - @param key, either a string literal value or a dust reference - a string literal value, is enclosed in double quotes, e.g. key="foo" - a dust reference may or may not be enclosed in double quotes, e.g. key="{val}" and key=val are both valid - @param type (optiona), supported types are number, boolean, string, date, context, defaults to string - **/ - select: function(chunk, context, bodies, params) { - if( params && params.key){ - // returns given input as output, if the input is not a dust reference, else does a context lookup - var key = this.tap(params.key, chunk, context); - return chunk.render(bodies.block, context.push({ isSelect: true, isResolved: false, selectKey: key })); - } - // no key - else { - _console.log( "No key given in the select helper!" ); - } - return chunk; - }, - - eq: function(chunk, context, bodies, params) { - return filter(chunk, context, bodies, params, function(expected, actual) { return actual === expected; }); - }, - - lt: function(chunk, context, bodies, params) { - return filter(chunk, context, bodies, params, function(expected, actual) { return actual < expected; }); - }, - - lte: function(chunk, context, bodies, params) { - return filter(chunk, context, bodies, params, function(expected, actual) { return actual <= expected; }); - }, - - gt: function(chunk, context, bodies, params) { - return filter(chunk, context, bodies, params, function(expected, actual) { return actual > expected; }); - }, - - gte: function(chunk, context, bodies, params) { - return filter(chunk, context, bodies, params, function(expected, actual) { return actual >= expected; }); - }, - - "default": function(chunk, context, bodies, params) { - return filter(chunk, context, bodies, params, function(expected, actual) { return true; }); - } -}; - -dust.helpers = helpers; - -})(typeof exports !== 'undefined' ? exports : getGlobal()); diff --git a/sources/web/public/js/libs/fullcalendar.min.js b/sources/web/public/js/libs/fullcalendar.min.js deleted file mode 100644 index b0a2587..0000000 --- a/sources/web/public/js/libs/fullcalendar.min.js +++ /dev/null @@ -1,134 +0,0 @@ -/* - - FullCalendar v1.5.3-rcube-0.7.1 - https://github.com/roundcube/fullcalendar - - Use fullcalendar.css for basic styling. - For event drag & drop, requires jQuery UI draggable. - For event resizing, requires jQuery UI resizable. - - Copyright (c) 2011 Adam Shaw - Copyright (c) 2011, Kolab Systems AG - Dual licensed under the MIT and GPL licenses, located in - MIT-LICENSE.txt and GPL-LICENSE.txt respectively. - - Date: Wed Mar 21 22:49:40 2012 +0100 - -*/ -(function(o,sa){function Ab(a){o.extend(true,$a,a)}function $b(a,b,g){function c(l){if(H){u();R();aa();O(l)}else f()}function f(){P=b.theme?"ui":"fc";a.addClass("fc");b.isRTL&&a.addClass("fc-rtl");b.theme&&a.addClass("ui-widget");H=o("
      ").prependTo(a);y=new ac(A,b);(Q=y.render())&&a.prepend(Q);r(b.defaultView);o(window).resize(la);d()||k()}function k(){setTimeout(function(){!i.start&&d()&&O()},0)}function q(){o(window).unbind("resize",la);y.destroy(); -H.remove();a.removeClass("fc fc-rtl ui-widget")}function h(){return ma.offsetWidth!==0}function d(){return o("body")[0].offsetWidth!==0}function r(l){if(!i||l!=i.name){m++;ja();var s=i,da;if(s){(s.beforeHide||Bb)();ab(H,H.height());s.element.hide()}else ab(H,1);H.css("overflow","hidden");if(i=F[l])i.element.show();else i=F[l]=new Ha[l](da=ya=o("
      ").appendTo(H),A);s&&y.deactivateButton(s.name);y.activateButton(l);O();H.css("overflow",""); -s&&ab(H,1);da||(i.afterShow||Bb)();m--}}function O(l){if(h()){m++;ja();fa===sa&&u();var s=false;if(!i.start||l||t=i.end){i.render(t,l||0);B(true);s=true}else if(i.sizeDirty){i.clearEvents();B();s=true}else if(i.eventsDirty){i.clearEvents();s=true}i.sizeDirty=false;i.eventsDirty=false;ea(s);ga=a.outerWidth();y.updateTitle(i.title);l=new Date;l>=i.start&&l").append(o("").append(f("left")).append(f("center")).append(f("right")))} -function c(){L.remove()}function f(u){var B=o("");(u=b.header[u])&&o.each(u.split(" "),function(la){la>0&&B.append("");var ea;o.each(this.split(","),function(na,T){if(T=="title"){B.append("

       

      ");ea&&ea.addClass(R+"-corner-right");ea=null}else{var N;if(a[T])N=a[T];else if(Ha[T])N=function(){aa.removeClass(R+"-state-hover");a.changeView(T)};if(N){na=b.theme?mb(b.buttonIcons,T):null;var V=mb(b.buttonText, -T),aa=o(""+(na?"":V)+"");if(aa){aa.click(function(){aa.hasClass(R+"-state-disabled")||N()}).mousedown(function(){aa.not("."+R+"-state-active").not("."+R+"-state-disabled").addClass(R+"-state-down")}).mouseup(function(){aa.removeClass(R+ -"-state-down")}).hover(function(){aa.not("."+R+"-state-active").not("."+R+"-state-disabled").addClass(R+"-state-hover")},function(){aa.removeClass(R+"-state-hover").removeClass(R+"-state-down")}).appendTo(B);ea||aa.addClass(R+"-corner-left");ea=aa}}}});ea&&ea.addClass(R+"-corner-right")});return B}function k(u){L.find("h2").html(u)}function q(u){L.find("span.fc-button-"+u).addClass(R+"-state-active")}function h(u){L.find("span.fc-button-"+u).removeClass(R+"-state-active")}function d(u){L.find("span.fc-button-"+ -u).addClass(R+"-state-disabled")}function r(u){L.find("span.fc-button-"+u).removeClass(R+"-state-disabled")}var O=this;O.render=g;O.destroy=c;O.updateTitle=k;O.activateButton=q;O.deactivateButton=h;O.disableButton=d;O.enableButton=r;var L=o([]),R}function bc(a,b){function g(e,M){return!C||eba}function c(e,M,A){C=e;ba=M;W=e.getTimezoneOffset()*60*1E3;w=M.getTimezoneOffset()*60*1E3;ca=typeof A!="undefined"?o.grep(ca,function(E){return!na(E.source,A)}):[];e=++p;M=v.length;I=typeof A=="undefined"? -M:1;for(var ha=0;haq;r--)if(O=fc[g.substring(q,r)]){if(f)L+=O(f,c);q=r-1;break}if(r==q)if(f)L+=d}}return L}function Wa(a){return a.end?gc(a.end,a.allDay):ka(G(a.start),1)}function gc(a,b){a=G(a);return b||a.getHours()||a.getMinutes()?ka(a,1):Ia(a)}function hc(a,b){return(b.msLength-a.msLength)*100+(a.event.start-b.event.start)}function Fb(a,b){return a.end>b.start&&a.startg&&dc){r=G(c);L=false}else{r=r;L=true}f.push({event:h,start:d,end:r,isStart:O,isEnd:L,msLength:r-d})}}return f.sort(hc)}function rb(a){var b=[],g,c=a.length,f,k,q,h;for(g=0;g=0;g--){c=a[b[g].toLowerCase()];if(c!== -sa)return c}return a[""]}function Ea(a){return a.replace(/&/g,"&").replace(//g,">").replace(/'/g,"'").replace(/"/g,""").replace(/\n/g,"
      ")}function Lb(a){return a.id+"/"+a.className+"/"+a.style.cssText.replace(/(^|;)\s*(top|left|width|height)\s*:[^;]*/ig,"")}function tb(a){a.attr("unselectable","on").css("MozUserSelect","none").bind("selectstart.ui",function(){return false})}function Sa(a){a.children().removeClass("fc-first fc-last").filter(":first-child").addClass("fc-first").end().filter(":last-child").addClass("fc-last")} -function ub(a,b){a.each(function(g,c){c.className=c.className.replace(/^fc-\w*/,"fc-"+Mb[b.getDay()])})}function cb(a,b){var g=a.source||{},c=a.color,f=g.color,k=b("eventColor"),q=a.backgroundColor||c||g.backgroundColor||f||b("eventBackgroundColor")||k;c=a.borderColor||c||g.borderColor||f||b("eventBorderColor")||k;a=a.textColor||g.textColor||b("eventTextColor");b=[];q&&b.push("background-color:"+q);c&&b.push("border-color:"+c);a&&b.push("color:"+a);return b.join(";")}function bb(a,b,g){if(o.isFunction(a))a= -[a];if(a){var c,f;for(c=0;c";for(ia=0;ia";$+="";for(ia=0;ia";for(S=0;S
      "+(J?"
      ":"")+"
       
      ";$+=""}$+=""; -x=o($).appendTo(a);E=x.find("thead");ma=E.find("th");y=x.find("tbody");Q=y.find("tr");H=y.find("td");P=H.filter(":first-child");i=Q.eq(0).find("div.fc-day-content div");Sa(E.add(E.find("tr")));Sa(Q);Q.eq(0).addClass("fc-first");r(H);F=o("
      ").appendTo(a)}function q(x){var J=x||j==1,$=p.start.getMonth(),S=Ia(new Date),oa,ia,va;J&&ma.each(function(wa,Ca){oa=o(Ca);ia=C(wa);oa.html(ha(ia,ua));ub(oa,ia)});H.each(function(wa,Ca){oa=o(Ca);ia=C(wa);ia.getMonth()== -$?oa.removeClass("fc-other-month"):oa.addClass("fc-other-month");+ia==+S?oa.addClass(qa+"-state-highlight fc-today"):oa.removeClass(qa+"-state-highlight fc-today");oa.find("div.fc-day-number").text(ia.getDate());J&&ub(oa,ia)});Q.each(function(wa,Ca){va=o(Ca);if(wa div"),(oa==j-1?$:J)-Ua(S))}})}function d(x){ga=x;z.clear();ya=Math.floor(ga/m);Xa(ma.slice(0,-1),ya)}function r(x){x.click(O).mousedown(A)}function O(x){if(!I("selectable")){var J=parseInt(this.className.match(/fc\-day(\d+)/)[1]);J=C(J);Y("dayClick",this,J,true,x)}}function L(x,J,$){$&&t.build();$=G(p.visStart);for(var S=ka(G($),m),oa=0;oa ";for(D=0;D";K+="  ";for(D=0;D
       
      "; -K+=" ";j=o(K).appendTo(a);m=j.find("thead");t=m.find("th").slice(1,-1);X=j.find("tbody");z=X.find("td").slice(0,-1);l=z.find("div.fc-day-content div");s=z.eq(0);da=s.find("> div");Sa(m.add(m.find("tr")));Sa(X.add(X.find("tr")));ia=m.find("th:first");va=j.find(".fc-agenda-gutter");pa=o("
      ").appendTo(a);if(ma("allDaySlot")){ra=o("
      ").appendTo(pa); -K="
      "+ma("allDayText")+"
       
      ";qa=o(K).appendTo(pa);ua=qa.find("tr");R(ua.find("td"));ia=ia.add(qa.find("th:first"));va=va.add(qa.find("th.fc-agenda-gutter"));pa.append("
      ")}else ra=o([]); -x=o("
      ").appendTo(pa);J=o("
      ").appendTo(x);$=o("
      ").appendTo(J);K="";ta=Db();za=xa(G(ta),eb);xa(ta,Ma);for(D=xb=0;ta";xa(ta,ma("slotMinutes"));xb++}K+="
      "+(!Ga||!Fa? -ya(ta,ma("axisFormat")):" ")+"
       
      ";S=o(K).appendTo(J);oa=S.find("div:first");u(S.find("td"));ia=ia.add(S.find("th:first"))}function q(){var n,U,K,D,ta=Ia(new Date);for(n=0;n=0&&xa(U,Ma+n*ma("slotMinutes"));return U}function Z(n){return ka(G(E.visStart),n*Ka+La)}function ja(n){return ma("allDaySlot")&&!n.row}function v(n){return(n-Math.max(Ub,Tb)+Da)%Da*Ka+La}function C(n,U){n=G(n,true);if(U=xa(G(n),eb))return S.height();n=ma("slotMinutes"); -U=U.getHours()*60+U.getMinutes()-Ma;var K=Math.floor(U/n),D=yb[K];if(D===sa)D=yb[K]=S.find("tr:eq("+K+") td div")[0].offsetTop;return Math.max(0,Math.round(D-1+Za*(U%n/n)))}function ba(){return{left:Na,right:Ca-zb}}function W(){return ua}function w(n){var U=G(n.start);if(n.allDay)return U;return xa(U,ma("defaultEventMinutes"))}function p(n,U){if(U)return G(n);return xa(G(n),ma("slotMinutes"))}function I(n,U,K){if(K)ma("allDaySlot")&&la(n,ka(G(U),1),true);else Y(n,U)}function Y(n,U){var K=ma("selectHelper"); -Oa.build();if(K){var D=Ba(n,E.visStart)*Ka+La;if(D>=0&&Dta){D.top=ta;D.height=za-ta;D.left+=2;D.width-=5;if(o.isFunction(K)){if(n=K(n,U)){D.position="absolute";D.zIndex=8;wa=o(n).css(D).appendTo(J)}}else{D.isStart=true;D.isEnd=true;wa=o(fa({title:"",start:n,end:U,className:["fc-select-helper"],editable:false},D));wa.css("opacity",ma("dragOpacity"))}if(wa){u(wa);J.append(wa);Xa(wa,D.width,true);Hb(wa,D.height,true)}}}}else na(n,U)}function ca(){P(); -if(wa){wa.remove();wa=null}}function e(n){if(n.which==1&&ma("selectable")){F(n);var U,K=ma("selectHelper");Ta.start(function(D,ta){ca();if(D&&(D.col==ta.col||!K)&&!ja(D)){ta=aa(ta);D=aa(D);U=[ta,xa(G(ta),ma("slotMinutes")),D,xa(G(D),ma("slotMinutes"))].sort(Jb);Y(U[0],U[3])}else U=null},n);o(document).one("mouseup",function(D){Ta.stop();if(U){+U[0]==+U[1]&&M(U[0],false,D);i(U[0],U[3],false,D)}})}}function M(n,U,K){y("dayClick",z[v(n.getDay())],n,U,K)}function A(n,U){Ta.start(function(K){P();if(K)if(ja(K))ea(K.row, -K.col,K.row,K.col);else{K=aa(K);var D=xa(G(K),ma("defaultEventMinutes"));na(K,D)}},U)}function ha(n,U,K){var D=Ta.stop();P();D&&y("drop",n,aa(D),ja(D),U,K)}var E=this;E.renderAgenda=c;E.setWidth=d;E.setHeight=h;E.beforeHide=O;E.afterShow=L;E.defaultEventEnd=w;E.timePosition=C;E.dayOfWeekCol=v;E.dateCell=V;E.cellDate=aa;E.cellIsAllDay=ja;E.allDayRow=W;E.allDayBounds=ba;E.getHoverListener=function(){return Ta};E.colContentLeft=T;E.colContentRight=N;E.getDaySegmentContainer=function(){return ra};E.getSlotSegmentContainer= -function(){return $};E.getMinMinute=function(){return Ma};E.getMaxMinute=function(){return eb};E.getBodyContent=function(){return J};E.getRowCnt=function(){return 1};E.getColCnt=function(){return Da};E.getColWidth=function(){return gb};E.getSlotHeight=function(){return Za};E.defaultSelectionEnd=p;E.renderDayOverlay=la;E.renderSelection=I;E.clearSelection=ca;E.reportDayClick=M;E.dragStart=A;E.dragStop=ha;db.call(E,a,b,g);Nb.call(E);Ob.call(E);tc.call(E);var ma=E.opt,y=E.trigger,Q=E.clearEvents,H=E.renderOverlay, -P=E.clearOverlays,i=E.reportSelection,F=E.unselect,ga=E.daySelectionMousedown,fa=E.slotSegHtml,ya=b.formatDate,j,m,t,X,z,l,s,da,pa,ra,qa,ua,x,J,$,S,oa,ia,va,wa,Ca,Xb,Na,gb,zb,Za,Yb,Da,xb,Oa,Ta,fb,yb={},Ya,Ub,Tb,Vb,Ka,La,Ma,eb,Wb;tb(a.addClass("fc-agenda"));Oa=new Pb(function(n,U){function K(hb){return Math.max(Ga,Math.min(uc,hb))}var D,ta,za;t.each(function(hb,vc){D=o(vc);ta=D.offset().left;if(hb)za[1]=ta;za=[ta];U[hb]=za});za[1]=ta+D.outerWidth();if(ma("allDaySlot")){D=ua;ta=D.offset().top;n[0]= -[ta,ta+D.outerHeight()]}for(var Fa=J.offset().top,Ga=x.offset().top,uc=Ga+x.outerHeight(),ib=0;ib1;if($=B("isRTL")){S=-1;wa=t-1}else{S=1;wa=0}for(t=0;t
      "+Ea(fa(j.start,j.end,B("timeFormat")))+"
      "+Ea(j.title)+"
      "; -if(m.isEnd&&na(j))t+="
      =
      ";t+="";return t}function h(j,m,t){ea(j)&&O(j,m,t.isStart);t.isEnd&&na(j)&&ca(j,m,t);aa(j,m)}function d(j,m,t){var X=m.find("div.fc-event-time");ea(j)&&L(j,m,X);t.isEnd&&na(j)&&R(j,m,X);aa(j,m)}function r(){var j=ha(),m=j.children(".fc-timeline");if(m.length==0)m=o("
      ").addClass("fc-timeline").appendTo(j);var t=new Date;if(u.visStartt){m.show();t=(t.getHours()*60*60+t.getMinutes()*60+t.getSeconds())/ -86400;m.css("top",Math.floor(j.height()*t-1)+"px");if(u.name=="agendaWeek"){t=o(".fc-today",u.element);j=t.position().left+1;t=t.width();m.css({left:j+"px",width:t+"px"})}}else m.hide()}function O(j,m,t){function X(){if(!s){m.width(z).height("").draggable("option","grid",null);s=true}}var z,l,s=true,da,pa=B("isRTL")?-1:1,ra=C(),qa=M(),ua=A(),x=W();m.draggable({zIndex:9,opacity:B("dragOpacity","month"),revertDuration:B("dragRevertDuration"),start:function(J,$){la("eventDragStart",m,j,J,$);y(j,m);z= -m.width();ra.start(function(S,oa,ia,va){i();if(S){l=false;da=va*pa;if(S.row)if(t){if(s){m.width(qa-10);Hb(m,ua*Math.round((j.end?(j.end-j.start)/xc:B("defaultEventMinutes"))/B("slotMinutes")));m.draggable("option","grid",[qa,1]);s=false}}else l=true;else{P(ka(G(j.start),da),ka(Wa(j),da));X()}l=l||s&&!da}else{X();l=true}m.draggable("option","revert",l)},J,"drag")},stop:function(J,$){ra.stop();i();la("eventDragStop",m,j,J,$);if(l){X();m.css("filter","");ma(j,m)}else{var S=0;s||(S=Math.round((m.offset().top- -ha().offset().top)/ua)*B("slotMinutes")+x-(j.start.getHours()*60+j.start.getMinutes()));Q(this,j,da,S,s,J,$)}}})}function L(j,m,t){function X(S){var oa=xa(G(j.start),S),ia;if(j.end)ia=xa(G(j.end),S);t.text(fa(oa,ia,B("timeFormat")))}function z(){if(s){t.css("display","");m.draggable("option","grid",[J,$]);s=false}}var l,s=false,da,pa,ra,qa=B("isRTL")?-1:1,ua=C(),x=e(),J=M(),$=A();m.draggable({zIndex:9,scroll:false,grid:[J,$],axis:x==1?"y":false,opacity:B("dragOpacity"),revertDuration:B("dragRevertDuration"), -start:function(S,oa){la("eventDragStart",m,j,S,oa);y(j,m);l=m.position();pa=ra=0;ua.start(function(ia,va,wa,Ca){m.draggable("option","revert",!ia);i();if(ia){da=Ca*qa;if(B("allDaySlot")&&!ia.row){if(!s){s=true;t.hide();m.draggable("option","grid",null)}P(ka(G(j.start),da),ka(Wa(j),da))}else z()}},S,"drag")},drag:function(S,oa){pa=Math.round((oa.position.top-l.top)/$)*B("slotMinutes");if(pa!=ra){s||X(pa);ra=pa}},stop:function(S,oa){var ia=ua.stop();i();la("eventDragStop",m,j,S,oa);if(ia&&(da||pa|| -s))Q(this,j,da,s?0:pa,s,S,oa);else{z();m.css("filter","");m.css(l);X(0);ma(j,m)}}})}function R(j,m,t){var X,z,l=A();m.resizable({handles:{s:"div.ui-resizable-s"},grid:l,start:function(s,da){X=z=0;y(j,m);m.css("z-index",9);la("eventResizeStart",this,j,s,da)},resize:function(s,da){X=Math.round((Math.max(l,m.height())-da.originalSize.height)/l);if(X!=z){t.text(fa(j.start,!X&&!j.end?null:xa(T(j),B("slotMinutes")*X),B("timeFormat")));z=X}},stop:function(s,da){la("eventResizeStop",this,j,s,da);if(X)H(this, -j,0,B("slotMinutes")*X,s,da);else{m.css("z-index",8);ma(j,m)}}})}var u=this;u.renderEvents=a;u.compileDaySegs=g;u.clearEvents=b;u.slotSegHtml=q;u.bindDaySeg=h;wb.call(u);var B=u.opt,la=u.trigger,ea=u.isEventDraggable,na=u.isEventResizable,T=u.eventEnd,N=u.reportEvents,V=u.reportEventClear,aa=u.eventElementHandlers,Z=u.setHeight,ja=u.getDaySegmentContainer,v=u.getSlotSegmentContainer,C=u.getHoverListener,ba=u.getMaxMinute,W=u.getMinMinute,w=u.timePosition,p=u.colContentLeft,I=u.colContentRight,Y=u.renderDaySegs, -ca=u.resizableDayEvent,e=u.getColCnt,M=u.getColWidth,A=u.getSlotHeight,ha=u.getBodyContent,E=u.reportEventElement,ma=u.showEvents,y=u.hideEvents,Q=u.eventDrop,H=u.eventResize,P=u.renderDayOverlay,i=u.clearOverlays,F=u.calendar,ga=F.formatDate,fa=F.formatDates,ya}function wc(a){var b,g,c,f,k,q;for(b=a.length-1;b>0;b--){f=a[b];for(g=0;gz)j.overflow=true;else{j.top=fa;fa+=j.outerHeight}for(m=j.startCol;m1){i=o("").addClass("fc-more-link").html("+"+F.count).appendTo(H);i[0].style.position="absolute";i[0].style.left=F.seg.left+"px";i[0].style.top=F.top+Q[0].offsetTop+"px";F=ea("overflowRender",F,{count:F.count,date:F.date},i);F===false&&i.remove()}else{F.seg.top=F.top;F.seg.overflow=false}}function g(y,Q,H){var P=o("
      "),i=e(),F=y.length,ga;P[0].innerHTML=c(y);P=P.children();i.append(P);f(y,P);h(y);d(y);r(y);R(y,L(O()));P=[];for(i=0;i
      ";if(!F.allDay&&i.isStart)s+=""+Ea(A(F.start,F.end,la("timeFormat")))+"";s+=""+ -Ea(F.title)+"
      ";if(i.isEnd&&T(F))s+="
         
      ";s+="";i.left=X;i.outerWidth=z-X;i.startCol=m;i.endCol=t+1}return s}function f(y,Q){var H,P=y.length,i,F,ga;for(H=0;H div");return H}function L(y){var Q,H=y.length,P=[];for(Q=0;Q"));h[0].parentNode!=q[0]&&h.appendTo(q);c.push(h.css(k).show()); -return h}function b(){for(var k;k=c.shift();)f.push(k.hide().unbind())}var g=this;g.renderOverlay=a;g.clearOverlays=b;var c=[],f=[]}function Pb(a){var b=this,g,c;b.build=function(){g=[];c=[];a(g,c)};b.cell=function(f,k){var q=g.length,h=c.length,d,r=-1,O=-1;for(d=0;d=g[d][0]&&k=c[d][0]&&f=0&&O>=0?{row:r,col:O}:null};b.rect=function(f,k,q,h,d){d=d.offset();return{top:g[f][0]-d.top,left:c[k][0]-d.left,width:c[h][1]-c[k][0], -height:g[q][1]-g[f][0]}}}function Qb(a){function b(h){yc(h);h=a.cell(h.pageX,h.pageY);if(!h!=!q||h&&(h.row!=q.row||h.col!=q.col)){if(h){k||(k=h);f(h,k,h.row-k.row,h.col-k.col)}else f(h,k);q=h}}var g=this,c,f,k,q;g.start=function(h,d,r){f=h;k=q=null;a.build();b(d);c=r||"mousemove";o(document).bind(c,b)};g.stop=function(){o(document).unbind(c,b);return q}}function yc(a){if(a.pageX===sa){a.pageX=a.originalEvent.pageX;a.pageY=a.originalEvent.pageY}}function Rb(a){function b(q){return c[q]=c[q]||a(q)} -var g=this,c={},f={},k={};g.left=function(q){return f[q]=f[q]===sa?b(q).position().left:f[q]};g.right=function(q){return k[q]=k[q]===sa?g.left(q)+b(q).width():k[q]};g.clear=function(){c={};f={};k={}}}function Zb(){function a(){L();B().empty()}function b(T,N){T.sort(c);O(T);f(g(T),N)}function g(T){var N=[],V=d("titleFormat","day"),aa=d("firstDay"),Z=d("listSections"),ja,v,C,ba,W,w,p,I=-1,Y=Ia(new Date),ca=ka(G(Y),-((Y.getDay()-aa+7)%7));for(ja=0;ja -h.visEnd)){p=G(aa.starth.start?h.start:aa.start,true);v=Ba(p,Y);C=Math.floor(Ba(p,ca)/7);ba=p.getMonth()+(p.getYear()-Y.getYear())*12-Y.getMonth();if(Z=="smart")if(v<0)W=d("listTexts","past");else if(v==0)W=d("listTexts","today");else if(v==1)W=d("listTexts","tomorrow");else if(C==0)W=d("listTexts","thisWeek");else if(C==1)W=d("listTexts","nextWeek");else if(ba==0)W=d("listTexts","thisMonth");else if(ba==1)W=d("listTexts","nextMonth");else{if(ba>1)W=d("listTexts","future")}else W= -Z=="month"?ea(p,"MMMM yyyy"):Z=="week"?d("listTexts","week")+ea(p," W"):Z=="day"?ea(p,V):"";if(W!=w){N[++I]={events:[],start:p,title:W,daydiff:v,weekdiff:C,monthdiff:ba};w=W}N[I].events.push(aa)}}return N}function c(T,N){var V=T.start.getTime()-N.start.getTime();return V+(V?0:T.end.getTime()-N.end.getTime())}function f(T,N){var V=d("theme")?"ui":"fc",aa=V+"-widget-header";V=V+"-widget-content";var Z,ja,v,C,ba,W,w,p,I;for(ja=0;ja'+ -Ea(v.title)+"
      ").appendTo(B());I=o("
      ").addClass("fc-list-section "+V).appendTo(B());W="";for(Z=0;Z
      "+ -(ba[0]?''+ba[0]+" ":"")+(ba[1]?''+ba[1]+"":"")+"
      "+Ea(C.title)+"
      "}I[0].innerHTML=W;W=I.children();for(Z=0;ZQa)v=na(T.start,T.end,aa+"{ - "+aa+"}");else if(N.daydiff==0)v=d("listTexts","today");else if(N.daydiff==1)v=d("listTexts","tomorrow");else if(N.weekdiff==0||N.weekdiff==1)v=ea(T.start,"dddd");else{if(N.daydiff>1||N.daydiff<0)v=ea(T.start, -aa)}else if(Z!="day")v=na(T.start,T.end,aa+(ja>Qa?"{ - "+aa+"}":""));if(!v&&T.allDay)C=d("allDayText");else if((ja").addClass("fc-list-content").appendTo(a)}function k(na){r("listNoHeight")||R.css("height",na-1+"px").css("overflow","auto")}function q(){}function h(){}var d=this;d.render=g;d.select=h;d.unselect=h;d.getDaySegmentContainer=function(){return R};db.call(d,a,b,"list");Zb.call(d);var r=d.opt,O=d.clearEvents,L=b.formatDates;d.setWidth=q;d.setHeight=k;var R,u,B,la,ea}function Ac(){function a(){r();u().children("tbody").remove()}function b(la, -ea){la.sort(k);d(la);g(h(la),ea);u().removeClass("fc-list-smart fc-list-day fc-list-month fc-list-week").addClass("fc-list-"+f("listSections"))}function g(la,ea){var na=f("theme")?"ui":"fc",T=u(),N=na+"-widget-header";na=na+"-widget-content";var V=f("tableCols"),aa=o.inArray("time",V)>=0,Z,ja,v,C,ba,W,w,p,I,Y;for(ja=0;ja'+Ea(v.title)+"").appendTo(T);Y=o("").addClass("fc-list-section "+ -na).appendTo(T);W="";for(Z=0;Z";for(var ca=0;ca
      ";else if(I=="date")W+=""+Ea(ba[0])+"";else if(I=="time"){if(ba[1])W+=""+Ea(ba[1])+""}else W+=""+(C[I]?Ea(C[I]):" ")+""}W+="";if(document.all){o(W).appendTo(Y);W=""}}if(!document.all)Y[0].innerHTML=W;ba=Y.children();for(Z=0;Z",aa=0;aa";V+="";u=o("
      ").addClass("fc-list-content").appendTo(a); -B=o(V).appendTo(u)}function k(N){r("listNoHeight")||u.css("height",N-1+"px").css("overflow","auto")}function q(){}function h(){}var d=this;d.render=g;d.select=h;d.unselect=h;d.getDaySegmentContainer=function(){return B};db.call(d,a,b,"table");Ac.call(d);var r=d.opt,O=d.clearEvents,L=b.formatDates,R=b.formatDate;d.setWidth=q;d.setHeight=k;var u,B,la,ea,na,T}var $a={defaultView:"month",aspectRatio:1.35,header:{left:"title",center:"",right:"today prev,next"},weekends:true,currentTimeIndicator:false, -allDayDefault:true,ignoreTimezone:true,lazyFetching:true,startParam:"start",endParam:"end",titleFormat:{month:"MMMM yyyy",week:"MMM d[ yyyy]{ '—'[ MMM] d yyyy}",day:"dddd, MMM d, yyyy",list:"MMM d, yyyy",table:"MMM d, yyyy"},columnFormat:{month:"ddd",week:"ddd M/d",day:"dddd M/d",list:"dddd, MMM d, yyyy",table:"MMM d, yyyy"},timeFormat:{"":"h(:mm)t"},isRTL:false,firstDay:0,monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"], -monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],buttonText:{prev:" ◄ ",next:" ► ",prevYear:" << ",nextYear:" >> ",today:"today",month:"month",week:"week",day:"day",list:"list",table:"table"},listTexts:{until:"until",past:"Past events",today:"Today",tomorrow:"Tomorrow", -thisWeek:"This week",nextWeek:"Next week",thisMonth:"This month",nextMonth:"Next month",future:"Future events",week:"W"},listSections:"month",listRange:30,listPage:7,tableCols:["handle","date","time","title"],theme:false,buttonIcons:{prev:"circle-triangle-w",next:"circle-triangle-e"},unselectAuto:true,dropAccept:"*"},Cc={header:{left:"next,prev today",center:"",right:"title"},buttonText:{prev:" ► ",next:" ◄ ",prevYear:" >> ",nextYear:" << "}, -buttonIcons:{prev:"circle-triangle-e",next:"circle-triangle-w"}},Aa=o.fullCalendar={version:"1.5.3-rcube-0.7.1"},Ha=Aa.views={};o.fn.fullCalendar=function(a){if(typeof a=="string"){var b=Array.prototype.slice.call(arguments,1),g;this.each(function(){var f=o.data(this,"fullCalendar");if(f&&o.isFunction(f[a])){f=f[a].apply(f,b);if(g===sa)g=f;a=="destroy"&&o.removeData(this,"fullCalendar")}});if(g!==sa)return g;return this}var c=a.eventSources||[];delete a.eventSources;if(a.events){c.push(a.events); -delete a.events}a=o.extend(true,{},$a,a.isRTL||a.isRTL===sa&&$a.isRTL?Cc:{},a);this.each(function(f,k){f=o(k);k=new $b(f,a,c);f.data("fullCalendar",k);k.render()});return this};Aa.sourceNormalizers=[];Aa.sourceFetchers=[];var cc={dataType:"json",cache:false},dc=1;Aa.addDays=ka;Aa.cloneDate=G;Aa.parseDate=nb;Aa.parseISO8601=Eb;Aa.parseTime=pb;Aa.formatDate=Pa;Aa.formatDates=lb;var Mb=["sun","mon","tue","wed","thu","fri","sat"],Qa=864E5,ec=36E5,xc=6E4,fc={s:function(a){return a.getSeconds()},ss:function(a){return Ra(a.getSeconds())}, -m:function(a){return a.getMinutes()},mm:function(a){return Ra(a.getMinutes())},h:function(a){return a.getHours()%12||12},hh:function(a){return Ra(a.getHours()%12||12)},H:function(a){return a.getHours()},HH:function(a){return Ra(a.getHours())},d:function(a){return a.getDate()},dd:function(a){return Ra(a.getDate())},ddd:function(a,b){return b.dayNamesShort[a.getDay()]},dddd:function(a,b){return b.dayNames[a.getDay()]},M:function(a){return a.getMonth()+1},MM:function(a){return Ra(a.getMonth()+1)},MMM:function(a, -b){return b.monthNamesShort[a.getMonth()]},MMMM:function(a,b){return b.monthNames[a.getMonth()]},yy:function(a){return(a.getFullYear()+"").substring(2)},yyyy:function(a){return a.getFullYear()},t:function(a){return a.getHours()<12?"a":"p"},tt:function(a){return a.getHours()<12?"am":"pm"},T:function(a){return a.getHours()<12?"A":"P"},TT:function(a){return a.getHours()<12?"AM":"PM"},u:function(a){return Pa(a,"yyyy-MM-dd'T'HH:mm:ss'Z'")},S:function(a){a=a.getDate();if(a>10&&a<20)return"th";return["st", -"nd","rd"][a%10-1]||"th"},W:function(a){return Dc(a)}},Dc=function(a){a=G(a);a.setDate(a.getDate()+4-(a.getDay()||7));var b=a.getTime();a.setMonth(0);a.setDate(1);return Math.floor(Math.round((b-a)/864E5)/7)+1};Aa.applyAll=bb;Ha.month=nc;Ha.basicWeek=oc;Ha.basicDay=pc;Ab({weekMode:"fixed"});Ha.agendaWeek=rc;Ha.agendaDay=sc;Ab({allDaySlot:true,allDayText:"all-day",firstHour:6,slotMinutes:30,defaultEventMinutes:120,axisFormat:"h(:mm)tt",timeFormat:{agenda:"h:mm{ - h:mm}"},dragOpacity:{agenda:0.5},minTime:0, -maxTime:24});Ha.list=zc;Ha.table=Bc})(jQuery); diff --git a/sources/web/public/js/libs/jquery-1.7.2.min.js b/sources/web/public/js/libs/jquery-1.7.2.min.js deleted file mode 100644 index 16ad06c..0000000 --- a/sources/web/public/js/libs/jquery-1.7.2.min.js +++ /dev/null @@ -1,4 +0,0 @@ -/*! jQuery v1.7.2 jquery.com | jquery.org/license */ -(function(a,b){function cy(a){return f.isWindow(a)?a:a.nodeType===9?a.defaultView||a.parentWindow:!1}function cu(a){if(!cj[a]){var b=c.body,d=f("<"+a+">").appendTo(b),e=d.css("display");d.remove();if(e==="none"||e===""){ck||(ck=c.createElement("iframe"),ck.frameBorder=ck.width=ck.height=0),b.appendChild(ck);if(!cl||!ck.createElement)cl=(ck.contentWindow||ck.contentDocument).document,cl.write((f.support.boxModel?"":"")+""),cl.close();d=cl.createElement(a),cl.body.appendChild(d),e=f.css(d,"display"),b.removeChild(ck)}cj[a]=e}return cj[a]}function ct(a,b){var c={};f.each(cp.concat.apply([],cp.slice(0,b)),function(){c[this]=a});return c}function cs(){cq=b}function cr(){setTimeout(cs,0);return cq=f.now()}function ci(){try{return new a.ActiveXObject("Microsoft.XMLHTTP")}catch(b){}}function ch(){try{return new a.XMLHttpRequest}catch(b){}}function cb(a,c){a.dataFilter&&(c=a.dataFilter(c,a.dataType));var d=a.dataTypes,e={},g,h,i=d.length,j,k=d[0],l,m,n,o,p;for(g=1;g0){if(c!=="border")for(;e=0===c})}function S(a){return!a||!a.parentNode||a.parentNode.nodeType===11}function K(){return!0}function J(){return!1}function n(a,b,c){var d=b+"defer",e=b+"queue",g=b+"mark",h=f._data(a,d);h&&(c==="queue"||!f._data(a,e))&&(c==="mark"||!f._data(a,g))&&setTimeout(function(){!f._data(a,e)&&!f._data(a,g)&&(f.removeData(a,d,!0),h.fire())},0)}function m(a){for(var b in a){if(b==="data"&&f.isEmptyObject(a[b]))continue;if(b!=="toJSON")return!1}return!0}function l(a,c,d){if(d===b&&a.nodeType===1){var e="data-"+c.replace(k,"-$1").toLowerCase();d=a.getAttribute(e);if(typeof d=="string"){try{d=d==="true"?!0:d==="false"?!1:d==="null"?null:f.isNumeric(d)?+d:j.test(d)?f.parseJSON(d):d}catch(g){}f.data(a,c,d)}else d=b}return d}function h(a){var b=g[a]={},c,d;a=a.split(/\s+/);for(c=0,d=a.length;c)[^>]*$|#([\w\-]*)$)/,j=/\S/,k=/^\s+/,l=/\s+$/,m=/^<(\w+)\s*\/?>(?:<\/\1>)?$/,n=/^[\],:{}\s]*$/,o=/\\(?:["\\\/bfnrt]|u[0-9a-fA-F]{4})/g,p=/"[^"\\\n\r]*"|true|false|null|-?\d+(?:\.\d*)?(?:[eE][+\-]?\d+)?/g,q=/(?:^|:|,)(?:\s*\[)+/g,r=/(webkit)[ \/]([\w.]+)/,s=/(opera)(?:.*version)?[ \/]([\w.]+)/,t=/(msie) ([\w.]+)/,u=/(mozilla)(?:.*? rv:([\w.]+))?/,v=/-([a-z]|[0-9])/ig,w=/^-ms-/,x=function(a,b){return(b+"").toUpperCase()},y=d.userAgent,z,A,B,C=Object.prototype.toString,D=Object.prototype.hasOwnProperty,E=Array.prototype.push,F=Array.prototype.slice,G=String.prototype.trim,H=Array.prototype.indexOf,I={};e.fn=e.prototype={constructor:e,init:function(a,d,f){var g,h,j,k;if(!a)return this;if(a.nodeType){this.context=this[0]=a,this.length=1;return this}if(a==="body"&&!d&&c.body){this.context=c,this[0]=c.body,this.selector=a,this.length=1;return this}if(typeof a=="string"){a.charAt(0)!=="<"||a.charAt(a.length-1)!==">"||a.length<3?g=i.exec(a):g=[null,a,null];if(g&&(g[1]||!d)){if(g[1]){d=d instanceof e?d[0]:d,k=d?d.ownerDocument||d:c,j=m.exec(a),j?e.isPlainObject(d)?(a=[c.createElement(j[1])],e.fn.attr.call(a,d,!0)):a=[k.createElement(j[1])]:(j=e.buildFragment([g[1]],[k]),a=(j.cacheable?e.clone(j.fragment):j.fragment).childNodes);return e.merge(this,a)}h=c.getElementById(g[2]);if(h&&h.parentNode){if(h.id!==g[2])return f.find(a);this.length=1,this[0]=h}this.context=c,this.selector=a;return this}return!d||d.jquery?(d||f).find(a):this.constructor(d).find(a)}if(e.isFunction(a))return f.ready(a);a.selector!==b&&(this.selector=a.selector,this.context=a.context);return e.makeArray(a,this)},selector:"",jquery:"1.7.2",length:0,size:function(){return this.length},toArray:function(){return F.call(this,0)},get:function(a){return a==null?this.toArray():a<0?this[this.length+a]:this[a]},pushStack:function(a,b,c){var d=this.constructor();e.isArray(a)?E.apply(d,a):e.merge(d,a),d.prevObject=this,d.context=this.context,b==="find"?d.selector=this.selector+(this.selector?" ":"")+c:b&&(d.selector=this.selector+"."+b+"("+c+")");return d},each:function(a,b){return e.each(this,a,b)},ready:function(a){e.bindReady(),A.add(a);return this},eq:function(a){a=+a;return a===-1?this.slice(a):this.slice(a,a+1)},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},slice:function(){return this.pushStack(F.apply(this,arguments),"slice",F.call(arguments).join(","))},map:function(a){return this.pushStack(e.map(this,function(b,c){return a.call(b,c,b)}))},end:function(){return this.prevObject||this.constructor(null)},push:E,sort:[].sort,splice:[].splice},e.fn.init.prototype=e.fn,e.extend=e.fn.extend=function(){var a,c,d,f,g,h,i=arguments[0]||{},j=1,k=arguments.length,l=!1;typeof i=="boolean"&&(l=i,i=arguments[1]||{},j=2),typeof i!="object"&&!e.isFunction(i)&&(i={}),k===j&&(i=this,--j);for(;j0)return;A.fireWith(c,[e]),e.fn.trigger&&e(c).trigger("ready").off("ready")}},bindReady:function(){if(!A){A=e.Callbacks("once memory");if(c.readyState==="complete")return setTimeout(e.ready,1);if(c.addEventListener)c.addEventListener("DOMContentLoaded",B,!1),a.addEventListener("load",e.ready,!1);else if(c.attachEvent){c.attachEvent("onreadystatechange",B),a.attachEvent("onload",e.ready);var b=!1;try{b=a.frameElement==null}catch(d){}c.documentElement.doScroll&&b&&J()}}},isFunction:function(a){return e.type(a)==="function"},isArray:Array.isArray||function(a){return e.type(a)==="array"},isWindow:function(a){return a!=null&&a==a.window},isNumeric:function(a){return!isNaN(parseFloat(a))&&isFinite(a)},type:function(a){return a==null?String(a):I[C.call(a)]||"object"},isPlainObject:function(a){if(!a||e.type(a)!=="object"||a.nodeType||e.isWindow(a))return!1;try{if(a.constructor&&!D.call(a,"constructor")&&!D.call(a.constructor.prototype,"isPrototypeOf"))return!1}catch(c){return!1}var d;for(d in a);return d===b||D.call(a,d)},isEmptyObject:function(a){for(var b in a)return!1;return!0},error:function(a){throw new Error(a)},parseJSON:function(b){if(typeof b!="string"||!b)return null;b=e.trim(b);if(a.JSON&&a.JSON.parse)return a.JSON.parse(b);if(n.test(b.replace(o,"@").replace(p,"]").replace(q,"")))return(new Function("return "+b))();e.error("Invalid JSON: "+b)},parseXML:function(c){if(typeof c!="string"||!c)return null;var d,f;try{a.DOMParser?(f=new DOMParser,d=f.parseFromString(c,"text/xml")):(d=new ActiveXObject("Microsoft.XMLDOM"),d.async="false",d.loadXML(c))}catch(g){d=b}(!d||!d.documentElement||d.getElementsByTagName("parsererror").length)&&e.error("Invalid XML: "+c);return d},noop:function(){},globalEval:function(b){b&&j.test(b)&&(a.execScript||function(b){a.eval.call(a,b)})(b)},camelCase:function(a){return a.replace(w,"ms-").replace(v,x)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toUpperCase()===b.toUpperCase()},each:function(a,c,d){var f,g=0,h=a.length,i=h===b||e.isFunction(a);if(d){if(i){for(f in a)if(c.apply(a[f],d)===!1)break}else for(;g0&&a[0]&&a[j-1]||j===0||e.isArray(a));if(k)for(;i1?i.call(arguments,0):b,j.notifyWith(k,e)}}function l(a){return function(c){b[a]=arguments.length>1?i.call(arguments,0):c,--g||j.resolveWith(j,b)}}var b=i.call(arguments,0),c=0,d=b.length,e=Array(d),g=d,h=d,j=d<=1&&a&&f.isFunction(a.promise)?a:f.Deferred(),k=j.promise();if(d>1){for(;c
      a",d=p.getElementsByTagName("*"),e=p.getElementsByTagName("a")[0];if(!d||!d.length||!e)return{};g=c.createElement("select"),h=g.appendChild(c.createElement("option")),i=p.getElementsByTagName("input")[0],b={leadingWhitespace:p.firstChild.nodeType===3,tbody:!p.getElementsByTagName("tbody").length,htmlSerialize:!!p.getElementsByTagName("link").length,style:/top/.test(e.getAttribute("style")),hrefNormalized:e.getAttribute("href")==="/a",opacity:/^0.55/.test(e.style.opacity),cssFloat:!!e.style.cssFloat,checkOn:i.value==="on",optSelected:h.selected,getSetAttribute:p.className!=="t",enctype:!!c.createElement("form").enctype,html5Clone:c.createElement("nav").cloneNode(!0).outerHTML!=="<:nav>",submitBubbles:!0,changeBubbles:!0,focusinBubbles:!1,deleteExpando:!0,noCloneEvent:!0,inlineBlockNeedsLayout:!1,shrinkWrapBlocks:!1,reliableMarginRight:!0,pixelMargin:!0},f.boxModel=b.boxModel=c.compatMode==="CSS1Compat",i.checked=!0,b.noCloneChecked=i.cloneNode(!0).checked,g.disabled=!0,b.optDisabled=!h.disabled;try{delete p.test}catch(r){b.deleteExpando=!1}!p.addEventListener&&p.attachEvent&&p.fireEvent&&(p.attachEvent("onclick",function(){b.noCloneEvent=!1}),p.cloneNode(!0).fireEvent("onclick")),i=c.createElement("input"),i.value="t",i.setAttribute("type","radio"),b.radioValue=i.value==="t",i.setAttribute("checked","checked"),i.setAttribute("name","t"),p.appendChild(i),j=c.createDocumentFragment(),j.appendChild(p.lastChild),b.checkClone=j.cloneNode(!0).cloneNode(!0).lastChild.checked,b.appendChecked=i.checked,j.removeChild(i),j.appendChild(p);if(p.attachEvent)for(n in{submit:1,change:1,focusin:1})m="on"+n,o=m in p,o||(p.setAttribute(m,"return;"),o=typeof p[m]=="function"),b[n+"Bubbles"]=o;j.removeChild(p),j=g=h=p=i=null,f(function(){var d,e,g,h,i,j,l,m,n,q,r,s,t,u=c.getElementsByTagName("body")[0];!u||(m=1,t="padding:0;margin:0;border:",r="position:absolute;top:0;left:0;width:1px;height:1px;",s=t+"0;visibility:hidden;",n="style='"+r+t+"5px solid #000;",q="
      "+""+"
      ",d=c.createElement("div"),d.style.cssText=s+"width:0;height:0;position:static;top:0;margin-top:"+m+"px",u.insertBefore(d,u.firstChild),p=c.createElement("div"),d.appendChild(p),p.innerHTML="
      t
      ",k=p.getElementsByTagName("td"),o=k[0].offsetHeight===0,k[0].style.display="",k[1].style.display="none",b.reliableHiddenOffsets=o&&k[0].offsetHeight===0,a.getComputedStyle&&(p.innerHTML="",l=c.createElement("div"),l.style.width="0",l.style.marginRight="0",p.style.width="2px",p.appendChild(l),b.reliableMarginRight=(parseInt((a.getComputedStyle(l,null)||{marginRight:0}).marginRight,10)||0)===0),typeof p.style.zoom!="undefined"&&(p.innerHTML="",p.style.width=p.style.padding="1px",p.style.border=0,p.style.overflow="hidden",p.style.display="inline",p.style.zoom=1,b.inlineBlockNeedsLayout=p.offsetWidth===3,p.style.display="block",p.style.overflow="visible",p.innerHTML="
      ",b.shrinkWrapBlocks=p.offsetWidth!==3),p.style.cssText=r+s,p.innerHTML=q,e=p.firstChild,g=e.firstChild,i=e.nextSibling.firstChild.firstChild,j={doesNotAddBorder:g.offsetTop!==5,doesAddBorderForTableAndCells:i.offsetTop===5},g.style.position="fixed",g.style.top="20px",j.fixedPosition=g.offsetTop===20||g.offsetTop===15,g.style.position=g.style.top="",e.style.overflow="hidden",e.style.position="relative",j.subtractsBorderForOverflowNotVisible=g.offsetTop===-5,j.doesNotIncludeMarginInBodyOffset=u.offsetTop!==m,a.getComputedStyle&&(p.style.marginTop="1%",b.pixelMargin=(a.getComputedStyle(p,null)||{marginTop:0}).marginTop!=="1%"),typeof d.style.zoom!="undefined"&&(d.style.zoom=1),u.removeChild(d),l=p=d=null,f.extend(b,j))});return b}();var j=/^(?:\{.*\}|\[.*\])$/,k=/([A-Z])/g;f.extend({cache:{},uuid:0,expando:"jQuery"+(f.fn.jquery+Math.random()).replace(/\D/g,""),noData:{embed:!0,object:"clsid:D27CDB6E-AE6D-11cf-96B8-444553540000",applet:!0},hasData:function(a){a=a.nodeType?f.cache[a[f.expando]]:a[f.expando];return!!a&&!m(a)},data:function(a,c,d,e){if(!!f.acceptData(a)){var g,h,i,j=f.expando,k=typeof c=="string",l=a.nodeType,m=l?f.cache:a,n=l?a[j]:a[j]&&j,o=c==="events";if((!n||!m[n]||!o&&!e&&!m[n].data)&&k&&d===b)return;n||(l?a[j]=n=++f.uuid:n=j),m[n]||(m[n]={},l||(m[n].toJSON=f.noop));if(typeof c=="object"||typeof c=="function")e?m[n]=f.extend(m[n],c):m[n].data=f.extend(m[n].data,c);g=h=m[n],e||(h.data||(h.data={}),h=h.data),d!==b&&(h[f.camelCase(c)]=d);if(o&&!h[c])return g.events;k?(i=h[c],i==null&&(i=h[f.camelCase(c)])):i=h;return i}},removeData:function(a,b,c){if(!!f.acceptData(a)){var d,e,g,h=f.expando,i=a.nodeType,j=i?f.cache:a,k=i?a[h]:h;if(!j[k])return;if(b){d=c?j[k]:j[k].data;if(d){f.isArray(b)||(b in d?b=[b]:(b=f.camelCase(b),b in d?b=[b]:b=b.split(" ")));for(e=0,g=b.length;e1,null,!1)},removeData:function(a){return this.each(function(){f.removeData(this,a)})}}),f.extend({_mark:function(a,b){a&&(b=(b||"fx")+"mark",f._data(a,b,(f._data(a,b)||0)+1))},_unmark:function(a,b,c){a!==!0&&(c=b,b=a,a=!1);if(b){c=c||"fx";var d=c+"mark",e=a?0:(f._data(b,d)||1)-1;e?f._data(b,d,e):(f.removeData(b,d,!0),n(b,c,"mark"))}},queue:function(a,b,c){var d;if(a){b=(b||"fx")+"queue",d=f._data(a,b),c&&(!d||f.isArray(c)?d=f._data(a,b,f.makeArray(c)):d.push(c));return d||[]}},dequeue:function(a,b){b=b||"fx";var c=f.queue(a,b),d=c.shift(),e={};d==="inprogress"&&(d=c.shift()),d&&(b==="fx"&&c.unshift("inprogress"),f._data(a,b+".run",e),d.call(a,function(){f.dequeue(a,b)},e)),c.length||(f.removeData(a,b+"queue "+b+".run",!0),n(a,b,"queue"))}}),f.fn.extend({queue:function(a,c){var d=2;typeof a!="string"&&(c=a,a="fx",d--);if(arguments.length1)},removeAttr:function(a){return this.each(function(){f.removeAttr(this,a)})},prop:function(a,b){return f.access(this,f.prop,a,b,arguments.length>1)},removeProp:function(a){a=f.propFix[a]||a;return this.each(function(){try{this[a]=b,delete this[a]}catch(c){}})},addClass:function(a){var b,c,d,e,g,h,i;if(f.isFunction(a))return this.each(function(b){f(this).addClass(a.call(this,b,this.className))});if(a&&typeof a=="string"){b=a.split(p);for(c=0,d=this.length;c-1)return!0;return!1},val:function(a){var c,d,e,g=this[0];{if(!!arguments.length){e=f.isFunction(a);return this.each(function(d){var g=f(this),h;if(this.nodeType===1){e?h=a.call(this,d,g.val()):h=a,h==null?h="":typeof h=="number"?h+="":f.isArray(h)&&(h=f.map(h,function(a){return a==null?"":a+""})),c=f.valHooks[this.type]||f.valHooks[this.nodeName.toLowerCase()];if(!c||!("set"in c)||c.set(this,h,"value")===b)this.value=h}})}if(g){c=f.valHooks[g.type]||f.valHooks[g.nodeName.toLowerCase()];if(c&&"get"in c&&(d=c.get(g,"value"))!==b)return d;d=g.value;return typeof d=="string"?d.replace(q,""):d==null?"":d}}}}),f.extend({valHooks:{option:{get:function(a){var b=a.attributes.value;return!b||b.specified?a.value:a.text}},select:{get:function(a){var b,c,d,e,g=a.selectedIndex,h=[],i=a.options,j=a.type==="select-one";if(g<0)return null;c=j?g:0,d=j?g+1:i.length;for(;c=0}),c.length||(a.selectedIndex=-1);return c}}},attrFn:{val:!0,css:!0,html:!0,text:!0,data:!0,width:!0,height:!0,offset:!0},attr:function(a,c,d,e){var g,h,i,j=a.nodeType;if(!!a&&j!==3&&j!==8&&j!==2){if(e&&c in f.attrFn)return f(a)[c](d);if(typeof a.getAttribute=="undefined")return f.prop(a,c,d);i=j!==1||!f.isXMLDoc(a),i&&(c=c.toLowerCase(),h=f.attrHooks[c]||(u.test(c)?x:w));if(d!==b){if(d===null){f.removeAttr(a,c);return}if(h&&"set"in h&&i&&(g=h.set(a,d,c))!==b)return g;a.setAttribute(c,""+d);return d}if(h&&"get"in h&&i&&(g=h.get(a,c))!==null)return g;g=a.getAttribute(c);return g===null?b:g}},removeAttr:function(a,b){var c,d,e,g,h,i=0;if(b&&a.nodeType===1){d=b.toLowerCase().split(p),g=d.length;for(;i=0}})});var z=/^(?:textarea|input|select)$/i,A=/^([^\.]*)?(?:\.(.+))?$/,B=/(?:^|\s)hover(\.\S+)?\b/,C=/^key/,D=/^(?:mouse|contextmenu)|click/,E=/^(?:focusinfocus|focusoutblur)$/,F=/^(\w*)(?:#([\w\-]+))?(?:\.([\w\-]+))?$/,G=function( -a){var b=F.exec(a);b&&(b[1]=(b[1]||"").toLowerCase(),b[3]=b[3]&&new RegExp("(?:^|\\s)"+b[3]+"(?:\\s|$)"));return b},H=function(a,b){var c=a.attributes||{};return(!b[1]||a.nodeName.toLowerCase()===b[1])&&(!b[2]||(c.id||{}).value===b[2])&&(!b[3]||b[3].test((c["class"]||{}).value))},I=function(a){return f.event.special.hover?a:a.replace(B,"mouseenter$1 mouseleave$1")};f.event={add:function(a,c,d,e,g){var h,i,j,k,l,m,n,o,p,q,r,s;if(!(a.nodeType===3||a.nodeType===8||!c||!d||!(h=f._data(a)))){d.handler&&(p=d,d=p.handler,g=p.selector),d.guid||(d.guid=f.guid++),j=h.events,j||(h.events=j={}),i=h.handle,i||(h.handle=i=function(a){return typeof f!="undefined"&&(!a||f.event.triggered!==a.type)?f.event.dispatch.apply(i.elem,arguments):b},i.elem=a),c=f.trim(I(c)).split(" ");for(k=0;k=0&&(h=h.slice(0,-1),k=!0),h.indexOf(".")>=0&&(i=h.split("."),h=i.shift(),i.sort());if((!e||f.event.customEvent[h])&&!f.event.global[h])return;c=typeof c=="object"?c[f.expando]?c:new f.Event(h,c):new f.Event(h),c.type=h,c.isTrigger=!0,c.exclusive=k,c.namespace=i.join("."),c.namespace_re=c.namespace?new RegExp("(^|\\.)"+i.join("\\.(?:.*\\.)?")+"(\\.|$)"):null,o=h.indexOf(":")<0?"on"+h:"";if(!e){j=f.cache;for(l in j)j[l].events&&j[l].events[h]&&f.event.trigger(c,d,j[l].handle.elem,!0);return}c.result=b,c.target||(c.target=e),d=d!=null?f.makeArray(d):[],d.unshift(c),p=f.event.special[h]||{};if(p.trigger&&p.trigger.apply(e,d)===!1)return;r=[[e,p.bindType||h]];if(!g&&!p.noBubble&&!f.isWindow(e)){s=p.delegateType||h,m=E.test(s+h)?e:e.parentNode,n=null;for(;m;m=m.parentNode)r.push([m,s]),n=m;n&&n===e.ownerDocument&&r.push([n.defaultView||n.parentWindow||a,s])}for(l=0;le&&j.push({elem:this,matches:d.slice(e)});for(k=0;k0?this.on(b,null,a,c):this.trigger(b)},f.attrFn&&(f.attrFn[b]=!0),C.test(b)&&(f.event.fixHooks[b]=f.event.keyHooks),D.test(b)&&(f.event.fixHooks[b]=f.event.mouseHooks)}),function(){function x(a,b,c,e,f,g){for(var h=0,i=e.length;h0){k=j;break}}j=j[a]}e[h]=k}}}function w(a,b,c,e,f,g){for(var h=0,i=e.length;h+~,(\[\\]+)+|[>+~])(\s*,\s*)?((?:.|\r|\n)*)/g,d="sizcache"+(Math.random()+"").replace(".",""),e=0,g=Object.prototype.toString,h=!1,i=!0,j=/\\/g,k=/\r\n/g,l=/\W/;[0,0].sort(function(){i=!1;return 0});var m=function(b,d,e,f){e=e||[],d=d||c;var h=d;if(d.nodeType!==1&&d.nodeType!==9)return[];if(!b||typeof b!="string")return e;var i,j,k,l,n,q,r,t,u=!0,v=m.isXML(d),w=[],x=b;do{a.exec(""),i=a.exec(x);if(i){x=i[3],w.push(i[1]);if(i[2]){l=i[3];break}}}while(i);if(w.length>1&&p.exec(b))if(w.length===2&&o.relative[w[0]])j=y(w[0]+w[1],d,f);else{j=o.relative[w[0]]?[d]:m(w.shift(),d);while(w.length)b=w.shift(),o.relative[b]&&(b+=w.shift()),j=y(b,j,f)}else{!f&&w.length>1&&d.nodeType===9&&!v&&o.match.ID.test(w[0])&&!o.match.ID.test(w[w.length-1])&&(n=m.find(w.shift(),d,v),d=n.expr?m.filter(n.expr,n.set)[0]:n.set[0]);if(d){n=f?{expr:w.pop(),set:s(f)}:m.find(w.pop(),w.length===1&&(w[0]==="~"||w[0]==="+")&&d.parentNode?d.parentNode:d,v),j=n.expr?m.filter(n.expr,n.set):n.set,w.length>0?k=s(j):u=!1;while(w.length)q=w.pop(),r=q,o.relative[q]?r=w.pop():q="",r==null&&(r=d),o.relative[q](k,r,v)}else k=w=[]}k||(k=j),k||m.error(q||b);if(g.call(k)==="[object Array]")if(!u)e.push.apply(e,k);else if(d&&d.nodeType===1)for(t=0;k[t]!=null;t++)k[t]&&(k[t]===!0||k[t].nodeType===1&&m.contains(d,k[t]))&&e.push(j[t]);else for(t=0;k[t]!=null;t++)k[t]&&k[t].nodeType===1&&e.push(j[t]);else s(k,e);l&&(m(l,h,e,f),m.uniqueSort(e));return e};m.uniqueSort=function(a){if(u){h=i,a.sort(u);if(h)for(var b=1;b0},m.find=function(a,b,c){var d,e,f,g,h,i;if(!a)return[];for(e=0,f=o.order.length;e":function(a,b){var c,d=typeof b=="string",e=0,f=a.length;if(d&&!l.test(b)){b=b.toLowerCase();for(;e=0)?c||d.push(h):c&&(b[g]=!1));return!1},ID:function(a){return a[1].replace(j,"")},TAG:function(a,b){return a[1].replace(j,"").toLowerCase()},CHILD:function(a){if(a[1]==="nth"){a[2]||m.error(a[0]),a[2]=a[2].replace(/^\+|\s*/g,"");var b=/(-?)(\d*)(?:n([+\-]?\d*))?/.exec(a[2]==="even"&&"2n"||a[2]==="odd"&&"2n+1"||!/\D/.test(a[2])&&"0n+"+a[2]||a[2]);a[2]=b[1]+(b[2]||1)-0,a[3]=b[3]-0}else a[2]&&m.error(a[0]);a[0]=e++;return a},ATTR:function(a,b,c,d,e,f){var g=a[1]=a[1].replace(j,"");!f&&o.attrMap[g]&&(a[1]=o.attrMap[g]),a[4]=(a[4]||a[5]||"").replace(j,""),a[2]==="~="&&(a[4]=" "+a[4]+" ");return a},PSEUDO:function(b,c,d,e,f){if(b[1]==="not")if((a.exec(b[3])||"").length>1||/^\w/.test(b[3]))b[3]=m(b[3],null,null,c);else{var g=m.filter(b[3],c,d,!0^f);d||e.push.apply(e,g);return!1}else if(o.match.POS.test(b[0])||o.match.CHILD.test(b[0]))return!0;return b},POS:function(a){a.unshift(!0);return a}},filters:{enabled:function(a){return a.disabled===!1&&a.type!=="hidden"},disabled:function(a){return a.disabled===!0},checked:function(a){return a.checked===!0},selected:function(a){a.parentNode&&a.parentNode.selectedIndex;return a.selected===!0},parent:function(a){return!!a.firstChild},empty:function(a){return!a.firstChild},has:function(a,b,c){return!!m(c[3],a).length},header:function(a){return/h\d/i.test(a.nodeName)},text:function(a){var b=a.getAttribute("type"),c=a.type;return a.nodeName.toLowerCase()==="input"&&"text"===c&&(b===c||b===null)},radio:function(a){return a.nodeName.toLowerCase()==="input"&&"radio"===a.type},checkbox:function(a){return a.nodeName.toLowerCase()==="input"&&"checkbox"===a.type},file:function(a){return a.nodeName.toLowerCase()==="input"&&"file"===a.type},password:function(a){return a.nodeName.toLowerCase()==="input"&&"password"===a.type},submit:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"submit"===a.type},image:function(a){return a.nodeName.toLowerCase()==="input"&&"image"===a.type},reset:function(a){var b=a.nodeName.toLowerCase();return(b==="input"||b==="button")&&"reset"===a.type},button:function(a){var b=a.nodeName.toLowerCase();return b==="input"&&"button"===a.type||b==="button"},input:function(a){return/input|select|textarea|button/i.test(a.nodeName)},focus:function(a){return a===a.ownerDocument.activeElement}},setFilters:{first:function(a,b){return b===0},last:function(a,b,c,d){return b===d.length-1},even:function(a,b){return b%2===0},odd:function(a,b){return b%2===1},lt:function(a,b,c){return bc[3]-0},nth:function(a,b,c){return c[3]-0===b},eq:function(a,b,c){return c[3]-0===b}},filter:{PSEUDO:function(a,b,c,d){var e=b[1],f=o.filters[e];if(f)return f(a,c,b,d);if(e==="contains")return(a.textContent||a.innerText||n([a])||"").indexOf(b[3])>=0;if(e==="not"){var g=b[3];for(var h=0,i=g.length;h=0}},ID:function(a,b){return a.nodeType===1&&a.getAttribute("id")===b},TAG:function(a,b){return b==="*"&&a.nodeType===1||!!a.nodeName&&a.nodeName.toLowerCase()===b},CLASS:function(a,b){return(" "+(a.className||a.getAttribute("class"))+" ").indexOf(b)>-1},ATTR:function(a,b){var c=b[1],d=m.attr?m.attr(a,c):o.attrHandle[c]?o.attrHandle[c](a):a[c]!=null?a[c]:a.getAttribute(c),e=d+"",f=b[2],g=b[4];return d==null?f==="!=":!f&&m.attr?d!=null:f==="="?e===g:f==="*="?e.indexOf(g)>=0:f==="~="?(" "+e+" ").indexOf(g)>=0:g?f==="!="?e!==g:f==="^="?e.indexOf(g)===0:f==="$="?e.substr(e.length-g.length)===g:f==="|="?e===g||e.substr(0,g.length+1)===g+"-":!1:e&&d!==!1},POS:function(a,b,c,d){var e=b[2],f=o.setFilters[e];if(f)return f(a,c,b,d)}}},p=o.match.POS,q=function(a,b){return"\\"+(b-0+1)};for(var r in o.match)o.match[r]=new RegExp(o.match[r].source+/(?![^\[]*\])(?![^\(]*\))/.source),o.leftMatch[r]=new RegExp(/(^(?:.|\r|\n)*?)/.source+o.match[r].source.replace(/\\(\d+)/g,q));o.match.globalPOS=p;var s=function(a,b){a=Array.prototype.slice.call(a,0);if(b){b.push.apply(b,a);return b}return a};try{Array.prototype.slice.call(c.documentElement.childNodes,0)[0].nodeType}catch(t){s=function(a,b){var c=0,d=b||[];if(g.call(a)==="[object Array]")Array.prototype.push.apply(d,a);else if(typeof a.length=="number")for(var e=a.length;c",e.insertBefore(a,e.firstChild),c.getElementById(d)&&(o.find.ID=function(a,c,d){if(typeof c.getElementById!="undefined"&&!d){var e=c.getElementById(a[1]);return e?e.id===a[1]||typeof e.getAttributeNode!="undefined"&&e.getAttributeNode("id").nodeValue===a[1]?[e]:b:[]}},o.filter.ID=function(a,b){var c=typeof a.getAttributeNode!="undefined"&&a.getAttributeNode("id");return a.nodeType===1&&c&&c.nodeValue===b}),e.removeChild(a),e=a=null}(),function(){var a=c.createElement("div");a.appendChild(c.createComment("")),a.getElementsByTagName("*").length>0&&(o.find.TAG=function(a,b){var c=b.getElementsByTagName(a[1]);if(a[1]==="*"){var d=[];for(var e=0;c[e];e++)c[e].nodeType===1&&d.push(c[e]);c=d}return c}),a.innerHTML="",a.firstChild&&typeof a.firstChild.getAttribute!="undefined"&&a.firstChild.getAttribute("href")!=="#"&&(o.attrHandle.href=function(a){return a.getAttribute("href",2)}),a=null}(),c.querySelectorAll&&function(){var a=m,b=c.createElement("div"),d="__sizzle__";b.innerHTML="

      ";if(!b.querySelectorAll||b.querySelectorAll(".TEST").length!==0){m=function(b,e,f,g){e=e||c;if(!g&&!m.isXML(e)){var h=/^(\w+$)|^\.([\w\-]+$)|^#([\w\-]+$)/.exec(b);if(h&&(e.nodeType===1||e.nodeType===9)){if(h[1])return s(e.getElementsByTagName(b),f);if(h[2]&&o.find.CLASS&&e.getElementsByClassName)return s(e.getElementsByClassName(h[2]),f)}if(e.nodeType===9){if(b==="body"&&e.body)return s([e.body],f);if(h&&h[3]){var i=e.getElementById(h[3]);if(!i||!i.parentNode)return s([],f);if(i.id===h[3])return s([i],f)}try{return s(e.querySelectorAll(b),f)}catch(j){}}else if(e.nodeType===1&&e.nodeName.toLowerCase()!=="object"){var k=e,l=e.getAttribute("id"),n=l||d,p=e.parentNode,q=/^\s*[+~]/.test(b);l?n=n.replace(/'/g,"\\$&"):e.setAttribute("id",n),q&&p&&(e=e.parentNode);try{if(!q||p)return s(e.querySelectorAll("[id='"+n+"'] "+b),f)}catch(r){}finally{l||k.removeAttribute("id")}}}return a(b,e,f,g)};for(var e in a)m[e]=a[e];b=null}}(),function(){var a=c.documentElement,b=a.matchesSelector||a.mozMatchesSelector||a.webkitMatchesSelector||a.msMatchesSelector;if(b){var d=!b.call(c.createElement("div"),"div"),e=!1;try{b.call(c.documentElement,"[test!='']:sizzle")}catch(f){e=!0}m.matchesSelector=function(a,c){c=c.replace(/\=\s*([^'"\]]*)\s*\]/g,"='$1']");if(!m.isXML(a))try{if(e||!o.match.PSEUDO.test(c)&&!/!=/.test(c)){var f=b.call(a,c);if(f||!d||a.document&&a.document.nodeType!==11)return f}}catch(g){}return m(c,null,null,[a]).length>0}}}(),function(){var a=c.createElement("div");a.innerHTML="
      ";if(!!a.getElementsByClassName&&a.getElementsByClassName("e").length!==0){a.lastChild.className="e";if(a.getElementsByClassName("e").length===1)return;o.order.splice(1,0,"CLASS"),o.find.CLASS=function(a,b,c){if(typeof b.getElementsByClassName!="undefined"&&!c)return b.getElementsByClassName(a[1])},a=null}}(),c.documentElement.contains?m.contains=function(a,b){return a!==b&&(a.contains?a.contains(b):!0)}:c.documentElement.compareDocumentPosition?m.contains=function(a,b){return!!(a.compareDocumentPosition(b)&16)}:m.contains=function(){return!1},m.isXML=function(a){var b=(a?a.ownerDocument||a:0).documentElement;return b?b.nodeName!=="HTML":!1};var y=function(a,b,c){var d,e=[],f="",g=b.nodeType?[b]:b;while(d=o.match.PSEUDO.exec(a))f+=d[0],a=a.replace(o.match.PSEUDO,"");a=o.relative[a]?a+"*":a;for(var h=0,i=g.length;h0)for(h=g;h=0:f.filter(a,this).length>0:this.filter(a).length>0)},closest:function(a,b){var c=[],d,e,g=this[0];if(f.isArray(a)){var h=1;while(g&&g.ownerDocument&&g!==b){for(d=0;d-1:f.find.matchesSelector(g,a)){c.push(g);break}g=g.parentNode;if(!g||!g.ownerDocument||g===b||g.nodeType===11)break}}c=c.length>1?f.unique(c):c;return this.pushStack(c,"closest",a)},index:function(a){if(!a)return this[0]&&this[0].parentNode?this.prevAll().length:-1;if(typeof a=="string")return f.inArray(this[0],f(a));return f.inArray(a.jquery?a[0]:a,this)},add:function(a,b){var c=typeof a=="string"?f(a,b):f.makeArray(a&&a.nodeType?[a]:a),d=f.merge(this.get(),c);return this.pushStack(S(c[0])||S(d[0])?d:f.unique(d))},andSelf:function(){return this.add(this.prevObject)}}),f.each({parent:function(a){var b=a.parentNode;return b&&b.nodeType!==11?b:null},parents:function(a){return f.dir(a,"parentNode")},parentsUntil:function(a,b,c){return f.dir(a,"parentNode",c)},next:function(a){return f.nth(a,2,"nextSibling")},prev:function(a){return f.nth(a,2,"previousSibling")},nextAll:function(a){return f.dir(a,"nextSibling")},prevAll:function(a){return f.dir(a,"previousSibling")},nextUntil:function(a,b,c){return f.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return f.dir(a,"previousSibling",c)},siblings:function(a){return f.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return f.sibling(a.firstChild)},contents:function(a){return f.nodeName(a,"iframe")?a.contentDocument||a.contentWindow.document:f.makeArray(a.childNodes)}},function(a,b){f.fn[a]=function(c,d){var e=f.map(this,b,c);L.test(a)||(d=c),d&&typeof d=="string"&&(e=f.filter(d,e)),e=this.length>1&&!R[a]?f.unique(e):e,(this.length>1||N.test(d))&&M.test(a)&&(e=e.reverse());return this.pushStack(e,a,P.call(arguments).join(","))}}),f.extend({filter:function(a,b,c){c&&(a=":not("+a+")");return b.length===1?f.find.matchesSelector(b[0],a)?[b[0]]:[]:f.find.matches(a,b)},dir:function(a,c,d){var e=[],g=a[c];while(g&&g.nodeType!==9&&(d===b||g.nodeType!==1||!f(g).is(d)))g.nodeType===1&&e.push(g),g=g[c];return e},nth:function(a,b,c,d){b=b||1;var e=0;for(;a;a=a[c])if(a.nodeType===1&&++e===b)break;return a},sibling:function(a,b){var c=[];for(;a;a=a.nextSibling)a.nodeType===1&&a!==b&&c.push(a);return c}});var V="abbr|article|aside|audio|bdi|canvas|data|datalist|details|figcaption|figure|footer|header|hgroup|mark|meter|nav|output|progress|section|summary|time|video",W=/ jQuery\d+="(?:\d+|null)"/g,X=/^\s+/,Y=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig,Z=/<([\w:]+)/,$=/]","i"),bd=/checked\s*(?:[^=]|=\s*.checked.)/i,be=/\/(java|ecma)script/i,bf=/^\s*",""],legend:[1,"
      ","
      "],thead:[1,"","
      "],tr:[2,"","
      "],td:[3,"","
      "],col:[2,"","
      "],area:[1,"",""],_default:[0,"",""]},bh=U(c);bg.optgroup=bg.option,bg.tbody=bg.tfoot=bg.colgroup=bg.caption=bg.thead,bg.th=bg.td,f.support.htmlSerialize||(bg._default=[1,"div
      ","
      "]),f.fn.extend({text:function(a){return f.access(this,function(a){return a===b?f.text(this):this.empty().append((this[0]&&this[0].ownerDocument||c).createTextNode(a))},null,a,arguments.length)},wrapAll:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapAll(a.call(this,b))});if(this[0]){var b=f(a,this[0].ownerDocument).eq(0).clone(!0);this[0].parentNode&&b.insertBefore(this[0]),b.map(function(){var a=this;while(a.firstChild&&a.firstChild.nodeType===1)a=a.firstChild;return a}).append(this)}return this},wrapInner:function(a){if(f.isFunction(a))return this.each(function(b){f(this).wrapInner(a.call(this,b))});return this.each(function(){var b=f(this),c=b.contents();c.length?c.wrapAll(a):b.append(a)})},wrap:function(a){var b=f.isFunction(a);return this.each(function(c){f(this).wrapAll(b?a.call(this,c):a)})},unwrap:function(){return this.parent().each(function(){f.nodeName(this,"body")||f(this).replaceWith(this.childNodes)}).end()},append:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.appendChild(a)})},prepend:function(){return this.domManip(arguments,!0,function(a){this.nodeType===1&&this.insertBefore(a,this.firstChild)})},before:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this)});if(arguments.length){var a=f -.clean(arguments);a.push.apply(a,this.toArray());return this.pushStack(a,"before",arguments)}},after:function(){if(this[0]&&this[0].parentNode)return this.domManip(arguments,!1,function(a){this.parentNode.insertBefore(a,this.nextSibling)});if(arguments.length){var a=this.pushStack(this,"after",arguments);a.push.apply(a,f.clean(arguments));return a}},remove:function(a,b){for(var c=0,d;(d=this[c])!=null;c++)if(!a||f.filter(a,[d]).length)!b&&d.nodeType===1&&(f.cleanData(d.getElementsByTagName("*")),f.cleanData([d])),d.parentNode&&d.parentNode.removeChild(d);return this},empty:function(){for(var a=0,b;(b=this[a])!=null;a++){b.nodeType===1&&f.cleanData(b.getElementsByTagName("*"));while(b.firstChild)b.removeChild(b.firstChild)}return this},clone:function(a,b){a=a==null?!1:a,b=b==null?a:b;return this.map(function(){return f.clone(this,a,b)})},html:function(a){return f.access(this,function(a){var c=this[0]||{},d=0,e=this.length;if(a===b)return c.nodeType===1?c.innerHTML.replace(W,""):null;if(typeof a=="string"&&!ba.test(a)&&(f.support.leadingWhitespace||!X.test(a))&&!bg[(Z.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(Y,"<$1>");try{for(;d1&&l0?this.clone(!0):this).get();f(e[h])[b](j),d=d.concat(j)}return this.pushStack(d,a,e.selector)}}),f.extend({clone:function(a,b,c){var d,e,g,h=f.support.html5Clone||f.isXMLDoc(a)||!bc.test("<"+a.nodeName+">")?a.cloneNode(!0):bo(a);if((!f.support.noCloneEvent||!f.support.noCloneChecked)&&(a.nodeType===1||a.nodeType===11)&&!f.isXMLDoc(a)){bk(a,h),d=bl(a),e=bl(h);for(g=0;d[g];++g)e[g]&&bk(d[g],e[g])}if(b){bj(a,h);if(c){d=bl(a),e=bl(h);for(g=0;d[g];++g)bj(d[g],e[g])}}d=e=null;return h},clean:function(a,b,d,e){var g,h,i,j=[];b=b||c,typeof b.createElement=="undefined"&&(b=b.ownerDocument||b[0]&&b[0].ownerDocument||c);for(var k=0,l;(l=a[k])!=null;k++){typeof l=="number"&&(l+="");if(!l)continue;if(typeof l=="string")if(!_.test(l))l=b.createTextNode(l);else{l=l.replace(Y,"<$1>");var m=(Z.exec(l)||["",""])[1].toLowerCase(),n=bg[m]||bg._default,o=n[0],p=b.createElement("div"),q=bh.childNodes,r;b===c?bh.appendChild(p):U(b).appendChild(p),p.innerHTML=n[1]+l+n[2];while(o--)p=p.lastChild;if(!f.support.tbody){var s=$.test(l),t=m==="table"&&!s?p.firstChild&&p.firstChild.childNodes:n[1]===""&&!s?p.childNodes:[];for(i=t.length-1;i>=0;--i)f.nodeName(t[i],"tbody")&&!t[i].childNodes.length&&t[i].parentNode.removeChild(t[i])}!f.support.leadingWhitespace&&X.test(l)&&p.insertBefore(b.createTextNode(X.exec(l)[0]),p.firstChild),l=p.childNodes,p&&(p.parentNode.removeChild(p),q.length>0&&(r=q[q.length-1],r&&r.parentNode&&r.parentNode.removeChild(r)))}var u;if(!f.support.appendChecked)if(l[0]&&typeof (u=l.length)=="number")for(i=0;i1)},f.extend({cssHooks:{opacity:{get:function(a,b){if(b){var c=by(a,"opacity");return c===""?"1":c}return a.style.opacity}}},cssNumber:{fillOpacity:!0,fontWeight:!0,lineHeight:!0,opacity:!0,orphans:!0,widows:!0,zIndex:!0,zoom:!0},cssProps:{"float":f.support.cssFloat?"cssFloat":"styleFloat"},style:function(a,c,d,e){if(!!a&&a.nodeType!==3&&a.nodeType!==8&&!!a.style){var g,h,i=f.camelCase(c),j=a.style,k=f.cssHooks[i];c=f.cssProps[i]||i;if(d===b){if(k&&"get"in k&&(g=k.get(a,!1,e))!==b)return g;return j[c]}h=typeof d,h==="string"&&(g=bu.exec(d))&&(d=+(g[1]+1)*+g[2]+parseFloat(f.css(a,c)),h="number");if(d==null||h==="number"&&isNaN(d))return;h==="number"&&!f.cssNumber[i]&&(d+="px");if(!k||!("set"in k)||(d=k.set(a,d))!==b)try{j[c]=d}catch(l){}}},css:function(a,c,d){var e,g;c=f.camelCase(c),g=f.cssHooks[c],c=f.cssProps[c]||c,c==="cssFloat"&&(c="float");if(g&&"get"in g&&(e=g.get(a,!0,d))!==b)return e;if(by)return by(a,c)},swap:function(a,b,c){var d={},e,f;for(f in b)d[f]=a.style[f],a.style[f]=b[f];e=c.call(a);for(f in b)a.style[f]=d[f];return e}}),f.curCSS=f.css,c.defaultView&&c.defaultView.getComputedStyle&&(bz=function(a,b){var c,d,e,g,h=a.style;b=b.replace(br,"-$1").toLowerCase(),(d=a.ownerDocument.defaultView)&&(e=d.getComputedStyle(a,null))&&(c=e.getPropertyValue(b),c===""&&!f.contains(a.ownerDocument.documentElement,a)&&(c=f.style(a,b))),!f.support.pixelMargin&&e&&bv.test(b)&&bt.test(c)&&(g=h.width,h.width=c,c=e.width,h.width=g);return c}),c.documentElement.currentStyle&&(bA=function(a,b){var c,d,e,f=a.currentStyle&&a.currentStyle[b],g=a.style;f==null&&g&&(e=g[b])&&(f=e),bt.test(f)&&(c=g.left,d=a.runtimeStyle&&a.runtimeStyle.left,d&&(a.runtimeStyle.left=a.currentStyle.left),g.left=b==="fontSize"?"1em":f,f=g.pixelLeft+"px",g.left=c,d&&(a.runtimeStyle.left=d));return f===""?"auto":f}),by=bz||bA,f.each(["height","width"],function(a,b){f.cssHooks[b]={get:function(a,c,d){if(c)return a.offsetWidth!==0?bB(a,b,d):f.swap(a,bw,function(){return bB(a,b,d)})},set:function(a,b){return bs.test(b)?b+"px":b}}}),f.support.opacity||(f.cssHooks.opacity={get:function(a,b){return bq.test((b&&a.currentStyle?a.currentStyle.filter:a.style.filter)||"")?parseFloat(RegExp.$1)/100+"":b?"1":""},set:function(a,b){var c=a.style,d=a.currentStyle,e=f.isNumeric(b)?"alpha(opacity="+b*100+")":"",g=d&&d.filter||c.filter||"";c.zoom=1;if(b>=1&&f.trim(g.replace(bp,""))===""){c.removeAttribute("filter");if(d&&!d.filter)return}c.filter=bp.test(g)?g.replace(bp,e):g+" "+e}}),f(function(){f.support.reliableMarginRight||(f.cssHooks.marginRight={get:function(a,b){return f.swap(a,{display:"inline-block"},function(){return b?by(a,"margin-right"):a.style.marginRight})}})}),f.expr&&f.expr.filters&&(f.expr.filters.hidden=function(a){var b=a.offsetWidth,c=a.offsetHeight;return b===0&&c===0||!f.support.reliableHiddenOffsets&&(a.style&&a.style.display||f.css(a,"display"))==="none"},f.expr.filters.visible=function(a){return!f.expr.filters.hidden(a)}),f.each({margin:"",padding:"",border:"Width"},function(a,b){f.cssHooks[a+b]={expand:function(c){var d,e=typeof c=="string"?c.split(" "):[c],f={};for(d=0;d<4;d++)f[a+bx[d]+b]=e[d]||e[d-2]||e[0];return f}}});var bC=/%20/g,bD=/\[\]$/,bE=/\r?\n/g,bF=/#.*$/,bG=/^(.*?):[ \t]*([^\r\n]*)\r?$/mg,bH=/^(?:color|date|datetime|datetime-local|email|hidden|month|number|password|range|search|tel|text|time|url|week)$/i,bI=/^(?:about|app|app\-storage|.+\-extension|file|res|widget):$/,bJ=/^(?:GET|HEAD)$/,bK=/^\/\//,bL=/\?/,bM=/)<[^<]*)*<\/script>/gi,bN=/^(?:select|textarea)/i,bO=/\s+/,bP=/([?&])_=[^&]*/,bQ=/^([\w\+\.\-]+:)(?:\/\/([^\/?#:]*)(?::(\d+))?)?/,bR=f.fn.load,bS={},bT={},bU,bV,bW=["*/"]+["*"];try{bU=e.href}catch(bX){bU=c.createElement("a"),bU.href="",bU=bU.href}bV=bQ.exec(bU.toLowerCase())||[],f.fn.extend({load:function(a,c,d){if(typeof a!="string"&&bR)return bR.apply(this,arguments);if(!this.length)return this;var e=a.indexOf(" ");if(e>=0){var g=a.slice(e,a.length);a=a.slice(0,e)}var h="GET";c&&(f.isFunction(c)?(d=c,c=b):typeof c=="object"&&(c=f.param(c,f.ajaxSettings.traditional),h="POST"));var i=this;f.ajax({url:a,type:h,dataType:"html",data:c,complete:function(a,b,c){c=a.responseText,a.isResolved()&&(a.done(function(a){c=a}),i.html(g?f("
      ").append(c.replace(bM,"")).find(g):c)),d&&i.each(d,[c,b,a])}});return this},serialize:function(){return f.param(this.serializeArray())},serializeArray:function(){return this.map(function(){return this.elements?f.makeArray(this.elements):this}).filter(function(){return this.name&&!this.disabled&&(this.checked||bN.test(this.nodeName)||bH.test(this.type))}).map(function(a,b){var c=f(this).val();return c==null?null:f.isArray(c)?f.map(c,function(a,c){return{name:b.name,value:a.replace(bE,"\r\n")}}):{name:b.name,value:c.replace(bE,"\r\n")}}).get()}}),f.each("ajaxStart ajaxStop ajaxComplete ajaxError ajaxSuccess ajaxSend".split(" "),function(a,b){f.fn[b]=function(a){return this.on(b,a)}}),f.each(["get","post"],function(a,c){f[c]=function(a,d,e,g){f.isFunction(d)&&(g=g||e,e=d,d=b);return f.ajax({type:c,url:a,data:d,success:e,dataType:g})}}),f.extend({getScript:function(a,c){return f.get(a,b,c,"script")},getJSON:function(a,b,c){return f.get(a,b,c,"json")},ajaxSetup:function(a,b){b?b$(a,f.ajaxSettings):(b=a,a=f.ajaxSettings),b$(a,b);return a},ajaxSettings:{url:bU,isLocal:bI.test(bV[1]),global:!0,type:"GET",contentType:"application/x-www-form-urlencoded; charset=UTF-8",processData:!0,async:!0,accepts:{xml:"application/xml, text/xml",html:"text/html",text:"text/plain",json:"application/json, text/javascript","*":bW},contents:{xml:/xml/,html:/html/,json:/json/},responseFields:{xml:"responseXML",text:"responseText"},converters:{"* text":a.String,"text html":!0,"text json":f.parseJSON,"text xml":f.parseXML},flatOptions:{context:!0,url:!0}},ajaxPrefilter:bY(bS),ajaxTransport:bY(bT),ajax:function(a,c){function w(a,c,l,m){if(s!==2){s=2,q&&clearTimeout(q),p=b,n=m||"",v.readyState=a>0?4:0;var o,r,u,w=c,x=l?ca(d,v,l):b,y,z;if(a>=200&&a<300||a===304){if(d.ifModified){if(y=v.getResponseHeader("Last-Modified"))f.lastModified[k]=y;if(z=v.getResponseHeader("Etag"))f.etag[k]=z}if(a===304)w="notmodified",o=!0;else try{r=cb(d,x),w="success",o=!0}catch(A){w="parsererror",u=A}}else{u=w;if(!w||a)w="error",a<0&&(a=0)}v.status=a,v.statusText=""+(c||w),o?h.resolveWith(e,[r,w,v]):h.rejectWith(e,[v,w,u]),v.statusCode(j),j=b,t&&g.trigger("ajax"+(o?"Success":"Error"),[v,d,o?r:u]),i.fireWith(e,[v,w]),t&&(g.trigger("ajaxComplete",[v,d]),--f.active||f.event.trigger("ajaxStop"))}}typeof a=="object"&&(c=a,a=b),c=c||{};var d=f.ajaxSetup({},c),e=d.context||d,g=e!==d&&(e.nodeType||e instanceof f)?f(e):f.event,h=f.Deferred(),i=f.Callbacks("once memory"),j=d.statusCode||{},k,l={},m={},n,o,p,q,r,s=0,t,u,v={readyState:0,setRequestHeader:function(a,b){if(!s){var c=a.toLowerCase();a=m[c]=m[c]||a,l[a]=b}return this},getAllResponseHeaders:function(){return s===2?n:null},getResponseHeader:function(a){var c;if(s===2){if(!o){o={};while(c=bG.exec(n))o[c[1].toLowerCase()]=c[2]}c=o[a.toLowerCase()]}return c===b?null:c},overrideMimeType:function(a){s||(d.mimeType=a);return this},abort:function(a){a=a||"abort",p&&p.abort(a),w(0,a);return this}};h.promise(v),v.success=v.done,v.error=v.fail,v.complete=i.add,v.statusCode=function(a){if(a){var b;if(s<2)for(b in a)j[b]=[j[b],a[b]];else b=a[v.status],v.then(b,b)}return this},d.url=((a||d.url)+"").replace(bF,"").replace(bK,bV[1]+"//"),d.dataTypes=f.trim(d.dataType||"*").toLowerCase().split(bO),d.crossDomain==null&&(r=bQ.exec(d.url.toLowerCase()),d.crossDomain=!(!r||r[1]==bV[1]&&r[2]==bV[2]&&(r[3]||(r[1]==="http:"?80:443))==(bV[3]||(bV[1]==="http:"?80:443)))),d.data&&d.processData&&typeof d.data!="string"&&(d.data=f.param(d.data,d.traditional)),bZ(bS,d,c,v);if(s===2)return!1;t=d.global,d.type=d.type.toUpperCase(),d.hasContent=!bJ.test(d.type),t&&f.active++===0&&f.event.trigger("ajaxStart");if(!d.hasContent){d.data&&(d.url+=(bL.test(d.url)?"&":"?")+d.data,delete d.data),k=d.url;if(d.cache===!1){var x=f.now(),y=d.url.replace(bP,"$1_="+x);d.url=y+(y===d.url?(bL.test(d.url)?"&":"?")+"_="+x:"")}}(d.data&&d.hasContent&&d.contentType!==!1||c.contentType)&&v.setRequestHeader("Content-Type",d.contentType),d.ifModified&&(k=k||d.url,f.lastModified[k]&&v.setRequestHeader("If-Modified-Since",f.lastModified[k]),f.etag[k]&&v.setRequestHeader("If-None-Match",f.etag[k])),v.setRequestHeader("Accept",d.dataTypes[0]&&d.accepts[d.dataTypes[0]]?d.accepts[d.dataTypes[0]]+(d.dataTypes[0]!=="*"?", "+bW+"; q=0.01":""):d.accepts["*"]);for(u in d.headers)v.setRequestHeader(u,d.headers[u]);if(d.beforeSend&&(d.beforeSend.call(e,v,d)===!1||s===2)){v.abort();return!1}for(u in{success:1,error:1,complete:1})v[u](d[u]);p=bZ(bT,d,c,v);if(!p)w(-1,"No Transport");else{v.readyState=1,t&&g.trigger("ajaxSend",[v,d]),d.async&&d.timeout>0&&(q=setTimeout(function(){v.abort("timeout")},d.timeout));try{s=1,p.send(l,w)}catch(z){if(s<2)w(-1,z);else throw z}}return v},param:function(a,c){var d=[],e=function(a,b){b=f.isFunction(b)?b():b,d[d.length]=encodeURIComponent(a)+"="+encodeURIComponent(b)};c===b&&(c=f.ajaxSettings.traditional);if(f.isArray(a)||a.jquery&&!f.isPlainObject(a))f.each(a,function(){e(this.name,this.value)});else for(var g in a)b_(g,a[g],c,e);return d.join("&").replace(bC,"+")}}),f.extend({active:0,lastModified:{},etag:{}});var cc=f.now(),cd=/(\=)\?(&|$)|\?\?/i;f.ajaxSetup({jsonp:"callback",jsonpCallback:function(){return f.expando+"_"+cc++}}),f.ajaxPrefilter("json jsonp",function(b,c,d){var e=typeof b.data=="string"&&/^application\/x\-www\-form\-urlencoded/.test(b.contentType);if(b.dataTypes[0]==="jsonp"||b.jsonp!==!1&&(cd.test(b.url)||e&&cd.test(b.data))){var g,h=b.jsonpCallback=f.isFunction(b.jsonpCallback)?b.jsonpCallback():b.jsonpCallback,i=a[h],j=b.url,k=b.data,l="$1"+h+"$2";b.jsonp!==!1&&(j=j.replace(cd,l),b.url===j&&(e&&(k=k.replace(cd,l)),b.data===k&&(j+=(/\?/.test(j)?"&":"?")+b.jsonp+"="+h))),b.url=j,b.data=k,a[h]=function(a){g=[a]},d.always(function(){a[h]=i,g&&f.isFunction(i)&&a[h](g[0])}),b.converters["script json"]=function(){g||f.error(h+" was not called");return g[0]},b.dataTypes[0]="json";return"script"}}),f.ajaxSetup({accepts:{script:"text/javascript, application/javascript, application/ecmascript, application/x-ecmascript"},contents:{script:/javascript|ecmascript/},converters:{"text script":function(a){f.globalEval(a);return a}}}),f.ajaxPrefilter("script",function(a){a.cache===b&&(a.cache=!1),a.crossDomain&&(a.type="GET",a.global=!1)}),f.ajaxTransport("script",function(a){if(a.crossDomain){var d,e=c.head||c.getElementsByTagName("head")[0]||c.documentElement;return{send:function(f,g){d=c.createElement("script"),d.async="async",a.scriptCharset&&(d.charset=a.scriptCharset),d.src=a.url,d.onload=d.onreadystatechange=function(a,c){if(c||!d.readyState||/loaded|complete/.test(d.readyState))d.onload=d.onreadystatechange=null,e&&d.parentNode&&e.removeChild(d),d=b,c||g(200,"success")},e.insertBefore(d,e.firstChild)},abort:function(){d&&d.onload(0,1)}}}});var ce=a.ActiveXObject?function(){for(var a in cg)cg[a](0,1)}:!1,cf=0,cg;f.ajaxSettings.xhr=a.ActiveXObject?function(){return!this.isLocal&&ch()||ci()}:ch,function(a){f.extend(f.support,{ajax:!!a,cors:!!a&&"withCredentials"in a})}(f.ajaxSettings.xhr()),f.support.ajax&&f.ajaxTransport(function(c){if(!c.crossDomain||f.support.cors){var d;return{send:function(e,g){var h=c.xhr(),i,j;c.username?h.open(c.type,c.url,c.async,c.username,c.password):h.open(c.type,c.url,c.async);if(c.xhrFields)for(j in c.xhrFields)h[j]=c.xhrFields[j];c.mimeType&&h.overrideMimeType&&h.overrideMimeType(c.mimeType),!c.crossDomain&&!e["X-Requested-With"]&&(e["X-Requested-With"]="XMLHttpRequest");try{for(j in e)h.setRequestHeader(j,e[j])}catch(k){}h.send(c.hasContent&&c.data||null),d=function(a,e){var j,k,l,m,n;try{if(d&&(e||h.readyState===4)){d=b,i&&(h.onreadystatechange=f.noop,ce&&delete cg[i]);if(e)h.readyState!==4&&h.abort();else{j=h.status,l=h.getAllResponseHeaders(),m={},n=h.responseXML,n&&n.documentElement&&(m.xml=n);try{m.text=h.responseText}catch(a){}try{k=h.statusText}catch(o){k=""}!j&&c.isLocal&&!c.crossDomain?j=m.text?200:404:j===1223&&(j=204)}}}catch(p){e||g(-1,p)}m&&g(j,k,m,l)},!c.async||h.readyState===4?d():(i=++cf,ce&&(cg||(cg={},f(a).unload(ce)),cg[i]=d),h.onreadystatechange=d)},abort:function(){d&&d(0,1)}}}});var cj={},ck,cl,cm=/^(?:toggle|show|hide)$/,cn=/^([+\-]=)?([\d+.\-]+)([a-z%]*)$/i,co,cp=[["height","marginTop","marginBottom","paddingTop","paddingBottom"],["width","marginLeft","marginRight","paddingLeft","paddingRight"],["opacity"]],cq;f.fn.extend({show:function(a,b,c){var d,e;if(a||a===0)return this.animate(ct("show",3),a,b,c);for(var g=0,h=this.length;g=i.duration+this.startTime){this.now=this.end,this.pos=this.state=1,this.update(),i.animatedProperties[this.prop]=!0;for(b in i.animatedProperties)i.animatedProperties[b]!==!0&&(g=!1);if(g){i.overflow!=null&&!f.support.shrinkWrapBlocks&&f.each(["","X","Y"],function(a,b){h.style["overflow"+b]=i.overflow[a]}),i.hide&&f(h).hide();if(i.hide||i.show)for(b in i.animatedProperties)f.style(h,b,i.orig[b]),f.removeData(h,"fxshow"+b,!0),f.removeData(h,"toggle"+b,!0);d=i.complete,d&&(i.complete=!1,d.call(h))}return!1}i.duration==Infinity?this.now=e:(c=e-this.startTime,this.state=c/i.duration,this.pos=f.easing[i.animatedProperties[this.prop]](this.state,c,0,1,i.duration),this.now=this.start+(this.end-this.start)*this.pos),this.update();return!0}},f.extend(f.fx,{tick:function(){var a,b=f.timers,c=0;for(;c-1,k={},l={},m,n;j?(l=e.position(),m=l.top,n=l.left):(m=parseFloat(h)||0,n=parseFloat(i)||0),f.isFunction(b)&&(b=b.call(a,c,g)),b.top!=null&&(k.top=b.top-g.top+m),b.left!=null&&(k.left=b.left-g.left+n),"using"in b?b.using.call(a,k):e.css(k)}},f.fn.extend({position:function(){if(!this[0])return null;var a=this[0],b=this.offsetParent(),c=this.offset(),d=cx.test(b[0].nodeName)?{top:0,left:0}:b.offset();c.top-=parseFloat(f.css(a,"marginTop"))||0,c.left-=parseFloat(f.css(a,"marginLeft"))||0,d.top+=parseFloat(f.css(b[0],"borderTopWidth"))||0,d.left+=parseFloat(f.css(b[0],"borderLeftWidth"))||0;return{top:c.top-d.top,left:c.left-d.left}},offsetParent:function(){return this.map(function(){var a=this.offsetParent||c.body;while(a&&!cx.test(a.nodeName)&&f.css(a,"position")==="static")a=a.offsetParent;return a})}}),f.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(a,c){var d=/Y/.test(c);f.fn[a]=function(e){return f.access(this,function(a,e,g){var h=cy(a);if(g===b)return h?c in h?h[c]:f.support.boxModel&&h.document.documentElement[e]||h.document.body[e]:a[e];h?h.scrollTo(d?f(h).scrollLeft():g,d?g:f(h).scrollTop()):a[e]=g},a,e,arguments.length,null)}}),f.each({Height:"height",Width:"width"},function(a,c){var d="client"+a,e="scroll"+a,g="offset"+a;f.fn["inner"+a]=function(){var a=this[0];return a?a.style?parseFloat(f.css(a,c,"padding")):this[c]():null},f.fn["outer"+a]=function(a){var b=this[0];return b?b.style?parseFloat(f.css(b,c,a?"margin":"border")):this[c]():null},f.fn[c]=function(a){return f.access(this,function(a,c,h){var i,j,k,l;if(f.isWindow(a)){i=a.document,j=i.documentElement[d];return f.support.boxModel&&j||i.body&&i.body[d]||j}if(a.nodeType===9){i=a.documentElement;if(i[d]>=i[e])return i[d];return Math.max(a.body[e],i[e],a.body[g],i[g])}if(h===b){k=f.css(a,c),l=parseFloat(k);return f.isNumeric(l)?l:k}f(a).css(c,h)},c,a,arguments.length,null)}}),a.jQuery=a.$=f,typeof define=="function"&&define.amd&&define.amd.jQuery&&define("jquery",[],function(){return f})})(window); \ No newline at end of file diff --git a/sources/web/public/js/libs/jquery-ui-1.8.23.custom.min.js b/sources/web/public/js/libs/jquery-ui-1.8.23.custom.min.js deleted file mode 100644 index 7835454..0000000 --- a/sources/web/public/js/libs/jquery-ui-1.8.23.custom.min.js +++ /dev/null @@ -1,125 +0,0 @@ -/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.ui.core.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){function c(b,c){var e=b.nodeName.toLowerCase();if("area"===e){var f=b.parentNode,g=f.name,h;return!b.href||!g||f.nodeName.toLowerCase()!=="map"?!1:(h=a("img[usemap=#"+g+"]")[0],!!h&&d(h))}return(/input|select|textarea|button|object/.test(e)?!b.disabled:"a"==e?b.href||c:c)&&d(b)}function d(b){return!a(b).parents().andSelf().filter(function(){return a.curCSS(this,"visibility")==="hidden"||a.expr.filters.hidden(this)}).length}a.ui=a.ui||{};if(a.ui.version)return;a.extend(a.ui,{version:"1.8.23",keyCode:{ALT:18,BACKSPACE:8,CAPS_LOCK:20,COMMA:188,COMMAND:91,COMMAND_LEFT:91,COMMAND_RIGHT:93,CONTROL:17,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,INSERT:45,LEFT:37,MENU:93,NUMPAD_ADD:107,NUMPAD_DECIMAL:110,NUMPAD_DIVIDE:111,NUMPAD_ENTER:108,NUMPAD_MULTIPLY:106,NUMPAD_SUBTRACT:109,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SHIFT:16,SPACE:32,TAB:9,UP:38,WINDOWS:91}}),a.fn.extend({propAttr:a.fn.prop||a.fn.attr,_focus:a.fn.focus,focus:function(b,c){return typeof b=="number"?this.each(function(){var d=this;setTimeout(function(){a(d).focus(),c&&c.call(d)},b)}):this._focus.apply(this,arguments)},scrollParent:function(){var b;return a.browser.msie&&/(static|relative)/.test(this.css("position"))||/absolute/.test(this.css("position"))?b=this.parents().filter(function(){return/(relative|absolute|fixed)/.test(a.curCSS(this,"position",1))&&/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0):b=this.parents().filter(function(){return/(auto|scroll)/.test(a.curCSS(this,"overflow",1)+a.curCSS(this,"overflow-y",1)+a.curCSS(this,"overflow-x",1))}).eq(0),/fixed/.test(this.css("position"))||!b.length?a(document):b},zIndex:function(c){if(c!==b)return this.css("zIndex",c);if(this.length){var d=a(this[0]),e,f;while(d.length&&d[0]!==document){e=d.css("position");if(e==="absolute"||e==="relative"||e==="fixed"){f=parseInt(d.css("zIndex"),10);if(!isNaN(f)&&f!==0)return f}d=d.parent()}}return 0},disableSelection:function(){return this.bind((a.support.selectstart?"selectstart":"mousedown")+".ui-disableSelection",function(a){a.preventDefault()})},enableSelection:function(){return this.unbind(".ui-disableSelection")}}),a("").outerWidth(1).jquery||a.each(["Width","Height"],function(c,d){function h(b,c,d,f){return a.each(e,function(){c-=parseFloat(a.curCSS(b,"padding"+this,!0))||0,d&&(c-=parseFloat(a.curCSS(b,"border"+this+"Width",!0))||0),f&&(c-=parseFloat(a.curCSS(b,"margin"+this,!0))||0)}),c}var e=d==="Width"?["Left","Right"]:["Top","Bottom"],f=d.toLowerCase(),g={innerWidth:a.fn.innerWidth,innerHeight:a.fn.innerHeight,outerWidth:a.fn.outerWidth,outerHeight:a.fn.outerHeight};a.fn["inner"+d]=function(c){return c===b?g["inner"+d].call(this):this.each(function(){a(this).css(f,h(this,c)+"px")})},a.fn["outer"+d]=function(b,c){return typeof b!="number"?g["outer"+d].call(this,b):this.each(function(){a(this).css(f,h(this,b,!0,c)+"px")})}}),a.extend(a.expr[":"],{data:a.expr.createPseudo?a.expr.createPseudo(function(b){return function(c){return!!a.data(c,b)}}):function(b,c,d){return!!a.data(b,d[3])},focusable:function(b){return c(b,!isNaN(a.attr(b,"tabindex")))},tabbable:function(b){var d=a.attr(b,"tabindex"),e=isNaN(d);return(e||d>=0)&&c(b,!e)}}),a(function(){var b=document.body,c=b.appendChild(c=document.createElement("div"));c.offsetHeight,a.extend(c.style,{minHeight:"100px",height:"auto",padding:0,borderWidth:0}),a.support.minHeight=c.offsetHeight===100,a.support.selectstart="onselectstart"in c,b.removeChild(c).style.display="none"}),a.curCSS||(a.curCSS=a.css),a.extend(a.ui,{plugin:{add:function(b,c,d){var e=a.ui[b].prototype;for(var f in d)e.plugins[f]=e.plugins[f]||[],e.plugins[f].push([c,d[f]])},call:function(a,b,c){var d=a.plugins[b];if(!d||!a.element[0].parentNode)return;for(var e=0;e0?!0:(b[d]=1,e=b[d]>0,b[d]=0,e)},isOverAxis:function(a,b,c){return a>b&&a=9||!!b.button?this._mouseStarted?(this._mouseDrag(b),b.preventDefault()):(this._mouseDistanceMet(b)&&this._mouseDelayMet(b)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,b)!==!1,this._mouseStarted?this._mouseDrag(b):this._mouseUp(b)),!this._mouseStarted):this._mouseUp(b)},_mouseUp:function(b){return a(document).unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,b.target==this._mouseDownEvent.target&&a.data(b.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(b)),!1},_mouseDistanceMet:function(a){return Math.max(Math.abs(this._mouseDownEvent.pageX-a.pageX),Math.abs(this._mouseDownEvent.pageY-a.pageY))>=this.options.distance},_mouseDelayMet:function(a){return this.mouseDelayMet},_mouseStart:function(a){},_mouseDrag:function(a){},_mouseStop:function(a){},_mouseCapture:function(a){return!0}})})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.ui.position.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){a.ui=a.ui||{};var c=/left|center|right/,d=/top|center|bottom/,e="center",f={},g=a.fn.position,h=a.fn.offset;a.fn.position=function(b){if(!b||!b.of)return g.apply(this,arguments);b=a.extend({},b);var h=a(b.of),i=h[0],j=(b.collision||"flip").split(" "),k=b.offset?b.offset.split(" "):[0,0],l,m,n;return i.nodeType===9?(l=h.width(),m=h.height(),n={top:0,left:0}):i.setTimeout?(l=h.width(),m=h.height(),n={top:h.scrollTop(),left:h.scrollLeft()}):i.preventDefault?(b.at="left top",l=m=0,n={top:b.of.pageY,left:b.of.pageX}):(l=h.outerWidth(),m=h.outerHeight(),n=h.offset()),a.each(["my","at"],function(){var a=(b[this]||"").split(" ");a.length===1&&(a=c.test(a[0])?a.concat([e]):d.test(a[0])?[e].concat(a):[e,e]),a[0]=c.test(a[0])?a[0]:e,a[1]=d.test(a[1])?a[1]:e,b[this]=a}),j.length===1&&(j[1]=j[0]),k[0]=parseInt(k[0],10)||0,k.length===1&&(k[1]=k[0]),k[1]=parseInt(k[1],10)||0,b.at[0]==="right"?n.left+=l:b.at[0]===e&&(n.left+=l/2),b.at[1]==="bottom"?n.top+=m:b.at[1]===e&&(n.top+=m/2),n.left+=k[0],n.top+=k[1],this.each(function(){var c=a(this),d=c.outerWidth(),g=c.outerHeight(),h=parseInt(a.curCSS(this,"marginLeft",!0))||0,i=parseInt(a.curCSS(this,"marginTop",!0))||0,o=d+h+(parseInt(a.curCSS(this,"marginRight",!0))||0),p=g+i+(parseInt(a.curCSS(this,"marginBottom",!0))||0),q=a.extend({},n),r;b.my[0]==="right"?q.left-=d:b.my[0]===e&&(q.left-=d/2),b.my[1]==="bottom"?q.top-=g:b.my[1]===e&&(q.top-=g/2),f.fractions||(q.left=Math.round(q.left),q.top=Math.round(q.top)),r={left:q.left-h,top:q.top-i},a.each(["left","top"],function(c,e){a.ui.position[j[c]]&&a.ui.position[j[c]][e](q,{targetWidth:l,targetHeight:m,elemWidth:d,elemHeight:g,collisionPosition:r,collisionWidth:o,collisionHeight:p,offset:k,my:b.my,at:b.at})}),a.fn.bgiframe&&c.bgiframe(),c.offset(a.extend(q,{using:b.using}))})},a.ui.position={fit:{left:function(b,c){var d=a(window),e=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft();b.left=e>0?b.left-e:Math.max(b.left-c.collisionPosition.left,b.left)},top:function(b,c){var d=a(window),e=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop();b.top=e>0?b.top-e:Math.max(b.top-c.collisionPosition.top,b.top)}},flip:{left:function(b,c){if(c.at[0]===e)return;var d=a(window),f=c.collisionPosition.left+c.collisionWidth-d.width()-d.scrollLeft(),g=c.my[0]==="left"?-c.elemWidth:c.my[0]==="right"?c.elemWidth:0,h=c.at[0]==="left"?c.targetWidth:-c.targetWidth,i=-2*c.offset[0];b.left+=c.collisionPosition.left<0?g+h+i:f>0?g+h+i:0},top:function(b,c){if(c.at[1]===e)return;var d=a(window),f=c.collisionPosition.top+c.collisionHeight-d.height()-d.scrollTop(),g=c.my[1]==="top"?-c.elemHeight:c.my[1]==="bottom"?c.elemHeight:0,h=c.at[1]==="top"?c.targetHeight:-c.targetHeight,i=-2*c.offset[1];b.top+=c.collisionPosition.top<0?g+h+i:f>0?g+h+i:0}}},a.offset.setOffset||(a.offset.setOffset=function(b,c){/static/.test(a.curCSS(b,"position"))&&(b.style.position="relative");var d=a(b),e=d.offset(),f=parseInt(a.curCSS(b,"top",!0),10)||0,g=parseInt(a.curCSS(b,"left",!0),10)||0,h={top:c.top-e.top+f,left:c.left-e.left+g};"using"in c?c.using.call(b,h):d.css(h)},a.fn.offset=function(b){var c=this[0];return!c||!c.ownerDocument?null:b?a.isFunction(b)?this.each(function(c){a(this).offset(b.call(this,c,a(this).offset()))}):this.each(function(){a.offset.setOffset(this,b)}):h.call(this)}),a.curCSS||(a.curCSS=a.css),function(){var b=document.getElementsByTagName("body")[0],c=document.createElement("div"),d,e,g,h,i;d=document.createElement(b?"div":"body"),g={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"},b&&a.extend(g,{position:"absolute",left:"-1000px",top:"-1000px"});for(var j in g)d.style[j]=g[j];d.appendChild(c),e=b||document.documentElement,e.insertBefore(d,e.firstChild),c.style.cssText="position: absolute; left: 10.7432222px; top: 10.432325px; height: 30px; width: 201px;",h=a(c).offset(function(a,b){return b}).offset(),d.innerHTML="",e.removeChild(d),i=h.top+h.left+(b?2e3:0),f.fractions=i>21&&i<22}()})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.ui.draggable.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){a.widget("ui.draggable",a.ui.mouse,{widgetEventPrefix:"drag",options:{addClasses:!0,appendTo:"parent",axis:!1,connectToSortable:!1,containment:!1,cursor:"auto",cursorAt:!1,grid:!1,handle:!1,helper:"original",iframeFix:!1,opacity:!1,refreshPositions:!1,revert:!1,revertDuration:500,scope:"default",scroll:!0,scrollSensitivity:20,scrollSpeed:20,snap:!1,snapMode:"both",snapTolerance:20,stack:!1,zIndex:!1},_create:function(){this.options.helper=="original"&&!/^(?:r|a|f)/.test(this.element.css("position"))&&(this.element[0].style.position="relative"),this.options.addClasses&&this.element.addClass("ui-draggable"),this.options.disabled&&this.element.addClass("ui-draggable-disabled"),this._mouseInit()},destroy:function(){if(!this.element.data("draggable"))return;return this.element.removeData("draggable").unbind(".draggable").removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled"),this._mouseDestroy(),this},_mouseCapture:function(b){var c=this.options;return this.helper||c.disabled||a(b.target).is(".ui-resizable-handle")?!1:(this.handle=this._getHandle(b),this.handle?(c.iframeFix&&a(c.iframeFix===!0?"iframe":c.iframeFix).each(function(){a('
      ').css({width:this.offsetWidth+"px",height:this.offsetHeight+"px",position:"absolute",opacity:"0.001",zIndex:1e3}).css(a(this).offset()).appendTo("body")}),!0):!1)},_mouseStart:function(b){var c=this.options;return this.helper=this._createHelper(b),this.helper.addClass("ui-draggable-dragging"),this._cacheHelperProportions(),a.ui.ddmanager&&(a.ui.ddmanager.current=this),this._cacheMargins(),this.cssPosition=this.helper.css("position"),this.scrollParent=this.helper.scrollParent(),this.offset=this.positionAbs=this.element.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.originalPosition=this.position=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,c.cursorAt&&this._adjustOffsetFromHelper(c.cursorAt),c.containment&&this._setContainment(),this._trigger("start",b)===!1?(this._clear(),!1):(this._cacheHelperProportions(),a.ui.ddmanager&&!c.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this._mouseDrag(b,!0),a.ui.ddmanager&&a.ui.ddmanager.dragStart(this,b),!0)},_mouseDrag:function(b,c){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute");if(!c){var d=this._uiHash();if(this._trigger("drag",b,d)===!1)return this._mouseUp({}),!1;this.position=d.position}if(!this.options.axis||this.options.axis!="y")this.helper[0].style.left=this.position.left+"px";if(!this.options.axis||this.options.axis!="x")this.helper[0].style.top=this.position.top+"px";return a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),!1},_mouseStop:function(b){var c=!1;a.ui.ddmanager&&!this.options.dropBehaviour&&(c=a.ui.ddmanager.drop(this,b)),this.dropped&&(c=this.dropped,this.dropped=!1);var d=this.element[0],e=!1;while(d&&(d=d.parentNode))d==document&&(e=!0);if(!e&&this.options.helper==="original")return!1;if(this.options.revert=="invalid"&&!c||this.options.revert=="valid"&&c||this.options.revert===!0||a.isFunction(this.options.revert)&&this.options.revert.call(this.element,c)){var f=this;a(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){f._trigger("stop",b)!==!1&&f._clear()})}else this._trigger("stop",b)!==!1&&this._clear();return!1},_mouseUp:function(b){return this.options.iframeFix===!0&&a("div.ui-draggable-iframeFix").each(function(){this.parentNode.removeChild(this)}),a.ui.ddmanager&&a.ui.ddmanager.dragStop(this,b),a.ui.mouse.prototype._mouseUp.call(this,b)},cancel:function(){return this.helper.is(".ui-draggable-dragging")?this._mouseUp({}):this._clear(),this},_getHandle:function(b){var c=!this.options.handle||!a(this.options.handle,this.element).length?!0:!1;return a(this.options.handle,this.element).find("*").andSelf().each(function(){this==b.target&&(c=!0)}),c},_createHelper:function(b){var c=this.options,d=a.isFunction(c.helper)?a(c.helper.apply(this.element[0],[b])):c.helper=="clone"?this.element.clone().removeAttr("id"):this.element;return d.parents("body").length||d.appendTo(c.appendTo=="parent"?this.element[0].parentNode:c.appendTo),d[0]!=this.element[0]&&!/(fixed|absolute)/.test(d.css("position"))&&d.css("position","absolute"),d},_adjustOffsetFromHelper:function(b){typeof b=="string"&&(b=b.split(" ")),a.isArray(b)&&(b={left:+b[0],top:+b[1]||0}),"left"in b&&(this.offset.click.left=b.left+this.margins.left),"right"in b&&(this.offset.click.left=this.helperProportions.width-b.right+this.margins.left),"top"in b&&(this.offset.click.top=b.top+this.margins.top),"bottom"in b&&(this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])&&(b.left+=this.scrollParent.scrollLeft(),b.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)b={top:0,left:0};return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.element.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var b=this.options;b.containment=="parent"&&(b.containment=this.helper[0].parentNode);if(b.containment=="document"||b.containment=="window")this.containment=[b.containment=="document"?0:a(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,b.containment=="document"?0:a(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,(b.containment=="document"?0:a(window).scrollLeft())+a(b.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(b.containment=="document"?0:a(window).scrollTop())+(a(b.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(b.containment)&&b.containment.constructor!=Array){var c=a(b.containment),d=c[0];if(!d)return;var e=c.offset(),f=a(d).css("overflow")!="hidden";this.containment=[(parseInt(a(d).css("borderLeftWidth"),10)||0)+(parseInt(a(d).css("paddingLeft"),10)||0),(parseInt(a(d).css("borderTopWidth"),10)||0)+(parseInt(a(d).css("paddingTop"),10)||0),(f?Math.max(d.scrollWidth,d.offsetWidth):d.offsetWidth)-(parseInt(a(d).css("borderLeftWidth"),10)||0)-(parseInt(a(d).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(f?Math.max(d.scrollHeight,d.offsetHeight):d.offsetHeight)-(parseInt(a(d).css("borderTopWidth"),10)||0)-(parseInt(a(d).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom],this.relative_container=c}else b.containment.constructor==Array&&(this.containment=b.containment)},_convertPositionTo:function(b,c){c||(c=this.position);var d=b=="absolute"?1:-1,e=this.options,f=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=/(html|body)/i.test(f[0].tagName);return{top:c.top+this.offset.relative.top*d+this.offset.parent.top*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():g?0:f.scrollTop())*d),left:c.left+this.offset.relative.left*d+this.offset.parent.left*d-(a.browser.safari&&a.browser.version<526&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:f.scrollLeft())*d)}},_generatePosition:function(b){var c=this.options,d=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(d[0].tagName),f=b.pageX,g=b.pageY;if(this.originalPosition){var h;if(this.containment){if(this.relative_container){var i=this.relative_container.offset();h=[this.containment[0]+i.left,this.containment[1]+i.top,this.containment[2]+i.left,this.containment[3]+i.top]}else h=this.containment;b.pageX-this.offset.click.lefth[2]&&(f=h[2]+this.offset.click.left),b.pageY-this.offset.click.top>h[3]&&(g=h[3]+this.offset.click.top)}if(c.grid){var j=c.grid[1]?this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1]:this.originalPageY;g=h?j-this.offset.click.toph[3]?j-this.offset.click.toph[2]?k-this.offset.click.left=0;k--){var l=d.snapElements[k].left,m=l+d.snapElements[k].width,n=d.snapElements[k].top,o=n+d.snapElements[k].height;if(!(l-f=k&&g<=l||h>=k&&h<=l||gl)&&(e>=i&&e<=j||f>=i&&f<=j||ej);default:return!1}},a.ui.ddmanager={current:null,droppables:{"default":[]},prepareOffsets:function(b,c){var d=a.ui.ddmanager.droppables[b.options.scope]||[],e=c?c.type:null,f=(b.currentItem||b.element).find(":data(droppable)").andSelf();g:for(var h=0;h
      ').css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("resizable",this.element.data("resizable")),this.elementIsWrapper=!0,this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")}),this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0}),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css({margin:this.originalElement.css("margin")}),this._proportionallyResize()),this.handles=c.handles||(a(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se");if(this.handles.constructor==String){this.handles=="all"&&(this.handles="n,e,s,w,se,sw,ne,nw");var d=this.handles.split(",");this.handles={};for(var e=0;e');h.css({zIndex:c.zIndex}),"se"==f&&h.addClass("ui-icon ui-icon-gripsmall-diagonal-se"),this.handles[f]=".ui-resizable-"+f,this.element.append(h)}}this._renderAxis=function(b){b=b||this.element;for(var c in this.handles){this.handles[c].constructor==String&&(this.handles[c]=a(this.handles[c],this.element).show());if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/textarea|input|select|button/i)){var d=a(this.handles[c],this.element),e=0;e=/sw|ne|nw|se|n|s/.test(c)?d.outerHeight():d.outerWidth();var f=["padding",/ne|nw|n/.test(c)?"Top":/se|sw|s/.test(c)?"Bottom":/^e$/.test(c)?"Right":"Left"].join("");b.css(f,e),this._proportionallyResize()}if(!a(this.handles[c]).length)continue}},this._renderAxis(this.element),this._handles=a(".ui-resizable-handle",this.element).disableSelection(),this._handles.mouseover(function(){if(!b.resizing){if(this.className)var a=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i);b.axis=a&&a[1]?a[1]:"se"}}),c.autoHide&&(this._handles.hide(),a(this.element).addClass("ui-resizable-autohide").hover(function(){if(c.disabled)return;a(this).removeClass("ui-resizable-autohide"),b._handles.show()},function(){if(c.disabled)return;b.resizing||(a(this).addClass("ui-resizable-autohide"),b._handles.hide())})),this._mouseInit()},destroy:function(){this._mouseDestroy();var b=function(b){a(b).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){b(this.element);var c=this.element;c.after(this.originalElement.css({position:c.css("position"),width:c.outerWidth(),height:c.outerHeight(),top:c.css("top"),left:c.css("left")})).remove()}return this.originalElement.css("resize",this.originalResizeStyle),b(this.originalElement),this},_mouseCapture:function(b){var c=!1;for(var d in this.handles)a(this.handles[d])[0]==b.target&&(c=!0);return!this.options.disabled&&c},_mouseStart:function(b){var d=this.options,e=this.element.position(),f=this.element;this.resizing=!0,this.documentScroll={top:a(document).scrollTop(),left:a(document).scrollLeft()},(f.is(".ui-draggable")||/absolute/.test(f.css("position")))&&f.css({position:"absolute",top:e.top,left:e.left}),this._renderProxy();var g=c(this.helper.css("left")),h=c(this.helper.css("top"));d.containment&&(g+=a(d.containment).scrollLeft()||0,h+=a(d.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:g,top:h},this.size=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalSize=this._helper?{width:f.outerWidth(),height:f.outerHeight()}:{width:f.width(),height:f.height()},this.originalPosition={left:g,top:h},this.sizeDiff={width:f.outerWidth()-f.width(),height:f.outerHeight()-f.height()},this.originalMousePosition={left:b.pageX,top:b.pageY},this.aspectRatio=typeof d.aspectRatio=="number"?d.aspectRatio:this.originalSize.width/this.originalSize.height||1;var i=a(".ui-resizable-"+this.axis).css("cursor");return a("body").css("cursor",i=="auto"?this.axis+"-resize":i),f.addClass("ui-resizable-resizing"),this._propagate("start",b),!0},_mouseDrag:function(b){var c=this.helper,d=this.options,e={},f=this,g=this.originalMousePosition,h=this.axis,i=b.pageX-g.left||0,j=b.pageY-g.top||0,k=this._change[h];if(!k)return!1;var l=k.apply(this,[b,i,j]),m=a.browser.msie&&a.browser.version<7,n=this.sizeDiff;this._updateVirtualBoundaries(b.shiftKey);if(this._aspectRatio||b.shiftKey)l=this._updateRatio(l,b);return l=this._respectSize(l,b),this._propagate("resize",b),c.css({top:this.position.top+"px",left:this.position.left+"px",width:this.size.width+"px",height:this.size.height+"px"}),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),this._updateCache(l),this._trigger("resize",b,this.ui()),!1},_mouseStop:function(b){this.resizing=!1;var c=this.options,d=this;if(this._helper){var e=this._proportionallyResizeElements,f=e.length&&/textarea/i.test(e[0].nodeName),g=f&&a.ui.hasScroll(e[0],"left")?0:d.sizeDiff.height,h=f?0:d.sizeDiff.width,i={width:d.helper.width()-h,height:d.helper.height()-g},j=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,k=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;c.animate||this.element.css(a.extend(i,{top:k,left:j})),d.helper.height(d.size.height),d.helper.width(d.size.width),this._helper&&!c.animate&&this._proportionallyResize()}return a("body").css("cursor","auto"),this.element.removeClass("ui-resizable-resizing"),this._propagate("stop",b),this._helper&&this.helper.remove(),!1},_updateVirtualBoundaries:function(a){var b=this.options,c,e,f,g,h;h={minWidth:d(b.minWidth)?b.minWidth:0,maxWidth:d(b.maxWidth)?b.maxWidth:Infinity,minHeight:d(b.minHeight)?b.minHeight:0,maxHeight:d(b.maxHeight)?b.maxHeight:Infinity};if(this._aspectRatio||a)c=h.minHeight*this.aspectRatio,f=h.minWidth/this.aspectRatio,e=h.maxHeight*this.aspectRatio,g=h.maxWidth/this.aspectRatio,c>h.minWidth&&(h.minWidth=c),f>h.minHeight&&(h.minHeight=f),ea.width,k=d(a.height)&&e.minHeight&&e.minHeight>a.height;j&&(a.width=e.minWidth),k&&(a.height=e.minHeight),h&&(a.width=e.maxWidth),i&&(a.height=e.maxHeight);var l=this.originalPosition.left+this.originalSize.width,m=this.position.top+this.size.height,n=/sw|nw|w/.test(g),o=/nw|ne|n/.test(g);j&&n&&(a.left=l-e.minWidth),h&&n&&(a.left=l-e.maxWidth),k&&o&&(a.top=m-e.minHeight),i&&o&&(a.top=m-e.maxHeight);var p=!a.width&&!a.height;return p&&!a.left&&a.top?a.top=null:p&&!a.top&&a.left&&(a.left=null),a},_proportionallyResize:function(){var b=this.options;if(!this._proportionallyResizeElements.length)return;var c=this.helper||this.element;for(var d=0;d');var d=a.browser.msie&&a.browser.version<7,e=d?1:0,f=d?2:-1;this.helper.addClass(this._helper).css({width:this.element.outerWidth()+f,height:this.element.outerHeight()+f,position:"absolute",left:this.elementOffset.left-e+"px",top:this.elementOffset.top-e+"px",zIndex:++c.zIndex}),this.helper.appendTo("body").disableSelection()}else this.helper=this.element},_change:{e:function(a,b,c){return{width:this.originalSize.width+b}},w:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{left:f.left+b,width:e.width-b}},n:function(a,b,c){var d=this.options,e=this.originalSize,f=this.originalPosition;return{top:f.top+c,height:e.height-c}},s:function(a,b,c){return{height:this.originalSize.height+c}},se:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},sw:function(b,c,d){return a.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[b,c,d]))},ne:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[b,c,d]))},nw:function(b,c,d){return a.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[b,c,d]))}},_propagate:function(b,c){a.ui.plugin.call(this,b,[c,this.ui()]),b!="resize"&&this._trigger(b,c,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),a.extend(a.ui.resizable,{version:"1.8.23"}),a.ui.plugin.add("resizable","alsoResize",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=function(b){a(b).each(function(){var b=a(this);b.data("resizable-alsoresize",{width:parseInt(b.width(),10),height:parseInt(b.height(),10),left:parseInt(b.css("left"),10),top:parseInt(b.css("top"),10)})})};typeof e.alsoResize=="object"&&!e.alsoResize.parentNode?e.alsoResize.length?(e.alsoResize=e.alsoResize[0],f(e.alsoResize)):a.each(e.alsoResize,function(a){f(a)}):f(e.alsoResize)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.originalSize,g=d.originalPosition,h={height:d.size.height-f.height||0,width:d.size.width-f.width||0,top:d.position.top-g.top||0,left:d.position.left-g.left||0},i=function(b,d){a(b).each(function(){var b=a(this),e=a(this).data("resizable-alsoresize"),f={},g=d&&d.length?d:b.parents(c.originalElement[0]).length?["width","height"]:["width","height","top","left"];a.each(g,function(a,b){var c=(e[b]||0)+(h[b]||0);c&&c>=0&&(f[b]=c||null)}),b.css(f)})};typeof e.alsoResize=="object"&&!e.alsoResize.nodeType?a.each(e.alsoResize,function(a,b){i(a,b)}):i(e.alsoResize)},stop:function(b,c){a(this).removeData("resizable-alsoresize")}}),a.ui.plugin.add("resizable","animate",{stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d._proportionallyResizeElements,g=f.length&&/textarea/i.test(f[0].nodeName),h=g&&a.ui.hasScroll(f[0],"left")?0:d.sizeDiff.height,i=g?0:d.sizeDiff.width,j={width:d.size.width-i,height:d.size.height-h},k=parseInt(d.element.css("left"),10)+(d.position.left-d.originalPosition.left)||null,l=parseInt(d.element.css("top"),10)+(d.position.top-d.originalPosition.top)||null;d.element.animate(a.extend(j,l&&k?{top:l,left:k}:{}),{duration:e.animateDuration,easing:e.animateEasing,step:function(){var c={width:parseInt(d.element.css("width"),10),height:parseInt(d.element.css("height"),10),top:parseInt(d.element.css("top"),10),left:parseInt(d.element.css("left"),10)};f&&f.length&&a(f[0]).css({width:c.width,height:c.height}),d._updateCache(c),d._propagate("resize",b)}})}}),a.ui.plugin.add("resizable","containment",{start:function(b,d){var e=a(this).data("resizable"),f=e.options,g=e.element,h=f.containment,i=h instanceof a?h.get(0):/parent/.test(h)?g.parent().get(0):h;if(!i)return;e.containerElement=a(i);if(/document/.test(h)||h==document)e.containerOffset={left:0,top:0},e.containerPosition={left:0,top:0},e.parentData={element:a(document),left:0,top:0,width:a(document).width(),height:a(document).height()||document.body.parentNode.scrollHeight};else{var j=a(i),k=[];a(["Top","Right","Left","Bottom"]).each(function(a,b){k[a]=c(j.css("padding"+b))}),e.containerOffset=j.offset(),e.containerPosition=j.position(),e.containerSize={height:j.innerHeight()-k[3],width:j.innerWidth()-k[1]};var l=e.containerOffset,m=e.containerSize.height,n=e.containerSize.width,o=a.ui.hasScroll(i,"left")?i.scrollWidth:n,p=a.ui.hasScroll(i)?i.scrollHeight:m;e.parentData={element:i,left:l.left,top:l.top,width:o,height:p}}},resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.containerSize,g=d.containerOffset,h=d.size,i=d.position,j=d._aspectRatio||b.shiftKey,k={top:0,left:0},l=d.containerElement;l[0]!=document&&/static/.test(l.css("position"))&&(k=g),i.left<(d._helper?g.left:0)&&(d.size.width=d.size.width+(d._helper?d.position.left-g.left:d.position.left-k.left),j&&(d.size.height=d.size.width/d.aspectRatio),d.position.left=e.helper?g.left:0),i.top<(d._helper?g.top:0)&&(d.size.height=d.size.height+(d._helper?d.position.top-g.top:d.position.top),j&&(d.size.width=d.size.height*d.aspectRatio),d.position.top=d._helper?g.top:0),d.offset.left=d.parentData.left+d.position.left,d.offset.top=d.parentData.top+d.position.top;var m=Math.abs((d._helper?d.offset.left-k.left:d.offset.left-k.left)+d.sizeDiff.width),n=Math.abs((d._helper?d.offset.top-k.top:d.offset.top-g.top)+d.sizeDiff.height),o=d.containerElement.get(0)==d.element.parent().get(0),p=/relative|absolute/.test(d.containerElement.css("position"));o&&p&&(m-=d.parentData.left),m+d.size.width>=d.parentData.width&&(d.size.width=d.parentData.width-m,j&&(d.size.height=d.size.width/d.aspectRatio)),n+d.size.height>=d.parentData.height&&(d.size.height=d.parentData.height-n,j&&(d.size.width=d.size.height*d.aspectRatio))},stop:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.position,g=d.containerOffset,h=d.containerPosition,i=d.containerElement,j=a(d.helper),k=j.offset(),l=j.outerWidth()-d.sizeDiff.width,m=j.outerHeight()-d.sizeDiff.height;d._helper&&!e.animate&&/relative/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m}),d._helper&&!e.animate&&/static/.test(i.css("position"))&&a(this).css({left:k.left-h.left-g.left,width:l,height:m})}}),a.ui.plugin.add("resizable","ghost",{start:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size;d.ghost=d.originalElement.clone(),d.ghost.css({opacity:.25,display:"block",position:"relative",height:f.height,width:f.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof e.ghost=="string"?e.ghost:""),d.ghost.appendTo(d.helper)},resize:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.ghost.css({position:"relative",height:d.size.height,width:d.size.width})},stop:function(b,c){var d=a(this).data("resizable"),e=d.options;d.ghost&&d.helper&&d.helper.get(0).removeChild(d.ghost.get(0))}}),a.ui.plugin.add("resizable","grid",{resize:function(b,c){var d=a(this).data("resizable"),e=d.options,f=d.size,g=d.originalSize,h=d.originalPosition,i=d.axis,j=e._aspectRatio||b.shiftKey;e.grid=typeof e.grid=="number"?[e.grid,e.grid]:e.grid;var k=Math.round((f.width-g.width)/(e.grid[0]||1))*(e.grid[0]||1),l=Math.round((f.height-g.height)/(e.grid[1]||1))*(e.grid[1]||1);/^(se|s|e)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l):/^(ne)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l):/^(sw)$/.test(i)?(d.size.width=g.width+k,d.size.height=g.height+l,d.position.left=h.left-k):(d.size.width=g.width+k,d.size.height=g.height+l,d.position.top=h.top-l,d.position.left=h.left-k)}});var c=function(a){return parseInt(a,10)||0},d=function(a){return!isNaN(parseInt(a,10))}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.ui.selectable.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){a.widget("ui.selectable",a.ui.mouse,{options:{appendTo:"body",autoRefresh:!0,distance:0,filter:"*",tolerance:"touch"},_create:function(){var b=this;this.element.addClass("ui-selectable"),this.dragged=!1;var c;this.refresh=function(){c=a(b.options.filter,b.element[0]),c.addClass("ui-selectee"),c.each(function(){var b=a(this),c=b.offset();a.data(this,"selectable-item",{element:this,$element:b,left:c.left,top:c.top,right:c.left+b.outerWidth(),bottom:c.top+b.outerHeight(),startselected:!1,selected:b.hasClass("ui-selected"),selecting:b.hasClass("ui-selecting"),unselecting:b.hasClass("ui-unselecting")})})},this.refresh(),this.selectees=c.addClass("ui-selectee"),this._mouseInit(),this.helper=a("
      ")},destroy:function(){return this.selectees.removeClass("ui-selectee").removeData("selectable-item"),this.element.removeClass("ui-selectable ui-selectable-disabled").removeData("selectable").unbind(".selectable"),this._mouseDestroy(),this},_mouseStart:function(b){var c=this;this.opos=[b.pageX,b.pageY];if(this.options.disabled)return;var d=this.options;this.selectees=a(d.filter,this.element[0]),this._trigger("start",b),a(d.appendTo).append(this.helper),this.helper.css({left:b.clientX,top:b.clientY,width:0,height:0}),d.autoRefresh&&this.refresh(),this.selectees.filter(".ui-selected").each(function(){var d=a.data(this,"selectable-item");d.startselected=!0,!b.metaKey&&!b.ctrlKey&&(d.$element.removeClass("ui-selected"),d.selected=!1,d.$element.addClass("ui-unselecting"),d.unselecting=!0,c._trigger("unselecting",b,{unselecting:d.element}))}),a(b.target).parents().andSelf().each(function(){var d=a.data(this,"selectable-item");if(d){var e=!b.metaKey&&!b.ctrlKey||!d.$element.hasClass("ui-selected");return d.$element.removeClass(e?"ui-unselecting":"ui-selected").addClass(e?"ui-selecting":"ui-unselecting"),d.unselecting=!e,d.selecting=e,d.selected=e,e?c._trigger("selecting",b,{selecting:d.element}):c._trigger("unselecting",b,{unselecting:d.element}),!1}})},_mouseDrag:function(b){var c=this;this.dragged=!0;if(this.options.disabled)return;var d=this.options,e=this.opos[0],f=this.opos[1],g=b.pageX,h=b.pageY;if(e>g){var i=g;g=e,e=i}if(f>h){var i=h;h=f,f=i}return this.helper.css({left:e,top:f,width:g-e,height:h-f}),this.selectees.each(function(){var i=a.data(this,"selectable-item");if(!i||i.element==c.element[0])return;var j=!1;d.tolerance=="touch"?j=!(i.left>g||i.righth||i.bottome&&i.rightf&&i.bottom *",opacity:!1,placeholder:!1,revert:!1,scroll:!0,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3},_create:function(){var a=this.options;this.containerCache={},this.element.addClass("ui-sortable"),this.refresh(),this.floating=this.items.length?a.axis==="x"||/left|right/.test(this.items[0].item.css("float"))||/inline|table-cell/.test(this.items[0].item.css("display")):!1,this.offset=this.element.offset(),this._mouseInit(),this.ready=!0},destroy:function(){a.Widget.prototype.destroy.call(this),this.element.removeClass("ui-sortable ui-sortable-disabled"),this._mouseDestroy();for(var b=this.items.length-1;b>=0;b--)this.items[b].item.removeData(this.widgetName+"-item");return this},_setOption:function(b,c){b==="disabled"?(this.options[b]=c,this.widget()[c?"addClass":"removeClass"]("ui-sortable-disabled")):a.Widget.prototype._setOption.apply(this,arguments)},_mouseCapture:function(b,c){var d=this;if(this.reverting)return!1;if(this.options.disabled||this.options.type=="static")return!1;this._refreshItems(b);var e=null,f=this,g=a(b.target).parents().each(function(){if(a.data(this,d.widgetName+"-item")==f)return e=a(this),!1});a.data(b.target,d.widgetName+"-item")==f&&(e=a(b.target));if(!e)return!1;if(this.options.handle&&!c){var h=!1;a(this.options.handle,e).find("*").andSelf().each(function(){this==b.target&&(h=!0)});if(!h)return!1}return this.currentItem=e,this._removeCurrentsFromItems(),!0},_mouseStart:function(b,c,d){var e=this.options,f=this;this.currentContainer=this,this.refreshPositions(),this.helper=this._createHelper(b),this._cacheHelperProportions(),this._cacheMargins(),this.scrollParent=this.helper.scrollParent(),this.offset=this.currentItem.offset(),this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left},a.extend(this.offset,{click:{left:b.pageX-this.offset.left,top:b.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()}),this.helper.css("position","absolute"),this.cssPosition=this.helper.css("position"),this.originalPosition=this._generatePosition(b),this.originalPageX=b.pageX,this.originalPageY=b.pageY,e.cursorAt&&this._adjustOffsetFromHelper(e.cursorAt),this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]},this.helper[0]!=this.currentItem[0]&&this.currentItem.hide(),this._createPlaceholder(),e.containment&&this._setContainment(),e.cursor&&(a("body").css("cursor")&&(this._storedCursor=a("body").css("cursor")),a("body").css("cursor",e.cursor)),e.opacity&&(this.helper.css("opacity")&&(this._storedOpacity=this.helper.css("opacity")),this.helper.css("opacity",e.opacity)),e.zIndex&&(this.helper.css("zIndex")&&(this._storedZIndex=this.helper.css("zIndex")),this.helper.css("zIndex",e.zIndex)),this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"&&(this.overflowOffset=this.scrollParent.offset()),this._trigger("start",b,this._uiHash()),this._preserveHelperProportions||this._cacheHelperProportions();if(!d)for(var g=this.containers.length-1;g>=0;g--)this.containers[g]._trigger("activate",b,f._uiHash(this));return a.ui.ddmanager&&(a.ui.ddmanager.current=this),a.ui.ddmanager&&!e.dropBehaviour&&a.ui.ddmanager.prepareOffsets(this,b),this.dragging=!0,this.helper.addClass("ui-sortable-helper"),this._mouseDrag(b),!0},_mouseDrag:function(b){this.position=this._generatePosition(b),this.positionAbs=this._convertPositionTo("absolute"),this.lastPositionAbs||(this.lastPositionAbs=this.positionAbs);if(this.options.scroll){var c=this.options,d=!1;this.scrollParent[0]!=document&&this.scrollParent[0].tagName!="HTML"?(this.overflowOffset.top+this.scrollParent[0].offsetHeight-b.pageY=0;e--){var f=this.items[e],g=f.item[0],h=this._intersectsWithPointer(f);if(!h)continue;if(g!=this.currentItem[0]&&this.placeholder[h==1?"next":"prev"]()[0]!=g&&!a.ui.contains(this.placeholder[0],g)&&(this.options.type=="semi-dynamic"?!a.ui.contains(this.element[0],g):!0)){this.direction=h==1?"down":"up";if(this.options.tolerance=="pointer"||this._intersectsWithSides(f))this._rearrange(b,f);else break;this._trigger("change",b,this._uiHash());break}}return this._contactContainers(b),a.ui.ddmanager&&a.ui.ddmanager.drag(this,b),this._trigger("sort",b,this._uiHash()),this.lastPositionAbs=this.positionAbs,!1},_mouseStop:function(b,c){if(!b)return;a.ui.ddmanager&&!this.options.dropBehaviour&&a.ui.ddmanager.drop(this,b);if(this.options.revert){var d=this,e=d.placeholder.offset();d.reverting=!0,a(this.helper).animate({left:e.left-this.offset.parent.left-d.margins.left+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollLeft),top:e.top-this.offset.parent.top-d.margins.top+(this.offsetParent[0]==document.body?0:this.offsetParent[0].scrollTop)},parseInt(this.options.revert,10)||500,function(){d._clear(b)})}else this._clear(b,c);return!1},cancel:function(){var b=this;if(this.dragging){this._mouseUp({target:null}),this.options.helper=="original"?this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper"):this.currentItem.show();for(var c=this.containers.length-1;c>=0;c--)this.containers[c]._trigger("deactivate",null,b._uiHash(this)),this.containers[c].containerCache.over&&(this.containers[c]._trigger("out",null,b._uiHash(this)),this.containers[c].containerCache.over=0)}return this.placeholder&&(this.placeholder[0].parentNode&&this.placeholder[0].parentNode.removeChild(this.placeholder[0]),this.options.helper!="original"&&this.helper&&this.helper[0].parentNode&&this.helper.remove(),a.extend(this,{helper:null,dragging:!1,reverting:!1,_noFinalSort:null}),this.domPosition.prev?a(this.domPosition.prev).after(this.currentItem):a(this.domPosition.parent).prepend(this.currentItem)),this},serialize:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];return b=b||{},a(c).each(function(){var c=(a(b.item||this).attr(b.attribute||"id")||"").match(b.expression||/(.+)[-=_](.+)/);c&&d.push((b.key||c[1]+"[]")+"="+(b.key&&b.expression?c[1]:c[2]))}),!d.length&&b.key&&d.push(b.key+"="),d.join("&")},toArray:function(b){var c=this._getItemsAsjQuery(b&&b.connected),d=[];return b=b||{},c.each(function(){d.push(a(b.item||this).attr(b.attribute||"id")||"")}),d},_intersectsWith:function(a){var b=this.positionAbs.left,c=b+this.helperProportions.width,d=this.positionAbs.top,e=d+this.helperProportions.height,f=a.left,g=f+a.width,h=a.top,i=h+a.height,j=this.offset.click.top,k=this.offset.click.left,l=d+j>h&&d+jf&&b+ka[this.floating?"width":"height"]?l:f0?"down":"up")},_getDragHorizontalDirection:function(){var a=this.positionAbs.left-this.lastPositionAbs.left;return a!=0&&(a>0?"right":"left")},refresh:function(a){return this._refreshItems(a),this.refreshPositions(),this},_connectWith:function(){var a=this.options;return a.connectWith.constructor==String?[a.connectWith]:a.connectWith},_getItemsAsjQuery:function(b){var c=this,d=[],e=[],f=this._connectWith();if(f&&b)for(var g=f.length-1;g>=0;g--){var h=a(f[g]);for(var i=h.length-1;i>=0;i--){var j=a.data(h[i],this.widgetName);j&&j!=this&&!j.options.disabled&&e.push([a.isFunction(j.options.items)?j.options.items.call(j.element):a(j.options.items,j.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),j])}}e.push([a.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):a(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);for(var g=e.length-1;g>=0;g--)e[g][0].each(function(){d.push(this)});return a(d)},_removeCurrentsFromItems:function(){var a=this.currentItem.find(":data("+this.widgetName+"-item)");for(var b=0;b=0;g--){var h=a(f[g]);for(var i=h.length-1;i>=0;i--){var j=a.data(h[i],this.widgetName);j&&j!=this&&!j.options.disabled&&(e.push([a.isFunction(j.options.items)?j.options.items.call(j.element[0],b,{item:this.currentItem}):a(j.options.items,j.element),j]),this.containers.push(j))}}for(var g=e.length-1;g>=0;g--){var k=e[g][1],l=e[g][0];for(var i=0,m=l.length;i=0;c--){var d=this.items[c];if(d.instance!=this.currentContainer&&this.currentContainer&&d.item[0]!=this.currentItem[0])continue;var e=this.options.toleranceElement?a(this.options.toleranceElement,d.item):d.item;b||(d.width=e.outerWidth(),d.height=e.outerHeight());var f=e.offset();d.left=f.left,d.top=f.top}if(this.options.custom&&this.options.custom.refreshContainers)this.options.custom.refreshContainers.call(this);else for(var c=this.containers.length-1;c>=0;c--){var f=this.containers[c].element.offset();this.containers[c].containerCache.left=f.left,this.containers[c].containerCache.top=f.top,this.containers[c].containerCache.width=this.containers[c].element.outerWidth(),this.containers[c].containerCache.height=this.containers[c].element.outerHeight()}return this},_createPlaceholder:function(b){var c=b||this,d=c.options;if(!d.placeholder||d.placeholder.constructor==String){var e=d.placeholder;d.placeholder={element:function(){var b=a(document.createElement(c.currentItem[0].nodeName)).addClass(e||c.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper")[0];return e||(b.style.visibility="hidden"),b},update:function(a,b){if(e&&!d.forcePlaceholderSize)return;b.height()||b.height(c.currentItem.innerHeight()-parseInt(c.currentItem.css("paddingTop")||0,10)-parseInt(c.currentItem.css("paddingBottom")||0,10)),b.width()||b.width(c.currentItem.innerWidth()-parseInt(c.currentItem.css("paddingLeft")||0,10)-parseInt(c.currentItem.css("paddingRight")||0,10))}}}c.placeholder=a(d.placeholder.element.call(c.element,c.currentItem)),c.currentItem.after(c.placeholder),d.placeholder.update(c,c.placeholder)},_contactContainers:function(b){var c=null,d=null;for(var e=this.containers.length-1;e>=0;e--){if(a.ui.contains(this.currentItem[0],this.containers[e].element[0]))continue;if(this._intersectsWith(this.containers[e].containerCache)){if(c&&a.ui.contains(this.containers[e].element[0],c.element[0]))continue;c=this.containers[e],d=e}else this.containers[e].containerCache.over&&(this.containers[e]._trigger("out",b,this._uiHash(this)),this.containers[e].containerCache.over=0)}if(!c)return;if(this.containers.length===1)this.containers[d]._trigger("over",b,this._uiHash(this)),this.containers[d].containerCache.over=1;else if(this.currentContainer!=this.containers[d]){var f=1e4,g=null,h=this.positionAbs[this.containers[d].floating?"left":"top"];for(var i=this.items.length-1;i>=0;i--){if(!a.ui.contains(this.containers[d].element[0],this.items[i].item[0]))continue;var j=this.containers[d].floating?this.items[i].item.offset().left:this.items[i].item.offset().top;Math.abs(j-h)0?"down":"up")}if(!g&&!this.options.dropOnEmpty)return;this.currentContainer=this.containers[d],g?this._rearrange(b,g,null,!0):this._rearrange(b,null,this.containers[d].element,!0),this._trigger("change",b,this._uiHash()),this.containers[d]._trigger("change",b,this._uiHash(this)),this.options.placeholder.update(this.currentContainer,this.placeholder),this.containers[d]._trigger("over",b,this._uiHash(this)),this.containers[d].containerCache.over=1}},_createHelper:function(b){var c=this.options,d=a.isFunction(c.helper)?a(c.helper.apply(this.element[0],[b,this.currentItem])):c.helper=="clone"?this.currentItem.clone():this.currentItem;return d.parents("body").length||a(c.appendTo!="parent"?c.appendTo:this.currentItem[0].parentNode)[0].appendChild(d[0]),d[0]==this.currentItem[0]&&(this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}),(d[0].style.width==""||c.forceHelperSize)&&d.width(this.currentItem.width()),(d[0].style.height==""||c.forceHelperSize)&&d.height(this.currentItem.height()),d},_adjustOffsetFromHelper:function(b){typeof b=="string"&&(b=b.split(" ")),a.isArray(b)&&(b={left:+b[0],top:+b[1]||0}),"left"in b&&(this.offset.click.left=b.left+this.margins.left),"right"in b&&(this.offset.click.left=this.helperProportions.width-b.right+this.margins.left),"top"in b&&(this.offset.click.top=b.top+this.margins.top),"bottom"in b&&(this.offset.click.top=this.helperProportions.height-b.bottom+this.margins.top)},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var b=this.offsetParent.offset();this.cssPosition=="absolute"&&this.scrollParent[0]!=document&&a.ui.contains(this.scrollParent[0],this.offsetParent[0])&&(b.left+=this.scrollParent.scrollLeft(),b.top+=this.scrollParent.scrollTop());if(this.offsetParent[0]==document.body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()=="html"&&a.browser.msie)b={top:0,left:0};return{top:b.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:b.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition=="relative"){var a=this.currentItem.position();return{top:a.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:a.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}return{top:0,left:0}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var b=this.options;b.containment=="parent"&&(b.containment=this.helper[0].parentNode);if(b.containment=="document"||b.containment=="window")this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,a(b.containment=="document"?document:window).width()-this.helperProportions.width-this.margins.left,(a(b.containment=="document"?document:window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];if(!/^(document|window|parent)$/.test(b.containment)){var c=a(b.containment)[0],d=a(b.containment).offset(),e=a(c).css("overflow")!="hidden";this.containment=[d.left+(parseInt(a(c).css("borderLeftWidth"),10)||0)+(parseInt(a(c).css("paddingLeft"),10)||0)-this.margins.left,d.top+(parseInt(a(c).css("borderTopWidth"),10)||0)+(parseInt(a(c).css("paddingTop"),10)||0)-this.margins.top,d.left+(e?Math.max(c.scrollWidth,c.offsetWidth):c.offsetWidth)-(parseInt(a(c).css("borderLeftWidth"),10)||0)-(parseInt(a(c).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,d.top+(e?Math.max(c.scrollHeight,c.offsetHeight):c.offsetHeight)-(parseInt(a(c).css("borderTopWidth"),10)||0)-(parseInt(a(c).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(b,c){c||(c=this.position);var d=b=="absolute"?1:-1,e=this.options,f=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,g=/(html|body)/i.test(f[0].tagName);return{top:c.top+this.offset.relative.top*d+this.offset.parent.top*d-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollTop():g?0:f.scrollTop())*d),left:c.left+this.offset.relative.left*d+this.offset.parent.left*d-(a.browser.safari&&this.cssPosition=="fixed"?0:(this.cssPosition=="fixed"?-this.scrollParent.scrollLeft():g?0:f.scrollLeft())*d)}},_generatePosition:function(b){var c=this.options,d=this.cssPosition=="absolute"&&(this.scrollParent[0]==document||!a.ui.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,e=/(html|body)/i.test(d[0].tagName);this.cssPosition=="relative"&&(this.scrollParent[0]==document||this.scrollParent[0]==this.offsetParent[0])&&(this.offset.relative=this._getRelativeOffset());var f=b.pageX,g=b.pageY;if(this.originalPosition){this.containment&&(b.pageX-this.offset.click.leftthis.containment[2]&&(f=this.containment[2]+this.offset.click.left),b.pageY-this.offset.click.top>this.containment[3]&&(g=this.containment[3]+this.offset.click.top));if(c.grid){var h=this.originalPageY+Math.round((g-this.originalPageY)/c.grid[1])*c.grid[1];g=this.containment?h-this.offset.click.topthis.containment[3]?h-this.offset.click.topthis.containment[2]?i-this.offset.click.left=0;f--)a.ui.contains(this.containers[f].element[0],this.currentItem[0])&&!c&&(d.push(function(a){return function(b){a._trigger("receive",b,this._uiHash(this))}}.call(this,this.containers[f])),d.push(function(a){return function(b){a._trigger("update",b,this._uiHash(this))}}.call(this,this.containers[f])))}for(var f=this.containers.length-1;f>=0;f--)c||d.push(function(a){return function(b){a._trigger("deactivate",b,this._uiHash(this))}}.call(this,this.containers[f])),this.containers[f].containerCache.over&&(d.push(function(a){return function(b){a._trigger("out",b,this._uiHash(this))}}.call(this,this.containers[f])),this.containers[f].containerCache.over=0);this._storedCursor&&a("body").css("cursor",this._storedCursor),this._storedOpacity&&this.helper.css("opacity",this._storedOpacity),this._storedZIndex&&this.helper.css("zIndex",this._storedZIndex=="auto"?"":this._storedZIndex),this.dragging=!1;if(this.cancelHelperRemoval){if(!c){this._trigger("beforeStop",b,this._uiHash());for(var f=0;f li > :first-child,> :not(li):even",icons:{header:"ui-icon-triangle-1-e",headerSelected:"ui-icon-triangle-1-s"},navigation:!1,navigationFilter:function(){return this.href.toLowerCase()===location.href.toLowerCase()}},_create:function(){var b=this,c=b.options;b.running=0,b.element.addClass("ui-accordion ui-widget ui-helper-reset").children("li").addClass("ui-accordion-li-fix"),b.headers=b.element.find(c.header).addClass("ui-accordion-header ui-helper-reset ui-state-default ui-corner-all").bind("mouseenter.accordion",function(){if(c.disabled)return;a(this).addClass("ui-state-hover")}).bind("mouseleave.accordion",function(){if(c.disabled)return;a(this).removeClass("ui-state-hover")}).bind("focus.accordion",function(){if(c.disabled)return;a(this).addClass("ui-state-focus")}).bind("blur.accordion",function(){if(c.disabled)return;a(this).removeClass("ui-state-focus")}),b.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom");if(c.navigation){var d=b.element.find("a").filter(c.navigationFilter).eq(0);if(d.length){var e=d.closest(".ui-accordion-header");e.length?b.active=e:b.active=d.closest(".ui-accordion-content").prev()}}b.active=b._findActive(b.active||c.active).addClass("ui-state-default ui-state-active").toggleClass("ui-corner-all").toggleClass("ui-corner-top"),b.active.next().addClass("ui-accordion-content-active"),b._createIcons(),b.resize(),b.element.attr("role","tablist"),b.headers.attr("role","tab").bind("keydown.accordion",function(a){return b._keydown(a)}).next().attr("role","tabpanel"),b.headers.not(b.active||"").attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).next().hide(),b.active.length?b.active.attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}):b.headers.eq(0).attr("tabIndex",0),a.browser.safari||b.headers.find("a").attr("tabIndex",-1),c.event&&b.headers.bind(c.event.split(" ").join(".accordion ")+".accordion",function(a){b._clickHandler.call(b,a,this),a.preventDefault()})},_createIcons:function(){var b=this.options;b.icons&&(a("").addClass("ui-icon "+b.icons.header).prependTo(this.headers),this.active.children(".ui-icon").toggleClass(b.icons.header).toggleClass(b.icons.headerSelected),this.element.addClass("ui-accordion-icons"))},_destroyIcons:function(){this.headers.children(".ui-icon").remove(),this.element.removeClass("ui-accordion-icons")},destroy:function(){var b=this.options;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role"),this.headers.unbind(".accordion").removeClass("ui-accordion-header ui-accordion-disabled ui-helper-reset ui-state-default ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("tabIndex"),this.headers.find("a").removeAttr("tabIndex"),this._destroyIcons();var c=this.headers.next().css("display","").removeAttr("role").removeClass("ui-helper-reset ui-widget-content ui-corner-bottom ui-accordion-content ui-accordion-content-active ui-accordion-disabled ui-state-disabled");return(b.autoHeight||b.fillHeight)&&c.css("height",""),a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments),b=="active"&&this.activate(c),b=="icons"&&(this._destroyIcons(),c&&this._createIcons()),b=="disabled"&&this.headers.add(this.headers.next())[c?"addClass":"removeClass"]("ui-accordion-disabled ui-state-disabled")},_keydown:function(b){if(this.options.disabled||b.altKey||b.ctrlKey)return;var c=a.ui.keyCode,d=this.headers.length,e=this.headers.index(b.target),f=!1;switch(b.keyCode){case c.RIGHT:case c.DOWN:f=this.headers[(e+1)%d];break;case c.LEFT:case c.UP:f=this.headers[(e-1+d)%d];break;case c.SPACE:case c.ENTER:this._clickHandler({target:b.target},b.target),b.preventDefault()}return f?(a(b.target).attr("tabIndex",-1),a(f).attr("tabIndex",0),f.focus(),!1):!0},resize:function(){var b=this.options,c;if(b.fillSpace){if(a.browser.msie){var d=this.element.parent().css("overflow");this.element.parent().css("overflow","hidden")}c=this.element.parent().height(),a.browser.msie&&this.element.parent().css("overflow",d),this.headers.each(function(){c-=a(this).outerHeight(!0)}),this.headers.next().each(function(){a(this).height(Math.max(0,c-a(this).innerHeight()+a(this).height()))}).css("overflow","auto")}else b.autoHeight&&(c=0,this.headers.next().each(function(){c=Math.max(c,a(this).height("").height())}).height(c));return this},activate:function(a){this.options.active=a;var b=this._findActive(a)[0];return this._clickHandler({target:b},b),this},_findActive:function(b){return b?typeof b=="number"?this.headers.filter(":eq("+b+")"):this.headers.not(this.headers.not(b)):b===!1?a([]):this.headers.filter(":eq(0)")},_clickHandler:function(b,c){var d=this.options;if(d.disabled)return;if(!b.target){if(!d.collapsible)return;this.active.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header),this.active.next().addClass("ui-accordion-content-active");var e=this.active.next(),f={options:d,newHeader:a([]),oldHeader:d.active,newContent:a([]),oldContent:e},g=this.active=a([]);this._toggle(g,e,f);return}var h=a(b.currentTarget||c),i=h[0]===this.active[0];d.active=d.collapsible&&i?!1:this.headers.index(h);if(this.running||!d.collapsible&&i)return;var j=this.active,g=h.next(),e=this.active.next(),f={options:d,newHeader:i&&d.collapsible?a([]):h,oldHeader:this.active,newContent:i&&d.collapsible?a([]):g,oldContent:e},k=this.headers.index(this.active[0])>this.headers.index(h[0]);this.active=i?a([]):h,this._toggle(g,e,f,i,k),j.removeClass("ui-state-active ui-corner-top").addClass("ui-state-default ui-corner-all").children(".ui-icon").removeClass(d.icons.headerSelected).addClass(d.icons.header),i||(h.removeClass("ui-state-default ui-corner-all").addClass("ui-state-active ui-corner-top").children(".ui-icon").removeClass(d.icons.header).addClass(d.icons.headerSelected),h.next().addClass("ui-accordion-content-active"));return},_toggle:function(b,c,d,e,f){var g=this,h=g.options;g.toShow=b,g.toHide=c,g.data=d;var i=function(){if(!g)return;return g._completed.apply(g,arguments)};g._trigger("changestart",null,g.data),g.running=c.size()===0?b.size():c.size();if(h.animated){var j={};h.collapsible&&e?j={toShow:a([]),toHide:c,complete:i,down:f,autoHeight:h.autoHeight||h.fillSpace}:j={toShow:b,toHide:c,complete:i,down:f,autoHeight:h.autoHeight||h.fillSpace},h.proxied||(h.proxied=h.animated),h.proxiedDuration||(h.proxiedDuration=h.duration),h.animated=a.isFunction(h.proxied)?h.proxied(j):h.proxied,h.duration=a.isFunction(h.proxiedDuration)?h.proxiedDuration(j):h.proxiedDuration;var k=a.ui.accordion.animations,l=h.duration,m=h.animated;m&&!k[m]&&!a.easing[m]&&(m="slide"),k[m]||(k[m]=function(a){this.slide(a,{easing:m,duration:l||700})}),k[m](j)}else h.collapsible&&e?b.toggle():(c.hide(),b.show()),i(!0);c.prev().attr({"aria-expanded":"false","aria-selected":"false",tabIndex:-1}).blur(),b.prev().attr({"aria-expanded":"true","aria-selected":"true",tabIndex:0}).focus()},_completed:function(a){this.running=a?0:--this.running;if(this.running)return;this.options.clearStyle&&this.toShow.add(this.toHide).css({height:"",overflow:""}),this.toHide.removeClass("ui-accordion-content-active"),this.toHide.length&&(this.toHide.parent()[0].className=this.toHide.parent()[0].className),this._trigger("change",null,this.data)}}),a.extend(a.ui.accordion,{version:"1.8.23",animations:{slide:function(b,c){b=a.extend({easing:"swing",duration:300},b,c);if(!b.toHide.size()){b.toShow.animate({height:"show",paddingTop:"show",paddingBottom:"show"},b);return}if(!b.toShow.size()){b.toHide.animate({height:"hide",paddingTop:"hide",paddingBottom:"hide"},b);return}var d=b.toShow.css("overflow"),e=0,f={},g={},h=["height","paddingTop","paddingBottom"],i,j=b.toShow;i=j[0].style.width,j.width(j.parent().width()-parseFloat(j.css("paddingLeft"))-parseFloat(j.css("paddingRight"))-(parseFloat(j.css("borderLeftWidth"))||0)-(parseFloat(j.css("borderRightWidth"))||0)),a.each(h,function(c,d){g[d]="hide";var e=(""+a.css(b.toShow[0],d)).match(/^([\d+-.]+)(.*)$/);f[d]={value:e[1],unit:e[2]||"px"}}),b.toShow.css({height:0,overflow:"hidden"}).show(),b.toHide.filter(":hidden").each(b.complete).end().filter(":visible").animate(g,{step:function(a,c){c.prop=="height"&&(e=c.end-c.start===0?0:(c.now-c.start)/(c.end-c.start)),b.toShow[0].style[c.prop]=e*f[c.prop].value+f[c.prop].unit},duration:b.duration,easing:b.easing,complete:function(){b.autoHeight||b.toShow.css("height",""),b.toShow.css({width:i,overflow:d}),b.complete()}})},bounceslide:function(a){this.slide(a,{easing:a.down?"easeOutBounce":"swing",duration:a.down?1e3:200})}}})})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.ui.autocomplete.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){var c=0;a.widget("ui.autocomplete",{options:{appendTo:"body",autoFocus:!1,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null},pending:0,_create:function(){var b=this,c=this.element[0].ownerDocument,d;this.isMultiLine=this.element.is("textarea"),this.element.addClass("ui-autocomplete-input").attr("autocomplete","off").attr({role:"textbox","aria-autocomplete":"list","aria-haspopup":"true"}).bind("keydown.autocomplete",function(c){if(b.options.disabled||b.element.propAttr("readOnly"))return;d=!1;var e=a.ui.keyCode;switch(c.keyCode){case e.PAGE_UP:b._move("previousPage",c);break;case e.PAGE_DOWN:b._move("nextPage",c);break;case e.UP:b._keyEvent("previous",c);break;case e.DOWN:b._keyEvent("next",c);break;case e.ENTER:case e.NUMPAD_ENTER:b.menu.active&&(d=!0,c.preventDefault());case e.TAB:if(!b.menu.active)return;b.menu.select(c);break;case e.ESCAPE:b.element.val(b.term),b.close(c);break;default:clearTimeout(b.searching),b.searching=setTimeout(function(){b.term!=b.element.val()&&(b.selectedItem=null,b.search(null,c))},b.options.delay)}}).bind("keypress.autocomplete",function(a){d&&(d=!1,a.preventDefault())}).bind("focus.autocomplete",function(){if(b.options.disabled)return;b.selectedItem=null,b.previous=b.element.val()}).bind("blur.autocomplete",function(a){if(b.options.disabled)return;clearTimeout(b.searching),b.closing=setTimeout(function(){b.close(a),b._change(a)},150)}),this._initSource(),this.menu=a("
        ").addClass("ui-autocomplete").appendTo(a(this.options.appendTo||"body",c)[0]).mousedown(function(c){var d=b.menu.element[0];a(c.target).closest(".ui-menu-item").length||setTimeout(function(){a(document).one("mousedown",function(c){c.target!==b.element[0]&&c.target!==d&&!a.ui.contains(d,c.target)&&b.close()})},1),setTimeout(function(){clearTimeout(b.closing)},13)}).menu({focus:function(a,c){var d=c.item.data("item.autocomplete");!1!==b._trigger("focus",a,{item:d})&&/^key/.test(a.originalEvent.type)&&b.element.val(d.value)},selected:function(a,d){var e=d.item.data("item.autocomplete"),f=b.previous;b.element[0]!==c.activeElement&&(b.element.focus(),b.previous=f,setTimeout(function(){b.previous=f,b.selectedItem=e},1)),!1!==b._trigger("select",a,{item:e})&&b.element.val(e.value),b.term=b.element.val(),b.close(a),b.selectedItem=e},blur:function(a,c){b.menu.element.is(":visible")&&b.element.val()!==b.term&&b.element.val(b.term)}}).zIndex(this.element.zIndex()+1).css({top:0,left:0}).hide().data("menu"),a.fn.bgiframe&&this.menu.element.bgiframe(),b.beforeunloadHandler=function(){b.element.removeAttr("autocomplete")},a(window).bind("beforeunload",b.beforeunloadHandler)},destroy:function(){this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete").removeAttr("role").removeAttr("aria-autocomplete").removeAttr("aria-haspopup"),this.menu.element.remove(),a(window).unbind("beforeunload",this.beforeunloadHandler),a.Widget.prototype.destroy.call(this)},_setOption:function(b,c){a.Widget.prototype._setOption.apply(this,arguments),b==="source"&&this._initSource(),b==="appendTo"&&this.menu.element.appendTo(a(c||"body",this.element[0].ownerDocument)[0]),b==="disabled"&&c&&this.xhr&&this.xhr.abort()},_initSource:function(){var b=this,c,d;a.isArray(this.options.source)?(c=this.options.source,this.source=function(b,d){d(a.ui.autocomplete.filter(c,b.term))}):typeof this.options.source=="string"?(d=this.options.source,this.source=function(c,e){b.xhr&&b.xhr.abort(),b.xhr=a.ajax({url:d,data:c,dataType:"json",success:function(a,b){e(a)},error:function(){e([])}})}):this.source=this.options.source},search:function(a,b){a=a!=null?a:this.element.val(),this.term=this.element.val();if(a.length").data("item.autocomplete",c).append(a("
        ").text(c.label)).appendTo(b)},_move:function(a,b){if(!this.menu.element.is(":visible")){this.search(null,b);return}if(this.menu.first()&&/^previous/.test(a)||this.menu.last()&&/^next/.test(a)){this.element.val(this.term),this.menu.deactivate();return}this.menu[a](b)},widget:function(){return this.menu.element},_keyEvent:function(a,b){if(!this.isMultiLine||this.menu.element.is(":visible"))this._move(a,b),b.preventDefault()}}),a.extend(a.ui.autocomplete,{escapeRegex:function(a){return a.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&")},filter:function(b,c){var d=new RegExp(a.ui.autocomplete.escapeRegex(c),"i");return a.grep(b,function(a){return d.test(a.label||a.value||a)})}})})(jQuery),function(a){a.widget("ui.menu",{_create:function(){var b=this;this.element.addClass("ui-menu ui-widget ui-widget-content ui-corner-all").attr({role:"listbox","aria-activedescendant":"ui-active-menuitem"}).click(function(c){if(!a(c.target).closest(".ui-menu-item a").length)return;c.preventDefault(),b.select(c)}),this.refresh()},refresh:function(){var b=this,c=this.element.children("li:not(.ui-menu-item):has(a)").addClass("ui-menu-item").attr("role","menuitem");c.children("a").addClass("ui-corner-all").attr("tabindex",-1).mouseenter(function(c){b.activate(c,a(this).parent())}).mouseleave(function(){b.deactivate()})},activate:function(a,b){this.deactivate();if(this.hasScroll()){var c=b.offset().top-this.element.offset().top,d=this.element.scrollTop(),e=this.element.height();c<0?this.element.scrollTop(d+c):c>=e&&this.element.scrollTop(d+c-e+b.height())}this.active=b.eq(0).children("a").addClass("ui-state-hover").attr("id","ui-active-menuitem").end(),this._trigger("focus",a,{item:b})},deactivate:function(){if(!this.active)return;this.active.children("a").removeClass("ui-state-hover").removeAttr("id"),this._trigger("blur"),this.active=null},next:function(a){this.move("next",".ui-menu-item:first",a)},previous:function(a){this.move("prev",".ui-menu-item:last",a)},first:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},last:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},move:function(a,b,c){if(!this.active){this.activate(c,this.element.children(b));return}var d=this.active[a+"All"](".ui-menu-item").eq(0);d.length?this.activate(c,d):this.activate(c,this.element.children(b))},nextPage:function(b){if(this.hasScroll()){if(!this.active||this.last()){this.activate(b,this.element.children(".ui-menu-item:first"));return}var c=this.active.offset().top,d=this.element.height(),e=this.element.children(".ui-menu-item").filter(function(){var b=a(this).offset().top-c-d+a(this).height();return b<10&&b>-10});e.length||(e=this.element.children(".ui-menu-item:last")),this.activate(b,e)}else this.activate(b,this.element.children(".ui-menu-item").filter(!this.active||this.last()?":first":":last"))},previousPage:function(b){if(this.hasScroll()){if(!this.active||this.first()){this.activate(b,this.element.children(".ui-menu-item:last"));return}var c=this.active.offset().top,d=this.element.height(),e=this.element.children(".ui-menu-item").filter(function(){var b=a(this).offset().top-c+d-a(this).height();return b<10&&b>-10});e.length||(e=this.element.children(".ui-menu-item:first")),this.activate(b,e)}else this.activate(b,this.element.children(".ui-menu-item").filter(!this.active||this.first()?":last":":first"))},hasScroll:function(){return this.element.height()",this.element[0].ownerDocument).addClass("ui-button-text").html(this.options.label).appendTo(b.empty()).text(),d=this.options.icons,e=d.primary&&d.secondary,f=[];d.primary||d.secondary?(this.options.text&&f.push("ui-button-text-icon"+(e?"s":d.primary?"-primary":"-secondary")),d.primary&&b.prepend(""),d.secondary&&b.append(""),this.options.text||(f.push(e?"ui-button-icons-only":"ui-button-icon-only"),this.hasTitle||b.attr("title",c))):f.push("ui-button-text-only"),b.addClass(f.join(" "))}}),a.widget("ui.buttonset",{options:{items:":button, :submit, :reset, :checkbox, :radio, a, :data(button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(b,c){b==="disabled"&&this.buttons.button("option",b,c),a.Widget.prototype._setOption.apply(this,arguments)},refresh:function(){var b=this.element.css("direction")==="rtl";this.buttons=this.element.find(this.options.items).filter(":ui-button").button("refresh").end().not(":ui-button").button().end().map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(b?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(b?"ui-corner-left":"ui-corner-right").end().end()},destroy:function(){this.element.removeClass("ui-buttonset"),this.buttons.map(function(){return a(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy"),a.Widget.prototype.destroy.call(this)}})})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.ui.dialog.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){var c="ui-dialog ui-widget ui-widget-content ui-corner-all ",d={buttons:!0,height:!0,maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0,width:!0},e={maxHeight:!0,maxWidth:!0,minHeight:!0,minWidth:!0};a.widget("ui.dialog",{options:{autoOpen:!0,buttons:{},closeOnEscape:!0,closeText:"close",dialogClass:"",draggable:!0,hide:null,height:"auto",maxHeight:!1,maxWidth:!1,minHeight:150,minWidth:150,modal:!1,position:{my:"center",at:"center",collision:"fit",using:function(b){var c=a(this).css(b).offset().top;c<0&&a(this).css("top",b.top-c)}},resizable:!0,show:null,stack:!0,title:"",width:300,zIndex:1e3},_create:function(){this.originalTitle=this.element.attr("title"),typeof this.originalTitle!="string"&&(this.originalTitle=""),this.options.title=this.options.title||this.originalTitle;var b=this,d=b.options,e=d.title||" ",f=a.ui.dialog.getTitleId(b.element),g=(b.uiDialog=a("
        ")).appendTo(document.body).hide().addClass(c+d.dialogClass).css({zIndex:d.zIndex}).attr("tabIndex",-1).css("outline",0).keydown(function(c){d.closeOnEscape&&!c.isDefaultPrevented()&&c.keyCode&&c.keyCode===a.ui.keyCode.ESCAPE&&(b.close(c),c.preventDefault())}).attr({role:"dialog","aria-labelledby":f}).mousedown(function(a){b.moveToTop(!1,a)}),h=b.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(g),i=(b.uiDialogTitlebar=a("
        ")).addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(g),j=a('').addClass("ui-dialog-titlebar-close ui-corner-all").attr("role","button").hover(function(){j.addClass("ui-state-hover")},function(){j.removeClass("ui-state-hover")}).focus(function(){j.addClass("ui-state-focus")}).blur(function(){j.removeClass("ui-state-focus")}).click(function(a){return b.close(a),!1}).appendTo(i),k=(b.uiDialogTitlebarCloseText=a("")).addClass("ui-icon ui-icon-closethick").text(d.closeText).appendTo(j),l=a("").addClass("ui-dialog-title").attr("id",f).html(e).prependTo(i);a.isFunction(d.beforeclose)&&!a.isFunction(d.beforeClose)&&(d.beforeClose=d.beforeclose),i.find("*").add(i).disableSelection(),d.draggable&&a.fn.draggable&&b._makeDraggable(),d.resizable&&a.fn.resizable&&b._makeResizable(),b._createButtons(d.buttons),b._isOpen=!1,a.fn.bgiframe&&g.bgiframe()},_init:function(){this.options.autoOpen&&this.open()},destroy:function(){var a=this;return a.overlay&&a.overlay.destroy(),a.uiDialog.hide(),a.element.unbind(".dialog").removeData("dialog").removeClass("ui-dialog-content ui-widget-content").hide().appendTo("body"),a.uiDialog.remove(),a.originalTitle&&a.element.attr("title",a.originalTitle),a},widget:function(){return this.uiDialog},close:function(b){var c=this,d,e;if(!1===c._trigger("beforeClose",b))return;return c.overlay&&c.overlay.destroy(),c.uiDialog.unbind("keypress.ui-dialog"),c._isOpen=!1,c.options.hide?c.uiDialog.hide(c.options.hide,function(){c._trigger("close",b)}):(c.uiDialog.hide(),c._trigger("close",b)),a.ui.dialog.overlay.resize(),c.options.modal&&(d=0,a(".ui-dialog").each(function(){this!==c.uiDialog[0]&&(e=a(this).css("z-index"),isNaN(e)||(d=Math.max(d,e)))}),a.ui.dialog.maxZ=d),c},isOpen:function(){return this._isOpen},moveToTop:function(b,c){var d=this,e=d.options,f;return e.modal&&!b||!e.stack&&!e.modal?d._trigger("focus",c):(e.zIndex>a.ui.dialog.maxZ&&(a.ui.dialog.maxZ=e.zIndex),d.overlay&&(a.ui.dialog.maxZ+=1,d.overlay.$el.css("z-index",a.ui.dialog.overlay.maxZ=a.ui.dialog.maxZ)),f={scrollTop:d.element.scrollTop(),scrollLeft:d.element.scrollLeft()},a.ui.dialog.maxZ+=1,d.uiDialog.css("z-index",a.ui.dialog.maxZ),d.element.attr(f),d._trigger("focus",c),d)},open:function(){if(this._isOpen)return;var b=this,c=b.options,d=b.uiDialog;return b.overlay=c.modal?new a.ui.dialog.overlay(b):null,b._size(),b._position(c.position),d.show(c.show),b.moveToTop(!0),c.modal&&d.bind("keydown.ui-dialog",function(b){if(b.keyCode!==a.ui.keyCode.TAB)return;var c=a(":tabbable",this),d=c.filter(":first"),e=c.filter(":last");if(b.target===e[0]&&!b.shiftKey)return d.focus(1),!1;if(b.target===d[0]&&b.shiftKey)return e.focus(1),!1}),a(b.element.find(":tabbable").get().concat(d.find(".ui-dialog-buttonpane :tabbable").get().concat(d.get()))).eq(0).focus(),b._isOpen=!0,b._trigger("open"),b},_createButtons:function(b){var c=this,d=!1,e=a("
        ").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix"),f=a("
        ").addClass("ui-dialog-buttonset").appendTo(e);c.uiDialog.find(".ui-dialog-buttonpane").remove(),typeof b=="object"&&b!==null&&a.each(b,function(){return!(d=!0)}),d&&(a.each(b,function(b,d){d=a.isFunction(d)?{click:d,text:b}:d;var e=a('').click(function(){d.click.apply(c.element[0],arguments)}).appendTo(f);a.each(d,function(a,b){if(a==="click")return;a in e?e[a](b):e.attr(a,b)}),a.fn.button&&e.button()}),e.appendTo(c.uiDialog))},_makeDraggable:function(){function f(a){return{position:a.position,offset:a.offset}}var b=this,c=b.options,d=a(document),e;b.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(d,g){e=c.height==="auto"?"auto":a(this).height(),a(this).height(a(this).height()).addClass("ui-dialog-dragging"),b._trigger("dragStart",d,f(g))},drag:function(a,c){b._trigger("drag",a,f(c))},stop:function(g,h){c.position=[h.position.left-d.scrollLeft(),h.position.top-d.scrollTop()],a(this).removeClass("ui-dialog-dragging").height(e),b._trigger("dragStop",g,f(h)),a.ui.dialog.overlay.resize()}})},_makeResizable:function(c){function h(a){return{originalPosition:a.originalPosition,originalSize:a.originalSize,position:a.position,size:a.size}}c=c===b?this.options.resizable:c;var d=this,e=d.options,f=d.uiDialog.css("position"),g=typeof c=="string"?c:"n,e,s,w,se,sw,ne,nw";d.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:d.element,maxWidth:e.maxWidth,maxHeight:e.maxHeight,minWidth:e.minWidth,minHeight:d._minHeight(),handles:g,start:function(b,c){a(this).addClass("ui-dialog-resizing"),d._trigger("resizeStart",b,h(c))},resize:function(a,b){d._trigger("resize",a,h(b))},stop:function(b,c){a(this).removeClass("ui-dialog-resizing"),e.height=a(this).height(),e.width=a(this).width(),d._trigger("resizeStop",b,h(c)),a.ui.dialog.overlay.resize()}}).css("position",f).find(".ui-resizable-se").addClass("ui-icon ui-icon-grip-diagonal-se")},_minHeight:function(){var a=this.options;return a.height==="auto"?a.minHeight:Math.min(a.minHeight,a.height)},_position:function(b){var c=[],d=[0,0],e;if(b){if(typeof b=="string"||typeof b=="object"&&"0"in b)c=b.split?b.split(" "):[b[0],b[1]],c.length===1&&(c[1]=c[0]),a.each(["left","top"],function(a,b){+c[a]===c[a]&&(d[a]=c[a],c[a]=b)}),b={my:c.join(" "),at:c.join(" "),offset:d.join(" ")};b=a.extend({},a.ui.dialog.prototype.options.position,b)}else b=a.ui.dialog.prototype.options.position;e=this.uiDialog.is(":visible"),e||this.uiDialog.show(),this.uiDialog.css({top:0,left:0}).position(a.extend({of:window},b)),e||this.uiDialog.hide()},_setOptions:function(b){var c=this,f={},g=!1;a.each(b,function(a,b){c._setOption(a,b),a in d&&(g=!0),a in e&&(f[a]=b)}),g&&this._size(),this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option",f)},_setOption:function(b,d){var e=this,f=e.uiDialog;switch(b){case"beforeclose":b="beforeClose";break;case"buttons":e._createButtons(d);break;case"closeText":e.uiDialogTitlebarCloseText.text(""+d);break;case"dialogClass":f.removeClass(e.options.dialogClass).addClass(c+d);break;case"disabled":d?f.addClass("ui-dialog-disabled"):f.removeClass("ui-dialog-disabled");break;case"draggable":var g=f.is(":data(draggable)");g&&!d&&f.draggable("destroy"),!g&&d&&e._makeDraggable();break;case"position":e._position(d);break;case"resizable":var h=f.is(":data(resizable)");h&&!d&&f.resizable("destroy"),h&&typeof d=="string"&&f.resizable("option","handles",d),!h&&d!==!1&&e._makeResizable(d);break;case"title":a(".ui-dialog-title",e.uiDialogTitlebar).html(""+(d||" "))}a.Widget.prototype._setOption.apply(e,arguments)},_size:function(){var b=this.options,c,d,e=this.uiDialog.is(":visible");this.element.show().css({width:"auto",minHeight:0,height:0}),b.minWidth>b.width&&(b.width=b.minWidth),c=this.uiDialog.css({height:"auto",width:b.width}).height(),d=Math.max(0,b.minHeight-c);if(b.height==="auto")if(a.support.minHeight)this.element.css({minHeight:d,height:"auto"});else{this.uiDialog.show();var f=this.element.css("height","auto").height();e||this.uiDialog.hide(),this.element.height(Math.max(f,d))}else this.element.height(Math.max(b.height-c,0));this.uiDialog.is(":data(resizable)")&&this.uiDialog.resizable("option","minHeight",this._minHeight())}}),a.extend(a.ui.dialog,{version:"1.8.23",uuid:0,maxZ:0,getTitleId:function(a){var b=a.attr("id");return b||(this.uuid+=1,b=this.uuid),"ui-dialog-title-"+b},overlay:function(b){this.$el=a.ui.dialog.overlay.create(b)}}),a.extend(a.ui.dialog.overlay,{instances:[],oldInstances:[],maxZ:0,events:a.map("focus,mousedown,mouseup,keydown,keypress,click".split(","),function(a){return a+".dialog-overlay"}).join(" "),create:function(b){this.instances.length===0&&(setTimeout(function(){a.ui.dialog.overlay.instances.length&&a(document).bind(a.ui.dialog.overlay.events,function(b){if(a(b.target).zIndex()").addClass("ui-widget-overlay")).appendTo(document.body).css({width:this.width(),height:this.height()});return a.fn.bgiframe&&c.bgiframe(),this.instances.push(c),c},destroy:function(b){var c=a.inArray(b,this.instances);c!=-1&&this.oldInstances.push(this.instances.splice(c,1)[0]),this.instances.length===0&&a([document,window]).unbind(".dialog-overlay"),b.remove();var d=0;a.each(this.instances,function(){d=Math.max(d,this.css("z-index"))}),this.maxZ=d},height:function(){var b,c;return a.browser.msie&&a.browser.version<7?(b=Math.max(document.documentElement.scrollHeight,document.body.scrollHeight),c=Math.max(document.documentElement.offsetHeight,document.body.offsetHeight),b").appendTo(this.element).addClass("ui-slider-range ui-widget-header"+(d.range==="min"||d.range==="max"?" ui-slider-range-"+d.range:"")));for(var i=e.length;ic&&(f=c,g=a(this),i=b)}),c.range===!0&&this.values(1)===c.min&&(i+=1,g=a(this.handles[i])),j=this._start(b,i),j===!1?!1:(this._mouseSliding=!0,h._handleIndex=i,g.addClass("ui-state-active").focus(),k=g.offset(),l=!a(b.target).parents().andSelf().is(".ui-slider-handle"),this._clickOffset=l?{left:0,top:0}:{left:b.pageX-k.left-g.width()/2,top:b.pageY-k.top-g.height()/2-(parseInt(g.css("borderTopWidth"),10)||0)-(parseInt(g.css("borderBottomWidth"),10)||0)+(parseInt(g.css("marginTop"),10)||0)},this.handles.hasClass("ui-state-hover")||this._slide(b,i,e),this._animateOff=!0,!0))},_mouseStart:function(a){return!0},_mouseDrag:function(a){var b={x:a.pageX,y:a.pageY},c=this._normValueFromMouse(b);return this._slide(a,this._handleIndex,c),!1},_mouseStop:function(a){return this.handles.removeClass("ui-state-active"),this._mouseSliding=!1,this._stop(a,this._handleIndex),this._change(a,this._handleIndex),this._handleIndex=null,this._clickOffset=null,this._animateOff=!1,!1},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(a){var b,c,d,e,f;return this.orientation==="horizontal"?(b=this.elementSize.width,c=a.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)):(b=this.elementSize.height,c=a.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)),d=c/b,d>1&&(d=1),d<0&&(d=0),this.orientation==="vertical"&&(d=1-d),e=this._valueMax()-this._valueMin(),f=this._valueMin()+d*e,this._trimAlignValue(f)},_start:function(a,b){var c={handle:this.handles[b],value:this.value()};return this.options.values&&this.options.values.length&&(c.value=this.values(b),c.values=this.values()),this._trigger("start",a,c)},_slide:function(a,b,c){var d,e,f;this.options.values&&this.options.values.length?(d=this.values(b?0:1),this.options.values.length===2&&this.options.range===!0&&(b===0&&c>d||b===1&&c1){this.options.values[b]=this._trimAlignValue(c),this._refreshValue(),this._change(null,b);return}if(!arguments.length)return this._values();if(!a.isArray(arguments[0]))return this.options.values&&this.options.values.length?this._values(b):this.value();d=this.options.values,e=arguments[0];for(f=0;f=this._valueMax())return this._valueMax();var b=this.options.step>0?this.options.step:1,c=(a-this._valueMin())%b,d=a-c;return Math.abs(c)*2>=b&&(d+=c>0?b:-b),parseFloat(d.toFixed(5))},_valueMin:function(){return this.options.min},_valueMax:function(){return this.options.max},_refreshValue:function(){var b=this.options.range,c=this.options,d=this,e=this._animateOff?!1:c.animate,f,g={},h,i,j,k;this.options.values&&this.options.values.length?this.handles.each(function(b,i){f=(d.values(b)-d._valueMin())/(d._valueMax()-d._valueMin())*100,g[d.orientation==="horizontal"?"left":"bottom"]=f+"%",a(this).stop(1,1)[e?"animate":"css"](g,c.animate),d.options.range===!0&&(d.orientation==="horizontal"?(b===0&&d.range.stop(1,1)[e?"animate":"css"]({left:f+"%"},c.animate),b===1&&d.range[e?"animate":"css"]({width:f-h+"%"},{queue:!1,duration:c.animate})):(b===0&&d.range.stop(1,1)[e?"animate":"css"]({bottom:f+"%"},c.animate),b===1&&d.range[e?"animate":"css"]({height:f-h+"%"},{queue:!1,duration:c.animate}))),h=f}):(i=this.value(),j=this._valueMin(),k=this._valueMax(),f=k!==j?(i-j)/(k-j)*100:0,g[d.orientation==="horizontal"?"left":"bottom"]=f+"%",this.handle.stop(1,1)[e?"animate":"css"](g,c.animate),b==="min"&&this.orientation==="horizontal"&&this.range.stop(1,1)[e?"animate":"css"]({width:f+"%"},c.animate),b==="max"&&this.orientation==="horizontal"&&this.range[e?"animate":"css"]({width:100-f+"%"},{queue:!1,duration:c.animate}),b==="min"&&this.orientation==="vertical"&&this.range.stop(1,1)[e?"animate":"css"]({height:f+"%"},c.animate),b==="max"&&this.orientation==="vertical"&&this.range[e?"animate":"css"]({height:100-f+"%"},{queue:!1,duration:c.animate}))}}),a.extend(a.ui.slider,{version:"1.8.23"})})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.ui.tabs.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){function e(){return++c}function f(){return++d}var c=0,d=0;a.widget("ui.tabs",{options:{add:null,ajaxOptions:null,cache:!1,cookie:null,collapsible:!1,disable:null,disabled:[],enable:null,event:"click",fx:null,idPrefix:"ui-tabs-",load:null,panelTemplate:"
        ",remove:null,select:null,show:null,spinner:"Loading…",tabTemplate:"
      • #{label}
      • "},_create:function(){this._tabify(!0)},_setOption:function(a,b){if(a=="selected"){if(this.options.collapsible&&b==this.options.selected)return;this.select(b)}else this.options[a]=b,this._tabify()},_tabId:function(a){return a.title&&a.title.replace(/\s/g,"_").replace(/[^\w\u00c0-\uFFFF-]/g,"")||this.options.idPrefix+e()},_sanitizeSelector:function(a){return a.replace(/:/g,"\\:")},_cookie:function(){var b=this.cookie||(this.cookie=this.options.cookie.name||"ui-tabs-"+f());return a.cookie.apply(null,[b].concat(a.makeArray(arguments)))},_ui:function(a,b){return{tab:a,panel:b,index:this.anchors.index(a)}},_cleanup:function(){this.lis.filter(".ui-state-processing").removeClass("ui-state-processing").find("span:data(label.tabs)").each(function(){var b=a(this);b.html(b.data("label.tabs")).removeData("label.tabs")})},_tabify:function(c){function m(b,c){b.css("display",""),!a.support.opacity&&c.opacity&&b[0].style.removeAttribute("filter")}var d=this,e=this.options,f=/^#.+/;this.list=this.element.find("ol,ul").eq(0),this.lis=a(" > li:has(a[href])",this.list),this.anchors=this.lis.map(function(){return a("a",this)[0]}),this.panels=a([]),this.anchors.each(function(b,c){var g=a(c).attr("href"),h=g.split("#")[0],i;h&&(h===location.toString().split("#")[0]||(i=a("base")[0])&&h===i.href)&&(g=c.hash,c.href=g);if(f.test(g))d.panels=d.panels.add(d.element.find(d._sanitizeSelector(g)));else if(g&&g!=="#"){a.data(c,"href.tabs",g),a.data(c,"load.tabs",g.replace(/#.*$/,""));var j=d._tabId(c);c.href="#"+j;var k=d.element.find("#"+j);k.length||(k=a(e.panelTemplate).attr("id",j).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").insertAfter(d.panels[b-1]||d.list),k.data("destroy.tabs",!0)),d.panels=d.panels.add(k)}else e.disabled.push(b)}),c?(this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all"),this.list.addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"),this.lis.addClass("ui-state-default ui-corner-top"),this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom"),e.selected===b?(location.hash&&this.anchors.each(function(a,b){if(b.hash==location.hash)return e.selected=a,!1}),typeof e.selected!="number"&&e.cookie&&(e.selected=parseInt(d._cookie(),10)),typeof e.selected!="number"&&this.lis.filter(".ui-tabs-selected").length&&(e.selected=this.lis.index(this.lis.filter(".ui-tabs-selected"))),e.selected=e.selected||(this.lis.length?0:-1)):e.selected===null&&(e.selected=-1),e.selected=e.selected>=0&&this.anchors[e.selected]||e.selected<0?e.selected:0,e.disabled=a.unique(e.disabled.concat(a.map(this.lis.filter(".ui-state-disabled"),function(a,b){return d.lis.index(a)}))).sort(),a.inArray(e.selected,e.disabled)!=-1&&e.disabled.splice(a.inArray(e.selected,e.disabled),1),this.panels.addClass("ui-tabs-hide"),this.lis.removeClass("ui-tabs-selected ui-state-active"),e.selected>=0&&this.anchors.length&&(d.element.find(d._sanitizeSelector(d.anchors[e.selected].hash)).removeClass("ui-tabs-hide"),this.lis.eq(e.selected).addClass("ui-tabs-selected ui-state-active"),d.element.queue("tabs",function(){d._trigger("show",null,d._ui(d.anchors[e.selected],d.element.find(d._sanitizeSelector(d.anchors[e.selected].hash))[0]))}),this.load(e.selected)),a(window).bind("unload",function(){d.lis.add(d.anchors).unbind(".tabs"),d.lis=d.anchors=d.panels=null})):e.selected=this.lis.index(this.lis.filter(".ui-tabs-selected")),this.element[e.collapsible?"addClass":"removeClass"]("ui-tabs-collapsible"),e.cookie&&this._cookie(e.selected,e.cookie);for(var g=0,h;h=this.lis[g];g++)a(h)[a.inArray(g,e.disabled)!=-1&&!a(h).hasClass("ui-tabs-selected")?"addClass":"removeClass"]("ui-state-disabled");e.cache===!1&&this.anchors.removeData("cache.tabs"),this.lis.add(this.anchors).unbind(".tabs");if(e.event!=="mouseover"){var i=function(a,b){b.is(":not(.ui-state-disabled)")&&b.addClass("ui-state-"+a)},j=function(a,b){b.removeClass("ui-state-"+a)};this.lis.bind("mouseover.tabs",function(){i("hover",a(this))}),this.lis.bind("mouseout.tabs",function(){j("hover",a(this))}),this.anchors.bind("focus.tabs",function(){i("focus",a(this).closest("li"))}),this.anchors.bind("blur.tabs",function(){j("focus",a(this).closest("li"))})}var k,l;e.fx&&(a.isArray(e.fx)?(k=e.fx[0],l=e.fx[1]):k=l=e.fx);var n=l?function(b,c){a(b).closest("li").addClass("ui-tabs-selected ui-state-active"),c.hide().removeClass("ui-tabs-hide").animate(l,l.duration||"normal",function(){m(c,l),d._trigger("show",null,d._ui(b,c[0]))})}:function(b,c){a(b).closest("li").addClass("ui-tabs-selected ui-state-active"),c.removeClass("ui-tabs-hide"),d._trigger("show",null,d._ui(b,c[0]))},o=k?function(a,b){b.animate(k,k.duration||"normal",function(){d.lis.removeClass("ui-tabs-selected ui-state-active"),b.addClass("ui-tabs-hide"),m(b,k),d.element.dequeue("tabs")})}:function(a,b,c){d.lis.removeClass("ui-tabs-selected ui-state-active"),b.addClass("ui-tabs-hide"),d.element.dequeue("tabs")};this.anchors.bind(e.event+".tabs",function(){var b=this,c=a(b).closest("li"),f=d.panels.filter(":not(.ui-tabs-hide)"),g=d.element.find(d._sanitizeSelector(b.hash));if(c.hasClass("ui-tabs-selected")&&!e.collapsible||c.hasClass("ui-state-disabled")||c.hasClass("ui-state-processing")||d.panels.filter(":animated").length||d._trigger("select",null,d._ui(this,g[0]))===!1)return this.blur(),!1;e.selected=d.anchors.index(this),d.abort();if(e.collapsible){if(c.hasClass("ui-tabs-selected"))return e.selected=-1,e.cookie&&d._cookie(e.selected,e.cookie),d.element.queue("tabs",function(){o(b,f)}).dequeue("tabs"),this.blur(),!1;if(!f.length)return e.cookie&&d._cookie(e.selected,e.cookie),d.element.queue("tabs",function(){n(b,g)}),d.load(d.anchors.index(this)),this.blur(),!1}e.cookie&&d._cookie(e.selected,e.cookie);if(g.length)f.length&&d.element.queue("tabs",function(){o(b,f)}),d.element.queue("tabs",function(){n(b,g)}),d.load(d.anchors.index(this));else throw"jQuery UI Tabs: Mismatching fragment identifier.";a.browser.msie&&this.blur()}),this.anchors.bind("click.tabs",function(){return!1})},_getIndex:function(a){return typeof a=="string"&&(a=this.anchors.index(this.anchors.filter("[href$='"+a+"']"))),a},destroy:function(){var b=this.options;return this.abort(),this.element.unbind(".tabs").removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible").removeData("tabs"),this.list.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all"),this.anchors.each(function(){var b=a.data(this,"href.tabs");b&&(this.href=b);var c=a(this).unbind(".tabs");a.each(["href","load","cache"],function(a,b){c.removeData(b+".tabs")})}),this.lis.unbind(".tabs").add(this.panels).each(function(){a.data(this,"destroy.tabs")?a(this).remove():a(this).removeClass(["ui-state-default","ui-corner-top","ui-tabs-selected","ui-state-active","ui-state-hover","ui-state-focus","ui-state-disabled","ui-tabs-panel","ui-widget-content","ui-corner-bottom","ui-tabs-hide"].join(" "))}),b.cookie&&this._cookie(null,b.cookie),this},add:function(c,d,e){e===b&&(e=this.anchors.length);var f=this,g=this.options,h=a(g.tabTemplate.replace(/#\{href\}/g,c).replace(/#\{label\}/g,d)),i=c.indexOf("#")?this._tabId(a("a",h)[0]):c.replace("#","");h.addClass("ui-state-default ui-corner-top").data("destroy.tabs",!0);var j=f.element.find("#"+i);return j.length||(j=a(g.panelTemplate).attr("id",i).data("destroy.tabs",!0)),j.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom ui-tabs-hide"),e>=this.lis.length?(h.appendTo(this.list),j.appendTo(this.list[0].parentNode)):(h.insertBefore(this.lis[e]),j.insertBefore(this.panels[e])),g.disabled=a.map(g.disabled,function(a,b){return a>=e?++a:a}),this._tabify(),this.anchors.length==1&&(g.selected=0,h.addClass("ui-tabs-selected ui-state-active"),j.removeClass("ui-tabs-hide"),this.element.queue("tabs",function(){f._trigger("show",null,f._ui(f.anchors[0],f.panels[0]))}),this.load(0)),this._trigger("add",null,this._ui(this.anchors[e],this.panels[e])),this},remove:function(b){b=this._getIndex(b);var c=this.options,d=this.lis.eq(b).remove(),e=this.panels.eq(b).remove();return d.hasClass("ui-tabs-selected")&&this.anchors.length>1&&this.select(b+(b+1=b?--a:a}),this._tabify(),this._trigger("remove",null,this._ui(d.find("a")[0],e[0])),this},enable:function(b){b=this._getIndex(b);var c=this.options;if(a.inArray(b,c.disabled)==-1)return;return this.lis.eq(b).removeClass("ui-state-disabled"),c.disabled=a.grep(c.disabled,function(a,c){return a!=b}),this._trigger("enable",null,this._ui(this.anchors[b],this.panels[b])),this},disable:function(a){a=this._getIndex(a);var b=this,c=this.options;return a!=c.selected&&(this.lis.eq(a).addClass("ui-state-disabled"),c.disabled.push(a),c.disabled.sort(),this._trigger("disable",null,this._ui(this.anchors[a],this.panels[a]))),this},select:function(a){a=this._getIndex(a);if(a==-1)if(this.options.collapsible&&this.options.selected!=-1)a=this.options.selected;else return this;return this.anchors.eq(a).trigger(this.options.event+".tabs"),this},load:function(b){b=this._getIndex(b);var c=this,d=this.options,e=this.anchors.eq(b)[0],f=a.data(e,"load.tabs");this.abort();if(!f||this.element.queue("tabs").length!==0&&a.data(e,"cache.tabs")){this.element.dequeue("tabs");return}this.lis.eq(b).addClass("ui-state-processing");if(d.spinner){var g=a("span",e);g.data("label.tabs",g.html()).html(d.spinner)}return this.xhr=a.ajax(a.extend({},d.ajaxOptions,{url:f,success:function(f,g){c.element.find(c._sanitizeSelector(e.hash)).html(f),c._cleanup(),d.cache&&a.data(e,"cache.tabs",!0),c._trigger("load",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.success(f,g)}catch(h){}},error:function(a,f,g){c._cleanup(),c._trigger("load",null,c._ui(c.anchors[b],c.panels[b]));try{d.ajaxOptions.error(a,f,b,e)}catch(g){}}})),c.element.dequeue("tabs"),this},abort:function(){return this.element.queue([]),this.panels.stop(!1,!0),this.element.queue("tabs",this.element.queue("tabs").splice(-2,2)),this.xhr&&(this.xhr.abort(),delete this.xhr),this._cleanup(),this},url:function(a,b){return this.anchors.eq(a).removeData("cache.tabs").data("load.tabs",b),this},length:function(){return this.anchors.length}}),a.extend(a.ui.tabs,{version:"1.8.23"}),a.extend(a.ui.tabs.prototype,{rotation:null,rotate:function(a,b){var c=this,d=this.options,e=c._rotate||(c._rotate=function(b){clearTimeout(c.rotation),c.rotation=setTimeout(function(){var a=d.selected;c.select(++a'))}function bindHover(a){var b="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return a.bind("mouseout",function(a){var c=$(a.target).closest(b);if(!c.length)return;c.removeClass("ui-state-hover ui-datepicker-prev-hover ui-datepicker-next-hover")}).bind("mouseover",function(c){var d=$(c.target).closest(b);if($.datepicker._isDisabledDatepicker(instActive.inline?a.parent()[0]:instActive.input[0])||!d.length)return;d.parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover"),d.addClass("ui-state-hover"),d.hasClass("ui-datepicker-prev")&&d.addClass("ui-datepicker-prev-hover"),d.hasClass("ui-datepicker-next")&&d.addClass("ui-datepicker-next-hover")})}function extendRemove(a,b){$.extend(a,b);for(var c in b)if(b[c]==null||b[c]==undefined)a[c]=b[c];return a}function isArray(a){return a&&($.browser.safari&&typeof a=="object"&&a.length||a.constructor&&a.constructor.toString().match(/\Array\(\)/))}$.extend($.ui,{datepicker:{version:"1.8.23"}});var PROP_NAME="datepicker",dpuuid=(new Date).getTime(),instActive;$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",maxRows:4,log:function(){this.debug&&console.log.apply("",arguments)},_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(a){return extendRemove(this._defaults,a||{}),this},_attachDatepicker:function(target,settings){var inlineSettings=null;for(var attrName in this._defaults){var attrValue=target.getAttribute("date:"+attrName);if(attrValue){inlineSettings=inlineSettings||{};try{inlineSettings[attrName]=eval(attrValue)}catch(err){inlineSettings[attrName]=attrValue}}}var nodeName=target.nodeName.toLowerCase(),inline=nodeName=="div"||nodeName=="span";target.id||(this.uuid+=1,target.id="dp"+this.uuid);var inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{},inlineSettings||{}),nodeName=="input"?this._connectDatepicker(target,inst):inline&&this._inlineDatepicker(target,inst)},_newInst:function(a,b){var c=a[0].id.replace(/([^A-Za-z0-9_-])/g,"\\\\$1");return{id:c,input:a,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:b,dpDiv:b?bindHover($('
        ')):this.dpDiv}},_connectDatepicker:function(a,b){var c=$(a);b.append=$([]),b.trigger=$([]);if(c.hasClass(this.markerClassName))return;this._attachments(c,b),c.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp).bind("setData.datepicker",function(a,c,d){b.settings[c]=d}).bind("getData.datepicker",function(a,c){return this._get(b,c)}),this._autoSize(b),$.data(a,PROP_NAME,b),b.settings.disabled&&this._disableDatepicker(a)},_attachments:function(a,b){var c=this._get(b,"appendText"),d=this._get(b,"isRTL");b.append&&b.append.remove(),c&&(b.append=$(''+c+""),a[d?"before":"after"](b.append)),a.unbind("focus",this._showDatepicker),b.trigger&&b.trigger.remove();var e=this._get(b,"showOn");(e=="focus"||e=="both")&&a.focus(this._showDatepicker);if(e=="button"||e=="both"){var f=this._get(b,"buttonText"),g=this._get(b,"buttonImage");b.trigger=$(this._get(b,"buttonImageOnly")?$("").addClass(this._triggerClass).attr({src:g,alt:f,title:f}):$('').addClass(this._triggerClass).html(g==""?f:$("").attr({src:g,alt:f,title:f}))),a[d?"before":"after"](b.trigger),b.trigger.click(function(){return $.datepicker._datepickerShowing&&$.datepicker._lastInput==a[0]?$.datepicker._hideDatepicker():$.datepicker._datepickerShowing&&$.datepicker._lastInput!=a[0]?($.datepicker._hideDatepicker(),$.datepicker._showDatepicker(a[0])):$.datepicker._showDatepicker(a[0]),!1})}},_autoSize:function(a){if(this._get(a,"autoSize")&&!a.inline){var b=new Date(2009,11,20),c=this._get(a,"dateFormat");if(c.match(/[DM]/)){var d=function(a){var b=0,c=0;for(var d=0;db&&(b=a[d].length,c=d);return c};b.setMonth(d(this._get(a,c.match(/MM/)?"monthNames":"monthNamesShort"))),b.setDate(d(this._get(a,c.match(/DD/)?"dayNames":"dayNamesShort"))+20-b.getDay())}a.input.attr("size",this._formatDate(a,b).length)}},_inlineDatepicker:function(a,b){var c=$(a);if(c.hasClass(this.markerClassName))return;c.addClass(this.markerClassName).append(b.dpDiv).bind("setData.datepicker",function(a,c,d){b.settings[c]=d}).bind("getData.datepicker",function(a,c){return this._get(b,c)}),$.data(a,PROP_NAME,b),this._setDate(b,this._getDefaultDate(b),!0),this._updateDatepicker(b),this._updateAlternate(b),b.settings.disabled&&this._disableDatepicker(a),b.dpDiv.css("display","block")},_dialogDatepicker:function(a,b,c,d,e){var f=this._dialogInst;if(!f){this.uuid+=1;var g="dp"+this.uuid;this._dialogInput=$(''),this._dialogInput.keydown(this._doKeyDown),$("body").append(this._dialogInput),f=this._dialogInst=this._newInst(this._dialogInput,!1),f.settings={},$.data(this._dialogInput[0],PROP_NAME,f)}extendRemove(f.settings,d||{}),b=b&&b.constructor==Date?this._formatDate(f,b):b,this._dialogInput.val(b),this._pos=e?e.length?e:[e.pageX,e.pageY]:null;if(!this._pos){var h=document.documentElement.clientWidth,i=document.documentElement.clientHeight,j=document.documentElement.scrollLeft||document.body.scrollLeft,k=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[h/2-100+j,i/2-150+k]}return this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px"),f.settings.onSelect=c,this._inDialog=!0,this.dpDiv.addClass(this._dialogClass),this._showDatepicker(this._dialogInput[0]),$.blockUI&&$.blockUI(this.dpDiv),$.data(this._dialogInput[0],PROP_NAME,f),this},_destroyDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!b.hasClass(this.markerClassName))return;var d=a.nodeName.toLowerCase();$.removeData(a,PROP_NAME),d=="input"?(c.append.remove(),c.trigger.remove(),b.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)):(d=="div"||d=="span")&&b.removeClass(this.markerClassName).empty()},_enableDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!b.hasClass(this.markerClassName))return;var d=a.nodeName.toLowerCase();if(d=="input")a.disabled=!1,c.trigger.filter("button").each(function(){this.disabled=!1}).end().filter("img").css({opacity:"1.0",cursor:""});else if(d=="div"||d=="span"){var e=b.children("."+this._inlineClass);e.children().removeClass("ui-state-disabled"),e.find("select.ui-datepicker-month, select.ui-datepicker-year").removeAttr("disabled")}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b})},_disableDatepicker:function(a){var b=$(a),c=$.data(a,PROP_NAME);if(!b.hasClass(this.markerClassName))return;var d=a.nodeName.toLowerCase();if(d=="input")a.disabled=!0,c.trigger.filter("button").each(function(){this.disabled=!0}).end().filter("img").css({opacity:"0.5",cursor:"default"});else if(d=="div"||d=="span"){var e=b.children("."+this._inlineClass);e.children().addClass("ui-state-disabled"),e.find("select.ui-datepicker-month, select.ui-datepicker-year").attr("disabled","disabled")}this._disabledInputs=$.map(this._disabledInputs,function(b){return b==a?null:b}),this._disabledInputs[this._disabledInputs.length]=a},_isDisabledDatepicker:function(a){if(!a)return!1;for(var b=0;b-1}},_doKeyUp:function(a){var b=$.datepicker._getInst(a.target);if(b.input.val()!=b.lastVal)try{var c=$.datepicker.parseDate($.datepicker._get(b,"dateFormat"),b.input?b.input.val():null,$.datepicker._getFormatConfig(b));c&&($.datepicker._setDateFromField(b),$.datepicker._updateAlternate(b),$.datepicker._updateDatepicker(b))}catch(d){$.datepicker.log(d)}return!0},_showDatepicker:function(a){a=a.target||a,a.nodeName.toLowerCase()!="input"&&(a=$("input",a.parentNode)[0]);if($.datepicker._isDisabledDatepicker(a)||$.datepicker._lastInput==a)return;var b=$.datepicker._getInst(a);$.datepicker._curInst&&$.datepicker._curInst!=b&&($.datepicker._curInst.dpDiv.stop(!0,!0),b&&$.datepicker._datepickerShowing&&$.datepicker._hideDatepicker($.datepicker._curInst.input[0]));var c=$.datepicker._get(b,"beforeShow"),d=c?c.apply(a,[a,b]):{};if(d===!1)return;extendRemove(b.settings,d),b.lastVal=null,$.datepicker._lastInput=a,$.datepicker._setDateFromField(b),$.datepicker._inDialog&&(a.value=""),$.datepicker._pos||($.datepicker._pos=$.datepicker._findPos(a),$.datepicker._pos[1]+=a.offsetHeight);var e=!1;$(a).parents().each(function(){return e|=$(this).css("position")=="fixed",!e}),e&&$.browser.opera&&($.datepicker._pos[0]-=document.documentElement.scrollLeft,$.datepicker._pos[1]-=document.documentElement.scrollTop);var f={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};$.datepicker._pos=null,b.dpDiv.empty(),b.dpDiv.css({position:"absolute",display:"block",top:"-1000px"}),$.datepicker._updateDatepicker(b),f=$.datepicker._checkOffset(b,f,e),b.dpDiv.css({position:$.datepicker._inDialog&&$.blockUI?"static":e?"fixed":"absolute",display:"none",left:f.left+"px",top:f.top+"px"});if(!b.inline){var g=$.datepicker._get(b,"showAnim"),h=$.datepicker._get(b,"duration"),i=function(){var a=b.dpDiv.find("iframe.ui-datepicker-cover");if(!!a.length){var c=$.datepicker._getBorders(b.dpDiv);a.css({left:-c[0],top:-c[1],width:b.dpDiv.outerWidth(),height:b.dpDiv.outerHeight()})}};b.dpDiv.zIndex($(a).zIndex()+1),$.datepicker._datepickerShowing=!0,$.effects&&$.effects[g]?b.dpDiv.show(g,$.datepicker._get(b,"showOptions"),h,i):b.dpDiv[g||"show"](g?h:null,i),(!g||!h)&&i(),b.input.is(":visible")&&!b.input.is(":disabled")&&b.input.focus(),$.datepicker._curInst=b}},_updateDatepicker:function(a){var b=this;b.maxRows=4;var c=$.datepicker._getBorders(a.dpDiv);instActive=a,a.dpDiv.empty().append(this._generateHTML(a)),this._attachHandlers(a);var d=a.dpDiv.find("iframe.ui-datepicker-cover");!d.length||d.css({left:-c[0],top:-c[1],width:a.dpDiv.outerWidth(),height:a.dpDiv.outerHeight()}),a.dpDiv.find("."+this._dayOverClass+" a").mouseover();var e=this._getNumberOfMonths(a),f=e[1],g=17;a.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width(""),f>1&&a.dpDiv.addClass("ui-datepicker-multi-"+f).css("width",g*f+"em"),a.dpDiv[(e[0]!=1||e[1]!=1?"add":"remove")+"Class"]("ui-datepicker-multi"),a.dpDiv[(this._get(a,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl"),a==$.datepicker._curInst&&$.datepicker._datepickerShowing&&a.input&&a.input.is(":visible")&&!a.input.is(":disabled")&&a.input[0]!=document.activeElement&&a.input.focus();if(a.yearshtml){var h=a.yearshtml;setTimeout(function(){h===a.yearshtml&&a.yearshtml&&a.dpDiv.find("select.ui-datepicker-year:first").replaceWith(a.yearshtml),h=a.yearshtml=null},0)}},_getBorders:function(a){var b=function(a){return{thin:1,medium:2,thick:3}[a]||a};return[parseFloat(b(a.css("border-left-width"))),parseFloat(b(a.css("border-top-width")))]},_checkOffset:function(a,b,c){var d=a.dpDiv.outerWidth(),e=a.dpDiv.outerHeight(),f=a.input?a.input.outerWidth():0,g=a.input?a.input.outerHeight():0,h=document.documentElement.clientWidth+(c?0:$(document).scrollLeft()),i=document.documentElement.clientHeight+(c?0:$(document).scrollTop());return b.left-=this._get(a,"isRTL")?d-f:0,b.left-=c&&b.left==a.input.offset().left?$(document).scrollLeft():0,b.top-=c&&b.top==a.input.offset().top+g?$(document).scrollTop():0,b.left-=Math.min(b.left,b.left+d>h&&h>d?Math.abs(b.left+d-h):0),b.top-=Math.min(b.top,b.top+e>i&&i>e?Math.abs(e+g):0),b},_findPos:function(a){var b=this._getInst(a),c=this._get(b,"isRTL");while(a&&(a.type=="hidden"||a.nodeType!=1||$.expr.filters.hidden(a)))a=a[c?"previousSibling":"nextSibling"];var d=$(a).offset();return[d.left,d.top]},_hideDatepicker:function(a){var b=this._curInst;if(!b||a&&b!=$.data(a,PROP_NAME))return;if(this._datepickerShowing){var c=this._get(b,"showAnim"),d=this._get(b,"duration"),e=function(){$.datepicker._tidyDialog(b)};$.effects&&$.effects[c]?b.dpDiv.hide(c,$.datepicker._get(b,"showOptions"),d,e):b.dpDiv[c=="slideDown"?"slideUp":c=="fadeIn"?"fadeOut":"hide"](c?d:null,e),c||e(),this._datepickerShowing=!1;var f=this._get(b,"onClose");f&&f.apply(b.input?b.input[0]:null,[b.input?b.input.val():"",b]),this._lastInput=null,this._inDialog&&(this._dialogInput.css({position:"absolute",left:"0",top:"-100px"}),$.blockUI&&($.unblockUI(),$("body").append(this.dpDiv))),this._inDialog=!1}},_tidyDialog:function(a){a.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(a){if(!$.datepicker._curInst)return;var b=$(a.target),c=$.datepicker._getInst(b[0]);(b[0].id!=$.datepicker._mainDivId&&b.parents("#"+$.datepicker._mainDivId).length==0&&!b.hasClass($.datepicker.markerClassName)&&!b.closest("."+$.datepicker._triggerClass).length&&$.datepicker._datepickerShowing&&(!$.datepicker._inDialog||!$.blockUI)||b.hasClass($.datepicker.markerClassName)&&$.datepicker._curInst!=c)&&$.datepicker._hideDatepicker()},_adjustDate:function(a,b,c){var d=$(a),e=this._getInst(d[0]);if(this._isDisabledDatepicker(d[0]))return;this._adjustInstDate(e,b+(c=="M"?this._get(e,"showCurrentAtPos"):0),c),this._updateDatepicker(e)},_gotoToday:function(a){var b=$(a),c=this._getInst(b[0]);if(this._get(c,"gotoCurrent")&&c.currentDay)c.selectedDay=c.currentDay,c.drawMonth=c.selectedMonth=c.currentMonth,c.drawYear=c.selectedYear=c.currentYear;else{var d=new Date;c.selectedDay=d.getDate(),c.drawMonth=c.selectedMonth=d.getMonth(),c.drawYear=c.selectedYear=d.getFullYear()}this._notifyChange(c),this._adjustDate(b)},_selectMonthYear:function(a,b,c){var d=$(a),e=this._getInst(d[0]);e["selected"+(c=="M"?"Month":"Year")]=e["draw"+(c=="M"?"Month":"Year")]=parseInt(b.options[b.selectedIndex].value,10),this._notifyChange(e),this._adjustDate(d)},_selectDay:function(a,b,c,d){var e=$(a);if($(d).hasClass(this._unselectableClass)||this._isDisabledDatepicker(e[0]))return;var f=this._getInst(e[0]);f.selectedDay=f.currentDay=$("a",d).html(),f.selectedMonth=f.currentMonth=b,f.selectedYear=f.currentYear=c,this._selectDate(a,this._formatDate(f,f.currentDay,f.currentMonth,f.currentYear))},_clearDate:function(a){var b=$(a),c=this._getInst(b[0]);this._selectDate(b,"")},_selectDate:function(a,b){var c=$(a),d=this._getInst(c[0]);b=b!=null?b:this._formatDate(d),d.input&&d.input.val(b),this._updateAlternate(d);var e=this._get(d,"onSelect");e?e.apply(d.input?d.input[0]:null,[b,d]):d.input&&d.input.trigger("change"),d.inline?this._updateDatepicker(d):(this._hideDatepicker(),this._lastInput=d.input[0],typeof d.input[0]!="object"&&d.input.focus(),this._lastInput=null)},_updateAlternate:function(a){var b=this._get(a,"altField");if(b){var c=this._get(a,"altFormat")||this._get(a,"dateFormat"),d=this._getDate(a),e=this.formatDate(c,d,this._getFormatConfig(a));$(b).each(function(){$(this).val(e)})}},noWeekends:function(a){var b=a.getDay();return[b>0&&b<6,""]},iso8601Week:function(a){var b=new Date(a.getTime());b.setDate(b.getDate()+4-(b.getDay()||7));var c=b.getTime();return b.setMonth(0),b.setDate(1),Math.floor(Math.round((c-b)/864e5)/7)+1},parseDate:function(a,b,c){if(a==null||b==null)throw"Invalid arguments";b=typeof b=="object"?b.toString():b+"";if(b=="")return null;var d=(c?c.shortYearCutoff:null)||this._defaults.shortYearCutoff;d=typeof d!="string"?d:(new Date).getFullYear()%100+parseInt(d,10);var e=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,f=(c?c.dayNames:null)||this._defaults.dayNames,g=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,h=(c?c.monthNames:null)||this._defaults.monthNames,i=-1,j=-1,k=-1,l=-1,m=!1,n=function(b){var c=s+1-1){j=1,k=l;do{var u=this._getDaysInMonth(i,j-1);if(k<=u)break;j++,k-=u}while(!0)}var t=this._daylightSavingAdjust(new Date(i,j-1,k));if(t.getFullYear()!=i||t.getMonth()+1!=j||t.getDate()!=k)throw"Invalid date";return t},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:(718685+Math.floor(492.5)-Math.floor(19.7)+Math.floor(4.925))*24*60*60*1e7,formatDate:function(a,b,c){if(!b)return"";var d=(c?c.dayNamesShort:null)||this._defaults.dayNamesShort,e=(c?c.dayNames:null)||this._defaults.dayNames,f=(c?c.monthNamesShort:null)||this._defaults.monthNamesShort,g=(c?c.monthNames:null)||this._defaults.monthNames,h=function(b){var c=m+112?a.getHours()+2:0),a):null},_setDate:function(a,b,c){var d=!b,e=a.selectedMonth,f=a.selectedYear,g=this._restrictMinMax(a,this._determineDate(a,b,new Date));a.selectedDay=a.currentDay=g.getDate(),a.drawMonth=a.selectedMonth=a.currentMonth=g.getMonth(),a.drawYear=a.selectedYear=a.currentYear=g.getFullYear(),(e!=a.selectedMonth||f!=a.selectedYear)&&!c&&this._notifyChange(a),this._adjustInstDate(a),a.input&&a.input.val(d?"":this._formatDate(a))},_getDate:function(a){var b=!a.currentYear||a.input&&a.input.val()==""?null:this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return b},_attachHandlers:function(a){var b=this._get(a,"stepMonths"),c="#"+a.id.replace(/\\\\/g,"\\");a.dpDiv.find("[data-handler]").map(function(){var a={prev:function(){window["DP_jQuery_"+dpuuid].datepicker._adjustDate(c,-b,"M")},next:function(){window["DP_jQuery_"+dpuuid].datepicker._adjustDate(c,+b,"M")},hide:function(){window["DP_jQuery_"+dpuuid].datepicker._hideDatepicker()},today:function(){window["DP_jQuery_"+dpuuid].datepicker._gotoToday(c)},selectDay:function(){return window["DP_jQuery_"+dpuuid].datepicker._selectDay(c,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this),!1},selectMonth:function(){return window["DP_jQuery_"+dpuuid].datepicker._selectMonthYear(c,this,"M"),!1},selectYear:function(){return window["DP_jQuery_"+dpuuid].datepicker._selectMonthYear(c,this,"Y"),!1}};$(this).bind(this.getAttribute("data-event"),a[this.getAttribute("data-handler")])})},_generateHTML:function(a){var b=new Date;b=this._daylightSavingAdjust(new Date(b.getFullYear(),b.getMonth(),b.getDate()));var c=this._get(a,"isRTL"),d=this._get(a,"showButtonPanel"),e=this._get(a,"hideIfNoPrevNext"),f=this._get(a,"navigationAsDateFormat"),g=this._getNumberOfMonths(a),h=this._get(a,"showCurrentAtPos"),i=this._get(a,"stepMonths"),j=g[0]!=1||g[1]!=1,k=this._daylightSavingAdjust(a.currentDay?new Date(a.currentYear,a.currentMonth,a.currentDay):new Date(9999,9,9)),l=this._getMinMaxDate(a,"min"),m=this._getMinMaxDate(a,"max"),n=a.drawMonth-h,o=a.drawYear;n<0&&(n+=12,o--);if(m){var p=this._daylightSavingAdjust(new Date(m.getFullYear(),m.getMonth()-g[0]*g[1]+1,m.getDate()));p=l&&pp)n--,n<0&&(n=11,o--)}a.drawMonth=n,a.drawYear=o;var q=this._get(a,"prevText");q=f?this.formatDate(q,this._daylightSavingAdjust(new Date(o,n-i,1)),this._getFormatConfig(a)):q;var r=this._canAdjustMonth(a,-1,o,n)?''+q+"":e?"":''+q+"",s=this._get(a,"nextText");s=f?this.formatDate(s,this._daylightSavingAdjust(new Date(o,n+i,1)),this._getFormatConfig(a)):s;var t=this._canAdjustMonth(a,1,o,n)?''+s+"":e?"":''+s+"",u=this._get(a,"currentText"),v=this._get(a,"gotoCurrent")&&a.currentDay?k:b;u=f?this.formatDate(u,v,this._getFormatConfig(a)):u;var w=a.inline?"":'",x=d?'
        '+(c?w:"")+(this._isInRange(a,v)?'":"")+(c?"":w)+"
        ":"",y=parseInt(this._get(a,"firstDay"),10);y=isNaN(y)?0:y;var z=this._get(a,"showWeek"),A=this._get(a,"dayNames"),B=this._get(a,"dayNamesShort"),C=this._get(a,"dayNamesMin"),D=this._get(a,"monthNames"),E=this._get(a,"monthNamesShort"),F=this._get(a,"beforeShowDay"),G=this._get(a,"showOtherMonths"),H=this._get(a,"selectOtherMonths"),I=this._get(a,"calculateWeek")||this.iso8601Week,J=this._getDefaultDate(a),K="";for(var L=0;L1)switch(N){case 0:Q+=" ui-datepicker-group-first",P=" ui-corner-"+(c?"right":"left");break;case g[1]-1:Q+=" ui-datepicker-group-last",P=" ui-corner-"+(c?"left":"right");break;default:Q+=" ui-datepicker-group-middle",P=""}Q+='">'}Q+='
        '+(/all|left/.test(P)&&L==0?c?t:r:"")+(/all|right/.test(P)&&L==0?c?r:t:"")+this._generateMonthYearHeader(a,n,o,l,m,L>0||N>0,D,E)+'
        '+"";var R=z?'":"";for(var S=0;S<7;S++){var T=(S+y)%7;R+="=5?' class="ui-datepicker-week-end"':"")+">"+''+C[T]+""}Q+=R+"";var U=this._getDaysInMonth(o,n);o==a.selectedYear&&n==a.selectedMonth&&(a.selectedDay=Math.min(a.selectedDay,U));var V=(this._getFirstDayOfMonth(o,n)-y+7)%7,W=Math.ceil((V+U)/7),X=j?this.maxRows>W?this.maxRows:W:W;this.maxRows=X;var Y=this._daylightSavingAdjust(new Date(o,n,1-V));for(var Z=0;Z";var _=z?'":"";for(var S=0;S<7;S++){var ba=F?F.apply(a.input?a.input[0]:null,[Y]):[!0,""],bb=Y.getMonth()!=n,bc=bb&&!H||!ba[0]||l&&Ym;_+='",Y.setDate(Y.getDate()+1),Y=this._daylightSavingAdjust(Y)}Q+=_+""}n++,n>11&&(n=0,o++),Q+="
        '+this._get(a,"weekHeader")+"
        '+this._get(a,"calculateWeek")(Y)+""+(bb&&!G?" ":bc?''+Y.getDate()+"":''+Y.getDate()+"")+"
        "+(j?"
        "+(g[0]>0&&N==g[1]-1?'
        ':""):""),M+=Q}K+=M}return K+=x+($.browser.msie&&parseInt($.browser.version,10)<7&&!a.inline?'':""),a._keyEvent=!1,K},_generateMonthYearHeader:function(a,b,c,d,e,f,g,h){var i=this._get(a,"changeMonth"),j=this._get(a,"changeYear"),k=this._get(a,"showMonthAfterYear"),l='
        ',m="";if(f||!i)m+=''+g[b]+"";else{var n=d&&d.getFullYear()==c,o=e&&e.getFullYear()==c;m+='"}k||(l+=m+(f||!i||!j?" ":""));if(!a.yearshtml){a.yearshtml="";if(f||!j)l+=''+c+"";else{var q=this._get(a,"yearRange").split(":"),r=(new Date).getFullYear(),s=function(a){var b=a.match(/c[+-].*/)?c+parseInt(a.substring(1),10):a.match(/[+-].*/)?r+parseInt(a,10):parseInt(a,10);return isNaN(b)?r:b},t=s(q[0]),u=Math.max(t,s(q[1]||""));t=d?Math.max(t,d.getFullYear()):t,u=e?Math.min(u,e.getFullYear()):u,a.yearshtml+='",l+=a.yearshtml,a.yearshtml=null}}return l+=this._get(a,"yearSuffix"),k&&(l+=(f||!i||!j?" ":"")+m),l+="
        ",l},_adjustInstDate:function(a,b,c){var d=a.drawYear+(c=="Y"?b:0),e=a.drawMonth+(c=="M"?b:0),f=Math.min(a.selectedDay,this._getDaysInMonth(d,e))+(c=="D"?b:0),g=this._restrictMinMax(a,this._daylightSavingAdjust(new Date(d,e,f)));a.selectedDay=g.getDate(),a.drawMonth=a.selectedMonth=g.getMonth(),a.drawYear=a.selectedYear=g.getFullYear(),(c=="M"||c=="Y")&&this._notifyChange(a)},_restrictMinMax:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max"),e=c&&bd?d:e,e},_notifyChange:function(a){var b=this._get(a,"onChangeMonthYear");b&&b.apply(a.input?a.input[0]:null,[a.selectedYear,a.selectedMonth+1,a])},_getNumberOfMonths:function(a){var b=this._get(a,"numberOfMonths");return b==null?[1,1]:typeof b=="number"?[1,b]:b},_getMinMaxDate:function(a,b){return this._determineDate(a,this._get(a,b+"Date"),null)},_getDaysInMonth:function(a,b){return 32-this._daylightSavingAdjust(new Date(a,b,32)).getDate()},_getFirstDayOfMonth:function(a,b){return(new Date(a,b,1)).getDay()},_canAdjustMonth:function(a,b,c,d){var e=this._getNumberOfMonths(a),f=this._daylightSavingAdjust(new Date(c,d+(b<0?b:e[0]*e[1]),1));return b<0&&f.setDate(this._getDaysInMonth(f.getFullYear(),f.getMonth())),this._isInRange(a,f)},_isInRange:function(a,b){var c=this._getMinMaxDate(a,"min"),d=this._getMinMaxDate(a,"max");return(!c||b.getTime()>=c.getTime())&&(!d||b.getTime()<=d.getTime())},_getFormatConfig:function(a){var b=this._get(a,"shortYearCutoff");return b=typeof b!="string"?b:(new Date).getFullYear()%100+parseInt(b,10),{shortYearCutoff:b,dayNamesShort:this._get(a,"dayNamesShort"),dayNames:this._get(a,"dayNames"),monthNamesShort:this._get(a,"monthNamesShort"),monthNames:this._get(a,"monthNames")}},_formatDate:function(a,b,c,d){b||(a.currentDay=a.selectedDay,a.currentMonth=a.selectedMonth,a.currentYear=a.selectedYear);var e=b?typeof b=="object"?b:this._daylightSavingAdjust(new Date(d,c,b)):this._daylightSavingAdjust(new Date(a.currentYear,a.currentMonth,a.currentDay));return this.formatDate(this._get(a,"dateFormat"),e,this._getFormatConfig(a))}}),$.fn.datepicker=function(a){if(!this.length)return this;$.datepicker.initialized||($(document).mousedown($.datepicker._checkExternalClick).find("body").append($.datepicker.dpDiv),$.datepicker.initialized=!0);var b=Array.prototype.slice.call(arguments,1);return typeof a!="string"||a!="isDisabled"&&a!="getDate"&&a!="widget"?a=="option"&&arguments.length==2&&typeof arguments[1]=="string"?$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this[0]].concat(b)):this.each(function(){typeof a=="string"?$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this].concat(b)):$.datepicker._attachDatepicker(this,a)}):$.datepicker["_"+a+"Datepicker"].apply($.datepicker,[this[0]].concat(b))},$.datepicker=new Datepicker,$.datepicker.initialized=!1,$.datepicker.uuid=(new Date).getTime(),$.datepicker.version="1.8.23",window["DP_jQuery_"+dpuuid]=$})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.ui.progressbar.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){a.widget("ui.progressbar",{options:{value:0,max:100},min:0,_create:function(){this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min,"aria-valuemax":this.options.max,"aria-valuenow":this._value()}),this.valueDiv=a("
        ").appendTo(this.element),this.oldValue=this._value(),this._refreshValue()},destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow"),this.valueDiv.remove(),a.Widget.prototype.destroy.apply(this,arguments)},value:function(a){return a===b?this._value():(this._setOption("value",a),this)},_setOption:function(b,c){b==="value"&&(this.options.value=c,this._refreshValue(),this._value()===this.options.max&&this._trigger("complete")),a.Widget.prototype._setOption.apply(this,arguments)},_value:function(){var a=this.options.value;return typeof a!="number"&&(a=0),Math.min(this.options.max,Math.max(this.min,a))},_percentage:function(){return 100*this._value()/this.options.max},_refreshValue:function(){var a=this.value(),b=this._percentage();this.oldValue!==a&&(this.oldValue=a,this._trigger("change")),this.valueDiv.toggle(a>this.min).toggleClass("ui-corner-right",a===this.options.max).width(b.toFixed(0)+"%"),this.element.attr("aria-valuenow",a)}}),a.extend(a.ui.progressbar,{version:"1.8.23"})})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.effects.core.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -jQuery.effects||function(a,b){function c(b){var c;return b&&b.constructor==Array&&b.length==3?b:(c=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(b))?[parseInt(c[1],10),parseInt(c[2],10),parseInt(c[3],10)]:(c=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(b))?[parseFloat(c[1])*2.55,parseFloat(c[2])*2.55,parseFloat(c[3])*2.55]:(c=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(b))?[parseInt(c[1],16),parseInt(c[2],16),parseInt(c[3],16)]:(c=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(b))?[parseInt(c[1]+c[1],16),parseInt(c[2]+c[2],16),parseInt(c[3]+c[3],16)]:(c=/rgba\(0, 0, 0, 0\)/.exec(b))?e.transparent:e[a.trim(b).toLowerCase()]}function d(b,d){var e;do{e=(a.curCSS||a.css)(b,d);if(e!=""&&e!="transparent"||a.nodeName(b,"body"))break;d="backgroundColor"}while(b=b.parentNode);return c(e)}function h(){var a=document.defaultView?document.defaultView.getComputedStyle(this,null):this.currentStyle,b={},c,d;if(a&&a.length&&a[0]&&a[a[0]]){var e=a.length;while(e--)c=a[e],typeof a[c]=="string"&&(d=c.replace(/\-(\w)/g,function(a,b){return b.toUpperCase()}),b[d]=a[c])}else for(c in a)typeof a[c]=="string"&&(b[c]=a[c]);return b}function i(b){var c,d;for(c in b)d=b[c],(d==null||a.isFunction(d)||c in g||/scrollbar/.test(c)||!/color/i.test(c)&&isNaN(parseFloat(d)))&&delete b[c];return b}function j(a,b){var c={_:0},d;for(d in b)a[d]!=b[d]&&(c[d]=b[d]);return c}function k(b,c,d,e){typeof b=="object"&&(e=c,d=null,c=b,b=c.effect),a.isFunction(c)&&(e=c,d=null,c={});if(typeof c=="number"||a.fx.speeds[c])e=d,d=c,c={};return a.isFunction(d)&&(e=d,d=null),c=c||{},d=d||c.duration,d=a.fx.off?0:typeof d=="number"?d:d in a.fx.speeds?a.fx.speeds[d]:a.fx.speeds._default,e=e||c.complete,[b,c,d,e]}function l(b){return!b||typeof b=="number"||a.fx.speeds[b]?!0:typeof b=="string"&&!a.effects[b]?!0:!1}a.effects={},a.each(["backgroundColor","borderBottomColor","borderLeftColor","borderRightColor","borderTopColor","borderColor","color","outlineColor"],function(b,e){a.fx.step[e]=function(a){a.colorInit||(a.start=d(a.elem,e),a.end=c(a.end),a.colorInit=!0),a.elem.style[e]="rgb("+Math.max(Math.min(parseInt(a.pos*(a.end[0]-a.start[0])+a.start[0],10),255),0)+","+Math.max(Math.min(parseInt(a.pos*(a.end[1]-a.start[1])+a.start[1],10),255),0)+","+Math.max(Math.min(parseInt(a.pos*(a.end[2]-a.start[2])+a.start[2],10),255),0)+")"}});var e={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0,0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211,211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0],transparent:[255,255,255]},f=["add","remove","toggle"],g={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};a.effects.animateClass=function(b,c,d,e){return a.isFunction(d)&&(e=d,d=null),this.queue(function(){var g=a(this),k=g.attr("style")||" ",l=i(h.call(this)),m,n=g.attr("class")||"";a.each(f,function(a,c){b[c]&&g[c+"Class"](b[c])}),m=i(h.call(this)),g.attr("class",n),g.animate(j(l,m),{queue:!1,duration:c,easing:d,complete:function(){a.each(f,function(a,c){b[c]&&g[c+"Class"](b[c])}),typeof g.attr("style")=="object"?(g.attr("style").cssText="",g.attr("style").cssText=k):g.attr("style",k),e&&e.apply(this,arguments),a.dequeue(this)}})})},a.fn.extend({_addClass:a.fn.addClass,addClass:function(b,c,d,e){return c?a.effects.animateClass.apply(this,[{add:b},c,d,e]):this._addClass(b)},_removeClass:a.fn.removeClass,removeClass:function(b,c,d,e){return c?a.effects.animateClass.apply(this,[{remove:b},c,d,e]):this._removeClass(b)},_toggleClass:a.fn.toggleClass,toggleClass:function(c,d,e,f,g){return typeof d=="boolean"||d===b?e?a.effects.animateClass.apply(this,[d?{add:c}:{remove:c},e,f,g]):this._toggleClass(c,d):a.effects.animateClass.apply(this,[{toggle:c},d,e,f])},switchClass:function(b,c,d,e,f){return a.effects.animateClass.apply(this,[{add:c,remove:b},d,e,f])}}),a.extend(a.effects,{version:"1.8.23",save:function(a,b){for(var c=0;c
        ").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),e=document.activeElement;try{e.id}catch(f){e=document.body}return b.wrap(d),(b[0]===e||a.contains(b[0],e))&&a(e).focus(),d=b.parent(),b.css("position")=="static"?(d.css({position:"relative"}),b.css({position:"relative"})):(a.extend(c,{position:b.css("position"),zIndex:b.css("z-index")}),a.each(["top","left","bottom","right"],function(a,d){c[d]=b.css(d),isNaN(parseInt(c[d],10))&&(c[d]="auto")}),b.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})),d.css(c).show()},removeWrapper:function(b){var c,d=document.activeElement;return b.parent().is(".ui-effects-wrapper")?(c=b.parent().replaceWith(b),(b[0]===d||a.contains(b[0],d))&&a(d).focus(),c):b},setTransition:function(b,c,d,e){return e=e||{},a.each(c,function(a,c){var f=b.cssUnit(c);f[0]>0&&(e[c]=f[0]*d+f[1])}),e}}),a.fn.extend({effect:function(b,c,d,e){var f=k.apply(this,arguments),g={options:f[1],duration:f[2],callback:f[3]},h=g.options.mode,i=a.effects[b];return a.fx.off||!i?h?this[h](g.duration,g.callback):this.each(function(){g.callback&&g.callback.call(this)}):i.call(this,g)},_show:a.fn.show,show:function(a){if(l(a))return this._show.apply(this,arguments);var b=k.apply(this,arguments);return b[1].mode="show",this.effect.apply(this,b)},_hide:a.fn.hide,hide:function(a){if(l(a))return this._hide.apply(this,arguments);var b=k.apply(this,arguments);return b[1].mode="hide",this.effect.apply(this,b)},__toggle:a.fn.toggle,toggle:function(b){if(l(b)||typeof b=="boolean"||a.isFunction(b))return this.__toggle.apply(this,arguments);var c=k.apply(this,arguments);return c[1].mode="toggle",this.effect.apply(this,c)},cssUnit:function(b){var c=this.css(b),d=[];return a.each(["em","px","%","pt"],function(a,b){c.indexOf(b)>0&&(d=[parseFloat(c),b])}),d}});var m={};a.each(["Quad","Cubic","Quart","Quint","Expo"],function(a,b){m[b]=function(b){return Math.pow(b,a+2)}}),a.extend(m,{Sine:function(a){return 1-Math.cos(a*Math.PI/2)},Circ:function(a){return 1-Math.sqrt(1-a*a)},Elastic:function(a){return a===0||a===1?a:-Math.pow(2,8*(a-1))*Math.sin(((a-1)*80-7.5)*Math.PI/15)},Back:function(a){return a*a*(3*a-2)},Bounce:function(a){var b,c=4;while(a<((b=Math.pow(2,--c))-1)/11);return 1/Math.pow(4,3-c)-7.5625*Math.pow((b*3-2)/22-a,2)}}),a.each(m,function(b,c){a.easing["easeIn"+b]=c,a.easing["easeOut"+b]=function(a){return 1-c(1-a)},a.easing["easeInOut"+b]=function(a){return a<.5?c(a*2)/2:c(a*-2+2)/-2+1}})}(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.effects.blind.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){a.effects.blind=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right"],e=a.effects.setMode(c,b.options.mode||"hide"),f=b.options.direction||"vertical";a.effects.save(c,d),c.show();var g=a.effects.createWrapper(c).css({overflow:"hidden"}),h=f=="vertical"?"height":"width",i=f=="vertical"?g.height():g.width();e=="show"&&g.css(h,0);var j={};j[h]=e=="show"?i:0,g.animate(j,b.duration,b.options.easing,function(){e=="hide"&&c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(c[0],arguments),c.dequeue()})})}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.effects.bounce.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){a.effects.bounce=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right"],e=a.effects.setMode(c,b.options.mode||"effect"),f=b.options.direction||"up",g=b.options.distance||20,h=b.options.times||5,i=b.duration||250;/show|hide/.test(e)&&d.push("opacity"),a.effects.save(c,d),c.show(),a.effects.createWrapper(c);var j=f=="up"||f=="down"?"top":"left",k=f=="up"||f=="left"?"pos":"neg",g=b.options.distance||(j=="top"?c.outerHeight(!0)/3:c.outerWidth(!0)/3);e=="show"&&c.css("opacity",0).css(j,k=="pos"?-g:g),e=="hide"&&(g=g/(h*2)),e!="hide"&&h--;if(e=="show"){var l={opacity:1};l[j]=(k=="pos"?"+=":"-=")+g,c.animate(l,i/2,b.options.easing),g=g/2,h--}for(var m=0;m
        ").css({position:"absolute",visibility:"visible",left:-j*(g/d),top:-i*(h/c)}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:g/d,height:h/c,left:f.left+j*(g/d)+(b.options.mode=="show"?(j-Math.floor(d/2))*(g/d):0),top:f.top+i*(h/c)+(b.options.mode=="show"?(i-Math.floor(c/2))*(h/c):0),opacity:b.options.mode=="show"?0:1}).animate({left:f.left+j*(g/d)+(b.options.mode=="show"?0:(j-Math.floor(d/2))*(g/d)),top:f.top+i*(h/c)+(b.options.mode=="show"?0:(i-Math.floor(c/2))*(h/c)),opacity:b.options.mode=="show"?1:0},b.duration||500);setTimeout(function(){b.options.mode=="show"?e.css({visibility:"visible"}):e.css({visibility:"visible"}).hide(),b.callback&&b.callback.apply(e[0]),e.dequeue(),a("div.ui-effects-explode").remove()},b.duration||500)})}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.effects.fade.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){a.effects.fade=function(b){return this.queue(function(){var c=a(this),d=a.effects.setMode(c,b.options.mode||"hide");c.animate({opacity:d},{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){b.callback&&b.callback.apply(this,arguments),c.dequeue()}})})}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.effects.fold.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){a.effects.fold=function(b){return this.queue(function(){var c=a(this),d=["position","top","bottom","left","right"],e=a.effects.setMode(c,b.options.mode||"hide"),f=b.options.size||15,g=!!b.options.horizFirst,h=b.duration?b.duration/2:a.fx.speeds._default/2;a.effects.save(c,d),c.show();var i=a.effects.createWrapper(c).css({overflow:"hidden"}),j=e=="show"!=g,k=j?["width","height"]:["height","width"],l=j?[i.width(),i.height()]:[i.height(),i.width()],m=/([0-9]+)%/.exec(f);m&&(f=parseInt(m[1],10)/100*l[e=="hide"?0:1]),e=="show"&&i.css(g?{height:0,width:f}:{height:f,width:0});var n={},p={};n[k[0]]=e=="show"?l[0]:f,p[k[1]]=e=="show"?l[1]:0,i.animate(n,h,b.options.easing).animate(p,h,b.options.easing,function(){e=="hide"&&c.hide(),a.effects.restore(c,d),a.effects.removeWrapper(c),b.callback&&b.callback.apply(c[0],arguments),c.dequeue()})})}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.effects.highlight.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){a.effects.highlight=function(b){return this.queue(function(){var c=a(this),d=["backgroundImage","backgroundColor","opacity"],e=a.effects.setMode(c,b.options.mode||"show"),f={backgroundColor:c.css("backgroundColor")};e=="hide"&&(f.opacity=0),a.effects.save(c,d),c.show().css({backgroundImage:"none",backgroundColor:b.options.color||"#ffff99"}).animate(f,{queue:!1,duration:b.duration,easing:b.options.easing,complete:function(){e=="hide"&&c.hide(),a.effects.restore(c,d),e=="show"&&!a.support.opacity&&this.style.removeAttribute("filter"),b.callback&&b.callback.apply(this,arguments),c.dequeue()}})})}})(jQuery);;/*! jQuery UI - v1.8.23 - 2012-08-15 -* https://github.com/jquery/jquery-ui -* Includes: jquery.effects.pulsate.js -* Copyright (c) 2012 AUTHORS.txt; Licensed MIT, GPL */ -(function(a,b){a.effects.pulsate=function(b){return this.queue(function(){var c=a(this),d=a.effects.setMode(c,b.options.mode||"show"),e=(b.options.times||5)*2-1,f=b.duration?b.duration/2:a.fx.speeds._default/2,g=c.is(":visible"),h=0;g||(c.css("opacity",0).show(),h=1),(d=="hide"&&g||d=="show"&&!g)&&e--;for(var i=0;i
        ').appendTo(document.body).addClass(b.options.className).css({top:g.top,left:g.left,height:c.innerHeight(),width:c.innerWidth(),position:"absolute"}).animate(f,b.duration,b.options.easing,function(){h.remove(),b.callback&&b.callback.apply(c[0],arguments),c.dequeue()})})}})(jQuery);; \ No newline at end of file diff --git a/sources/web/public/js/libs/jquery.colorPicker.js b/sources/web/public/js/libs/jquery.colorPicker.js deleted file mode 100644 index 070d26d..0000000 --- a/sources/web/public/js/libs/jquery.colorPicker.js +++ /dev/null @@ -1,164 +0,0 @@ -/** - * Really Simple Color Picker in jQuery - * - * Copyright (c) 2008 Lakshan Perera (www.laktek.com) - * Licensed under the MIT (MIT-LICENSE.txt) licenses. - * - */ - -(function($){ - $.fn.colorPicker = function(){ - if(this.length > 0) buildSelector(); - return this.each(function(i) { - buildPicker(this)}); - }; - - var selectorOwner; - var selectorShowing = false; - - buildPicker = function(element){ - //build color picker - control = $("
         
        ") - control.css('background-color', $(element).val()); - - //bind click event to color picker - control.bind("click", toggleSelector); - - //add the color picker section - $(element).after(control); - - //add even listener to input box - $(element).bind("change", function() { - selectedValue = toHex($(element).val()); - $(element).next(".color_picker").css("background-color", selectedValue); - }); - - //hide the input box - $(element).hide(); - - }; - - buildSelector = function(){ - selector = $("
        "); - - //add color pallete - $.each($.fn.colorPicker.defaultColors, function(i){ - swatch = $("
         
        ") - swatch.css("background-color", "#" + this); - swatch.bind("click", function(e){ changeColor($(this).css("background-color")) }); - swatch.bind("mouseover", function(e){ - $(this).css("border-color", "#598FEF"); - $("input#color_value").val(toHex($(this).css("background-color"))); - }); - swatch.bind("mouseout", function(e){ - $(this).css("border-color", "#000"); - $("input#color_value").val(toHex($(selectorOwner).css("background-color"))); - }); - - swatch.appendTo(selector); - }); - - //add HEX value field - hex_field = $(""); - hex_field.bind("keydown", function(event){ - if(event.keyCode == 13) {changeColor($(this).val());} - if(event.keyCode == 27) {toggleSelector()} - }); - - $("
        ").append(hex_field).appendTo(selector); - - $("body").append(selector); - selector.hide(); - }; - - checkMouse = function(event){ - //check the click was on selector itself or on selectorOwner - var selector = "div#color_selector"; - var selectorParent = $(event.target).parents(selector).length; - if(event.target == $(selector)[0] || event.target == selectorOwner || selectorParent > 0) return - - hideSelector(); - } - - hideSelector = function(){ - var selector = $("div#color_selector"); - - $(document).unbind("mousedown", checkMouse); - selector.hide(); - selectorShowing = false - } - - showSelector = function(){ - var selector = $("div#color_selector"); - - //alert($(selectorOwner).offset().top); - - selector.css({ - top: $(selectorOwner).offset().top + ($(selectorOwner).outerHeight()), - left: $(selectorOwner).offset().left - }); - hexColor = $(selectorOwner).prev("input").val(); - $("input#color_value").val(hexColor); - selector.show(); - - //bind close event handler - $(document).bind("mousedown", checkMouse); - selectorShowing = true - } - - toggleSelector = function(event){ - selectorOwner = this; - selectorShowing ? hideSelector() : showSelector(); - } - - changeColor = function(value){ - if(selectedValue = toHex(value)){ - $(selectorOwner).css("background-color", selectedValue); - $(selectorOwner).prev("input").val(selectedValue).change(); - - //close the selector - hideSelector(); - } - }; - - //converts RGB string to HEX - inspired by http://code.google.com/p/jquery-color-utils - toHex = function(color){ - //valid HEX code is entered - if(color.match(/[0-9a-fA-F]{3}$/) || color.match(/[0-9a-fA-F]{6}$/)){ - color = (color.charAt(0) == "#") ? color : ("#" + color); - } - //rgb color value is entered (by selecting a swatch) - else if(color.match(/^rgb\(([0-9]|[1-9][0-9]|[1][0-9]{2}|[2][0-4][0-9]|[2][5][0-5]),[ ]{0,1}([0-9]|[1-9][0-9]|[1][0-9]{2}|[2][0-4][0-9]|[2][5][0-5]),[ ]{0,1}([0-9]|[1-9][0-9]|[1][0-9]{2}|[2][0-4][0-9]|[2][5][0-5])\)$/)){ - var c = ([parseInt(RegExp.$1),parseInt(RegExp.$2),parseInt(RegExp.$3)]); - - var pad = function(str){ - if(str.length < 2){ - for(var i = 0,len = 2 - str.length ; i= 1.0) { - return "rgb("+[o.r, o.g, o.b].join(",")+")"; - } else { - return "rgba("+[o.r, o.g, o.b, o.a].join(",")+")"; - } - }; - - o.normalize = function () { - function clamp(min, value, max) { - return value < min ? min: (value > max ? max: value); - } - - o.r = clamp(0, parseInt(o.r), 255); - o.g = clamp(0, parseInt(o.g), 255); - o.b = clamp(0, parseInt(o.b), 255); - o.a = clamp(0, o.a, 1); - return o; - }; - - o.clone = function () { - return $.color.make(o.r, o.b, o.g, o.a); - }; - - return o.normalize(); - } - - // extract CSS color property from element, going up in the DOM - // if it's "transparent" - $.color.extract = function (elem, css) { - var c; - do { - c = elem.css(css).toLowerCase(); - // keep going until we find an element that has color, or - // we hit the body - if (c != '' && c != 'transparent') - break; - elem = elem.parent(); - } while (!$.nodeName(elem.get(0), "body")); - - // catch Safari's way of signalling transparent - if (c == "rgba(0, 0, 0, 0)") - c = "transparent"; - - return $.color.parse(c); - } - - // parse CSS color string (like "rgb(10, 32, 43)" or "#fff"), - // returns color object, if parsing failed, you get black (0, 0, - // 0) out - $.color.parse = function (str) { - var res, m = $.color.make; - - // Look for rgb(num,num,num) - if (res = /rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(str)) - return m(parseInt(res[1], 10), parseInt(res[2], 10), parseInt(res[3], 10)); - - // Look for rgba(num,num,num,num) - if (res = /rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str)) - return m(parseInt(res[1], 10), parseInt(res[2], 10), parseInt(res[3], 10), parseFloat(res[4])); - - // Look for rgb(num%,num%,num%) - if (res = /rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(str)) - return m(parseFloat(res[1])*2.55, parseFloat(res[2])*2.55, parseFloat(res[3])*2.55); - - // Look for rgba(num%,num%,num%,num) - if (res = /rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(str)) - return m(parseFloat(res[1])*2.55, parseFloat(res[2])*2.55, parseFloat(res[3])*2.55, parseFloat(res[4])); - - // Look for #a0b1c2 - if (res = /#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(str)) - return m(parseInt(res[1], 16), parseInt(res[2], 16), parseInt(res[3], 16)); - - // Look for #fff - if (res = /#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(str)) - return m(parseInt(res[1]+res[1], 16), parseInt(res[2]+res[2], 16), parseInt(res[3]+res[3], 16)); - - // Otherwise, we're most likely dealing with a named color - var name = $.trim(str).toLowerCase(); - if (name == "transparent") - return m(255, 255, 255, 0); - else { - // default to black - res = lookupColors[name] || [0, 0, 0]; - return m(res[0], res[1], res[2]); - } - } - - var lookupColors = { - aqua:[0,255,255], - azure:[240,255,255], - beige:[245,245,220], - black:[0,0,0], - blue:[0,0,255], - brown:[165,42,42], - cyan:[0,255,255], - darkblue:[0,0,139], - darkcyan:[0,139,139], - darkgrey:[169,169,169], - darkgreen:[0,100,0], - darkkhaki:[189,183,107], - darkmagenta:[139,0,139], - darkolivegreen:[85,107,47], - darkorange:[255,140,0], - darkorchid:[153,50,204], - darkred:[139,0,0], - darksalmon:[233,150,122], - darkviolet:[148,0,211], - fuchsia:[255,0,255], - gold:[255,215,0], - green:[0,128,0], - indigo:[75,0,130], - khaki:[240,230,140], - lightblue:[173,216,230], - lightcyan:[224,255,255], - lightgreen:[144,238,144], - lightgrey:[211,211,211], - lightpink:[255,182,193], - lightyellow:[255,255,224], - lime:[0,255,0], - magenta:[255,0,255], - maroon:[128,0,0], - navy:[0,0,128], - olive:[128,128,0], - orange:[255,165,0], - pink:[255,192,203], - purple:[128,0,128], - violet:[128,0,128], - red:[255,0,0], - silver:[192,192,192], - white:[255,255,255], - yellow:[255,255,0] - }; -})(jQuery); diff --git a/sources/web/public/js/libs/jquery.cookie.js b/sources/web/public/js/libs/jquery.cookie.js deleted file mode 100644 index 6d5974a..0000000 --- a/sources/web/public/js/libs/jquery.cookie.js +++ /dev/null @@ -1,47 +0,0 @@ -/*! - * jQuery Cookie Plugin - * https://github.com/carhartl/jquery-cookie - * - * Copyright 2011, Klaus Hartl - * Dual licensed under the MIT or GPL Version 2 licenses. - * http://www.opensource.org/licenses/mit-license.php - * http://www.opensource.org/licenses/GPL-2.0 - */ -(function($) { - $.cookie = function(key, value, options) { - - // key and at least value given, set cookie... - if (arguments.length > 1 && (!/Object/.test(Object.prototype.toString.call(value)) || value === null || value === undefined)) { - options = $.extend({}, options); - - if (value === null || value === undefined) { - options.expires = -1; - } - - if (typeof options.expires === 'number') { - var days = options.expires, t = options.expires = new Date(); - t.setDate(t.getDate() + days); - } - - value = String(value); - - return (document.cookie = [ - encodeURIComponent(key), '=', options.raw ? value : encodeURIComponent(value), - options.expires ? '; expires=' + options.expires.toUTCString() : '', // use expires attribute, max-age is not supported by IE - options.path ? '; path=' + options.path : '', - options.domain ? '; domain=' + options.domain : '', - options.secure ? '; secure' : '' - ].join('')); - } - - // key and possibly options given, get cookie... - options = value || {}; - var decode = options.raw ? function(s) { return s; } : decodeURIComponent; - - var pairs = document.cookie.split('; '); - for (var i = 0, pair; pair = pairs[i] && pairs[i].split('='); i++) { - if (decode(pair[0]) === key) return decode(pair[1] || ''); // IE saves cookies with empty string as "c; ", e.g. without "=" as opposed to EOMB, thus pair[1] may be undefined - } - return null; - }; -})(jQuery); diff --git a/sources/web/public/js/libs/jquery.freeow.min.js b/sources/web/public/js/libs/jquery.freeow.min.js deleted file mode 100644 index 54dcf56..0000000 --- a/sources/web/public/js/libs/jquery.freeow.min.js +++ /dev/null @@ -1,16 +0,0 @@ -/** - * Freeow! - * Stylish, Growl-like message boxes - * - * Copyright (c) 2011 PJ Dietz - * Version: 1.00 - * Licensed under the MIT license: - * http://www.opensource.org/licenses/mit-license.php - * - * http://pjdietz.com/jquery-plugins/freeow/ - */ -(function($){"use strict";var Freeow;Freeow=function(title,message,options){var startStyle,i,u;this.options=$.extend({},$.fn.freeow.defaults,options);this.element=$(this.options.template(title,message));if(this.options.startStyle){startStyle=this.options.startStyle;} -else{startStyle=this.options.hideStyle;} -this.element.css(startStyle);this.element.data("freeow",this);for(i=0,u=this.options.classes.length;i0){this.autoHide=true;self=this;delay=this.options.autoHideDelay;fn=function(){if(self.autoHide){self.hide();}};opts.complete=function(){setTimeout(fn,delay);};} -this.element.animate(this.options.showStyle,opts);},hide:function(){var self=this;this.element.animate(this.options.hideStyle,{duration:this.options.hideDuration,complete:function(){self.destroy();}});},destroy:function(){this.element.data("freeow",undefined);this.element.remove();}};if(typeof $.fn.freeow==="undefined"){$.fn.extend({freeow:function(title,message,options){return this.each(function(){var f;f=new Freeow(title,message,options);f.attach(this);});}});$.fn.freeow.defaults={autoHide:true,autoHideDelay:3000,classes:[],startStyle:null,showStyle:{opacity:1.0},showDuration:250,hideStyle:{opacity:0.0},hideDuration:500,onClick:function(event){$(this).data("freeow").hide();},onHover:function(event){$(this).data("freeow").autoHide=false;},template:function(title,message){var e;e=['
        ','
        ','
        ','

        '+title+'

        ','

        '+message+'

        ','
        ','
        ','','','
        '].join("");return e;}};}}(jQuery)); \ No newline at end of file diff --git a/sources/web/public/js/libs/jquery.qtip.min.js b/sources/web/public/js/libs/jquery.qtip.min.js deleted file mode 100644 index a9c3309..0000000 --- a/sources/web/public/js/libs/jquery.qtip.min.js +++ /dev/null @@ -1,2 +0,0 @@ -/*! qTip2 v2.0.0 | http://craigsworks.com/projects/qtip2/ | Licensed MIT, GPL */ -(function(a){"use strict",typeof define=="function"&&define.amd?define(["jquery"],a):jQuery&&!jQuery.fn.qtip&&a(jQuery)})(function(a){function G(){G.history=G.history||[],G.history.push(arguments);if("object"==typeof console){var a=console[console.warn?"warn":"log"],b=Array.prototype.slice.call(arguments),c;typeof arguments[0]=="string"&&(b[0]="qTip2: "+b[0]),c=a.apply?a.apply(console,b):a(b)}}function H(b){var e=function(a){return a===d||"object"!=typeof a},f=function(b){return!a.isFunction(b)&&(!b&&!b.attr||b.length<1||"object"==typeof b&&!b.jquery)};if(!b||"object"!=typeof b)return c;e(b.metadata)&&(b.metadata={type:b.metadata});if("content"in b){if(e(b.content)||b.content.jquery)b.content={text:b.content};f(b.content.text||c)&&(b.content.text=c),"title"in b.content&&(e(b.content.title)&&(b.content.title={text:b.content.title}),f(b.content.title.text||c)&&(b.content.title.text=c))}return"position"in b&&e(b.position)&&(b.position={my:b.position,at:b.position}),"show"in b&&e(b.show)&&(b.show=b.show.jquery?{target:b.show}:{event:b.show}),"hide"in b&&e(b.hide)&&(b.hide=b.hide.jquery?{target:b.hide}:{event:b.hide}),"style"in b&&e(b.style)&&(b.style={classes:b.style}),a.each(r,function(){this.sanitize&&this.sanitize(b)}),b}function I(e,f,n,o){function N(a){var b=0,c,d=f,e=a.split(".");while(d=d[e[b++]])b",{"class":"ui-state-default ui-tooltip-close "+(f.style.widget?"":u+"-icon"),title:e,"aria-label":e}).prepend(a("",{"class":"ui-icon ui-icon-close",html:"×"})),L.button.appendTo(L.titlebar).attr("role","button").click(function(a){return J.hasClass(w)||p.hide(a),c}),p.redraw()}function R(){var c=D+"-title";L.titlebar&&P(),L.titlebar=a("
        ",{"class":u+"-titlebar "+(f.style.widget?"ui-widget-header":"")}).append(L.title=a("
        ",{id:c,"class":u+"-title","aria-atomic":b})).insertBefore(L.content).delegate(".ui-tooltip-close","mousedown keydown mouseup keyup mouseout",function(b){a(this).toggleClass("ui-state-active ui-state-focus",b.type.substr(-4)==="down")}).delegate(".ui-tooltip-close","mouseover mouseout",function(b){a(this).toggleClass("ui-state-hover",b.type==="mouseover")}),f.content.title.button?Q():p.rendered&&p.redraw()}function S(a){var b=L.button,d=L.title;if(!p.rendered)return c;a?(d||R(),Q()):b.remove()}function T(b,d){var f=L.title;if(!p.rendered||!b)return c;a.isFunction(b)&&(b=b.call(e,M.event,p));if(b===c||!b&&b!=="")return P(c);b.jquery&&b.length>0?f.empty().append(b.css({display:"block"})):f.html(b),p.redraw(),d!==c&&p.rendered&&J[0].offsetWidth>0&&p.reposition(M.event)}function U(b,d){function g(b){function h(e){e&&(delete g[e.src],clearTimeout(p.timers.img[e.src]),a(e).unbind(K)),a.isEmptyObject(g)&&(p.redraw(),d!==c&&p.reposition(M.event),b())}var e,g={};if((e=f.find("img[src]:not([height]):not([width])")).length===0)return h();e.each(function(b,c){if(g[c.src]!==undefined)return;var d=0,e=3;(function f(){if(c.height||c.width||d>e)return h(c);d+=1,p.timers.img[c.src]=setTimeout(f,700)})(),a(c).bind("error"+K+" load"+K,function(){h(this)}),g[c.src]=c})}var f=L.content;return!p.rendered||!b?c:(a.isFunction(b)&&(b=b.call(e,M.event,p)||""),b.jquery&&b.length>0?f.empty().append(b.css({display:"block"})):f.html(b),p.rendered<0?J.queue("fx",g):(I=0,g(a.noop)),p)}function V(){function j(a){if(J.hasClass(w))return c;clearTimeout(p.timers.show),clearTimeout(p.timers.hide);var d=function(){p.toggle(b,a)};f.show.delay>0?p.timers.show=setTimeout(d,f.show.delay):d()}function k(b){if(J.hasClass(w)||G||I)return c;var e=a(b.relatedTarget||b.target),h=e.closest(x)[0]===J[0],i=e[0]===g.show[0];clearTimeout(p.timers.show),clearTimeout(p.timers.hide);if(d.target==="mouse"&&h||f.hide.fixed&&/mouse(out|leave|move)/.test(b.type)&&(h||i)){try{b.preventDefault(),b.stopImmediatePropagation()}catch(j){}return}f.hide.delay>0?p.timers.hide=setTimeout(function(){p.hide(b)},f.hide.delay):p.hide(b)}function l(a){if(J.hasClass(w))return c;clearTimeout(p.timers.inactive),p.timers.inactive=setTimeout(function(){p.hide(a)},f.hide.inactive)}function m(a){p.rendered&&J[0].offsetWidth>0&&p.reposition(a)}var d=f.position,g={show:f.show.target,hide:f.hide.target,viewport:a(d.viewport),document:a(document),body:a(document.body),window:a(window)},h={show:a.trim(""+f.show.event).split(" "),hide:a.trim(""+f.hide.event).split(" ")},i=a.browser.msie&&parseInt(a.browser.version,10)===6;J.bind("mouseenter"+K+" mouseleave"+K,function(a){var b=a.type==="mouseenter";b&&p.focus(a),J.toggleClass(A,b)}),/mouse(out|leave)/i.test(f.hide.event)&&f.hide.leave==="window"&&g.window.bind("mouseout"+K+" blur"+K,function(a){!/select|option/.test(a.target.nodeName)&&!a.relatedTarget&&p.hide(a)}),f.hide.fixed?(g.hide=g.hide.add(J),J.bind("mouseover"+K,function(){J.hasClass(w)||clearTimeout(p.timers.hide)})):/mouse(over|enter)/i.test(f.show.event)&&g.hide.bind("mouseleave"+K,function(a){clearTimeout(p.timers.show)}),(""+f.hide.event).indexOf("unfocus")>-1&&d.container.closest("html").bind("mousedown"+K,function(b){var c=a(b.target),d=p.rendered&&!J.hasClass(w)&&J[0].offsetWidth>0,f=c.parents(x).filter(J[0]).length>0;c[0]!==e[0]&&c[0]!==J[0]&&!f&&!e.has(c[0]).length&&!c.attr("disabled")&&p.hide(b)}),"number"==typeof f.hide.inactive&&(g.show.bind("qtip-"+n+"-inactive",l),a.each(q.inactiveEvents,function(a,b){g.hide.add(L.tooltip).bind(b+K+"-inactive",l)})),a.each(h.hide,function(b,c){var d=a.inArray(c,h.show),e=a(g.hide);d>-1&&e.add(g.show).length===e.length||c==="unfocus"?(g.show.bind(c+K,function(a){J[0].offsetWidth>0?k(a):j(a)}),delete h.show[d]):g.hide.bind(c+K,k)}),a.each(h.show,function(a,b){g.show.bind(b+K,j)}),"number"==typeof f.hide.distance&&g.show.add(J).bind("mousemove"+K,function(a){var b=M.origin||{},c=f.hide.distance,d=Math.abs;(d(a.pageX-b.pageX)>=c||d(a.pageY-b.pageY)>=c)&&p.hide(a)}),d.target==="mouse"&&(g.show.bind("mousemove"+K,function(a){s={pageX:a.pageX,pageY:a.pageY,type:"mousemove"}}),d.adjust.mouse&&(f.hide.event&&(J.bind("mouseleave"+K,function(a){(a.relatedTarget||a.target)!==g.show[0]&&p.hide(a)}),L.target.bind("mouseenter"+K+" mouseleave"+K,function(a){M.onTarget=a.type==="mouseenter"})),g.document.bind("mousemove"+K,function(a){p.rendered&&M.onTarget&&!J.hasClass(w)&&J[0].offsetWidth>0&&p.reposition(a||s)}))),(d.adjust.resize||g.viewport.length)&&(a.event.special.resize?g.viewport:g.window).bind("resize"+K,m),(g.viewport.length||i&&J.css("position")==="fixed")&&g.viewport.bind("scroll"+K,m)}function W(){var b=[f.show.target[0],f.hide.target[0],p.rendered&&L.tooltip[0],f.position.container[0],f.position.viewport[0],window,document];p.rendered?a([]).pushStack(a.grep(b,function(a){return typeof a=="object"})).unbind(K):f.show.target.unbind(K+"-create")}var p=this,C=document.body,D=u+"-"+n,G=0,I=0,J=a(),K=".qtip-"+n,L,M;p.id=n,p.rendered=c,p.destroyed=c,p.elements=L={target:e},p.timers={img:{}},p.options=f,p.checks={},p.plugins={},p.cache=M={event:{},target:a(),disabled:c,attr:o,onTarget:c,lastClass:""},p.checks.builtin={"^id$":function(d,e,f){var g=f===b?q.nextid:f,h=u+"-"+g;g!==c&&g.length>0&&!a("#"+h).length&&(J[0].id=h,L.content[0].id=h+"-content",L.title[0].id=h+"-title")},"^content.text$":function(a,b,c){U(c)},"^content.title.text$":function(a,b,c){if(!c)return P();!L.title&&c&&R(),T(c)},"^content.title.button$":function(a,b,c){S(c)},"^position.(my|at)$":function(a,b,c){"string"==typeof c&&(a[b]=new r.Corner(c))},"^position.container$":function(a,b,c){p.rendered&&J.appendTo(c)},"^show.ready$":function(){p.rendered?p.toggle(b):p.render(1)},"^style.classes$":function(a,b,c){J.attr("class",u+" qtip ui-helper-reset "+c)},"^style.widget|content.title":O,"^events.(render|show|move|hide|focus|blur)$":function(b,c,d){J[(a.isFunction(d)?"":"un")+"bind"]("tooltip"+c,d)},"^(show|hide|position).(event|target|fixed|inactive|leave|distance|viewport|adjust)":function(){var a=f.position;J.attr("tracking",a.target==="mouse"&&a.adjust.mouse),W(),V()}},a.extend(p,{render:function(d){if(p.rendered)return p;var g=f.content.text,h=f.content.title.text,i=f.position,j=a.Event("tooltiprender");return a.attr(e[0],"aria-describedby",D),J=L.tooltip=a("
        ",{id:D,"class":u+" qtip ui-helper-reset "+y+" "+f.style.classes+" "+u+"-pos-"+f.position.my.abbrev(),width:f.style.width||"",height:f.style.height||"",tracking:i.target==="mouse"&&i.adjust.mouse,role:"alert","aria-live":"polite","aria-atomic":c,"aria-describedby":D+"-content","aria-hidden":b}).toggleClass(w,M.disabled).data("qtip",p).appendTo(f.position.container).append(L.content=a("
        ",{"class":u+"-content",id:D+"-content","aria-atomic":b})),p.rendered=-1,I=1,G=1,h&&(R(),a.isFunction(h)||T(h,c)),a.isFunction(g)||U(g,c),p.rendered=b,O(),a.each(f.events,function(b,c){a.isFunction(c)&&J.bind(b==="toggle"?"tooltipshow tooltiphide":"tooltip"+b,c)}),a.each(r,function(){this.initialize==="render"&&this(p)}),V(),J.queue("fx",function(a){j.originalEvent=M.event,J.trigger(j,[p]),I=0,G=0,p.redraw(),(f.show.ready||d)&&p.toggle(b,M.event,c),a()}),p},get:function(a){var b,c;switch(a.toLowerCase()){case"dimensions":b={height:J.outerHeight(),width:J.outerWidth()};break;case"offset":b=r.offset(J,f.position.container);break;default:c=N(a.toLowerCase()),b=c[0][c[1]],b=b.precedance?b.string():b}return b},set:function(e,g){function n(a,b){var c,d,e;for(c in l)for(d in l[c])if(e=(new RegExp(d,"i")).exec(a))b.push(e),l[c][d].apply(p,b)}var h=/^position\.(my|at|adjust|target|container)|style|content|show\.ready/i,i=/^content\.(title|attr)|style/i,j=c,k=c,l=p.checks,m;return"string"==typeof e?(m=e,e={},e[m]=g):e=a.extend(b,{},e),a.each(e,function(b,c){var d=N(b.toLowerCase()),f;f=d[0][d[1]],d[0][d[1]]="object"==typeof c&&c.nodeType?a(c):c,e[b]=[d[0],d[1],c,f],j=h.test(b)||j,k=i.test(b)||k}),H(f),G=I=1,a.each(e,n),G=I=0,p.rendered&&J[0].offsetWidth>0&&(j&&p.reposition(f.position.target==="mouse"?d:M.event),k&&p.redraw()),p},toggle:function(e,g){function u(){e?(a.browser.msie&&J[0].style.removeAttribute("filter"),J.css("overflow",""),"string"==typeof i.autofocus&&a(i.autofocus,J).focus(),i.target.trigger("qtip-"+n+"-inactive")):J.css({display:"",visibility:"",opacity:"",left:"",top:""}),t=a.Event("tooltip"+(e?"visible":"hidden")),t.originalEvent=g?M.event:d,J.trigger(t,[p])}if(!p.rendered)return e?p.render(1):p;var h=e?"show":"hide",i=f[h],j=f[e?"hide":"show"],k=f.position,l=f.content,m=J[0].offsetWidth>0,o=e||i.target.length===1,q=!g||i.target.length<2||M.target[0]===g.target,r,t;(typeof e).search("boolean|number")&&(e=!m);if(!J.is(":animated")&&m===e&&q)return p;if(g){if(/over|enter/.test(g.type)&&/out|leave/.test(M.event.type)&&f.show.target.add(g.target).length===f.show.target.length&&J.has(g.relatedTarget).length)return p;M.event=a.extend({},g)}return t=a.Event("tooltip"+h),t.originalEvent=g?M.event:d,J.trigger(t,[p,90]),t.isDefaultPrevented()?p:(a.attr(J[0],"aria-hidden",!e),e?(M.origin=a.extend({},s),p.focus(g),a.isFunction(l.text)&&U(l.text,c),a.isFunction(l.title.text)&&T(l.title.text,c),!F&&k.target==="mouse"&&k.adjust.mouse&&(a(document).bind("mousemove.qtip",function(a){s={pageX:a.pageX,pageY:a.pageY,type:"mousemove"}}),F=b),p.reposition(g,arguments[2]),(t.solo=!!i.solo)&&a(x,i.solo).not(J).qtip("hide",t)):(clearTimeout(p.timers.show),delete M.origin,F&&!a(x+'[tracking="true"]:visible',i.solo).not(J).length&&(a(document).unbind("mousemove.qtip"),F=c),p.blur(g)),i.effect===c||o===c?(J[h](),u.call(J)):a.isFunction(i.effect)?(J.stop(1,1),i.effect.call(J,p),J.queue("fx",function(a){u(),a()})):J.fadeTo(90,e?1:0,u),e&&i.target.trigger("qtip-"+n+"-inactive"),p)},show:function(a){return p.toggle(b,a)},hide:function(a){return p.toggle(c,a)},focus:function(b){if(!p.rendered)return p;var c=a(x),d=parseInt(J[0].style.zIndex,10),e=q.zindex+c.length,f=a.extend({},b),g,h;return J.hasClass(z)||(h=a.Event("tooltipfocus"),h.originalEvent=f,J.trigger(h,[p,e]),h.isDefaultPrevented()||(d!==e&&(c.each(function(){this.style.zIndex>d&&(this.style.zIndex=this.style.zIndex-1)}),c.filter("."+z).qtip("blur",f)),J.addClass(z)[0].style.zIndex=e)),p},blur:function(b){var c=a.extend({},b),d;return J.removeClass(z),d=a.Event("tooltipblur"),d.originalEvent=c,J.trigger(d,[p]),p},reposition:function(b,d){if(!p.rendered||G)return p;G=1;var e=f.position.target,g=f.position,h=g.my,n=g.at,o=g.adjust,q=o.method.split(" "),t=J.outerWidth(),u=J.outerHeight(),v=0,w=0,x=a.Event("tooltipmove"),y=J.css("position")==="fixed",z=g.viewport,A={left:0,top:0},B=g.container,C=J[0].offsetWidth>0,D,E,F;if(a.isArray(e)&&e.length===2)n={x:j,y:i},A={left:e[0],top:e[1]};else if(e==="mouse"&&(b&&b.pageX||M.event.pageX))n={x:j,y:i},b=(b&&(b.type==="resize"||b.type==="scroll")?M.event:b&&b.pageX&&b.type==="mousemove"?b:s&&s.pageX&&(o.mouse||!b||!b.pageX)?{pageX:s.pageX,pageY:s.pageY}:!o.mouse&&M.origin&&M.origin.pageX&&f.show.distance?M.origin:b)||b||M.event||s||{},A={top:b.pageY,left:b.pageX};else{e==="event"&&b&&b.target&&b.type!=="scroll"&&b.type!=="resize"?M.target=a(b.target):e!=="event"&&(M.target=a(e.jquery?e:L.target)),e=M.target,e=a(e).eq(0);if(e.length===0)return p;e[0]===document||e[0]===window?(v=r.iOS?window.innerWidth:e.width(),w=r.iOS?window.innerHeight:e.height(),e[0]===window&&(A={top:(z||e).scrollTop(),left:(z||e).scrollLeft()})):r.imagemap&&e.is("area")?D=r.imagemap(p,e,n,r.viewport?q:c):r.svg&&typeof e[0].xmlbase=="string"?D=r.svg(p,e,n,r.viewport?q:c):(v=e.outerWidth(),w=e.outerHeight(),A=r.offset(e,B)),D&&(v=D.width,w=D.height,E=D.offset,A=D.position);if(r.iOS>3.1&&r.iOS<4.1||r.iOS>=4.3&&r.iOS<4.33||!r.iOS&&y)F=a(window),A.left-=F.scrollLeft(),A.top-=F.scrollTop();A.left+=n.x===l?v:n.x===m?v/2:0,A.top+=n.y===k?w:n.y===m?w/2:0}return A.left+=o.x+(h.x===l?-t:h.x===m?-t/2:0),A.top+=o.y+(h.y===k?-u:h.y===m?-u/2:0),r.viewport?(A.adjusted=r.viewport(p,A,g,v,w,t,u),E&&A.adjusted.left&&(A.left+=E.left),E&&A.adjusted.top&&(A.top+=E.top)):A.adjusted={left:0,top:0},x.originalEvent=a.extend({},b),J.trigger(x,[p,A,z.elem||z]),x.isDefaultPrevented()?p:(delete A.adjusted,d===c||!C||isNaN(A.left)||isNaN(A.top)||e==="mouse"||!a.isFunction(g.effect)?J.css(A):a.isFunction(g.effect)&&(g.effect.call(J,p,a.extend({},A)),J.queue(function(b){a(this).css({opacity:"",height:""}),a.browser.msie&&this.style.removeAttribute("filter"),b()})),G=0,p)},redraw:function(){if(p.rendered<1||I)return p;var a=f.position.container,b,c,d,e;return I=1,f.style.height&&J.css(h,f.style.height),f.style.width?J.css(g,f.style.width):(J.css(g,"").addClass(B),c=J.width()+1,d=J.css("max-width")||"",e=J.css("min-width")||"",b=(d+e).indexOf("%")>-1?a.width()/100:0,d=(d.indexOf("%")>-1?b:1)*parseInt(d,10)||c,e=(e.indexOf("%")>-1?b:1)*parseInt(e,10)||0,c=d+e?Math.min(Math.max(c,e),d):c,J.css(g,Math.round(c)).removeClass(B)),I=0,p},disable:function(b){return"boolean"!=typeof b&&(b=!J.hasClass(w)&&!M.disabled),p.rendered?(J.toggleClass(w,b),a.attr(J[0],"aria-disabled",b)):M.disabled=!!b,p},enable:function(){return p.disable(c)},destroy:function(){var c=e[0],d=a.attr(c,E),g=e.data("qtip");p.destroyed=b,p.rendered&&(J.stop(1,0).remove(),a.each(p.plugins,function(){this.destroy&&this.destroy()})),clearTimeout(p.timers.show),clearTimeout(p.timers.hide),W();if(!g||p===g)a.removeData(c,"qtip"),f.suppress&&d&&(a.attr(c,"title",d),e.removeAttr(E)),e.removeAttr("aria-describedby");return e.unbind(".qtip-"+n),delete t[p.id],e}})}function J(e,f){var g,h,i,j,k,l=a(this),m=a(document.body),n=this===document?m:l,o=l.metadata?l.metadata(f.metadata):d,p=f.metadata.type==="html5"&&o?o[f.metadata.name]:d,s=l.data(f.metadata.name||"qtipopts");try{s=typeof s=="string"?a.parseJSON(s):s}catch(t){G("Unable to parse HTML5 attribute data: "+s)}j=a.extend(b,{},q.defaults,f,typeof s=="object"?H(s):d,H(p||o)),h=j.position,j.id=e;if("boolean"==typeof j.content.text){i=l.attr(j.content.attr);if(j.content.attr!==c&&i)j.content.text=i;else return G("Unable to locate content for tooltip! Aborting render of tooltip on element: ",l),c}h.container.length||(h.container=m),h.target===c&&(h.target=n),j.show.target===c&&(j.show.target=n),j.show.solo===b&&(j.show.solo=h.container.closest("body")),j.hide.target===c&&(j.hide.target=n),j.position.viewport===b&&(j.position.viewport=h.container),h.container=h.container.eq(0),h.at=new r.Corner(h.at),h.my=new r.Corner(h.my);if(a.data(this,"qtip"))if(j.overwrite)l.qtip("destroy");else if(j.overwrite===c)return c;return j.suppress&&(k=a.attr(this,"title"))&&a(this).removeAttr("title").attr(E,k).attr("title",""),g=new I(l,j,e,!!i),a.data(this,"qtip",g),l.bind("remove.qtip-"+e+" removeqtip.qtip-"+e,function(){g.destroy()}),g}function K(d){var e=this,f=d.elements.tooltip,g=d.options.content.ajax,h=q.defaults.content.ajax,i=".qtip-ajax",j=/)<[^<]*)*<\/script>/gi,k=b,l=c,m;d.checks.ajax={"^content.ajax":function(a,b,c){b==="ajax"&&(g=c),b==="once"?e.init():g&&g.url?e.load():f.unbind(i)}},a.extend(e,{init:function(){return g&&g.url&&f.unbind(i)[g.once?"one":"bind"]("tooltipshow"+i,e.load),e},load:function(f){function r(){var e;if(d.destroyed)return;k=c,p&&(l=b,d.show(f.originalEvent)),(e=h.complete||g.complete)&&a.isFunction(e)&&e.apply(g.context||d,arguments)}function s(b,c,e){var f;if(d.destroyed)return;o&&(b=a("
        ").append(b.replace(j,"")).find(o)),(f=h.success||g.success)&&a.isFunction(f)?f.call(g.context||d,b,c,e):d.set("content.text",b)}function t(a,b,c){if(d.destroyed||a.status===0)return;d.set("content.text",b+": "+c)}if(l){l=c;return}var i=g.url.indexOf(" "),n=g.url,o,p=!g.loading&&k;if(p)try{f.preventDefault()}catch(q){}else if(f&&f.isDefaultPrevented())return e;m&&m.abort&&m.abort(),i>-1&&(o=n.substr(i),n=n.substr(0,i)),m=a.ajax(a.extend({error:h.error||t,context:d},g,{url:n,success:s,complete:r}))},destroy:function(){m&&m.abort&&m.abort(),d.destroyed=b}}),e.init()}function L(a,b,c){var d=Math.ceil(b/2),e=Math.ceil(c/2),f={bottomright:[[0,0],[b,c],[b,0]],bottomleft:[[0,0],[b,0],[0,c]],topright:[[0,c],[b,0],[b,c]],topleft:[[0,0],[0,c],[b,c]],topcenter:[[0,c],[d,0],[b,c]],bottomcenter:[[0,0],[b,0],[d,c]],rightcenter:[[0,0],[b,e],[0,c]],leftcenter:[[b,0],[b,c],[0,e]]};return f.lefttop=f.bottomright,f.righttop=f.bottomleft,f.leftbottom=f.topright,f.rightbottom=f.topleft,f[a.string()]}function M(n,o){function C(){w.width=s.height,w.height=s.width}function D(){w.width=s.width,w.height=s.height}function E(a,d,g,h){if(!t.tip)return;var o=q.corner.clone(),r=g.adjusted,u=n.options.position.adjust.method.split(" "),w=u[0],x=u[1]||u[0],y={left:c,top:c,x:0,y:0},z,A={},B;q.corner.fixed!==b&&(w===p&&o.precedance===e&&r.left&&o.y!==m?o.precedance=o.precedance===e?f:e:w!==p&&r.left&&(o.x=o.x===m?r.left>0?j:l:o.x===j?l:j),x===p&&o.precedance===f&&r.top&&o.x!==m?o.precedance=o.precedance===f?e:f:x!==p&&r.top&&(o.y=o.y===m?r.top>0?i:k:o.y===i?k:i),o.string()!==v.corner.string()&&(v.top!==r.top||v.left!==r.left)&&q.update(o,c)),z=q.position(o,r),z[o.x]+=F(o,o.x,b),z[o.y]+=F(o,o.y,b),z.right!==undefined&&(z.left=-z.right),z.bottom!==undefined&&(z.top=-z.bottom),z.user=Math.max(0,s.offset);if(y.left=w===p&&!!r.left)o.x===m?A["margin-left"]=y.x=z["margin-left"]-r.left:(B=z.right!==undefined?[r.left,-z.left]:[-r.left,z.left],(y.x=Math.max(B[0],B[1]))>B[0]&&(g.left-=r.left,y.left=c),A[z.right!==undefined?l:j]=y.x);if(y.top=x===p&&!!r.top)o.y===m?A["margin-top"]=y.y=z["margin-top"]-r.top:(B=z.bottom!==undefined?[r.top,-z.top]:[-r.top,z.top],(y.y=Math.max(B[0],B[1]))>B[0]&&(g.top-=r.top,y.top=c),A[z.bottom!==undefined?k:i]=y.y);t.tip.css(A).toggle(!(y.x&&y.y||o.x===m&&y.y||o.y===m&&y.x)),g.left-=z.left.charAt?z.user:w!==p||y.top||!y.left&&!y.top?z.left:0,g.top-=z.top.charAt?z.user:x!==p||y.left||!y.left&&!y.top?z.top:0,v.left=r.left,v.top=r.top,v.corner=o.clone()}function F(a,b,c){b=b?b:a[a.precedance];var d=u.hasClass(B),e=t.titlebar&&a.y===i,f=e?t.titlebar:t.tooltip,g="border-"+b+"-width",h;return u.addClass(B),h=parseInt(f.css(g),10),h=(c?h||parseInt(u.css(g),10):h)||0,u.toggleClass(B,d),h}function G(b){function j(a){return parseInt(d.css(a),10)||parseInt(u.css(a),10)}var c=t.titlebar&&b.y===i,d=c?t.titlebar:t.content,e=a.browser.mozilla,f=e?"-moz-":a.browser.webkit?"-webkit-":"",g="border-radius-"+b.y+b.x,h="border-"+b.y+"-"+b.x+"-radius";return j(h)||j(f+h)||j(f+g)||j(g)||0}function H(a){var b=a.precedance===f,c=w[b?g:h],d=w[b?h:g],e=a.string().indexOf(m)>-1,i=c*(e?.5:1),j=Math.pow,k=Math.round,l,n,o,p=Math.sqrt(j(i,2)+j(d,2)),q=[y/i*p,y/d*p];return q[2]=Math.sqrt(j(q[0],2)-j(y,2)),q[3]=Math.sqrt(j(q[1],2)-j(y,2)),l=p+q[2]+q[3]+(e?0:q[0]),n=l/p,o=[k(n*d),k(n*c)],{height:o[b?0:1],width:o[b?1:0]}}var q=this,s=n.options.style.tip,t=n.elements,u=t.tooltip,v={top:0,left:0},w={width:s.width,height:s.height},x={},y=s.border||0,z=".qtip-tip",A=!!(a("")[0]||{}).getContext;q.corner=d,q.mimic=d,q.border=y,q.offset=s.offset,q.size=w,n.checks.tip={"^position.my|style.tip.(corner|mimic|border)$":function(){q.init()||q.destroy(),n.reposition()},"^style.tip.(height|width)$":function(){w={width:s.width,height:s.height},q.create(),q.update(),n.reposition()},"^content.title.text|style.(classes|widget)$":function(){t.tip&&t.tip.length&&q.update()}},a.extend(q,{init:function(){var b=q.detectCorner()&&(A||a.browser.msie);return b&&(q.create(),q.update(),u.unbind(z).bind("tooltipmove"+z,E)),b},detectCorner:function(){var a=s.corner,d=n.options.position,e=d.at,f=d.my.string?d.my.string():d.my;return a===c||f===c&&e===c?c:(a===b?q.corner=new r.Corner(f):a.string||(q.corner=new r.Corner(a),q.corner.fixed=b),v.corner=new r.Corner(q.corner.string()),q.corner.string()!=="centercenter")},detectColours:function(b){var c,d,e,f=t.tip.css("cssText",""),g=b||q.corner,h=g[g.precedance],j="border-"+h+"-color",k="border"+h.charAt(0)+h.substr(1)+"Color",l=/rgba?\(0, 0, 0(, 0)?\)|transparent|#123456/i,n="background-color",o="transparent",p=" !important",r=t.titlebar&&(g.y===i||g.y===m&&f.position().top+w.height/2+s.offset",{"class":"ui-tooltip-tip"}).css({width:b,height:c}).prependTo(u),A?a("").appendTo(t.tip)[0].getContext("2d").save():(d='',t.tip.html(d+d),a("*",t.tip).bind("click mousedown",function(a){a.stopPropagation()}))},update:function(g,h){var n=t.tip,o=n.children(),p=w.width,z=w.height,B="px solid ",E="px dashed transparent",G=s.mimic,I=Math.round,J,K,M,N,O;g||(g=v.corner||q.corner),G===c?G=g:(G=new r.Corner(G),G.precedance=g.precedance,G.x==="inherit"?G.x=g.x:G.y==="inherit"?G.y=g.y:G.x===G.y&&(G[g.precedance]=g[g.precedance])),J=G.precedance,g.precedance===e?C():D(),t.tip.css({width:p=w.width,height:z=w.height}),q.detectColours(g),x.border!=="transparent"?(y=F(g,d,b),s.border===0&&y>0&&(x.fill=x.border),q.border=y=s.border!==b?s.border:y):q.border=y=0,M=L(G,p,z),q.size=O=H(g),n.css(O),g.precedance===f?N=[I(G.x===j?y:G.x===l?O.width-p-y:(O.width-p)/2),I(G.y===i?O.height-z:0)]:N=[I(G.x===j?O.width-p:0),I(G.y===i?y:G.y===k?O.height-z-y:(O.height-z)/2)],A?(o.attr(O),K=o[0].getContext("2d"),K.restore(),K.save(),K.clearRect(0,0,3e3,3e3),K.fillStyle=x.fill,K.strokeStyle=x.border,K.lineWidth=y*2,K.lineJoin="miter",K.miterLimit=100,K.translate(N[0],N[1]),K.beginPath(),K.moveTo(M[0][0],M[0][1]),K.lineTo(M[1][0],M[1][1]),K.lineTo(M[2][0],M[2][1]),K.closePath(),y&&(u.css("background-clip")==="border-box"&&(K.strokeStyle=x.fill,K.stroke()),K.strokeStyle=x.border,K.stroke()),K.fill()):(M="m"+M[0][0]+","+M[0][1]+" l"+M[1][0]+","+M[1][1]+" "+M[2][0]+","+M[2][1]+" xe",N[2]=y&&/^(r|b)/i.test(g.string())?parseFloat(a.browser.version,10)===8?2:1:0,o.css({antialias:""+(G.string().indexOf(m)>-1),left:N[0]-N[2]*Number(J===e),top:N[1]-N[2]*Number(J===f),width:p+y,height:z+y}).each(function(b){var c=a(this);c[c.prop?"prop":"attr"]({coordsize:p+y+" "+(z+y),path:M,fillcolor:x.fill,filled:!!b,stroked:!b}).css({display:y||b?"block":"none"}),!b&&c.html()===""&&c.html('')})),h!==c&&q.position(g)},position:function(b){var d=t.tip,k={},l=Math.max(0,s.offset),n,o,p;return s.corner===c||!d?c:(b=b||q.corner,n=b.precedance,o=H(b),p=[b.x,b.y],n===e&&p.reverse(),a.each(p,function(a,c){var d,e;c===m?(d=n===f?j:i,k[d]="50%",k["margin-"+d]=-Math.round(o[n===f?g:h]/2)+l):(d=F(b,c),e=G(b),k[c]=a?0:l+(e>d?e:-d))}),k[b[n]]-=o[n===e?g:h],d.css({top:"",bottom:"",left:"",right:"",margin:""}).css(k),k)},destroy:function(){t.tip&&t.tip.remove(),t.tip=!1,u.unbind(z)}}),q.init()}function N(d){function q(){o=a(n,h).not("[disabled]").map(function(){return typeof this.focus=="function"?this:null})}function s(a){o.length<1&&a.length?a.not("body").blur():o.first().focus()}function t(b){var d=a(b.target),e=d.closest(".qtip"),f;f=e.length<1?c:parseInt(e[0].style.zIndex,10)>parseInt(h[0].style.zIndex,10),!f&&a(b.target).closest(x)[0]!==h[0]&&s(d)}var e=this,f=d.options.show.modal,g=d.elements,h=g.tooltip,i="#qtip-overlay",j=".qtipmodal",k=j+d.id,l="is-modal-qtip",m=a(document.body),n=r.modal.focusable.join(","),o={},p;d.checks.modal={"^show.modal.(on|blur)$":function(){e.init(),g.overlay.toggle(h.is(":visible"))},"^content.text$":function(){q()}},a.extend(e,{init:function(){return f.on?(p=e.create(),h.attr(l,b).css("z-index",r.modal.zindex+a(x+"["+l+"]").length).unbind(j).unbind(k).bind("tooltipshow"+j+" tooltiphide"+j,function(b,c,d){var f=b.originalEvent;if(b.target===h[0])if(f&&b.type==="tooltiphide"&&/mouse(leave|enter)/.test(f.type)&&a(f.relatedTarget).closest(p[0]).length)try{b.preventDefault()}catch(g){}else(!f||f&&!f.solo)&&e[b.type.replace("tooltip","")](b,d)}).bind("tooltipfocus"+j,function(b){if(b.isDefaultPrevented()||b.target!==h[0])return;var c=a(x).filter("["+l+"]"),d=r.modal.zindex+c.length,e=parseInt(h[0].style.zIndex,10);p[0].style.zIndex=d-2,c.each(function(){this.style.zIndex>e&&(this.style.zIndex-=1)}),c.end().filter("."+z).qtip("blur",b.originalEvent),h.addClass(z)[0].style.zIndex=d;try{b.preventDefault()}catch(f){}}).bind("tooltiphide"+j,function(b){b.target===h[0]&&a("["+l+"]").filter(":visible").not(h).last().qtip("focus",b)}),f.escape&&a(document).unbind(k).bind("keydown"+k,function(a){a.keyCode===27&&h.hasClass(z)&&d.hide(a)}),f.blur&&g.overlay.unbind(k).bind("click"+k,function(a){h.hasClass(z)&&d.hide(a)}),q(),e):e},create:function(){function d(){p.css({height:a(window).height(),width:a(window).width()})}var b=a(i);return b.length?g.overlay=b.insertAfter(a(x).last()):(p=g.overlay=a("
        ",{id:i.substr(1),html:"
        ",mousedown:function(){return c}}).hide().insertAfter(a(x).last()),a(window).unbind(j).bind("resize"+j,d),d(),p)},toggle:function(d,g,i){if(d&&d.isDefaultPrevented())return e;var j=f.effect,n=g?"show":"hide",o=p.is(":visible"),q=a("["+l+"]").filter(":visible").not(h),r;return p||(p=e.create()),p.is(":animated")&&o===g||!g&&q.length?e:(g?(p.css({left:0,top:0}),p.toggleClass("blurs",f.blur),f.stealfocus!==c&&(m.bind("focusin"+k,t),s(a("body *")))):m.unbind("focusin"+k),p.stop(b,c),a.isFunction(j)?j.call(p,g):j===c?p[n]():p.fadeTo(parseInt(i,10)||90,g?1:0,function(){g||a(this).hide()}),g||p.queue(function(a){p.css({left:"",top:""}),a()}),e)},show:function(a,c){return e.toggle(a,b,c)},hide:function(a,b){return e.toggle(a,c,b)},destroy:function(){var b=p;return b&&(b=a("["+l+"]").not(h).length<1,b?(g.overlay.remove(),a(document).unbind(j)):g.overlay.unbind(j+d.id),m.undelegate("*","focusin"+k)),h.removeAttr(l).unbind(j)}}),e.init()}function O(b){var c=this,d=b.elements,e=d.tooltip,f=".bgiframe-"+b.id;a.extend(c,{init:function(){d.bgiframe=a(''),d.bgiframe.appendTo(e),e.bind("tooltipmove"+f,c.adjust)},adjust:function(){var a=b.get("dimensions"),c=b.plugins.tip,f=d.tip,g,h;h=parseInt(e.css("border-left-width"),10)||0,h={left:-h,top:-h},c&&f&&(g=c.corner.precedance==="x"?["width","left"]:["height","top"],h[g[1]]-=f[g[0]]()),d.bgiframe.css(h).css(a)},destroy:function(){d.bgiframe.remove(),e.unbind(f)}}),c.init()}"use strict";var b=!0,c=!1,d=null,e="x",f="y",g="width",h="height",i="top",j="left",k="bottom",l="right",m="center",n="flip",o="flipinvert",p="shift",q,r,s,t={},u="ui-tooltip",v="ui-widget",w="ui-state-disabled",x="div.qtip."+u,y=u+"-default",z=u+"-focus",A=u+"-hover",B=u+"-fluid",C="-31000px",D="_replacedByqTip",E="oldtitle",F;q=a.fn.qtip=function(e,f,g){var h=(""+e).toLowerCase(),i=d,j=a.makeArray(arguments).slice(1),k=j[j.length-1],l=this[0]?a.data(this[0],"qtip"):d;if(!arguments.length&&l||h==="api")return l;if("string"==typeof e)return this.each(function(){var d=a.data(this,"qtip");if(!d)return b;k&&k.timeStamp&&(d.cache.event=k);if(h!=="option"&&h!=="options"||!f)d[h]&&d[h].apply(d[h],j);else if(a.isPlainObject(f)||g!==undefined)d.set(f,g);else return i=d.get(f),c}),i!==d?i:this;if("object"==typeof e||!arguments.length)return l=H(a.extend(b,{},e)),q.bind.call(this,l,k)},q.bind=function(d,e){return this.each(function(f){function m(b){function d(){k.render(typeof b=="object"||g.show.ready),h.show.add(h.hide).unbind(j)}if(k.cache.disabled)return c;k.cache.event=a.extend({},b),k.cache.target=b?a(b.target):[undefined],g.show.delay>0?(clearTimeout(k.timers.show),k.timers.show=setTimeout(d,g.show.delay),i.show!==i.hide&&h.hide.bind(i.hide,function(){clearTimeout(k.timers.show)})):d()}var g,h,i,j,k,l;l=a.isArray(d.id)?d.id[f]:d.id,l=!l||l===c||l.length<1||t[l]?q.nextid++:t[l]=l,j=".qtip-"+l+"-create",k=J.call(this,l,d);if(k===c)return b;g=k.options,a.each(r,function(){this.initialize==="initialize"&&this(k)}),h={show:g.show.target,hide:g.hide.target},i={show:a.trim(""+g.show.event).replace(/ /g,j+" ")+j,hide:a.trim(""+g.hide.event).replace(/ /g,j+" ")+j},/mouse(over|enter)/i.test(i.show)&&!/mouse(out|leave)/i.test(i.hide)&&(i.hide+=" mouseleave"+j),h.show.bind("mousemove"+j,function(a){s={pageX:a.pageX,pageY:a.pageY,type:"mousemove"},k.cache.onTarget=b}),h.show.bind(i.show,m),(g.show.ready||g.prerender)&&m(e)})},r=q.plugins={Corner:function(a){a=(""+a).replace(/([A-Z])/," $1").replace(/middle/gi,m).toLowerCase(),this.x=(a.match(/left|right/i)||a.match(/center/)||["inherit"])[0].toLowerCase(),this.y=(a.match(/top|bottom|center/i)||["inherit"])[0].toLowerCase();var b=a.charAt(0);this.precedance=b==="t"||b==="b"?f:e,this.string=function(){return this.precedance===f?this.y+this.x:this.x+this.y},this.abbrev=function(){var a=this.x.substr(0,1),b=this.y.substr(0,1);return a===b?a:this.precedance===f?b+a:a+b},this.invertx=function(a){this.x=this.x===j?l:this.x===l?j:a||this.x},this.inverty=function(a){this.y=this.y===i?k:this.y===k?i:a||this.y},this.clone=function(){return{x:this.x,y:this.y,precedance:this.precedance,string:this.string,abbrev:this.abbrev,clone:this.clone,invertx:this.invertx,inverty:this.inverty}}},offset:function(b,c){function j(a,b){d.left+=b*a.scrollLeft(),d.top+=b*a.scrollTop()}var d=b.offset(),e=b.closest("body")[0],f=c,g,h,i;if(f){do f.css("position")!=="static"&&(h=f.position(),d.left-=h.left+(parseInt(f.css("borderLeftWidth"),10)||0)+(parseInt(f.css("marginLeft"),10)||0),d.top-=h.top+(parseInt(f.css("borderTopWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0),!g&&(i=f.css("overflow"))!=="hidden"&&i!=="visible"&&(g=f));while((f=a(f[0].offsetParent)).length);g&&g[0]!==e&&j(g,1)}return d},iOS:parseFloat((""+(/CPU.*OS ([0-9_]{1,5})|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))||c,fn:{attr:function(b,c){if(this.length){var d=this[0],e="title",f=a.data(d,"qtip");if(b===e&&f&&"object"==typeof f&&f.options.suppress)return arguments.length<2?a.attr(d,E):(f&&f.options.content.attr===e&&f.cache.attr&&f.set("content.text",c),this.attr(E,c))}return a.fn["attr"+D].apply(this,arguments)},clone:function(b){var c=a([]),d="title",e=a.fn["clone"+D].apply(this,arguments);return b||e.filter("["+E+"]").attr("title",function(){return a.attr(this,E)}).removeAttr(E),e}}},a.each(r.fn,function(c,d){if(!d||a.fn[c+D])return b;var e=a.fn[c+D]=a.fn[c];a.fn[c]=function(){return d.apply(this,arguments)||e.apply(this,arguments)}}),a.ui||(a["cleanData"+D]=a.cleanData,a.cleanData=function(b){for(var c=0,d;(d=b[c])!==undefined;c++)try{a(d).triggerHandler("removeqtip")}catch(e){}a["cleanData"+D](b)}),q.version="@VERSION",q.nextid=0,q.inactiveEvents="click dblclick mousedown mouseup mousemove mouseleave mouseenter".split(" "),q.zindex=15e3,q.defaults={prerender:c,id:c,overwrite:b,suppress:b,content:{text:b,attr:"title",title:{text:c,button:c}},position:{my:"top left",at:"bottom right",target:c,container:c,viewport:c,adjust:{x:0,y:0,mouse:b,resize:b,method:"flip flip"},effect:function(b,d,e){a(this).animate(d,{duration:200,queue:c})}},show:{target:c,event:"mouseenter",effect:b,delay:90,solo:c,ready:c,autofocus:c},hide:{target:c,event:"mouseleave",effect:b,delay:0,fixed:c,inactive:c,leave:"window",distance:c},style:{classes:"",widget:c,width:c,height:c,def:b},events:{render:d,move:d,show:d,hide:d,toggle:d,visible:d,hidden:d,focus:d,blur:d}},r.svg=function(b,c,d,e){var f=a(document),g=c[0],h={width:0,height:0,position:{top:1e10,left:1e10}},i,j,k,l,m;while(!g.getBBox)g=g.parentNode;if(g.getBBox&&g.parentNode){i=g.getBBox(),j=g.getScreenCTM(),k=g.farthestViewportElement||g;if(!k.createSVGPoint)return h;l=k.createSVGPoint(),l.x=i.x,l.y=i.y,m=l.matrixTransform(j),h.position.left=m.x,h.position.top=m.y,l.x+=i.width,l.y+=i.height,m=l.matrixTransform(j),h.width=m.x-h.position.left,h.height=m.y-h.position.top,h.position.left+=f.scrollLeft(),h.position.top+=f.scrollTop()}return h},r.ajax=function(a){var b=a.plugins.ajax;return"object"==typeof b?b:a.plugins.ajax=new K(a)},r.ajax.initialize="render",r.ajax.sanitize=function(a){var b=a.content,c;b&&"ajax"in b&&(c=b.ajax,typeof c!="object"&&(c=a.content.ajax={url:c}),"boolean"!=typeof c.once&&c.once&&(c.once=!!c.once))},a.extend(b,q.defaults,{content:{ajax:{loading:b,once:b}}}),r.tip=function(a){var b=a.plugins.tip;return"object"==typeof b?b:a.plugins.tip=new M(a)},r.tip.initialize="render",r.tip.sanitize=function(a){var c=a.style,d;c&&"tip"in c&&(d=a.style.tip,typeof d!="object"&&(a.style.tip={corner:d}),/string|boolean/i.test(typeof d.corner)||(d.corner=b),typeof d.width!="number"&&delete d.width,typeof d.height!="number"&&delete d.height,typeof d.border!="number"&&d.border!==b&&delete d.border,typeof d.offset!="number"&&delete d.offset)},a.extend(b,q.defaults,{style:{tip:{corner:b,mimic:c,width:6,height:6,border:b,offset:0}}}),r.modal=function(a){var b=a.plugins.modal;return"object"==typeof b?b:a.plugins.modal=new N(a)},r.modal.initialize="render",r.modal.sanitize=function(a){a.show&&(typeof a.show.modal!="object"?a.show.modal={on:!!a.show.modal}:typeof a.show.modal.on=="undefined"&&(a.show.modal.on=b))},r.modal.zindex=q.zindex-200,r.modal.focusable=["a[href]","area[href]","input","select","textarea","button","iframe","object","embed","[tabindex]","[contenteditable]"],a.extend(b,q.defaults,{show:{modal:{on:c,effect:b,blur:b,stealfocus:b,escape:b}}}),r.viewport=function(a,b,c,d,n,q,r){function J(a,c,d,e,f,g,h,i,j){var k=b[f],l=v[a],n=w[a],q=d===p,r=-C.offset[f]+B.offset[f]+B["scroll"+f],s=l===f?j:l===g?-j:-j/2,t=n===f?i:n===g?-i:-i/2,u=E&&E.size?E.size[h]||0:0,x=E&&E.corner&&E.corner.precedance===a&&!q?u:0,y=r-k+x,z=k+j-B[h]-r+x,A=s-(v.precedance===a||l===v[c]?t:0)-(n===m?i/2:0);return q?(x=E&&E.corner&&E.corner.precedance===c?u:0,A=(l===f?1:-1)*s-x,b[f]+=y>0?y:z>0?-z:0,b[f]=Math.max(-C.offset[f]+B.offset[f]+(x&&E.corner[a]===m?E.offset:0),k-A,Math.min(Math.max(-C.offset[f]+B.offset[f]+B[h],k+A),b[f]))):(e*=d===o?2:0,y>0&&(l!==f||z>0)?(b[f]-=A+e,H["invert"+a](f)):z>0&&(l!==g||y>0)&&(b[f]-=(l===m?-A:A)+e,H["invert"+a](g)),b[f]z&&(b[f]=k,H=undefined)),b[f]-k}var s=c.target,t=a.elements.tooltip,v=c.my,w=c.at,x=c.adjust,y=x.method.split(" "),z=y[0],A=y[1]||y[0],B=c.viewport,C=c.container,D=a.cache,E=a.plugins.tip,F={left:0,top:0},G,H,I;if(!B.jquery||s[0]===window||s[0]===document.body||x.method==="none")return F;G=t.css("position")==="fixed",B={elem:B,height:B[(B[0]===window?"h":"outerH")+"eight"](),width:B[(B[0]===window?"w":"outerW")+"idth"](),scrollleft:G?0:B.scrollLeft(),scrolltop:G?0:B.scrollTop(),offset:B.offset()||{left:0,top:0}},C={elem:C,scrollLeft:C.scrollLeft(),scrollTop:C.scrollTop(),offset:C.offset()||{left:0,top:0}};if(z!=="shift"||A!=="shift")H=v.clone();return F={left:z!=="none"?J(e,f,z,x.x,j,l,g,d,q):0,top:A!=="none"?J(f,e,A,x.y,i,k,h,n,r):0},H&&D.lastClass!==(I=u+"-pos-"+H.abbrev())&&t.removeClass(a.cache.lastClass).addClass(a.cache.lastClass=I),F},r.imagemap=function(b,c,d,e){function v(a,b,c){var d=0,e=1,f=1,g=0,h=0,n=a.width,o=a.height;while(n>0&&o>0&&e>0&&f>0){n=Math.floor(n/2),o=Math.floor(o/2),c.x===j?e=n:c.x===l?e=a.width-n:e+=Math.floor(n/2),c.y===i?f=o:c.y===k?f=a.height-o:f+=Math.floor(o/2),d=b.length;while(d--){if(b.length<2)break;g=b[d][0]-a.position.left,h=b[d][1]-a.position.top,(c.x===j&&g>=e||c.x===l&&g<=e||c.x===m&&(ga.width-e)||c.y===i&&h>=f||c.y===k&&h<=f||c.y===m&&(ha.height-f))&&b.splice(d,1)}}return{left:b[0][0],top:b[0][1]}}c.jquery||(c=a(c));var f=b.cache.areas={},g=(c[0].shape||c.attr("shape")).toLowerCase(),h=c[0].coords||c.attr("coords"),n=h.split(","),o=[],p=a('img[usemap="#'+c.parent("map").attr("name")+'"]'),q=p.offset(),r={width:0,height:0,position:{top:1e10,right:0,bottom:0,left:1e10}},s=0,t=0,u;q.left+=Math.ceil((p.outerWidth()-p.width())/2),q.top+=Math.ceil((p.outerHeight()-p.height())/2);if(g==="poly"){s=n.length;while(s--)t=[parseInt(n[--s],10),parseInt(n[s+1],10)],t[0]>r.position.right&&(r.position.right=t[0]),t[0]r.position.bottom&&(r.position.bottom=t[1]),t[1]
        '); - var $tpList = $('
          '); - - // Build the list. - for(var i = 0; i < times.length; i++) { - $tpList.append("
        • " + times[i] + "
        • "); - } - $tpDiv.append($tpList); - // Append the timPicker to the body and position it. - $tpDiv.appendTo('body').hide(); - - // Store the mouse state, used by the blur event. Use mouseover instead of - // mousedown since Opera fires blur before mousedown. - $tpDiv.mouseover(function() { - tpOver = true; - }).mouseout(function() { - tpOver = false; - }); - - $("li", $tpList).mouseover(function() { - if (!keyDown) { - $(selectedSelector, $tpDiv).removeClass(selectedClass); - $(this).addClass(selectedClass); - } - }).mousedown(function() { - tpOver = true; - }).click(function() { - setTimeVal(elm, this, $tpDiv, settings); - tpOver = false; - }); - - var showPicker = function() { - if ($tpDiv.is(":visible")) { - return false; - } - $("li", $tpDiv).removeClass(selectedClass); - - // Position - var elmOffset = $(elm).offset(); - $tpDiv.css({'top':elmOffset.top + elm.offsetHeight, 'left':elmOffset.left}); - - // Show picker. This has to be done before scrollTop is set since that - // can't be done on hidden elements. - $tpDiv.show(); - - // Try to find a time in the list that matches the entered time. - var time = elm.value ? timeStringToDate(elm.value, settings) : startTime; - var startMin = startTime.getHours() * 60 + startTime.getMinutes(); - var min = (time.getHours() * 60 + time.getMinutes()) - startMin; - var steps = Math.round(min / settings.step); - var roundTime = normaliseTime(new Date(0, 0, 0, 0, (steps * settings.step + startMin), 0)); - roundTime = (startTime < roundTime && roundTime <= endTime) ? roundTime : startTime; - var $matchedTime = $("li:contains(" + formatTime(roundTime, settings) + ")", $tpDiv); - - if ($matchedTime.length) { - $matchedTime.addClass(selectedClass); - // Scroll to matched time. - $tpDiv[0].scrollTop = $matchedTime[0].offsetTop; - } - return true; - }; - // Attach to click as well as focus so timePicker can be shown again when - // clicking on the input when it already has focus. - $(elm).focus(showPicker).click(showPicker); - // Hide timepicker on blur - $(elm).blur(function() { - if (!tpOver) { - $tpDiv.hide(); - } - }); - // Keypress doesn't repeat on Safari for non-text keys. - // Keydown doesn't repeat on Firefox and Opera on Mac. - // Using kepress for Opera and Firefox and keydown for the rest seems to - // work with up/down/enter/esc. - var event = ($.browser.opera || $.browser.mozilla) ? 'keypress' : 'keydown'; - $(elm)[event](function(e) { - var $selected; - keyDown = true; - var top = $tpDiv[0].scrollTop; - switch (e.keyCode) { - case 38: // Up arrow. - // Just show picker if it's hidden. - if (showPicker()) { - return false; - }; - $selected = $(selectedSelector, $tpList); - var prev = $selected.prev().addClass(selectedClass)[0]; - if (prev) { - $selected.removeClass(selectedClass); - // Scroll item into view. - if (prev.offsetTop < top) { - $tpDiv[0].scrollTop = top - prev.offsetHeight; - } - } - else { - // Loop to next item. - $selected.removeClass(selectedClass); - prev = $("li:last", $tpList).addClass(selectedClass)[0]; - $tpDiv[0].scrollTop = prev.offsetTop - prev.offsetHeight; - } - return false; - break; - case 40: // Down arrow, similar in behaviour to up arrow. - if (showPicker()) { - return false; - }; - $selected = $(selectedSelector, $tpList); - var next = $selected.next().addClass(selectedClass)[0]; - if (next) { - $selected.removeClass(selectedClass); - if (next.offsetTop + next.offsetHeight > top + $tpDiv[0].offsetHeight) { - $tpDiv[0].scrollTop = top + next.offsetHeight; - } - } - else { - $selected.removeClass(selectedClass); - next = $("li:first", $tpList).addClass(selectedClass)[0]; - $tpDiv[0].scrollTop = 0; - } - return false; - break; - case 13: // Enter - if ($tpDiv.is(":visible")) { - var sel = $(selectedSelector, $tpList)[0]; - setTimeVal(elm, sel, $tpDiv, settings); - } - return false; - break; - case 27: // Esc - $tpDiv.hide(); - return false; - break; - } - return true; - }); - $(elm).keyup(function(e) { - keyDown = false; - }); - // Helper function to get an inputs current time as Date object. - // Returns a Date object. - this.getTime = function() { - return timeStringToDate(elm.value, settings); - }; - // Helper function to set a time input. - // Takes a Date object or string. - this.setTime = function(time) { - elm.value = formatTime(timeToDate(time, settings), settings); - // Trigger element's change events. - $(elm).change(); - }; - - }; // End fn; - - // Plugin defaults. - $.fn.timePicker.defaults = { - step:30, - startTime: new Date(0, 0, 0, 0, 0, 0), - endTime: new Date(0, 0, 0, 23, 30, 0), - separator: ':', - show24Hours: true - }; - - // Private functions. - - function setTimeVal(elm, sel, $tpDiv, settings) { - // Update input field - elm.value = $(sel).text(); - // Trigger element's change events. - $(elm).change(); - // Keep focus for all but IE (which doesn't like it) - if (!$.browser.msie) { - elm.focus(); - } - // Hide picker - $tpDiv.hide(); - } - - function formatTime(time, settings) { - var h = time.getHours(); - var hours = settings.show24Hours ? h : (((h + 11) % 12) + 1); - var minutes = time.getMinutes(); - return formatNumber(hours) + settings.separator + formatNumber(minutes) + (settings.show24Hours ? '' : ((h < 12) ? ' AM' : ' PM')); - } - - function formatNumber(value) { - return (value < 10 ? '0' : '') + value; - } - - function timeToDate(input, settings) { - return (typeof input == 'object') ? normaliseTime(input) : timeStringToDate(input, settings); - } - - function timeStringToDate(input, settings) { - if (input) { - var array = input.split(settings.separator); - var hours = parseFloat(array[0]); - var minutes = parseFloat(array[1]); - - // Convert AM/PM hour to 24-hour format. - if (!settings.show24Hours) { - if (hours === 12 && input.indexOf('AM') !== -1) { - hours = 0; - } - else if (hours !== 12 && input.indexOf('PM') !== -1) { - hours += 12; - } - } - var time = new Date(0, 0, 0, hours, minutes, 0); - return normaliseTime(time); - } - return null; - } - - /* Normalise time object to a common date. */ - function normaliseTime(time) { - time.setFullYear(2001); - time.setMonth(0); - time.setDate(0); - return time; - } - -})(jQuery); diff --git a/sources/web/public/js/templates/templates.js b/sources/web/public/js/templates/templates.js deleted file mode 100644 index d349ba4..0000000 --- a/sources/web/public/js/templates/templates.js +++ /dev/null @@ -1 +0,0 @@ -(function(){dust.register("form_open",body_0);function body_0(chk,ctx){return chk.write("
          ");}function body_1(chk,ctx){return chk.write("class=\"").reference(ctx.get("applyclass"),ctx,"h").write("\"");}function body_2(chk,ctx){return chk.write(" id=\"").reference(ctx.get("applyid"),ctx,"h").write("\"");}return body_0;})();(function(){dust.register("calendar_share_access_options",body_0);function body_0(chk,ctx){return chk.write(" ");}function body_1(chk,ctx){return chk.write(" selected=\"true\"");}function body_2(chk,ctx){return chk.reference(ctx.get("write_access"),ctx,"h");}function body_3(chk,ctx){return chk.write(" selected=\"true\"");}function body_4(chk,ctx){return chk.reference(ctx.get("write_access"),ctx,"h");}return body_0;})();(function(){dust.register("calendar_create_dialog",body_0);function body_0(chk,ctx){return chk.write("
          ").partial("form_open",ctx,{"applyclass":"form-horizontal","applyid":"calendar_create_form"}).partial("calendar_basic_form_part",ctx,null).partial("form_close",ctx,null).write("
          ");}return body_0;})();(function(){dust.register("form_close",body_0);function body_0(chk,ctx){return chk.write("
          ");}return body_0;})();(function(){dust.register("calendar_delete_dialog",body_0);function body_0(chk,ctx){return chk.write("
          ").partial("form_open",ctx,null).write("

          ").helper("i18n",ctx,{},{"type":"messages","name":"info_confirmcaldelete"}).write("

          ").reference(ctx.get("displayname"),ctx,"h").write("

          ").helper("i18n",ctx,{},{"type":"messages","name":"info_permanentremoval"}).write("

          ").partial("form_close",ctx,null).write("
          ");}return body_0;})();(function(){dust.register("reminders_table",body_0);function body_0(chk,ctx){return chk.section(ctx.get("visible_reminders"),ctx,{"block":body_1},null).write("").section(ctx.get("reminders"),ctx,{"block":body_2},null).write("
          ").helper("i18n",ctx,{},{"type":"messages","name":"info_noreminders"}).write("
          ").helper("i18n",ctx,{},{"type":"labels","name":"newreminder"}).write("").partial("reminder_row",ctx,{"add":"true"}).write("
          ").helper("i18n",ctx,{},{"type":"labels","name":"newreminder"}).write("").partial("reminder_row",ctx,{"add":"true","is_absolute":"true"}).write("
          ");}function body_1(chk,ctx){return chk.write("");}function body_2(chk,ctx){return chk.partial("reminder_row",ctx,null);}return body_0;})();(function(){dust.register("calendar_share_table",body_0);function body_0(chk,ctx){return chk.write("").section(ctx.get("share_with"),ctx,{"block":body_1},null).write("
          ").helper("i18n",ctx,{},{"type":"labels","name":"username"}).write("").helper("i18n",ctx,{},{"type":"labels","name":"access"}).write("
          ").helper("i18n",ctx,{},{"type":"messages","name":"info_notshared"}).write("
          ").helper("i18n",ctx,{},{"type":"labels","name":"sharewith"}).write("
          ");}function body_1(chk,ctx){return chk.partial("calendar_share_row",ctx,null);}return body_0;})();(function(){dust.register("event_details_popup",body_0);function body_0(chk,ctx){return chk.write("

          ").reference(ctx.get("formatted_start"),ctx,"h").write(" ").reference(ctx.get("formatted_end"),ctx,"h").write("

          ").helper("i18n",ctx,{},{"type":"labels","name":"calendar"}).write("
          ").reference(ctx.getPath(false,["caldata","displayname"]),ctx,"h").write("
          ").exists(ctx.get("location"),ctx,{"block":body_1},null).exists(ctx.get("description"),ctx,{"block":body_2},null).exists(ctx.get("rrule"),ctx,{"block":body_3},null).section(ctx.get("reminders"),ctx,{"block":body_7},null).notexists(ctx.get("disable_actions"),ctx,{"block":body_8},null).write("
          ");}function body_1(chk,ctx){return chk.write("
          ").helper("i18n",ctx,{},{"type":"labels","name":"location"}).write("
          ").reference(ctx.get("location"),ctx,"h").write("
          ");}function body_2(chk,ctx){return chk.write("
          ").helper("i18n",ctx,{},{"type":"labels","name":"description"}).write("
          ").reference(ctx.get("formatted_description"),ctx,"h").write("
          ");}function body_3(chk,ctx){return chk.write("
          ").helper("i18n",ctx,{},{"type":"labels","name":"repeat"}).write("
          ").exists(ctx.get("rrule_explained"),ctx,{"else":body_4,"block":body_5},null);}function body_4(chk,ctx){return chk.write("
          ").helper("i18n",ctx,{},{"type":"messages","name":"info_repetition_unparseable"}).write(" ").reference(ctx.get("rrule"),ctx,"h").write("
          ");}function body_5(chk,ctx){return chk.write("
          ").helper("i18n",ctx,{},{"type":"messages","name":"info_repetition_human","explanation":body_6}).write("
          ");}function body_6(chk,ctx){return chk.reference(ctx.get("rrule_explained"),ctx,"h");}function body_7(chk,ctx){return chk.write("
          ").helper("i18n",ctx,{},{"type":"labels","name":"reminder"}).write("
          ").partial("reminder_description",ctx,null).write("
          ");}function body_8(chk,ctx){return chk.write("
          ");}return body_0;})();(function(){dust.register("datepicker_button",body_0);function body_0(chk,ctx){return chk.write("");}return body_0;})();(function(){dust.register("calendar_modify_dialog",body_0);function body_0(chk,ctx){return chk.write("
          ").partial("form_open",ctx,{"applyclass":"form-horizontal","applyid":"calendar_modify_form"}).write("
          ").exists(ctx.get("user_from"),ctx,{"block":body_3},null).partial("calendar_basic_form_part",ctx,null).write("
          ").exists(ctx.get("enable_calendar_sharing"),ctx,{"block":body_7},null).partial("form_close",ctx,null).write("
          ");}function body_1(chk,ctx){return chk.notexists(ctx.get("shared"),ctx,{"block":body_2},null);}function body_2(chk,ctx){return chk.write("
        • ").helper("i18n",ctx,{},{"type":"labels","name":"shareoptions"}).write("
        • ");}function body_3(chk,ctx){return chk.write("
          ").helper("i18n",ctx,{},{"type":"messages","name":"info_sharedby","user":body_4}).write(" ").helper("eq",ctx,{"block":body_5},{"key":body_6,"value":"0"}).write("
          ");}function body_4(chk,ctx){return chk.reference(ctx.get("user_from"),ctx,"h");}function body_5(chk,ctx){return chk.write("(").helper("i18n",ctx,{},{"type":"labels","name":"readonly"}).write(")");}function body_6(chk,ctx){return chk.reference(ctx.get("write_access"),ctx,"h");}function body_7(chk,ctx){return chk.notexists(ctx.get("shared"),ctx,{"block":body_8},null);}function body_8(chk,ctx){return chk.write("
          ").partial("calendar_share_table",ctx,null).write("
          ");}return body_0;})();(function(){dust.register("calendar_basic_form_part",body_0);function body_0(chk,ctx){return chk.exists(ctx.get("calendar"),ctx,{"block":body_1},null).write("").partial("form_element_start",ctx,{"for":"displayname","label":"displayname"}).write("").partial("form_element_end",ctx,null).partial("form_element_start",ctx,{"for":"color","label":"color"}).write("").partial("form_element_end",ctx,null).exists(ctx.get("public_url"),ctx,{"block":body_7},null);}function body_1(chk,ctx){return chk.write("");}function body_2(chk,ctx){return chk.write("false");}function body_3(chk,ctx){return chk.write("true");}function body_4(chk,ctx){return chk.reference(ctx.get("displayname"),ctx,"h");}function body_5(chk,ctx){return chk.reference(ctx.get("default_calendar_color"),ctx,"h");}function body_6(chk,ctx){return chk.reference(ctx.get("color"),ctx,"h");}function body_7(chk,ctx){return chk.write("");}return body_0;})();(function(){dust.register("form_element_start",body_0);function body_0(chk,ctx){return chk.write("
          ");}function body_1(chk,ctx){return chk.write("for=\"").reference(ctx.get("for"),ctx,"h").write("\"");}return body_0;})();(function(){dust.register("calendar_share_row",body_0);function body_0(chk,ctx){return chk.write("").reference(ctx.get("username"),ctx,"h").write("\"").helper("i18n",ctx,{},{"type":"labels","name":"delete"}).write("\"title=\"").helper("i18n",ctx,{},{"type":"labels","name":"delete"}).write("\"");}return body_0;})();(function(){dust.register("form_element_end",body_0);function body_0(chk,ctx){return chk.exists(ctx.get("input_help"),ctx,{"block":body_1},null).write("
          ");}function body_1(chk,ctx){return chk.write("

          ").reference(ctx.get("input_help"),ctx,"h").write("

          ");}return body_0;})();(function(){dust.register("reminder_row",body_0);function body_0(chk,ctx){return chk.write("").notexists(ctx.get("add"),ctx,{"block":body_5},null).exists(ctx.get("is_absolute"),ctx,{"else":body_6,"block":body_7},null).write("").exists(ctx.get("is_absolute"),ctx,{"else":body_8,"block":body_32},null).write("").exists(ctx.get("add"),ctx,{"else":body_38,"block":body_39},null).write("");}function body_1(chk,ctx){return chk.write("is_absolute");}function body_2(chk,ctx){return chk.write("reminders[is_absolute][]");}function body_3(chk,ctx){return chk.write("false");}function body_4(chk,ctx){return chk.write("true");}function body_5(chk,ctx){return chk.write("");}function body_6(chk,ctx){return chk.write("");}function body_7(chk,ctx){return chk.write("");}function body_8(chk,ctx){return chk.write("").notexists(ctx.get("add"),ctx,{"block":body_31},null);}function body_9(chk,ctx){return chk.write("qty");}function body_10(chk,ctx){return chk.write("reminders[qty][]");}function body_11(chk,ctx){return chk.write("interval");}function body_12(chk,ctx){return chk.write("reminders[interval][]");}function body_13(chk,ctx){return chk.write(" selected=\"true\"");}function body_14(chk,ctx){return chk.reference(ctx.get("interval"),ctx,"h");}function body_15(chk,ctx){return chk.write(" selected=\"true\"");}function body_16(chk,ctx){return chk.reference(ctx.get("interval"),ctx,"h");}function body_17(chk,ctx){return chk.write(" selected=\"true\"");}function body_18(chk,ctx){return chk.reference(ctx.get("interval"),ctx,"h");}function body_19(chk,ctx){return chk.write(" selected=\"true\"");}function body_20(chk,ctx){return chk.reference(ctx.get("interval"),ctx,"h");}function body_21(chk,ctx){return chk.write("before");}function body_22(chk,ctx){return chk.write("reminders[before][]");}function body_23(chk,ctx){return chk.write(" selected=\"true\"");}function body_24(chk,ctx){return chk.notexists(ctx.get("add"),ctx,{"block":body_25},null);}function body_25(chk,ctx){return chk.write(" selected=\"true\"");}function body_26(chk,ctx){return chk.write("relatedStart");}function body_27(chk,ctx){return chk.write("reminders[relatedStart][]");}function body_28(chk,ctx){return chk.write(" selected=\"true\"");}function body_29(chk,ctx){return chk.notexists(ctx.get("add"),ctx,{"block":body_30},null);}function body_30(chk,ctx){return chk.write(" selected=\"true\"");}function body_31(chk,ctx){return chk.write("");}function body_32(chk,ctx){return chk.write("").notexists(ctx.get("add"),ctx,{"block":body_37},null);}function body_33(chk,ctx){return chk.write("tdate");}function body_34(chk,ctx){return chk.write("reminders[tdate][]");}function body_35(chk,ctx){return chk.write("ttime");}function body_36(chk,ctx){return chk.write("reminders[ttime][]");}function body_37(chk,ctx){return chk.write("");}function body_38(chk,ctx){return chk.write("\"").helper("i18n",ctx,{},{"type":"labels","name":"delete"}).write("\"");}function body_39(chk,ctx){return chk.write("\"").helper("i18n",ctx,{},{"type":"labels","name":"add"}).write("\"");}return body_0;})();(function(){dust.register("event_delete_dialog",body_0);function body_0(chk,ctx){return chk.write("
          ").partial("form_open",ctx,null).write("

          ").helper("i18n",ctx,{},{"type":"messages","name":"info_confirmeventdelete"}).write("

          ").reference(ctx.get("title"),ctx,"h").write("

          ").exists(ctx.get("rrule"),ctx,{"block":body_1},null).partial("form_close",ctx,null).write("
          ");}function body_1(chk,ctx){return chk.write("

          ").helper("i18n",ctx,{},{"type":"messages","name":"info_repetitivedeleteall"}).write("

          ");}return body_0;})();(function(){dust.register("calendar_list_entry",body_0);function body_0(chk,ctx){return chk.write("
        • ").exists(ctx.get("shared"),ctx,{"else":body_4,"block":body_6},null).write("").reference(ctx.get("displayname"),ctx,"h").write("
        • ");}function body_1(chk,ctx){return chk.write(" default_calendar");}function body_2(chk,ctx){return chk.reference(ctx.get("default_calendar_color"),ctx,"h");}function body_3(chk,ctx){return chk.reference(ctx.get("color"),ctx,"h");}function body_4(chk,ctx){return chk.exists(ctx.get("share_with"),ctx,{"block":body_5},null);}function body_5(chk,ctx){return chk.write("");}function body_6(chk,ctx){return chk.helper("eq",ctx,{"block":body_7},{"key":body_8,"value":"0"});}function body_7(chk,ctx){return chk.write("");}function body_8(chk,ctx){return chk.reference(ctx.get("write_access"),ctx,"h");}function body_9(chk,ctx){return chk.write("title=\"").helper("i18n",ctx,{},{"type":"messages","name":"info_sharedby","user":body_10}).write("\"");}function body_10(chk,ctx){return chk.reference(ctx.get("user_from"),ctx,"h");}return body_0;})();(function(){dust.register("reminder_description",body_0);function body_0(chk,ctx){return chk.exists(ctx.get("is_absolute"),ctx,{"else":body_1,"block":body_12},null);}function body_1(chk,ctx){return chk.reference(ctx.get("qty"),ctx,"h").write(" ").helper("select",ctx,{"block":body_2},{"key":body_7}).write(" ").exists(ctx.get("before"),ctx,{"else":body_8,"block":body_9},null).write(" ").exists(ctx.get("relatedStart"),ctx,{"else":body_10,"block":body_11},null);}function body_2(chk,ctx){return chk.helper("eq",ctx,{"block":body_3},{"value":"min"}).helper("eq",ctx,{"block":body_4},{"value":"hour"}).helper("eq",ctx,{"block":body_5},{"value":"day"}).helper("eq",ctx,{"block":body_6},{"value":"week"});}function body_3(chk,ctx){return chk.helper("i18n",ctx,{},{"type":"labels","name":"minutes"});}function body_4(chk,ctx){return chk.helper("i18n",ctx,{},{"type":"labels","name":"hours"});}function body_5(chk,ctx){return chk.helper("i18n",ctx,{},{"type":"labels","name":"days"});}function body_6(chk,ctx){return chk.helper("i18n",ctx,{},{"type":"labels","name":"weeks"});}function body_7(chk,ctx){return chk.reference(ctx.get("interval"),ctx,"h");}function body_8(chk,ctx){return chk.helper("i18n",ctx,{},{"type":"labels","name":"after"});}function body_9(chk,ctx){return chk.helper("i18n",ctx,{},{"type":"labels","name":"before"});}function body_10(chk,ctx){return chk.helper("i18n",ctx,{},{"type":"labels","name":"end"});}function body_11(chk,ctx){return chk.helper("i18n",ctx,{},{"type":"labels","name":"start"});}function body_12(chk,ctx){return chk.reference(ctx.get("tdate"),ctx,"h").write(" ").reference(ctx.get("ttime"),ctx,"h");}return body_0;})(); \ No newline at end of file diff --git a/sources/web/public/js/translation.js b/sources/web/public/js/translation.js deleted file mode 100644 index e090c3c..0000000 --- a/sources/web/public/js/translation.js +++ /dev/null @@ -1,92 +0,0 @@ -/** - * Loads localized strings - */ -function load_i18n_strings() { - AgenDAVConf.i18n = {}; - - var i18n_ajax_req = $.ajax({ - async: false, - url: base_app_url + 'strings/load/' + agendav_version, - dataType: 'json', - method: 'GET', - ifModified: false // TODO set to true + cache - }); - - i18n_ajax_req.done(function(data, textStatus, jqXHR) { - AgenDAVConf.i18n = data; - - // Localized names - set_default_datepicker_options(); - }); - - i18n_ajax_req.fail(function(jqXHR, textStatus, errorThrown) { - show_error('Error loading translation', - 'Please, contact your system administrator'); - }); -} - -/** - * Function that translates a given label/message - */ -function t(mtype, s, params) { - var ret = '[' + mtype + ':' + s + ']'; - - if (typeof(AgenDAVConf.i18n)!= 'undefined' && (mtype == 'messages' - || mtype == 'labels')) { - if (mtype == 'labels' && AgenDAVConf.i18n.labels[s]) { - ret = AgenDAVConf.i18n.labels[s]; - } else if (mtype == 'messages' && AgenDAVConf.i18n.messages[s]) { - ret = AgenDAVConf.i18n.messages[s]; - } - } - - for (var i in params) { - ret = ret.replace(i, params[i]); - } - - return ret; -} - -/** - * Returns an array of labels using the parameter 'arr' as the index for - * the desired labels - */ -function labels_as_array(arr) { - if (!$.isArray(arr)) { - return []; - } - - var result = []; - var total_arr = arr.length - - for (var i=0; imarker[$name] = microtime(); - } - - // -------------------------------------------------------------------- - - /** - * Calculates the time difference between two marked points. - * - * If the first parameter is empty this function instead returns the - * {elapsed_time} pseudo-variable. This permits the full system - * execution time to be shown in a template. The output class will - * swap the real value for this variable. - * - * @access public - * @param string a particular marked point - * @param string a particular marked point - * @param integer the number of decimal places - * @return mixed - */ - function elapsed_time($point1 = '', $point2 = '', $decimals = 4) - { - if ($point1 == '') - { - return '{elapsed_time}'; - } - - if ( ! isset($this->marker[$point1])) - { - return ''; - } - - if ( ! isset($this->marker[$point2])) - { - $this->marker[$point2] = microtime(); - } - - list($sm, $ss) = explode(' ', $this->marker[$point1]); - list($em, $es) = explode(' ', $this->marker[$point2]); - - return number_format(($em + $es) - ($sm + $ss), $decimals); - } - - // -------------------------------------------------------------------- - - /** - * Memory Usage - * - * This function returns the {memory_usage} pseudo-variable. - * This permits it to be put it anywhere in a template - * without the memory being calculated until the end. - * The output class will swap the real value for this variable. - * - * @access public - * @return string - */ - function memory_usage() - { - return '{memory_usage}'; - } - -} - -// END CI_Benchmark class - -/* End of file Benchmark.php */ -/* Location: ./system/core/Benchmark.php */ \ No newline at end of file diff --git a/sources/web/system/core/CodeIgniter.php b/sources/web/system/core/CodeIgniter.php deleted file mode 100755 index cd33333..0000000 --- a/sources/web/system/core/CodeIgniter.php +++ /dev/null @@ -1,402 +0,0 @@ - $assign_to_config['subclass_prefix'])); - } - -/* - * ------------------------------------------------------ - * Set a liberal script execution time limit - * ------------------------------------------------------ - */ - if (function_exists("set_time_limit") == TRUE AND @ini_get("safe_mode") == 0) - { - @set_time_limit(300); - } - -/* - * ------------------------------------------------------ - * Start the timer... tick tock tick tock... - * ------------------------------------------------------ - */ - $BM =& load_class('Benchmark', 'core'); - $BM->mark('total_execution_time_start'); - $BM->mark('loading_time:_base_classes_start'); - -/* - * ------------------------------------------------------ - * Instantiate the hooks class - * ------------------------------------------------------ - */ - $EXT =& load_class('Hooks', 'core'); - -/* - * ------------------------------------------------------ - * Is there a "pre_system" hook? - * ------------------------------------------------------ - */ - $EXT->_call_hook('pre_system'); - -/* - * ------------------------------------------------------ - * Instantiate the config class - * ------------------------------------------------------ - */ - $CFG =& load_class('Config', 'core'); - - // Do we have any manually set config items in the index.php file? - if (isset($assign_to_config)) - { - $CFG->_assign_to_config($assign_to_config); - } - -/* - * ------------------------------------------------------ - * Instantiate the UTF-8 class - * ------------------------------------------------------ - * - * Note: Order here is rather important as the UTF-8 - * class needs to be used very early on, but it cannot - * properly determine if UTf-8 can be supported until - * after the Config class is instantiated. - * - */ - - $UNI =& load_class('Utf8', 'core'); - -/* - * ------------------------------------------------------ - * Instantiate the URI class - * ------------------------------------------------------ - */ - $URI =& load_class('URI', 'core'); - -/* - * ------------------------------------------------------ - * Instantiate the routing class and set the routing - * ------------------------------------------------------ - */ - $RTR =& load_class('Router', 'core'); - $RTR->_set_routing(); - - // Set any routing overrides that may exist in the main index file - if (isset($routing)) - { - $RTR->_set_overrides($routing); - } - -/* - * ------------------------------------------------------ - * Instantiate the output class - * ------------------------------------------------------ - */ - $OUT =& load_class('Output', 'core'); - -/* - * ------------------------------------------------------ - * Is there a valid cache file? If so, we're done... - * ------------------------------------------------------ - */ - if ($EXT->_call_hook('cache_override') === FALSE) - { - if ($OUT->_display_cache($CFG, $URI) == TRUE) - { - exit; - } - } - -/* - * ----------------------------------------------------- - * Load the security class for xss and csrf support - * ----------------------------------------------------- - */ - $SEC =& load_class('Security', 'core'); - -/* - * ------------------------------------------------------ - * Load the Input class and sanitize globals - * ------------------------------------------------------ - */ - $IN =& load_class('Input', 'core'); - -/* - * ------------------------------------------------------ - * Load the Language class - * ------------------------------------------------------ - */ - $LANG =& load_class('Lang', 'core'); - -/* - * ------------------------------------------------------ - * Load the app controller and local controller - * ------------------------------------------------------ - * - */ - // Load the base controller class - require BASEPATH.'core/Controller.php'; - - function &get_instance() - { - return CI_Controller::get_instance(); - } - - - if (file_exists(APPPATH.'core/'.$CFG->config['subclass_prefix'].'Controller.php')) - { - require APPPATH.'core/'.$CFG->config['subclass_prefix'].'Controller.php'; - } - - // Load the local application controller - // Note: The Router class automatically validates the controller path using the router->_validate_request(). - // If this include fails it means that the default controller in the Routes.php file is not resolving to something valid. - if ( ! file_exists(APPPATH.'controllers/'.$RTR->fetch_directory().$RTR->fetch_class().'.php')) - { - show_error('Unable to load your default controller. Please make sure the controller specified in your Routes.php file is valid.'); - } - - include(APPPATH.'controllers/'.$RTR->fetch_directory().$RTR->fetch_class().'.php'); - - // Set a mark point for benchmarking - $BM->mark('loading_time:_base_classes_end'); - -/* - * ------------------------------------------------------ - * Security check - * ------------------------------------------------------ - * - * None of the functions in the app controller or the - * loader class can be called via the URI, nor can - * controller functions that begin with an underscore - */ - $class = $RTR->fetch_class(); - $method = $RTR->fetch_method(); - - if ( ! class_exists($class) - OR strncmp($method, '_', 1) == 0 - OR in_array(strtolower($method), array_map('strtolower', get_class_methods('CI_Controller'))) - ) - { - if ( ! empty($RTR->routes['404_override'])) - { - $x = explode('/', $RTR->routes['404_override']); - $class = $x[0]; - $method = (isset($x[1]) ? $x[1] : 'index'); - if ( ! class_exists($class)) - { - if ( ! file_exists(APPPATH.'controllers/'.$class.'.php')) - { - show_404("{$class}/{$method}"); - } - - include_once(APPPATH.'controllers/'.$class.'.php'); - } - } - else - { - show_404("{$class}/{$method}"); - } - } - -/* - * ------------------------------------------------------ - * Is there a "pre_controller" hook? - * ------------------------------------------------------ - */ - $EXT->_call_hook('pre_controller'); - -/* - * ------------------------------------------------------ - * Instantiate the requested controller - * ------------------------------------------------------ - */ - // Mark a start point so we can benchmark the controller - $BM->mark('controller_execution_time_( '.$class.' / '.$method.' )_start'); - - $CI = new $class(); - -/* - * ------------------------------------------------------ - * Is there a "post_controller_constructor" hook? - * ------------------------------------------------------ - */ - $EXT->_call_hook('post_controller_constructor'); - -/* - * ------------------------------------------------------ - * Call the requested method - * ------------------------------------------------------ - */ - // Is there a "remap" function? If so, we call it instead - if (method_exists($CI, '_remap')) - { - $CI->_remap($method, array_slice($URI->rsegments, 2)); - } - else - { - // is_callable() returns TRUE on some versions of PHP 5 for private and protected - // methods, so we'll use this workaround for consistent behavior - if ( ! in_array(strtolower($method), array_map('strtolower', get_class_methods($CI)))) - { - // Check and see if we are using a 404 override and use it. - if ( ! empty($RTR->routes['404_override'])) - { - $x = explode('/', $RTR->routes['404_override']); - $class = $x[0]; - $method = (isset($x[1]) ? $x[1] : 'index'); - if ( ! class_exists($class)) - { - if ( ! file_exists(APPPATH.'controllers/'.$class.'.php')) - { - show_404("{$class}/{$method}"); - } - - include_once(APPPATH.'controllers/'.$class.'.php'); - unset($CI); - $CI = new $class(); - } - } - else - { - show_404("{$class}/{$method}"); - } - } - - // Call the requested method. - // Any URI segments present (besides the class/function) will be passed to the method for convenience - call_user_func_array(array(&$CI, $method), array_slice($URI->rsegments, 2)); - } - - - // Mark a benchmark end point - $BM->mark('controller_execution_time_( '.$class.' / '.$method.' )_end'); - -/* - * ------------------------------------------------------ - * Is there a "post_controller" hook? - * ------------------------------------------------------ - */ - $EXT->_call_hook('post_controller'); - -/* - * ------------------------------------------------------ - * Send the final rendered output to the browser - * ------------------------------------------------------ - */ - if ($EXT->_call_hook('display_override') === FALSE) - { - $OUT->_display(); - } - -/* - * ------------------------------------------------------ - * Is there a "post_system" hook? - * ------------------------------------------------------ - */ - $EXT->_call_hook('post_system'); - -/* - * ------------------------------------------------------ - * Close the DB connection if one exists - * ------------------------------------------------------ - */ - if (class_exists('CI_DB') AND isset($CI->db)) - { - $CI->db->close(); - } - - -/* End of file CodeIgniter.php */ -/* Location: ./system/core/CodeIgniter.php */ \ No newline at end of file diff --git a/sources/web/system/core/Common.php b/sources/web/system/core/Common.php deleted file mode 100644 index d793754..0000000 --- a/sources/web/system/core/Common.php +++ /dev/null @@ -1,564 +0,0 @@ - 5 -* we'll set a static variable. -* -* @access public -* @param string -* @return bool TRUE if the current version is $version or higher -*/ -if ( ! function_exists('is_php')) -{ - function is_php($version = '5.0.0') - { - static $_is_php; - $version = (string)$version; - - if ( ! isset($_is_php[$version])) - { - $_is_php[$version] = (version_compare(PHP_VERSION, $version) < 0) ? FALSE : TRUE; - } - - return $_is_php[$version]; - } -} - -// ------------------------------------------------------------------------ - -/** - * Tests for file writability - * - * is_writable() returns TRUE on Windows servers when you really can't write to - * the file, based on the read-only attribute. is_writable() is also unreliable - * on Unix servers if safe_mode is on. - * - * @access private - * @return void - */ -if ( ! function_exists('is_really_writable')) -{ - function is_really_writable($file) - { - // If we're on a Unix server with safe_mode off we call is_writable - if (DIRECTORY_SEPARATOR == '/' AND @ini_get("safe_mode") == FALSE) - { - return is_writable($file); - } - - // For windows servers and safe_mode "on" installations we'll actually - // write a file then read it. Bah... - if (is_dir($file)) - { - $file = rtrim($file, '/').'/'.md5(mt_rand(1,100).mt_rand(1,100)); - - if (($fp = @fopen($file, FOPEN_WRITE_CREATE)) === FALSE) - { - return FALSE; - } - - fclose($fp); - @chmod($file, DIR_WRITE_MODE); - @unlink($file); - return TRUE; - } - elseif ( ! is_file($file) OR ($fp = @fopen($file, FOPEN_WRITE_CREATE)) === FALSE) - { - return FALSE; - } - - fclose($fp); - return TRUE; - } -} - -// ------------------------------------------------------------------------ - -/** -* Class registry -* -* This function acts as a singleton. If the requested class does not -* exist it is instantiated and set to a static variable. If it has -* previously been instantiated the variable is returned. -* -* @access public -* @param string the class name being requested -* @param string the directory where the class should be found -* @param string the class name prefix -* @return object -*/ -if ( ! function_exists('load_class')) -{ - function &load_class($class, $directory = 'libraries', $prefix = 'CI_') - { - static $_classes = array(); - - // Does the class exist? If so, we're done... - if (isset($_classes[$class])) - { - return $_classes[$class]; - } - - $name = FALSE; - - // Look for the class first in the local application/libraries folder - // then in the native system/libraries folder - foreach (array(APPPATH, BASEPATH) as $path) - { - if (file_exists($path.$directory.'/'.$class.'.php')) - { - $name = $prefix.$class; - - if (class_exists($name) === FALSE) - { - require($path.$directory.'/'.$class.'.php'); - } - - break; - } - } - - // Is the request a class extension? If so we load it too - if (file_exists(APPPATH.$directory.'/'.config_item('subclass_prefix').$class.'.php')) - { - $name = config_item('subclass_prefix').$class; - - if (class_exists($name) === FALSE) - { - require(APPPATH.$directory.'/'.config_item('subclass_prefix').$class.'.php'); - } - } - - // Did we find the class? - if ($name === FALSE) - { - // Note: We use exit() rather then show_error() in order to avoid a - // self-referencing loop with the Excptions class - exit('Unable to locate the specified class: '.$class.'.php'); - } - - // Keep track of what we just loaded - is_loaded($class); - - $_classes[$class] = new $name(); - return $_classes[$class]; - } -} - -// -------------------------------------------------------------------- - -/** -* Keeps track of which libraries have been loaded. This function is -* called by the load_class() function above -* -* @access public -* @return array -*/ -if ( ! function_exists('is_loaded')) -{ - function is_loaded($class = '') - { - static $_is_loaded = array(); - - if ($class != '') - { - $_is_loaded[strtolower($class)] = $class; - } - - return $_is_loaded; - } -} - -// ------------------------------------------------------------------------ - -/** -* Loads the main config.php file -* -* This function lets us grab the config file even if the Config class -* hasn't been instantiated yet -* -* @access private -* @return array -*/ -if ( ! function_exists('get_config')) -{ - function &get_config($replace = array()) - { - static $_config; - - if (isset($_config)) - { - return $_config[0]; - } - - // Is the config file in the environment folder? - if ( ! defined('ENVIRONMENT') OR ! file_exists($file_path = APPPATH.'config/'.ENVIRONMENT.'/config.php')) - { - $file_path = APPPATH.'config/config.php'; - } - - // Fetch the config file - if ( ! file_exists($file_path)) - { - exit('The configuration file does not exist.'); - } - - require($file_path); - - // Does the $config array exist in the file? - if ( ! isset($config) OR ! is_array($config)) - { - exit('Your config file does not appear to be formatted correctly.'); - } - - // Are any values being dynamically replaced? - if (count($replace) > 0) - { - foreach ($replace as $key => $val) - { - if (isset($config[$key])) - { - $config[$key] = $val; - } - } - } - - return $_config[0] =& $config; - } -} - -// ------------------------------------------------------------------------ - -/** -* Returns the specified config item -* -* @access public -* @return mixed -*/ -if ( ! function_exists('config_item')) -{ - function config_item($item) - { - static $_config_item = array(); - - if ( ! isset($_config_item[$item])) - { - $config =& get_config(); - - if ( ! isset($config[$item])) - { - return FALSE; - } - $_config_item[$item] = $config[$item]; - } - - return $_config_item[$item]; - } -} - -// ------------------------------------------------------------------------ - -/** -* Error Handler -* -* This function lets us invoke the exception class and -* display errors using the standard error template located -* in application/errors/errors.php -* This function will send the error page directly to the -* browser and exit. -* -* @access public -* @return void -*/ -if ( ! function_exists('show_error')) -{ - function show_error($message, $status_code = 500, $heading = 'An Error Was Encountered') - { - $_error =& load_class('Exceptions', 'core'); - echo $_error->show_error($heading, $message, 'error_general', $status_code); - exit; - } -} - -// ------------------------------------------------------------------------ - -/** -* 404 Page Handler -* -* This function is similar to the show_error() function above -* However, instead of the standard error template it displays -* 404 errors. -* -* @access public -* @return void -*/ -if ( ! function_exists('show_404')) -{ - function show_404($page = '', $log_error = TRUE) - { - $_error =& load_class('Exceptions', 'core'); - $_error->show_404($page, $log_error); - exit; - } -} - -// ------------------------------------------------------------------------ - -/** -* Error Logging Interface -* -* We use this as a simple mechanism to access the logging -* class and send messages to be logged. -* -* @access public -* @return void -*/ -if ( ! function_exists('log_message')) -{ - function log_message($level = 'error', $message, $php_error = FALSE) - { - static $_log; - - if (config_item('log_threshold') == 0) - { - return; - } - - $_log =& load_class('Log'); - $_log->write_log($level, $message, $php_error); - } -} - -// ------------------------------------------------------------------------ - -/** - * Set HTTP Status Header - * - * @access public - * @param int the status code - * @param string - * @return void - */ -if ( ! function_exists('set_status_header')) -{ - function set_status_header($code = 200, $text = '') - { - $stati = array( - 200 => 'OK', - 201 => 'Created', - 202 => 'Accepted', - 203 => 'Non-Authoritative Information', - 204 => 'No Content', - 205 => 'Reset Content', - 206 => 'Partial Content', - - 300 => 'Multiple Choices', - 301 => 'Moved Permanently', - 302 => 'Found', - 304 => 'Not Modified', - 305 => 'Use Proxy', - 307 => 'Temporary Redirect', - - 400 => 'Bad Request', - 401 => 'Unauthorized', - 403 => 'Forbidden', - 404 => 'Not Found', - 405 => 'Method Not Allowed', - 406 => 'Not Acceptable', - 407 => 'Proxy Authentication Required', - 408 => 'Request Timeout', - 409 => 'Conflict', - 410 => 'Gone', - 411 => 'Length Required', - 412 => 'Precondition Failed', - 413 => 'Request Entity Too Large', - 414 => 'Request-URI Too Long', - 415 => 'Unsupported Media Type', - 416 => 'Requested Range Not Satisfiable', - 417 => 'Expectation Failed', - - 500 => 'Internal Server Error', - 501 => 'Not Implemented', - 502 => 'Bad Gateway', - 503 => 'Service Unavailable', - 504 => 'Gateway Timeout', - 505 => 'HTTP Version Not Supported' - ); - - if ($code == '' OR ! is_numeric($code)) - { - show_error('Status codes must be numeric', 500); - } - - if (isset($stati[$code]) AND $text == '') - { - $text = $stati[$code]; - } - - if ($text == '') - { - show_error('No status text available. Please check your status code number or supply your own message text.', 500); - } - - $server_protocol = (isset($_SERVER['SERVER_PROTOCOL'])) ? $_SERVER['SERVER_PROTOCOL'] : FALSE; - - if (substr(php_sapi_name(), 0, 3) == 'cgi') - { - header("Status: {$code} {$text}", TRUE); - } - elseif ($server_protocol == 'HTTP/1.1' OR $server_protocol == 'HTTP/1.0') - { - header($server_protocol." {$code} {$text}", TRUE, $code); - } - else - { - header("HTTP/1.1 {$code} {$text}", TRUE, $code); - } - } -} - -// -------------------------------------------------------------------- - -/** -* Exception Handler -* -* This is the custom exception handler that is declaired at the top -* of Codeigniter.php. The main reason we use this is to permit -* PHP errors to be logged in our own log files since the user may -* not have access to server logs. Since this function -* effectively intercepts PHP errors, however, we also need -* to display errors based on the current error_reporting level. -* We do that with the use of a PHP error template. -* -* @access private -* @return void -*/ -if ( ! function_exists('_exception_handler')) -{ - function _exception_handler($severity, $message, $filepath, $line) - { - // We don't bother with "strict" notices since they tend to fill up - // the log file with excess information that isn't normally very helpful. - // For example, if you are running PHP 5 and you use version 4 style - // class functions (without prefixes like "public", "private", etc.) - // you'll get notices telling you that these have been deprecated. - if ($severity == E_STRICT) - { - return; - } - - $_error =& load_class('Exceptions', 'core'); - - // Should we display the error? We'll get the current error_reporting - // level and add its bits with the severity bits to find out. - if (($severity & error_reporting()) == $severity) - { - $_error->show_php_error($severity, $message, $filepath, $line); - } - - // Should we log the error? No? We're done... - if (config_item('log_threshold') == 0) - { - return; - } - - $_error->log_exception($severity, $message, $filepath, $line); - } -} - -// -------------------------------------------------------------------- - -/** - * Remove Invisible Characters - * - * This prevents sandwiching null characters - * between ascii characters, like Java\0script. - * - * @access public - * @param string - * @return string - */ -if ( ! function_exists('remove_invisible_characters')) -{ - function remove_invisible_characters($str, $url_encoded = TRUE) - { - $non_displayables = array(); - - // every control character except newline (dec 10) - // carriage return (dec 13), and horizontal tab (dec 09) - - if ($url_encoded) - { - $non_displayables[] = '/%0[0-8bcef]/'; // url encoded 00-08, 11, 12, 14, 15 - $non_displayables[] = '/%1[0-9a-f]/'; // url encoded 16-31 - } - - $non_displayables[] = '/[\x00-\x08\x0B\x0C\x0E-\x1F\x7F]+/S'; // 00-08, 11, 12, 14-31, 127 - - do - { - $str = preg_replace($non_displayables, '', $str, -1, $count); - } - while ($count); - - return $str; - } -} - -// ------------------------------------------------------------------------ - -/** -* Returns HTML escaped variable -* -* @access public -* @param mixed -* @return mixed -*/ -if ( ! function_exists('html_escape')) -{ - function html_escape($var) - { - if (is_array($var)) - { - return array_map('html_escape', $var); - } - else - { - return htmlspecialchars($var, ENT_QUOTES, config_item('charset')); - } - } -} - -/* End of file Common.php */ -/* Location: ./system/core/Common.php */ \ No newline at end of file diff --git a/sources/web/system/core/Config.php b/sources/web/system/core/Config.php deleted file mode 100755 index 714c466..0000000 --- a/sources/web/system/core/Config.php +++ /dev/null @@ -1,379 +0,0 @@ -config =& get_config(); - log_message('debug', "Config Class Initialized"); - - // Set the base_url automatically if none was provided - if ($this->config['base_url'] == '') - { - if (isset($_SERVER['HTTP_HOST'])) - { - $base_url = isset($_SERVER['HTTPS']) && strtolower($_SERVER['HTTPS']) !== 'off' ? 'https' : 'http'; - $base_url .= '://'. $_SERVER['HTTP_HOST']; - $base_url .= str_replace(basename($_SERVER['SCRIPT_NAME']), '', $_SERVER['SCRIPT_NAME']); - } - - else - { - $base_url = 'http://localhost/'; - } - - $this->set_item('base_url', $base_url); - } - } - - // -------------------------------------------------------------------- - - /** - * Load Config File - * - * @access public - * @param string the config file name - * @param boolean if configuration values should be loaded into their own section - * @param boolean true if errors should just return false, false if an error message should be displayed - * @return boolean if the file was loaded correctly - */ - function load($file = '', $use_sections = FALSE, $fail_gracefully = FALSE) - { - $file = ($file == '') ? 'config' : str_replace('.php', '', $file); - $found = FALSE; - $loaded = FALSE; - - foreach ($this->_config_paths as $path) - { - $check_locations = defined('ENVIRONMENT') - ? array(ENVIRONMENT.'/'.$file, $file) - : array($file); - - foreach ($check_locations as $location) - { - $file_path = $path.'config/'.$location.'.php'; - - if (in_array($file_path, $this->is_loaded, TRUE)) - { - $loaded = TRUE; - continue 2; - } - - if (file_exists($file_path)) - { - $found = TRUE; - break; - } - } - - if ($found === FALSE) - { - continue; - } - - include($file_path); - - if ( ! isset($config) OR ! is_array($config)) - { - if ($fail_gracefully === TRUE) - { - return FALSE; - } - show_error('Your '.$file_path.' file does not appear to contain a valid configuration array.'); - } - - if ($use_sections === TRUE) - { - if (isset($this->config[$file])) - { - $this->config[$file] = array_merge($this->config[$file], $config); - } - else - { - $this->config[$file] = $config; - } - } - else - { - $this->config = array_merge($this->config, $config); - } - - $this->is_loaded[] = $file_path; - unset($config); - - $loaded = TRUE; - log_message('debug', 'Config file loaded: '.$file_path); - break; - } - - if ($loaded === FALSE) - { - if ($fail_gracefully === TRUE) - { - return FALSE; - } - show_error('The configuration file '.$file.'.php'.' does not exist.'); - } - - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Fetch a config file item - * - * - * @access public - * @param string the config item name - * @param string the index name - * @param bool - * @return string - */ - function item($item, $index = '') - { - if ($index == '') - { - if ( ! isset($this->config[$item])) - { - return FALSE; - } - - $pref = $this->config[$item]; - } - else - { - if ( ! isset($this->config[$index])) - { - return FALSE; - } - - if ( ! isset($this->config[$index][$item])) - { - return FALSE; - } - - $pref = $this->config[$index][$item]; - } - - return $pref; - } - - // -------------------------------------------------------------------- - - /** - * Fetch a config file item - adds slash after item (if item is not empty) - * - * @access public - * @param string the config item name - * @param bool - * @return string - */ - function slash_item($item) - { - if ( ! isset($this->config[$item])) - { - return FALSE; - } - if( trim($this->config[$item]) == '') - { - return ''; - } - - return rtrim($this->config[$item], '/').'/'; - } - - // -------------------------------------------------------------------- - - /** - * Site URL - * Returns base_url . index_page [. uri_string] - * - * @access public - * @param string the URI string - * @return string - */ - function site_url($uri = '') - { - if ($uri == '') - { - return $this->slash_item('base_url').$this->item('index_page'); - } - - if ($this->item('enable_query_strings') == FALSE) - { - $suffix = ($this->item('url_suffix') == FALSE) ? '' : $this->item('url_suffix'); - return $this->slash_item('base_url').$this->slash_item('index_page').$this->_uri_string($uri).$suffix; - } - else - { - return $this->slash_item('base_url').$this->item('index_page').'?'.$this->_uri_string($uri); - } - } - - // ------------------------------------------------------------- - - /** - * Base URL - * Returns base_url [. uri_string] - * - * @access public - * @param string $uri - * @return string - */ - function base_url($uri = '') - { - return $this->slash_item('base_url').ltrim($this->_uri_string($uri),'/'); - } - - // ------------------------------------------------------------- - - /** - * Build URI string for use in Config::site_url() and Config::base_url() - * - * @access protected - * @param $uri - * @return string - */ - protected function _uri_string($uri) - { - if ($this->item('enable_query_strings') == FALSE) - { - if (is_array($uri)) - { - $uri = implode('/', $uri); - } - $uri = trim($uri, '/'); - } - else - { - if (is_array($uri)) - { - $i = 0; - $str = ''; - foreach ($uri as $key => $val) - { - $prefix = ($i == 0) ? '' : '&'; - $str .= $prefix.$key.'='.$val; - $i++; - } - $uri = $str; - } - } - return $uri; - } - - // -------------------------------------------------------------------- - - /** - * System URL - * - * @access public - * @return string - */ - function system_url() - { - $x = explode("/", preg_replace("|/*(.+?)/*$|", "\\1", BASEPATH)); - return $this->slash_item('base_url').end($x).'/'; - } - - // -------------------------------------------------------------------- - - /** - * Set a config file item - * - * @access public - * @param string the config item key - * @param string the config item value - * @return void - */ - function set_item($item, $value) - { - $this->config[$item] = $value; - } - - // -------------------------------------------------------------------- - - /** - * Assign to Config - * - * This function is called by the front controller (CodeIgniter.php) - * after the Config class is instantiated. It permits config items - * to be assigned or overriden by variables contained in the index.php file - * - * @access private - * @param array - * @return void - */ - function _assign_to_config($items = array()) - { - if (is_array($items)) - { - foreach ($items as $key => $val) - { - $this->set_item($key, $val); - } - } - } -} - -// END CI_Config class - -/* End of file Config.php */ -/* Location: ./system/core/Config.php */ diff --git a/sources/web/system/core/Controller.php b/sources/web/system/core/Controller.php deleted file mode 100644 index fddb81e..0000000 --- a/sources/web/system/core/Controller.php +++ /dev/null @@ -1,64 +0,0 @@ - $class) - { - $this->$var =& load_class($class); - } - - $this->load =& load_class('Loader', 'core'); - - $this->load->initialize(); - - log_message('debug', "Controller Class Initialized"); - } - - public static function &get_instance() - { - return self::$instance; - } -} -// END Controller class - -/* End of file Controller.php */ -/* Location: ./system/core/Controller.php */ \ No newline at end of file diff --git a/sources/web/system/core/Exceptions.php b/sources/web/system/core/Exceptions.php deleted file mode 100755 index 869739a..0000000 --- a/sources/web/system/core/Exceptions.php +++ /dev/null @@ -1,193 +0,0 @@ - 'Error', - E_WARNING => 'Warning', - E_PARSE => 'Parsing Error', - E_NOTICE => 'Notice', - E_CORE_ERROR => 'Core Error', - E_CORE_WARNING => 'Core Warning', - E_COMPILE_ERROR => 'Compile Error', - E_COMPILE_WARNING => 'Compile Warning', - E_USER_ERROR => 'User Error', - E_USER_WARNING => 'User Warning', - E_USER_NOTICE => 'User Notice', - E_STRICT => 'Runtime Notice' - ); - - - /** - * Constructor - */ - public function __construct() - { - $this->ob_level = ob_get_level(); - // Note: Do not log messages from this constructor. - } - - // -------------------------------------------------------------------- - - /** - * Exception Logger - * - * This function logs PHP generated error messages - * - * @access private - * @param string the error severity - * @param string the error string - * @param string the error filepath - * @param string the error line number - * @return string - */ - function log_exception($severity, $message, $filepath, $line) - { - $severity = ( ! isset($this->levels[$severity])) ? $severity : $this->levels[$severity]; - - log_message('error', 'Severity: '.$severity.' --> '.$message. ' '.$filepath.' '.$line, TRUE); - } - - // -------------------------------------------------------------------- - - /** - * 404 Page Not Found Handler - * - * @access private - * @param string the page - * @param bool log error yes/no - * @return string - */ - function show_404($page = '', $log_error = TRUE) - { - $heading = "404 Page Not Found"; - $message = "The page you requested was not found."; - - // By default we log this, but allow a dev to skip it - if ($log_error) - { - log_message('error', '404 Page Not Found --> '.$page); - } - - echo $this->show_error($heading, $message, 'error_404', 404); - exit; - } - - // -------------------------------------------------------------------- - - /** - * General Error Page - * - * This function takes an error message as input - * (either as a string or an array) and displays - * it using the specified template. - * - * @access private - * @param string the heading - * @param string the message - * @param string the template name - * @param int the status code - * @return string - */ - function show_error($heading, $message, $template = 'error_general', $status_code = 500) - { - set_status_header($status_code); - - $message = '

          '.implode('

          ', ( ! is_array($message)) ? array($message) : $message).'

          '; - - if (ob_get_level() > $this->ob_level + 1) - { - ob_end_flush(); - } - ob_start(); - include(APPPATH.'errors/'.$template.'.php'); - $buffer = ob_get_contents(); - ob_end_clean(); - return $buffer; - } - - // -------------------------------------------------------------------- - - /** - * Native PHP error handler - * - * @access private - * @param string the error severity - * @param string the error string - * @param string the error filepath - * @param string the error line number - * @return string - */ - function show_php_error($severity, $message, $filepath, $line) - { - $severity = ( ! isset($this->levels[$severity])) ? $severity : $this->levels[$severity]; - - $filepath = str_replace("\\", "/", $filepath); - - // For safety reasons we do not show the full file path - if (FALSE !== strpos($filepath, '/')) - { - $x = explode('/', $filepath); - $filepath = $x[count($x)-2].'/'.end($x); - } - - if (ob_get_level() > $this->ob_level + 1) - { - ob_end_flush(); - } - ob_start(); - include(APPPATH.'errors/error_php.php'); - $buffer = ob_get_contents(); - ob_end_clean(); - echo $buffer; - } - - -} -// END Exceptions Class - -/* End of file Exceptions.php */ -/* Location: ./system/core/Exceptions.php */ \ No newline at end of file diff --git a/sources/web/system/core/Hooks.php b/sources/web/system/core/Hooks.php deleted file mode 100755 index 33f1c03..0000000 --- a/sources/web/system/core/Hooks.php +++ /dev/null @@ -1,248 +0,0 @@ -_initialize(); - log_message('debug', "Hooks Class Initialized"); - } - - // -------------------------------------------------------------------- - - /** - * Initialize the Hooks Preferences - * - * @access private - * @return void - */ - function _initialize() - { - $CFG =& load_class('Config', 'core'); - - // If hooks are not enabled in the config file - // there is nothing else to do - - if ($CFG->item('enable_hooks') == FALSE) - { - return; - } - - // Grab the "hooks" definition file. - // If there are no hooks, we're done. - - if (defined('ENVIRONMENT') AND is_file(APPPATH.'config/'.ENVIRONMENT.'/hooks.php')) - { - include(APPPATH.'config/'.ENVIRONMENT.'/hooks.php'); - } - elseif (is_file(APPPATH.'config/hooks.php')) - { - include(APPPATH.'config/hooks.php'); - } - - - if ( ! isset($hook) OR ! is_array($hook)) - { - return; - } - - $this->hooks =& $hook; - $this->enabled = TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Call Hook - * - * Calls a particular hook - * - * @access private - * @param string the hook name - * @return mixed - */ - function _call_hook($which = '') - { - if ( ! $this->enabled OR ! isset($this->hooks[$which])) - { - return FALSE; - } - - if (isset($this->hooks[$which][0]) AND is_array($this->hooks[$which][0])) - { - foreach ($this->hooks[$which] as $val) - { - $this->_run_hook($val); - } - } - else - { - $this->_run_hook($this->hooks[$which]); - } - - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Run Hook - * - * Runs a particular hook - * - * @access private - * @param array the hook details - * @return bool - */ - function _run_hook($data) - { - if ( ! is_array($data)) - { - return FALSE; - } - - // ----------------------------------- - // Safety - Prevents run-away loops - // ----------------------------------- - - // If the script being called happens to have the same - // hook call within it a loop can happen - - if ($this->in_progress == TRUE) - { - return; - } - - // ----------------------------------- - // Set file path - // ----------------------------------- - - if ( ! isset($data['filepath']) OR ! isset($data['filename'])) - { - return FALSE; - } - - $filepath = APPPATH.$data['filepath'].'/'.$data['filename']; - - if ( ! file_exists($filepath)) - { - return FALSE; - } - - // ----------------------------------- - // Set class/function name - // ----------------------------------- - - $class = FALSE; - $function = FALSE; - $params = ''; - - if (isset($data['class']) AND $data['class'] != '') - { - $class = $data['class']; - } - - if (isset($data['function'])) - { - $function = $data['function']; - } - - if (isset($data['params'])) - { - $params = $data['params']; - } - - if ($class === FALSE AND $function === FALSE) - { - return FALSE; - } - - // ----------------------------------- - // Set the in_progress flag - // ----------------------------------- - - $this->in_progress = TRUE; - - // ----------------------------------- - // Call the requested class and/or function - // ----------------------------------- - - if ($class !== FALSE) - { - if ( ! class_exists($class)) - { - require($filepath); - } - - $HOOK = new $class; - $HOOK->$function($params); - } - else - { - if ( ! function_exists($function)) - { - require($filepath); - } - - $function($params); - } - - $this->in_progress = FALSE; - return TRUE; - } - -} - -// END CI_Hooks class - -/* End of file Hooks.php */ -/* Location: ./system/core/Hooks.php */ \ No newline at end of file diff --git a/sources/web/system/core/Input.php b/sources/web/system/core/Input.php deleted file mode 100755 index 3559d86..0000000 --- a/sources/web/system/core/Input.php +++ /dev/null @@ -1,850 +0,0 @@ -_allow_get_array = (config_item('allow_get_array') === TRUE); - $this->_enable_xss = (config_item('global_xss_filtering') === TRUE); - $this->_enable_csrf = (config_item('csrf_protection') === TRUE); - - global $SEC; - $this->security =& $SEC; - - // Do we need the UTF-8 class? - if (UTF8_ENABLED === TRUE) - { - global $UNI; - $this->uni =& $UNI; - } - - // Sanitize global arrays - $this->_sanitize_globals(); - } - - // -------------------------------------------------------------------- - - /** - * Fetch from array - * - * This is a helper function to retrieve values from global arrays - * - * @access private - * @param array - * @param string - * @param bool - * @return string - */ - function _fetch_from_array(&$array, $index = '', $xss_clean = FALSE) - { - if ( ! isset($array[$index])) - { - return FALSE; - } - - if ($xss_clean === TRUE) - { - return $this->security->xss_clean($array[$index]); - } - - return $array[$index]; - } - - // -------------------------------------------------------------------- - - /** - * Fetch an item from the GET array - * - * @access public - * @param string - * @param bool - * @return string - */ - function get($index = NULL, $xss_clean = FALSE) - { - // Check if a field has been provided - if ($index === NULL AND ! empty($_GET)) - { - $get = array(); - - // loop through the full _GET array - foreach (array_keys($_GET) as $key) - { - $get[$key] = $this->_fetch_from_array($_GET, $key, $xss_clean); - } - return $get; - } - - return $this->_fetch_from_array($_GET, $index, $xss_clean); - } - - // -------------------------------------------------------------------- - - /** - * Fetch an item from the POST array - * - * @access public - * @param string - * @param bool - * @return string - */ - function post($index = NULL, $xss_clean = FALSE) - { - // Check if a field has been provided - if ($index === NULL AND ! empty($_POST)) - { - $post = array(); - - // Loop through the full _POST array and return it - foreach (array_keys($_POST) as $key) - { - $post[$key] = $this->_fetch_from_array($_POST, $key, $xss_clean); - } - return $post; - } - - return $this->_fetch_from_array($_POST, $index, $xss_clean); - } - - - // -------------------------------------------------------------------- - - /** - * Fetch an item from either the GET array or the POST - * - * @access public - * @param string The index key - * @param bool XSS cleaning - * @return string - */ - function get_post($index = '', $xss_clean = FALSE) - { - if ( ! isset($_POST[$index]) ) - { - return $this->get($index, $xss_clean); - } - else - { - return $this->post($index, $xss_clean); - } - } - - // -------------------------------------------------------------------- - - /** - * Fetch an item from the COOKIE array - * - * @access public - * @param string - * @param bool - * @return string - */ - function cookie($index = '', $xss_clean = FALSE) - { - return $this->_fetch_from_array($_COOKIE, $index, $xss_clean); - } - - // ------------------------------------------------------------------------ - - /** - * Set cookie - * - * Accepts six parameter, or you can submit an associative - * array in the first parameter containing all the values. - * - * @access public - * @param mixed - * @param string the value of the cookie - * @param string the number of seconds until expiration - * @param string the cookie domain. Usually: .yourdomain.com - * @param string the cookie path - * @param string the cookie prefix - * @param bool true makes the cookie secure - * @return void - */ - function set_cookie($name = '', $value = '', $expire = '', $domain = '', $path = '/', $prefix = '', $secure = FALSE) - { - if (is_array($name)) - { - // always leave 'name' in last place, as the loop will break otherwise, due to $$item - foreach (array('value', 'expire', 'domain', 'path', 'prefix', 'secure', 'name') as $item) - { - if (isset($name[$item])) - { - $$item = $name[$item]; - } - } - } - - if ($prefix == '' AND config_item('cookie_prefix') != '') - { - $prefix = config_item('cookie_prefix'); - } - if ($domain == '' AND config_item('cookie_domain') != '') - { - $domain = config_item('cookie_domain'); - } - if ($path == '/' AND config_item('cookie_path') != '/') - { - $path = config_item('cookie_path'); - } - if ($secure == FALSE AND config_item('cookie_secure') != FALSE) - { - $secure = config_item('cookie_secure'); - } - - if ( ! is_numeric($expire)) - { - $expire = time() - 86500; - } - else - { - $expire = ($expire > 0) ? time() + $expire : 0; - } - - setcookie($prefix.$name, $value, $expire, $path, $domain, $secure); - } - - // -------------------------------------------------------------------- - - /** - * Fetch an item from the SERVER array - * - * @access public - * @param string - * @param bool - * @return string - */ - function server($index = '', $xss_clean = FALSE) - { - return $this->_fetch_from_array($_SERVER, $index, $xss_clean); - } - - // -------------------------------------------------------------------- - - /** - * Fetch the IP Address - * - * @access public - * @return string - */ - function ip_address() - { - if ($this->ip_address !== FALSE) - { - return $this->ip_address; - } - - if (config_item('proxy_ips') != '' && $this->server('HTTP_X_FORWARDED_FOR') && $this->server('REMOTE_ADDR')) - { - $proxies = preg_split('/[\s,]/', config_item('proxy_ips'), -1, PREG_SPLIT_NO_EMPTY); - $proxies = is_array($proxies) ? $proxies : array($proxies); - - $this->ip_address = in_array($_SERVER['REMOTE_ADDR'], $proxies) ? $_SERVER['HTTP_X_FORWARDED_FOR'] : $_SERVER['REMOTE_ADDR']; - } - elseif ($this->server('REMOTE_ADDR') AND $this->server('HTTP_CLIENT_IP')) - { - $this->ip_address = $_SERVER['HTTP_CLIENT_IP']; - } - elseif ($this->server('REMOTE_ADDR')) - { - $this->ip_address = $_SERVER['REMOTE_ADDR']; - } - elseif ($this->server('HTTP_CLIENT_IP')) - { - $this->ip_address = $_SERVER['HTTP_CLIENT_IP']; - } - elseif ($this->server('HTTP_X_FORWARDED_FOR')) - { - $this->ip_address = $_SERVER['HTTP_X_FORWARDED_FOR']; - } - - if ($this->ip_address === FALSE) - { - $this->ip_address = '0.0.0.0'; - return $this->ip_address; - } - - if (strpos($this->ip_address, ',') !== FALSE) - { - $x = explode(',', $this->ip_address); - $this->ip_address = trim(end($x)); - } - - if ( ! $this->valid_ip($this->ip_address)) - { - $this->ip_address = '0.0.0.0'; - } - - return $this->ip_address; - } - - // -------------------------------------------------------------------- - - /** - * Validate IP Address - * - * @access public - * @param string - * @param string ipv4 or ipv6 - * @return bool - */ - public function valid_ip($ip, $which = '') - { - $which = strtolower($which); - - // First check if filter_var is available - if (is_callable('filter_var')) - { - switch ($which) { - case 'ipv4': - $flag = FILTER_FLAG_IPV4; - break; - case 'ipv6': - $flag = FILTER_FLAG_IPV6; - break; - default: - $flag = ''; - break; - } - - return (bool) filter_var($ip, FILTER_VALIDATE_IP, $flag); - } - - if ($which !== 'ipv6' && $which !== 'ipv4') - { - if (strpos($ip, ':') !== FALSE) - { - $which = 'ipv6'; - } - elseif (strpos($ip, '.') !== FALSE) - { - $which = 'ipv4'; - } - else - { - return FALSE; - } - } - - $func = '_valid_'.$which; - return $this->$func($ip); - } - - // -------------------------------------------------------------------- - - /** - * Validate IPv4 Address - * - * Updated version suggested by Geert De Deckere - * - * @access protected - * @param string - * @return bool - */ - protected function _valid_ipv4($ip) - { - $ip_segments = explode('.', $ip); - - // Always 4 segments needed - if (count($ip_segments) !== 4) - { - return FALSE; - } - // IP can not start with 0 - if ($ip_segments[0][0] == '0') - { - return FALSE; - } - - // Check each segment - foreach ($ip_segments as $segment) - { - // IP segments must be digits and can not be - // longer than 3 digits or greater then 255 - if ($segment == '' OR preg_match("/[^0-9]/", $segment) OR $segment > 255 OR strlen($segment) > 3) - { - return FALSE; - } - } - - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Validate IPv6 Address - * - * @access protected - * @param string - * @return bool - */ - protected function _valid_ipv6($str) - { - // 8 groups, separated by : - // 0-ffff per group - // one set of consecutive 0 groups can be collapsed to :: - - $groups = 8; - $collapsed = FALSE; - - $chunks = array_filter( - preg_split('/(:{1,2})/', $str, NULL, PREG_SPLIT_DELIM_CAPTURE) - ); - - // Rule out easy nonsense - if (current($chunks) == ':' OR end($chunks) == ':') - { - return FALSE; - } - - // PHP supports IPv4-mapped IPv6 addresses, so we'll expect those as well - if (strpos(end($chunks), '.') !== FALSE) - { - $ipv4 = array_pop($chunks); - - if ( ! $this->_valid_ipv4($ipv4)) - { - return FALSE; - } - - $groups--; - } - - while ($seg = array_pop($chunks)) - { - if ($seg[0] == ':') - { - if (--$groups == 0) - { - return FALSE; // too many groups - } - - if (strlen($seg) > 2) - { - return FALSE; // long separator - } - - if ($seg == '::') - { - if ($collapsed) - { - return FALSE; // multiple collapsed - } - - $collapsed = TRUE; - } - } - elseif (preg_match("/[^0-9a-f]/i", $seg) OR strlen($seg) > 4) - { - return FALSE; // invalid segment - } - } - - return $collapsed OR $groups == 1; - } - - // -------------------------------------------------------------------- - - /** - * User Agent - * - * @access public - * @return string - */ - function user_agent() - { - if ($this->user_agent !== FALSE) - { - return $this->user_agent; - } - - $this->user_agent = ( ! isset($_SERVER['HTTP_USER_AGENT'])) ? FALSE : $_SERVER['HTTP_USER_AGENT']; - - return $this->user_agent; - } - - // -------------------------------------------------------------------- - - /** - * Sanitize Globals - * - * This function does the following: - * - * Unsets $_GET data (if query strings are not enabled) - * - * Unsets all globals if register_globals is enabled - * - * Standardizes newline characters to \n - * - * @access private - * @return void - */ - function _sanitize_globals() - { - // It would be "wrong" to unset any of these GLOBALS. - $protected = array('_SERVER', '_GET', '_POST', '_FILES', '_REQUEST', - '_SESSION', '_ENV', 'GLOBALS', 'HTTP_RAW_POST_DATA', - 'system_folder', 'application_folder', 'BM', 'EXT', - 'CFG', 'URI', 'RTR', 'OUT', 'IN'); - - // Unset globals for securiy. - // This is effectively the same as register_globals = off - foreach (array($_GET, $_POST, $_COOKIE) as $global) - { - if ( ! is_array($global)) - { - if ( ! in_array($global, $protected)) - { - global $$global; - $$global = NULL; - } - } - else - { - foreach ($global as $key => $val) - { - if ( ! in_array($key, $protected)) - { - global $$key; - $$key = NULL; - } - } - } - } - - // Is $_GET data allowed? If not we'll set the $_GET to an empty array - if ($this->_allow_get_array == FALSE) - { - $_GET = array(); - } - else - { - if (is_array($_GET) AND count($_GET) > 0) - { - foreach ($_GET as $key => $val) - { - $_GET[$this->_clean_input_keys($key)] = $this->_clean_input_data($val); - } - } - } - - // Clean $_POST Data - if (is_array($_POST) AND count($_POST) > 0) - { - foreach ($_POST as $key => $val) - { - $_POST[$this->_clean_input_keys($key)] = $this->_clean_input_data($val); - } - } - - // Clean $_COOKIE Data - if (is_array($_COOKIE) AND count($_COOKIE) > 0) - { - // Also get rid of specially treated cookies that might be set by a server - // or silly application, that are of no use to a CI application anyway - // but that when present will trip our 'Disallowed Key Characters' alarm - // http://www.ietf.org/rfc/rfc2109.txt - // note that the key names below are single quoted strings, and are not PHP variables - unset($_COOKIE['$Version']); - unset($_COOKIE['$Path']); - unset($_COOKIE['$Domain']); - - foreach ($_COOKIE as $key => $val) - { - $_COOKIE[$this->_clean_input_keys($key)] = $this->_clean_input_data($val); - } - } - - // Sanitize PHP_SELF - $_SERVER['PHP_SELF'] = strip_tags($_SERVER['PHP_SELF']); - - - // CSRF Protection check - if ($this->_enable_csrf == TRUE) - { - $this->security->csrf_verify(); - } - - log_message('debug', "Global POST and COOKIE data sanitized"); - } - - // -------------------------------------------------------------------- - - /** - * Clean Input Data - * - * This is a helper function. It escapes data and - * standardizes newline characters to \n - * - * @access private - * @param string - * @return string - */ - function _clean_input_data($str) - { - if (is_array($str)) - { - $new_array = array(); - foreach ($str as $key => $val) - { - $new_array[$this->_clean_input_keys($key)] = $this->_clean_input_data($val); - } - return $new_array; - } - - /* We strip slashes if magic quotes is on to keep things consistent - - NOTE: In PHP 5.4 get_magic_quotes_gpc() will always return 0 and - it will probably not exist in future versions at all. - */ - if ( ! is_php('5.4') && get_magic_quotes_gpc()) - { - $str = stripslashes($str); - } - - // Clean UTF-8 if supported - if (UTF8_ENABLED === TRUE) - { - $str = $this->uni->clean_string($str); - } - - // Remove control characters - $str = remove_invisible_characters($str); - - // Should we filter the input data? - if ($this->_enable_xss === TRUE) - { - $str = $this->security->xss_clean($str); - } - - // Standardize newlines if needed - if ($this->_standardize_newlines == TRUE) - { - if (strpos($str, "\r") !== FALSE) - { - $str = str_replace(array("\r\n", "\r", "\r\n\n"), PHP_EOL, $str); - } - } - - return $str; - } - - // -------------------------------------------------------------------- - - /** - * Clean Keys - * - * This is a helper function. To prevent malicious users - * from trying to exploit keys we make sure that keys are - * only named with alpha-numeric text and a few other items. - * - * @access private - * @param string - * @return string - */ - function _clean_input_keys($str) - { - if ( ! preg_match("/^[a-z0-9:_\/-]+$/i", $str)) - { - exit('Disallowed Key Characters.'); - } - - // Clean UTF-8 if supported - if (UTF8_ENABLED === TRUE) - { - $str = $this->uni->clean_string($str); - } - - return $str; - } - - // -------------------------------------------------------------------- - - /** - * Request Headers - * - * In Apache, you can simply call apache_request_headers(), however for - * people running other webservers the function is undefined. - * - * @param bool XSS cleaning - * - * @return array - */ - public function request_headers($xss_clean = FALSE) - { - // Look at Apache go! - if (function_exists('apache_request_headers')) - { - $headers = apache_request_headers(); - } - else - { - $headers['Content-Type'] = (isset($_SERVER['CONTENT_TYPE'])) ? $_SERVER['CONTENT_TYPE'] : @getenv('CONTENT_TYPE'); - - foreach ($_SERVER as $key => $val) - { - if (strncmp($key, 'HTTP_', 5) === 0) - { - $headers[substr($key, 5)] = $this->_fetch_from_array($_SERVER, $key, $xss_clean); - } - } - } - - // take SOME_HEADER and turn it into Some-Header - foreach ($headers as $key => $val) - { - $key = str_replace('_', ' ', strtolower($key)); - $key = str_replace(' ', '-', ucwords($key)); - - $this->headers[$key] = $val; - } - - return $this->headers; - } - - // -------------------------------------------------------------------- - - /** - * Get Request Header - * - * Returns the value of a single member of the headers class member - * - * @param string array key for $this->headers - * @param boolean XSS Clean or not - * @return mixed FALSE on failure, string on success - */ - public function get_request_header($index, $xss_clean = FALSE) - { - if (empty($this->headers)) - { - $this->request_headers(); - } - - if ( ! isset($this->headers[$index])) - { - return FALSE; - } - - if ($xss_clean === TRUE) - { - return $this->security->xss_clean($this->headers[$index]); - } - - return $this->headers[$index]; - } - - // -------------------------------------------------------------------- - - /** - * Is ajax Request? - * - * Test to see if a request contains the HTTP_X_REQUESTED_WITH header - * - * @return boolean - */ - public function is_ajax_request() - { - return ($this->server('HTTP_X_REQUESTED_WITH') === 'XMLHttpRequest'); - } - - // -------------------------------------------------------------------- - - /** - * Is cli Request? - * - * Test to see if a request was made from the command line - * - * @return boolean - */ - public function is_cli_request() - { - return (php_sapi_name() == 'cli') or defined('STDIN'); - } - -} - -/* End of file Input.php */ -/* Location: ./system/core/Input.php */ \ No newline at end of file diff --git a/sources/web/system/core/Lang.php b/sources/web/system/core/Lang.php deleted file mode 100755 index 5ac6718..0000000 --- a/sources/web/system/core/Lang.php +++ /dev/null @@ -1,160 +0,0 @@ -is_loaded, TRUE)) - { - return; - } - - $config =& get_config(); - - if ($idiom == '') - { - $deft_lang = ( ! isset($config['language'])) ? 'english' : $config['language']; - $idiom = ($deft_lang == '') ? 'english' : $deft_lang; - } - - // Determine where the language file is and load it - if ($alt_path != '' && file_exists($alt_path.'language/'.$idiom.'/'.$langfile)) - { - include($alt_path.'language/'.$idiom.'/'.$langfile); - } - else - { - $found = FALSE; - - foreach (get_instance()->load->get_package_paths(TRUE) as $package_path) - { - if (file_exists($package_path.'language/'.$idiom.'/'.$langfile)) - { - include($package_path.'language/'.$idiom.'/'.$langfile); - $found = TRUE; - break; - } - } - - if ($found !== TRUE) - { - show_error('Unable to load the requested language file: language/'.$idiom.'/'.$langfile); - } - } - - - if ( ! isset($lang)) - { - log_message('error', 'Language file contains no data: language/'.$idiom.'/'.$langfile); - return; - } - - if ($return == TRUE) - { - return $lang; - } - - $this->is_loaded[] = $langfile; - $this->language = array_merge($this->language, $lang); - unset($lang); - - log_message('debug', 'Language file loaded: language/'.$idiom.'/'.$langfile); - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Fetch a single line of text from the language array - * - * @access public - * @param string $line the language line - * @return string - */ - function line($line = '') - { - $value = ($line == '' OR ! isset($this->language[$line])) ? FALSE : $this->language[$line]; - - // Because killer robots like unicorns! - if ($value === FALSE) - { - log_message('error', 'Could not find the language line "'.$line.'"'); - } - - return $value; - } - -} -// END Language Class - -/* End of file Lang.php */ -/* Location: ./system/core/Lang.php */ diff --git a/sources/web/system/core/Loader.php b/sources/web/system/core/Loader.php deleted file mode 100644 index 6b7ee0c..0000000 --- a/sources/web/system/core/Loader.php +++ /dev/null @@ -1,1248 +0,0 @@ - 'unit', - 'user_agent' => 'agent'); - - /** - * Constructor - * - * Sets the path to the view files and gets the initial output buffering level - */ - public function __construct() - { - $this->_ci_ob_level = ob_get_level(); - $this->_ci_library_paths = array(APPPATH, BASEPATH); - $this->_ci_helper_paths = array(APPPATH, BASEPATH); - $this->_ci_model_paths = array(APPPATH); - $this->_ci_view_paths = array(APPPATH.'views/' => TRUE); - - log_message('debug', "Loader Class Initialized"); - } - - // -------------------------------------------------------------------- - - /** - * Initialize the Loader - * - * This method is called once in CI_Controller. - * - * @param array - * @return object - */ - public function initialize() - { - $this->_ci_classes = array(); - $this->_ci_loaded_files = array(); - $this->_ci_models = array(); - $this->_base_classes =& is_loaded(); - - $this->_ci_autoloader(); - - return $this; - } - - // -------------------------------------------------------------------- - - /** - * Is Loaded - * - * A utility function to test if a class is in the self::$_ci_classes array. - * This function returns the object name if the class tested for is loaded, - * and returns FALSE if it isn't. - * - * It is mainly used in the form_helper -> _get_validation_object() - * - * @param string class being checked for - * @return mixed class object name on the CI SuperObject or FALSE - */ - public function is_loaded($class) - { - if (isset($this->_ci_classes[$class])) - { - return $this->_ci_classes[$class]; - } - - return FALSE; - } - - // -------------------------------------------------------------------- - - /** - * Class Loader - * - * This function lets users load and instantiate classes. - * It is designed to be called from a user's app controllers. - * - * @param string the name of the class - * @param mixed the optional parameters - * @param string an optional object name - * @return void - */ - public function library($library = '', $params = NULL, $object_name = NULL) - { - if (is_array($library)) - { - foreach ($library as $class) - { - $this->library($class, $params); - } - - return; - } - - if ($library == '' OR isset($this->_base_classes[$library])) - { - return FALSE; - } - - if ( ! is_null($params) && ! is_array($params)) - { - $params = NULL; - } - - $this->_ci_load_class($library, $params, $object_name); - } - - // -------------------------------------------------------------------- - - /** - * Model Loader - * - * This function lets users load and instantiate models. - * - * @param string the name of the class - * @param string name for the model - * @param bool database connection - * @return void - */ - public function model($model, $name = '', $db_conn = FALSE) - { - if (is_array($model)) - { - foreach ($model as $babe) - { - $this->model($babe); - } - return; - } - - if ($model == '') - { - return; - } - - $path = ''; - - // Is the model in a sub-folder? If so, parse out the filename and path. - if (($last_slash = strrpos($model, '/')) !== FALSE) - { - // The path is in front of the last slash - $path = substr($model, 0, $last_slash + 1); - - // And the model name behind it - $model = substr($model, $last_slash + 1); - } - - if ($name == '') - { - $name = $model; - } - - if (in_array($name, $this->_ci_models, TRUE)) - { - return; - } - - $CI =& get_instance(); - if (isset($CI->$name)) - { - show_error('The model name you are loading is the name of a resource that is already being used: '.$name); - } - - $model = strtolower($model); - - foreach ($this->_ci_model_paths as $mod_path) - { - if ( ! file_exists($mod_path.'models/'.$path.$model.'.php')) - { - continue; - } - - if ($db_conn !== FALSE AND ! class_exists('CI_DB')) - { - if ($db_conn === TRUE) - { - $db_conn = ''; - } - - $CI->load->database($db_conn, FALSE, TRUE); - } - - if ( ! class_exists('CI_Model')) - { - load_class('Model', 'core'); - } - - require_once($mod_path.'models/'.$path.$model.'.php'); - - $model = ucfirst($model); - - $CI->$name = new $model(); - - $this->_ci_models[] = $name; - return; - } - - // couldn't find the model - show_error('Unable to locate the model you have specified: '.$model); - } - - // -------------------------------------------------------------------- - - /** - * Database Loader - * - * @param string the DB credentials - * @param bool whether to return the DB object - * @param bool whether to enable active record (this allows us to override the config setting) - * @return object - */ - public function database($params = '', $return = FALSE, $active_record = NULL) - { - // Grab the super object - $CI =& get_instance(); - - // Do we even need to load the database class? - if (class_exists('CI_DB') AND $return == FALSE AND $active_record == NULL AND isset($CI->db) AND is_object($CI->db)) - { - return FALSE; - } - - require_once(BASEPATH.'database/DB.php'); - - if ($return === TRUE) - { - return DB($params, $active_record); - } - - // Initialize the db variable. Needed to prevent - // reference errors with some configurations - $CI->db = ''; - - // Load the DB class - $CI->db =& DB($params, $active_record); - } - - // -------------------------------------------------------------------- - - /** - * Load the Utilities Class - * - * @return string - */ - public function dbutil() - { - if ( ! class_exists('CI_DB')) - { - $this->database(); - } - - $CI =& get_instance(); - - // for backwards compatibility, load dbforge so we can extend dbutils off it - // this use is deprecated and strongly discouraged - $CI->load->dbforge(); - - require_once(BASEPATH.'database/DB_utility.php'); - require_once(BASEPATH.'database/drivers/'.$CI->db->dbdriver.'/'.$CI->db->dbdriver.'_utility.php'); - $class = 'CI_DB_'.$CI->db->dbdriver.'_utility'; - - $CI->dbutil = new $class(); - } - - // -------------------------------------------------------------------- - - /** - * Load the Database Forge Class - * - * @return string - */ - public function dbforge() - { - if ( ! class_exists('CI_DB')) - { - $this->database(); - } - - $CI =& get_instance(); - - require_once(BASEPATH.'database/DB_forge.php'); - require_once(BASEPATH.'database/drivers/'.$CI->db->dbdriver.'/'.$CI->db->dbdriver.'_forge.php'); - $class = 'CI_DB_'.$CI->db->dbdriver.'_forge'; - - $CI->dbforge = new $class(); - } - - // -------------------------------------------------------------------- - - /** - * Load View - * - * This function is used to load a "view" file. It has three parameters: - * - * 1. The name of the "view" file to be included. - * 2. An associative array of data to be extracted for use in the view. - * 3. TRUE/FALSE - whether to return the data or load it. In - * some cases it's advantageous to be able to return data so that - * a developer can process it in some way. - * - * @param string - * @param array - * @param bool - * @return void - */ - public function view($view, $vars = array(), $return = FALSE) - { - return $this->_ci_load(array('_ci_view' => $view, '_ci_vars' => $this->_ci_object_to_array($vars), '_ci_return' => $return)); - } - - // -------------------------------------------------------------------- - - /** - * Load File - * - * This is a generic file loader - * - * @param string - * @param bool - * @return string - */ - public function file($path, $return = FALSE) - { - return $this->_ci_load(array('_ci_path' => $path, '_ci_return' => $return)); - } - - // -------------------------------------------------------------------- - - /** - * Set Variables - * - * Once variables are set they become available within - * the controller class and its "view" files. - * - * @param array - * @param string - * @return void - */ - public function vars($vars = array(), $val = '') - { - if ($val != '' AND is_string($vars)) - { - $vars = array($vars => $val); - } - - $vars = $this->_ci_object_to_array($vars); - - if (is_array($vars) AND count($vars) > 0) - { - foreach ($vars as $key => $val) - { - $this->_ci_cached_vars[$key] = $val; - } - } - } - - // -------------------------------------------------------------------- - - /** - * Get Variable - * - * Check if a variable is set and retrieve it. - * - * @param array - * @return void - */ - public function get_var($key) - { - return isset($this->_ci_cached_vars[$key]) ? $this->_ci_cached_vars[$key] : NULL; - } - - // -------------------------------------------------------------------- - - /** - * Load Helper - * - * This function loads the specified helper file. - * - * @param mixed - * @return void - */ - public function helper($helpers = array()) - { - foreach ($this->_ci_prep_filename($helpers, '_helper') as $helper) - { - if (isset($this->_ci_helpers[$helper])) - { - continue; - } - - $ext_helper = APPPATH.'helpers/'.config_item('subclass_prefix').$helper.'.php'; - - // Is this a helper extension request? - if (file_exists($ext_helper)) - { - $base_helper = BASEPATH.'helpers/'.$helper.'.php'; - - if ( ! file_exists($base_helper)) - { - show_error('Unable to load the requested file: helpers/'.$helper.'.php'); - } - - include_once($ext_helper); - include_once($base_helper); - - $this->_ci_helpers[$helper] = TRUE; - log_message('debug', 'Helper loaded: '.$helper); - continue; - } - - // Try to load the helper - foreach ($this->_ci_helper_paths as $path) - { - if (file_exists($path.'helpers/'.$helper.'.php')) - { - include_once($path.'helpers/'.$helper.'.php'); - - $this->_ci_helpers[$helper] = TRUE; - log_message('debug', 'Helper loaded: '.$helper); - break; - } - } - - // unable to load the helper - if ( ! isset($this->_ci_helpers[$helper])) - { - show_error('Unable to load the requested file: helpers/'.$helper.'.php'); - } - } - } - - // -------------------------------------------------------------------- - - /** - * Load Helpers - * - * This is simply an alias to the above function in case the - * user has written the plural form of this function. - * - * @param array - * @return void - */ - public function helpers($helpers = array()) - { - $this->helper($helpers); - } - - // -------------------------------------------------------------------- - - /** - * Loads a language file - * - * @param array - * @param string - * @return void - */ - public function language($file = array(), $lang = '') - { - $CI =& get_instance(); - - if ( ! is_array($file)) - { - $file = array($file); - } - - foreach ($file as $langfile) - { - $CI->lang->load($langfile, $lang); - } - } - - // -------------------------------------------------------------------- - - /** - * Loads a config file - * - * @param string - * @param bool - * @param bool - * @return void - */ - public function config($file = '', $use_sections = FALSE, $fail_gracefully = FALSE) - { - $CI =& get_instance(); - $CI->config->load($file, $use_sections, $fail_gracefully); - } - - // -------------------------------------------------------------------- - - /** - * Driver - * - * Loads a driver library - * - * @param string the name of the class - * @param mixed the optional parameters - * @param string an optional object name - * @return void - */ - public function driver($library = '', $params = NULL, $object_name = NULL) - { - if ( ! class_exists('CI_Driver_Library')) - { - // we aren't instantiating an object here, that'll be done by the Library itself - require BASEPATH.'libraries/Driver.php'; - } - - if ($library == '') - { - return FALSE; - } - - // We can save the loader some time since Drivers will *always* be in a subfolder, - // and typically identically named to the library - if ( ! strpos($library, '/')) - { - $library = ucfirst($library).'/'.$library; - } - - return $this->library($library, $params, $object_name); - } - - // -------------------------------------------------------------------- - - /** - * Add Package Path - * - * Prepends a parent path to the library, model, helper, and config path arrays - * - * @param string - * @param boolean - * @return void - */ - public function add_package_path($path, $view_cascade=TRUE) - { - $path = rtrim($path, '/').'/'; - - array_unshift($this->_ci_library_paths, $path); - array_unshift($this->_ci_model_paths, $path); - array_unshift($this->_ci_helper_paths, $path); - - $this->_ci_view_paths = array($path.'views/' => $view_cascade) + $this->_ci_view_paths; - - // Add config file path - $config =& $this->_ci_get_component('config'); - array_unshift($config->_config_paths, $path); - } - - // -------------------------------------------------------------------- - - /** - * Get Package Paths - * - * Return a list of all package paths, by default it will ignore BASEPATH. - * - * @param string - * @return void - */ - public function get_package_paths($include_base = FALSE) - { - return $include_base === TRUE ? $this->_ci_library_paths : $this->_ci_model_paths; - } - - // -------------------------------------------------------------------- - - /** - * Remove Package Path - * - * Remove a path from the library, model, and helper path arrays if it exists - * If no path is provided, the most recently added path is removed. - * - * @param type - * @param bool - * @return type - */ - public function remove_package_path($path = '', $remove_config_path = TRUE) - { - $config =& $this->_ci_get_component('config'); - - if ($path == '') - { - $void = array_shift($this->_ci_library_paths); - $void = array_shift($this->_ci_model_paths); - $void = array_shift($this->_ci_helper_paths); - $void = array_shift($this->_ci_view_paths); - $void = array_shift($config->_config_paths); - } - else - { - $path = rtrim($path, '/').'/'; - foreach (array('_ci_library_paths', '_ci_model_paths', '_ci_helper_paths') as $var) - { - if (($key = array_search($path, $this->{$var})) !== FALSE) - { - unset($this->{$var}[$key]); - } - } - - if (isset($this->_ci_view_paths[$path.'views/'])) - { - unset($this->_ci_view_paths[$path.'views/']); - } - - if (($key = array_search($path, $config->_config_paths)) !== FALSE) - { - unset($config->_config_paths[$key]); - } - } - - // make sure the application default paths are still in the array - $this->_ci_library_paths = array_unique(array_merge($this->_ci_library_paths, array(APPPATH, BASEPATH))); - $this->_ci_helper_paths = array_unique(array_merge($this->_ci_helper_paths, array(APPPATH, BASEPATH))); - $this->_ci_model_paths = array_unique(array_merge($this->_ci_model_paths, array(APPPATH))); - $this->_ci_view_paths = array_merge($this->_ci_view_paths, array(APPPATH.'views/' => TRUE)); - $config->_config_paths = array_unique(array_merge($config->_config_paths, array(APPPATH))); - } - - // -------------------------------------------------------------------- - - /** - * Loader - * - * This function is used to load views and files. - * Variables are prefixed with _ci_ to avoid symbol collision with - * variables made available to view files - * - * @param array - * @return void - */ - protected function _ci_load($_ci_data) - { - // Set the default data variables - foreach (array('_ci_view', '_ci_vars', '_ci_path', '_ci_return') as $_ci_val) - { - $$_ci_val = ( ! isset($_ci_data[$_ci_val])) ? FALSE : $_ci_data[$_ci_val]; - } - - $file_exists = FALSE; - - // Set the path to the requested file - if ($_ci_path != '') - { - $_ci_x = explode('/', $_ci_path); - $_ci_file = end($_ci_x); - } - else - { - $_ci_ext = pathinfo($_ci_view, PATHINFO_EXTENSION); - $_ci_file = ($_ci_ext == '') ? $_ci_view.'.php' : $_ci_view; - - foreach ($this->_ci_view_paths as $view_file => $cascade) - { - if (file_exists($view_file.$_ci_file)) - { - $_ci_path = $view_file.$_ci_file; - $file_exists = TRUE; - break; - } - - if ( ! $cascade) - { - break; - } - } - } - - if ( ! $file_exists && ! file_exists($_ci_path)) - { - show_error('Unable to load the requested file: '.$_ci_file); - } - - // This allows anything loaded using $this->load (views, files, etc.) - // to become accessible from within the Controller and Model functions. - - $_ci_CI =& get_instance(); - foreach (get_object_vars($_ci_CI) as $_ci_key => $_ci_var) - { - if ( ! isset($this->$_ci_key)) - { - $this->$_ci_key =& $_ci_CI->$_ci_key; - } - } - - /* - * Extract and cache variables - * - * You can either set variables using the dedicated $this->load_vars() - * function or via the second parameter of this function. We'll merge - * the two types and cache them so that views that are embedded within - * other views can have access to these variables. - */ - if (is_array($_ci_vars)) - { - $this->_ci_cached_vars = array_merge($this->_ci_cached_vars, $_ci_vars); - } - extract($this->_ci_cached_vars); - - /* - * Buffer the output - * - * We buffer the output for two reasons: - * 1. Speed. You get a significant speed boost. - * 2. So that the final rendered template can be - * post-processed by the output class. Why do we - * need post processing? For one thing, in order to - * show the elapsed page load time. Unless we - * can intercept the content right before it's sent to - * the browser and then stop the timer it won't be accurate. - */ - ob_start(); - - // If the PHP installation does not support short tags we'll - // do a little string replacement, changing the short tags - // to standard PHP echo statements. - - if ((bool) @ini_get('short_open_tag') === FALSE AND config_item('rewrite_short_tags') == TRUE) - { - echo eval('?>'.preg_replace("/;*\s*\?>/", "; ?>", str_replace(' $this->_ci_ob_level + 1) - { - ob_end_flush(); - } - else - { - $_ci_CI->output->append_output(ob_get_contents()); - @ob_end_clean(); - } - } - - // -------------------------------------------------------------------- - - /** - * Load class - * - * This function loads the requested class. - * - * @param string the item that is being loaded - * @param mixed any additional parameters - * @param string an optional object name - * @return void - */ - protected function _ci_load_class($class, $params = NULL, $object_name = NULL) - { - // Get the class name, and while we're at it trim any slashes. - // The directory path can be included as part of the class name, - // but we don't want a leading slash - $class = str_replace('.php', '', trim($class, '/')); - - // Was the path included with the class name? - // We look for a slash to determine this - $subdir = ''; - if (($last_slash = strrpos($class, '/')) !== FALSE) - { - // Extract the path - $subdir = substr($class, 0, $last_slash + 1); - - // Get the filename from the path - $class = substr($class, $last_slash + 1); - } - - // We'll test for both lowercase and capitalized versions of the file name - foreach (array(ucfirst($class), strtolower($class)) as $class) - { - $subclass = APPPATH.'libraries/'.$subdir.config_item('subclass_prefix').$class.'.php'; - - // Is this a class extension request? - if (file_exists($subclass)) - { - $baseclass = BASEPATH.'libraries/'.ucfirst($class).'.php'; - - if ( ! file_exists($baseclass)) - { - log_message('error', "Unable to load the requested class: ".$class); - show_error("Unable to load the requested class: ".$class); - } - - // Safety: Was the class already loaded by a previous call? - if (in_array($subclass, $this->_ci_loaded_files)) - { - // Before we deem this to be a duplicate request, let's see - // if a custom object name is being supplied. If so, we'll - // return a new instance of the object - if ( ! is_null($object_name)) - { - $CI =& get_instance(); - if ( ! isset($CI->$object_name)) - { - return $this->_ci_init_class($class, config_item('subclass_prefix'), $params, $object_name); - } - } - - $is_duplicate = TRUE; - log_message('debug', $class." class already loaded. Second attempt ignored."); - return; - } - - include_once($baseclass); - include_once($subclass); - $this->_ci_loaded_files[] = $subclass; - - return $this->_ci_init_class($class, config_item('subclass_prefix'), $params, $object_name); - } - - // Lets search for the requested library file and load it. - $is_duplicate = FALSE; - foreach ($this->_ci_library_paths as $path) - { - $filepath = $path.'libraries/'.$subdir.$class.'.php'; - - // Does the file exist? No? Bummer... - if ( ! file_exists($filepath)) - { - continue; - } - - // Safety: Was the class already loaded by a previous call? - if (in_array($filepath, $this->_ci_loaded_files)) - { - // Before we deem this to be a duplicate request, let's see - // if a custom object name is being supplied. If so, we'll - // return a new instance of the object - if ( ! is_null($object_name)) - { - $CI =& get_instance(); - if ( ! isset($CI->$object_name)) - { - return $this->_ci_init_class($class, '', $params, $object_name); - } - } - - $is_duplicate = TRUE; - log_message('debug', $class." class already loaded. Second attempt ignored."); - return; - } - - include_once($filepath); - $this->_ci_loaded_files[] = $filepath; - return $this->_ci_init_class($class, '', $params, $object_name); - } - - } // END FOREACH - - // One last attempt. Maybe the library is in a subdirectory, but it wasn't specified? - if ($subdir == '') - { - $path = strtolower($class).'/'.$class; - return $this->_ci_load_class($path, $params); - } - - // If we got this far we were unable to find the requested class. - // We do not issue errors if the load call failed due to a duplicate request - if ($is_duplicate == FALSE) - { - log_message('error', "Unable to load the requested class: ".$class); - show_error("Unable to load the requested class: ".$class); - } - } - - // -------------------------------------------------------------------- - - /** - * Instantiates a class - * - * @param string - * @param string - * @param bool - * @param string an optional object name - * @return null - */ - protected function _ci_init_class($class, $prefix = '', $config = FALSE, $object_name = NULL) - { - // Is there an associated config file for this class? Note: these should always be lowercase - if ($config === NULL) - { - // Fetch the config paths containing any package paths - $config_component = $this->_ci_get_component('config'); - - if (is_array($config_component->_config_paths)) - { - // Break on the first found file, thus package files - // are not overridden by default paths - foreach ($config_component->_config_paths as $path) - { - // We test for both uppercase and lowercase, for servers that - // are case-sensitive with regard to file names. Check for environment - // first, global next - if (defined('ENVIRONMENT') AND file_exists($path .'config/'.ENVIRONMENT.'/'.strtolower($class).'.php')) - { - include($path .'config/'.ENVIRONMENT.'/'.strtolower($class).'.php'); - break; - } - elseif (defined('ENVIRONMENT') AND file_exists($path .'config/'.ENVIRONMENT.'/'.ucfirst(strtolower($class)).'.php')) - { - include($path .'config/'.ENVIRONMENT.'/'.ucfirst(strtolower($class)).'.php'); - break; - } - elseif (file_exists($path .'config/'.strtolower($class).'.php')) - { - include($path .'config/'.strtolower($class).'.php'); - break; - } - elseif (file_exists($path .'config/'.ucfirst(strtolower($class)).'.php')) - { - include($path .'config/'.ucfirst(strtolower($class)).'.php'); - break; - } - } - } - } - - if ($prefix == '') - { - if (class_exists('CI_'.$class)) - { - $name = 'CI_'.$class; - } - elseif (class_exists(config_item('subclass_prefix').$class)) - { - $name = config_item('subclass_prefix').$class; - } - else - { - $name = $class; - } - } - else - { - $name = $prefix.$class; - } - - // Is the class name valid? - if ( ! class_exists($name)) - { - log_message('error', "Non-existent class: ".$name); - show_error("Non-existent class: ".$class); - } - - // Set the variable name we will assign the class to - // Was a custom class name supplied? If so we'll use it - $class = strtolower($class); - - if (is_null($object_name)) - { - $classvar = ( ! isset($this->_ci_varmap[$class])) ? $class : $this->_ci_varmap[$class]; - } - else - { - $classvar = $object_name; - } - - // Save the class name and object name - $this->_ci_classes[$class] = $classvar; - - // Instantiate the class - $CI =& get_instance(); - if ($config !== NULL) - { - $CI->$classvar = new $name($config); - } - else - { - $CI->$classvar = new $name; - } - } - - // -------------------------------------------------------------------- - - /** - * Autoloader - * - * The config/autoload.php file contains an array that permits sub-systems, - * libraries, and helpers to be loaded automatically. - * - * @param array - * @return void - */ - private function _ci_autoloader() - { - if (defined('ENVIRONMENT') AND file_exists(APPPATH.'config/'.ENVIRONMENT.'/autoload.php')) - { - include(APPPATH.'config/'.ENVIRONMENT.'/autoload.php'); - } - else - { - include(APPPATH.'config/autoload.php'); - } - - if ( ! isset($autoload)) - { - return FALSE; - } - - // Autoload packages - if (isset($autoload['packages'])) - { - foreach ($autoload['packages'] as $package_path) - { - $this->add_package_path($package_path); - } - } - - // Load any custom config file - if (count($autoload['config']) > 0) - { - $CI =& get_instance(); - foreach ($autoload['config'] as $key => $val) - { - $CI->config->load($val); - } - } - - // Autoload helpers and languages - foreach (array('helper', 'language') as $type) - { - if (isset($autoload[$type]) AND count($autoload[$type]) > 0) - { - $this->$type($autoload[$type]); - } - } - - // A little tweak to remain backward compatible - // The $autoload['core'] item was deprecated - if ( ! isset($autoload['libraries']) AND isset($autoload['core'])) - { - $autoload['libraries'] = $autoload['core']; - } - - // Load libraries - if (isset($autoload['libraries']) AND count($autoload['libraries']) > 0) - { - // Load the database driver. - if (in_array('database', $autoload['libraries'])) - { - $this->database(); - $autoload['libraries'] = array_diff($autoload['libraries'], array('database')); - } - - // Load all other libraries - foreach ($autoload['libraries'] as $item) - { - $this->library($item); - } - } - - // Autoload models - if (isset($autoload['model'])) - { - $this->model($autoload['model']); - } - } - - // -------------------------------------------------------------------- - - /** - * Object to Array - * - * Takes an object as input and converts the class variables to array key/vals - * - * @param object - * @return array - */ - protected function _ci_object_to_array($object) - { - return (is_object($object)) ? get_object_vars($object) : $object; - } - - // -------------------------------------------------------------------- - - /** - * Get a reference to a specific library or model - * - * @param string - * @return bool - */ - protected function &_ci_get_component($component) - { - $CI =& get_instance(); - return $CI->$component; - } - - // -------------------------------------------------------------------- - - /** - * Prep filename - * - * This function preps the name of various items to make loading them more reliable. - * - * @param mixed - * @param string - * @return array - */ - protected function _ci_prep_filename($filename, $extension) - { - if ( ! is_array($filename)) - { - return array(strtolower(str_replace('.php', '', str_replace($extension, '', $filename)).$extension)); - } - else - { - foreach ($filename as $key => $val) - { - $filename[$key] = strtolower(str_replace('.php', '', str_replace($extension, '', $val)).$extension); - } - - return $filename; - } - } -} - -/* End of file Loader.php */ -/* Location: ./system/core/Loader.php */ \ No newline at end of file diff --git a/sources/web/system/core/Model.php b/sources/web/system/core/Model.php deleted file mode 100755 index e15ffbe..0000000 --- a/sources/web/system/core/Model.php +++ /dev/null @@ -1,57 +0,0 @@ -$key; - } -} -// END Model Class - -/* End of file Model.php */ -/* Location: ./system/core/Model.php */ \ No newline at end of file diff --git a/sources/web/system/core/Output.php b/sources/web/system/core/Output.php deleted file mode 100755 index ccecafd..0000000 --- a/sources/web/system/core/Output.php +++ /dev/null @@ -1,574 +0,0 @@ -_zlib_oc = @ini_get('zlib.output_compression'); - - // Get mime types for later - if (defined('ENVIRONMENT') AND file_exists(APPPATH.'config/'.ENVIRONMENT.'/mimes.php')) - { - include APPPATH.'config/'.ENVIRONMENT.'/mimes.php'; - } - else - { - include APPPATH.'config/mimes.php'; - } - - - $this->mime_types = $mimes; - - log_message('debug', "Output Class Initialized"); - } - - // -------------------------------------------------------------------- - - /** - * Get Output - * - * Returns the current output string - * - * @access public - * @return string - */ - function get_output() - { - return $this->final_output; - } - - // -------------------------------------------------------------------- - - /** - * Set Output - * - * Sets the output string - * - * @access public - * @param string - * @return void - */ - function set_output($output) - { - $this->final_output = $output; - - return $this; - } - - // -------------------------------------------------------------------- - - /** - * Append Output - * - * Appends data onto the output string - * - * @access public - * @param string - * @return void - */ - function append_output($output) - { - if ($this->final_output == '') - { - $this->final_output = $output; - } - else - { - $this->final_output .= $output; - } - - return $this; - } - - // -------------------------------------------------------------------- - - /** - * Set Header - * - * Lets you set a server header which will be outputted with the final display. - * - * Note: If a file is cached, headers will not be sent. We need to figure out - * how to permit header data to be saved with the cache data... - * - * @access public - * @param string - * @param bool - * @return void - */ - function set_header($header, $replace = TRUE) - { - // If zlib.output_compression is enabled it will compress the output, - // but it will not modify the content-length header to compensate for - // the reduction, causing the browser to hang waiting for more data. - // We'll just skip content-length in those cases. - - if ($this->_zlib_oc && strncasecmp($header, 'content-length', 14) == 0) - { - return; - } - - $this->headers[] = array($header, $replace); - - return $this; - } - - // -------------------------------------------------------------------- - - /** - * Set Content Type Header - * - * @access public - * @param string extension of the file we're outputting - * @return void - */ - function set_content_type($mime_type) - { - if (strpos($mime_type, '/') === FALSE) - { - $extension = ltrim($mime_type, '.'); - - // Is this extension supported? - if (isset($this->mime_types[$extension])) - { - $mime_type =& $this->mime_types[$extension]; - - if (is_array($mime_type)) - { - $mime_type = current($mime_type); - } - } - } - - $header = 'Content-Type: '.$mime_type; - - $this->headers[] = array($header, TRUE); - - return $this; - } - - // -------------------------------------------------------------------- - - /** - * Set HTTP Status Header - * moved to Common procedural functions in 1.7.2 - * - * @access public - * @param int the status code - * @param string - * @return void - */ - function set_status_header($code = 200, $text = '') - { - set_status_header($code, $text); - - return $this; - } - - // -------------------------------------------------------------------- - - /** - * Enable/disable Profiler - * - * @access public - * @param bool - * @return void - */ - function enable_profiler($val = TRUE) - { - $this->enable_profiler = (is_bool($val)) ? $val : TRUE; - - return $this; - } - - // -------------------------------------------------------------------- - - /** - * Set Profiler Sections - * - * Allows override of default / config settings for Profiler section display - * - * @access public - * @param array - * @return void - */ - function set_profiler_sections($sections) - { - foreach ($sections as $section => $enable) - { - $this->_profiler_sections[$section] = ($enable !== FALSE) ? TRUE : FALSE; - } - - return $this; - } - - // -------------------------------------------------------------------- - - /** - * Set Cache - * - * @access public - * @param integer - * @return void - */ - function cache($time) - { - $this->cache_expiration = ( ! is_numeric($time)) ? 0 : $time; - - return $this; - } - - // -------------------------------------------------------------------- - - /** - * Display Output - * - * All "view" data is automatically put into this variable by the controller class: - * - * $this->final_output - * - * This function sends the finalized output data to the browser along - * with any server headers and profile data. It also stops the - * benchmark timer so the page rendering speed and memory usage can be shown. - * - * @access public - * @param string - * @return mixed - */ - function _display($output = '') - { - // Note: We use globals because we can't use $CI =& get_instance() - // since this function is sometimes called by the caching mechanism, - // which happens before the CI super object is available. - global $BM, $CFG; - - // Grab the super object if we can. - if (class_exists('CI_Controller')) - { - $CI =& get_instance(); - } - - // -------------------------------------------------------------------- - - // Set the output data - if ($output == '') - { - $output =& $this->final_output; - } - - // -------------------------------------------------------------------- - - // Do we need to write a cache file? Only if the controller does not have its - // own _output() method and we are not dealing with a cache file, which we - // can determine by the existence of the $CI object above - if ($this->cache_expiration > 0 && isset($CI) && ! method_exists($CI, '_output')) - { - $this->_write_cache($output); - } - - // -------------------------------------------------------------------- - - // Parse out the elapsed time and memory usage, - // then swap the pseudo-variables with the data - - $elapsed = $BM->elapsed_time('total_execution_time_start', 'total_execution_time_end'); - - if ($this->parse_exec_vars === TRUE) - { - $memory = ( ! function_exists('memory_get_usage')) ? '0' : round(memory_get_usage()/1024/1024, 2).'MB'; - - $output = str_replace('{elapsed_time}', $elapsed, $output); - $output = str_replace('{memory_usage}', $memory, $output); - } - - // -------------------------------------------------------------------- - - // Is compression requested? - if ($CFG->item('compress_output') === TRUE && $this->_zlib_oc == FALSE) - { - if (extension_loaded('zlib')) - { - if (isset($_SERVER['HTTP_ACCEPT_ENCODING']) AND strpos($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip') !== FALSE) - { - ob_start('ob_gzhandler'); - } - } - } - - // -------------------------------------------------------------------- - - // Are there any server headers to send? - if (count($this->headers) > 0) - { - foreach ($this->headers as $header) - { - @header($header[0], $header[1]); - } - } - - // -------------------------------------------------------------------- - - // Does the $CI object exist? - // If not we know we are dealing with a cache file so we'll - // simply echo out the data and exit. - if ( ! isset($CI)) - { - echo $output; - log_message('debug', "Final output sent to browser"); - log_message('debug', "Total execution time: ".$elapsed); - return TRUE; - } - - // -------------------------------------------------------------------- - - // Do we need to generate profile data? - // If so, load the Profile class and run it. - if ($this->enable_profiler == TRUE) - { - $CI->load->library('profiler'); - - if ( ! empty($this->_profiler_sections)) - { - $CI->profiler->set_sections($this->_profiler_sections); - } - - // If the output data contains closing and tags - // we will remove them and add them back after we insert the profile data - if (preg_match("|.*?|is", $output)) - { - $output = preg_replace("|.*?|is", '', $output); - $output .= $CI->profiler->run(); - $output .= ''; - } - else - { - $output .= $CI->profiler->run(); - } - } - - // -------------------------------------------------------------------- - - // Does the controller contain a function named _output()? - // If so send the output there. Otherwise, echo it. - if (method_exists($CI, '_output')) - { - $CI->_output($output); - } - else - { - echo $output; // Send it to the browser! - } - - log_message('debug', "Final output sent to browser"); - log_message('debug', "Total execution time: ".$elapsed); - } - - // -------------------------------------------------------------------- - - /** - * Write a Cache File - * - * @access public - * @param string - * @return void - */ - function _write_cache($output) - { - $CI =& get_instance(); - $path = $CI->config->item('cache_path'); - - $cache_path = ($path == '') ? APPPATH.'cache/' : $path; - - if ( ! is_dir($cache_path) OR ! is_really_writable($cache_path)) - { - log_message('error', "Unable to write cache file: ".$cache_path); - return; - } - - $uri = $CI->config->item('base_url'). - $CI->config->item('index_page'). - $CI->uri->uri_string(); - - $cache_path .= md5($uri); - - if ( ! $fp = @fopen($cache_path, FOPEN_WRITE_CREATE_DESTRUCTIVE)) - { - log_message('error', "Unable to write cache file: ".$cache_path); - return; - } - - $expire = time() + ($this->cache_expiration * 60); - - if (flock($fp, LOCK_EX)) - { - fwrite($fp, $expire.'TS--->'.$output); - flock($fp, LOCK_UN); - } - else - { - log_message('error', "Unable to secure a file lock for file at: ".$cache_path); - return; - } - fclose($fp); - @chmod($cache_path, FILE_WRITE_MODE); - - log_message('debug', "Cache file written: ".$cache_path); - } - - // -------------------------------------------------------------------- - - /** - * Update/serve a cached file - * - * @access public - * @param object config class - * @param object uri class - * @return void - */ - function _display_cache(&$CFG, &$URI) - { - $cache_path = ($CFG->item('cache_path') == '') ? APPPATH.'cache/' : $CFG->item('cache_path'); - - // Build the file path. The file name is an MD5 hash of the full URI - $uri = $CFG->item('base_url'). - $CFG->item('index_page'). - $URI->uri_string; - - $filepath = $cache_path.md5($uri); - - if ( ! @file_exists($filepath)) - { - return FALSE; - } - - if ( ! $fp = @fopen($filepath, FOPEN_READ)) - { - return FALSE; - } - - flock($fp, LOCK_SH); - - $cache = ''; - if (filesize($filepath) > 0) - { - $cache = fread($fp, filesize($filepath)); - } - - flock($fp, LOCK_UN); - fclose($fp); - - // Strip out the embedded timestamp - if ( ! preg_match("/(\d+TS--->)/", $cache, $match)) - { - return FALSE; - } - - // Has the file expired? If so we'll delete it. - if (time() >= trim(str_replace('TS--->', '', $match['1']))) - { - if (is_really_writable($cache_path)) - { - @unlink($filepath); - log_message('debug', "Cache file has expired. File deleted"); - return FALSE; - } - } - - // Display the cache - $this->_display(str_replace($match['0'], '', $cache)); - log_message('debug', "Cache file is current. Sending it to browser."); - return TRUE; - } - - -} -// END Output Class - -/* End of file Output.php */ -/* Location: ./system/core/Output.php */ \ No newline at end of file diff --git a/sources/web/system/core/Router.php b/sources/web/system/core/Router.php deleted file mode 100755 index 6da6674..0000000 --- a/sources/web/system/core/Router.php +++ /dev/null @@ -1,522 +0,0 @@ -config =& load_class('Config', 'core'); - $this->uri =& load_class('URI', 'core'); - log_message('debug', "Router Class Initialized"); - } - - // -------------------------------------------------------------------- - - /** - * Set the route mapping - * - * This function determines what should be served based on the URI request, - * as well as any "routes" that have been set in the routing config file. - * - * @access private - * @return void - */ - function _set_routing() - { - // Are query strings enabled in the config file? Normally CI doesn't utilize query strings - // since URI segments are more search-engine friendly, but they can optionally be used. - // If this feature is enabled, we will gather the directory/class/method a little differently - $segments = array(); - if ($this->config->item('enable_query_strings') === TRUE AND isset($_GET[$this->config->item('controller_trigger')])) - { - if (isset($_GET[$this->config->item('directory_trigger')])) - { - $this->set_directory(trim($this->uri->_filter_uri($_GET[$this->config->item('directory_trigger')]))); - $segments[] = $this->fetch_directory(); - } - - if (isset($_GET[$this->config->item('controller_trigger')])) - { - $this->set_class(trim($this->uri->_filter_uri($_GET[$this->config->item('controller_trigger')]))); - $segments[] = $this->fetch_class(); - } - - if (isset($_GET[$this->config->item('function_trigger')])) - { - $this->set_method(trim($this->uri->_filter_uri($_GET[$this->config->item('function_trigger')]))); - $segments[] = $this->fetch_method(); - } - } - - // Load the routes.php file. - if (defined('ENVIRONMENT') AND is_file(APPPATH.'config/'.ENVIRONMENT.'/routes.php')) - { - include(APPPATH.'config/'.ENVIRONMENT.'/routes.php'); - } - elseif (is_file(APPPATH.'config/routes.php')) - { - include(APPPATH.'config/routes.php'); - } - - $this->routes = ( ! isset($route) OR ! is_array($route)) ? array() : $route; - unset($route); - - // Set the default controller so we can display it in the event - // the URI doesn't correlated to a valid controller. - $this->default_controller = ( ! isset($this->routes['default_controller']) OR $this->routes['default_controller'] == '') ? FALSE : strtolower($this->routes['default_controller']); - - // Were there any query string segments? If so, we'll validate them and bail out since we're done. - if (count($segments) > 0) - { - return $this->_validate_request($segments); - } - - // Fetch the complete URI string - $this->uri->_fetch_uri_string(); - - // Is there a URI string? If not, the default controller specified in the "routes" file will be shown. - if ($this->uri->uri_string == '') - { - return $this->_set_default_controller(); - } - - // Do we need to remove the URL suffix? - $this->uri->_remove_url_suffix(); - - // Compile the segments into an array - $this->uri->_explode_segments(); - - // Parse any custom routing that may exist - $this->_parse_routes(); - - // Re-index the segment array so that it starts with 1 rather than 0 - $this->uri->_reindex_segments(); - } - - // -------------------------------------------------------------------- - - /** - * Set the default controller - * - * @access private - * @return void - */ - function _set_default_controller() - { - if ($this->default_controller === FALSE) - { - show_error("Unable to determine what should be displayed. A default route has not been specified in the routing file."); - } - // Is the method being specified? - if (strpos($this->default_controller, '/') !== FALSE) - { - $x = explode('/', $this->default_controller); - - $this->set_class($x[0]); - $this->set_method($x[1]); - $this->_set_request($x); - } - else - { - $this->set_class($this->default_controller); - $this->set_method('index'); - $this->_set_request(array($this->default_controller, 'index')); - } - - // re-index the routed segments array so it starts with 1 rather than 0 - $this->uri->_reindex_segments(); - - log_message('debug', "No URI present. Default controller set."); - } - - // -------------------------------------------------------------------- - - /** - * Set the Route - * - * This function takes an array of URI segments as - * input, and sets the current class/method - * - * @access private - * @param array - * @param bool - * @return void - */ - function _set_request($segments = array()) - { - $segments = $this->_validate_request($segments); - - if (count($segments) == 0) - { - return $this->_set_default_controller(); - } - - $this->set_class($segments[0]); - - if (isset($segments[1])) - { - // A standard method request - $this->set_method($segments[1]); - } - else - { - // This lets the "routed" segment array identify that the default - // index method is being used. - $segments[1] = 'index'; - } - - // Update our "routed" segment array to contain the segments. - // Note: If there is no custom routing, this array will be - // identical to $this->uri->segments - $this->uri->rsegments = $segments; - } - - // -------------------------------------------------------------------- - - /** - * Validates the supplied segments. Attempts to determine the path to - * the controller. - * - * @access private - * @param array - * @return array - */ - function _validate_request($segments) - { - if (count($segments) == 0) - { - return $segments; - } - - // Does the requested controller exist in the root folder? - if (file_exists(APPPATH.'controllers/'.$segments[0].'.php')) - { - return $segments; - } - - // Is the controller in a sub-folder? - if (is_dir(APPPATH.'controllers/'.$segments[0])) - { - // Set the directory and remove it from the segment array - $this->set_directory($segments[0]); - $segments = array_slice($segments, 1); - - if (count($segments) > 0) - { - // Does the requested controller exist in the sub-folder? - if ( ! file_exists(APPPATH.'controllers/'.$this->fetch_directory().$segments[0].'.php')) - { - if ( ! empty($this->routes['404_override'])) - { - $x = explode('/', $this->routes['404_override']); - - $this->set_directory(''); - $this->set_class($x[0]); - $this->set_method(isset($x[1]) ? $x[1] : 'index'); - - return $x; - } - else - { - show_404($this->fetch_directory().$segments[0]); - } - } - } - else - { - // Is the method being specified in the route? - if (strpos($this->default_controller, '/') !== FALSE) - { - $x = explode('/', $this->default_controller); - - $this->set_class($x[0]); - $this->set_method($x[1]); - } - else - { - $this->set_class($this->default_controller); - $this->set_method('index'); - } - - // Does the default controller exist in the sub-folder? - if ( ! file_exists(APPPATH.'controllers/'.$this->fetch_directory().$this->default_controller.'.php')) - { - $this->directory = ''; - return array(); - } - - } - - return $segments; - } - - - // If we've gotten this far it means that the URI does not correlate to a valid - // controller class. We will now see if there is an override - if ( ! empty($this->routes['404_override'])) - { - $x = explode('/', $this->routes['404_override']); - - $this->set_class($x[0]); - $this->set_method(isset($x[1]) ? $x[1] : 'index'); - - return $x; - } - - - // Nothing else to do at this point but show a 404 - show_404($segments[0]); - } - - // -------------------------------------------------------------------- - - /** - * Parse Routes - * - * This function matches any routes that may exist in - * the config/routes.php file against the URI to - * determine if the class/method need to be remapped. - * - * @access private - * @return void - */ - function _parse_routes() - { - // Turn the segment array into a URI string - $uri = implode('/', $this->uri->segments); - - // Is there a literal match? If so we're done - if (isset($this->routes[$uri])) - { - return $this->_set_request(explode('/', $this->routes[$uri])); - } - - // Loop through the route array looking for wild-cards - foreach ($this->routes as $key => $val) - { - // Convert wild-cards to RegEx - $key = str_replace(':any', '.+', str_replace(':num', '[0-9]+', $key)); - - // Does the RegEx match? - if (preg_match('#^'.$key.'$#', $uri)) - { - // Do we have a back-reference? - if (strpos($val, '$') !== FALSE AND strpos($key, '(') !== FALSE) - { - $val = preg_replace('#^'.$key.'$#', $val, $uri); - } - - return $this->_set_request(explode('/', $val)); - } - } - - // If we got this far it means we didn't encounter a - // matching route so we'll set the site default route - $this->_set_request($this->uri->segments); - } - - // -------------------------------------------------------------------- - - /** - * Set the class name - * - * @access public - * @param string - * @return void - */ - function set_class($class) - { - $this->class = str_replace(array('/', '.'), '', $class); - } - - // -------------------------------------------------------------------- - - /** - * Fetch the current class - * - * @access public - * @return string - */ - function fetch_class() - { - return $this->class; - } - - // -------------------------------------------------------------------- - - /** - * Set the method name - * - * @access public - * @param string - * @return void - */ - function set_method($method) - { - $this->method = $method; - } - - // -------------------------------------------------------------------- - - /** - * Fetch the current method - * - * @access public - * @return string - */ - function fetch_method() - { - if ($this->method == $this->fetch_class()) - { - return 'index'; - } - - return $this->method; - } - - // -------------------------------------------------------------------- - - /** - * Set the directory name - * - * @access public - * @param string - * @return void - */ - function set_directory($dir) - { - $this->directory = str_replace(array('/', '.'), '', $dir).'/'; - } - - // -------------------------------------------------------------------- - - /** - * Fetch the sub-directory (if any) that contains the requested controller class - * - * @access public - * @return string - */ - function fetch_directory() - { - return $this->directory; - } - - // -------------------------------------------------------------------- - - /** - * Set the controller overrides - * - * @access public - * @param array - * @return null - */ - function _set_overrides($routing) - { - if ( ! is_array($routing)) - { - return; - } - - if (isset($routing['directory'])) - { - $this->set_directory($routing['directory']); - } - - if (isset($routing['controller']) AND $routing['controller'] != '') - { - $this->set_class($routing['controller']); - } - - if (isset($routing['function'])) - { - $routing['function'] = ($routing['function'] == '') ? 'index' : $routing['function']; - $this->set_method($routing['function']); - } - } - - -} -// END Router Class - -/* End of file Router.php */ -/* Location: ./system/core/Router.php */ \ No newline at end of file diff --git a/sources/web/system/core/Security.php b/sources/web/system/core/Security.php deleted file mode 100755 index 7af240d..0000000 --- a/sources/web/system/core/Security.php +++ /dev/null @@ -1,877 +0,0 @@ - '[removed]', - 'document.write' => '[removed]', - '.parentNode' => '[removed]', - '.innerHTML' => '[removed]', - 'window.location' => '[removed]', - '-moz-binding' => '[removed]', - '' => '-->', - ' '<![CDATA[', - '' => '<comment>' - ); - - /* never allowed, regex replacement */ - /** - * List of never allowed regex replacement - * - * @var array - * @access protected - */ - protected $_never_allowed_regex = array( - 'javascript\s*:', - 'expression\s*(\(|&\#40;)', // CSS and IE - 'vbscript\s*:', // IE, surprise! - 'Redirect\s+302', - "([\"'])?data\s*:[^\\1]*?base64[^\\1]*?,[^\\1]*?\\1?" - ); - - /** - * Constructor - */ - public function __construct() - { - // CSRF config - foreach(array('csrf_expire', 'csrf_token_name', 'csrf_cookie_name') as $key) - { - if (FALSE !== ($val = config_item($key))) - { - $this->{'_'.$key} = $val; - } - } - - // Append application specific cookie prefix - if (config_item('cookie_prefix')) - { - $this->_csrf_cookie_name = config_item('cookie_prefix').$this->_csrf_cookie_name; - } - - // Set the CSRF hash - $this->_csrf_set_hash(); - - log_message('debug', "Security Class Initialized"); - } - - // -------------------------------------------------------------------- - - /** - * Verify Cross Site Request Forgery Protection - * - * @return object - */ - public function csrf_verify() - { - // If no POST data exists we will set the CSRF cookie - if (count($_POST) == 0) - { - return $this->csrf_set_cookie(); - } - - // Do the tokens exist in both the _POST and _COOKIE arrays? - if ( ! isset($_POST[$this->_csrf_token_name]) OR - ! isset($_COOKIE[$this->_csrf_cookie_name])) - { - $this->csrf_show_error(); - } - - // Do the tokens match? - if ($_POST[$this->_csrf_token_name] != $_COOKIE[$this->_csrf_cookie_name]) - { - $this->csrf_show_error(); - } - - // We kill this since we're done and we don't want to - // polute the _POST array - unset($_POST[$this->_csrf_token_name]); - - // Nothing should last forever - unset($_COOKIE[$this->_csrf_cookie_name]); - $this->_csrf_set_hash(); - $this->csrf_set_cookie(); - - log_message('debug', "CSRF token verified "); - - return $this; - } - - // -------------------------------------------------------------------- - - /** - * Set Cross Site Request Forgery Protection Cookie - * - * @return object - */ - public function csrf_set_cookie() - { - $expire = time() + $this->_csrf_expire; - $secure_cookie = (config_item('cookie_secure') === TRUE) ? 1 : 0; - - if ($secure_cookie) - { - $req = isset($_SERVER['HTTPS']) ? $_SERVER['HTTPS'] : FALSE; - - if ( ! $req OR $req == 'off') - { - return FALSE; - } - } - - setcookie($this->_csrf_cookie_name, $this->_csrf_hash, $expire, config_item('cookie_path'), config_item('cookie_domain'), $secure_cookie); - - log_message('debug', "CRSF cookie Set"); - - return $this; - } - - // -------------------------------------------------------------------- - - /** - * Show CSRF Error - * - * @return void - */ - public function csrf_show_error() - { - show_error('The action you have requested is not allowed.'); - } - - // -------------------------------------------------------------------- - - /** - * Get CSRF Hash - * - * Getter Method - * - * @return string self::_csrf_hash - */ - public function get_csrf_hash() - { - return $this->_csrf_hash; - } - - // -------------------------------------------------------------------- - - /** - * Get CSRF Token Name - * - * Getter Method - * - * @return string self::csrf_token_name - */ - public function get_csrf_token_name() - { - return $this->_csrf_token_name; - } - - // -------------------------------------------------------------------- - - /** - * XSS Clean - * - * Sanitizes data so that Cross Site Scripting Hacks can be - * prevented. This function does a fair amount of work but - * it is extremely thorough, designed to prevent even the - * most obscure XSS attempts. Nothing is ever 100% foolproof, - * of course, but I haven't been able to get anything passed - * the filter. - * - * Note: This function should only be used to deal with data - * upon submission. It's not something that should - * be used for general runtime processing. - * - * This function was based in part on some code and ideas I - * got from Bitflux: http://channel.bitflux.ch/wiki/XSS_Prevention - * - * To help develop this script I used this great list of - * vulnerabilities along with a few other hacks I've - * harvested from examining vulnerabilities in other programs: - * http://ha.ckers.org/xss.html - * - * @param mixed string or array - * @param bool - * @return string - */ - public function xss_clean($str, $is_image = FALSE) - { - /* - * Is the string an array? - * - */ - if (is_array($str)) - { - while (list($key) = each($str)) - { - $str[$key] = $this->xss_clean($str[$key]); - } - - return $str; - } - - /* - * Remove Invisible Characters - */ - $str = remove_invisible_characters($str); - - // Validate Entities in URLs - $str = $this->_validate_entities($str); - - /* - * URL Decode - * - * Just in case stuff like this is submitted: - * - * Google - * - * Note: Use rawurldecode() so it does not remove plus signs - * - */ - $str = rawurldecode($str); - - /* - * Convert character entities to ASCII - * - * This permits our tests below to work reliably. - * We only convert entities that are within tags since - * these are the ones that will pose security problems. - * - */ - - $str = preg_replace_callback("/[a-z]+=([\'\"]).*?\\1/si", array($this, '_convert_attribute'), $str); - - $str = preg_replace_callback("/<\w+.*?(?=>|<|$)/si", array($this, '_decode_entity'), $str); - - /* - * Remove Invisible Characters Again! - */ - $str = remove_invisible_characters($str); - - /* - * Convert all tabs to spaces - * - * This prevents strings like this: ja vascript - * NOTE: we deal with spaces between characters later. - * NOTE: preg_replace was found to be amazingly slow here on - * large blocks of data, so we use str_replace. - */ - - if (strpos($str, "\t") !== FALSE) - { - $str = str_replace("\t", ' ', $str); - } - - /* - * Capture converted string for later comparison - */ - $converted_string = $str; - - // Remove Strings that are never allowed - $str = $this->_do_never_allowed($str); - - /* - * Makes PHP tags safe - * - * Note: XML tags are inadvertently replaced too: - * - * '), array('<?', '?>'), $str); - } - - /* - * Compact any exploded words - * - * This corrects words like: j a v a s c r i p t - * These words are compacted back to their correct state. - */ - $words = array( - 'javascript', 'expression', 'vbscript', 'script', 'base64', - 'applet', 'alert', 'document', 'write', 'cookie', 'window' - ); - - foreach ($words as $word) - { - $temp = ''; - - for ($i = 0, $wordlen = strlen($word); $i < $wordlen; $i++) - { - $temp .= substr($word, $i, 1)."\s*"; - } - - // We only want to do this when it is followed by a non-word character - // That way valid stuff like "dealer to" does not become "dealerto" - $str = preg_replace_callback('#('.substr($temp, 0, -3).')(\W)#is', array($this, '_compact_exploded_words'), $str); - } - - /* - * Remove disallowed Javascript in links or img tags - * We used to do some version comparisons and use of stripos for PHP5, - * but it is dog slow compared to these simplified non-capturing - * preg_match(), especially if the pattern exists in the string - */ - do - { - $original = $str; - - if (preg_match("/]*?)(>|$)#si", array($this, '_js_link_removal'), $str); - } - - if (preg_match("/]*?)(\s?/?>|$)#si", array($this, '_js_img_removal'), $str); - } - - if (preg_match("/script/i", $str) OR preg_match("/xss/i", $str)) - { - $str = preg_replace("#<(/*)(script|xss)(.*?)\>#si", '[removed]', $str); - } - } - while($original != $str); - - unset($original); - - // Remove evil attributes such as style, onclick and xmlns - $str = $this->_remove_evil_attributes($str, $is_image); - - /* - * Sanitize naughty HTML elements - * - * If a tag containing any of the words in the list - * below is found, the tag gets converted to entities. - * - * So this: - * Becomes: <blink> - */ - $naughty = 'alert|applet|audio|basefont|base|behavior|bgsound|blink|body|embed|expression|form|frameset|frame|head|html|ilayer|iframe|input|isindex|layer|link|meta|object|plaintext|style|script|textarea|title|video|xml|xss'; - $str = preg_replace_callback('#<(/*\s*)('.$naughty.')([^><]*)([><]*)#is', array($this, '_sanitize_naughty_html'), $str); - - /* - * Sanitize naughty scripting elements - * - * Similar to above, only instead of looking for - * tags it looks for PHP and JavaScript commands - * that are disallowed. Rather than removing the - * code, it simply converts the parenthesis to entities - * rendering the code un-executable. - * - * For example: eval('some code') - * Becomes: eval('some code') - */ - $str = preg_replace('#(alert|cmd|passthru|eval|exec|expression|system|fopen|fsockopen|file|file_get_contents|readfile|unlink)(\s*)\((.*?)\)#si', "\\1\\2(\\3)", $str); - - - // Final clean up - // This adds a bit of extra precaution in case - // something got through the above filters - $str = $this->_do_never_allowed($str); - - /* - * Images are Handled in a Special Way - * - Essentially, we want to know that after all of the character - * conversion is done whether any unwanted, likely XSS, code was found. - * If not, we return TRUE, as the image is clean. - * However, if the string post-conversion does not matched the - * string post-removal of XSS, then it fails, as there was unwanted XSS - * code found and removed/changed during processing. - */ - - if ($is_image === TRUE) - { - return ($str == $converted_string) ? TRUE: FALSE; - } - - log_message('debug', "XSS Filtering completed"); - return $str; - } - - // -------------------------------------------------------------------- - - /** - * Random Hash for protecting URLs - * - * @return string - */ - public function xss_hash() - { - if ($this->_xss_hash == '') - { - mt_srand(); - $this->_xss_hash = md5(time() + mt_rand(0, 1999999999)); - } - - return $this->_xss_hash; - } - - // -------------------------------------------------------------------- - - /** - * HTML Entities Decode - * - * This function is a replacement for html_entity_decode() - * - * The reason we are not using html_entity_decode() by itself is because - * while it is not technically correct to leave out the semicolon - * at the end of an entity most browsers will still interpret the entity - * correctly. html_entity_decode() does not convert entities without - * semicolons, so we are left with our own little solution here. Bummer. - * - * @param string - * @param string - * @return string - */ - public function entity_decode($str, $charset='UTF-8') - { - if (stristr($str, '&') === FALSE) - { - return $str; - } - - $str = html_entity_decode($str, ENT_COMPAT, $charset); - $str = preg_replace('~&#x(0*[0-9a-f]{2,5})~ei', 'chr(hexdec("\\1"))', $str); - return preg_replace('~&#([0-9]{2,4})~e', 'chr(\\1)', $str); - } - - // -------------------------------------------------------------------- - - /** - * Filename Security - * - * @param string - * @param bool - * @return string - */ - public function sanitize_filename($str, $relative_path = FALSE) - { - $bad = array( - "../", - "", - "<", - ">", - "'", - '"', - '&', - '$', - '#', - '{', - '}', - '[', - ']', - '=', - ';', - '?', - "%20", - "%22", - "%3c", // < - "%253c", // < - "%3e", // > - "%0e", // > - "%28", // ( - "%29", // ) - "%2528", // ( - "%26", // & - "%24", // $ - "%3f", // ? - "%3b", // ; - "%3d" // = - ); - - if ( ! $relative_path) - { - $bad[] = './'; - $bad[] = '/'; - } - - $str = remove_invisible_characters($str, FALSE); - return stripslashes(str_replace($bad, '', $str)); - } - - // ---------------------------------------------------------------- - - /** - * Compact Exploded Words - * - * Callback function for xss_clean() to remove whitespace from - * things like j a v a s c r i p t - * - * @param type - * @return type - */ - protected function _compact_exploded_words($matches) - { - return preg_replace('/\s+/s', '', $matches[1]).$matches[2]; - } - - // -------------------------------------------------------------------- - - /* - * Remove Evil HTML Attributes (like evenhandlers and style) - * - * It removes the evil attribute and either: - * - Everything up until a space - * For example, everything between the pipes: - * - * - Everything inside the quotes - * For example, everything between the pipes: - * - * - * @param string $str The string to check - * @param boolean $is_image TRUE if this is an image - * @return string The string with the evil attributes removed - */ - protected function _remove_evil_attributes($str, $is_image) - { - // All javascript event handlers (e.g. onload, onclick, onmouseover), style, and xmlns - $evil_attributes = array('on\w*', 'style', 'xmlns', 'formaction'); - - if ($is_image === TRUE) - { - /* - * Adobe Photoshop puts XML metadata into JFIF images, - * including namespacing, so we have to allow this for images. - */ - unset($evil_attributes[array_search('xmlns', $evil_attributes)]); - } - - do { - $count = 0; - $attribs = array(); - - // find occurrences of illegal attribute strings without quotes - preg_match_all('/('.implode('|', $evil_attributes).')\s*=\s*([^\s>]*)/is', $str, $matches, PREG_SET_ORDER); - - foreach ($matches as $attr) - { - - $attribs[] = preg_quote($attr[0], '/'); - } - - // find occurrences of illegal attribute strings with quotes (042 and 047 are octal quotes) - preg_match_all("/(".implode('|', $evil_attributes).")\s*=\s*(\042|\047)([^\\2]*?)(\\2)/is", $str, $matches, PREG_SET_ORDER); - - foreach ($matches as $attr) - { - $attribs[] = preg_quote($attr[0], '/'); - } - - // replace illegal attribute strings that are inside an html tag - if (count($attribs) > 0) - { - $str = preg_replace("/<(\/?[^><]+?)([^A-Za-z<>\-])(.*?)(".implode('|', $attribs).")(.*?)([\s><])([><]*)/i", '<$1 $3$5$6$7', $str, -1, $count); - } - - } while ($count); - - return $str; - } - - // -------------------------------------------------------------------- - - /** - * Sanitize Naughty HTML - * - * Callback function for xss_clean() to remove naughty HTML elements - * - * @param array - * @return string - */ - protected function _sanitize_naughty_html($matches) - { - // encode opening brace - $str = '<'.$matches[1].$matches[2].$matches[3]; - - // encode captured opening or closing brace to prevent recursive vectors - $str .= str_replace(array('>', '<'), array('>', '<'), - $matches[4]); - - return $str; - } - - // -------------------------------------------------------------------- - - /** - * JS Link Removal - * - * Callback function for xss_clean() to sanitize links - * This limits the PCRE backtracks, making it more performance friendly - * and prevents PREG_BACKTRACK_LIMIT_ERROR from being triggered in - * PHP 5.2+ on link-heavy strings - * - * @param array - * @return string - */ - protected function _js_link_removal($match) - { - return str_replace( - $match[1], - preg_replace( - '#href=.*?(alert\(|alert&\#40;|javascript\:|livescript\:|mocha\:|charset\=|window\.|document\.|\.cookie|_filter_attributes(str_replace(array('<', '>'), '', $match[1])) - ), - $match[0] - ); - } - - // -------------------------------------------------------------------- - - /** - * JS Image Removal - * - * Callback function for xss_clean() to sanitize image tags - * This limits the PCRE backtracks, making it more performance friendly - * and prevents PREG_BACKTRACK_LIMIT_ERROR from being triggered in - * PHP 5.2+ on image tag heavy strings - * - * @param array - * @return string - */ - protected function _js_img_removal($match) - { - return str_replace( - $match[1], - preg_replace( - '#src=.*?(alert\(|alert&\#40;|javascript\:|livescript\:|mocha\:|charset\=|window\.|document\.|\.cookie|_filter_attributes(str_replace(array('<', '>'), '', $match[1])) - ), - $match[0] - ); - } - - // -------------------------------------------------------------------- - - /** - * Attribute Conversion - * - * Used as a callback for XSS Clean - * - * @param array - * @return string - */ - protected function _convert_attribute($match) - { - return str_replace(array('>', '<', '\\'), array('>', '<', '\\\\'), $match[0]); - } - - // -------------------------------------------------------------------- - - /** - * Filter Attributes - * - * Filters tag attributes for consistency and safety - * - * @param string - * @return string - */ - protected function _filter_attributes($str) - { - $out = ''; - - if (preg_match_all('#\s*[a-z\-]+\s*=\s*(\042|\047)([^\\1]*?)\\1#is', $str, $matches)) - { - foreach ($matches[0] as $match) - { - $out .= preg_replace("#/\*.*?\*/#s", '', $match); - } - } - - return $out; - } - - // -------------------------------------------------------------------- - - /** - * HTML Entity Decode Callback - * - * Used as a callback for XSS Clean - * - * @param array - * @return string - */ - protected function _decode_entity($match) - { - return $this->entity_decode($match[0], strtoupper(config_item('charset'))); - } - - // -------------------------------------------------------------------- - - /** - * Validate URL entities - * - * Called by xss_clean() - * - * @param string - * @return string - */ - protected function _validate_entities($str) - { - /* - * Protect GET variables in URLs - */ - - // 901119URL5918AMP18930PROTECT8198 - - $str = preg_replace('|\&([a-z\_0-9\-]+)\=([a-z\_0-9\-]+)|i', $this->xss_hash()."\\1=\\2", $str); - - /* - * Validate standard character entities - * - * Add a semicolon if missing. We do this to enable - * the conversion of entities to ASCII later. - * - */ - $str = preg_replace('#(&\#?[0-9a-z]{2,})([\x00-\x20])*;?#i', "\\1;\\2", $str); - - /* - * Validate UTF16 two byte encoding (x00) - * - * Just as above, adds a semicolon if missing. - * - */ - $str = preg_replace('#(&\#x?)([0-9A-F]+);?#i',"\\1\\2;",$str); - - /* - * Un-Protect GET variables in URLs - */ - $str = str_replace($this->xss_hash(), '&', $str); - - return $str; - } - - // ---------------------------------------------------------------------- - - /** - * Do Never Allowed - * - * A utility function for xss_clean() - * - * @param string - * @return string - */ - protected function _do_never_allowed($str) - { - $str = str_replace(array_keys($this->_never_allowed_str), $this->_never_allowed_str, $str); - - foreach ($this->_never_allowed_regex as $regex) - { - $str = preg_replace('#'.$regex.'#is', '[removed]', $str); - } - - return $str; - } - - // -------------------------------------------------------------------- - - /** - * Set Cross Site Request Forgery Protection Cookie - * - * @return string - */ - protected function _csrf_set_hash() - { - if ($this->_csrf_hash == '') - { - // If the cookie exists we will use it's value. - // We don't necessarily want to regenerate it with - // each page load since a page could contain embedded - // sub-pages causing this feature to fail - if (isset($_COOKIE[$this->_csrf_cookie_name]) && - preg_match('#^[0-9a-f]{32}$#iS', $_COOKIE[$this->_csrf_cookie_name]) === 1) - { - return $this->_csrf_hash = $_COOKIE[$this->_csrf_cookie_name]; - } - - return $this->_csrf_hash = md5(uniqid(rand(), TRUE)); - } - - return $this->_csrf_hash; - } - -} -// END Security Class - -/* End of file Security.php */ -/* Location: ./system/libraries/Security.php */ diff --git a/sources/web/system/core/URI.php b/sources/web/system/core/URI.php deleted file mode 100755 index a3ae20c..0000000 --- a/sources/web/system/core/URI.php +++ /dev/null @@ -1,654 +0,0 @@ -config =& load_class('Config', 'core'); - log_message('debug', "URI Class Initialized"); - } - - - // -------------------------------------------------------------------- - - /** - * Get the URI String - * - * @access private - * @return string - */ - function _fetch_uri_string() - { - if (strtoupper($this->config->item('uri_protocol')) == 'AUTO') - { - // Is the request coming from the command line? - if (php_sapi_name() == 'cli' or defined('STDIN')) - { - $this->_set_uri_string($this->_parse_cli_args()); - return; - } - - // Let's try the REQUEST_URI first, this will work in most situations - if ($uri = $this->_detect_uri()) - { - $this->_set_uri_string($uri); - return; - } - - // Is there a PATH_INFO variable? - // Note: some servers seem to have trouble with getenv() so we'll test it two ways - $path = (isset($_SERVER['PATH_INFO'])) ? $_SERVER['PATH_INFO'] : @getenv('PATH_INFO'); - if (trim($path, '/') != '' && $path != "/".SELF) - { - $this->_set_uri_string($path); - return; - } - - // No PATH_INFO?... What about QUERY_STRING? - $path = (isset($_SERVER['QUERY_STRING'])) ? $_SERVER['QUERY_STRING'] : @getenv('QUERY_STRING'); - if (trim($path, '/') != '') - { - $this->_set_uri_string($path); - return; - } - - // As a last ditch effort lets try using the $_GET array - if (is_array($_GET) && count($_GET) == 1 && trim(key($_GET), '/') != '') - { - $this->_set_uri_string(key($_GET)); - return; - } - - // We've exhausted all our options... - $this->uri_string = ''; - return; - } - - $uri = strtoupper($this->config->item('uri_protocol')); - - if ($uri == 'REQUEST_URI') - { - $this->_set_uri_string($this->_detect_uri()); - return; - } - elseif ($uri == 'CLI') - { - $this->_set_uri_string($this->_parse_cli_args()); - return; - } - - $path = (isset($_SERVER[$uri])) ? $_SERVER[$uri] : @getenv($uri); - $this->_set_uri_string($path); - } - - // -------------------------------------------------------------------- - - /** - * Set the URI String - * - * @access public - * @param string - * @return string - */ - function _set_uri_string($str) - { - // Filter out control characters - $str = remove_invisible_characters($str, FALSE); - - // If the URI contains only a slash we'll kill it - $this->uri_string = ($str == '/') ? '' : $str; - } - - // -------------------------------------------------------------------- - - /** - * Detects the URI - * - * This function will detect the URI automatically and fix the query string - * if necessary. - * - * @access private - * @return string - */ - private function _detect_uri() - { - if ( ! isset($_SERVER['REQUEST_URI']) OR ! isset($_SERVER['SCRIPT_NAME'])) - { - return ''; - } - - $uri = $_SERVER['REQUEST_URI']; - if (strpos($uri, $_SERVER['SCRIPT_NAME']) === 0) - { - $uri = substr($uri, strlen($_SERVER['SCRIPT_NAME'])); - } - elseif (strpos($uri, dirname($_SERVER['SCRIPT_NAME'])) === 0) - { - $uri = substr($uri, strlen(dirname($_SERVER['SCRIPT_NAME']))); - } - - // This section ensures that even on servers that require the URI to be in the query string (Nginx) a correct - // URI is found, and also fixes the QUERY_STRING server var and $_GET array. - if (strncmp($uri, '?/', 2) === 0) - { - $uri = substr($uri, 2); - } - $parts = preg_split('#\?#i', $uri, 2); - $uri = $parts[0]; - if (isset($parts[1])) - { - $_SERVER['QUERY_STRING'] = $parts[1]; - parse_str($_SERVER['QUERY_STRING'], $_GET); - } - else - { - $_SERVER['QUERY_STRING'] = ''; - $_GET = array(); - } - - if ($uri == '/' || empty($uri)) - { - return '/'; - } - - $uri = parse_url($uri, PHP_URL_PATH); - - // Do some final cleaning of the URI and return it - return str_replace(array('//', '../'), '/', trim($uri, '/')); - } - - // -------------------------------------------------------------------- - - /** - * Parse cli arguments - * - * Take each command line argument and assume it is a URI segment. - * - * @access private - * @return string - */ - private function _parse_cli_args() - { - $args = array_slice($_SERVER['argv'], 1); - - return $args ? '/' . implode('/', $args) : ''; - } - - // -------------------------------------------------------------------- - - /** - * Filter segments for malicious characters - * - * @access private - * @param string - * @return string - */ - function _filter_uri($str) - { - if ($str != '' && $this->config->item('permitted_uri_chars') != '' && $this->config->item('enable_query_strings') == FALSE) - { - // preg_quote() in PHP 5.3 escapes -, so the str_replace() and addition of - to preg_quote() is to maintain backwards - // compatibility as many are unaware of how characters in the permitted_uri_chars will be parsed as a regex pattern - if ( ! preg_match("|^[".str_replace(array('\\-', '\-'), '-', preg_quote($this->config->item('permitted_uri_chars'), '-'))."]+$|i", $str)) - { - show_error('The URI you submitted has disallowed characters.', 400); - } - } - - // Convert programatic characters to entities - $bad = array('$', '(', ')', '%28', '%29'); - $good = array('$', '(', ')', '(', ')'); - - return str_replace($bad, $good, $str); - } - - // -------------------------------------------------------------------- - - /** - * Remove the suffix from the URL if needed - * - * @access private - * @return void - */ - function _remove_url_suffix() - { - if ($this->config->item('url_suffix') != "") - { - $this->uri_string = preg_replace("|".preg_quote($this->config->item('url_suffix'))."$|", "", $this->uri_string); - } - } - - // -------------------------------------------------------------------- - - /** - * Explode the URI Segments. The individual segments will - * be stored in the $this->segments array. - * - * @access private - * @return void - */ - function _explode_segments() - { - foreach (explode("/", preg_replace("|/*(.+?)/*$|", "\\1", $this->uri_string)) as $val) - { - // Filter segments for security - $val = trim($this->_filter_uri($val)); - - if ($val != '') - { - $this->segments[] = $val; - } - } - } - - // -------------------------------------------------------------------- - /** - * Re-index Segments - * - * This function re-indexes the $this->segment array so that it - * starts at 1 rather than 0. Doing so makes it simpler to - * use functions like $this->uri->segment(n) since there is - * a 1:1 relationship between the segment array and the actual segments. - * - * @access private - * @return void - */ - function _reindex_segments() - { - array_unshift($this->segments, NULL); - array_unshift($this->rsegments, NULL); - unset($this->segments[0]); - unset($this->rsegments[0]); - } - - // -------------------------------------------------------------------- - - /** - * Fetch a URI Segment - * - * This function returns the URI segment based on the number provided. - * - * @access public - * @param integer - * @param bool - * @return string - */ - function segment($n, $no_result = FALSE) - { - return ( ! isset($this->segments[$n])) ? $no_result : $this->segments[$n]; - } - - // -------------------------------------------------------------------- - - /** - * Fetch a URI "routed" Segment - * - * This function returns the re-routed URI segment (assuming routing rules are used) - * based on the number provided. If there is no routing this function returns the - * same result as $this->segment() - * - * @access public - * @param integer - * @param bool - * @return string - */ - function rsegment($n, $no_result = FALSE) - { - return ( ! isset($this->rsegments[$n])) ? $no_result : $this->rsegments[$n]; - } - - // -------------------------------------------------------------------- - - /** - * Generate a key value pair from the URI string - * - * This function generates and associative array of URI data starting - * at the supplied segment. For example, if this is your URI: - * - * example.com/user/search/name/joe/location/UK/gender/male - * - * You can use this function to generate an array with this prototype: - * - * array ( - * name => joe - * location => UK - * gender => male - * ) - * - * @access public - * @param integer the starting segment number - * @param array an array of default values - * @return array - */ - function uri_to_assoc($n = 3, $default = array()) - { - return $this->_uri_to_assoc($n, $default, 'segment'); - } - /** - * Identical to above only it uses the re-routed segment array - * - * @access public - * @param integer the starting segment number - * @param array an array of default values - * @return array - * - */ - function ruri_to_assoc($n = 3, $default = array()) - { - return $this->_uri_to_assoc($n, $default, 'rsegment'); - } - - // -------------------------------------------------------------------- - - /** - * Generate a key value pair from the URI string or Re-routed URI string - * - * @access private - * @param integer the starting segment number - * @param array an array of default values - * @param string which array we should use - * @return array - */ - function _uri_to_assoc($n = 3, $default = array(), $which = 'segment') - { - if ($which == 'segment') - { - $total_segments = 'total_segments'; - $segment_array = 'segment_array'; - } - else - { - $total_segments = 'total_rsegments'; - $segment_array = 'rsegment_array'; - } - - if ( ! is_numeric($n)) - { - return $default; - } - - if (isset($this->keyval[$n])) - { - return $this->keyval[$n]; - } - - if ($this->$total_segments() < $n) - { - if (count($default) == 0) - { - return array(); - } - - $retval = array(); - foreach ($default as $val) - { - $retval[$val] = FALSE; - } - return $retval; - } - - $segments = array_slice($this->$segment_array(), ($n - 1)); - - $i = 0; - $lastval = ''; - $retval = array(); - foreach ($segments as $seg) - { - if ($i % 2) - { - $retval[$lastval] = $seg; - } - else - { - $retval[$seg] = FALSE; - $lastval = $seg; - } - - $i++; - } - - if (count($default) > 0) - { - foreach ($default as $val) - { - if ( ! array_key_exists($val, $retval)) - { - $retval[$val] = FALSE; - } - } - } - - // Cache the array for reuse - $this->keyval[$n] = $retval; - return $retval; - } - - // -------------------------------------------------------------------- - - /** - * Generate a URI string from an associative array - * - * - * @access public - * @param array an associative array of key/values - * @return array - */ - function assoc_to_uri($array) - { - $temp = array(); - foreach ((array)$array as $key => $val) - { - $temp[] = $key; - $temp[] = $val; - } - - return implode('/', $temp); - } - - // -------------------------------------------------------------------- - - /** - * Fetch a URI Segment and add a trailing slash - * - * @access public - * @param integer - * @param string - * @return string - */ - function slash_segment($n, $where = 'trailing') - { - return $this->_slash_segment($n, $where, 'segment'); - } - - // -------------------------------------------------------------------- - - /** - * Fetch a URI Segment and add a trailing slash - * - * @access public - * @param integer - * @param string - * @return string - */ - function slash_rsegment($n, $where = 'trailing') - { - return $this->_slash_segment($n, $where, 'rsegment'); - } - - // -------------------------------------------------------------------- - - /** - * Fetch a URI Segment and add a trailing slash - helper function - * - * @access private - * @param integer - * @param string - * @param string - * @return string - */ - function _slash_segment($n, $where = 'trailing', $which = 'segment') - { - $leading = '/'; - $trailing = '/'; - - if ($where == 'trailing') - { - $leading = ''; - } - elseif ($where == 'leading') - { - $trailing = ''; - } - - return $leading.$this->$which($n).$trailing; - } - - // -------------------------------------------------------------------- - - /** - * Segment Array - * - * @access public - * @return array - */ - function segment_array() - { - return $this->segments; - } - - // -------------------------------------------------------------------- - - /** - * Routed Segment Array - * - * @access public - * @return array - */ - function rsegment_array() - { - return $this->rsegments; - } - - // -------------------------------------------------------------------- - - /** - * Total number of segments - * - * @access public - * @return integer - */ - function total_segments() - { - return count($this->segments); - } - - // -------------------------------------------------------------------- - - /** - * Total number of routed segments - * - * @access public - * @return integer - */ - function total_rsegments() - { - return count($this->rsegments); - } - - // -------------------------------------------------------------------- - - /** - * Fetch the entire URI string - * - * @access public - * @return string - */ - function uri_string() - { - return $this->uri_string; - } - - - // -------------------------------------------------------------------- - - /** - * Fetch the entire Re-routed URI string - * - * @access public - * @return string - */ - function ruri_string() - { - return '/'.implode('/', $this->rsegment_array()); - } - -} -// END URI Class - -/* End of file URI.php */ -/* Location: ./system/core/URI.php */ \ No newline at end of file diff --git a/sources/web/system/core/Utf8.php b/sources/web/system/core/Utf8.php deleted file mode 100644 index 2a27d1f..0000000 --- a/sources/web/system/core/Utf8.php +++ /dev/null @@ -1,165 +0,0 @@ -item('charset') == 'UTF-8' // Application charset must be UTF-8 - ) - { - log_message('debug', "UTF-8 Support Enabled"); - - define('UTF8_ENABLED', TRUE); - - // set internal encoding for multibyte string functions if necessary - // and set a flag so we don't have to repeatedly use extension_loaded() - // or function_exists() - if (extension_loaded('mbstring')) - { - define('MB_ENABLED', TRUE); - mb_internal_encoding('UTF-8'); - } - else - { - define('MB_ENABLED', FALSE); - } - } - else - { - log_message('debug', "UTF-8 Support Disabled"); - define('UTF8_ENABLED', FALSE); - } - } - - // -------------------------------------------------------------------- - - /** - * Clean UTF-8 strings - * - * Ensures strings are UTF-8 - * - * @access public - * @param string - * @return string - */ - function clean_string($str) - { - if ($this->_is_ascii($str) === FALSE) - { - $str = @iconv('UTF-8', 'UTF-8//IGNORE', $str); - } - - return $str; - } - - // -------------------------------------------------------------------- - - /** - * Remove ASCII control characters - * - * Removes all ASCII control characters except horizontal tabs, - * line feeds, and carriage returns, as all others can cause - * problems in XML - * - * @access public - * @param string - * @return string - */ - function safe_ascii_for_xml($str) - { - return remove_invisible_characters($str, FALSE); - } - - // -------------------------------------------------------------------- - - /** - * Convert to UTF-8 - * - * Attempts to convert a string to UTF-8 - * - * @access public - * @param string - * @param string - input encoding - * @return string - */ - function convert_to_utf8($str, $encoding) - { - if (function_exists('iconv')) - { - $str = @iconv($encoding, 'UTF-8', $str); - } - elseif (function_exists('mb_convert_encoding')) - { - $str = @mb_convert_encoding($str, 'UTF-8', $encoding); - } - else - { - return FALSE; - } - - return $str; - } - - // -------------------------------------------------------------------- - - /** - * Is ASCII? - * - * Tests if a string is standard 7-bit ASCII or not - * - * @access public - * @param string - * @return bool - */ - function _is_ascii($str) - { - return (preg_match('/[^\x00-\x7F]/S', $str) == 0); - } - - // -------------------------------------------------------------------- - -} -// End Utf8 Class - -/* End of file Utf8.php */ -/* Location: ./system/core/Utf8.php */ \ No newline at end of file diff --git a/sources/web/system/core/index.html b/sources/web/system/core/index.html deleted file mode 100644 index c942a79..0000000 --- a/sources/web/system/core/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - 403 Forbidden - - - -

          Directory access is forbidden.

          - - - \ No newline at end of file diff --git a/sources/web/system/database/DB.php b/sources/web/system/database/DB.php deleted file mode 100755 index 8314d3b..0000000 --- a/sources/web/system/database/DB.php +++ /dev/null @@ -1,162 +0,0 @@ - $dns['scheme'], - 'hostname' => (isset($dns['host'])) ? rawurldecode($dns['host']) : '', - 'username' => (isset($dns['user'])) ? rawurldecode($dns['user']) : '', - 'password' => (isset($dns['pass'])) ? rawurldecode($dns['pass']) : '', - 'database' => (isset($dns['path'])) ? rawurldecode(substr($dns['path'], 1)) : '' - ); - - // were additional config items set? - if (isset($dns['query'])) - { - parse_str($dns['query'], $extra); - - foreach ($extra as $key => $val) - { - // booleans please - if (strtoupper($val) == "TRUE") - { - $val = TRUE; - } - elseif (strtoupper($val) == "FALSE") - { - $val = FALSE; - } - - $params[$key] = $val; - } - } - } - - // No DB specified yet? Beat them senseless... - if ( ! isset($params['dbdriver']) OR $params['dbdriver'] == '') - { - show_error('You have not selected a database type to connect to.'); - } - - // Load the DB classes. Note: Since the active record class is optional - // we need to dynamically create a class that extends proper parent class - // based on whether we're using the active record class or not. - // Kudos to Paul for discovering this clever use of eval() - - if ($active_record_override !== NULL) - { - $active_record = $active_record_override; - } - - require_once(BASEPATH.'database/DB_driver.php'); - - if ( ! isset($active_record) OR $active_record == TRUE) - { - require_once(BASEPATH.'database/DB_active_rec.php'); - - if ( ! class_exists('CI_DB')) - { - eval('class CI_DB extends CI_DB_active_record { }'); - } - } - else - { - if ( ! class_exists('CI_DB')) - { - eval('class CI_DB extends CI_DB_driver { }'); - } - } - - require_once(BASEPATH.'database/drivers/'.$params['dbdriver'].'/'.$params['dbdriver'].'_driver.php'); - - // Instantiate the DB adapter - $driver = 'CI_DB_'.$params['dbdriver'].'_driver'; - $DB = new $driver($params); - - if ($DB->autoinit == TRUE) - { - $DB->initialize(); - } - - if (isset($params['stricton']) && $params['stricton'] == TRUE) - { - $DB->query('SET SESSION sql_mode="STRICT_ALL_TABLES"'); - } - - return $DB; -} - - - -/* End of file DB.php */ -/* Location: ./system/database/DB.php */ \ No newline at end of file diff --git a/sources/web/system/database/DB_active_rec.php b/sources/web/system/database/DB_active_rec.php deleted file mode 100644 index 10febb1..0000000 --- a/sources/web/system/database/DB_active_rec.php +++ /dev/null @@ -1,2045 +0,0 @@ -ar_select[] = $val; - $this->ar_no_escape[] = $escape; - - if ($this->ar_caching === TRUE) - { - $this->ar_cache_select[] = $val; - $this->ar_cache_exists[] = 'select'; - $this->ar_cache_no_escape[] = $escape; - } - } - } - return $this; - } - - // -------------------------------------------------------------------- - - /** - * Select Max - * - * Generates a SELECT MAX(field) portion of a query - * - * @param string the field - * @param string an alias - * @return object - */ - public function select_max($select = '', $alias = '') - { - return $this->_max_min_avg_sum($select, $alias, 'MAX'); - } - - // -------------------------------------------------------------------- - - /** - * Select Min - * - * Generates a SELECT MIN(field) portion of a query - * - * @param string the field - * @param string an alias - * @return object - */ - public function select_min($select = '', $alias = '') - { - return $this->_max_min_avg_sum($select, $alias, 'MIN'); - } - - // -------------------------------------------------------------------- - - /** - * Select Average - * - * Generates a SELECT AVG(field) portion of a query - * - * @param string the field - * @param string an alias - * @return object - */ - public function select_avg($select = '', $alias = '') - { - return $this->_max_min_avg_sum($select, $alias, 'AVG'); - } - - // -------------------------------------------------------------------- - - /** - * Select Sum - * - * Generates a SELECT SUM(field) portion of a query - * - * @param string the field - * @param string an alias - * @return object - */ - public function select_sum($select = '', $alias = '') - { - return $this->_max_min_avg_sum($select, $alias, 'SUM'); - } - - // -------------------------------------------------------------------- - - /** - * Processing Function for the four functions above: - * - * select_max() - * select_min() - * select_avg() - * select_sum() - * - * @param string the field - * @param string an alias - * @return object - */ - protected function _max_min_avg_sum($select = '', $alias = '', $type = 'MAX') - { - if ( ! is_string($select) OR $select == '') - { - $this->display_error('db_invalid_query'); - } - - $type = strtoupper($type); - - if ( ! in_array($type, array('MAX', 'MIN', 'AVG', 'SUM'))) - { - show_error('Invalid function type: '.$type); - } - - if ($alias == '') - { - $alias = $this->_create_alias_from_table(trim($select)); - } - - $sql = $type.'('.$this->_protect_identifiers(trim($select)).') AS '.$alias; - - $this->ar_select[] = $sql; - - if ($this->ar_caching === TRUE) - { - $this->ar_cache_select[] = $sql; - $this->ar_cache_exists[] = 'select'; - } - - return $this; - } - - // -------------------------------------------------------------------- - - /** - * Determines the alias name based on the table - * - * @param string - * @return string - */ - protected function _create_alias_from_table($item) - { - if (strpos($item, '.') !== FALSE) - { - return end(explode('.', $item)); - } - - return $item; - } - - // -------------------------------------------------------------------- - - /** - * DISTINCT - * - * Sets a flag which tells the query string compiler to add DISTINCT - * - * @param bool - * @return object - */ - public function distinct($val = TRUE) - { - $this->ar_distinct = (is_bool($val)) ? $val : TRUE; - return $this; - } - - // -------------------------------------------------------------------- - - /** - * From - * - * Generates the FROM portion of the query - * - * @param mixed can be a string or array - * @return object - */ - public function from($from) - { - foreach ((array) $from as $val) - { - if (strpos($val, ',') !== FALSE) - { - foreach (explode(',', $val) as $v) - { - $v = trim($v); - $this->_track_aliases($v); - - $this->ar_from[] = $this->_protect_identifiers($v, TRUE, NULL, FALSE); - - if ($this->ar_caching === TRUE) - { - $this->ar_cache_from[] = $this->_protect_identifiers($v, TRUE, NULL, FALSE); - $this->ar_cache_exists[] = 'from'; - } - } - - } - else - { - $val = trim($val); - - // Extract any aliases that might exist. We use this information - // in the _protect_identifiers to know whether to add a table prefix - $this->_track_aliases($val); - - $this->ar_from[] = $this->_protect_identifiers($val, TRUE, NULL, FALSE); - - if ($this->ar_caching === TRUE) - { - $this->ar_cache_from[] = $this->_protect_identifiers($val, TRUE, NULL, FALSE); - $this->ar_cache_exists[] = 'from'; - } - } - } - - return $this; - } - - // -------------------------------------------------------------------- - - /** - * Join - * - * Generates the JOIN portion of the query - * - * @param string - * @param string the join condition - * @param string the type of join - * @return object - */ - public function join($table, $cond, $type = '') - { - if ($type != '') - { - $type = strtoupper(trim($type)); - - if ( ! in_array($type, array('LEFT', 'RIGHT', 'OUTER', 'INNER', 'LEFT OUTER', 'RIGHT OUTER'))) - { - $type = ''; - } - else - { - $type .= ' '; - } - } - - // Extract any aliases that might exist. We use this information - // in the _protect_identifiers to know whether to add a table prefix - $this->_track_aliases($table); - - // Strip apart the condition and protect the identifiers - if (preg_match('/([\w\.]+)([\W\s]+)(.+)/', $cond, $match)) - { - $match[1] = $this->_protect_identifiers($match[1]); - $match[3] = $this->_protect_identifiers($match[3]); - - $cond = $match[1].$match[2].$match[3]; - } - - // Assemble the JOIN statement - $join = $type.'JOIN '.$this->_protect_identifiers($table, TRUE, NULL, FALSE).' ON '.$cond; - - $this->ar_join[] = $join; - if ($this->ar_caching === TRUE) - { - $this->ar_cache_join[] = $join; - $this->ar_cache_exists[] = 'join'; - } - - return $this; - } - - // -------------------------------------------------------------------- - - /** - * Where - * - * Generates the WHERE portion of the query. Separates - * multiple calls with AND - * - * @param mixed - * @param mixed - * @return object - */ - public function where($key, $value = NULL, $escape = TRUE) - { - return $this->_where($key, $value, 'AND ', $escape); - } - - // -------------------------------------------------------------------- - - /** - * OR Where - * - * Generates the WHERE portion of the query. Separates - * multiple calls with OR - * - * @param mixed - * @param mixed - * @return object - */ - public function or_where($key, $value = NULL, $escape = TRUE) - { - return $this->_where($key, $value, 'OR ', $escape); - } - - // -------------------------------------------------------------------- - - /** - * Where - * - * Called by where() or or_where() - * - * @param mixed - * @param mixed - * @param string - * @return object - */ - protected function _where($key, $value = NULL, $type = 'AND ', $escape = NULL) - { - if ( ! is_array($key)) - { - $key = array($key => $value); - } - - // If the escape value was not set will will base it on the global setting - if ( ! is_bool($escape)) - { - $escape = $this->_protect_identifiers; - } - - foreach ($key as $k => $v) - { - $prefix = (count($this->ar_where) == 0 AND count($this->ar_cache_where) == 0) ? '' : $type; - - if (is_null($v) && ! $this->_has_operator($k)) - { - // value appears not to have been set, assign the test to IS NULL - $k .= ' IS NULL'; - } - - if ( ! is_null($v)) - { - if ($escape === TRUE) - { - $k = $this->_protect_identifiers($k, FALSE, $escape); - - $v = ' '.$this->escape($v); - } - - if ( ! $this->_has_operator($k)) - { - $k .= ' = '; - } - } - else - { - $k = $this->_protect_identifiers($k, FALSE, $escape); - } - - $this->ar_where[] = $prefix.$k.$v; - - if ($this->ar_caching === TRUE) - { - $this->ar_cache_where[] = $prefix.$k.$v; - $this->ar_cache_exists[] = 'where'; - } - - } - - return $this; - } - - // -------------------------------------------------------------------- - - /** - * Where_in - * - * Generates a WHERE field IN ('item', 'item') SQL query joined with - * AND if appropriate - * - * @param string The field to search - * @param array The values searched on - * @return object - */ - public function where_in($key = NULL, $values = NULL) - { - return $this->_where_in($key, $values); - } - - // -------------------------------------------------------------------- - - /** - * Where_in_or - * - * Generates a WHERE field IN ('item', 'item') SQL query joined with - * OR if appropriate - * - * @param string The field to search - * @param array The values searched on - * @return object - */ - public function or_where_in($key = NULL, $values = NULL) - { - return $this->_where_in($key, $values, FALSE, 'OR '); - } - - // -------------------------------------------------------------------- - - /** - * Where_not_in - * - * Generates a WHERE field NOT IN ('item', 'item') SQL query joined - * with AND if appropriate - * - * @param string The field to search - * @param array The values searched on - * @return object - */ - public function where_not_in($key = NULL, $values = NULL) - { - return $this->_where_in($key, $values, TRUE); - } - - // -------------------------------------------------------------------- - - /** - * Where_not_in_or - * - * Generates a WHERE field NOT IN ('item', 'item') SQL query joined - * with OR if appropriate - * - * @param string The field to search - * @param array The values searched on - * @return object - */ - public function or_where_not_in($key = NULL, $values = NULL) - { - return $this->_where_in($key, $values, TRUE, 'OR '); - } - - // -------------------------------------------------------------------- - - /** - * Where_in - * - * Called by where_in, where_in_or, where_not_in, where_not_in_or - * - * @param string The field to search - * @param array The values searched on - * @param boolean If the statement would be IN or NOT IN - * @param string - * @return object - */ - protected function _where_in($key = NULL, $values = NULL, $not = FALSE, $type = 'AND ') - { - if ($key === NULL OR $values === NULL) - { - return; - } - - if ( ! is_array($values)) - { - $values = array($values); - } - - $not = ($not) ? ' NOT' : ''; - - foreach ($values as $value) - { - $this->ar_wherein[] = $this->escape($value); - } - - $prefix = (count($this->ar_where) == 0) ? '' : $type; - - $where_in = $prefix . $this->_protect_identifiers($key) . $not . " IN (" . implode(", ", $this->ar_wherein) . ") "; - - $this->ar_where[] = $where_in; - if ($this->ar_caching === TRUE) - { - $this->ar_cache_where[] = $where_in; - $this->ar_cache_exists[] = 'where'; - } - - // reset the array for multiple calls - $this->ar_wherein = array(); - return $this; - } - - // -------------------------------------------------------------------- - - /** - * Like - * - * Generates a %LIKE% portion of the query. Separates - * multiple calls with AND - * - * @param mixed - * @param mixed - * @return object - */ - public function like($field, $match = '', $side = 'both') - { - return $this->_like($field, $match, 'AND ', $side); - } - - // -------------------------------------------------------------------- - - /** - * Not Like - * - * Generates a NOT LIKE portion of the query. Separates - * multiple calls with AND - * - * @param mixed - * @param mixed - * @return object - */ - public function not_like($field, $match = '', $side = 'both') - { - return $this->_like($field, $match, 'AND ', $side, 'NOT'); - } - - // -------------------------------------------------------------------- - - /** - * OR Like - * - * Generates a %LIKE% portion of the query. Separates - * multiple calls with OR - * - * @param mixed - * @param mixed - * @return object - */ - public function or_like($field, $match = '', $side = 'both') - { - return $this->_like($field, $match, 'OR ', $side); - } - - // -------------------------------------------------------------------- - - /** - * OR Not Like - * - * Generates a NOT LIKE portion of the query. Separates - * multiple calls with OR - * - * @param mixed - * @param mixed - * @return object - */ - public function or_not_like($field, $match = '', $side = 'both') - { - return $this->_like($field, $match, 'OR ', $side, 'NOT'); - } - - // -------------------------------------------------------------------- - - /** - * Like - * - * Called by like() or orlike() - * - * @param mixed - * @param mixed - * @param string - * @return object - */ - protected function _like($field, $match = '', $type = 'AND ', $side = 'both', $not = '') - { - if ( ! is_array($field)) - { - $field = array($field => $match); - } - - foreach ($field as $k => $v) - { - $k = $this->_protect_identifiers($k); - - $prefix = (count($this->ar_like) == 0) ? '' : $type; - - $v = $this->escape_like_str($v); - - if ($side == 'none') - { - $like_statement = $prefix." $k $not LIKE '{$v}'"; - } - elseif ($side == 'before') - { - $like_statement = $prefix." $k $not LIKE '%{$v}'"; - } - elseif ($side == 'after') - { - $like_statement = $prefix." $k $not LIKE '{$v}%'"; - } - else - { - $like_statement = $prefix." $k $not LIKE '%{$v}%'"; - } - - // some platforms require an escape sequence definition for LIKE wildcards - if ($this->_like_escape_str != '') - { - $like_statement = $like_statement.sprintf($this->_like_escape_str, $this->_like_escape_chr); - } - - $this->ar_like[] = $like_statement; - if ($this->ar_caching === TRUE) - { - $this->ar_cache_like[] = $like_statement; - $this->ar_cache_exists[] = 'like'; - } - - } - return $this; - } - - // -------------------------------------------------------------------- - - /** - * GROUP BY - * - * @param string - * @return object - */ - public function group_by($by) - { - if (is_string($by)) - { - $by = explode(',', $by); - } - - foreach ($by as $val) - { - $val = trim($val); - - if ($val != '') - { - $this->ar_groupby[] = $this->_protect_identifiers($val); - - if ($this->ar_caching === TRUE) - { - $this->ar_cache_groupby[] = $this->_protect_identifiers($val); - $this->ar_cache_exists[] = 'groupby'; - } - } - } - return $this; - } - - // -------------------------------------------------------------------- - - /** - * Sets the HAVING value - * - * Separates multiple calls with AND - * - * @param string - * @param string - * @return object - */ - public function having($key, $value = '', $escape = TRUE) - { - return $this->_having($key, $value, 'AND ', $escape); - } - - // -------------------------------------------------------------------- - - /** - * Sets the OR HAVING value - * - * Separates multiple calls with OR - * - * @param string - * @param string - * @return object - */ - public function or_having($key, $value = '', $escape = TRUE) - { - return $this->_having($key, $value, 'OR ', $escape); - } - - // -------------------------------------------------------------------- - - /** - * Sets the HAVING values - * - * Called by having() or or_having() - * - * @param string - * @param string - * @return object - */ - protected function _having($key, $value = '', $type = 'AND ', $escape = TRUE) - { - if ( ! is_array($key)) - { - $key = array($key => $value); - } - - foreach ($key as $k => $v) - { - $prefix = (count($this->ar_having) == 0) ? '' : $type; - - if ($escape === TRUE) - { - $k = $this->_protect_identifiers($k); - } - - if ( ! $this->_has_operator($k)) - { - $k .= ' = '; - } - - if ($v != '') - { - $v = ' '.$this->escape($v); - } - - $this->ar_having[] = $prefix.$k.$v; - if ($this->ar_caching === TRUE) - { - $this->ar_cache_having[] = $prefix.$k.$v; - $this->ar_cache_exists[] = 'having'; - } - } - - return $this; - } - - // -------------------------------------------------------------------- - - /** - * Sets the ORDER BY value - * - * @param string - * @param string direction: asc or desc - * @return object - */ - public function order_by($orderby, $direction = '') - { - if (strtolower($direction) == 'random') - { - $orderby = ''; // Random results want or don't need a field name - $direction = $this->_random_keyword; - } - elseif (trim($direction) != '') - { - $direction = (in_array(strtoupper(trim($direction)), array('ASC', 'DESC'), TRUE)) ? ' '.$direction : ' ASC'; - } - - - if (strpos($orderby, ',') !== FALSE) - { - $temp = array(); - foreach (explode(',', $orderby) as $part) - { - $part = trim($part); - if ( ! in_array($part, $this->ar_aliased_tables)) - { - $part = $this->_protect_identifiers(trim($part)); - } - - $temp[] = $part; - } - - $orderby = implode(', ', $temp); - } - else if ($direction != $this->_random_keyword) - { - $orderby = $this->_protect_identifiers($orderby); - } - - $orderby_statement = $orderby.$direction; - - $this->ar_orderby[] = $orderby_statement; - if ($this->ar_caching === TRUE) - { - $this->ar_cache_orderby[] = $orderby_statement; - $this->ar_cache_exists[] = 'orderby'; - } - - return $this; - } - - // -------------------------------------------------------------------- - - /** - * Sets the LIMIT value - * - * @param integer the limit value - * @param integer the offset value - * @return object - */ - public function limit($value, $offset = '') - { - $this->ar_limit = (int) $value; - - if ($offset != '') - { - $this->ar_offset = (int) $offset; - } - - return $this; - } - - // -------------------------------------------------------------------- - - /** - * Sets the OFFSET value - * - * @param integer the offset value - * @return object - */ - public function offset($offset) - { - $this->ar_offset = $offset; - return $this; - } - - // -------------------------------------------------------------------- - - /** - * The "set" function. Allows key/value pairs to be set for inserting or updating - * - * @param mixed - * @param string - * @param boolean - * @return object - */ - public function set($key, $value = '', $escape = TRUE) - { - $key = $this->_object_to_array($key); - - if ( ! is_array($key)) - { - $key = array($key => $value); - } - - foreach ($key as $k => $v) - { - if ($escape === FALSE) - { - $this->ar_set[$this->_protect_identifiers($k)] = $v; - } - else - { - $this->ar_set[$this->_protect_identifiers($k, FALSE, TRUE)] = $this->escape($v); - } - } - - return $this; - } - - // -------------------------------------------------------------------- - - /** - * Get - * - * Compiles the select statement based on the other functions called - * and runs the query - * - * @param string the table - * @param string the limit clause - * @param string the offset clause - * @return object - */ - public function get($table = '', $limit = null, $offset = null) - { - if ($table != '') - { - $this->_track_aliases($table); - $this->from($table); - } - - if ( ! is_null($limit)) - { - $this->limit($limit, $offset); - } - - $sql = $this->_compile_select(); - - $result = $this->query($sql); - $this->_reset_select(); - return $result; - } - - /** - * "Count All Results" query - * - * Generates a platform-specific query string that counts all records - * returned by an Active Record query. - * - * @param string - * @return string - */ - public function count_all_results($table = '') - { - if ($table != '') - { - $this->_track_aliases($table); - $this->from($table); - } - - $sql = $this->_compile_select($this->_count_string . $this->_protect_identifiers('numrows')); - - $query = $this->query($sql); - $this->_reset_select(); - - if ($query->num_rows() == 0) - { - return 0; - } - - $row = $query->row(); - return (int) $row->numrows; - } - - // -------------------------------------------------------------------- - - /** - * Get_Where - * - * Allows the where clause, limit and offset to be added directly - * - * @param string the where clause - * @param string the limit clause - * @param string the offset clause - * @return object - */ - public function get_where($table = '', $where = null, $limit = null, $offset = null) - { - if ($table != '') - { - $this->from($table); - } - - if ( ! is_null($where)) - { - $this->where($where); - } - - if ( ! is_null($limit)) - { - $this->limit($limit, $offset); - } - - $sql = $this->_compile_select(); - - $result = $this->query($sql); - $this->_reset_select(); - return $result; - } - - // -------------------------------------------------------------------- - - /** - * Insert_Batch - * - * Compiles batch insert strings and runs the queries - * - * @param string the table to retrieve the results from - * @param array an associative array of insert values - * @return object - */ - public function insert_batch($table = '', $set = NULL) - { - if ( ! is_null($set)) - { - $this->set_insert_batch($set); - } - - if (count($this->ar_set) == 0) - { - if ($this->db_debug) - { - //No valid data array. Folds in cases where keys and values did not match up - return $this->display_error('db_must_use_set'); - } - return FALSE; - } - - if ($table == '') - { - if ( ! isset($this->ar_from[0])) - { - if ($this->db_debug) - { - return $this->display_error('db_must_set_table'); - } - return FALSE; - } - - $table = $this->ar_from[0]; - } - - // Batch this baby - for ($i = 0, $total = count($this->ar_set); $i < $total; $i = $i + 100) - { - - $sql = $this->_insert_batch($this->_protect_identifiers($table, TRUE, NULL, FALSE), $this->ar_keys, array_slice($this->ar_set, $i, 100)); - - //echo $sql; - - $this->query($sql); - } - - $this->_reset_write(); - - - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * The "set_insert_batch" function. Allows key/value pairs to be set for batch inserts - * - * @param mixed - * @param string - * @param boolean - * @return object - */ - public function set_insert_batch($key, $value = '', $escape = TRUE) - { - $key = $this->_object_to_array_batch($key); - - if ( ! is_array($key)) - { - $key = array($key => $value); - } - - $keys = array_keys(current($key)); - sort($keys); - - foreach ($key as $row) - { - if (count(array_diff($keys, array_keys($row))) > 0 OR count(array_diff(array_keys($row), $keys)) > 0) - { - // batch function above returns an error on an empty array - $this->ar_set[] = array(); - return; - } - - ksort($row); // puts $row in the same order as our keys - - if ($escape === FALSE) - { - $this->ar_set[] = '('.implode(',', $row).')'; - } - else - { - $clean = array(); - - foreach ($row as $value) - { - $clean[] = $this->escape($value); - } - - $this->ar_set[] = '('.implode(',', $clean).')'; - } - } - - foreach ($keys as $k) - { - $this->ar_keys[] = $this->_protect_identifiers($k); - } - - return $this; - } - - // -------------------------------------------------------------------- - - /** - * Insert - * - * Compiles an insert string and runs the query - * - * @param string the table to insert data into - * @param array an associative array of insert values - * @return object - */ - function insert($table = '', $set = NULL) - { - if ( ! is_null($set)) - { - $this->set($set); - } - - if (count($this->ar_set) == 0) - { - if ($this->db_debug) - { - return $this->display_error('db_must_use_set'); - } - return FALSE; - } - - if ($table == '') - { - if ( ! isset($this->ar_from[0])) - { - if ($this->db_debug) - { - return $this->display_error('db_must_set_table'); - } - return FALSE; - } - - $table = $this->ar_from[0]; - } - - $sql = $this->_insert($this->_protect_identifiers($table, TRUE, NULL, FALSE), array_keys($this->ar_set), array_values($this->ar_set)); - - $this->_reset_write(); - return $this->query($sql); - } - - // -------------------------------------------------------------------- - - /** - * Replace - * - * Compiles an replace into string and runs the query - * - * @param string the table to replace data into - * @param array an associative array of insert values - * @return object - */ - public function replace($table = '', $set = NULL) - { - if ( ! is_null($set)) - { - $this->set($set); - } - - if (count($this->ar_set) == 0) - { - if ($this->db_debug) - { - return $this->display_error('db_must_use_set'); - } - return FALSE; - } - - if ($table == '') - { - if ( ! isset($this->ar_from[0])) - { - if ($this->db_debug) - { - return $this->display_error('db_must_set_table'); - } - return FALSE; - } - - $table = $this->ar_from[0]; - } - - $sql = $this->_replace($this->_protect_identifiers($table, TRUE, NULL, FALSE), array_keys($this->ar_set), array_values($this->ar_set)); - - $this->_reset_write(); - return $this->query($sql); - } - - // -------------------------------------------------------------------- - - /** - * Update - * - * Compiles an update string and runs the query - * - * @param string the table to retrieve the results from - * @param array an associative array of update values - * @param mixed the where clause - * @return object - */ - public function update($table = '', $set = NULL, $where = NULL, $limit = NULL) - { - // Combine any cached components with the current statements - $this->_merge_cache(); - - if ( ! is_null($set)) - { - $this->set($set); - } - - if (count($this->ar_set) == 0) - { - if ($this->db_debug) - { - return $this->display_error('db_must_use_set'); - } - return FALSE; - } - - if ($table == '') - { - if ( ! isset($this->ar_from[0])) - { - if ($this->db_debug) - { - return $this->display_error('db_must_set_table'); - } - return FALSE; - } - - $table = $this->ar_from[0]; - } - - if ($where != NULL) - { - $this->where($where); - } - - if ($limit != NULL) - { - $this->limit($limit); - } - - $sql = $this->_update($this->_protect_identifiers($table, TRUE, NULL, FALSE), $this->ar_set, $this->ar_where, $this->ar_orderby, $this->ar_limit); - - $this->_reset_write(); - return $this->query($sql); - } - - - // -------------------------------------------------------------------- - - /** - * Update_Batch - * - * Compiles an update string and runs the query - * - * @param string the table to retrieve the results from - * @param array an associative array of update values - * @param string the where key - * @return object - */ - public function update_batch($table = '', $set = NULL, $index = NULL) - { - // Combine any cached components with the current statements - $this->_merge_cache(); - - if (is_null($index)) - { - if ($this->db_debug) - { - return $this->display_error('db_must_use_index'); - } - - return FALSE; - } - - if ( ! is_null($set)) - { - $this->set_update_batch($set, $index); - } - - if (count($this->ar_set) == 0) - { - if ($this->db_debug) - { - return $this->display_error('db_must_use_set'); - } - - return FALSE; - } - - if ($table == '') - { - if ( ! isset($this->ar_from[0])) - { - if ($this->db_debug) - { - return $this->display_error('db_must_set_table'); - } - return FALSE; - } - - $table = $this->ar_from[0]; - } - - // Batch this baby - for ($i = 0, $total = count($this->ar_set); $i < $total; $i = $i + 100) - { - $sql = $this->_update_batch($this->_protect_identifiers($table, TRUE, NULL, FALSE), array_slice($this->ar_set, $i, 100), $this->_protect_identifiers($index), $this->ar_where); - - $this->query($sql); - } - - $this->_reset_write(); - } - - // -------------------------------------------------------------------- - - /** - * The "set_update_batch" function. Allows key/value pairs to be set for batch updating - * - * @param array - * @param string - * @param boolean - * @return object - */ - public function set_update_batch($key, $index = '', $escape = TRUE) - { - $key = $this->_object_to_array_batch($key); - - if ( ! is_array($key)) - { - // @todo error - } - - foreach ($key as $k => $v) - { - $index_set = FALSE; - $clean = array(); - - foreach ($v as $k2 => $v2) - { - if ($k2 == $index) - { - $index_set = TRUE; - } - else - { - $not[] = $k.'-'.$v; - } - - if ($escape === FALSE) - { - $clean[$this->_protect_identifiers($k2)] = $v2; - } - else - { - $clean[$this->_protect_identifiers($k2)] = $this->escape($v2); - } - } - - if ($index_set == FALSE) - { - return $this->display_error('db_batch_missing_index'); - } - - $this->ar_set[] = $clean; - } - - return $this; - } - - // -------------------------------------------------------------------- - - /** - * Empty Table - * - * Compiles a delete string and runs "DELETE FROM table" - * - * @param string the table to empty - * @return object - */ - public function empty_table($table = '') - { - if ($table == '') - { - if ( ! isset($this->ar_from[0])) - { - if ($this->db_debug) - { - return $this->display_error('db_must_set_table'); - } - return FALSE; - } - - $table = $this->ar_from[0]; - } - else - { - $table = $this->_protect_identifiers($table, TRUE, NULL, FALSE); - } - - $sql = $this->_delete($table); - - $this->_reset_write(); - - return $this->query($sql); - } - - // -------------------------------------------------------------------- - - /** - * Truncate - * - * Compiles a truncate string and runs the query - * If the database does not support the truncate() command - * This function maps to "DELETE FROM table" - * - * @param string the table to truncate - * @return object - */ - public function truncate($table = '') - { - if ($table == '') - { - if ( ! isset($this->ar_from[0])) - { - if ($this->db_debug) - { - return $this->display_error('db_must_set_table'); - } - return FALSE; - } - - $table = $this->ar_from[0]; - } - else - { - $table = $this->_protect_identifiers($table, TRUE, NULL, FALSE); - } - - $sql = $this->_truncate($table); - - $this->_reset_write(); - - return $this->query($sql); - } - - // -------------------------------------------------------------------- - - /** - * Delete - * - * Compiles a delete string and runs the query - * - * @param mixed the table(s) to delete from. String or array - * @param mixed the where clause - * @param mixed the limit clause - * @param boolean - * @return object - */ - public function delete($table = '', $where = '', $limit = NULL, $reset_data = TRUE) - { - // Combine any cached components with the current statements - $this->_merge_cache(); - - if ($table == '') - { - if ( ! isset($this->ar_from[0])) - { - if ($this->db_debug) - { - return $this->display_error('db_must_set_table'); - } - return FALSE; - } - - $table = $this->ar_from[0]; - } - elseif (is_array($table)) - { - foreach ($table as $single_table) - { - $this->delete($single_table, $where, $limit, FALSE); - } - - $this->_reset_write(); - return; - } - else - { - $table = $this->_protect_identifiers($table, TRUE, NULL, FALSE); - } - - if ($where != '') - { - $this->where($where); - } - - if ($limit != NULL) - { - $this->limit($limit); - } - - if (count($this->ar_where) == 0 && count($this->ar_wherein) == 0 && count($this->ar_like) == 0) - { - if ($this->db_debug) - { - return $this->display_error('db_del_must_use_where'); - } - - return FALSE; - } - - $sql = $this->_delete($table, $this->ar_where, $this->ar_like, $this->ar_limit); - - if ($reset_data) - { - $this->_reset_write(); - } - - return $this->query($sql); - } - - // -------------------------------------------------------------------- - - /** - * DB Prefix - * - * Prepends a database prefix if one exists in configuration - * - * @param string the table - * @return string - */ - public function dbprefix($table = '') - { - if ($table == '') - { - $this->display_error('db_table_name_required'); - } - - return $this->dbprefix.$table; - } - - // -------------------------------------------------------------------- - - /** - * Set DB Prefix - * - * Set's the DB Prefix to something new without needing to reconnect - * - * @param string the prefix - * @return string - */ - public function set_dbprefix($prefix = '') - { - return $this->dbprefix = $prefix; - } - - // -------------------------------------------------------------------- - - /** - * Track Aliases - * - * Used to track SQL statements written with aliased tables. - * - * @param string The table to inspect - * @return string - */ - protected function _track_aliases($table) - { - if (is_array($table)) - { - foreach ($table as $t) - { - $this->_track_aliases($t); - } - return; - } - - // Does the string contain a comma? If so, we need to separate - // the string into discreet statements - if (strpos($table, ',') !== FALSE) - { - return $this->_track_aliases(explode(',', $table)); - } - - // if a table alias is used we can recognize it by a space - if (strpos($table, " ") !== FALSE) - { - // if the alias is written with the AS keyword, remove it - $table = preg_replace('/\s+AS\s+/i', ' ', $table); - - // Grab the alias - $table = trim(strrchr($table, " ")); - - // Store the alias, if it doesn't already exist - if ( ! in_array($table, $this->ar_aliased_tables)) - { - $this->ar_aliased_tables[] = $table; - } - } - } - - // -------------------------------------------------------------------- - - /** - * Compile the SELECT statement - * - * Generates a query string based on which functions were used. - * Should not be called directly. The get() function calls it. - * - * @return string - */ - protected function _compile_select($select_override = FALSE) - { - // Combine any cached components with the current statements - $this->_merge_cache(); - - // ---------------------------------------------------------------- - - // Write the "select" portion of the query - - if ($select_override !== FALSE) - { - $sql = $select_override; - } - else - { - $sql = ( ! $this->ar_distinct) ? 'SELECT ' : 'SELECT DISTINCT '; - - if (count($this->ar_select) == 0) - { - $sql .= '*'; - } - else - { - // Cycle through the "select" portion of the query and prep each column name. - // The reason we protect identifiers here rather then in the select() function - // is because until the user calls the from() function we don't know if there are aliases - foreach ($this->ar_select as $key => $val) - { - $no_escape = isset($this->ar_no_escape[$key]) ? $this->ar_no_escape[$key] : NULL; - $this->ar_select[$key] = $this->_protect_identifiers($val, FALSE, $no_escape); - } - - $sql .= implode(', ', $this->ar_select); - } - } - - // ---------------------------------------------------------------- - - // Write the "FROM" portion of the query - - if (count($this->ar_from) > 0) - { - $sql .= "\nFROM "; - - $sql .= $this->_from_tables($this->ar_from); - } - - // ---------------------------------------------------------------- - - // Write the "JOIN" portion of the query - - if (count($this->ar_join) > 0) - { - $sql .= "\n"; - - $sql .= implode("\n", $this->ar_join); - } - - // ---------------------------------------------------------------- - - // Write the "WHERE" portion of the query - - if (count($this->ar_where) > 0 OR count($this->ar_like) > 0) - { - $sql .= "\nWHERE "; - } - - $sql .= implode("\n", $this->ar_where); - - // ---------------------------------------------------------------- - - // Write the "LIKE" portion of the query - - if (count($this->ar_like) > 0) - { - if (count($this->ar_where) > 0) - { - $sql .= "\nAND "; - } - - $sql .= implode("\n", $this->ar_like); - } - - // ---------------------------------------------------------------- - - // Write the "GROUP BY" portion of the query - - if (count($this->ar_groupby) > 0) - { - $sql .= "\nGROUP BY "; - - $sql .= implode(', ', $this->ar_groupby); - } - - // ---------------------------------------------------------------- - - // Write the "HAVING" portion of the query - - if (count($this->ar_having) > 0) - { - $sql .= "\nHAVING "; - $sql .= implode("\n", $this->ar_having); - } - - // ---------------------------------------------------------------- - - // Write the "ORDER BY" portion of the query - - if (count($this->ar_orderby) > 0) - { - $sql .= "\nORDER BY "; - $sql .= implode(', ', $this->ar_orderby); - - if ($this->ar_order !== FALSE) - { - $sql .= ($this->ar_order == 'desc') ? ' DESC' : ' ASC'; - } - } - - // ---------------------------------------------------------------- - - // Write the "LIMIT" portion of the query - - if (is_numeric($this->ar_limit)) - { - $sql .= "\n"; - $sql = $this->_limit($sql, $this->ar_limit, $this->ar_offset); - } - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Object to Array - * - * Takes an object as input and converts the class variables to array key/vals - * - * @param object - * @return array - */ - public function _object_to_array($object) - { - if ( ! is_object($object)) - { - return $object; - } - - $array = array(); - foreach (get_object_vars($object) as $key => $val) - { - // There are some built in keys we need to ignore for this conversion - if ( ! is_object($val) && ! is_array($val) && $key != '_parent_name') - { - $array[$key] = $val; - } - } - - return $array; - } - - // -------------------------------------------------------------------- - - /** - * Object to Array - * - * Takes an object as input and converts the class variables to array key/vals - * - * @param object - * @return array - */ - public function _object_to_array_batch($object) - { - if ( ! is_object($object)) - { - return $object; - } - - $array = array(); - $out = get_object_vars($object); - $fields = array_keys($out); - - foreach ($fields as $val) - { - // There are some built in keys we need to ignore for this conversion - if ($val != '_parent_name') - { - - $i = 0; - foreach ($out[$val] as $data) - { - $array[$i][$val] = $data; - $i++; - } - } - } - - return $array; - } - - // -------------------------------------------------------------------- - - /** - * Start Cache - * - * Starts AR caching - * - * @return void - */ - public function start_cache() - { - $this->ar_caching = TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Stop Cache - * - * Stops AR caching - * - * @return void - */ - public function stop_cache() - { - $this->ar_caching = FALSE; - } - - // -------------------------------------------------------------------- - - /** - * Flush Cache - * - * Empties the AR cache - * - * @access public - * @return void - */ - public function flush_cache() - { - $this->_reset_run(array( - 'ar_cache_select' => array(), - 'ar_cache_from' => array(), - 'ar_cache_join' => array(), - 'ar_cache_where' => array(), - 'ar_cache_like' => array(), - 'ar_cache_groupby' => array(), - 'ar_cache_having' => array(), - 'ar_cache_orderby' => array(), - 'ar_cache_set' => array(), - 'ar_cache_exists' => array(), - 'ar_cache_no_escape' => array() - )); - } - - // -------------------------------------------------------------------- - - /** - * Merge Cache - * - * When called, this function merges any cached AR arrays with - * locally called ones. - * - * @return void - */ - protected function _merge_cache() - { - if (count($this->ar_cache_exists) == 0) - { - return; - } - - foreach ($this->ar_cache_exists as $val) - { - $ar_variable = 'ar_'.$val; - $ar_cache_var = 'ar_cache_'.$val; - - if (count($this->$ar_cache_var) == 0) - { - continue; - } - - $this->$ar_variable = array_unique(array_merge($this->$ar_cache_var, $this->$ar_variable)); - } - - // If we are "protecting identifiers" we need to examine the "from" - // portion of the query to determine if there are any aliases - if ($this->_protect_identifiers === TRUE AND count($this->ar_cache_from) > 0) - { - $this->_track_aliases($this->ar_from); - } - - $this->ar_no_escape = $this->ar_cache_no_escape; - } - - // -------------------------------------------------------------------- - - /** - * Resets the active record values. Called by the get() function - * - * @param array An array of fields to reset - * @return void - */ - protected function _reset_run($ar_reset_items) - { - foreach ($ar_reset_items as $item => $default_value) - { - if ( ! in_array($item, $this->ar_store_array)) - { - $this->$item = $default_value; - } - } - } - - // -------------------------------------------------------------------- - - /** - * Resets the active record values. Called by the get() function - * - * @return void - */ - protected function _reset_select() - { - $ar_reset_items = array( - 'ar_select' => array(), - 'ar_from' => array(), - 'ar_join' => array(), - 'ar_where' => array(), - 'ar_like' => array(), - 'ar_groupby' => array(), - 'ar_having' => array(), - 'ar_orderby' => array(), - 'ar_wherein' => array(), - 'ar_aliased_tables' => array(), - 'ar_no_escape' => array(), - 'ar_distinct' => FALSE, - 'ar_limit' => FALSE, - 'ar_offset' => FALSE, - 'ar_order' => FALSE, - ); - - $this->_reset_run($ar_reset_items); - } - - // -------------------------------------------------------------------- - - /** - * Resets the active record "write" values. - * - * Called by the insert() update() insert_batch() update_batch() and delete() functions - * - * @return void - */ - protected function _reset_write() - { - $ar_reset_items = array( - 'ar_set' => array(), - 'ar_from' => array(), - 'ar_where' => array(), - 'ar_like' => array(), - 'ar_orderby' => array(), - 'ar_keys' => array(), - 'ar_limit' => FALSE, - 'ar_order' => FALSE - ); - - $this->_reset_run($ar_reset_items); - } -} - -/* End of file DB_active_rec.php */ -/* Location: ./system/database/DB_active_rec.php */ \ No newline at end of file diff --git a/sources/web/system/database/DB_cache.php b/sources/web/system/database/DB_cache.php deleted file mode 100644 index ad1c28d..0000000 --- a/sources/web/system/database/DB_cache.php +++ /dev/null @@ -1,195 +0,0 @@ -CI - // and load the file helper since we use it a lot - $this->CI =& get_instance(); - $this->db =& $db; - $this->CI->load->helper('file'); - } - - // -------------------------------------------------------------------- - - /** - * Set Cache Directory Path - * - * @access public - * @param string the path to the cache directory - * @return bool - */ - function check_path($path = '') - { - if ($path == '') - { - if ($this->db->cachedir == '') - { - return $this->db->cache_off(); - } - - $path = $this->db->cachedir; - } - - // Add a trailing slash to the path if needed - $path = preg_replace("/(.+?)\/*$/", "\\1/", $path); - - if ( ! is_dir($path) OR ! is_really_writable($path)) - { - // If the path is wrong we'll turn off caching - return $this->db->cache_off(); - } - - $this->db->cachedir = $path; - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Retrieve a cached query - * - * The URI being requested will become the name of the cache sub-folder. - * An MD5 hash of the SQL statement will become the cache file name - * - * @access public - * @return string - */ - function read($sql) - { - if ( ! $this->check_path()) - { - return $this->db->cache_off(); - } - - $segment_one = ($this->CI->uri->segment(1) == FALSE) ? 'default' : $this->CI->uri->segment(1); - - $segment_two = ($this->CI->uri->segment(2) == FALSE) ? 'index' : $this->CI->uri->segment(2); - - $filepath = $this->db->cachedir.$segment_one.'+'.$segment_two.'/'.md5($sql); - - if (FALSE === ($cachedata = read_file($filepath))) - { - return FALSE; - } - - return unserialize($cachedata); - } - - // -------------------------------------------------------------------- - - /** - * Write a query to a cache file - * - * @access public - * @return bool - */ - function write($sql, $object) - { - if ( ! $this->check_path()) - { - return $this->db->cache_off(); - } - - $segment_one = ($this->CI->uri->segment(1) == FALSE) ? 'default' : $this->CI->uri->segment(1); - - $segment_two = ($this->CI->uri->segment(2) == FALSE) ? 'index' : $this->CI->uri->segment(2); - - $dir_path = $this->db->cachedir.$segment_one.'+'.$segment_two.'/'; - - $filename = md5($sql); - - if ( ! @is_dir($dir_path)) - { - if ( ! @mkdir($dir_path, DIR_WRITE_MODE)) - { - return FALSE; - } - - @chmod($dir_path, DIR_WRITE_MODE); - } - - if (write_file($dir_path.$filename, serialize($object)) === FALSE) - { - return FALSE; - } - - @chmod($dir_path.$filename, FILE_WRITE_MODE); - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Delete cache files within a particular directory - * - * @access public - * @return bool - */ - function delete($segment_one = '', $segment_two = '') - { - if ($segment_one == '') - { - $segment_one = ($this->CI->uri->segment(1) == FALSE) ? 'default' : $this->CI->uri->segment(1); - } - - if ($segment_two == '') - { - $segment_two = ($this->CI->uri->segment(2) == FALSE) ? 'index' : $this->CI->uri->segment(2); - } - - $dir_path = $this->db->cachedir.$segment_one.'+'.$segment_two.'/'; - - delete_files($dir_path, TRUE); - } - - // -------------------------------------------------------------------- - - /** - * Delete all existing cache files - * - * @access public - * @return bool - */ - function delete_all() - { - delete_files($this->db->cachedir, TRUE); - } - -} - - -/* End of file DB_cache.php */ -/* Location: ./system/database/DB_cache.php */ \ No newline at end of file diff --git a/sources/web/system/database/DB_driver.php b/sources/web/system/database/DB_driver.php deleted file mode 100644 index 775fd33..0000000 --- a/sources/web/system/database/DB_driver.php +++ /dev/null @@ -1,1410 +0,0 @@ - $val) - { - $this->$key = $val; - } - } - - log_message('debug', 'Database Driver Class Initialized'); - } - - // -------------------------------------------------------------------- - - /** - * Initialize Database Settings - * - * @access private Called by the constructor - * @param mixed - * @return void - */ - function initialize() - { - // If an existing connection resource is available - // there is no need to connect and select the database - if (is_resource($this->conn_id) OR is_object($this->conn_id)) - { - return TRUE; - } - - // ---------------------------------------------------------------- - - // Connect to the database and set the connection ID - $this->conn_id = ($this->pconnect == FALSE) ? $this->db_connect() : $this->db_pconnect(); - - // No connection resource? Throw an error - if ( ! $this->conn_id) - { - log_message('error', 'Unable to connect to the database'); - - if ($this->db_debug) - { - $this->display_error('db_unable_to_connect'); - } - return FALSE; - } - - // ---------------------------------------------------------------- - - // Select the DB... assuming a database name is specified in the config file - if ($this->database != '') - { - if ( ! $this->db_select()) - { - log_message('error', 'Unable to select database: '.$this->database); - - if ($this->db_debug) - { - $this->display_error('db_unable_to_select', $this->database); - } - return FALSE; - } - else - { - // We've selected the DB. Now we set the character set - if ( ! $this->db_set_charset($this->char_set, $this->dbcollat)) - { - return FALSE; - } - - return TRUE; - } - } - - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Set client character set - * - * @access public - * @param string - * @param string - * @return resource - */ - function db_set_charset($charset, $collation) - { - if ( ! $this->_db_set_charset($this->char_set, $this->dbcollat)) - { - log_message('error', 'Unable to set database connection charset: '.$this->char_set); - - if ($this->db_debug) - { - $this->display_error('db_unable_to_set_charset', $this->char_set); - } - - return FALSE; - } - - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * The name of the platform in use (mysql, mssql, etc...) - * - * @access public - * @return string - */ - function platform() - { - return $this->dbdriver; - } - - // -------------------------------------------------------------------- - - /** - * Database Version Number. Returns a string containing the - * version of the database being used - * - * @access public - * @return string - */ - function version() - { - if (FALSE === ($sql = $this->_version())) - { - if ($this->db_debug) - { - return $this->display_error('db_unsupported_function'); - } - return FALSE; - } - - // Some DBs have functions that return the version, and don't run special - // SQL queries per se. In these instances, just return the result. - $driver_version_exceptions = array('oci8', 'sqlite', 'cubrid'); - - if (in_array($this->dbdriver, $driver_version_exceptions)) - { - return $sql; - } - else - { - $query = $this->query($sql); - return $query->row('ver'); - } - } - - // -------------------------------------------------------------------- - - /** - * Execute the query - * - * Accepts an SQL string as input and returns a result object upon - * successful execution of a "read" type query. Returns boolean TRUE - * upon successful execution of a "write" type query. Returns boolean - * FALSE upon failure, and if the $db_debug variable is set to TRUE - * will raise an error. - * - * @access public - * @param string An SQL query string - * @param array An array of binding data - * @return mixed - */ - function query($sql, $binds = FALSE, $return_object = TRUE) - { - if ($sql == '') - { - if ($this->db_debug) - { - log_message('error', 'Invalid query: '.$sql); - return $this->display_error('db_invalid_query'); - } - return FALSE; - } - - // Verify table prefix and replace if necessary - if ( ($this->dbprefix != '' AND $this->swap_pre != '') AND ($this->dbprefix != $this->swap_pre) ) - { - $sql = preg_replace("/(\W)".$this->swap_pre."(\S+?)/", "\\1".$this->dbprefix."\\2", $sql); - } - - // Compile binds if needed - if ($binds !== FALSE) - { - $sql = $this->compile_binds($sql, $binds); - } - - // Is query caching enabled? If the query is a "read type" - // we will load the caching class and return the previously - // cached query if it exists - if ($this->cache_on == TRUE AND stristr($sql, 'SELECT')) - { - if ($this->_cache_init()) - { - $this->load_rdriver(); - if (FALSE !== ($cache = $this->CACHE->read($sql))) - { - return $cache; - } - } - } - - // Save the query for debugging - if ($this->save_queries == TRUE) - { - $this->queries[] = $sql; - } - - // Start the Query Timer - $time_start = list($sm, $ss) = explode(' ', microtime()); - - // Run the Query - if (FALSE === ($this->result_id = $this->simple_query($sql))) - { - if ($this->save_queries == TRUE) - { - $this->query_times[] = 0; - } - - // This will trigger a rollback if transactions are being used - $this->_trans_status = FALSE; - - if ($this->db_debug) - { - // grab the error number and message now, as we might run some - // additional queries before displaying the error - $error_no = $this->_error_number(); - $error_msg = $this->_error_message(); - - // We call this function in order to roll-back queries - // if transactions are enabled. If we don't call this here - // the error message will trigger an exit, causing the - // transactions to remain in limbo. - $this->trans_complete(); - - // Log and display errors - log_message('error', 'Query error: '.$error_msg); - return $this->display_error( - array( - 'Error Number: '.$error_no, - $error_msg, - $sql - ) - ); - } - - return FALSE; - } - - // Stop and aggregate the query time results - $time_end = list($em, $es) = explode(' ', microtime()); - $this->benchmark += ($em + $es) - ($sm + $ss); - - if ($this->save_queries == TRUE) - { - $this->query_times[] = ($em + $es) - ($sm + $ss); - } - - // Increment the query counter - $this->query_count++; - - // Was the query a "write" type? - // If so we'll simply return true - if ($this->is_write_type($sql) === TRUE) - { - // If caching is enabled we'll auto-cleanup any - // existing files related to this particular URI - if ($this->cache_on == TRUE AND $this->cache_autodel == TRUE AND $this->_cache_init()) - { - $this->CACHE->delete(); - } - - return TRUE; - } - - // Return TRUE if we don't need to create a result object - // Currently only the Oracle driver uses this when stored - // procedures are used - if ($return_object !== TRUE) - { - return TRUE; - } - - // Load and instantiate the result driver - - $driver = $this->load_rdriver(); - $RES = new $driver(); - $RES->conn_id = $this->conn_id; - $RES->result_id = $this->result_id; - - if ($this->dbdriver == 'oci8') - { - $RES->stmt_id = $this->stmt_id; - $RES->curs_id = NULL; - $RES->limit_used = $this->limit_used; - $this->stmt_id = FALSE; - } - - // oci8 vars must be set before calling this - $RES->num_rows = $RES->num_rows(); - - // Is query caching enabled? If so, we'll serialize the - // result object and save it to a cache file. - if ($this->cache_on == TRUE AND $this->_cache_init()) - { - // We'll create a new instance of the result object - // only without the platform specific driver since - // we can't use it with cached data (the query result - // resource ID won't be any good once we've cached the - // result object, so we'll have to compile the data - // and save it) - $CR = new CI_DB_result(); - $CR->num_rows = $RES->num_rows(); - $CR->result_object = $RES->result_object(); - $CR->result_array = $RES->result_array(); - - // Reset these since cached objects can not utilize resource IDs. - $CR->conn_id = NULL; - $CR->result_id = NULL; - - $this->CACHE->write($sql, $CR); - } - - return $RES; - } - - // -------------------------------------------------------------------- - - /** - * Load the result drivers - * - * @access public - * @return string the name of the result class - */ - function load_rdriver() - { - $driver = 'CI_DB_'.$this->dbdriver.'_result'; - - if ( ! class_exists($driver)) - { - include_once(BASEPATH.'database/DB_result.php'); - include_once(BASEPATH.'database/drivers/'.$this->dbdriver.'/'.$this->dbdriver.'_result.php'); - } - - return $driver; - } - - // -------------------------------------------------------------------- - - /** - * Simple Query - * This is a simplified version of the query() function. Internally - * we only use it when running transaction commands since they do - * not require all the features of the main query() function. - * - * @access public - * @param string the sql query - * @return mixed - */ - function simple_query($sql) - { - if ( ! $this->conn_id) - { - $this->initialize(); - } - - return $this->_execute($sql); - } - - // -------------------------------------------------------------------- - - /** - * Disable Transactions - * This permits transactions to be disabled at run-time. - * - * @access public - * @return void - */ - function trans_off() - { - $this->trans_enabled = FALSE; - } - - // -------------------------------------------------------------------- - - /** - * Enable/disable Transaction Strict Mode - * When strict mode is enabled, if you are running multiple groups of - * transactions, if one group fails all groups will be rolled back. - * If strict mode is disabled, each group is treated autonomously, meaning - * a failure of one group will not affect any others - * - * @access public - * @return void - */ - function trans_strict($mode = TRUE) - { - $this->trans_strict = is_bool($mode) ? $mode : TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Start Transaction - * - * @access public - * @return void - */ - function trans_start($test_mode = FALSE) - { - if ( ! $this->trans_enabled) - { - return FALSE; - } - - // When transactions are nested we only begin/commit/rollback the outermost ones - if ($this->_trans_depth > 0) - { - $this->_trans_depth += 1; - return; - } - - $this->trans_begin($test_mode); - } - - // -------------------------------------------------------------------- - - /** - * Complete Transaction - * - * @access public - * @return bool - */ - function trans_complete() - { - if ( ! $this->trans_enabled) - { - return FALSE; - } - - // When transactions are nested we only begin/commit/rollback the outermost ones - if ($this->_trans_depth > 1) - { - $this->_trans_depth -= 1; - return TRUE; - } - - // The query() function will set this flag to FALSE in the event that a query failed - if ($this->_trans_status === FALSE) - { - $this->trans_rollback(); - - // If we are NOT running in strict mode, we will reset - // the _trans_status flag so that subsequent groups of transactions - // will be permitted. - if ($this->trans_strict === FALSE) - { - $this->_trans_status = TRUE; - } - - log_message('debug', 'DB Transaction Failure'); - return FALSE; - } - - $this->trans_commit(); - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Lets you retrieve the transaction flag to determine if it has failed - * - * @access public - * @return bool - */ - function trans_status() - { - return $this->_trans_status; - } - - // -------------------------------------------------------------------- - - /** - * Compile Bindings - * - * @access public - * @param string the sql statement - * @param array an array of bind data - * @return string - */ - function compile_binds($sql, $binds) - { - if (strpos($sql, $this->bind_marker) === FALSE) - { - return $sql; - } - - if ( ! is_array($binds)) - { - $binds = array($binds); - } - - // Get the sql segments around the bind markers - $segments = explode($this->bind_marker, $sql); - - // The count of bind should be 1 less then the count of segments - // If there are more bind arguments trim it down - if (count($binds) >= count($segments)) { - $binds = array_slice($binds, 0, count($segments)-1); - } - - // Construct the binded query - $result = $segments[0]; - $i = 0; - foreach ($binds as $bind) - { - $result .= $this->escape($bind); - $result .= $segments[++$i]; - } - - return $result; - } - - // -------------------------------------------------------------------- - - /** - * Determines if a query is a "write" type. - * - * @access public - * @param string An SQL query string - * @return boolean - */ - function is_write_type($sql) - { - if ( ! preg_match('/^\s*"?(SET|INSERT|UPDATE|DELETE|REPLACE|CREATE|DROP|TRUNCATE|LOAD DATA|COPY|ALTER|GRANT|REVOKE|LOCK|UNLOCK)\s+/i', $sql)) - { - return FALSE; - } - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Calculate the aggregate query elapsed time - * - * @access public - * @param integer The number of decimal places - * @return integer - */ - function elapsed_time($decimals = 6) - { - return number_format($this->benchmark, $decimals); - } - - // -------------------------------------------------------------------- - - /** - * Returns the total number of queries - * - * @access public - * @return integer - */ - function total_queries() - { - return $this->query_count; - } - - // -------------------------------------------------------------------- - - /** - * Returns the last query that was executed - * - * @access public - * @return void - */ - function last_query() - { - return end($this->queries); - } - - // -------------------------------------------------------------------- - - /** - * "Smart" Escape String - * - * Escapes data based on type - * Sets boolean and null types - * - * @access public - * @param string - * @return mixed - */ - function escape($str) - { - if (is_string($str)) - { - $str = "'".$this->escape_str($str)."'"; - } - elseif (is_bool($str)) - { - $str = ($str === FALSE) ? 0 : 1; - } - elseif (is_null($str)) - { - $str = 'NULL'; - } - - return $str; - } - - // -------------------------------------------------------------------- - - /** - * Escape LIKE String - * - * Calls the individual driver for platform - * specific escaping for LIKE conditions - * - * @access public - * @param string - * @return mixed - */ - function escape_like_str($str) - { - return $this->escape_str($str, TRUE); - } - - // -------------------------------------------------------------------- - - /** - * Primary - * - * Retrieves the primary key. It assumes that the row in the first - * position is the primary key - * - * @access public - * @param string the table name - * @return string - */ - function primary($table = '') - { - $fields = $this->list_fields($table); - - if ( ! is_array($fields)) - { - return FALSE; - } - - return current($fields); - } - - // -------------------------------------------------------------------- - - /** - * Returns an array of table names - * - * @access public - * @return array - */ - function list_tables($constrain_by_prefix = FALSE) - { - // Is there a cached result? - if (isset($this->data_cache['table_names'])) - { - return $this->data_cache['table_names']; - } - - if (FALSE === ($sql = $this->_list_tables($constrain_by_prefix))) - { - if ($this->db_debug) - { - return $this->display_error('db_unsupported_function'); - } - return FALSE; - } - - $retval = array(); - $query = $this->query($sql); - - if ($query->num_rows() > 0) - { - foreach ($query->result_array() as $row) - { - if (isset($row['TABLE_NAME'])) - { - $retval[] = $row['TABLE_NAME']; - } - else - { - $retval[] = array_shift($row); - } - } - } - - $this->data_cache['table_names'] = $retval; - return $this->data_cache['table_names']; - } - - // -------------------------------------------------------------------- - - /** - * Determine if a particular table exists - * @access public - * @return boolean - */ - function table_exists($table_name) - { - return ( ! in_array($this->_protect_identifiers($table_name, TRUE, FALSE, FALSE), $this->list_tables())) ? FALSE : TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Fetch MySQL Field Names - * - * @access public - * @param string the table name - * @return array - */ - function list_fields($table = '') - { - // Is there a cached result? - if (isset($this->data_cache['field_names'][$table])) - { - return $this->data_cache['field_names'][$table]; - } - - if ($table == '') - { - if ($this->db_debug) - { - return $this->display_error('db_field_param_missing'); - } - return FALSE; - } - - if (FALSE === ($sql = $this->_list_columns($table))) - { - if ($this->db_debug) - { - return $this->display_error('db_unsupported_function'); - } - return FALSE; - } - - $query = $this->query($sql); - - $retval = array(); - foreach ($query->result_array() as $row) - { - if (isset($row['COLUMN_NAME'])) - { - $retval[] = $row['COLUMN_NAME']; - } - else - { - $retval[] = current($row); - } - } - - $this->data_cache['field_names'][$table] = $retval; - return $this->data_cache['field_names'][$table]; - } - - // -------------------------------------------------------------------- - - /** - * Determine if a particular field exists - * @access public - * @param string - * @param string - * @return boolean - */ - function field_exists($field_name, $table_name) - { - return ( ! in_array($field_name, $this->list_fields($table_name))) ? FALSE : TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Returns an object with field data - * - * @access public - * @param string the table name - * @return object - */ - function field_data($table = '') - { - if ($table == '') - { - if ($this->db_debug) - { - return $this->display_error('db_field_param_missing'); - } - return FALSE; - } - - $query = $this->query($this->_field_data($this->_protect_identifiers($table, TRUE, NULL, FALSE))); - - return $query->field_data(); - } - - // -------------------------------------------------------------------- - - /** - * Generate an insert string - * - * @access public - * @param string the table upon which the query will be performed - * @param array an associative array data of key/values - * @return string - */ - function insert_string($table, $data) - { - $fields = array(); - $values = array(); - - foreach ($data as $key => $val) - { - $fields[] = $this->_escape_identifiers($key); - $values[] = $this->escape($val); - } - - return $this->_insert($this->_protect_identifiers($table, TRUE, NULL, FALSE), $fields, $values); - } - - // -------------------------------------------------------------------- - - /** - * Generate an update string - * - * @access public - * @param string the table upon which the query will be performed - * @param array an associative array data of key/values - * @param mixed the "where" statement - * @return string - */ - function update_string($table, $data, $where) - { - if ($where == '') - { - return false; - } - - $fields = array(); - foreach ($data as $key => $val) - { - $fields[$this->_protect_identifiers($key)] = $this->escape($val); - } - - if ( ! is_array($where)) - { - $dest = array($where); - } - else - { - $dest = array(); - foreach ($where as $key => $val) - { - $prefix = (count($dest) == 0) ? '' : ' AND '; - - if ($val !== '') - { - if ( ! $this->_has_operator($key)) - { - $key .= ' ='; - } - - $val = ' '.$this->escape($val); - } - - $dest[] = $prefix.$key.$val; - } - } - - return $this->_update($this->_protect_identifiers($table, TRUE, NULL, FALSE), $fields, $dest); - } - - // -------------------------------------------------------------------- - - /** - * Tests whether the string has an SQL operator - * - * @access private - * @param string - * @return bool - */ - function _has_operator($str) - { - $str = trim($str); - if ( ! preg_match("/(\s|<|>|!|=|is null|is not null)/i", $str)) - { - return FALSE; - } - - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Enables a native PHP function to be run, using a platform agnostic wrapper. - * - * @access public - * @param string the function name - * @param mixed any parameters needed by the function - * @return mixed - */ - function call_function($function) - { - $driver = ($this->dbdriver == 'postgre') ? 'pg_' : $this->dbdriver.'_'; - - if (FALSE === strpos($driver, $function)) - { - $function = $driver.$function; - } - - if ( ! function_exists($function)) - { - if ($this->db_debug) - { - return $this->display_error('db_unsupported_function'); - } - return FALSE; - } - else - { - $args = (func_num_args() > 1) ? array_splice(func_get_args(), 1) : null; - if (is_null($args)) - { - return call_user_func($function); - } - else - { - return call_user_func_array($function, $args); - } - } - } - - // -------------------------------------------------------------------- - - /** - * Set Cache Directory Path - * - * @access public - * @param string the path to the cache directory - * @return void - */ - function cache_set_path($path = '') - { - $this->cachedir = $path; - } - - // -------------------------------------------------------------------- - - /** - * Enable Query Caching - * - * @access public - * @return void - */ - function cache_on() - { - $this->cache_on = TRUE; - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Disable Query Caching - * - * @access public - * @return void - */ - function cache_off() - { - $this->cache_on = FALSE; - return FALSE; - } - - - // -------------------------------------------------------------------- - - /** - * Delete the cache files associated with a particular URI - * - * @access public - * @return void - */ - function cache_delete($segment_one = '', $segment_two = '') - { - if ( ! $this->_cache_init()) - { - return FALSE; - } - return $this->CACHE->delete($segment_one, $segment_two); - } - - // -------------------------------------------------------------------- - - /** - * Delete All cache files - * - * @access public - * @return void - */ - function cache_delete_all() - { - if ( ! $this->_cache_init()) - { - return FALSE; - } - - return $this->CACHE->delete_all(); - } - - // -------------------------------------------------------------------- - - /** - * Initialize the Cache Class - * - * @access private - * @return void - */ - function _cache_init() - { - if (is_object($this->CACHE) AND class_exists('CI_DB_Cache')) - { - return TRUE; - } - - if ( ! class_exists('CI_DB_Cache')) - { - if ( ! @include(BASEPATH.'database/DB_cache.php')) - { - return $this->cache_off(); - } - } - - $this->CACHE = new CI_DB_Cache($this); // pass db object to support multiple db connections and returned db objects - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Close DB Connection - * - * @access public - * @return void - */ - function close() - { - if (is_resource($this->conn_id) OR is_object($this->conn_id)) - { - $this->_close($this->conn_id); - } - $this->conn_id = FALSE; - } - - // -------------------------------------------------------------------- - - /** - * Display an error message - * - * @access public - * @param string the error message - * @param string any "swap" values - * @param boolean whether to localize the message - * @return string sends the application/error_db.php template - */ - function display_error($error = '', $swap = '', $native = FALSE) - { - $LANG =& load_class('Lang', 'core'); - $LANG->load('db'); - - $heading = $LANG->line('db_error_heading'); - - if ($native == TRUE) - { - $message = $error; - } - else - { - $message = ( ! is_array($error)) ? array(str_replace('%s', $swap, $LANG->line($error))) : $error; - } - - // Find the most likely culprit of the error by going through - // the backtrace until the source file is no longer in the - // database folder. - - $trace = debug_backtrace(); - - foreach ($trace as $call) - { - if (isset($call['file']) && strpos($call['file'], BASEPATH.'database') === FALSE) - { - // Found it - use a relative path for safety - $message[] = 'Filename: '.str_replace(array(BASEPATH, APPPATH), '', $call['file']); - $message[] = 'Line Number: '.$call['line']; - - break; - } - } - - $error =& load_class('Exceptions', 'core'); - echo $error->show_error($heading, $message, 'error_db'); - exit; - } - - // -------------------------------------------------------------------- - - /** - * Protect Identifiers - * - * This function adds backticks if appropriate based on db type - * - * @access private - * @param mixed the item to escape - * @return mixed the item with backticks - */ - function protect_identifiers($item, $prefix_single = FALSE) - { - return $this->_protect_identifiers($item, $prefix_single); - } - - // -------------------------------------------------------------------- - - /** - * Protect Identifiers - * - * This function is used extensively by the Active Record class, and by - * a couple functions in this class. - * It takes a column or table name (optionally with an alias) and inserts - * the table prefix onto it. Some logic is necessary in order to deal with - * column names that include the path. Consider a query like this: - * - * SELECT * FROM hostname.database.table.column AS c FROM hostname.database.table - * - * Or a query with aliasing: - * - * SELECT m.member_id, m.member_name FROM members AS m - * - * Since the column name can include up to four segments (host, DB, table, column) - * or also have an alias prefix, we need to do a bit of work to figure this out and - * insert the table prefix (if it exists) in the proper position, and escape only - * the correct identifiers. - * - * @access private - * @param string - * @param bool - * @param mixed - * @param bool - * @return string - */ - function _protect_identifiers($item, $prefix_single = FALSE, $protect_identifiers = NULL, $field_exists = TRUE) - { - if ( ! is_bool($protect_identifiers)) - { - $protect_identifiers = $this->_protect_identifiers; - } - - if (is_array($item)) - { - $escaped_array = array(); - - foreach ($item as $k => $v) - { - $escaped_array[$this->_protect_identifiers($k)] = $this->_protect_identifiers($v); - } - - return $escaped_array; - } - - // Convert tabs or multiple spaces into single spaces - $item = preg_replace('/[\t ]+/', ' ', $item); - - // If the item has an alias declaration we remove it and set it aside. - // Basically we remove everything to the right of the first space - if (strpos($item, ' ') !== FALSE) - { - $alias = strstr($item, ' '); - $item = substr($item, 0, - strlen($alias)); - } - else - { - $alias = ''; - } - - // This is basically a bug fix for queries that use MAX, MIN, etc. - // If a parenthesis is found we know that we do not need to - // escape the data or add a prefix. There's probably a more graceful - // way to deal with this, but I'm not thinking of it -- Rick - if (strpos($item, '(') !== FALSE) - { - return $item.$alias; - } - - // Break the string apart if it contains periods, then insert the table prefix - // in the correct location, assuming the period doesn't indicate that we're dealing - // with an alias. While we're at it, we will escape the components - if (strpos($item, '.') !== FALSE) - { - $parts = explode('.', $item); - - // Does the first segment of the exploded item match - // one of the aliases previously identified? If so, - // we have nothing more to do other than escape the item - if (in_array($parts[0], $this->ar_aliased_tables)) - { - if ($protect_identifiers === TRUE) - { - foreach ($parts as $key => $val) - { - if ( ! in_array($val, $this->_reserved_identifiers)) - { - $parts[$key] = $this->_escape_identifiers($val); - } - } - - $item = implode('.', $parts); - } - return $item.$alias; - } - - // Is there a table prefix defined in the config file? If not, no need to do anything - if ($this->dbprefix != '') - { - // We now add the table prefix based on some logic. - // Do we have 4 segments (hostname.database.table.column)? - // If so, we add the table prefix to the column name in the 3rd segment. - if (isset($parts[3])) - { - $i = 2; - } - // Do we have 3 segments (database.table.column)? - // If so, we add the table prefix to the column name in 2nd position - elseif (isset($parts[2])) - { - $i = 1; - } - // Do we have 2 segments (table.column)? - // If so, we add the table prefix to the column name in 1st segment - else - { - $i = 0; - } - - // This flag is set when the supplied $item does not contain a field name. - // This can happen when this function is being called from a JOIN. - if ($field_exists == FALSE) - { - $i++; - } - - // Verify table prefix and replace if necessary - if ($this->swap_pre != '' && strncmp($parts[$i], $this->swap_pre, strlen($this->swap_pre)) === 0) - { - $parts[$i] = preg_replace("/^".$this->swap_pre."(\S+?)/", $this->dbprefix."\\1", $parts[$i]); - } - - // We only add the table prefix if it does not already exist - if (substr($parts[$i], 0, strlen($this->dbprefix)) != $this->dbprefix) - { - $parts[$i] = $this->dbprefix.$parts[$i]; - } - - // Put the parts back together - $item = implode('.', $parts); - } - - if ($protect_identifiers === TRUE) - { - $item = $this->_escape_identifiers($item); - } - - return $item.$alias; - } - - // Is there a table prefix? If not, no need to insert it - if ($this->dbprefix != '') - { - // Verify table prefix and replace if necessary - if ($this->swap_pre != '' && strncmp($item, $this->swap_pre, strlen($this->swap_pre)) === 0) - { - $item = preg_replace("/^".$this->swap_pre."(\S+?)/", $this->dbprefix."\\1", $item); - } - - // Do we prefix an item with no segments? - if ($prefix_single == TRUE AND substr($item, 0, strlen($this->dbprefix)) != $this->dbprefix) - { - $item = $this->dbprefix.$item; - } - } - - if ($protect_identifiers === TRUE AND ! in_array($item, $this->_reserved_identifiers)) - { - $item = $this->_escape_identifiers($item); - } - - return $item.$alias; - } - - // -------------------------------------------------------------------- - - /** - * Dummy method that allows Active Record class to be disabled - * - * This function is used extensively by every db driver. - * - * @return void - */ - protected function _reset_select() - { - } - -} - -/* End of file DB_driver.php */ -/* Location: ./system/database/DB_driver.php */ \ No newline at end of file diff --git a/sources/web/system/database/DB_forge.php b/sources/web/system/database/DB_forge.php deleted file mode 100644 index 6bc4041..0000000 --- a/sources/web/system/database/DB_forge.php +++ /dev/null @@ -1,382 +0,0 @@ -db - $CI =& get_instance(); - $this->db =& $CI->db; - log_message('debug', "Database Forge Class Initialized"); - } - - // -------------------------------------------------------------------- - - /** - * Create database - * - * @access public - * @param string the database name - * @return bool - */ - function create_database($db_name) - { - $sql = $this->_create_database($db_name); - - if (is_bool($sql)) - { - return $sql; - } - - return $this->db->query($sql); - } - - // -------------------------------------------------------------------- - - /** - * Drop database - * - * @access public - * @param string the database name - * @return bool - */ - function drop_database($db_name) - { - $sql = $this->_drop_database($db_name); - - if (is_bool($sql)) - { - return $sql; - } - - return $this->db->query($sql); - } - - // -------------------------------------------------------------------- - - /** - * Add Key - * - * @access public - * @param string key - * @param string type - * @return void - */ - function add_key($key = '', $primary = FALSE) - { - if (is_array($key)) - { - foreach ($key as $one) - { - $this->add_key($one, $primary); - } - - return; - } - - if ($key == '') - { - show_error('Key information is required for that operation.'); - } - - if ($primary === TRUE) - { - $this->primary_keys[] = $key; - } - else - { - $this->keys[] = $key; - } - } - - // -------------------------------------------------------------------- - - /** - * Add Field - * - * @access public - * @param string collation - * @return void - */ - function add_field($field = '') - { - if ($field == '') - { - show_error('Field information is required.'); - } - - if (is_string($field)) - { - if ($field == 'id') - { - $this->add_field(array( - 'id' => array( - 'type' => 'INT', - 'constraint' => 9, - 'auto_increment' => TRUE - ) - )); - $this->add_key('id', TRUE); - } - else - { - if (strpos($field, ' ') === FALSE) - { - show_error('Field information is required for that operation.'); - } - - $this->fields[] = $field; - } - } - - if (is_array($field)) - { - $this->fields = array_merge($this->fields, $field); - } - - } - - // -------------------------------------------------------------------- - - /** - * Create Table - * - * @access public - * @param string the table name - * @return bool - */ - function create_table($table = '', $if_not_exists = FALSE) - { - if ($table == '') - { - show_error('A table name is required for that operation.'); - } - - if (count($this->fields) == 0) - { - show_error('Field information is required.'); - } - - $sql = $this->_create_table($this->db->dbprefix.$table, $this->fields, $this->primary_keys, $this->keys, $if_not_exists); - - $this->_reset(); - return $this->db->query($sql); - } - - // -------------------------------------------------------------------- - - /** - * Drop Table - * - * @access public - * @param string the table name - * @return bool - */ - function drop_table($table_name) - { - $sql = $this->_drop_table($this->db->dbprefix.$table_name); - - if (is_bool($sql)) - { - return $sql; - } - - return $this->db->query($sql); - } - - // -------------------------------------------------------------------- - - /** - * Rename Table - * - * @access public - * @param string the old table name - * @param string the new table name - * @return bool - */ - function rename_table($table_name, $new_table_name) - { - if ($table_name == '' OR $new_table_name == '') - { - show_error('A table name is required for that operation.'); - } - - $sql = $this->_rename_table($this->db->dbprefix.$table_name, $this->db->dbprefix.$new_table_name); - return $this->db->query($sql); - } - - // -------------------------------------------------------------------- - - /** - * Column Add - * - * @access public - * @param string the table name - * @param string the column name - * @param string the column definition - * @return bool - */ - function add_column($table = '', $field = array(), $after_field = '') - { - if ($table == '') - { - show_error('A table name is required for that operation.'); - } - - // add field info into field array, but we can only do one at a time - // so we cycle through - - foreach ($field as $k => $v) - { - $this->add_field(array($k => $field[$k])); - - if (count($this->fields) == 0) - { - show_error('Field information is required.'); - } - - $sql = $this->_alter_table('ADD', $this->db->dbprefix.$table, $this->fields, $after_field); - - $this->_reset(); - - if ($this->db->query($sql) === FALSE) - { - return FALSE; - } - } - - return TRUE; - - } - - // -------------------------------------------------------------------- - - /** - * Column Drop - * - * @access public - * @param string the table name - * @param string the column name - * @return bool - */ - function drop_column($table = '', $column_name = '') - { - - if ($table == '') - { - show_error('A table name is required for that operation.'); - } - - if ($column_name == '') - { - show_error('A column name is required for that operation.'); - } - - $sql = $this->_alter_table('DROP', $this->db->dbprefix.$table, $column_name); - - return $this->db->query($sql); - } - - // -------------------------------------------------------------------- - - /** - * Column Modify - * - * @access public - * @param string the table name - * @param string the column name - * @param string the column definition - * @return bool - */ - function modify_column($table = '', $field = array()) - { - if ($table == '') - { - show_error('A table name is required for that operation.'); - } - - // add field info into field array, but we can only do one at a time - // so we cycle through - - foreach ($field as $k => $v) - { - // If no name provided, use the current name - if ( ! isset($field[$k]['name'])) - { - $field[$k]['name'] = $k; - } - - $this->add_field(array($k => $field[$k])); - - if (count($this->fields) == 0) - { - show_error('Field information is required.'); - } - - $sql = $this->_alter_table('CHANGE', $this->db->dbprefix.$table, $this->fields); - - $this->_reset(); - - if ($this->db->query($sql) === FALSE) - { - return FALSE; - } - } - - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Reset - * - * Resets table creation vars - * - * @access private - * @return void - */ - function _reset() - { - $this->fields = array(); - $this->keys = array(); - $this->primary_keys = array(); - } - -} - -/* End of file DB_forge.php */ -/* Location: ./system/database/DB_forge.php */ \ No newline at end of file diff --git a/sources/web/system/database/DB_result.php b/sources/web/system/database/DB_result.php deleted file mode 100644 index 48d66c8..0000000 --- a/sources/web/system/database/DB_result.php +++ /dev/null @@ -1,410 +0,0 @@ -result_array(); - else if ($type == 'object') return $this->result_object(); - else return $this->custom_result_object($type); - } - - // -------------------------------------------------------------------- - - /** - * Custom query result. - * - * @param class_name A string that represents the type of object you want back - * @return array of objects - */ - public function custom_result_object($class_name) - { - if (array_key_exists($class_name, $this->custom_result_object)) - { - return $this->custom_result_object[$class_name]; - } - - if ($this->result_id === FALSE OR $this->num_rows() == 0) - { - return array(); - } - - // add the data to the object - $this->_data_seek(0); - $result_object = array(); - - while ($row = $this->_fetch_object()) - { - $object = new $class_name(); - - foreach ($row as $key => $value) - { - $object->$key = $value; - } - - $result_object[] = $object; - } - - // return the array - return $this->custom_result_object[$class_name] = $result_object; - } - - // -------------------------------------------------------------------- - - /** - * Query result. "object" version. - * - * @access public - * @return object - */ - public function result_object() - { - if (count($this->result_object) > 0) - { - return $this->result_object; - } - - // In the event that query caching is on the result_id variable - // will return FALSE since there isn't a valid SQL resource so - // we'll simply return an empty array. - if ($this->result_id === FALSE OR $this->num_rows() == 0) - { - return array(); - } - - $this->_data_seek(0); - while ($row = $this->_fetch_object()) - { - $this->result_object[] = $row; - } - - return $this->result_object; - } - - // -------------------------------------------------------------------- - - /** - * Query result. "array" version. - * - * @access public - * @return array - */ - public function result_array() - { - if (count($this->result_array) > 0) - { - return $this->result_array; - } - - // In the event that query caching is on the result_id variable - // will return FALSE since there isn't a valid SQL resource so - // we'll simply return an empty array. - if ($this->result_id === FALSE OR $this->num_rows() == 0) - { - return array(); - } - - $this->_data_seek(0); - while ($row = $this->_fetch_assoc()) - { - $this->result_array[] = $row; - } - - return $this->result_array; - } - - // -------------------------------------------------------------------- - - /** - * Query result. Acts as a wrapper function for the following functions. - * - * @access public - * @param string - * @param string can be "object" or "array" - * @return mixed either a result object or array - */ - public function row($n = 0, $type = 'object') - { - if ( ! is_numeric($n)) - { - // We cache the row data for subsequent uses - if ( ! is_array($this->row_data)) - { - $this->row_data = $this->row_array(0); - } - - // array_key_exists() instead of isset() to allow for MySQL NULL values - if (array_key_exists($n, $this->row_data)) - { - return $this->row_data[$n]; - } - // reset the $n variable if the result was not achieved - $n = 0; - } - - if ($type == 'object') return $this->row_object($n); - else if ($type == 'array') return $this->row_array($n); - else return $this->custom_row_object($n, $type); - } - - // -------------------------------------------------------------------- - - /** - * Assigns an item into a particular column slot - * - * @access public - * @return object - */ - public function set_row($key, $value = NULL) - { - // We cache the row data for subsequent uses - if ( ! is_array($this->row_data)) - { - $this->row_data = $this->row_array(0); - } - - if (is_array($key)) - { - foreach ($key as $k => $v) - { - $this->row_data[$k] = $v; - } - - return; - } - - if ($key != '' AND ! is_null($value)) - { - $this->row_data[$key] = $value; - } - } - - // -------------------------------------------------------------------- - - /** - * Returns a single result row - custom object version - * - * @access public - * @return object - */ - public function custom_row_object($n, $type) - { - $result = $this->custom_result_object($type); - - if (count($result) == 0) - { - return $result; - } - - if ($n != $this->current_row AND isset($result[$n])) - { - $this->current_row = $n; - } - - return $result[$this->current_row]; - } - - /** - * Returns a single result row - object version - * - * @access public - * @return object - */ - public function row_object($n = 0) - { - $result = $this->result_object(); - - if (count($result) == 0) - { - return $result; - } - - if ($n != $this->current_row AND isset($result[$n])) - { - $this->current_row = $n; - } - - return $result[$this->current_row]; - } - - // -------------------------------------------------------------------- - - /** - * Returns a single result row - array version - * - * @access public - * @return array - */ - public function row_array($n = 0) - { - $result = $this->result_array(); - - if (count($result) == 0) - { - return $result; - } - - if ($n != $this->current_row AND isset($result[$n])) - { - $this->current_row = $n; - } - - return $result[$this->current_row]; - } - - - // -------------------------------------------------------------------- - - /** - * Returns the "first" row - * - * @access public - * @return object - */ - public function first_row($type = 'object') - { - $result = $this->result($type); - - if (count($result) == 0) - { - return $result; - } - return $result[0]; - } - - // -------------------------------------------------------------------- - - /** - * Returns the "last" row - * - * @access public - * @return object - */ - public function last_row($type = 'object') - { - $result = $this->result($type); - - if (count($result) == 0) - { - return $result; - } - return $result[count($result) -1]; - } - - // -------------------------------------------------------------------- - - /** - * Returns the "next" row - * - * @access public - * @return object - */ - public function next_row($type = 'object') - { - $result = $this->result($type); - - if (count($result) == 0) - { - return $result; - } - - if (isset($result[$this->current_row + 1])) - { - ++$this->current_row; - } - - return $result[$this->current_row]; - } - - // -------------------------------------------------------------------- - - /** - * Returns the "previous" row - * - * @access public - * @return object - */ - public function previous_row($type = 'object') - { - $result = $this->result($type); - - if (count($result) == 0) - { - return $result; - } - - if (isset($result[$this->current_row - 1])) - { - --$this->current_row; - } - return $result[$this->current_row]; - } - - // -------------------------------------------------------------------- - - /** - * The following functions are normally overloaded by the identically named - * methods in the platform-specific driver -- except when query caching - * is used. When caching is enabled we do not load the other driver. - * These functions are primarily here to prevent undefined function errors - * when a cached result object is in use. They are not otherwise fully - * operational due to the unavailability of the database resource IDs with - * cached results. - */ - public function num_rows() { return $this->num_rows; } - public function num_fields() { return 0; } - public function list_fields() { return array(); } - public function field_data() { return array(); } - public function free_result() { return TRUE; } - protected function _data_seek() { return TRUE; } - protected function _fetch_assoc() { return array(); } - protected function _fetch_object() { return array(); } - -} -// END DB_result class - -/* End of file DB_result.php */ -/* Location: ./system/database/DB_result.php */ diff --git a/sources/web/system/database/DB_utility.php b/sources/web/system/database/DB_utility.php deleted file mode 100644 index 52196b7..0000000 --- a/sources/web/system/database/DB_utility.php +++ /dev/null @@ -1,414 +0,0 @@ -db - $CI =& get_instance(); - $this->db =& $CI->db; - - log_message('debug', "Database Utility Class Initialized"); - } - - // -------------------------------------------------------------------- - - /** - * List databases - * - * @access public - * @return bool - */ - function list_databases() - { - // Is there a cached result? - if (isset($this->data_cache['db_names'])) - { - return $this->data_cache['db_names']; - } - - $query = $this->db->query($this->_list_databases()); - $dbs = array(); - if ($query->num_rows() > 0) - { - foreach ($query->result_array() as $row) - { - $dbs[] = current($row); - } - } - - $this->data_cache['db_names'] = $dbs; - return $this->data_cache['db_names']; - } - - // -------------------------------------------------------------------- - - /** - * Determine if a particular database exists - * - * @access public - * @param string - * @return boolean - */ - function database_exists($database_name) - { - // Some databases won't have access to the list_databases() function, so - // this is intended to allow them to override with their own functions as - // defined in $driver_utility.php - if (method_exists($this, '_database_exists')) - { - return $this->_database_exists($database_name); - } - else - { - return ( ! in_array($database_name, $this->list_databases())) ? FALSE : TRUE; - } - } - - - // -------------------------------------------------------------------- - - /** - * Optimize Table - * - * @access public - * @param string the table name - * @return bool - */ - function optimize_table($table_name) - { - $sql = $this->_optimize_table($table_name); - - if (is_bool($sql)) - { - show_error('db_must_use_set'); - } - - $query = $this->db->query($sql); - $res = $query->result_array(); - - // Note: Due to a bug in current() that affects some versions - // of PHP we can not pass function call directly into it - return current($res); - } - - // -------------------------------------------------------------------- - - /** - * Optimize Database - * - * @access public - * @return array - */ - function optimize_database() - { - $result = array(); - foreach ($this->db->list_tables() as $table_name) - { - $sql = $this->_optimize_table($table_name); - - if (is_bool($sql)) - { - return $sql; - } - - $query = $this->db->query($sql); - - // Build the result array... - // Note: Due to a bug in current() that affects some versions - // of PHP we can not pass function call directly into it - $res = $query->result_array(); - $res = current($res); - $key = str_replace($this->db->database.'.', '', current($res)); - $keys = array_keys($res); - unset($res[$keys[0]]); - - $result[$key] = $res; - } - - return $result; - } - - // -------------------------------------------------------------------- - - /** - * Repair Table - * - * @access public - * @param string the table name - * @return bool - */ - function repair_table($table_name) - { - $sql = $this->_repair_table($table_name); - - if (is_bool($sql)) - { - return $sql; - } - - $query = $this->db->query($sql); - - // Note: Due to a bug in current() that affects some versions - // of PHP we can not pass function call directly into it - $res = $query->result_array(); - return current($res); - } - - // -------------------------------------------------------------------- - - /** - * Generate CSV from a query result object - * - * @access public - * @param object The query result object - * @param string The delimiter - comma by default - * @param string The newline character - \n by default - * @param string The enclosure - double quote by default - * @return string - */ - function csv_from_result($query, $delim = ",", $newline = "\n", $enclosure = '"') - { - if ( ! is_object($query) OR ! method_exists($query, 'list_fields')) - { - show_error('You must submit a valid result object'); - } - - $out = ''; - - // First generate the headings from the table column names - foreach ($query->list_fields() as $name) - { - $out .= $enclosure.str_replace($enclosure, $enclosure.$enclosure, $name).$enclosure.$delim; - } - - $out = rtrim($out); - $out .= $newline; - - // Next blast through the result array and build out the rows - foreach ($query->result_array() as $row) - { - foreach ($row as $item) - { - $out .= $enclosure.str_replace($enclosure, $enclosure.$enclosure, $item).$enclosure.$delim; - } - $out = rtrim($out); - $out .= $newline; - } - - return $out; - } - - // -------------------------------------------------------------------- - - /** - * Generate XML data from a query result object - * - * @access public - * @param object The query result object - * @param array Any preferences - * @return string - */ - function xml_from_result($query, $params = array()) - { - if ( ! is_object($query) OR ! method_exists($query, 'list_fields')) - { - show_error('You must submit a valid result object'); - } - - // Set our default values - foreach (array('root' => 'root', 'element' => 'element', 'newline' => "\n", 'tab' => "\t") as $key => $val) - { - if ( ! isset($params[$key])) - { - $params[$key] = $val; - } - } - - // Create variables for convenience - extract($params); - - // Load the xml helper - $CI =& get_instance(); - $CI->load->helper('xml'); - - // Generate the result - $xml = "<{$root}>".$newline; - foreach ($query->result_array() as $row) - { - $xml .= $tab."<{$element}>".$newline; - - foreach ($row as $key => $val) - { - $xml .= $tab.$tab."<{$key}>".xml_convert($val)."".$newline; - } - $xml .= $tab."".$newline; - } - $xml .= "".$newline; - - return $xml; - } - - // -------------------------------------------------------------------- - - /** - * Database Backup - * - * @access public - * @return void - */ - function backup($params = array()) - { - // If the parameters have not been submitted as an - // array then we know that it is simply the table - // name, which is a valid short cut. - if (is_string($params)) - { - $params = array('tables' => $params); - } - - // ------------------------------------------------------ - - // Set up our default preferences - $prefs = array( - 'tables' => array(), - 'ignore' => array(), - 'filename' => '', - 'format' => 'gzip', // gzip, zip, txt - 'add_drop' => TRUE, - 'add_insert' => TRUE, - 'newline' => "\n" - ); - - // Did the user submit any preferences? If so set them.... - if (count($params) > 0) - { - foreach ($prefs as $key => $val) - { - if (isset($params[$key])) - { - $prefs[$key] = $params[$key]; - } - } - } - - // ------------------------------------------------------ - - // Are we backing up a complete database or individual tables? - // If no table names were submitted we'll fetch the entire table list - if (count($prefs['tables']) == 0) - { - $prefs['tables'] = $this->db->list_tables(); - } - - // ------------------------------------------------------ - - // Validate the format - if ( ! in_array($prefs['format'], array('gzip', 'zip', 'txt'), TRUE)) - { - $prefs['format'] = 'txt'; - } - - // ------------------------------------------------------ - - // Is the encoder supported? If not, we'll either issue an - // error or use plain text depending on the debug settings - if (($prefs['format'] == 'gzip' AND ! @function_exists('gzencode')) - OR ($prefs['format'] == 'zip' AND ! @function_exists('gzcompress'))) - { - if ($this->db->db_debug) - { - return $this->db->display_error('db_unsuported_compression'); - } - - $prefs['format'] = 'txt'; - } - - // ------------------------------------------------------ - - // Set the filename if not provided - Only needed with Zip files - if ($prefs['filename'] == '' AND $prefs['format'] == 'zip') - { - $prefs['filename'] = (count($prefs['tables']) == 1) ? $prefs['tables'] : $this->db->database; - $prefs['filename'] .= '_'.date('Y-m-d_H-i', time()); - } - - // ------------------------------------------------------ - - // Was a Gzip file requested? - if ($prefs['format'] == 'gzip') - { - return gzencode($this->_backup($prefs)); - } - - // ------------------------------------------------------ - - // Was a text file requested? - if ($prefs['format'] == 'txt') - { - return $this->_backup($prefs); - } - - // ------------------------------------------------------ - - // Was a Zip file requested? - if ($prefs['format'] == 'zip') - { - // If they included the .zip file extension we'll remove it - if (preg_match("|.+?\.zip$|", $prefs['filename'])) - { - $prefs['filename'] = str_replace('.zip', '', $prefs['filename']); - } - - // Tack on the ".sql" file extension if needed - if ( ! preg_match("|.+?\.sql$|", $prefs['filename'])) - { - $prefs['filename'] .= '.sql'; - } - - // Load the Zip class and output it - - $CI =& get_instance(); - $CI->load->library('zip'); - $CI->zip->add_data($prefs['filename'], $this->_backup($prefs)); - return $CI->zip->get_zip(); - } - - } - -} - - -/* End of file DB_utility.php */ -/* Location: ./system/database/DB_utility.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/cubrid/cubrid_driver.php b/sources/web/system/database/drivers/cubrid/cubrid_driver.php deleted file mode 100644 index d011404..0000000 --- a/sources/web/system/database/drivers/cubrid/cubrid_driver.php +++ /dev/null @@ -1,792 +0,0 @@ -port == '') - { - $this->port = self::DEFAULT_PORT; - } - - $conn = cubrid_connect($this->hostname, $this->port, $this->database, $this->username, $this->password); - - if ($conn) - { - // Check if a user wants to run queries in dry, i.e. run the - // queries but not commit them. - if (isset($this->auto_commit) && ! $this->auto_commit) - { - cubrid_set_autocommit($conn, CUBRID_AUTOCOMMIT_FALSE); - } - else - { - cubrid_set_autocommit($conn, CUBRID_AUTOCOMMIT_TRUE); - $this->auto_commit = TRUE; - } - } - - return $conn; - } - - // -------------------------------------------------------------------- - - /** - * Persistent database connection - * In CUBRID persistent DB connection is supported natively in CUBRID - * engine which can be configured in the CUBRID Broker configuration - * file by setting the CCI_PCONNECT parameter to ON. In that case, all - * connections established between the client application and the - * server will become persistent. This is calling the same - * @cubrid_connect function will establish persisten connection - * considering that the CCI_PCONNECT is ON. - * - * @access private called by the base class - * @return resource - */ - function db_pconnect() - { - return $this->db_connect(); - } - - // -------------------------------------------------------------------- - - /** - * Reconnect - * - * Keep / reestablish the db connection if no queries have been - * sent for a length of time exceeding the server's idle timeout - * - * @access public - * @return void - */ - function reconnect() - { - if (cubrid_ping($this->conn_id) === FALSE) - { - $this->conn_id = FALSE; - } - } - - // -------------------------------------------------------------------- - - /** - * Select the database - * - * @access private called by the base class - * @return resource - */ - function db_select() - { - // In CUBRID there is no need to select a database as the database - // is chosen at the connection time. - // So, to determine if the database is "selected", all we have to - // do is ping the server and return that value. - return cubrid_ping($this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * Set client character set - * - * @access public - * @param string - * @param string - * @return resource - */ - function db_set_charset($charset, $collation) - { - // In CUBRID, there is no need to set charset or collation. - // This is why returning true will allow the application continue - // its normal process. - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Version number query string - * - * @access public - * @return string - */ - function _version() - { - // To obtain the CUBRID Server version, no need to run the SQL query. - // CUBRID PHP API provides a function to determin this value. - // This is why we also need to add 'cubrid' value to the list of - // $driver_version_exceptions array in DB_driver class in - // version() function. - return cubrid_get_server_info($this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * Execute the query - * - * @access private called by the base class - * @param string an SQL query - * @return resource - */ - function _execute($sql) - { - $sql = $this->_prep_query($sql); - return @cubrid_query($sql, $this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * Prep the query - * - * If needed, each database adapter can prep the query string - * - * @access private called by execute() - * @param string an SQL query - * @return string - */ - function _prep_query($sql) - { - // No need to prepare - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Begin Transaction - * - * @access public - * @return bool - */ - function trans_begin($test_mode = FALSE) - { - if ( ! $this->trans_enabled) - { - return TRUE; - } - - // When transactions are nested we only begin/commit/rollback the outermost ones - if ($this->_trans_depth > 0) - { - return TRUE; - } - - // Reset the transaction failure flag. - // If the $test_mode flag is set to TRUE transactions will be rolled back - // even if the queries produce a successful result. - $this->_trans_failure = ($test_mode === TRUE) ? TRUE : FALSE; - - if (cubrid_get_autocommit($this->conn_id)) - { - cubrid_set_autocommit($this->conn_id, CUBRID_AUTOCOMMIT_FALSE); - } - - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Commit Transaction - * - * @access public - * @return bool - */ - function trans_commit() - { - if ( ! $this->trans_enabled) - { - return TRUE; - } - - // When transactions are nested we only begin/commit/rollback the outermost ones - if ($this->_trans_depth > 0) - { - return TRUE; - } - - cubrid_commit($this->conn_id); - - if ($this->auto_commit && ! cubrid_get_autocommit($this->conn_id)) - { - cubrid_set_autocommit($this->conn_id, CUBRID_AUTOCOMMIT_TRUE); - } - - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Rollback Transaction - * - * @access public - * @return bool - */ - function trans_rollback() - { - if ( ! $this->trans_enabled) - { - return TRUE; - } - - // When transactions are nested we only begin/commit/rollback the outermost ones - if ($this->_trans_depth > 0) - { - return TRUE; - } - - cubrid_rollback($this->conn_id); - - if ($this->auto_commit && ! cubrid_get_autocommit($this->conn_id)) - { - cubrid_set_autocommit($this->conn_id, CUBRID_AUTOCOMMIT_TRUE); - } - - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Escape String - * - * @access public - * @param string - * @param bool whether or not the string will be used in a LIKE condition - * @return string - */ - function escape_str($str, $like = FALSE) - { - if (is_array($str)) - { - foreach ($str as $key => $val) - { - $str[$key] = $this->escape_str($val, $like); - } - - return $str; - } - - if (function_exists('cubrid_real_escape_string') AND is_resource($this->conn_id)) - { - $str = cubrid_real_escape_string($str, $this->conn_id); - } - else - { - $str = addslashes($str); - } - - // escape LIKE condition wildcards - if ($like === TRUE) - { - $str = str_replace(array('%', '_'), array('\\%', '\\_'), $str); - } - - return $str; - } - - // -------------------------------------------------------------------- - - /** - * Affected Rows - * - * @access public - * @return integer - */ - function affected_rows() - { - return @cubrid_affected_rows($this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * Insert ID - * - * @access public - * @return integer - */ - function insert_id() - { - return @cubrid_insert_id($this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * "Count All" query - * - * Generates a platform-specific query string that counts all records in - * the specified table - * - * @access public - * @param string - * @return string - */ - function count_all($table = '') - { - if ($table == '') - { - return 0; - } - - $query = $this->query($this->_count_string . $this->_protect_identifiers('numrows') . " FROM " . $this->_protect_identifiers($table, TRUE, NULL, FALSE)); - - if ($query->num_rows() == 0) - { - return 0; - } - - $row = $query->row(); - $this->_reset_select(); - return (int) $row->numrows; - } - - // -------------------------------------------------------------------- - - /** - * List table query - * - * Generates a platform-specific query string so that the table names can be fetched - * - * @access private - * @param boolean - * @return string - */ - function _list_tables($prefix_limit = FALSE) - { - $sql = "SHOW TABLES"; - - if ($prefix_limit !== FALSE AND $this->dbprefix != '') - { - $sql .= " LIKE '".$this->escape_like_str($this->dbprefix)."%'"; - } - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Show column query - * - * Generates a platform-specific query string so that the column names can be fetched - * - * @access public - * @param string the table name - * @return string - */ - function _list_columns($table = '') - { - return "SHOW COLUMNS FROM ".$this->_protect_identifiers($table, TRUE, NULL, FALSE); - } - - // -------------------------------------------------------------------- - - /** - * Field data query - * - * Generates a platform-specific query so that the column data can be retrieved - * - * @access public - * @param string the table name - * @return object - */ - function _field_data($table) - { - return "SELECT * FROM ".$table." LIMIT 1"; - } - - // -------------------------------------------------------------------- - - /** - * The error message string - * - * @access private - * @return string - */ - function _error_message() - { - return cubrid_error($this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * The error message number - * - * @access private - * @return integer - */ - function _error_number() - { - return cubrid_errno($this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * Escape the SQL Identifiers - * - * This function escapes column and table names - * - * @access private - * @param string - * @return string - */ - function _escape_identifiers($item) - { - if ($this->_escape_char == '') - { - return $item; - } - - foreach ($this->_reserved_identifiers as $id) - { - if (strpos($item, '.'.$id) !== FALSE) - { - $str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item); - - // remove duplicates if the user already included the escape - return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); - } - } - - if (strpos($item, '.') !== FALSE) - { - $str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char; - } - else - { - $str = $this->_escape_char.$item.$this->_escape_char; - } - - // remove duplicates if the user already included the escape - return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); - } - - // -------------------------------------------------------------------- - - /** - * From Tables - * - * This function implicitly groups FROM tables so there is no confusion - * about operator precedence in harmony with SQL standards - * - * @access public - * @param type - * @return type - */ - function _from_tables($tables) - { - if ( ! is_array($tables)) - { - $tables = array($tables); - } - - return '('.implode(', ', $tables).')'; - } - - // -------------------------------------------------------------------- - - /** - * Insert statement - * - * Generates a platform-specific insert string from the supplied data - * - * @access public - * @param string the table name - * @param array the insert keys - * @param array the insert values - * @return string - */ - function _insert($table, $keys, $values) - { - return "INSERT INTO ".$table." (\"".implode('", "', $keys)."\") VALUES (".implode(', ', $values).")"; - } - - // -------------------------------------------------------------------- - - - /** - * Replace statement - * - * Generates a platform-specific replace string from the supplied data - * - * @access public - * @param string the table name - * @param array the insert keys - * @param array the insert values - * @return string - */ - function _replace($table, $keys, $values) - { - return "REPLACE INTO ".$table." (\"".implode('", "', $keys)."\") VALUES (".implode(', ', $values).")"; - } - - // -------------------------------------------------------------------- - - /** - * Insert_batch statement - * - * Generates a platform-specific insert string from the supplied data - * - * @access public - * @param string the table name - * @param array the insert keys - * @param array the insert values - * @return string - */ - function _insert_batch($table, $keys, $values) - { - return "INSERT INTO ".$table." (\"".implode('", "', $keys)."\") VALUES ".implode(', ', $values); - } - - // -------------------------------------------------------------------- - - - /** - * Update statement - * - * Generates a platform-specific update string from the supplied data - * - * @access public - * @param string the table name - * @param array the update data - * @param array the where clause - * @param array the orderby clause - * @param array the limit clause - * @return string - */ - function _update($table, $values, $where, $orderby = array(), $limit = FALSE) - { - foreach ($values as $key => $val) - { - $valstr[] = sprintf('"%s" = %s', $key, $val); - } - - $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; - - $orderby = (count($orderby) >= 1)?' ORDER BY '.implode(", ", $orderby):''; - - $sql = "UPDATE ".$table." SET ".implode(', ', $valstr); - - $sql .= ($where != '' AND count($where) >=1) ? " WHERE ".implode(" ", $where) : ''; - - $sql .= $orderby.$limit; - - return $sql; - } - - // -------------------------------------------------------------------- - - - /** - * Update_Batch statement - * - * Generates a platform-specific batch update string from the supplied data - * - * @access public - * @param string the table name - * @param array the update data - * @param array the where clause - * @return string - */ - function _update_batch($table, $values, $index, $where = NULL) - { - $ids = array(); - $where = ($where != '' AND count($where) >=1) ? implode(" ", $where).' AND ' : ''; - - foreach ($values as $key => $val) - { - $ids[] = $val[$index]; - - foreach (array_keys($val) as $field) - { - if ($field != $index) - { - $final[$field][] = 'WHEN '.$index.' = '.$val[$index].' THEN '.$val[$field]; - } - } - } - - $sql = "UPDATE ".$table." SET "; - $cases = ''; - - foreach ($final as $k => $v) - { - $cases .= $k.' = CASE '."\n"; - foreach ($v as $row) - { - $cases .= $row."\n"; - } - - $cases .= 'ELSE '.$k.' END, '; - } - - $sql .= substr($cases, 0, -2); - - $sql .= ' WHERE '.$where.$index.' IN ('.implode(',', $ids).')'; - - return $sql; - } - - // -------------------------------------------------------------------- - - - /** - * Truncate statement - * - * Generates a platform-specific truncate string from the supplied data - * If the database does not support the truncate() command - * This function maps to "DELETE FROM table" - * - * @access public - * @param string the table name - * @return string - */ - function _truncate($table) - { - return "TRUNCATE ".$table; - } - - // -------------------------------------------------------------------- - - /** - * Delete statement - * - * Generates a platform-specific delete string from the supplied data - * - * @access public - * @param string the table name - * @param array the where clause - * @param string the limit clause - * @return string - */ - function _delete($table, $where = array(), $like = array(), $limit = FALSE) - { - $conditions = ''; - - if (count($where) > 0 OR count($like) > 0) - { - $conditions = "\nWHERE "; - $conditions .= implode("\n", $this->ar_where); - - if (count($where) > 0 && count($like) > 0) - { - $conditions .= " AND "; - } - $conditions .= implode("\n", $like); - } - - $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; - - return "DELETE FROM ".$table.$conditions.$limit; - } - - // -------------------------------------------------------------------- - - /** - * Limit string - * - * Generates a platform-specific LIMIT clause - * - * @access public - * @param string the sql query string - * @param integer the number of rows to limit the query to - * @param integer the offset value - * @return string - */ - function _limit($sql, $limit, $offset) - { - if ($offset == 0) - { - $offset = ''; - } - else - { - $offset .= ", "; - } - - return $sql."LIMIT ".$offset.$limit; - } - - // -------------------------------------------------------------------- - - /** - * Close DB Connection - * - * @access public - * @param resource - * @return void - */ - function _close($conn_id) - { - @cubrid_close($conn_id); - } - -} - - -/* End of file cubrid_driver.php */ -/* Location: ./system/database/drivers/cubrid/cubrid_driver.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/cubrid/cubrid_forge.php b/sources/web/system/database/drivers/cubrid/cubrid_forge.php deleted file mode 100644 index bab03f7..0000000 --- a/sources/web/system/database/drivers/cubrid/cubrid_forge.php +++ /dev/null @@ -1,288 +0,0 @@ -$attributes) - { - // Numeric field names aren't allowed in databases, so if the key is - // numeric, we know it was assigned by PHP and the developer manually - // entered the field information, so we'll simply add it to the list - if (is_numeric($field)) - { - $sql .= "\n\t$attributes"; - } - else - { - $attributes = array_change_key_case($attributes, CASE_UPPER); - - $sql .= "\n\t\"" . $this->db->_protect_identifiers($field) . "\""; - - if (array_key_exists('NAME', $attributes)) - { - $sql .= ' '.$this->db->_protect_identifiers($attributes['NAME']).' '; - } - - if (array_key_exists('TYPE', $attributes)) - { - $sql .= ' '.$attributes['TYPE']; - - if (array_key_exists('CONSTRAINT', $attributes)) - { - switch ($attributes['TYPE']) - { - case 'decimal': - case 'float': - case 'numeric': - $sql .= '('.implode(',', $attributes['CONSTRAINT']).')'; - break; - case 'enum': // As of version 8.4.0 CUBRID does not support - // enum data type. - break; - case 'set': - $sql .= '("'.implode('","', $attributes['CONSTRAINT']).'")'; - break; - default: - $sql .= '('.$attributes['CONSTRAINT'].')'; - } - } - } - - if (array_key_exists('UNSIGNED', $attributes) && $attributes['UNSIGNED'] === TRUE) - { - //$sql .= ' UNSIGNED'; - // As of version 8.4.0 CUBRID does not support UNSIGNED INTEGER data type. - // Will be supported in the next release as a part of MySQL Compatibility. - } - - if (array_key_exists('DEFAULT', $attributes)) - { - $sql .= ' DEFAULT \''.$attributes['DEFAULT'].'\''; - } - - if (array_key_exists('NULL', $attributes) && $attributes['NULL'] === TRUE) - { - $sql .= ' NULL'; - } - else - { - $sql .= ' NOT NULL'; - } - - if (array_key_exists('AUTO_INCREMENT', $attributes) && $attributes['AUTO_INCREMENT'] === TRUE) - { - $sql .= ' AUTO_INCREMENT'; - } - - if (array_key_exists('UNIQUE', $attributes) && $attributes['UNIQUE'] === TRUE) - { - $sql .= ' UNIQUE'; - } - } - - // don't add a comma on the end of the last field - if (++$current_field_count < count($fields)) - { - $sql .= ','; - } - } - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Create Table - * - * @access private - * @param string the table name - * @param mixed the fields - * @param mixed primary key(s) - * @param mixed key(s) - * @param boolean should 'IF NOT EXISTS' be added to the SQL - * @return bool - */ - function _create_table($table, $fields, $primary_keys, $keys, $if_not_exists) - { - $sql = 'CREATE TABLE '; - - if ($if_not_exists === TRUE) - { - //$sql .= 'IF NOT EXISTS '; - // As of version 8.4.0 CUBRID does not support this SQL syntax. - } - - $sql .= $this->db->_escape_identifiers($table)." ("; - - $sql .= $this->_process_fields($fields); - - // If there is a PK defined - if (count($primary_keys) > 0) - { - $key_name = "pk_" . $table . "_" . - $this->db->_protect_identifiers(implode('_', $primary_keys)); - - $primary_keys = $this->db->_protect_identifiers($primary_keys); - $sql .= ",\n\tCONSTRAINT " . $key_name . " PRIMARY KEY(" . implode(', ', $primary_keys) . ")"; - } - - if (is_array($keys) && count($keys) > 0) - { - foreach ($keys as $key) - { - if (is_array($key)) - { - $key_name = $this->db->_protect_identifiers(implode('_', $key)); - $key = $this->db->_protect_identifiers($key); - } - else - { - $key_name = $this->db->_protect_identifiers($key); - $key = array($key_name); - } - - $sql .= ",\n\tKEY \"{$key_name}\" (" . implode(', ', $key) . ")"; - } - } - - $sql .= "\n);"; - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Drop Table - * - * @access private - * @return string - */ - function _drop_table($table) - { - return "DROP TABLE IF EXISTS ".$this->db->_escape_identifiers($table); - } - - // -------------------------------------------------------------------- - - /** - * Alter table query - * - * Generates a platform-specific query so that a table can be altered - * Called by add_column(), drop_column(), and column_alter(), - * - * @access private - * @param string the ALTER type (ADD, DROP, CHANGE) - * @param string the column name - * @param array fields - * @param string the field after which we should add the new field - * @return object - */ - function _alter_table($alter_type, $table, $fields, $after_field = '') - { - $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table)." $alter_type "; - - // DROP has everything it needs now. - if ($alter_type == 'DROP') - { - return $sql.$this->db->_protect_identifiers($fields); - } - - $sql .= $this->_process_fields($fields); - - if ($after_field != '') - { - $sql .= ' AFTER ' . $this->db->_protect_identifiers($after_field); - } - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Rename a table - * - * Generates a platform-specific query so that a table can be renamed - * - * @access private - * @param string the old table name - * @param string the new table name - * @return string - */ - function _rename_table($table_name, $new_table_name) - { - $sql = 'RENAME TABLE '.$this->db->_protect_identifiers($table_name)." AS ".$this->db->_protect_identifiers($new_table_name); - return $sql; - } - -} - -/* End of file cubrid_forge.php */ -/* Location: ./system/database/drivers/cubrid/cubrid_forge.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/cubrid/cubrid_result.php b/sources/web/system/database/drivers/cubrid/cubrid_result.php deleted file mode 100644 index 6f0c2b5..0000000 --- a/sources/web/system/database/drivers/cubrid/cubrid_result.php +++ /dev/null @@ -1,202 +0,0 @@ -result_id); - } - - // -------------------------------------------------------------------- - - /** - * Number of fields in the result set - * - * @access public - * @return integer - */ - function num_fields() - { - return @cubrid_num_fields($this->result_id); - } - - // -------------------------------------------------------------------- - - /** - * Fetch Field Names - * - * Generates an array of column names - * - * @access public - * @return array - */ - function list_fields() - { - return cubrid_column_names($this->result_id); - } - - // -------------------------------------------------------------------- - - /** - * Field data - * - * Generates an array of objects containing field meta-data - * - * @access public - * @return array - */ - function field_data() - { - $retval = array(); - - $tablePrimaryKeys = array(); - - while ($field = cubrid_fetch_field($this->result_id)) - { - $F = new stdClass(); - $F->name = $field->name; - $F->type = $field->type; - $F->default = $field->def; - $F->max_length = $field->max_length; - - // At this moment primary_key property is not returned when - // cubrid_fetch_field is called. The following code will - // provide a patch for it. primary_key property will be added - // in the next release. - - // TODO: later version of CUBRID will provide primary_key - // property. - // When PK is defined in CUBRID, an index is automatically - // created in the db_index system table in the form of - // pk_tblname_fieldname. So the following will count how many - // columns are there which satisfy this format. - // The query will search for exact single columns, thus - // compound PK is not supported. - $res = cubrid_query($this->conn_id, - "SELECT COUNT(*) FROM db_index WHERE class_name = '" . $field->table . - "' AND is_primary_key = 'YES' AND index_name = 'pk_" . - $field->table . "_" . $field->name . "'" - ); - - if ($res) - { - $row = cubrid_fetch_array($res, CUBRID_NUM); - $F->primary_key = ($row[0] > 0 ? 1 : null); - } - else - { - $F->primary_key = null; - } - - if (is_resource($res)) - { - cubrid_close_request($res); - $this->result_id = FALSE; - } - - $retval[] = $F; - } - - return $retval; - } - - // -------------------------------------------------------------------- - - /** - * Free the result - * - * @return null - */ - function free_result() - { - if(is_resource($this->result_id) || - get_resource_type($this->result_id) == "Unknown" && - preg_match('/Resource id #/', strval($this->result_id))) - { - cubrid_close_request($this->result_id); - $this->result_id = FALSE; - } - } - - // -------------------------------------------------------------------- - - /** - * Data Seek - * - * Moves the internal pointer to the desired offset. We call - * this internally before fetching results to make sure the - * result set starts at zero - * - * @access private - * @return array - */ - function _data_seek($n = 0) - { - return cubrid_data_seek($this->result_id, $n); - } - - // -------------------------------------------------------------------- - - /** - * Result - associative array - * - * Returns the result set as an array - * - * @access private - * @return array - */ - function _fetch_assoc() - { - return cubrid_fetch_assoc($this->result_id); - } - - // -------------------------------------------------------------------- - - /** - * Result - object - * - * Returns the result set as an object - * - * @access private - * @return object - */ - function _fetch_object() - { - return cubrid_fetch_object($this->result_id); - } - -} - - -/* End of file cubrid_result.php */ -/* Location: ./system/database/drivers/cubrid/cubrid_result.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/cubrid/cubrid_utility.php b/sources/web/system/database/drivers/cubrid/cubrid_utility.php deleted file mode 100644 index cd16d1e..0000000 --- a/sources/web/system/database/drivers/cubrid/cubrid_utility.php +++ /dev/null @@ -1,108 +0,0 @@ -conn_id) - { - return "SELECT '" . $this->database . "'"; - } - else - { - return FALSE; - } - } - - // -------------------------------------------------------------------- - - /** - * Optimize table query - * - * Generates a platform-specific query so that a table can be optimized - * - * @access private - * @param string the table name - * @return object - * @link http://www.cubrid.org/manual/840/en/Optimize%20Database - */ - function _optimize_table($table) - { - // No SQL based support in CUBRID as of version 8.4.0. Database or - // table optimization can be performed using CUBRID Manager - // database administration tool. See the link above for more info. - return FALSE; - } - - // -------------------------------------------------------------------- - - /** - * Repair table query - * - * Generates a platform-specific query so that a table can be repaired - * - * @access private - * @param string the table name - * @return object - * @link http://www.cubrid.org/manual/840/en/Checking%20Database%20Consistency - */ - function _repair_table($table) - { - // Not supported in CUBRID as of version 8.4.0. Database or - // table consistency can be checked using CUBRID Manager - // database administration tool. See the link above for more info. - return FALSE; - } - - // -------------------------------------------------------------------- - /** - * CUBRID Export - * - * @access private - * @param array Preferences - * @return mixed - */ - function _backup($params = array()) - { - // No SQL based support in CUBRID as of version 8.4.0. Database or - // table backup can be performed using CUBRID Manager - // database administration tool. - return $this->db->display_error('db_unsuported_feature'); - } -} - -/* End of file cubrid_utility.php */ -/* Location: ./system/database/drivers/cubrid/cubrid_utility.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/cubrid/index.html b/sources/web/system/database/drivers/cubrid/index.html deleted file mode 100644 index c942a79..0000000 --- a/sources/web/system/database/drivers/cubrid/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - 403 Forbidden - - - -

          Directory access is forbidden.

          - - - \ No newline at end of file diff --git a/sources/web/system/database/drivers/index.html b/sources/web/system/database/drivers/index.html deleted file mode 100644 index c942a79..0000000 --- a/sources/web/system/database/drivers/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - 403 Forbidden - - - -

          Directory access is forbidden.

          - - - \ No newline at end of file diff --git a/sources/web/system/database/drivers/mssql/index.html b/sources/web/system/database/drivers/mssql/index.html deleted file mode 100644 index c942a79..0000000 --- a/sources/web/system/database/drivers/mssql/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - 403 Forbidden - - - -

          Directory access is forbidden.

          - - - \ No newline at end of file diff --git a/sources/web/system/database/drivers/mssql/mssql_driver.php b/sources/web/system/database/drivers/mssql/mssql_driver.php deleted file mode 100644 index b39bd93..0000000 --- a/sources/web/system/database/drivers/mssql/mssql_driver.php +++ /dev/null @@ -1,667 +0,0 @@ -port != '') - { - $this->hostname .= ','.$this->port; - } - - return @mssql_connect($this->hostname, $this->username, $this->password); - } - - // -------------------------------------------------------------------- - - /** - * Persistent database connection - * - * @access private called by the base class - * @return resource - */ - function db_pconnect() - { - if ($this->port != '') - { - $this->hostname .= ','.$this->port; - } - - return @mssql_pconnect($this->hostname, $this->username, $this->password); - } - - // -------------------------------------------------------------------- - - /** - * Reconnect - * - * Keep / reestablish the db connection if no queries have been - * sent for a length of time exceeding the server's idle timeout - * - * @access public - * @return void - */ - function reconnect() - { - // not implemented in MSSQL - } - - // -------------------------------------------------------------------- - - /** - * Select the database - * - * @access private called by the base class - * @return resource - */ - function db_select() - { - // Note: The brackets are required in the event that the DB name - // contains reserved characters - return @mssql_select_db('['.$this->database.']', $this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * Set client character set - * - * @access public - * @param string - * @param string - * @return resource - */ - function db_set_charset($charset, $collation) - { - // @todo - add support if needed - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Execute the query - * - * @access private called by the base class - * @param string an SQL query - * @return resource - */ - function _execute($sql) - { - $sql = $this->_prep_query($sql); - return @mssql_query($sql, $this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * Prep the query - * - * If needed, each database adapter can prep the query string - * - * @access private called by execute() - * @param string an SQL query - * @return string - */ - function _prep_query($sql) - { - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Begin Transaction - * - * @access public - * @return bool - */ - function trans_begin($test_mode = FALSE) - { - if ( ! $this->trans_enabled) - { - return TRUE; - } - - // When transactions are nested we only begin/commit/rollback the outermost ones - if ($this->_trans_depth > 0) - { - return TRUE; - } - - // Reset the transaction failure flag. - // If the $test_mode flag is set to TRUE transactions will be rolled back - // even if the queries produce a successful result. - $this->_trans_failure = ($test_mode === TRUE) ? TRUE : FALSE; - - $this->simple_query('BEGIN TRAN'); - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Commit Transaction - * - * @access public - * @return bool - */ - function trans_commit() - { - if ( ! $this->trans_enabled) - { - return TRUE; - } - - // When transactions are nested we only begin/commit/rollback the outermost ones - if ($this->_trans_depth > 0) - { - return TRUE; - } - - $this->simple_query('COMMIT TRAN'); - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Rollback Transaction - * - * @access public - * @return bool - */ - function trans_rollback() - { - if ( ! $this->trans_enabled) - { - return TRUE; - } - - // When transactions are nested we only begin/commit/rollback the outermost ones - if ($this->_trans_depth > 0) - { - return TRUE; - } - - $this->simple_query('ROLLBACK TRAN'); - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Escape String - * - * @access public - * @param string - * @param bool whether or not the string will be used in a LIKE condition - * @return string - */ - function escape_str($str, $like = FALSE) - { - if (is_array($str)) - { - foreach ($str as $key => $val) - { - $str[$key] = $this->escape_str($val, $like); - } - - return $str; - } - - // Escape single quotes - $str = str_replace("'", "''", remove_invisible_characters($str)); - - // escape LIKE condition wildcards - if ($like === TRUE) - { - $str = str_replace( - array($this->_like_escape_chr, '%', '_'), - array($this->_like_escape_chr.$this->_like_escape_chr, $this->_like_escape_chr.'%', $this->_like_escape_chr.'_'), - $str - ); - } - - return $str; - } - - // -------------------------------------------------------------------- - - /** - * Affected Rows - * - * @access public - * @return integer - */ - function affected_rows() - { - return @mssql_rows_affected($this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * Insert ID - * - * Returns the last id created in the Identity column. - * - * @access public - * @return integer - */ - function insert_id() - { - $ver = self::_parse_major_version($this->version()); - $sql = ($ver >= 8 ? "SELECT SCOPE_IDENTITY() AS last_id" : "SELECT @@IDENTITY AS last_id"); - $query = $this->query($sql); - $row = $query->row(); - return $row->last_id; - } - - // -------------------------------------------------------------------- - - /** - * Parse major version - * - * Grabs the major version number from the - * database server version string passed in. - * - * @access private - * @param string $version - * @return int16 major version number - */ - function _parse_major_version($version) - { - preg_match('/([0-9]+)\.([0-9]+)\.([0-9]+)/', $version, $ver_info); - return $ver_info[1]; // return the major version b/c that's all we're interested in. - } - - // -------------------------------------------------------------------- - - /** - * Version number query string - * - * @access public - * @return string - */ - function _version() - { - return "SELECT @@VERSION AS ver"; - } - - // -------------------------------------------------------------------- - - /** - * "Count All" query - * - * Generates a platform-specific query string that counts all records in - * the specified database - * - * @access public - * @param string - * @return string - */ - function count_all($table = '') - { - if ($table == '') - { - return 0; - } - - $query = $this->query($this->_count_string . $this->_protect_identifiers('numrows') . " FROM " . $this->_protect_identifiers($table, TRUE, NULL, FALSE)); - - if ($query->num_rows() == 0) - { - return 0; - } - - $row = $query->row(); - $this->_reset_select(); - return (int) $row->numrows; - } - - // -------------------------------------------------------------------- - - /** - * List table query - * - * Generates a platform-specific query string so that the table names can be fetched - * - * @access private - * @param boolean - * @return string - */ - function _list_tables($prefix_limit = FALSE) - { - $sql = "SELECT name FROM sysobjects WHERE type = 'U' ORDER BY name"; - - // for future compatibility - if ($prefix_limit !== FALSE AND $this->dbprefix != '') - { - //$sql .= " LIKE '".$this->escape_like_str($this->dbprefix)."%' ".sprintf($this->_like_escape_str, $this->_like_escape_chr); - return FALSE; // not currently supported - } - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * List column query - * - * Generates a platform-specific query string so that the column names can be fetched - * - * @access private - * @param string the table name - * @return string - */ - function _list_columns($table = '') - { - return "SELECT * FROM INFORMATION_SCHEMA.Columns WHERE TABLE_NAME = '".$table."'"; - } - - // -------------------------------------------------------------------- - - /** - * Field data query - * - * Generates a platform-specific query so that the column data can be retrieved - * - * @access public - * @param string the table name - * @return object - */ - function _field_data($table) - { - return "SELECT TOP 1 * FROM ".$table; - } - - // -------------------------------------------------------------------- - - /** - * The error message string - * - * @access private - * @return string - */ - function _error_message() - { - return mssql_get_last_message(); - } - - // -------------------------------------------------------------------- - - /** - * The error message number - * - * @access private - * @return integer - */ - function _error_number() - { - // Are error numbers supported? - return ''; - } - - // -------------------------------------------------------------------- - - /** - * Escape the SQL Identifiers - * - * This function escapes column and table names - * - * @access private - * @param string - * @return string - */ - function _escape_identifiers($item) - { - if ($this->_escape_char == '') - { - return $item; - } - - foreach ($this->_reserved_identifiers as $id) - { - if (strpos($item, '.'.$id) !== FALSE) - { - $str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item); - - // remove duplicates if the user already included the escape - return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); - } - } - - if (strpos($item, '.') !== FALSE) - { - $str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char; - } - else - { - $str = $this->_escape_char.$item.$this->_escape_char; - } - - // remove duplicates if the user already included the escape - return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); - } - - // -------------------------------------------------------------------- - - /** - * From Tables - * - * This function implicitly groups FROM tables so there is no confusion - * about operator precedence in harmony with SQL standards - * - * @access public - * @param type - * @return type - */ - function _from_tables($tables) - { - if ( ! is_array($tables)) - { - $tables = array($tables); - } - - return implode(', ', $tables); - } - - // -------------------------------------------------------------------- - - /** - * Insert statement - * - * Generates a platform-specific insert string from the supplied data - * - * @access public - * @param string the table name - * @param array the insert keys - * @param array the insert values - * @return string - */ - function _insert($table, $keys, $values) - { - return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")"; - } - - // -------------------------------------------------------------------- - - /** - * Update statement - * - * Generates a platform-specific update string from the supplied data - * - * @access public - * @param string the table name - * @param array the update data - * @param array the where clause - * @param array the orderby clause - * @param array the limit clause - * @return string - */ - function _update($table, $values, $where, $orderby = array(), $limit = FALSE) - { - foreach ($values as $key => $val) - { - $valstr[] = $key." = ".$val; - } - - $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; - - $orderby = (count($orderby) >= 1)?' ORDER BY '.implode(", ", $orderby):''; - - $sql = "UPDATE ".$table." SET ".implode(', ', $valstr); - - $sql .= ($where != '' AND count($where) >=1) ? " WHERE ".implode(" ", $where) : ''; - - $sql .= $orderby.$limit; - - return $sql; - } - - - // -------------------------------------------------------------------- - - /** - * Truncate statement - * - * Generates a platform-specific truncate string from the supplied data - * If the database does not support the truncate() command - * This function maps to "DELETE FROM table" - * - * @access public - * @param string the table name - * @return string - */ - function _truncate($table) - { - return "TRUNCATE ".$table; - } - - // -------------------------------------------------------------------- - - /** - * Delete statement - * - * Generates a platform-specific delete string from the supplied data - * - * @access public - * @param string the table name - * @param array the where clause - * @param string the limit clause - * @return string - */ - function _delete($table, $where = array(), $like = array(), $limit = FALSE) - { - $conditions = ''; - - if (count($where) > 0 OR count($like) > 0) - { - $conditions = "\nWHERE "; - $conditions .= implode("\n", $this->ar_where); - - if (count($where) > 0 && count($like) > 0) - { - $conditions .= " AND "; - } - $conditions .= implode("\n", $like); - } - - $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; - - return "DELETE FROM ".$table.$conditions.$limit; - } - - // -------------------------------------------------------------------- - - /** - * Limit string - * - * Generates a platform-specific LIMIT clause - * - * @access public - * @param string the sql query string - * @param integer the number of rows to limit the query to - * @param integer the offset value - * @return string - */ - function _limit($sql, $limit, $offset) - { - $i = $limit + $offset; - - return preg_replace('/(^\SELECT (DISTINCT)?)/i','\\1 TOP '.$i.' ', $sql); - } - - // -------------------------------------------------------------------- - - /** - * Close DB Connection - * - * @access public - * @param resource - * @return void - */ - function _close($conn_id) - { - @mssql_close($conn_id); - } - -} - - - -/* End of file mssql_driver.php */ -/* Location: ./system/database/drivers/mssql/mssql_driver.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/mssql/mssql_forge.php b/sources/web/system/database/drivers/mssql/mssql_forge.php deleted file mode 100644 index 70b20ec..0000000 --- a/sources/web/system/database/drivers/mssql/mssql_forge.php +++ /dev/null @@ -1,248 +0,0 @@ -db->_escape_identifiers($table); - } - - // -------------------------------------------------------------------- - - /** - * Create Table - * - * @access private - * @param string the table name - * @param array the fields - * @param mixed primary key(s) - * @param mixed key(s) - * @param boolean should 'IF NOT EXISTS' be added to the SQL - * @return bool - */ - function _create_table($table, $fields, $primary_keys, $keys, $if_not_exists) - { - $sql = 'CREATE TABLE '; - - if ($if_not_exists === TRUE) - { - $sql .= 'IF NOT EXISTS '; - } - - $sql .= $this->db->_escape_identifiers($table)." ("; - $current_field_count = 0; - - foreach ($fields as $field=>$attributes) - { - // Numeric field names aren't allowed in databases, so if the key is - // numeric, we know it was assigned by PHP and the developer manually - // entered the field information, so we'll simply add it to the list - if (is_numeric($field)) - { - $sql .= "\n\t$attributes"; - } - else - { - $attributes = array_change_key_case($attributes, CASE_UPPER); - - $sql .= "\n\t".$this->db->_protect_identifiers($field); - - $sql .= ' '.$attributes['TYPE']; - - if (array_key_exists('CONSTRAINT', $attributes)) - { - $sql .= '('.$attributes['CONSTRAINT'].')'; - } - - if (array_key_exists('UNSIGNED', $attributes) && $attributes['UNSIGNED'] === TRUE) - { - $sql .= ' UNSIGNED'; - } - - if (array_key_exists('DEFAULT', $attributes)) - { - $sql .= ' DEFAULT \''.$attributes['DEFAULT'].'\''; - } - - if (array_key_exists('NULL', $attributes) && $attributes['NULL'] === TRUE) - { - $sql .= ' NULL'; - } - else - { - $sql .= ' NOT NULL'; - } - - if (array_key_exists('AUTO_INCREMENT', $attributes) && $attributes['AUTO_INCREMENT'] === TRUE) - { - $sql .= ' AUTO_INCREMENT'; - } - } - - // don't add a comma on the end of the last field - if (++$current_field_count < count($fields)) - { - $sql .= ','; - } - } - - if (count($primary_keys) > 0) - { - $primary_keys = $this->db->_protect_identifiers($primary_keys); - $sql .= ",\n\tPRIMARY KEY (" . implode(', ', $primary_keys) . ")"; - } - - if (is_array($keys) && count($keys) > 0) - { - foreach ($keys as $key) - { - if (is_array($key)) - { - $key = $this->db->_protect_identifiers($key); - } - else - { - $key = array($this->db->_protect_identifiers($key)); - } - - $sql .= ",\n\tFOREIGN KEY (" . implode(', ', $key) . ")"; - } - } - - $sql .= "\n)"; - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Alter table query - * - * Generates a platform-specific query so that a table can be altered - * Called by add_column(), drop_column(), and column_alter(), - * - * @access private - * @param string the ALTER type (ADD, DROP, CHANGE) - * @param string the column name - * @param string the table name - * @param string the column definition - * @param string the default value - * @param boolean should 'NOT NULL' be added - * @param string the field after which we should add the new field - * @return object - */ - function _alter_table($alter_type, $table, $column_name, $column_definition = '', $default_value = '', $null = '', $after_field = '') - { - $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table)." $alter_type ".$this->db->_protect_identifiers($column_name); - - // DROP has everything it needs now. - if ($alter_type == 'DROP') - { - return $sql; - } - - $sql .= " $column_definition"; - - if ($default_value != '') - { - $sql .= " DEFAULT \"$default_value\""; - } - - if ($null === NULL) - { - $sql .= ' NULL'; - } - else - { - $sql .= ' NOT NULL'; - } - - if ($after_field != '') - { - $sql .= ' AFTER ' . $this->db->_protect_identifiers($after_field); - } - - return $sql; - - } - - // -------------------------------------------------------------------- - - /** - * Rename a table - * - * Generates a platform-specific query so that a table can be renamed - * - * @access private - * @param string the old table name - * @param string the new table name - * @return string - */ - function _rename_table($table_name, $new_table_name) - { - // I think this syntax will work, but can find little documentation on renaming tables in MSSQL - $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table_name)." RENAME TO ".$this->db->_protect_identifiers($new_table_name); - return $sql; - } - -} - -/* End of file mssql_forge.php */ -/* Location: ./system/database/drivers/mssql/mssql_forge.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/mssql/mssql_result.php b/sources/web/system/database/drivers/mssql/mssql_result.php deleted file mode 100644 index 2897ca5..0000000 --- a/sources/web/system/database/drivers/mssql/mssql_result.php +++ /dev/null @@ -1,169 +0,0 @@ -result_id); - } - - // -------------------------------------------------------------------- - - /** - * Number of fields in the result set - * - * @access public - * @return integer - */ - function num_fields() - { - return @mssql_num_fields($this->result_id); - } - - // -------------------------------------------------------------------- - - /** - * Fetch Field Names - * - * Generates an array of column names - * - * @access public - * @return array - */ - function list_fields() - { - $field_names = array(); - while ($field = mssql_fetch_field($this->result_id)) - { - $field_names[] = $field->name; - } - - return $field_names; - } - - // -------------------------------------------------------------------- - - /** - * Field data - * - * Generates an array of objects containing field meta-data - * - * @access public - * @return array - */ - function field_data() - { - $retval = array(); - while ($field = mssql_fetch_field($this->result_id)) - { - $F = new stdClass(); - $F->name = $field->name; - $F->type = $field->type; - $F->max_length = $field->max_length; - $F->primary_key = 0; - $F->default = ''; - - $retval[] = $F; - } - - return $retval; - } - - // -------------------------------------------------------------------- - - /** - * Free the result - * - * @return null - */ - function free_result() - { - if (is_resource($this->result_id)) - { - mssql_free_result($this->result_id); - $this->result_id = FALSE; - } - } - - // -------------------------------------------------------------------- - - /** - * Data Seek - * - * Moves the internal pointer to the desired offset. We call - * this internally before fetching results to make sure the - * result set starts at zero - * - * @access private - * @return array - */ - function _data_seek($n = 0) - { - return mssql_data_seek($this->result_id, $n); - } - - // -------------------------------------------------------------------- - - /** - * Result - associative array - * - * Returns the result set as an array - * - * @access private - * @return array - */ - function _fetch_assoc() - { - return mssql_fetch_assoc($this->result_id); - } - - // -------------------------------------------------------------------- - - /** - * Result - object - * - * Returns the result set as an object - * - * @access private - * @return object - */ - function _fetch_object() - { - return mssql_fetch_object($this->result_id); - } - -} - - -/* End of file mssql_result.php */ -/* Location: ./system/database/drivers/mssql/mssql_result.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/mssql/mssql_utility.php b/sources/web/system/database/drivers/mssql/mssql_utility.php deleted file mode 100644 index 48ecbc7..0000000 --- a/sources/web/system/database/drivers/mssql/mssql_utility.php +++ /dev/null @@ -1,88 +0,0 @@ -db->display_error('db_unsuported_feature'); - } - -} - -/* End of file mssql_utility.php */ -/* Location: ./system/database/drivers/mssql/mssql_utility.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/mysql/index.html b/sources/web/system/database/drivers/mysql/index.html deleted file mode 100644 index c942a79..0000000 --- a/sources/web/system/database/drivers/mysql/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - 403 Forbidden - - - -

          Directory access is forbidden.

          - - - \ No newline at end of file diff --git a/sources/web/system/database/drivers/mysql/mysql_driver.php b/sources/web/system/database/drivers/mysql/mysql_driver.php deleted file mode 100644 index f87cfea..0000000 --- a/sources/web/system/database/drivers/mysql/mysql_driver.php +++ /dev/null @@ -1,779 +0,0 @@ -port != '') - { - $this->hostname .= ':'.$this->port; - } - - return @mysql_connect($this->hostname, $this->username, $this->password, TRUE); - } - - // -------------------------------------------------------------------- - - /** - * Persistent database connection - * - * @access private called by the base class - * @return resource - */ - function db_pconnect() - { - if ($this->port != '') - { - $this->hostname .= ':'.$this->port; - } - - return @mysql_pconnect($this->hostname, $this->username, $this->password); - } - - // -------------------------------------------------------------------- - - /** - * Reconnect - * - * Keep / reestablish the db connection if no queries have been - * sent for a length of time exceeding the server's idle timeout - * - * @access public - * @return void - */ - function reconnect() - { - if (mysql_ping($this->conn_id) === FALSE) - { - $this->conn_id = FALSE; - } - } - - // -------------------------------------------------------------------- - - /** - * Select the database - * - * @access private called by the base class - * @return resource - */ - function db_select() - { - return @mysql_select_db($this->database, $this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * Set client character set - * - * @access public - * @param string - * @param string - * @return resource - */ - function db_set_charset($charset, $collation) - { - if ( ! isset($this->use_set_names)) - { - // mysql_set_charset() requires PHP >= 5.2.3 and MySQL >= 5.0.7, use SET NAMES as fallback - $this->use_set_names = (version_compare(PHP_VERSION, '5.2.3', '>=') && version_compare(mysql_get_server_info(), '5.0.7', '>=')) ? FALSE : TRUE; - } - - if ($this->use_set_names === TRUE) - { - return @mysql_query("SET NAMES '".$this->escape_str($charset)."' COLLATE '".$this->escape_str($collation)."'", $this->conn_id); - } - else - { - return @mysql_set_charset($charset, $this->conn_id); - } - } - - // -------------------------------------------------------------------- - - /** - * Version number query string - * - * @access public - * @return string - */ - function _version() - { - return "SELECT version() AS ver"; - } - - // -------------------------------------------------------------------- - - /** - * Execute the query - * - * @access private called by the base class - * @param string an SQL query - * @return resource - */ - function _execute($sql) - { - $sql = $this->_prep_query($sql); - return @mysql_query($sql, $this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * Prep the query - * - * If needed, each database adapter can prep the query string - * - * @access private called by execute() - * @param string an SQL query - * @return string - */ - function _prep_query($sql) - { - // "DELETE FROM TABLE" returns 0 affected rows This hack modifies - // the query so that it returns the number of affected rows - if ($this->delete_hack === TRUE) - { - if (preg_match('/^\s*DELETE\s+FROM\s+(\S+)\s*$/i', $sql)) - { - $sql = preg_replace("/^\s*DELETE\s+FROM\s+(\S+)\s*$/", "DELETE FROM \\1 WHERE 1=1", $sql); - } - } - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Begin Transaction - * - * @access public - * @return bool - */ - function trans_begin($test_mode = FALSE) - { - if ( ! $this->trans_enabled) - { - return TRUE; - } - - // When transactions are nested we only begin/commit/rollback the outermost ones - if ($this->_trans_depth > 0) - { - return TRUE; - } - - // Reset the transaction failure flag. - // If the $test_mode flag is set to TRUE transactions will be rolled back - // even if the queries produce a successful result. - $this->_trans_failure = ($test_mode === TRUE) ? TRUE : FALSE; - - $this->simple_query('SET AUTOCOMMIT=0'); - $this->simple_query('START TRANSACTION'); // can also be BEGIN or BEGIN WORK - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Commit Transaction - * - * @access public - * @return bool - */ - function trans_commit() - { - if ( ! $this->trans_enabled) - { - return TRUE; - } - - // When transactions are nested we only begin/commit/rollback the outermost ones - if ($this->_trans_depth > 0) - { - return TRUE; - } - - $this->simple_query('COMMIT'); - $this->simple_query('SET AUTOCOMMIT=1'); - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Rollback Transaction - * - * @access public - * @return bool - */ - function trans_rollback() - { - if ( ! $this->trans_enabled) - { - return TRUE; - } - - // When transactions are nested we only begin/commit/rollback the outermost ones - if ($this->_trans_depth > 0) - { - return TRUE; - } - - $this->simple_query('ROLLBACK'); - $this->simple_query('SET AUTOCOMMIT=1'); - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Escape String - * - * @access public - * @param string - * @param bool whether or not the string will be used in a LIKE condition - * @return string - */ - function escape_str($str, $like = FALSE) - { - if (is_array($str)) - { - foreach ($str as $key => $val) - { - $str[$key] = $this->escape_str($val, $like); - } - - return $str; - } - - if (function_exists('mysql_real_escape_string') AND is_resource($this->conn_id)) - { - $str = mysql_real_escape_string($str, $this->conn_id); - } - elseif (function_exists('mysql_escape_string')) - { - $str = mysql_escape_string($str); - } - else - { - $str = addslashes($str); - } - - // escape LIKE condition wildcards - if ($like === TRUE) - { - $str = str_replace(array('%', '_'), array('\\%', '\\_'), $str); - } - - return $str; - } - - // -------------------------------------------------------------------- - - /** - * Affected Rows - * - * @access public - * @return integer - */ - function affected_rows() - { - return @mysql_affected_rows($this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * Insert ID - * - * @access public - * @return integer - */ - function insert_id() - { - return @mysql_insert_id($this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * "Count All" query - * - * Generates a platform-specific query string that counts all records in - * the specified database - * - * @access public - * @param string - * @return string - */ - function count_all($table = '') - { - if ($table == '') - { - return 0; - } - - $query = $this->query($this->_count_string . $this->_protect_identifiers('numrows') . " FROM " . $this->_protect_identifiers($table, TRUE, NULL, FALSE)); - - if ($query->num_rows() == 0) - { - return 0; - } - - $row = $query->row(); - $this->_reset_select(); - return (int) $row->numrows; - } - - // -------------------------------------------------------------------- - - /** - * List table query - * - * Generates a platform-specific query string so that the table names can be fetched - * - * @access private - * @param boolean - * @return string - */ - function _list_tables($prefix_limit = FALSE) - { - $sql = "SHOW TABLES FROM ".$this->_escape_char.$this->database.$this->_escape_char; - - if ($prefix_limit !== FALSE AND $this->dbprefix != '') - { - $sql .= " LIKE '".$this->escape_like_str($this->dbprefix)."%'"; - } - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Show column query - * - * Generates a platform-specific query string so that the column names can be fetched - * - * @access public - * @param string the table name - * @return string - */ - function _list_columns($table = '') - { - return "SHOW COLUMNS FROM ".$this->_protect_identifiers($table, TRUE, NULL, FALSE); - } - - // -------------------------------------------------------------------- - - /** - * Field data query - * - * Generates a platform-specific query so that the column data can be retrieved - * - * @access public - * @param string the table name - * @return object - */ - function _field_data($table) - { - return "DESCRIBE ".$table; - } - - // -------------------------------------------------------------------- - - /** - * The error message string - * - * @access private - * @return string - */ - function _error_message() - { - return mysql_error($this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * The error message number - * - * @access private - * @return integer - */ - function _error_number() - { - return mysql_errno($this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * Escape the SQL Identifiers - * - * This function escapes column and table names - * - * @access private - * @param string - * @return string - */ - function _escape_identifiers($item) - { - if ($this->_escape_char == '') - { - return $item; - } - - foreach ($this->_reserved_identifiers as $id) - { - if (strpos($item, '.'.$id) !== FALSE) - { - $str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item); - - // remove duplicates if the user already included the escape - return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); - } - } - - if (strpos($item, '.') !== FALSE) - { - $str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char; - } - else - { - $str = $this->_escape_char.$item.$this->_escape_char; - } - - // remove duplicates if the user already included the escape - return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); - } - - // -------------------------------------------------------------------- - - /** - * From Tables - * - * This function implicitly groups FROM tables so there is no confusion - * about operator precedence in harmony with SQL standards - * - * @access public - * @param type - * @return type - */ - function _from_tables($tables) - { - if ( ! is_array($tables)) - { - $tables = array($tables); - } - - return '('.implode(', ', $tables).')'; - } - - // -------------------------------------------------------------------- - - /** - * Insert statement - * - * Generates a platform-specific insert string from the supplied data - * - * @access public - * @param string the table name - * @param array the insert keys - * @param array the insert values - * @return string - */ - function _insert($table, $keys, $values) - { - return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")"; - } - - // -------------------------------------------------------------------- - - - /** - * Replace statement - * - * Generates a platform-specific replace string from the supplied data - * - * @access public - * @param string the table name - * @param array the insert keys - * @param array the insert values - * @return string - */ - function _replace($table, $keys, $values) - { - return "REPLACE INTO ".$table." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")"; - } - - // -------------------------------------------------------------------- - - /** - * Insert_batch statement - * - * Generates a platform-specific insert string from the supplied data - * - * @access public - * @param string the table name - * @param array the insert keys - * @param array the insert values - * @return string - */ - function _insert_batch($table, $keys, $values) - { - return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES ".implode(', ', $values); - } - - // -------------------------------------------------------------------- - - - /** - * Update statement - * - * Generates a platform-specific update string from the supplied data - * - * @access public - * @param string the table name - * @param array the update data - * @param array the where clause - * @param array the orderby clause - * @param array the limit clause - * @return string - */ - function _update($table, $values, $where, $orderby = array(), $limit = FALSE) - { - foreach ($values as $key => $val) - { - $valstr[] = $key . ' = ' . $val; - } - - $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; - - $orderby = (count($orderby) >= 1)?' ORDER BY '.implode(", ", $orderby):''; - - $sql = "UPDATE ".$table." SET ".implode(', ', $valstr); - - $sql .= ($where != '' AND count($where) >=1) ? " WHERE ".implode(" ", $where) : ''; - - $sql .= $orderby.$limit; - - return $sql; - } - - // -------------------------------------------------------------------- - - - /** - * Update_Batch statement - * - * Generates a platform-specific batch update string from the supplied data - * - * @access public - * @param string the table name - * @param array the update data - * @param array the where clause - * @return string - */ - function _update_batch($table, $values, $index, $where = NULL) - { - $ids = array(); - $where = ($where != '' AND count($where) >=1) ? implode(" ", $where).' AND ' : ''; - - foreach ($values as $key => $val) - { - $ids[] = $val[$index]; - - foreach (array_keys($val) as $field) - { - if ($field != $index) - { - $final[$field][] = 'WHEN '.$index.' = '.$val[$index].' THEN '.$val[$field]; - } - } - } - - $sql = "UPDATE ".$table." SET "; - $cases = ''; - - foreach ($final as $k => $v) - { - $cases .= $k.' = CASE '."\n"; - foreach ($v as $row) - { - $cases .= $row."\n"; - } - - $cases .= 'ELSE '.$k.' END, '; - } - - $sql .= substr($cases, 0, -2); - - $sql .= ' WHERE '.$where.$index.' IN ('.implode(',', $ids).')'; - - return $sql; - } - - // -------------------------------------------------------------------- - - - /** - * Truncate statement - * - * Generates a platform-specific truncate string from the supplied data - * If the database does not support the truncate() command - * This function maps to "DELETE FROM table" - * - * @access public - * @param string the table name - * @return string - */ - function _truncate($table) - { - return "TRUNCATE ".$table; - } - - // -------------------------------------------------------------------- - - /** - * Delete statement - * - * Generates a platform-specific delete string from the supplied data - * - * @access public - * @param string the table name - * @param array the where clause - * @param string the limit clause - * @return string - */ - function _delete($table, $where = array(), $like = array(), $limit = FALSE) - { - $conditions = ''; - - if (count($where) > 0 OR count($like) > 0) - { - $conditions = "\nWHERE "; - $conditions .= implode("\n", $this->ar_where); - - if (count($where) > 0 && count($like) > 0) - { - $conditions .= " AND "; - } - $conditions .= implode("\n", $like); - } - - $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; - - return "DELETE FROM ".$table.$conditions.$limit; - } - - // -------------------------------------------------------------------- - - /** - * Limit string - * - * Generates a platform-specific LIMIT clause - * - * @access public - * @param string the sql query string - * @param integer the number of rows to limit the query to - * @param integer the offset value - * @return string - */ - function _limit($sql, $limit, $offset) - { - if ($offset == 0) - { - $offset = ''; - } - else - { - $offset .= ", "; - } - - return $sql."LIMIT ".$offset.$limit; - } - - // -------------------------------------------------------------------- - - /** - * Close DB Connection - * - * @access public - * @param resource - * @return void - */ - function _close($conn_id) - { - @mysql_close($conn_id); - } - -} - - -/* End of file mysql_driver.php */ -/* Location: ./system/database/drivers/mysql/mysql_driver.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/mysql/mysql_forge.php b/sources/web/system/database/drivers/mysql/mysql_forge.php deleted file mode 100644 index c1cae13..0000000 --- a/sources/web/system/database/drivers/mysql/mysql_forge.php +++ /dev/null @@ -1,273 +0,0 @@ -$attributes) - { - // Numeric field names aren't allowed in databases, so if the key is - // numeric, we know it was assigned by PHP and the developer manually - // entered the field information, so we'll simply add it to the list - if (is_numeric($field)) - { - $sql .= "\n\t$attributes"; - } - else - { - $attributes = array_change_key_case($attributes, CASE_UPPER); - - $sql .= "\n\t".$this->db->_protect_identifiers($field); - - if (array_key_exists('NAME', $attributes)) - { - $sql .= ' '.$this->db->_protect_identifiers($attributes['NAME']).' '; - } - - if (array_key_exists('TYPE', $attributes)) - { - $sql .= ' '.$attributes['TYPE']; - - if (array_key_exists('CONSTRAINT', $attributes)) - { - switch ($attributes['TYPE']) - { - case 'decimal': - case 'float': - case 'numeric': - $sql .= '('.implode(',', $attributes['CONSTRAINT']).')'; - break; - - case 'enum': - case 'set': - $sql .= '("'.implode('","', $attributes['CONSTRAINT']).'")'; - break; - - default: - $sql .= '('.$attributes['CONSTRAINT'].')'; - } - } - } - - if (array_key_exists('UNSIGNED', $attributes) && $attributes['UNSIGNED'] === TRUE) - { - $sql .= ' UNSIGNED'; - } - - if (array_key_exists('DEFAULT', $attributes)) - { - $sql .= ' DEFAULT \''.$attributes['DEFAULT'].'\''; - } - - if (array_key_exists('NULL', $attributes) && $attributes['NULL'] === TRUE) - { - $sql .= ' NULL'; - } - else - { - $sql .= ' NOT NULL'; - } - - if (array_key_exists('AUTO_INCREMENT', $attributes) && $attributes['AUTO_INCREMENT'] === TRUE) - { - $sql .= ' AUTO_INCREMENT'; - } - } - - // don't add a comma on the end of the last field - if (++$current_field_count < count($fields)) - { - $sql .= ','; - } - } - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Create Table - * - * @access private - * @param string the table name - * @param mixed the fields - * @param mixed primary key(s) - * @param mixed key(s) - * @param boolean should 'IF NOT EXISTS' be added to the SQL - * @return bool - */ - function _create_table($table, $fields, $primary_keys, $keys, $if_not_exists) - { - $sql = 'CREATE TABLE '; - - if ($if_not_exists === TRUE) - { - $sql .= 'IF NOT EXISTS '; - } - - $sql .= $this->db->_escape_identifiers($table)." ("; - - $sql .= $this->_process_fields($fields); - - if (count($primary_keys) > 0) - { - $key_name = $this->db->_protect_identifiers(implode('_', $primary_keys)); - $primary_keys = $this->db->_protect_identifiers($primary_keys); - $sql .= ",\n\tPRIMARY KEY ".$key_name." (" . implode(', ', $primary_keys) . ")"; - } - - if (is_array($keys) && count($keys) > 0) - { - foreach ($keys as $key) - { - if (is_array($key)) - { - $key_name = $this->db->_protect_identifiers(implode('_', $key)); - $key = $this->db->_protect_identifiers($key); - } - else - { - $key_name = $this->db->_protect_identifiers($key); - $key = array($key_name); - } - - $sql .= ",\n\tKEY {$key_name} (" . implode(', ', $key) . ")"; - } - } - - $sql .= "\n) DEFAULT CHARACTER SET {$this->db->char_set} COLLATE {$this->db->dbcollat};"; - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Drop Table - * - * @access private - * @return string - */ - function _drop_table($table) - { - return "DROP TABLE IF EXISTS ".$this->db->_escape_identifiers($table); - } - - // -------------------------------------------------------------------- - - /** - * Alter table query - * - * Generates a platform-specific query so that a table can be altered - * Called by add_column(), drop_column(), and column_alter(), - * - * @access private - * @param string the ALTER type (ADD, DROP, CHANGE) - * @param string the column name - * @param array fields - * @param string the field after which we should add the new field - * @return object - */ - function _alter_table($alter_type, $table, $fields, $after_field = '') - { - $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table)." $alter_type "; - - // DROP has everything it needs now. - if ($alter_type == 'DROP') - { - return $sql.$this->db->_protect_identifiers($fields); - } - - $sql .= $this->_process_fields($fields); - - if ($after_field != '') - { - $sql .= ' AFTER ' . $this->db->_protect_identifiers($after_field); - } - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Rename a table - * - * Generates a platform-specific query so that a table can be renamed - * - * @access private - * @param string the old table name - * @param string the new table name - * @return string - */ - function _rename_table($table_name, $new_table_name) - { - $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table_name)." RENAME TO ".$this->db->_protect_identifiers($new_table_name); - return $sql; - } - -} - -/* End of file mysql_forge.php */ -/* Location: ./system/database/drivers/mysql/mysql_forge.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/mysql/mysql_result.php b/sources/web/system/database/drivers/mysql/mysql_result.php deleted file mode 100644 index e1a6e93..0000000 --- a/sources/web/system/database/drivers/mysql/mysql_result.php +++ /dev/null @@ -1,174 +0,0 @@ -result_id); - } - - // -------------------------------------------------------------------- - - /** - * Number of fields in the result set - * - * @access public - * @return integer - */ - function num_fields() - { - return @mysql_num_fields($this->result_id); - } - - // -------------------------------------------------------------------- - - /** - * Fetch Field Names - * - * Generates an array of column names - * - * @access public - * @return array - */ - function list_fields() - { - $field_names = array(); - while ($field = mysql_fetch_field($this->result_id)) - { - $field_names[] = $field->name; - } - - return $field_names; - } - - // -------------------------------------------------------------------- - - /** - * Field data - * - * Generates an array of objects containing field meta-data - * - * @access public - * @return array - */ - function field_data() - { - $retval = array(); - while ($field = mysql_fetch_object($this->result_id)) - { - preg_match('/([a-zA-Z]+)(\(\d+\))?/', $field->Type, $matches); - - $type = (array_key_exists(1, $matches)) ? $matches[1] : NULL; - $length = (array_key_exists(2, $matches)) ? preg_replace('/[^\d]/', '', $matches[2]) : NULL; - - $F = new stdClass(); - $F->name = $field->Field; - $F->type = $type; - $F->default = $field->Default; - $F->max_length = $length; - $F->primary_key = ( $field->Key == 'PRI' ? 1 : 0 ); - - $retval[] = $F; - } - - return $retval; - } - - // -------------------------------------------------------------------- - - /** - * Free the result - * - * @return null - */ - function free_result() - { - if (is_resource($this->result_id)) - { - mysql_free_result($this->result_id); - $this->result_id = FALSE; - } - } - - // -------------------------------------------------------------------- - - /** - * Data Seek - * - * Moves the internal pointer to the desired offset. We call - * this internally before fetching results to make sure the - * result set starts at zero - * - * @access private - * @return array - */ - function _data_seek($n = 0) - { - return mysql_data_seek($this->result_id, $n); - } - - // -------------------------------------------------------------------- - - /** - * Result - associative array - * - * Returns the result set as an array - * - * @access private - * @return array - */ - function _fetch_assoc() - { - return mysql_fetch_assoc($this->result_id); - } - - // -------------------------------------------------------------------- - - /** - * Result - object - * - * Returns the result set as an object - * - * @access private - * @return object - */ - function _fetch_object() - { - return mysql_fetch_object($this->result_id); - } - -} - - -/* End of file mysql_result.php */ -/* Location: ./system/database/drivers/mysql/mysql_result.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/mysql/mysql_utility.php b/sources/web/system/database/drivers/mysql/mysql_utility.php deleted file mode 100644 index 48c4d63..0000000 --- a/sources/web/system/database/drivers/mysql/mysql_utility.php +++ /dev/null @@ -1,210 +0,0 @@ -db->_escape_identifiers($table); - } - - // -------------------------------------------------------------------- - - /** - * Repair table query - * - * Generates a platform-specific query so that a table can be repaired - * - * @access private - * @param string the table name - * @return object - */ - function _repair_table($table) - { - return "REPAIR TABLE ".$this->db->_escape_identifiers($table); - } - - // -------------------------------------------------------------------- - /** - * MySQL Export - * - * @access private - * @param array Preferences - * @return mixed - */ - function _backup($params = array()) - { - if (count($params) == 0) - { - return FALSE; - } - - // Extract the prefs for simplicity - extract($params); - - // Build the output - $output = ''; - foreach ((array)$tables as $table) - { - // Is the table in the "ignore" list? - if (in_array($table, (array)$ignore, TRUE)) - { - continue; - } - - // Get the table schema - $query = $this->db->query("SHOW CREATE TABLE `".$this->db->database.'`.`'.$table.'`'); - - // No result means the table name was invalid - if ($query === FALSE) - { - continue; - } - - // Write out the table schema - $output .= '#'.$newline.'# TABLE STRUCTURE FOR: '.$table.$newline.'#'.$newline.$newline; - - if ($add_drop == TRUE) - { - $output .= 'DROP TABLE IF EXISTS '.$table.';'.$newline.$newline; - } - - $i = 0; - $result = $query->result_array(); - foreach ($result[0] as $val) - { - if ($i++ % 2) - { - $output .= $val.';'.$newline.$newline; - } - } - - // If inserts are not needed we're done... - if ($add_insert == FALSE) - { - continue; - } - - // Grab all the data from the current table - $query = $this->db->query("SELECT * FROM $table"); - - if ($query->num_rows() == 0) - { - continue; - } - - // Fetch the field names and determine if the field is an - // integer type. We use this info to decide whether to - // surround the data with quotes or not - - $i = 0; - $field_str = ''; - $is_int = array(); - while ($field = mysql_fetch_field($query->result_id)) - { - // Most versions of MySQL store timestamp as a string - $is_int[$i] = (in_array( - strtolower(mysql_field_type($query->result_id, $i)), - array('tinyint', 'smallint', 'mediumint', 'int', 'bigint'), //, 'timestamp'), - TRUE) - ) ? TRUE : FALSE; - - // Create a string of field names - $field_str .= '`'.$field->name.'`, '; - $i++; - } - - // Trim off the end comma - $field_str = preg_replace( "/, $/" , "" , $field_str); - - - // Build the insert string - foreach ($query->result_array() as $row) - { - $val_str = ''; - - $i = 0; - foreach ($row as $v) - { - // Is the value NULL? - if ($v === NULL) - { - $val_str .= 'NULL'; - } - else - { - // Escape the data if it's not an integer - if ($is_int[$i] == FALSE) - { - $val_str .= $this->db->escape($v); - } - else - { - $val_str .= $v; - } - } - - // Append a comma - $val_str .= ', '; - $i++; - } - - // Remove the comma at the end of the string - $val_str = preg_replace( "/, $/" , "" , $val_str); - - // Build the INSERT string - $output .= 'INSERT INTO '.$table.' ('.$field_str.') VALUES ('.$val_str.');'.$newline; - } - - $output .= $newline.$newline; - } - - return $output; - } -} - -/* End of file mysql_utility.php */ -/* Location: ./system/database/drivers/mysql/mysql_utility.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/mysqli/index.html b/sources/web/system/database/drivers/mysqli/index.html deleted file mode 100644 index c942a79..0000000 --- a/sources/web/system/database/drivers/mysqli/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - 403 Forbidden - - - -

          Directory access is forbidden.

          - - - \ No newline at end of file diff --git a/sources/web/system/database/drivers/mysqli/mysqli_driver.php b/sources/web/system/database/drivers/mysqli/mysqli_driver.php deleted file mode 100644 index d3200f3..0000000 --- a/sources/web/system/database/drivers/mysqli/mysqli_driver.php +++ /dev/null @@ -1,776 +0,0 @@ -port != '') - { - return @mysqli_connect($this->hostname, $this->username, $this->password, $this->database, $this->port); - } - else - { - return @mysqli_connect($this->hostname, $this->username, $this->password, $this->database); - } - - } - - // -------------------------------------------------------------------- - - /** - * Persistent database connection - * - * @access private called by the base class - * @return resource - */ - function db_pconnect() - { - return $this->db_connect(); - } - - // -------------------------------------------------------------------- - - /** - * Reconnect - * - * Keep / reestablish the db connection if no queries have been - * sent for a length of time exceeding the server's idle timeout - * - * @access public - * @return void - */ - function reconnect() - { - if (mysqli_ping($this->conn_id) === FALSE) - { - $this->conn_id = FALSE; - } - } - - // -------------------------------------------------------------------- - - /** - * Select the database - * - * @access private called by the base class - * @return resource - */ - function db_select() - { - return @mysqli_select_db($this->conn_id, $this->database); - } - - // -------------------------------------------------------------------- - - /** - * Set client character set - * - * @access private - * @param string - * @param string - * @return resource - */ - function _db_set_charset($charset, $collation) - { - if ( ! isset($this->use_set_names)) - { - // mysqli_set_charset() requires MySQL >= 5.0.7, use SET NAMES as fallback - $this->use_set_names = (version_compare(mysqli_get_server_info($this->conn_id), '5.0.7', '>=')) ? FALSE : TRUE; - } - - if ($this->use_set_names === TRUE) - { - return @mysqli_query($this->conn_id, "SET NAMES '".$this->escape_str($charset)."' COLLATE '".$this->escape_str($collation)."'"); - } - else - { - return @mysqli_set_charset($this->conn_id, $charset); - } - } - - // -------------------------------------------------------------------- - - /** - * Version number query string - * - * @access public - * @return string - */ - function _version() - { - return "SELECT version() AS ver"; - } - - // -------------------------------------------------------------------- - - /** - * Execute the query - * - * @access private called by the base class - * @param string an SQL query - * @return resource - */ - function _execute($sql) - { - $sql = $this->_prep_query($sql); - $result = @mysqli_query($this->conn_id, $sql); - return $result; - } - - // -------------------------------------------------------------------- - - /** - * Prep the query - * - * If needed, each database adapter can prep the query string - * - * @access private called by execute() - * @param string an SQL query - * @return string - */ - function _prep_query($sql) - { - // "DELETE FROM TABLE" returns 0 affected rows This hack modifies - // the query so that it returns the number of affected rows - if ($this->delete_hack === TRUE) - { - if (preg_match('/^\s*DELETE\s+FROM\s+(\S+)\s*$/i', $sql)) - { - $sql = preg_replace("/^\s*DELETE\s+FROM\s+(\S+)\s*$/", "DELETE FROM \\1 WHERE 1=1", $sql); - } - } - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Begin Transaction - * - * @access public - * @return bool - */ - function trans_begin($test_mode = FALSE) - { - if ( ! $this->trans_enabled) - { - return TRUE; - } - - // When transactions are nested we only begin/commit/rollback the outermost ones - if ($this->_trans_depth > 0) - { - return TRUE; - } - - // Reset the transaction failure flag. - // If the $test_mode flag is set to TRUE transactions will be rolled back - // even if the queries produce a successful result. - $this->_trans_failure = ($test_mode === TRUE) ? TRUE : FALSE; - - $this->simple_query('SET AUTOCOMMIT=0'); - $this->simple_query('START TRANSACTION'); // can also be BEGIN or BEGIN WORK - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Commit Transaction - * - * @access public - * @return bool - */ - function trans_commit() - { - if ( ! $this->trans_enabled) - { - return TRUE; - } - - // When transactions are nested we only begin/commit/rollback the outermost ones - if ($this->_trans_depth > 0) - { - return TRUE; - } - - $this->simple_query('COMMIT'); - $this->simple_query('SET AUTOCOMMIT=1'); - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Rollback Transaction - * - * @access public - * @return bool - */ - function trans_rollback() - { - if ( ! $this->trans_enabled) - { - return TRUE; - } - - // When transactions are nested we only begin/commit/rollback the outermost ones - if ($this->_trans_depth > 0) - { - return TRUE; - } - - $this->simple_query('ROLLBACK'); - $this->simple_query('SET AUTOCOMMIT=1'); - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Escape String - * - * @access public - * @param string - * @param bool whether or not the string will be used in a LIKE condition - * @return string - */ - function escape_str($str, $like = FALSE) - { - if (is_array($str)) - { - foreach ($str as $key => $val) - { - $str[$key] = $this->escape_str($val, $like); - } - - return $str; - } - - if (function_exists('mysqli_real_escape_string') AND is_object($this->conn_id)) - { - $str = mysqli_real_escape_string($this->conn_id, $str); - } - elseif (function_exists('mysql_escape_string')) - { - $str = mysql_escape_string($str); - } - else - { - $str = addslashes($str); - } - - // escape LIKE condition wildcards - if ($like === TRUE) - { - $str = str_replace(array('%', '_'), array('\\%', '\\_'), $str); - } - - return $str; - } - - // -------------------------------------------------------------------- - - /** - * Affected Rows - * - * @access public - * @return integer - */ - function affected_rows() - { - return @mysqli_affected_rows($this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * Insert ID - * - * @access public - * @return integer - */ - function insert_id() - { - return @mysqli_insert_id($this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * "Count All" query - * - * Generates a platform-specific query string that counts all records in - * the specified database - * - * @access public - * @param string - * @return string - */ - function count_all($table = '') - { - if ($table == '') - { - return 0; - } - - $query = $this->query($this->_count_string . $this->_protect_identifiers('numrows') . " FROM " . $this->_protect_identifiers($table, TRUE, NULL, FALSE)); - - if ($query->num_rows() == 0) - { - return 0; - } - - $row = $query->row(); - $this->_reset_select(); - return (int) $row->numrows; - } - - // -------------------------------------------------------------------- - - /** - * List table query - * - * Generates a platform-specific query string so that the table names can be fetched - * - * @access private - * @param boolean - * @return string - */ - function _list_tables($prefix_limit = FALSE) - { - $sql = "SHOW TABLES FROM ".$this->_escape_char.$this->database.$this->_escape_char; - - if ($prefix_limit !== FALSE AND $this->dbprefix != '') - { - $sql .= " LIKE '".$this->escape_like_str($this->dbprefix)."%'"; - } - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Show column query - * - * Generates a platform-specific query string so that the column names can be fetched - * - * @access public - * @param string the table name - * @return string - */ - function _list_columns($table = '') - { - return "SHOW COLUMNS FROM ".$this->_protect_identifiers($table, TRUE, NULL, FALSE); - } - - // -------------------------------------------------------------------- - - /** - * Field data query - * - * Generates a platform-specific query so that the column data can be retrieved - * - * @access public - * @param string the table name - * @return object - */ - function _field_data($table) - { - return "DESCRIBE ".$table; - } - - // -------------------------------------------------------------------- - - /** - * The error message string - * - * @access private - * @return string - */ - function _error_message() - { - return mysqli_error($this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * The error message number - * - * @access private - * @return integer - */ - function _error_number() - { - return mysqli_errno($this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * Escape the SQL Identifiers - * - * This function escapes column and table names - * - * @access private - * @param string - * @return string - */ - function _escape_identifiers($item) - { - if ($this->_escape_char == '') - { - return $item; - } - - foreach ($this->_reserved_identifiers as $id) - { - if (strpos($item, '.'.$id) !== FALSE) - { - $str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item); - - // remove duplicates if the user already included the escape - return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); - } - } - - if (strpos($item, '.') !== FALSE) - { - $str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char; - } - else - { - $str = $this->_escape_char.$item.$this->_escape_char; - } - - // remove duplicates if the user already included the escape - return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); - } - - // -------------------------------------------------------------------- - - /** - * From Tables - * - * This function implicitly groups FROM tables so there is no confusion - * about operator precedence in harmony with SQL standards - * - * @access public - * @param type - * @return type - */ - function _from_tables($tables) - { - if ( ! is_array($tables)) - { - $tables = array($tables); - } - - return '('.implode(', ', $tables).')'; - } - - // -------------------------------------------------------------------- - - /** - * Insert statement - * - * Generates a platform-specific insert string from the supplied data - * - * @access public - * @param string the table name - * @param array the insert keys - * @param array the insert values - * @return string - */ - function _insert($table, $keys, $values) - { - return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")"; - } - - // -------------------------------------------------------------------- - - /** - * Insert_batch statement - * - * Generates a platform-specific insert string from the supplied data - * - * @access public - * @param string the table name - * @param array the insert keys - * @param array the insert values - * @return string - */ - function _insert_batch($table, $keys, $values) - { - return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES ".implode(', ', $values); - } - - // -------------------------------------------------------------------- - - - /** - * Replace statement - * - * Generates a platform-specific replace string from the supplied data - * - * @access public - * @param string the table name - * @param array the insert keys - * @param array the insert values - * @return string - */ - function _replace($table, $keys, $values) - { - return "REPLACE INTO ".$table." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")"; - } - - // -------------------------------------------------------------------- - - /** - * Update statement - * - * Generates a platform-specific update string from the supplied data - * - * @access public - * @param string the table name - * @param array the update data - * @param array the where clause - * @param array the orderby clause - * @param array the limit clause - * @return string - */ - function _update($table, $values, $where, $orderby = array(), $limit = FALSE) - { - foreach ($values as $key => $val) - { - $valstr[] = $key." = ".$val; - } - - $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; - - $orderby = (count($orderby) >= 1)?' ORDER BY '.implode(", ", $orderby):''; - - $sql = "UPDATE ".$table." SET ".implode(', ', $valstr); - - $sql .= ($where != '' AND count($where) >=1) ? " WHERE ".implode(" ", $where) : ''; - - $sql .= $orderby.$limit; - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Update_Batch statement - * - * Generates a platform-specific batch update string from the supplied data - * - * @access public - * @param string the table name - * @param array the update data - * @param array the where clause - * @return string - */ - function _update_batch($table, $values, $index, $where = NULL) - { - $ids = array(); - $where = ($where != '' AND count($where) >=1) ? implode(" ", $where).' AND ' : ''; - - foreach ($values as $key => $val) - { - $ids[] = $val[$index]; - - foreach (array_keys($val) as $field) - { - if ($field != $index) - { - $final[$field][] = 'WHEN '.$index.' = '.$val[$index].' THEN '.$val[$field]; - } - } - } - - $sql = "UPDATE ".$table." SET "; - $cases = ''; - - foreach ($final as $k => $v) - { - $cases .= $k.' = CASE '."\n"; - foreach ($v as $row) - { - $cases .= $row."\n"; - } - - $cases .= 'ELSE '.$k.' END, '; - } - - $sql .= substr($cases, 0, -2); - - $sql .= ' WHERE '.$where.$index.' IN ('.implode(',', $ids).')'; - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Truncate statement - * - * Generates a platform-specific truncate string from the supplied data - * If the database does not support the truncate() command - * This function maps to "DELETE FROM table" - * - * @access public - * @param string the table name - * @return string - */ - function _truncate($table) - { - return "TRUNCATE ".$table; - } - - // -------------------------------------------------------------------- - - /** - * Delete statement - * - * Generates a platform-specific delete string from the supplied data - * - * @access public - * @param string the table name - * @param array the where clause - * @param string the limit clause - * @return string - */ - function _delete($table, $where = array(), $like = array(), $limit = FALSE) - { - $conditions = ''; - - if (count($where) > 0 OR count($like) > 0) - { - $conditions = "\nWHERE "; - $conditions .= implode("\n", $this->ar_where); - - if (count($where) > 0 && count($like) > 0) - { - $conditions .= " AND "; - } - $conditions .= implode("\n", $like); - } - - $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; - - return "DELETE FROM ".$table.$conditions.$limit; - } - - // -------------------------------------------------------------------- - - /** - * Limit string - * - * Generates a platform-specific LIMIT clause - * - * @access public - * @param string the sql query string - * @param integer the number of rows to limit the query to - * @param integer the offset value - * @return string - */ - function _limit($sql, $limit, $offset) - { - $sql .= "LIMIT ".$limit; - - if ($offset > 0) - { - $sql .= " OFFSET ".$offset; - } - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Close DB Connection - * - * @access public - * @param resource - * @return void - */ - function _close($conn_id) - { - @mysqli_close($conn_id); - } - - -} - - -/* End of file mysqli_driver.php */ -/* Location: ./system/database/drivers/mysqli/mysqli_driver.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/mysqli/mysqli_forge.php b/sources/web/system/database/drivers/mysqli/mysqli_forge.php deleted file mode 100644 index 2605494..0000000 --- a/sources/web/system/database/drivers/mysqli/mysqli_forge.php +++ /dev/null @@ -1,258 +0,0 @@ -$attributes) - { - // Numeric field names aren't allowed in databases, so if the key is - // numeric, we know it was assigned by PHP and the developer manually - // entered the field information, so we'll simply add it to the list - if (is_numeric($field)) - { - $sql .= "\n\t$attributes"; - } - else - { - $attributes = array_change_key_case($attributes, CASE_UPPER); - - $sql .= "\n\t".$this->db->_protect_identifiers($field); - - if (array_key_exists('NAME', $attributes)) - { - $sql .= ' '.$this->db->_protect_identifiers($attributes['NAME']).' '; - } - - if (array_key_exists('TYPE', $attributes)) - { - $sql .= ' '.$attributes['TYPE']; - } - - if (array_key_exists('CONSTRAINT', $attributes)) - { - $sql .= '('.$attributes['CONSTRAINT'].')'; - } - - if (array_key_exists('UNSIGNED', $attributes) && $attributes['UNSIGNED'] === TRUE) - { - $sql .= ' UNSIGNED'; - } - - if (array_key_exists('DEFAULT', $attributes)) - { - $sql .= ' DEFAULT \''.$attributes['DEFAULT'].'\''; - } - - if (array_key_exists('NULL', $attributes) && $attributes['NULL'] === TRUE) - { - $sql .= ' NULL'; - } - else - { - $sql .= ' NOT NULL'; - } - - if (array_key_exists('AUTO_INCREMENT', $attributes) && $attributes['AUTO_INCREMENT'] === TRUE) - { - $sql .= ' AUTO_INCREMENT'; - } - } - - // don't add a comma on the end of the last field - if (++$current_field_count < count($fields)) - { - $sql .= ','; - } - } - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Create Table - * - * @access private - * @param string the table name - * @param mixed the fields - * @param mixed primary key(s) - * @param mixed key(s) - * @param boolean should 'IF NOT EXISTS' be added to the SQL - * @return bool - */ - function _create_table($table, $fields, $primary_keys, $keys, $if_not_exists) - { - $sql = 'CREATE TABLE '; - - if ($if_not_exists === TRUE) - { - $sql .= 'IF NOT EXISTS '; - } - - $sql .= $this->db->_escape_identifiers($table)." ("; - - $sql .= $this->_process_fields($fields); - - if (count($primary_keys) > 0) - { - $key_name = $this->db->_protect_identifiers(implode('_', $primary_keys)); - $primary_keys = $this->db->_protect_identifiers($primary_keys); - $sql .= ",\n\tPRIMARY KEY ".$key_name." (" . implode(', ', $primary_keys) . ")"; - } - - if (is_array($keys) && count($keys) > 0) - { - foreach ($keys as $key) - { - if (is_array($key)) - { - $key_name = $this->db->_protect_identifiers(implode('_', $key)); - $key = $this->db->_protect_identifiers($key); - } - else - { - $key_name = $this->db->_protect_identifiers($key); - $key = array($key_name); - } - - $sql .= ",\n\tKEY {$key_name} (" . implode(', ', $key) . ")"; - } - } - - $sql .= "\n) DEFAULT CHARACTER SET {$this->db->char_set} COLLATE {$this->db->dbcollat};"; - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Drop Table - * - * @access private - * @return string - */ - function _drop_table($table) - { - return "DROP TABLE IF EXISTS ".$this->db->_escape_identifiers($table); - } - - // -------------------------------------------------------------------- - - /** - * Alter table query - * - * Generates a platform-specific query so that a table can be altered - * Called by add_column(), drop_column(), and column_alter(), - * - * @access private - * @param string the ALTER type (ADD, DROP, CHANGE) - * @param string the column name - * @param array fields - * @param string the field after which we should add the new field - * @return object - */ - function _alter_table($alter_type, $table, $fields, $after_field = '') - { - $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table)." $alter_type "; - - // DROP has everything it needs now. - if ($alter_type == 'DROP') - { - return $sql.$this->db->_protect_identifiers($fields); - } - - $sql .= $this->_process_fields($fields); - - if ($after_field != '') - { - $sql .= ' AFTER ' . $this->db->_protect_identifiers($after_field); - } - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Rename a table - * - * Generates a platform-specific query so that a table can be renamed - * - * @access private - * @param string the old table name - * @param string the new table name - * @return string - */ - function _rename_table($table_name, $new_table_name) - { - $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table_name)." RENAME TO ".$this->db->_protect_identifiers($new_table_name); - return $sql; - } - -} - -/* End of file mysqli_forge.php */ -/* Location: ./system/database/drivers/mysqli/mysqli_forge.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/mysqli/mysqli_result.php b/sources/web/system/database/drivers/mysqli/mysqli_result.php deleted file mode 100644 index 124d4e5..0000000 --- a/sources/web/system/database/drivers/mysqli/mysqli_result.php +++ /dev/null @@ -1,174 +0,0 @@ -result_id); - } - - // -------------------------------------------------------------------- - - /** - * Number of fields in the result set - * - * @access public - * @return integer - */ - function num_fields() - { - return @mysqli_num_fields($this->result_id); - } - - // -------------------------------------------------------------------- - - /** - * Fetch Field Names - * - * Generates an array of column names - * - * @access public - * @return array - */ - function list_fields() - { - $field_names = array(); - while ($field = mysqli_fetch_field($this->result_id)) - { - $field_names[] = $field->name; - } - - return $field_names; - } - - // -------------------------------------------------------------------- - - /** - * Field data - * - * Generates an array of objects containing field meta-data - * - * @access public - * @return array - */ - function field_data() - { - $retval = array(); - while ($field = mysqli_fetch_object($this->result_id)) - { - preg_match('/([a-zA-Z]+)(\(\d+\))?/', $field->Type, $matches); - - $type = (array_key_exists(1, $matches)) ? $matches[1] : NULL; - $length = (array_key_exists(2, $matches)) ? preg_replace('/[^\d]/', '', $matches[2]) : NULL; - - $F = new stdClass(); - $F->name = $field->Field; - $F->type = $type; - $F->default = $field->Default; - $F->max_length = $length; - $F->primary_key = ( $field->Key == 'PRI' ? 1 : 0 ); - - $retval[] = $F; - } - - return $retval; - } - - // -------------------------------------------------------------------- - - /** - * Free the result - * - * @return null - */ - function free_result() - { - if (is_object($this->result_id)) - { - mysqli_free_result($this->result_id); - $this->result_id = FALSE; - } - } - - // -------------------------------------------------------------------- - - /** - * Data Seek - * - * Moves the internal pointer to the desired offset. We call - * this internally before fetching results to make sure the - * result set starts at zero - * - * @access private - * @return array - */ - function _data_seek($n = 0) - { - return mysqli_data_seek($this->result_id, $n); - } - - // -------------------------------------------------------------------- - - /** - * Result - associative array - * - * Returns the result set as an array - * - * @access private - * @return array - */ - function _fetch_assoc() - { - return mysqli_fetch_assoc($this->result_id); - } - - // -------------------------------------------------------------------- - - /** - * Result - object - * - * Returns the result set as an object - * - * @access private - * @return object - */ - function _fetch_object() - { - return mysqli_fetch_object($this->result_id); - } - -} - - -/* End of file mysqli_result.php */ -/* Location: ./system/database/drivers/mysqli/mysqli_result.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/mysqli/mysqli_utility.php b/sources/web/system/database/drivers/mysqli/mysqli_utility.php deleted file mode 100644 index e17889b..0000000 --- a/sources/web/system/database/drivers/mysqli/mysqli_utility.php +++ /dev/null @@ -1,87 +0,0 @@ -db->_escape_identifiers($table); - } - - // -------------------------------------------------------------------- - - /** - * Repair table query - * - * Generates a platform-specific query so that a table can be repaired - * - * @access private - * @param string the table name - * @return object - */ - function _repair_table($table) - { - return "REPAIR TABLE ".$this->db->_escape_identifiers($table); - } - - // -------------------------------------------------------------------- - - /** - * MySQLi Export - * - * @access private - * @param array Preferences - * @return mixed - */ - function _backup($params = array()) - { - // Currently unsupported - return $this->db->display_error('db_unsuported_feature'); - } -} - -/* End of file mysqli_utility.php */ -/* Location: ./system/database/drivers/mysqli/mysqli_utility.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/oci8/index.html b/sources/web/system/database/drivers/oci8/index.html deleted file mode 100644 index c942a79..0000000 --- a/sources/web/system/database/drivers/oci8/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - 403 Forbidden - - - -

          Directory access is forbidden.

          - - - \ No newline at end of file diff --git a/sources/web/system/database/drivers/oci8/oci8_driver.php b/sources/web/system/database/drivers/oci8/oci8_driver.php deleted file mode 100644 index 930177e..0000000 --- a/sources/web/system/database/drivers/oci8/oci8_driver.php +++ /dev/null @@ -1,808 +0,0 @@ -username, $this->password, $this->hostname, $this->char_set); - } - - // -------------------------------------------------------------------- - - /** - * Persistent database connection - * - * @access private called by the base class - * @return resource - */ - public function db_pconnect() - { - return @oci_pconnect($this->username, $this->password, $this->hostname, $this->char_set); - } - - // -------------------------------------------------------------------- - - /** - * Reconnect - * - * Keep / reestablish the db connection if no queries have been - * sent for a length of time exceeding the server's idle timeout - * - * @access public - * @return void - */ - public function reconnect() - { - // not implemented in oracle - return; - } - - // -------------------------------------------------------------------- - - /** - * Select the database - * - * @access private called by the base class - * @return resource - */ - public function db_select() - { - // Not in Oracle - schemas are actually usernames - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Set client character set - * - * @access public - * @param string - * @param string - * @return resource - */ - public function db_set_charset($charset, $collation) - { - // @todo - add support if needed - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Version number query string - * - * @access protected - * @return string - */ - protected function _version() - { - return oci_server_version($this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * Execute the query - * - * @access protected called by the base class - * @param string an SQL query - * @return resource - */ - protected function _execute($sql) - { - // oracle must parse the query before it is run. All of the actions with - // the query are based on the statement id returned by ociparse - $this->stmt_id = FALSE; - $this->_set_stmt_id($sql); - oci_set_prefetch($this->stmt_id, 1000); - return @oci_execute($this->stmt_id, $this->_commit); - } - - /** - * Generate a statement ID - * - * @access private - * @param string an SQL query - * @return none - */ - private function _set_stmt_id($sql) - { - if ( ! is_resource($this->stmt_id)) - { - $this->stmt_id = oci_parse($this->conn_id, $this->_prep_query($sql)); - } - } - - // -------------------------------------------------------------------- - - /** - * Prep the query - * - * If needed, each database adapter can prep the query string - * - * @access private called by execute() - * @param string an SQL query - * @return string - */ - private function _prep_query($sql) - { - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * getCursor. Returns a cursor from the datbase - * - * @access public - * @return cursor id - */ - public function get_cursor() - { - $this->curs_id = oci_new_cursor($this->conn_id); - return $this->curs_id; - } - - // -------------------------------------------------------------------- - - /** - * Stored Procedure. Executes a stored procedure - * - * @access public - * @param package package stored procedure is in - * @param procedure stored procedure to execute - * @param params array of parameters - * @return array - * - * params array keys - * - * KEY OPTIONAL NOTES - * name no the name of the parameter should be in : format - * value no the value of the parameter. If this is an OUT or IN OUT parameter, - * this should be a reference to a variable - * type yes the type of the parameter - * length yes the max size of the parameter - */ - public function stored_procedure($package, $procedure, $params) - { - if ($package == '' OR $procedure == '' OR ! is_array($params)) - { - if ($this->db_debug) - { - log_message('error', 'Invalid query: '.$package.'.'.$procedure); - return $this->display_error('db_invalid_query'); - } - return FALSE; - } - - // build the query string - $sql = "begin $package.$procedure("; - - $have_cursor = FALSE; - foreach ($params as $param) - { - $sql .= $param['name'] . ","; - - if (array_key_exists('type', $param) && ($param['type'] === OCI_B_CURSOR)) - { - $have_cursor = TRUE; - } - } - $sql = trim($sql, ",") . "); end;"; - - $this->stmt_id = FALSE; - $this->_set_stmt_id($sql); - $this->_bind_params($params); - $this->query($sql, FALSE, $have_cursor); - } - - // -------------------------------------------------------------------- - - /** - * Bind parameters - * - * @access private - * @return none - */ - private function _bind_params($params) - { - if ( ! is_array($params) OR ! is_resource($this->stmt_id)) - { - return; - } - - foreach ($params as $param) - { - foreach (array('name', 'value', 'type', 'length') as $val) - { - if ( ! isset($param[$val])) - { - $param[$val] = ''; - } - } - - oci_bind_by_name($this->stmt_id, $param['name'], $param['value'], $param['length'], $param['type']); - } - } - - // -------------------------------------------------------------------- - - /** - * Begin Transaction - * - * @access public - * @return bool - */ - public function trans_begin($test_mode = FALSE) - { - if ( ! $this->trans_enabled) - { - return TRUE; - } - - // When transactions are nested we only begin/commit/rollback the outermost ones - if ($this->_trans_depth > 0) - { - return TRUE; - } - - // Reset the transaction failure flag. - // If the $test_mode flag is set to TRUE transactions will be rolled back - // even if the queries produce a successful result. - $this->_trans_failure = ($test_mode === TRUE) ? TRUE : FALSE; - - $this->_commit = OCI_DEFAULT; - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Commit Transaction - * - * @access public - * @return bool - */ - public function trans_commit() - { - if ( ! $this->trans_enabled) - { - return TRUE; - } - - // When transactions are nested we only begin/commit/rollback the outermost ones - if ($this->_trans_depth > 0) - { - return TRUE; - } - - $ret = oci_commit($this->conn_id); - $this->_commit = OCI_COMMIT_ON_SUCCESS; - return $ret; - } - - // -------------------------------------------------------------------- - - /** - * Rollback Transaction - * - * @access public - * @return bool - */ - public function trans_rollback() - { - if ( ! $this->trans_enabled) - { - return TRUE; - } - - // When transactions are nested we only begin/commit/rollback the outermost ones - if ($this->_trans_depth > 0) - { - return TRUE; - } - - $ret = oci_rollback($this->conn_id); - $this->_commit = OCI_COMMIT_ON_SUCCESS; - return $ret; - } - - // -------------------------------------------------------------------- - - /** - * Escape String - * - * @access public - * @param string - * @param bool whether or not the string will be used in a LIKE condition - * @return string - */ - public function escape_str($str, $like = FALSE) - { - if (is_array($str)) - { - foreach ($str as $key => $val) - { - $str[$key] = $this->escape_str($val, $like); - } - - return $str; - } - - $str = remove_invisible_characters($str); - - // escape LIKE condition wildcards - if ($like === TRUE) - { - $str = str_replace( array('%', '_', $this->_like_escape_chr), - array($this->_like_escape_chr.'%', $this->_like_escape_chr.'_', $this->_like_escape_chr.$this->_like_escape_chr), - $str); - } - - return $str; - } - - // -------------------------------------------------------------------- - - /** - * Affected Rows - * - * @access public - * @return integer - */ - public function affected_rows() - { - return @oci_num_rows($this->stmt_id); - } - - // -------------------------------------------------------------------- - - /** - * Insert ID - * - * @access public - * @return integer - */ - public function insert_id() - { - // not supported in oracle - return $this->display_error('db_unsupported_function'); - } - - // -------------------------------------------------------------------- - - /** - * "Count All" query - * - * Generates a platform-specific query string that counts all records in - * the specified database - * - * @access public - * @param string - * @return string - */ - public function count_all($table = '') - { - if ($table == '') - { - return 0; - } - - $query = $this->query($this->_count_string . $this->_protect_identifiers('numrows') . " FROM " . $this->_protect_identifiers($table, TRUE, NULL, FALSE)); - - if ($query == FALSE) - { - return 0; - } - - $row = $query->row(); - $this->_reset_select(); - return (int) $row->numrows; - } - - // -------------------------------------------------------------------- - - /** - * Show table query - * - * Generates a platform-specific query string so that the table names can be fetched - * - * @access protected - * @param boolean - * @return string - */ - protected function _list_tables($prefix_limit = FALSE) - { - $sql = "SELECT TABLE_NAME FROM ALL_TABLES"; - - if ($prefix_limit !== FALSE AND $this->dbprefix != '') - { - $sql .= " WHERE TABLE_NAME LIKE '".$this->escape_like_str($this->dbprefix)."%' ".sprintf($this->_like_escape_str, $this->_like_escape_chr); - } - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Show column query - * - * Generates a platform-specific query string so that the column names can be fetched - * - * @access protected - * @param string the table name - * @return string - */ - protected function _list_columns($table = '') - { - return "SELECT COLUMN_NAME FROM all_tab_columns WHERE table_name = '$table'"; - } - - // -------------------------------------------------------------------- - - /** - * Field data query - * - * Generates a platform-specific query so that the column data can be retrieved - * - * @access public - * @param string the table name - * @return object - */ - protected function _field_data($table) - { - return "SELECT * FROM ".$table." where rownum = 1"; - } - - // -------------------------------------------------------------------- - - /** - * The error message string - * - * @access protected - * @return string - */ - protected function _error_message() - { - // If the error was during connection, no conn_id should be passed - $error = is_resource($this->conn_id) ? oci_error($this->conn_id) : oci_error(); - return $error['message']; - } - - // -------------------------------------------------------------------- - - /** - * The error message number - * - * @access protected - * @return integer - */ - protected function _error_number() - { - // Same as _error_message() - $error = is_resource($this->conn_id) ? oci_error($this->conn_id) : oci_error(); - return $error['code']; - } - - // -------------------------------------------------------------------- - - /** - * Escape the SQL Identifiers - * - * This function escapes column and table names - * - * @access protected - * @param string - * @return string - */ - protected function _escape_identifiers($item) - { - if ($this->_escape_char == '') - { - return $item; - } - - foreach ($this->_reserved_identifiers as $id) - { - if (strpos($item, '.'.$id) !== FALSE) - { - $str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item); - - // remove duplicates if the user already included the escape - return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); - } - } - - if (strpos($item, '.') !== FALSE) - { - $str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char; - } - else - { - $str = $this->_escape_char.$item.$this->_escape_char; - } - - // remove duplicates if the user already included the escape - return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); - } - - // -------------------------------------------------------------------- - - /** - * From Tables - * - * This function implicitly groups FROM tables so there is no confusion - * about operator precedence in harmony with SQL standards - * - * @access protected - * @param type - * @return type - */ - protected function _from_tables($tables) - { - if ( ! is_array($tables)) - { - $tables = array($tables); - } - - return implode(', ', $tables); - } - - // -------------------------------------------------------------------- - - /** - * Insert statement - * - * Generates a platform-specific insert string from the supplied data - * - * @access public - * @param string the table name - * @param array the insert keys - * @param array the insert values - * @return string - */ - protected function _insert($table, $keys, $values) - { - return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")"; - } - - // -------------------------------------------------------------------- - - /** - * Insert_batch statement - * - * Generates a platform-specific insert string from the supplied data - * - * @access protected - * @param string the table name - * @param array the insert keys - * @param array the insert values - * @return string - */ - protected function _insert_batch($table, $keys, $values) - { - $keys = implode(', ', $keys); - $sql = "INSERT ALL\n"; - - for ($i = 0, $c = count($values); $i < $c; $i++) - { - $sql .= ' INTO ' . $table . ' (' . $keys . ') VALUES ' . $values[$i] . "\n"; - } - - $sql .= 'SELECT * FROM dual'; - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Update statement - * - * Generates a platform-specific update string from the supplied data - * - * @access protected - * @param string the table name - * @param array the update data - * @param array the where clause - * @param array the orderby clause - * @param array the limit clause - * @return string - */ - protected function _update($table, $values, $where, $orderby = array(), $limit = FALSE) - { - foreach ($values as $key => $val) - { - $valstr[] = $key." = ".$val; - } - - $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; - - $orderby = (count($orderby) >= 1)?' ORDER BY '.implode(", ", $orderby):''; - - $sql = "UPDATE ".$table." SET ".implode(', ', $valstr); - - $sql .= ($where != '' AND count($where) >=1) ? " WHERE ".implode(" ", $where) : ''; - - $sql .= $orderby.$limit; - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Truncate statement - * - * Generates a platform-specific truncate string from the supplied data - * If the database does not support the truncate() command - * This function maps to "DELETE FROM table" - * - * @access protected - * @param string the table name - * @return string - */ - protected function _truncate($table) - { - return "TRUNCATE TABLE ".$table; - } - - // -------------------------------------------------------------------- - - /** - * Delete statement - * - * Generates a platform-specific delete string from the supplied data - * - * @access protected - * @param string the table name - * @param array the where clause - * @param string the limit clause - * @return string - */ - protected function _delete($table, $where = array(), $like = array(), $limit = FALSE) - { - $conditions = ''; - - if (count($where) > 0 OR count($like) > 0) - { - $conditions = "\nWHERE "; - $conditions .= implode("\n", $this->ar_where); - - if (count($where) > 0 && count($like) > 0) - { - $conditions .= " AND "; - } - $conditions .= implode("\n", $like); - } - - $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; - - return "DELETE FROM ".$table.$conditions.$limit; - } - - // -------------------------------------------------------------------- - - /** - * Limit string - * - * Generates a platform-specific LIMIT clause - * - * @access protected - * @param string the sql query string - * @param integer the number of rows to limit the query to - * @param integer the offset value - * @return string - */ - protected function _limit($sql, $limit, $offset) - { - $limit = $offset + $limit; - $newsql = "SELECT * FROM (select inner_query.*, rownum rnum FROM ($sql) inner_query WHERE rownum < $limit)"; - - if ($offset != 0) - { - $newsql .= " WHERE rnum >= $offset"; - } - - // remember that we used limits - $this->limit_used = TRUE; - - return $newsql; - } - - // -------------------------------------------------------------------- - - /** - * Close DB Connection - * - * @access protected - * @param resource - * @return void - */ - protected function _close($conn_id) - { - @oci_close($conn_id); - } - - -} - - - -/* End of file oci8_driver.php */ -/* Location: ./system/database/drivers/oci8/oci8_driver.php */ diff --git a/sources/web/system/database/drivers/oci8/oci8_forge.php b/sources/web/system/database/drivers/oci8/oci8_forge.php deleted file mode 100644 index 3cd1758..0000000 --- a/sources/web/system/database/drivers/oci8/oci8_forge.php +++ /dev/null @@ -1,248 +0,0 @@ -db->_escape_identifiers($table)." ("; - $current_field_count = 0; - - foreach ($fields as $field=>$attributes) - { - // Numeric field names aren't allowed in databases, so if the key is - // numeric, we know it was assigned by PHP and the developer manually - // entered the field information, so we'll simply add it to the list - if (is_numeric($field)) - { - $sql .= "\n\t$attributes"; - } - else - { - $attributes = array_change_key_case($attributes, CASE_UPPER); - - $sql .= "\n\t".$this->db->_protect_identifiers($field); - - $sql .= ' '.$attributes['TYPE']; - - if (array_key_exists('CONSTRAINT', $attributes)) - { - $sql .= '('.$attributes['CONSTRAINT'].')'; - } - - if (array_key_exists('UNSIGNED', $attributes) && $attributes['UNSIGNED'] === TRUE) - { - $sql .= ' UNSIGNED'; - } - - if (array_key_exists('DEFAULT', $attributes)) - { - $sql .= ' DEFAULT \''.$attributes['DEFAULT'].'\''; - } - - if (array_key_exists('NULL', $attributes) && $attributes['NULL'] === TRUE) - { - $sql .= ' NULL'; - } - else - { - $sql .= ' NOT NULL'; - } - - if (array_key_exists('AUTO_INCREMENT', $attributes) && $attributes['AUTO_INCREMENT'] === TRUE) - { - $sql .= ' AUTO_INCREMENT'; - } - } - - // don't add a comma on the end of the last field - if (++$current_field_count < count($fields)) - { - $sql .= ','; - } - } - - if (count($primary_keys) > 0) - { - $primary_keys = $this->db->_protect_identifiers($primary_keys); - $sql .= ",\n\tPRIMARY KEY (" . implode(', ', $primary_keys) . ")"; - } - - if (is_array($keys) && count($keys) > 0) - { - foreach ($keys as $key) - { - if (is_array($key)) - { - $key = $this->db->_protect_identifiers($key); - } - else - { - $key = array($this->db->_protect_identifiers($key)); - } - - $sql .= ",\n\tUNIQUE COLUMNS (" . implode(', ', $key) . ")"; - } - } - - $sql .= "\n)"; - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Drop Table - * - * @access private - * @return bool - */ - function _drop_table($table) - { - return FALSE; - } - - // -------------------------------------------------------------------- - - /** - * Alter table query - * - * Generates a platform-specific query so that a table can be altered - * Called by add_column(), drop_column(), and column_alter(), - * - * @access private - * @param string the ALTER type (ADD, DROP, CHANGE) - * @param string the column name - * @param string the table name - * @param string the column definition - * @param string the default value - * @param boolean should 'NOT NULL' be added - * @param string the field after which we should add the new field - * @return object - */ - function _alter_table($alter_type, $table, $column_name, $column_definition = '', $default_value = '', $null = '', $after_field = '') - { - $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table)." $alter_type ".$this->db->_protect_identifiers($column_name); - - // DROP has everything it needs now. - if ($alter_type == 'DROP') - { - return $sql; - } - - $sql .= " $column_definition"; - - if ($default_value != '') - { - $sql .= " DEFAULT \"$default_value\""; - } - - if ($null === NULL) - { - $sql .= ' NULL'; - } - else - { - $sql .= ' NOT NULL'; - } - - if ($after_field != '') - { - $sql .= ' AFTER ' . $this->db->_protect_identifiers($after_field); - } - - return $sql; - - } - - // -------------------------------------------------------------------- - - /** - * Rename a table - * - * Generates a platform-specific query so that a table can be renamed - * - * @access private - * @param string the old table name - * @param string the new table name - * @return string - */ - function _rename_table($table_name, $new_table_name) - { - $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table_name)." RENAME TO ".$this->db->_protect_identifiers($new_table_name); - return $sql; - } - - -} - -/* End of file oci8_forge.php */ -/* Location: ./system/database/drivers/oci8/oci8_forge.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/oci8/oci8_result.php b/sources/web/system/database/drivers/oci8/oci8_result.php deleted file mode 100644 index ae133d7..0000000 --- a/sources/web/system/database/drivers/oci8/oci8_result.php +++ /dev/null @@ -1,219 +0,0 @@ -num_rows === 0 && count($this->result_array()) > 0) - { - $this->num_rows = count($this->result_array()); - @oci_execute($this->stmt_id); - - if ($this->curs_id) - { - @oci_execute($this->curs_id); - } - } - - return $rowcount; - } - - // -------------------------------------------------------------------- - - /** - * Number of fields in the result set - * - * @access public - * @return integer - */ - public function num_fields() - { - $count = @oci_num_fields($this->stmt_id); - - // if we used a limit we subtract it - if ($this->limit_used) - { - $count = $count - 1; - } - - return $count; - } - - // -------------------------------------------------------------------- - - /** - * Fetch Field Names - * - * Generates an array of column names - * - * @access public - * @return array - */ - public function list_fields() - { - $field_names = array(); - for ($c = 1, $fieldCount = $this->num_fields(); $c <= $fieldCount; $c++) - { - $field_names[] = oci_field_name($this->stmt_id, $c); - } - return $field_names; - } - - // -------------------------------------------------------------------- - - /** - * Field data - * - * Generates an array of objects containing field meta-data - * - * @access public - * @return array - */ - public function field_data() - { - $retval = array(); - for ($c = 1, $fieldCount = $this->num_fields(); $c <= $fieldCount; $c++) - { - $F = new stdClass(); - $F->name = oci_field_name($this->stmt_id, $c); - $F->type = oci_field_type($this->stmt_id, $c); - $F->max_length = oci_field_size($this->stmt_id, $c); - - $retval[] = $F; - } - - return $retval; - } - - // -------------------------------------------------------------------- - - /** - * Free the result - * - * @return null - */ - public function free_result() - { - if (is_resource($this->result_id)) - { - oci_free_statement($this->result_id); - $this->result_id = FALSE; - } - } - - // -------------------------------------------------------------------- - - /** - * Result - associative array - * - * Returns the result set as an array - * - * @access protected - * @return array - */ - protected function _fetch_assoc() - { - $id = ($this->curs_id) ? $this->curs_id : $this->stmt_id; - return oci_fetch_assoc($id); - } - - // -------------------------------------------------------------------- - - /** - * Result - object - * - * Returns the result set as an object - * - * @access protected - * @return object - */ - protected function _fetch_object() - { - $id = ($this->curs_id) ? $this->curs_id : $this->stmt_id; - return @oci_fetch_object($id); - } - - // -------------------------------------------------------------------- - - /** - * Query result. "array" version. - * - * @access public - * @return array - */ - public function result_array() - { - if (count($this->result_array) > 0) - { - return $this->result_array; - } - - $row = NULL; - while ($row = $this->_fetch_assoc()) - { - $this->result_array[] = $row; - } - - return $this->result_array; - } - - // -------------------------------------------------------------------- - - /** - * Data Seek - * - * Moves the internal pointer to the desired offset. We call - * this internally before fetching results to make sure the - * result set starts at zero - * - * @access protected - * @return array - */ - protected function _data_seek($n = 0) - { - return FALSE; // Not needed - } - -} - - -/* End of file oci8_result.php */ -/* Location: ./system/database/drivers/oci8/oci8_result.php */ diff --git a/sources/web/system/database/drivers/oci8/oci8_utility.php b/sources/web/system/database/drivers/oci8/oci8_utility.php deleted file mode 100644 index 854b467..0000000 --- a/sources/web/system/database/drivers/oci8/oci8_utility.php +++ /dev/null @@ -1,87 +0,0 @@ -db->display_error('db_unsuported_feature'); - } -} - -/* End of file oci8_utility.php */ -/* Location: ./system/database/drivers/oci8/oci8_utility.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/odbc/index.html b/sources/web/system/database/drivers/odbc/index.html deleted file mode 100644 index c942a79..0000000 --- a/sources/web/system/database/drivers/odbc/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - 403 Forbidden - - - -

          Directory access is forbidden.

          - - - \ No newline at end of file diff --git a/sources/web/system/database/drivers/odbc/odbc_driver.php b/sources/web/system/database/drivers/odbc/odbc_driver.php deleted file mode 100644 index bcd7937..0000000 --- a/sources/web/system/database/drivers/odbc/odbc_driver.php +++ /dev/null @@ -1,637 +0,0 @@ -_random_keyword = ' RND('.time().')'; // database specific random keyword - } - - /** - * Non-persistent database connection - * - * @access private called by the base class - * @return resource - */ - function db_connect() - { - return @odbc_connect($this->hostname, $this->username, $this->password); - } - - // -------------------------------------------------------------------- - - /** - * Persistent database connection - * - * @access private called by the base class - * @return resource - */ - function db_pconnect() - { - return @odbc_pconnect($this->hostname, $this->username, $this->password); - } - - // -------------------------------------------------------------------- - - /** - * Reconnect - * - * Keep / reestablish the db connection if no queries have been - * sent for a length of time exceeding the server's idle timeout - * - * @access public - * @return void - */ - function reconnect() - { - // not implemented in odbc - } - - // -------------------------------------------------------------------- - - /** - * Select the database - * - * @access private called by the base class - * @return resource - */ - function db_select() - { - // Not needed for ODBC - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Set client character set - * - * @access public - * @param string - * @param string - * @return resource - */ - function db_set_charset($charset, $collation) - { - // @todo - add support if needed - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Version number query string - * - * @access public - * @return string - */ - function _version() - { - return "SELECT version() AS ver"; - } - - // -------------------------------------------------------------------- - - /** - * Execute the query - * - * @access private called by the base class - * @param string an SQL query - * @return resource - */ - function _execute($sql) - { - $sql = $this->_prep_query($sql); - return @odbc_exec($this->conn_id, $sql); - } - - // -------------------------------------------------------------------- - - /** - * Prep the query - * - * If needed, each database adapter can prep the query string - * - * @access private called by execute() - * @param string an SQL query - * @return string - */ - function _prep_query($sql) - { - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Begin Transaction - * - * @access public - * @return bool - */ - function trans_begin($test_mode = FALSE) - { - if ( ! $this->trans_enabled) - { - return TRUE; - } - - // When transactions are nested we only begin/commit/rollback the outermost ones - if ($this->_trans_depth > 0) - { - return TRUE; - } - - // Reset the transaction failure flag. - // If the $test_mode flag is set to TRUE transactions will be rolled back - // even if the queries produce a successful result. - $this->_trans_failure = ($test_mode === TRUE) ? TRUE : FALSE; - - return odbc_autocommit($this->conn_id, FALSE); - } - - // -------------------------------------------------------------------- - - /** - * Commit Transaction - * - * @access public - * @return bool - */ - function trans_commit() - { - if ( ! $this->trans_enabled) - { - return TRUE; - } - - // When transactions are nested we only begin/commit/rollback the outermost ones - if ($this->_trans_depth > 0) - { - return TRUE; - } - - $ret = odbc_commit($this->conn_id); - odbc_autocommit($this->conn_id, TRUE); - return $ret; - } - - // -------------------------------------------------------------------- - - /** - * Rollback Transaction - * - * @access public - * @return bool - */ - function trans_rollback() - { - if ( ! $this->trans_enabled) - { - return TRUE; - } - - // When transactions are nested we only begin/commit/rollback the outermost ones - if ($this->_trans_depth > 0) - { - return TRUE; - } - - $ret = odbc_rollback($this->conn_id); - odbc_autocommit($this->conn_id, TRUE); - return $ret; - } - - // -------------------------------------------------------------------- - - /** - * Escape String - * - * @access public - * @param string - * @param bool whether or not the string will be used in a LIKE condition - * @return string - */ - function escape_str($str, $like = FALSE) - { - if (is_array($str)) - { - foreach ($str as $key => $val) - { - $str[$key] = $this->escape_str($val, $like); - } - - return $str; - } - - // ODBC doesn't require escaping - $str = remove_invisible_characters($str); - - // escape LIKE condition wildcards - if ($like === TRUE) - { - $str = str_replace( array('%', '_', $this->_like_escape_chr), - array($this->_like_escape_chr.'%', $this->_like_escape_chr.'_', $this->_like_escape_chr.$this->_like_escape_chr), - $str); - } - - return $str; - } - - // -------------------------------------------------------------------- - - /** - * Affected Rows - * - * @access public - * @return integer - */ - function affected_rows() - { - return @odbc_num_rows($this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * Insert ID - * - * @access public - * @return integer - */ - function insert_id() - { - return @odbc_insert_id($this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * "Count All" query - * - * Generates a platform-specific query string that counts all records in - * the specified database - * - * @access public - * @param string - * @return string - */ - function count_all($table = '') - { - if ($table == '') - { - return 0; - } - - $query = $this->query($this->_count_string . $this->_protect_identifiers('numrows') . " FROM " . $this->_protect_identifiers($table, TRUE, NULL, FALSE)); - - if ($query->num_rows() == 0) - { - return 0; - } - - $row = $query->row(); - $this->_reset_select(); - return (int) $row->numrows; - } - - // -------------------------------------------------------------------- - - /** - * Show table query - * - * Generates a platform-specific query string so that the table names can be fetched - * - * @access private - * @param boolean - * @return string - */ - function _list_tables($prefix_limit = FALSE) - { - $sql = "SHOW TABLES FROM `".$this->database."`"; - - if ($prefix_limit !== FALSE AND $this->dbprefix != '') - { - //$sql .= " LIKE '".$this->escape_like_str($this->dbprefix)."%' ".sprintf($this->_like_escape_str, $this->_like_escape_chr); - return FALSE; // not currently supported - } - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Show column query - * - * Generates a platform-specific query string so that the column names can be fetched - * - * @access public - * @param string the table name - * @return string - */ - function _list_columns($table = '') - { - return "SHOW COLUMNS FROM ".$table; - } - - // -------------------------------------------------------------------- - - /** - * Field data query - * - * Generates a platform-specific query so that the column data can be retrieved - * - * @access public - * @param string the table name - * @return object - */ - function _field_data($table) - { - return "SELECT TOP 1 FROM ".$table; - } - - // -------------------------------------------------------------------- - - /** - * The error message string - * - * @access private - * @return string - */ - function _error_message() - { - return odbc_errormsg($this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * The error message number - * - * @access private - * @return integer - */ - function _error_number() - { - return odbc_error($this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * Escape the SQL Identifiers - * - * This function escapes column and table names - * - * @access private - * @param string - * @return string - */ - function _escape_identifiers($item) - { - if ($this->_escape_char == '') - { - return $item; - } - - foreach ($this->_reserved_identifiers as $id) - { - if (strpos($item, '.'.$id) !== FALSE) - { - $str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item); - - // remove duplicates if the user already included the escape - return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); - } - } - - if (strpos($item, '.') !== FALSE) - { - $str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char; - } - else - { - $str = $this->_escape_char.$item.$this->_escape_char; - } - - // remove duplicates if the user already included the escape - return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); - } - - // -------------------------------------------------------------------- - - /** - * From Tables - * - * This function implicitly groups FROM tables so there is no confusion - * about operator precedence in harmony with SQL standards - * - * @access public - * @param type - * @return type - */ - function _from_tables($tables) - { - if ( ! is_array($tables)) - { - $tables = array($tables); - } - - return '('.implode(', ', $tables).')'; - } - - // -------------------------------------------------------------------- - - /** - * Insert statement - * - * Generates a platform-specific insert string from the supplied data - * - * @access public - * @param string the table name - * @param array the insert keys - * @param array the insert values - * @return string - */ - function _insert($table, $keys, $values) - { - return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")"; - } - - // -------------------------------------------------------------------- - - /** - * Update statement - * - * Generates a platform-specific update string from the supplied data - * - * @access public - * @param string the table name - * @param array the update data - * @param array the where clause - * @param array the orderby clause - * @param array the limit clause - * @return string - */ - function _update($table, $values, $where, $orderby = array(), $limit = FALSE) - { - foreach ($values as $key => $val) - { - $valstr[] = $key." = ".$val; - } - - $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; - - $orderby = (count($orderby) >= 1)?' ORDER BY '.implode(", ", $orderby):''; - - $sql = "UPDATE ".$table." SET ".implode(', ', $valstr); - - $sql .= ($where != '' AND count($where) >=1) ? " WHERE ".implode(" ", $where) : ''; - - $sql .= $orderby.$limit; - - return $sql; - } - - - // -------------------------------------------------------------------- - - /** - * Truncate statement - * - * Generates a platform-specific truncate string from the supplied data - * If the database does not support the truncate() command - * This function maps to "DELETE FROM table" - * - * @access public - * @param string the table name - * @return string - */ - function _truncate($table) - { - return $this->_delete($table); - } - - // -------------------------------------------------------------------- - - /** - * Delete statement - * - * Generates a platform-specific delete string from the supplied data - * - * @access public - * @param string the table name - * @param array the where clause - * @param string the limit clause - * @return string - */ - function _delete($table, $where = array(), $like = array(), $limit = FALSE) - { - $conditions = ''; - - if (count($where) > 0 OR count($like) > 0) - { - $conditions = "\nWHERE "; - $conditions .= implode("\n", $this->ar_where); - - if (count($where) > 0 && count($like) > 0) - { - $conditions .= " AND "; - } - $conditions .= implode("\n", $like); - } - - $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; - - return "DELETE FROM ".$table.$conditions.$limit; - } - - // -------------------------------------------------------------------- - - /** - * Limit string - * - * Generates a platform-specific LIMIT clause - * - * @access public - * @param string the sql query string - * @param integer the number of rows to limit the query to - * @param integer the offset value - * @return string - */ - function _limit($sql, $limit, $offset) - { - // Does ODBC doesn't use the LIMIT clause? - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Close DB Connection - * - * @access public - * @param resource - * @return void - */ - function _close($conn_id) - { - @odbc_close($conn_id); - } - - -} - - - -/* End of file odbc_driver.php */ -/* Location: ./system/database/drivers/odbc/odbc_driver.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/odbc/odbc_forge.php b/sources/web/system/database/drivers/odbc/odbc_forge.php deleted file mode 100644 index 3ec86b4..0000000 --- a/sources/web/system/database/drivers/odbc/odbc_forge.php +++ /dev/null @@ -1,266 +0,0 @@ -db->db_debug) - { - return $this->db->display_error('db_unsuported_feature'); - } - return FALSE; - } - - // -------------------------------------------------------------------- - - /** - * Drop database - * - * @access private - * @param string the database name - * @return bool - */ - function _drop_database($name) - { - // ODBC has no "drop database" command since it's - // designed to connect to an existing database - if ($this->db->db_debug) - { - return $this->db->display_error('db_unsuported_feature'); - } - return FALSE; - } - - // -------------------------------------------------------------------- - - /** - * Create Table - * - * @access private - * @param string the table name - * @param array the fields - * @param mixed primary key(s) - * @param mixed key(s) - * @param boolean should 'IF NOT EXISTS' be added to the SQL - * @return bool - */ - function _create_table($table, $fields, $primary_keys, $keys, $if_not_exists) - { - $sql = 'CREATE TABLE '; - - if ($if_not_exists === TRUE) - { - $sql .= 'IF NOT EXISTS '; - } - - $sql .= $this->db->_escape_identifiers($table)." ("; - $current_field_count = 0; - - foreach ($fields as $field=>$attributes) - { - // Numeric field names aren't allowed in databases, so if the key is - // numeric, we know it was assigned by PHP and the developer manually - // entered the field information, so we'll simply add it to the list - if (is_numeric($field)) - { - $sql .= "\n\t$attributes"; - } - else - { - $attributes = array_change_key_case($attributes, CASE_UPPER); - - $sql .= "\n\t".$this->db->_protect_identifiers($field); - - $sql .= ' '.$attributes['TYPE']; - - if (array_key_exists('CONSTRAINT', $attributes)) - { - $sql .= '('.$attributes['CONSTRAINT'].')'; - } - - if (array_key_exists('UNSIGNED', $attributes) && $attributes['UNSIGNED'] === TRUE) - { - $sql .= ' UNSIGNED'; - } - - if (array_key_exists('DEFAULT', $attributes)) - { - $sql .= ' DEFAULT \''.$attributes['DEFAULT'].'\''; - } - - if (array_key_exists('NULL', $attributes) && $attributes['NULL'] === TRUE) - { - $sql .= ' NULL'; - } - else - { - $sql .= ' NOT NULL'; - } - - if (array_key_exists('AUTO_INCREMENT', $attributes) && $attributes['AUTO_INCREMENT'] === TRUE) - { - $sql .= ' AUTO_INCREMENT'; - } - } - - // don't add a comma on the end of the last field - if (++$current_field_count < count($fields)) - { - $sql .= ','; - } - } - - if (count($primary_keys) > 0) - { - $primary_keys = $this->db->_protect_identifiers($primary_keys); - $sql .= ",\n\tPRIMARY KEY (" . implode(', ', $primary_keys) . ")"; - } - - if (is_array($keys) && count($keys) > 0) - { - foreach ($keys as $key) - { - if (is_array($key)) - { - $key = $this->db->_protect_identifiers($key); - } - else - { - $key = array($this->db->_protect_identifiers($key)); - } - - $sql .= ",\n\tFOREIGN KEY (" . implode(', ', $key) . ")"; - } - } - - $sql .= "\n)"; - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Drop Table - * - * @access private - * @return bool - */ - function _drop_table($table) - { - // Not a supported ODBC feature - if ($this->db->db_debug) - { - return $this->db->display_error('db_unsuported_feature'); - } - return FALSE; - } - - // -------------------------------------------------------------------- - - /** - * Alter table query - * - * Generates a platform-specific query so that a table can be altered - * Called by add_column(), drop_column(), and column_alter(), - * - * @access private - * @param string the ALTER type (ADD, DROP, CHANGE) - * @param string the column name - * @param string the table name - * @param string the column definition - * @param string the default value - * @param boolean should 'NOT NULL' be added - * @param string the field after which we should add the new field - * @return object - */ - function _alter_table($alter_type, $table, $column_name, $column_definition = '', $default_value = '', $null = '', $after_field = '') - { - $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table)." $alter_type ".$this->db->_protect_identifiers($column_name); - - // DROP has everything it needs now. - if ($alter_type == 'DROP') - { - return $sql; - } - - $sql .= " $column_definition"; - - if ($default_value != '') - { - $sql .= " DEFAULT \"$default_value\""; - } - - if ($null === NULL) - { - $sql .= ' NULL'; - } - else - { - $sql .= ' NOT NULL'; - } - - if ($after_field != '') - { - $sql .= ' AFTER ' . $this->db->_protect_identifiers($after_field); - } - - return $sql; - - } - - - // -------------------------------------------------------------------- - - /** - * Rename a table - * - * Generates a platform-specific query so that a table can be renamed - * - * @access private - * @param string the old table name - * @param string the new table name - * @return string - */ - function _rename_table($table_name, $new_table_name) - { - $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table_name)." RENAME TO ".$this->db->_protect_identifiers($new_table_name); - return $sql; - } - - -} - -/* End of file odbc_forge.php */ -/* Location: ./system/database/drivers/odbc/odbc_forge.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/odbc/odbc_result.php b/sources/web/system/database/drivers/odbc/odbc_result.php deleted file mode 100644 index 5d64a46..0000000 --- a/sources/web/system/database/drivers/odbc/odbc_result.php +++ /dev/null @@ -1,228 +0,0 @@ -result_id); - } - - // -------------------------------------------------------------------- - - /** - * Number of fields in the result set - * - * @access public - * @return integer - */ - function num_fields() - { - return @odbc_num_fields($this->result_id); - } - - // -------------------------------------------------------------------- - - /** - * Fetch Field Names - * - * Generates an array of column names - * - * @access public - * @return array - */ - function list_fields() - { - $field_names = array(); - for ($i = 0; $i < $this->num_fields(); $i++) - { - $field_names[] = odbc_field_name($this->result_id, $i); - } - - return $field_names; - } - - // -------------------------------------------------------------------- - - /** - * Field data - * - * Generates an array of objects containing field meta-data - * - * @access public - * @return array - */ - function field_data() - { - $retval = array(); - for ($i = 0; $i < $this->num_fields(); $i++) - { - $F = new stdClass(); - $F->name = odbc_field_name($this->result_id, $i); - $F->type = odbc_field_type($this->result_id, $i); - $F->max_length = odbc_field_len($this->result_id, $i); - $F->primary_key = 0; - $F->default = ''; - - $retval[] = $F; - } - - return $retval; - } - - // -------------------------------------------------------------------- - - /** - * Free the result - * - * @return null - */ - function free_result() - { - if (is_resource($this->result_id)) - { - odbc_free_result($this->result_id); - $this->result_id = FALSE; - } - } - - // -------------------------------------------------------------------- - - /** - * Data Seek - * - * Moves the internal pointer to the desired offset. We call - * this internally before fetching results to make sure the - * result set starts at zero - * - * @access private - * @return array - */ - function _data_seek($n = 0) - { - return FALSE; - } - - // -------------------------------------------------------------------- - - /** - * Result - associative array - * - * Returns the result set as an array - * - * @access private - * @return array - */ - function _fetch_assoc() - { - if (function_exists('odbc_fetch_object')) - { - return odbc_fetch_array($this->result_id); - } - else - { - return $this->_odbc_fetch_array($this->result_id); - } - } - - // -------------------------------------------------------------------- - - /** - * Result - object - * - * Returns the result set as an object - * - * @access private - * @return object - */ - function _fetch_object() - { - if (function_exists('odbc_fetch_object')) - { - return odbc_fetch_object($this->result_id); - } - else - { - return $this->_odbc_fetch_object($this->result_id); - } - } - - - /** - * Result - object - * - * subsititutes the odbc_fetch_object function when - * not available (odbc_fetch_object requires unixODBC) - * - * @access private - * @return object - */ - function _odbc_fetch_object(& $odbc_result) { - $rs = array(); - $rs_obj = FALSE; - if (odbc_fetch_into($odbc_result, $rs)) { - foreach ($rs as $k=>$v) { - $field_name= odbc_field_name($odbc_result, $k+1); - $rs_obj->$field_name = $v; - } - } - return $rs_obj; - } - - - /** - * Result - array - * - * subsititutes the odbc_fetch_array function when - * not available (odbc_fetch_array requires unixODBC) - * - * @access private - * @return array - */ - function _odbc_fetch_array(& $odbc_result) { - $rs = array(); - $rs_assoc = FALSE; - if (odbc_fetch_into($odbc_result, $rs)) { - $rs_assoc=array(); - foreach ($rs as $k=>$v) { - $field_name= odbc_field_name($odbc_result, $k+1); - $rs_assoc[$field_name] = $v; - } - } - return $rs_assoc; - } - -} - - -/* End of file odbc_result.php */ -/* Location: ./system/database/drivers/odbc/odbc_result.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/odbc/odbc_utility.php b/sources/web/system/database/drivers/odbc/odbc_utility.php deleted file mode 100644 index d335bed..0000000 --- a/sources/web/system/database/drivers/odbc/odbc_utility.php +++ /dev/null @@ -1,103 +0,0 @@ -db->db_debug) - { - return $this->db->display_error('db_unsuported_feature'); - } - return FALSE; - } - - // -------------------------------------------------------------------- - - /** - * Optimize table query - * - * Generates a platform-specific query so that a table can be optimized - * - * @access private - * @param string the table name - * @return object - */ - function _optimize_table($table) - { - // Not a supported ODBC feature - if ($this->db->db_debug) - { - return $this->db->display_error('db_unsuported_feature'); - } - return FALSE; - } - - // -------------------------------------------------------------------- - - /** - * Repair table query - * - * Generates a platform-specific query so that a table can be repaired - * - * @access private - * @param string the table name - * @return object - */ - function _repair_table($table) - { - // Not a supported ODBC feature - if ($this->db->db_debug) - { - return $this->db->display_error('db_unsuported_feature'); - } - return FALSE; - } - - // -------------------------------------------------------------------- - - /** - * ODBC Export - * - * @access private - * @param array Preferences - * @return mixed - */ - function _backup($params = array()) - { - // Currently unsupported - return $this->db->display_error('db_unsuported_feature'); - } - -} - -/* End of file odbc_utility.php */ -/* Location: ./system/database/drivers/odbc/odbc_utility.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/pdo/index.html b/sources/web/system/database/drivers/pdo/index.html deleted file mode 100644 index c942a79..0000000 --- a/sources/web/system/database/drivers/pdo/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - 403 Forbidden - - - -

          Directory access is forbidden.

          - - - \ No newline at end of file diff --git a/sources/web/system/database/drivers/pdo/pdo_driver.php b/sources/web/system/database/drivers/pdo/pdo_driver.php deleted file mode 100644 index 1ecc90a..0000000 --- a/sources/web/system/database/drivers/pdo/pdo_driver.php +++ /dev/null @@ -1,812 +0,0 @@ -hostname, 'mysql') !== FALSE) - { - $this->_like_escape_str = ''; - $this->_like_escape_chr = ''; - - //Prior to this version, the charset can't be set in the dsn - if(is_php('5.3.6')) - { - $this->hostname .= ";charset={$this->char_set}"; - } - - //Set the charset with the connection options - $this->options['PDO::MYSQL_ATTR_INIT_COMMAND'] = "SET NAMES {$this->char_set}"; - } - elseif (strpos($this->hostname, 'odbc') !== FALSE) - { - $this->_like_escape_str = " {escape '%s'} "; - $this->_like_escape_chr = '!'; - } - else - { - $this->_like_escape_str = " ESCAPE '%s' "; - $this->_like_escape_chr = '!'; - } - - empty($this->database) OR $this->hostname .= ';dbname='.$this->database; - - $this->trans_enabled = FALSE; - - $this->_random_keyword = ' RND('.time().')'; // database specific random keyword - } - - /** - * Non-persistent database connection - * - * @access private called by the base class - * @return resource - */ - function db_connect() - { - $this->options['PDO::ATTR_ERRMODE'] = PDO::ERRMODE_SILENT; - - return new PDO($this->hostname, $this->username, $this->password, $this->options); - } - - // -------------------------------------------------------------------- - - /** - * Persistent database connection - * - * @access private called by the base class - * @return resource - */ - function db_pconnect() - { - $this->options['PDO::ATTR_ERRMODE'] = PDO::ERRMODE_SILENT; - $this->options['PDO::ATTR_PERSISTENT'] = TRUE; - - return new PDO($this->hostname, $this->username, $this->password, $this->options); - } - - // -------------------------------------------------------------------- - - /** - * Reconnect - * - * Keep / reestablish the db connection if no queries have been - * sent for a length of time exceeding the server's idle timeout - * - * @access public - * @return void - */ - function reconnect() - { - if ($this->db->db_debug) - { - return $this->db->display_error('db_unsuported_feature'); - } - return FALSE; - } - - // -------------------------------------------------------------------- - - /** - * Select the database - * - * @access private called by the base class - * @return resource - */ - function db_select() - { - // Not needed for PDO - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Set client character set - * - * @access public - * @param string - * @param string - * @return resource - */ - function db_set_charset($charset, $collation) - { - // @todo - add support if needed - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Version number query string - * - * @access public - * @return string - */ - function _version() - { - return $this->conn_id->getAttribute(PDO::ATTR_CLIENT_VERSION); - } - - // -------------------------------------------------------------------- - - /** - * Execute the query - * - * @access private called by the base class - * @param string an SQL query - * @return object - */ - function _execute($sql) - { - $sql = $this->_prep_query($sql); - $result_id = $this->conn_id->prepare($sql); - $result_id->execute(); - - if (is_object($result_id)) - { - if (is_numeric(stripos($sql, 'SELECT'))) - { - $this->affect_rows = count($result_id->fetchAll()); - $result_id->execute(); - } - else - { - $this->affect_rows = $result_id->rowCount(); - } - } - else - { - $this->affect_rows = 0; - } - - return $result_id; - } - - // -------------------------------------------------------------------- - - /** - * Prep the query - * - * If needed, each database adapter can prep the query string - * - * @access private called by execute() - * @param string an SQL query - * @return string - */ - function _prep_query($sql) - { - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Begin Transaction - * - * @access public - * @return bool - */ - function trans_begin($test_mode = FALSE) - { - if ( ! $this->trans_enabled) - { - return TRUE; - } - - // When transactions are nested we only begin/commit/rollback the outermost ones - if ($this->_trans_depth > 0) - { - return TRUE; - } - - // Reset the transaction failure flag. - // If the $test_mode flag is set to TRUE transactions will be rolled back - // even if the queries produce a successful result. - $this->_trans_failure = (bool) ($test_mode === TRUE); - - return $this->conn_id->beginTransaction(); - } - - // -------------------------------------------------------------------- - - /** - * Commit Transaction - * - * @access public - * @return bool - */ - function trans_commit() - { - if ( ! $this->trans_enabled) - { - return TRUE; - } - - // When transactions are nested we only begin/commit/rollback the outermost ones - if ($this->_trans_depth > 0) - { - return TRUE; - } - - $ret = $this->conn->commit(); - return $ret; - } - - // -------------------------------------------------------------------- - - /** - * Rollback Transaction - * - * @access public - * @return bool - */ - function trans_rollback() - { - if ( ! $this->trans_enabled) - { - return TRUE; - } - - // When transactions are nested we only begin/commit/rollback the outermost ones - if ($this->_trans_depth > 0) - { - return TRUE; - } - - $ret = $this->conn_id->rollBack(); - return $ret; - } - - // -------------------------------------------------------------------- - - /** - * Escape String - * - * @access public - * @param string - * @param bool whether or not the string will be used in a LIKE condition - * @return string - */ - function escape_str($str, $like = FALSE) - { - if (is_array($str)) - { - foreach ($str as $key => $val) - { - $str[$key] = $this->escape_str($val, $like); - } - - return $str; - } - - //Escape the string - $str = $this->conn_id->quote($str); - - //If there are duplicated quotes, trim them away - if (strpos($str, "'") === 0) - { - $str = substr($str, 1, -1); - } - - // escape LIKE condition wildcards - if ($like === TRUE) - { - $str = str_replace( array('%', '_', $this->_like_escape_chr), - array($this->_like_escape_chr.'%', $this->_like_escape_chr.'_', $this->_like_escape_chr.$this->_like_escape_chr), - $str); - } - - return $str; - } - - // -------------------------------------------------------------------- - - /** - * Affected Rows - * - * @access public - * @return integer - */ - function affected_rows() - { - return $this->affect_rows; - } - - // -------------------------------------------------------------------- - - /** - * Insert ID - * - * @access public - * @return integer - */ - function insert_id($name=NULL) - { - //Convenience method for postgres insertid - if (strpos($this->hostname, 'pgsql') !== FALSE) - { - $v = $this->_version(); - - $table = func_num_args() > 0 ? func_get_arg(0) : NULL; - - if ($table == NULL && $v >= '8.1') - { - $sql='SELECT LASTVAL() as ins_id'; - } - $query = $this->query($sql); - $row = $query->row(); - return $row->ins_id; - } - else - { - return $this->conn_id->lastInsertId($name); - } - } - - // -------------------------------------------------------------------- - - /** - * "Count All" query - * - * Generates a platform-specific query string that counts all records in - * the specified database - * - * @access public - * @param string - * @return string - */ - function count_all($table = '') - { - if ($table == '') - { - return 0; - } - - $query = $this->query($this->_count_string . $this->_protect_identifiers('numrows') . " FROM " . $this->_protect_identifiers($table, TRUE, NULL, FALSE)); - - if ($query->num_rows() == 0) - { - return 0; - } - - $row = $query->row(); - $this->_reset_select(); - return (int) $row->numrows; - } - - // -------------------------------------------------------------------- - - /** - * Show table query - * - * Generates a platform-specific query string so that the table names can be fetched - * - * @access private - * @param boolean - * @return string - */ - function _list_tables($prefix_limit = FALSE) - { - $sql = "SHOW TABLES FROM `".$this->database."`"; - - if ($prefix_limit !== FALSE AND $this->dbprefix != '') - { - //$sql .= " LIKE '".$this->escape_like_str($this->dbprefix)."%' ".sprintf($this->_like_escape_str, $this->_like_escape_chr); - return FALSE; // not currently supported - } - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Show column query - * - * Generates a platform-specific query string so that the column names can be fetched - * - * @access public - * @param string the table name - * @return string - */ - function _list_columns($table = '') - { - return "SHOW COLUMNS FROM ".$table; - } - - // -------------------------------------------------------------------- - - /** - * Field data query - * - * Generates a platform-specific query so that the column data can be retrieved - * - * @access public - * @param string the table name - * @return object - */ - function _field_data($table) - { - return "SELECT TOP 1 FROM ".$table; - } - - // -------------------------------------------------------------------- - - /** - * The error message string - * - * @access private - * @return string - */ - function _error_message() - { - $error_array = $this->conn_id->errorInfo(); - return $error_array[2]; - } - - // -------------------------------------------------------------------- - - /** - * The error message number - * - * @access private - * @return integer - */ - function _error_number() - { - return $this->conn_id->errorCode(); - } - - // -------------------------------------------------------------------- - - /** - * Escape the SQL Identifiers - * - * This function escapes column and table names - * - * @access private - * @param string - * @return string - */ - function _escape_identifiers($item) - { - if ($this->_escape_char == '') - { - return $item; - } - - foreach ($this->_reserved_identifiers as $id) - { - if (strpos($item, '.'.$id) !== FALSE) - { - $str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item); - - // remove duplicates if the user already included the escape - return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); - } - } - - if (strpos($item, '.') !== FALSE) - { - $str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char; - - } - else - { - $str = $this->_escape_char.$item.$this->_escape_char; - } - - // remove duplicates if the user already included the escape - return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); - } - - // -------------------------------------------------------------------- - - /** - * From Tables - * - * This function implicitly groups FROM tables so there is no confusion - * about operator precedence in harmony with SQL standards - * - * @access public - * @param type - * @return type - */ - function _from_tables($tables) - { - if ( ! is_array($tables)) - { - $tables = array($tables); - } - - return (count($tables) == 1) ? $tables[0] : '('.implode(', ', $tables).')'; - } - - // -------------------------------------------------------------------- - - /** - * Insert statement - * - * Generates a platform-specific insert string from the supplied data - * - * @access public - * @param string the table name - * @param array the insert keys - * @param array the insert values - * @return string - */ - function _insert($table, $keys, $values) - { - return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")"; - } - - // -------------------------------------------------------------------- - - /** - * Insert_batch statement - * - * Generates a platform-specific insert string from the supplied data - * - * @access public - * @param string the table name - * @param array the insert keys - * @param array the insert values - * @return string - */ - function _insert_batch($table, $keys, $values) - { - return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES ".implode(', ', $values); - } - - // -------------------------------------------------------------------- - - /** - * Update statement - * - * Generates a platform-specific update string from the supplied data - * - * @access public - * @param string the table name - * @param array the update data - * @param array the where clause - * @param array the orderby clause - * @param array the limit clause - * @return string - */ - function _update($table, $values, $where, $orderby = array(), $limit = FALSE) - { - foreach ($values as $key => $val) - { - $valstr[] = $key." = ".$val; - } - - $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; - - $orderby = (count($orderby) >= 1)?' ORDER BY '.implode(", ", $orderby):''; - - $sql = "UPDATE ".$table." SET ".implode(', ', $valstr); - - $sql .= ($where != '' AND count($where) >=1) ? " WHERE ".implode(" ", $where) : ''; - - $sql .= $orderby.$limit; - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Update_Batch statement - * - * Generates a platform-specific batch update string from the supplied data - * - * @access public - * @param string the table name - * @param array the update data - * @param array the where clause - * @return string - */ - function _update_batch($table, $values, $index, $where = NULL) - { - $ids = array(); - $where = ($where != '' AND count($where) >=1) ? implode(" ", $where).' AND ' : ''; - - foreach ($values as $key => $val) - { - $ids[] = $val[$index]; - - foreach (array_keys($val) as $field) - { - if ($field != $index) - { - $final[$field][] = 'WHEN '.$index.' = '.$val[$index].' THEN '.$val[$field]; - } - } - } - - $sql = "UPDATE ".$table." SET "; - $cases = ''; - - foreach ($final as $k => $v) - { - $cases .= $k.' = CASE '."\n"; - foreach ($v as $row) - { - $cases .= $row."\n"; - } - - $cases .= 'ELSE '.$k.' END, '; - } - - $sql .= substr($cases, 0, -2); - - $sql .= ' WHERE '.$where.$index.' IN ('.implode(',', $ids).')'; - - return $sql; - } - - - // -------------------------------------------------------------------- - - /** - * Truncate statement - * - * Generates a platform-specific truncate string from the supplied data - * If the database does not support the truncate() command - * This function maps to "DELETE FROM table" - * - * @access public - * @param string the table name - * @return string - */ - function _truncate($table) - { - return $this->_delete($table); - } - - // -------------------------------------------------------------------- - - /** - * Delete statement - * - * Generates a platform-specific delete string from the supplied data - * - * @access public - * @param string the table name - * @param array the where clause - * @param string the limit clause - * @return string - */ - function _delete($table, $where = array(), $like = array(), $limit = FALSE) - { - $conditions = ''; - - if (count($where) > 0 OR count($like) > 0) - { - $conditions = "\nWHERE "; - $conditions .= implode("\n", $this->ar_where); - - if (count($where) > 0 && count($like) > 0) - { - $conditions .= " AND "; - } - $conditions .= implode("\n", $like); - } - - $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; - - return "DELETE FROM ".$table.$conditions.$limit; - } - - // -------------------------------------------------------------------- - - /** - * Limit string - * - * Generates a platform-specific LIMIT clause - * - * @access public - * @param string the sql query string - * @param integer the number of rows to limit the query to - * @param integer the offset value - * @return string - */ - function _limit($sql, $limit, $offset) - { - if (strpos($this->hostname, 'cubrid') !== FALSE || strpos($this->hostname, 'sqlite') !== FALSE) - { - if ($offset == 0) - { - $offset = ''; - } - else - { - $offset .= ", "; - } - - return $sql."LIMIT ".$offset.$limit; - } - else - { - $sql .= "LIMIT ".$limit; - - if ($offset > 0) - { - $sql .= " OFFSET ".$offset; - } - - return $sql; - } - } - - // -------------------------------------------------------------------- - - /** - * Close DB Connection - * - * @access public - * @param resource - * @return void - */ - function _close($conn_id) - { - $this->conn_id = null; - } - - -} - - - -/* End of file pdo_driver.php */ -/* Location: ./system/database/drivers/pdo/pdo_driver.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/pdo/pdo_forge.php b/sources/web/system/database/drivers/pdo/pdo_forge.php deleted file mode 100644 index 9a78220..0000000 --- a/sources/web/system/database/drivers/pdo/pdo_forge.php +++ /dev/null @@ -1,266 +0,0 @@ -db->db_debug) - { - return $this->db->display_error('db_unsuported_feature'); - } - return FALSE; - } - - // -------------------------------------------------------------------- - - /** - * Drop database - * - * @access private - * @param string the database name - * @return bool - */ - function _drop_database($name) - { - // PDO has no "drop database" command since it's - // designed to connect to an existing database - if ($this->db->db_debug) - { - return $this->db->display_error('db_unsuported_feature'); - } - return FALSE; - } - - // -------------------------------------------------------------------- - - /** - * Create Table - * - * @access private - * @param string the table name - * @param array the fields - * @param mixed primary key(s) - * @param mixed key(s) - * @param boolean should 'IF NOT EXISTS' be added to the SQL - * @return bool - */ - function _create_table($table, $fields, $primary_keys, $keys, $if_not_exists) - { - $sql = 'CREATE TABLE '; - - if ($if_not_exists === TRUE) - { - $sql .= 'IF NOT EXISTS '; - } - - $sql .= $this->db->_escape_identifiers($table)." ("; - $current_field_count = 0; - - foreach ($fields as $field=>$attributes) - { - // Numeric field names aren't allowed in databases, so if the key is - // numeric, we know it was assigned by PHP and the developer manually - // entered the field information, so we'll simply add it to the list - if (is_numeric($field)) - { - $sql .= "\n\t$attributes"; - } - else - { - $attributes = array_change_key_case($attributes, CASE_UPPER); - - $sql .= "\n\t".$this->db->_protect_identifiers($field); - - $sql .= ' '.$attributes['TYPE']; - - if (array_key_exists('CONSTRAINT', $attributes)) - { - $sql .= '('.$attributes['CONSTRAINT'].')'; - } - - if (array_key_exists('UNSIGNED', $attributes) && $attributes['UNSIGNED'] === TRUE) - { - $sql .= ' UNSIGNED'; - } - - if (array_key_exists('DEFAULT', $attributes)) - { - $sql .= ' DEFAULT \''.$attributes['DEFAULT'].'\''; - } - - if (array_key_exists('NULL', $attributes) && $attributes['NULL'] === TRUE) - { - $sql .= ' NULL'; - } - else - { - $sql .= ' NOT NULL'; - } - - if (array_key_exists('AUTO_INCREMENT', $attributes) && $attributes['AUTO_INCREMENT'] === TRUE) - { - $sql .= ' AUTO_INCREMENT'; - } - } - - // don't add a comma on the end of the last field - if (++$current_field_count < count($fields)) - { - $sql .= ','; - } - } - - if (count($primary_keys) > 0) - { - $primary_keys = $this->db->_protect_identifiers($primary_keys); - $sql .= ",\n\tPRIMARY KEY (" . implode(', ', $primary_keys) . ")"; - } - - if (is_array($keys) && count($keys) > 0) - { - foreach ($keys as $key) - { - if (is_array($key)) - { - $key = $this->db->_protect_identifiers($key); - } - else - { - $key = array($this->db->_protect_identifiers($key)); - } - - $sql .= ",\n\tFOREIGN KEY (" . implode(', ', $key) . ")"; - } - } - - $sql .= "\n)"; - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Drop Table - * - * @access private - * @return bool - */ - function _drop_table($table) - { - // Not a supported PDO feature - if ($this->db->db_debug) - { - return $this->db->display_error('db_unsuported_feature'); - } - return FALSE; - } - - // -------------------------------------------------------------------- - - /** - * Alter table query - * - * Generates a platform-specific query so that a table can be altered - * Called by add_column(), drop_column(), and column_alter(), - * - * @access private - * @param string the ALTER type (ADD, DROP, CHANGE) - * @param string the column name - * @param string the table name - * @param string the column definition - * @param string the default value - * @param boolean should 'NOT NULL' be added - * @param string the field after which we should add the new field - * @return object - */ - function _alter_table($alter_type, $table, $column_name, $column_definition = '', $default_value = '', $null = '', $after_field = '') - { - $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table)." $alter_type ".$this->db->_protect_identifiers($column_name); - - // DROP has everything it needs now. - if ($alter_type == 'DROP') - { - return $sql; - } - - $sql .= " $column_definition"; - - if ($default_value != '') - { - $sql .= " DEFAULT \"$default_value\""; - } - - if ($null === NULL) - { - $sql .= ' NULL'; - } - else - { - $sql .= ' NOT NULL'; - } - - if ($after_field != '') - { - $sql .= ' AFTER ' . $this->db->_protect_identifiers($after_field); - } - - return $sql; - - } - - - // -------------------------------------------------------------------- - - /** - * Rename a table - * - * Generates a platform-specific query so that a table can be renamed - * - * @access private - * @param string the old table name - * @param string the new table name - * @return string - */ - function _rename_table($table_name, $new_table_name) - { - $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table_name)." RENAME TO ".$this->db->_protect_identifiers($new_table_name); - return $sql; - } - - -} - -/* End of file pdo_forge.php */ -/* Location: ./system/database/drivers/pdo/pdo_forge.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/pdo/pdo_result.php b/sources/web/system/database/drivers/pdo/pdo_result.php deleted file mode 100644 index a366a5f..0000000 --- a/sources/web/system/database/drivers/pdo/pdo_result.php +++ /dev/null @@ -1,182 +0,0 @@ -result_id->queryString, 'SELECT'))) - { - $dbh = $this->conn_id; - $query = $dbh->query($this->result_id->queryString); - $result = $query->fetchAll(); - unset($dbh, $query); - return count($result); - } - else - { - return $this->result_id->rowCount(); - } - } - - // -------------------------------------------------------------------- - - /** - * Number of fields in the result set - * - * @access public - * @return integer - */ - function num_fields() - { - return $this->result_id->columnCount(); - } - - // -------------------------------------------------------------------- - - /** - * Fetch Field Names - * - * Generates an array of column names - * - * @access public - * @return array - */ - function list_fields() - { - if ($this->db->db_debug) - { - return $this->db->display_error('db_unsuported_feature'); - } - return FALSE; - } - - // -------------------------------------------------------------------- - - /** - * Field data - * - * Generates an array of objects containing field meta-data - * - * @access public - * @return array - */ - function field_data() - { - $data = array(); - - try - { - for($i = 0; $i < $this->num_fields(); $i++) - { - $data[] = $this->result_id->getColumnMeta($i); - } - - return $data; - } - catch (Exception $e) - { - if ($this->db->db_debug) - { - return $this->db->display_error('db_unsuported_feature'); - } - return FALSE; - } - } - - // -------------------------------------------------------------------- - - /** - * Free the result - * - * @return null - */ - function free_result() - { - if (is_object($this->result_id)) - { - $this->result_id = FALSE; - } - } - - // -------------------------------------------------------------------- - - /** - * Data Seek - * - * Moves the internal pointer to the desired offset. We call - * this internally before fetching results to make sure the - * result set starts at zero - * - * @access private - * @return array - */ - function _data_seek($n = 0) - { - return FALSE; - } - - // -------------------------------------------------------------------- - - /** - * Result - associative array - * - * Returns the result set as an array - * - * @access private - * @return array - */ - function _fetch_assoc() - { - return $this->result_id->fetch(PDO::FETCH_ASSOC); - } - - // -------------------------------------------------------------------- - - /** - * Result - object - * - * Returns the result set as an object - * - * @access private - * @return object - */ - function _fetch_object() - { - return $this->result_id->fetchObject(); - } - -} - - -/* End of file pdo_result.php */ -/* Location: ./system/database/drivers/pdo/pdo_result.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/pdo/pdo_utility.php b/sources/web/system/database/drivers/pdo/pdo_utility.php deleted file mode 100644 index 88ce033..0000000 --- a/sources/web/system/database/drivers/pdo/pdo_utility.php +++ /dev/null @@ -1,103 +0,0 @@ -db->db_debug) - { - return $this->db->display_error('db_unsuported_feature'); - } - return FALSE; - } - - // -------------------------------------------------------------------- - - /** - * Optimize table query - * - * Generates a platform-specific query so that a table can be optimized - * - * @access private - * @param string the table name - * @return object - */ - function _optimize_table($table) - { - // Not a supported PDO feature - if ($this->db->db_debug) - { - return $this->db->display_error('db_unsuported_feature'); - } - return FALSE; - } - - // -------------------------------------------------------------------- - - /** - * Repair table query - * - * Generates a platform-specific query so that a table can be repaired - * - * @access private - * @param string the table name - * @return object - */ - function _repair_table($table) - { - // Not a supported PDO feature - if ($this->db->db_debug) - { - return $this->db->display_error('db_unsuported_feature'); - } - return FALSE; - } - - // -------------------------------------------------------------------- - - /** - * PDO Export - * - * @access private - * @param array Preferences - * @return mixed - */ - function _backup($params = array()) - { - // Currently unsupported - return $this->db->display_error('db_unsuported_feature'); - } - -} - -/* End of file pdo_utility.php */ -/* Location: ./system/database/drivers/pdo/pdo_utility.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/postgre/index.html b/sources/web/system/database/drivers/postgre/index.html deleted file mode 100644 index c942a79..0000000 --- a/sources/web/system/database/drivers/postgre/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - 403 Forbidden - - - -

          Directory access is forbidden.

          - - - \ No newline at end of file diff --git a/sources/web/system/database/drivers/postgre/postgre_driver.php b/sources/web/system/database/drivers/postgre/postgre_driver.php deleted file mode 100644 index 5367f97..0000000 --- a/sources/web/system/database/drivers/postgre/postgre_driver.php +++ /dev/null @@ -1,703 +0,0 @@ - 'host', - 'port' => 'port', - 'database' => 'dbname', - 'username' => 'user', - 'password' => 'password' - ); - - $connect_string = ""; - foreach ($components as $key => $val) - { - if (isset($this->$key) && $this->$key != '') - { - $connect_string .= " $val=".$this->$key; - } - } - return trim($connect_string); - } - - // -------------------------------------------------------------------- - - /** - * Non-persistent database connection - * - * @access private called by the base class - * @return resource - */ - function db_connect() - { - return @pg_connect($this->_connect_string()); - } - - // -------------------------------------------------------------------- - - /** - * Persistent database connection - * - * @access private called by the base class - * @return resource - */ - function db_pconnect() - { - return @pg_pconnect($this->_connect_string()); - } - - // -------------------------------------------------------------------- - - /** - * Reconnect - * - * Keep / reestablish the db connection if no queries have been - * sent for a length of time exceeding the server's idle timeout - * - * @access public - * @return void - */ - function reconnect() - { - if (pg_ping($this->conn_id) === FALSE) - { - $this->conn_id = FALSE; - } - } - - // -------------------------------------------------------------------- - - /** - * Select the database - * - * @access private called by the base class - * @return resource - */ - function db_select() - { - // Not needed for Postgre so we'll return TRUE - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Set client character set - * - * @access public - * @param string - * @param string - * @return resource - */ - function db_set_charset($charset, $collation) - { - // @todo - add support if needed - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Version number query string - * - * @access public - * @return string - */ - function _version() - { - return "SELECT version() AS ver"; - } - - // -------------------------------------------------------------------- - - /** - * Execute the query - * - * @access private called by the base class - * @param string an SQL query - * @return resource - */ - function _execute($sql) - { - $sql = $this->_prep_query($sql); - return @pg_query($this->conn_id, $sql); - } - - // -------------------------------------------------------------------- - - /** - * Prep the query - * - * If needed, each database adapter can prep the query string - * - * @access private called by execute() - * @param string an SQL query - * @return string - */ - function _prep_query($sql) - { - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Begin Transaction - * - * @access public - * @return bool - */ - function trans_begin($test_mode = FALSE) - { - if ( ! $this->trans_enabled) - { - return TRUE; - } - - // When transactions are nested we only begin/commit/rollback the outermost ones - if ($this->_trans_depth > 0) - { - return TRUE; - } - - // Reset the transaction failure flag. - // If the $test_mode flag is set to TRUE transactions will be rolled back - // even if the queries produce a successful result. - $this->_trans_failure = ($test_mode === TRUE) ? TRUE : FALSE; - - return @pg_exec($this->conn_id, "begin"); - } - - // -------------------------------------------------------------------- - - /** - * Commit Transaction - * - * @access public - * @return bool - */ - function trans_commit() - { - if ( ! $this->trans_enabled) - { - return TRUE; - } - - // When transactions are nested we only begin/commit/rollback the outermost ones - if ($this->_trans_depth > 0) - { - return TRUE; - } - - return @pg_exec($this->conn_id, "commit"); - } - - // -------------------------------------------------------------------- - - /** - * Rollback Transaction - * - * @access public - * @return bool - */ - function trans_rollback() - { - if ( ! $this->trans_enabled) - { - return TRUE; - } - - // When transactions are nested we only begin/commit/rollback the outermost ones - if ($this->_trans_depth > 0) - { - return TRUE; - } - - return @pg_exec($this->conn_id, "rollback"); - } - - // -------------------------------------------------------------------- - - /** - * Escape String - * - * @access public - * @param string - * @param bool whether or not the string will be used in a LIKE condition - * @return string - */ - function escape_str($str, $like = FALSE) - { - if (is_array($str)) - { - foreach ($str as $key => $val) - { - $str[$key] = $this->escape_str($val, $like); - } - - return $str; - } - - $str = pg_escape_string($str); - - // escape LIKE condition wildcards - if ($like === TRUE) - { - $str = str_replace( array('%', '_', $this->_like_escape_chr), - array($this->_like_escape_chr.'%', $this->_like_escape_chr.'_', $this->_like_escape_chr.$this->_like_escape_chr), - $str); - } - - return $str; - } - - // -------------------------------------------------------------------- - - /** - * Affected Rows - * - * @access public - * @return integer - */ - function affected_rows() - { - return @pg_affected_rows($this->result_id); - } - - // -------------------------------------------------------------------- - - /** - * Insert ID - * - * @access public - * @return integer - */ - function insert_id() - { - $v = $this->_version(); - $v = $v['server']; - - $table = func_num_args() > 0 ? func_get_arg(0) : NULL; - $column = func_num_args() > 1 ? func_get_arg(1) : NULL; - - if ($table == NULL && $v >= '8.1') - { - $sql='SELECT LASTVAL() as ins_id'; - } - elseif ($table != NULL && $column != NULL && $v >= '8.0') - { - $sql = sprintf("SELECT pg_get_serial_sequence('%s','%s') as seq", $table, $column); - $query = $this->query($sql); - $row = $query->row(); - $sql = sprintf("SELECT CURRVAL('%s') as ins_id", $row->seq); - } - elseif ($table != NULL) - { - // seq_name passed in table parameter - $sql = sprintf("SELECT CURRVAL('%s') as ins_id", $table); - } - else - { - return pg_last_oid($this->result_id); - } - $query = $this->query($sql); - $row = $query->row(); - return $row->ins_id; - } - - // -------------------------------------------------------------------- - - /** - * "Count All" query - * - * Generates a platform-specific query string that counts all records in - * the specified database - * - * @access public - * @param string - * @return string - */ - function count_all($table = '') - { - if ($table == '') - { - return 0; - } - - $query = $this->query($this->_count_string . $this->_protect_identifiers('numrows') . " FROM " . $this->_protect_identifiers($table, TRUE, NULL, FALSE)); - - if ($query->num_rows() == 0) - { - return 0; - } - - $row = $query->row(); - $this->_reset_select(); - return (int) $row->numrows; - } - - // -------------------------------------------------------------------- - - /** - * Show table query - * - * Generates a platform-specific query string so that the table names can be fetched - * - * @access private - * @param boolean - * @return string - */ - function _list_tables($prefix_limit = FALSE) - { - $sql = "SELECT table_name FROM information_schema.tables WHERE table_schema = 'public'"; - - if ($prefix_limit !== FALSE AND $this->dbprefix != '') - { - $sql .= " AND table_name LIKE '".$this->escape_like_str($this->dbprefix)."%' ".sprintf($this->_like_escape_str, $this->_like_escape_chr); - } - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Show column query - * - * Generates a platform-specific query string so that the column names can be fetched - * - * @access public - * @param string the table name - * @return string - */ - function _list_columns($table = '') - { - return "SELECT column_name FROM information_schema.columns WHERE table_name ='".$table."'"; - } - - // -------------------------------------------------------------------- - - /** - * Field data query - * - * Generates a platform-specific query so that the column data can be retrieved - * - * @access public - * @param string the table name - * @return object - */ - function _field_data($table) - { - return "SELECT * FROM ".$table." LIMIT 1"; - } - - // -------------------------------------------------------------------- - - /** - * The error message string - * - * @access private - * @return string - */ - function _error_message() - { - return pg_last_error($this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * The error message number - * - * @access private - * @return integer - */ - function _error_number() - { - return ''; - } - - // -------------------------------------------------------------------- - - /** - * Escape the SQL Identifiers - * - * This function escapes column and table names - * - * @access private - * @param string - * @return string - */ - function _escape_identifiers($item) - { - if ($this->_escape_char == '') - { - return $item; - } - - foreach ($this->_reserved_identifiers as $id) - { - if (strpos($item, '.'.$id) !== FALSE) - { - $str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item); - - // remove duplicates if the user already included the escape - return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); - } - } - - if (strpos($item, '.') !== FALSE) - { - $str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char; - } - else - { - $str = $this->_escape_char.$item.$this->_escape_char; - } - - // remove duplicates if the user already included the escape - return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); - } - - // -------------------------------------------------------------------- - - /** - * From Tables - * - * This function implicitly groups FROM tables so there is no confusion - * about operator precedence in harmony with SQL standards - * - * @access public - * @param type - * @return type - */ - function _from_tables($tables) - { - if ( ! is_array($tables)) - { - $tables = array($tables); - } - - return implode(', ', $tables); - } - - // -------------------------------------------------------------------- - - /** - * Insert statement - * - * Generates a platform-specific insert string from the supplied data - * - * @access public - * @param string the table name - * @param array the insert keys - * @param array the insert values - * @return string - */ - function _insert($table, $keys, $values) - { - return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")"; - } - - // -------------------------------------------------------------------- - - /** - * Insert_batch statement - * - * Generates a platform-specific insert string from the supplied data - * - * @access public - * @param string the table name - * @param array the insert keys - * @param array the insert values - * @return string - */ - function _insert_batch($table, $keys, $values) - { - return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES ".implode(', ', $values); - } - - // -------------------------------------------------------------------- - - /** - * Update statement - * - * Generates a platform-specific update string from the supplied data - * - * @access public - * @param string the table name - * @param array the update data - * @param array the where clause - * @param array the orderby clause - * @param array the limit clause - * @return string - */ - function _update($table, $values, $where, $orderby = array(), $limit = FALSE) - { - foreach ($values as $key => $val) - { - $valstr[] = $key." = ".$val; - } - - $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; - - $orderby = (count($orderby) >= 1)?' ORDER BY '.implode(", ", $orderby):''; - - $sql = "UPDATE ".$table." SET ".implode(', ', $valstr); - - $sql .= ($where != '' AND count($where) >=1) ? " WHERE ".implode(" ", $where) : ''; - - $sql .= $orderby.$limit; - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Truncate statement - * - * Generates a platform-specific truncate string from the supplied data - * If the database does not support the truncate() command - * This function maps to "DELETE FROM table" - * - * @access public - * @param string the table name - * @return string - */ - function _truncate($table) - { - return "TRUNCATE ".$table; - } - - // -------------------------------------------------------------------- - - /** - * Delete statement - * - * Generates a platform-specific delete string from the supplied data - * - * @access public - * @param string the table name - * @param array the where clause - * @param string the limit clause - * @return string - */ - function _delete($table, $where = array(), $like = array(), $limit = FALSE) - { - $conditions = ''; - - if (count($where) > 0 OR count($like) > 0) - { - $conditions = "\nWHERE "; - $conditions .= implode("\n", $this->ar_where); - - if (count($where) > 0 && count($like) > 0) - { - $conditions .= " AND "; - } - $conditions .= implode("\n", $like); - } - - $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; - - return "DELETE FROM ".$table.$conditions.$limit; - } - - // -------------------------------------------------------------------- - /** - * Limit string - * - * Generates a platform-specific LIMIT clause - * - * @access public - * @param string the sql query string - * @param integer the number of rows to limit the query to - * @param integer the offset value - * @return string - */ - function _limit($sql, $limit, $offset) - { - $sql .= "LIMIT ".$limit; - - if ($offset > 0) - { - $sql .= " OFFSET ".$offset; - } - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Close DB Connection - * - * @access public - * @param resource - * @return void - */ - function _close($conn_id) - { - @pg_close($conn_id); - } - - -} - - -/* End of file postgre_driver.php */ -/* Location: ./system/database/drivers/postgre/postgre_driver.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/postgre/postgre_forge.php b/sources/web/system/database/drivers/postgre/postgre_forge.php deleted file mode 100644 index 91a1c68..0000000 --- a/sources/web/system/database/drivers/postgre/postgre_forge.php +++ /dev/null @@ -1,299 +0,0 @@ -db->table_exists($table)) - { - return "SELECT * FROM $table"; // Needs to return innocous but valid SQL statement - } - } - - $sql .= $this->db->_escape_identifiers($table)." ("; - $current_field_count = 0; - - foreach ($fields as $field=>$attributes) - { - // Numeric field names aren't allowed in databases, so if the key is - // numeric, we know it was assigned by PHP and the developer manually - // entered the field information, so we'll simply add it to the list - if (is_numeric($field)) - { - $sql .= "\n\t$attributes"; - } - else - { - $attributes = array_change_key_case($attributes, CASE_UPPER); - - $sql .= "\n\t".$this->db->_protect_identifiers($field); - - $is_unsigned = (array_key_exists('UNSIGNED', $attributes) && $attributes['UNSIGNED'] === TRUE); - - // Convert datatypes to be PostgreSQL-compatible - switch (strtoupper($attributes['TYPE'])) - { - case 'TINYINT': - $attributes['TYPE'] = 'SMALLINT'; - break; - case 'SMALLINT': - $attributes['TYPE'] = ($is_unsigned) ? 'INTEGER' : 'SMALLINT'; - break; - case 'MEDIUMINT': - $attributes['TYPE'] = 'INTEGER'; - break; - case 'INT': - $attributes['TYPE'] = ($is_unsigned) ? 'BIGINT' : 'INTEGER'; - break; - case 'BIGINT': - $attributes['TYPE'] = ($is_unsigned) ? 'NUMERIC' : 'BIGINT'; - break; - case 'DOUBLE': - $attributes['TYPE'] = 'DOUBLE PRECISION'; - break; - case 'DATETIME': - $attributes['TYPE'] = 'TIMESTAMP'; - break; - case 'LONGTEXT': - $attributes['TYPE'] = 'TEXT'; - break; - case 'BLOB': - $attributes['TYPE'] = 'BYTEA'; - break; - } - - // If this is an auto-incrementing primary key, use the serial data type instead - if (in_array($field, $primary_keys) && array_key_exists('AUTO_INCREMENT', $attributes) - && $attributes['AUTO_INCREMENT'] === TRUE) - { - $sql .= ' SERIAL'; - } - else - { - $sql .= ' '.$attributes['TYPE']; - } - - // Modified to prevent constraints with integer data types - if (array_key_exists('CONSTRAINT', $attributes) && strpos($attributes['TYPE'], 'INT') === false) - { - $sql .= '('.$attributes['CONSTRAINT'].')'; - } - - if (array_key_exists('DEFAULT', $attributes)) - { - $sql .= ' DEFAULT \''.$attributes['DEFAULT'].'\''; - } - - if (array_key_exists('NULL', $attributes) && $attributes['NULL'] === TRUE) - { - $sql .= ' NULL'; - } - else - { - $sql .= ' NOT NULL'; - } - - // Added new attribute to create unqite fields. Also works with MySQL - if (array_key_exists('UNIQUE', $attributes) && $attributes['UNIQUE'] === TRUE) - { - $sql .= ' UNIQUE'; - } - } - - // don't add a comma on the end of the last field - if (++$current_field_count < count($fields)) - { - $sql .= ','; - } - } - - if (count($primary_keys) > 0) - { - // Something seems to break when passing an array to _protect_identifiers() - foreach ($primary_keys as $index => $key) - { - $primary_keys[$index] = $this->db->_protect_identifiers($key); - } - - $sql .= ",\n\tPRIMARY KEY (" . implode(', ', $primary_keys) . ")"; - } - - $sql .= "\n);"; - - if (is_array($keys) && count($keys) > 0) - { - foreach ($keys as $key) - { - if (is_array($key)) - { - $key = $this->db->_protect_identifiers($key); - } - else - { - $key = array($this->db->_protect_identifiers($key)); - } - - foreach ($key as $field) - { - $sql .= "CREATE INDEX " . $table . "_" . str_replace(array('"', "'"), '', $field) . "_index ON $table ($field); "; - } - } - } - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Drop Table - * - * @access private - * @return bool - */ - function _drop_table($table) - { - return "DROP TABLE IF EXISTS ".$this->db->_escape_identifiers($table)." CASCADE"; - } - - // -------------------------------------------------------------------- - - /** - * Alter table query - * - * Generates a platform-specific query so that a table can be altered - * Called by add_column(), drop_column(), and column_alter(), - * - * @access private - * @param string the ALTER type (ADD, DROP, CHANGE) - * @param string the column name - * @param string the table name - * @param string the column definition - * @param string the default value - * @param boolean should 'NOT NULL' be added - * @param string the field after which we should add the new field - * @return object - */ - function _alter_table($alter_type, $table, $column_name, $column_definition = '', $default_value = '', $null = '', $after_field = '') - { - $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table)." $alter_type ".$this->db->_protect_identifiers($column_name); - - // DROP has everything it needs now. - if ($alter_type == 'DROP') - { - return $sql; - } - - $sql .= " $column_definition"; - - if ($default_value != '') - { - $sql .= " DEFAULT \"$default_value\""; - } - - if ($null === NULL) - { - $sql .= ' NULL'; - } - else - { - $sql .= ' NOT NULL'; - } - - if ($after_field != '') - { - $sql .= ' AFTER ' . $this->db->_protect_identifiers($after_field); - } - - return $sql; - - } - - // -------------------------------------------------------------------- - - /** - * Rename a table - * - * Generates a platform-specific query so that a table can be renamed - * - * @access private - * @param string the old table name - * @param string the new table name - * @return string - */ - function _rename_table($table_name, $new_table_name) - { - $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table_name)." RENAME TO ".$this->db->_protect_identifiers($new_table_name); - return $sql; - } - - -} - -/* End of file postgre_forge.php */ -/* Location: ./system/database/drivers/postgre/postgre_forge.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/postgre/postgre_result.php b/sources/web/system/database/drivers/postgre/postgre_result.php deleted file mode 100644 index e9a1d16..0000000 --- a/sources/web/system/database/drivers/postgre/postgre_result.php +++ /dev/null @@ -1,169 +0,0 @@ -result_id); - } - - // -------------------------------------------------------------------- - - /** - * Number of fields in the result set - * - * @access public - * @return integer - */ - function num_fields() - { - return @pg_num_fields($this->result_id); - } - - // -------------------------------------------------------------------- - - /** - * Fetch Field Names - * - * Generates an array of column names - * - * @access public - * @return array - */ - function list_fields() - { - $field_names = array(); - for ($i = 0; $i < $this->num_fields(); $i++) - { - $field_names[] = pg_field_name($this->result_id, $i); - } - - return $field_names; - } - - // -------------------------------------------------------------------- - - /** - * Field data - * - * Generates an array of objects containing field meta-data - * - * @access public - * @return array - */ - function field_data() - { - $retval = array(); - for ($i = 0; $i < $this->num_fields(); $i++) - { - $F = new stdClass(); - $F->name = pg_field_name($this->result_id, $i); - $F->type = pg_field_type($this->result_id, $i); - $F->max_length = pg_field_size($this->result_id, $i); - $F->primary_key = 0; - $F->default = ''; - - $retval[] = $F; - } - - return $retval; - } - - // -------------------------------------------------------------------- - - /** - * Free the result - * - * @return null - */ - function free_result() - { - if (is_resource($this->result_id)) - { - pg_free_result($this->result_id); - $this->result_id = FALSE; - } - } - - // -------------------------------------------------------------------- - - /** - * Data Seek - * - * Moves the internal pointer to the desired offset. We call - * this internally before fetching results to make sure the - * result set starts at zero - * - * @access private - * @return array - */ - function _data_seek($n = 0) - { - return pg_result_seek($this->result_id, $n); - } - - // -------------------------------------------------------------------- - - /** - * Result - associative array - * - * Returns the result set as an array - * - * @access private - * @return array - */ - function _fetch_assoc() - { - return pg_fetch_assoc($this->result_id); - } - - // -------------------------------------------------------------------- - - /** - * Result - object - * - * Returns the result set as an object - * - * @access private - * @return object - */ - function _fetch_object() - { - return pg_fetch_object($this->result_id); - } - -} - - -/* End of file postgre_result.php */ -/* Location: ./system/database/drivers/postgre/postgre_result.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/postgre/postgre_utility.php b/sources/web/system/database/drivers/postgre/postgre_utility.php deleted file mode 100644 index 741c52e..0000000 --- a/sources/web/system/database/drivers/postgre/postgre_utility.php +++ /dev/null @@ -1,88 +0,0 @@ -db->display_error('db_unsuported_feature'); - } -} - - -/* End of file postgre_utility.php */ -/* Location: ./system/database/drivers/postgre/postgre_utility.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/sqlite/index.html b/sources/web/system/database/drivers/sqlite/index.html deleted file mode 100644 index c942a79..0000000 --- a/sources/web/system/database/drivers/sqlite/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - 403 Forbidden - - - -

          Directory access is forbidden.

          - - - \ No newline at end of file diff --git a/sources/web/system/database/drivers/sqlite/sqlite_driver.php b/sources/web/system/database/drivers/sqlite/sqlite_driver.php deleted file mode 100644 index 0cc898b..0000000 --- a/sources/web/system/database/drivers/sqlite/sqlite_driver.php +++ /dev/null @@ -1,658 +0,0 @@ -database, FILE_WRITE_MODE, $error)) - { - log_message('error', $error); - - if ($this->db_debug) - { - $this->display_error($error, '', TRUE); - } - - return FALSE; - } - - return $conn_id; - } - - // -------------------------------------------------------------------- - - /** - * Persistent database connection - * - * @access private called by the base class - * @return resource - */ - function db_pconnect() - { - if ( ! $conn_id = @sqlite_popen($this->database, FILE_WRITE_MODE, $error)) - { - log_message('error', $error); - - if ($this->db_debug) - { - $this->display_error($error, '', TRUE); - } - - return FALSE; - } - - return $conn_id; - } - - // -------------------------------------------------------------------- - - /** - * Reconnect - * - * Keep / reestablish the db connection if no queries have been - * sent for a length of time exceeding the server's idle timeout - * - * @access public - * @return void - */ - function reconnect() - { - // not implemented in SQLite - } - - // -------------------------------------------------------------------- - - /** - * Select the database - * - * @access private called by the base class - * @return resource - */ - function db_select() - { - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Set client character set - * - * @access public - * @param string - * @param string - * @return resource - */ - function db_set_charset($charset, $collation) - { - // @todo - add support if needed - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Version number query string - * - * @access public - * @return string - */ - function _version() - { - return sqlite_libversion(); - } - - // -------------------------------------------------------------------- - - /** - * Execute the query - * - * @access private called by the base class - * @param string an SQL query - * @return resource - */ - function _execute($sql) - { - $sql = $this->_prep_query($sql); - return @sqlite_query($this->conn_id, $sql); - } - - // -------------------------------------------------------------------- - - /** - * Prep the query - * - * If needed, each database adapter can prep the query string - * - * @access private called by execute() - * @param string an SQL query - * @return string - */ - function _prep_query($sql) - { - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Begin Transaction - * - * @access public - * @return bool - */ - function trans_begin($test_mode = FALSE) - { - if ( ! $this->trans_enabled) - { - return TRUE; - } - - // When transactions are nested we only begin/commit/rollback the outermost ones - if ($this->_trans_depth > 0) - { - return TRUE; - } - - // Reset the transaction failure flag. - // If the $test_mode flag is set to TRUE transactions will be rolled back - // even if the queries produce a successful result. - $this->_trans_failure = ($test_mode === TRUE) ? TRUE : FALSE; - - $this->simple_query('BEGIN TRANSACTION'); - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Commit Transaction - * - * @access public - * @return bool - */ - function trans_commit() - { - if ( ! $this->trans_enabled) - { - return TRUE; - } - - // When transactions are nested we only begin/commit/rollback the outermost ones - if ($this->_trans_depth > 0) - { - return TRUE; - } - - $this->simple_query('COMMIT'); - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Rollback Transaction - * - * @access public - * @return bool - */ - function trans_rollback() - { - if ( ! $this->trans_enabled) - { - return TRUE; - } - - // When transactions are nested we only begin/commit/rollback the outermost ones - if ($this->_trans_depth > 0) - { - return TRUE; - } - - $this->simple_query('ROLLBACK'); - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Escape String - * - * @access public - * @param string - * @param bool whether or not the string will be used in a LIKE condition - * @return string - */ - function escape_str($str, $like = FALSE) - { - if (is_array($str)) - { - foreach ($str as $key => $val) - { - $str[$key] = $this->escape_str($val, $like); - } - - return $str; - } - - $str = sqlite_escape_string($str); - - // escape LIKE condition wildcards - if ($like === TRUE) - { - $str = str_replace( array('%', '_', $this->_like_escape_chr), - array($this->_like_escape_chr.'%', $this->_like_escape_chr.'_', $this->_like_escape_chr.$this->_like_escape_chr), - $str); - } - - return $str; - } - - // -------------------------------------------------------------------- - - /** - * Affected Rows - * - * @access public - * @return integer - */ - function affected_rows() - { - return sqlite_changes($this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * Insert ID - * - * @access public - * @return integer - */ - function insert_id() - { - return @sqlite_last_insert_rowid($this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * "Count All" query - * - * Generates a platform-specific query string that counts all records in - * the specified database - * - * @access public - * @param string - * @return string - */ - function count_all($table = '') - { - if ($table == '') - { - return 0; - } - - $query = $this->query($this->_count_string . $this->_protect_identifiers('numrows') . " FROM " . $this->_protect_identifiers($table, TRUE, NULL, FALSE)); - - if ($query->num_rows() == 0) - { - return 0; - } - - $row = $query->row(); - $this->_reset_select(); - return (int) $row->numrows; - } - - // -------------------------------------------------------------------- - - /** - * List table query - * - * Generates a platform-specific query string so that the table names can be fetched - * - * @access private - * @param boolean - * @return string - */ - function _list_tables($prefix_limit = FALSE) - { - $sql = "SELECT name from sqlite_master WHERE type='table'"; - - if ($prefix_limit !== FALSE AND $this->dbprefix != '') - { - $sql .= " AND 'name' LIKE '".$this->escape_like_str($this->dbprefix)."%' ".sprintf($this->_like_escape_str, $this->_like_escape_chr); - } - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Show column query - * - * Generates a platform-specific query string so that the column names can be fetched - * - * @access public - * @param string the table name - * @return string - */ - function _list_columns($table = '') - { - // Not supported - return FALSE; - } - - // -------------------------------------------------------------------- - - /** - * Field data query - * - * Generates a platform-specific query so that the column data can be retrieved - * - * @access public - * @param string the table name - * @return object - */ - function _field_data($table) - { - return "SELECT * FROM ".$table." LIMIT 1"; - } - - // -------------------------------------------------------------------- - - /** - * The error message string - * - * @access private - * @return string - */ - function _error_message() - { - return sqlite_error_string(sqlite_last_error($this->conn_id)); - } - - // -------------------------------------------------------------------- - - /** - * The error message number - * - * @access private - * @return integer - */ - function _error_number() - { - return sqlite_last_error($this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * Escape the SQL Identifiers - * - * This function escapes column and table names - * - * @access private - * @param string - * @return string - */ - function _escape_identifiers($item) - { - if ($this->_escape_char == '') - { - return $item; - } - - foreach ($this->_reserved_identifiers as $id) - { - if (strpos($item, '.'.$id) !== FALSE) - { - $str = $this->_escape_char. str_replace('.', $this->_escape_char.'.', $item); - - // remove duplicates if the user already included the escape - return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); - } - } - - if (strpos($item, '.') !== FALSE) - { - $str = $this->_escape_char.str_replace('.', $this->_escape_char.'.'.$this->_escape_char, $item).$this->_escape_char; - } - else - { - $str = $this->_escape_char.$item.$this->_escape_char; - } - - // remove duplicates if the user already included the escape - return preg_replace('/['.$this->_escape_char.']+/', $this->_escape_char, $str); - } - - // -------------------------------------------------------------------- - - /** - * From Tables - * - * This function implicitly groups FROM tables so there is no confusion - * about operator precedence in harmony with SQL standards - * - * @access public - * @param type - * @return type - */ - function _from_tables($tables) - { - if ( ! is_array($tables)) - { - $tables = array($tables); - } - - return '('.implode(', ', $tables).')'; - } - - // -------------------------------------------------------------------- - - /** - * Insert statement - * - * Generates a platform-specific insert string from the supplied data - * - * @access public - * @param string the table name - * @param array the insert keys - * @param array the insert values - * @return string - */ - function _insert($table, $keys, $values) - { - return "INSERT INTO ".$table." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")"; - } - - // -------------------------------------------------------------------- - - /** - * Update statement - * - * Generates a platform-specific update string from the supplied data - * - * @access public - * @param string the table name - * @param array the update data - * @param array the where clause - * @param array the orderby clause - * @param array the limit clause - * @return string - */ - function _update($table, $values, $where, $orderby = array(), $limit = FALSE) - { - foreach ($values as $key => $val) - { - $valstr[] = $key." = ".$val; - } - - $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; - - $orderby = (count($orderby) >= 1)?' ORDER BY '.implode(", ", $orderby):''; - - $sql = "UPDATE ".$table." SET ".implode(', ', $valstr); - - $sql .= ($where != '' AND count($where) >=1) ? " WHERE ".implode(" ", $where) : ''; - - $sql .= $orderby.$limit; - - return $sql; - } - - - // -------------------------------------------------------------------- - - /** - * Truncate statement - * - * Generates a platform-specific truncate string from the supplied data - * If the database does not support the truncate() command - * This function maps to "DELETE FROM table" - * - * @access public - * @param string the table name - * @return string - */ - function _truncate($table) - { - return $this->_delete($table); - } - - // -------------------------------------------------------------------- - - /** - * Delete statement - * - * Generates a platform-specific delete string from the supplied data - * - * @access public - * @param string the table name - * @param array the where clause - * @param string the limit clause - * @return string - */ - function _delete($table, $where = array(), $like = array(), $limit = FALSE) - { - $conditions = ''; - - if (count($where) > 0 OR count($like) > 0) - { - $conditions = "\nWHERE "; - $conditions .= implode("\n", $this->ar_where); - - if (count($where) > 0 && count($like) > 0) - { - $conditions .= " AND "; - } - $conditions .= implode("\n", $like); - } - - $limit = ( ! $limit) ? '' : ' LIMIT '.$limit; - - return "DELETE FROM ".$table.$conditions.$limit; - } - - // -------------------------------------------------------------------- - - /** - * Limit string - * - * Generates a platform-specific LIMIT clause - * - * @access public - * @param string the sql query string - * @param integer the number of rows to limit the query to - * @param integer the offset value - * @return string - */ - function _limit($sql, $limit, $offset) - { - if ($offset == 0) - { - $offset = ''; - } - else - { - $offset .= ", "; - } - - return $sql."LIMIT ".$offset.$limit; - } - - // -------------------------------------------------------------------- - - /** - * Close DB Connection - * - * @access public - * @param resource - * @return void - */ - function _close($conn_id) - { - @sqlite_close($conn_id); - } - - -} - - -/* End of file sqlite_driver.php */ -/* Location: ./system/database/drivers/sqlite/sqlite_driver.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/sqlite/sqlite_forge.php b/sources/web/system/database/drivers/sqlite/sqlite_forge.php deleted file mode 100644 index 5690408..0000000 --- a/sources/web/system/database/drivers/sqlite/sqlite_forge.php +++ /dev/null @@ -1,265 +0,0 @@ -db->database) OR ! @unlink($this->db->database)) - { - if ($this->db->db_debug) - { - return $this->db->display_error('db_unable_to_drop'); - } - return FALSE; - } - return TRUE; - } - // -------------------------------------------------------------------- - - /** - * Create Table - * - * @access private - * @param string the table name - * @param array the fields - * @param mixed primary key(s) - * @param mixed key(s) - * @param boolean should 'IF NOT EXISTS' be added to the SQL - * @return bool - */ - function _create_table($table, $fields, $primary_keys, $keys, $if_not_exists) - { - $sql = 'CREATE TABLE '; - - // IF NOT EXISTS added to SQLite in 3.3.0 - if ($if_not_exists === TRUE && version_compare($this->db->_version(), '3.3.0', '>=') === TRUE) - { - $sql .= 'IF NOT EXISTS '; - } - - $sql .= $this->db->_escape_identifiers($table)."("; - $current_field_count = 0; - - foreach ($fields as $field=>$attributes) - { - // Numeric field names aren't allowed in databases, so if the key is - // numeric, we know it was assigned by PHP and the developer manually - // entered the field information, so we'll simply add it to the list - if (is_numeric($field)) - { - $sql .= "\n\t$attributes"; - } - else - { - $attributes = array_change_key_case($attributes, CASE_UPPER); - - $sql .= "\n\t".$this->db->_protect_identifiers($field); - - $sql .= ' '.$attributes['TYPE']; - - if (array_key_exists('CONSTRAINT', $attributes)) - { - $sql .= '('.$attributes['CONSTRAINT'].')'; - } - - if (array_key_exists('UNSIGNED', $attributes) && $attributes['UNSIGNED'] === TRUE) - { - $sql .= ' UNSIGNED'; - } - - if (array_key_exists('DEFAULT', $attributes)) - { - $sql .= ' DEFAULT \''.$attributes['DEFAULT'].'\''; - } - - if (array_key_exists('NULL', $attributes) && $attributes['NULL'] === TRUE) - { - $sql .= ' NULL'; - } - else - { - $sql .= ' NOT NULL'; - } - - if (array_key_exists('AUTO_INCREMENT', $attributes) && $attributes['AUTO_INCREMENT'] === TRUE) - { - $sql .= ' AUTO_INCREMENT'; - } - } - - // don't add a comma on the end of the last field - if (++$current_field_count < count($fields)) - { - $sql .= ','; - } - } - - if (count($primary_keys) > 0) - { - $primary_keys = $this->db->_protect_identifiers($primary_keys); - $sql .= ",\n\tPRIMARY KEY (" . implode(', ', $primary_keys) . ")"; - } - - if (is_array($keys) && count($keys) > 0) - { - foreach ($keys as $key) - { - if (is_array($key)) - { - $key = $this->db->_protect_identifiers($key); - } - else - { - $key = array($this->db->_protect_identifiers($key)); - } - - $sql .= ",\n\tUNIQUE (" . implode(', ', $key) . ")"; - } - } - - $sql .= "\n)"; - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Drop Table - * - * Unsupported feature in SQLite - * - * @access private - * @return bool - */ - function _drop_table($table) - { - if ($this->db->db_debug) - { - return $this->db->display_error('db_unsuported_feature'); - } - return array(); - } - - // -------------------------------------------------------------------- - - /** - * Alter table query - * - * Generates a platform-specific query so that a table can be altered - * Called by add_column(), drop_column(), and column_alter(), - * - * @access private - * @param string the ALTER type (ADD, DROP, CHANGE) - * @param string the column name - * @param string the table name - * @param string the column definition - * @param string the default value - * @param boolean should 'NOT NULL' be added - * @param string the field after which we should add the new field - * @return object - */ - function _alter_table($alter_type, $table, $column_name, $column_definition = '', $default_value = '', $null = '', $after_field = '') - { - $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table)." $alter_type ".$this->db->_protect_identifiers($column_name); - - // DROP has everything it needs now. - if ($alter_type == 'DROP') - { - // SQLite does not support dropping columns - // http://www.sqlite.org/omitted.html - // http://www.sqlite.org/faq.html#q11 - return FALSE; - } - - $sql .= " $column_definition"; - - if ($default_value != '') - { - $sql .= " DEFAULT \"$default_value\""; - } - - if ($null === NULL) - { - $sql .= ' NULL'; - } - else - { - $sql .= ' NOT NULL'; - } - - if ($after_field != '') - { - $sql .= ' AFTER ' . $this->db->_protect_identifiers($after_field); - } - - return $sql; - - } - - // -------------------------------------------------------------------- - - /** - * Rename a table - * - * Generates a platform-specific query so that a table can be renamed - * - * @access private - * @param string the old table name - * @param string the new table name - * @return string - */ - function _rename_table($table_name, $new_table_name) - { - $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table_name)." RENAME TO ".$this->db->_protect_identifiers($new_table_name); - return $sql; - } -} - -/* End of file sqlite_forge.php */ -/* Location: ./system/database/drivers/sqlite/sqlite_forge.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/sqlite/sqlite_result.php b/sources/web/system/database/drivers/sqlite/sqlite_result.php deleted file mode 100644 index 7bd30db..0000000 --- a/sources/web/system/database/drivers/sqlite/sqlite_result.php +++ /dev/null @@ -1,179 +0,0 @@ -result_id); - } - - // -------------------------------------------------------------------- - - /** - * Number of fields in the result set - * - * @access public - * @return integer - */ - function num_fields() - { - return @sqlite_num_fields($this->result_id); - } - - // -------------------------------------------------------------------- - - /** - * Fetch Field Names - * - * Generates an array of column names - * - * @access public - * @return array - */ - function list_fields() - { - $field_names = array(); - for ($i = 0; $i < $this->num_fields(); $i++) - { - $field_names[] = sqlite_field_name($this->result_id, $i); - } - - return $field_names; - } - - // -------------------------------------------------------------------- - - /** - * Field data - * - * Generates an array of objects containing field meta-data - * - * @access public - * @return array - */ - function field_data() - { - $retval = array(); - for ($i = 0; $i < $this->num_fields(); $i++) - { - $F = new stdClass(); - $F->name = sqlite_field_name($this->result_id, $i); - $F->type = 'varchar'; - $F->max_length = 0; - $F->primary_key = 0; - $F->default = ''; - - $retval[] = $F; - } - - return $retval; - } - - // -------------------------------------------------------------------- - - /** - * Free the result - * - * @return null - */ - function free_result() - { - // Not implemented in SQLite - } - - // -------------------------------------------------------------------- - - /** - * Data Seek - * - * Moves the internal pointer to the desired offset. We call - * this internally before fetching results to make sure the - * result set starts at zero - * - * @access private - * @return array - */ - function _data_seek($n = 0) - { - return sqlite_seek($this->result_id, $n); - } - - // -------------------------------------------------------------------- - - /** - * Result - associative array - * - * Returns the result set as an array - * - * @access private - * @return array - */ - function _fetch_assoc() - { - return sqlite_fetch_array($this->result_id); - } - - // -------------------------------------------------------------------- - - /** - * Result - object - * - * Returns the result set as an object - * - * @access private - * @return object - */ - function _fetch_object() - { - if (function_exists('sqlite_fetch_object')) - { - return sqlite_fetch_object($this->result_id); - } - else - { - $arr = sqlite_fetch_array($this->result_id, SQLITE_ASSOC); - if (is_array($arr)) - { - $obj = (object) $arr; - return $obj; - } else { - return NULL; - } - } - } - -} - - -/* End of file sqlite_result.php */ -/* Location: ./system/database/drivers/sqlite/sqlite_result.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/sqlite/sqlite_utility.php b/sources/web/system/database/drivers/sqlite/sqlite_utility.php deleted file mode 100644 index 508023e..0000000 --- a/sources/web/system/database/drivers/sqlite/sqlite_utility.php +++ /dev/null @@ -1,96 +0,0 @@ -db_debug) - { - return $this->db->display_error('db_unsuported_feature'); - } - return array(); - } - - // -------------------------------------------------------------------- - - /** - * Optimize table query - * - * Is optimization even supported in SQLite? - * - * @access private - * @param string the table name - * @return object - */ - function _optimize_table($table) - { - return FALSE; - } - - // -------------------------------------------------------------------- - - /** - * Repair table query - * - * Are table repairs even supported in SQLite? - * - * @access private - * @param string the table name - * @return object - */ - function _repair_table($table) - { - return FALSE; - } - - // -------------------------------------------------------------------- - - /** - * SQLite Export - * - * @access private - * @param array Preferences - * @return mixed - */ - function _backup($params = array()) - { - // Currently unsupported - return $this->db->display_error('db_unsuported_feature'); - } -} - -/* End of file sqlite_utility.php */ -/* Location: ./system/database/drivers/sqlite/sqlite_utility.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/sqlsrv/index.html b/sources/web/system/database/drivers/sqlsrv/index.html deleted file mode 100644 index c942a79..0000000 --- a/sources/web/system/database/drivers/sqlsrv/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - 403 Forbidden - - - -

          Directory access is forbidden.

          - - - \ No newline at end of file diff --git a/sources/web/system/database/drivers/sqlsrv/sqlsrv_driver.php b/sources/web/system/database/drivers/sqlsrv/sqlsrv_driver.php deleted file mode 100644 index 400fd31..0000000 --- a/sources/web/system/database/drivers/sqlsrv/sqlsrv_driver.php +++ /dev/null @@ -1,599 +0,0 @@ -char_set)) ? 'UTF-8' : $this->char_set; - - $connection = array( - 'UID' => empty($this->username) ? '' : $this->username, - 'PWD' => empty($this->password) ? '' : $this->password, - 'Database' => $this->database, - 'ConnectionPooling' => $pooling ? 1 : 0, - 'CharacterSet' => $character_set, - 'ReturnDatesAsStrings' => 1 - ); - - // If the username and password are both empty, assume this is a - // 'Windows Authentication Mode' connection. - if(empty($connection['UID']) && empty($connection['PWD'])) { - unset($connection['UID'], $connection['PWD']); - } - - return sqlsrv_connect($this->hostname, $connection); - } - - // -------------------------------------------------------------------- - - /** - * Persistent database connection - * - * @access private called by the base class - * @return resource - */ - function db_pconnect() - { - $this->db_connect(TRUE); - } - - // -------------------------------------------------------------------- - - /** - * Reconnect - * - * Keep / reestablish the db connection if no queries have been - * sent for a length of time exceeding the server's idle timeout - * - * @access public - * @return void - */ - function reconnect() - { - // not implemented in MSSQL - } - - // -------------------------------------------------------------------- - - /** - * Select the database - * - * @access private called by the base class - * @return resource - */ - function db_select() - { - return $this->_execute('USE ' . $this->database); - } - - // -------------------------------------------------------------------- - - /** - * Set client character set - * - * @access public - * @param string - * @param string - * @return resource - */ - function db_set_charset($charset, $collation) - { - // @todo - add support if needed - return TRUE; - } - - // -------------------------------------------------------------------- - - /** - * Execute the query - * - * @access private called by the base class - * @param string an SQL query - * @return resource - */ - function _execute($sql) - { - $sql = $this->_prep_query($sql); - return sqlsrv_query($this->conn_id, $sql, null, array( - 'Scrollable' => SQLSRV_CURSOR_STATIC, - 'SendStreamParamsAtExec' => true - )); - } - - // -------------------------------------------------------------------- - - /** - * Prep the query - * - * If needed, each database adapter can prep the query string - * - * @access private called by execute() - * @param string an SQL query - * @return string - */ - function _prep_query($sql) - { - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Begin Transaction - * - * @access public - * @return bool - */ - function trans_begin($test_mode = FALSE) - { - if ( ! $this->trans_enabled) - { - return TRUE; - } - - // When transactions are nested we only begin/commit/rollback the outermost ones - if ($this->_trans_depth > 0) - { - return TRUE; - } - - // Reset the transaction failure flag. - // If the $test_mode flag is set to TRUE transactions will be rolled back - // even if the queries produce a successful result. - $this->_trans_failure = ($test_mode === TRUE) ? TRUE : FALSE; - - return sqlsrv_begin_transaction($this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * Commit Transaction - * - * @access public - * @return bool - */ - function trans_commit() - { - if ( ! $this->trans_enabled) - { - return TRUE; - } - - // When transactions are nested we only begin/commit/rollback the outermost ones - if ($this->_trans_depth > 0) - { - return TRUE; - } - - return sqlsrv_commit($this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * Rollback Transaction - * - * @access public - * @return bool - */ - function trans_rollback() - { - if ( ! $this->trans_enabled) - { - return TRUE; - } - - // When transactions are nested we only begin/commit/rollback the outermost ones - if ($this->_trans_depth > 0) - { - return TRUE; - } - - return sqlsrv_rollback($this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * Escape String - * - * @access public - * @param string - * @param bool whether or not the string will be used in a LIKE condition - * @return string - */ - function escape_str($str, $like = FALSE) - { - // Escape single quotes - return str_replace("'", "''", $str); - } - - // -------------------------------------------------------------------- - - /** - * Affected Rows - * - * @access public - * @return integer - */ - function affected_rows() - { - return @sqlrv_rows_affected($this->conn_id); - } - - // -------------------------------------------------------------------- - - /** - * Insert ID - * - * Returns the last id created in the Identity column. - * - * @access public - * @return integer - */ - function insert_id() - { - return $this->query('select @@IDENTITY as insert_id')->row('insert_id'); - } - - // -------------------------------------------------------------------- - - /** - * Parse major version - * - * Grabs the major version number from the - * database server version string passed in. - * - * @access private - * @param string $version - * @return int16 major version number - */ - function _parse_major_version($version) - { - preg_match('/([0-9]+)\.([0-9]+)\.([0-9]+)/', $version, $ver_info); - return $ver_info[1]; // return the major version b/c that's all we're interested in. - } - - // -------------------------------------------------------------------- - - /** - * Version number query string - * - * @access public - * @return string - */ - function _version() - { - $info = sqlsrv_server_info($this->conn_id); - return sprintf("select '%s' as ver", $info['SQLServerVersion']); - } - - // -------------------------------------------------------------------- - - /** - * "Count All" query - * - * Generates a platform-specific query string that counts all records in - * the specified database - * - * @access public - * @param string - * @return string - */ - function count_all($table = '') - { - if ($table == '') - return '0'; - - $query = $this->query("SELECT COUNT(*) AS numrows FROM " . $this->dbprefix . $table); - - if ($query->num_rows() == 0) - return '0'; - - $row = $query->row(); - $this->_reset_select(); - return $row->numrows; - } - - // -------------------------------------------------------------------- - - /** - * List table query - * - * Generates a platform-specific query string so that the table names can be fetched - * - * @access private - * @param boolean - * @return string - */ - function _list_tables($prefix_limit = FALSE) - { - return "SELECT name FROM sysobjects WHERE type = 'U' ORDER BY name"; - } - - // -------------------------------------------------------------------- - - /** - * List column query - * - * Generates a platform-specific query string so that the column names can be fetched - * - * @access private - * @param string the table name - * @return string - */ - function _list_columns($table = '') - { - return "SELECT * FROM INFORMATION_SCHEMA.Columns WHERE TABLE_NAME = '".$this->_escape_table($table)."'"; - } - - // -------------------------------------------------------------------- - - /** - * Field data query - * - * Generates a platform-specific query so that the column data can be retrieved - * - * @access public - * @param string the table name - * @return object - */ - function _field_data($table) - { - return "SELECT TOP 1 * FROM " . $this->_escape_table($table); - } - - // -------------------------------------------------------------------- - - /** - * The error message string - * - * @access private - * @return string - */ - function _error_message() - { - $error = array_shift(sqlsrv_errors()); - return !empty($error['message']) ? $error['message'] : null; - } - - // -------------------------------------------------------------------- - - /** - * The error message number - * - * @access private - * @return integer - */ - function _error_number() - { - $error = array_shift(sqlsrv_errors()); - return isset($error['SQLSTATE']) ? $error['SQLSTATE'] : null; - } - - // -------------------------------------------------------------------- - - /** - * Escape Table Name - * - * This function adds backticks if the table name has a period - * in it. Some DBs will get cranky unless periods are escaped - * - * @access private - * @param string the table name - * @return string - */ - function _escape_table($table) - { - return $table; - } - - - /** - * Escape the SQL Identifiers - * - * This function escapes column and table names - * - * @access private - * @param string - * @return string - */ - function _escape_identifiers($item) - { - return $item; - } - - // -------------------------------------------------------------------- - - /** - * From Tables - * - * This function implicitly groups FROM tables so there is no confusion - * about operator precedence in harmony with SQL standards - * - * @access public - * @param type - * @return type - */ - function _from_tables($tables) - { - if ( ! is_array($tables)) - { - $tables = array($tables); - } - - return implode(', ', $tables); - } - - // -------------------------------------------------------------------- - - /** - * Insert statement - * - * Generates a platform-specific insert string from the supplied data - * - * @access public - * @param string the table name - * @param array the insert keys - * @param array the insert values - * @return string - */ - function _insert($table, $keys, $values) - { - return "INSERT INTO ".$this->_escape_table($table)." (".implode(', ', $keys).") VALUES (".implode(', ', $values).")"; - } - - // -------------------------------------------------------------------- - - /** - * Update statement - * - * Generates a platform-specific update string from the supplied data - * - * @access public - * @param string the table name - * @param array the update data - * @param array the where clause - * @param array the orderby clause - * @param array the limit clause - * @return string - */ - function _update($table, $values, $where) - { - foreach($values as $key => $val) - { - $valstr[] = $key." = ".$val; - } - - return "UPDATE ".$this->_escape_table($table)." SET ".implode(', ', $valstr)." WHERE ".implode(" ", $where); - } - - // -------------------------------------------------------------------- - - /** - * Truncate statement - * - * Generates a platform-specific truncate string from the supplied data - * If the database does not support the truncate() command - * This function maps to "DELETE FROM table" - * - * @access public - * @param string the table name - * @return string - */ - function _truncate($table) - { - return "TRUNCATE ".$table; - } - - // -------------------------------------------------------------------- - - /** - * Delete statement - * - * Generates a platform-specific delete string from the supplied data - * - * @access public - * @param string the table name - * @param array the where clause - * @param string the limit clause - * @return string - */ - function _delete($table, $where) - { - return "DELETE FROM ".$this->_escape_table($table)." WHERE ".implode(" ", $where); - } - - // -------------------------------------------------------------------- - - /** - * Limit string - * - * Generates a platform-specific LIMIT clause - * - * @access public - * @param string the sql query string - * @param integer the number of rows to limit the query to - * @param integer the offset value - * @return string - */ - function _limit($sql, $limit, $offset) - { - $i = $limit + $offset; - - return preg_replace('/(^\SELECT (DISTINCT)?)/i','\\1 TOP '.$i.' ', $sql); - } - - // -------------------------------------------------------------------- - - /** - * Close DB Connection - * - * @access public - * @param resource - * @return void - */ - function _close($conn_id) - { - @sqlsrv_close($conn_id); - } - -} - - - -/* End of file mssql_driver.php */ -/* Location: ./system/database/drivers/mssql/mssql_driver.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/sqlsrv/sqlsrv_forge.php b/sources/web/system/database/drivers/sqlsrv/sqlsrv_forge.php deleted file mode 100644 index cc88ec5..0000000 --- a/sources/web/system/database/drivers/sqlsrv/sqlsrv_forge.php +++ /dev/null @@ -1,248 +0,0 @@ -db->_escape_identifiers($table); - } - - // -------------------------------------------------------------------- - - /** - * Create Table - * - * @access private - * @param string the table name - * @param array the fields - * @param mixed primary key(s) - * @param mixed key(s) - * @param boolean should 'IF NOT EXISTS' be added to the SQL - * @return bool - */ - function _create_table($table, $fields, $primary_keys, $keys, $if_not_exists) - { - $sql = 'CREATE TABLE '; - - if ($if_not_exists === TRUE) - { - $sql .= 'IF NOT EXISTS '; - } - - $sql .= $this->db->_escape_identifiers($table)." ("; - $current_field_count = 0; - - foreach ($fields as $field=>$attributes) - { - // Numeric field names aren't allowed in databases, so if the key is - // numeric, we know it was assigned by PHP and the developer manually - // entered the field information, so we'll simply add it to the list - if (is_numeric($field)) - { - $sql .= "\n\t$attributes"; - } - else - { - $attributes = array_change_key_case($attributes, CASE_UPPER); - - $sql .= "\n\t".$this->db->_protect_identifiers($field); - - $sql .= ' '.$attributes['TYPE']; - - if (array_key_exists('CONSTRAINT', $attributes)) - { - $sql .= '('.$attributes['CONSTRAINT'].')'; - } - - if (array_key_exists('UNSIGNED', $attributes) && $attributes['UNSIGNED'] === TRUE) - { - $sql .= ' UNSIGNED'; - } - - if (array_key_exists('DEFAULT', $attributes)) - { - $sql .= ' DEFAULT \''.$attributes['DEFAULT'].'\''; - } - - if (array_key_exists('NULL', $attributes) && $attributes['NULL'] === TRUE) - { - $sql .= ' NULL'; - } - else - { - $sql .= ' NOT NULL'; - } - - if (array_key_exists('AUTO_INCREMENT', $attributes) && $attributes['AUTO_INCREMENT'] === TRUE) - { - $sql .= ' AUTO_INCREMENT'; - } - } - - // don't add a comma on the end of the last field - if (++$current_field_count < count($fields)) - { - $sql .= ','; - } - } - - if (count($primary_keys) > 0) - { - $primary_keys = $this->db->_protect_identifiers($primary_keys); - $sql .= ",\n\tPRIMARY KEY (" . implode(', ', $primary_keys) . ")"; - } - - if (is_array($keys) && count($keys) > 0) - { - foreach ($keys as $key) - { - if (is_array($key)) - { - $key = $this->db->_protect_identifiers($key); - } - else - { - $key = array($this->db->_protect_identifiers($key)); - } - - $sql .= ",\n\tFOREIGN KEY (" . implode(', ', $key) . ")"; - } - } - - $sql .= "\n)"; - - return $sql; - } - - // -------------------------------------------------------------------- - - /** - * Alter table query - * - * Generates a platform-specific query so that a table can be altered - * Called by add_column(), drop_column(), and column_alter(), - * - * @access private - * @param string the ALTER type (ADD, DROP, CHANGE) - * @param string the column name - * @param string the table name - * @param string the column definition - * @param string the default value - * @param boolean should 'NOT NULL' be added - * @param string the field after which we should add the new field - * @return object - */ - function _alter_table($alter_type, $table, $column_name, $column_definition = '', $default_value = '', $null = '', $after_field = '') - { - $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table)." $alter_type ".$this->db->_protect_identifiers($column_name); - - // DROP has everything it needs now. - if ($alter_type == 'DROP') - { - return $sql; - } - - $sql .= " $column_definition"; - - if ($default_value != '') - { - $sql .= " DEFAULT \"$default_value\""; - } - - if ($null === NULL) - { - $sql .= ' NULL'; - } - else - { - $sql .= ' NOT NULL'; - } - - if ($after_field != '') - { - $sql .= ' AFTER ' . $this->db->_protect_identifiers($after_field); - } - - return $sql; - - } - - // -------------------------------------------------------------------- - - /** - * Rename a table - * - * Generates a platform-specific query so that a table can be renamed - * - * @access private - * @param string the old table name - * @param string the new table name - * @return string - */ - function _rename_table($table_name, $new_table_name) - { - // I think this syntax will work, but can find little documentation on renaming tables in MSSQL - $sql = 'ALTER TABLE '.$this->db->_protect_identifiers($table_name)." RENAME TO ".$this->db->_protect_identifiers($new_table_name); - return $sql; - } - -} - -/* End of file mssql_forge.php */ -/* Location: ./system/database/drivers/mssql/mssql_forge.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/sqlsrv/sqlsrv_result.php b/sources/web/system/database/drivers/sqlsrv/sqlsrv_result.php deleted file mode 100644 index bf0abd1..0000000 --- a/sources/web/system/database/drivers/sqlsrv/sqlsrv_result.php +++ /dev/null @@ -1,169 +0,0 @@ -result_id); - } - - // -------------------------------------------------------------------- - - /** - * Number of fields in the result set - * - * @access public - * @return integer - */ - function num_fields() - { - return @sqlsrv_num_fields($this->result_id); - } - - // -------------------------------------------------------------------- - - /** - * Fetch Field Names - * - * Generates an array of column names - * - * @access public - * @return array - */ - function list_fields() - { - $field_names = array(); - foreach(sqlsrv_field_metadata($this->result_id) as $offset => $field) - { - $field_names[] = $field['Name']; - } - - return $field_names; - } - - // -------------------------------------------------------------------- - - /** - * Field data - * - * Generates an array of objects containing field meta-data - * - * @access public - * @return array - */ - function field_data() - { - $retval = array(); - foreach(sqlsrv_field_metadata($this->result_id) as $offset => $field) - { - $F = new stdClass(); - $F->name = $field['Name']; - $F->type = $field['Type']; - $F->max_length = $field['Size']; - $F->primary_key = 0; - $F->default = ''; - - $retval[] = $F; - } - - return $retval; - } - - // -------------------------------------------------------------------- - - /** - * Free the result - * - * @return null - */ - function free_result() - { - if (is_resource($this->result_id)) - { - sqlsrv_free_stmt($this->result_id); - $this->result_id = FALSE; - } - } - - // -------------------------------------------------------------------- - - /** - * Data Seek - * - * Moves the internal pointer to the desired offset. We call - * this internally before fetching results to make sure the - * result set starts at zero - * - * @access private - * @return array - */ - function _data_seek($n = 0) - { - // Not implemented - } - - // -------------------------------------------------------------------- - - /** - * Result - associative array - * - * Returns the result set as an array - * - * @access private - * @return array - */ - function _fetch_assoc() - { - return sqlsrv_fetch_array($this->result_id, SQLSRV_FETCH_ASSOC); - } - - // -------------------------------------------------------------------- - - /** - * Result - object - * - * Returns the result set as an object - * - * @access private - * @return object - */ - function _fetch_object() - { - return sqlsrv_fetch_object($this->result_id); - } - -} - - -/* End of file mssql_result.php */ -/* Location: ./system/database/drivers/mssql/mssql_result.php */ \ No newline at end of file diff --git a/sources/web/system/database/drivers/sqlsrv/sqlsrv_utility.php b/sources/web/system/database/drivers/sqlsrv/sqlsrv_utility.php deleted file mode 100644 index 13a1850..0000000 --- a/sources/web/system/database/drivers/sqlsrv/sqlsrv_utility.php +++ /dev/null @@ -1,88 +0,0 @@ -db->display_error('db_unsuported_feature'); - } - -} - -/* End of file mssql_utility.php */ -/* Location: ./system/database/drivers/mssql/mssql_utility.php */ \ No newline at end of file diff --git a/sources/web/system/database/index.html b/sources/web/system/database/index.html deleted file mode 100644 index c942a79..0000000 --- a/sources/web/system/database/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - 403 Forbidden - - - -

          Directory access is forbidden.

          - - - \ No newline at end of file diff --git a/sources/web/system/fonts/index.html b/sources/web/system/fonts/index.html deleted file mode 100644 index c942a79..0000000 --- a/sources/web/system/fonts/index.html +++ /dev/null @@ -1,10 +0,0 @@ - - - 403 Forbidden - - - -

          Directory access is forbidden.

          - - - \ No newline at end of file diff --git a/sources/web/system/fonts/texb.ttf b/sources/web/system/fonts/texb.ttf deleted file mode 100644 index 383c88b86b7c17e2e284732af48b2bfc359647ae..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 143830 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 z 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 n`i '', 'img_path' => '', 'img_url' => '', 'img_width' => '150', 'img_height' => '30', 'font_path' => '', 'expiration' => 7200); - - foreach ($defaults as $key => $val) - { - if ( ! is_array($data)) - { - if ( ! isset($$key) OR $$key == '') - { - $$key = $val; - } - } - else - { - $$key = ( ! isset($data[$key])) ? $val : $data[$key]; - } - } - - if ($img_path == '' OR $img_url == '') - { - return FALSE; - } - - if ( ! @is_dir($img_path)) - { - return FALSE; - } - - if ( ! is_writable($img_path)) - { - return FALSE; - } - - if ( ! extension_loaded('gd')) - { - return FALSE; - } - - // ----------------------------------- - // Remove old images - // ----------------------------------- - - list($usec, $sec) = explode(" ", microtime()); - $now = ((float)$usec + (float)$sec); - - $current_dir = @opendir($img_path); - - while ($filename = @readdir($current_dir)) - { - if ($filename != "." and $filename != ".." and $filename != "index.html") - { - $name = str_replace(".jpg", "", $filename); - - if (($name + $expiration) < $now) - { - @unlink($img_path.$filename); - } - } - } - - @closedir($current_dir); - - // ----------------------------------- - // Do we have a "word" yet? - // ----------------------------------- - - if ($word == '') - { - $pool = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'; - - $str = ''; - for ($i = 0; $i < 8; $i++) - { - $str .= substr($pool, mt_rand(0, strlen($pool) -1), 1); - } - - $word = $str; - } - - // ----------------------------------- - // Determine angle and position - // ----------------------------------- - - $length = strlen($word); - $angle = ($length >= 6) ? rand(-($length-6), ($length-6)) : 0; - $x_axis = rand(6, (360/$length)-16); - $y_axis = ($angle >= 0 ) ? rand($img_height, $img_width) : rand(6, $img_height); - - // ----------------------------------- - // Create image - // ----------------------------------- - - // PHP.net recommends imagecreatetruecolor(), but it isn't always available - if (function_exists('imagecreatetruecolor')) - { - $im = imagecreatetruecolor($img_width, $img_height); - } - else - { - $im = imagecreate($img_width, $img_height); - } - - // ----------------------------------- - // Assign colors - // ----------------------------------- - - $bg_color = imagecolorallocate ($im, 255, 255, 255); - $border_color = imagecolorallocate ($im, 153, 102, 102); - $text_color = imagecolorallocate ($im, 204, 153, 153); - $grid_color = imagecolorallocate($im, 255, 182, 182); - $shadow_color = imagecolorallocate($im, 255, 240, 240); - - // ----------------------------------- - // Create the rectangle - // ----------------------------------- - - ImageFilledRectangle($im, 0, 0, $img_width, $img_height, $bg_color); - - // ----------------------------------- - // Create the spiral pattern - // ----------------------------------- - - $theta = 1; - $thetac = 7; - $radius = 16; - $circles = 20; - $points = 32; - - for ($i = 0; $i < ($circles * $points) - 1; $i++) - { - $theta = $theta + $thetac; - $rad = $radius * ($i / $points ); - $x = ($rad * cos($theta)) + $x_axis; - $y = ($rad * sin($theta)) + $y_axis; - $theta = $theta + $thetac; - $rad1 = $radius * (($i + 1) / $points); - $x1 = ($rad1 * cos($theta)) + $x_axis; - $y1 = ($rad1 * sin($theta )) + $y_axis; - imageline($im, $x, $y, $x1, $y1, $grid_color); - $theta = $theta - $thetac; - } - - // ----------------------------------- - // Write the text - // ----------------------------------- - - $use_font = ($font_path != '' AND file_exists($font_path) AND function_exists('imagettftext')) ? TRUE : FALSE; - - if ($use_font == FALSE) - { - $font_size = 5; - $x = rand(0, $img_width/($length/3)); - $y = 0; - } - else - { - $font_size = 16; - $x = rand(0, $img_width/($length/1.5)); - $y = $font_size+2; - } - - for ($i = 0; $i < strlen($word); $i++) - { - if ($use_font == FALSE) - { - $y = rand(0 , $img_height/2); - imagestring($im, $font_size, $x, $y, substr($word, $i, 1), $text_color); - $x += ($font_size*2); - } - else - { - $y = rand($img_height/2, $img_height-3); - imagettftext($im, $font_size, $angle, $x, $y, $text_color, $font_path, substr($word, $i, 1)); - $x += $font_size; - } - } - - - // ----------------------------------- - // Create the border - // ----------------------------------- - - imagerectangle($im, 0, 0, $img_width-1, $img_height-1, $border_color); - - // ----------------------------------- - // Generate the image - // ----------------------------------- - - $img_name = $now.'.jpg'; - - ImageJPEG($im, $img_path.$img_name); - - $img = "\""; - - ImageDestroy($im); - - return array('word' => $word, 'time' => $now, 'image' => $img); - } -} - -// ------------------------------------------------------------------------ - -/* End of file captcha_helper.php */ -/* Location: ./system/heleprs/captcha_helper.php */ \ No newline at end of file diff --git a/sources/web/system/helpers/cookie_helper.php b/sources/web/system/helpers/cookie_helper.php deleted file mode 100644 index 7cee028..0000000 --- a/sources/web/system/helpers/cookie_helper.php +++ /dev/null @@ -1,103 +0,0 @@ -input->set_cookie($name, $value, $expire, $domain, $path, $prefix, $secure); - } -} - -// -------------------------------------------------------------------- - -/** - * Fetch an item from the COOKIE array - * - * @access public - * @param string - * @param bool - * @return mixed - */ -if ( ! function_exists('get_cookie')) -{ - function get_cookie($index = '', $xss_clean = FALSE) - { - $CI =& get_instance(); - - $prefix = ''; - - if ( ! isset($_COOKIE[$index]) && config_item('cookie_prefix') != '') - { - $prefix = config_item('cookie_prefix'); - } - - return $CI->input->cookie($prefix.$index, $xss_clean); - } -} - -// -------------------------------------------------------------------- - -/** - * Delete a COOKIE - * - * @param mixed - * @param string the cookie domain. Usually: .yourdomain.com - * @param string the cookie path - * @param string the cookie prefix - * @return void - */ -if ( ! function_exists('delete_cookie')) -{ - function delete_cookie($name = '', $domain = '', $path = '/', $prefix = '') - { - set_cookie($name, '', '', $domain, $path, $prefix); - } -} - - -/* End of file cookie_helper.php */ -/* Location: ./system/helpers/cookie_helper.php */ \ No newline at end of file diff --git a/sources/web/system/helpers/date_helper.php b/sources/web/system/helpers/date_helper.php deleted file mode 100644 index 0aeb7fa..0000000 --- a/sources/web/system/helpers/date_helper.php +++ /dev/null @@ -1,611 +0,0 @@ -config->item('time_reference')) == 'gmt') - { - $now = time(); - $system_time = mktime(gmdate("H", $now), gmdate("i", $now), gmdate("s", $now), gmdate("m", $now), gmdate("d", $now), gmdate("Y", $now)); - - if (strlen($system_time) < 10) - { - $system_time = time(); - log_message('error', 'The Date class could not set a proper GMT timestamp so the local time() value was used.'); - } - - return $system_time; - } - else - { - return time(); - } - } -} - -// ------------------------------------------------------------------------ - -/** - * Convert MySQL Style Datecodes - * - * This function is identical to PHPs date() function, - * except that it allows date codes to be formatted using - * the MySQL style, where each code letter is preceded - * with a percent sign: %Y %m %d etc... - * - * The benefit of doing dates this way is that you don't - * have to worry about escaping your text letters that - * match the date codes. - * - * @access public - * @param string - * @param integer - * @return integer - */ -if ( ! function_exists('mdate')) -{ - function mdate($datestr = '', $time = '') - { - if ($datestr == '') - return ''; - - if ($time == '') - $time = now(); - - $datestr = str_replace('%\\', '', preg_replace("/([a-z]+?){1}/i", "\\\\\\1", $datestr)); - return date($datestr, $time); - } -} - -// ------------------------------------------------------------------------ - -/** - * Standard Date - * - * Returns a date formatted according to the submitted standard. - * - * @access public - * @param string the chosen format - * @param integer Unix timestamp - * @return string - */ -if ( ! function_exists('standard_date')) -{ - function standard_date($fmt = 'DATE_RFC822', $time = '') - { - $formats = array( - 'DATE_ATOM' => '%Y-%m-%dT%H:%i:%s%Q', - 'DATE_COOKIE' => '%l, %d-%M-%y %H:%i:%s UTC', - 'DATE_ISO8601' => '%Y-%m-%dT%H:%i:%s%Q', - 'DATE_RFC822' => '%D, %d %M %y %H:%i:%s %O', - 'DATE_RFC850' => '%l, %d-%M-%y %H:%i:%s UTC', - 'DATE_RFC1036' => '%D, %d %M %y %H:%i:%s %O', - 'DATE_RFC1123' => '%D, %d %M %Y %H:%i:%s %O', - 'DATE_RSS' => '%D, %d %M %Y %H:%i:%s %O', - 'DATE_W3C' => '%Y-%m-%dT%H:%i:%s%Q' - ); - - if ( ! isset($formats[$fmt])) - { - return FALSE; - } - - return mdate($formats[$fmt], $time); - } -} - -// ------------------------------------------------------------------------ - -/** - * Timespan - * - * Returns a span of seconds in this format: - * 10 days 14 hours 36 minutes 47 seconds - * - * @access public - * @param integer a number of seconds - * @param integer Unix timestamp - * @return integer - */ -if ( ! function_exists('timespan')) -{ - function timespan($seconds = 1, $time = '') - { - $CI =& get_instance(); - $CI->lang->load('date'); - - if ( ! is_numeric($seconds)) - { - $seconds = 1; - } - - if ( ! is_numeric($time)) - { - $time = time(); - } - - if ($time <= $seconds) - { - $seconds = 1; - } - else - { - $seconds = $time - $seconds; - } - - $str = ''; - $years = floor($seconds / 31536000); - - if ($years > 0) - { - $str .= $years.' '.$CI->lang->line((($years > 1) ? 'date_years' : 'date_year')).', '; - } - - $seconds -= $years * 31536000; - $months = floor($seconds / 2628000); - - if ($years > 0 OR $months > 0) - { - if ($months > 0) - { - $str .= $months.' '.$CI->lang->line((($months > 1) ? 'date_months' : 'date_month')).', '; - } - - $seconds -= $months * 2628000; - } - - $weeks = floor($seconds / 604800); - - if ($years > 0 OR $months > 0 OR $weeks > 0) - { - if ($weeks > 0) - { - $str .= $weeks.' '.$CI->lang->line((($weeks > 1) ? 'date_weeks' : 'date_week')).', '; - } - - $seconds -= $weeks * 604800; - } - - $days = floor($seconds / 86400); - - if ($months > 0 OR $weeks > 0 OR $days > 0) - { - if ($days > 0) - { - $str .= $days.' '.$CI->lang->line((($days > 1) ? 'date_days' : 'date_day')).', '; - } - - $seconds -= $days * 86400; - } - - $hours = floor($seconds / 3600); - - if ($days > 0 OR $hours > 0) - { - if ($hours > 0) - { - $str .= $hours.' '.$CI->lang->line((($hours > 1) ? 'date_hours' : 'date_hour')).', '; - } - - $seconds -= $hours * 3600; - } - - $minutes = floor($seconds / 60); - - if ($days > 0 OR $hours > 0 OR $minutes > 0) - { - if ($minutes > 0) - { - $str .= $minutes.' '.$CI->lang->line((($minutes > 1) ? 'date_minutes' : 'date_minute')).', '; - } - - $seconds -= $minutes * 60; - } - - if ($str == '') - { - $str .= $seconds.' '.$CI->lang->line((($seconds > 1) ? 'date_seconds' : 'date_second')).', '; - } - - return substr(trim($str), 0, -1); - } -} - -// ------------------------------------------------------------------------ - -/** - * Number of days in a month - * - * Takes a month/year as input and returns the number of days - * for the given month/year. Takes leap years into consideration. - * - * @access public - * @param integer a numeric month - * @param integer a numeric year - * @return integer - */ -if ( ! function_exists('days_in_month')) -{ - function days_in_month($month = 0, $year = '') - { - if ($month < 1 OR $month > 12) - { - return 0; - } - - if ( ! is_numeric($year) OR strlen($year) != 4) - { - $year = date('Y'); - } - - if ($month == 2) - { - if ($year % 400 == 0 OR ($year % 4 == 0 AND $year % 100 != 0)) - { - return 29; - } - } - - $days_in_month = array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31); - return $days_in_month[$month - 1]; - } -} - -// ------------------------------------------------------------------------ - -/** - * Converts a local Unix timestamp to GMT - * - * @access public - * @param integer Unix timestamp - * @return integer - */ -if ( ! function_exists('local_to_gmt')) -{ - function local_to_gmt($time = '') - { - if ($time == '') - $time = time(); - - return mktime( gmdate("H", $time), gmdate("i", $time), gmdate("s", $time), gmdate("m", $time), gmdate("d", $time), gmdate("Y", $time)); - } -} - -// ------------------------------------------------------------------------ - -/** - * Converts GMT time to a localized value - * - * Takes a Unix timestamp (in GMT) as input, and returns - * at the local value based on the timezone and DST setting - * submitted - * - * @access public - * @param integer Unix timestamp - * @param string timezone - * @param bool whether DST is active - * @return integer - */ -if ( ! function_exists('gmt_to_local')) -{ - function gmt_to_local($time = '', $timezone = 'UTC', $dst = FALSE) - { - if ($time == '') - { - return now(); - } - - $time += timezones($timezone) * 3600; - - if ($dst == TRUE) - { - $time += 3600; - } - - return $time; - } -} - -// ------------------------------------------------------------------------ - -/** - * Converts a MySQL Timestamp to Unix - * - * @access public - * @param integer Unix timestamp - * @return integer - */ -if ( ! function_exists('mysql_to_unix')) -{ - function mysql_to_unix($time = '') - { - // We'll remove certain characters for backward compatibility - // since the formatting changed with MySQL 4.1 - // YYYY-MM-DD HH:MM:SS - - $time = str_replace('-', '', $time); - $time = str_replace(':', '', $time); - $time = str_replace(' ', '', $time); - - // YYYYMMDDHHMMSS - return mktime( - substr($time, 8, 2), - substr($time, 10, 2), - substr($time, 12, 2), - substr($time, 4, 2), - substr($time, 6, 2), - substr($time, 0, 4) - ); - } -} - -// ------------------------------------------------------------------------ - -/** - * Unix to "Human" - * - * Formats Unix timestamp to the following prototype: 2006-08-21 11:35 PM - * - * @access public - * @param integer Unix timestamp - * @param bool whether to show seconds - * @param string format: us or euro - * @return string - */ -if ( ! function_exists('unix_to_human')) -{ - function unix_to_human($time = '', $seconds = FALSE, $fmt = 'us') - { - $r = date('Y', $time).'-'.date('m', $time).'-'.date('d', $time).' '; - - if ($fmt == 'us') - { - $r .= date('h', $time).':'.date('i', $time); - } - else - { - $r .= date('H', $time).':'.date('i', $time); - } - - if ($seconds) - { - $r .= ':'.date('s', $time); - } - - if ($fmt == 'us') - { - $r .= ' '.date('A', $time); - } - - return $r; - } -} - -// ------------------------------------------------------------------------ - -/** - * Convert "human" date to GMT - * - * Reverses the above process - * - * @access public - * @param string format: us or euro - * @return integer - */ -if ( ! function_exists('human_to_unix')) -{ - function human_to_unix($datestr = '') - { - if ($datestr == '') - { - return FALSE; - } - - $datestr = trim($datestr); - $datestr = preg_replace("/\040+/", ' ', $datestr); - - if ( ! preg_match('/^[0-9]{2,4}\-[0-9]{1,2}\-[0-9]{1,2}\s[0-9]{1,2}:[0-9]{1,2}(?::[0-9]{1,2})?(?:\s[AP]M)?$/i', $datestr)) - { - return FALSE; - } - - $split = explode(' ', $datestr); - - $ex = explode("-", $split['0']); - - $year = (strlen($ex['0']) == 2) ? '20'.$ex['0'] : $ex['0']; - $month = (strlen($ex['1']) == 1) ? '0'.$ex['1'] : $ex['1']; - $day = (strlen($ex['2']) == 1) ? '0'.$ex['2'] : $ex['2']; - - $ex = explode(":", $split['1']); - - $hour = (strlen($ex['0']) == 1) ? '0'.$ex['0'] : $ex['0']; - $min = (strlen($ex['1']) == 1) ? '0'.$ex['1'] : $ex['1']; - - if (isset($ex['2']) && preg_match('/[0-9]{1,2}/', $ex['2'])) - { - $sec = (strlen($ex['2']) == 1) ? '0'.$ex['2'] : $ex['2']; - } - else - { - // Unless specified, seconds get set to zero. - $sec = '00'; - } - - if (isset($split['2'])) - { - $ampm = strtolower($split['2']); - - if (substr($ampm, 0, 1) == 'p' AND $hour < 12) - $hour = $hour + 12; - - if (substr($ampm, 0, 1) == 'a' AND $hour == 12) - $hour = '00'; - - if (strlen($hour) == 1) - $hour = '0'.$hour; - } - - return mktime($hour, $min, $sec, $month, $day, $year); - } -} - -// ------------------------------------------------------------------------ - -/** - * Timezone Menu - * - * Generates a drop-down menu of timezones. - * - * @access public - * @param string timezone - * @param string classname - * @param string menu name - * @return string - */ -if ( ! function_exists('timezone_menu')) -{ - function timezone_menu($default = 'UTC', $class = "", $name = 'timezones') - { - $CI =& get_instance(); - $CI->lang->load('date'); - - if ($default == 'GMT') - $default = 'UTC'; - - $menu = '"; - - return $menu; - } -} - -// ------------------------------------------------------------------------ - -/** - * Timezones - * - * Returns an array of timezones. This is a helper function - * for various other ones in this library - * - * @access public - * @param string timezone - * @return string - */ -if ( ! function_exists('timezones')) -{ - function timezones($tz = '') - { - // Note: Don't change the order of these even though - // some items appear to be in the wrong order - - $zones = array( - 'UM12' => -12, - 'UM11' => -11, - 'UM10' => -10, - 'UM95' => -9.5, - 'UM9' => -9, - 'UM8' => -8, - 'UM7' => -7, - 'UM6' => -6, - 'UM5' => -5, - 'UM45' => -4.5, - 'UM4' => -4, - 'UM35' => -3.5, - 'UM3' => -3, - 'UM2' => -2, - 'UM1' => -1, - 'UTC' => 0, - 'UP1' => +1, - 'UP2' => +2, - 'UP3' => +3, - 'UP35' => +3.5, - 'UP4' => +4, - 'UP45' => +4.5, - 'UP5' => +5, - 'UP55' => +5.5, - 'UP575' => +5.75, - 'UP6' => +6, - 'UP65' => +6.5, - 'UP7' => +7, - 'UP8' => +8, - 'UP875' => +8.75, - 'UP9' => +9, - 'UP95' => +9.5, - 'UP10' => +10, - 'UP105' => +10.5, - 'UP11' => +11, - 'UP115' => +11.5, - 'UP12' => +12, - 'UP1275' => +12.75, - 'UP13' => +13, - 'UP14' => +14 - ); - - if ($tz == '') - { - return $zones; - } - - if ($tz == 'GMT') - $tz = 'UTC'; - - return ( ! isset($zones[$tz])) ? 0 : $zones[$tz]; - } -} - - -/* End of file date_helper.php */ -/* Location: ./system/helpers/date_helper.php */ \ No newline at end of file diff --git a/sources/web/system/helpers/directory_helper.php b/sources/web/system/helpers/directory_helper.php deleted file mode 100644 index 38347fa..0000000 --- a/sources/web/system/helpers/directory_helper.php +++ /dev/null @@ -1,80 +0,0 @@ - 0) && @is_dir($source_dir.$file)) - { - $filedata[$file] = directory_map($source_dir.$file.DIRECTORY_SEPARATOR, $new_depth, $hidden); - } - else - { - $filedata[] = $file; - } - } - - closedir($fp); - return $filedata; - } - - return FALSE; - } -} - - -/* End of file directory_helper.php */ -/* Location: ./system/helpers/directory_helper.php */ \ No newline at end of file diff --git a/sources/web/system/helpers/download_helper.php b/sources/web/system/helpers/download_helper.php deleted file mode 100644 index 1145688..0000000 --- a/sources/web/system/helpers/download_helper.php +++ /dev/null @@ -1,107 +0,0 @@ - 0) - { - $data =& fread($fp, filesize($file)); - } - - flock($fp, LOCK_UN); - fclose($fp); - - return $data; - } -} - -// ------------------------------------------------------------------------ - -/** - * Write File - * - * Writes data to the file specified in the path. - * Creates a new file if non-existent. - * - * @access public - * @param string path to file - * @param string file data - * @return bool - */ -if ( ! function_exists('write_file')) -{ - function write_file($path, $data, $mode = FOPEN_WRITE_CREATE_DESTRUCTIVE) - { - if ( ! $fp = @fopen($path, $mode)) - { - return FALSE; - } - - flock($fp, LOCK_EX); - fwrite($fp, $data); - flock($fp, LOCK_UN); - fclose($fp); - - return TRUE; - } -} - -// ------------------------------------------------------------------------ - -/** - * Delete Files - * - * Deletes all files contained in the supplied directory path. - * Files must be writable or owned by the system in order to be deleted. - * If the second parameter is set to TRUE, any directories contained - * within the supplied base directory will be nuked as well. - * - * @access public - * @param string path to file - * @param bool whether to delete any directories found in the path - * @return bool - */ -if ( ! function_exists('delete_files')) -{ - function delete_files($path, $del_dir = FALSE, $level = 0) - { - // Trim the trailing slash - $path = rtrim($path, DIRECTORY_SEPARATOR); - - if ( ! $current_dir = @opendir($path)) - { - return FALSE; - } - - while (FALSE !== ($filename = @readdir($current_dir))) - { - if ($filename != "." and $filename != "..") - { - if (is_dir($path.DIRECTORY_SEPARATOR.$filename)) - { - // Ignore empty folders - if (substr($filename, 0, 1) != '.') - { - delete_files($path.DIRECTORY_SEPARATOR.$filename, $del_dir, $level + 1); - } - } - else - { - unlink($path.DIRECTORY_SEPARATOR.$filename); - } - } - } - @closedir($current_dir); - - if ($del_dir == TRUE AND $level > 0) - { - return @rmdir($path); - } - - return TRUE; - } -} - -// ------------------------------------------------------------------------ - -/** - * Get Filenames - * - * Reads the specified directory and builds an array containing the filenames. - * Any sub-folders contained within the specified path are read as well. - * - * @access public - * @param string path to source - * @param bool whether to include the path as part of the filename - * @param bool internal variable to determine recursion status - do not use in calls - * @return array - */ -if ( ! function_exists('get_filenames')) -{ - function get_filenames($source_dir, $include_path = FALSE, $_recursion = FALSE) - { - static $_filedata = array(); - - if ($fp = @opendir($source_dir)) - { - // reset the array and make sure $source_dir has a trailing slash on the initial call - if ($_recursion === FALSE) - { - $_filedata = array(); - $source_dir = rtrim(realpath($source_dir), DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR; - } - - while (FALSE !== ($file = readdir($fp))) - { - if (@is_dir($source_dir.$file) && strncmp($file, '.', 1) !== 0) - { - get_filenames($source_dir.$file.DIRECTORY_SEPARATOR, $include_path, TRUE); - } - elseif (strncmp($file, '.', 1) !== 0) - { - $_filedata[] = ($include_path == TRUE) ? $source_dir.$file : $file; - } - } - return $_filedata; - } - else - { - return FALSE; - } - } -} - -// -------------------------------------------------------------------- - -/** - * Get Directory File Information - * - * Reads the specified directory and builds an array containing the filenames, - * filesize, dates, and permissions - * - * Any sub-folders contained within the specified path are read as well. - * - * @access public - * @param string path to source - * @param bool Look only at the top level directory specified? - * @param bool internal variable to determine recursion status - do not use in calls - * @return array - */ -if ( ! function_exists('get_dir_file_info')) -{ - function get_dir_file_info($source_dir, $top_level_only = TRUE, $_recursion = FALSE) - { - static $_filedata = array(); - $relative_path = $source_dir; - - if ($fp = @opendir($source_dir)) - { - // reset the array and make sure $source_dir has a trailing slash on the initial call - if ($_recursion === FALSE) - { - $_filedata = array(); - $source_dir = rtrim(realpath($source_dir), DIRECTORY_SEPARATOR).DIRECTORY_SEPARATOR; - } - - // foreach (scandir($source_dir, 1) as $file) // In addition to being PHP5+, scandir() is simply not as fast - while (FALSE !== ($file = readdir($fp))) - { - if (@is_dir($source_dir.$file) AND strncmp($file, '.', 1) !== 0 AND $top_level_only === FALSE) - { - get_dir_file_info($source_dir.$file.DIRECTORY_SEPARATOR, $top_level_only, TRUE); - } - elseif (strncmp($file, '.', 1) !== 0) - { - $_filedata[$file] = get_file_info($source_dir.$file); - $_filedata[$file]['relative_path'] = $relative_path; - } - } - - return $_filedata; - } - else - { - return FALSE; - } - } -} - -// -------------------------------------------------------------------- - -/** -* Get File Info -* -* Given a file and path, returns the name, path, size, date modified -* Second parameter allows you to explicitly declare what information you want returned -* Options are: name, server_path, size, date, readable, writable, executable, fileperms -* Returns FALSE if the file cannot be found. -* -* @access public -* @param string path to file -* @param mixed array or comma separated string of information returned -* @return array -*/ -if ( ! function_exists('get_file_info')) -{ - function get_file_info($file, $returned_values = array('name', 'server_path', 'size', 'date')) - { - - if ( ! file_exists($file)) - { - return FALSE; - } - - if (is_string($returned_values)) - { - $returned_values = explode(',', $returned_values); - } - - foreach ($returned_values as $key) - { - switch ($key) - { - case 'name': - $fileinfo['name'] = substr(strrchr($file, DIRECTORY_SEPARATOR), 1); - break; - case 'server_path': - $fileinfo['server_path'] = $file; - break; - case 'size': - $fileinfo['size'] = filesize($file); - break; - case 'date': - $fileinfo['date'] = filemtime($file); - break; - case 'readable': - $fileinfo['readable'] = is_readable($file); - break; - case 'writable': - // There are known problems using is_weritable on IIS. It may not be reliable - consider fileperms() - $fileinfo['writable'] = is_writable($file); - break; - case 'executable': - $fileinfo['executable'] = is_executable($file); - break; - case 'fileperms': - $fileinfo['fileperms'] = fileperms($file); - break; - } - } - - return $fileinfo; - } -} - -// -------------------------------------------------------------------- - -/** - * Get Mime by Extension - * - * Translates a file extension into a mime type based on config/mimes.php. - * Returns FALSE if it can't determine the type, or open the mime config file - * - * Note: this is NOT an accurate way of determining file mime types, and is here strictly as a convenience - * It should NOT be trusted, and should certainly NOT be used for security - * - * @access public - * @param string path to file - * @return mixed - */ -if ( ! function_exists('get_mime_by_extension')) -{ - function get_mime_by_extension($file) - { - $extension = strtolower(substr(strrchr($file, '.'), 1)); - - global $mimes; - - if ( ! is_array($mimes)) - { - if (defined('ENVIRONMENT') AND is_file(APPPATH.'config/'.ENVIRONMENT.'/mimes.php')) - { - include(APPPATH.'config/'.ENVIRONMENT.'/mimes.php'); - } - elseif (is_file(APPPATH.'config/mimes.php')) - { - include(APPPATH.'config/mimes.php'); - } - - if ( ! is_array($mimes)) - { - return FALSE; - } - } - - if (array_key_exists($extension, $mimes)) - { - if (is_array($mimes[$extension])) - { - // Multiple mime types, just give the first one - return current($mimes[$extension]); - } - else - { - return $mimes[$extension]; - } - } - else - { - return FALSE; - } - } -} - -// -------------------------------------------------------------------- - -/** - * Symbolic Permissions - * - * Takes a numeric value representing a file's permissions and returns - * standard symbolic notation representing that value - * - * @access public - * @param int - * @return string - */ -if ( ! function_exists('symbolic_permissions')) -{ - function symbolic_permissions($perms) - { - if (($perms & 0xC000) == 0xC000) - { - $symbolic = 's'; // Socket - } - elseif (($perms & 0xA000) == 0xA000) - { - $symbolic = 'l'; // Symbolic Link - } - elseif (($perms & 0x8000) == 0x8000) - { - $symbolic = '-'; // Regular - } - elseif (($perms & 0x6000) == 0x6000) - { - $symbolic = 'b'; // Block special - } - elseif (($perms & 0x4000) == 0x4000) - { - $symbolic = 'd'; // Directory - } - elseif (($perms & 0x2000) == 0x2000) - { - $symbolic = 'c'; // Character special - } - elseif (($perms & 0x1000) == 0x1000) - { - $symbolic = 'p'; // FIFO pipe - } - else - { - $symbolic = 'u'; // Unknown - } - - // Owner - $symbolic .= (($perms & 0x0100) ? 'r' : '-'); - $symbolic .= (($perms & 0x0080) ? 'w' : '-'); - $symbolic .= (($perms & 0x0040) ? (($perms & 0x0800) ? 's' : 'x' ) : (($perms & 0x0800) ? 'S' : '-')); - - // Group - $symbolic .= (($perms & 0x0020) ? 'r' : '-'); - $symbolic .= (($perms & 0x0010) ? 'w' : '-'); - $symbolic .= (($perms & 0x0008) ? (($perms & 0x0400) ? 's' : 'x' ) : (($perms & 0x0400) ? 'S' : '-')); - - // World - $symbolic .= (($perms & 0x0004) ? 'r' : '-'); - $symbolic .= (($perms & 0x0002) ? 'w' : '-'); - $symbolic .= (($perms & 0x0001) ? (($perms & 0x0200) ? 't' : 'x' ) : (($perms & 0x0200) ? 'T' : '-')); - - return $symbolic; - } -} - -// -------------------------------------------------------------------- - -/** - * Octal Permissions - * - * Takes a numeric value representing a file's permissions and returns - * a three character string representing the file's octal permissions - * - * @access public - * @param int - * @return string - */ -if ( ! function_exists('octal_permissions')) -{ - function octal_permissions($perms) - { - return substr(sprintf('%o', $perms), -3); - } -} - - -/* End of file file_helper.php */ -/* Location: ./system/helpers/file_helper.php */ \ No newline at end of file diff --git a/sources/web/system/helpers/form_helper.php b/sources/web/system/helpers/form_helper.php deleted file mode 100644 index 8733ae0..0000000 --- a/sources/web/system/helpers/form_helper.php +++ /dev/null @@ -1,1054 +0,0 @@ -config->site_url($action); - } - - // If no action is provided then set to the current url - $action OR $action = $CI->config->site_url($CI->uri->uri_string()); - - $form = '
          config->item('csrf_protection') === TRUE AND ! (strpos($action, $CI->config->base_url()) === FALSE OR strpos($form, 'method="get"'))) - { - $hidden[$CI->security->get_csrf_token_name()] = $CI->security->get_csrf_hash(); - } - - if (is_array($hidden) AND count($hidden) > 0) - { - $form .= sprintf("
          %s
          ", form_hidden($hidden)); - } - - return $form; - } -} - -// ------------------------------------------------------------------------ - -/** - * Form Declaration - Multipart type - * - * Creates the opening portion of the form, but with "multipart/form-data". - * - * @access public - * @param string the URI segments of the form destination - * @param array a key/value pair of attributes - * @param array a key/value pair hidden data - * @return string - */ -if ( ! function_exists('form_open_multipart')) -{ - function form_open_multipart($action = '', $attributes = array(), $hidden = array()) - { - if (is_string($attributes)) - { - $attributes .= ' enctype="multipart/form-data"'; - } - else - { - $attributes['enctype'] = 'multipart/form-data'; - } - - return form_open($action, $attributes, $hidden); - } -} - -// ------------------------------------------------------------------------ - -/** - * Hidden Input Field - * - * Generates hidden fields. You can pass a simple key/value string or an associative - * array with multiple values. - * - * @access public - * @param mixed - * @param string - * @return string - */ -if ( ! function_exists('form_hidden')) -{ - function form_hidden($name, $value = '', $recursing = FALSE) - { - static $form; - - if ($recursing === FALSE) - { - $form = "\n"; - } - - if (is_array($name)) - { - foreach ($name as $key => $val) - { - form_hidden($key, $val, TRUE); - } - return $form; - } - - if ( ! is_array($value)) - { - $form .= ''."\n"; - } - else - { - foreach ($value as $k => $v) - { - $k = (is_int($k)) ? '' : $k; - form_hidden($name.'['.$k.']', $v, TRUE); - } - } - - return $form; - } -} - -// ------------------------------------------------------------------------ - -/** - * Text Input Field - * - * @access public - * @param mixed - * @param string - * @param string - * @return string - */ -if ( ! function_exists('form_input')) -{ - function form_input($data = '', $value = '', $extra = '') - { - $defaults = array('type' => 'text', 'name' => (( ! is_array($data)) ? $data : ''), 'value' => $value); - - return ""; - } -} - -// ------------------------------------------------------------------------ - -/** - * Password Field - * - * Identical to the input function but adds the "password" type - * - * @access public - * @param mixed - * @param string - * @param string - * @return string - */ -if ( ! function_exists('form_password')) -{ - function form_password($data = '', $value = '', $extra = '') - { - if ( ! is_array($data)) - { - $data = array('name' => $data); - } - - $data['type'] = 'password'; - return form_input($data, $value, $extra); - } -} - -// ------------------------------------------------------------------------ - -/** - * Upload Field - * - * Identical to the input function but adds the "file" type - * - * @access public - * @param mixed - * @param string - * @param string - * @return string - */ -if ( ! function_exists('form_upload')) -{ - function form_upload($data = '', $value = '', $extra = '') - { - if ( ! is_array($data)) - { - $data = array('name' => $data); - } - - $data['type'] = 'file'; - return form_input($data, $value, $extra); - } -} - -// ------------------------------------------------------------------------ - -/** - * Textarea field - * - * @access public - * @param mixed - * @param string - * @param string - * @return string - */ -if ( ! function_exists('form_textarea')) -{ - function form_textarea($data = '', $value = '', $extra = '') - { - $defaults = array('name' => (( ! is_array($data)) ? $data : ''), 'cols' => '40', 'rows' => '10'); - - if ( ! is_array($data) OR ! isset($data['value'])) - { - $val = $value; - } - else - { - $val = $data['value']; - unset($data['value']); // textareas don't use the value attribute - } - - $name = (is_array($data)) ? $data['name'] : $data; - return ""; - } -} - -// ------------------------------------------------------------------------ - -/** - * Multi-select menu - * - * @access public - * @param string - * @param array - * @param mixed - * @param string - * @return type - */ -if ( ! function_exists('form_multiselect')) -{ - function form_multiselect($name = '', $options = array(), $selected = array(), $extra = '') - { - if ( ! strpos($extra, 'multiple')) - { - $extra .= ' multiple="multiple"'; - } - - return form_dropdown($name, $options, $selected, $extra); - } -} - -// -------------------------------------------------------------------- - -/** - * Drop-down Menu - * - * @access public - * @param string - * @param array - * @param string - * @param string - * @return string - */ -if ( ! function_exists('form_dropdown')) -{ - function form_dropdown($name = '', $options = array(), $selected = array(), $extra = '') - { - if ( ! is_array($selected)) - { - $selected = array($selected); - } - - // If no selected state was submitted we will attempt to set it automatically - if (count($selected) === 0) - { - // If the form name appears in the $_POST array we have a winner! - if (isset($_POST[$name])) - { - $selected = array($_POST[$name]); - } - } - - if ($extra != '') $extra = ' '.$extra; - - $multiple = (count($selected) > 1 && strpos($extra, 'multiple') === FALSE) ? ' multiple="multiple"' : ''; - - $form = ''; - - return $form; - } -} - -// ------------------------------------------------------------------------ - -/** - * Checkbox Field - * - * @access public - * @param mixed - * @param string - * @param bool - * @param string - * @return string - */ -if ( ! function_exists('form_checkbox')) -{ - function form_checkbox($data = '', $value = '', $checked = FALSE, $extra = '') - { - $defaults = array('type' => 'checkbox', 'name' => (( ! is_array($data)) ? $data : ''), 'value' => $value); - - if (is_array($data) AND array_key_exists('checked', $data)) - { - $checked = $data['checked']; - - if ($checked == FALSE) - { - unset($data['checked']); - } - else - { - $data['checked'] = 'checked'; - } - } - - if ($checked == TRUE) - { - $defaults['checked'] = 'checked'; - } - else - { - unset($defaults['checked']); - } - - return ""; - } -} - -// ------------------------------------------------------------------------ - -/** - * Radio Button - * - * @access public - * @param mixed - * @param string - * @param bool - * @param string - * @return string - */ -if ( ! function_exists('form_radio')) -{ - function form_radio($data = '', $value = '', $checked = FALSE, $extra = '') - { - if ( ! is_array($data)) - { - $data = array('name' => $data); - } - - $data['type'] = 'radio'; - return form_checkbox($data, $value, $checked, $extra); - } -} - -// ------------------------------------------------------------------------ - -/** - * Submit Button - * - * @access public - * @param mixed - * @param string - * @param string - * @return string - */ -if ( ! function_exists('form_submit')) -{ - function form_submit($data = '', $value = '', $extra = '') - { - $defaults = array('type' => 'submit', 'name' => (( ! is_array($data)) ? $data : ''), 'value' => $value); - - return ""; - } -} - -// ------------------------------------------------------------------------ - -/** - * Reset Button - * - * @access public - * @param mixed - * @param string - * @param string - * @return string - */ -if ( ! function_exists('form_reset')) -{ - function form_reset($data = '', $value = '', $extra = '') - { - $defaults = array('type' => 'reset', 'name' => (( ! is_array($data)) ? $data : ''), 'value' => $value); - - return ""; - } -} - -// ------------------------------------------------------------------------ - -/** - * Form Button - * - * @access public - * @param mixed - * @param string - * @param string - * @return string - */ -if ( ! function_exists('form_button')) -{ - function form_button($data = '', $content = '', $extra = '') - { - $defaults = array('name' => (( ! is_array($data)) ? $data : ''), 'type' => 'button'); - - if ( is_array($data) AND isset($data['content'])) - { - $content = $data['content']; - unset($data['content']); // content is not an attribute - } - - return ""; - } -} - -// ------------------------------------------------------------------------ - -/** - * Form Label Tag - * - * @access public - * @param string The text to appear onscreen - * @param string The id the label applies to - * @param string Additional attributes - * @return string - */ -if ( ! function_exists('form_label')) -{ - function form_label($label_text = '', $id = '', $attributes = array()) - { - - $label = ' 0) - { - foreach ($attributes as $key => $val) - { - $label .= ' '.$key.'="'.$val.'"'; - } - } - - $label .= ">$label_text"; - - return $label; - } -} - -// ------------------------------------------------------------------------ -/** - * Fieldset Tag - * - * Used to produce
          text. To close fieldset - * use form_fieldset_close() - * - * @access public - * @param string The legend text - * @param string Additional attributes - * @return string - */ -if ( ! function_exists('form_fieldset')) -{ - function form_fieldset($legend_text = '', $attributes = array()) - { - $fieldset = "".$extra; - } -} - -// ------------------------------------------------------------------------ - -/** - * Form Close Tag - * - * @access public - * @param string - * @return string - */ -if ( ! function_exists('form_close')) -{ - function form_close($extra = '') - { - return "".$extra; - } -} - -// ------------------------------------------------------------------------ - -/** - * Form Prep - * - * Formats text so that it can be safely placed in a form field in the event it has HTML tags. - * - * @access public - * @param string - * @return string - */ -if ( ! function_exists('form_prep')) -{ - function form_prep($str = '', $field_name = '') - { - static $prepped_fields = array(); - - // if the field name is an array we do this recursively - if (is_array($str)) - { - foreach ($str as $key => $val) - { - $str[$key] = form_prep($val); - } - - return $str; - } - - if ($str === '') - { - return ''; - } - - // we've already prepped a field with this name - // @todo need to figure out a way to namespace this so - // that we know the *exact* field and not just one with - // the same name - if (isset($prepped_fields[$field_name])) - { - return $str; - } - - $str = htmlspecialchars($str); - - // In case htmlspecialchars misses these. - $str = str_replace(array("'", '"'), array("'", """), $str); - - if ($field_name != '') - { - $prepped_fields[$field_name] = $field_name; - } - - return $str; - } -} - -// ------------------------------------------------------------------------ - -/** - * Form Value - * - * Grabs a value from the POST array for the specified field so you can - * re-populate an input field or textarea. If Form Validation - * is active it retrieves the info from the validation class - * - * @access public - * @param string - * @return mixed - */ -if ( ! function_exists('set_value')) -{ - function set_value($field = '', $default = '') - { - if (FALSE === ($OBJ =& _get_validation_object())) - { - if ( ! isset($_POST[$field])) - { - return $default; - } - - return form_prep($_POST[$field], $field); - } - - return form_prep($OBJ->set_value($field, $default), $field); - } -} - -// ------------------------------------------------------------------------ - -/** - * Set Select - * - * Let's you set the selected value of a -{>form_element_start for="displayname" label="displayname" /} - -{>form_element_end/} -{>form_element_start for="color" label="color" /} - -{>form_element_end/} -{?public_url} - -{/public_url} diff --git a/sources/web/templates_src/src/calendar_create_dialog.dust b/sources/web/templates_src/src/calendar_create_dialog.dust deleted file mode 100644 index 70fc73e..0000000 --- a/sources/web/templates_src/src/calendar_create_dialog.dust +++ /dev/null @@ -1,5 +0,0 @@ -
          -{>form_open applyclass="form-horizontal" applyid="calendar_create_form" /} -{>calendar_basic_form_part/} -{>form_close/} -
          diff --git a/sources/web/templates_src/src/calendar_delete_dialog.dust b/sources/web/templates_src/src/calendar_delete_dialog.dust deleted file mode 100644 index 16539dd..0000000 --- a/sources/web/templates_src/src/calendar_delete_dialog.dust +++ /dev/null @@ -1,16 +0,0 @@ -
          -{>form_open/} - - -

          -{@i18n type="messages" name="info_confirmcaldelete" /} -

          - -

          {displayname}

          - -

          -{@i18n type="messages" name="info_permanentremoval" /} -

          - -{>form_close/} -
          diff --git a/sources/web/templates_src/src/calendar_list_entry.dust b/sources/web/templates_src/src/calendar_list_entry.dust deleted file mode 100644 index e6e3311..0000000 --- a/sources/web/templates_src/src/calendar_list_entry.dust +++ /dev/null @@ -1,24 +0,0 @@ -
        • -
          - - - {?shared} - {@eq key="{write_access}" value="0"} - - {/eq} - {:else} - {?share_with} - - {/share_with} - {/shared} - - - {displayname} - -
        • diff --git a/sources/web/templates_src/src/calendar_modify_dialog.dust b/sources/web/templates_src/src/calendar_modify_dialog.dust deleted file mode 100644 index f6f0fc8..0000000 --- a/sources/web/templates_src/src/calendar_modify_dialog.dust +++ /dev/null @@ -1,41 +0,0 @@ -
          -
          - -{>form_open applyclass="form-horizontal" applyid="calendar_modify_form" /} -
          - -{?user_from} - -{/user_from} - -{>calendar_basic_form_part/} -
          - -{?enable_calendar_sharing} - {^shared} -
          - {>calendar_share_table/} -
          - {/shared} -{/enable_calendar_sharing} - - -{>form_close/} -
          diff --git a/sources/web/templates_src/src/calendar_share_access_options.dust b/sources/web/templates_src/src/calendar_share_access_options.dust deleted file mode 100644 index ba771b0..0000000 --- a/sources/web/templates_src/src/calendar_share_access_options.dust +++ /dev/null @@ -1,2 +0,0 @@ - - diff --git a/sources/web/templates_src/src/calendar_share_row.dust b/sources/web/templates_src/src/calendar_share_row.dust deleted file mode 100644 index 2663edd..0000000 --- a/sources/web/templates_src/src/calendar_share_row.dust +++ /dev/null @@ -1,16 +0,0 @@ - -{username} - - - - - - - - - diff --git a/sources/web/templates_src/src/calendar_share_table.dust b/sources/web/templates_src/src/calendar_share_table.dust deleted file mode 100644 index 4e9aad7..0000000 --- a/sources/web/templates_src/src/calendar_share_table.dust +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - {#share_with} - {>calendar_share_row/} - {/share_with} - - - - -
          {@i18n type="labels" name="username"/}{@i18n type="labels" name="access"/}
          {@i18n type="messages" name="info_notshared"/}
          - -{@i18n type="labels" name="sharewith"/} - - - - - - - - - -
          - -
          - - - {@i18n type= -
          diff --git a/sources/web/templates_src/src/datepicker_button.dust b/sources/web/templates_src/src/datepicker_button.dust deleted file mode 100644 index b94382f..0000000 --- a/sources/web/templates_src/src/datepicker_button.dust +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/sources/web/templates_src/src/event_delete_dialog.dust b/sources/web/templates_src/src/event_delete_dialog.dust deleted file mode 100644 index 03f4c32..0000000 --- a/sources/web/templates_src/src/event_delete_dialog.dust +++ /dev/null @@ -1,20 +0,0 @@ -
          -{>form_open/} - - - - - - -

          {@i18n type="messages" name="info_confirmeventdelete"/}

          - -

          -{title} -

          - -{?rrule} -

          {@i18n type="messages" name="info_repetitivedeleteall"/}

          -{/rrule} - -{>form_close/} -
          diff --git a/sources/web/templates_src/src/event_details_popup.dust b/sources/web/templates_src/src/event_details_popup.dust deleted file mode 100644 index ed2b73e..0000000 --- a/sources/web/templates_src/src/event_details_popup.dust +++ /dev/null @@ -1,42 +0,0 @@ -

          {formatted_start} {formatted_end}

          -
          -
          {@i18n type="labels" name="calendar"/}
          -
          -{caldata.displayname}
          - -{?location} -
          {@i18n type="labels" name="location"/}
          -
          {location}
          -{/location} - -{?description} -
          {@i18n type="labels" name="description"/}
          -
          {formatted_description}
          -{/description} - -{?rrule} -
          {@i18n type="labels" name="repeat"/}
          -{?rrule_explained} -
          {@i18n type="messages" name="info_repetition_human" explanation="{rrule_explained}"/}
          - {:else} -
          {@i18n type="messages" name="info_repetition_unparseable"/} {rrule}
          - {/rrule_explained} -{/rrule} - -{#reminders} -
          {@i18n type="labels" name="reminder"/}
          -
          {>reminder_description /}
          -{/reminders} - -{^disable_actions} -
          - - -
          -{/disable_actions} - -
          - diff --git a/sources/web/templates_src/src/form_close.dust b/sources/web/templates_src/src/form_close.dust deleted file mode 100644 index 5582354..0000000 --- a/sources/web/templates_src/src/form_close.dust +++ /dev/null @@ -1 +0,0 @@ - diff --git a/sources/web/templates_src/src/form_element_end.dust b/sources/web/templates_src/src/form_element_end.dust deleted file mode 100644 index 5aa9962..0000000 --- a/sources/web/templates_src/src/form_element_end.dust +++ /dev/null @@ -1,3 +0,0 @@ -{?input_help}

          {input_help}

          {/input_help} -
          -
          diff --git a/sources/web/templates_src/src/form_element_start.dust b/sources/web/templates_src/src/form_element_start.dust deleted file mode 100644 index 3b38518..0000000 --- a/sources/web/templates_src/src/form_element_start.dust +++ /dev/null @@ -1,4 +0,0 @@ -
          - -
          diff --git a/sources/web/templates_src/src/form_open.dust b/sources/web/templates_src/src/form_open.dust deleted file mode 100644 index ed7c284..0000000 --- a/sources/web/templates_src/src/form_open.dust +++ /dev/null @@ -1,4 +0,0 @@ -
          - diff --git a/sources/web/templates_src/src/reminder_description.dust b/sources/web/templates_src/src/reminder_description.dust deleted file mode 100644 index 58e1df2..0000000 --- a/sources/web/templates_src/src/reminder_description.dust +++ /dev/null @@ -1,14 +0,0 @@ -{?is_absolute} -{tdate} {ttime} -{:else} -{qty} -{@select key="{interval}"} - {@eq value="min"}{@i18n type="labels" name="minutes"/}{/eq} - {@eq value="hour"}{@i18n type="labels" name="hours"/}{/eq} - {@eq value="day"}{@i18n type="labels" name="days"/}{/eq} - {@eq value="week"}{@i18n type="labels" name="weeks"/}{/eq} -{/select} - -{?before}{@i18n type="labels" name="before"/}{:else}{@i18n type="labels" name="after"/}{/before} -{?relatedStart}{@i18n type="labels" name="start"/}{:else}{@i18n type="labels" name="end"/}{/relatedStart} -{/is_absolute} diff --git a/sources/web/templates_src/src/reminder_row.dust b/sources/web/templates_src/src/reminder_row.dust deleted file mode 100644 index 7d93d35..0000000 --- a/sources/web/templates_src/src/reminder_row.dust +++ /dev/null @@ -1,63 +0,0 @@ - - - - -{^add} - -{/add} - -{?is_absolute} - -{:else} - -{/is_absolute} - - -{?is_absolute} - - - - - -{^add} - - - -{/add} -{:else} - - - - - - - -{^add} - - -{/add} - -{/is_absolute} - - -{?add} -{@i18n type= -{:else} -{@i18n type= -{/add} - - - - diff --git a/sources/web/templates_src/src/reminders_table.dust b/sources/web/templates_src/src/reminders_table.dust deleted file mode 100644 index 7645e40..0000000 --- a/sources/web/templates_src/src/reminders_table.dust +++ /dev/null @@ -1,35 +0,0 @@ -{#visible_reminders} - -{/visible_reminders} - - - - - - - - {#reminders} - {>reminder_row/} - {/reminders} - - - - -
          - {@i18n type="messages" name="info_noreminders"/} -
          - -{@i18n type="labels" name="newreminder"/} - - -{>reminder_row add="true" /} - -
          - -{@i18n type="labels" name="newreminder"/} - - -{>reminder_row add="true" is_absolute="true"/} - -
          -
          K$oIG9B+ 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 DqXBjS diff --git a/sources/libs/font-awesome/docs/assets/font/museo_slab_500-webfont.ttf b/sources/libs/font-awesome/docs/assets/font/museo_slab_500-webfont.ttf deleted file mode 100755 index bf78a2aefc5ca855f29f9f24b9af7c04e3df8346..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 55336 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 MeR2LZE>qtB0zJcG7XSbN diff --git a/sources/libs/font-awesome/docs/assets/font/proximanova-webfont.eot b/sources/libs/font-awesome/docs/assets/font/proximanova-webfont.eot deleted file mode 100755 index 1f28b415c6b1d8e27865485ea66a523b44652ee5..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 31323 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


          iH8d1GWv-skQ&`m4P=q|m@6jXflAlAi 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 A-~a#s diff --git a/sources/libs/font-awesome/docs/assets/ico/favicon.ico b/sources/libs/font-awesome/docs/assets/ico/favicon.ico deleted file mode 100644 index 742243e318a5fa557b434944ce23925aadf4d518..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1150 zcmd6mF>8ZR5XWDLA3$Sl2tw#2g(x8qXegL1dj`KkNS&PBx@FhdkK*DGvNe=`gKQZZ zR0z1_-+QKt1Pe7;dUEfc_wIMkclTthMUN;l8XwuKz}N$0?1_|I%neQjT4>+dXiW=IC@fjq-4|;KMM)VzIc3w=4^yDAwkXWf`;C z41>X-T)*DmbzLM$0^j#xnkM@FKBm(tJkP`FbOM+2`HU!vpsFhB_&n$j!*aR2i(jo) z|Bkn98(Egso}Sk&j^n(3JfQmhk|bfj-($UAL)Uc#L4f1&nCD5;G=JALE$^FPB`E&pP diff --git a/sources/libs/font-awesome/docs/assets/js/backbone.min.js b/sources/libs/font-awesome/docs/assets/js/backbone.min.js deleted file mode 100644 index 5846b32..0000000 --- a/sources/libs/font-awesome/docs/assets/js/backbone.min.js +++ /dev/null @@ -1,37 +0,0 @@ -// Backbone.js 0.9.1 - -// (c) 2010-2012 Jeremy Ashkenas, DocumentCloud Inc. -// Backbone may be freely distributed under the MIT license. -// For all details and documentation: -// http://backbonejs.org -(function(){var i=this,r=i.Backbone,s=Array.prototype.slice,t=Array.prototype.splice,g;g="undefined"!==typeof exports?exports:i.Backbone={};g.VERSION="0.9.1";var f=i._;!f&&"undefined"!==typeof require&&(f=require("underscore"));var h=i.jQuery||i.Zepto||i.ender;g.setDomLibrary=function(a){h=a};g.noConflict=function(){i.Backbone=r;return this};g.emulateHTTP=!1;g.emulateJSON=!1;g.Events={on:function(a,b,c){for(var d,a=a.split(/\s+/),e=this._callbacks||(this._callbacks={});d=a.shift();){d=e[d]||(e[d]= -{});var f=d.tail||(d.tail=d.next={});f.callback=b;f.context=c;d.tail=f.next={}}return this},off:function(a,b,c){var d,e,f;if(a){if(e=this._callbacks)for(a=a.split(/\s+/);d=a.shift();)if(f=e[d],delete e[d],b&&f)for(;(f=f.next)&&f.next;)if(!(f.callback===b&&(!c||f.context===c)))this.on(d,f.callback,f.context)}else delete this._callbacks;return this},trigger:function(a){var b,c,d,e;if(!(d=this._callbacks))return this;e=d.all;for((a=a.split(/\s+/)).push(null);b=a.shift();)e&&a.push({next:e.next,tail:e.tail, -event:b}),(c=d[b])&&a.push({next:c.next,tail:c.tail});for(e=s.call(arguments,1);c=a.pop();){b=c.tail;for(d=c.event?[c.event].concat(e):e;(c=c.next)!==b;)c.callback.apply(c.context||this,d)}return this}};g.Events.bind=g.Events.on;g.Events.unbind=g.Events.off;g.Model=function(a,b){var c;a||(a={});b&&b.parse&&(a=this.parse(a));if(c=j(this,"defaults"))a=f.extend({},c,a);b&&b.collection&&(this.collection=b.collection);this.attributes={};this._escapedAttributes={};this.cid=f.uniqueId("c");if(!this.set(a, -{silent:!0}))throw Error("Can't create an invalid model");delete this._changed;this._previousAttributes=f.clone(this.attributes);this.initialize.apply(this,arguments)};f.extend(g.Model.prototype,g.Events,{idAttribute:"id",initialize:function(){},toJSON:function(){return f.clone(this.attributes)},get:function(a){return this.attributes[a]},escape:function(a){var b;if(b=this._escapedAttributes[a])return b;b=this.attributes[a];return this._escapedAttributes[a]=f.escape(null==b?"":""+b)},has:function(a){return null!= -this.attributes[a]},set:function(a,b,c){var d,e;f.isObject(a)||null==a?(d=a,c=b):(d={},d[a]=b);c||(c={});if(!d)return this;d instanceof g.Model&&(d=d.attributes);if(c.unset)for(e in d)d[e]=void 0;if(!this._validate(d,c))return!1;this.idAttribute in d&&(this.id=d[this.idAttribute]);var b=this.attributes,k=this._escapedAttributes,n=this._previousAttributes||{},h=this._setting;this._changed||(this._changed={});this._setting=!0;for(e in d)if(a=d[e],f.isEqual(b[e],a)||delete k[e],c.unset?delete b[e]:b[e]= -a,this._changing&&!f.isEqual(this._changed[e],a)&&(this.trigger("change:"+e,this,a,c),this._moreChanges=!0),delete this._changed[e],!f.isEqual(n[e],a)||f.has(b,e)!=f.has(n,e))this._changed[e]=a;h||(!c.silent&&this.hasChanged()&&this.change(c),this._setting=!1);return this},unset:function(a,b){(b||(b={})).unset=!0;return this.set(a,null,b)},clear:function(a){(a||(a={})).unset=!0;return this.set(f.clone(this.attributes),a)},fetch:function(a){var a=a?f.clone(a):{},b=this,c=a.success;a.success=function(d, -e,f){if(!b.set(b.parse(d,f),a))return!1;c&&c(b,d)};a.error=g.wrapError(a.error,b,a);return(this.sync||g.sync).call(this,"read",this,a)},save:function(a,b,c){var d,e;f.isObject(a)||null==a?(d=a,c=b):(d={},d[a]=b);c=c?f.clone(c):{};c.wait&&(e=f.clone(this.attributes));a=f.extend({},c,{silent:!0});if(d&&!this.set(d,c.wait?a:c))return!1;var k=this,h=c.success;c.success=function(a,b,e){b=k.parse(a,e);c.wait&&(b=f.extend(d||{},b));if(!k.set(b,c))return!1;h?h(k,a):k.trigger("sync",k,a,c)};c.error=g.wrapError(c.error, -k,c);b=this.isNew()?"create":"update";b=(this.sync||g.sync).call(this,b,this,c);c.wait&&this.set(e,a);return b},destroy:function(a){var a=a?f.clone(a):{},b=this,c=a.success,d=function(){b.trigger("destroy",b,b.collection,a)};if(this.isNew())return d();a.success=function(e){a.wait&&d();c?c(b,e):b.trigger("sync",b,e,a)};a.error=g.wrapError(a.error,b,a);var e=(this.sync||g.sync).call(this,"delete",this,a);a.wait||d();return e},url:function(){var a=j(this.collection,"url")||j(this,"urlRoot")||o();return this.isNew()? -a:a+("/"==a.charAt(a.length-1)?"":"/")+encodeURIComponent(this.id)},parse:function(a){return a},clone:function(){return new this.constructor(this.attributes)},isNew:function(){return null==this.id},change:function(a){if(this._changing||!this.hasChanged())return this;this._moreChanges=this._changing=!0;for(var b in this._changed)this.trigger("change:"+b,this,this._changed[b],a);for(;this._moreChanges;)this._moreChanges=!1,this.trigger("change",this,a);this._previousAttributes=f.clone(this.attributes); -delete this._changed;this._changing=!1;return this},hasChanged:function(a){return!arguments.length?!f.isEmpty(this._changed):this._changed&&f.has(this._changed,a)},changedAttributes:function(a){if(!a)return this.hasChanged()?f.clone(this._changed):!1;var b,c=!1,d=this._previousAttributes,e;for(e in a)if(!f.isEqual(d[e],b=a[e]))(c||(c={}))[e]=b;return c},previous:function(a){return!arguments.length||!this._previousAttributes?null:this._previousAttributes[a]},previousAttributes:function(){return f.clone(this._previousAttributes)}, -isValid:function(){return!this.validate(this.attributes)},_validate:function(a,b){if(b.silent||!this.validate)return!0;var a=f.extend({},this.attributes,a),c=this.validate(a,b);if(!c)return!0;b&&b.error?b.error(this,c,b):this.trigger("error",this,c,b);return!1}});g.Collection=function(a,b){b||(b={});b.comparator&&(this.comparator=b.comparator);this._reset();this.initialize.apply(this,arguments);a&&this.reset(a,{silent:!0,parse:b.parse})};f.extend(g.Collection.prototype,g.Events,{model:g.Model,initialize:function(){}, -toJSON:function(){return this.map(function(a){return a.toJSON()})},add:function(a,b){var c,d,e,g,h,i={},j={};b||(b={});a=f.isArray(a)?a.slice():[a];for(c=0,d=a.length;c=b))this.iframe=h(''),d.bgiframe.appendTo(e),e.bind("tooltipmove"+f,c.adjust)},adjust:function(){var a=b.get("dimensions"),c=b.plugins.tip,f=d.tip,g,h;h=parseInt(e.css("border-left-width"),10)||0,h={left:-h,top:-h},c&&f&&(g=c.corner.precedance==="x"?["width","left"]:["height","top"],h[g[1]]-=f[g[0]]()),d.bgiframe.css(h).css(a)},destroy:function(){d.bgiframe.remove(),e.unbind(f)}}),c.init()}"use strict";var b=!0,c=!1,d=null,e="x",f="y",g="width",h="height",i="top",j="left",k="bottom",l="right",m="center",n="flip",o="flipinvert",p="shift",q,r,s,t={},u="ui-tooltip",v="ui-widget",w="ui-state-disabled",x="div.qtip."+u,y=u+"-default",z=u+"-focus",A=u+"-hover",B=u+"-fluid",C="-31000px",D="_replacedByqTip",E="oldtitle",F;q=a.fn.qtip=function(e,f,g){var h=(""+e).toLowerCase(),i=d,j=a.makeArray(arguments).slice(1),k=j[j.length-1],l=this[0]?a.data(this[0],"qtip"):d;if(!arguments.length&&l||h==="api")return l;if("string"==typeof e)return this.each(function(){var d=a.data(this,"qtip");if(!d)return b;k&&k.timeStamp&&(d.cache.event=k);if(h!=="option"&&h!=="options"||!f)d[h]&&d[h].apply(d[h],j);else if(a.isPlainObject(f)||g!==undefined)d.set(f,g);else return i=d.get(f),c}),i!==d?i:this;if("object"==typeof e||!arguments.length)return l=H(a.extend(b,{},e)),q.bind.call(this,l,k)},q.bind=function(d,e){return this.each(function(f){function m(b){function d(){k.render(typeof b=="object"||g.show.ready),h.show.add(h.hide).unbind(j)}if(k.cache.disabled)return c;k.cache.event=a.extend({},b),k.cache.target=b?a(b.target):[undefined],g.show.delay>0?(clearTimeout(k.timers.show),k.timers.show=setTimeout(d,g.show.delay),i.show!==i.hide&&h.hide.bind(i.hide,function(){clearTimeout(k.timers.show)})):d()}var g,h,i,j,k,l;l=a.isArray(d.id)?d.id[f]:d.id,l=!l||l===c||l.length<1||t[l]?q.nextid++:t[l]=l,j=".qtip-"+l+"-create",k=J.call(this,l,d);if(k===c)return b;g=k.options,a.each(r,function(){this.initialize==="initialize"&&this(k)}),h={show:g.show.target,hide:g.hide.target},i={show:a.trim(""+g.show.event).replace(/ /g,j+" ")+j,hide:a.trim(""+g.hide.event).replace(/ /g,j+" ")+j},/mouse(over|enter)/i.test(i.show)&&!/mouse(out|leave)/i.test(i.hide)&&(i.hide+=" mouseleave"+j),h.show.bind("mousemove"+j,function(a){s={pageX:a.pageX,pageY:a.pageY,type:"mousemove"},k.cache.onTarget=b}),h.show.bind(i.show,m),(g.show.ready||g.prerender)&&m(e)})},r=q.plugins={Corner:function(a){a=(""+a).replace(/([A-Z])/," $1").replace(/middle/gi,m).toLowerCase(),this.x=(a.match(/left|right/i)||a.match(/center/)||["inherit"])[0].toLowerCase(),this.y=(a.match(/top|bottom|center/i)||["inherit"])[0].toLowerCase();var b=a.charAt(0);this.precedance=b==="t"||b==="b"?f:e,this.string=function(){return this.precedance===f?this.y+this.x:this.x+this.y},this.abbrev=function(){var a=this.x.substr(0,1),b=this.y.substr(0,1);return a===b?a:this.precedance===f?b+a:a+b},this.invertx=function(a){this.x=this.x===j?l:this.x===l?j:a||this.x},this.inverty=function(a){this.y=this.y===i?k:this.y===k?i:a||this.y},this.clone=function(){return{x:this.x,y:this.y,precedance:this.precedance,string:this.string,abbrev:this.abbrev,clone:this.clone,invertx:this.invertx,inverty:this.inverty}}},offset:function(b,c){function j(a,b){d.left+=b*a.scrollLeft(),d.top+=b*a.scrollTop()}var d=b.offset(),e=b.closest("body")[0],f=c,g,h,i;if(f){do f.css("position")!=="static"&&(h=f.position(),d.left-=h.left+(parseInt(f.css("borderLeftWidth"),10)||0)+(parseInt(f.css("marginLeft"),10)||0),d.top-=h.top+(parseInt(f.css("borderTopWidth"),10)||0)+(parseInt(f.css("marginTop"),10)||0),!g&&(i=f.css("overflow"))!=="hidden"&&i!=="visible"&&(g=f));while((f=a(f[0].offsetParent)).length);g&&g[0]!==e&&j(g,1)}return d},iOS:parseFloat((""+(/CPU.*OS ([0-9_]{1,5})|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))||c,fn:{attr:function(b,c){if(this.length){var d=this[0],e="title",f=a.data(d,"qtip");if(b===e&&f&&"object"==typeof f&&f.options.suppress)return arguments.length<2?a.attr(d,E):(f&&f.options.content.attr===e&&f.cache.attr&&f.set("content.text",c),this.attr(E,c))}return a.fn["attr"+D].apply(this,arguments)},clone:function(b){var c=a([]),d="title",e=a.fn["clone"+D].apply(this,arguments);return b||e.filter("["+E+"]").attr("title",function(){return a.attr(this,E)}).removeAttr(E),e}}},a.each(r.fn,function(c,d){if(!d||a.fn[c+D])return b;var e=a.fn[c+D]=a.fn[c];a.fn[c]=function(){return d.apply(this,arguments)||e.apply(this,arguments)}}),a.ui||(a["cleanData"+D]=a.cleanData,a.cleanData=function(b){for(var c=0,d;(d=b[c])!==undefined;c++)try{a(d).triggerHandler("removeqtip")}catch(e){}a["cleanData"+D](b)}),q.version="@VERSION",q.nextid=0,q.inactiveEvents="click dblclick mousedown mouseup mousemove mouseleave mouseenter".split(" "),q.zindex=15e3,q.defaults={prerender:c,id:c,overwrite:b,suppress:b,content:{text:b,attr:"title",title:{text:c,button:c}},position:{my:"top left",at:"bottom right",target:c,container:c,viewport:c,adjust:{x:0,y:0,mouse:b,resize:b,method:"flip flip"},effect:function(b,d,e){a(this).animate(d,{duration:200,queue:c})}},show:{target:c,event:"mouseenter",effect:b,delay:90,solo:c,ready:c,autofocus:c},hide:{target:c,event:"mouseleave",effect:b,delay:0,fixed:c,inactive:c,leave:"window",distance:c},style:{classes:"",widget:c,width:c,height:c,def:b},events:{render:d,move:d,show:d,hide:d,toggle:d,visible:d,hidden:d,focus:d,blur:d}},r.svg=function(b,c,d,e){var f=a(document),g=c[0],h={width:0,height:0,position:{top:1e10,left:1e10}},i,j,k,l,m;while(!g.getBBox)g=g.parentNode;if(g.getBBox&&g.parentNode){i=g.getBBox(),j=g.getScreenCTM(),k=g.farthestViewportElement||g;if(!k.createSVGPoint)return h;l=k.createSVGPoint(),l.x=i.x,l.y=i.y,m=l.matrixTransform(j),h.position.left=m.x,h.position.top=m.y,l.x+=i.width,l.y+=i.height,m=l.matrixTransform(j),h.width=m.x-h.position.left,h.height=m.y-h.position.top,h.position.left+=f.scrollLeft(),h.position.top+=f.scrollTop()}return h},r.ajax=function(a){var b=a.plugins.ajax;return"object"==typeof b?b:a.plugins.ajax=new K(a)},r.ajax.initialize="render",r.ajax.sanitize=function(a){var b=a.content,c;b&&"ajax"in b&&(c=b.ajax,typeof c!="object"&&(c=a.content.ajax={url:c}),"boolean"!=typeof c.once&&c.once&&(c.once=!!c.once))},a.extend(b,q.defaults,{content:{ajax:{loading:b,once:b}}}),r.tip=function(a){var b=a.plugins.tip;return"object"==typeof b?b:a.plugins.tip=new M(a)},r.tip.initialize="render",r.tip.sanitize=function(a){var c=a.style,d;c&&"tip"in c&&(d=a.style.tip,typeof d!="object"&&(a.style.tip={corner:d}),/string|boolean/i.test(typeof d.corner)||(d.corner=b),typeof d.width!="number"&&delete d.width,typeof d.height!="number"&&delete d.height,typeof d.border!="number"&&d.border!==b&&delete d.border,typeof d.offset!="number"&&delete d.offset)},a.extend(b,q.defaults,{style:{tip:{corner:b,mimic:c,width:6,height:6,border:b,offset:0}}}),r.modal=function(a){var b=a.plugins.modal;return"object"==typeof b?b:a.plugins.modal=new N(a)},r.modal.initialize="render",r.modal.sanitize=function(a){a.show&&(typeof a.show.modal!="object"?a.show.modal={on:!!a.show.modal}:typeof a.show.modal.on=="undefined"&&(a.show.modal.on=b))},r.modal.zindex=q.zindex-200,r.modal.focusable=["a[href]","area[href]","input","select","textarea","button","iframe","object","embed","[tabindex]","[contenteditable]"],a.extend(b,q.defaults,{show:{modal:{on:c,effect:b,blur:b,stealfocus:b,escape:b}}}),r.viewport=function(a,b,c,d,n,q,r){function J(a,c,d,e,f,g,h,i,j){var k=b[f],l=v[a],n=w[a],q=d===p,r=-C.offset[f]+B.offset[f]+B["scroll"+f],s=l===f?j:l===g?-j:-j/2,t=n===f?i:n===g?-i:-i/2,u=E&&E.size?E.size[h]||0:0,x=E&&E.corner&&E.corner.precedance===a&&!q?u:0,y=r-k+x,z=k+j-B[h]-r+x,A=s-(v.precedance===a||l===v[c]?t:0)-(n===m?i/2:0);return q?(x=E&&E.corner&&E.corner.precedance===c?u:0,A=(l===f?1:-1)*s-x,b[f]+=y>0?y:z>0?-z:0,b[f]=Math.max(-C.offset[f]+B.offset[f]+(x&&E.corner[a]===m?E.offset:0),k-A,Math.min(Math.max(-C.offset[f]+B.offset[f]+B[h],k+A),b[f]))):(e*=d===o?2:0,y>0&&(l!==f||z>0)?(b[f]-=A+e,H["invert"+a](f)):z>0&&(l!==g||y>0)&&(b[f]-=(l===m?-A:A)+e,H["invert"+a](g)),b[f]z&&(b[f]=k,H=undefined)),b[f]-k}var s=c.target,t=a.elements.tooltip,v=c.my,w=c.at,x=c.adjust,y=x.method.split(" "),z=y[0],A=y[1]||y[0],B=c.viewport,C=c.container,D=a.cache,E=a.plugins.tip,F={left:0,top:0},G,H,I;if(!B.jquery||s[0]===window||s[0]===document.body||x.method==="none")return F;G=t.css("position")==="fixed",B={elem:B,height:B[(B[0]===window?"h":"outerH")+"eight"](),width:B[(B[0]===window?"w":"outerW")+"idth"](),scrollleft:G?0:B.scrollLeft(),scrolltop:G?0:B.scrollTop(),offset:B.offset()||{left:0,top:0}},C={elem:C,scrollLeft:C.scrollLeft(),scrollTop:C.scrollTop(),offset:C.offset()||{left:0,top:0}};if(z!=="shift"||A!=="shift")H=v.clone();return F={left:z!=="none"?J(e,f,z,x.x,j,l,g,d,q):0,top:A!=="none"?J(f,e,A,x.y,i,k,h,n,r):0},H&&D.lastClass!==(I=u+"-pos-"+H.abbrev())&&t.removeClass(a.cache.lastClass).addClass(a.cache.lastClass=I),F},r.imagemap=function(b,c,d,e){function v(a,b,c){var d=0,e=1,f=1,g=0,h=0,n=a.width,o=a.height;while(n>0&&o>0&&e>0&&f>0){n=Math.floor(n/2),o=Math.floor(o/2),c.x===j?e=n:c.x===l?e=a.width-n:e+=Math.floor(n/2),c.y===i?f=o:c.y===k?f=a.height-o:f+=Math.floor(o/2),d=b.length;while(d--){if(b.length<2)break;g=b[d][0]-a.position.left,h=b[d][1]-a.position.top,(c.x===j&&g>=e||c.x===l&&g<=e||c.x===m&&(ga.width-e)||c.y===i&&h>=f||c.y===k&&h<=f||c.y===m&&(ha.height-f))&&b.splice(d,1)}}return{left:b[0][0],top:b[0][1]}}c.jquery||(c=a(c));var f=b.cache.areas={},g=(c[0].shape||c.attr("shape")).toLowerCase(),h=c[0].coords||c.attr("coords"),n=h.split(","),o=[],p=a('img[usemap="#'+c.parent("map").attr("name")+'"]'),q=p.offset(),r={width:0,height:0,position:{top:1e10,right:0,bottom:0,left:1e10}},s=0,t=0,u;q.left+=Math.ceil((p.outerWidth()-p.width())/2),q.top+=Math.ceil((p.outerHeight()-p.height())/2);if(g==="poly"){s=n.length;while(s--)t=[parseInt(n[--s],10),parseInt(n[s+1],10)],t[0]>r.position.right&&(r.position.right=t[0]),t[0]r.position.bottom&&(r.position.bottom=t[1]),t[1]=1?"rgb("+[b.r,b.g,b.b].join(",")+")":"rgba("+[b.r,b.g,b.b,b.a].join(",")+")"};b.normalize=function(){function a(b,c,d){return cd?d:c}b.r=a(0,parseInt(b.r),255);b.g=a(0,parseInt(b.g), -255);b.b=a(0,parseInt(b.b),255);b.a=a(0,b.a,1);return b};b.clone=function(){return e.color.make(b.r,b.b,b.g,b.a)};return b.normalize()};e.color.extract=function(c,a){var d;do{d=c.css(a).toLowerCase();if(d!=""&&d!="transparent")break;c=c.parent()}while(!e.nodeName(c.get(0),"body"));d=="rgba(0, 0, 0, 0)"&&(d="transparent");return e.color.parse(d)};e.color.parse=function(c){var a,d=e.color.make;if(a=/rgb\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*\)/.exec(c))return d(parseInt(a[1],10), -parseInt(a[2],10),parseInt(a[3],10));if(a=/rgba\(\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]{1,3})\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(c))return d(parseInt(a[1],10),parseInt(a[2],10),parseInt(a[3],10),parseFloat(a[4]));if(a=/rgb\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*\)/.exec(c))return d(parseFloat(a[1])*2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55);if(a=/rgba\(\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\%\s*,\s*([0-9]+(?:\.[0-9]+)?)\s*\)/.exec(c))return d(parseFloat(a[1])* -2.55,parseFloat(a[2])*2.55,parseFloat(a[3])*2.55,parseFloat(a[4]));if(a=/#([a-fA-F0-9]{2})([a-fA-F0-9]{2})([a-fA-F0-9]{2})/.exec(c))return d(parseInt(a[1],16),parseInt(a[2],16),parseInt(a[3],16));if(a=/#([a-fA-F0-9])([a-fA-F0-9])([a-fA-F0-9])/.exec(c))return d(parseInt(a[1]+a[1],16),parseInt(a[2]+a[2],16),parseInt(a[3]+a[3],16));c=e.trim(c).toLowerCase();return c=="transparent"?d(255,255,255,0):(a=g[c]||[0,0,0],d(a[0],a[1],a[2]))};var g={aqua:[0,255,255],azure:[240,255,255],beige:[245,245,220],black:[0, -0,0],blue:[0,0,255],brown:[165,42,42],cyan:[0,255,255],darkblue:[0,0,139],darkcyan:[0,139,139],darkgrey:[169,169,169],darkgreen:[0,100,0],darkkhaki:[189,183,107],darkmagenta:[139,0,139],darkolivegreen:[85,107,47],darkorange:[255,140,0],darkorchid:[153,50,204],darkred:[139,0,0],darksalmon:[233,150,122],darkviolet:[148,0,211],fuchsia:[255,0,255],gold:[255,215,0],green:[0,128,0],indigo:[75,0,130],khaki:[240,230,140],lightblue:[173,216,230],lightcyan:[224,255,255],lightgreen:[144,238,144],lightgrey:[211, -211,211],lightpink:[255,182,193],lightyellow:[255,255,224],lime:[0,255,0],magenta:[255,0,255],maroon:[128,0,0],navy:[0,0,128],olive:[128,128,0],orange:[255,165,0],pink:[255,192,203],purple:[128,0,128],violet:[128,0,128],red:[255,0,0],silver:[192,192,192],white:[255,255,255],yellow:[255,255,0]}})(jQuery); -(function(a){function r(c,d,b){c.value=a(d).text();a(c).change();a.browser.msie||c.focus();b.hide()}function n(c,a){var b=c.getHours(),h=a.show24Hours?b:(b+11)%12+1,f=c.getMinutes();return(h<10?"0":"")+h+a.separator+((f<10?"0":"")+f)+(a.show24Hours?"":b<12?" AM":" PM")}function o(c,a){return typeof c=="object"?p(c):q(c,a)}function q(a,d){if(a){var b=a.split(d.separator),h=parseFloat(b[0]),b=parseFloat(b[1]);d.show24Hours||(h===12&&a.indexOf("AM")!==-1?h=0:h!==12&&a.indexOf("PM")!==-1&&(h+=12));return p(new Date(0, -0,0,h,b,0))}return null}function p(a){a.setFullYear(2001);a.setMonth(0);a.setDate(0);return a}a.fn.timePicker=function(c){var d=a.extend({},a.fn.timePicker.defaults,c);return this.each(function(){a.timePicker(this,d)})};a.timePicker=function(c,d){var b=a(c)[0];return b.timePicker||(b.timePicker=new jQuery._timePicker(b,d))};a.timePicker.version="0.3";a._timePicker=function(c,d){var b=false,h=false,f=o(d.startTime,d),s=o(d.endTime,d);a(c).attr("autocomplete","OFF");for(var l=[],j=new Date(f);j<=s;)l[l.length]= -n(j,d),j=new Date(j.setMinutes(j.getMinutes()+d.step));for(var e=a('
          '),k=a("
            "),j=0;j"+l[j]+"");e.append(k);e.appendTo("body").hide();e.mouseover(function(){b=true}).mouseout(function(){b=false});a("li",k).mouseover(function(){h||(a("li.selected",e).removeClass("selected"),a(this).addClass("selected"))}).mousedown(function(){b=true}).click(function(){r(c,this,e,d);b=false});var m=function(){if(e.is(":visible"))return false; -a("li",e).removeClass("selected");var g=a(c).offset();e.css({top:g.top+c.offsetHeight,left:g.left});e.show();var b=c.value?q(c.value,d):f,g=f.getHours()*60+f.getMinutes(),b=b.getHours()*60+b.getMinutes()-g,b=Math.round(b/d.step),g=p(new Date(0,0,0,0,b*d.step+g,0)),g=f -f+e[0].offsetHeight)e[0].scrollTop=f+i.offsetHeight}else b.removeClass("selected"),a("li:first",k).addClass("selected"),e[0].scrollTop=0;return false;case 13:return e.is(":visible")&&(f=a("li.selected",k)[0],r(c,f,e,d)),false;case 27:return e.hide(),false}return true});a(c).keyup(function(){h=false});this.getTime=function(){return q(c.value,d)};this.setTime=function(b){c.value=n(o(b,d),d);a(c).change()}};a.fn.timePicker.defaults={step:30,startTime:new Date(0,0,0,0,0,0),endTime:new Date(0,0,0,23,30, -0),separator:":",show24Hours:true}})(jQuery); -(function(g){g.cookie=function(h,b,a){if(arguments.length>1&&(!/Object/.test(Object.prototype.toString.call(b))||b===null||b===void 0)){a=g.extend({},a);if(b===null||b===void 0)a.expires=-1;if(typeof a.expires==="number"){var d=a.expires,c=a.expires=new Date;c.setDate(c.getDate()+d)}b=String(b);return document.cookie=[encodeURIComponent(h),"=",a.raw?b:encodeURIComponent(b),a.expires?"; expires="+a.expires.toUTCString():"",a.path?"; path="+a.path:"",a.domain?"; domain="+a.domain:"",a.secure?"; secure": -""].join("")}for(var a=b||{},d=a.raw?function(a){return a}:decodeURIComponent,c=document.cookie.split("; "),e=0,f;f=c[e]&&c[e].split("=");e++)if(d(f[0])===h)return d(f[1]||"");return null}})(jQuery); -$.fn.serializeObject=function(){var a={},b=this.find(":input").serializeArray();$.each(b,function(){if(this.value=="true")this.value=true;else if(this.value=="false")this.value=false;else if(this.value===void 0)this.value="";a[this.name]!==void 0?(a[this.name].push||(a[this.name]=[a[this.name]]),a[this.name].push(this.value)):a[this.name]=this.value});return a}; -function load_i18n_strings(){AgenDAVConf.i18n={};var a=$.ajax({async:false,url:base_app_url+"strings/load/"+agendav_version,dataType:"json",method:"GET",ifModified:false});a.done(function(a){AgenDAVConf.i18n=a;set_default_datepicker_options()});a.fail(function(){show_error("Error loading translation","Please, contact your system administrator")})} -function t(a,c,d){var b="["+a+":"+c+"]";if(typeof AgenDAVConf.i18n!="undefined"&&(a=="messages"||a=="labels"))a=="labels"&&AgenDAVConf.i18n.labels[c]?b=AgenDAVConf.i18n.labels[c]:a=="messages"&&AgenDAVConf.i18n.messages[c]&&(b=AgenDAVConf.i18n.messages[c]);for(var e in d)b=b.replace(e,d[e]);return b}function labels_as_array(a){if(!$.isArray(a))return[];for(var c=[],d=a.length,b=0;b\"\']/),o=/&/g,g= -//g,m=/\"/g,p=/\'/g;e.escapeHtml=function(a){return typeof a==="string"?!d.test(a)?a:a.replace(o,"&").replace(g,"<").replace(n,">").replace(m,""").replace(p,"'"):a};var q=/\\/g,r=/\r/g,s=/\u2028/g,t=/\u2029/g,u=/\n/g,v=/\f/g,w=/'/g,x=/"/g,y=/\t/g;e.escapeJs=function(a){return typeof a==="string"?a.replace(q,"\\\\").replace(x,'\\"').replace(w,"\\'").replace(r,"\\r").replace(s,"\\u2028").replace(t,"\\u2029").replace(u,"\\n").replace(v,"\\f").replace(y,"\\t"):a}})(dust); -if(typeof exports!=="undefined")dust.helpers=require("../dust-helpers/lib/dust-helpers").helpers,typeof process!=="undefined"&&require("./server")(dust),module.exports=dust; -(function(e){function i(b){b=b.current();return typeof b==="object"&&b.isSelect===true}function j(b,d,e,g,n){var g=g||{},m,j;if(g.key)m=h.tap(g.key,b,d);else if(i(d))m=d.current().selectKey,d.current().isResolved&&(n=function(){return false});else throw"No key specified for filter and no key found in context from select statement";j=h.tap(g.value,b,d);if(n(j,l(m,g.type,d))){if(i(d))d.current().isResolved=true;return b.render(e.block,d)}else if(e["else"])return b.render(e["else"],d);return b.write("")} -function l(b,d,e){if(b)switch(d||typeof b){case "number":return+b;case "string":return String(b);case "boolean":return Boolean(b);case "date":return new Date(b);case "context":return e.get(b)}return b}var k=typeof console!=="undefined"?console:{log:function(){}},h={sep:function(b,d,e){return d.stack.index===d.stack.of-1?b:e.block(b,d)},idx:function(b,d,e){return e.block(b,d.push(d.stack.index))},contextDump:function(b,d){k.log(JSON.stringify(d.stack));return b},tap:function(b,d,e){var g=b;typeof b=== -"function"&&(g="",d.tap(function(b){g+=b;return""}).render(b,e).untap(),g===""&&(g=false));return g},"if":function(b,d,e,g){if(g&&g.cond){g=g.cond;g=this.tap(g,b,d);if(eval(g))return b.render(e.block,d);if(e["else"])return b.render(e["else"],d)}else k.log("No condition given in the if helper!");return b},select:function(b,d,e,g){if(g&&g.key)return g=this.tap(g.key,b,d),b.render(e.block,d.push({isSelect:true,isResolved:false,selectKey:g}));else k.log("No key given in the select helper!");return b}, -eq:function(b,d,e,g){return j(b,d,e,g,function(b,d){return d===b})},lt:function(b,d,e,g){return j(b,d,e,g,function(b,d){return db})},gte:function(b,d,e,g){return j(b,d,e,g,function(b,d){return d>=b})},"default":function(b,d,e,g){return j(b,d,e,g,function(){return true})}};e.helpers=h})(typeof exports!=="undefined"?exports:getGlobal()); -(function(){function a(b,a){return b.write('
            ')}function e(b,a){return b.write('class="').reference(a.get("applyclass"), -a,"h").write('"')}function d(b,a){return b.write(' id="').reference(a.get("applyid"),a,"h").write('"')}dust.register("form_open",a);return a})(); -(function(){function a(a,h){return a.write(' ")}function e(a){return a.write(' selected="true"')}function d(a,b){return a.reference(b.get("write_access"),b,"h")}function b(a){return a.write(' selected="true"')}function f(a, -b){return a.reference(b.get("write_access"),b,"h")}dust.register("calendar_share_access_options",a);return a})();(function(){function a(a,d){return a.write('
            ').partial("form_open",d,{applyclass:"form-horizontal",applyid:"calendar_create_form"}).partial("calendar_basic_form_part",d,null).partial("form_close",d,null).write("
            ")}dust.register("calendar_create_dialog",a);return a})(); -(function(){function a(a){return a.write("
            ")}dust.register("form_close",a);return a})(); -(function(){function a(a,d){return a.write('
            ').partial("form_open",d,null).write('

            ').helper("i18n",d,{},{type:"messages",name:"info_confirmcaldelete"}).write('

            ').reference(d.get("displayname"),d,"h").write("

            ").helper("i18n",d,{},{type:"messages",name:"info_permanentremoval"}).write("

            ").partial("form_close", -d,null).write("
            ")}dust.register("calendar_delete_dialog",a);return a})(); -(function(){function a(a,f){return a.section(f.get("visible_reminders"),f,{block:e},null).write('').section(f.get("reminders"),f,{block:d},null).write('
            ').helper("i18n",f,{},{type:"messages",name:"info_noreminders"}).write('
            ').helper("i18n",f,{},{type:"labels",name:"newreminder"}).write('').partial("reminder_row", -f,{add:"true"}).write('
            ').helper("i18n",f,{},{type:"labels",name:"newreminder"}).write('').partial("reminder_row",f,{add:"true",is_absolute:"true"}).write("
            ")}function e(a,d){return a.write('')}function d(a,d){return a.partial("reminder_row",d,null)}dust.register("reminders_table",a);return a})(); -(function(){function a(a,b){return a.write('").section(b.get("share_with"),b,{block:e},null).write('
            ').helper("i18n",b,{},{type:"labels",name:"username"}).write("").helper("i18n",b,{},{type:"labels",name:"access"}).write("
            ').helper("i18n",b,{},{type:"messages",name:"info_notshared"}).write('
            ').helper("i18n", -b,{},{type:"labels",name:"sharewith"}).write('
            ').helper(
            ")}function e(a,b){return a.partial("calendar_share_row",b,null)}dust.register("calendar_share_table",a);return a})(); -(function(){function a(a,c){return a.write('

            ').reference(c.get("formatted_start"),c,"h").write(" ").reference(c.get("formatted_end"),c,"h").write('

            ').helper("i18n",c,{},{type:"labels",name:"calendar"}).write('
            ').reference(c.getPath(false,["caldata","displayname"]),c,"h").write("
            ").exists(c.get("location"), -c,{block:e},null).exists(c.get("description"),c,{block:d},null).exists(c.get("rrule"),c,{block:b},null).section(c.get("reminders"),c,{block:k},null).notexists(c.get("disable_actions"),c,{block:l},null).write("
            ")}function e(a,c){return a.write("